All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/python-library-fuzzers/fuzzer.cpp:20,1
    - Dst: memcpy
      Src: /src/python-library-fuzzers/fuzzer.cpp:21,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:21,1
    - Dst: std::string::size
      Src: /src/python-library-fuzzers/fuzzer.cpp:21,1
    - Dst: realpath
      Src: /src/python-library-fuzzers/fuzzer.cpp:22,1
    - Dst: dirname
      Src: /src/python-library-fuzzers/fuzzer.cpp:22,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:23,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:24,1
    - Dst: std::string
      Src: /src/python-library-fuzzers/fuzzer.cpp:27,1
    - Dst: std::string
      Src: /src/python-library-fuzzers/fuzzer.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argv0
    - relativePath
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: ToAbsolutePath
    functionSourceFile: /src/python-library-fuzzers/fuzzer.cpp
    functionUses: 0
    functionsReached:
    - abort
    - realpath
    - std::string::size
    - std::string
    - printf
    - std::string::c_str
    - memcpy
    - dirname
    linkageType: ''
    returnType: std::string
    signature: std::string ToAbsolutePath(const std::string argv0, const std::string
      relativePath)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ToAbsolutePath
      Src: /src/python-library-fuzzers/fuzzer.cpp:34,1
    - Dst: ToAbsolutePath
      Src: /src/python-library-fuzzers/fuzzer.cpp:35,1
    - Dst: setenv
      Src: /src/python-library-fuzzers/fuzzer.cpp:40,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:40,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:41,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:42,1
    - Dst: fopen
      Src: /src/python-library-fuzzers/fuzzer.cpp:46,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:46,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:48,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:48,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:49,1
    - Dst: fseek
      Src: /src/python-library-fuzzers/fuzzer.cpp:52,1
    - Dst: ftell
      Src: /src/python-library-fuzzers/fuzzer.cpp:53,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:55,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:56,1
    - Dst: fseek
      Src: /src/python-library-fuzzers/fuzzer.cpp:58,1
    - Dst: std::vector::resize
      Src: /src/python-library-fuzzers/fuzzer.cpp:59,1
    - Dst: fread
      Src: /src/python-library-fuzzers/fuzzer.cpp:60,1
    - Dst: std::vector::data
      Src: /src/python-library-fuzzers/fuzzer.cpp:60,1
    - Dst: static_cast<size_t>
      Src: /src/python-library-fuzzers/fuzzer.cpp:60,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:61,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:62,1
    - Dst: fclose
      Src: /src/python-library-fuzzers/fuzzer.cpp:64,1
    - Dst: std::string
      Src: /src/python-library-fuzzers/fuzzer.cpp:66,1
    - Dst: std::vector::data
      Src: /src/python-library-fuzzers/fuzzer.cpp:66,1
    - Dst: std::vector::data
      Src: /src/python-library-fuzzers/fuzzer.cpp:66,1
    - Dst: std::vector::size
      Src: /src/python-library-fuzzers/fuzzer.cpp:66,1
    - Dst: Py_DecodeLocale
      Src: /src/python-library-fuzzers/fuzzer.cpp:70,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:70,1
    - Dst: Py_SetProgramName
      Src: /src/python-library-fuzzers/fuzzer.cpp:71,1
    - Dst: PyMem_RawFree
      Src: /src/python-library-fuzzers/fuzzer.cpp:72,1
    - Dst: Py_Initialize
      Src: /src/python-library-fuzzers/fuzzer.cpp:76,1
    - Dst: PyRun_SimpleString
      Src: /src/python-library-fuzzers/fuzzer.cpp:83,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:83,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:84,1
    - Dst: PyErr_PrintEx
      Src: /src/python-library-fuzzers/fuzzer.cpp:85,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:86,1
    - Dst: PyRun_SimpleString
      Src: /src/python-library-fuzzers/fuzzer.cpp:96,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:96,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:97,1
    - Dst: PyErr_PrintEx
      Src: /src/python-library-fuzzers/fuzzer.cpp:98,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:99,1
    - Dst: PyModule_New
      Src: /src/python-library-fuzzers/fuzzer.cpp:105,1
    - Dst: PyModule_AddStringConstant
      Src: /src/python-library-fuzzers/fuzzer.cpp:106,1
    - Dst: PyModule_GetDict
      Src: /src/python-library-fuzzers/fuzzer.cpp:107,1
    - Dst: PyRun_String
      Src: /src/python-library-fuzzers/fuzzer.cpp:108,1
    - Dst: std::string::c_str
      Src: /src/python-library-fuzzers/fuzzer.cpp:108,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:111,1
    - Dst: PyErr_PrintEx
      Src: /src/python-library-fuzzers/fuzzer.cpp:112,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:113,1
    - Dst: Py_DECREF
      Src: /src/python-library-fuzzers/fuzzer.cpp:115,1
    - Dst: PyObject_GetAttrString
      Src: /src/python-library-fuzzers/fuzzer.cpp:117,1
    - Dst: PyCallable_Check
      Src: /src/python-library-fuzzers/fuzzer.cpp:119,1
    - Dst: static_cast<PyObject*>
      Src: /src/python-library-fuzzers/fuzzer.cpp:119,1
    - Dst: printf
      Src: /src/python-library-fuzzers/fuzzer.cpp:120,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 125
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/python-library-fuzzers/fuzzer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ftell
    - std::string
    - fseek
    - PyRun_SimpleString
    - PyRun_String
    - Py_Initialize
    - PyModule_AddStringConstant
    - setenv
    - ToAbsolutePath
    - fopen
    - std::vector::size
    - PyModule_GetDict
    - PyErr_PrintEx
    - PyModule_New
    - abort
    - fread
    - PyMem_RawFree
    - Py_DECREF
    - printf
    - PyCallable_Check
    - static_cast<PyObject*>
    - std::vector::resize
    - Py_DecodeLocale
    - PyObject_GetAttrString
    - static_cast<size_t>
    - std::string::c_str
    - Py_SetProgramName
    - fclose
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int* argc, char*** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/python-library-fuzzers/fuzzer.cpp:132,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/python-library-fuzzers/fuzzer.cpp:133,1
    - Dst: PyTuple_SetItem
      Src: /src/python-library-fuzzers/fuzzer.cpp:134,1
    - Dst: PyObject_CallObject
      Src: /src/python-library-fuzzers/fuzzer.cpp:136,1
    - Dst: static_cast<PyObject*>
      Src: /src/python-library-fuzzers/fuzzer.cpp:136,1
    - Dst: PyErr_PrintEx
      Src: /src/python-library-fuzzers/fuzzer.cpp:140,1
    - Dst: abort
      Src: /src/python-library-fuzzers/fuzzer.cpp:141,1
    - Dst: PyBytes_Check
      Src: /src/python-library-fuzzers/fuzzer.cpp:144,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/python-library-fuzzers/fuzzer.cpp:149,1
    - Dst: std::vector<uint8_t>
      Src: /src/python-library-fuzzers/fuzzer.cpp:151,1
    - Dst: Py_DECREF
      Src: /src/python-library-fuzzers/fuzzer.cpp:160,1
    - Dst: Py_DECREF
      Src: /src/python-library-fuzzers/fuzzer.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 164
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/python-library-fuzzers/fuzzer.cpp
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - abort
    - Py_DECREF
    - PyErr_PrintEx
    - PyBytes_FromStringAndSize
    - std::vector<uint8_t>
    - PyObject_CallObject
    - PyBytes_Check
    - static_cast<PyObject*>
    - PyBytes_AsStringAndSize
    - PyTuple_SetItem
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - codeptr
    - lasti
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: fuzzer_record_code_coverage
    functionSourceFile: /src/python-library-fuzzers/python_coverage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fuzzer_record_code_coverage(void* codeptr, int lasti)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Doc/includes/run-func.c:12,1
    - Dst: Py_Initialize
      Src: /src/cpython/Doc/includes/run-func.c:16,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Doc/includes/run-func.c:17,1
    - Dst: PyImport_Import
      Src: /src/cpython/Doc/includes/run-func.c:20,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:21,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Doc/includes/run-func.c:24,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Doc/includes/run-func.c:27,1
    - Dst: PyTuple_New
      Src: /src/cpython/Doc/includes/run-func.c:28,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Doc/includes/run-func.c:30,1
    - Dst: atoi
      Src: /src/cpython/Doc/includes/run-func.c:30,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:32,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:33,1
    - Dst: fprintf
      Src: /src/cpython/Doc/includes/run-func.c:34,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Doc/includes/run-func.c:38,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Doc/includes/run-func.c:40,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:41,1
    - Dst: printf
      Src: /src/cpython/Doc/includes/run-func.c:43,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Doc/includes/run-func.c:43,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:44,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:47,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:48,1
    - Dst: PyErr_Print
      Src: /src/cpython/Doc/includes/run-func.c:49,1
    - Dst: fprintf
      Src: /src/cpython/Doc/includes/run-func.c:50,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Doc/includes/run-func.c:55,1
    - Dst: PyErr_Print
      Src: /src/cpython/Doc/includes/run-func.c:56,1
    - Dst: fprintf
      Src: /src/cpython/Doc/includes/run-func.c:57,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Doc/includes/run-func.c:59,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/run-func.c:60,1
    - Dst: PyErr_Print
      Src: /src/cpython/Doc/includes/run-func.c:63,1
    - Dst: fprintf
      Src: /src/cpython/Doc/includes/run-func.c:64,1
    - Dst: Py_FinalizeEx
      Src: /src/cpython/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/cpython/Doc/includes/run-func.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - PyImport_Import
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTuple_New
    - PyLong_AsLong
    - PyErr_Print
    - PyErr_Occurred
    - PyCallable_Check
    - printf
    - atoi
    - PyObject_CallObject
    - PyLong_FromLong
    - fprintf
    - PyTuple_SetItem
    - Py_FinalizeEx
    - Py_Initialize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Doc/includes/newtypes/sublist.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: SubList_increment
    functionSourceFile: /src/cpython/Doc/includes/newtypes/sublist.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SubList_increment(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/cpython/Doc/includes/newtypes/sublist.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: SubList_init
    functionSourceFile: /src/cpython/Doc/includes/newtypes/sublist.c
    functionUses: 0
    functionsReached:
    - tp_init
    linkageType: ''
    returnType: int
    signature: int SubList_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Doc/includes/newtypes/sublist.c:48,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Doc/includes/newtypes/sublist.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: sublist_module_exec
    functionSourceFile: /src/cpython/Doc/includes/newtypes/sublist.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int sublist_module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Doc/includes/newtypes/sublist.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: PyInit_sublist
    functionSourceFile: /src/cpython/Doc/includes/newtypes/sublist.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_sublist(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Doc/includes/newtypes/custom.c:22,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Doc/includes/newtypes/custom.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: custom_module_exec
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int custom_module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Doc/includes/newtypes/custom.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: PyInit_custom
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:16,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:17,1
    - Dst: Py_TYPE
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: Custom_dealloc
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom2.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Custom_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:25,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:27,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:29,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:32,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Custom_new
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom2.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - Py_GetConstant
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:49,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:55,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:55,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:58,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 61
    functionName: Custom_init
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom2.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_XSETREF
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: int
    signature: int Custom_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:78,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:82,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: Custom_name
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom2.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_name(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:112,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: custom_module_exec
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom2.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int custom_module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Doc/includes/newtypes/custom2.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: PyInit_custom2
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom2.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:16,1
    - Dst: Py_VISIT
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: Custom_traverse
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Custom_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:25,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: Custom_clear
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int Custom_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:33,1
    - Dst: Custom_clear
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:34,1
    - Dst: Py_TYPE
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Custom_dealloc
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Custom_clear
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void Custom_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:42,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:44,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:46,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:49,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: Custom_new
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - Py_GetConstant
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:66,1
    - Dst: Py_SETREF
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:72,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:72,1
    - Dst: Py_SETREF
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:75,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: Custom_init
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - Py_NewRef
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: int
    signature: int Custom_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: Custom_getfirst
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getfirst(PyObject *op, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:98,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:102,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:106,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: Custom_setfirst
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_SetString
    - Py_NewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int Custom_setfirst(PyObject *op, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: Custom_getlast
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getlast(PyObject *op, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:122,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:125,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:126,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:130,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: Custom_setlast
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_SetString
    - Py_NewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int Custom_setlast(PyObject *op, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: Custom_name
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_name(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:176,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 185
    functionName: custom_module_exec
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int custom_module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Doc/includes/newtypes/custom4.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: PyInit_custom4
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom4.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:16,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:17,1
    - Dst: Py_TYPE
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: Custom_dealloc
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Custom_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:25,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:27,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:29,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:32,1
    - Dst: Py_DECREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Custom_new
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - Py_GetConstant
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:49,1
    - Dst: Py_SETREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:55,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:55,1
    - Dst: Py_SETREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:58,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 61
    functionName: Custom_init
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - Py_NewRef
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: int
    signature: int Custom_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: Custom_getfirst
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getfirst(PyObject *op, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:81,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:84,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:85,1
    - Dst: Py_SETREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:89,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: Custom_setfirst
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_SetString
    - Py_NewRef
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int Custom_setfirst(PyObject *op, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: Custom_getlast
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getlast(PyObject *op, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:105,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:109,1
    - Dst: Py_SETREF
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:113,1
    - Dst: Py_NewRef
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: Custom_setlast
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_SetString
    - Py_NewRef
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int Custom_setlast(PyObject *op, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Custom_name
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_name(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:157,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: custom_module_exec
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int custom_module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Doc/includes/newtypes/custom3.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: PyInit_custom3
    functionSourceFile: /src/cpython/Doc/includes/newtypes/custom3.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_csv.c:47,1
    - Dst: assert
      Src: /src/cpython/Modules/_csv.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/cpython/Modules/_csv.c
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: get_csv_state
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _csvstate
    signature: '_csvstate *

      get_csv_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_csv.c:55,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:56,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:57,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:58,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:59,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:60,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: _csv_clear
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _csv_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_csv.c:68,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:69,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:70,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:71,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:72,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: _csv_traverse
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _csv_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _csv_clear
      Src: /src/cpython/Modules/_csv.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: _csv_free
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _csv_clear
    linkageType: ''
    returnType: void
    signature: void _csv_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: _DialectObj_CAST
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DialectObj_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: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: _ReaderObj_CAST
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ReaderObj_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: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: _WriterObj_CAST
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _WriterObj_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_csv.c:166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name_obj
    - module_state
    argTypes:
    - PyObject*
    - _csvstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: get_dialect_from_registry
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemRef
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dialect_from_registry(PyObject *name_obj, _csvstate *module_state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/_csv.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: get_char_or_None
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_char_or_None(Py_UCS4 c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:185,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_csv.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: Dialect_get_lineterminator
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _DialectObj_CAST
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_lineterminator(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:192,1
    - Dst: get_char_or_None
      Src: /src/cpython/Modules/_csv.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: Dialect_get_delimiter
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_char_or_None
    - _DialectObj_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_delimiter(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:199,1
    - Dst: get_char_or_None
      Src: /src/cpython/Modules/_csv.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: Dialect_get_escapechar
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_char_or_None
    - _DialectObj_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_escapechar(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:206,1
    - Dst: get_char_or_None
      Src: /src/cpython/Modules/_csv.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: Dialect_get_quotechar
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_char_or_None
    - _DialectObj_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_quotechar(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:213,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_csv.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: Dialect_get_quoting
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _DialectObj_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_quoting(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_csv.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - char*
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: _set_bool
    functionSourceFile: /src/cpython/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/cpython/Modules/_csv.c:238,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:239,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_csv.c:243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - int*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 250
    functionName: _set_int
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsInt
    - PyLong_CheckExact
    - PyErr_Format
    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/cpython/Modules/_csv.c:263,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:264,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_csv.c:269,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:274,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_csv.c:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - Py_UCS4*
    - PyObject*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 283
    functionName: _set_char_or_none
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_GetLength
    - PyUnicode_READ_CHAR
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _set_char_or_none(const char *name, Py_UCS4 *target, PyObject *src,
      Py_UCS4 dflt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:293,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:294,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_csv.c:299,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:304,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_csv.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - Py_UCS4*
    - PyObject*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 313
    functionName: _set_char
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_csv.c:319,1
    - Dst: strlen
      Src: /src/cpython/Modules/_csv.c:319,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:321,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:322,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_csv.c:326,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_csv.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - PyObject**
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 329
    functionName: _set_str
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_DecodeASCII
    - Py_NewRef
    - Py_XSETREF
    - PyErr_Format
    - PyUnicode_Check
    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/cpython/Modules/_csv.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - quoting
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 342
    functionName: dialect_check_quoting
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int dialect_check_quoting(int quoting)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:348,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_csv.c:351,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:353,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - name
    - c
    - dialect
    - allowspace
    argTypes:
    - char*
    - Py_UCS4
    - DialectObj*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 359
    functionName: dialect_check_char
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FindChar
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int dialect_check_char(const char *name, Py_UCS4 c, DialectObj *dialect,
      bool allowspace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - name1
    - name2
    - c1
    - c2
    argTypes:
    - char*
    - char*
    - Py_UCS4
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: dialect_check_chars
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int dialect_check_chars(const char *name1, const char *name2, Py_UCS4
      c1, Py_UCS4 c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: D_OFF
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:394,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_csv.c:395,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_csv.c:396,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_csv.c:397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: Dialect_dealloc
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Dialect_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_csv.c:417,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_csv.c:421,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 428
    functionName: _csv_state_from_type
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - PyType_GetModuleByDef
    - PyErr_Format
    linkageType: ''
    returnType: _csvstate
    signature: '_csvstate *

      _csv_state_from_type(PyTypeObject *type, const char *name)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_csv.c:445,1
    - Dst: _csv_state_from_type
      Src: /src/cpython/Modules/_csv.c:458,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:464,1
    - Dst: get_dialect_from_registry
      Src: /src/cpython/Modules/_csv.c:465,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_csv.c:470,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_csv.c:472,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_csv.c:484,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:486,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:491,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:492,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:493,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:494,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:495,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:496,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:497,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:498,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:508,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:509,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:510,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:511,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:512,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:513,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:514,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:515,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:523,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:524,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:525,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:526,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:527,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:528,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:529,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:530,1
    - Dst: dialect_check_quoting
      Src: /src/cpython/Modules/_csv.c:534,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:539,1
    - Dst: dialect_check_char
      Src: /src/cpython/Modules/_csv.c:543,1
    - Dst: dialect_check_char
      Src: /src/cpython/Modules/_csv.c:544,1
    - Dst: dialect_check_char
      Src: /src/cpython/Modules/_csv.c:546,1
    - Dst: dialect_check_chars
      Src: /src/cpython/Modules/_csv.c:548,1
    - Dst: dialect_check_chars
      Src: /src/cpython/Modules/_csv.c:550,1
    - Dst: dialect_check_chars
      Src: /src/cpython/Modules/_csv.c:552,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_csv.c:558,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:560,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:562,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:563,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:564,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:565,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:566,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:567,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:568,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:569,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 571
    functionName: dialect_new
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_TypeCheck
    - _csv_state_from_type
    - PyTypeObject*::tp_alloc
    - dialect_check_char
    - dialect_check_chars
    - PyErr_SetString
    - Py_XINCREF
    - get_dialect_from_registry
    - PyArg_ParseTupleAndKeywords
    - dialect_check_quoting
    - Py_NewRef
    - DIALECT_GETATTR
    - DIASET
    - PyUnicode_Check
    - Py_CLEAR
    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: 508
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 508
    functionName: DIALECT_GETATTR
    functionSourceFile: /src/cpython/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: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: DIASET
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIASET(meth, name, target, src, dflt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:580,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_csv.c:581,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 583
    functionName: Dialect_reduce
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyType_Name
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_reduce(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:599,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 602
    functionName: Dialect_clear
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _DialectObj_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int Dialect_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:607,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:608,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:609,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 611
    functionName: Dialect_traverse
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _DialectObj_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Dialect_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Modules/_csv.c:643,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Modules/_csv.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module_state
    - dialect_inst
    - kwargs
    argTypes:
    - _csvstate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 648
    functionName: _call_dialect
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_VectorcallDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _call_dialect(_csvstate *module_state, PyObject *dialect_inst, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_csv.c:663,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_csv.c:666,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Modules/_csv.c:675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:676,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_csv.c:684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:688,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 690
    functionName: parse_save_field
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyNumber_Float
    - PyList_Append
    - Py_NewRef
    - PyUnicode_FromKindAndData
    linkageType: ''
    returnType: int
    signature: int parse_save_field(ReaderObj *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_csv.c:695,1
    - Dst: PyMem_Resize
      Src: /src/cpython/Modules/_csv.c:699,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_csv.c:701,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: 694
        line_start: 694
        source_file: /src/cpython/Modules/_csv.c
    constantsTouched: []
    func_position:
      end: 707
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 707
    functionName: parse_grow_buff
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyMem_Resize
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int parse_grow_buff(ReaderObj *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_csv.c:712,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:714,1
    - Dst: parse_grow_buff
      Src: /src/cpython/Modules/_csv.c:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - module_state
    - c
    argTypes:
    - ReaderObj*
    - _csvstate*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 723
    functionName: parse_add_char
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_grow_buff
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int parse_add_char(ReaderObj *self, _csvstate *module_state, Py_UCS4
      c)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:748,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:767,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:772,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:780,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:787,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:801,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:811,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:817,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:843,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:851,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:861,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:867,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:873,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:878,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:884,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:897,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 131
    argCount: 3
    argNames:
    - self
    - module_state
    - c
    argTypes:
    - ReaderObj*
    - _csvstate*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 906
    functionName: parse_process_char
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_save_field
    - parse_add_char
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int parse_process_char(ReaderObj *self, _csvstate *module_state, Py_UCS4
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_csv.c:911,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_csv.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 918
    functionName: parse_reset
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int parse_reset(ReaderObj *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _ReaderObj_CAST
      Src: /src/cpython/Modules/_csv.c:923,1
    - Dst: _csv_state_from_type
      Src: /src/cpython/Modules/_csv.c:932,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:932,1
    - Dst: parse_reset
      Src: /src/cpython/Modules/_csv.c:938,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_csv.c:941,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:944,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:947,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:949,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:954,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:955,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:961,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_csv.c:965,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_csv.c:966,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:968,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_csv.c:970,1
    - Dst: parse_process_char
      Src: /src/cpython/Modules/_csv.c:971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:977,1
    - Dst: parse_process_char
      Src: /src/cpython/Modules/_csv.c:978,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 920
    functionDepth: 4
    functionLinenumber: 920
    functionLinenumberEnd: 986
    functionName: Reader_iternext
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_save_field
    - parse_reset
    - PyUnicode_KIND
    - Py_DECREF
    - _csv_state_from_type
    - PyErr_Occurred
    - PyErr_SetString
    - PyUnicode_READ
    - PyIter_Next
    - parse_process_char
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - _ReaderObj_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Reader_iternext(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ReaderObj_CAST
      Src: /src/cpython/Modules/_csv.c:991,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:992,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_csv.c:993,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_csv.c:994,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_csv.c:996,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_csv.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1001
    functionName: Reader_dealloc
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_TYPE
    - PyMem_Free
    - _ReaderObj_CAST
    linkageType: ''
    returnType: void
    signature: void Reader_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ReaderObj_CAST
      Src: /src/cpython/Modules/_csv.c:1006,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1007,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1008,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1009,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1010,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1012
    functionName: Reader_traverse
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - _ReaderObj_CAST
    linkageType: ''
    returnType: int
    signature: int Reader_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ReaderObj_CAST
      Src: /src/cpython/Modules/_csv.c:1017,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1018,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1019,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1022
    functionName: Reader_clear
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _ReaderObj_CAST
    linkageType: ''
    returnType: int
    signature: int Reader_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: R_OFF
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R_OFF(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1070,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_csv.c:1071,1
    - Dst: parse_reset
      Src: /src/cpython/Modules/_csv.c:1085,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1086,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_csv.c:1090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1091,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_csv.c:1094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1096,1
    - Dst: _call_dialect
      Src: /src/cpython/Modules/_csv.c:1099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1102,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_csv.c:1106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - keyword_args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1108
    functionName: csv_reader
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_reset
    - Py_DECREF
    - get_csv_state
    - PyObject_GetIter
    - PyArg_UnpackTuple
    - _call_dialect
    - PyObject_GC_Track
    - PyObject_GC_New
    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: 1119
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1119
    functionName: join_reset
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void join_reset(WriterObj *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1154,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1158,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_csv.c:1163,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_csv.c:1171,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:1173,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1179,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1191,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1195,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1200,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1205,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_csv.c:1214,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 6
    argNames:
    - self
    - field_kind
    - field_data
    - field_len
    - quoted
    - copy_phase
    argTypes:
    - WriterObj*
    - int
    - void*
    - Py_ssize_t
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1218
    functionName: join_append_data
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - PyUnicode_FindChar
    - ADDCH
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t join_append_data(WriterObj *self, int field_kind, const
      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: 1149
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1149
    functionName: ADDCH
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDCH(c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_csv.c:1223,1
    - Dst: PyMem_Resize
      Src: /src/cpython/Modules/_csv.c:1228,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_csv.c:1230,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: 1222
        line_start: 1222
        source_file: /src/cpython/Modules/_csv.c
    constantsTouched: []
    func_position:
      end: 1237
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1237
    functionName: join_check_rec_size
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyMem_Resize
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int join_check_rec_size(WriterObj *self, Py_ssize_t rec_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_csv.c:1249,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_csv.c:1250,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:1251,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1259,1
    - Dst: join_append_data
      Src: /src/cpython/Modules/_csv.c:1266,1
    - Dst: join_check_rec_size
      Src: /src/cpython/Modules/_csv.c:1272,1
    - Dst: join_append_data
      Src: /src/cpython/Modules/_csv.c:1275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - self
    - field
    - quoted
    argTypes:
    - WriterObj*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1280
    functionName: join_append
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - join_check_rec_size
    - PyErr_Format
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - join_append_data
    linkageType: ''
    returnType: int
    signature: int join_append(WriterObj *self, PyObject *field, int quoted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:1289,1
    - Dst: join_check_rec_size
      Src: /src/cpython/Modules/_csv.c:1294,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_csv.c:1297,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_csv.c:1298,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_csv.c:1300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1304
    functionName: join_append_lineterminator
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - join_check_rec_size
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int join_append_lineterminator(WriterObj *self)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _WriterObj_CAST
      Src: /src/cpython/Modules/_csv.c:1316,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_csv.c:1321,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_csv.c:1323,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1324,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1326,1
    - Dst: join_reset
      Src: /src/cpython/Modules/_csv.c:1333,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_csv.c:1334,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_csv.c:1340,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:1346,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:1357,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1359,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1363,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_csv.c:1368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1371,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1382,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:1383,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1392,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1397,1
    - Dst: join_append_lineterminator
      Src: /src/cpython/Modules/_csv.c:1403,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_csv.c:1407,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_csv.c:1412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1413,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 2
    argNames:
    - op
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1415
    functionName: csv_writerow
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - join_append_lineterminator
    - join_reset
    - Py_DECREF
    - PyObject_Str
    - _WriterObj_CAST
    - PyObject_GetIter
    - PyErr_Occurred
    - PyIter_Next
    - PyErr_ExceptionMatches
    - PyNumber_Check
    - join_append
    - PyObject_CallOneArg
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_FromKindAndData
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_writerow(PyObject *op, PyObject *seq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_csv.c:1429,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_csv.c:1433,1
    - Dst: csv_writerow
      Src: /src/cpython/Modules/_csv.c:1434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1443,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:1444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - seqseq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1424
    functionDepth: 4
    functionLinenumber: 1424
    functionLinenumberEnd: 1447
    functionName: csv_writerows
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - csv_writerow
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyIter_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_writerows(PyObject *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: 1456
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1456
    functionName: W_OFF
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _WriterObj_CAST
      Src: /src/cpython/Modules/_csv.c:1467,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1468,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1469,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1470,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1471,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1473
    functionName: Writer_traverse
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _WriterObj_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Writer_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _WriterObj_CAST
      Src: /src/cpython/Modules/_csv.c:1478,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1479,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1480,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1483
    functionName: Writer_clear
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _WriterObj_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int Writer_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _WriterObj_CAST
      Src: /src/cpython/Modules/_csv.c:1488,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1489,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_csv.c:1490,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_csv.c:1491,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_csv.c:1493,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_csv.c:1495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1497
    functionName: Writer_dealloc
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - _WriterObj_CAST
    - PyObject_GC_Del
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void Writer_dealloc(PyObject *op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1529,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_csv.c:1530,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_csv.c:1543,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_csv.c:1545,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1546,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_csv.c:1549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1552,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_csv.c:1555,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:1556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1558,1
    - Dst: _call_dialect
      Src: /src/cpython/Modules/_csv.c:1561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1564,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_csv.c:1567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - keyword_args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1525
    functionDepth: 2
    functionLinenumber: 1525
    functionLinenumberEnd: 1569
    functionName: csv_writer
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - get_csv_state
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PyCallable_Check
    - _call_dialect
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _csv_list_dialects_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1592,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_csv.c:1595,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:1597,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:1598,1
    - Dst: _call_dialect
      Src: /src/cpython/Modules/_csv.c:1602,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_csv.c:1605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1611
    functionName: csv_register_dialect
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - get_csv_state
    - PyErr_SetString
    - PyArg_UnpackTuple
    - _call_dialect
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_register_dialect(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1626,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_csv.c:1627,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1636
    functionName: _csv_unregister_dialect_impl
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyDict_Pop
    - get_csv_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _csv_unregister_dialect_impl(PyObject *module, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_dialect_from_registry
      Src: /src/cpython/Modules/_csv.c:1650,1
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1651
    functionName: _csv_get_dialect_impl
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_dialect_from_registry
    - get_csv_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _csv_get_dialect_impl(PyObject *module, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1668,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_csv.c:1669,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_csv.c:1671,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1672,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_csv.c:1676,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:1677,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_csv.c:1680,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_csv.c:1682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - module
    - new_limit
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1664
    functionDepth: 2
    functionLinenumber: 1664
    functionLinenumberEnd: 1683
    functionName: _csv_field_size_limit_impl
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - get_csv_state
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_CheckExact
    - PyErr_Format
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _csv_field_size_limit_impl(PyObject *module, PyObject *new_limit)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1753,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1755,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1757,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1761,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1763,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1767,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1769,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_csv.c:1777,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1778,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_csv.c:1784,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_csv.c:1790,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1796,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_csv.c:1800,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_csv.c:1804,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1749
    functionDepth: 2
    functionLinenumber: 1749
    functionLinenumberEnd: 1809
    functionName: csv_exec
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyUnicode_InternFromString
    - Py_DECREF
    - get_csv_state
    - PyModule_AddObjectRef
    - PyModule_AddIntConstant
    - PyType_FromModuleAndSpec
    - PyDict_New
    - PyTuple_Pack
    linkageType: ''
    returnType: int
    signature: int csv_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_csv.c:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1830
    functionDepth: 1
    functionLinenumber: 1830
    functionLinenumberEnd: 1834
    functionName: PyInit__csv
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__csv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStatus_Error
      Src: /src/cpython/Modules/getpath_noop.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - compute_path_config
    argTypes:
    - PyConfig*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 10
    functionName: _PyConfig_InitPathConfig
    functionSourceFile: /src/cpython/Modules/getpath_noop.c
    functionUses: 0
    functionsReached:
    - PyStatus_Error
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - custom_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: custom_converter
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int custom_converter(PyObject *obj, custom_t *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:32,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:32,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testclinic.c:33,1
    - Dst: va_start
      Src: /src/cpython/Modules/_testclinic.c:39,1
    - Dst: va_arg
      Src: /src/cpython/Modules/_testclinic.c:41,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Modules/_testclinic.c:43,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testclinic.c:44,1
    - Dst: va_end
      Src: /src/cpython/Modules/_testclinic.c:47,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:48,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testclinic.c:55,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testclinic.c:55,1
    - Dst: va_end
      Src: /src/cpython/Modules/_testclinic.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - argc
    argTypes:
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Modules/_testclinic.c
    constantsTouched: []
    func_position:
      end: 59
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 59
    functionName: pack_arguments_newref
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - Py_NewRef
    - va_arg
    - va_start
    - _PyObject_IsFreed
    - PyErr_Format
    - assert
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pack_arguments_newref(int argc, ...)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/_testclinic.c:66,1
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:70,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - a
    - b
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: pack_arguments_2pos_varpos
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    - Py_DECREF
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npack_arguments_2pos_varpos(PyObject *a, PyObject *b,\n
      \                          PyObject * const *args, Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - argc
    - ','
    - wrapper
    - ','
    - arg_type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 105
    functionName: RETURN_PACKED_ARGS
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_PACKED_ARGS(argc, wrapper, arg_type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: test_empty_function_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_empty_function_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: objects_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      objects_converter_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_testclinic.c:155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testclinic.c:156,1
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: bytes_object_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyErr_SetString
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_object_converter_impl(PyObject *module, PyBytesObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_testclinic.c:176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testclinic.c:177,1
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: byte_array_object_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Check
    - PyErr_SetString
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      byte_array_object_converter_impl(PyObject *module, PyByteArrayObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testclinic.c:197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testclinic.c:198,1
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: unicode_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_SetString
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_converter_impl(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: bool_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_converter_impl(PyObject *module, int a, int b, int c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testclinic.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: bool_converter_c_default_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_converter_c_default_impl(PyObject *module, int a, int b, int c, int d)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 15
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    - f
    - g
    - h
    - i
    - j
    - k
    - l
    - m
    - n
    argTypes:
    - PyObject*
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: char_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nchar_converter_impl(PyObject *module, char a, char b,
      char c, char d, char e,\n                    char f, char g, char h, char i,
      char j, char k, char l,\n                    char m, char n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - unsigned char
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: unsigned_char_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunsigned_char_converter_impl(PyObject *module, unsigned
      char a,\n                             unsigned char b, unsigned char c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: short_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      short_converter_impl(PyObject *module, short a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - unsigned short
    - unsigned short
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: unsigned_short_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunsigned_short_converter_impl(PyObject *module, unsigned
      short a,\n                              unsigned short b, unsigned short c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: int_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_converter_impl(PyObject *module, int a, int b, int c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: unsigned_int_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunsigned_int_converter_impl(PyObject *module, unsigned
      int a, unsigned int b,\n                            unsigned int c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: long_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_converter_impl(PyObject *module, long a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: unsigned_long_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunsigned_long_converter_impl(PyObject *module, unsigned
      long a,\n                             unsigned long b, unsigned long c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: long_long_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long_converter_impl(PyObject *module, long long a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - unsigned long long
    - unsigned long long
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 437
    functionName: unsigned_long_long_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunsigned_long_long_converter_impl(PyObject *module, unsigned
      long long a,\n                                  unsigned long long b, unsigned
      long long c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 456
    functionName: py_ssize_t_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_ssize_t_converter_impl(PyObject *module, Py_ssize_t
      a, Py_ssize_t b,\n                          Py_ssize_t c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 475
    functionName: slice_index_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nslice_index_converter_impl(PyObject *module, Py_ssize_t
      a, Py_ssize_t b,\n                           Py_ssize_t c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: size_t_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      size_t_converter_impl(PyObject *module, size_t a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: float_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_converter_impl(PyObject *module, float a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: double_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_converter_impl(PyObject *module, double a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: py_complex_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_complex_converter_impl(PyObject *module, Py_complex a)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:557,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:557,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:562,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:563,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:563,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:569,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:570,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:570,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_testclinic.c:576,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:577,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:577,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testclinic.c:583,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testclinic.c:588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:594,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - c_length
    argTypes:
    - PyObject*
    - char*
    - char*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/cpython/Modules/_testclinic.c
    constantsTouched: []
    func_position:
      end: 597
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 597
    functionName: str_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyTuple_New
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstr_converter_impl(PyObject *module, const char *a, const
      char *b,\n                   const char *c, Py_ssize_t c_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:615,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:620,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:621,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:621,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:627,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:628,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:628,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_testclinic.c:634,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:635,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:635,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testclinic.c:641,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testclinic.c:646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:652,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - c_length
    argTypes:
    - PyObject*
    - char*
    - char*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 634
        line_start: 634
        source_file: /src/cpython/Modules/_testclinic.c
    constantsTouched: []
    func_position:
      end: 655
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 655
    functionName: str_converter_encoding_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyTuple_New
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstr_converter_encoding_impl(PyObject *module, char *a,
      char *b, char *c,\n                            Py_ssize_t c_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testclinic.c:661,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Modules/_testclinic.c:666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 671
    functionName: bytes_from_buffer
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBuffer_ToContiguous
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_from_buffer(Py_buffer *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: py_buffer_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - RETURN_PACKED_ARGS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_buffer_converter_impl(PyObject *module, Py_buffer *a, Py_buffer *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: keywords_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: keywords_kwonly_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 737
    functionName: keywords_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 757
    functionName: keywords_opt_kwonly_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nkeywords_opt_kwonly_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                         PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 776
    functionName: keywords_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nkeywords_kwonly_opt_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                         PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: posonly_keywords_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_keywords_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 811
    functionName: posonly_kwonly_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_kwonly_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 831
    functionName: posonly_keywords_kwonly_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_keywords_kwonly_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                             PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 851
    functionName: posonly_keywords_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_keywords_opt_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                          PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 871
    functionName: posonly_opt_keywords_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_opt_keywords_opt_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                              PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 892
    functionName: posonly_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_kwonly_opt_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                        PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 913
    functionName: posonly_opt_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_opt_kwonly_opt_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                            PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 935
    functionName: posonly_keywords_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_keywords_kwonly_opt_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                                 PyObject *c, PyObject *d,
      PyObject *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 951
    functionDepth: 2
    functionLinenumber: 951
    functionLinenumberEnd: 958
    functionName: posonly_keywords_opt_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_keywords_opt_kwonly_opt_impl(PyObject *module,
      PyObject *a,\n                                     PyObject *b, PyObject *c,
      PyObject *d,\n                                     PyObject *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 973
    functionDepth: 2
    functionLinenumber: 973
    functionLinenumberEnd: 980
    functionName: posonly_opt_keywords_opt_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_opt_keywords_opt_kwonly_opt_impl(PyObject *module,
      PyObject *a,\n                                         PyObject *b, PyObject
      *c,\n                                         PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 2
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: keyword_only_parameter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keyword_only_parameter_impl(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testclinic.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1011
    functionName: varpos_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      varpos_impl(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1030
    functionName: posonly_varpos_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_varpos_impl(PyObject *module, PyObject *a, PyObject
      *b,\n                    PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1043
    functionDepth: 2
    functionLinenumber: 1043
    functionLinenumberEnd: 1049
    functionName: posonly_req_opt_varpos_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_req_opt_varpos_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                            PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 2
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: posonly_poskw_varpos_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_poskw_varpos_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                          PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1084
    functionName: poskw_varpos_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      poskw_varpos_impl(PyObject *module, PyObject *a, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - args
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1103
    functionName: poskw_varpos_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposkw_varpos_kwonly_opt_impl(PyObject *module, PyObject
      *a, PyObject *args,\n                             int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - args
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1122
    functionName: poskw_varpos_kwonly_opt2_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposkw_varpos_kwonly_opt2_impl(PyObject *module, PyObject
      *a, PyObject *args,\n                              PyObject *b, PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - args
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1133
    functionDepth: 2
    functionLinenumber: 1133
    functionLinenumberEnd: 1138
    functionName: varpos_kwonly_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      varpos_kwonly_opt_impl(PyObject *module, PyObject *args, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - args
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1157
    functionName: varpos_kwonly_req_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nvarpos_kwonly_req_opt_impl(PyObject *module, PyObject
      *args, PyObject *a,\n                           PyObject *b, PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/_testclinic.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1173
    functionName: varpos_array_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nvarpos_array_impl(PyObject *module, PyObject * const *args,\n
      \                 Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_2pos_varpos
      Src: /src/cpython/Modules/_testclinic.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1186
    functionDepth: 3
    functionLinenumber: 1186
    functionLinenumberEnd: 1192
    functionName: posonly_varpos_array_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_2pos_varpos
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_varpos_array_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                          PyObject * const *args, Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_2pos_varpos
      Src: /src/cpython/Modules/_testclinic.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1212
    functionName: posonly_req_opt_varpos_array_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_2pos_varpos
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_req_opt_varpos_array_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                                  PyObject * const *args,\n
      \                                 Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_2pos_varpos
      Src: /src/cpython/Modules/_testclinic.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1225
    functionDepth: 3
    functionLinenumber: 1225
    functionLinenumberEnd: 1232
    functionName: posonly_poskw_varpos_array_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_2pos_varpos
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposonly_poskw_varpos_array_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                                PyObject * const *args,\n
      \                               Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - pos1
    - pos2
    - varargs
    - kw1
    - kw2
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1255
    functionName: gh_32092_oob_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ngh_32092_oob_impl(PyObject *module, PyObject *pos1, PyObject
      *pos2,\n                  PyObject *varargs, PyObject *kw1, PyObject *kw2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - pos
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1275
    functionName: gh_32092_kw_pass_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ngh_32092_kw_pass_impl(PyObject *module, PyObject *pos,
      PyObject *args,\n                      PyObject *kw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1292
    functionName: gh_99233_refcount_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_99233_refcount_impl(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1311
    functionName: gh_99240_double_free_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_99240_double_free_impl(PyObject *module, char *a, char *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:1328,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:1329,1
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - module
    - name
    - constraints
    - covariant
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 1327
        line_start: 1327
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (constraints != NULL)
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/cpython/Modules/_testclinic.c
    constantsTouched: []
    func_position:
      end: 1332
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1332
    functionName: null_or_tuple_for_varargs_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnull_or_tuple_for_varargs_impl(PyObject *module, PyObject
      *name,\n                               PyObject *constraints, int covariant)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1344
    functionName: clone_f1_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_f1_impl(PyObject *module, const char *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1356
    functionName: clone_f2_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_f2_impl(PyObject *module, const char *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - custom_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1383
    functionName: clone_with_conv_f1_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_with_conv_f1_impl(PyObject *module, custom_t path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - custom_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1395
    functionName: clone_with_conv_f2_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_with_conv_f2_impl(PyObject *module, custom_t path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testclinic.c:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1414
    functionName: _testclinic_TestClass_get_defining_class_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_get_defining_class_impl(PyObject
      *self,\n                                              PyTypeObject *cls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testclinic.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - arg
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1429
    functionName: _testclinic_TestClass_get_defining_class_arg_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_get_defining_class_arg_impl(PyObject
      *self,\n                                                  PyTypeObject *cls,\n
      \                                                 PyObject *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testclinic.c:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - args
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1443
    functionName: _testclinic_TestClass_defclass_varpos_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_defclass_varpos_impl(PyObject *self,
      PyTypeObject *cls,\n                                           PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - cls
    - a
    - b
    - args
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1454
    functionDepth: 2
    functionLinenumber: 1454
    functionLinenumberEnd: 1462
    functionName: _testclinic_TestClass_defclass_posonly_varpos_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_defclass_posonly_varpos_impl(PyObject
      *self,\n                                                   PyTypeObject *cls,\n
      \                                                  PyObject *a, PyObject *b,\n
      \                                                  PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testclinic.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1521
    functionName: _testclinic_TestClass_varpos_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_varpos_no_fastcall_impl(PyTypeObject
      *type,\n                                              PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - a
    - b
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1544
    functionName: _testclinic_TestClass_posonly_varpos_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_posonly_varpos_no_fastcall_impl(PyTypeObject
      *type,\n                                                      PyObject *a,\n
      \                                                     PyObject *b,\n                                                      PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - a
    - b
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1559
    functionDepth: 2
    functionLinenumber: 1559
    functionLinenumberEnd: 1567
    functionName: _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_posonly_req_opt_varpos_no_fastcall_impl(PyTypeObject
      *type,\n                                                              PyObject
      *a,\n                                                              PyObject
      *b,\n                                                              PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - a
    - b
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1582
    functionDepth: 2
    functionLinenumber: 1582
    functionLinenumberEnd: 1590
    functionName: _testclinic_TestClass_posonly_poskw_varpos_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_posonly_poskw_varpos_no_fastcall_impl(PyTypeObject
      *type,\n                                                            PyObject
      *a,\n                                                            PyObject *b,\n
      \                                                           PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/_testclinic.c:1608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - args_length
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1609
    functionName: _testclinic_TestClass_varpos_array_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_varpos_array_no_fastcall_impl(PyTypeObject
      *type,\n                                                    PyObject * const
      *args,\n                                                    Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_2pos_varpos
      Src: /src/cpython/Modules/_testclinic.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - type
    - a
    - b
    - args
    - args_length
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1624
    functionDepth: 3
    functionLinenumber: 1624
    functionLinenumberEnd: 1633
    functionName: _testclinic_TestClass_posonly_varpos_array_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_2pos_varpos
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_posonly_varpos_array_no_fastcall_impl(PyTypeObject
      *type,\n                                                            PyObject
      *a,\n                                                            PyObject *b,\n
      \                                                           PyObject * const
      *args,\n                                                            Py_ssize_t
      args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_2pos_varpos
      Src: /src/cpython/Modules/_testclinic.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - type
    - a
    - b
    - args
    - args_length
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1648
    functionDepth: 3
    functionLinenumber: 1648
    functionLinenumberEnd: 1657
    functionName: _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_2pos_varpos
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall_impl(PyTypeObject
      *type,\n                                                                    PyObject
      *a,\n                                                                    PyObject
      *b,\n                                                                    PyObject
      * const *args,\n                                                                    Py_ssize_t
      args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_2pos_varpos
      Src: /src/cpython/Modules/_testclinic.c:1680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - type
    - a
    - b
    - args
    - args_length
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1672
    functionDepth: 3
    functionLinenumber: 1672
    functionLinenumberEnd: 1681
    functionName: _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_2pos_varpos
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall_impl(PyTypeObject
      *type,\n                                                                  PyObject
      *a,\n                                                                  PyObject
      *b,\n                                                                  PyObject
      * const *args,\n                                                                  Py_ssize_t
      args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testclinic.c:1746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - a
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1747
    functionName: depr_star_new_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_new_impl(PyTypeObject *type, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1758
    functionName: depr_star_new_clone_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_new_clone_impl(PyObject *type, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1788
    functionName: depr_star_init_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int depr_star_init_impl(PyObject *self, PyObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1799
    functionName: depr_star_init_clone_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_init_clone_impl(PyObject *self, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - self
    - a
    - b
    - c
    - d
    - d_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1835
    functionName: depr_star_init_noinline_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int depr_star_init_noinline_impl(PyObject *self, PyObject *a, PyObject
      *b,\n                             PyObject *c, const char *d, Py_ssize_t d_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testclinic.c:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - a
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1861
    functionName: depr_kwd_new_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_new_impl(PyTypeObject *type, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1885
    functionName: depr_kwd_init_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int depr_kwd_init_impl(PyObject *self, PyObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - self
    - a
    - b
    - c
    - d
    - d_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1915
    functionName: depr_kwd_init_noinline_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int depr_kwd_init_noinline_impl(PyObject *self, PyObject *a, PyObject
      *b,\n                            PyObject *c, const char *d, Py_ssize_t d_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1938
    functionName: depr_star_pos0_len1_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos0_len1_impl(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 1953
    functionName: depr_star_pos0_len2_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos0_len2_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1972
    functionName: depr_star_pos0_len3_with_kwd_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_star_pos0_len3_with_kwd_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                                  PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 1987
    functionName: depr_star_pos1_len1_opt_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos1_len1_opt_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1997
    functionDepth: 0
    functionLinenumber: 1997
    functionLinenumberEnd: 2002
    functionName: depr_star_pos1_len1_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos1_len1_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2015
    functionDepth: 0
    functionLinenumber: 2015
    functionLinenumberEnd: 2021
    functionName: depr_star_pos1_len2_with_kwd_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_star_pos1_len2_with_kwd_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                                  PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2038
    functionName: depr_star_pos2_len1_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_star_pos2_len1_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                         PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - c
    - d
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2050
    functionDepth: 0
    functionLinenumber: 2050
    functionLinenumberEnd: 2056
    functionName: depr_star_pos2_len2_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_star_pos2_len2_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                         PyObject *c, PyObject *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2076
    functionName: depr_star_pos2_len2_with_kwd_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_star_pos2_len2_with_kwd_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                                  PyObject *c, PyObject *d,
      PyObject *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - a
    - b
    - c
    - d
    - d_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2096
    functionName: depr_star_noinline_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_star_noinline_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                        PyObject *c, const char *d, Py_ssize_t
      d_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    - f
    - g
    - h
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2122
    functionName: depr_star_multi_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_star_multi_impl(PyObject *module, PyObject *a, PyObject
      *b, PyObject *c,\n                     PyObject *d, PyObject *e, PyObject *f,
      PyObject *g,\n                     PyObject *h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2133
    functionDepth: 0
    functionLinenumber: 2133
    functionLinenumberEnd: 2138
    functionName: depr_kwd_required_1_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_required_1_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2156
    functionName: depr_kwd_required_2_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_kwd_required_2_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                         PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2167
    functionDepth: 0
    functionLinenumber: 2167
    functionLinenumberEnd: 2172
    functionName: depr_kwd_optional_1_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_optional_1_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2190
    functionName: depr_kwd_optional_2_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_kwd_optional_2_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                         PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2207
    functionName: depr_kwd_optional_3_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_kwd_optional_3_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                         PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2219
    functionDepth: 0
    functionLinenumber: 2219
    functionLinenumberEnd: 2225
    functionName: depr_kwd_required_optional_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_kwd_required_optional_impl(PyObject *module, PyObject
      *a, PyObject *b,\n                                PyObject *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - a
    - b
    - c
    - d
    - d_length
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2245
    functionName: depr_kwd_noinline_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_kwd_noinline_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                       PyObject *c, const char *d, Py_ssize_t
      d_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    - f
    - g
    - h
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2271
    functionName: depr_kwd_multi_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_kwd_multi_impl(PyObject *module, PyObject *a, PyObject
      *b, PyObject *c,\n                    PyObject *d, PyObject *e, PyObject *f,
      PyObject *g,\n                    PyObject *h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    - f
    - g
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2297
    functionName: depr_multi_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndepr_multi_impl(PyObject *module, PyObject *a, PyObject
      *b, PyObject *c,\n                PyObject *d, PyObject *e, PyObject *f, PyObject
      *g)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testclinic.c:2415,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testclinic.c:2420,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2422,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2425,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2428,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2431,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2434,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2437,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:2446,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2412
    functionDepth: 1
    functionLinenumber: 2412
    functionLinenumberEnd: 2448
    functionName: PyInit__testclinic
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyModule_Create
    - Py_DECREF
    - PyUnstable_Module_SetGIL
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testclinic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFNumberGetValue
      Src: /src/cpython/Modules/_scproxy.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - CFNumberRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: cfnum_to_int32
    functionSourceFile: /src/cpython/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/cpython/Modules/_scproxy.c:29,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_scproxy.c:31,1
    - Dst: strlen
      Src: /src/cpython/Modules/_scproxy.c:31,1
    - Dst: CFStringGetLength
      Src: /src/cpython/Modules/_scproxy.c:34,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_scproxy.c:39,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_scproxy.c:41,1
    - Dst: CFStringGetCString
      Src: /src/cpython/Modules/_scproxy.c:45,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_scproxy.c:49,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_scproxy.c:52,1
    - Dst: strlen
      Src: /src/cpython/Modules/_scproxy.c:52,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_scproxy.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ref
    argTypes:
    - CFStringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 57
    functionName: cfstring_to_pystring
    functionSourceFile: /src/cpython/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - CFStringGetCStringPtr
    - strlen
    - CFStringGetLength
    - PyUnicode_DecodeUTF8
    - PyMem_Free
    - CFStringGetCString
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cfstring_to_pystring(CFStringRef ref)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreCopyProxies
      Src: /src/cpython/Modules/_scproxy.c:71,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_scproxy.c:78,1
    - Dst: CFDictionaryGetValue
      Src: /src/cpython/Modules/_scproxy.c:81,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_scproxy.c:84,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_scproxy.c:86,1
    - Dst: cfnum_to_int32
      Src: /src/cpython/Modules/_scproxy.c:86,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_scproxy.c:91,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_scproxy.c:92,1
    - Dst: CFDictionaryGetValue
      Src: /src/cpython/Modules/_scproxy.c:95,1
    - Dst: CFArrayGetCount
      Src: /src/cpython/Modules/_scproxy.c:98,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_scproxy.c:100,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_scproxy.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_scproxy.c:104,1
    - Dst: CFArrayGetValueAtIndex
      Src: /src/cpython/Modules/_scproxy.c:110,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_scproxy.c:112,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_scproxy.c:112,1
    - Dst: cfstring_to_pystring
      Src: /src/cpython/Modules/_scproxy.c:114,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_scproxy.c:116,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_scproxy.c:116,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_scproxy.c:118,1
    - Dst: CFRelease
      Src: /src/cpython/Modules/_scproxy.c:124,1
    - Dst: CFRelease
      Src: /src/cpython/Modules/_scproxy.c:128,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_scproxy.c:129,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - Py_UNUSED(mod)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 131
    functionName: get_proxy_settings
    functionSourceFile: /src/cpython/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SetItem
    - CFDictionaryGetValue
    - cfstring_to_pystring
    - Py_NewRef
    - CFRelease
    - PyDict_SetItemString
    - PyDict_New
    - cfnum_to_int32
    - PyBool_FromLong
    - CFArrayGetValueAtIndex
    - Py_CLEAR
    - CFArrayGetCount
    - SCDynamicStoreCopyProxies
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_proxy_settings(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CFDictionaryGetValue
      Src: /src/cpython/Modules/_scproxy.c:140,1
    - Dst: cfnum_to_int32
      Src: /src/cpython/Modules/_scproxy.c:141,1
    - Dst: CFDictionaryGetValue
      Src: /src/cpython/Modules/_scproxy.c:144,1
    - Dst: CFDictionaryGetValue
      Src: /src/cpython/Modules/_scproxy.c:145,1
    - Dst: cfstring_to_pystring
      Src: /src/cpython/Modules/_scproxy.c:149,1
    - Dst: cfnum_to_int32
      Src: /src/cpython/Modules/_scproxy.c:153,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_scproxy.c:154,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_scproxy.c:156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_scproxy.c:158,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_scproxy.c:160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_scproxy.c:161,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: 168
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 168
    functionName: set_proxy
    functionSourceFile: /src/cpython/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - CFDictionaryGetValue
    - cfstring_to_pystring
    - PyDict_SetItemString
    - cfnum_to_int32
    linkageType: ''
    returnType: int
    signature: "int set_proxy(PyObject* proxies, const char* proto, CFDictionaryRef
      proxyDict,\n                CFStringRef enabledKey,\n                CFStringRef
      hostKey, CFStringRef portKey)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreCopyProxies
      Src: /src/cpython/Modules/_scproxy.c:180,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_scproxy.c:184,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_scproxy.c:187,1
    - Dst: set_proxy
      Src: /src/cpython/Modules/_scproxy.c:190,1
    - Dst: set_proxy
      Src: /src/cpython/Modules/_scproxy.c:195,1
    - Dst: set_proxy
      Src: /src/cpython/Modules/_scproxy.c:200,1
    - Dst: set_proxy
      Src: /src/cpython/Modules/_scproxy.c:205,1
    - Dst: set_proxy
      Src: /src/cpython/Modules/_scproxy.c:210,1
    - Dst: CFRelease
      Src: /src/cpython/Modules/_scproxy.c:216,1
    - Dst: CFRelease
      Src: /src/cpython/Modules/_scproxy.c:219,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_scproxy.c:220,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - Py_UNUSED(mod)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 222
    functionName: get_proxies
    functionSourceFile: /src/cpython/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - set_proxy
    - CFRelease
    - PyDict_New
    - SCDynamicStoreCopyProxies
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_proxies(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_scproxy.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: PyInit__scproxy
    functionSourceFile: /src/cpython/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__scproxy(void)
  - 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: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: OverlappedObject_CAST
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OverlappedObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/overlapped.c:133,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: steal_buffer
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void steal_buffer(Py_buffer * dst, Py_buffer * src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:147,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - err
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: SetFromWindowsErr
    functionSourceFile: /src/cpython/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: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: GET_WSA_POINTER
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WSA_POINTER(s, x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/cpython/Modules/overlapped.c:195,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:197,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:197,1
    - Dst: GET_WSA_POINTER
      Src: /src/cpython/Modules/overlapped.c:201,1
    - Dst: GET_WSA_POINTER
      Src: /src/cpython/Modules/overlapped.c:202,1
    - Dst: GET_WSA_POINTER
      Src: /src/cpython/Modules/overlapped.c:203,1
    - Dst: GET_WSA_POINTER
      Src: /src/cpython/Modules/overlapped.c:204,1
    - Dst: closesocket
      Src: /src/cpython/Modules/overlapped.c:206,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:207,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:207,1
    - Dst: closesocket
      Src: /src/cpython/Modules/overlapped.c:211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 213
    functionName: initialize_function_pointers
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - closesocket
    - WSAGetLastError
    - SetFromWindowsErr
    - socket
    - GET_WSA_POINTER
    linkageType: ''
    returnType: int
    signature: int initialize_function_pointers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateIoCompletionPort
      Src: /src/cpython/Modules/overlapped.c:241,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:246,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - module
    - FileHandle
    - ExistingCompletionPort
    - CompletionKey
    - NumberOfConcurrentThreads
    argTypes:
    - PyObject*
    - HANDLE
    - HANDLE
    - ULONG_PTR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: _overlapped_CreateIoCompletionPort_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - SetFromWindowsErr
    - CreateIoCompletionPort
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_CreateIoCompletionPort_impl(PyObject *module,
      HANDLE FileHandle,\n                                        HANDLE ExistingCompletionPort,\n
      \                                       ULONG_PTR CompletionKey,\n                                        DWORD
      NumberOfConcurrentThreads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetQueuedCompletionStatus
      Src: /src/cpython/Modules/overlapped.c:275,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:279,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:284,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - CompletionPort
    - Milliseconds
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 288
    functionName: _overlapped_GetQueuedCompletionStatus_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetFromWindowsErr
    - GetQueuedCompletionStatus
    - GetLastError
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_GetQueuedCompletionStatus_impl(PyObject *module,\n
      \                                          HANDLE CompletionPort,\n                                           DWORD
      Milliseconds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PostQueuedCompletionStatus
      Src: /src/cpython/Modules/overlapped.c:313,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - module
    - CompletionPort
    - NumberOfBytes
    - CompletionKey
    - Overlapped
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    - ULONG_PTR
    - OVERLAPPED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 320
    functionName: _overlapped_PostQueuedCompletionStatus_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PostQueuedCompletionStatus
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_PostQueuedCompletionStatus_impl(PyObject *module,\n
      \                                           HANDLE CompletionPort,\n                                            DWORD
      NumberOfBytes,\n                                            ULONG_PTR CompletionKey,\n
      \                                           OVERLAPPED *Overlapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PostQueuedCompletionStatus
      Src: /src/cpython/Modules/overlapped.c:336,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/overlapped.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lpParameter
    - TimerOrWaitFired
    argTypes:
    - PVOID
    - BOOLEAN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: PostToQueueCallback
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PostQueuedCompletionStatus
    - PyMem_RawFree
    linkageType: ''
    returnType: VOID
    signature: VOID PostToQueueCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/overlapped.c:367,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:369,1
    - Dst: RegisterWaitForSingleObject
      Src: /src/cpython/Modules/overlapped.c:373,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:377,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/overlapped.c:378,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - module
    - Object
    - CompletionPort
    - Overlapped
    - Milliseconds
    argTypes:
    - PyObject*
    - HANDLE
    - HANDLE
    - OVERLAPPED*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 383
    functionName: _overlapped_RegisterWaitWithQueue_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyMem_RawFree
    - RegisterWaitForSingleObject
    - SetFromWindowsErr
    - PyMem_RawMalloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_RegisterWaitWithQueue_impl(PyObject *module,
      HANDLE Object,\n                                       HANDLE CompletionPort,\n
      \                                      OVERLAPPED *Overlapped,\n                                       DWORD
      Milliseconds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterWait
      Src: /src/cpython/Modules/overlapped.c:401,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - WaitHandle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 407
    functionName: _overlapped_UnregisterWait_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetFromWindowsErr
    - UnregisterWait
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_UnregisterWait_impl(PyObject *module, HANDLE WaitHandle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterWaitEx
      Src: /src/cpython/Modules/overlapped.c:427,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - WaitHandle
    - Event
    argTypes:
    - PyObject*
    - HANDLE
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 433
    functionName: _overlapped_UnregisterWaitEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetFromWindowsErr
    - UnregisterWaitEx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_UnregisterWaitEx_impl(PyObject *module, HANDLE
      WaitHandle,\n                                  HANDLE Event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:462,1
    - Dst: CreateEventW
      Src: /src/cpython/Modules/overlapped.c:467,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:471,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - module
    - EventAttributes
    - ManualReset
    - InitialState
    - Name
    argTypes:
    - PyObject*
    - PyObject*
    - BOOL
    - BOOL
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 473
    functionName: _overlapped_CreateEvent_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - CreateEventW
    - SetFromWindowsErr
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_CreateEvent_impl(PyObject *module, PyObject
      *EventAttributes,\n                             BOOL ManualReset, BOOL InitialState,\n
      \                            const wchar_t *Name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/cpython/Modules/overlapped.c:491,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 497
    functionName: _overlapped_SetEvent_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetEvent
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_SetEvent_impl(PyObject *module, HANDLE Handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResetEvent
      Src: /src/cpython/Modules/overlapped.c:515,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 521
    functionName: _overlapped_ResetEvent_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetFromWindowsErr
    - ResetEvent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_ResetEvent_impl(PyObject *module, HANDLE Handle)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:547,1
    - Dst: bind
      Src: /src/cpython/Modules/overlapped.c:551,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:555,1
    - Dst: bind
      Src: /src/cpython/Modules/overlapped.c:559,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:562,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:567,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - module
    - Socket
    - Family
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 569
    functionName: _overlapped_BindLocal_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - bind
    - memset
    - WSAGetLastError
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_BindLocal_impl(PyObject *module, HANDLE Socket, int Family)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageW
      Src: /src/cpython/Modules/overlapped.c:592,1
    - Dst: MAKELANGID
      Src: /src/cpython/Modules/overlapped.c:597,1
    - Dst: iswspace
      Src: /src/cpython/Modules/overlapped.c:602,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/overlapped.c:604,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/overlapped.c:606,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/overlapped.c:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - code
    argTypes:
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 610
    functionName: _overlapped_FormatMessage_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - LocalFree
    - PyUnicode_FromFormat
    - iswspace
    - FormatMessageW
    - PyUnicode_FromWideChar
    - MAKELANGID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_FormatMessage_impl(PyObject *module, DWORD code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/cpython/Modules/overlapped.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ov
    argTypes:
    - OVERLAPPED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: mark_as_completed
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void mark_as_completed(OVERLAPPED *ov)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CreateEvent
      Src: /src/cpython/Modules/overlapped.c:646,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:648,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/overlapped.c:651,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/overlapped.c:654,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:662,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:663,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - type
    - event
    argTypes:
    - PyTypeObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 667
    functionName: _overlapped_Overlapped_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - CreateEvent
    - PyObject_New
    - memset
    - SetFromWindowsErr
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_impl(PyTypeObject *type, HANDLE event)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:684,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:693,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:696,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:703,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/overlapped.c:706,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/overlapped.c:714,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 720
    functionName: Overlapped_clear
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void Overlapped_clear(OverlappedObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:726,1
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/overlapped.c:729,1
    - Dst: HasOverlappedIoCompleted
      Src: /src/cpython/Modules/overlapped.c:731,1
    - Dst: CancelIoEx
      Src: /src/cpython/Modules/overlapped.c:753,1
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/overlapped.c:756,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:760,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/overlapped.c:766,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/overlapped.c:770,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/overlapped.c:776,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:779,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/overlapped.c:780,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/overlapped.c:782,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/overlapped.c:783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:784,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 785
    functionName: Overlapped_dealloc
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Free
    - SetLastError
    - GetOverlappedResult
    - GetLastError
    - PyErr_FormatUnraisable
    - OverlappedObject_CAST
    - CancelIoEx
    - Overlapped_clear
    - PyErr_Format
    - CloseHandle
    - Py_TYPE
    - HasOverlappedIoCompleted
    linkageType: ''
    returnType: void
    signature: void Overlapped_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/cpython/Modules/overlapped.c:794,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/overlapped.c:795,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/overlapped.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: make_ipv4_addr
    functionSourceFile: /src/cpython/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/cpython/Modules/overlapped.c:807,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/overlapped.c:808,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/overlapped.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 812
    functionName: make_ipv6_addr
    functionSourceFile: /src/cpython/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/cpython/Modules/overlapped.c:822,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:825,1
    - Dst: ntohs
      Src: /src/cpython/Modules/overlapped.c:825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:826,1
    - Dst: make_ipv6_addr
      Src: /src/cpython/Modules/overlapped.c:832,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:835,1
    - Dst: ntohs
      Src: /src/cpython/Modules/overlapped.c:837,1
    - Dst: ntohl
      Src: /src/cpython/Modules/overlapped.c:838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:840,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - Address
    - Length
    argTypes:
    - LPSOCKADDR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 849
    functionName: unparse_address
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - ntohs
    - make_ipv4_addr
    - PyErr_SetString
    - make_ipv6_addr
    - ntohl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unparse_address(LPSOCKADDR Address, DWORD Length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HasOverlappedIoCompleted
      Src: /src/cpython/Modules/overlapped.c:867,1
    - Dst: CancelIoEx
      Src: /src/cpython/Modules/overlapped.c:869,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:874,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 877
    functionName: _overlapped_Overlapped_cancel_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - CancelIoEx
    - SetFromWindowsErr
    - GetLastError
    - HasOverlappedIoCompleted
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_cancel_impl(OverlappedObject *self)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:901,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:906,1
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/overlapped.c:911,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:915,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:937,1
    - Dst: assert
      Src: /src/cpython/Modules/overlapped.c:942,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/overlapped.c:942,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/overlapped.c:943,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/overlapped.c:944,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:947,1
    - Dst: assert
      Src: /src/cpython/Modules/overlapped.c:949,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/overlapped.c:949,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/overlapped.c:951,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/overlapped.c:953,1
    - Dst: unparse_address
      Src: /src/cpython/Modules/overlapped.c:959,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/overlapped.c:967,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:969,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/overlapped.c:974,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:975,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/overlapped.c:977,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:979,1
    - Dst: unparse_address
      Src: /src/cpython/Modules/overlapped.c:982,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/overlapped.c:990,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:992,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/overlapped.c:997,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/overlapped.c:998,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/overlapped.c:1000,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:1002,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/overlapped.c:1004,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 2
    argNames:
    - self
    - wait
    argTypes:
    - OverlappedObject*
    - BOOL
    assertStmts:
    - condition: (PyBytes_CheckExact(self->allocated_buffer))
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/cpython/Modules/overlapped.c
    - condition: (PyBytes_CheckExact(self->read_from.allocated_buffer))
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/cpython/Modules/overlapped.c
    constantsTouched: []
    func_position:
      end: 1006
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 1006
    functionName: _overlapped_Overlapped_getresult_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - unparse_address
    - PyTuple_New
    - PyErr_SetString
    - GetOverlappedResult
    - _PyBytes_Resize
    - GetLastError
    - PyTuple_SET_ITEM
    - Py_NewRef
    - SetFromWindowsErr
    - PyBytes_GET_SIZE
    - PyLong_FromUnsignedLong
    - PyBytes_CheckExact
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_getresult_impl(OverlappedObject *self, BOOL wait)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/cpython/Modules/overlapped.c:1017,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:1021,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1024,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1025,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1031,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - handle
    - bufstart
    - buflen
    argTypes:
    - OverlappedObject*
    - HANDLE
    - char*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1034
    functionName: do_ReadFile
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - ReadFile
    - GetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    - mark_as_completed
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndo_ReadFile(OverlappedObject *self, HANDLE handle,\n            char
      *bufstart, DWORD buflen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1054,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/overlapped.c:1059,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1061,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/overlapped.c:1061,1
    - Dst: do_ReadFile
      Src: /src/cpython/Modules/overlapped.c:1069,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - handle
    - size
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1046
    functionDepth: 3
    functionLinenumber: 1046
    functionLinenumberEnd: 1070
    functionName: _overlapped_Overlapped_ReadFile_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_MAX
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - do_ReadFile
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_ReadFile_impl(OverlappedObject
      *self, HANDLE handle,\n                                     DWORD size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1088,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1094,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1098,1
    - Dst: do_ReadFile
      Src: /src/cpython/Modules/overlapped.c:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - handle
    - bufobj
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1105
    functionName: _overlapped_Overlapped_ReadFileInto_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - steal_buffer
    - PyErr_SetString
    - do_ReadFile
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_ReadFileInto_impl(OverlappedObject
      *self,\n                                         HANDLE handle, Py_buffer *bufobj)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WSARecv
      Src: /src/cpython/Modules/overlapped.c:1120,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1124,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1127,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1128,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1134,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1135,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: 1137
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1137
    functionName: do_WSARecv
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSARecv
    - Overlapped_clear
    - WSAGetLastError
    - SetFromWindowsErr
    - mark_as_completed
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndo_WSARecv(OverlappedObject *self, HANDLE handle,\n           char
      *bufstart, DWORD buflen, DWORD flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1159,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/overlapped.c:1164,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1166,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/overlapped.c:1166,1
    - Dst: do_WSARecv
      Src: /src/cpython/Modules/overlapped.c:1174,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - handle
    - size
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1151
    functionDepth: 3
    functionLinenumber: 1151
    functionLinenumberEnd: 1175
    functionName: _overlapped_Overlapped_WSARecv_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_MAX
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - do_WSARecv
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WSARecv_impl(OverlappedObject *self,
      HANDLE handle,\n                                    DWORD size, DWORD flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1201,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1205,1
    - Dst: do_WSARecv
      Src: /src/cpython/Modules/overlapped.c:1210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - handle
    - bufobj
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1188
    functionDepth: 3
    functionLinenumber: 1188
    functionLinenumberEnd: 1212
    functionName: _overlapped_Overlapped_WSARecvInto_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - steal_buffer
    - PyErr_SetString
    - do_WSARecv
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WSARecvInto_impl(OverlappedObject
      *self,\n                                        HANDLE handle, Py_buffer *bufobj,\n
      \                                       DWORD flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1234,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1240,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1244,1
    - Dst: WriteFile
      Src: /src/cpython/Modules/overlapped.c:1250,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:1255,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1261,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - handle
    - bufobj
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1264
    functionName: _overlapped_Overlapped_WriteFile_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WriteFile
    - steal_buffer
    - PyErr_SetString
    - GetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WriteFile_impl(OverlappedObject
      *self, HANDLE handle,\n                                      Py_buffer *bufobj)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1294,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1298,1
    - Dst: WSASend
      Src: /src/cpython/Modules/overlapped.c:1306,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1310,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1316,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - self
    - handle
    - bufobj
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1319
    functionName: _overlapped_Overlapped_WSASend_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - steal_buffer
    - PyErr_SetString
    - Overlapped_clear
    - WSAGetLastError
    - WSASend
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WSASend_impl(OverlappedObject *self,
      HANDLE handle,\n                                    Py_buffer *bufobj, DWORD
      flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1344,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1349,1
    - Dst: Py_AcceptEx
      Src: /src/cpython/Modules/overlapped.c:1358,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1359,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1363,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1369,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - ListenSocket
    - AcceptSocket
    argTypes:
    - OverlappedObject*
    - HANDLE
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1372
    functionName: _overlapped_Overlapped_AcceptEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - Overlapped_clear
    - WSAGetLastError
    - SetFromWindowsErr
    - PyBytes_AS_STRING
    - Py_AcceptEx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_AcceptEx_impl(OverlappedObject
      *self,\n                                     HANDLE ListenSocket,\n                                     HANDLE
      AcceptSocket)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:1384,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/overlapped.c:1386,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/overlapped.c:1388,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/overlapped.c:1391,1
    - Dst: WSAStringToAddressW
      Src: /src/cpython/Modules/overlapped.c:1396,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1397,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1397,1
    - Dst: htons
      Src: /src/cpython/Modules/overlapped.c:1401,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/overlapped.c:1403,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/overlapped.c:1407,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/overlapped.c:1413,1
    - Dst: WSAStringToAddressW
      Src: /src/cpython/Modules/overlapped.c:1418,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1419,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1419,1
    - Dst: htons
      Src: /src/cpython/Modules/overlapped.c:1423,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/overlapped.c:1427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - obj
    - Address
    - Length
    argTypes:
    - PyObject*
    - SOCKADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1434
    functionName: parse_address
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    - memset
    - WSAGetLastError
    - htons
    - SetFromWindowsErr
    - WSAStringToAddressW
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: int parse_address(PyObject *obj, SOCKADDR *Address, int Length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1461,1
    - Dst: parse_address
      Src: /src/cpython/Modules/overlapped.c:1466,1
    - Dst: Py_ConnectEx
      Src: /src/cpython/Modules/overlapped.c:1474,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1478,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1484,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - ConnectSocket
    - AddressObj
    argTypes:
    - OverlappedObject*
    - HANDLE
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1448
    functionDepth: 3
    functionLinenumber: 1448
    functionLinenumberEnd: 1487
    functionName: _overlapped_Overlapped_ConnectEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - parse_address
    - WSAGetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    - Py_ConnectEx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_ConnectEx_impl(OverlappedObject
      *self,\n                                      HANDLE ConnectSocket,\n                                      PyObject
      *AddressObj)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1507,1
    - Dst: Py_DisconnectEx
      Src: /src/cpython/Modules/overlapped.c:1515,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1518,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1524,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - Socket
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1527
    functionName: _overlapped_Overlapped_DisconnectEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_DisconnectEx
    - PyErr_SetString
    - Overlapped_clear
    - WSAGetLastError
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_DisconnectEx_impl(OverlappedObject
      *self,\n                                         HANDLE Socket, DWORD flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1556,1
    - Dst: Py_TransmitFile
      Src: /src/cpython/Modules/overlapped.c:1566,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1570,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1576,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - self
    - Socket
    - File
    - offset
    - offset_high
    - count_to_write
    - count_per_send
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - HANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1544
    functionDepth: 2
    functionLinenumber: 1544
    functionLinenumberEnd: 1579
    functionName: _overlapped_Overlapped_TransmitFile_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_TransmitFile
    - PyErr_SetString
    - Overlapped_clear
    - WSAGetLastError
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_TransmitFile_impl(OverlappedObject
      *self,\n                                         HANDLE Socket, HANDLE File,\n
      \                                        DWORD offset, DWORD offset_high,\n
      \                                        DWORD count_to_write,\n                                         DWORD
      count_per_send, DWORD flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1599,1
    - Dst: ConnectNamedPipe
      Src: /src/cpython/Modules/overlapped.c:1607,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:1610,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1613,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1619,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Pipe
    argTypes:
    - OverlappedObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1622
    functionName: _overlapped_Overlapped_ConnectNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - GetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    - mark_as_completed
    - ConnectNamedPipe
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_ConnectNamedPipe_impl(OverlappedObject
      *self,\n                                             HANDLE Pipe)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/cpython/Modules/overlapped.c:1641,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1648,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Address
    argTypes:
    - OverlappedObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1650
    functionName: _overlapped_Overlapped_ConnectPipe_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - SetFromWindowsErr
    - CreateFileW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_ConnectPipe_impl(OverlappedObject
      *self,\n                                        const wchar_t *Address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/overlapped.c:1655,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/overlapped.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1657
    functionName: Overlapped_getaddress
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - OverlappedObject_CAST
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_getaddress(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/overlapped.c:1662,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/overlapped.c:1663,1
    - Dst: HasOverlappedIoCompleted
      Src: /src/cpython/Modules/overlapped.c:1663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1665
    functionName: Overlapped_getpending
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - OverlappedObject_CAST
    - HasOverlappedIoCompleted
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_getpending(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/overlapped.c:1670,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1674,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1680,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1684,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1685,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1688,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1695
    functionName: Overlapped_traverse
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - OverlappedObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Overlapped_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_address
      Src: /src/cpython/Modules/overlapped.c:1725,1
    - Dst: WSAConnect
      Src: /src/cpython/Modules/overlapped.c:1733,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1741,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - module
    - ConnectSocket
    - AddressObj
    argTypes:
    - PyObject*
    - HANDLE
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1714
    functionDepth: 3
    functionLinenumber: 1714
    functionLinenumberEnd: 1743
    functionName: _overlapped_WSAConnect_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - parse_address
    - WSAConnect
    - SetFromWindowsErr
    - WSAGetLastError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_WSAConnect_impl(PyObject *module, HANDLE ConnectSocket,\n
      \                           PyObject *AddressObj)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_address
      Src: /src/cpython/Modules/overlapped.c:1773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1779,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1785,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1789,1
    - Dst: WSASendTo
      Src: /src/cpython/Modules/overlapped.c:1797,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1801,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - self
    - handle
    - bufobj
    - flags
    - AddressObj
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    - DWORD
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1757
    functionDepth: 3
    functionLinenumber: 1757
    functionLinenumberEnd: 1812
    functionName: _overlapped_Overlapped_WSASendTo_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSASendTo
    - steal_buffer
    - PyErr_SetString
    - parse_address
    - WSAGetLastError
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WSASendTo_impl(OverlappedObject
      *self, HANDLE handle,\n                                      Py_buffer *bufobj,
      DWORD flags,\n                                      PyObject *AddressObj)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1838,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/overlapped.c:1843,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1845,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/overlapped.c:1845,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1850,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:1856,1
    - Dst: WSARecvFrom
      Src: /src/cpython/Modules/overlapped.c:1860,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1866,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1869,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1870,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 4
    argNames:
    - self
    - handle
    - size
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1825
    functionDepth: 2
    functionLinenumber: 1825
    functionLinenumberEnd: 1879
    functionName: _overlapped_Overlapped_WSARecvFrom_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - WSARecvFrom
    - Py_MAX
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - memset
    - WSAGetLastError
    - SetFromWindowsErr
    - mark_as_completed
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WSARecvFrom_impl(OverlappedObject
      *self,\n                                        HANDLE handle, DWORD size,\n
      \                                       DWORD flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1906,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1912,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1922,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:1923,1
    - Dst: WSARecvFrom
      Src: /src/cpython/Modules/overlapped.c:1927,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1933,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1936,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1937,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 5
    argNames:
    - self
    - handle
    - bufobj
    - size
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1894
    functionDepth: 2
    functionLinenumber: 1894
    functionLinenumberEnd: 1946
    functionName: _overlapped_Overlapped_WSARecvFromInto_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSARecvFrom
    - steal_buffer
    - PyErr_SetString
    - memset
    - WSAGetLastError
    - SetFromWindowsErr
    - mark_as_completed
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WSARecvFromInto_impl(OverlappedObject
      *self,\n                                            HANDLE handle, Py_buffer
      *bufobj,\n                                            DWORD size, DWORD flags)"
  - 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: 2031
      start: 2025
    functionDepth: 0
    functionLinenumber: 2025
    functionLinenumberEnd: 2031
    functionName: WINAPI_CONSTANT
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINAPI_CONSTANT(fmt, con)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/overlapped.c:2036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:2041,1
    - Dst: initialize_function_pointers
      Src: /src/cpython/Modules/overlapped.c:2043,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/overlapped.c:2047,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/overlapped.c:2053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:2054,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2059,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2060,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2061,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2062,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2063,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2064,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2065,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2066,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2067,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2068,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2069,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2070,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2032
    functionDepth: 3
    functionLinenumber: 2032
    functionLinenumberEnd: 2073
    functionName: overlapped_exec
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - initialize_function_pointers
    - PyImport_ImportModule
    - WINAPI_CONSTANT
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int overlapped_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/overlapped.c:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2093
    functionName: PyInit__overlapped
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: NAMLEN
    functionSourceFile: /src/cpython/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: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: NAMLEN
    functionSourceFile: /src/cpython/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: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: NAMLEN
    functionSourceFile: /src/cpython/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: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: WIFEXITED
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    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: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: WEXITSTATUS
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    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: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: WTERMSIG
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    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: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/cpython/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: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAIT_STATUS_INT(s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:632,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/posixmodule.c:632,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Modules/posixmodule.c:637,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:637,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/posixmodule.c:639,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Modules/posixmodule.c:644,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:645,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:647,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/posixmodule.c:648,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/posixmodule.c:650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - lst
    - reverse
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyList_CheckExact(lst))
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 660
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 660
    functionName: run_at_forkers
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyList_GetSlice
    - _PyObject_CallNoArgs
    - PyList_Reverse
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    - assert
    linkageType: ''
    returnType: void
    signature: void run_at_forkers(PyObject *lst, int reverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:665,1
    - Dst: run_at_forkers
      Src: /src/cpython/Modules/posixmodule.c:666,1
    - Dst: _PyImport_AcquireLock
      Src: /src/cpython/Modules/posixmodule.c:668,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Modules/posixmodule.c:669,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/posixmodule.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 671
    functionName: PyOS_BeforeFork
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - run_at_forkers
    - _PyEval_StopTheWorldAll
    - HEAD_LOCK
    - _PyInterpreterState_GET
    - _PyImport_AcquireLock
    linkageType: ''
    returnType: void
    signature: void PyOS_BeforeFork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/posixmodule.c:676,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Modules/posixmodule.c:677,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:679,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Modules/posixmodule.c:680,1
    - Dst: run_at_forkers
      Src: /src/cpython/Modules/posixmodule.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: PyOS_AfterFork_Parent
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - run_at_forkers
    - _PyInterpreterState_GET
    - _PyImport_ReleaseLock
    - HEAD_UNLOCK
    - _PyEval_StartTheWorldAll
    linkageType: ''
    returnType: void
    signature: void PyOS_AfterFork_Parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: reset_remotedebug_data
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void reset_remotedebug_data(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_ReInitThreads
      Src: /src/cpython/Modules/posixmodule.c:700,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:701,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/posixmodule.c:705,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Modules/posixmodule.c:706,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:708,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/posixmodule.c:708,1
    - Dst: PyThread_get_thread_native_id
      Src: /src/cpython/Modules/posixmodule.c:710,1
    - Dst: _Py_brc_after_fork
      Src: /src/cpython/Modules/posixmodule.c:714,1
    - Dst: _Py_qsbr_after_fork
      Src: /src/cpython/Modules/posixmodule.c:715,1
    - Dst: _PyInterpreterState_ReinitRunningMain
      Src: /src/cpython/Modules/posixmodule.c:719,1
    - Dst: _PyEval_ReInitThreads
      Src: /src/cpython/Modules/posixmodule.c:721,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:722,1
    - Dst: reset_remotedebug_data
      Src: /src/cpython/Modules/posixmodule.c:726,1
    - Dst: _PyThreadState_RemoveExcept
      Src: /src/cpython/Modules/posixmodule.c:732,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Modules/posixmodule.c:733,1
    - Dst: _PyThreadState_DeleteList
      Src: /src/cpython/Modules/posixmodule.c:734,1
    - Dst: _PyImport_ReInitLock
      Src: /src/cpython/Modules/posixmodule.c:736,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Modules/posixmodule.c:737,1
    - Dst: _PySignal_AfterFork
      Src: /src/cpython/Modules/posixmodule.c:739,1
    - Dst: _PyInterpreterState_DeleteExceptMain
      Src: /src/cpython/Modules/posixmodule.c:741,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:742,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:745,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/posixmodule.c:745,1
    - Dst: _PyPerfTrampoline_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:747,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:748,1
    - Dst: run_at_forkers
      Src: /src/cpython/Modules/posixmodule.c:752,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Modules/posixmodule.c:756,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tstate->thread_id == PyThread_get_thread_ident())
      pos:
        line_end: 707
        line_start: 707
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (_PyThreadState_GET() == tstate)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 757
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 757
    functionName: PyOS_AfterFork_Child
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - run_at_forkers
    - _PyStatus_EXCEPTION
    - _PyThreadState_GET
    - _PyRuntimeState_ReInitThreads
    - _PyPerfTrampoline_AfterFork_Child
    - _PySignal_AfterFork
    - _PyImport_ReInitLock
    - reset_remotedebug_data
    - PyThread_get_thread_ident
    - _PyThreadState_RemoveExcept
    - assert
    - PyThread_get_thread_native_id
    - _Py_qsbr_after_fork
    - _PyImport_ReleaseLock
    - _PyThreadState_DeleteList
    - _PyInterpreterState_DeleteExceptMain
    - _Py_EnsureTstateNotNULL
    - _PyInterpreterState_ReinitRunningMain
    - Py_ExitStatusException
    - _Py_brc_after_fork
    - _PyEval_StartTheWorldAll
    - _PyEval_ReInitThreads
    linkageType: ''
    returnType: void
    signature: void PyOS_AfterFork_Child(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:765,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - lst
    - func
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 770
    functionName: register_at_forker
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 781
    functionName: PyOS_AfterFork
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:800,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 802
    functionName: _PyLong_FromUid
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _PyLong_FromGid(gid_t gid)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/posixmodule.c:821,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:823,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:825,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:825,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:842,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:848,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:873,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:874,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:899,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:904,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:914,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - uid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 916
    functionName: _Py_Uid_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - _PyNumber_Index
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsUnsignedLong
    - PyErr_ExceptionMatches
    - _PyType_Name
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_Uid_Converter(PyObject *obj, uid_t *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/posixmodule.c:927,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:929,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:931,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:931,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:948,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:954,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:980,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:981,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1006,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1011,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1021,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - gid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 1023
    functionName: _Py_Gid_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - _PyNumber_Index
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsUnsignedLong
    - PyErr_ExceptionMatches
    - _PyType_Name
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_Gid_Converter(PyObject *obj, gid_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:1032,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dev
    argTypes:
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1036
    functionName: _PyLong_FromDev
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromDev(dev_t dev)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/posixmodule.c:1043,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/posixmodule.c:1044,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:1050,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1052,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/posixmodule.c:1052,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/posixmodule.c:1054,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:1056,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1063,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:1069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1070,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1071,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1075,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyLong_Check(obj))
      pos:
        line_end: 1051
        line_start: 1051
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 1081
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1081
    functionName: _Py_Dev_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyLong_IsNegative
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - PyLong_Check
    - PyErr_SetString
    - PyLong_AsUnsignedLongLong
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_Dev_Converter(PyObject *obj, void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/posixmodule.c:1104,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/posixmodule.c:1105,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/posixmodule.c:1111,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1116,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/posixmodule.c:1116,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:1117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1118,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1121,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - int*
    assertStmts:
    - condition: (PyLong_Check(index))
      pos:
        line_end: 1115
        line_start: 1115
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 1133
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1133
    functionName: _fd_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - _PyNumber_Index
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyBool_Check
    - PyErr_WarnEx
    - assert
    linkageType: ''
    returnType: int
    signature: int _fd_converter(PyObject *o, int *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:1142,1
    - Dst: _fd_converter
      Src: /src/cpython/Modules/posixmodule.c:1143,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1146,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1148,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1151
    functionName: dir_fd_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _fd_converter
    - _PyType_Name
    - PyErr_Format
    - PyIndex_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int dir_fd_converter(PyObject *o, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/posixmodule.c:1183,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1183
        line_start: 1183
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 1186
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1186
    functionName: get_posix_state
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _posixstate
    signature: '_posixstate *

      get_posix_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - function_name
    - ','
    - argument_name
    - ','
    - nullable
    - ','
    - nonstrict
    - ','
    - make_wide
    - ','
    - suppress_value_error
    - ','
    - allow_fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: PATH_T_INITIALIZE
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PATH_T_INITIALIZE(function_name, argument_name, nullable, nonstrict,
      \\\n                          make_wide, suppress_value_error, allow_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - function_name
    - ','
    - argument_name
    - ','
    - nullable
    - ','
    - nonstrict
    - ','
    - suppress_value_error
    - ','
    - allow_fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1311
    functionName: PATH_T_INITIALIZE_P
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PATH_T_INITIALIZE_P(function_name, argument_name, nullable, \\\n                            nonstrict,
      suppress_value_error, allow_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - function_name
    - ','
    - argument_name
    - ','
    - nullable
    - ','
    - nonstrict
    - ','
    - suppress_value_error
    - ','
    - allow_fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1316
    functionName: PATH_T_INITIALIZE_P
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PATH_T_INITIALIZE_P(function_name, argument_name, nullable, \\\n                            nonstrict,
      suppress_value_error, allow_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:1323,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:1324,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1326
    functionName: path_cleanup
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void path_cleanup(path_t *path)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: path_cleanup
      Src: /src/cpython/Modules/posixmodule.c:1347,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:1354,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:1365,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:1366,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:1367,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Modules/posixmodule.c:1373,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:1373,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/posixmodule.c:1377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1378,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:1382,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:1385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1389,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1391,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1391,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1392,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1393,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:1398,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:1403,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1409,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:1413,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1414,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:1425,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:1431,1
    - Dst: _fd_converter
      Src: /src/cpython/Modules/posixmodule.c:1434,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1443,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1452,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1452,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:1456,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:1457,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:1458,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1459,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:1464,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:1469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1470,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1476,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:1480,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:1511,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:1512,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:1513,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:1515,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:1519,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 156
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1527
    functionName: path_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - strlen
    - FORMAT_EXCEPTION
    - _fd_converter
    - PyBytes_Check
    - Py_SETREF
    - PyBytes_GET_SIZE
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_INCREF
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - Py_DECREF
    - _Py_ID
    - PyUnicode_EncodeFSDefault
    - Py_NewRef
    - PyErr_ExceptionMatches
    - wcslen
    - PyUnicode_DecodeFSDefaultAndSize
    - PyIndex_Check
    - Py_TYPE
    - PyBytes_AS_STRING
    - _PyObject_CallNoArgs
    - _PyObject_LookupSpecial
    - _PyType_Name
    - path_cleanup
    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: 1344
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1344
    functionName: FORMAT_EXCEPTION
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_EXCEPTION(exc, fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - function_name
    - argument_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1537
    functionName: argument_unavailable_error
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1543,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:1546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1539
    functionDepth: 3
    functionLinenumber: 1539
    functionLinenumberEnd: 1551
    functionName: dir_fd_unavailable
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function_name
    - fd
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1561
    functionName: fd_specified
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function_name
    - follow_symlinks
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1563
    functionDepth: 2
    functionLinenumber: 1563
    functionLinenumberEnd: 1571
    functionName: follow_symlinks_specified
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1577,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: 1583
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1583
    functionName: path_and_dir_fd_invalid
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - dir_fd
    - fd
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1595
    functionName: dir_fd_and_fd_invalid
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - fd
    - follow_symlinks
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1608
    functionName: fd_and_follow_symlinks_invalid
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1615,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: 1621
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1621
    functionName: dir_fd_and_follow_symlinks_invalid
    functionSourceFile: /src/cpython/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_AsInt
      Src: /src/cpython/Modules/posixmodule.c:1627,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1624
    functionDepth: 1
    functionLinenumber: 1624
    functionLinenumberEnd: 1633
    functionName: idtype_t_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int idtype_t_converter(PyObject *arg, void *addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/posixmodule.c:1646,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:1648,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1653
    functionName: Py_off_t_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLongLong
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: int Py_off_t_converter(PyObject *arg, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:1659,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1663
    functionName: PyLong_FromPy_off_t
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromPy_off_t(Py_off_t offset)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/cpython/Modules/posixmodule.c:1677,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:1679,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/posixmodule.c:1683,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/posixmodule.c:1688,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:1689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1690,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1692,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1693,1
    - Dst: sigaddset
      Src: /src/cpython/Modules/posixmodule.c:1699,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:1702,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/posixmodule.c:1710,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1721,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - obj
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1668
    functionDepth: 1
    functionLinenumber: 1668
    functionLinenumberEnd: 1723
    functionName: _Py_Sigset_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnFormat
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - PyObject_GetIter
    - PyIter_Next
    - PyErr_SetFromErrno
    - sigaddset
    - PyErr_Format
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int _Py_Sigset_Converter(PyObject *obj, void *addr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/posixmodule.c:1748,1
    - Dst: _wgetenv
      Src: /src/cpython/Modules/posixmodule.c:1754,1
    - Dst: _NSGetEnviron
      Src: /src/cpython/Modules/posixmodule.c:1760,1
    - Dst: wcschr
      Src: /src/cpython/Modules/posixmodule.c:1770,1
    - Dst: strchr
      Src: /src/cpython/Modules/posixmodule.c:1772,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:1777,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:1779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1782,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:1786,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:1788,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:1788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1792,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/posixmodule.c:1795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1802,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1805
    functionName: convertenviron
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - _NSGetEnviron
    - PyBytes_FromStringAndSize
    - PyDict_SetDefaultRef
    - PyDict_New
    - PyUnicode_FromWideChar
    - wcschr
    - _wgetenv
    - strchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

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

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

      win32_error_object_err(const char* function, PyObject* filename, DWORD err)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:1847,1
    - Dst: win32_error_object_err
      Src: /src/cpython/Modules/posixmodule.c:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - function
    - filename
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1844
    functionDepth: 2
    functionLinenumber: 1844
    functionLinenumberEnd: 1849
    functionName: win32_error_object
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1857
    functionName: posix_path_object_error
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1863,1
    - Dst: posix_path_object_error
      Src: /src/cpython/Modules/posixmodule.c:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1859
    functionDepth: 2
    functionLinenumber: 1859
    functionLinenumberEnd: 1868
    functionName: path_object_error
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - posix_path_object_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      path_object_error(PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/cpython/Modules/posixmodule.c:1874,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Modules/posixmodule.c:1877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - path2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1879
    functionName: path_object_error2
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1881
    functionDepth: 3
    functionLinenumber: 1881
    functionLinenumberEnd: 1885
    functionName: path_error
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1887
    functionDepth: 2
    functionLinenumber: 1887
    functionLinenumberEnd: 1891
    functionName: posix_path_error
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - path2
    argTypes:
    - path_t*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1893
    functionDepth: 2
    functionLinenumber: 1893
    functionLinenumberEnd: 1897
    functionName: path_error2
    functionSourceFile: /src/cpython/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: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:1914,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:1916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1902
    functionDepth: 2
    functionLinenumber: 1902
    functionLinenumberEnd: 1918
    functionName: posix_fildes_fd
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_fildes_fd(int fd, int (*func)(int))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:1934,1
    - Dst: GetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:1936,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:1936,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:1939,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:1940,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:1942,1
    - Dst: GetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:1945,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:1947,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/posixmodule.c:1951,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/posixmodule.c:1952,1
    - Dst: SetEnvironmentVariableW
      Src: /src/cpython/Modules/posixmodule.c:1955,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:1958,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - path
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1960
    functionName: win32_wchdir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcsncmp
    - PyMem_RawFree
    - SetLastError
    - GetCurrentDirectoryW
    - SetEnvironmentVariableW
    - PyMem_RawMalloc
    - Py_ARRAY_LENGTH
    - SetCurrentDirectoryW
    linkageType: ''
    returnType: BOOL
    signature: BOOL win32_wchdir(LPCWSTR path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:1979,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: 1991
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1991
    functionName: find_data_to_file_info
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:1999,1
    - Dst: malloc
      Src: /src/cpython/Modules/posixmodule.c:2002,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2004,1
    - Dst: wcsncpy_s
      Src: /src/cpython/Modules/posixmodule.c:2007,1
    - Dst: free
      Src: /src/cpython/Modules/posixmodule.c:2013,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:2017,1
    - Dst: free
      Src: /src/cpython/Modules/posixmodule.c:2019,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:2024,1
    - Dst: find_data_to_file_info
      Src: /src/cpython/Modules/posixmodule.c:2025,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - pszFile
    - info
    - reparse_tag
    argTypes:
    - LPCWSTR
    - BY_HANDLE_FILE_INFORMATION*
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2027
    functionName: attributes_from_dir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - FindFirstFileW
    - SetLastError
    - malloc
    - wcslen
    - find_data_to_file_info
    - FindClose
    - free
    - wcsncpy_s
    linkageType: ''
    returnType: BOOL
    signature: BOOL attributes_from_dir(LPCWSTR pszFile, BY_HANDLE_FILE_INFORMATION
      *info, ULONG *reparse_tag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcsrchr
      Src: /src/cpython/Modules/posixmodule.c:2041,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2043,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2044,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2045,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2046,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - path
    - attr
    - result
    argTypes:
    - wchar_t*
    - DWORD
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2051
    functionName: update_st_mode_from_path
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _wcsicmp
    - wcsrchr
    linkageType: ''
    returnType: void
    signature: "void update_st_mode_from_path(const wchar_t *path, DWORD attr,\n                         struct
      _Py_stat_struct *result)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:2075,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2078,1
    - Dst: attributes_from_dir
      Src: /src/cpython/Modules/posixmodule.c:2083,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2085,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2093,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:2100,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2102,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:2110,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2114,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:2124,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2128,1
    - Dst: GetFileType
      Src: /src/cpython/Modules/posixmodule.c:2140,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2142,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:2146,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:2147,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:2165,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2168,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:2181,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2185,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:2192,1
    - Dst: win32_xstat_slow_impl
      Src: /src/cpython/Modules/posixmodule.c:2193,1
    - Dst: GetFileInformationByHandle
      Src: /src/cpython/Modules/posixmodule.c:2198,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:2199,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2201,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:2207,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:2218,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/cpython/Modules/posixmodule.c:2224,1
    - Dst: update_st_mode_from_path
      Src: /src/cpython/Modules/posixmodule.c:2225,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2230,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:2231,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2235,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 135
    argCount: 3
    argNames:
    - path
    - result
    - traverse
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2054
    functionDepth: 2
    functionLinenumber: 2054
    functionLinenumberEnd: 2240
    functionName: win32_xstat_slow_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - SetLastError
    - CreateFileW
    - GetFileInformationByHandle
    - GetFileInformationByHandleEx
    - memset
    - GetLastError
    - update_st_mode_from_path
    - attributes_from_dir
    - GetFileType
    - _Py_attribute_data_to_stat
    - IsReparseTagNameSurrogate
    - CloseHandle
    - win32_xstat_slow_impl
    - GetFileAttributesW
    linkageType: ''
    returnType: int
    signature: "int win32_xstat_slow_impl(const wchar_t *path, struct _Py_stat_struct
      *result,\n                      BOOL traverse)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetFileInformationByName
      Src: /src/cpython/Modules/posixmodule.c:2247,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:2252,1
    - Dst: _Py_stat_basic_info_to_stat
      Src: /src/cpython/Modules/posixmodule.c:2254,1
    - Dst: update_st_mode_from_path
      Src: /src/cpython/Modules/posixmodule.c:2255,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2259,1
    - Dst: win32_xstat_slow_impl
      Src: /src/cpython/Modules/posixmodule.c:2272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - path
    - result
    - traverse
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2242
    functionDepth: 3
    functionLinenumber: 2242
    functionLinenumberEnd: 2273
    functionName: win32_xstat_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - update_st_mode_from_path
    - GetLastError
    - _Py_stat_basic_info_to_stat
    - _Py_GetFileInformationByName
    - IsReparseTagNameSurrogate
    - win32_xstat_slow_impl
    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/cpython/Modules/posixmodule.c:2280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - path
    - result
    - traverse
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2275
    functionDepth: 4
    functionLinenumber: 2275
    functionLinenumberEnd: 2287
    functionName: win32_xstat
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:2301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - result
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2298
    functionDepth: 5
    functionLinenumber: 2298
    functionLinenumberEnd: 2302
    functionName: win32_lstat
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:2307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - result
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2304
    functionDepth: 5
    functionLinenumber: 2304
    functionLinenumberEnd: 2308
    functionName: win32_stat
    functionSourceFile: /src/cpython/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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/posixmodule.c:2505,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2510,1
    - Dst: structseq_new
      Src: /src/cpython/Modules/posixmodule.c:2516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2524,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:2525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2497
    functionDepth: 2
    functionLinenumber: 2497
    functionLinenumberEnd: 2529
    functionName: statresult_new
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_NewRef
    - structseq_new
    - PyImport_GetModule
    - get_posix_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      statresult_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2534,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2535,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2536,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2537,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2539,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2541,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2542,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2543,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2544,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2545,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2547,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2550,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2531
    functionDepth: 2
    functionLinenumber: 2531
    functionLinenumberEnd: 2554
    functionName: _posix_clear
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - get_posix_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _posix_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2559,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2560,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2561,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2562,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2564,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2566,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2567,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2568,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2569,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2570,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2572,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2575,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2556
    functionDepth: 2
    functionLinenumber: 2556
    functionLinenumberEnd: 2579
    functionName: _posix_traverse
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - get_posix_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _posix_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _posix_clear
      Src: /src/cpython/Modules/posixmodule.c:2584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2585
      start: 2581
    functionDepth: 3
    functionLinenumber: 2581
    functionLinenumberEnd: 2585
    functionName: _posix_free
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _posix_clear
    linkageType: ''
    returnType: void
    signature: void _posix_free(void *module)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2590,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2590,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/posixmodule.c:2597,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:2598,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/posixmodule.c:2603,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2603,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/posixmodule.c:2608,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:2612,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2618,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2622,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2626,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2630,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2630,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2634,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2635,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2636,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2637,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2638,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 7
    argNames:
    - module
    - v
    - s_index
    - f_index
    - ns_index
    - sec
    - nsec
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    - time_t
    - unsigned long
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2589
        line_start: 2589
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2629
        line_start: 2629
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 2640
      start: 2587
    functionDepth: 2
    functionLinenumber: 2587
    functionLinenumberEnd: 2640
    functionName: fill_time
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_Occurred
    - _PyLong_FromTime_t
    - PyNumber_Multiply
    - PyFloat_FromDouble
    - PyLong_FromUnsignedLong
    - PyStructSequence_SET_ITEM
    - PyNumber_Add
    - get_posix_state
    - assert
    linkageType: ''
    returnType: int
    signature: int fill_time(PyObject *module, PyObject *v, int s_index, int f_index,
      int ns_index, time_t sec, unsigned long nsec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2646,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2650,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2651,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2654,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:2657,1
    - Dst: PyNumber_Lshift
      Src: /src/cpython/Modules/posixmodule.c:2657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2660,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:2663,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/posixmodule.c:2663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2643
    functionDepth: 1
    functionLinenumber: 2643
    functionLinenumberEnd: 2666
    functionName: _pystat_l128_from_l64_l64
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyNumber_Add
    - Py_SETREF
    - PyLong_FromUnsignedLongLong
    - PyLong_FromLong
    - PyNumber_Lshift
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pystat_l128_from_l64_l64(uint64_t low, uint64_t high)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2674,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2674,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2676,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:2677,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2691,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2691,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2693,1
    - Dst: _pystat_l128_from_l64_l64
      Src: /src/cpython/Modules/posixmodule.c:2693,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2694,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2694,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2698,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2698,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2699,1
    - Dst: _PyLong_FromDev
      Src: /src/cpython/Modules/posixmodule.c:2699,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2701,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2701,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2703,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2703,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2704,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2704,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2706,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:2706,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2707,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:2707,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2711,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:2711,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2730,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2733,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2736,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2741,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2741,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2744,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2744,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2747,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2747,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2750,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2750,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2761,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:2761,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2764,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2770,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2770,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2773,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:2774,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2777,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/posixmodule.c:2777,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2780,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:2780,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2783,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 2
    argNames:
    - module
    - st
    argTypes:
    - PyObject*
    - STRUCT_STAT*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2782
        line_start: 2782
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2673
        line_start: 2673
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 2791
      start: 2671
    functionDepth: 3
    functionLinenumber: 2671
    functionLinenumberEnd: 2791
    functionName: _pystat_fromstructstat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_FromDev
    - PyErr_Occurred
    - fill_time
    - _PyLong_FromUid
    - PyUnicode_FromString
    - PyFloat_FromDouble
    - PyLong_FromUnsignedLongLong
    - _PyLong_FromGid
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    - _pystat_l128_from_l64_l64
    - SET_ITEM
    - PyLong_FromLongLong
    - get_posix_state
    - PyStructSequence_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2682
    functionDepth: 0
    functionLinenumber: 2682
    functionLinenumberEnd: 2690
    functionName: SET_ITEM
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM(pos, expr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:2808,1
    - Dst: path_and_dir_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:2812,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:2813,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:2814,1
    - Dst: FSTAT
      Src: /src/cpython/Modules/posixmodule.c:2819,1
    - Dst: win32_stat
      Src: /src/cpython/Modules/posixmodule.c:2822,1
    - Dst: win32_lstat
      Src: /src/cpython/Modules/posixmodule.c:2824,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:2829,1
    - Dst: fstatat
      Src: /src/cpython/Modules/posixmodule.c:2835,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:2843,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:2849,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:2855,1
    - Dst: _pystat_fromstructstat
      Src: /src/cpython/Modules/posixmodule.c:2858,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - module
    - function_name
    - path
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - char*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2796
    functionDepth: 6
    functionLinenumber: 2796
    functionLinenumberEnd: 2859
    functionName: posix_do_stat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - path_and_dir_fd_invalid
    - LSTAT
    - FSTAT
    - win32_lstat
    - fd_and_follow_symlinks_invalid
    - dir_fd_and_fd_invalid
    - argument_unavailable_error
    - fstatat
    - STAT
    - win32_stat
    - _pystat_fromstructstat
    - follow_symlinks_specified
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposix_do_stat(PyObject *module, const char *function_name,
      path_t *path,\n              int dir_fd, int follow_symlinks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_do_stat
      Src: /src/cpython/Modules/posixmodule.c:3236,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: 3237
      start: 3232
    functionDepth: 7
    functionLinenumber: 3232
    functionLinenumberEnd: 3237
    functionName: os_stat_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:3261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3256
    functionDepth: 7
    functionLinenumber: 3256
    functionLinenumberEnd: 3262
    functionName: os_lstat_impl
    functionSourceFile: /src/cpython/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: 11
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:3322,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3326,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:3333,1
    - Dst: faccessat
      Src: /src/cpython/Modules/posixmodule.c:3362,1
    - Dst: access
      Src: /src/cpython/Modules/posixmodule.c:3369,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3375,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:3378,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3382,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    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: 3393
      start: 3304
    functionDepth: 3
    functionLinenumber: 3304
    functionLinenumberEnd: 3393
    functionName: os_access_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - access
    - faccessat
    - argument_unavailable_error
    - GetFileAttributesW
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/cpython/Modules/posixmodule.c:3426,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:3428,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:3430,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:3432,1
    - Dst: ttyname_r
      Src: /src/cpython/Modules/posixmodule.c:3434,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:3436,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:3438,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:3440,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:3441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3443
      start: 3421
    functionDepth: 2
    functionLinenumber: 3421
    functionLinenumberEnd: 3443
    functionName: os_ttyname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - ttyname_r
    - PyMem_RawFree
    - PyMem_RawMalloc
    - sysconf
    - posix_error
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ttyname_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctermid_r
      Src: /src/cpython/Modules/posixmodule.c:3461,1
    - Dst: ctermid
      Src: /src/cpython/Modules/posixmodule.c:3463,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:3466,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:3467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3453
    functionDepth: 2
    functionLinenumber: 3453
    functionLinenumberEnd: 3468
    functionName: os_ctermid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyUnicode_DecodeFSDefault
    - ctermid_r
    - ctermid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ctermid_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:3490,1
    - Dst: win32_wchdir
      Src: /src/cpython/Modules/posixmodule.c:3497,1
    - Dst: fchdir
      Src: /src/cpython/Modules/posixmodule.c:3501,1
    - Dst: chdir
      Src: /src/cpython/Modules/posixmodule.c:3504,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3484
    functionDepth: 4
    functionLinenumber: 3484
    functionLinenumberEnd: 3513
    functionName: os_chdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_wchdir
    - fchdir
    - path_error
    - PySys_Audit
    - chdir
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chdir_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3506
    functionDepth: 4
    functionLinenumber: 3506
    functionLinenumberEnd: 3510
    functionName: if
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:3533,1
    - Dst: posix_fildes_fd
      Src: /src/cpython/Modules/posixmodule.c:3536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3537
      start: 3529
    functionDepth: 3
    functionLinenumber: 3529
    functionLinenumberEnd: 3537
    functionName: os_fchdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - posix_fildes_fd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchdir_impl(PyObject *module, int fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:3550,1
    - Dst: SetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:3560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - LPCWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3547
    functionDepth: 0
    functionLinenumber: 3547
    functionLinenumberEnd: 3561
    functionName: win32_lchmod
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SetFileAttributesW
    - GetFileAttributesW
    linkageType: ''
    returnType: int
    signature: int win32_lchmod(LPCWSTR path, int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:3567,1
    - Dst: SetFileInformationByHandle
      Src: /src/cpython/Modules/posixmodule.c:3578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hfile
    - mode
    argTypes:
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3563
    functionDepth: 0
    functionLinenumber: 3563
    functionLinenumberEnd: 3580
    functionName: win32_hchmod
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SetFileInformationByHandle
    - GetFileInformationByHandleEx
    linkageType: ''
    returnType: int
    signature: int win32_hchmod(HANDLE hfile, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Modules/posixmodule.c:3585,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:3587,1
    - Dst: win32_hchmod
      Src: /src/cpython/Modules/posixmodule.c:3590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3591
      start: 3582
    functionDepth: 1
    functionLinenumber: 3582
    functionLinenumberEnd: 3591
    functionName: win32_fchmod
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_hchmod
    - _Py_get_osfhandle_noraise
    - SetLastError
    linkageType: ''
    returnType: int
    signature: int win32_fchmod(int fd, int mode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:3644,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:3648,1
    - Dst: win32_fchmod
      Src: /src/cpython/Modules/posixmodule.c:3657,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:3660,1
    - Dst: win32_hchmod
      Src: /src/cpython/Modules/posixmodule.c:3665,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:3666,1
    - Dst: win32_lchmod
      Src: /src/cpython/Modules/posixmodule.c:3670,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3674,1
    - Dst: fchmod
      Src: /src/cpython/Modules/posixmodule.c:3680,1
    - Dst: lchmod
      Src: /src/cpython/Modules/posixmodule.c:3685,1
    - Dst: fchmodat
      Src: /src/cpython/Modules/posixmodule.c:3701,1
    - Dst: chmod
      Src: /src/cpython/Modules/posixmodule.c:3722,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3738,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:3745,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:3748,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3753,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 5
    argNames:
    - module
    - path
    - mode
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3758
      start: 3631
    functionDepth: 4
    functionLinenumber: 3631
    functionLinenumberEnd: 3758
    functionName: os_chmod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lchmod
    - win32_fchmod
    - win32_hchmod
    - CreateFileW
    - fchmodat
    - argument_unavailable_error
    - dir_fd_and_follow_symlinks_invalid
    - fchmod
    - win32_lchmod
    - chmod
    - path_error
    - PySys_Audit
    - CloseHandle
    - follow_symlinks_specified
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_chmod_impl(PyObject *module, path_t *path, int mode,
      int dir_fd,\n              int follow_symlinks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:3660,1
    - Dst: win32_hchmod
      Src: /src/cpython/Modules/posixmodule.c:3665,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:3666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3659
    functionDepth: 1
    functionLinenumber: 3659
    functionLinenumberEnd: 3668
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_hchmod
    - CloseHandle
    - CreateFileW
    linkageType: ''
    returnType: else
    signature: else if (follow_symlinks)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3738,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:3745,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:3748,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3732
    functionDepth: 4
    functionLinenumber: 3732
    functionLinenumberEnd: 3754
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - dir_fd_and_follow_symlinks_invalid
    - argument_unavailable_error
    - 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/cpython/Modules/posixmodule.c:3784,1
    - Dst: win32_fchmod
      Src: /src/cpython/Modules/posixmodule.c:3791,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:3794,1
    - Dst: fchmod
      Src: /src/cpython/Modules/posixmodule.c:3800,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:3802,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:3804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - module
    - fd
    - mode
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3778
    functionDepth: 2
    functionLinenumber: 3778
    functionLinenumberEnd: 3808
    functionName: os_fchmod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_fchmod
    - fchmod
    - PyErr_SetFromWindowsErr
    - PyErr_CheckSignals
    - PySys_Audit
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchmod_impl(PyObject *module, int fd, int mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:3830,1
    - Dst: win32_lchmod
      Src: /src/cpython/Modules/posixmodule.c:3835,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3838,1
    - Dst: lchmod
      Src: /src/cpython/Modules/posixmodule.c:3843,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - module
    - path
    - mode
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3825
    functionDepth: 4
    functionLinenumber: 3825
    functionLinenumberEnd: 3851
    functionName: os_lchmod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lchmod
    - path_error
    - PySys_Audit
    - win32_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/cpython/Modules/posixmodule.c:3881,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:3885,1
    - Dst: lchflags
      Src: /src/cpython/Modules/posixmodule.c:3892,1
    - Dst: chflags
      Src: /src/cpython/Modules/posixmodule.c:3895,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3899,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: 3902
      start: 3873
    functionDepth: 4
    functionLinenumber: 3873
    functionLinenumberEnd: 3902
    functionName: os_chflags_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - chflags
    - lchflags
    - path_error
    - PySys_Audit
    - 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/cpython/Modules/posixmodule.c:3924,1
    - Dst: lchflags
      Src: /src/cpython/Modules/posixmodule.c:3928,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - path
    - flags
    argTypes:
    - PyObject*
    - path_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3934
      start: 3919
    functionDepth: 4
    functionLinenumber: 3919
    functionLinenumberEnd: 3934
    functionName: os_lchflags_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - PySys_Audit
    - lchflags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_chroot_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_fildes_fd
      Src: /src/cpython/Modules/posixmodule.c:3975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3976
      start: 3971
    functionDepth: 3
    functionLinenumber: 3971
    functionLinenumberEnd: 3976
    functionName: os_fsync_impl
    functionSourceFile: /src/cpython/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: 3995
      start: 3987
    functionDepth: 0
    functionLinenumber: 3987
    functionLinenumberEnd: 3995
    functionName: os_sync_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:4016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 4012
    functionDepth: 3
    functionLinenumber: 4012
    functionLinenumberEnd: 4017
    functionName: os_fdatasync_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_fildes_fd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fdatasync_impl(PyObject *module, int fd)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:4073,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:4076,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:4077,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4080,1
    - Dst: fchown
      Src: /src/cpython/Modules/posixmodule.c:4088,1
    - Dst: lchown
      Src: /src/cpython/Modules/posixmodule.c:4093,1
    - Dst: fchownat
      Src: /src/cpython/Modules/posixmodule.c:4099,1
    - Dst: chown
      Src: /src/cpython/Modules/posixmodule.c:4106,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4114,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4120,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    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: 4123
      start: 4061
    functionDepth: 4
    functionLinenumber: 4061
    functionLinenumberEnd: 4123
    functionName: os_chown_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - chown
    - fchownat
    - lchown
    - fchown
    - fd_and_follow_symlinks_invalid
    - dir_fd_and_fd_invalid
    - argument_unavailable_error
    - PySys_Audit
    - follow_symlinks_specified
    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/cpython/Modules/posixmodule.c:4148,1
    - Dst: fchown
      Src: /src/cpython/Modules/posixmodule.c:4154,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:4156,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:4158,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: 4161
      start: 4141
    functionDepth: 2
    functionLinenumber: 4141
    functionLinenumberEnd: 4161
    functionName: os_fchown_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_CheckSignals
    - fchown
    - posix_error
    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/cpython/Modules/posixmodule.c:4184,1
    - Dst: lchown
      Src: /src/cpython/Modules/posixmodule.c:4188,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4191,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: 4194
      start: 4179
    functionDepth: 4
    functionLinenumber: 4179
    functionLinenumberEnd: 4194
    functionName: os_lchown_impl
    functionSourceFile: /src/cpython/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: 14
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:4207,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4207,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4211,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:4213,1
    - Dst: GetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:4219,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:4225,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4229,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4231,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:4235,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4237,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:4244,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:4244,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/posixmodule.c:4260,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4266,1
    - Dst: getcwd
      Src: /src/cpython/Modules/posixmodule.c:4272,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:4277,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:4280,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4281,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:4287,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:4287,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:4290,1
    - Dst: path_object_error
      Src: /src/cpython/Modules/posixmodule.c:4300,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4301,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:4305,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4306,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 1
    argNames:
    - use_bytes
    argTypes:
    - int
    assertStmts:
    - condition: (buf[0] == '/')
      pos:
        line_end: 4304
        line_start: 4304
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 4310
      start: 4198
    functionDepth: 3
    functionLinenumber: 4198
    functionLinenumberEnd: 4310
    functionName: posix_getcwd
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_object_error
    - PyUnicode_DecodeFSDefault
    - PyMem_RawFree
    - strlen
    - GetCurrentDirectoryW
    - getcwd
    - PyBytes_FromStringAndSize
    - PyErr_SetFromWindowsErr
    - PyUnicode_EncodeFSDefault
    - Py_SETREF
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - posix_error
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_getcwd(int use_bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/posixmodule.c:4260,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4266,1
    - Dst: getcwd
      Src: /src/cpython/Modules/posixmodule.c:4272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4273
      start: 4255
    functionDepth: 1
    functionLinenumber: 4255
    functionLinenumberEnd: 4273
    functionName: do
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getcwd
    - PyMem_RawRealloc
    - PyMem_RawFree
    linkageType: ''
    returnType: Py_BEGIN_ALLOW_THREADS
    signature: Py_BEGIN_ALLOW_THREADS do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_getcwd
      Src: /src/cpython/Modules/posixmodule.c:4323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4319
    functionDepth: 4
    functionLinenumber: 4319
    functionLinenumberEnd: 4324
    functionName: os_getcwd_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:4337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4333
    functionDepth: 4
    functionLinenumber: 4333
    functionLinenumberEnd: 4338
    functionName: os_getcwdb_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_getcwd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getcwdb_impl(PyObject *module)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4392,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4399,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4404,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4409,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4415,1
    - Dst: CreateHardLinkW
      Src: /src/cpython/Modules/posixmodule.c:4423,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:4427,1
    - Dst: linkat
      Src: /src/cpython/Modules/posixmodule.c:4432,1
    - Dst: link
      Src: /src/cpython/Modules/posixmodule.c:4440,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:4445,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    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: 4449
      start: 4371
    functionDepth: 3
    functionLinenumber: 4371
    functionLinenumberEnd: 4449
    functionName: os_link_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error2
    - link
    - linkat
    - argument_unavailable_error
    - PySys_Audit
    - CreateHardLinkW
    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/cpython/Modules/posixmodule.c:4462,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:4474,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:4475,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:4478,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:4480,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:4483,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:4488,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:4490,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:4494,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4497,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4500,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4501,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:4506,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:4507,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:4508,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:4509,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:4511,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:4511,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4514,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:4517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4518,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4522,1
    - Dst: FindNextFileW
      Src: /src/cpython/Modules/posixmodule.c:4525,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4529,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4530,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4531,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:4538,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4540,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4541,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:4545,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 2
    argNames:
    - path
    - list
    argTypes:
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4454
    functionDepth: 4
    functionLinenumber: 4454
    functionLinenumberEnd: 4548
    functionName: _listdir_windows_no_opendir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - FindFirstFileW
    - FindNextFileW
    - GetLastError
    - PyBytes_Check
    - Py_SETREF
    - PyMem_New
    - FindClose
    - wcscpy
    - Py_CLEAR
    - PyMem_Free
    - wcscmp
    - PyList_Append
    - Py_DECREF
    - PyUnicode_EncodeFSDefault
    - wcslen
    - PyUnicode_FromWideChar
    - path_error
    - PyErr_NoMemory
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _listdir_windows_no_opendir(path_t *path, PyObject *list)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dup
      Src: /src/cpython/Modules/posixmodule.c:4568,1
    - Dst: fdopendir
      Src: /src/cpython/Modules/posixmodule.c:4575,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:4578,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:4590,1
    - Dst: opendir
      Src: /src/cpython/Modules/posixmodule.c:4598,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4603,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:4614,1
    - Dst: readdir
      Src: /src/cpython/Modules/posixmodule.c:4620,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4626,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4627,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:4632,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:4633,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:4636,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:4636,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:4638,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:4638,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4640,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:4643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4644,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4648,1
    - Dst: rewinddir
      Src: /src/cpython/Modules/posixmodule.c:4656,1
    - Dst: closedir
      Src: /src/cpython/Modules/posixmodule.c:4658,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 2
    argNames:
    - path
    - list
    argTypes:
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4663
      start: 4552
    functionDepth: 4
    functionLinenumber: 4552
    functionLinenumberEnd: 4663
    functionName: _posix_listdir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fdopendir
    - PyList_New
    - Py_DECREF
    - PyList_Append
    - PyErr_SetString
    - closedir
    - readdir
    - PyBytes_FromStringAndSize
    - opendir
    - PyBytes_Check
    - rewinddir
    - NAMLEN
    - PyUnicode_DecodeFSDefaultAndSize
    - path_error
    - Py_CLEAR
    - _Py_dup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_listdir_impl(PyObject *module, path_t *path)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4723,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4725,1
    - Dst: GetLogicalDriveStringsW
      Src: /src/cpython/Modules/posixmodule.c:4730,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4734,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4736,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4737,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:4742,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:4744,1
    - Dst: PyUnicode_Split
      Src: /src/cpython/Modules/posixmodule.c:4746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4749,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4752
      start: 4716
    functionDepth: 1
    functionLinenumber: 4716
    functionLinenumberEnd: 4752
    functionName: os_listdrives_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - GetLogicalDriveStringsW
    - PyUnicode_Split
    - PyErr_SetFromWindowsErr
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listdrives_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:4771,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4778,1
    - Dst: FindFirstVolumeW
      Src: /src/cpython/Modules/posixmodule.c:4784,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4784,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4786,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:4791,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:4792,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:4793,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4797,1
    - Dst: FindNextVolumeW
      Src: /src/cpython/Modules/posixmodule.c:4800,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4800,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4801,1
    - Dst: FindVolumeClose
      Src: /src/cpython/Modules/posixmodule.c:4808,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4812,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:4813,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4817
      start: 4767
    functionDepth: 1
    functionLinenumber: 4767
    functionLinenumberEnd: 4817
    functionName: os_listvolumes_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - PyList_Append
    - GetLastError
    - FindNextVolumeW
    - FindVolumeClose
    - PyErr_SetFromWindowsErr
    - FindFirstVolumeW
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - PySys_Audit
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listvolumes_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4839,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:4848,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4851,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4853,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4856,1
    - Dst: GetVolumePathNamesForVolumeNameW
      Src: /src/cpython/Modules/posixmodule.c:4863,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4869,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4870,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:4874,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:4876,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:4878,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:4883,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:4888,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:4889,1
    - Dst: PyUnicode_Split
      Src: /src/cpython/Modules/posixmodule.c:4891,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:4895,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:4897,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:4898,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - module
    - volume
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4900
      start: 4834
    functionDepth: 1
    functionLinenumber: 4834
    functionLinenumberEnd: 4900
    functionName: os_listmounts_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - GetVolumePathNamesForVolumeNameW
    - PyUnicode_FromStringAndSize
    - PyUnicode_Split
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - PySys_Audit
    - PyMem_Free
    - GetFileAttributesW
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listmounts_impl(PyObject *module, path_t *volume)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4868
      start: 4865
    functionDepth: 0
    functionLinenumber: 4865
    functionLinenumberEnd: 4868
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (success)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetVolumePathNameW
      Src: /src/cpython/Modules/posixmodule.c:4932,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4938,1
    - Dst: GetDriveTypeW
      Src: /src/cpython/Modules/posixmodule.c:4939,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:4943,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4953,1
    - Dst: DeviceIoControl
      Src: /src/cpython/Modules/posixmodule.c:4958,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4968,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:4970,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4979
      start: 4915
    functionDepth: 0
    functionLinenumber: 4915
    functionLinenumberEnd: 4979
    functionName: os__path_isdevdrive_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - GetLastError
    - GetDriveTypeW
    - GetVolumePathNameW
    - CloseHandle
    - DeviceIoControl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_isdevdrive_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4985
      start: 4980
    functionDepth: 1
    functionLinenumber: 4980
    functionLinenumberEnd: 4985
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/posixmodule.c:5001,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5002,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5008,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:5010,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/posixmodule.c:5020,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:5022,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Modules/posixmodule.c:5032,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - path
    - abspath_p
    argTypes:
    - wchar_t*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5034
      start: 4995
    functionDepth: 1
    functionLinenumber: 4995
    functionLinenumberEnd: 5034
    functionName: _PyOS_getfullpathname
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyMem_RawMalloc
    - Py_ARRAY_LENGTH
    - _PyMem_RawWcsdup
    - GetFullPathNameW
    linkageType: ''
    returnType: int
    signature: int _PyOS_getfullpathname(const wchar_t *path, wchar_t **abspath_p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyOS_getfullpathname
      Src: /src/cpython/Modules/posixmodule.c:5052,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5053,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:5056,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5059,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:5060,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5064,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5065,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5068
      start: 5046
    functionDepth: 3
    functionLinenumber: 5046
    functionLinenumberEnd: 5068
    functionName: os__getfullpathname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - win32_error_object
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - PyUnicode_FromWideChar
    - _PyOS_getfullpathname
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getfullpathname_impl(PyObject *module, path_t *path)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5086,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5091,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5103,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/cpython/Modules/posixmodule.c:5110,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5115,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/posixmodule.c:5125,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:5128,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5136,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5137,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5138,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5138,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:5143,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5147
      start: 5080
    functionDepth: 3
    functionLinenumber: 5080
    functionLinenumberEnd: 5147
    functionName: os__getfinalpathname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - CreateFileW
    - win32_error_object
    - GetFinalPathNameByHandleW
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - PyMem_Free
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - CloseHandle
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getfinalpathname_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:5166,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:5170,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5175,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:5176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5178
      start: 5156
    functionDepth: 4
    functionLinenumber: 5156
    functionLinenumberEnd: 5178
    functionName: os__findfirstfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - FindFirstFileW
    - PyUnicode_FromWideChar
    - FindClose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__findfirstfile_impl(PyObject *module, path_t *path)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Modules/posixmodule.c:5199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:5202,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:5206,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:5208,1
    - Dst: GetVolumePathNameW
      Src: /src/cpython/Modules/posixmodule.c:5211,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/posixmodule.c:5212,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5216,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5219,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5220,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5221,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5221,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:5224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5226
      start: 5189
    functionDepth: 3
    functionLinenumber: 5189
    functionLinenumberEnd: 5226
    functionName: os__getvolumepathname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyErr_SetString
    - win32_error_object
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - PyMem_Free
    - PyMem_New
    - PyUnicode_FromWideChar
    - GetVolumePathNameW
    - Py_SAFE_DOWNCAST
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getvolumepathname_impl(PyObject *module, path_t *path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:5247,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:5247,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:5251,1
    - Dst: wcschr
      Src: /src/cpython/Modules/posixmodule.c:5252,1
    - Dst: wcschr
      Src: /src/cpython/Modules/posixmodule.c:5252,1
    - Dst: PathCchSkipRoot
      Src: /src/cpython/Modules/posixmodule.c:5257,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:5260,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:5263,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5264,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5265,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:5268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5269
      start: 5238
    functionDepth: 1
    functionLinenumber: 5238
    functionLinenumberEnd: 5269
    functionName: os__path_splitroot_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - wcschr
    - wcslen
    - PyUnicode_FromWideChar
    - PathCchSkipRoot
    - wcscpy
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_splitroot_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:5260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5261
      start: 5258
    functionDepth: 1
    functionLinenumber: 5258
    functionLinenumberEnd: 5261
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (FAILED(ret))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:5300,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:5303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - attributes
    - reparseTag
    - diskDevice
    - testedType
    argTypes:
    - DWORD
    - DWORD
    - BOOL
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5307
      start: 5283
    functionDepth: 0
    functionLinenumber: 5283
    functionLinenumberEnd: 5307
    functionName: _testInfo
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - IsReparseTagNameSurrogate
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testInfo(DWORD attributes, DWORD reparseTag, BOOL diskDevice,
      int testedType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:5312,1
    - Dst: GetFileType
      Src: /src/cpython/Modules/posixmodule.c:5316,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:5322,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5324,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:5328,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5330,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 9
    argCount: 3
    argNames:
    - hfile
    - testedType
    - diskOnly
    argTypes:
    - HANDLE
    - int
    - BOOL
    assertStmts:
    - condition: "(testedType == PY_IFREG || testedType == PY_IFDIR ||\n           testedType
        == PY_IFLNK || testedType == PY_IFMNT ||\n           testedType == PY_IFLRP
        || testedType == PY_IFRRP)"
      pos:
        line_end: 5313
        line_start: 5311
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 5331
      start: 5309
    functionDepth: 1
    functionLinenumber: 5309
    functionLinenumberEnd: 5331
    functionName: _testFileTypeByHandle
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetFileType
    - GetFileInformationByHandleEx
    - _testInfo
    - assert
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testFileTypeByHandle(HANDLE hfile, int testedType, BOOL diskOnly)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:5336,1
    - Dst: _Py_GetFileInformationByName
      Src: /src/cpython/Modules/posixmodule.c:5341,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5347,1
    - Dst: _Py_GetFileInformationByName_ErrorIsTrustworthy
      Src: /src/cpython/Modules/posixmodule.c:5355,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5356,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5365,1
    - Dst: _testFileTypeByHandle
      Src: /src/cpython/Modules/posixmodule.c:5368,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5369,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5373,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:5381,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:5386,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5389,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 32
    argCount: 2
    argNames:
    - path
    - testedType
    argTypes:
    - LPCWSTR
    - int
    assertStmts:
    - condition: "(testedType == PY_IFREG || testedType == PY_IFDIR ||\n           testedType
        == PY_IFLNK || testedType == PY_IFMNT ||\n           testedType == PY_IFLRP
        || testedType == PY_IFRRP)"
      pos:
        line_end: 5337
        line_start: 5335
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 5395
      start: 5333
    functionDepth: 2
    functionLinenumber: 5333
    functionLinenumberEnd: 5395
    functionName: _testFileTypeByName
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - LSTAT
    - _Py_GetFileInformationByName_ErrorIsTrustworthy
    - CreateFileW
    - _testFileTypeByHandle
    - GetLastError
    - _Py_GetFileInformationByName
    - CloseHandle
    - STAT
    - _testInfo
    - assert
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testFileTypeByName(LPCWSTR path, int testedType)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetFileInformationByName
      Src: /src/cpython/Modules/posixmodule.c:5402,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:5406,1
    - Dst: _Py_GetFileInformationByName_ErrorIsTrustworthy
      Src: /src/cpython/Modules/posixmodule.c:5411,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5412,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5421,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5425,1
    - Dst: _testFileTypeByHandle
      Src: /src/cpython/Modules/posixmodule.c:5429,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5430,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5434,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5437,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5442,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:5448,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:5448,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - path
    - followLinks
    argTypes:
    - LPCWSTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5452
      start: 5398
    functionDepth: 2
    functionLinenumber: 5398
    functionLinenumberEnd: 5452
    functionName: _testFileExistsByName
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - LSTAT
    - _Py_GetFileInformationByName_ErrorIsTrustworthy
    - CreateFileW
    - GetLastError
    - _Py_GetFileInformationByName
    - IsReparseTagNameSurrogate
    - CloseHandle
    - STAT
    - _testFileTypeByHandle
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testFileExistsByName(LPCWSTR path, BOOL followLinks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Modules/posixmodule.c:5465,1
    - Dst: GetFileType
      Src: /src/cpython/Modules/posixmodule.c:5467,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5467,1
    - Dst: _testFileExistsByName
      Src: /src/cpython/Modules/posixmodule.c:5473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - path
    - followLinks
    argTypes:
    - path_t*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5478
      start: 5455
    functionDepth: 3
    functionLinenumber: 5455
    functionLinenumberEnd: 5478
    functionName: _testFileExists
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetFileType
    - _Py_get_osfhandle_noraise
    - GetLastError
    - _testFileExistsByName
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testFileExists(path_t *path, BOOL followLinks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Modules/posixmodule.c:5491,1
    - Dst: _testFileTypeByHandle
      Src: /src/cpython/Modules/posixmodule.c:5493,1
    - Dst: _testFileTypeByName
      Src: /src/cpython/Modules/posixmodule.c:5497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - testedType
    argTypes:
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5502
      start: 5481
    functionDepth: 3
    functionLinenumber: 5481
    functionLinenumberEnd: 5502
    functionName: _testFileType
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileTypeByName
    - _Py_get_osfhandle_noraise
    - _testFileTypeByHandle
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testFileType(path_t *path, int testedType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testFileExists
      Src: /src/cpython/Modules/posixmodule.c:5518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5519
      start: 5514
    functionDepth: 4
    functionLinenumber: 5514
    functionLinenumberEnd: 5519
    functionName: os__path_exists_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileExists
    linkageType: ''
    returnType: int
    signature: int os__path_exists_impl(PyObject *module, path_t *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testFileExists
      Src: /src/cpython/Modules/posixmodule.c:5535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5531
    functionDepth: 4
    functionLinenumber: 5531
    functionLinenumberEnd: 5536
    functionName: os__path_lexists_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileExists
    linkageType: ''
    returnType: int
    signature: int os__path_lexists_impl(PyObject *module, path_t *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testFileType
      Src: /src/cpython/Modules/posixmodule.c:5553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5554
      start: 5549
    functionDepth: 4
    functionLinenumber: 5549
    functionLinenumberEnd: 5554
    functionName: os__path_isdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileType
    linkageType: ''
    returnType: int
    signature: int os__path_isdir_impl(PyObject *module, path_t *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testFileType
      Src: /src/cpython/Modules/posixmodule.c:5570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5566
    functionDepth: 4
    functionLinenumber: 5566
    functionLinenumberEnd: 5571
    functionName: os__path_isfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileType
    linkageType: ''
    returnType: int
    signature: int os__path_isfile_impl(PyObject *module, path_t *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testFileType
      Src: /src/cpython/Modules/posixmodule.c:5587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5588
      start: 5583
    functionDepth: 4
    functionLinenumber: 5583
    functionLinenumberEnd: 5588
    functionName: os__path_islink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileType
    linkageType: ''
    returnType: int
    signature: int os__path_islink_impl(PyObject *module, path_t *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testFileType
      Src: /src/cpython/Modules/posixmodule.c:5604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5605
      start: 5600
    functionDepth: 4
    functionLinenumber: 5600
    functionLinenumberEnd: 5605
    functionName: os__path_isjunction_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileType
    linkageType: ''
    returnType: int
    signature: int os__path_isjunction_impl(PyObject *module, path_t *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_skiproot
      Src: /src/cpython/Modules/posixmodule.c:5636,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5637,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5641,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5645,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5650,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5651,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5651,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5655,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5655,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5659,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5659,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/posixmodule.c:5664,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:5666,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:5667,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:5668,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5670
      start: 5628
    functionDepth: 1
    functionLinenumber: 5628
    functionLinenumberEnd: 5670
    functionName: os__path_splitroot_ex_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_skiproot
    - Py_XDECREF
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - PyUnicode_FromWideChar
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_splitroot_ex_impl(PyObject *module, path_t *path)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_normpath_and_size
      Src: /src/cpython/Modules/posixmodule.c:5687,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/posixmodule.c:5690,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5693,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5695,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5696,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5699
      start: 5681
    functionDepth: 1
    functionLinenumber: 5681
    functionLinenumberEnd: 5699
    functionName: os__path_normpath_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - _Py_normpath_and_size
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_normpath_impl(PyObject *module, path_t *path)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:5739,1
    - Dst: ConvertStringSecurityDescriptorToSecurityDescriptorW
      Src: /src/cpython/Modules/posixmodule.c:5755,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5761,1
    - Dst: CreateDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:5766,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/posixmodule.c:5770,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5771,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:5777,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:5780,1
    - Dst: mkdirat
      Src: /src/cpython/Modules/posixmodule.c:5787,1
    - Dst: mkdir
      Src: /src/cpython/Modules/posixmodule.c:5795,1
    - Dst: mkdir
      Src: /src/cpython/Modules/posixmodule.c:5797,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:5803,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:5809,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - module
    - path
    - mode
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5812
      start: 5725
    functionDepth: 4
    functionLinenumber: 5725
    functionLinenumberEnd: 5812
    functionName: os_mkdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - LocalFree
    - argument_unavailable_error
    - ConvertStringSecurityDescriptorToSecurityDescriptorW
    - GetLastError
    - PyErr_SetFromWindowsErr
    - CreateDirectoryW
    - path_error
    - PySys_Audit
    - mkdir
    - mkdirat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkdir_impl(PyObject *module, path_t *path, int mode, int dir_fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:5777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5778
      start: 5774
    functionDepth: 1
    functionLinenumber: 5774
    functionLinenumberEnd: 5778
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nice
      Src: /src/cpython/Modules/posixmodule.c:5848,1
    - Dst: getpriority
      Src: /src/cpython/Modules/posixmodule.c:5851,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:5855,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:5856,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - module
    - increment
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5857
      start: 5831
    functionDepth: 2
    functionLinenumber: 5831
    functionLinenumberEnd: 5857
    functionName: os_nice_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getpriority
    - posix_error
    - nice
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

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

      os_setpriority_impl(PyObject *module, int which, int who, int priority)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:5932,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:5937,1
    - Dst: MoveFileExW
      Src: /src/cpython/Modules/posixmodule.c:5945,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:5949,1
    - Dst: renameat
      Src: /src/cpython/Modules/posixmodule.c:5956,1
    - Dst: rename
      Src: /src/cpython/Modules/posixmodule.c:5962,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:5968,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:5974,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    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: 5977
      start: 5911
    functionDepth: 3
    functionLinenumber: 5911
    functionLinenumberEnd: 5977
    functionName: internal_rename
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error2
    - rename
    - renameat
    - MoveFileExW
    - argument_unavailable_error
    - PySys_Audit
    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/cpython/Modules/posixmodule.c:6004,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: 6005
      start: 5999
    functionDepth: 4
    functionLinenumber: 5999
    functionLinenumberEnd: 6005
    functionName: os_rename_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:6026,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: 6027
      start: 6021
    functionDepth: 4
    functionLinenumber: 6021
    functionLinenumberEnd: 6027
    functionName: os_replace_impl
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:6054,1
    - Dst: RemoveDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:6062,1
    - Dst: unlinkat
      Src: /src/cpython/Modules/posixmodule.c:6067,1
    - Dst: rmdir
      Src: /src/cpython/Modules/posixmodule.c:6074,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:6080,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6086,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6089
      start: 6045
    functionDepth: 4
    functionLinenumber: 6045
    functionLinenumberEnd: 6089
    functionName: os_rmdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - unlinkat
    - rmdir
    - argument_unavailable_error
    - PySys_Audit
    - RemoveDirectoryW
    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/cpython/Modules/posixmodule.c:6108,1
    - Dst: _wsystem
      Src: /src/cpython/Modules/posixmodule.c:6114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - command
    argTypes:
    - PyObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6118
      start: 6102
    functionDepth: 1
    functionLinenumber: 6102
    functionLinenumberEnd: 6118
    functionName: os_system_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - _wsystem
    linkageType: ''
    returnType: long
    signature: long os_system_impl(PyObject *module, const wchar_t *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/posixmodule.c:6133,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:6135,1
    - Dst: system
      Src: /src/cpython/Modules/posixmodule.c:6140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - command
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6128
    functionDepth: 1
    functionLinenumber: 6128
    functionLinenumberEnd: 6143
    functionName: os_system_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_AsString
    - system
    - PySys_Audit
    linkageType: ''
    returnType: long
    signature: long os_system_impl(PyObject *module, PyObject *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/cpython/Modules/posixmodule.c:6162,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:6164,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:6165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - mask
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6158
    functionDepth: 2
    functionLinenumber: 6158
    functionLinenumberEnd: 6166
    functionName: os_umask_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - umask
    - posix_error
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_umask_impl(PyObject *module, int mask)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesExW
      Src: /src/cpython/Modules/posixmodule.c:6182,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:6189,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:6196,1
    - Dst: RemoveDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:6202,1
    - Dst: DeleteFileW
      Src: /src/cpython/Modules/posixmodule.c:6204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - lpFileName
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6205
      start: 6174
    functionDepth: 0
    functionLinenumber: 6174
    functionLinenumberEnd: 6205
    functionName: Py_DeleteFileW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - FindFirstFileW
    - FindClose
    - GetFileAttributesExW
    - DeleteFileW
    - RemoveDirectoryW
    linkageType: ''
    returnType: BOOL
    signature: BOOL Py_DeleteFileW(LPCWSTR lpFileName)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:6234,1
    - Dst: Py_DeleteFileW
      Src: /src/cpython/Modules/posixmodule.c:6243,1
    - Dst: unlinkat
      Src: /src/cpython/Modules/posixmodule.c:6249,1
    - Dst: unlink
      Src: /src/cpython/Modules/posixmodule.c:6255,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:6262,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6271
      start: 6225
    functionDepth: 4
    functionLinenumber: 6225
    functionLinenumberEnd: 6271
    functionName: os_unlink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - unlinkat
    - argument_unavailable_error
    - unlink
    - 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/cpython/Modules/posixmodule.c:6289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6290
      start: 6285
    functionDepth: 5
    functionLinenumber: 6285
    functionLinenumberEnd: 6290
    functionName: os_remove_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:6337,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:6340,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:6342,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:6343,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6357,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6358,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6359,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6360,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6366
      start: 6328
    functionDepth: 2
    functionLinenumber: 6328
    functionLinenumberEnd: 6366
    functionName: os_uname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - uname
    - posix_error
    - SET
    - get_posix_state
    - PyStructSequence_New
    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: 6357
      start: 6347
    functionDepth: 0
    functionLinenumber: 6347
    functionLinenumberEnd: 6357
    functionName: SET
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(i, field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:6441,1
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:6449,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:6457,1
    - Dst: futimesat
      Src: /src/cpython/Modules/posixmodule.c:6458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ut
    - dir_fd
    - path
    - follow_symlinks
    argTypes:
    - utime_t*
    - int
    - char*
    - int
    assertStmts:
    - condition: (follow_symlinks)
      pos:
        line_end: 6456
        line_start: 6456
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 6460
      start: 6434
    functionDepth: 0
    functionLinenumber: 6434
    functionLinenumberEnd: 6460
    functionName: utime_dir_fd
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - futimesat
    - utimensat
    - assert
    linkageType: ''
    returnType: int
    signature: int utime_dir_fd(utime_t *ut, int dir_fd, const char *path, int follow_symlinks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: futimens
      Src: /src/cpython/Modules/posixmodule.c:6477,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6483,1
    - Dst: futimes
      Src: /src/cpython/Modules/posixmodule.c:6495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ut
    - fd
    argTypes:
    - utime_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6498
      start: 6469
    functionDepth: 1
    functionLinenumber: 6469
    functionLinenumberEnd: 6498
    functionName: utime_fd
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - futimens
    - futimes
    linkageType: ''
    returnType: int
    signature: int utime_fd(utime_t *ut, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:6517,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6522,1
    - Dst: lutimes
      Src: /src/cpython/Modules/posixmodule.c:6534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ut
    - path
    argTypes:
    - utime_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6537
      start: 6511
    functionDepth: 1
    functionLinenumber: 6511
    functionLinenumberEnd: 6537
    functionName: utime_nofollow_symlinks
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - utimensat
    - lutimes
    linkageType: ''
    returnType: int
    signature: int utime_nofollow_symlinks(utime_t *ut, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:6549,1
    - Dst: utimes
      Src: /src/cpython/Modules/posixmodule.c:6552,1
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:6556,1
    - Dst: utimes
      Src: /src/cpython/Modules/posixmodule.c:6559,1
    - Dst: utime
      Src: /src/cpython/Modules/posixmodule.c:6562,1
    - Dst: utime
      Src: /src/cpython/Modules/posixmodule.c:6565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ut
    - path
    argTypes:
    - utime_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6567
      start: 6543
    functionDepth: 0
    functionLinenumber: 6543
    functionLinenumberEnd: 6567
    functionName: utime_default
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - utimes
    - utimensat
    - utime
    linkageType: ''
    returnType: int
    signature: int utime_default(utime_t *ut, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Divmod
      Src: /src/cpython/Modules/posixmodule.c:6576,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:6576,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:6579,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:6579,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:6580,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:6582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:6582,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:6582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:6582,1
    - Dst: _PyLong_AsTime_t
      Src: /src/cpython/Modules/posixmodule.c:6585,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:6585,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:6586,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:6588,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:6588,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:6589,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:6594,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - module
    - py_long
    - s
    - ns
    argTypes:
    - PyObject*
    - PyObject*
    - time_t*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6596
      start: 6571
    functionDepth: 2
    functionLinenumber: 6571
    functionLinenumberEnd: 6596
    functionName: split_py_long_to_s_and_ns
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_AsTime_t
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyNumber_Divmod
    - PyTuple_Check
    - PyErr_Occurred
    - PyLong_AsLong
    - Py_TYPE
    - _PyType_Name
    - PyTuple_GET_ITEM
    - PyErr_Format
    - get_posix_state
    linkageType: ''
    returnType: int
    signature: int split_py_long_to_s_and_ns(PyObject *module, PyObject *py_long,
      time_t *s, long *ns)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:6651,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6654,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/posixmodule.c:6663,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:6663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6664,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/cpython/Modules/posixmodule.c:6670,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:6670,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/cpython/Modules/posixmodule.c:6672,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:6672,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/posixmodule.c:6682,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:6682,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6683,1
    - Dst: split_py_long_to_s_and_ns
      Src: /src/cpython/Modules/posixmodule.c:6688,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:6688,1
    - Dst: split_py_long_to_s_and_ns
      Src: /src/cpython/Modules/posixmodule.c:6690,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:6690,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:6701,1
    - Dst: path_and_dir_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:6705,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:6706,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:6707,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6712,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:6719,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:6726,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6731,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/cpython/Modules/posixmodule.c:6736,1
    - Dst: _Py_time_t_to_FILE_TIME
      Src: /src/cpython/Modules/posixmodule.c:6740,1
    - Dst: _Py_time_t_to_FILE_TIME
      Src: /src/cpython/Modules/posixmodule.c:6741,1
    - Dst: SetFileTime
      Src: /src/cpython/Modules/posixmodule.c:6743,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6744,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:6745,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:6748,1
    - Dst: utime_nofollow_symlinks
      Src: /src/cpython/Modules/posixmodule.c:6754,1
    - Dst: utime_dir_fd
      Src: /src/cpython/Modules/posixmodule.c:6760,1
    - Dst: utime_fd
      Src: /src/cpython/Modules/posixmodule.c:6767,1
    - Dst: utime_default
      Src: /src/cpython/Modules/posixmodule.c:6771,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:6778,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6784,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 6
    argNames:
    - module
    - path
    - times
    - ns
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6791
      start: 6637
    functionDepth: 4
    functionLinenumber: 6637
    functionLinenumberEnd: 6791
    functionName: os_utime_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_and_dir_fd_invalid
    - CreateFileW
    - PyErr_SetString
    - SetFileTime
    - fd_and_follow_symlinks_invalid
    - utime_dir_fd
    - utime_default
    - GetSystemTimeAsFileTime
    - utime_nofollow_symlinks
    - PyTuple_CheckExact
    - _PyTime_ObjectToTimespec
    - _Py_time_t_to_FILE_TIME
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PySys_Audit
    - CloseHandle
    - utime_fd
    - path_error
    - split_py_long_to_s_and_ns
    - argument_unavailable_error
    - follow_symlinks_specified
    - memset
    - dir_fd_and_fd_invalid
    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/cpython/Modules/posixmodule.c:6808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6810
      start: 6804
    functionDepth: 0
    functionLinenumber: 6804
    functionLinenumberEnd: 6810
    functionName: os__exit_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:6824,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:6825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - array
    - count
    argTypes:
    - EXECV_CHAR**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6826
      start: 6819
    functionDepth: 1
    functionLinenumber: 6819
    functionLinenumberEnd: 6826
    functionName: free_string_array
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_string_array(EXECV_CHAR **array, Py_ssize_t count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/posixmodule.c:6835,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:6837,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:6841,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:6843,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:6844,1
    - Dst: memcpy
      Src: /src/cpython/Modules/posixmodule.c:6846,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:6846,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:6849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6851,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - o
    - out
    argTypes:
    - PyObject*
    - EXECV_CHAR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6853
      start: 6828
    functionDepth: 1
    functionLinenumber: 6828
    functionLinenumberEnd: 6853
    functionName: fsconvert_strdup
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FSDecoder
    - Py_DECREF
    - PyUnicode_FSConverter
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - memcpy
    - PyUnicode_AsWideCharString
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int fsconvert_strdup(PyObject *o, EXECV_CHAR **out)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Size
      Src: /src/cpython/Modules/posixmodule.c:6865,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/posixmodule.c:6868,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:6870,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Modules/posixmodule.c:6874,1
    - Dst: PyMapping_Values
      Src: /src/cpython/Modules/posixmodule.c:6877,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:6880,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:6880,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:6881,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/posixmodule.c:6887,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/posixmodule.c:6891,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/posixmodule.c:6897,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/posixmodule.c:6899,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6900,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:6905,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/posixmodule.c:6906,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:6906,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6910,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:6913,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:6915,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:6917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6918,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:6921,1
    - Dst: strchr
      Src: /src/cpython/Modules/posixmodule.c:6922,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:6922,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6925,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6926,1
    - Dst: PyBytes_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:6929,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:6929,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:6930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6933,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:6937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6945,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:6952,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:6953,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:6954,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6956
      start: 6857
    functionDepth: 2
    functionLinenumber: 6857
    functionLinenumberEnd: 6956
    functionName: parse_envlist
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyList_Check
    - PyBytes_GET_SIZE
    - fsconvert_strdup
    - strchr
    - PyList_GetItem
    - PyUnicode_FromFormat
    - PyMapping_Keys
    - PyBytes_FromFormat
    - PyUnicode_FindChar
    - PyErr_Format
    - PyMem_NEW
    - PyMapping_Size
    - PyMapping_Values
    - PyUnicode_FSDecoder
    - Py_DECREF
    - PyUnicode_FSConverter
    - PyBytes_AS_STRING
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - free_string_array
    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/cpython/Modules/posixmodule.c:6962,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:6964,1
    - Dst: PySequence_ITEM
      Src: /src/cpython/Modules/posixmodule.c:6968,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:6971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:6975,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:6981,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6983
      start: 6958
    functionDepth: 2
    functionLinenumber: 6958
    functionLinenumberEnd: 6983
    functionName: parse_arglist
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_ITEM
    - Py_DECREF
    - free_string_array
    - fsconvert_strdup
    - PyMem_NEW
    - PyErr_NoMemory
    linkageType: ''
    returnType: EXECV_CHAR
    signature: 'EXECV_CHAR **

      parse_arglist(PyObject* argv, Py_ssize_t *argc)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:7008,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/posixmodule.c:7009,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7010,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7018,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7018,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7019,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:7023,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7025,1
    - Dst: parse_arglist
      Src: /src/cpython/Modules/posixmodule.c:7029,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7034,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7036,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7040,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7041,1
    - Dst: _wexecv
      Src: /src/cpython/Modules/posixmodule.c:7047,1
    - Dst: execv
      Src: /src/cpython/Modules/posixmodule.c:7049,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7056,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - module
    - path
    - argv
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7058
      start: 7001
    functionDepth: 3
    functionLinenumber: 7001
    functionLinenumberEnd: 7058
    functionName: os_execv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - execv
    - parse_arglist
    - PyTuple_Check
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyList_Check
    - _wexecv
    - PySequence_Size
    - free_string_array
    - PySys_Audit
    - _PyInterpreterState_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execv_impl(PyObject *module, path_t *path, PyObject *argv)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:7082,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/posixmodule.c:7083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7084,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7093,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7093,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7094,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:7098,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7100,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/posixmodule.c:7104,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7105,1
    - Dst: parse_arglist
      Src: /src/cpython/Modules/posixmodule.c:7110,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7115,1
    - Dst: parse_envlist
      Src: /src/cpython/Modules/posixmodule.c:7120,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7124,1
    - Dst: fexecve
      Src: /src/cpython/Modules/posixmodule.c:7131,1
    - Dst: _wexecve
      Src: /src/cpython/Modules/posixmodule.c:7135,1
    - Dst: execve
      Src: /src/cpython/Modules/posixmodule.c:7137,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7145,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7148,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - module
    - path
    - argv
    - env
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7150
      start: 7074
    functionDepth: 3
    functionLinenumber: 7074
    functionLinenumberEnd: 7150
    functionName: os_execve_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - parse_arglist
    - PyTuple_Check
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyList_Check
    - PySequence_Size
    - parse_envlist
    - free_string_array
    - _wexecve
    - execve
    - PySys_Audit
    - PyMapping_Check
    - _PyInterpreterState_HasFeature
    - fexecve
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: posix_spawnattr_init
      Src: /src/cpython/Modules/posixmodule.c:7178,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7180,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/posixmodule.c:7185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7186,1
    - Dst: posix_spawnattr_setpgroup
      Src: /src/cpython/Modules/posixmodule.c:7189,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7191,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:7210,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:7216,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/posixmodule.c:7226,1
    - Dst: posix_spawnattr_setsigmask
      Src: /src/cpython/Modules/posixmodule.c:7229,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7231,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/posixmodule.c:7239,1
    - Dst: posix_spawnattr_setsigdefault
      Src: /src/cpython/Modules/posixmodule.c:7242,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7251,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7263,1
    - Dst: convert_sched_param
      Src: /src/cpython/Modules/posixmodule.c:7268,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/posixmodule.c:7272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7274,1
    - Dst: posix_spawnattr_setschedpolicy
      Src: /src/cpython/Modules/posixmodule.c:7277,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7279,1
    - Dst: posix_spawnattr_setschedparam
      Src: /src/cpython/Modules/posixmodule.c:7284,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7286,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7291,1
    - Dst: posix_spawnattr_setflags
      Src: /src/cpython/Modules/posixmodule.c:7297,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7299,1
    - Dst: posix_spawnattr_destroy
      Src: /src/cpython/Modules/posixmodule.c:7306,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 108
    argCount: 9
    argNames:
    - module
    - func_name
    - setpgroup
    - resetids
    - setsid
    - setsigmask
    - setsigdef
    - scheduler
    - attrp
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - posix_spawnattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7308
      start: 7170
    functionDepth: 2
    functionLinenumber: 7170
    functionLinenumberEnd: 7308
    functionName: parse_posix_spawn_flags
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_spawnattr_setsigmask
    - PyArg_ParseTuple
    - PyErr_Occurred
    - posix_spawnattr_setpgroup
    - PyErr_SetString
    - PyLong_AsInt
    - posix_spawnattr_setschedparam
    - posix_spawnattr_setsigdefault
    - convert_sched_param
    - _Py_Sigset_Converter
    - posix_spawnattr_setschedpolicy
    - posix_spawnattr_setflags
    - PyLong_AsPid
    - posix_spawnattr_destroy
    - argument_unavailable_error
    - posix_spawnattr_init
    - posix_error
    linkageType: ''
    returnType: int
    signature: "int parse_posix_spawn_flags(PyObject *module, const char *func_name,
      PyObject *setpgroup,\n                        int resetids, int setsid, PyObject
      *setsigmask,\n                        PyObject *setsigdef, PyObject *scheduler,\n
      \                       posix_spawnattr_t *attrp)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/posixmodule.c:7319,1
    - Dst: posix_spawn_file_actions_init
      Src: /src/cpython/Modules/posixmodule.c:7325,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7328,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:7332,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7333,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:7334,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7335,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:7335,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7336,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:7340,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7340,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7341,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7351,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:7358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7359,1
    - Dst: posix_spawn_file_actions_addopen
      Src: /src/cpython/Modules/posixmodule.c:7362,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:7363,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7369,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7374,1
    - Dst: posix_spawn_file_actions_addclose
      Src: /src/cpython/Modules/posixmodule.c:7380,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7382,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7389,1
    - Dst: posix_spawn_file_actions_adddup2
      Src: /src/cpython/Modules/posixmodule.c:7395,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7398,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7406,1
    - Dst: posix_spawn_file_actions_addclosefrom_np
      Src: /src/cpython/Modules/posixmodule.c:7412,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7415,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7435,1
    - Dst: posix_spawn_file_actions_destroy
      Src: /src/cpython/Modules/posixmodule.c:7436,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 99
    argCount: 3
    argNames:
    - file_actions
    - file_actionsp
    - temp_buffer
    argTypes:
    - PyObject*
    - posix_spawn_file_actions_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7438
      start: 7310
    functionDepth: 2
    functionLinenumber: 7310
    functionLinenumberEnd: 7438
    functionName: parse_file_actions
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - posix_spawn_file_actions_addclose
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyLong_AsLong
    - PyErr_Occurred
    - PyList_Append
    - posix_spawn_file_actions_addopen
    - PyTuple_GET_ITEM
    - posix_spawn_file_actions_destroy
    - posix_error
    - posix_spawn_file_actions_adddup2
    - Py_DECREF
    - PyTuple_Check
    - PySequence_Fast_GET_ITEM
    - PyBytes_AS_STRING
    - posix_spawn_file_actions_init
    - PySequence_Fast_GET_SIZE
    - PyArg_ParseTuple
    - posix_spawn_file_actions_addclosefrom_np
    - PySequence_Fast
    linkageType: ''
    returnType: int
    signature: "int parse_file_actions(PyObject *file_actions,\n                   posix_spawn_file_actions_t
      *file_actionsp,\n                   PyObject *temp_buffer)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7464,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7464,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7465,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:7469,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7471,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/posixmodule.c:7476,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7477,1
    - Dst: parse_arglist
      Src: /src/cpython/Modules/posixmodule.c:7482,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7487,1
    - Dst: _NSGetEnviron
      Src: /src/cpython/Modules/posixmodule.c:7499,1
    - Dst: parse_envlist
      Src: /src/cpython/Modules/posixmodule.c:7503,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:7518,1
    - Dst: parse_file_actions
      Src: /src/cpython/Modules/posixmodule.c:7522,1
    - Dst: parse_posix_spawn_flags
      Src: /src/cpython/Modules/posixmodule.c:7528,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7534,1
    - Dst: posix_spawnp
      Src: /src/cpython/Modules/posixmodule.c:7541,1
    - Dst: posix_spawn
      Src: /src/cpython/Modules/posixmodule.c:7547,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/posixmodule.c:7554,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:7558,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:7560,1
    - Dst: posix_spawn_file_actions_destroy
      Src: /src/cpython/Modules/posixmodule.c:7564,1
    - Dst: posix_spawnattr_destroy
      Src: /src/cpython/Modules/posixmodule.c:7567,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7570,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7573,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7575,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 85
    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: 7577
      start: 7441
    functionDepth: 3
    functionLinenumber: 7441
    functionLinenumberEnd: 7577
    functionName: py_posix_spawn
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - _NSGetEnviron
    - posix_spawnp
    - PyLong_FromPid
    - PyList_Check
    - PyMapping_Check
    - parse_arglist
    - PyErr_SetFromErrnoWithFilenameObject
    - PySequence_Size
    - PyErr_Format
    - PySys_Audit
    - posix_spawn_file_actions_destroy
    - posix_spawnattr_destroy
    - __msan_unpoison
    - PyTuple_Check
    - parse_file_actions
    - parse_envlist
    - parse_posix_spawn_flags
    - posix_spawn
    - free_string_array
    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/cpython/Modules/posixmodule.c:7554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7556
      start: 7550
    functionDepth: 1
    functionLinenumber: 7550
    functionLinenumberEnd: 7556
    functionName: if
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:7617,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: 7620
      start: 7609
    functionDepth: 4
    functionLinenumber: 7609
    functionLinenumberEnd: 7620
    functionName: os_posix_spawn_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:7663,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: 7666
      start: 7655
    functionDepth: 4
    functionLinenumber: 7655
    functionLinenumberEnd: 7666
    functionName: os_posix_spawnp_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:7683,1
    - Dst: rtpSpawn
      Src: /src/cpython/Modules/posixmodule.c:7687,1
    - Dst: waitpid
      Src: /src/cpython/Modules/posixmodule.c:7692,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:7693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - mode
    - rtpFileName
    - argv
    - envp
    argTypes:
    - int
    - char*
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7700
      start: 7670
    functionDepth: 1
    functionLinenumber: 7670
    functionLinenumberEnd: 7700
    functionName: _rtp_spawn
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - waitpid
    - PyErr_CheckSignals
    - rtpSpawn
    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/cpython/Modules/posixmodule.c:7731,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/posixmodule.c:7732,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7735,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:7736,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7745,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/posixmodule.c:7750,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:7752,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:7755,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7757,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7758,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7764,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7765,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7778,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7780,1
    - Dst: _wspawnv
      Src: /src/cpython/Modules/posixmodule.c:7787,1
    - Dst: _rtp_spawn
      Src: /src/cpython/Modules/posixmodule.c:7789,1
    - Dst: _spawnv
      Src: /src/cpython/Modules/posixmodule.c:7791,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7797,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7801,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:7804,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 4
    argNames:
    - module
    - mode
    - path
    - argv
    argTypes:
    - PyObject*
    - int
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7805
      start: 7718
    functionDepth: 2
    functionLinenumber: 7718
    functionLinenumberEnd: 7805
    functionName: os_spawnv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _wspawnv
    - PyTuple_Check
    - PyErr_SetString
    - PyList_Check
    - _spawnv
    - posix_error
    - free_string_array
    - _rtp_spawn
    - PyTuple_Size
    - PyList_Size
    - PySys_Audit
    - fsconvert_strdup
    - PyMem_NEW
    - PyErr_NoMemory
    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/cpython/Modules/posixmodule.c:7840,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/posixmodule.c:7841,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7844,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:7845,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7849,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7854,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/posixmodule.c:7858,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7859,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/posixmodule.c:7864,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:7866,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:7870,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7878,1
    - Dst: parse_envlist
      Src: /src/cpython/Modules/posixmodule.c:7887,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7896,1
    - Dst: _wspawnve
      Src: /src/cpython/Modules/posixmodule.c:7903,1
    - Dst: _rtp_spawn
      Src: /src/cpython/Modules/posixmodule.c:7905,1
    - Dst: _spawnve
      Src: /src/cpython/Modules/posixmodule.c:7908,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7914,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:7916,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:7920,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:7922,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7924,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 5
    argNames:
    - module
    - mode
    - path
    - argv
    - env
    argTypes:
    - PyObject*
    - int
    - path_t*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7927
      start: 7823
    functionDepth: 3
    functionLinenumber: 7823
    functionLinenumberEnd: 7927
    functionName: os_spawnve_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fsconvert_strdup
    - _spawnve
    - Py_BuildValue
    - PyTuple_Check
    - PyErr_SetString
    - PyList_Check
    - parse_envlist
    - posix_error
    - _wspawnve
    - PyMem_Free
    - _rtp_spawn
    - free_string_array
    - PyTuple_Size
    - PyList_Size
    - PySys_Audit
    - PyMapping_Check
    - PyMem_NEW
    - PyErr_NoMemory
    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/cpython/Modules/posixmodule.c:7939,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7940,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:7941,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:7941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - obj_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7945
      start: 7936
    functionDepth: 1
    functionLinenumber: 7936
    functionLinenumberEnd: 7945
    functionName: check_null_or_callable
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyType_Name
    - PyCallable_Check
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_null_or_callable(PyObject *obj, const char* obj_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7973,1
    - Dst: check_null_or_callable
      Src: /src/cpython/Modules/posixmodule.c:7976,1
    - Dst: check_null_or_callable
      Src: /src/cpython/Modules/posixmodule.c:7977,1
    - Dst: check_null_or_callable
      Src: /src/cpython/Modules/posixmodule.c:7978,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:7981,1
    - Dst: register_at_forker
      Src: /src/cpython/Modules/posixmodule.c:7983,1
    - Dst: register_at_forker
      Src: /src/cpython/Modules/posixmodule.c:7986,1
    - Dst: register_at_forker
      Src: /src/cpython/Modules/posixmodule.c:7989,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: 7993
      start: 7965
    functionDepth: 2
    functionLinenumber: 7965
    functionLinenumberEnd: 7993
    functionName: os_register_at_fork_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - register_at_forker
    - PyErr_SetString
    - check_null_or_callable
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_register_at_fork_impl(PyObject *module, PyObject *before,\n
      \                        PyObject *after_in_child, PyObject *after_in_parent)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:8008,1
    - Dst: mach_task_self
      Src: /src/cpython/Modules/posixmodule.c:8015,1
    - Dst: task_for_pid
      Src: /src/cpython/Modules/posixmodule.c:8017,1
    - Dst: getpid
      Src: /src/cpython/Modules/posixmodule.c:8017,1
    - Dst: task_threads
      Src: /src/cpython/Modules/posixmodule.c:8020,1
    - Dst: fopen
      Src: /src/cpython/Modules/posixmodule.c:8027,1
    - Dst: fread
      Src: /src/cpython/Modules/posixmodule.c:8033,1
    - Dst: fclose
      Src: /src/cpython/Modules/posixmodule.c:8035,1
    - Dst: strtok_r
      Src: /src/cpython/Modules/posixmodule.c:8038,1
    - Dst: strtok_r
      Src: /src/cpython/Modules/posixmodule.c:8041,1
    - Dst: atoi
      Src: /src/cpython/Modules/posixmodule.c:8044,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/posixmodule.c:8051,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:8051,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8053,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/posixmodule.c:8057,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:8057,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8059,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8060,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/posixmodule.c:8064,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:8064,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8071,1
    - Dst: PyMapping_Length
      Src: /src/cpython/Modules/posixmodule.c:8078,1
    - Dst: PyMapping_Length
      Src: /src/cpython/Modules/posixmodule.c:8079,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8081,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8082,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/posixmodule.c:8085,1
    - Dst: getpid
      Src: /src/cpython/Modules/posixmodule.c:8094,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8097,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (!_PyRuntime.stoptheworld.world_stopped)
      pos:
        line_end: 8007
        line_start: 8007
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 8099
      start: 8003
    functionDepth: 1
    functionLinenumber: 8003
    functionLinenumberEnd: 8099
    functionName: warn_about_fork_with_threads
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnFormat
    - assert
    - fread
    - Py_DECREF
    - PyErr_Clear
    - _Py_ID
    - PyMapping_Length
    - fopen
    - atoi
    - PyObject_GetAttr
    - task_threads
    - mach_task_self
    - PyImport_GetModule
    - fclose
    - strtok_r
    - getpid
    - task_for_pid
    linkageType: ''
    returnType: void
    signature: void warn_about_fork_with_threads(const char* name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:8117,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/posixmodule.c:8118,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8119,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/posixmodule.c:8123,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8124,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/posixmodule.c:8127,1
    - Dst: fork1
      Src: /src/cpython/Modules/posixmodule.c:8128,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:8132,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/posixmodule.c:8135,1
    - Dst: warn_about_fork_with_threads
      Src: /src/cpython/Modules/posixmodule.c:8137,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8141,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:8143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8144
      start: 8111
    functionDepth: 3
    functionLinenumber: 8111
    functionLinenumberEnd: 8144
    functionName: os_fork1_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - PyOS_BeforeFork
    - PyOS_AfterFork_Child
    - PyErr_SetString
    - PyLong_FromPid
    - _PyInterpreterState_GET
    - PyOS_AfterFork_Parent
    - warn_about_fork_with_threads
    - posix_error
    - _PyInterpreterState_GetFinalizing
    - fork1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fork1_impl(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:8162,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/posixmodule.c:8163,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8164,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/posixmodule.c:8168,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8169,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:8173,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/posixmodule.c:8176,1
    - Dst: fork
      Src: /src/cpython/Modules/posixmodule.c:8177,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:8181,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/posixmodule.c:8184,1
    - Dst: warn_about_fork_with_threads
      Src: /src/cpython/Modules/posixmodule.c:8186,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8190,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:8192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8193
      start: 8157
    functionDepth: 3
    functionLinenumber: 8157
    functionLinenumberEnd: 8193
    functionName: os_fork_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fork
    - PyOS_BeforeFork
    - PyOS_AfterFork_Child
    - PyErr_SetString
    - PyLong_FromPid
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetFinalizing
    - PyOS_AfterFork_Parent
    - PySys_Audit
    - warn_about_fork_with_threads
    - posix_error
    - _PyInterpreterState_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fork_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_get_priority_max
      Src: /src/cpython/Modules/posixmodule.c:8213,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8215,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - policy
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8217
      start: 8207
    functionDepth: 2
    functionLinenumber: 8207
    functionLinenumberEnd: 8217
    functionName: os_sched_get_priority_max_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sched_get_priority_max
    - posix_error
    - PyLong_FromLong
    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/cpython/Modules/posixmodule.c:8232,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8234,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - policy
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8236
      start: 8228
    functionDepth: 2
    functionLinenumber: 8228
    functionLinenumberEnd: 8236
    functionName: os_sched_get_priority_min_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - posix_error
    - 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/cpython/Modules/posixmodule.c:8257,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8259,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8261
      start: 8251
    functionDepth: 2
    functionLinenumber: 8251
    functionLinenumberEnd: 8261
    functionName: os_sched_getscheduler_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sched_getscheduler
    - posix_error
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getscheduler_impl(PyObject *module, pid_t pid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:8284,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:8287,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:8287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - sched_priority
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8289
      start: 8278
    functionDepth: 1
    functionLinenumber: 8278
    functionLinenumberEnd: 8289
    functionName: os_sched_param_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyStructSequence_New
    - PyStructSequence_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_param_impl(PyTypeObject *type, PyObject *sched_priority)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:8294,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:8294,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Modules/posixmodule.c:8294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8295
      start: 8291
    functionDepth: 1
    functionLinenumber: 8291
    functionLinenumberEnd: 8295
    functionName: os_sched_param_reduce
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - PyStructSequence_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_param_reduce(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/posixmodule.c:8320,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:8320,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8321,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:8324,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:8324,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:8325,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8328,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/posixmodule.c:8331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - module
    - param
    - res
    argTypes:
    - PyObject*
    - PyObject*
    - struct sched_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8333
      start: 8315
    functionDepth: 2
    functionLinenumber: 8315
    functionLinenumberEnd: 8333
    functionName: convert_sched_param
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - Py_IS_TYPE
    - Py_SAFE_DOWNCAST
    - PyStructSequence_GET_ITEM
    - get_posix_state
    linkageType: ''
    returnType: int
    signature: int convert_sched_param(PyObject *module, PyObject *param, struct sched_param
      *res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: convert_sched_param
      Src: /src/cpython/Modules/posixmodule.c:8358,1
    - Dst: sched_setscheduler
      Src: /src/cpython/Modules/posixmodule.c:8367,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - module
    - pid
    - policy
    - param_obj
    argTypes:
    - PyObject*
    - pid_t
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8370
      start: 8352
    functionDepth: 3
    functionLinenumber: 8352
    functionLinenumberEnd: 8370
    functionName: os_sched_setscheduler_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - convert_sched_param
    - sched_setscheduler
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_sched_setscheduler_impl(PyObject *module, pid_t pid,
      int policy,\n                           PyObject *param_obj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sched_getparam
      Src: /src/cpython/Modules/posixmodule.c:8394,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8395,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:8396,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:8397,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8402,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:8405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8407
      start: 8386
    functionDepth: 2
    functionLinenumber: 8386
    functionLinenumberEnd: 8407
    functionName: os_sched_getparam_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - posix_error
    - PyStructSequence_SET_ITEM
    - PyLong_FromLong
    - get_posix_state
    - sched_getparam
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getparam_impl(PyObject *module, pid_t pid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: convert_sched_param
      Src: /src/cpython/Modules/posixmodule.c:8427,1
    - Dst: sched_setparam
      Src: /src/cpython/Modules/posixmodule.c:8431,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - pid
    - param_obj
    argTypes:
    - PyObject*
    - pid_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8434
      start: 8422
    functionDepth: 3
    functionLinenumber: 8422
    functionLinenumberEnd: 8434
    functionName: os_sched_setparam_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - convert_sched_param
    - sched_setparam
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setparam_impl(PyObject *module, pid_t pid, PyObject *param_obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_rr_get_interval
      Src: /src/cpython/Modules/posixmodule.c:8455,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8456,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:8460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8463
      start: 8450
    functionDepth: 2
    functionLinenumber: 8450
    functionLinenumberEnd: 8463
    functionName: os_sched_rr_get_interval_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - posix_error
    - sched_rr_get_interval
    linkageType: ''
    returnType: double
    signature: double os_sched_rr_get_interval_impl(PyObject *module, pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_yield
      Src: /src/cpython/Modules/posixmodule.c:8479,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8485
      start: 8473
    functionDepth: 2
    functionLinenumber: 8473
    functionLinenumberEnd: 8485
    functionName: os_sched_yield_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:8511,1
    - Dst: CPU_ALLOC_SIZE
      Src: /src/cpython/Modules/posixmodule.c:8516,1
    - Dst: CPU_ALLOC
      Src: /src/cpython/Modules/posixmodule.c:8517,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:8519,1
    - Dst: CPU_ZERO_S
      Src: /src/cpython/Modules/posixmodule.c:8522,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/posixmodule.c:8524,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:8526,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:8527,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:8530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8531,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:8534,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8535,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:8537,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8538,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8542,1
    - Dst: CPU_ALLOC
      Src: /src/cpython/Modules/posixmodule.c:8556,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:8558,1
    - Dst: CPU_ALLOC_SIZE
      Src: /src/cpython/Modules/posixmodule.c:8561,1
    - Dst: CPU_ZERO_S
      Src: /src/cpython/Modules/posixmodule.c:8562,1
    - Dst: memcpy
      Src: /src/cpython/Modules/posixmodule.c:8563,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:8564,1
    - Dst: CPU_SET_S
      Src: /src/cpython/Modules/posixmodule.c:8569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:8571,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:8574,1
    - Dst: sched_setaffinity
      Src: /src/cpython/Modules/posixmodule.c:8576,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8577,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:8580,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:8585,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:8586,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 3
    argNames:
    - module
    - pid
    - mask
    argTypes:
    - PyObject*
    - pid_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8588
      start: 8502
    functionDepth: 2
    functionLinenumber: 8502
    functionLinenumberEnd: 8588
    functionName: os_sched_setaffinity_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetIter
    - PyErr_SetString
    - PyIter_Next
    - Py_CLEAR
    - PyLong_AsLong
    - PyErr_Occurred
    - sched_setaffinity
    - PyErr_Format
    - posix_error
    - Py_DECREF
    - CPU_ALLOC
    - CPU_ALLOC_SIZE
    - memcpy
    - PyIndex_Check
    - Py_TYPE
    - PyErr_NoMemory
    - CPU_SET_S
    - CPU_ZERO_S
    - CPU_FREE
    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/cpython/Modules/posixmodule.c:8611,1
    - Dst: CPU_ALLOC
      Src: /src/cpython/Modules/posixmodule.c:8612,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:8614,1
    - Dst: sched_getaffinity
      Src: /src/cpython/Modules/posixmodule.c:8616,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:8619,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8621,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8624,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/posixmodule.c:8631,1
    - Dst: CPU_COUNT_S
      Src: /src/cpython/Modules/posixmodule.c:8637,1
    - Dst: CPU_ISSET_S
      Src: /src/cpython/Modules/posixmodule.c:8639,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8640,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/posixmodule.c:8645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8649,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:8652,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:8657,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:8659,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8661
      start: 8602
    functionDepth: 2
    functionLinenumber: 8602
    functionLinenumberEnd: 8661
    functionName: os_sched_getaffinity_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_SetString
    - CPU_ALLOC
    - CPU_FREE
    - sched_getaffinity
    - PySet_Add
    - CPU_ALLOC_SIZE
    - CPU_COUNT_S
    - PyLong_FromLong
    - CPU_ISSET_S
    - PySet_New
    - posix_error
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getaffinity_impl(PyObject *module, pid_t pid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: posix_openpt
      Src: /src/cpython/Modules/posixmodule.c:8691,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8693,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:8698,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:8699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - oflag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8704
      start: 8681
    functionDepth: 2
    functionLinenumber: 8681
    functionLinenumberEnd: 8704
    functionName: os_posix_openpt_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - posix_openpt
    - _Py_set_inheritable
    - close
    linkageType: ''
    returnType: int
    signature: int os_posix_openpt_impl(PyObject *module, int oflag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:8728,1
    - Dst: grantpt
      Src: /src/cpython/Modules/posixmodule.c:8730,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:8734,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8742
      start: 8720
    functionDepth: 2
    functionLinenumber: 8720
    functionLinenumberEnd: 8742
    functionName: os_grantpt_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - posix_error
    - grantpt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_grantpt_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlockpt
      Src: /src/cpython/Modules/posixmodule.c:8762,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8766
      start: 8758
    functionDepth: 2
    functionLinenumber: 8758
    functionLinenumberEnd: 8766
    functionName: os_unlockpt_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - unlockpt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unlockpt_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptsname
      Src: /src/cpython/Modules/posixmodule.c:8776,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8778,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:8780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8781
      start: 8770
    functionDepth: 2
    functionLinenumber: 8770
    functionLinenumberEnd: 8781
    functionName: py_ptsname
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ptsname
    - PyUnicode_DecodeFSDefault
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_ptsname(int fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptsname_r
      Src: /src/cpython/Modules/posixmodule.c:8805,1
    - Dst: py_ptsname
      Src: /src/cpython/Modules/posixmodule.c:8809,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8813,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:8816,1
    - Dst: py_ptsname
      Src: /src/cpython/Modules/posixmodule.c:8818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8820
      start: 8796
    functionDepth: 3
    functionLinenumber: 8796
    functionLinenumberEnd: 8820
    functionName: os_ptsname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - py_ptsname
    - posix_error
    - ptsname_r
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ptsname_impl(PyObject *module, int fd)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: openpty
      Src: /src/cpython/Modules/posixmodule.c:8874,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:8877,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:8879,1
    - Dst: _getpty
      Src: /src/cpython/Modules/posixmodule.c:8883,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:8886,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/posixmodule.c:8889,1
    - Dst: open
      Src: /src/cpython/Modules/posixmodule.c:8894,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:8898,1
    - Dst: grantpt
      Src: /src/cpython/Modules/posixmodule.c:8901,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:8903,1
    - Dst: unlockpt
      Src: /src/cpython/Modules/posixmodule.c:8909,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:8911,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:8916,1
    - Dst: ptsname
      Src: /src/cpython/Modules/posixmodule.c:8918,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/posixmodule.c:8922,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:8926,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:8930,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:8931,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:8933,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:8938,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8941,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:8944,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:8946,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 64
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8948
      start: 8858
    functionDepth: 2
    functionLinenumber: 8858
    functionLinenumberEnd: 8948
    functionName: os_openpty_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - open
    - Py_BuildValue
    - close
    - ptsname
    - PyOS_setsig
    - openpty
    - unlockpt
    - posix_error
    - ioctl
    - grantpt
    - _getpty
    - _Py_open
    - _Py_set_inheritable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_openpty_impl(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: login_tty
      Src: /src/cpython/Modules/posixmodule.c:8975,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8976,1
    - Dst: setsid
      Src: /src/cpython/Modules/posixmodule.c:8980,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8981,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:8985,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8986,1
    - Dst: dup2
      Src: /src/cpython/Modules/posixmodule.c:8990,1
    - Dst: dup2
      Src: /src/cpython/Modules/posixmodule.c:8990,1
    - Dst: dup2
      Src: /src/cpython/Modules/posixmodule.c:8990,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8991,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:8994,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8998
      start: 8970
    functionDepth: 2
    functionLinenumber: 8970
    functionLinenumberEnd: 8998
    functionName: os_login_tty_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - close
    - login_tty
    - dup2
    - ioctl
    - setsid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_login_tty_impl(PyObject *module, int fd)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:9021,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/posixmodule.c:9022,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9023,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/posixmodule.c:9027,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9028,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:9031,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/posixmodule.c:9034,1
    - Dst: forkpty
      Src: /src/cpython/Modules/posixmodule.c:9035,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:9038,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/posixmodule.c:9041,1
    - Dst: warn_about_fork_with_threads
      Src: /src/cpython/Modules/posixmodule.c:9043,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9046,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:9048,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9049
      start: 9014
    functionDepth: 3
    functionLinenumber: 9014
    functionLinenumberEnd: 9049
    functionName: os_forkpty_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - Py_BuildValue
    - forkpty
    - PyOS_BeforeFork
    - PyOS_AfterFork_Child
    - PyErr_SetString
    - PyLong_FromPid
    - _PyInterpreterState_GET
    - PyOS_AfterFork_Parent
    - PySys_Audit
    - warn_about_fork_with_threads
    - posix_error
    - _PyInterpreterState_GetFinalizing
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_getegid_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:9080,1
    - Dst: geteuid
      Src: /src/cpython/Modules/posixmodule.c:9080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9081
      start: 9076
    functionDepth: 1
    functionLinenumber: 9076
    functionLinenumberEnd: 9081
    functionName: os_geteuid_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:9096,1
    - Dst: getgid
      Src: /src/cpython/Modules/posixmodule.c:9096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9097
      start: 9092
    functionDepth: 1
    functionLinenumber: 9092
    functionLinenumberEnd: 9097
    functionName: os_getgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getgid
    - _PyLong_FromGid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgid_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9113,1
    - Dst: getpid
      Src: /src/cpython/Modules/posixmodule.c:9113,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:9115,1
    - Dst: GetCurrentProcessId
      Src: /src/cpython/Modules/posixmodule.c:9115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9117
      start: 9108
    functionDepth: 0
    functionLinenumber: 9108
    functionLinenumberEnd: 9117
    functionName: os_getpid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromPid
    - PyLong_FromUnsignedLong
    - getpid
    - GetCurrentProcessId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpid_impl(PyObject *module)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:9183,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:9185,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9188,1
    - Dst: getgrouplist
      Src: /src/cpython/Modules/posixmodule.c:9192,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9198,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9208,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:9218,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:9219,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:9222,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9224,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:9230,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:9232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9235,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9236,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:9239,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - module
    - user
    - basegid
    argTypes:
    - PyObject*
    - char*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9245
      start: 9158
    functionDepth: 1
    functionLinenumber: 9158
    functionLinenumberEnd: 9245
    functionName: os_getgrouplist_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - __msan_unpoison
    - Py_DECREF
    - PyList_SET_ITEM
    - PyMem_Free
    - _PyLong_FromGid
    - PyMem_New
    - PyLong_FromUnsignedLong
    - getgrouplist
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgrouplist_impl(PyObject *module, const char *user, gid_t basegid)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getgroups
      Src: /src/cpython/Modules/posixmodule.c:9261,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9263,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:9267,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:9270,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9272,1
    - Dst: getgroups
      Src: /src/cpython/Modules/posixmodule.c:9275,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9277,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9278,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:9282,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:9288,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:9292,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9294,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9299,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:9300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9302
      start: 9256
    functionDepth: 2
    functionLinenumber: 9256
    functionLinenumberEnd: 9302
    functionName: os_getgroups_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - getgroups
    - PyList_SET_ITEM
    - PyMem_Free
    - _PyLong_FromGid
    - PyMem_New
    - posix_error
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgroups_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:9344,1
    - Dst: initgroups
      Src: /src/cpython/Modules/posixmodule.c:9346,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:9347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - oname
    - gid
    argTypes:
    - PyObject*
    - PyObject*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9350
      start: 9339
    functionDepth: 1
    functionLinenumber: 9339
    functionLinenumberEnd: 9350
    functionName: os_initgroups_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyBytes_AS_STRING
    - initgroups
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_initgroups_impl(PyObject *module, PyObject *oname, gid_t gid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpgid
      Src: /src/cpython/Modules/posixmodule.c:9367,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9369,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9371
      start: 9363
    functionDepth: 2
    functionLinenumber: 9363
    functionLinenumberEnd: 9371
    functionName: os_getpgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getpgid
    - posix_error
    - PyLong_FromPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpgid_impl(PyObject *module, pid_t pid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9387,1
    - Dst: getpgrp
      Src: /src/cpython/Modules/posixmodule.c:9387,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9389,1
    - Dst: getpgrp
      Src: /src/cpython/Modules/posixmodule.c:9389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9391
      start: 9382
    functionDepth: 0
    functionLinenumber: 9382
    functionLinenumberEnd: 9391
    functionName: os_getpgrp_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:9407,1
    - Dst: setpgrp
      Src: /src/cpython/Modules/posixmodule.c:9409,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9413
      start: 9402
    functionDepth: 2
    functionLinenumber: 9402
    functionLinenumberEnd: 9413
    functionName: os_setpgrp_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setpgrp
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpgrp_impl(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/cpython/Modules/posixmodule.c:9456,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/posixmodule.c:9461,1
    - Dst: pNtQueryInformationProcess
      Src: /src/cpython/Modules/posixmodule.c:9466,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/posixmodule.c:9466,1
    - Dst: NT_SUCCESS
      Src: /src/cpython/Modules/posixmodule.c:9472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9493
      start: 9442
    functionDepth: 0
    functionLinenumber: 9442
    functionLinenumberEnd: 9493
    functionName: win32_getppid_fast
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - NT_SUCCESS
    - GetCurrentProcess
    - GetProcAddress
    - GetModuleHandleW
    - pNtQueryInformationProcess
    linkageType: ''
    returnType: ULONG
    signature: ULONG win32_getppid_fast(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/posixmodule.c:9500,1
    - Dst: win32_getppid_fast
      Src: /src/cpython/Modules/posixmodule.c:9504,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:9506,1
    - Dst: PssCaptureSnapshot
      Src: /src/cpython/Modules/posixmodule.c:9511,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:9513,1
    - Dst: PssQuerySnapshot
      Src: /src/cpython/Modules/posixmodule.c:9517,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:9520,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:9523,1
    - Dst: PssFreeSnapshot
      Src: /src/cpython/Modules/posixmodule.c:9526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9528
      start: 9495
    functionDepth: 1
    functionLinenumber: 9495
    functionLinenumberEnd: 9528
    functionName: win32_getppid
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PssQuerySnapshot
    - GetCurrentProcess
    - PssFreeSnapshot
    - PyLong_FromUnsignedLong
    - win32_getppid_fast
    - PssCaptureSnapshot
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_getppid_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:9568,1
    - Dst: GetUserNameW
      Src: /src/cpython/Modules/posixmodule.c:9570,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:9572,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:9575,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:9575,1
    - Dst: getlogin_r
      Src: /src/cpython/Modules/posixmodule.c:9584,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9588,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:9592,1
    - Dst: getlogin
      Src: /src/cpython/Modules/posixmodule.c:9599,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9602,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9604,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:9607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9611
      start: 9561
    functionDepth: 2
    functionLinenumber: 9561
    functionLinenumberEnd: 9611
    functionName: os_getlogin_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - getlogin_r
    - GetUserNameW
    - PyErr_SetString
    - getlogin
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_getuid_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:9650,1
    - Dst: kill
      Src: /src/cpython/Modules/posixmodule.c:9654,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9655,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:9661,1
    - Dst: GenerateConsoleCtrlEvent
      Src: /src/cpython/Modules/posixmodule.c:9673,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:9674,1
    - Dst: OpenProcess
      Src: /src/cpython/Modules/posixmodule.c:9682,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:9684,1
    - Dst: TerminateProcess
      Src: /src/cpython/Modules/posixmodule.c:9687,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:9688,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:9690,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - module
    - pid
    - signal
    argTypes:
    - PyObject*
    - pid_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9695
      start: 9646
    functionDepth: 2
    functionLinenumber: 9646
    functionLinenumberEnd: 9695
    functionName: os_kill_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GenerateConsoleCtrlEvent
    - kill
    - PyErr_SetFromWindowsErr
    - PyErr_CheckSignals
    - OpenProcess
    - PySys_Audit
    - CloseHandle
    - posix_error
    - TerminateProcess
    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/cpython/Modules/posixmodule.c:9714,1
    - Dst: killpg
      Src: /src/cpython/Modules/posixmodule.c:9721,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - pgid
    - signal
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9724
      start: 9710
    functionDepth: 2
    functionLinenumber: 9710
    functionLinenumberEnd: 9724
    functionName: os_killpg_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - posix_error
    - killpg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_killpg_impl(PyObject *module, pid_t pgid, int signal)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: plock
      Src: /src/cpython/Modules/posixmodule.c:9745,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - op
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9748
      start: 9741
    functionDepth: 2
    functionLinenumber: 9741
    functionLinenumberEnd: 9748
    functionName: os_plock_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:9766,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - uid
    argTypes:
    - PyObject*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9769
      start: 9762
    functionDepth: 2
    functionLinenumber: 9762
    functionLinenumberEnd: 9769
    functionName: os_setuid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setuid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

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

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

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

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

      os_setgid_impl(PyObject *module, gid_t gid)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:9895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9896,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:9899,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9904,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:9908,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9910,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/posixmodule.c:9915,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9917,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:9920,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9923,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9924,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/posixmodule.c:9927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9928,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9933,1
    - Dst: setgroups
      Src: /src/cpython/Modules/posixmodule.c:9936,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9937,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9938,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9941,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - module
    - groups
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9943
      start: 9891
    functionDepth: 2
    functionLinenumber: 9891
    functionLinenumberEnd: 9943
    functionName: os_setgroups
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_DECREF
    - PySequence_Check
    - PyErr_SetString
    - PySequence_Size
    - PyMem_Free
    - PyMem_New
    - PyIndex_Check
    - setgroups
    - _Py_Gid_Converter
    - posix_error
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setgroups(PyObject *module, PyObject *groups)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9954,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:9959,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/posixmodule.c:9962,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:9967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9968,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9988,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:9988,1
    - Dst: doubletime
      Src: /src/cpython/Modules/posixmodule.c:9988,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9989,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:9989,1
    - Dst: doubletime
      Src: /src/cpython/Modules/posixmodule.c:9989,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9990,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9990,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9991,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9991,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9992,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9992,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9993,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9993,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9994,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9994,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9995,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9995,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9996,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9996,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9997,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9997,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9998,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9998,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:9999,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9999,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10000,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10000,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10001,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10001,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10002,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10002,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10003,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10003,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10006,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - module
    - pid
    - status
    - ru
    argTypes:
    - PyObject*
    - pid_t
    - int
    - struct rusage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10007
      start: 9947
    functionDepth: 2
    functionLinenumber: 9947
    functionLinenumberEnd: 10007
    functionName: wait_helper
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SET_RESULT
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - doubletime
    - Py_BuildValue
    - memset
    - PyLong_FromPid
    - PyFloat_FromDouble
    - PyLong_FromLong
    - posix_error
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wait_helper(PyObject *module, 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: 9976
      start: 9975
    functionDepth: 0
    functionLinenumber: 9975
    functionLinenumberEnd: 9976
    functionName: doubletime
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: doubletime(TV)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9987
      start: 9978
    functionDepth: 0
    functionLinenumber: 9978
    functionLinenumberEnd: 9987
    functionName: SET_RESULT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RESULT(CALL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait3
      Src: /src/cpython/Modules/posixmodule.c:10034,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10036,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10038,1
    - Dst: wait_helper
      Src: /src/cpython/Modules/posixmodule.c:10040,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10040,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - module
    - options
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10041
      start: 10022
    functionDepth: 3
    functionLinenumber: 10022
    functionLinenumberEnd: 10041
    functionName: os_wait3_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - wait_helper
    - PyErr_CheckSignals
    - wait3
    - 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: 10030
      start: 10030
    functionDepth: 0
    functionLinenumber: 10030
    functionLinenumberEnd: 10030
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait4
      Src: /src/cpython/Modules/posixmodule.c:10071,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10073,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10075,1
    - Dst: wait_helper
      Src: /src/cpython/Modules/posixmodule.c:10077,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10078
      start: 10059
    functionDepth: 3
    functionLinenumber: 10059
    functionLinenumberEnd: 10078
    functionName: os_wait4_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - wait_helper
    - PyErr_CheckSignals
    - posix_error
    - wait4
    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: 10067
      start: 10067
    functionDepth: 0
    functionLinenumber: 10067
    functionLinenumberEnd: 10067
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: waitid
      Src: /src/cpython/Modules/posixmodule.c:10113,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10115,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10117,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:10122,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:10123,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10139,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10139,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10140,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:10140,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10141,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10141,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10142,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10142,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10143,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - module
    - idtype
    - id
    - options
    argTypes:
    - PyObject*
    - idtype_t
    - id_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10148
      start: 10101
    functionDepth: 2
    functionLinenumber: 10101
    functionLinenumberEnd: 10148
    functionName: os_waitid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SET_RESULT
    - waitid
    - PyLong_FromPid
    - _PyLong_FromUid
    - get_posix_state
    - PyErr_CheckSignals
    - PyLong_FromLong
    - posix_error
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitid_impl(PyObject *module, idtype_t idtype, id_t id, int options)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10138
      start: 10129
    functionDepth: 0
    functionLinenumber: 10129
    functionLinenumberEnd: 10138
    functionName: SET_RESULT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RESULT(CALL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/cpython/Modules/posixmodule.c:10178,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10180,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10182,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10184,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10184,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10185
      start: 10167
    functionDepth: 2
    functionLinenumber: 10167
    functionLinenumberEnd: 10185
    functionName: os_waitpid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - Py_BuildValue
    - PyLong_FromPid
    - PyErr_CheckSignals
    - waitpid
    - posix_error
    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: 10174
      start: 10174
    functionDepth: 0
    functionLinenumber: 10174
    functionLinenumberEnd: 10174
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cwait
      Src: /src/cpython/Modules/posixmodule.c:10213,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10216,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10218,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10224
      start: 10202
    functionDepth: 2
    functionLinenumber: 10202
    functionLinenumberEnd: 10224
    functionName: os_waitpid_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:10249,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10251,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10253,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10255,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10255,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10256
      start: 10238
    functionDepth: 2
    functionLinenumber: 10238
    functionLinenumberEnd: 10256
    functionName: os_wait_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - Py_BuildValue
    - PyLong_FromPid
    - wait
    - PyErr_CheckSignals
    - 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: 10245
      start: 10245
    functionDepth: 0
    functionLinenumber: 10245
    functionLinenumberEnd: 10245
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Modules/posixmodule.c:10278,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10280,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - pid
    - flags
    argTypes:
    - PyObject*
    - pid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10283
      start: 10274
    functionDepth: 2
    functionLinenumber: 10274
    functionLinenumberEnd: 10283
    functionName: os_pidfd_open_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - posix_error
    - syscall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pidfd_open_impl(PyObject *module, pid_t pid, unsigned int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setns
      Src: /src/cpython/Modules/posixmodule.c:10305,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - nstype
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10313
      start: 10298
    functionDepth: 2
    functionLinenumber: 10298
    functionLinenumberEnd: 10313
    functionName: os_setns_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setns
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setns_impl(PyObject *module, int fd, int nstype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unshare
      Src: /src/cpython/Modules/posixmodule.c:10333,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10341
      start: 10326
    functionDepth: 2
    functionLinenumber: 10326
    functionLinenumberEnd: 10341
    functionName: os_unshare_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - unshare
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unshare_impl(PyObject *module, int flags)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: readlinkat
      Src: /src/cpython/Modules/posixmodule.c:10377,1
    - Dst: readlink
      Src: /src/cpython/Modules/posixmodule.c:10383,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:10388,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:10394,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:10398,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:10399,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:10401,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:10412,1
    - Dst: DeviceIoControl
      Src: /src/cpython/Modules/posixmodule.c:10422,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:10430,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:10435,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10454,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/posixmodule.c:10457,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:10461,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:10462,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:10463,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:10463,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10468
      start: 10362
    functionDepth: 4
    functionLinenumber: 10362
    functionLinenumberEnd: 10468
    functionName: os_readlink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - wcsncmp
    - CreateFileW
    - readlinkat
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - readlink
    - PyBytes_Check
    - Py_SETREF
    - PyUnicode_EncodeFSDefault
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeFSDefaultAndSize
    - PyUnicode_Check
    - argument_unavailable_error
    - CloseHandle
    - DeviceIoControl
    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/cpython/Modules/posixmodule.c:10478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10491
      start: 10474
    functionDepth: 0
    functionLinenumber: 10474
    functionLinenumberEnd: 10491
    functionName: _dirnameW
    functionSourceFile: /src/cpython/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: 10505
      start: 10500
    functionDepth: 0
    functionLinenumber: 10500
    functionLinenumberEnd: 10505
    functionName: _is_absW
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:10511,1
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:10512,1
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:10515,1
    - Dst: wcscat_s
      Src: /src/cpython/Modules/posixmodule.c:10519,1
    - Dst: wcscat_s
      Src: /src/cpython/Modules/posixmodule.c:10523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - dest_path
    - root
    - rest
    argTypes:
    - WCHAR*
    - WCHAR*
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10524
      start: 10508
    functionDepth: 1
    functionLinenumber: 10508
    functionLinenumberEnd: 10524
    functionName: _joinW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcscpy_s
    - wcscat_s
    - _is_absW
    linkageType: ''
    returnType: int
    signature: int _joinW(WCHAR *dest_path, const WCHAR *root, const WCHAR *rest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:10535,1
    - Dst: _dirnameW
      Src: /src/cpython/Modules/posixmodule.c:10536,1
    - Dst: _joinW
      Src: /src/cpython/Modules/posixmodule.c:10540,1
    - Dst: GetFileAttributesExW
      Src: /src/cpython/Modules/posixmodule.c:10544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10547
      start: 10527
    functionDepth: 2
    functionLinenumber: 10527
    functionLinenumberEnd: 10547
    functionName: _check_dirW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcscpy_s
    - GetFileAttributesExW
    - _dirnameW
    - _joinW
    linkageType: ''
    returnType: int
    signature: int _check_dirW(LPCWSTR src, LPCWSTR dest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:10593,1
    - Dst: _check_dirW
      Src: /src/cpython/Modules/posixmodule.c:10608,1
    - Dst: CreateSymbolicLinkW
      Src: /src/cpython/Modules/posixmodule.c:10612,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:10617,1
    - Dst: CreateSymbolicLinkW
      Src: /src/cpython/Modules/posixmodule.c:10632,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:10636,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:10642,1
    - Dst: symlinkat
      Src: /src/cpython/Modules/posixmodule.c:10650,1
    - Dst: symlink
      Src: /src/cpython/Modules/posixmodule.c:10656,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:10661,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:10667,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - module
    - src
    - dst
    - target_is_directory
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10671
      start: 10575
    functionDepth: 3
    functionLinenumber: 10575
    functionLinenumberEnd: 10671
    functionName: os_symlink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error2
    - CreateSymbolicLinkW
    - GetLastError
    - symlink
    - _check_dirW
    - symlinkat
    - argument_unavailable_error
    - 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: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:10705,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:10706,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:10720,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:10721,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:10722,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:10723,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:10724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - module
    - user
    - system
    - children_user
    - children_system
    - elapsed
    argTypes:
    - PyObject*
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10729
      start: 10700
    functionDepth: 2
    functionLinenumber: 10700
    functionLinenumberEnd: 10729
    functionName: build_times_result
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - get_posix_state
    - PyStructSequence_New
    - SET
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuild_times_result(PyObject *module, 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: 10720
      start: 10710
    functionDepth: 0
    functionLinenumber: 10710
    functionLinenumberEnd: 10720
    functionName: SET
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(i, field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/posixmodule.c:10749,1
    - Dst: GetProcessTimes
      Src: /src/cpython/Modules/posixmodule.c:10750,1
    - Dst: build_times_result
      Src: /src/cpython/Modules/posixmodule.c:10756,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:10765,1
    - Dst: times
      Src: /src/cpython/Modules/posixmodule.c:10771,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10773,1
    - Dst: build_times_result
      Src: /src/cpython/Modules/posixmodule.c:10776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10783
      start: 10742
    functionDepth: 3
    functionLinenumber: 10742
    functionLinenumberEnd: 10783
    functionName: os_times_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - build_times_result
    - GetCurrentProcess
    - posix_error
    - times
    - GetProcessTimes
    - get_posix_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_times_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10789
      start: 10788
    functionDepth: 0
    functionLinenumber: 10788
    functionLinenumberEnd: 10789
    functionName: EXTRACT_NSEC
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRACT_NSEC(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sec
    - ','
    - nsec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10790
      start: 10789
    functionDepth: 0
    functionLinenumber: 10789
    functionLinenumberEnd: 10790
    functionName: CONVERT_SEC_AND_NSEC_TO_DOUBLE
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_SEC_AND_NSEC_TO_DOUBLE(sec, nsec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_SEC_AND_NSEC_TO_DOUBLE
      Src: /src/cpython/Modules/posixmodule.c:10794,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:10796,1
    - Dst: CONVERT_SEC_AND_NSEC_TO_DOUBLE
      Src: /src/cpython/Modules/posixmodule.c:10800,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:10802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:10804,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/posixmodule.c:10807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:10808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:10809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - curr_value
    argTypes:
    - struct itimerspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10811
      start: 10791
    functionDepth: 1
    functionLinenumber: 10791
    functionLinenumberEnd: 10811
    functionName: build_itimerspec
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - CONVERT_SEC_AND_NSEC_TO_DOUBLE
    - PyFloat_FromDouble
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      build_itimerspec(const struct itimerspec* curr_value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/posixmodule.c:10817,1
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/posixmodule.c:10820,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - curr_value
    argTypes:
    - struct itimerspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10824
      start: 10813
    functionDepth: 1
    functionLinenumber: 10813
    functionLinenumberEnd: 10824
    functionName: build_itimerspec_ns
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _PyTime_FromTimespec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      build_itimerspec_ns(const struct itimerspec* curr_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerfd_create
      Src: /src/cpython/Modules/posixmodule.c:10858,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:10861,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - clockid
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10864
      start: 10850
    functionDepth: 1
    functionLinenumber: 10850
    functionLinenumberEnd: 10864
    functionName: os_timerfd_create_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - timerfd_create
    - PyErr_SetFromErrno
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_create_impl(PyObject *module, int clockid, int flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsDouble
      Src: /src/cpython/Modules/posixmodule.c:10889,1
    - Dst: _PyTime_FromSecondsDouble
      Src: /src/cpython/Modules/posixmodule.c:10893,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/posixmodule.c:10899,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10900,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/posixmodule.c:10903,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10904,1
    - Dst: timerfd_settime
      Src: /src/cpython/Modules/posixmodule.c:10910,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:10913,1
    - Dst: build_itimerspec
      Src: /src/cpython/Modules/posixmodule.c:10915,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - module
    - fd
    - flags
    - initial_double
    - interval_double
    argTypes:
    - PyObject*
    - int
    - int
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10916
      start: 10883
    functionDepth: 2
    functionLinenumber: 10883
    functionLinenumberEnd: 10916
    functionName: os_timerfd_settime_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - timerfd_settime
    - PyErr_SetString
    - build_itimerspec
    - _PyTime_AsTimespec
    - _PyTime_FromSecondsDouble
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_timerfd_settime_impl(PyObject *module, int fd, int
      flags,\n                        double initial_double, double interval_double)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/posixmodule.c:10944,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10945,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/posixmodule.c:10948,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10949,1
    - Dst: timerfd_settime
      Src: /src/cpython/Modules/posixmodule.c:10953,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:10956,1
    - Dst: build_itimerspec_ns
      Src: /src/cpython/Modules/posixmodule.c:10958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - module
    - fd
    - flags
    - initial
    - interval
    argTypes:
    - PyObject*
    - int
    - int
    - long long
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10959
      start: 10936
    functionDepth: 2
    functionLinenumber: 10936
    functionLinenumberEnd: 10959
    functionName: os_timerfd_settime_ns_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - timerfd_settime
    - PyErr_SetString
    - build_itimerspec_ns
    - _PyTime_AsTimespec
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_timerfd_settime_ns_impl(PyObject *module, int fd, int
      flags,\n                           long long initial, long long interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerfd_gettime
      Src: /src/cpython/Modules/posixmodule.c:10979,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:10982,1
    - Dst: build_itimerspec
      Src: /src/cpython/Modules/posixmodule.c:10984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10985
      start: 10972
    functionDepth: 2
    functionLinenumber: 10972
    functionLinenumberEnd: 10985
    functionName: os_timerfd_gettime_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - timerfd_gettime
    - build_itimerspec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_gettime_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerfd_gettime
      Src: /src/cpython/Modules/posixmodule.c:11006,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:11009,1
    - Dst: build_itimerspec_ns
      Src: /src/cpython/Modules/posixmodule.c:11011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11012
      start: 10999
    functionDepth: 2
    functionLinenumber: 10999
    functionLinenumberEnd: 11012
    functionName: os_timerfd_gettime_ns_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - build_itimerspec_ns
    - PyErr_SetFromErrno
    - timerfd_gettime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_gettime_ns_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsid
      Src: /src/cpython/Modules/posixmodule.c:11034,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11036,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:11037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11038
      start: 11029
    functionDepth: 2
    functionLinenumber: 11029
    functionLinenumberEnd: 11038
    functionName: os_getsid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getsid
    - posix_error
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

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

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

      os_tcgetpgrp_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcsetpgrp
      Src: /src/cpython/Modules/posixmodule.c:11119,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - pgid
    argTypes:
    - PyObject*
    - int
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11122
      start: 11115
    functionDepth: 2
    functionLinenumber: 11115
    functionLinenumberEnd: 11122
    functionName: os_tcsetpgrp_impl
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:11172,1
    - Dst: _wopen
      Src: /src/cpython/Modules/posixmodule.c:11180,1
    - Dst: openat
      Src: /src/cpython/Modules/posixmodule.c:11185,1
    - Dst: open
      Src: /src/cpython/Modules/posixmodule.c:11193,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:11196,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:11201,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/posixmodule.c:11208,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:11213,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:11214,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - module
    - path
    - flags
    - mode
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11220
      start: 11150
    functionDepth: 2
    functionLinenumber: 11150
    functionLinenumberEnd: 11220
    functionName: os_open_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - open
    - close
    - PyErr_SetFromErrnoWithFilenameObject
    - PyErr_CheckSignals
    - _Py_set_inheritable
    - argument_unavailable_error
    - PySys_Audit
    - openat
    - _wopen
    linkageType: ''
    returnType: int
    signature: int os_open_impl(PyObject *module, path_t *path, int flags, int mode,
      int dir_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _wopen
      Src: /src/cpython/Modules/posixmodule.c:11180,1
    - Dst: openat
      Src: /src/cpython/Modules/posixmodule.c:11185,1
    - Dst: open
      Src: /src/cpython/Modules/posixmodule.c:11193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11196
      start: 11176
    functionDepth: 0
    functionLinenumber: 11176
    functionLinenumberEnd: 11196
    functionName: do
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:11242,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11248
      start: 11231
    functionDepth: 2
    functionLinenumber: 11231
    functionLinenumberEnd: 11248
    functionName: os_close_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_close_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - module
    - fd_low
    - fd_high
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11268
      start: 11260
    functionDepth: 0
    functionLinenumber: 11260
    functionLinenumberEnd: 11268
    functionName: os_closerange_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    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/cpython/Modules/posixmodule.c:11284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11285
      start: 11280
    functionDepth: 1
    functionLinenumber: 11280
    functionLinenumberEnd: 11285
    functionName: os_dup_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:11409,1
    - Dst: lockf
      Src: /src/cpython/Modules/posixmodule.c:11414,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11418,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: 11421
      start: 11403
    functionDepth: 2
    functionLinenumber: 11403
    functionLinenumberEnd: 11421
    functionName: os_lockf_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - lockf
    - posix_error
    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/cpython/Modules/posixmodule.c:11463,1
    - Dst: lseek
      Src: /src/cpython/Modules/posixmodule.c:11465,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11470,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: 11473
      start: 11445
    functionDepth: 2
    functionLinenumber: 11445
    functionLinenumberEnd: 11473
    functionName: os_lseek_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lseek
    - _lseeki64
    - posix_error
    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/cpython/Modules/posixmodule.c:11494,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/posixmodule.c:11497,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:11499,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/posixmodule.c:11503,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:11503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:11505,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/posixmodule.c:11510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - fd
    - length
    argTypes:
    - PyObject*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11513
      start: 11485
    functionDepth: 2
    functionLinenumber: 11485
    functionLinenumberEnd: 11513
    functionName: os_read_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_DECREF
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - posix_error
    - _Py_read
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_read_impl(PyObject *module, int fd, Py_ssize_t length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:11539,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/posixmodule.c:11540,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:11544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:11544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - buffer
    argTypes:
    - PyObject*
    - int
    - Py_buffer*
    assertStmts:
    - condition: (buffer->len >= 0)
      pos:
        line_end: 11538
        line_start: 11538
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (result >= 0 || (result == -1 && PyErr_Occurred()))
      pos:
        line_end: 11543
        line_start: 11543
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 11546
      start: 11535
    functionDepth: 1
    functionLinenumber: 11535
    functionLinenumberEnd: 11546
    functionName: os_readinto_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _Py_read
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t os_readinto_impl(PyObject *module, int fd, Py_buffer *buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:11557,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:11559,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:11563,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:11565,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:11566,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/posixmodule.c:11571,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/posixmodule.c:11574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:11575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:11578,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:11585,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/posixmodule.c:11587,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:11589,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: 11591
      start: 11552
    functionDepth: 1
    functionLinenumber: 11552
    functionLinenumberEnd: 11591
    functionName: iov_setup
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_DECREF
    - PyMem_Free
    - PyObject_GetBuffer
    - PyMem_New
    - PyBuffer_Release
    - PyErr_NoMemory
    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_Free
      Src: /src/cpython/Modules/posixmodule.c:11597,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/posixmodule.c:11599,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:11601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - iov
    - buf
    - cnt
    argTypes:
    - struct iovec*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11602
      start: 11593
    functionDepth: 1
    functionLinenumber: 11593
    functionLinenumberEnd: 11602
    functionName: iov_cleanup
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void iov_cleanup(struct iovec *iov, Py_buffer *buf, int cnt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:11634,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11635,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:11640,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:11644,1
    - Dst: readv
      Src: /src/cpython/Modules/posixmodule.c:11649,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:11651,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:11654,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11658,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - fd
    - buffers
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11664
      start: 11625
    functionDepth: 2
    functionLinenumber: 11625
    functionLinenumberEnd: 11664
    functionName: os_readv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - iov_setup
    - PySequence_Check
    - PyErr_SetString
    - iov_cleanup
    - PySequence_Size
    - readv
    - PyErr_CheckSignals
    - posix_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t os_readv_impl(PyObject *module, int fd, PyObject *buffers)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11694,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:11696,1
    - Dst: pread
      Src: /src/cpython/Modules/posixmodule.c:11703,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:11703,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:11706,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:11712,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/posixmodule.c:11716,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - fd
    - length
    - offset
    argTypes:
    - PyObject*
    - int
    - Py_ssize_t
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11718
      start: 11684
    functionDepth: 2
    functionLinenumber: 11684
    functionLinenumberEnd: 11718
    functionName: os_pread_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - pread
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyErr_CheckSignals
    - posix_error
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pread_impl(PyObject *module, int fd, Py_ssize_t length, Py_off_t offset)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:11759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11760,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:11765,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:11772,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:11777,1
    - Dst: preadv2
      Src: /src/cpython/Modules/posixmodule.c:11784,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:11787,1
    - Dst: preadv
      Src: /src/cpython/Modules/posixmodule.c:11800,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:11803,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:11812,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11816,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 5
    argNames:
    - module
    - fd
    - buffers
    - offset
    - flags
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11822
      start: 11749
    functionDepth: 2
    functionLinenumber: 11749
    functionLinenumberEnd: 11822
    functionName: os_preadv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - iov_setup
    - preadv
    - PySequence_Check
    - PyErr_SetString
    - iov_cleanup
    - preadv2
    - PySequence_Size
    - PyErr_CheckSignals
    - argument_unavailable_error
    - posix_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/cpython/Modules/posixmodule.c:11840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - fd
    - data
    argTypes:
    - PyObject*
    - int
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11841
      start: 11836
    functionDepth: 1
    functionLinenumber: 11836
    functionLinenumberEnd: 11841
    functionName: os_write_impl
    functionSourceFile: /src/cpython/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: 27
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:11916,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11917,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:11921,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11925,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:11931,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11939,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:11950,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11951,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:11955,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11959,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:11965,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:11976,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:11978,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:11981,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:11986,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:11988,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12001,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:12009,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:12011,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:12019,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12021,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12023,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:12024,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:12028,1
    - Dst: fstat
      Src: /src/cpython/Modules/posixmodule.c:12038,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12040,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12042,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:12045,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:12059,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12068,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12070,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:12071,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 99
    argCount: 5
    argNames:
    - module
    - out_fd
    - in_fd
    - offobj
    - count
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12073
      start: 11896
    functionDepth: 2
    functionLinenumber: 11896
    functionLinenumberEnd: 12073
    functionName: os_sendfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - iov_setup
    - fstat
    - PySequence_Check
    - sendfile
    - PyErr_SetString
    - iov_cleanup
    - PyLong_FromSsize_t
    - Py_off_t_converter
    - PySequence_Size
    - PyErr_CheckSignals
    - PyLong_FromLong
    - PyLong_FromLongLong
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_sendfile_impl(PyObject *module, int out_fd, int in_fd,
      PyObject *offobj,\n                 Py_ssize_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:11976,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:11978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11981
      start: 11972
    functionDepth: 0
    functionLinenumber: 11972
    functionLinenumberEnd: 11981
    functionName: do
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:12096,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - module
    - in_fd
    - out_fd
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12101
      start: 12089
    functionDepth: 2
    functionLinenumber: 12089
    functionLinenumberEnd: 12101
    functionName: os__fcopyfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fcopyfile
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__fcopyfile_impl(PyObject *module, int in_fd, int out_fd, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FSTAT
      Src: /src/cpython/Modules/posixmodule.c:12126,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12128,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:12131,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12133,1
    - Dst: _pystat_fromstructstat
      Src: /src/cpython/Modules/posixmodule.c:12137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12138
      start: 12116
    functionDepth: 4
    functionLinenumber: 12116
    functionLinenumberEnd: 12138
    functionName: os_fstat_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - FSTAT
    - PyErr_SetFromWindowsErr
    - PyErr_CheckSignals
    - posix_error
    - _pystat_fromstructstat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstat_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/cpython/Modules/posixmodule.c:12159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12163
      start: 12152
    functionDepth: 0
    functionLinenumber: 12152
    functionLinenumberEnd: 12163
    functionName: os_isatty_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:12270,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12272,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:12273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12274
      start: 12263
    functionDepth: 2
    functionLinenumber: 12263
    functionLinenumberEnd: 12274
    functionName: os_pipe2_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:12301,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12302,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12306,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12310,1
    - Dst: writev
      Src: /src/cpython/Modules/posixmodule.c:12316,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12318,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12321,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:12323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - module
    - fd
    - buffers
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12325
      start: 12291
    functionDepth: 2
    functionLinenumber: 12291
    functionLinenumberEnd: 12325
    functionName: os_writev_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - iov_setup
    - PySequence_Check
    - PyErr_SetString
    - iov_cleanup
    - PySequence_Size
    - PyErr_CheckSignals
    - posix_error
    - writev
    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/cpython/Modules/posixmodule.c:12355,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12358,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12361,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: 12363
      start: 12345
    functionDepth: 2
    functionLinenumber: 12345
    functionLinenumberEnd: 12363
    functionName: os_pwrite_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - pwrite
    - PyErr_CheckSignals
    - posix_error
    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/cpython/Modules/posixmodule.c:12407,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12408,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12413,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:12420,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12425,1
    - Dst: pwritev2
      Src: /src/cpython/Modules/posixmodule.c:12432,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12435,1
    - Dst: pwritev
      Src: /src/cpython/Modules/posixmodule.c:12449,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12452,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12462,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:12466,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 5
    argNames:
    - module
    - fd
    - buffers
    - offset
    - flags
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12469
      start: 12396
    functionDepth: 2
    functionLinenumber: 12396
    functionLinenumberEnd: 12469
    functionName: os_pwritev_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - iov_setup
    - pwritev2
    - PySequence_Check
    - pwritev
    - PyErr_SetString
    - iov_cleanup
    - PySequence_Size
    - PyErr_CheckSignals
    - argument_unavailable_error
    - posix_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/cpython/Modules/posixmodule.c:12509,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:12514,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:12521,1
    - Dst: copy_file_range
      Src: /src/cpython/Modules/posixmodule.c:12529,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12531,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12534,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:12537,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: 12538
      start: 12493
    functionDepth: 2
    functionLinenumber: 12493
    functionLinenumberEnd: 12538
    functionName: os_copy_file_range_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromSsize_t
    - copy_file_range
    - Py_off_t_converter
    - PyErr_CheckSignals
    - posix_error
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12578,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:12583,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:12590,1
    - Dst: splice
      Src: /src/cpython/Modules/posixmodule.c:12598,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12600,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12603,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:12606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 7
    argNames:
    - module
    - src
    - dst
    - count
    - offset_src
    - offset_dst
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12607
      start: 12565
    functionDepth: 2
    functionLinenumber: 12565
    functionLinenumberEnd: 12607
    functionName: os_splice_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromSsize_t
    - splice
    - Py_off_t_converter
    - PyErr_CheckSignals
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_splice_impl(PyObject *module, int src, int dst, Py_ssize_t
      count,\n               PyObject *offset_src, PyObject *offset_dst,\n               unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mkfifoat
      Src: /src/cpython/Modules/posixmodule.c:12642,1
    - Dst: mkfifo
      Src: /src/cpython/Modules/posixmodule.c:12650,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12653,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:12657,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - module
    - path
    - mode
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12666
      start: 12627
    functionDepth: 2
    functionLinenumber: 12627
    functionLinenumberEnd: 12666
    functionName: os_mkfifo_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - mkfifo
    - mkfifoat
    - PyErr_CheckSignals
    - argument_unavailable_error
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkfifo_impl(PyObject *module, path_t *path, int mode, int dir_fd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mknodat
      Src: /src/cpython/Modules/posixmodule.c:12712,1
    - Dst: mknod
      Src: /src/cpython/Modules/posixmodule.c:12720,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12723,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:12726,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - module
    - path
    - mode
    - device
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - dev_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12734
      start: 12696
    functionDepth: 2
    functionLinenumber: 12696
    functionLinenumberEnd: 12734
    functionName: os_mknod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - mknodat
    - mknod
    - PyErr_CheckSignals
    - argument_unavailable_error
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_mknod_impl(PyObject *module, path_t *path, int mode,
      dev_t device,\n              int dir_fd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:12744,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:12747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12748
      start: 12739
    functionDepth: 0
    functionLinenumber: 12739
    functionLinenumberEnd: 12748
    functionName: major_minor_conv
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      major_minor_conv(unsigned int value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12759
      start: 12750
    functionDepth: 0
    functionLinenumber: 12750
    functionLinenumberEnd: 12759
    functionName: major_minor_check
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int major_minor_check(dev_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: major_minor_conv
      Src: /src/cpython/Modules/posixmodule.c:12774,1
    - Dst: major
      Src: /src/cpython/Modules/posixmodule.c:12774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - device
    argTypes:
    - PyObject*
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12775
      start: 12770
    functionDepth: 1
    functionLinenumber: 12770
    functionLinenumberEnd: 12775
    functionName: os_major_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - major_minor_conv
    - major
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_major_impl(PyObject *module, dev_t device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: major_minor_conv
      Src: /src/cpython/Modules/posixmodule.c:12791,1
    - Dst: minor
      Src: /src/cpython/Modules/posixmodule.c:12791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - device
    argTypes:
    - PyObject*
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12792
      start: 12787
    functionDepth: 1
    functionLinenumber: 12787
    functionLinenumberEnd: 12792
    functionName: os_minor_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - major_minor_conv
    - minor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_minor_impl(PyObject *module, dev_t device)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: major_minor_check
      Src: /src/cpython/Modules/posixmodule.c:12809,1
    - Dst: major_minor_check
      Src: /src/cpython/Modules/posixmodule.c:12809,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12810,1
    - Dst: makedev
      Src: /src/cpython/Modules/posixmodule.c:12814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - module
    - major
    - minor
    argTypes:
    - PyObject*
    - dev_t
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12815
      start: 12805
    functionDepth: 1
    functionLinenumber: 12805
    functionLinenumberEnd: 12815
    functionName: os_makedev_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - makedev
    - major_minor_check
    linkageType: ''
    returnType: dev_t
    signature: dev_t os_makedev_impl(PyObject *module, dev_t major, dev_t minor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:12837,1
    - Dst: _chsize_s
      Src: /src/cpython/Modules/posixmodule.c:12845,1
    - Dst: ftruncate
      Src: /src/cpython/Modules/posixmodule.c:12847,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12852,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fd
    - length
    argTypes:
    - PyObject*
    - int
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12856
      start: 12830
    functionDepth: 2
    functionLinenumber: 12830
    functionLinenumberEnd: 12856
    functionName: os_ftruncate_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _chsize_s
    - ftruncate
    - PyErr_CheckSignals
    - PySys_Audit
    - posix_error
    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/cpython/Modules/posixmodule.c:12882,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:12884,1
    - Dst: _wopen
      Src: /src/cpython/Modules/posixmodule.c:12891,1
    - Dst: _chsize_s
      Src: /src/cpython/Modules/posixmodule.c:12895,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:12896,1
    - Dst: truncate
      Src: /src/cpython/Modules/posixmodule.c:12901,1
    - Dst: posix_path_error
      Src: /src/cpython/Modules/posixmodule.c:12906,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: 12909
      start: 12872
    functionDepth: 3
    functionLinenumber: 12872
    functionLinenumberEnd: 12909
    functionName: os_truncate_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _chsize_s
    - os_ftruncate_impl
    - close
    - posix_path_error
    - truncate
    - PySys_Audit
    - _wopen
    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/cpython/Modules/posixmodule.c:12950,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12952,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12961,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: 12962
      start: 12940
    functionDepth: 2
    functionLinenumber: 12940
    functionLinenumberEnd: 12962
    functionName: os_posix_fallocate_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_fallocate
    - PyErr_CheckSignals
    - posix_error
    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/cpython/Modules/posixmodule.c:12997,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12999,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13008,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: 13009
      start: 12987
    functionDepth: 2
    functionLinenumber: 12987
    functionLinenumberEnd: 13009
    functionName: os_posix_fadvise_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - posix_fadvise
    - 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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:13019,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/posixmodule.c:13020,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:13020,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13022,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:13027,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:13030,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:13037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:13038,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:13044,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13047,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:13050,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13051,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13053,1
    - Dst: _wputenv
      Src: /src/cpython/Modules/posixmodule.c:13063,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13066,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13067,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13070,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13073
      start: 13014
    functionDepth: 2
    functionLinenumber: 13014
    functionLinenumberEnd: 13073
    functionName: win32_putenv
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyErr_SetString
    - _wputenv
    - PyUnicode_FindChar
    - wcslen
    - posix_error
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_putenv(PyObject *name, PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:13092,1
    - Dst: win32_putenv
      Src: /src/cpython/Modules/posixmodule.c:13095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13096
      start: 13088
    functionDepth: 3
    functionLinenumber: 13088
    functionLinenumberEnd: 13096
    functionName: os_putenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_putenv
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:13112,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:13113,1
    - Dst: strchr
      Src: /src/cpython/Modules/posixmodule.c:13115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13116,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:13120,1
    - Dst: setenv
      Src: /src/cpython/Modules/posixmodule.c:13124,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - module
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13128
      start: 13108
    functionDepth: 2
    functionLinenumber: 13108
    functionLinenumberEnd: 13128
    functionName: os_putenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setenv
    - PyErr_SetString
    - posix_error
    - PySys_Audit
    - PyBytes_AS_STRING
    - strchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:13145,1
    - Dst: win32_putenv
      Src: /src/cpython/Modules/posixmodule.c:13148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13149
      start: 13141
    functionDepth: 3
    functionLinenumber: 13141
    functionLinenumberEnd: 13149
    functionName: os_unsetenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_putenv
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unsetenv_impl(PyObject *module, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:13163,1
    - Dst: unsetenv
      Src: /src/cpython/Modules/posixmodule.c:13167,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:13167,1
    - Dst: unsetenv
      Src: /src/cpython/Modules/posixmodule.c:13169,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:13169,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13176
      start: 13159
    functionDepth: 2
    functionLinenumber: 13159
    functionLinenumberEnd: 13176
    functionName: os_unsetenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - unsetenv
    - PySys_Audit
    - PyBytes_AS_STRING
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_strerror_impl(PyObject *module, int code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13219,1
    - Dst: WCOREDUMP
      Src: /src/cpython/Modules/posixmodule.c:13220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13221
      start: 13214
    functionDepth: 1
    functionLinenumber: 13214
    functionLinenumberEnd: 13221
    functionName: os_WCOREDUMP_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - WCOREDUMP
    linkageType: ''
    returnType: int
    signature: int os_WCOREDUMP_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13242,1
    - Dst: WIFCONTINUED
      Src: /src/cpython/Modules/posixmodule.c:13243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13244
      start: 13237
    functionDepth: 1
    functionLinenumber: 13237
    functionLinenumberEnd: 13244
    functionName: os_WIFCONTINUED_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - WIFCONTINUED
    linkageType: ''
    returnType: int
    signature: int os_WIFCONTINUED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13262,1
    - Dst: WIFSTOPPED
      Src: /src/cpython/Modules/posixmodule.c:13263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13264
      start: 13257
    functionDepth: 1
    functionLinenumber: 13257
    functionLinenumberEnd: 13264
    functionName: os_WIFSTOPPED_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:13282,1
    - Dst: WIFSIGNALED
      Src: /src/cpython/Modules/posixmodule.c:13283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13284
      start: 13277
    functionDepth: 1
    functionLinenumber: 13277
    functionLinenumberEnd: 13284
    functionName: os_WIFSIGNALED_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - WIFSIGNALED
    linkageType: ''
    returnType: int
    signature: int os_WIFSIGNALED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13303,1
    - Dst: WIFEXITED
      Src: /src/cpython/Modules/posixmodule.c:13304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13305
      start: 13298
    functionDepth: 1
    functionLinenumber: 13298
    functionLinenumberEnd: 13305
    functionName: os_WIFEXITED_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - WIFEXITED
    linkageType: ''
    returnType: int
    signature: int os_WIFEXITED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13323,1
    - Dst: WEXITSTATUS
      Src: /src/cpython/Modules/posixmodule.c:13324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13325
      start: 13318
    functionDepth: 1
    functionLinenumber: 13318
    functionLinenumberEnd: 13325
    functionName: os_WEXITSTATUS_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - WEXITSTATUS
    linkageType: ''
    returnType: int
    signature: int os_WEXITSTATUS_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13344,1
    - Dst: WTERMSIG
      Src: /src/cpython/Modules/posixmodule.c:13345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13346
      start: 13339
    functionDepth: 1
    functionLinenumber: 13339
    functionLinenumberEnd: 13346
    functionName: os_WTERMSIG_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:13364,1
    - Dst: WSTOPSIG
      Src: /src/cpython/Modules/posixmodule.c:13365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13366
      start: 13359
    functionDepth: 1
    functionLinenumber: 13359
    functionLinenumberEnd: 13366
    functionName: os_WSTOPSIG_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WSTOPSIG
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WSTOPSIG_impl(PyObject *module, int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:13387,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:13388,1
    - Dst: _Static_assert
      Src: /src/cpython/Modules/posixmodule.c:13401,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13413,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13413,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13414,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13414,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13415,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13415,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13416,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13416,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13417,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13417,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13418,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13418,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13419,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13419,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13420,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13420,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13421,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13421,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13423,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13423,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13424,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:13424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - module
    - st
    argTypes:
    - PyObject*
    - struct statfs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13429
      start: 13385
    functionDepth: 2
    functionLinenumber: 13385
    functionLinenumberEnd: 13429
    functionName: _pystatvfs_fromstructstatfs
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Static_assert
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    - SET_ITEM
    - PyLong_FromLongLong
    - get_posix_state
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pystatvfs_fromstructstatfs(PyObject *module, struct statfs st)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SEQ
    - ','
    - INDEX
    - ','
    - EXPR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13412
      start: 13403
    functionDepth: 0
    functionLinenumber: 13403
    functionLinenumberEnd: 13412
    functionName: SET_ITEM
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM(SEQ, INDEX, EXPR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:13437,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:13438,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13455,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13455,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13456,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13456,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13457,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13457,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13458,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13458,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13459,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13459,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13460,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13460,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13461,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13461,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13462,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13462,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13463,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13463,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13464,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13464,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13466,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13466,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13467,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13467,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13468,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13468,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13469,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13469,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13470,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13470,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13471,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13471,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13472,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13472,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13473,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13473,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13474,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13474,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13475,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13475,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13480,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:13480,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:13482,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:13482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - module
    - st
    argTypes:
    - PyObject*
    - struct statvfs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13488
      start: 13435
    functionDepth: 2
    functionLinenumber: 13435
    functionLinenumberEnd: 13488
    functionName: _pystatvfs_fromstructstatvfs
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - get_posix_state
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    - PyLong_FromLongLong
    - SET_RESULT
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pystatvfs_fromstructstatvfs(PyObject *module, struct statvfs st)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13453
      start: 13444
    functionDepth: 0
    functionLinenumber: 13444
    functionLinenumberEnd: 13453
    functionName: SET_RESULT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RESULT(CALL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fstatfs
      Src: /src/cpython/Modules/posixmodule.c:13516,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13519,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13521,1
    - Dst: _pystatvfs_fromstructstatfs
      Src: /src/cpython/Modules/posixmodule.c:13523,1
    - Dst: fstatvfs
      Src: /src/cpython/Modules/posixmodule.c:13529,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13532,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13534,1
    - Dst: _pystatvfs_fromstructstatvfs
      Src: /src/cpython/Modules/posixmodule.c:13536,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13538
      start: 13503
    functionDepth: 3
    functionLinenumber: 13503
    functionLinenumberEnd: 13538
    functionName: os_fstatvfs_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fstatvfs
    - PyErr_CheckSignals
    - _pystatvfs_fromstructstatfs
    - _pystatvfs_fromstructstatvfs
    - posix_error
    - fstatfs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstatvfs_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstatfs
      Src: /src/cpython/Modules/posixmodule.c:13570,1
    - Dst: statfs
      Src: /src/cpython/Modules/posixmodule.c:13573,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:13577,1
    - Dst: _pystatvfs_fromstructstatfs
      Src: /src/cpython/Modules/posixmodule.c:13580,1
    - Dst: fstatvfs
      Src: /src/cpython/Modules/posixmodule.c:13588,1
    - Dst: statvfs
      Src: /src/cpython/Modules/posixmodule.c:13592,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:13596,1
    - Dst: _pystatvfs_fromstructstatvfs
      Src: /src/cpython/Modules/posixmodule.c:13599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13601
      start: 13556
    functionDepth: 4
    functionLinenumber: 13556
    functionLinenumberEnd: 13601
    functionName: os_statvfs_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fstatvfs
    - statvfs
    - _pystatvfs_fromstructstatfs
    - _pystatvfs_fromstructstatvfs
    - statfs
    - path_error
    - fstatfs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_statvfs_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:13577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13578
      start: 13574
    functionDepth: 4
    functionLinenumber: 13574
    functionLinenumberEnd: 13578
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:13596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13597
      start: 13593
    functionDepth: 4
    functionLinenumber: 13593
    functionLinenumberEnd: 13597
    functionName: if
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:13623,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:13626,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:13629,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:13631,1
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:13634,1
    - Dst: _dirnameW
      Src: /src/cpython/Modules/posixmodule.c:13636,1
    - Dst: GetDiskFreeSpaceExW
      Src: /src/cpython/Modules/posixmodule.c:13638,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:13642,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13643,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:13648,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:13652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13653
      start: 13614
    functionDepth: 1
    functionLinenumber: 13614
    functionLinenumberEnd: 13653
    functionName: os__getdiskusage_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - GetDiskFreeSpaceExW
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyMem_Free
    - _dirnameW
    - PyMem_New
    - wcscpy_s
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getdiskusage_impl(PyObject *module, path_t *path)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:13676,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/posixmodule.c:13677,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/posixmodule.c:13682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:13683,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13685,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:13690,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:13694,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13695,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/posixmodule.c:13698,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:13699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:13704,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - module
    - arg
    - valuep
    - tablename
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13706
      start: 13673
    functionDepth: 1
    functionLinenumber: 13673
    functionLinenumberEnd: 13706
    functionName: conv_confname
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyObject_GetAttrString
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - PyObject_GetItem
    - PyIndex_Check
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int conv_confname(PyObject *module, PyObject *arg, int *valuep, const
      char *tablename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fpathconf
      Src: /src/cpython/Modules/posixmodule.c:13819,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - module
    - fd
    - name
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13824
      start: 13812
    functionDepth: 2
    functionLinenumber: 13812
    functionLinenumberEnd: 13824
    functionName: os_fpathconf_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:13850,1
    - Dst: pathconf
      Src: /src/cpython/Modules/posixmodule.c:13853,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13857,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:13859,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - module
    - path
    - name
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13863
      start: 13841
    functionDepth: 4
    functionLinenumber: 13841
    functionLinenumberEnd: 13863
    functionName: os_pathconf_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - posix_error
    - fpathconf
    - pathconf
    linkageType: ''
    returnType: long
    signature: long os_pathconf_impl(PyObject *module, path_t *path, int name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: confstr
      Src: /src/cpython/Modules/posixmodule.c:14039,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14042,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:14052,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:14054,1
    - Dst: confstr
      Src: /src/cpython/Modules/posixmodule.c:14055,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:14056,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:14057,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:14058,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:14061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (len == len2)
      pos:
        line_end: 14055
        line_start: 14055
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 14063
      start: 14030
    functionDepth: 2
    functionLinenumber: 14030
    functionLinenumberEnd: 14063
    functionName: os_confstr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyUnicode_DecodeFSDefaultAndSize
    - confstr
    - posix_error
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_confstr_impl(PyObject *module, int name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/cpython/Modules/posixmodule.c:14585,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14589
      start: 14578
    functionDepth: 2
    functionLinenumber: 14578
    functionLinenumberEnd: 14589
    functionName: os_sysconf_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sysconf
    - posix_error
    linkageType: ''
    returnType: long
    signature: long os_sysconf_impl(PyObject *module, int name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/posixmodule.c:14597,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14602,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/posixmodule.c:14603,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:14604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:14605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:14608,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/posixmodule.c:14610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - table
    - tablesize
    - tablename
    - module
    argTypes:
    - struct constdef*
    - size_t
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14611
      start: 14593
    functionDepth: 1
    functionLinenumber: 14593
    functionLinenumberEnd: 14611
    functionName: setup_confname_table
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyDict_SetItemString
    - PyDict_New
    - PyLong_FromLong
    - PyModule_Add
    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/cpython/Modules/posixmodule.c:14618,1
    - Dst: setup_confname_table
      Src: /src/cpython/Modules/posixmodule.c:14625,1
    - Dst: setup_confname_table
      Src: /src/cpython/Modules/posixmodule.c:14632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14639
      start: 14614
    functionDepth: 2
    functionLinenumber: 14614
    functionLinenumberEnd: 14639
    functionName: setup_confname_tables
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:14655,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/posixmodule.c:14661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14664
      start: 14651
    functionDepth: 1
    functionLinenumber: 14651
    functionLinenumberEnd: 14664
    functionName: os_abort_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - abort
    - Py_FatalError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_abort_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryW
      Src: /src/cpython/Modules/posixmodule.c:14683,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/posixmodule.c:14685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14694
      start: 14671
    functionDepth: 0
    functionLinenumber: 14671
    functionLinenumberEnd: 14694
    functionName: check_ShellExecute
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - LoadLibraryW
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int check_ShellExecute(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_ShellExecute
      Src: /src/cpython/Modules/posixmodule.c:14741,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:14744,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:14748,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:14751,1
    - Dst: Py_ShellExecuteW
      Src: /src/cpython/Modules/posixmodule.c:14758,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:14763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - module
    - filepath
    - operation
    - arguments
    - cwd
    - show_cmd
    argTypes:
    - PyObject*
    - path_t*
    - wchar_t*
    - wchar_t*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14767
      start: 14733
    functionDepth: 3
    functionLinenumber: 14733
    functionLinenumberEnd: 14767
    functionName: os_startfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_ShellExecuteW
    - win32_error_object
    - PyErr_Format
    - PySys_Audit
    - check_ShellExecute
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_startfile_impl(PyObject *module, path_t *filepath,\n
      \                 const wchar_t *operation, const wchar_t *arguments,\n                  path_t
      *cwd, int show_cmd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getloadavg
      Src: /src/cpython/Modules/posixmodule.c:14787,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:14788,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:14791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14792
      start: 14782
    functionDepth: 1
    functionLinenumber: 14782
    functionLinenumberEnd: 14792
    functionName: os_getloadavg_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_BuildValue
    - getloadavg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getloadavg_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_device_encoding
      Src: /src/cpython/Modules/posixmodule.c:14810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14811
      start: 14806
    functionDepth: 1
    functionLinenumber: 14806
    functionLinenumberEnd: 14811
    functionName: os_device_encoding_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:14830,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14831,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: 14833
      start: 14826
    functionDepth: 2
    functionLinenumber: 14826
    functionLinenumberEnd: 14833
    functionName: os_setresuid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setresuid
    - posix_error
    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/cpython/Modules/posixmodule.c:14853,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14854,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: 14856
      start: 14849
    functionDepth: 2
    functionLinenumber: 14849
    functionLinenumberEnd: 14856
    functionName: os_setresgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setresgid
    - posix_error
    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/cpython/Modules/posixmodule.c:14872,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14873,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:14874,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:14874,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:14875,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:14876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14877
      start: 14867
    functionDepth: 2
    functionLinenumber: 14867
    functionLinenumberEnd: 14877
    functionName: os_getresuid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - Py_BuildValue
    - getresuid
    - _PyLong_FromUid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresuid_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getresgid
      Src: /src/cpython/Modules/posixmodule.c:14894,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14895,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:14896,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:14896,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:14897,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:14898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14899
      start: 14889
    functionDepth: 2
    functionLinenumber: 14889
    functionLinenumberEnd: 14899
    functionName: os_getresgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - posix_error
    - getresgid
    - _PyLong_FromGid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresgid_impl(PyObject *module)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:14929,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:14932,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:14942,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:14945,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:14948,1
    - Dst: fgetxattr
      Src: /src/cpython/Modules/posixmodule.c:14952,1
    - Dst: getxattr
      Src: /src/cpython/Modules/posixmodule.c:14954,1
    - Dst: lgetxattr
      Src: /src/cpython/Modules/posixmodule.c:14956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:14961,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:14964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:14965,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/posixmodule.c:14971,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - module
    - path
    - attribute
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14977
      start: 14921
    functionDepth: 4
    functionLinenumber: 14921
    functionLinenumberEnd: 14977
    functionName: os_getxattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - lgetxattr
    - fgetxattr
    - fd_and_follow_symlinks_invalid
    - getxattr
    - path_error
    - PySys_Audit
    - PyBytes_AS_STRING
    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/cpython/Modules/posixmodule.c:15007,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15010,1
    - Dst: fsetxattr
      Src: /src/cpython/Modules/posixmodule.c:15017,1
    - Dst: setxattr
      Src: /src/cpython/Modules/posixmodule.c:15020,1
    - Dst: lsetxattr
      Src: /src/cpython/Modules/posixmodule.c:15023,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15028,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: 15033
      start: 15000
    functionDepth: 4
    functionLinenumber: 15000
    functionLinenumberEnd: 15033
    functionName: os_setxattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lsetxattr
    - fsetxattr
    - setxattr
    - fd_and_follow_symlinks_invalid
    - path_error
    - PySys_Audit
    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/cpython/Modules/posixmodule.c:15060,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15063,1
    - Dst: fremovexattr
      Src: /src/cpython/Modules/posixmodule.c:15069,1
    - Dst: removexattr
      Src: /src/cpython/Modules/posixmodule.c:15071,1
    - Dst: lremovexattr
      Src: /src/cpython/Modules/posixmodule.c:15073,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15077,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: 15081
      start: 15053
    functionDepth: 4
    functionLinenumber: 15053
    functionLinenumberEnd: 15081
    functionName: os_removexattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fremovexattr
    - lremovexattr
    - fd_and_follow_symlinks_invalid
    - path_error
    - PySys_Audit
    - removexattr
    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/cpython/Modules/posixmodule.c:15110,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15113,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15127,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:15130,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:15132,1
    - Dst: flistxattr
      Src: /src/cpython/Modules/posixmodule.c:15138,1
    - Dst: listxattr
      Src: /src/cpython/Modules/posixmodule.c:15140,1
    - Dst: llistxattr
      Src: /src/cpython/Modules/posixmodule.c:15142,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:15147,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15151,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:15155,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:15164,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:15167,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:15170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15171,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:15173,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:15183,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 3
    argNames:
    - module
    - path
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15185
      start: 15101
    functionDepth: 4
    functionLinenumber: 15101
    functionLinenumberEnd: 15185
    functionName: os_listxattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - llistxattr
    - PyList_New
    - Py_DECREF
    - PyList_Append
    - Py_SETREF
    - listxattr
    - PyMem_Free
    - fd_and_follow_symlinks_invalid
    - PyUnicode_DecodeFSDefaultAndSize
    - path_error
    - PySys_Audit
    - flistxattr
    - PyErr_NoMemory
    - PyMem_Malloc
    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/cpython/Modules/posixmodule.c:15207,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:15209,1
    - Dst: _PyOS_URandom
      Src: /src/cpython/Modules/posixmodule.c:15213,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:15213,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:15213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15219
      start: 15199
    functionDepth: 1
    functionLinenumber: 15199
    functionLinenumberEnd: 15219
    functionName: os_urandom_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - _PyOS_URandom
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_urandom_impl(PyObject *module, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:15235,1
    - Dst: memfd_create
      Src: /src/cpython/Modules/posixmodule.c:15237,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15240,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - name
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15243
      start: 15230
    functionDepth: 1
    functionLinenumber: 15230
    functionLinenumberEnd: 15243
    functionName: os_memfd_create_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - memfd_create
    - PyBytes_AS_STRING
    - PyErr_SetFromErrno
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/cpython/Modules/posixmodule.c:15264,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15267,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - initval
    - flags
    argTypes:
    - PyObject*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15270
      start: 15256
    functionDepth: 1
    functionLinenumber: 15256
    functionLinenumberEnd: 15270
    functionName: os_eventfd_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - eventfd
    - PyErr_SetFromErrno
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_eventfd_impl(PyObject *module, unsigned int initval, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eventfd_read
      Src: /src/cpython/Modules/posixmodule.c:15287,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15290,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:15292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15293
      start: 15280
    functionDepth: 1
    functionLinenumber: 15280
    functionLinenumberEnd: 15293
    functionName: os_eventfd_read_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - eventfd_read
    - PyLong_FromUnsignedLongLong
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_eventfd_read_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eventfd_write
      Src: /src/cpython/Modules/posixmodule.c:15310,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - value
    argTypes:
    - PyObject*
    - int
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15316
      start: 15304
    functionDepth: 1
    functionLinenumber: 15304
    functionLinenumberEnd: 15316
    functionName: os_eventfd_write_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - eventfd_write
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_eventfd_write_impl(PyObject *module, int fd, unsigned long long value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:15377,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15378,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/posixmodule.c:15388,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/cpython/Modules/posixmodule.c:15392,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:15393,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:15400,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:15401,1
    - Dst: SET_TERMSIZE
      Src: /src/cpython/Modules/posixmodule.c:15417,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15417,1
    - Dst: SET_TERMSIZE
      Src: /src/cpython/Modules/posixmodule.c:15418,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15418,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15422
      start: 15359
    functionDepth: 2
    functionLinenumber: 15359
    functionLinenumberEnd: 15422
    functionName: os_get_terminal_size_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SET_TERMSIZE
    - _Py_get_osfhandle
    - PyErr_SetFromWindowsErr
    - GetConsoleScreenBufferInfo
    - PyErr_SetFromErrno
    - ioctl
    - PyLong_FromLong
    - get_posix_state
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_terminal_size_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15416
      start: 15407
    functionDepth: 0
    functionLinenumber: 15407
    functionLinenumberEnd: 15416
    functionName: SET_TERMSIZE
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TERMSIZE(CALL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Modules/posixmodule.c:15437,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15439,1
    - Dst: GetActiveProcessorCount
      Src: /src/cpython/Modules/posixmodule.c:15445,1
    - Dst: mpctl
      Src: /src/cpython/Modules/posixmodule.c:15451,1
    - Dst: sysconf
      Src: /src/cpython/Modules/posixmodule.c:15454,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Modules/posixmodule.c:15457,1
    - Dst: vxCpuEnabledGet
      Src: /src/cpython/Modules/posixmodule.c:15457,1
    - Dst: sysctl
      Src: /src/cpython/Modules/posixmodule.c:15467,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15476
      start: 15433
    functionDepth: 1
    functionLinenumber: 15433
    functionLinenumberEnd: 15476
    functionName: os_cpu_count_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    - sysctl
    - _Py_GetConfig
    - GetActiveProcessorCount
    - vxCpuEnabledGet
    - PyLong_FromLong
    - sysconf
    - mpctl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_cpu_count_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_inheritable
      Src: /src/cpython/Modules/posixmodule.c:15494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15497
      start: 15488
    functionDepth: 1
    functionLinenumber: 15488
    functionLinenumberEnd: 15497
    functionName: os_get_inheritable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:15516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - fd
    - inheritable
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15521
      start: 15509
    functionDepth: 1
    functionLinenumber: 15509
    functionLinenumberEnd: 15521
    functionName: os_set_inheritable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:15543,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:15544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15549
      start: 15537
    functionDepth: 1
    functionLinenumber: 15537
    functionLinenumberEnd: 15549
    functionName: os_get_handle_inheritable_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetHandleInformation
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int os_get_handle_inheritable_impl(PyObject *module, intptr_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetHandleInformation
      Src: /src/cpython/Modules/posixmodule.c:15567,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:15568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - handle
    - inheritable
    argTypes:
    - PyObject*
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15572
      start: 15561
    functionDepth: 1
    functionLinenumber: 15561
    functionLinenumberEnd: 15572
    functionName: os_set_handle_inheritable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:15592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15595
      start: 15585
    functionDepth: 1
    functionLinenumber: 15585
    functionLinenumberEnd: 15595
    functionName: os_get_blocking_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:15616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - fd
    - blocking
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15621
      start: 15609
    functionDepth: 1
    functionLinenumber: 15609
    functionLinenumberEnd: 15621
    functionName: os_set_blocking_impl
    functionSourceFile: /src/cpython/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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15650
      start: 15649
    functionDepth: 0
    functionLinenumber: 15649
    functionLinenumberEnd: 15650
    functionName: DirEntry_CAST
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DirEntry_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_CAST
      Src: /src/cpython/Modules/posixmodule.c:15654,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:15655,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:15656,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:15657,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:15658,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:15659,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/posixmodule.c:15660,1
    - Dst: free_func
      Src: /src/cpython/Modules/posixmodule.c:15661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15663
      start: 15651
    functionDepth: 1
    functionLinenumber: 15651
    functionLinenumberEnd: 15663
    functionName: DirEntry_dealloc
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyType_GetSlot
    - free_func
    - Py_TYPE
    - DirEntry_CAST
    linkageType: ''
    returnType: void
    signature: void DirEntry_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_test_mode
      Src: /src/cpython/Modules/posixmodule.c:15689,1
    - Dst: DirEntry_test_mode
      Src: /src/cpython/Modules/posixmodule.c:15692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - defining_class
    argTypes:
    - DirEntry*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15694
      start: 15678
    functionDepth: 1
    functionLinenumber: 15678
    functionLinenumberEnd: 15694
    functionName: os_DirEntry_is_symlink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_test_mode
    linkageType: ''
    returnType: int
    signature: int os_DirEntry_is_symlink_impl(DirEntry *self, PyTypeObject *defining_class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15711
      start: 15702
    functionDepth: 0
    functionLinenumber: 15702
    functionLinenumberEnd: 15711
    functionName: os_DirEntry_is_junction_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int os_DirEntry_is_junction_impl(DirEntry *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/posixmodule.c:15721,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:15723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15724,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:15726,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:15728,1
    - Dst: fstatat
      Src: /src/cpython/Modules/posixmodule.c:15733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:15741,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:15750,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:15753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - self
    - follow_symlinks
    argTypes:
    - PyObject*
    - DirEntry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15756
      start: 15713
    functionDepth: 1
    functionLinenumber: 15713
    functionLinenumberEnd: 15756
    functionName: DirEntry_fetch_stat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FSDecoder
    - LSTAT
    - PyErr_SetString
    - STAT
    - PyUnicode_FSConverter
    - fstatat
    - PyBytes_AS_STRING
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_fetch_stat(PyObject *module, DirEntry *self, int follow_symlinks)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:15750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15751
      start: 15748
    functionDepth: 0
    functionLinenumber: 15748
    functionLinenumberEnd: 15751
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - STAT
    linkageType: ''
    returnType: Py_BEGIN_ALLOW_THREADS
    signature: Py_BEGIN_ALLOW_THREADS if (follow_symlinks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:15778,1
    - Dst: _pystat_fromstructstat
      Src: /src/cpython/Modules/posixmodule.c:15780,1
    - Dst: DirEntry_fetch_stat
      Src: /src/cpython/Modules/posixmodule.c:15782,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/posixmodule.c:15785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - defining_class
    - self
    argTypes:
    - PyTypeObject*
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15786
      start: 15774
    functionDepth: 4
    functionLinenumber: 15774
    functionLinenumberEnd: 15786
    functionName: DirEntry_get_lstat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - DirEntry_fetch_stat
    - _pystat_fromstructstat
    - PyType_GetModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_get_lstat(PyTypeObject *defining_class, DirEntry *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_get_lstat
      Src: /src/cpython/Modules/posixmodule.c:15804,1
    - Dst: os_DirEntry_is_symlink_impl
      Src: /src/cpython/Modules/posixmodule.c:15808,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:15813,1
    - Dst: DirEntry_fetch_stat
      Src: /src/cpython/Modules/posixmodule.c:15814,1
    - Dst: DirEntry_get_lstat
      Src: /src/cpython/Modules/posixmodule.c:15817,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/posixmodule.c:15821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - defining_class
    - follow_symlinks
    argTypes:
    - DirEntry*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15822
      start: 15798
    functionDepth: 5
    functionLinenumber: 15798
    functionLinenumberEnd: 15822
    functionName: os_DirEntry_stat_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_fetch_stat
    - os_DirEntry_is_symlink_impl
    - DirEntry_get_lstat
    - Py_XNewRef
    - PyType_GetModule
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_DirEntry_stat_impl(DirEntry *self, PyTypeObject *defining_class,\n
      \                     int follow_symlinks)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: os_DirEntry_stat_impl
      Src: /src/cpython/Modules/posixmodule.c:15852,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:15854,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:15857,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:15862,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:15862,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/posixmodule.c:15863,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:15867,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:15868,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:15870,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:15871,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:15876,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:15880,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:15899,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:15900,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 4
    argNames:
    - defining_class
    - self
    - follow_symlinks
    - mode_bits
    argTypes:
    - PyTypeObject*
    - DirEntry*
    - int
    - unsigned short
    assertStmts:
    - condition: (mode_bits != S_IFLNK)
      pos:
        line_end: 15875
        line_start: 15875
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (mode_bits == S_IFDIR || mode_bits == S_IFREG)
      pos:
        line_end: 15879
        line_start: 15879
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 15902
      start: 15825
    functionDepth: 6
    functionLinenumber: 15825
    functionLinenumberEnd: 15902
    functionName: DirEntry_test_mode
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_CLEAR
    - os_DirEntry_stat_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - PyObject_GetAttr
    - PyErr_ExceptionMatches
    - PyType_GetModule
    - PyErr_Clear
    - get_posix_state
    - assert
    linkageType: ''
    returnType: int
    signature: "int DirEntry_test_mode(PyTypeObject *defining_class, DirEntry *self,\n
      \                  int follow_symlinks, unsigned short mode_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_test_mode
      Src: /src/cpython/Modules/posixmodule.c:15919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - defining_class
    - follow_symlinks
    argTypes:
    - DirEntry*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15920
      start: 15914
    functionDepth: 7
    functionLinenumber: 15914
    functionLinenumberEnd: 15920
    functionName: os_DirEntry_is_dir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_test_mode
    linkageType: ''
    returnType: int
    signature: "int os_DirEntry_is_dir_impl(DirEntry *self, PyTypeObject *defining_class,\n
      \                       int follow_symlinks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_test_mode
      Src: /src/cpython/Modules/posixmodule.c:15937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - defining_class
    - follow_symlinks
    argTypes:
    - DirEntry*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15938
      start: 15932
    functionDepth: 7
    functionLinenumber: 15932
    functionLinenumberEnd: 15938
    functionName: os_DirEntry_is_file_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_test_mode
    linkageType: ''
    returnType: int
    signature: "int os_DirEntry_is_file_impl(DirEntry *self, PyTypeObject *defining_class,\n
      \                        int follow_symlinks)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/posixmodule.c:15956,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:15958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15959,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:15960,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:15963,1
    - Dst: path_object_error
      Src: /src/cpython/Modules/posixmodule.c:15967,1
    - Dst: _pystat_l128_from_l64_l64
      Src: /src/cpython/Modules/posixmodule.c:15974,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:15978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15980
      start: 15946
    functionDepth: 3
    functionLinenumber: 15946
    functionLinenumberEnd: 15980
    functionName: os_DirEntry_inode_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_object_error
    - Py_DECREF
    - PyUnicode_FSDecoder
    - LSTAT
    - PyLong_FromUnsignedLongLong
    - _pystat_l128_from_l64_l64
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      DirEntry_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:15999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16000
      start: 15995
    functionDepth: 0
    functionLinenumber: 15995
    functionLinenumberEnd: 16000
    functionName: os_DirEntry___fspath___impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry___fspath___impl(DirEntry *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:16057,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:16061,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:16062,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:16064,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:16067,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:16072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - path_wide
    - filename
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16075
      start: 16044
    functionDepth: 1
    functionLinenumber: 16044
    functionLinenumberEnd: 16075
    functionName: join_path_filenameW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - wcslen
    - wcscpy
    - PyMem_New
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      join_path_filenameW(const wchar_t *path_wide, const wchar_t *filename)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:16085,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/posixmodule.c:16086,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:16095,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:16098,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:16100,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:16100,1
    - Dst: join_path_filenameW
      Src: /src/cpython/Modules/posixmodule.c:16105,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:16109,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:16110,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:16114,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:16114,1
    - Dst: find_data_to_file_info
      Src: /src/cpython/Modules/posixmodule.c:16119,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/cpython/Modules/posixmodule.c:16120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - module
    - path
    - dataW
    argTypes:
    - PyObject*
    - path_t*
    - WIN32_FIND_DATAW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16131
      start: 16077
    functionDepth: 2
    functionLinenumber: 16077
    functionLinenumberEnd: 16131
    functionName: DirEntry_from_find_data
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_New
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - _Py_attribute_data_to_stat
    - PyUnicode_FromWideChar
    - find_data_to_file_info
    - join_path_filenameW
    - get_posix_state
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_from_find_data(PyObject *module, path_t *path, WIN32_FIND_DATAW *dataW)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:16147,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:16151,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:16155,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:16157,1
    - Dst: strcpy
      Src: /src/cpython/Modules/posixmodule.c:16160,1
    - Dst: strcpy
      Src: /src/cpython/Modules/posixmodule.c:16163,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: 16165
      start: 16135
    functionDepth: 1
    functionLinenumber: 16135
    functionLinenumberEnd: 16165
    functionName: join_path_filename
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - strcpy
    - PyMem_New
    - strlen
    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: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:16178,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/posixmodule.c:16179,1
    - Dst: join_path_filename
      Src: /src/cpython/Modules/posixmodule.c:16193,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:16198,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:16199,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:16201,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:16204,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/posixmodule.c:16206,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:16208,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:16213,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16226,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 6
    argNames:
    - module
    - path
    - name
    - name_len
    - d_ino
    - d_type
    argTypes:
    - PyObject*
    - path_t*
    - char*
    - Py_ssize_t
    - ino_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16228
      start: 16167
    functionDepth: 2
    functionLinenumber: 16167
    functionLinenumberEnd: 16228
    functionName: DirEntry_from_posix_info
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - PyObject_New
    - join_path_filename
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - Py_NewRef
    - PyUnicode_DecodeFSDefaultAndSize
    - get_posix_state
    - PyMem_Free
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nDirEntry_from_posix_info(PyObject *module, path_t *path,
      const char *name,\n                         Py_ssize_t name_len, ino_t d_ino\n#ifdef
      HAVE_DIRENT_D_TYPE\n                         , unsigned char d_type\n#endif\n
      \                        )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16249
      start: 16248
    functionDepth: 0
    functionLinenumber: 16248
    functionLinenumberEnd: 16249
    functionName: ScandirIterator_CAST
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ScandirIterator_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16256
      start: 16252
    functionDepth: 0
    functionLinenumber: 16252
    functionLinenumberEnd: 16256
    functionName: ScandirIterator_is_closed
    functionSourceFile: /src/cpython/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: 16270
      start: 16258
    functionDepth: 0
    functionLinenumber: 16258
    functionLinenumberEnd: 16270
    functionName: ScandirIterator_closedir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_closedir(ScandirIterator *iterator)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_CAST
      Src: /src/cpython/Modules/posixmodule.c:16275,1
    - Dst: FindNextFileW
      Src: /src/cpython/Modules/posixmodule.c:16287,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:16291,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:16292,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:16299,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:16300,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:16302,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16302,1
    - Dst: DirEntry_from_find_data
      Src: /src/cpython/Modules/posixmodule.c:16303,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16313,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16315
      start: 16272
    functionDepth: 4
    functionLinenumber: 16272
    functionLinenumberEnd: 16315
    functionName: ScandirIterator_iternext
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - FindNextFileW
    - wcscmp
    - GetLastError
    - ScandirIterator_closedir
    - ScandirIterator_CAST
    - DirEntry_from_find_data
    - PyType_GetModule
    - path_error
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16323
      start: 16319
    functionDepth: 0
    functionLinenumber: 16319
    functionLinenumberEnd: 16323
    functionName: ScandirIterator_is_closed
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ScandirIterator_is_closed(ScandirIterator *iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rewinddir
      Src: /src/cpython/Modules/posixmodule.c:16337,1
    - Dst: closedir
      Src: /src/cpython/Modules/posixmodule.c:16339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16342
      start: 16325
    functionDepth: 0
    functionLinenumber: 16325
    functionLinenumberEnd: 16342
    functionName: ScandirIterator_closedir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - rewinddir
    - closedir
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_closedir(ScandirIterator *iterator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_CAST
      Src: /src/cpython/Modules/posixmodule.c:16347,1
    - Dst: readdir
      Src: /src/cpython/Modules/posixmodule.c:16360,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:16366,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:16371,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:16375,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16375,1
    - Dst: DirEntry_from_posix_info
      Src: /src/cpython/Modules/posixmodule.c:16376,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16392,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16394
      start: 16344
    functionDepth: 4
    functionLinenumber: 16344
    functionLinenumberEnd: 16394
    functionName: ScandirIterator_iternext
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - readdir
    - DirEntry_from_posix_info
    - ScandirIterator_closedir
    - ScandirIterator_CAST
    - Py_TYPE
    - PyType_GetModule
    - path_error
    - NAMLEN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_CAST
      Src: /src/cpython/Modules/posixmodule.c:16401,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16404
      start: 16398
    functionDepth: 1
    functionLinenumber: 16398
    functionLinenumberEnd: 16404
    functionName: ScandirIterator_close
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    - ScandirIterator_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_close(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:16409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16410
      start: 16406
    functionDepth: 0
    functionLinenumber: 16406
    functionLinenumberEnd: 16410
    functionName: ScandirIterator_enter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_enter(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_CAST
      Src: /src/cpython/Modules/posixmodule.c:16415,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16418
      start: 16412
    functionDepth: 1
    functionLinenumber: 16412
    functionLinenumberEnd: 16418
    functionName: ScandirIterator_exit
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    - ScandirIterator_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_exit(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_CAST
      Src: /src/cpython/Modules/posixmodule.c:16423,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/posixmodule.c:16425,1
    - Dst: ScandirIterator_is_closed
      Src: /src/cpython/Modules/posixmodule.c:16427,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16428,1
    - Dst: PyErr_ResourceWarning
      Src: /src/cpython/Modules/posixmodule.c:16430,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:16434,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/posixmodule.c:16435,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/posixmodule.c:16441,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/posixmodule.c:16444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16445
      start: 16420
    functionDepth: 2
    functionLinenumber: 16420
    functionLinenumberEnd: 16445
    functionName: ScandirIterator_finalize
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_ResourceWarning
    - PyErr_GetRaisedException
    - ScandirIterator_closedir
    - ScandirIterator_CAST
    - PyErr_FormatUnraisable
    - PyErr_ExceptionMatches
    - ScandirIterator_is_closed
    - path_cleanup
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_finalize(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16450,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/posixmodule.c:16451,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/posixmodule.c:16454,1
    - Dst: free_func
      Src: /src/cpython/Modules/posixmodule.c:16455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16457
      start: 16447
    functionDepth: 1
    functionLinenumber: 16447
    functionLinenumberEnd: 16457
    functionName: ScandirIterator_dealloc
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFinalizerFromDealloc
    - PyType_GetSlot
    - free_func
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_dealloc(PyObject *op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:16514,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:16519,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/posixmodule.c:16520,1
    - Dst: memcpy
      Src: /src/cpython/Modules/posixmodule.c:16531,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:16532,1
    - Dst: join_path_filenameW
      Src: /src/cpython/Modules/posixmodule.c:16537,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:16542,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:16546,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:16547,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:16550,1
    - Dst: _Py_dup
      Src: /src/cpython/Modules/posixmodule.c:16557,1
    - Dst: fdopendir
      Src: /src/cpython/Modules/posixmodule.c:16562,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:16565,1
    - Dst: opendir
      Src: /src/cpython/Modules/posixmodule.c:16579,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:16584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16599,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16601
      start: 16500
    functionDepth: 4
    functionLinenumber: 16500
    functionLinenumberEnd: 16601
    functionName: os_scandir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fdopendir
    - FindFirstFileW
    - Py_DECREF
    - PyObject_New
    - PyErr_SetString
    - memset
    - opendir
    - memcpy
    - path_error
    - PySys_Audit
    - get_posix_state
    - PyMem_Free
    - join_path_filenameW
    - _Py_dup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_scandir_impl(PyObject *module, path_t *path)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:16618,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:16618,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:16619,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Modules/posixmodule.c:16622,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:16622,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:16624,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:16627,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16627,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/posixmodule.c:16630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16631,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:16636,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:16636,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:16637,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:16639,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16639,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:16640,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16646
      start: 16610
    functionDepth: 1
    functionLinenumber: 16610
    functionLinenumberEnd: 16646
    functionName: PyOS_FSPath
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - _Py_ID
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - Py_NewRef
    - _PyType_Name
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyOS_FSPath(PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_FSPath
      Src: /src/cpython/Modules/posixmodule.c:16665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16666
      start: 16661
    functionDepth: 2
    functionLinenumber: 16661
    functionLinenumberEnd: 16666
    functionName: os_fspath_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:16687,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:16690,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:16692,1
    - Dst: syscall
      Src: /src/cpython/Modules/posixmodule.c:16697,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:16698,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:16699,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:16702,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:16713,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/posixmodule.c:16718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16724,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - module
    - size
    - flags
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16726
      start: 16678
    functionDepth: 2
    functionLinenumber: 16678
    functionLinenumberEnd: 16726
    functionName: os_getrandom_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - syscall
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyErr_CheckSignals
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - PyErr_SetFromErrno
    - posix_error
    - PyErr_NoMemory
    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/cpython/Modules/posixmodule.c:16757,1
    - Dst: AddDllDirectory
      Src: /src/cpython/Modules/posixmodule.c:16762,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:16763,1
    - Dst: win32_error_object_err
      Src: /src/cpython/Modules/posixmodule.c:16768,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/posixmodule.c:16772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16773
      start: 16750
    functionDepth: 2
    functionLinenumber: 16750
    functionLinenumberEnd: 16773
    functionName: os__add_dll_directory_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    - AddDllDirectory
    - GetLastError
    - PyCapsule_New
    - PySys_Audit
    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/cpython/Modules/posixmodule.c:16768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16770
      start: 16765
    functionDepth: 2
    functionLinenumber: 16765
    functionLinenumberEnd: 16770
    functionName: if
    functionSourceFile: /src/cpython/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/cpython/Modules/posixmodule.c:16794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:16795,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/posixmodule.c:16800,1
    - Dst: RemoveDllDirectory
      Src: /src/cpython/Modules/posixmodule.c:16804,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:16805,1
    - Dst: win32_error_object_err
      Src: /src/cpython/Modules/posixmodule.c:16810,1
    - Dst: PyCapsule_SetName
      Src: /src/cpython/Modules/posixmodule.c:16814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - module
    - cookie
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16819
      start: 16787
    functionDepth: 2
    functionLinenumber: 16787
    functionLinenumberEnd: 16819
    functionName: os__remove_dll_directory_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    - RemoveDllDirectory
    - PyErr_SetString
    - PyCapsule_SetName
    - GetLastError
    - PyCapsule_GetPointer
    - PyCapsule_IsValid
    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/cpython/Modules/posixmodule.c:16810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16812
      start: 16807
    functionDepth: 2
    functionLinenumber: 16807
    functionLinenumberEnd: 16812
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/posixmodule.c:16856,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:16857,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:16862,1
    - Dst: WIFEXITED
      Src: /src/cpython/Modules/posixmodule.c:16864,1
    - Dst: WEXITSTATUS
      Src: /src/cpython/Modules/posixmodule.c:16865,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:16869,1
    - Dst: WIFSIGNALED
      Src: /src/cpython/Modules/posixmodule.c:16873,1
    - Dst: WTERMSIG
      Src: /src/cpython/Modules/posixmodule.c:16874,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:16878,1
    - Dst: WIFSTOPPED
      Src: /src/cpython/Modules/posixmodule.c:16882,1
    - Dst: WSTOPSIG
      Src: /src/cpython/Modules/posixmodule.c:16885,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:16886,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:16892,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:16895,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:16899,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:16900,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:16908,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:16911,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - module
    - status_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16913
      start: 16851
    functionDepth: 1
    functionLinenumber: 16851
    functionLinenumberEnd: 16913
    functionName: os_waitstatus_to_exitcode_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WSTOPSIG
    - WAIT_STATUS_INT
    - WIFEXITED
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - WIFSIGNALED
    - WEXITSTATUS
    - WTERMSIG
    - PyLong_AsUnsignedLongLong
    - PyLong_FromUnsignedLong
    - PyErr_Format
    - WIFSTOPPED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitstatus_to_exitcode_impl(PyObject *module, PyObject *status_obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/cpython/Modules/posixmodule.c:16929,1
    - Dst: GetConsoleMode
      Src: /src/cpython/Modules/posixmodule.c:16930,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/posixmodule.c:16933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16937
      start: 16923
    functionDepth: 1
    functionLinenumber: 16923
    functionLinenumberEnd: 16937
    functionName: os__supports_virtual_terminal_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - GetConsoleMode
    - GetStdHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__supports_virtual_terminal_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_InputHook
      Src: /src/cpython/Modules/posixmodule.c:16953,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:16956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16957
      start: 16946
    functionDepth: 0
    functionLinenumber: 16946
    functionLinenumberEnd: 16957
    functionName: os__inputhook_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_InputHook
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__inputhook_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/posixmodule.c:16969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16970
      start: 16965
    functionDepth: 1
    functionLinenumber: 16965
    functionLinenumberEnd: 16970
    functionName: os__is_inputhook_installed_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__is_inputhook_installed_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convertenviron
      Src: /src/cpython/Modules/posixmodule.c:16982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16983
      start: 16978
    functionDepth: 2
    functionLinenumber: 16978
    functionLinenumberEnd: 16983
    functionName: os__create_environ_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - convertenviron
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__create_environ_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emscripten_debugger
      Src: /src/cpython/Modules/posixmodule.c:16997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16999
      start: 16993
    functionDepth: 0
    functionLinenumber: 16993
    functionLinenumberEnd: 16999
    functionName: os__emscripten_debugger_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - emscripten_debugger
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__emscripten_debugger_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emscripten_log_impl_js
      Src: /src/cpython/Modules/posixmodule.c:17016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17018
      start: 17012
    functionDepth: 0
    functionLinenumber: 17012
    functionLinenumberEnd: 17018
    functionName: os__emscripten_log_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - emscripten_log_impl_js
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__emscripten_log_impl(PyObject *module, const char *arg)'
  - BBCount: 206
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17246,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17249,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17252,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17255,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17258,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17261,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17264,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17267,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17270,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17273,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17276,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17279,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17282,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17285,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17288,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17291,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17294,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17297,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17300,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17303,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17306,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17309,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17312,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17315,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17318,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17321,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17325,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17328,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17332,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17335,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17338,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17341,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17344,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17347,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17350,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17353,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17356,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17359,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17362,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17365,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17368,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17371,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17374,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17377,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17380,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17384,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17387,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17393,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17398,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17402,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17406,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17410,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17417,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17421,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17425,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17429,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17432,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17436,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17440,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17445,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17448,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17451,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17454,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17457,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17460,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17463,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17466,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17469,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17472,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17475,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17478,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17481,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17484,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17487,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17490,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17493,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17498,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17501,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17506,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17509,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17512,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17515,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17518,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17521,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17524,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17527,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17530,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17535,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17539,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17542,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17545,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17549,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17552,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17555,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17558,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17563,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17566,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17569,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17572,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17575,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17578,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17583,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17584,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17585,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17587,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17590,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17594,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17597,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17600,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17603,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17606,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17609,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17612,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17615,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17618,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17623,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17626,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17629,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17632,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17636,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17639,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17642,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17645,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17648,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17653,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17654,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17655,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17660,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17661,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17662,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17664,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17669,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17670,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17671,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17674,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17675,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17680,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17683,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17686,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17689,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17692,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17695,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17698,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17701,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17704,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17707,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17710,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17713,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17716,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17722,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17725,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17728,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17731,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17734,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17737,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17740,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17743,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17746,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17749,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17752,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17755,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17758,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17761,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17768,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17769,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17770,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17774,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17777,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17780,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17783,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17786,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17789,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17792,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17795,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17799,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17800,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17803,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17804,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17806,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17809,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17812,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17815,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17818,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17821,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17824,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17827,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17830,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17833,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17836,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17839,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17842,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17845,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17848,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17853,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17855,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17858,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17863,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17864,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17865,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17866,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17870,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17871,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17872,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17873,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17874,1
    CyclomaticComplexity: 210
    EdgeCount: 210
    ICount: 412
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17878
      start: 17242
    functionDepth: 1
    functionLinenumber: 17242
    functionLinenumberEnd: 17878
    functionName: all_ins
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int all_ins(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - test
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17891
      start: 17882
    functionDepth: 0
    functionLinenumber: 17882
    functionLinenumberEnd: 17891
    functionName: PROBE
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROBE(name, test)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:18114,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/posixmodule.c:18118,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/posixmodule.c:18124,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/posixmodule.c:18127,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/posixmodule.c:18134,1
    - Dst: convertenviron
      Src: /src/cpython/Modules/posixmodule.c:18134,1
    - Dst: all_ins
      Src: /src/cpython/Modules/posixmodule.c:18138,1
    - Dst: setup_confname_tables
      Src: /src/cpython/Modules/posixmodule.c:18141,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18144,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18150,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18151,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18160,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18161,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18168,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18169,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18175,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18176,1
    - Dst: _PyType_AddMethod
      Src: /src/cpython/Modules/posixmodule.c:18180,1
    - Dst: PyType_Modified
      Src: /src/cpython/Modules/posixmodule.c:18185,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18189,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18190,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/posixmodule.c:18195,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/posixmodule.c:18201,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18202,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18207,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18208,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18212,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18213,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:18217,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/posixmodule.c:18220,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/posixmodule.c:18224,1
    - Dst: fd_specified
      Src: /src/cpython/Modules/posixmodule.c:18231,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:18232,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:18233,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/posixmodule.c:18234,1
    - Dst: dir_fd_unavailable
      Src: /src/cpython/Modules/posixmodule.c:18235,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:18242,1
    - Dst: struct have_function*::probe
      Src: /src/cpython/Modules/posixmodule.c:18248,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/posixmodule.c:18249,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:18249,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:18252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:18254,1
    - Dst: _Py_GetTicksPerSecond
      Src: /src/cpython/Modules/posixmodule.c:18258,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:18259,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:18263,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/posixmodule.c:18266,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 107
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state->ticks_per_second >= 1)
      pos:
        line_end: 18262
        line_start: 18262
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 18267
      start: 18111
    functionDepth: 4
    functionLinenumber: 18111
    functionLinenumberEnd: 18267
    functionName: posixmodule_exec
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - strlen
    - PyErr_SetString
    - setup_confname_tables
    - PyType_FromModuleAndSpec
    - PyLong_FromLong
    - PyList_Append
    - PyDict_PopString
    - PyModule_AddObjectRef
    - _PyType_AddMethod
    - PyModule_GetDict
    - dir_fd_unavailable
    - PyUnicode_InternFromString
    - Py_DECREF
    - dir_fd_and_follow_symlinks_invalid
    - dir_fd_converter
    - all_ins
    - PyType_Modified
    - convertenviron
    - PyModule_Add
    - _Py_GetTicksPerSecond
    - struct have_function*::probe
    - follow_symlinks_specified
    - fd_specified
    - PyUnicode_DecodeASCII
    - PyStructSequence_NewType
    - get_posix_state
    - assert
    linkageType: ''
    returnType: int
    signature: int posixmodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/posixmodule.c:18292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18293
      start: 18289
    functionDepth: 1
    functionLinenumber: 18289
    functionLinenumberEnd: 18293
    functionName: INITFUNC
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC INITFUNC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: GLOBAL_MALLOC
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL_MALLOC(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: GLOBAL_FREE
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL_FREE(VAR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpchannelsmodule.c:114,1
    - Dst: _PyXIData_ReleaseAndRawFree
      Src: /src/cpython/Modules/_interpchannelsmodule.c:118,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:121,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:127,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpchannelsmodule.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 137
    functionName: _release_xid_data
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _PyXIData_ReleaseAndRawFree
    - PyErr_GetRaisedException
    - _PyXIData_Release
    - PyErr_Clear
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int _release_xid_data(_PyXIData_t *data, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_interpchannelsmodule.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: _get_current_interp
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _get_current_interp(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:151,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_interpchannelsmodule.c:155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:156,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: _get_current_module
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyImport_GetModule
    - Py_DECREF
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_current_module(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:167,1
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_interpchannelsmodule.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: get_module_from_owned_type
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_module
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_module_from_owned_type(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:178,1
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_interpchannelsmodule.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: get_module_from_type
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_module
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_module_from_type(PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:187,1
    - Dst: PyObject_HasAttrStringWithError
      Src: /src/cpython/Modules/_interpchannelsmodule.c:187,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_interpchannelsmodule.c:188,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpchannelsmodule.c:192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - mod
    - name
    - base
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (!PyObject_HasAttrStringWithError(mod, name))
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: add_new_exception
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - PyErr_NewException
    - PyObject_HasAttrStringWithError
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_new_exception(PyObject *mod, const char *name, PyObject *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - MOD
    - ','
    - NAME
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: ADD_NEW_EXCEPTION
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_NEW_EXCEPTION(MOD, NAME, BASE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock_timed_with_retries
      Src: /src/cpython/Modules/_interpchannelsmodule.c:206,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:209,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:213,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:213,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:215,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:218,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mutex
    - timeout
    argTypes:
    - PyThread_type_lock
    - PY_TIMEOUT_T
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (timeout > 0)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (res == PY_LOCK_ACQUIRED)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 221
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: wait_for_lock
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyThread_release_lock
    - PyThread_acquire_lock_timed_with_retries
    - assert
    linkageType: ''
    returnType: int
    signature: int wait_for_lock(PyThread_type_lock mutex, PY_TIMEOUT_T timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpchannelsmodule.c:227,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:229,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpchannelsmodule.c:230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 237
    functionName: ensure_highlevel_module_loaded
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - Py_DECREF
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int ensure_highlevel_module_loaded(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:262,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_interpchannelsmodule.c:263,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (state != NULL)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      get_module_state(PyObject *mod)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_interpchannelsmodule.c:271,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpchannelsmodule.c:273,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 281
    functionName: _get_current_module_state
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _get_current_module
    - get_module_state
    - PyImport_ImportModule
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      _get_current_module_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:287,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:288,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:291,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:292,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:295,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:296,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:297,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:298,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - state
    - visit
    - arg
    argTypes:
    - module_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 302
    functionName: traverse_module_state
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int traverse_module_state(module_state *state, visitproc visit, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:309,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:310,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:313,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:314,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:319,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: clear_xid_types
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - clear_xid_class
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void clear_xid_types(module_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_xid_types
      Src: /src/cpython/Modules/_interpchannelsmodule.c:327,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:330,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:333,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:334,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:335,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:336,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: clear_module_state
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - clear_xid_types
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int clear_module_state(module_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:365,1
    - Dst: ADD
      Src: /src/cpython/Modules/_interpchannelsmodule.c:380,1
    - Dst: ADD
      Src: /src/cpython/Modules/_interpchannelsmodule.c:382,1
    - Dst: ADD
      Src: /src/cpython/Modules/_interpchannelsmodule.c:384,1
    - Dst: ADD
      Src: /src/cpython/Modules/_interpchannelsmodule.c:386,1
    - Dst: ADD
      Src: /src/cpython/Modules/_interpchannelsmodule.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 392
    functionName: exceptions_init
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - ADD
    - get_module_state
    linkageType: ''
    returnType: int
    signature: int exceptions_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: ADD
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD(NAME, BASE)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:398,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:398,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:401,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:402,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:403,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:405,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:409,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:413,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:417,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:421,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:425,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:435,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:439,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:443,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:443,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - err
    - mod
    - cid
    argTypes:
    - int
    - PyObject*
    - int64_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (err < 0)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (state != NULL)
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 446
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 446
    functionName: handle_channel_error
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int handle_channel_error(int err, PyObject *mod, int64_t cid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:468,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpchannelsmodule.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - waiting
    argTypes:
    - _waiting_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: _waiting_init
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyThread_allocate_lock
    linkageType: ''
    returnType: int
    signature: int _waiting_init(_waiting_t *waiting)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:484,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - waiting
    argTypes:
    - _waiting_t*
    assertStmts:
    - condition: "(waiting->status != WAITING_ACQUIRED\n           && waiting->status
        != WAITING_RELEASING)"
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 490
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 490
    functionName: _waiting_clear
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_free_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void _waiting_clear(_waiting_t *waiting)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - waiting
    argTypes:
    - _waiting_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: _waiting_get_itemid
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _channelitem_id_t
    signature: _channelitem_id_t _waiting_get_itemid(_waiting_t *waiting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:501,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - waiting
    argTypes:
    - _waiting_t*
    assertStmts:
    - condition: (waiting->status == WAITING_NO_STATUS)
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 504
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 504
    functionName: _waiting_acquire
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void _waiting_acquire(_waiting_t *waiting)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:509,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:510,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:511,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:514,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - waiting
    - received
    argTypes:
    - _waiting_t*
    - int
    assertStmts:
    - condition: (waiting->mutex != NULL)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (!waiting->received)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (received == 1)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (waiting->status == WAITING_ACQUIRED)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 520
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 520
    functionName: _waiting_release
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _waiting_release(_waiting_t *waiting, int received)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwitchToThread
      Src: /src/cpython/Modules/_interpchannelsmodule.c:527,1
    - Dst: sched_yield
      Src: /src/cpython/Modules/_interpchannelsmodule.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - waiting
    argTypes:
    - _waiting_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: _waiting_finish_releasing
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - SwitchToThread
    - sched_yield
    linkageType: ''
    returnType: void
    signature: void _waiting_finish_releasing(_waiting_t *waiting)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 552
    functionName: _channelitem_ID
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _channelitem_id_t
    signature: _channelitem_id_t _channelitem_ID(_channelitem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_interpid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:560,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:563,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:564,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:565,1
    - Dst: _channelitem_ID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - item
    - interpid
    - data
    - waiting
    - unboundop
    argTypes:
    - _channelitem*
    - int64_t
    - _PyXIData_t*
    - _waiting_t*
    - unboundop_t
    assertStmts:
    - condition: "(data == NULL\n               || _PyXIData_INTERPID(data) < 0\n
        \              || interpid == _PyXIData_INTERPID(data))"
      pos:
        line_end: 564
        line_start: 562
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 576
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 576
    functionName: _channelitem_init
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _get_interpid
    - _PyXIData_INTERPID
    - assert
    - _channelitem_ID
    linkageType: ''
    returnType: void
    signature: "void _channelitem_init(_channelitem *item,\n                  int64_t
      interpid, _PyXIData_t *data,\n                  _waiting_t *waiting, unboundop_t
      unboundop)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:583,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - item
    - removed
    argTypes:
    - _channelitem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 593
    functionName: _channelitem_clear_data
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _release_xid_data
    - _waiting_release
    linkageType: ''
    returnType: void
    signature: void _channelitem_clear_data(_channelitem *item, int removed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_clear_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: _channelitem_clear
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_clear_data
    linkageType: ''
    returnType: void
    signature: void _channelitem_clear(_channelitem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:606,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpchannelsmodule.c:608,1
    - Dst: _channelitem_init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - interpid
    - data
    - waiting
    - unboundop
    argTypes:
    - int64_t
    - _PyXIData_t*
    - _waiting_t*
    - unboundop_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 613
    functionName: _channelitem_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    - _channelitem_init
    - PyErr_NoMemory
    linkageType: ''
    returnType: _channelitem
    signature: "_channelitem *\n_channelitem_new(int64_t interpid, _PyXIData_t *data,\n
      \                _waiting_t *waiting, unboundop_t unboundop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:618,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 620
    functionName: _channelitem_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_clear
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _channelitem_free(_channelitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: _channelitem_free_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_free
    linkageType: ''
    returnType: void
    signature: void _channelitem_free_all(_channelitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:637,1
    - Dst: _channelitem_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - item
    - p_data
    - p_waiting
    - p_unboundop
    argTypes:
    - _channelitem*
    - _PyXIData_t**
    - _waiting_t**
    - int*
    assertStmts:
    - condition: (item->waiting == NULL || item->waiting->status == WAITING_ACQUIRED)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 5
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: _channelitem_popped
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_free
    - assert
    linkageType: ''
    returnType: void
    signature: "void _channelitem_popped(_channelitem *item,\n                    _PyXIData_t
      **p_data, _waiting_t **p_waiting,\n                    int *p_unboundop)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:650,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:654,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:657,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:657,1
    - Dst: _channelitem_clear_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:667,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_interpchannelsmodule.c:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts:
    - condition: (item->interpid >= 0)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (item->unboundop != UNBOUND_REMOVE)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (_PyXIData_INTERPID(item->data) == item->interpid)
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 673
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 673
    functionName: _channelitem_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_clear_data
    - _PyXIData_INTERPID
    - assert
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int _channelitem_clear_interpreter(_channelitem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:685,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpchannelsmodule.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 694
    functionName: _channelqueue_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    - PyErr_NoMemory
    linkageType: ''
    returnType: _channelqueue
    signature: '_channelqueue *

      _channelqueue_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_free_all
      Src: /src/cpython/Modules/_interpchannelsmodule.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _channelqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 703
    functionName: _channelqueue_clear
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.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/cpython/Modules/_interpchannelsmodule.c:708,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _channelqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 7
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: _channelqueue_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelqueue_clear
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _channelqueue_free(_channelqueue *queue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:717,1
    - Dst: _waiting_acquire
      Src: /src/cpython/Modules/_interpchannelsmodule.c:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - queue
    - interpid
    - data
    - waiting
    - unboundop
    argTypes:
    - _channelqueue*
    - int64_t
    - _PyXIData_t*
    - _waiting_t*
    - unboundop_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 736
    functionName: _channelqueue_put
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_new
    - _waiting_acquire
    linkageType: ''
    returnType: int
    signature: "int _channelqueue_put(_channelqueue *queue,\n                  int64_t
      interpid, _PyXIData_t *data,\n                  _waiting_t *waiting, unboundop_t
      unboundop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_popped
      Src: /src/cpython/Modules/_interpchannelsmodule.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - queue
    - p_data
    - p_waiting
    - p_unboundop
    argTypes:
    - _channelqueue*
    - _PyXIData_t**
    - _waiting_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 738
    functionDepth: 6
    functionLinenumber: 738
    functionLinenumberEnd: 755
    functionName: _channelqueue_get
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_popped
    linkageType: ''
    returnType: int
    signature: "int _channelqueue_get(_channelqueue *queue,\n                  _PyXIData_t
      **p_data, _waiting_t **p_waiting,\n                  int *p_unboundop)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_ID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:764,1
    - Dst: _channelitem_ID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:770,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - queue
    - itemid
    - p_item
    - p_prev
    argTypes:
    - _channelqueue*
    - _channelitem_id_t
    - _channelitem**
    - _channelitem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 788
    functionName: _channelqueue_find
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_ID
    linkageType: ''
    returnType: int
    signature: "int _channelqueue_find(_channelqueue *queue, _channelitem_id_t itemid,\n
      \                  _channelitem **p_item, _channelitem **p_prev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _channelqueue_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:796,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:801,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:802,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:804,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:808,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:809,1
    - Dst: _channelitem_popped
      Src: /src/cpython/Modules/_interpchannelsmodule.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - queue
    - itemid
    - p_data
    - p_waiting
    argTypes:
    - _channelqueue*
    - _channelitem_id_t
    - _PyXIData_t**
    - _waiting_t**
    assertStmts:
    - condition: (queue->first == item)
      pos:
        line_end: 803
        line_start: 803
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (queue->first != item)
      pos:
        line_end: 807
        line_start: 807
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (!item->waiting->received)
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (item->waiting != NULL)
      pos:
        line_end: 800
        line_start: 800
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (prev->next == item)
      pos:
        line_end: 808
        line_start: 808
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 821
      start: 790
    functionDepth: 6
    functionLinenumber: 790
    functionLinenumberEnd: 821
    functionName: _channelqueue_remove
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelqueue_find
    - _channelitem_popped
    - assert
    linkageType: ''
    returnType: void
    signature: "void _channelqueue_remove(_channelqueue *queue, _channelitem_id_t
      itemid,\n                     _PyXIData_t **p_data, _waiting_t **p_waiting)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_clear_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:832,1
    - Dst: _channelitem_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - queue
    - interpid
    argTypes:
    - _channelqueue*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 823
    functionDepth: 5
    functionLinenumber: 823
    functionLinenumberEnd: 848
    functionName: _channelqueue_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_free
    - _channelitem_clear_interpreter
    linkageType: ''
    returnType: void
    signature: void _channelqueue_clear_interpreter(_channelqueue *queue, int64_t
      interpid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:864,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpchannelsmodule.c:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - interpid
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 873
    functionName: _channelend_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    - PyErr_NoMemory
    linkageType: ''
    returnType: _channelend
    signature: '_channelend *

      _channelend_new(int64_t interpid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - end
    argTypes:
    - _channelend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: _channelend_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _channelend_free(_channelend *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - end
    argTypes:
    - _channelend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 889
    functionName: _channelend_free_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.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
    - interpid
    - pprev
    argTypes:
    - _channelend*
    - int64_t
    - _channelend**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 907
    functionName: _channelend_find
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _channelend
    signature: '_channelend *

      _channelend_find(_channelend *first, int64_t interpid, _channelend **pprev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 932
    functionName: _channelends_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    linkageType: ''
    returnType: _channelends
    signature: '_channelends *

      _channelends_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_free_all
      Src: /src/cpython/Modules/_interpchannelsmodule.c:937,1
    - Dst: _channelend_free_all
      Src: /src/cpython/Modules/_interpchannelsmodule.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ends
    argTypes:
    - _channelends*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 944
    functionName: _channelends_clear
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.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/cpython/Modules/_interpchannelsmodule.c:949,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ends
    argTypes:
    - _channelends*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 951
    functionName: _channelends_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_clear
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _channelends_free(_channelends *ends)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ends
    - prev
    - interpid
    - send
    argTypes:
    - _channelends*
    - _channelend*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 980
    functionName: _channelends_add
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelend_new
    linkageType: ''
    returnType: _channelend
    signature: "_channelend *\n_channelends_add(_channelends *ends, _channelend *prev,
      int64_t interpid,\n                 int send)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:986,1
    - Dst: _channelends_add
      Src: /src/cpython/Modules/_interpchannelsmodule.c:995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ends
    - interpid
    - send
    argTypes:
    - _channelends*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 999
    functionName: _channelends_associate
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_add
    - _channelend_find
    linkageType: ''
    returnType: int
    signature: int _channelends_associate(_channelends *ends, int64_t interpid, int
      send)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ends
    argTypes:
    - _channelends*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1015
    functionName: _channelends_is_open
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.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: 1027
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1027
    functionName: _channelends_release_end
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _channelends_release_end(_channelends *ends, _channelend *end,
      int send)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1035,1
    - Dst: _channelends_add
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1038,1
    - Dst: _channelends_release_end
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1043,1
    - Dst: _channelend_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1046,1
    - Dst: _channelends_add
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1049,1
    - Dst: _channelends_release_end
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1054,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - ends
    - interpid
    - which
    argTypes:
    - _channelends*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1057
    functionName: _channelends_release_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_release_end
    - _channelends_add
    - _channelend_find
    linkageType: ''
    returnType: int
    signature: int _channelends_release_interpreter(_channelends *ends, int64_t interpid,
      int which)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelends_release_end
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1068,1
    - Dst: _channelends_release_end
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ends
    - which
    - force
    argTypes:
    - _channelends*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1075
    functionName: _channelends_release_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_release_end
    linkageType: ''
    returnType: void
    signature: void _channelends_release_all(_channelends *ends, int which, int force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1082,1
    - Dst: _channelends_release_end
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1084,1
    - Dst: _channelend_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1086,1
    - Dst: _channelends_release_end
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ends
    - interpid
    argTypes:
    - _channelends*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1090
    functionName: _channelends_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_release_end
    - _channelend_find
    linkageType: ''
    returnType: void
    signature: void _channelends_clear_interpreter(_channelends *ends, int64_t interpid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1115,1
    - Dst: check_unbound
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1115,1
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1116,1
    - Dst: _channelqueue_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1121,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1123,1
    - Dst: _channelends_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1126,1
    - Dst: _channelqueue_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1128,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - mutex
    - defaults
    argTypes:
    - PyThread_type_lock
    - struct _channeldefaults
    assertStmts:
    - condition: (check_unbound(defaults.unboundop))
      pos:
        line_end: 1114
        line_start: 1114
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1136
      start: 1112
    functionDepth: 8
    functionLinenumber: 1112
    functionLinenumberEnd: 1136
    functionName: _channel_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_new
    - _channelqueue_new
    - check_unbound
    - GLOBAL_FREE
    - GLOBAL_MALLOC
    - _channelqueue_free
    - assert
    linkageType: ''
    returnType: _channel_state
    signature: '_channel_state *

      _channel_new(PyThread_type_lock mutex, struct _channeldefaults defaults)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channel_clear_closing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1141,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1142,1
    - Dst: _channelqueue_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1143,1
    - Dst: _channelends_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1144,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1145,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1147,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - chan
    argTypes:
    - _channel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1138
    functionDepth: 8
    functionLinenumber: 1138
    functionLinenumberEnd: 1149
    functionName: _channel_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _channelends_free
    - _channel_clear_closing
    - GLOBAL_FREE
    - PyThread_acquire_lock
    - _channelqueue_free
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void _channel_free(_channel_state *chan)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1156,1
    - Dst: _channelends_associate
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1162,1
    - Dst: _channelqueue_put
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1167,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - chan
    - interpid
    - data
    - waiting
    - unboundop
    argTypes:
    - _channel_state*
    - int64_t
    - _PyXIData_t*
    - _waiting_t*
    - unboundop_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1151
    functionDepth: 4
    functionLinenumber: 1151
    functionLinenumberEnd: 1176
    functionName: _channel_add
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_associate
    - PyThread_acquire_lock
    - _channelqueue_put
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: "int _channel_add(_channel_state *chan, int64_t interpid,\n             _PyXIData_t
      *data, _waiting_t *waiting, unboundop_t unboundop)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1183,1
    - Dst: _channelends_associate
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1189,1
    - Dst: _channelqueue_get
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1194,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1195,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1195,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1197,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1206,1
    - Dst: _channel_finish_closing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - chan
    - interpid
    - p_data
    - p_waiting
    - p_unboundop
    argTypes:
    - _channel_state*
    - int64_t
    - _PyXIData_t**
    - _waiting_t**
    - int*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1194
        line_start: 1194
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (empty == ERR_CHANNEL_EMPTY)
      pos:
        line_end: 1196
        line_start: 1196
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1211
      start: 1178
    functionDepth: 7
    functionLinenumber: 1178
    functionLinenumberEnd: 1211
    functionName: _channel_next
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _channel_finish_closing
    - PyThread_release_lock
    - _channelends_associate
    - PyThread_acquire_lock
    - _channelqueue_get
    - assert
    linkageType: ''
    returnType: int
    signature: "int _channel_next(_channel_state *chan, int64_t interpid,\n              _PyXIData_t
      **p_data, _waiting_t **p_waiting, int *p_unboundop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1219,1
    - Dst: _channelqueue_remove
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1220,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1221,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1223,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1225,1
    - Dst: _channel_finish_closing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - chan
    - itemid
    argTypes:
    - _channel_state*
    - _channelitem_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1213
    functionDepth: 7
    functionLinenumber: 1213
    functionLinenumberEnd: 1231
    functionName: _channel_remove
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _waiting_release
    - _channelqueue_remove
    - _release_xid_data
    - _channel_finish_closing
    - PyThread_release_lock
    - PyThread_acquire_lock
    linkageType: ''
    returnType: void
    signature: void _channel_remove(_channel_state *chan, _channelitem_id_t itemid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1236,1
    - Dst: _channelends_release_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1244,1
    - Dst: _channelends_is_open
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1247,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - chan
    - interpid
    - end
    argTypes:
    - _channel_state*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1233
    functionDepth: 4
    functionLinenumber: 1233
    functionLinenumberEnd: 1255
    functionName: _channel_release_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_release_interpreter
    - _channelends_is_open
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channel_release_interpreter(_channel_state *chan, int64_t interpid,
      int end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1261,1
    - Dst: _channelends_release_all
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1278,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - chan
    - end
    - force
    argTypes:
    - _channel_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1284
    functionName: _channel_release_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_release_all
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channel_release_all(_channel_state *chan, int end, int force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1289,1
    - Dst: _channelqueue_clear_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1291,1
    - Dst: _channelends_clear_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1292,1
    - Dst: _channelends_is_open
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1293,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - chan
    - interpid
    argTypes:
    - _channel_state*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1286
    functionDepth: 6
    functionLinenumber: 1286
    functionLinenumberEnd: 1296
    functionName: _channel_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _channelqueue_clear_interpreter
    - _channelends_clear_interpreter
    - _channelends_is_open
    - PyThread_acquire_lock
    linkageType: ''
    returnType: void
    signature: void _channel_clear_interpreter(_channel_state *chan, int64_t interpid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cid
    - chan
    argTypes:
    - int64_t
    - _channel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1323
    functionName: _channelref_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    linkageType: ''
    returnType: _channelref
    signature: '_channelref *

      _channelref_new(int64_t cid, _channel_state *chan)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channel_clear_closing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1338,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _channelref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1342
    functionName: _channelref_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_clear_closing
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _channelref_free(_channelref *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - first
    - cid
    - pprev
    argTypes:
    - _channelref*
    - int64_t
    - _channelref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1360
    functionName: _channelref_find
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _channelref
    signature: '_channelref *

      _channelref_find(_channelref *first, int64_t cid, _channelref **pprev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1373,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - channels
    - mutex
    argTypes:
    - _channels*
    - PyThread_type_lock
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 1372
        line_start: 1372
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (channels->mutex == NULL)
      pos:
        line_end: 1373
        line_start: 1373
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1381
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1381
    functionName: _channels_init
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void _channels_init(_channels *channels, PyThread_type_lock mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1387,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1389,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1390,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1391,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - channels
    - p_mutex
    argTypes:
    - _channels*
    - PyThread_type_lock*
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 1386
        line_start: 1386
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (channels->numopen == 0)
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (channels->head == NULL)
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1396
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1396
    functionName: _channels_fini
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _channels_fini(_channels *channels, PyThread_type_lock *p_mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - channels
    argTypes:
    - _channels*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1408
    functionName: _channels_next_id
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t _channels_next_id(_channels *channels)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1416,1
    - Dst: _channelref_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1421,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - channels
    - cid
    - pmutex
    - res
    argTypes:
    - _channels*
    - int64_t
    - PyThread_type_lock*
    - _channel_state**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1445
    functionName: _channels_lookup
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _channelref_find
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: "int _channels_lookup(_channels *channels, int64_t cid, PyThread_type_lock
      *pmutex,\n                 _channel_state **res)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1451,1
    - Dst: _channels_next_id
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1454,1
    - Dst: _channelref_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1459,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - channels
    - chan
    argTypes:
    - _channels*
    - _channel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1474
    functionName: _channels_add
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_next_id
    - PyThread_release_lock
    - PyThread_acquire_lock
    - _channelref_new
    linkageType: ''
    returnType: int64_t
    signature: int64_t _channels_add(_channels *channels, _channel_state *chan)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1484,1
    - Dst: _channelref_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1489,1
    - Dst: _channel_release_all
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1504,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1513,1
    - Dst: _channel_set_closing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1514,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1533,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1540,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 5
    argNames:
    - channels
    - cid
    - pchan
    - end
    - force
    argTypes:
    - _channels*
    - int64_t
    - _channel_state**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1479
    functionDepth: 9
    functionLinenumber: 1479
    functionLinenumberEnd: 1542
    functionName: _channels_close
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_free
    - _channel_release_all
    - _channel_set_closing
    - PyThread_release_lock
    - PyThread_acquire_lock
    - _channelref_find
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int _channels_close(_channels *channels, int64_t cid, _channel_state
      **pchan,\n                int end, int force)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelref_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - channels
    - ref
    - prev
    - pchan
    argTypes:
    - _channels*
    - _channelref*
    - _channelref*
    - _channel_state**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1544
    functionDepth: 2
    functionLinenumber: 1544
    functionLinenumberEnd: 1560
    functionName: _channels_remove_ref
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelref_free
    linkageType: ''
    returnType: void
    signature: "void _channels_remove_ref(_channels *channels, _channelref *ref, _channelref
      *prev,\n                     _channel_state **pchan)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1566,1
    - Dst: _channelref_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1573,1
    - Dst: _channels_remove_ref
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1579,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - channels
    - cid
    - pchan
    argTypes:
    - _channels*
    - int64_t
    - _channel_state**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1585
    functionName: _channels_remove
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_remove_ref
    - PyThread_acquire_lock
    - _channelref_find
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channels_remove(_channels *channels, int64_t cid, _channel_state
      **pchan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1591,1
    - Dst: _channelref_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1593,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - channels
    - cid
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1604
    functionName: _channels_add_id_object
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _channelref_find
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channels_add_id_object(_channels *channels, int64_t cid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1609,1
    - Dst: _channelref_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1612,1
    - Dst: _channels_remove_ref
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1622,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1624,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - channels
    - cid
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1606
    functionDepth: 9
    functionLinenumber: 1606
    functionLinenumberEnd: 1630
    functionName: _channels_release_cid_object
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_free
    - _channels_remove_ref
    - PyThread_release_lock
    - PyThread_acquire_lock
    - _channelref_find
    linkageType: ''
    returnType: void
    signature: void _channels_release_cid_object(_channels *channels, int64_t cid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1641,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1643,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - channels
    - count
    argTypes:
    - _channels*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1660
    functionName: _channels_list_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: struct channel_id_and_info
    signature: 'struct channel_id_and_info *

      _channels_list_all(_channels *channels, int64_t *count)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1665,1
    - Dst: _channel_clear_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1670,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - channels
    - interpid
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1662
    functionDepth: 7
    functionLinenumber: 1662
    functionLinenumberEnd: 1675
    functionName: _channels_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_lock
    - _channel_clear_interpreter
    linkageType: ''
    returnType: void
    signature: void _channels_clear_interpreter(_channels *channels, int64_t interpid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1692,1
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1697,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ref
    - mutex
    argTypes:
    - _channelref*
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1707
    functionName: _channel_set_closing
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 1
    functionsReached:
    - GLOBAL_MALLOC
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channel_set_closing(_channelref *ref, PyThread_type_lock mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1711,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1713,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - chan
    argTypes:
    - _channel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1717
    functionName: _channel_clear_closing
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 2
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_lock
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _channel_clear_closing(_channel_state *chan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channel_clear_closing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1726,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - chan
    argTypes:
    - _channel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1719
    functionDepth: 9
    functionLinenumber: 1719
    functionLinenumberEnd: 1730
    functionName: _channel_finish_closing
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 2
    functionsReached:
    - _channel_clear_closing
    - _channel_free
    linkageType: ''
    returnType: void
    signature: void _channel_finish_closing(_channel_state *chan)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1739,1
    - Dst: _channel_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1743,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1745,1
    - Dst: _channels_add
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1748,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - channels
    - defaults
    argTypes:
    - _channels*
    - struct _channeldefaults
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1736
    functionDepth: 9
    functionLinenumber: 1736
    functionLinenumberEnd: 1753
    functionName: channel_create
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_free
    - _channels_add
    - PyThread_allocate_lock
    - _channel_new
    - PyThread_free_lock
    linkageType: ''
    returnType: int64_t
    signature: int64_t channel_create(_channels *channels, struct _channeldefaults
      defaults)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channels_remove
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1760,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - channels
    - cid
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1756
    functionDepth: 9
    functionLinenumber: 1756
    functionLinenumberEnd: 1768
    functionName: channel_destroy
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_remove
    - _channel_free
    linkageType: ''
    returnType: int
    signature: int channel_destroy(_channels *channels, int64_t cid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1777,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1779,1
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1784,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1788,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1792,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1797,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1799,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1802,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1803,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1804,1
    - Dst: _channel_add
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1809,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1810,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1813,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - channels
    - cid
    - obj
    - waiting
    - unboundop
    - fallback
    argTypes:
    - _channels*
    - int64_t
    - PyObject*
    - _waiting_t*
    - unboundop_t
    - xidata_fallback_t
    assertStmts:
    - condition: (chan != NULL)
      pos:
        line_end: 1787
        line_start: 1787
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1819
      start: 1773
    functionDepth: 5
    functionLinenumber: 1773
    functionLinenumberEnd: 1819
    functionName: channel_send
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_GetID
    - _PyObject_GetXIData
    - _release_xid_data
    - _channels_lookup
    - PyThread_release_lock
    - _PyThreadState_GET
    - GLOBAL_FREE
    - _channel_add
    - _PyXIData_New
    - assert
    linkageType: ''
    returnType: int
    signature: "int channel_send(_channels *channels, int64_t cid, PyObject *obj,\n
      \            _waiting_t *waiting, unboundop_t unboundop, xidata_fallback_t fallback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1828,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1831,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1834,1
    - Dst: _waiting_get_itemid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1837,1
    - Dst: _channel_remove
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1838,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - channels
    - cid
    - waiting
    argTypes:
    - _channels*
    - int64_t
    - _waiting_t*
    assertStmts:
    - condition: (chan != NULL)
      pos:
        line_end: 1833
        line_start: 1833
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (waiting->status == WAITING_RELEASED)
      pos:
        line_end: 1830
        line_start: 1830
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1841
      start: 1822
    functionDepth: 8
    functionLinenumber: 1822
    functionLinenumberEnd: 1841
    functionName: channel_clear_sent
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - _channels_lookup
    - PyThread_release_lock
    - _waiting_get_itemid
    - _channel_remove
    linkageType: ''
    returnType: void
    signature: void channel_clear_sent(_channels *channels, int64_t cid, _waiting_t
      *waiting)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _waiting_init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1852,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1853,1
    - Dst: channel_send
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1858,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1860,1
    - Dst: wait_for_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1865,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1866,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1866,1
    - Dst: _waiting_finish_releasing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1867,1
    - Dst: channel_clear_sent
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1870,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1871,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1877,1
    - Dst: _waiting_finish_releasing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1880,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1881,1
    - Dst: _waiting_clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1892,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 6
    argNames:
    - channels
    - cid
    - obj
    - unboundop
    - timeout
    - fallback
    argTypes:
    - _channels*
    - int64_t
    - PyObject*
    - unboundop_t
    - PY_TIMEOUT_T
    - xidata_fallback_t
    assertStmts:
    - condition: (waiting.status == WAITING_NO_STATUS)
      pos:
        line_end: 1859
        line_start: 1859
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1852
        line_start: 1852
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1865
        line_start: 1865
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (waiting.status == WAITING_RELEASED)
      pos:
        line_end: 1870
        line_start: 1870
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (waiting.status == WAITING_RELEASED)
      pos:
        line_end: 1880
        line_start: 1880
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1894
      start: 1844
    functionDepth: 9
    functionLinenumber: 1844
    functionLinenumberEnd: 1894
    functionName: channel_send_wait
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _waiting_finish_releasing
    - wait_for_lock
    - PyErr_Occurred
    - channel_send
    - _waiting_init
    - _waiting_clear
    - channel_clear_sent
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: "int channel_send_wait(_channels *channels, int64_t cid, PyObject *obj,\n
      \                 unboundop_t unboundop, PY_TIMEOUT_T timeout,\n                  xidata_fallback_t
      fallback)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1905,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1908,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1913,1
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1918,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1922,1
    - Dst: _channel_next
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1928,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1929,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1935,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1935,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1941,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1943,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1943,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1945,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1947,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1952,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1955,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1956,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1958,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1965,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 4
    argNames:
    - channels
    - cid
    - res
    - p_unboundop
    argTypes:
    - _channels*
    - int64_t
    - PyObject**
    - int*
    assertStmts:
    - condition: (chan != NULL)
      pos:
        line_end: 1921
        line_start: 1921
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1942
        line_start: 1942
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1954
        line_start: 1954
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1934
        line_start: 1934
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1970
      start: 1899
    functionDepth: 8
    functionLinenumber: 1899
    functionLinenumberEnd: 1970
    functionName: channel_recv
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_interp
    - PyInterpreterState_GetID
    - _waiting_release
    - Py_DECREF
    - PyErr_Occurred
    - _release_xid_data
    - _channels_lookup
    - _PyXIData_NewObject
    - PyThread_release_lock
    - _channel_next
    - assert
    linkageType: ''
    returnType: int
    signature: int channel_recv(_channels *channels, int64_t cid, PyObject **res,
      int *p_unboundop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1978,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1982,1
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1987,1
    - Dst: _channel_release_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1994,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - channels
    - cid
    - send
    - recv
    argTypes:
    - _channels*
    - int64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1975
    functionDepth: 5
    functionLinenumber: 1975
    functionLinenumberEnd: 1997
    functionName: channel_release
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_interp
    - PyInterpreterState_GetID
    - _channels_lookup
    - PyThread_release_lock
    - _channel_release_interpreter
    linkageType: ''
    returnType: int
    signature: int channel_release(_channels *channels, int64_t cid, int send, int
      recv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channels_close
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - channels
    - cid
    - end
    - force
    argTypes:
    - _channels*
    - int64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 2002
    functionDepth: 10
    functionLinenumber: 2002
    functionLinenumberEnd: 2006
    functionName: channel_close
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_close
    linkageType: ''
    returnType: int
    signature: int channel_close(_channels *channels, int64_t cid, int end, int force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2015,1
    - Dst: _channelend_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2023,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - channels
    - cid
    - interpid
    - send
    argTypes:
    - _channels*
    - int64_t
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2010
    functionDepth: 2
    functionLinenumber: 2010
    functionLinenumberEnd: 2027
    functionName: channel_is_associated
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_lookup
    - _channelend_find
    linkageType: ''
    returnType: int
    signature: "int channel_is_associated(_channels *channels, int64_t cid, int64_t
      interpid,\n                       int send)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2034,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - channels
    - cid
    - defaults
    argTypes:
    - _channels*
    - int64_t
    - struct _channeldefaults*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2029
    functionDepth: 2
    functionLinenumber: 2029
    functionLinenumberEnd: 2041
    functionName: channel_get_defaults
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_lookup
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int channel_get_defaults(_channels *channels, int64_t cid, struct _channeldefaults
      *defaults)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2048,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2052,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - channels
    - cid
    - p_count
    argTypes:
    - _channels*
    - int64_t
    - Py_ssize_t*
    assertStmts:
    - condition: (chan != NULL)
      pos:
        line_end: 2051
        line_start: 2051
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2058
      start: 2043
    functionDepth: 2
    functionLinenumber: 2043
    functionLinenumberEnd: 2058
    functionName: _channel_get_count
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_lookup
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channel_get_count(_channels *channels, int64_t cid, Py_ssize_t
      *p_count)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2093,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2097,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2100,1
    - Dst: _channelref_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2103,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2116,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2121,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2132,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2133,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2196,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 3
    argNames:
    - channels
    - cid
    - info
    argTypes:
    - _channels*
    - int64_t
    - struct channel_info*
    assertStmts:
    - condition: (chan->queue->count == 0)
      pos:
        line_end: 2115
        line_start: 2115
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (chan->queue->count > 0)
      pos:
        line_end: 2120
        line_start: 2120
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (info->status.cur.send == 0)
      pos:
        line_end: 2131
        line_start: 2131
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (info->status.cur.recv == 0)
      pos:
        line_end: 2132
        line_start: 2132
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2198
      start: 2086
    functionDepth: 1
    functionLinenumber: 2086
    functionLinenumberEnd: 2198
    functionName: _channel_get_info
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_interp
    - PyInterpreterState_GetID
    - PyThread_release_lock
    - PyThread_acquire_lock
    - _channelref_find
    - assert
    linkageType: ''
    returnType: int
    signature: int _channel_get_info(_channels *channels, int64_t cid, struct channel_info
      *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2244,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2249,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2250,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2268,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2269,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2270,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2271,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2272,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2273,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2274,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2275,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2276,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2277,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2278,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2279,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2280,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2281,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2282,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2283,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2286,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - mod
    - info
    argTypes:
    - PyObject*
    - struct channel_info*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2285
        line_start: 2285
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (state->ChannelInfoType != NULL)
      pos:
        line_end: 2248
        line_start: 2248
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2288
      start: 2241
    functionDepth: 1
    functionLinenumber: 2241
    functionLinenumberEnd: 2288
    functionName: new_channel_info
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyErr_Occurred
    - SET_BOOL
    - SET_COUNT
    - PyStructSequence_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_channel_info(PyObject *mod, struct channel_info *info)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2259
    functionName: SET_BOOL
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2259
    functionDepth: 0
    functionLinenumber: 2259
    functionLinenumberEnd: 2268
    functionName: SET_COUNT
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_COUNT(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2301
    functionDepth: 0
    functionLinenumber: 2301
    functionLinenumberEnd: 2302
    functionName: channelid_CAST
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: channelid_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2315,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2316,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2317,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2321,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2322,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2323,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2327,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2333,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2315
        line_start: 2315
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2341
      start: 2309
    functionDepth: 1
    functionLinenumber: 2309
    functionLinenumberEnd: 2341
    functionName: channel_id_converter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyLong_AsLongLong
    - PyObject_TypeCheck
    - PyErr_Occurred
    - PyErr_Format
    - PyIndex_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int channel_id_converter(PyObject *arg, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2349,1
    - Dst: _channels_add_id_object
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2358,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2361,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - cls
    - cid
    - end
    - channels
    - force
    - resolve
    - res
    argTypes:
    - PyTypeObject*
    - int64_t
    - int
    - _channels*
    - int
    - int
    - channelid**
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2360
        line_start: 2360
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2371
      start: 2343
    functionDepth: 2
    functionLinenumber: 2343
    functionLinenumberEnd: 2371
    functionName: newchannelid
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_New
    - PyErr_Occurred
    - _channels_add_id_object
    - assert
    linkageType: ''
    returnType: int
    signature: "int newchannelid(PyTypeObject *cls, int64_t cid, int end, _channels
      *channels,\n             int force, int resolve, channelid **res)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2389,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2400,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2409,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2414,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2419,1
    - Dst: _global_channels
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2419,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2422,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2423,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2426,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - mod
    - cls
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (send == 0 || send == -1)
      pos:
        line_end: 2413
        line_start: 2413
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (recv == 1)
      pos:
        line_end: 2408
        line_start: 2408
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj == NULL)
      pos:
        line_end: 2422
        line_start: 2422
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 2425
        line_start: 2425
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2428
      start: 2375
    functionDepth: 3
    functionLinenumber: 2375
    functionLinenumberEnd: 2428
    functionName: _channelid_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - newchannelid
    - _global_channels
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_channelid_new(PyObject *mod, PyTypeObject *cls,\n               PyObject
      *args, PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2433,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2437,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2445,1
    - Dst: _channels_release_cid_object
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2430
    functionDepth: 10
    functionLinenumber: 2430
    functionLinenumberEnd: 2448
    functionName: channelid_dealloc
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - channelid_CAST
    - PyTypeObject*::tp_free
    - _channels_release_cid_object
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void channelid_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2453,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2454,1
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2456,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2450
    functionDepth: 1
    functionLinenumber: 2450
    functionLinenumberEnd: 2468
    functionName: channelid_repr
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - channelid_CAST
    - Py_TYPE
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2473,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2475
    functionName: channelid_str
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - channelid_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2480,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2477
    functionDepth: 1
    functionLinenumber: 2477
    functionLinenumberEnd: 2482
    functionName: channelid_int
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - channelid_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_int(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2487,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2488,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2484
    functionDepth: 1
    functionLinenumber: 2484
    functionLinenumberEnd: 2495
    functionName: channelid_hash
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - channelid_CAST
    - PyObject_Hash
    - Py_DECREF
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t channelid_hash(PyObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_module_from_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2505,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2505,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2509,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2514,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2515,1
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2519,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2521,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2525,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2528,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2529,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2534,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2535,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2540,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2544,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2549,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2556,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2497
    functionDepth: 1
    functionLinenumber: 2497
    functionLinenumberEnd: 2558
    functionName: channelid_richcompare
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - get_module_state
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - get_module_from_type
    - channelid_CAST
    - PyLong_Check
    - PyObject_RichCompare
    - Py_NewRef
    - PyNumber_Check
    - PyLong_FromLongLong
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_channelend_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2565,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cidobj
    - end
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2562
    functionDepth: 1
    functionLinenumber: 2562
    functionLinenumberEnd: 2575
    functionName: _channelobj_from_cidobj
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - _get_current_channelend_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channelobj_from_cidobj(PyObject *cidobj, int end)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2586,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2589,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2593,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2594,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2601,1
    - Dst: _global_channels
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2602,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2605,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2606,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2609,1
    - Dst: _channelobj_from_cidobj
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2618,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2627,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 2592
        line_start: 2592
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj == NULL)
      pos:
        line_end: 2604
        line_start: 2604
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 2608
        line_start: 2608
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2629
      start: 2583
    functionDepth: 3
    functionLinenumber: 2583
    functionLinenumberEnd: 2629
    functionName: _channelid_from_xid
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_DECREF
    - _PyXIData_DATA
    - handle_channel_error
    - _channelobj_from_cidobj
    - PyImport_ImportModule
    - newchannelid
    - _global_channels
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channelid_from_xid(_PyXIData_t *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_InitWithSize
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2634,1
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2641,1
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tstate
    - obj
    - data
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2631
    functionDepth: 1
    functionLinenumber: 2631
    functionLinenumberEnd: 2647
    functionName: _channelid_shared
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - channelid_CAST
    - _PyXIData_InitWithSize
    - _PyXIData_DATA
    linkageType: ''
    returnType: int
    signature: int _channelid_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2653,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2656,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2656,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2660,1
    - Dst: get_module_from_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2661,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2661,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2666,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2669,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2674,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2677,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (obj == NULL)
      pos:
        line_end: 2659
        line_start: 2659
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (obj != NULL)
      pos:
        line_end: 2668
        line_start: 2668
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2680
      start: 2649
    functionDepth: 3
    functionLinenumber: 2649
    functionLinenumberEnd: 2680
    functionName: channelid_end
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    - Py_DECREF
    - handle_channel_error
    - get_module_from_type
    - channelid_CAST
    - newchannelid
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_end(PyObject *self, void *end)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2723,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2729,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2732,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2720
    functionDepth: 1
    functionLinenumber: 2720
    functionLinenumberEnd: 2737
    functionName: add_channelid_type
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - ensure_xid_class
    - PyType_FromModuleAndSpec
    - GETDATA
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      add_channelid_type(PyObject *mod)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2747,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2756,1
    - Dst: ensure_highlevel_module_loaded
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2761,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2770,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - end
    argTypes:
    - int
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 2769
        line_start: 2769
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (end == CHANNEL_RECV)
      pos:
        line_end: 2755
        line_start: 2755
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2773
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2773
    functionName: _get_current_channelend_type
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 1
    functionsReached:
    - ensure_highlevel_module_loaded
    - _get_current_module_state
    - assert
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _get_current_channelend_type(int end)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelid_from_xid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2778,1
    - Dst: _get_current_channelend_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2782,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2784,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2775
    functionDepth: 4
    functionLinenumber: 2775
    functionLinenumberEnd: 2790
    functionName: _channelend_from_xid
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelid_from_xid
    - PyObject_CallOneArg
    - Py_DECREF
    - _get_current_channelend_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channelend_from_xid(_PyXIData_t *data)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2795,1
    - Dst: _channelid_shared
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2800,1
    - Dst: _PyXIData_SET_NEW_OBJECT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tstate
    - obj
    - data
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2792
    functionDepth: 2
    functionLinenumber: 2792
    functionLinenumberEnd: 2806
    functionName: _channelend_shared
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channelid_shared
    - _PyXIData_SET_NEW_OBJECT
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int _channelend_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2811,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2818,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2819,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2822,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2823,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2827,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2828,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2829,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2829,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2830,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2831,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2834,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2834,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2835,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2836,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2837,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - mod
    - send
    - recv
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2808
    functionDepth: 1
    functionLinenumber: 2808
    functionLinenumberEnd: 2842
    functionName: set_channelend_types
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - ensure_xid_class
    - Py_NewRef
    - clear_xid_class
    - Py_CLEAR
    - GETDATA
    linkageType: ''
    returnType: int
    signature: int set_channelend_types(PyObject *mod, PyTypeObject *send, PyTypeObject
      *recv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2859,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2860,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2864,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2867,1
    - Dst: _channels_init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2870,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_globals.module_count >= 0)
      pos:
        line_end: 2859
        line_start: 2859
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2874
      start: 2856
    functionDepth: 1
    functionLinenumber: 2856
    functionLinenumberEnd: 2874
    functionName: _globals_init
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_init
    - PyThread_allocate_lock
    - PyMutex_Lock
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: int
    signature: int _globals_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2879,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2880,1
    - Dst: _channels_fini
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2884,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2885,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2886,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 2884
        line_start: 2884
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (_globals.module_count > 0)
      pos:
        line_end: 2879
        line_start: 2879
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2889
      start: 2876
    functionDepth: 2
    functionLinenumber: 2876
    functionLinenumberEnd: 2889
    functionName: _globals_fini
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - PyThread_free_lock
    - _channels_fini
    - assert
    linkageType: ''
    returnType: void
    signature: void _globals_fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2894
    functionName: _global_channels
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: _channels
    signature: '_channels *

      _global_channels(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2904,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2904,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2905,1
    - Dst: _channels_clear_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (interp == _get_current_interp())
      pos:
        line_end: 2903
        line_start: 2903
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2907
      start: 2897
    functionDepth: 8
    functionLinenumber: 2897
    functionLinenumberEnd: 2907
    functionName: clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 4
    functionsReached:
    - _get_current_interp
    - PyInterpreterState_GetID
    - _channels_clear_interpreter
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_interpreter(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2916,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2922,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2927,1
    - Dst: channel_create
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2933,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2935,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2938,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2943,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2946,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2947,1
    - Dst: channel_destroy
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2948,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2949,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2954,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (cidobj == NULL)
      pos:
        line_end: 2946
        line_start: 2946
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj->channels != NULL)
      pos:
        line_end: 2954
        line_start: 2954
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 2953
        line_start: 2953
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2957
      start: 2910
    functionDepth: 10
    functionLinenumber: 2910
    functionLinenumberEnd: 2957
    functionName: channelsmod_create
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - channel_create
    - handle_channel_error
    - resolve_unboundop
    - PyArg_ParseTupleAndKeywords
    - channel_destroy
    - newchannelid
    - resolve_fallback
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_create(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2972,1
    - Dst: channel_destroy
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2978,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2964
    functionDepth: 10
    functionLinenumber: 2964
    functionLinenumberEnd: 2983
    functionName: channelsmod_destroy
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - channel_destroy
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_destroy(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _channels_list_all
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2996,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2999,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3003,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3009,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3016,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3019,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3020,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3021,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3024,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3029,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3031,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3034,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3038,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (cidobj == NULL)
      pos:
        line_end: 3019
        line_start: 3019
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 3023
        line_start: 3023
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3040
      start: 2991
    functionDepth: 3
    functionLinenumber: 2991
    functionLinenumberEnd: 3040
    functionName: channelsmod_list_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_BuildValue
    - get_module_state
    - Py_DECREF
    - _channels_list_all
    - handle_channel_error
    - PyList_SET_ITEM
    - Py_SETREF
    - newchannelid
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3060,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3067,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3072,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3074,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3075,1
    - Dst: channel_is_associated
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3076,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3078,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3082,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3087,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3092,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3098,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (interpid >= 0)
      pos:
        line_end: 3074
        line_start: 3074
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3102
      start: 3047
    functionDepth: 3
    functionLinenumber: 3047
    functionLinenumberEnd: 3102
    functionName: channelsmod_list_interpreters
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyInterpreterState_GetID
    - _PyInterpreterState_GetIDObject
    - PyList_Insert
    - Py_DECREF
    - Py_CLEAR
    - handle_channel_error
    - PyInterpreterState_Next
    - PyArg_ParseTupleAndKeywords
    - PyInterpreterState_Head
    - channel_is_associated
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_list_interpreters(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3126,1
    - Dst: PyThread_ParseTimeoutArg
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3136,1
    - Dst: channel_get_defaults
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3141,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3142,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3147,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3151,1
    - Dst: channel_send_wait
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3158,1
    - Dst: channel_send
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3162,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3113
    functionDepth: 10
    functionLinenumber: 3113
    functionLinenumberEnd: 3170
    functionName: channelsmod_send
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - channel_send_wait
    - handle_channel_error
    - channel_send
    - channel_get_defaults
    - resolve_unboundop
    - PyArg_ParseTupleAndKeywords
    - PyThread_ParseTimeoutArg
    - resolve_fallback
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_send(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3191,1
    - Dst: PyThread_ParseTimeoutArg
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3201,1
    - Dst: channel_get_defaults
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3206,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3207,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3212,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3216,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3220,1
    - Dst: channel_send_wait
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3228,1
    - Dst: channel_send
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3235,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3236,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3178
    functionDepth: 10
    functionLinenumber: 3178
    functionLinenumberEnd: 3241
    functionName: channelsmod_send_buffer
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMemoryView_FromObject
    - channel_send_wait
    - handle_channel_error
    - channel_send
    - channel_get_defaults
    - resolve_unboundop
    - PyArg_ParseTupleAndKeywords
    - PyThread_ParseTimeoutArg
    - resolve_fallback
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_send_buffer(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3258,1
    - Dst: channel_recv
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3266,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3269,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3272,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3277,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3283
      start: 3249
    functionDepth: 9
    functionLinenumber: 3249
    functionLinenumberEnd: 3283
    functionName: channelsmod_recv
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - channel_recv
    - handle_channel_error
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_recv(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3304,1
    - Dst: channel_close
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3312,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3293
    functionDepth: 11
    functionLinenumber: 3293
    functionLinenumberEnd: 3317
    functionName: channelsmod_close
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - channel_close
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_close(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3358,1
    - Dst: channel_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3373,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3346
    functionDepth: 6
    functionLinenumber: 3346
    functionLinenumberEnd: 3378
    functionName: channelsmod_release
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - channel_release
    - handle_channel_error
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_release(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3394,1
    - Dst: _channel_get_count
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3402,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3403,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3406,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (count >= 0)
      pos:
        line_end: 3405
        line_start: 3405
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3408
      start: 3387
    functionDepth: 3
    functionLinenumber: 3387
    functionLinenumberEnd: 3408
    functionName: channelsmod_get_count
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - PyLong_FromSsize_t
    - PyArg_ParseTupleAndKeywords
    - _channel_get_count
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_get_count(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3422,1
    - Dst: _channel_get_info
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3430,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3431,1
    - Dst: new_channel_info
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3415
    functionDepth: 2
    functionLinenumber: 3415
    functionLinenumberEnd: 3435
    functionName: channelsmod_get_info
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - new_channel_info
    - handle_channel_error
    - _channel_get_info
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_get_info(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3449,1
    - Dst: channel_get_defaults
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3457,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3458,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3464
      start: 3442
    functionDepth: 3
    functionLinenumber: 3442
    functionLinenumberEnd: 3464
    functionName: channelsmod_get_channel_defaults
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - Py_BuildValue
    - channel_get_defaults
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod_get_channel_defaults(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3474,1
    - Dst: get_module_from_owned_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3480,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3482,1
    - Dst: _channelid_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mod == self)
      pos:
        line_end: 3480
        line_start: 3480
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3485
      start: 3471
    functionDepth: 4
    functionLinenumber: 3471
    functionLinenumberEnd: 3485
    functionName: channelsmod__channel_id
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_DECREF
    - _channelid_new
    - get_module_from_owned_type
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod__channel_id(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3493,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3498,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3499,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3502,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3503,1
    - Dst: set_channelend_types
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3487
    functionDepth: 2
    functionLinenumber: 3487
    functionLinenumberEnd: 3514
    functionName: channelsmod__register_end_types
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - set_channelend_types
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelsmod__register_end_types(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _globals_init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3559,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3560,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3564,1
    - Dst: exceptions_init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3570,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3577,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3581,1
    - Dst: add_channelid_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3586,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3592,1
    - Dst: PyUnstable_AtExit
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3593,1
    - Dst: clear_xid_types
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3599,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3601,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3556
    functionDepth: 2
    functionLinenumber: 3556
    functionLinenumberEnd: 3603
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - _get_current_interp
    - exceptions_init
    - get_module_state
    - _globals_init
    - handle_channel_error
    - clear_xid_types
    - PyUnstable_AtExit
    - PyStructSequence_NewType
    - add_channelid_type
    - _globals_fini
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3615,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3616,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3615
        line_start: 3615
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3618
      start: 3612
    functionDepth: 0
    functionLinenumber: 3612
    functionLinenumberEnd: 3618
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - traverse_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3623,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3624,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3623
        line_start: 3623
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3628
      start: 3620
    functionDepth: 0
    functionLinenumber: 3620
    functionLinenumberEnd: 3628
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - clear_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3633,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3634,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3637,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3633
        line_start: 3633
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3640
      start: 3630
    functionDepth: 0
    functionLinenumber: 3630
    functionLinenumberEnd: 3640
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - clear_module_state
    - get_module_state
    - assert
    - _globals_fini
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3658
      start: 3654
    functionDepth: 1
    functionLinenumber: 3654
    functionLinenumberEnd: 3658
    functionName: MODINIT_FUNC_NAME
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC MODINIT_FUNC_NAME(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: FutureObj_HEAD
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FutureObj_HEAD(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Future_CheckExact
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Future_CheckExact(state, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Task_CheckExact
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Task_CheckExact(state, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Future_Check
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Future_Check(state, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: Task_Check
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Task_Check(state, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: TaskOrFuture_Check
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TaskOrFuture_Check(state, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_asynciomodule.c:197,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: get_asyncio_state
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: asyncio_state
    signature: 'asyncio_state *

      get_asyncio_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_asynciomodule.c:205,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: get_asyncio_state_by_cls
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: asyncio_state
    signature: 'asyncio_state *

      get_asyncio_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:215,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_asynciomodule.c:216,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:217,1
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: get_asyncio_state_by_def
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - assert
    - Py_TYPE
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: asyncio_state
    signature: 'asyncio_state *

      get_asyncio_state_by_def(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: clear_task_coro
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void clear_task_coro(TaskObj *task)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:247,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:248,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - task
    - coro
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (coro != NULL)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: set_task_coro
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    - assert
    linkageType: ''
    returnType: void
    signature: void set_task_coro(TaskObj *task, PyObject *coro)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:262,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:268,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:273,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - state
    - coro
    argTypes:
    - asyncio_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 284
    functionName: _is_coroutine
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PySet_GET_SIZE
    - PyObject_CallOneArg
    - PySet_Add
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _is_coroutine(asyncio_state *state, PyObject *coro)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:290,1
    - Dst: PySet_Contains
      Src: /src/cpython/Modules/_asynciomodule.c:303,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:304,1
    - Dst: _is_coroutine
      Src: /src/cpython/Modules/_asynciomodule.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - coro
    argTypes:
    - asyncio_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: is_coroutine
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - PySet_Contains
    - _is_coroutine
    - Py_TYPE
    - PyCoro_CheckExact
    linkageType: ''
    returnType: int
    signature: int is_coroutine(asyncio_state *state, PyObject *coro)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Future_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:324,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:324,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:326,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_asynciomodule.c:329,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:329,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:334,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:338,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - state
    - fut
    argTypes:
    - asyncio_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: get_future_loop
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - Py_NewRef
    - PyObject_GetAttr
    - Future_CheckExact
    - Task_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_future_loop(asyncio_state *state, PyObject *fut)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:347,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:348,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:354,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:359,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - asyncio_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: get_event_loop
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - _PyThreadState_GET
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_event_loop(asyncio_state *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_asynciomodule.c:374,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:374,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_asynciomodule.c:388,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - state
    - loop
    - func
    - arg
    - ctx
    argTypes:
    - asyncio_state*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 397
    functionName: call_soon
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_VectorcallMethod
    - _Py_ID
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int call_soon(asyncio_state *state, PyObject *loop, PyObject *func,
      PyObject *arg,\n          PyObject *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: future_is_alive
    functionSourceFile: /src/cpython/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/cpython/Modules/_asynciomodule.c:410,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: future_ensure_alive
    functionSourceFile: /src/cpython/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: 5
    argNames:
    - (
    - state
    - ','
    - fut
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: ENSURE_FUTURE_ALIVE
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_FUTURE_ALIVE(state, fut)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:432,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:434,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:436,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:440,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:455,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:457,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:458,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:462,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:481,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:483,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:483,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:484,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:485,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:486,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - state
    - fut
    argTypes:
    - asyncio_state*
    - FutureObj*
    assertStmts:
    - condition: (fut->fut_state != STATE_PENDING)
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (PyList_GET_SIZE(callbacks) == n)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 495
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 495
    functionName: future_schedule_callbacks
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - call_soon
    - PyList_GET_ITEM
    - Task_Check
    - Py_DECREF
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - unregister_task
    - Py_CLEAR
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int future_schedule_callbacks(asyncio_state *state, FutureObj *fut)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:504,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:505,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:506,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:507,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:508,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:509,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:510,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:511,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:512,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:513,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:514,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:523,1
    - Dst: get_event_loop
      Src: /src/cpython/Modules/_asynciomodule.c:524,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:530,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:534,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:534,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:539,1
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Modules/_asynciomodule.c:543,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:543,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:550,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:551,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - fut
    - loop
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 558
    functionName: future_init
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_IsTrue
    - PyObject_CallNoArgs
    - Py_DECREF
    - get_event_loop
    - get_asyncio_state_by_def
    - _Py_ID
    - _Py_IsInterpreterFinalizing
    - _PyInterpreterState_GET
    - PyObject_CallMethodNoArgs
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int future_init(FutureObj *fut, PyObject *loop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:563,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:567,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:567,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:568,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:568,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:574,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:575,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:581,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:581,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:582,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:585,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:590,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:594,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_asynciomodule.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - state
    - fut
    - thing
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (TaskOrFuture_Check(state, fut))
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (TaskOrFuture_Check(state, thing))
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (!fut->fut_awaited_by_is_set)
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (PySet_CheckExact(fut->fut_awaited_by))
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 600
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 600
    functionName: future_awaited_by_add
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - TaskOrFuture_Check
    - Py_SETREF
    - PySet_CheckExact
    - PySet_New
    - PySet_Add
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int future_awaited_by_add(asyncio_state *state, FutureObj *fut, PyObject
      *thing)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:605,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:609,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:609,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:610,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:610,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:619,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:623,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:623,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_asynciomodule.c:624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - state
    - fut
    - thing
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (TaskOrFuture_Check(state, fut))
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (TaskOrFuture_Check(state, thing))
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (PySet_CheckExact(fut->fut_awaited_by))
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 632
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 632
    functionName: future_awaited_by_discard
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PySet_Discard
    - TaskOrFuture_Check
    - PySet_CheckExact
    - Py_CLEAR
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int future_awaited_by_discard(asyncio_state *state, FutureObj *fut,
      PyObject *thing)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:638,1
    - Dst: future_ensure_alive
      Src: /src/cpython/Modules/_asynciomodule.c:640,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:645,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:649,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:650,1
    - Dst: future_schedule_callbacks
      Src: /src/cpython/Modules/_asynciomodule.c:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - state
    - fut
    - res
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (!fut->fut_result)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 657
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 657
    functionName: future_set_result
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - future_schedule_callbacks
    - Py_NewRef
    - future_ensure_alive
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_set_result(asyncio_state *state, FutureObj *fut, PyObject *res)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:662,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:667,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_asynciomodule.c:671,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:677,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:678,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:683,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_asynciomodule.c:685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:686,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:687,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:690,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_asynciomodule.c:694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:696,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:702,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:705,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_asynciomodule.c:705,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Modules/_asynciomodule.c:707,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:707,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Modules/_asynciomodule.c:708,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:709,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:713,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:714,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Modules/_asynciomodule.c:716,1
    - Dst: future_schedule_callbacks
      Src: /src/cpython/Modules/_asynciomodule.c:719,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 3
    argNames:
    - state
    - fut
    - exc
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(err))
      pos:
        line_end: 704
        line_start: 704
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (!fut->fut_exception)
      pos:
        line_end: 712
        line_start: 712
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (!fut->fut_exception_tb)
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 725
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 725
    functionName: future_set_exception
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - PyException_SetCause
    - Py_DECREF
    - PyException_GetTraceback
    - PyErr_SetString
    - PyErr_GivenExceptionMatches
    - PyUnicode_FromString
    - Py_NewRef
    - PyException_SetContext
    - PyObject_CallOneArg
    - future_schedule_callbacks
    - PyExceptionClass_Check
    - PyExceptionInstance_Check
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_set_exception(asyncio_state *state, FutureObj *fut, PyObject *exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:730,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:741,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - fut
    argTypes:
    - asyncio_state*
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 746
    functionName: create_cancelled_error
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - PyObject_CallOneArg
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_cancelled_error(asyncio_state *state, FutureObj *fut)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:751,1
    - Dst: create_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:753,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_asynciomodule.c:757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - fut
    argTypes:
    - asyncio_state*
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 759
    functionName: future_set_cancelled_error
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Py_DECREF
    - create_cancelled_error
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: void
    signature: void future_set_cancelled_error(asyncio_state *state, FutureObj *fut)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:764,1
    - Dst: future_set_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:767,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:772,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Modules/_asynciomodule.c:783,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:786,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:787,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - state
    - fut
    - result
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 793
    functionName: future_get_result
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_NewRef
    - future_set_cancelled_error
    - Py_CLEAR
    - PyException_SetTraceback
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int future_get_result(asyncio_state *state, FutureObj *fut, PyObject
      **result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:799,1
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:801,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:802,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:809,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:836,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:837,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_asynciomodule.c:840,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:844,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:845,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:846,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:847,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_asynciomodule.c:850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:855,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:860,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:864,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - state
    - fut
    - arg
    - ctx
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 870
    functionName: future_add_done_callback
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - call_soon
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - PyList_Append
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - PyList_SET_ITEM
    - Py_NewRef
    - future_is_alive
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfuture_add_done_callback(asyncio_state *state, FutureObj
      *fut, PyObject *arg,\n                         PyObject *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:875,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:884,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:885,1
    - Dst: future_schedule_callbacks
      Src: /src/cpython/Modules/_asynciomodule.c:887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - state
    - fut
    - msg
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 892
    functionName: future_cancel
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - future_schedule_callbacks
    - Py_XSETREF
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_cancel(asyncio_state *state, FutureObj *fut, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: future_init
      Src: /src/cpython/Modules/_asynciomodule.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - loop
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 914
    functionDepth: 4
    functionLinenumber: 914
    functionLinenumberEnd: 920
    functionName: _asyncio_Future___init___impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_asynciomodule.c:926,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:927,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:928,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:929,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:930,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:931,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:932,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:933,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:934,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:935,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:936,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Modules/_asynciomodule.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 940
    functionName: FutureObj_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearManagedDict
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int FutureObj_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:946,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:947,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:948,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:949,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:950,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:951,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:952,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:953,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:954,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:955,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:956,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:957,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_asynciomodule.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 960
    functionName: FutureObj_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - PyObject_VisitManagedDict
    linkageType: ''
    returnType: int
    signature: int FutureObj_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:977,1
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:980,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:981,1
    - Dst: future_get_result
      Src: /src/cpython/Modules/_asynciomodule.c:986,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:996,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_asynciomodule.c:998,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Modules/_asynciomodule.c:998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1001
      start: 973
    functionDepth: 4
    functionLinenumber: 973
    functionLinenumberEnd: 1001
    functionName: _asyncio_Future_result_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_asyncio_state_by_def
    - PyErr_SetString
    - PyErr_SetObject
    - future_get_result
    - future_is_alive
    - PyExceptionInstance_Class
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_result_impl(FutureObj *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:1022,1
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1023,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1024,1
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1030,1
    - Dst: future_set_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:1031,1
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1036,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1037,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - FutureObj*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1018
    functionDepth: 3
    functionLinenumber: 1018
    functionLinenumberEnd: 1048
    functionName: _asyncio_Future_exception_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - get_asyncio_state_by_cls
    - Py_NewRef
    - future_is_alive
    - future_set_cancelled_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_exception_impl(FutureObj *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1069,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1070,1
    - Dst: future_set_result
      Src: /src/cpython/Modules/_asynciomodule.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - result
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1064
    functionDepth: 4
    functionLinenumber: 1064
    functionLinenumberEnd: 1072
    functionName: _asyncio_Future_set_result_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_set_result
    - get_asyncio_state_by_cls
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Future_set_result_impl(FutureObj *self, PyTypeObject
      *cls,\n                                PyObject *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1093,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1094,1
    - Dst: future_set_exception
      Src: /src/cpython/Modules/_asynciomodule.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - exception
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1096
    functionName: _asyncio_Future_set_exception_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_set_exception
    - get_asyncio_state_by_cls
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Future_set_exception_impl(FutureObj *self, PyTypeObject
      *cls,\n                                   PyObject *exception)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1120,1
    - Dst: PyContext_CopyCurrent
      Src: /src/cpython/Modules/_asynciomodule.c:1122,1
    - Dst: future_add_done_callback
      Src: /src/cpython/Modules/_asynciomodule.c:1126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1127,1
    - Dst: future_add_done_callback
      Src: /src/cpython/Modules/_asynciomodule.c:1130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - cls
    - fn
    - context
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1115
    functionDepth: 3
    functionLinenumber: 1115
    functionLinenumberEnd: 1131
    functionName: _asyncio_Future_add_done_callback_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_asyncio_state_by_cls
    - future_add_done_callback
    - PyContext_CopyCurrent
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Future_add_done_callback_impl(FutureObj *self,
      PyTypeObject *cls,\n                                       PyObject *fn, PyObject
      *context)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1155,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1156,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1162,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_asynciomodule.c:1163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1164,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1170,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1171,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1177,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1180,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1182,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1183,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1187,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1188,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_asynciomodule.c:1189,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1191,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1197,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1198,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1201,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:1204,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1212,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1215,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1216,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_asynciomodule.c:1217,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1217,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1220,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_asynciomodule.c:1224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1226,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1235,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1236,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1240,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1242,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1243,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_asynciomodule.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1249,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1253,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 3
    argNames:
    - self
    - cls
    - fn
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1146
    functionDepth: 2
    functionLinenumber: 1146
    functionLinenumberEnd: 1255
    functionName: _asyncio_Future_remove_done_callback_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_INCREF
    - Py_SET_SIZE
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_Append
    - PyLong_FromSsize_t
    - PyList_GET_SIZE
    - get_asyncio_state_by_cls
    - PyList_SET_ITEM
    - ENSURE_FUTURE_ALIVE
    - PyList_SetSlice
    - Py_NewRef
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Future_remove_done_callback_impl(FutureObj *self,
      PyTypeObject *cls,\n                                          PyObject *fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1277,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1278,1
    - Dst: future_cancel
      Src: /src/cpython/Modules/_asynciomodule.c:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - msg
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1280
    functionName: _asyncio_Future_cancel_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_cls
    - ENSURE_FUTURE_ALIVE
    - future_cancel
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Future_cancel_impl(FutureObj *self, PyTypeObject
      *cls,\n                            PyObject *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:1293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1299
    functionName: _asyncio_Future_cancelled_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_asynciomodule.c:1315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1321
    functionName: _asyncio_Future_done_impl
    functionSourceFile: /src/cpython/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: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1337,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1338,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - FutureObj*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1340
    functionName: _asyncio_Future_get_loop_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_asyncio_state_by_cls
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_get_loop_impl(FutureObj *self, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1358,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:1358,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_asynciomodule.c:1359,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_asynciomodule.c:1362,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:1366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (PySet_CheckExact(self->fut_awaited_by))
      pos:
        line_end: 1357
        line_start: 1357
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1371
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1371
    functionName: _asyncio_Future__asyncio_awaited_by_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyFrozenSet_New
    - PySet_CheckExact
    - PySet_Add
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__asyncio_awaited_by_get_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:1384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1390
    functionName: _asyncio_Future__asyncio_future_blocking_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__asyncio_future_blocking_get_impl(FutureObj *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: future_ensure_alive
      Src: /src/cpython/Modules/_asynciomodule.c:1404,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1408,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:1412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1418
    functionName: _asyncio_Future__asyncio_future_blocking_set_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_ensure_alive
    - PyErr_SetString
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: "int _asyncio_Future__asyncio_future_blocking_set_impl(FutureObj *self,\n
      \                                                 PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:1430,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1426
    functionDepth: 3
    functionLinenumber: 1426
    functionLinenumberEnd: 1438
    functionName: _asyncio_Future__log_traceback_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__log_traceback_get_impl(FutureObj *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1451,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:1454,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1465
    functionName: _asyncio_Future__log_traceback_set_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future__log_traceback_set_impl(FutureObj *self, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:1476,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1472
    functionDepth: 1
    functionLinenumber: 1472
    functionLinenumberEnd: 1480
    functionName: _asyncio_Future__loop_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - future_is_alive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__loop_get_impl(FutureObj *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:1492,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1493,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1500,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:1507,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_asynciomodule.c:1514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1516,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1519,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1519,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1520,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1521,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1521,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1522,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1527,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1528,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1529,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1530,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (self->fut_context0 != NULL)
      pos:
        line_end: 1519
        line_start: 1519
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1536
      start: 1488
    functionDepth: 3
    functionLinenumber: 1488
    functionLinenumberEnd: 1536
    functionName: _asyncio_Future__callbacks_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - PyList_GET_ITEM
    - get_asyncio_state_by_def
    - PyList_GET_SIZE
    - PyTuple_SET_ITEM
    - PyList_SET_ITEM
    - ENSURE_FUTURE_ALIVE
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__callbacks_get_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:1549,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1550,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1544
    functionDepth: 3
    functionLinenumber: 1544
    functionLinenumberEnd: 1555
    functionName: _asyncio_Future__result_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - Py_NewRef
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__result_get_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:1567,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1568,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1563
    functionDepth: 3
    functionLinenumber: 1563
    functionLinenumberEnd: 1573
    functionName: _asyncio_Future__exception_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - Py_NewRef
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__exception_get_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:1585,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1589
    functionName: _asyncio_Future__source_traceback_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - future_is_alive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__source_traceback_get_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1605
    functionName: _asyncio_Future__cancel_message_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__cancel_message_get_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1618,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1621,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:1622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1624
    functionName: _asyncio_Future__cancel_message_set_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future__cancel_message_set_impl(FutureObj *self, PyObject
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:1636,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1639,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1643,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1646,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1649,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1652,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1654,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Modules/_asynciomodule.c:1654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (_Py_IsImmortal(ret))
      pos:
        line_end: 1653
        line_start: 1653
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1656
      start: 1632
    functionDepth: 3
    functionLinenumber: 1632
    functionLinenumberEnd: 1656
    functionName: _asyncio_Future__state_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - _Py_ID
    - ENSURE_FUTURE_ALIVE
    - _Py_IsImmortal
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__state_get_impl(FutureObj *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:1662,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1663,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1665
    functionName: FutureObj_repr
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - PyObject_CallOneArg
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:1681,1
    - Dst: create_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1677
    functionDepth: 3
    functionLinenumber: 1677
    functionLinenumberEnd: 1683
    functionName: _asyncio_Future__make_cancelled_error_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - create_cancelled_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__make_cancelled_error_impl(FutureObj *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1696,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:1700,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_asynciomodule.c:1702,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_asynciomodule.c:1707,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_asynciomodule.c:1708,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:1708,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1713,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1713,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1714,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1714,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1715,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1715,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1719,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1719,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:1725,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1725,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:1727,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_asynciomodule.c:1729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1735,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1739,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1740,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:1743,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (fut->fut_exception != NULL)
      pos:
        line_end: 1695
        line_start: 1695
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1744
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1744
    functionName: FutureObj_finalize
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyUnicode_FromFormat
    - _Py_ID
    - PyObject_GetAttr
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    - PyDict_New
    - _PyType_Name
    - Py_TYPE
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void FutureObj_finalize(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/_asynciomodule.c:1808,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:1813,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:1814,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_asynciomodule.c:1816,1
    - Dst: FutureObj_clear
      Src: /src/cpython/Modules/_asynciomodule.c:1818,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_asynciomodule.c:1819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1805
    functionDepth: 2
    functionLinenumber: 1805
    functionLinenumberEnd: 1821
    functionName: FutureObj_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFinalizerFromDealloc
    - PyObject_GC_UnTrack
    - FutureObj_clear
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void FutureObj_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:1835,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1837,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_asynciomodule.c:1837,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:1839,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_asynciomodule.c:1840,1
    - Dst: _Py_FREELIST_PUSH
      Src: /src/cpython/Modules/_asynciomodule.c:1842,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_asynciomodule.c:1843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 1836
        line_start: 1836
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1846
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1846
    functionName: FutureIter_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - _Py_FREELIST_PUSH
    - Py_TYPE
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: void
    signature: void FutureIter_dealloc(PyObject *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:1853,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1860,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1863,1
    - Dst: _asyncio_Future_result_impl
      Src: /src/cpython/Modules/_asynciomodule.c:1868,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - it
    - result
    argTypes:
    - futureiterobject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1848
    functionDepth: 5
    functionLinenumber: 1848
    functionLinenumberEnd: 1875
    functionName: FutureIter_am_send_lock_held
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - _asyncio_Future_result_impl
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult FutureIter_am_send_lock_held(futureiterobject *it, PyObject
      **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:1885,1
    - Dst: FutureIter_am_send_lock_held
      Src: /src/cpython/Modules/_asynciomodule.c:1886,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - Py_UNUSED(arg)
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1877
    functionDepth: 6
    functionLinenumber: 1877
    functionLinenumberEnd: 1889
    functionName: FutureIter_am_send
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - FutureIter_am_send_lock_held
    linkageType: ''
    returnType: PySendResult
    signature: "PySendResult FutureIter_am_send(PyObject *op,\n                   PyObject
      *Py_UNUSED(arg),\n                   PyObject **result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FutureIter_am_send
      Src: /src/cpython/Modules/_asynciomodule.c:1896,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Modules/_asynciomodule.c:1898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1899,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_asynciomodule.c:1906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1892
    functionDepth: 7
    functionLinenumber: 1892
    functionLinenumberEnd: 1908
    functionName: FutureIter_iternext
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyGen_SetStopIterationValue
    - FutureIter_am_send
    - Py_DECREF
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      FutureIter_send(PyObject *self, PyObject *unused)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_asynciomodule.c:1924,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_asynciomodule.c:1928,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Modules/_asynciomodule.c:1950,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1951,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1955,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1956,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1957,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_asynciomodule.c:1959,1
    - Dst: PyErr_NormalizeException
      Src: /src/cpython/Modules/_asynciomodule.c:1960,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_asynciomodule.c:1963,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1965,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Modules/_asynciomodule.c:1970,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1971,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Modules/_asynciomodule.c:1973,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1975,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1981,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Modules/_asynciomodule.c:1983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1988,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1989,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1990,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 3
    argNames:
    - op
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1992
    functionName: FutureIter_throw
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - PyErr_NormalizeException
    - PyException_GetTraceback
    - PyErr_SetString
    - PyExceptionClass_Check
    - PyErr_Restore
    - PyExceptionInstance_Check
    - _PyArg_CheckPositional
    - Py_XINCREF
    - PyTraceBack_Check
    - PyExceptionInstance_Class
    - Py_CLEAR
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureIter_throw(PyObject *op, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2000
    functionName: FutureIter_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int FutureIter_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FutureIter_clear
      Src: /src/cpython/Modules/_asynciomodule.c:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 2002
    functionDepth: 2
    functionLinenumber: 2002
    functionLinenumberEnd: 2007
    functionName: FutureIter_close
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - FutureIter_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureIter_close(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2013,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2013,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2016
    functionName: FutureIter_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int FutureIter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:2052,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:2053,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Modules/_asynciomodule.c:2055,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_asynciomodule.c:2057,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2063,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_asynciomodule.c:2064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fut
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2047
    functionDepth: 3
    functionLinenumber: 2047
    functionLinenumberEnd: 2066
    functionName: future_new_iter
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - ENSURE_FUTURE_ALIVE
    - Py_NewRef
    - PyObject_GC_Track
    - _Py_FREELIST_POP
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_new_iter(PyObject *fut)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2088,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2091
    functionName: TaskStepMethWrapper_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int TaskStepMethWrapper_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2097,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:2098,1
    - Dst: TaskStepMethWrapper_clear
      Src: /src/cpython/Modules/_asynciomodule.c:2099,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2093
    functionDepth: 2
    functionLinenumber: 2093
    functionLinenumberEnd: 2102
    functionName: TaskStepMethWrapper_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - TaskStepMethWrapper_clear
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void TaskStepMethWrapper_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:2109,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:2110,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:2113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:2114,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:2117,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:2119,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:2120,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:2121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2104
    functionDepth: 3
    functionLinenumber: 2104
    functionLinenumberEnd: 2123
    functionName: TaskStepMethWrapper_call
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - get_asyncio_state_by_def
    - PyErr_SetString
    - task_step
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nTaskStepMethWrapper_call(PyObject *op,\n                         PyObject
      *args, PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2130,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2130,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2131,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2134
    functionName: TaskStepMethWrapper_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int TaskStepMethWrapper_traverse(PyObject *op,\n                             visitproc
      visit, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2144
    functionName: TaskStepMethWrapper_get___self__
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskStepMethWrapper_get___self__(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:2172,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_asynciomodule.c:2174,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2179,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2180,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_asynciomodule.c:2182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - task
    - arg
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2169
    functionDepth: 3
    functionLinenumber: 2169
    functionLinenumberEnd: 2184
    functionName: TaskStepMethWrapper_new
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - Py_NewRef
    - PyObject_GC_Track
    - Py_XNewRef
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskStepMethWrapper_new(TaskObj *task, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:2202,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:2205,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Modules/_asynciomodule.c:2207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts:
    - condition: (task->task_node.prev != NULL)
      pos:
        line_end: 2201
        line_start: 2201
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 2208
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2208
    functionName: register_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - llist_insert_tail
    - assert
    linkageType: ''
    returnType: void
    signature: void register_task(TaskObj *task)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:2215,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_asynciomodule.c:2218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts:
    - condition: (task->task_node.prev == NULL)
      pos:
        line_end: 2214
        line_start: 2214
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 2219
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2219
    functionName: unregister_task_safe
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - llist_remove
    - assert
    linkageType: ''
    returnType: void
    signature: void unregister_task_safe(TaskObj *task)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ThreadId
      Src: /src/cpython/Modules/_asynciomodule.c:2227,1
    - Dst: unregister_task_safe
      Src: /src/cpython/Modules/_asynciomodule.c:2228,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:2233,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:2234,1
    - Dst: unregister_task_safe
      Src: /src/cpython/Modules/_asynciomodule.c:2235,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:2236,1
    - Dst: unregister_task_safe
      Src: /src/cpython/Modules/_asynciomodule.c:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2221
    functionDepth: 2
    functionLinenumber: 2221
    functionLinenumberEnd: 2241
    functionName: unregister_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - _Py_ThreadId
    - _PyThreadState_GET
    - _PyEval_StopTheWorld
    - unregister_task_safe
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: void
    signature: void unregister_task(TaskObj *task)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:2246,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2249,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2254,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2264
    functionName: enter_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_NewRef
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int enter_task(PyObject *loop, PyObject *task)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:2269,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2272,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2277,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2286
    functionName: leave_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_CLEAR
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int leave_task(PyObject *loop, PyObject *task)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:2291,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2294,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2309
    functionName: swap_current_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_NewRef
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      swap_current_task(PyObject *loop, PyObject *task)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: future_init
      Src: /src/cpython/Modules/_asynciomodule.c:2332,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:2337,1
    - Dst: is_coroutine
      Src: /src/cpython/Modules/_asynciomodule.c:2338,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2344,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2351,1
    - Dst: PyContext_CopyCurrent
      Src: /src/cpython/Modules/_asynciomodule.c:2351,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2356,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2356,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2359,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Modules/_asynciomodule.c:2361,1
    - Dst: set_task_coro
      Src: /src/cpython/Modules/_asynciomodule.c:2366,1
    - Dst: _Py_atomic_add_uint64
      Src: /src/cpython/Modules/_asynciomodule.c:2373,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_asynciomodule.c:2377,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:2378,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_asynciomodule.c:2379,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:2381,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2383,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:2389,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2389,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:2393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2394,1
    - Dst: task_eager_start
      Src: /src/cpython/Modules/_asynciomodule.c:2396,1
    - Dst: task_call_step_soon
      Src: /src/cpython/Modules/_asynciomodule.c:2403,1
    - Dst: _PyObject_SetMaybeWeakref
      Src: /src/cpython/Modules/_asynciomodule.c:2409,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:2411,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 6
    argNames:
    - self
    - coro
    - loop
    - name
    - context
    - eager_start
    argTypes:
    - TaskObj*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2326
    functionDepth: 4
    functionLinenumber: 2326
    functionLinenumberEnd: 2413
    functionName: _asyncio_Task___init___impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - task_call_step_soon
    - Py_IsTrue
    - set_task_coro
    - Py_CLEAR
    - Py_INCREF
    - _Py_atomic_add_uint64
    - register_task
    - task_eager_start
    - future_init
    - PyErr_Format
    - _Py_ThreadId
    - PyObject_Str
    - Py_DECREF
    - _PyObject_SetMaybeWeakref
    - is_coroutine
    - get_asyncio_state_by_def
    - PyUnicode_CheckExact
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - PyContext_CopyCurrent
    - PyLong_FromUnsignedLongLong
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: "int _asyncio_Task___init___impl(TaskObj *self, PyObject *coro, PyObject
      *loop,\n                            PyObject *name, PyObject *context,\n                            int
      eager_start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FutureObj_clear
      Src: /src/cpython/Modules/_asynciomodule.c:2419,1
    - Dst: clear_task_coro
      Src: /src/cpython/Modules/_asynciomodule.c:2420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2421,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2422,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2415
    functionDepth: 2
    functionLinenumber: 2415
    functionLinenumberEnd: 2425
    functionName: TaskObj_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - clear_task_coro
    - Py_CLEAR
    - FutureObj_clear
    linkageType: ''
    returnType: int
    signature: int TaskObj_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2431,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2431,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2432,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2433,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2434,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2435,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2437,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2438,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2439,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2440,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2441,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2442,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2443,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2444,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2445,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2446,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2447,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_asynciomodule.c:2448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2450
    functionName: TaskObj_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - PyObject_VisitManagedDict
    linkageType: ''
    returnType: int
    signature: int TaskObj_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2458
    functionDepth: 0
    functionLinenumber: 2458
    functionLinenumberEnd: 2468
    functionName: _asyncio_Task__log_destroy_pending_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__log_destroy_pending_get_impl(TaskObj *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:2481,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:2484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2476
    functionDepth: 1
    functionLinenumber: 2476
    functionLinenumberEnd: 2490
    functionName: _asyncio_Task__log_destroy_pending_set_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int _asyncio_Task__log_destroy_pending_set_impl(TaskObj *self, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2499
    functionDepth: 0
    functionLinenumber: 2499
    functionLinenumberEnd: 2509
    functionName: _asyncio_Task__must_cancel_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__must_cancel_get_impl(TaskObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2517
    functionDepth: 0
    functionLinenumber: 2517
    functionLinenumberEnd: 2526
    functionName: _asyncio_Task__coro_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__coro_get_impl(TaskObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2544
    functionName: _asyncio_Task__fut_waiter_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__fut_waiter_get_impl(TaskObj *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:2549,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:2550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - task
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2546
    functionDepth: 3
    functionLinenumber: 2546
    functionLinenumberEnd: 2551
    functionName: TaskObj_repr
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskObj_repr(PyObject *task)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future__make_cancelled_error_impl
      Src: /src/cpython/Modules/_asynciomodule.c:2569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2564
    functionDepth: 4
    functionLinenumber: 2564
    functionLinenumberEnd: 2570
    functionName: _asyncio_Task__make_cancelled_error_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _asyncio_Future__make_cancelled_error_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__make_cancelled_error_impl(TaskObj *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:2624,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2625,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:2630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2631,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:2642,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - msg
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2645
    functionName: _asyncio_Task_cancel_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - _Py_ID
    - Py_XSETREF
    - Py_XINCREF
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_asynciomodule.c:2662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2657
    functionDepth: 0
    functionLinenumber: 2657
    functionLinenumberEnd: 2663
    functionName: _asyncio_Task_cancelling_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_cancelling_impl(TaskObj *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_asynciomodule.c:2688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2677
    functionDepth: 0
    functionLinenumber: 2677
    functionLinenumberEnd: 2689
    functionName: _asyncio_Task_uncancel_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_uncancel_impl(TaskObj *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:2725,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_asynciomodule.c:2727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - limit
    argTypes:
    - TaskObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2720
    functionDepth: 2
    functionLinenumber: 2720
    functionLinenumberEnd: 2729
    functionName: _asyncio_Task_get_stack_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    - get_asyncio_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Task_get_stack_impl(TaskObj *self, PyTypeObject
      *cls,\n                             PyObject *limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:2754,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_asynciomodule.c:2756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cls
    - limit
    - file
    argTypes:
    - TaskObj*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2749
    functionDepth: 2
    functionLinenumber: 2749
    functionLinenumberEnd: 2758
    functionName: _asyncio_Task_print_stack_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    - get_asyncio_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Task_print_stack_impl(TaskObj *self, PyTypeObject
      *cls,\n                               PyObject *limit, PyObject *file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:2771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2767
    functionDepth: 1
    functionLinenumber: 2767
    functionLinenumberEnd: 2774
    functionName: _asyncio_Task_set_result_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_result_impl(TaskObj *self, PyObject *result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:2787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - exception
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2783
    functionDepth: 1
    functionLinenumber: 2783
    functionLinenumberEnd: 2790
    functionName: _asyncio_Task_set_exception_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_exception_impl(TaskObj *self, PyObject *exception)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2806
    functionName: _asyncio_Task_get_coro_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_coro_impl(TaskObj *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2812
    functionDepth: 0
    functionLinenumber: 2812
    functionLinenumberEnd: 2817
    functionName: _asyncio_Task_get_context_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_context_impl(TaskObj *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:2829,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_asynciomodule.c:2830,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2834,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2824
    functionDepth: 1
    functionLinenumber: 2824
    functionLinenumberEnd: 2840
    functionName: _asyncio_Task_get_name_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_NewRef
    - Py_SETREF
    - PyLong_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_name_impl(TaskObj *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:2854,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_asynciomodule.c:2855,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:2860,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2865
    functionName: _asyncio_Task_set_name_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyUnicode_CheckExact
    - PyObject_Str
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_name_impl(TaskObj *self, PyObject *value)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:2880,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_asynciomodule.c:2882,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_asynciomodule.c:2887,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:2892,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2892,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:2893,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2893,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:2899,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2899,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:2906,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2906,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:2908,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_asynciomodule.c:2910,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2916,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2920,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2921,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:2924,1
    - Dst: FutureObj_finalize
      Src: /src/cpython/Modules/_asynciomodule.c:2927,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2867
    functionDepth: 2
    functionLinenumber: 2867
    functionLinenumberEnd: 2928
    functionName: TaskObj_finalize
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - FutureObj_finalize
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - PyObject_GetAttr
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    - PyDict_New
    - PyUnicode_FromString
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void TaskObj_finalize(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Modules/_asynciomodule.c:2993,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:2996,1
    - Dst: PyObject_CallFinalizer
      Src: /src/cpython/Modules/_asynciomodule.c:2998,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Modules/_asynciomodule.c:3000,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:3004,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:3005,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_asynciomodule.c:3007,1
    - Dst: TaskObj_clear
      Src: /src/cpython/Modules/_asynciomodule.c:3009,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_asynciomodule.c:3010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 2990
    functionDepth: 3
    functionLinenumber: 2990
    functionLinenumberEnd: 3012
    functionName: TaskObj_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - TaskObj_clear
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - PyObject_CallFinalizer
    - _PyObject_ResurrectStart
    - _PyObject_ResurrectEnd
    - unregister_task
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TaskObj_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TaskStepMethWrapper_new
      Src: /src/cpython/Modules/_asynciomodule.c:3017,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3024,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - task
    - arg
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3014
    functionDepth: 4
    functionLinenumber: 3014
    functionLinenumberEnd: 3029
    functionName: task_call_step_soon
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - TaskStepMethWrapper_new
    - call_soon
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int task_call_step_soon(asyncio_state *state, TaskObj *task, PyObject
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Modules/_asynciomodule.c:3038,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Modules/_asynciomodule.c:3039,1
    - Dst: va_end
      Src: /src/cpython/Modules/_asynciomodule.c:3040,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3047,1
    - Dst: task_call_step_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - state
    - task
    - et
    - format
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3031
    functionDepth: 5
    functionLinenumber: 3031
    functionLinenumberEnd: 3059
    functionName: task_set_error_soon
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - task_call_step_soon
    - Py_DECREF
    - PyObject_CallOneArg
    - va_start
    - PyUnicode_FromFormatV
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntask_set_error_soon(asyncio_state *state, TaskObj *task,
      PyObject *et,\n                    const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/cpython/Modules/_asynciomodule.c:3067,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3071,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_asynciomodule.c:3071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3070
        line_start: 3070
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3073
      start: 3061
    functionDepth: 1
    functionLinenumber: 3061
    functionLinenumberEnd: 3073
    functionName: gen_status_from_result
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyGen_FetchStopIterationValue
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: int gen_status_from_result(PyObject **result)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:3078,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:3086,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3094,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3096,1
    - Dst: create_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:3098,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:3109,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:3113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3116,1
    - Dst: PyIter_Send
      Src: /src/cpython/Modules/_asynciomodule.c:3123,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3126,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3126,1
    - Dst: gen_status_from_result
      Src: /src/cpython/Modules/_asynciomodule.c:3127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3130,1
    - Dst: future_cancel
      Src: /src/cpython/Modules/_asynciomodule.c:3143,1
    - Dst: future_set_result
      Src: /src/cpython/Modules/_asynciomodule.c:3147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3155,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3159,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3162,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3163,1
    - Dst: future_cancel
      Src: /src/cpython/Modules/_asynciomodule.c:3169,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3173,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3174,1
    - Dst: future_set_exception
      Src: /src/cpython/Modules/_asynciomodule.c:3176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3179,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3183,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3185,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3186,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3193,1
    - Dst: task_step_handle_result_impl
      Src: /src/cpython/Modules/_asynciomodule.c:3198,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 3
    argNames:
    - state
    - task
    - exc
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (exc)
      pos:
        line_end: 3173
        line_start: 3173
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (exc != Py_None)
      pos:
        line_end: 3093
        line_start: 3093
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (o == Py_None)
      pos:
        line_end: 3181
        line_start: 3181
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (exc)
      pos:
        line_end: 3162
        line_start: 3162
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3203
      start: 3075
    functionDepth: 4
    functionLinenumber: 3075
    functionLinenumberEnd: 3203
    functionName: task_step_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_CLEAR
    - task_step_handle_result_impl
    - PyIter_Send
    - PyErr_Format
    - PyErr_SetRaisedException
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_DECREF
    - create_cancelled_error
    - PyErr_GetRaisedException
    - future_set_result
    - _Py_ID
    - PyErr_GivenExceptionMatches
    - future_set_exception
    - PyErr_ExceptionMatches
    - future_cancel
    - gen_status_from_result
    - PyObject_CallMethodOneArg
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_step_impl(asyncio_state *state, TaskObj *task, PyObject *exc)'
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:3209,1
    - Dst: Future_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3220,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3220,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3234,1
    - Dst: future_awaited_by_add
      Src: /src/cpython/Modules/_asynciomodule.c:3235,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3236,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/_asynciomodule.c:3244,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3248,1
    - Dst: future_add_done_callback
      Src: /src/cpython/Modules/_asynciomodule.c:3249,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3256,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3270,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3271,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3273,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3279,1
    - Dst: task_call_step_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3294,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_asynciomodule.c:3301,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3301,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3310,1
    - Dst: get_future_loop
      Src: /src/cpython/Modules/_asynciomodule.c:3316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3324,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3330,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3332,1
    - Dst: future_awaited_by_add
      Src: /src/cpython/Modules/_asynciomodule.c:3333,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3334,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:3341,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3342,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/_asynciomodule.c:3346,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:3352,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3355,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Modules/_asynciomodule.c:3361,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_asynciomodule.c:3362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3368,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3382,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3383,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3385,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3391,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3403,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_asynciomodule.c:3405,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3415,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3422,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3429,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3438,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3446,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3450,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 171
    argCount: 3
    argNames:
    - state
    - task
    - result
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3452
      start: 3206
    functionDepth: 6
    functionLinenumber: 3206
    functionLinenumberEnd: 3452
    functionName: task_step_handle_result_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - task_call_step_soon
    - Py_XDECREF
    - Py_END_CRITICAL_SECTION
    - TaskOrFuture_Check
    - future_awaited_by_add
    - Py_BEGIN_CRITICAL_SECTION
    - get_future_loop
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - task_set_error_soon
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyObject_IsInstance
    - PyCFunction_New
    - Future_CheckExact
    - Py_DECREF
    - _Py_ID
    - PyObject_Vectorcall
    - Py_NewRef
    - PyObject_SetAttr
    - PyObject_IsTrue
    - future_add_done_callback
    - PyObject_GetOptionalAttr
    - PyObject_GetAttr
    - PyObject_CallMethodOneArg
    - Task_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_step_handle_result_impl(asyncio_state *state, TaskObj *task, PyObject *result)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: enter_task
      Src: /src/cpython/Modules/_asynciomodule.c:3459,1
    - Dst: task_step_impl
      Src: /src/cpython/Modules/_asynciomodule.c:3463,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3466,1
    - Dst: leave_task
      Src: /src/cpython/Modules/_asynciomodule.c:3467,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_asynciomodule.c:3468,1
    - Dst: leave_task
      Src: /src/cpython/Modules/_asynciomodule.c:3472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - state
    - task
    - exc
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3480
      start: 3454
    functionDepth: 5
    functionLinenumber: 3454
    functionLinenumberEnd: 3480
    functionName: task_step
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - PyErr_GetRaisedException
    - task_step_impl
    - enter_task
    - leave_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_step(asyncio_state *state, TaskObj *task, PyObject *exc)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3485,1
    - Dst: swap_current_task
      Src: /src/cpython/Modules/_asynciomodule.c:3486,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:3494,1
    - Dst: PyContext_Enter
      Src: /src/cpython/Modules/_asynciomodule.c:3496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3497,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3504,1
    - Dst: task_step_impl
      Src: /src/cpython/Modules/_asynciomodule.c:3505,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3506,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3508,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_asynciomodule.c:3509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3512,1
    - Dst: swap_current_task
      Src: /src/cpython/Modules/_asynciomodule.c:3515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3516,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3521,1
    - Dst: PyContext_Exit
      Src: /src/cpython/Modules/_asynciomodule.c:3524,1
    - Dst: clear_task_coro
      Src: /src/cpython/Modules/_asynciomodule.c:3530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - state
    - task
    argTypes:
    - asyncio_state*
    - TaskObj*
    assertStmts:
    - condition: (task != NULL)
      pos:
        line_end: 3484
        line_start: 3484
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (curtask == (PyObject *)task)
      pos:
        line_end: 3519
        line_start: 3519
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3534
      start: 3482
    functionDepth: 5
    functionLinenumber: 3482
    functionLinenumberEnd: 3534
    functionName: task_eager_start
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - PyContext_Enter
    - Py_BEGIN_CRITICAL_SECTION
    - _PyErr_ChainExceptions1
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - register_task
    - PyErr_GetRaisedException
    - clear_task_coro
    - task_step_impl
    - PyContext_Exit
    - assert
    - swap_current_task
    linkageType: ''
    returnType: int
    signature: int task_eager_start(asyncio_state *state, TaskObj *task)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:3539,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3542,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:3544,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3546,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3548,1
    - Dst: future_awaited_by_discard
      Src: /src/cpython/Modules/_asynciomodule.c:3549,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3550,1
    - Dst: Future_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3556,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3556,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3559,1
    - Dst: future_get_result
      Src: /src/cpython/Modules/_asynciomodule.c:3560,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3561,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3567,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3568,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3570,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3572,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_asynciomodule.c:3577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3579,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3580,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3585,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3586,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - task
    - o
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (o)
      pos:
        line_end: 3541
        line_start: 3541
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (fut_result == NULL)
      pos:
        line_end: 3563
        line_start: 3563
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (res == 1)
      pos:
        line_end: 3569
        line_start: 3569
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (exc)
      pos:
        line_end: 3585
        line_start: 3585
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3593
      start: 3536
    functionDepth: 6
    functionLinenumber: 3536
    functionLinenumberEnd: 3593
    functionName: task_wakeup_lock_held
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyErr_GetRaisedException
    - get_asyncio_state_by_def
    - PyObject_CallMethod
    - future_get_result
    - TaskOrFuture_Check
    - task_step
    - future_awaited_by_discard
    - Future_CheckExact
    - Task_CheckExact
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_wakeup_lock_held(TaskObj *task, PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3600,1
    - Dst: task_wakeup_lock_held
      Src: /src/cpython/Modules/_asynciomodule.c:3601,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3595
    functionDepth: 7
    functionLinenumber: 3595
    functionLinenumberEnd: 3604
    functionName: task_wakeup
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - task_wakeup_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_wakeup(PyObject *op, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3624,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3631
      start: 3620
    functionDepth: 1
    functionLinenumber: 3620
    functionLinenumberEnd: 3631
    functionName: _asyncio__get_running_loop_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__get_running_loop_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3648,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:3652,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - loop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3644
    functionDepth: 1
    functionLinenumber: 3644
    functionLinenumberEnd: 3654
    functionName: _asyncio__set_running_loop
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_XNewRef
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _asyncio_get_event_loop_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3690,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3691,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:3694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3699
    functionName: _asyncio_get_running_loop_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyErr_SetString
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_get_running_loop_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:3715,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3716,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:3719,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3724,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3731
      start: 3711
    functionDepth: 2
    functionLinenumber: 3711
    functionLinenumberEnd: 3731
    functionName: _asyncio__register_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Task_Check
    - Py_DECREF
    - register_task
    - get_asyncio_state
    - _Py_ID
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__register_task_impl(PyObject *module, PyObject *task)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:3747,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3749,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:3752,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:3756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3743
    functionDepth: 2
    functionLinenumber: 3743
    functionLinenumberEnd: 3761
    functionName: _asyncio__register_eager_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - PySet_Add
    - Task_Check
    - register_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__register_eager_task_impl(PyObject *module, PyObject *task)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:3778,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3779,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:3780,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3783,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3774
    functionDepth: 3
    functionLinenumber: 3774
    functionLinenumberEnd: 3790
    functionName: _asyncio__unregister_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Task_Check
    - Py_DECREF
    - get_asyncio_state
    - _Py_ID
    - PyObject_CallMethodOneArg
    - unregister_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__unregister_task_impl(PyObject *module, PyObject *task)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:3806,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3807,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:3810,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_asynciomodule.c:3814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3819
      start: 3802
    functionDepth: 3
    functionLinenumber: 3802
    functionLinenumberEnd: 3819
    functionName: _asyncio__unregister_eager_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - unregister_task
    - Task_Check
    - PySet_Discard
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__unregister_eager_task_impl(PyObject *module, PyObject *task)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enter_task
      Src: /src/cpython/Modules/_asynciomodule.c:3839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3835
    functionDepth: 2
    functionLinenumber: 3835
    functionLinenumberEnd: 3843
    functionName: _asyncio__enter_task_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_asynciomodule.c:3863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3859
    functionDepth: 2
    functionLinenumber: 3859
    functionLinenumberEnd: 3867
    functionName: _asyncio__leave_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - leave_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__leave_task_impl(PyObject *module, PyObject *loop, PyObject *task)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap_current_task
      Src: /src/cpython/Modules/_asynciomodule.c:3887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3888
      start: 3882
    functionDepth: 2
    functionLinenumber: 3882
    functionLinenumberEnd: 3888
    functionName: _asyncio__swap_current_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - swap_current_task
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio__swap_current_task_impl(PyObject *module, PyObject
      *loop,\n                                 PyObject *task)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_get_running_loop_impl
      Src: /src/cpython/Modules/_asynciomodule.c:3905,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:3910,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3918,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3921,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:3929,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3934,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Modules/_asynciomodule.c:3940,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:3941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3942,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - module
    - loop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3900
    functionDepth: 2
    functionLinenumber: 3900
    functionLinenumberEnd: 3944
    functionName: _asyncio_current_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - _PyThreadState_GET
    - Py_NewRef
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    - _asyncio_get_running_loop_impl
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_current_task_impl(PyObject *module, PyObject *loop)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3930
    functionDepth: 0
    functionLinenumber: 3930
    functionLinenumberEnd: 3938
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3950,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3950,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3951,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3953,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3955,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:3957,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:3964,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3964,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3971,1
    - Dst: get_future_loop
      Src: /src/cpython/Modules/_asynciomodule.c:3972,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:3977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3982,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - state
    - tasks
    - task
    - loop
    argTypes:
    - asyncio_state*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PySet_CheckExact(tasks))
      pos:
        line_end: 3949
        line_start: 3949
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3984
      start: 3947
    functionDepth: 2
    functionLinenumber: 3947
    functionLinenumberEnd: 3984
    functionName: add_one_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_IsTrue
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - get_future_loop
    - PySet_CheckExact
    - PySet_Add
    - Task_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: int add_one_task(asyncio_state *state, PyObject *tasks, PyObject *task,
      PyObject *loop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Modules/_asynciomodule.c:3991,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3992,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Modules/_asynciomodule.c:4000,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_asynciomodule.c:4001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - tasks
    argTypes:
    - struct llist_node*
    - PyListObject*
    assertStmts:
    - condition: (task->task_state == STATE_PENDING)
      pos:
        line_end: 3991
        line_start: 3991
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 4008
      start: 3986
    functionDepth: 1
    functionLinenumber: 3986
    functionLinenumberEnd: 4008
    functionName: add_tasks_llist
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyList_AppendTakeRef
    - llist_data
    - assert
    - _Py_TryIncref
    linkageType: ''
    returnType: int
    signature: int add_tasks_llist(struct llist_node *head, PyListObject *tasks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Modules/_asynciomodule.c:3991,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3992,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Modules/_asynciomodule.c:4000,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_asynciomodule.c:4001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (task->task_state == STATE_PENDING)
      pos:
        line_end: 3991
        line_start: 3991
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 4006
      start: 3990
    functionDepth: 1
    functionLinenumber: 3990
    functionLinenumberEnd: 4006
    functionName: llist_for_each_safe
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyList_AppendTakeRef
    - llist_data
    - assert
    - _Py_TryIncref
    linkageType: ''
    returnType: void
    signature: void llist_for_each_safe(node, head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:4014,1
    - Dst: add_tasks_llist
      Src: /src/cpython/Modules/_asynciomodule.c:4019,1
    - Dst: add_tasks_llist
      Src: /src/cpython/Modules/_asynciomodule.c:4028,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Modules/_asynciomodule.c:4034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - interp
    - tasks
    argTypes:
    - PyInterpreterState*
    - PyListObject*
    assertStmts:
    - condition: (interp->stoptheworld.world_stopped)
      pos:
        line_end: 4013
        line_start: 4013
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 4036
      start: 4010
    functionDepth: 2
    functionLinenumber: 4010
    functionLinenumberEnd: 4036
    functionName: add_tasks_interp
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - add_tasks_llist
    - assert
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: int
    signature: int add_tasks_interp(PyInterpreterState *interp, PyListObject *tasks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_tasks_llist
      Src: /src/cpython/Modules/_asynciomodule.c:4028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4025
    functionDepth: 2
    functionLinenumber: 4025
    functionLinenumberEnd: 4032
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - add_tasks_llist
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:4053,1
    - Dst: _asyncio_get_running_loop_impl
      Src: /src/cpython/Modules/_asynciomodule.c:4055,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:4060,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:4066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4068,1
    - Dst: PyList_Extend
      Src: /src/cpython/Modules/_asynciomodule.c:4071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4073,1
    - Dst: PyList_Extend
      Src: /src/cpython/Modules/_asynciomodule.c:4076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4078,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_asynciomodule.c:4082,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:4098,1
    - Dst: add_tasks_interp
      Src: /src/cpython/Modules/_asynciomodule.c:4099,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:4100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4104,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:4109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4112,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:4116,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:4117,1
    - Dst: add_one_task
      Src: /src/cpython/Modules/_asynciomodule.c:4118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - module
    - loop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4129
      start: 4049
    functionDepth: 3
    functionLinenumber: 4049
    functionLinenumberEnd: 4129
    functionName: _asyncio_all_tasks_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_INCREF
    - PyInterpreterState_Get
    - add_tasks_interp
    - Py_DECREF
    - PyList_GET_ITEM
    - get_asyncio_state
    - PyList_GET_SIZE
    - PyList_Extend
    - _PyEval_StopTheWorld
    - add_one_task
    - PySet_New
    - _asyncio_get_running_loop_impl
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_all_tasks_impl(PyObject *module, PyObject *loop)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:4147,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4148,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4148,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4150,1
    - Dst: future_awaited_by_add
      Src: /src/cpython/Modules/_asynciomodule.c:4151,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - fut
    - waiter
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4158
      start: 4142
    functionDepth: 2
    functionLinenumber: 4142
    functionLinenumberEnd: 4158
    functionName: _asyncio_future_add_to_awaited_by_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - get_asyncio_state
    - TaskOrFuture_Check
    - future_awaited_by_add
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_future_add_to_awaited_by_impl(PyObject *module,
      PyObject *fut,\n                                       PyObject *waiter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:4174,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4175,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4175,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4177,1
    - Dst: future_awaited_by_discard
      Src: /src/cpython/Modules/_asynciomodule.c:4178,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - fut
    - waiter
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4185
      start: 4169
    functionDepth: 2
    functionLinenumber: 4169
    functionLinenumberEnd: 4185
    functionName: _asyncio_future_discard_from_awaited_by_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - get_asyncio_state
    - TaskOrFuture_Check
    - future_awaited_by_discard
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_future_discard_from_awaited_by_impl(PyObject
      *module, PyObject *fut,\n                                             PyObject
      *waiter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:4190,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4192,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4193,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4194,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4195,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4197,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4198,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4199,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4200,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4201,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4202,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4203,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4204,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4205,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4206,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4208,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4209,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4210,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4187
    functionDepth: 2
    functionLinenumber: 4187
    functionLinenumberEnd: 4215
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:4220,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4222,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4223,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4224,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4225,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4227,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4228,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4229,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4230,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4231,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4232,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4233,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4234,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4235,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4236,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4238,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4239,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4240,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4242,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:4246,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4247,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4251
      start: 4217
    functionDepth: 2
    functionLinenumber: 4217
    functionLinenumberEnd: 4251
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - get_asyncio_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_asynciomodule.c:4256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4257
      start: 4253
    functionDepth: 0
    functionLinenumber: 4253
    functionLinenumberEnd: 4257
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - module_clear
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_asynciomodule.c:4264,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:4269,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_asynciomodule.c:4274,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4292,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4293,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4295,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4296,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4298,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4299,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4300,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4302,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4303,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4304,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4305,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4307,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4308,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4310,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4311,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4314,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4315,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:4316,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4317,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:4322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4329,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 1
    argNames:
    - state
    argTypes:
    - asyncio_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4259
    functionDepth: 1
    functionLinenumber: 4259
    functionLinenumberEnd: 4338
    functionName: module_init
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - Py_BuildValue
    - Py_DECREF
    - WITH_MOD
    - PyImport_ImportModule
    - GET_MOD_ATTR
    - PySet_New
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int module_init(asyncio_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4285
      start: 4279
    functionDepth: 0
    functionLinenumber: 4279
    functionLinenumberEnd: 4285
    functionName: WITH_MOD
    functionSourceFile: /src/cpython/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: 4291
      start: 4286
    functionDepth: 0
    functionLinenumber: 4286
    functionLinenumberEnd: 4291
    functionName: GET_MOD_ATTR
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_MOD_ATTR(VAR, NAME)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:4364,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4376,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4377,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4378,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4379,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_asynciomodule.c:4383,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_asynciomodule.c:4387,1
    - Dst: module_init
      Src: /src/cpython/Modules/_asynciomodule.c:4391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4396
      start: 4361
    functionDepth: 2
    functionLinenumber: 4361
    functionLinenumberEnd: 4396
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_asyncio_state
    - CREATE_TYPE
    - module_init
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - m
    - ','
    - tp
    - ','
    - spec
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4367
    functionDepth: 0
    functionLinenumber: 4367
    functionLinenumberEnd: 4375
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(m, tp, spec, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_asynciomodule.c:4420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4421
      start: 4417
    functionDepth: 1
    functionLinenumber: 4417
    functionLinenumberEnd: 4421
    functionName: PyInit__asyncio
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__asyncio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_localemodule.c:43,1
    - Dst: assert
      Src: /src/cpython/Modules/_localemodule.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/cpython/Modules/_localemodule.c
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: get_locale_state
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _locale_state
    signature: '_locale_state *

      get_locale_state(PyObject *m)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_localemodule.c:66,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_localemodule.c:72,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_localemodule.c:79,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_localemodule.c:81,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_localemodule.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 88
    functionName: copy_grouping
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_SET_ITEM
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      copy_grouping(const char* s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:99,1
    - Dst: memchr
      Src: /src/cpython/Modules/_localemodule.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - locale
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: check_locale_name
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - memchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int check_locale_name(const char *locale, const char *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/cpython/Modules/_localemodule.c:112,1
    - Dst: check_locale_name
      Src: /src/cpython/Modules/_localemodule.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - locale
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: check_locale_name_all
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - check_locale_name
    - strchr
    linkageType: ''
    returnType: int
    signature: int check_locale_name_all(const char *locale)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:145,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:145,1
    - Dst: check_locale_name_all
      Src: /src/cpython/Modules/_localemodule.c:151,1
    - Dst: check_locale_name
      Src: /src/cpython/Modules/_localemodule.c:152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:156,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:156,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:165,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:168,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:168,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:172,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:177,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:179,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:179,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:183,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - module
    - category
    - locale
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 186
    functionName: _locale_setlocale_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - setlocale
    - get_locale_state
    - PyErr_SetString
    - check_locale_name_all
    - check_locale_name
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_setlocale_impl(PyObject *module, int category, const char *locale)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: locale_is_ascii
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int locale_is_ascii(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: is_all_ascii
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_all_ascii(const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: locale_is_ascii
      Src: /src/cpython/Modules/_localemodule.c:210,1
    - Dst: locale_is_ascii
      Src: /src/cpython/Modules/_localemodule.c:211,1
    - Dst: locale_is_ascii
      Src: /src/cpython/Modules/_localemodule.c:212,1
    - Dst: locale_is_ascii
      Src: /src/cpython/Modules/_localemodule.c:213,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:218,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:220,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_localemodule.c:225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:227,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:231,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_localemodule.c:232,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:240,1
    - Dst: RESULT_STRING
      Src: /src/cpython/Modules/_localemodule.c:266,1
    - Dst: RESULT_STRING
      Src: /src/cpython/Modules/_localemodule.c:267,1
    - Dst: RESULT_STRING
      Src: /src/cpython/Modules/_localemodule.c:268,1
    - Dst: RESULT_STRING
      Src: /src/cpython/Modules/_localemodule.c:269,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:278,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - dict
    - lc
    argTypes:
    - PyObject*
    - struct lconv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 283
    functionName: locale_decode_monetary
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - setlocale
    - PyErr_SetString
    - strcmp
    - PyMem_Free
    - _PyMem_Strdup
    - PyErr_NoMemory
    - RESULT_STRING
    - locale_is_ascii
    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: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: GET_LOCALE_STRING
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOCALE_STRING(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: GET_LOCALE_STRING
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOCALE_STRING(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: RESULT_STRING
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESULT_STRING(ATTR)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_localemodule.c:299,1
    - Dst: localeconv
      Src: /src/cpython/Modules/_localemodule.c:305,1
    - Dst: locale_decode_monetary
      Src: /src/cpython/Modules/_localemodule.c:340,1
    - Dst: copy_grouping
      Src: /src/cpython/Modules/_localemodule.c:343,1
    - Dst: RESULT
      Src: /src/cpython/Modules/_localemodule.c:344,1
    - Dst: RESULT_STRING
      Src: /src/cpython/Modules/_localemodule.c:346,1
    - Dst: RESULT_STRING
      Src: /src/cpython/Modules/_localemodule.c:347,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:348,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:349,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:350,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:351,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:352,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:353,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:354,1
    - Dst: RESULT_INT
      Src: /src/cpython/Modules/_localemodule.c:355,1
    - Dst: _Py_GetLocaleconvNumeric
      Src: /src/cpython/Modules/_localemodule.c:359,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_localemodule.c:360,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_localemodule.c:361,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_localemodule.c:365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_localemodule.c:366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_localemodule.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_localemodule.c:370,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_localemodule.c:372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_localemodule.c:373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_localemodule.c:376,1
    - Dst: copy_grouping
      Src: /src/cpython/Modules/_localemodule.c:378,1
    - Dst: RESULT
      Src: /src/cpython/Modules/_localemodule.c:379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_localemodule.c:384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 391
    functionName: _locale_localeconv_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetLocaleconvNumeric
    - Py_XDECREF
    - RESULT
    - copy_grouping
    - Py_DECREF
    - RESULT_INT
    - locale_decode_monetary
    - localeconv
    - PyDict_SetItemString
    - PyDict_New
    - RESULT_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_localeconv_impl(PyObject *module)'
  - 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: 320
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: RESULT
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESULT(key, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: GET_LOCALE_STRING
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOCALE_STRING(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: GET_LOCALE_STRING
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOCALE_STRING(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: RESULT_STRING
    functionSourceFile: /src/cpython/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: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: RESULT_INT
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESULT_INT(i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_localemodule.c:413,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_localemodule.c:416,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_localemodule.c:420,1
    - Dst: wcscoll
      Src: /src/cpython/Modules/_localemodule.c:420,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:423,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - os1
    - os2
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 426
    functionName: _locale_strcoll_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyMem_Free
    - wcscoll
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_strcoll_impl(PyObject *module, PyObject *os1, PyObject *os2)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_localemodule.c:449,1
    - Dst: wcslen
      Src: /src/cpython/Modules/_localemodule.c:452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:453,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_localemodule.c:460,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:462,1
    - Dst: wcsxfrm
      Src: /src/cpython/Modules/_localemodule.c:466,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:468,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_localemodule.c:473,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:475,1
    - Dst: wcsxfrm
      Src: /src/cpython/Modules/_localemodule.c:480,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:482,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_localemodule.c:486,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:488,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:489,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - module
    - str
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 491
    functionName: _locale_strxfrm_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyErr_SetString
    - wcslen
    - PyMem_Free
    - PyMem_New
    - PyErr_SetFromErrno
    - PyUnicode_FromWideChar
    - wcsxfrm
    - PyErr_NoMemory
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_strxfrm_impl(PyObject *module, PyObject *str)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_localemodule.c:508,1
    - Dst: GetACP
      Src: /src/cpython/Modules/_localemodule.c:508,1
    - Dst: GetLocaleInfoA
      Src: /src/cpython/Modules/_localemodule.c:510,1
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:513,1
    - Dst: GetLocaleInfoA
      Src: /src/cpython/Modules/_localemodule.c:515,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_localemodule.c:518,1
    - Dst: GetLocaleInfoA
      Src: /src/cpython/Modules/_localemodule.c:527,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_localemodule.c:529,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_localemodule.c:533,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_localemodule.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 535
    functionName: _locale__getdefaultlocale_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_BuildValue
    - strlen
    - PyOS_snprintf
    - GetACP
    - GetLocaleInfoA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale__getdefaultlocale_impl(PyObject *module)'
  - 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: 540
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 540
    functionName: LANGINFO
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LANGINFO(X, Y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:653,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:655,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_localemodule.c:658,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:660,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:665,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_localemodule.c:666,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:667,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - category
    - oldloc
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 674
    functionName: change_locale
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - setlocale
    - PyErr_SetString
    - strcmp
    - PyMem_Free
    - _PyMem_Strdup
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int change_locale(int category, char **oldloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:681,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - oldloc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 684
    functionName: restore_locale
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - setlocale
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void restore_locale(char *oldloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:696,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_localemodule.c:698,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:700,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_localemodule.c:703,1
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:707,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:710,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - result
    - max_count
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 713
    functionName: decode_strings
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyMem_Free
    - PyUnicode_DecodeLocale
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_strings(const char *result, size_t max_count)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nl_langinfo
      Src: /src/cpython/Modules/_localemodule.c:738,1
    - Dst: is_all_ascii
      Src: /src/cpython/Modules/_localemodule.c:752,1
    - Dst: change_locale
      Src: /src/cpython/Modules/_localemodule.c:753,1
    - Dst: decode_strings
      Src: /src/cpython/Modules/_localemodule.c:764,1
    - Dst: decode_strings
      Src: /src/cpython/Modules/_localemodule.c:770,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:776,1
    - Dst: restore_locale
      Src: /src/cpython/Modules/_localemodule.c:778,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:782,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - module
    - item
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 784
    functionName: _locale_nl_langinfo_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - decode_strings
    - PyErr_SetString
    - restore_locale
    - PyUnicode_DecodeLocale
    - change_locale
    - is_all_ascii
    - nl_langinfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_nl_langinfo_impl(PyObject *module, int item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:804,1
    - Dst: gettext
      Src: /src/cpython/Modules/_localemodule.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - in
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 805
    functionName: _locale_gettext_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - gettext
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_gettext_impl(PyObject *module, const char *in)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:823,1
    - Dst: dgettext
      Src: /src/cpython/Modules/_localemodule.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - domain
    - in
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 824
    functionName: _locale_dgettext_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - dgettext
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_dgettext_impl(PyObject *module, const char *domain, const char *in)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:842,1
    - Dst: dcgettext
      Src: /src/cpython/Modules/_localemodule.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - domain
    - msgid
    - category
    argTypes:
    - PyObject*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 843
    functionName: _locale_dcgettext_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - dcgettext
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_locale_dcgettext_impl(PyObject *module, const char *domain,\n
      \                      const char *msgid, int category)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: textdomain
      Src: /src/cpython/Modules/_localemodule.c:858,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:860,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - domain
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 864
    functionName: _locale_textdomain_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyUnicode_DecodeLocale
    - textdomain
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_textdomain_impl(PyObject *module, const char *domain)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:885,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:885,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_localemodule.c:890,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_localemodule.c:892,1
    - Dst: bindtextdomain
      Src: /src/cpython/Modules/_localemodule.c:897,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:899,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_localemodule.c:900,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:903,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_localemodule.c:904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - module
    - domain
    - dirname_obj
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 906
    functionName: _locale_bindtextdomain_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_locale_state
    - strlen
    - PyErr_SetString
    - bindtextdomain
    - PyBytes_AsString
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_locale_bindtextdomain_impl(PyObject *module, const char
      *domain,\n                            PyObject *dirname_obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind_textdomain_codeset
      Src: /src/cpython/Modules/_localemodule.c:925,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - domain
    - codeset
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 930
    functionName: _locale_bind_textdomain_codeset_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - bind_textdomain_codeset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_locale_bind_textdomain_codeset_impl(PyObject *module,
      const char *domain,\n                                     const char *codeset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetLocaleEncodingObject
      Src: /src/cpython/Modules/_localemodule.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 947
    functionName: _locale_getencoding_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetLocaleEncodingObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_getencoding_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:992,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:993,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:994,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:995,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:998,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1001,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1002,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1003,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:1005,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_localemodule.c:1006,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_localemodule.c:1007,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_localemodule.c:1013,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_localemodule.c:1021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 1027
    functionName: _locale_exec
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - get_locale_state
    - PyErr_Occurred
    - PyModule_AddObjectRef
    - ADD_INT
    - PyModule_AddIntConstant
    - PyErr_NewException
    linkageType: ''
    returnType: int
    signature: int _locale_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 991
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(module, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:1039,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_localemodule.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1042
    functionName: locale_traverse
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - get_locale_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int locale_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:1047,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_localemodule.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1050
    functionName: locale_clear
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_locale_state
    linkageType: ''
    returnType: int
    signature: int locale_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: locale_clear
      Src: /src/cpython/Modules/_localemodule.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1052
    functionDepth: 3
    functionLinenumber: 1052
    functionLinenumberEnd: 1056
    functionName: locale_free
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - locale_clear
    linkageType: ''
    returnType: void
    signature: void locale_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_localemodule.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1074
    functionName: PyInit__locale
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__locale(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: clear_global_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - clear_state
    linkageType: ''
    returnType: void
    signature: void clear_global_state(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testsinglephase.c:246,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testsinglephase.c:254,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 15
    functionsReached:
    - PyModule_GetState
    - PyModule_GetDef
    - assert
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      get_module_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:264,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:265,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: clear_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void clear_state(module_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/_testsinglephase.c:274,1
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/_testsinglephase.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - initialized
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 287
    functionName: _set_initialized
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyTime_Monotonic
    linkageType: ''
    returnType: int
    signature: int _set_initialized(PyTime_t *initialized)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:292,1
    - Dst: _set_initialized
      Src: /src/cpython/Modules/_testsinglephase.c:297,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:300,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_testsinglephase.c:303,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testsinglephase.c:308,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testsinglephase.c:313,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:321,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts:
    - condition: "(state->initialized == 0 &&\n           state->error == NULL &&\n
        \          state->int_const == NULL &&\n           state->str_const == NULL)"
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/cpython/Modules/_testsinglephase.c
    - condition: (state->initialized > 0)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 323
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 323
    functionName: init_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - clear_state
    - _set_initialized
    - PyErr_NewException
    - PyLong_FromLong
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: int
    signature: int init_state(module_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testsinglephase.c:329,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testsinglephase.c:332,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testsinglephase.c:335,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_testsinglephase.c:339,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testsinglephase.c:340,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testsinglephase.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 345
    functionName: init_module
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int init_module(PyObject *module, module_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testsinglephase.c:356,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_testsinglephase.c:360,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testsinglephase.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: common_state_initialized
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyTime_AsSecondsDouble
    - get_module_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      common_state_initialized(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testsinglephase.c:377,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:381,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 383
    functionName: common_look_up_self
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyState_FindModule
    - PyModule_GetDef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      common_look_up_self(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testsinglephase.c:401,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testsinglephase.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: common_sum
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      common_sum(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:419,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testsinglephase.c:419,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testsinglephase.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyModule_GetDef(self)->m_size == -1)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: basic_initialized_count
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_GetDef
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      basic_initialized_count(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:436,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testsinglephase.c:436,1
    - Dst: clear_global_state
      Src: /src/cpython/Modules/_testsinglephase.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyModule_GetDef(self)->m_size == -1)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 439
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 439
    functionName: basic__clear_globals
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - clear_global_state
    - PyModule_GetDef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      basic__clear_globals(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testsinglephase.c:453,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 458
    functionName: basic__clear_module_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - clear_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      basic__clear_module_state(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:505,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testsinglephase.c:510,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:515,1
    - Dst: init_state
      Src: /src/cpython/Modules/_testsinglephase.c:516,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:517,1
    - Dst: init_module
      Src: /src/cpython/Modules/_testsinglephase.c:521,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 530
    functionName: init__testsinglephase_basic
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - init_state
    - PyUnstable_Module_SetGIL
    - init_module
    - PyModule_Create
    - Py_CLEAR
    - clear_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      init__testsinglephase_basic(PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init__testsinglephase_basic
      Src: /src/cpython/Modules/_testsinglephase.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: PyInit__testsinglephase
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - init__testsinglephase_basic
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInit__testsinglephase
      Src: /src/cpython/Modules/_testsinglephase.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 539
    functionDepth: 4
    functionLinenumber: 539
    functionLinenumberEnd: 543
    functionName: PyInit__testsinglephase_basic_wrapper
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyInit__testsinglephase
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_basic_wrapper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDoc_STR
      Src: /src/cpython/Modules/_testsinglephase.c:552,1
    - Dst: init__testsinglephase_basic
      Src: /src/cpython/Modules/_testsinglephase.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 557
    functionName: PyInit__testsinglephase_basic_copy
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyDoc_STR
    - init__testsinglephase_basic
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_basic_copy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:599,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testsinglephase.c:604,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:607,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testsinglephase.c:607,1
    - Dst: init_state
      Src: /src/cpython/Modules/_testsinglephase.c:610,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:611,1
    - Dst: init_module
      Src: /src/cpython/Modules/_testsinglephase.c:615,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:616,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (get_module_state(module) == NULL)
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 624
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 624
    functionName: PyInit__testsinglephase_with_reinit
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - init_state
    - PyUnstable_Module_SetGIL
    - init_module
    - PyModule_Create
    - Py_CLEAR
    - clear_state
    - assert
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_with_reinit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:664,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testsinglephase.c:669,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testsinglephase.c:672,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:673,1
    - Dst: init_state
      Src: /src/cpython/Modules/_testsinglephase.c:674,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:675,1
    - Dst: init_module
      Src: /src/cpython/Modules/_testsinglephase.c:679,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:680,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 687
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 687
    functionName: PyInit__testsinglephase_with_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - init_state
    - PyUnstable_Module_SetGIL
    - init_module
    - PyModule_Create
    - Py_CLEAR
    - clear_state
    - assert
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_with_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:707,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:708,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:710,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_testsinglephase_check_cache_first.m_base.m_index == 0)
      pos:
        line_end: 706
        line_start: 706
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: PyInit__testsinglephase_check_cache_first
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyState_FindModule
    - PyModule_Create
    - assert
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_check_cache_first(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:726,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:727,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:729,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_testsinglephase_with_reinit_check_cache_first.m_base.m_index ==
        0)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 732
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 732
    functionName: PyInit__testsinglephase_with_reinit_check_cache_first
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyState_FindModule
    - PyModule_Create
    - assert
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_with_reinit_check_cache_first(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:745,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:746,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:748,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_testsinglephase_with_state_check_cache_first.m_base.m_index ==
        0)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 751
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 751
    functionName: PyInit__testsinglephase_with_state_check_cache_first
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyState_FindModule
    - PyModule_Create
    - assert
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_with_state_check_cache_first(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 766
    functionName: circularmod_clear_static_var
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      circularmod_clear_static_var(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:783,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testsinglephase.c:790,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testsinglephase.c:791,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_testsinglephase.c:795,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 801
    functionName: PyInit__testsinglephase_circular
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - Py_XDECREF
    - PyImport_ImportModule
    - Py_NewRef
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_circular(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:20,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:21,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:23,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:24,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:25,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:26,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:27,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:28,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:29,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:30,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:31,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:32,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:33,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:34,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:35,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:37,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:38,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:39,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:40,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:41,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:42,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:43,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:44,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:45,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:46,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:47,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:48,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 52
    functionName: _types_exec
    functionSourceFile: /src/cpython/Modules/_typesmodule.c
    functionUses: 0
    functionsReached:
    - EXPORT_STATIC_TYPE
    linkageType: ''
    returnType: int
    signature: int _types_exec(PyObject *m)
  - 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: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: EXPORT_STATIC_TYPE
    functionSourceFile: /src/cpython/Modules/_typesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPORT_STATIC_TYPE(NAME, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_typesmodule.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: PyInit__types
    functionSourceFile: /src/cpython/Modules/_typesmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: S_ISBLK
    functionSourceFile: /src/cpython/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: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: S_ISFIFO
    functionSourceFile: /src/cpython/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: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: S_ISLNK
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    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: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: S_ISSOCK
    functionSourceFile: /src/cpython/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: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: S_ISDOOR
    functionSourceFile: /src/cpython/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: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: S_ISPORT
    functionSourceFile: /src/cpython/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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: S_ISWHT
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISWHT(mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_stat.c:298,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_stat.c:299,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/_stat.c:302,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_stat.c:306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_stat.c:307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_stat.c:310,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_stat.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 320
    functionName: _PyLong_AsMode_t
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyLong_AsUnsignedLong
    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: 333
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: stat_S_ISFUNC
    functionSourceFile: /src/cpython/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/cpython/Modules/_stat.c:381,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_stat.c:382,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_stat.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - omode
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: stat_S_IMODE
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyLong_AsMode_t
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      stat_S_IFMT(PyObject *self, PyObject *omode)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/cpython/Modules/_stat.c:407,1
    - Dst: S_ISDIR
      Src: /src/cpython/Modules/_stat.c:408,1
    - Dst: S_ISLNK
      Src: /src/cpython/Modules/_stat.c:409,1
    - Dst: S_ISBLK
      Src: /src/cpython/Modules/_stat.c:411,1
    - Dst: S_ISCHR
      Src: /src/cpython/Modules/_stat.c:412,1
    - Dst: S_ISFIFO
      Src: /src/cpython/Modules/_stat.c:413,1
    - Dst: S_ISSOCK
      Src: /src/cpython/Modules/_stat.c:414,1
    - Dst: S_ISDOOR
      Src: /src/cpython/Modules/_stat.c:416,1
    - Dst: S_ISPORT
      Src: /src/cpython/Modules/_stat.c:417,1
    - Dst: S_ISWHT
      Src: /src/cpython/Modules/_stat.c:418,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - mode
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 421
    functionName: filetype
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - S_ISPORT
    - S_ISDOOR
    - S_ISSOCK
    - S_ISLNK
    - S_ISCHR
    - S_ISFIFO
    - S_ISWHT
    - S_ISBLK
    - S_ISREG
    - S_ISDIR
    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: 447
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 447
    functionName: fileperm
    functionSourceFile: /src/cpython/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/cpython/Modules/_stat.c:458,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_stat.c:459,1
    - Dst: filetype
      Src: /src/cpython/Modules/_stat.c:462,1
    - Dst: fileperm
      Src: /src/cpython/Modules/_stat.c:463,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_stat.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - omode
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: stat_filemode
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - _PyLong_AsMode_t
    - PyUnicode_FromStringAndSize
    - filetype
    - PyErr_Occurred
    - fileperm
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stat_filemode(PyObject *self, PyObject *omode)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:573,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:574,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:575,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:576,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:577,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:578,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:579,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:580,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:581,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:582,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:584,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:585,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:586,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:587,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:589,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:590,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:591,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:593,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:594,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:595,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:596,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:598,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:599,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:600,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:601,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:603,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:604,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:605,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:606,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:608,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:609,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:610,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:611,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:612,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:613,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:614,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:615,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:616,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:617,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:618,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:619,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:620,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:621,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:622,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:623,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:624,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:625,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:628,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:631,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_stat.c:648,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_stat.c:649,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:655,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:656,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:657,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:658,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:659,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:660,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:661,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:662,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:663,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:664,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:665,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:666,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:667,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:668,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:669,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:670,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_stat.c:671,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_stat.c:673,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_stat.c:674,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_stat.c:677,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_stat.c:678,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_stat.c:681,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_stat.c:682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 82
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 688
    functionName: stat_exec
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - ADD_INT_MACRO
    - PyModule_AddIntConstant
    - PyLong_FromUnsignedLong
    - Py_ARRAY_LENGTH
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int stat_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(module, macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_stat.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: PyInit__stat
    functionSourceFile: /src/cpython/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: CTRL
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTRL(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:74,1
    - Dst: assert
      Src: /src/cpython/Modules/termios.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/cpython/Modules/termios.c
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: get_termios_state
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: termiosmodulestate
    signature: 'termiosmodulestate *

      get_termios_state(PyObject *module)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:101,1
    - Dst: memset
      Src: /src/cpython/Modules/termios.c:106,1
    - Dst: tcgetattr
      Src: /src/cpython/Modules/termios.c:108,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:111,1
    - Dst: cfgetispeed
      Src: /src/cpython/Modules/termios.c:114,1
    - Dst: cfgetospeed
      Src: /src/cpython/Modules/termios.c:115,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/termios.c:117,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/termios.c:126,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/termios.c:129,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:136,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/termios.c:140,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:143,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/termios.c:147,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/termios.c:152,1
    - Dst: ADD_LONG_ITEM
      Src: /src/cpython/Modules/termios.c:166,1
    - Dst: ADD_LONG_ITEM
      Src: /src/cpython/Modules/termios.c:167,1
    - Dst: ADD_LONG_ITEM
      Src: /src/cpython/Modules/termios.c:168,1
    - Dst: ADD_LONG_ITEM
      Src: /src/cpython/Modules/termios.c:169,1
    - Dst: ADD_LONG_ITEM
      Src: /src/cpython/Modules/termios.c:170,1
    - Dst: ADD_LONG_ITEM
      Src: /src/cpython/Modules/termios.c:171,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/termios.c:174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/termios.c:177,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 179
    functionName: termios_tcgetattr_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - cfgetospeed
    - PyList_New
    - Py_DECREF
    - PyList_SetItem
    - memset
    - PyBytes_FromStringAndSize
    - PyModule_GetState
    - tcgetattr
    - cfgetispeed
    - PyErr_SetFromErrno
    - ADD_LONG_ITEM
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcgetattr_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: ADD_LONG_ITEM
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_LONG_ITEM(index, val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/termios.c:203,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/termios.c:203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:204,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:210,1
    - Dst: tcgetattr
      Src: /src/cpython/Modules/termios.c:215,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:218,1
    - Dst: SET_FROM_LIST
      Src: /src/cpython/Modules/termios.c:231,1
    - Dst: SET_FROM_LIST
      Src: /src/cpython/Modules/termios.c:232,1
    - Dst: SET_FROM_LIST
      Src: /src/cpython/Modules/termios.c:233,1
    - Dst: SET_FROM_LIST
      Src: /src/cpython/Modules/termios.c:234,1
    - Dst: SET_FROM_LIST
      Src: /src/cpython/Modules/termios.c:235,1
    - Dst: SET_FROM_LIST
      Src: /src/cpython/Modules/termios.c:236,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/termios.c:239,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/termios.c:240,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/termios.c:240,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/termios.c:241,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/termios.c:250,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/termios.c:252,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/termios.c:252,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/termios.c:253,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/termios.c:254,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/termios.c:255,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:256,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:262,1
    - Dst: cfsetispeed
      Src: /src/cpython/Modules/termios.c:268,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:269,1
    - Dst: cfsetospeed
      Src: /src/cpython/Modules/termios.c:270,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:271,1
    - Dst: tcsetattr
      Src: /src/cpython/Modules/termios.c:274,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:278,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - module
    - fd
    - when
    - term
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 281
    functionName: termios_tcsetattr_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - SET_FROM_LIST
    - cfsetispeed
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - cfsetospeed
    - PyList_Check
    - PyBytes_Check
    - PyModule_GetState
    - tcgetattr
    - PyBytes_AsString
    - PyErr_SetFromErrno
    - PyErr_Format
    - PyList_Size
    - PyBytes_Size
    - tcsetattr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsetattr_impl(PyObject *module, int fd, int when, PyObject *term)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TYPE
    - ','
    - VAR
    - ','
    - LIST
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: SET_FROM_LIST
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FROM_LIST(TYPE, VAR, LIST, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:300,1
    - Dst: tcsendbreak
      Src: /src/cpython/Modules/termios.c:304,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - duration
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 312
    functionName: termios_tcsendbreak_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyModule_GetState
    - tcsendbreak
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsendbreak_impl(PyObject *module, int fd, int duration)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:327,1
    - Dst: tcdrain
      Src: /src/cpython/Modules/termios.c:331,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 339
    functionName: termios_tcdrain_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - PyErr_SetFromErrno
    - tcdrain
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcdrain_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:359,1
    - Dst: tcflush
      Src: /src/cpython/Modules/termios.c:363,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - queue
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 371
    functionName: termios_tcflush_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - PyErr_SetFromErrno
    - tcflush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcflush_impl(PyObject *module, int fd, int queue)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:391,1
    - Dst: tcflow
      Src: /src/cpython/Modules/termios.c:395,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - action
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 403
    functionName: termios_tcflow_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - PyErr_SetFromErrno
    - tcflow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcflow_impl(PyObject *module, int fd, int action)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:421,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:426,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:430,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/termios.c:434,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:438,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:438,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:439,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:439,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/termios.c:441,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:446,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:451,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:454,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/termios.c:458,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:462,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:462,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:463,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:463,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/termios.c:465,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 474
    functionName: termios_tcgetwinsize_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyModule_GetState
    - PyErr_SetFromErrno
    - ioctl
    - PyLong_FromLong
    - PyTuple_SetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcgetwinsize_impl(PyObject *module, int fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/termios.c:494,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/termios.c:494,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:495,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/termios.c:502,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/termios.c:503,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:504,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/termios.c:505,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/termios.c:508,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/termios.c:509,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/termios.c:510,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:511,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/termios.c:512,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/termios.c:515,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:517,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:523,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:524,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:530,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:537,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:541,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:550,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:554,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:560,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:566,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:570,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:575,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - module
    - fd
    - winsz
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 579
    functionName: termios_tcsetwinsize_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_XDECREF
    - PySequence_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PySequence_Size
    - PyModule_GetState
    - ioctl
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsetwinsize_impl(PyObject *module, int fd, PyObject *winsz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/termios.c:1332,1
    - Dst: get_termios_state
      Src: /src/cpython/Modules/termios.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1334
    functionName: termiosmodule_traverse
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - get_termios_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int termiosmodule_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/termios.c:1337,1
    - Dst: get_termios_state
      Src: /src/cpython/Modules/termios.c:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1336
    functionDepth: 2
    functionLinenumber: 1336
    functionLinenumberEnd: 1339
    functionName: termiosmodule_clear
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - get_termios_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int termiosmodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: termiosmodule_clear
      Src: /src/cpython/Modules/termios.c:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1341
    functionDepth: 3
    functionLinenumber: 1341
    functionLinenumberEnd: 1343
    functionName: termiosmodule_free
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - termiosmodule_clear
    linkageType: ''
    returnType: void
    signature: void termiosmodule_free(void *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_termios_state
      Src: /src/cpython/Modules/termios.c:1349,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/termios.c:1350,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/termios.c:1351,1
    - Dst: strncmp
      Src: /src/cpython/Modules/termios.c:1356,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/termios.c:1361,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/termios.c:1362,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/termios.c:1367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1375
    functionName: termios_exec
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - strncmp
    - PyModule_AddObjectRef
    - PyModule_AddIntConstant
    - PyErr_NewException
    - PyLong_FromUnsignedLong
    - get_termios_state
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int termios_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/termios.c:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1399
    functionName: PyInit_termios
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: PyLong_FromSocket_t
    functionSourceFile: /src/cpython/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: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: PyLong_AsSocket_t
    functionSourceFile: /src/cpython/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: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: PyLong_FromSocket_t
    functionSourceFile: /src/cpython/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: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: PyLong_AsSocket_t
    functionSourceFile: /src/cpython/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: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: PySocketModule_ImportModuleAndAPI
    functionSourceFile: /src/cpython/Modules/socketmodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySocketModule_ImportModuleAndAPI()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_queuemodule.c:23,1
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: simplequeue_get_state
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: simplequeue_state
    signature: 'simplequeue_state *

      simplequeue_get_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: simplequeue_get_state_by_type
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: simplequeue_get_state_by_type(type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_queuemodule.c:56,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_queuemodule.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: RingBuf_Init
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int RingBuf_Init(RingBuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - idx
    argTypes:
    - RingBuf*
    - Py_ssize_t
    assertStmts:
    - condition: (idx >= 0 && idx < buf->num_items)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: RingBuf_At
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      RingBuf_At(RingBuf *buf, Py_ssize_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_queuemodule.c:84,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_queuemodule.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: RingBuf_Fini
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void RingBuf_Fini(RingBuf *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_queuemodule.c:96,1
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:100,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_queuemodule.c:102,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_queuemodule.c:110,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_queuemodule.c:112,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_queuemodule.c:120,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_queuemodule.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - buf
    - capacity
    argTypes:
    - RingBuf*
    - Py_ssize_t
    assertStmts:
    - condition: (buf->num_items <= new_capacity)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 131
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 131
    functionName: resize_ringbuf
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - PyMem_Calloc
    - Py_MAX
    - memcpy
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int resize_ringbuf(RingBuf *buf, Py_ssize_t capacity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:137,1
    - Dst: resize_ringbuf
      Src: /src/cpython/Modules/_queuemodule.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuf*
    assertStmts:
    - condition: (buf->num_items > 0)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 154
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 154
    functionName: RingBuf_Get
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - resize_ringbuf
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      RingBuf_Get(RingBuf *buf)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:162,1
    - Dst: resize_ringbuf
      Src: /src/cpython/Modules/_queuemodule.c:166,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_queuemodule.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - item
    argTypes:
    - RingBuf*
    - PyObject*
    assertStmts:
    - condition: (buf->num_items <= buf->items_cap)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: RingBuf_Put
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - resize_ringbuf
    - assert
    linkageType: ''
    returnType: int
    signature: int RingBuf_Put(RingBuf *buf, PyObject *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: RingBuf_Len
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t RingBuf_Len(RingBuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: RingBuf_IsEmpty
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RingBuf_IsEmpty(RingBuf *buf)
  - 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: simplequeueobject_CAST
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: simplequeueobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simplequeueobject_CAST
      Src: /src/cpython/Modules/_queuemodule.c:212,1
    - Dst: RingBuf_Fini
      Src: /src/cpython/Modules/_queuemodule.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: simplequeue_clear
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - simplequeueobject_CAST
    - RingBuf_Fini
    linkageType: ''
    returnType: int
    signature: int simplequeue_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simplequeueobject_CAST
      Src: /src/cpython/Modules/_queuemodule.c:220,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_queuemodule.c:221,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_queuemodule.c:223,1
    - Dst: simplequeue_clear
      Src: /src/cpython/Modules/_queuemodule.c:224,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_queuemodule.c:225,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_queuemodule.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_queuemodule.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: simplequeue_dealloc
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - simplequeueobject_CAST
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - Py_TYPE
    - simplequeue_clear
    linkageType: ''
    returnType: void
    signature: void simplequeue_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simplequeueobject_CAST
      Src: /src/cpython/Modules/_queuemodule.c:233,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:236,1
    - Dst: RingBuf_At
      Src: /src/cpython/Modules/_queuemodule.c:236,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_queuemodule.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: simplequeue_traverse
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - simplequeueobject_CAST
    - RingBuf_At
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int simplequeue_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_queuemodule.c:255,1
    - Dst: RingBuf_Init
      Src: /src/cpython/Modules/_queuemodule.c:258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_queuemodule.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: simplequeue_new_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - RingBuf_Init
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simplequeue_new_impl(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - arg
    - park_arg
    - has_more_waiters
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: maybe_handoff_item
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void maybe_handoff_item(void *arg, void *park_arg, int has_more_waiters)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_queuemodule.c:311,1
    - Dst: _PyParkingLot_Unpark
      Src: /src/cpython/Modules/_queuemodule.c:316,1
    - Dst: RingBuf_Put
      Src: /src/cpython/Modules/_queuemodule.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - self
    - item
    - block
    - timeout
    argTypes:
    - simplequeueobject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 325
    functionName: _queue_SimpleQueue_put_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - RingBuf_Put
    - _PyParkingLot_Unpark
    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/cpython/Modules/_queuemodule.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - simplequeueobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: _queue_SimpleQueue_put_nowait_impl
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_queuemodule.c:349,1
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:350,1
    - Dst: simplequeue_get_state
      Src: /src/cpython/Modules/_queuemodule.c:351,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_queuemodule.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: empty_error
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - simplequeue_get_state
    - PyErr_SetNone
    - assert
    - PyType_GetModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      empty_error(PyTypeObject *cls)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_queuemodule.c:386,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_queuemodule.c:389,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_queuemodule.c:394,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_queuemodule.c:398,1
    - Dst: RingBuf_IsEmpty
      Src: /src/cpython/Modules/_queuemodule.c:402,1
    - Dst: RingBuf_Get
      Src: /src/cpython/Modules/_queuemodule.c:403,1
    - Dst: empty_error
      Src: /src/cpython/Modules/_queuemodule.c:407,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_queuemodule.c:412,1
    - Dst: empty_error
      Src: /src/cpython/Modules/_queuemodule.c:414,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Modules/_queuemodule.c:422,1
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:427,1
    - Dst: empty_error
      Src: /src/cpython/Modules/_queuemodule.c:431,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/_queuemodule.c:435,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_queuemodule.c:448,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - self
    - cls
    - block
    - timeout_obj
    argTypes:
    - simplequeueobject*
    - PyTypeObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (item != NULL)
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 452
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 452
    functionName: _queue_SimpleQueue_get_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - _PyDeadline_Init
    - Py_UNREACHABLE
    - Py_MakePendingCalls
    - PyErr_SetString
    - RingBuf_Get
    - _PyParkingLot_Park
    - empty_error
    - _PyDeadline_Get
    - Py_IsNone
    - RingBuf_IsEmpty
    - _PyTime_FromSecondsObject
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_queue_SimpleQueue_get_impl(simplequeueobject *self, PyTypeObject
      *cls,\n                            int block, PyObject *timeout_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queue_SimpleQueue_get_impl
      Src: /src/cpython/Modules/_queuemodule.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - simplequeueobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 473
    functionName: _queue_SimpleQueue_get_nowait_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - _queue_SimpleQueue_get_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_queue_SimpleQueue_get_nowait_impl(simplequeueobject *self,\n
      \                                  PyTypeObject *cls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RingBuf_IsEmpty
      Src: /src/cpython/Modules/_queuemodule.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: _queue_SimpleQueue_empty_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - RingBuf_IsEmpty
    linkageType: ''
    returnType: int
    signature: int _queue_SimpleQueue_empty_impl(simplequeueobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RingBuf_Len
      Src: /src/cpython/Modules/_queuemodule.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: _queue_SimpleQueue_qsize_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - RingBuf_Len
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _queue_SimpleQueue_qsize_impl(simplequeueobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simplequeue_get_state
      Src: /src/cpython/Modules/_queuemodule.c:506,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:507,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: queue_traverse
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - simplequeue_get_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int queue_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simplequeue_get_state
      Src: /src/cpython/Modules/_queuemodule.c:515,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_queuemodule.c:516,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_queuemodule.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 519
    functionName: queue_clear
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 2
    functionsReached:
    - simplequeue_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int queue_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_clear
      Src: /src/cpython/Modules/_queuemodule.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: queue_free
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 2
    functionsReached:
    - queue_clear
    linkageType: ''
    returnType: void
    signature: void queue_free(void *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: simplequeue_get_state
      Src: /src/cpython/Modules/_queuemodule.c:576,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_queuemodule.c:578,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_queuemodule.c:585,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_queuemodule.c:589,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_queuemodule.c:594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 599
    functionName: queuemodule_exec
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyModule_AddObjectRef
    - simplequeue_get_state
    - PyType_FromModuleAndSpec
    - PyErr_NewExceptionWithDoc
    linkageType: ''
    returnType: int
    signature: int queuemodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_queuemodule.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: PyInit__queue
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__queue(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_bz2module.c:28,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 19
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _bz2_state
    signature: '_bz2_state *

      get_module_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_bz2module.c:38,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:39,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_bz2module.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: find_module_state_by_def
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: _bz2_state
    signature: '_bz2_state *

      find_module_state_by_def(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_bz2module.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buffer
    - max_length
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - Py_ssize_t
    - char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: OutputBuffer_InitAndGrow
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 1
    functionsReached:
    - _BlocksOutputBuffer_InitAndGrow
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_InitAndGrow(_BlocksOutputBuffer *buffer, Py_ssize_t
      max_length,\n                         char **next_out, uint32_t *avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Grow
      Src: /src/cpython/Modules/_bz2module.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: OutputBuffer_Grow
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 1
    functionsReached:
    - _BlocksOutputBuffer_Grow
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_Grow(_BlocksOutputBuffer *buffer,\n                  char
      **next_out, uint32_t *avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_GetDataSize
      Src: /src/cpython/Modules/_bz2module.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: OutputBuffer_GetDataSize
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 1
    functionsReached:
    - _BlocksOutputBuffer_GetDataSize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t OutputBuffer_GetDataSize(_BlocksOutputBuffer *buffer, uint32_t
      avail_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Finish
      Src: /src/cpython/Modules/_bz2module.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: OutputBuffer_Finish
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 1
    functionsReached:
    - _BlocksOutputBuffer_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OutputBuffer_Finish(_BlocksOutputBuffer *buffer, uint32_t avail_out)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_OnError
      Src: /src/cpython/Modules/_bz2module.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - _BlocksOutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: OutputBuffer_OnError
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 1
    functionsReached:
    - _BlocksOutputBuffer_OnError
    linkageType: ''
    returnType: void
    signature: void OutputBuffer_OnError(_BlocksOutputBuffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: ACQUIRE_LOCK
    functionSourceFile: /src/cpython/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: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: RELEASE_LOCK
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE_LOCK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: _BZ2Compressor_CAST
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BZ2Compressor_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: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: _BZ2Decompressor_CAST
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BZ2Decompressor_CAST(op)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:155,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_bz2module.c:160,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:167,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:175,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_bz2module.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - bzerror
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: catch_bz2_error
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_NoMemory
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int catch_bz2_error(int bzerror)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_bz2module.c:195,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_bz2module.c:207,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_bz2module.c:216,1
    - Dst: BZ2_bzCompress
      Src: /src/cpython/Modules/_bz2module.c:222,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:225,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_bz2module.c:233,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_bz2module.c:239,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - c
    - data
    - len
    - action
    argTypes:
    - BZ2Compressor*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 241
    functionName: compress
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - OutputBuffer_Finish
    - BZ2_bzCompress
    - catch_bz2_error
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - OutputBuffer_InitAndGrow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress(BZ2Compressor *c, char *data, size_t len, int action)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/cpython/Modules/_bz2module.c:274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:276,1
    - Dst: compress
      Src: /src/cpython/Modules/_bz2module.c:278,1
    - Dst: RELEASE_LOCK
      Src: /src/cpython/Modules/_bz2module.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - BZ2Compressor*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 281
    functionName: _bz2_BZ2Compressor_compress_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - compress
    - ACQUIRE_LOCK
    - PyErr_SetString
    - RELEASE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_compress_impl(BZ2Compressor *self, Py_buffer *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/cpython/Modules/_bz2module.c:299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:301,1
    - Dst: compress
      Src: /src/cpython/Modules/_bz2module.c:304,1
    - Dst: RELEASE_LOCK
      Src: /src/cpython/Modules/_bz2module.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - BZ2Compressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: _bz2_BZ2Compressor_flush_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - compress
    - ACQUIRE_LOCK
    - PyErr_SetString
    - RELEASE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_flush_impl(BZ2Compressor *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_bz2module.c:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - items
    - size
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: BZ2_Malloc
    functionSourceFile: /src/cpython/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/cpython/Modules/_bz2module.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: BZ2_Free
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void BZ2_Free(void* ctx, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:349,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:354,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_bz2module.c:355,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_bz2module.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:362,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:363,1
    - Dst: BZ2_bzCompressInit
      Src: /src/cpython/Modules/_bz2module.c:370,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - type
    - compresslevel
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 379
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 379
    functionName: _bz2_BZ2Compressor_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - BZ2_bzCompressInit
    - PyThread_allocate_lock
    - PyErr_SetString
    - catch_bz2_error
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_impl(PyTypeObject *type, int compresslevel)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _BZ2Compressor_CAST
      Src: /src/cpython/Modules/_bz2module.c:384,1
    - Dst: BZ2_bzCompressEnd
      Src: /src/cpython/Modules/_bz2module.c:385,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_bz2module.c:387,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bz2module.c:389,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_bz2module.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 392
    functionName: BZ2Compressor_dealloc
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - _BZ2Compressor_CAST
    - Py_DECREF
    - PyTypeObject*::tp_free
    - BZ2_bzCompressEnd
    - PyThread_free_lock
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void BZ2Compressor_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_bz2module.c:397,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bz2module.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: BZ2Compressor_traverse
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int BZ2Compressor_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_bz2module.c:443,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_bz2module.c:453,1
    - Dst: BZ2_bzDecompress
      Src: /src/cpython/Modules/_bz2module.c:457,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:462,1
    - Dst: OutputBuffer_GetDataSize
      Src: /src/cpython/Modules/_bz2module.c:470,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_bz2module.c:473,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_bz2module.c:479,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_bz2module.c:485,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - d
    - max_length
    argTypes:
    - BZ2Decompressor*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 487
    functionName: decompress_buf
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - OutputBuffer_Finish
    - OutputBuffer_GetDataSize
    - catch_bz2_error
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - BZ2_bzDecompress
    - OutputBuffer_InitAndGrow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress_buf(BZ2Decompressor *d, Py_ssize_t max_length)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_bz2module.c:517,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_bz2module.c:519,1
    - Dst: memmove
      Src: /src/cpython/Modules/_bz2module.c:528,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_bz2module.c:532,1
    - Dst: decompress_buf
      Src: /src/cpython/Modules/_bz2module.c:542,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_bz2module.c:551,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_bz2module.c:552,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_bz2module.c:573,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_bz2module.c:579,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_bz2module.c:581,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_bz2module.c:588,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_bz2module.c:596,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: 598
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 598
    functionName: decompress
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - Py_XDECREF
    - memmove
    - PyBytes_FromStringAndSize
    - PyErr_SetNone
    - Py_XSETREF
    - memcpy
    - PyMem_Free
    - decompress_buf
    - PyMem_Malloc
    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/cpython/Modules/_bz2module.c:630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:632,1
    - Dst: decompress
      Src: /src/cpython/Modules/_bz2module.c:634,1
    - Dst: RELEASE_LOCK
      Src: /src/cpython/Modules/_bz2module.c:635,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: 637
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: _bz2_BZ2Decompressor_decompress_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - PyErr_SetString
    - decompress
    - RELEASE_LOCK
    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: assert
      Src: /src/cpython/Modules/_bz2module.c:655,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_bz2module.c:656,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_bz2module.c:661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:664,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_bz2module.c:672,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/cpython/Modules/_bz2module.c:676,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:683,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 654
        line_start: 654
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 685
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 685
    functionName: _bz2_BZ2Decompressor_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - catch_bz2_error
    - BZ2_bzDecompressInit
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Decompressor_impl(PyTypeObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _BZ2Decompressor_CAST
      Src: /src/cpython/Modules/_bz2module.c:690,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_bz2module.c:693,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/cpython/Modules/_bz2module.c:695,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bz2module.c:696,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_bz2module.c:698,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bz2module.c:701,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_bz2module.c:702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 704
    functionName: BZ2Decompressor_dealloc
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - BZ2_bzDecompressEnd
    - Py_DECREF
    - _BZ2Decompressor_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyThread_free_lock
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void BZ2Decompressor_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_bz2module.c:709,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bz2module.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 711
    functionName: BZ2Decompressor_traverse
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int BZ2Decompressor_traverse(PyObject *self, visitproc visit, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_bz2module.c:763,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_bz2module.c:764,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_bz2module.c:769,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_bz2module.c:773,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_bz2module.c:778,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 783
    functionName: _bz2_exec
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    - get_module_state
    linkageType: ''
    returnType: int
    signature: int _bz2_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_bz2module.c:788,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_bz2module.c:789,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_bz2module.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 792
    functionName: _bz2_traverse
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _bz2_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_bz2module.c:797,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bz2module.c:798,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bz2module.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: _bz2_clear
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _bz2_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bz2_clear
      Src: /src/cpython/Modules/_bz2module.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: _bz2_free
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - _bz2_clear
    linkageType: ''
    returnType: void
    signature: void _bz2_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_bz2module.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 830
    functionName: PyInit__bz2
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__bz2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_functoolsmodule.c:40,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: get_functools_state
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _functools_state
    signature: '_functools_state *

      get_functools_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_functoolsmodule.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: placeholder_repr
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      placeholder_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_functoolsmodule.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: placeholder_reduce
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      placeholder_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_functoolsmodule.c:82,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:83,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:84,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: placeholder_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void placeholder_dealloc(PyObject* self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:91,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:91,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:92,1
    - Dst: get_functools_state_by_type
      Src: /src/cpython/Modules/_functoolsmodule.c:95,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:97,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Modules/_functoolsmodule.c:100,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: placeholder_new
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_functools_state_by_type
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyType_GenericNew
    - PyErr_SetString
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      placeholder_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:114,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: placeholder_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int placeholder_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: partialobject_CAST
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: partialobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_functoolsmodule.c:159,1
    - Dst: get_functools_state
      Src: /src/cpython/Modules/_functoolsmodule.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: get_functools_state_by_type
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 1
    functionsReached:
    - PyType_GetModuleByDef
    - get_functools_state
    linkageType: ''
    returnType: _functools_state
    signature: '_functools_state *

      get_functools_state_by_type(PyTypeObject *type)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:173,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:176,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:180,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:182,1
    - Dst: get_functools_state_by_type
      Src: /src/cpython/Modules/_functoolsmodule.c:187,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:194,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:195,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:204,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:206,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_functoolsmodule.c:215,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:227,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:227,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:228,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:228,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_functoolsmodule.c:233,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:237,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_functoolsmodule.c:240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:242,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:249,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:255,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:261,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:264,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:266,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:272,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:275,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:280,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Modules/_functoolsmodule.c:287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:291,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:294,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:294,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:297,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_functoolsmodule.c:299,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_functoolsmodule.c:301,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:302,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:305,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:309,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Modules/_functoolsmodule.c:311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:318,1
    - Dst: partial_setvectorcall
      Src: /src/cpython/Modules/_functoolsmodule.c:322,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 115
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyDict_Check(pto_kw))
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(pto_args))
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 324
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 324
    functionName: partial_new
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTypeObject*::tp_alloc
    - PyTuple_GetSlice
    - Py_INCREF
    - get_functools_state_by_type
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - PyTuple_New
    - PyDict_Copy
    - PyTuple_GET_ITEM
    - partial_setvectorcall
    - PyDict_Check
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_Check
    - PyCallable_Check
    - Py_NewRef
    - PySequence_Concat
    - PyTuple_SET_ITEM
    - PyDict_Next
    - PyDict_Merge
    - PyDict_New
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:329,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:330,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:331,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:332,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: partial_clear
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - partialobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int partial_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:340,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:341,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:341,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:342,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:343,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:344,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: partial_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - partialobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int partial_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:352,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_functoolsmodule.c:354,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_functoolsmodule.c:355,1
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:355,1
    - Dst: partial_clear
      Src: /src/cpython/Modules/_functoolsmodule.c:356,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: partial_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - partial_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - partialobject_CAST
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void partial_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:365,1
    - Dst: PyMethod_New
      Src: /src/cpython/Modules/_functoolsmodule.c:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: partial_descr_get
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:374,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_functoolsmodule.c:375,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_functoolsmodule.c:376,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:381,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_functoolsmodule.c:387,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:388,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:389,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:390,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Modules/_functoolsmodule.c:397,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Modules/_functoolsmodule.c:407,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_functoolsmodule.c:434,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_functoolsmodule.c:438,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_functoolsmodule.c:440,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:449,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:460,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_functoolsmodule.c:462,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:464,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_functoolsmodule.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:470,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:484,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:486,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:490,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:491,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:497,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:498,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:499,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:499,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:503,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:504,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_functoolsmodule.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:512,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_functoolsmodule.c:514,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_functoolsmodule.c:516,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:534,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:537,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:541,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:542,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Modules/_functoolsmodule.c:545,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_functoolsmodule.c:548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:551,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_functoolsmodule.c:557,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 4
    argNames:
    - self
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (i < pto_nkwds)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (j == pto_phcount)
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (i == pto_nkwds)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 560
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 560
    functionName: partial_vectorcall
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_Contains
    - _PyThreadState_GET
    - PyMem_Free
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - partialobject_CAST
    - PyDict_Copy
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyVectorcall_NARGS
    - PyMem_Realloc
    - PyDict_GET_SIZE
    - Py_DECREF
    - Py_NewRef
    - _PyObject_VectorcallTstate
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyDict_SetItem
    - PyTuple_SET_ITEM
    - PyDict_Next
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npartial_vectorcall(PyObject *self, PyObject *const *args,\n
      \                  size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_Function
      Src: /src/cpython/Modules/_functoolsmodule.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pto
    argTypes:
    - partialobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 576
    functionName: partial_setvectorcall
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 1
    functionsReached:
    - PyVectorcall_Function
    linkageType: ''
    returnType: void
    signature: void partial_setvectorcall(partialobject *pto)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:583,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:584,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:584,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:585,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:585,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:586,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:586,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:588,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:591,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:599,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:601,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:607,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Modules/_functoolsmodule.c:613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:614,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:623,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:625,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:626,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:628,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:635,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:637,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:640,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:641,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:643,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:645,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:646,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:647,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Modules/_functoolsmodule.c:653,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:655,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:661,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:662,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(pto->kw))
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyCallable_Check(pto->fn))
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (tot_nargs >= 0)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (j == pto_phcount)
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 664
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 664
    functionName: partial_call
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - partialobject_CAST
    - PyDict_Copy
    - PyObject_Call
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - PyErr_Format
    - PyDict_Check
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyCallable_Check
    - PySequence_Concat
    - PyTuple_SET_ITEM
    - PyDict_Merge
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_call(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 672
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:696,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_functoolsmodule.c:705,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_functoolsmodule.c:709,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_functoolsmodule.c:712,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:716,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:716,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:717,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:719,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_functoolsmodule.c:719,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:720,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:725,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:725,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:726,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:728,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:729,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_functoolsmodule.c:729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:731,1
    - Dst: PyType_GetModuleName
      Src: /src/cpython/Modules/_functoolsmodule.c:736,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:736,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Modules/_functoolsmodule.c:740,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:740,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:742,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_functoolsmodule.c:745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:748,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_functoolsmodule.c:751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:754,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_functoolsmodule.c:755,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyDict_Check(pto->kw))
      pos:
        line_end: 724
        line_start: 724
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 757
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 757
    functionName: partial_repr
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_SIZE
    - Py_ReprEnter
    - Py_DECREF
    - Py_ReprLeave
    - Py_GetConstant
    - PyTuple_Check
    - partialobject_CAST
    - PyUnicode_FromFormat
    - PyType_GetQualName
    - PyDict_Next
    - PyType_GetModuleName
    - Py_SETREF
    - PyTuple_GET_ITEM
    - PyDict_Check
    - Py_TYPE
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:769,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_functoolsmodule.c:770,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: partial_reduce
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - partialobject_CAST
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_reduce(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:778,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:781,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:782,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_functoolsmodule.c:785,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:786,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:787,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:788,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:790,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:794,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:795,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:796,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:803,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:808,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_functoolsmodule.c:809,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:811,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_functoolsmodule.c:816,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:817,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:818,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:822,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:829,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:830,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:830,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:831,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:832,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:834,1
    - Dst: partial_setvectorcall
      Src: /src/cpython/Modules/_functoolsmodule.c:835,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 837
    functionName: partial_setstate
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_SETREF
    - PyTuple_CheckExact
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyDict_CheckExact
    - partialobject_CAST
    - PyDict_Copy
    - PyTuple_GET_ITEM
    - partial_setvectorcall
    - PyDict_Check
    - Py_DECREF
    - PyTuple_Check
    - PySequence_Tuple
    - PyCallable_Check
    - Py_NewRef
    - PyArg_ParseTuple
    - PyDict_New
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_setstate(PyObject *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 884
    functionName: keyobject_CAST
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: keyobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:888,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:889,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 892
    functionName: keyobject_clear
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - keyobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int keyobject_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:897,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_functoolsmodule.c:898,1
    - Dst: keyobject_clear
      Src: /src/cpython/Modules/_functoolsmodule.c:899,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ko
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 902
    functionName: keyobject_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - keyobject_clear
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void keyobject_dealloc(PyObject *ko)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:907,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:908,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:908,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:909,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 912
    functionName: keyobject_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - keyobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int keyobject_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_functoolsmodule.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: keyobject_text_signature
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keyobject_text_signature(PyObject *Py_UNUSED(self), void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:964,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_functoolsmodule.c:966,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_functoolsmodule.c:969,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:969,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:973,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:974,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_functoolsmodule.c:975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 977
    functionName: keyobject_call
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    - keyobject_CAST
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keyobject_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:982,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:982,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:983,1
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:987,1
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:988,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:991,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:995,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_functoolsmodule.c:1003,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/_functoolsmodule.c:1008,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_functoolsmodule.c:1008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1009,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (compare != NULL)
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1011
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 1011
    functionName: keyobject_richcompare
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_DECREF
    - PyObject_Vectorcall
    - PyObject_RichCompare
    - Py_IS_TYPE
    - keyobject_CAST
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keyobject_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_functools_state
      Src: /src/cpython/Modules/_functoolsmodule.c:1029,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1030,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1033,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_functoolsmodule.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - mycmp
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1037
    functionName: _functools_cmp_to_key_impl
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - get_functools_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _functools_cmp_to_key_impl(PyObject *module, PyObject *mycmp)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1069,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_functoolsmodule.c:1071,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_functoolsmodule.c:1073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1074,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1076,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1080,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_functoolsmodule.c:1086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1087,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1088,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:1092,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_functoolsmodule.c:1094,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1103,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_functoolsmodule.c:1103,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1104,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_functoolsmodule.c:1104,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1105,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_functoolsmodule.c:1105,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1106,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/_functoolsmodule.c:1111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1121,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1125,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1127,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - module
    - func
    - seq
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(args) == 1)
      pos:
        line_end: 1102
        line_start: 1102
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1129
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1129
    functionName: _functools_reduce_impl
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - _PyTuple_ITEMS
    - _PyTuple_Recycle
    - PyErr_Occurred
    - PyObject_GetIter
    - PyErr_SetString
    - PyIter_Next
    - PyErr_ExceptionMatches
    - PyObject_Call
    - Py_XSETREF
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_functools_reduce_impl(PyObject *module, PyObject *func,
      PyObject *seq,\n                       PyObject *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1163
    functionName: lru_list_elem_CAST
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lru_list_elem_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_list_elem_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:1167,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1168,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1169,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1170,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:1171,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1173
    functionName: lru_list_elem_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - lru_list_elem_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void lru_list_elem_dealloc(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: 1209
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1209
    functionName: lru_cache_object_CAST
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lru_cache_object_CAST(op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1217,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1221,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1222,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:1223,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:1223,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1226,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1229,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1232,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1236,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1238,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1243,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1244,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1245,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1245,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1248,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1248,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:1249,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1250,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1250,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1251,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1251,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1253,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1253,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1256,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1257,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1257,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1258,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1258,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:1261,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1262,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1263,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1263,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1267,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - kwd_mark
    - args
    - kwds
    - typed
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (key_pos == PyTuple_GET_SIZE(args) + kwds_size * 2 + 1)
      pos:
        line_end: 1252
        line_start: 1252
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (key_pos == key_size)
      pos:
        line_end: 1266
        line_start: 1266
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1269
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1269
    functionName: lru_cache_make_key
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyUnicode_CheckExact
    - PyTuple_SET_ITEM
    - PyDict_Next
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyLong_CheckExact
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlru_cache_make_key(PyObject *kwd_mark, PyObject *args,\n
      \                  PyObject *kwds, int typed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1276,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1281
    functionName: uncached_lru_cache_wrapper
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_ADD_SSIZE
    - 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/cpython/Modules/_functoolsmodule.c:1288,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_functoolsmodule.c:1291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1293,1
    - Dst: _PyDict_GetItemRef_KnownHash
      Src: /src/cpython/Modules/_functoolsmodule.c:1296,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1303,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1306,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1309,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_functoolsmodule.c:1312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1319
    functionName: infinite_lru_cache_wrapper
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_ADD_SSIZE
    - Py_DECREF
    - _PyDict_GetItemRef_KnownHash
    - lru_cache_make_key
    - PyObject_Call
    - PyObject_Hash
    - _PyDict_SetItem_KnownHash
    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: 1328
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1328
    functionName: lru_cache_extract_link
    functionSourceFile: /src/cpython/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: 1338
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1338
    functionName: lru_cache_append_link
    functionSourceFile: /src/cpython/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: 1348
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1348
    functionName: lru_cache_prepend_link
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lru_cache_prepend_link(lru_cache_object *self, lru_list_elem *link)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_functoolsmodule.c:1385,1
    - Dst: lru_cache_make_key
      Src: /src/cpython/Modules/_functoolsmodule.c:1388,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_functoolsmodule.c:1391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1393,1
    - Dst: _PyDict_GetItemRef_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1396,1
    - Dst: lru_cache_extract_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1399,1
    - Dst: lru_cache_append_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1400,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1402,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1404,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1409,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - self
    - args
    - kwds
    - result
    - key
    - hash
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    - PyObject**
    - PyObject**
    - Py_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1381
    functionDepth: 2
    functionLinenumber: 1381
    functionLinenumberEnd: 1414
    functionName: bounded_lru_cache_get_lock_held
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_ADD_SSIZE
    - Py_INCREF
    - Py_DECREF
    - lru_cache_append_link
    - lru_cache_extract_link
    - _PyDict_GetItemRef_KnownHash_LockHeld
    - lru_cache_make_key
    - PyObject_Hash
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: "int bounded_lru_cache_get_lock_held(lru_cache_object *self, PyObject
      *args, PyObject *kwds,\n                                PyObject **result, PyObject
      **key, Py_hash_t *hash)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_functoolsmodule.c:1420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1426,1
    - Dst: _PyDict_GetItemRef_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1445,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1452,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1453,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1461,1
    - Dst: _PyDict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1475,1
    - Dst: lru_cache_append_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1478,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1479,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1496,1
    - Dst: lru_cache_extract_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1498,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/cpython/Modules/_functoolsmodule.c:1503,1
    - Dst: lru_cache_prepend_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1513,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1523,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1531,1
    - Dst: _PyDict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1551,1
    - Dst: lru_cache_append_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1554,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 70
    argCount: 4
    argNames:
    - self
    - result
    - key
    - hash
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (self->maxsize > 0)
      pos:
        line_end: 1451
        line_start: 1451
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (popresult == NULL)
      pos:
        line_end: 1520
        line_start: 1520
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (self->root.next != &self->root)
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (popresult != NULL)
      pos:
        line_end: 1530
        line_start: 1530
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1560
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1560
    functionName: bounded_lru_cache_update_lock_held
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_KnownHash_LockHeld
    - Py_INCREF
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyObject_New
    - lru_cache_append_link
    - lru_cache_extract_link
    - _PyDict_GetItemRef_KnownHash_LockHeld
    - Py_NewRef
    - _PyDict_Pop_KnownHash
    - lru_cache_prepend_link
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbounded_lru_cache_update_lock_held(lru_cache_object *self,\n
      \                                  PyObject *result, PyObject *key, Py_hash_t
      hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:1569,1
    - Dst: bounded_lru_cache_get_lock_held
      Src: /src/cpython/Modules/_functoolsmodule.c:1570,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:1571,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1580,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:1582,1
    - Dst: bounded_lru_cache_update_lock_held
      Src: /src/cpython/Modules/_functoolsmodule.c:1587,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:1588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1591
    functionName: bounded_lru_cache_wrapper
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bounded_lru_cache_get_lock_held
    - PyObject_Call
    - bounded_lru_cache_update_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bounded_lru_cache_wrapper(lru_cache_object *self, PyObject *args, PyObject *kwds)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_functoolsmodule.c:1605,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:1611,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1612,1
    - Dst: get_functools_state_by_type
      Src: /src/cpython/Modules/_functoolsmodule.c:1617,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:1627,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_functoolsmodule.c:1628,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_functoolsmodule.c:1629,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1639,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1643,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_functoolsmodule.c:1646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1648,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1657,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1660,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1661,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1662,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1593
    functionDepth: 3
    functionLinenumber: 1593
    functionLinenumberEnd: 1666
    functionName: lru_cache_new
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_functools_state_by_type
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyErr_Occurred
    - PyErr_SetString
    - PyCallable_Check
    - PyArg_ParseTupleAndKeywords
    - PyNumber_AsSsize_t
    - Py_NewRef
    - PyDict_New
    - PyIndex_Check
    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: 1678
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1678
    functionName: lru_cache_unlink_list
    functionSourceFile: /src/cpython/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_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - lru_list_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1687
    functionName: lru_cache_clear_list
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    linkageType: ''
    returnType: void
    signature: void lru_cache_clear_list(lru_list_elem *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_object_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:1692,1
    - Dst: lru_cache_unlink_list
      Src: /src/cpython/Modules/_functoolsmodule.c:1693,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1694,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1695,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1696,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1697,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1698,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1699,1
    - Dst: lru_cache_clear_list
      Src: /src/cpython/Modules/_functoolsmodule.c:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1702
    functionName: lru_cache_tp_clear
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_object_CAST
    - lru_cache_clear_list
    - Py_CLEAR
    - lru_cache_unlink_list
    linkageType: ''
    returnType: int
    signature: int lru_cache_tp_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_object_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:1707,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1708,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_functoolsmodule.c:1710,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_functoolsmodule.c:1711,1
    - Dst: lru_cache_tp_clear
      Src: /src/cpython/Modules/_functoolsmodule.c:1713,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:1714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1704
    functionDepth: 3
    functionLinenumber: 1704
    functionLinenumberEnd: 1716
    functionName: lru_cache_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_object_CAST
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - lru_cache_tp_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void lru_cache_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_object_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:1721,1
    - Dst: lru_cache_object*::wrapper
      Src: /src/cpython/Modules/_functoolsmodule.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1718
    functionDepth: 1
    functionLinenumber: 1718
    functionLinenumberEnd: 1725
    functionName: lru_cache_call
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_object*::wrapper
    - lru_cache_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_call(PyObject *op, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1731,1
    - Dst: PyMethod_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1734
    functionName: lru_cache_descr_get
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_functoolsmodule.c:1749,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1750,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1751,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1753,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_functoolsmodule.c:1755,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1756,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1757,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1760
    functionName: _functools__lru_cache_wrapper_cache_info_impl
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _functools__lru_cache_wrapper_cache_info_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_unlink_list
      Src: /src/cpython/Modules/_functoolsmodule.c:1774,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1775,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1776,1
    - Dst: _PyDict_Clear_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1780,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Modules/_functoolsmodule.c:1782,1
    - Dst: lru_cache_clear_list
      Src: /src/cpython/Modules/_functoolsmodule.c:1784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1769
    functionDepth: 2
    functionLinenumber: 1769
    functionLinenumberEnd: 1786
    functionName: _functools__lru_cache_wrapper_cache_clear_impl
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyDict_Clear
    - lru_cache_unlink_list
    - lru_cache_clear_list
    - _PyDict_Clear_LockHeld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _functools__lru_cache_wrapper_cache_clear_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_functoolsmodule.c:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1792
    functionName: lru_cache_reduce
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_reduce(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1798
    functionName: lru_cache_copy
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_copy(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1804
    functionName: lru_cache_deepcopy
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_deepcopy(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_object_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:1809,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1810,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1810,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1814,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1815,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1816,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1816,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1819,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1820,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1821,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1822,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1823,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1806
    functionDepth: 1
    functionLinenumber: 1806
    functionLinenumberEnd: 1826
    functionName: lru_cache_tp_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_object_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int lru_cache_tp_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_functools_state
      Src: /src/cpython/Modules/_functoolsmodule.c:1904,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_functoolsmodule.c:1905,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1910,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_functoolsmodule.c:1915,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_functoolsmodule.c:1919,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1927,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1929,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_functoolsmodule.c:1934,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1938,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_functoolsmodule.c:1943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1947,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1949,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1957,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1966
    functionName: _functools_exec
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - _PyObject_CallNoArgs
    - PyObject_CallNoArgs
    - Py_DECREF
    - get_functools_state
    - PyModule_AddObjectRef
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int _functools_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_functools_state
      Src: /src/cpython/Modules/_functoolsmodule.c:1971,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1972,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1973,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1974,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1975,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1976,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1968
    functionDepth: 2
    functionLinenumber: 1968
    functionLinenumberEnd: 1979
    functionName: _functools_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_functools_state
    linkageType: ''
    returnType: int
    signature: int _functools_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_functools_state
      Src: /src/cpython/Modules/_functoolsmodule.c:1984,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1985,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1986,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1987,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1988,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1989,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1992
    functionName: _functools_clear
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_functools_state
    linkageType: ''
    returnType: int
    signature: int _functools_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _functools_clear
      Src: /src/cpython/Modules/_functoolsmodule.c:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1994
    functionDepth: 3
    functionLinenumber: 1994
    functionLinenumberEnd: 1998
    functionName: _functools_free
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _functools_clear
    linkageType: ''
    returnType: void
    signature: void _functools_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_functoolsmodule.c:2022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2023
    functionName: PyInit__functools
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__functools(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buffer
    - max_length
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - Py_ssize_t
    - Bytef**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: OutputBuffer_InitAndGrow
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 4
    functionsReached:
    - _BlocksOutputBuffer_InitAndGrow
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_InitAndGrow(_BlocksOutputBuffer *buffer, Py_ssize_t
      max_length,\n                         Bytef **next_out, uint32_t *avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - Bytef**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: OutputBuffer_Grow
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 4
    functionsReached:
    - _BlocksOutputBuffer_Grow
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_Grow(_BlocksOutputBuffer *buffer,\n                  Bytef
      **next_out, uint32_t *avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_GetDataSize
      Src: /src/cpython/Modules/zlibmodule.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: OutputBuffer_GetDataSize
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 3
    functionsReached:
    - _BlocksOutputBuffer_GetDataSize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t OutputBuffer_GetDataSize(_BlocksOutputBuffer *buffer, uint32_t
      avail_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: OutputBuffer_Finish
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 4
    functionsReached:
    - _BlocksOutputBuffer_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OutputBuffer_Finish(_BlocksOutputBuffer *buffer, uint32_t avail_out)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - _BlocksOutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: OutputBuffer_OnError
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 4
    functionsReached:
    - _BlocksOutputBuffer_OnError
    linkageType: ''
    returnType: void
    signature: void OutputBuffer_OnError(_BlocksOutputBuffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_InitWithSize
      Src: /src/cpython/Modules/zlibmodule.c:112,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/zlibmodule.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - buffer
    - window
    - init_size
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - _Uint32Window*
    - Py_ssize_t
    - Bytef**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: OutputBuffer_WindowInitWithSize
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - _BlocksOutputBuffer_InitWithSize
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_WindowInitWithSize(_BlocksOutputBuffer *buffer,
      _Uint32Window *window,\n                                Py_ssize_t init_size,\n
      \                               Bytef **next_out, uint32_t *avail_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:139,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/zlibmodule.c:146,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:156,1
    - Dst: _BlocksOutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - buffer
    - window
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - _Uint32Window*
    - Bytef**
    - uint32_t*
    assertStmts:
    - condition: (window->left_bytes == 0)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 163
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 163
    functionName: OutputBuffer_WindowGrow
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - _BlocksOutputBuffer_Grow
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_WindowGrow(_BlocksOutputBuffer *buffer, _Uint32Window
      *window,\n                        Bytef **next_out, uint32_t *avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - window
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - _Uint32Window*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: OutputBuffer_WindowFinish
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _BlocksOutputBuffer_Finish
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nOutputBuffer_WindowFinish(_BlocksOutputBuffer *buffer,
      _Uint32Window *window,\n                          uint32_t avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - window
    argTypes:
    - _BlocksOutputBuffer*
    - _Uint32Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: OutputBuffer_WindowOnError
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _BlocksOutputBuffer_OnError
    linkageType: ''
    returnType: void
    signature: void OutputBuffer_WindowOnError(_BlocksOutputBuffer *buffer, _Uint32Window
      *window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: ENTER_ZLIB
    functionSourceFile: /src/cpython/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: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: LEAVE_ZLIB
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_ZLIB(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/zlibmodule.c:217,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: get_zlib_state
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: zlibstate
    signature: 'zlibstate *

      get_zlib_state(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: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: _compobject_CAST
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _compobject_CAST(op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/zlibmodule.c:260,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/zlibmodule.c:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - state
    - zst
    - err
    - msg
    argTypes:
    - zlibstate*
    - z_stream
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 263
    functionName: zlib_error
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void zlib_error(zlibstate *state, z_stream zst, int err, const char
      *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/zlibmodule.c:276,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/zlibmodule.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:284,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/zlibmodule.c:287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:289,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/zlibmodule.c:292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:294,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 299
    functionName: newcompobject
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyThread_allocate_lock
    - Py_GetConstant
    - PyObject_New
    - PyErr_SetString
    linkageType: ''
    returnType: compobject
    signature: 'compobject *

      newcompobject(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/zlibmodule.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - items
    - size
    argTypes:
    - voidpf
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: PyZlib_Malloc
    functionSourceFile: /src/cpython/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/cpython/Modules/zlibmodule.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - voidpf
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: PyZlib_Free
    functionSourceFile: /src/cpython/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/cpython/Modules/zlibmodule.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zst
    - remains
    argTypes:
    - z_stream*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: arrange_input_buffer
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    linkageType: ''
    returnType: void
    signature: void arrange_input_buffer(z_stream *zst, Py_ssize_t *remains)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:347,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:352,1
    - Dst: deflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:360,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:367,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:371,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:374,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:375,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:380,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:385,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:386,1
    - Dst: deflate
      Src: /src/cpython/Modules/zlibmodule.c:392,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:396,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:397,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:402,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:405,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:407,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:409,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:416,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:418,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 4
    argNames:
    - module
    - data
    - level
    - wbits
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    assertStmts:
    - condition: (err == Z_STREAM_END)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/cpython/Modules/zlibmodule.c
    - condition: (zst.avail_in == 0)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 420
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 420
    functionName: zlib_compress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - OutputBuffer_Finish
    - PyErr_SetString
    - arrange_input_buffer
    - get_zlib_state
    - deflate
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - deflateEnd
    - deflateInit2
    - OutputBuffer_InitAndGrow
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compress_impl(PyObject *module, Py_buffer *data, int level, int wbits)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:449,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:452,1
    - Dst: OutputBuffer_WindowInitWithSize
      Src: /src/cpython/Modules/zlibmodule.c:458,1
    - Dst: inflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:471,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:477,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:481,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:482,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:487,1
    - Dst: OutputBuffer_WindowGrow
      Src: /src/cpython/Modules/zlibmodule.c:492,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:494,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:500,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:510,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:514,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:515,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:525,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:526,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:530,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:532,1
    - Dst: OutputBuffer_WindowFinish
      Src: /src/cpython/Modules/zlibmodule.c:536,1
    - Dst: OutputBuffer_WindowOnError
      Src: /src/cpython/Modules/zlibmodule.c:542,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 4
    argNames:
    - module
    - data
    - wbits
    - bufsize
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 544
    functionName: zlib_decompress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - OutputBuffer_WindowGrow
    - zlib_error
    - PyErr_SetString
    - arrange_input_buffer
    - get_zlib_state
    - OutputBuffer_WindowFinish
    - inflateEnd
    - inflate
    - OutputBuffer_WindowOnError
    - OutputBuffer_WindowInitWithSize
    - inflateInit2
    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/cpython/Modules/zlibmodule.c:509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:510,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:514,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 517
    functionName: switch
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - PyErr_SetString
    - inflateEnd
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:579,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:581,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:586,1
    - Dst: deflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:594,1
    - Dst: deflateSetDictionary
      Src: /src/cpython/Modules/zlibmodule.c:601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:607,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:610,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:615,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:619,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:622,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:627,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 7
    argNames:
    - module
    - level
    - method
    - wbits
    - memLevel
    - strategy
    - zdict
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    - int
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 630
    functionName: zlib_compressobj_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - PyErr_SetString
    - get_zlib_state
    - newcompobject
    - deflateInit2
    - deflateSetDictionary
    - Py_CLEAR
    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/cpython/Modules/zlibmodule.c:636,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:640,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:642,1
    - Dst: inflateSetDictionary
      Src: /src/cpython/Modules/zlibmodule.c:646,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:648,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - zlibstate*
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 654
    functionName: set_inflate_zdict
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - PyErr_SetString
    - inflateSetDictionary
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int set_inflate_zdict(zlibstate *state, compobject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:672,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/zlibmodule.c:674,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:675,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:680,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:689,1
    - Dst: inflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:691,1
    - Dst: set_inflate_zdict
      Src: /src/cpython/Modules/zlibmodule.c:696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:703,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:707,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:708,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:713,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - module
    - wbits
    - zdict
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 716
    functionName: zlib_decompressobj_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - set_inflate_zdict
    - Py_DECREF
    - PyObject_CheckBuffer
    - PyErr_SetString
    - get_zlib_state
    - Py_NewRef
    - newcompobject
    - inflateInit2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:721,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/zlibmodule.c:722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:723,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:725,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/zlibmodule.c:726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: Dealloc
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Free
    - PyThread_free_lock
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Dealloc(compobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _compobject_CAST
      Src: /src/cpython/Modules/zlibmodule.c:733,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:735,1
    - Dst: Dealloc
      Src: /src/cpython/Modules/zlibmodule.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 737
    functionName: Comp_dealloc
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _compobject_CAST
    - deflateEnd
    - Dealloc
    linkageType: ''
    returnType: void
    signature: void Comp_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _compobject_CAST
      Src: /src/cpython/Modules/zlibmodule.c:742,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:744,1
    - Dst: Dealloc
      Src: /src/cpython/Modules/zlibmodule.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 746
    functionName: Decomp_dealloc
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _compobject_CAST
    - inflateEnd
    - Dealloc
    linkageType: ''
    returnType: void
    signature: void Decomp_dealloc(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:771,1
    - Dst: ENTER_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:773,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:778,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:783,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:787,1
    - Dst: deflate
      Src: /src/cpython/Modules/zlibmodule.c:793,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:797,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:802,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:806,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:812,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:815,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - self
    - cls
    - data
    argTypes:
    - compobject*
    - PyTypeObject*
    - Py_buffer*
    assertStmts:
    - condition: (self->zst.avail_in == 0)
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 817
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 817
    functionName: zlib_Compress_compress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - OutputBuffer_Finish
    - PyType_GetModuleState
    - arrange_input_buffer
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - ENTER_ZLIB
    - LEAVE_ZLIB
    - deflate
    - OutputBuffer_InitAndGrow
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_Compress_compress_impl(compobject *self, PyTypeObject
      *cls,\n                            Py_buffer *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/zlibmodule.c:828,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/zlibmodule.c:833,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:837,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:840,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:840,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:841,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:842,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:842,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/zlibmodule.c:844,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/zlibmodule.c:849,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:854,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/zlibmodule.c:858,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - data
    - err
    argTypes:
    - compobject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 862
    functionName: save_unconsumed_input
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_SETREF
    - PyBytes_GET_SIZE
    - memcpy
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int save_unconsumed_input(compobject *self, Py_buffer *data, int err)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/zlibmodule.c:894,1
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:898,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:900,1
    - Dst: ENTER_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:906,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:911,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:916,1
    - Dst: OutputBuffer_GetDataSize
      Src: /src/cpython/Modules/zlibmodule.c:920,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:923,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:929,1
    - Dst: set_inflate_zdict
      Src: /src/cpython/Modules/zlibmodule.c:939,1
    - Dst: save_unconsumed_input
      Src: /src/cpython/Modules/zlibmodule.c:953,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:965,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:969,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:975,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:978,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 4
    argNames:
    - self
    - cls
    - data
    - max_length
    argTypes:
    - compobject*
    - PyTypeObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 884
    functionDepth: 3
    functionLinenumber: 884
    functionLinenumberEnd: 980
    functionName: zlib_Decompress_decompress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - set_inflate_zdict
    - OutputBuffer_Finish
    - PyErr_SetString
    - OutputBuffer_GetDataSize
    - save_unconsumed_input
    - arrange_input_buffer
    - get_zlib_state
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - ENTER_ZLIB
    - PyType_GetModule
    - inflate
    - LEAVE_ZLIB
    - OutputBuffer_InitAndGrow
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_Decompress_decompress_impl(compobject *self, PyTypeObject
      *cls,\n                                Py_buffer *data, Py_ssize_t max_length)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: set_inflate_zdict
      Src: /src/cpython/Modules/zlibmodule.c:939,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 930
    functionDepth: 3
    functionLinenumber: 930
    functionLinenumberEnd: 946
    functionName: switch
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - set_inflate_zdict
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:1004,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:1008,1
    - Dst: ENTER_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1011,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:1015,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:1021,1
    - Dst: deflate
      Src: /src/cpython/Modules/zlibmodule.c:1027,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1031,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1035,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1041,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1043,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1054,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:1058,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:1064,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1067,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - self
    - cls
    - mode
    argTypes:
    - compobject*
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (self->zst.avail_in == 0)
      pos:
        line_end: 1034
        line_start: 1034
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1069
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1069
    functionName: zlib_Compress_flush_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - OutputBuffer_Finish
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - deflateEnd
    - ENTER_ZLIB
    - LEAVE_ZLIB
    - deflate
    - OutputBuffer_InitAndGrow
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_flush_impl(compobject *self, PyTypeObject *cls, int mode)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:1085,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:1087,1
    - Dst: ENTER_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1093,1
    - Dst: deflateCopy
      Src: /src/cpython/Modules/zlibmodule.c:1094,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1099,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1102,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1106,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1109,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1109,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1110,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1110,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1111,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/zlibmodule.c:1111,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1117,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1121,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:1122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - compobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1124
    functionName: zlib_Compress_copy_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - zlib_error
    - PyErr_SetString
    - PyType_GetModuleState
    - Py_NewRef
    - newcompobject
    - deflateCopy
    - ENTER_ZLIB
    - Py_XSETREF
    - Py_XNewRef
    - LEAVE_ZLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      zlib_Compress___copy___impl(compobject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Compress_copy_impl
      Src: /src/cpython/Modules/zlibmodule.c:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - memo
    argTypes:
    - compobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1155
    functionName: zlib_Compress___deepcopy___impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_Compress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_Compress___deepcopy___impl(compobject *self, PyTypeObject
      *cls,\n                                PyObject *memo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:1169,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:1171,1
    - Dst: ENTER_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1177,1
    - Dst: inflateCopy
      Src: /src/cpython/Modules/zlibmodule.c:1178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1183,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1186,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1190,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1194,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1194,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1195,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1195,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1196,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/zlibmodule.c:1196,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1202,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1206,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:1207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - compobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1165
    functionDepth: 2
    functionLinenumber: 1165
    functionLinenumberEnd: 1209
    functionName: zlib_Decompress_copy_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - inflateCopy
    - zlib_error
    - Py_XDECREF
    - PyErr_SetString
    - PyType_GetModuleState
    - Py_NewRef
    - newcompobject
    - ENTER_ZLIB
    - Py_XSETREF
    - Py_XNewRef
    - LEAVE_ZLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      zlib_Decompress___copy___impl(compobject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Decompress_copy_impl
      Src: /src/cpython/Modules/zlibmodule.c:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - memo
    argTypes:
    - compobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1240
    functionName: zlib_Decompress___deepcopy___impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_Decompress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_Decompress___deepcopy___impl(compobject *self, PyTypeObject
      *cls,\n                                  PyObject *memo)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/zlibmodule.c:1267,1
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:1272,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1275,1
    - Dst: ENTER_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1279,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/zlibmodule.c:1281,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1282,1
    - Dst: OutputBuffer_WindowInitWithSize
      Src: /src/cpython/Modules/zlibmodule.c:1289,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:1295,1
    - Dst: OutputBuffer_WindowGrow
      Src: /src/cpython/Modules/zlibmodule.c:1300,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:1307,1
    - Dst: save_unconsumed_input
      Src: /src/cpython/Modules/zlibmodule.c:1324,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1332,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1334,1
    - Dst: OutputBuffer_WindowFinish
      Src: /src/cpython/Modules/zlibmodule.c:1339,1
    - Dst: OutputBuffer_WindowOnError
      Src: /src/cpython/Modules/zlibmodule.c:1345,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:1348,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1349,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 3
    argNames:
    - self
    - cls
    - length
    argTypes:
    - compobject*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1351
    functionName: zlib_Decompress_flush_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - OutputBuffer_WindowGrow
    - zlib_error
    - PyErr_SetString
    - save_unconsumed_input
    - arrange_input_buffer
    - get_zlib_state
    - OutputBuffer_WindowFinish
    - PyObject_GetBuffer
    - inflateEnd
    - ENTER_ZLIB
    - PyType_GetModule
    - LEAVE_ZLIB
    - OutputBuffer_WindowInitWithSize
    - inflate
    - OutputBuffer_WindowOnError
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_Decompress_flush_impl(compobject *self, PyTypeObject
      *cls,\n                           Py_ssize_t length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1317
    functionName: switch
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:1380,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/zlibmodule.c:1381,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1383,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/zlibmodule.c:1385,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:1386,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:1387,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/zlibmodule.c:1388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1390
    functionName: ZlibDecompressor_dealloc
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_Free
    - inflateEnd
    - PyThread_free_lock
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void ZlibDecompressor_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/zlibmodule.c:1396,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1400,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:1402,1
    - Dst: inflateSetDictionary
      Src: /src/cpython/Modules/zlibmodule.c:1406,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:1408,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - zlibstate*
    - ZlibDecompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1392
    functionDepth: 2
    functionLinenumber: 1392
    functionLinenumberEnd: 1414
    functionName: set_inflate_zdict_ZlibDecompressor
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - PyErr_SetString
    - inflateSetDictionary
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int set_inflate_zdict_ZlibDecompressor(zlibstate *state, ZlibDecompressor
      *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:1426,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:1431,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1435,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/zlibmodule.c:1443,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/zlibmodule.c:1449,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:1450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - avail_out
    - next_out
    - buffer
    - length
    - max_length
    argTypes:
    - uint32_t*
    - uint8_t**
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (length <= max_length)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1453
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1453
    functionName: arrange_output_buffer_with_maximum
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t arrange_output_buffer_with_maximum(uint32_t *avail_out,\n
      \                                  uint8_t **next_out,\n                                   PyObject
      **buffer,\n                                   Py_ssize_t length,\n                                   Py_ssize_t
      max_length)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:1470,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:1470,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:1494,1
    - Dst: arrange_output_buffer_with_maximum
      Src: /src/cpython/Modules/zlibmodule.c:1497,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1503,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:1511,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1534,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1536,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1540,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/zlibmodule.c:1546,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:1547,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:1553,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 2
    argNames:
    - self
    - max_length
    argTypes:
    - ZlibDecompressor*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1461
    functionDepth: 2
    functionLinenumber: 1461
    functionLinenumberEnd: 1556
    functionName: decompress_buf
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 1
    functionsReached:
    - zlib_error
    - arrange_output_buffer_with_maximum
    - Py_CLEAR
    - PyErr_SetString
    - _PyBytes_Resize
    - PyType_GetModuleState
    - arrange_input_buffer
    - PyBytes_AS_STRING
    - inflateEnd
    - inflate
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress_buf(ZlibDecompressor *self, Py_ssize_t max_length)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1525
    functionName: switch
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (err)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/zlibmodule.c:1586,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/zlibmodule.c:1588,1
    - Dst: memmove
      Src: /src/cpython/Modules/zlibmodule.c:1597,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:1601,1
    - Dst: decompress_buf
      Src: /src/cpython/Modules/zlibmodule.c:1611,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:1621,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1626,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/zlibmodule.c:1645,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/zlibmodule.c:1651,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/zlibmodule.c:1653,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:1660,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:1667,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 4
    argNames:
    - self
    - data
    - len
    - max_length
    argTypes:
    - ZlibDecompressor*
    - uint8_t*
    - size_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1669
    functionName: decompress
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 1
    functionsReached:
    - PyMem_Realloc
    - Py_XDECREF
    - memmove
    - PyBytes_FromStringAndSize
    - PyErr_SetNone
    - Py_XSETREF
    - memcpy
    - PyMem_Free
    - decompress_buf
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndecompress(ZlibDecompressor *self, uint8_t *data,\n           size_t
      len, Py_ssize_t max_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1703,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1705,1
    - Dst: decompress
      Src: /src/cpython/Modules/zlibmodule.c:1708,1
    - Dst: LEAVE_ZLIB
      Src: /src/cpython/Modules/zlibmodule.c:1710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - data
    - max_length
    argTypes:
    - ZlibDecompressor*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1712
    functionName: zlib__ZlibDecompressor_decompress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - LEAVE_ZLIB
    - PyErr_SetString
    - decompress
    - ENTER_ZLIB
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib__ZlibDecompressor_decompress_impl(ZlibDecompressor
      *self,\n                                       Py_buffer *data,\n                                       Py_ssize_t
      max_length)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:1734,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/zlibmodule.c:1735,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/zlibmodule.c:1744,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:1750,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:1752,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/zlibmodule.c:1755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1757,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1758,1
    - Dst: inflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:1761,1
    - Dst: set_inflate_zdict_ZlibDecompressor
      Src: /src/cpython/Modules/zlibmodule.c:1766,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1777,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1778,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1782,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1783,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 3
    argNames:
    - type
    - wbits
    - zdict
    argTypes:
    - PyTypeObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1730
    functionDepth: 3
    functionLinenumber: 1730
    functionLinenumberEnd: 1786
    functionName: zlib__ZlibDecompressor_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - Py_DECREF
    - PyObject_New
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyType_GetModuleState
    - set_inflate_zdict_ZlibDecompressor
    - Py_XNewRef
    - inflateInit2
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib__ZlibDecompressor_impl(PyTypeObject *type, int wbits, PyObject *zdict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1816
    functionName: COMP_OFF
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMP_OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: adler32
      Src: /src/cpython/Modules/zlibmodule.c:1870,1
    - Dst: adler32
      Src: /src/cpython/Modules/zlibmodule.c:1874,1
    - Dst: adler32
      Src: /src/cpython/Modules/zlibmodule.c:1877,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/zlibmodule.c:1879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - module
    - data
    - value
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1880
    functionName: zlib_adler32_impl
    functionSourceFile: /src/cpython/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: convert_to_z_off_t
      Src: /src/cpython/Modules/zlibmodule.c:1908,1
    - Dst: convert_to_z_off_t
      Src: /src/cpython/Modules/zlibmodule.c:1910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/zlibmodule.c:1912,1
    - Dst: adler32_combine
      Src: /src/cpython/Modules/zlibmodule.c:1915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - adler1
    - adler2
    - len2
    argTypes:
    - PyObject*
    - unsigned int
    - unsigned int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1902
    functionDepth: 0
    functionLinenumber: 1902
    functionLinenumberEnd: 1916
    functionName: zlib_adler32_combine_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - adler32_combine
    - convert_to_z_off_t
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int zlib_adler32_combine_impl(PyObject *module, unsigned
      int adler1,\n                          unsigned int adler2, PyObject *len2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/cpython/Modules/zlibmodule.c:1954,1
    - Dst: crc32
      Src: /src/cpython/Modules/zlibmodule.c:1959,1
    - Dst: crc32
      Src: /src/cpython/Modules/zlibmodule.c:1962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - data
    - value
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1965
    functionName: zlib_crc32_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - crc32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int zlib_crc32_impl(PyObject *module, Py_buffer *data, unsigned
      int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_z_off_t
      Src: /src/cpython/Modules/zlibmodule.c:1993,1
    - Dst: convert_to_z_off_t
      Src: /src/cpython/Modules/zlibmodule.c:1995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/zlibmodule.c:1997,1
    - Dst: crc32_combine
      Src: /src/cpython/Modules/zlibmodule.c:2000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - crc1
    - crc2
    - len2
    argTypes:
    - PyObject*
    - unsigned int
    - unsigned int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 2001
    functionName: zlib_crc32_combine_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - crc32_combine
    - convert_to_z_off_t
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int zlib_crc32_combine_impl(PyObject *module, unsigned int
      crc1,\n                        unsigned int crc2, PyObject *len2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:2083,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2084,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2085,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2086,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2080
    functionDepth: 2
    functionLinenumber: 2080
    functionLinenumberEnd: 2089
    functionName: zlib_clear
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_zlib_state
    linkageType: ''
    returnType: int
    signature: int zlib_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:2094,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2095,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2096,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2097,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2091
    functionDepth: 2
    functionLinenumber: 2091
    functionLinenumberEnd: 2100
    functionName: zlib_traverse
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_zlib_state
    linkageType: ''
    returnType: int
    signature: int zlib_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_clear
      Src: /src/cpython/Modules/zlibmodule.c:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2102
    functionDepth: 3
    functionLinenumber: 2102
    functionLinenumberEnd: 2106
    functionName: zlib_free
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_clear
    linkageType: ''
    returnType: void
    signature: void zlib_free(void *mod)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:2111,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/zlibmodule.c:2113,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/zlibmodule.c:2119,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/zlibmodule.c:2125,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/zlibmodule.c:2131,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/zlibmodule.c:2132,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/zlibmodule.c:2135,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2147,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2148,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2149,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2150,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2152,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2153,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2154,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2155,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2157,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2158,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2160,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2163,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2165,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2167,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2168,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2169,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2170,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2171,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2173,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2176,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/zlibmodule.c:2178,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/zlibmodule.c:2179,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/zlibmodule.c:2182,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/zlibmodule.c:2183,1
    - Dst: zlibVersion
      Src: /src/cpython/Modules/zlibmodule.c:2183,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/zlibmodule.c:2187,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/zlibmodule.c:2188,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/zlibmodule.c:2192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2108
    functionDepth: 2
    functionLinenumber: 2108
    functionLinenumberEnd: 2196
    functionName: zlib_exec
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddObjectRef
    - ZLIB_ADD_INT_MACRO
    - get_zlib_state
    - PyType_FromModuleAndSpec
    - PyErr_NewException
    - zlibVersion
    - PyModule_Add
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int zlib_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2140
    functionDepth: 0
    functionLinenumber: 2140
    functionLinenumberEnd: 2146
    functionName: ZLIB_ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZLIB_ADD_INT_MACRO(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/zlibmodule.c:2220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2217
    functionDepth: 1
    functionLinenumber: 2217
    functionLinenumberEnd: 2221
    functionName: PyInit_zlib
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_zlib(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: GLOBAL_MALLOC
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL_MALLOC(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: GLOBAL_FREE
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL_FREE(VAR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpqueuesmodule.c:40,1
    - Dst: _PyXIData_ReleaseAndRawFree
      Src: /src/cpython/Modules/_interpqueuesmodule.c:44,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpqueuesmodule.c:47,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:53,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpqueuesmodule.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: _release_xid_data
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 4
    functionsReached:
    - _PyXIData_ReleaseAndRawFree
    - PyErr_GetRaisedException
    - _PyXIData_Release
    - PyErr_Clear
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int _release_xid_data(_PyXIData_t *data, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_interpqueuesmodule.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: _get_current_interp
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 5
    functionsReached:
    - PyInterpreterState_Get
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _get_current_interp(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:76,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_interpqueuesmodule.c:80,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:81,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: _get_current_module
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 3
    functionsReached:
    - PyImport_GetModule
    - Py_DECREF
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_current_module(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_interpqueuesmodule.c:108,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_interpqueuesmodule.c:110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:111,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:115,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:120,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:126,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 133
    functionName: idarg_int64_converter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - PyErr_Format
    - PyIndex_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int idarg_int64_converter(PyObject *arg, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpqueuesmodule.c:140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: ensure_highlevel_module_loaded
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int ensure_highlevel_module_loaded(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:165,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_interpqueuesmodule.c:166,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state != NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 23
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      get_module_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:175,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:178,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:179,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:180,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - state
    - visit
    - arg
    argTypes:
    - module_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: traverse_module_state
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int traverse_module_state(module_state *state, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpqueuesmodule.c:191,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:193,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:196,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:197,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:198,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 202
    functionName: clear_module_state
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached:
    - clear_xid_class
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int clear_module_state(module_state *state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:229,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:233,1
    - Dst: ensure_external_exc_types
      Src: /src/cpython/Modules/_interpqueuesmodule.c:236,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:240,1
    - Dst: ensure_external_exc_types
      Src: /src/cpython/Modules/_interpqueuesmodule.c:243,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:247,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:251,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:254,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:260,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - state
    - errcode
    - qid
    - p_exctype
    - p_msgobj
    argTypes:
    - module_state*
    - int
    - int64_t
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 266
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 266
    functionName: resolve_module_errcode
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - ensure_external_exc_types
    - PyErr_Format
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: int
    signature: "int resolve_module_errcode(module_state *state, int errcode, int64_t
      qid,\n                       PyObject **p_exctype, PyObject **p_msgobj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/cpython/Modules/_interpqueuesmodule.c:276,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:277,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:279,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:280,1
    - Dst: PyObject_HasAttrStringWithError
      Src: /src/cpython/Modules/_interpqueuesmodule.c:280,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_interpqueuesmodule.c:282,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpqueuesmodule.c:286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - mod
    - p_state_field
    - qualname
    - doc
    - base
    argTypes:
    - PyObject*
    - PyObject**
    - char*
    - char*
    - PyObject*
    assertStmts:
    - condition: (!PyObject_HasAttrStringWithError(mod, name))
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (dot != NULL)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (*p_state_field == NULL)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 292
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 292
    functionName: add_exctype
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - PyObject_HasAttrStringWithError
    - PyErr_NewExceptionWithDoc
    - assert
    - strrchr
    linkageType: ''
    returnType: int
    signature: "int add_exctype(PyObject *mod, PyObject **p_state_field,\n            const
      char *qualname, const char *doc, PyObject *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:297,1
    - Dst: ADD_EXCTYPE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:305,1
    - Dst: ADD_EXCTYPE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 315
    functionName: add_QueueError
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - ADD_EXCTYPE
    linkageType: ''
    returnType: int
    signature: int add_QueueError(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - BASE
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: ADD_EXCTYPE
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_EXCTYPE(NAME, BASE, DOC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:322,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:323,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:324,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:327,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:329,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_interpqueuesmodule.c:329,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:330,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_interpqueuesmodule.c:330,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpqueuesmodule.c:331,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpqueuesmodule.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - state
    - emptyerror
    - fullerror
    argTypes:
    - module_state*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state->QueueFull != NULL)
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueFull == NULL)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyObject_IsSubclass(emptyerror, state->QueueError))
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyObject_IsSubclass(fullerror, state->QueueError))
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: set_external_exc_types
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_IsSubclass
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: "int set_external_exc_types(module_state *state,\n                       PyObject
      *emptyerror, PyObject *fullerror)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:340,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:343,1
    - Dst: ensure_highlevel_module_loaded
      Src: /src/cpython/Modules/_interpqueuesmodule.c:346,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:349,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts:
    - condition: (state->QueueFull != NULL)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueFull == NULL)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueEmpty != NULL)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueFull != NULL)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: ensure_external_exc_types
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - ensure_highlevel_module_loaded
    - assert
    linkageType: ''
    returnType: int
    signature: int ensure_external_exc_types(module_state *state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:358,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:358,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:361,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:362,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:362,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpqueuesmodule.c:368,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:373,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:374,1
    - Dst: resolve_module_errcode
      Src: /src/cpython/Modules/_interpqueuesmodule.c:377,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_interpqueuesmodule.c:380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:381,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_interpqueuesmodule.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - err
    - mod
    - qid
    argTypes:
    - int
    - PyObject*
    - int64_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: ((err == -1) == (PyErr_Occurred() != NULL))
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (err < 0)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueError != NULL)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 389
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 389
    functionName: handle_queue_error
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetObject
    - resolve_module_errcode
    - PyObject_CallOneArg
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int handle_queue_error(int err, PyObject *mod, int64_t qid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_interpid
      Src: /src/cpython/Modules/_interpqueuesmodule.c:412,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:415,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:416,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:417,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:419,1
    - Dst: check_unbound
      Src: /src/cpython/Modules/_interpqueuesmodule.c:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - item
    - interpid
    - data
    - unboundop
    argTypes:
    - _queueitem*
    - int64_t
    - _PyXIData_t*
    - unboundop_t
    assertStmts:
    - condition: "(data == NULL\n               || _PyXIData_INTERPID(data) < 0\n
        \              || interpid == _PyXIData_INTERPID(data))"
      pos:
        line_end: 416
        line_start: 414
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (check_unbound(unboundop))
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: _queueitem_init
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _get_interpid
    - check_unbound
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: void
    signature: "void _queueitem_init(_queueitem *item,\n                int64_t interpid,
      _PyXIData_t *data, unboundop_t unboundop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 436
    functionName: _queueitem_clear_data
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _release_xid_data
    linkageType: ''
    returnType: void
    signature: void _queueitem_clear_data(_queueitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queueitem_clear_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: _queueitem_clear
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_clear_data
    linkageType: ''
    returnType: void
    signature: void _queueitem_clear(_queueitem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpqueuesmodule.c:448,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpqueuesmodule.c:450,1
    - Dst: _queueitem_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - interpid
    - data
    - unboundop
    argTypes:
    - int64_t
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: _queueitem_new
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    - PyErr_NoMemory
    - _queueitem_init
    linkageType: ''
    returnType: _queueitem
    signature: '_queueitem *

      _queueitem_new(int64_t interpid, _PyXIData_t *data, int unboundop)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queueitem_clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:460,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 462
    functionName: _queueitem_free
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_clear
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _queueitem_free(_queueitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queueitem_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 472
    functionName: _queueitem_free_all
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_free
    linkageType: ''
    returnType: void
    signature: void _queueitem_free_all(_queueitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queueitem_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - item
    - p_data
    - p_unboundop
    argTypes:
    - _queueitem*
    - _PyXIData_t**
    - unboundop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: _queueitem_popped
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_free
    linkageType: ''
    returnType: void
    signature: "void _queueitem_popped(_queueitem *item,\n                  _PyXIData_t
      **p_data, unboundop_t *p_unboundop)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:488,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:492,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:495,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:495,1
    - Dst: _queueitem_clear_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:505,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_interpqueuesmodule.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts:
    - condition: (item->interpid >= 0)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (item->unboundop != UNBOUND_REMOVE)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (_PyXIData_INTERPID(item->data) == item->interpid)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 511
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 511
    functionName: _queueitem_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _PyXIData_INTERPID
    - assert
    - _queueitem_clear_data
    linkageType: ''
    returnType: int
    signature: int _queueitem_clear_interpreter(_queueitem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:535,1
    - Dst: check_unbound
      Src: /src/cpython/Modules/_interpqueuesmodule.c:535,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - queue
    - maxsize
    - defaults
    argTypes:
    - _queue*
    - Py_ssize_t
    - struct _queuedefaults
    assertStmts:
    - condition: (check_unbound(defaults.unboundop))
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 549
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 549
    functionName: _queue_init
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - check_unbound
    - assert
    - PyThread_allocate_lock
    linkageType: ''
    returnType: int
    signature: int _queue_init(_queue *queue, Py_ssize_t maxsize, struct _queuedefaults
      defaults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:554,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:555,1
    - Dst: _queueitem_free_all
      Src: /src/cpython/Modules/_interpqueuesmodule.c:556,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:557,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts:
    - condition: (!queue->alive)
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queue->num_waiters == 0)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queue->mutex != NULL)
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: _queue_clear
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_free_all
    - PyThread_free_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void _queue_clear(_queue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:568,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:569,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:571,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:575,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts:
    - condition: (queue->alive)
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: _queue_kill_and_wait
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _queue_kill_and_wait(_queue *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:584,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - queue
    - parent_mutex
    argTypes:
    - _queue*
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 592
    functionName: _queue_mark_waiter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _queue_mark_waiter(_queue *queue, PyThread_type_lock parent_mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:598,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - queue
    - parent_mutex
    argTypes:
    - _queue*
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 606
    functionName: _queue_unmark_waiter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _queue_unmark_waiter(_queue *queue, PyThread_type_lock parent_mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:612,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 618
    functionName: _queue_lock
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _queue_lock(_queue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: _queue_unlock
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _queue_unlock(_queue *queue)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _queue_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:629,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:639,1
    - Dst: _queueitem_new
      Src: /src/cpython/Modules/_interpqueuesmodule.c:643,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:645,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - queue
    - interpid
    - data
    - unboundop
    argTypes:
    - _queue*
    - int64_t
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 660
    functionName: _queue_add
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_lock
    - _queue_unlock
    - _queueitem_new
    linkageType: ''
    returnType: int
    signature: int _queue_add(_queue *queue, int64_t interpid, _PyXIData_t *data,
      int unboundop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _queue_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:665,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:670,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:673,1
    - Dst: _queueitem_popped
      Src: /src/cpython/Modules/_interpqueuesmodule.c:682,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - queue
    - p_data
    - p_unboundop
    argTypes:
    - _queue*
    - _PyXIData_t**
    - int*
    assertStmts:
    - condition: (queue->items.count >= 0)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 686
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 686
    functionName: _queue_next
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_popped
    - _queue_lock
    - assert
    - _queue_unlock
    linkageType: ''
    returnType: int
    signature: int _queue_next(_queue *queue, _PyXIData_t **p_data, int *p_unboundop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queue_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:691,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queue
    - p_maxsize
    argTypes:
    - _queue*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 700
    functionName: _queue_get_maxsize
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_lock
    - _queue_unlock
    linkageType: ''
    returnType: int
    signature: int _queue_get_maxsize(_queue *queue, Py_ssize_t *p_maxsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queue_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:705,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:710,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - queue
    - p_is_full
    argTypes:
    - _queue*
    - int*
    assertStmts:
    - condition: "(queue->items.maxsize <= 0\n           || queue->items.count <=
        queue->items.maxsize)"
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 718
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 718
    functionName: _queue_is_full
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_lock
    - assert
    - _queue_unlock
    linkageType: ''
    returnType: int
    signature: int _queue_is_full(_queue *queue, int *p_is_full)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queue_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:723,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queue
    - p_count
    argTypes:
    - _queue*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 732
    functionName: _queue_get_count
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_lock
    - _queue_unlock
    linkageType: ''
    returnType: int
    signature: int _queue_get_count(_queue *queue, Py_ssize_t *p_count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _queue_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:737,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:740,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:740,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:743,1
    - Dst: _queueitem_clear_interpreter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:751,1
    - Dst: _queueitem_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:754,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - queue
    - interpid
    argTypes:
    - _queue*
    - int64_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (err == 0)
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 769
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 769
    functionName: _queue_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_free
    - _queueitem_clear_interpreter
    - PyErr_Occurred
    - _queue_lock
    - _queue_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void _queue_clear_interpreter(_queue *queue, int64_t interpid)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - first
    - qid
    - pprev
    argTypes:
    - _queueref*
    - int64_t
    - _queueref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 799
    functionName: _queuerefs_find
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _queueref
    signature: '_queueref *

      _queuerefs_find(_queueref *first, int64_t qid, _queueref **pprev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_interpqueuesmodule.c:811,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:814,1
    - Dst: _queue_kill_and_wait
      Src: /src/cpython/Modules/_interpqueuesmodule.c:816,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_interpqueuesmodule.c:819,1
    - Dst: _queue_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - head
    argTypes:
    - _queueref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 825
    functionName: _queuerefs_clear
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_kill_and_wait
    - fprintf
    - _queue_free
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _queuerefs_clear(_queueref *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:840,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - queues
    - mutex
    argTypes:
    - _queues*
    - PyThread_type_lock
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 839
        line_start: 839
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queues->mutex == NULL)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 848
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 848
    functionName: _queues_init
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void _queues_init(_queues *queues, PyThread_type_lock mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:854,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:856,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:858,1
    - Dst: _queuerefs_clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:859,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - queues
    - p_mutex
    argTypes:
    - _queues*
    - PyThread_type_lock*
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queues->head != NULL)
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 865
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 865
    functionName: _queues_fini
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queuerefs_clear
    - PyThread_acquire_lock
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _queues_fini(_queues *queues, PyThread_type_lock *p_mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - queues
    argTypes:
    - _queues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 877
    functionName: _queues_next_id
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t _queues_next_id(_queues *queues)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:882,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:884,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:886,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:889,1
    - Dst: _queue_mark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:891,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - queues
    - qid
    - res
    argTypes:
    - _queues*
    - int64_t
    - _queue**
    assertStmts:
    - condition: (ref->queue != NULL)
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 898
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 898
    functionName: _queues_lookup
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queuerefs_find
    - _queue_mark_waiter
    - PyThread_release_lock
    - PyThread_acquire_lock
    - assert
    linkageType: ''
    returnType: int
    signature: int _queues_lookup(_queues *queues, int64_t qid, _queue **res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:904,1
    - Dst: _queues_next_id
      Src: /src/cpython/Modules/_interpqueuesmodule.c:907,1
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpqueuesmodule.c:911,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - queues
    - queue
    argTypes:
    - _queues*
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 931
    functionName: _queues_add
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    - _queues_next_id
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: int64_t
    signature: int64_t _queues_add(_queues *queues, _queue *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:937,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - queues
    - ref
    - prev
    - p_queue
    argTypes:
    - _queues*
    - _queueref*
    - _queueref*
    - _queue**
    assertStmts:
    - condition: (ref->queue != NULL)
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 951
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 951
    functionName: _queues_remove_ref
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: "void _queues_remove_ref(_queues *queues, _queueref *ref, _queueref
      *prev,\n                   _queue **p_queue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:956,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:959,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:961,1
    - Dst: _queues_remove_ref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:965,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - queues
    - qid
    - p_queue
    argTypes:
    - _queues*
    - int64_t
    - _queue**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 969
    functionName: _queues_remove
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_remove_ref
    - PyThread_acquire_lock
    - _queuerefs_find
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _queues_remove(_queues *queues, int64_t qid, _queue **p_queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:976,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:978,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:980,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:980,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - queues
    - qid
    argTypes:
    - _queues*
    - int64_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 979
        line_start: 979
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 990
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 990
    functionName: _queues_incref
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queuerefs_find
    - PyErr_Occurred
    - PyThread_release_lock
    - PyThread_acquire_lock
    - assert
    linkageType: ''
    returnType: int
    signature: int _queues_incref(_queues *queues, int64_t qid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:996,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:999,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1001,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1001,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1009,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1013,1
    - Dst: _queues_remove_ref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1016,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1017,1
    - Dst: _queue_kill_and_wait
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1019,1
    - Dst: _queue_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1020,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1026,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - queues
    - qid
    argTypes:
    - _queues*
    - int64_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (ref->refcount > 0)
      pos:
        line_end: 1008
        line_start: 1008
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (ref->queue != NULL)
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1028
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1028
    functionName: _queues_decref
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_remove_ref
    - _queuerefs_find
    - PyErr_Occurred
    - _queue_free
    - PyThread_release_lock
    - _queue_kill_and_wait
    - PyThread_acquire_lock
    - assert
    linkageType: ''
    returnType: int
    signature: int _queues_decref(_queues *queues, int64_t qid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1039,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1040,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1048,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1055,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - queues
    - p_count
    argTypes:
    - _queues*
    - int64_t*
    assertStmts:
    - condition: (ref->queue != NULL)
      pos:
        line_end: 1047
        line_start: 1047
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1057
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1057
    functionName: _queues_list_all
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - PyThread_acquire_lock
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: struct queue_id_and_info
    signature: 'struct queue_id_and_info *

      _queues_list_all(_queues *queues, int64_t *p_count)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1062,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1066,1
    - Dst: _queue_clear_interpreter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1067,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queues
    - interpid
    argTypes:
    - _queues*
    - int64_t
    assertStmts:
    - condition: (ref->queue != NULL)
      pos:
        line_end: 1065
        line_start: 1065
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1071
      start: 1059
    functionDepth: 4
    functionLinenumber: 1059
    functionLinenumberEnd: 1071
    functionName: _queues_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_clear_interpreter
    - PyThread_acquire_lock
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _queues_clear_interpreter(_queues *queues, int64_t interpid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queue_clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1079,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1076
    functionDepth: 5
    functionLinenumber: 1076
    functionLinenumberEnd: 1081
    functionName: _queue_free
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached:
    - _queue_clear
    - GLOBAL_FREE
    linkageType: ''
    returnType: void
    signature: void _queue_free(_queue *queue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1088,1
    - Dst: _queue_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1092,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1094,1
    - Dst: _queues_add
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1097,1
    - Dst: _queue_clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1099,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - queues
    - maxsize
    - defaults
    argTypes:
    - _queues*
    - Py_ssize_t
    - struct _queuedefaults
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1084
    functionDepth: 5
    functionLinenumber: 1084
    functionLinenumberEnd: 1103
    functionName: queue_create
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_add
    - GLOBAL_FREE
    - _queue_init
    - GLOBAL_MALLOC
    - _queue_clear
    linkageType: ''
    returnType: int64_t
    signature: "int64_t queue_create(_queues *queues, Py_ssize_t maxsize,\n             struct
      _queuedefaults defaults)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queues_remove
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1110,1
    - Dst: _queue_kill_and_wait
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1114,1
    - Dst: _queue_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queues
    - qid
    argTypes:
    - _queues*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1106
    functionDepth: 6
    functionLinenumber: 1106
    functionLinenumberEnd: 1117
    functionName: queue_destroy
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_kill_and_wait
    - _queue_free
    - _queues_remove
    linkageType: ''
    returnType: int
    signature: int queue_destroy(_queues *queues, int64_t qid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1124,1
    - Dst: _queues_lookup
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1128,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1132,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1135,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1137,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1140,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1141,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1142,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1145,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1145,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1146,1
    - Dst: _queue_add
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1150,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1151,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1154,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - queues
    - qid
    - obj
    - unboundop
    - fallback
    argTypes:
    - _queues*
    - int64_t
    - PyObject*
    - unboundop_t
    - xidata_fallback_t
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 1131
        line_start: 1131
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: "(_PyXIData_INTERPID(xidata) ==\n            PyInterpreterState_GetID(tstate->interp))"
      pos:
        line_end: 1145
        line_start: 1144
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1160
      start: 1120
    functionDepth: 4
    functionLinenumber: 1120
    functionLinenumberEnd: 1160
    functionName: queue_put
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - PyInterpreterState_GetID
    - assert
    - _PyObject_GetXIData
    - _queue_add
    - _queues_lookup
    - _release_xid_data
    - _queue_unmark_waiter
    - GLOBAL_FREE
    - _PyXIData_INTERPID
    - _PyXIData_New
    - PyThreadState_Get
    linkageType: ''
    returnType: int
    signature: "int queue_put(_queues *queues, int64_t qid, PyObject *obj, unboundop_t
      unboundop,\n          xidata_fallback_t fallback)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _queues_lookup
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1173,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1178,1
    - Dst: _queue_next
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1182,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1183,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1188,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1188,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1193,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1195,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1195,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1197,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1201,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1204,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - queues
    - qid
    - res
    - p_unboundop
    argTypes:
    - _queues*
    - int64_t
    - PyObject**
    - int*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1187
        line_start: 1187
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queue != NULL)
      pos:
        line_end: 1177
        line_start: 1177
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1194
        line_start: 1194
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1211
      start: 1164
    functionDepth: 5
    functionLinenumber: 1164
    functionLinenumberEnd: 1211
    functionName: queue_get
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _queues_lookup
    - PyErr_Occurred
    - _release_xid_data
    - _queue_next
    - _PyXIData_NewObject
    - _queue_unmark_waiter
    - assert
    linkageType: ''
    returnType: int
    signature: "int queue_get(_queues *queues, int64_t qid,\n          PyObject **res,
      int *p_unboundop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queues_lookup
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1218,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - queues
    - qid
    - p_defaults
    argTypes:
    - _queues*
    - int64_t
    - struct _queuedefaults*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1213
    functionDepth: 3
    functionLinenumber: 1213
    functionLinenumberEnd: 1225
    functionName: queue_get_defaults
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_lookup
    - _queue_unmark_waiter
    linkageType: ''
    returnType: int
    signature: "int queue_get_defaults(_queues *queues, int64_t qid,\n                   struct
      _queuedefaults *p_defaults)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queues_lookup
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1231,1
    - Dst: _queue_get_maxsize
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1235,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - queues
    - qid
    - p_maxsize
    argTypes:
    - _queues*
    - int64_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1227
    functionDepth: 3
    functionLinenumber: 1227
    functionLinenumberEnd: 1238
    functionName: queue_get_maxsize
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_lookup
    - _queue_get_maxsize
    - _queue_unmark_waiter
    linkageType: ''
    returnType: int
    signature: int queue_get_maxsize(_queues *queues, int64_t qid, Py_ssize_t *p_maxsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queues_lookup
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1244,1
    - Dst: _queue_is_full
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1248,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - queues
    - qid
    - p_is_full
    argTypes:
    - _queues*
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1251
    functionName: queue_is_full
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_lookup
    - _queue_is_full
    - _queue_unmark_waiter
    linkageType: ''
    returnType: int
    signature: int queue_is_full(_queues *queues, int64_t qid, int *p_is_full)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queues_lookup
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1257,1
    - Dst: _queue_get_count
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1261,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - queues
    - qid
    - p_count
    argTypes:
    - _queues*
    - int64_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1253
    functionDepth: 3
    functionLinenumber: 1253
    functionLinenumberEnd: 1264
    functionName: queue_get_count
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_lookup
    - _queue_get_count
    - _queue_unmark_waiter
    linkageType: ''
    returnType: int
    signature: int queue_get_count(_queues *queues, int64_t qid, Py_ssize_t *p_count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1276,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1277,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1281,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1281,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - queue_type
    argTypes:
    - module_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1287
    functionName: set_external_queue_type
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - ensure_xid_class
    - Py_NewRef
    - clear_xid_class
    - Py_CLEAR
    - GETDATA
    linkageType: ''
    returnType: int
    signature: int set_external_queue_type(module_state *state, PyTypeObject *queue_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1292,1
    - Dst: ensure_highlevel_module_loaded
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1297,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 1300
        line_start: 1300
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1304
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1304
    functionName: get_external_queue_type
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - ensure_highlevel_module_loaded
    - get_module_state
    - assert
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      get_external_queue_type(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_global_queues
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1318,1
    - Dst: _queues_incref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1319,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1323,1
    - Dst: _queues_decref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qid
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1330
    functionName: _queueid_xid_new
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_incref
    - _queues_decref
    - _get_global_queues
    - PyMem_RawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _queueid_xid_new(int64_t qid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1336,1
    - Dst: _get_global_queues
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1337,1
    - Dst: _queues_decref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1338,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (res == 0)
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1346
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1346
    functionName: _queueid_xid_free
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_decref
    - _get_global_queues
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: void
    signature: void _queueid_xid_free(void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1351,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1352,1
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1357,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1359,1
    - Dst: get_external_queue_type
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1368,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1374
    functionName: _queueobj_from_xid
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_external_queue_type
    - _PyXIData_DATA
    - PyImport_ImportModule
    - _get_current_module
    - PyObject_CallOneArg
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queueobj_from_xid(_PyXIData_t *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1379,1
    - Dst: idarg_int64_converter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1386,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1387,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1389,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1389,1
    - Dst: _queueid_xid_new
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1393,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1397,1
    - Dst: _PyXIData_SET_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - tstate
    - queueobj
    - data
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1388
        line_start: 1388
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1400
      start: 1376
    functionDepth: 4
    functionLinenumber: 1376
    functionLinenumberEnd: 1400
    functionName: _queueobj_shared
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - PyErr_Occurred
    - _queueid_xid_new
    - idarg_int64_converter
    - _PyXIData_Init
    - _PyXIData_SET_FREE
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: int _queueobj_shared(PyThreadState *tstate, PyObject *queueobj, _PyXIData_t
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1417,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1418,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1422,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1425,1
    - Dst: _queues_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1428,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_globals.module_count >= 0)
      pos:
        line_end: 1417
        line_start: 1417
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1432
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1432
    functionName: _globals_init
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_init
    - PyThread_allocate_lock
    - PyMutex_Lock
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: int
    signature: int _globals_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1437,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1438,1
    - Dst: _queues_fini
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1442,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1443,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1444,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_globals.module_count > 0)
      pos:
        line_end: 1437
        line_start: 1437
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (mutex != NULL)
      pos:
        line_end: 1442
        line_start: 1442
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1447
      start: 1434
    functionDepth: 4
    functionLinenumber: 1434
    functionLinenumberEnd: 1447
    functionName: _globals_fini
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached:
    - assert
    - PyMutex_Lock
    - PyMutex_Unlock
    - PyThread_free_lock
    - _queues_fini
    linkageType: ''
    returnType: void
    signature: void _globals_fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1453
    functionName: _get_global_queues
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: _queues
    signature: '_queues *

      _get_global_queues(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1463,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1463,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1464,1
    - Dst: _queues_clear_interpreter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (interp == _get_current_interp())
      pos:
        line_end: 1462
        line_start: 1462
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1466
      start: 1456
    functionDepth: 5
    functionLinenumber: 1456
    functionLinenumberEnd: 1466
    functionName: clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 7
    functionsReached:
    - _get_current_interp
    - PyInterpreterState_GetID
    - _queues_clear_interpreter
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_interpreter(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: idarg_int64_converter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1471
    functionDepth: 2
    functionLinenumber: 1471
    functionLinenumberEnd: 1479
    functionName: qidarg_converter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - idarg_int64_converter
    linkageType: ''
    returnType: int
    signature: int qidarg_converter(PyObject *arg, void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1489,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1495,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1500,1
    - Dst: queue_create
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1506,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1508,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1512,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1514,1
    - Dst: queue_destroy
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1515,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1516,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1518,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1482
    functionDepth: 7
    functionLinenumber: 1482
    functionLinenumberEnd: 1525
    functionName: queuesmod_create
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - queue_destroy
    - PyErr_GetRaisedException
    - PyErr_Clear
    - resolve_unboundop
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromLongLong
    - queue_create
    - handle_queue_error
    - resolve_fallback
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_create(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1541,1
    - Dst: queue_destroy
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1547,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1536
    functionDepth: 7
    functionLinenumber: 1536
    functionLinenumberEnd: 1552
    functionName: queuesmod_destroy
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_destroy
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_destroy(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _queues_list_all
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1564,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1566,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1567,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1571,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1577,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1581,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1584,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1590
    functionName: queuesmod_list_all
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _queues_list_all
    - Py_BuildValue
    - PyErr_Occurred
    - PyList_SET_ITEM
    - Py_SETREF
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1606,1
    - Dst: queue_get_defaults
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1615,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1616,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1621,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1625,1
    - Dst: queue_put
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1630,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1632,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1598
    functionDepth: 5
    functionLinenumber: 1598
    functionLinenumberEnd: 1637
    functionName: queuesmod_put
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - resolve_unboundop
    - PyArg_ParseTupleAndKeywords
    - queue_put
    - handle_queue_error
    - resolve_fallback
    - queue_get_defaults
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_put(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1649,1
    - Dst: queue_get
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1657,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1659,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1664,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1644
    functionDepth: 6
    functionLinenumber: 1644
    functionLinenumberEnd: 1669
    functionName: queuesmod_get
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - queue_get
    - PyArg_ParseTupleAndKeywords
    - handle_queue_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_get(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1684,1
    - Dst: _queues_incref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1692,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1679
    functionDepth: 3
    functionLinenumber: 1679
    functionLinenumberEnd: 1700
    functionName: queuesmod_bind
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - _queues_incref
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_bind(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1714,1
    - Dst: _queues_decref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1724,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1708
    functionDepth: 3
    functionLinenumber: 1708
    functionLinenumberEnd: 1730
    functionName: queuesmod_release
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - _queues_decref
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_release(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1743,1
    - Dst: queue_get_maxsize
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1751,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1752,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1738
    functionDepth: 4
    functionLinenumber: 1738
    functionLinenumberEnd: 1756
    functionName: queuesmod_get_maxsize
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - PyLong_FromLongLong
    - queue_get_maxsize
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_get_maxsize(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1768,1
    - Dst: queue_get_defaults
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1776,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1777,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1763
    functionDepth: 4
    functionLinenumber: 1763
    functionLinenumberEnd: 1783
    functionName: queuesmod_get_queue_defaults
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - Py_BuildValue
    - PyArg_ParseTupleAndKeywords
    - queue_get_defaults
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_get_queue_defaults(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1795,1
    - Dst: queue_is_full
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1803,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1790
    functionDepth: 4
    functionLinenumber: 1790
    functionLinenumberEnd: 1811
    functionName: queuesmod_is_full
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_is_full
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_is_full(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1823,1
    - Dst: queue_get_count
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1831,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1832,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1835,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (count >= 0)
      pos:
        line_end: 1834
        line_start: 1834
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1837
      start: 1818
    functionDepth: 4
    functionLinenumber: 1818
    functionLinenumberEnd: 1837
    functionName: queuesmod_get_count
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyArg_ParseTupleAndKeywords
    - queue_get_count
    - handle_queue_error
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod_get_count(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1851,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1856,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1857,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1861,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1862,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1866,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1867,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1872,1
    - Dst: set_external_queue_type
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1874,1
    - Dst: set_external_exc_types
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1877,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1844
    functionDepth: 2
    functionLinenumber: 1844
    functionLinenumberEnd: 1882
    functionName: queuesmod__register_heap_types
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - set_external_exc_types
    - get_module_state
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - set_external_queue_type
    - PyExceptionClass_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      queuesmod__register_heap_types(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _globals_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1923,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1924,1
    - Dst: add_QueueError
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1929,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1934,1
    - Dst: PyUnstable_AtExit
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1935,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1920
    functionDepth: 3
    functionLinenumber: 1920
    functionLinenumberEnd: 1942
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_interp
    - _globals_init
    - _globals_fini
    - PyUnstable_AtExit
    - handle_queue_error
    - add_QueueError
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1954,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1956
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - traverse_module_state
    - get_module_state
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1961,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 1965
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached:
    - clear_module_state
    - get_module_state
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1970,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1973,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 1976
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - clear_module_state
    - get_module_state
    - _globals_fini
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 1994
    functionName: MODINIT_FUNC_NAME
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC MODINIT_FUNC_NAME(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/binascii.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: get_binascii_state
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    linkageType: ''
    returnType: binascii_state
    signature: 'binascii_state *

      get_binascii_state(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/binascii.c:167,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/binascii.c:170,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/binascii.c:171,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:172,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:176,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/binascii.c:176,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/binascii.c:177,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/binascii.c:178,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/binascii.c:182,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:183,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/binascii.c:185,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:188,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/binascii.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - arg
    - buf
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (PyUnicode_KIND(arg) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/cpython/Modules/binascii.c
    - condition: (PyBuffer_IsContiguous(buf, 'C'))
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 190
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 190
    functionName: ascii_buffer_converter
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyBuffer_IsContiguous
    - PyErr_SetString
    - PyUnicode_IS_ASCII
    - PyObject_GetBuffer
    - Py_TYPE
    - PyBuffer_Release
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: int
    signature: int ascii_buffer_converter(PyObject *arg, Py_buffer *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:219,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:226,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/binascii.c:228,1
    - Dst: this_ch < ' ' || this_ch >
      Src: /src/cpython/Modules/binascii.c:245,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:246,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/binascii.c:251,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:278,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/binascii.c:283,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (ascii_len >= 0)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 288
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 288
    functionName: binascii_a2b_uu_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - this_ch < ' ' || this_ch >
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - get_binascii_state
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_uu_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Modules/binascii.c:314,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:319,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:323,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Modules/binascii.c:329,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Modules/binascii.c:359,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - module
    - data
    - backtick
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 360
    functionName: binascii_b2a_uu_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - PyErr_SetString
    - _PyBytesWriter_Finish
    - get_binascii_state
    - _PyBytesWriter_Alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_uu_impl(PyObject *module, Py_buffer *data, int backtick)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:382,1
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Modules/binascii.c:392,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Modules/binascii.c:393,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:399,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:401,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:419,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:421,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:433,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:446,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:448,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:457,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:459,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:489,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:498,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:504,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Modules/binascii.c:507,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Modules/binascii.c:512,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 98
    argCount: 3
    argNames:
    - module
    - data
    - strict_mode
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (data->len >= 0)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 513
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 513
    functionName: binascii_a2b_base64_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - PyErr_SetString
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Finish
    - get_binascii_state
    - _PyBytesWriter_Alloc
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_base64_impl(PyObject *module, Py_buffer *data, int strict_mode)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Modules/binascii.c:542,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:544,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:547,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:551,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Modules/binascii.c:561,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Modules/binascii.c:588,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: 543
        line_start: 543
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 589
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 589
    functionName: binascii_b2a_base64_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - PyErr_SetString
    - _PyBytesWriter_Finish
    - get_binascii_state
    - _PyBytesWriter_Alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/binascii.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - data
    - crc
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 618
    functionName: binascii_crc_hqx_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bin_data
    - len
    - crc
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 752
    functionName: internal_crc32
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int internal_crc32(const unsigned char *bin_data, Py_ssize_t
      len, unsigned int crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_bytes_with_sep
      Src: /src/cpython/Modules/binascii.c:850,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: 852
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 852
    functionName: binascii_b2a_hex_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/binascii.c:868,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: 870
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: binascii_hexlify_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/binascii.c:898,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:909,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:913,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/binascii.c:916,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/binascii.c:919,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/binascii.c:920,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:922,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/binascii.c:935,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - module
    - hexstr
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (arglen >= 0)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 937
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 937
    functionName: binascii_a2b_hex_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - Py_CHARMASK
    - PyBytes_FromStringAndSize
    - get_binascii_state
    - PyBytes_AS_STRING
    - assert
    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/cpython/Modules/binascii.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - hexstr
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 947
    functionDepth: 3
    functionLinenumber: 947
    functionLinenumberEnd: 952
    functionName: binascii_unhexlify_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - binascii_a2b_hex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_unhexlify_impl(PyObject *module, Py_buffer *hexstr)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/binascii.c:982,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/binascii.c:984,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:1033,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/binascii.c:1034,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 48
    argCount: 3
    argNames:
    - module
    - data
    - header
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 1036
    functionName: binascii_a2b_qp_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyMem_Calloc
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    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: 1047
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1047
    functionName: to_hex
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_hex (unsigned char ch, unsigned char *s)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/binascii.c:1090,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/binascii.c:1156,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/binascii.c:1164,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/binascii.c:1166,1
    - Dst: to_hex
      Src: /src/cpython/Modules/binascii.c:1191,1
    - Dst: to_hex
      Src: /src/cpython/Modules/binascii.c:1207,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:1238,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/binascii.c:1239,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 103
    argCount: 5
    argNames:
    - module
    - data
    - quotetabs
    - istext
    - header
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1241
    functionName: binascii_b2a_qp_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - to_hex
    - PyBytes_FromStringAndSize
    - PyMem_Free
    - memchr
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_qp_impl(PyObject *module, Py_buffer *data,
      int quotetabs,\n                     int istext, int header)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/binascii.c:1268,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/binascii.c:1273,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/binascii.c:1274,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/binascii.c:1278,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/binascii.c:1279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1284
    functionName: binascii_exec
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - PyErr_NewException
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int binascii_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1296,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/binascii.c:1297,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/binascii.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1300
    functionName: binascii_traverse
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - get_binascii_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int binascii_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1305,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/binascii.c:1306,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/binascii.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1309
    functionName: binascii_clear
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - get_binascii_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int binascii_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binascii_clear
      Src: /src/cpython/Modules/binascii.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1315
    functionName: binascii_free
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - binascii_clear
    linkageType: ''
    returnType: void
    signature: void binascii_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/binascii.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1333
    functionName: PyInit_binascii
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_binascii(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: dirfd
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: POSIX_CALL
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POSIX_CALL(call)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: _pos_int_from_ascii
    functionSourceFile: /src/cpython/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/cpython/Modules/_posixsubprocess.c:132,1
    - Dst: stat
      Src: /src/cpython/Modules/_posixsubprocess.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: _is_fdescfs_mounted_on_dev_fd
    functionSourceFile: /src/cpython/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/cpython/Modules/_posixsubprocess.c:149,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_posixsubprocess.c:150,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_posixsubprocess.c:152,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_posixsubprocess.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - fd_sequence
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: _sanity_check_python_fd_sequence
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: int _sanity_check_python_fd_sequence(PyObject *fd_sequence)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - fd_sequence
    - fd_sequence_len
    argTypes:
    - int
    - int*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 187
    functionName: _is_fd_in_sorted_fd_sequence
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _is_fd_in_sorted_fd_sequence(int fd, int *fd_sequence,\n                             Py_ssize_t
      fd_sequence_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_posixsubprocess.c:209,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:213,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_posixsubprocess.c:216,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_posixsubprocess.c:220,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_posixsubprocess.c:222,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_posixsubprocess.c:227,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_posixsubprocess.c:234,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_posixsubprocess.c:239,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_posixsubprocess.c:240,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_posixsubprocess.c:242,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_posixsubprocess.c:245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:246,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:253,1
    - Dst: _Py_FreeCharPArray
      Src: /src/cpython/Modules/_posixsubprocess.c:254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (argc >= 0)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Modules/_posixsubprocess.c
    constantsTouched: []
    func_position:
      end: 256
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 256
    functionName: _PySequence_BytesToCharpArray
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_XDECREF
    - _Py_FreeCharPArray
    - Py_DECREF
    - memcpy
    - PySequence_Size
    - PyBytes_GET_SIZE
    - PyBytes_AsStringAndSize
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *const *

      _PySequence_BytesToCharpArray(PyObject* self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_posixsubprocess.c:265,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_posixsubprocess.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: _Py_FreeCharPArray
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 1
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _Py_FreeCharPArray(char *const array[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_posixsubprocess.c:286,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_posixsubprocess.c:288,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_posixsubprocess.c:289,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_posixsubprocess.c:290,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - py_fds_to_keep
    - c_fds_to_keep
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: convert_fds_to_keep_to_c
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int convert_fds_to_keep_to_c(PyObject *py_fds_to_keep, int *c_fds_to_keep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - c_fds_to_keep
    - len
    - errpipe_write
    argTypes:
    - int*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: make_inheritable
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - _Py_set_inheritable_async_safe
    linkageType: ''
    returnType: int
    signature: int make_inheritable(int *c_fds_to_keep, Py_ssize_t len, int errpipe_write)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/cpython/Modules/_posixsubprocess.c:335,1
    - Dst: getrlimit
      Src: /src/cpython/Modules/_posixsubprocess.c:343,1
    - Dst: sysconf
      Src: /src/cpython/Modules/_posixsubprocess.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 352
    functionName: safe_get_max_fd
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - sysconf
    - fcntl
    linkageType: ''
    returnType: long
    signature: long safe_get_max_fd(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_posixsubprocess.c:371,1
    - Dst: safe_get_max_fd
      Src: /src/cpython/Modules/_posixsubprocess.c:371,1
    - Dst: closer
      Src: /src/cpython/Modules/_posixsubprocess.c:380,1
    - Dst: closer
      Src: /src/cpython/Modules/_posixsubprocess.c:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - start_fd
    - end_fd
    - fds_to_keep
    - fds_to_keep_len
    argTypes:
    - int
    - int
    - int*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 389
    functionName: _close_range_except
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - safe_get_max_fd
    - closer
    linkageType: ''
    returnType: int
    signature: "int _close_range_except(int start_fd,\n                    int end_fd,\n
      \                   int *fds_to_keep,\n                    Py_ssize_t fds_to_keep_len,\n
      \                   int (*closer)(int, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: _brute_force_closer
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int _brute_force_closer(int first, int last)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_open_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:436,1
    - Dst: _close_range_except
      Src: /src/cpython/Modules/_posixsubprocess.c:439,1
    - Dst: syscall
      Src: /src/cpython/Modules/_posixsubprocess.c:446,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/_posixsubprocess.c:452,1
    - Dst: _pos_int_from_ascii
      Src: /src/cpython/Modules/_posixsubprocess.c:457,1
    - Dst: _is_fd_in_sorted_fd_sequence
      Src: /src/cpython/Modules/_posixsubprocess.c:460,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:462,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:466,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - start_fd
    - fds_to_keep
    - fds_to_keep_len
    argTypes:
    - int
    - int*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 468
    functionName: _close_open_fds_safe
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - syscall
    - close
    - _Py_open_noraise
    - _pos_int_from_ascii
    - _close_range_except
    - _is_fd_in_sorted_fd_sequence
    linkageType: ''
    returnType: void
    signature: void _close_open_fds_safe(int start_fd, int *fds_to_keep, Py_ssize_t
      fds_to_keep_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_closerange
      Src: /src/cpython/Modules/_posixsubprocess.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: _unsafe_closer
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - _Py_closerange
    linkageType: ''
    returnType: int
    signature: int _unsafe_closer(int first, int last)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_in_sorted_fd_sequence
      Src: /src/cpython/Modules/_posixsubprocess.c:500,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:508,1
    - Dst: _is_fdescfs_mounted_on_dev_fd
      Src: /src/cpython/Modules/_posixsubprocess.c:513,1
    - Dst: opendir
      Src: /src/cpython/Modules/_posixsubprocess.c:517,1
    - Dst: _close_range_except
      Src: /src/cpython/Modules/_posixsubprocess.c:520,1
    - Dst: dirfd
      Src: /src/cpython/Modules/_posixsubprocess.c:525,1
    - Dst: readdir
      Src: /src/cpython/Modules/_posixsubprocess.c:530,1
    - Dst: _pos_int_from_ascii
      Src: /src/cpython/Modules/_posixsubprocess.c:532,1
    - Dst: _is_fd_in_sorted_fd_sequence
      Src: /src/cpython/Modules/_posixsubprocess.c:535,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:537,1
    - Dst: _close_range_except
      Src: /src/cpython/Modules/_posixsubprocess.c:543,1
    - Dst: closedir
      Src: /src/cpython/Modules/_posixsubprocess.c:546,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - start_fd
    - fds_to_keep
    - fds_to_keep_len
    argTypes:
    - int
    - int*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 548
    functionName: _close_open_fds_maybe_unsafe
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - dirfd
    - close
    - _is_fdescfs_mounted_on_dev_fd
    - readdir
    - closedir
    - opendir
    - _pos_int_from_ascii
    - _close_range_except
    - _is_fd_in_sorted_fd_sequence
    linkageType: ''
    returnType: void
    signature: "void _close_open_fds_maybe_unsafe(int start_fd, int *fds_to_keep,\n
      \                            Py_ssize_t fds_to_keep_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_range
      Src: /src/cpython/Modules/_posixsubprocess.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 568
    functionName: _close_range_closer
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - close_range
    linkageType: ''
    returnType: int
    signature: int _close_range_closer(int first, int last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _close_range_except
      Src: /src/cpython/Modules/_posixsubprocess.c:575,1
    - Dst: _close_open_fds_fallback
      Src: /src/cpython/Modules/_posixsubprocess.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start_fd
    - fds_to_keep
    - fds_to_keep_len
    argTypes:
    - int
    - int*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 582
    functionName: _close_open_fds
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - _close_open_fds_fallback
    - _close_range_except
    linkageType: ''
    returnType: void
    signature: void _close_open_fds(int start_fd, int *fds_to_keep, Py_ssize_t fds_to_keep_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sigismember
      Src: /src/cpython/Modules/_posixsubprocess.c:601,1
    - Dst: sigaction
      Src: /src/cpython/Modules/_posixsubprocess.c:609,1
    - Dst: sigaction
      Src: /src/cpython/Modules/_posixsubprocess.c:622,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 1
    argNames:
    - child_sigmask
    argTypes:
    - sigset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 624
    functionName: reset_signal_handlers
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - sigismember
    - sigaction
    linkageType: ''
    returnType: void
    signature: void reset_signal_handlers(const sigset_t *child_sigmask)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: make_inheritable
      Src: /src/cpython/Modules/_posixsubprocess.c:685,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:690,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:690,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:692,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:692,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:694,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:694,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:695,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:695,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:700,1
    - Dst: dup
      Src: /src/cpython/Modules/_posixsubprocess.c:700,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:702,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:707,1
    - Dst: dup
      Src: /src/cpython/Modules/_posixsubprocess.c:707,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:709,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:718,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:722,1
    - Dst: dup2
      Src: /src/cpython/Modules/_posixsubprocess.c:722,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:725,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:729,1
    - Dst: dup2
      Src: /src/cpython/Modules/_posixsubprocess.c:729,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:732,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:736,1
    - Dst: dup2
      Src: /src/cpython/Modules/_posixsubprocess.c:736,1
    - Dst: chdir
      Src: /src/cpython/Modules/_posixsubprocess.c:742,1
    - Dst: umask
      Src: /src/cpython/Modules/_posixsubprocess.c:749,1
    - Dst: _Py_RestoreSignals
      Src: /src/cpython/Modules/_posixsubprocess.c:752,1
    - Dst: reset_signal_handlers
      Src: /src/cpython/Modules/_posixsubprocess.c:757,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/_posixsubprocess.c:758,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:766,1
    - Dst: setsid
      Src: /src/cpython/Modules/_posixsubprocess.c:766,1
    - Dst: _Py_IS_TYPE_SIGNED
      Src: /src/cpython/Modules/_posixsubprocess.c:770,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:772,1
    - Dst: setpgid
      Src: /src/cpython/Modules/_posixsubprocess.c:772,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:778,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:779,1
    - Dst: setgroups
      Src: /src/cpython/Modules/_posixsubprocess.c:779,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:785,1
    - Dst: setregid
      Src: /src/cpython/Modules/_posixsubprocess.c:785,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:790,1
    - Dst: setreuid
      Src: /src/cpython/Modules/_posixsubprocess.c:790,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_posixsubprocess.c:797,1
    - Dst: _close_open_fds
      Src: /src/cpython/Modules/_posixsubprocess.c:814,1
    - Dst: execve
      Src: /src/cpython/Modules/_posixsubprocess.c:823,1
    - Dst: execv
      Src: /src/cpython/Modules/_posixsubprocess.c:825,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:844,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:850,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:851,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:855,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:857,1
    - Dst: strlen
      Src: /src/cpython/Modules/_posixsubprocess.c:857,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 120
    argCount: 26
    argNames:
    - exec_array
    - argv
    - envp
    - cwd
    - p2cread
    - p2cwrite
    - c2pread
    - c2pwrite
    - errread
    - errwrite
    - errpipe_read
    - errpipe_write
    - close_fds
    - restore_signals
    - call_setsid
    - pgid_to_set
    - gid
    - extra_group_size
    - extra_groups
    - uid
    - child_umask
    - child_sigmask
    - fds_to_keep
    - fds_to_keep_len
    - preexec_fn
    - preexec_fn_args_tuple
    argTypes:
    - char*[]
    - char*[]
    - char*[]
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - pid_t
    - gid_t
    - Py_ssize_t
    - gid_t*
    - uid_t
    - int
    - void*
    - int*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((extra_group_size == 0) == (extra_groups == NULL))
      pos:
        line_end: 777
        line_start: 777
        source_file: /src/cpython/Modules/_posixsubprocess.c
    constantsTouched: []
    func_position:
      end: 858
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 858
    functionName: child_exec
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - execv
    - strlen
    - pthread_sigmask
    - make_inheritable
    - setpgid
    - _close_open_fds
    - umask
    - _Py_RestoreSignals
    - dup
    - setreuid
    - PyObject_Call
    - POSIX_CALL
    - close
    - reset_signal_handlers
    - dup2
    - _Py_set_inheritable_async_safe
    - execve
    - setregid
    - _Py_IS_TYPE_SIGNED
    - setsid
    - setgroups
    - _Py_write_noraise
    - assert
    - chdir
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE 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,
      pid_t pgid_to_set,\n           gid_t gid,\n           Py_ssize_t extra_group_size,
      const gid_t *extra_groups,\n           uid_t uid, int child_umask,\n           const
      void *child_sigmask,\n           int *fds_to_keep, Py_ssize_t fds_to_keep_len,\n
      \          PyObject *preexec_fn,\n           PyObject *preexec_fn_args_tuple)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:895,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:896,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:897,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:898,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_posixsubprocess.c:910,1
    - Dst: vfork
      Src: /src/cpython/Modules/_posixsubprocess.c:911,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/_posixsubprocess.c:914,1
    - Dst: fork
      Src: /src/cpython/Modules/_posixsubprocess.c:920,1
    - Dst: fork
      Src: /src/cpython/Modules/_posixsubprocess.c:925,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/_posixsubprocess.c:943,1
    - Dst: child_exec
      Src: /src/cpython/Modules/_posixsubprocess.c:946,1
    - Dst: _exit
      Src: /src/cpython/Modules/_posixsubprocess.c:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 26
    argNames:
    - exec_array
    - argv
    - envp
    - cwd
    - p2cread
    - p2cwrite
    - c2pread
    - c2pwrite
    - errread
    - errwrite
    - errpipe_read
    - errpipe_write
    - close_fds
    - restore_signals
    - call_setsid
    - pgid_to_set
    - gid
    - extra_group_size
    - extra_groups
    - uid
    - child_umask
    - child_sigmask
    - fds_to_keep
    - fds_to_keep_len
    - preexec_fn
    - preexec_fn_args_tuple
    argTypes:
    - char*[]
    - char*[]
    - char*[]
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - pid_t
    - gid_t
    - Py_ssize_t
    - gid_t*
    - uid_t
    - int
    - void*
    - int*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (uid == (uid_t)-1)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/cpython/Modules/_posixsubprocess.c
    - condition: (preexec_fn == Py_None)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/cpython/Modules/_posixsubprocess.c
    - condition: (gid == (gid_t)-1)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/cpython/Modules/_posixsubprocess.c
    - condition: (extra_group_size < 0)
      pos:
        line_end: 896
        line_start: 896
        source_file: /src/cpython/Modules/_posixsubprocess.c
    constantsTouched: []
    func_position:
      end: 956
      start: 869
    functionDepth: 4
    functionLinenumber: 869
    functionLinenumberEnd: 956
    functionName: do_fork_exec
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - vfork
    - assert
    - fork
    - _exit
    - PyOS_AfterFork_Child
    - PyEval_SaveThread
    - child_exec
    - PyEval_RestoreThread
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE do_fork_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, pid_t pgid_to_set,\n             gid_t gid,\n             Py_ssize_t
      extra_group_size, const gid_t *extra_groups,\n             uid_t uid, int child_umask,\n
      \            const void *child_sigmask,\n             int *fds_to_keep, Py_ssize_t
      fds_to_keep_len,\n             PyObject *preexec_fn,\n             PyObject
      *preexec_fn_args_tuple)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_posixsubprocess.c:1033,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_posixsubprocess.c:1035,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/_posixsubprocess.c:1037,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1039,1
    - Dst: PyInterpreterState_Main
      Src: /src/cpython/Modules/_posixsubprocess.c:1043,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1044,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1050,1
    - Dst: _sanity_check_python_fd_sequence
      Src: /src/cpython/Modules/_posixsubprocess.c:1053,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1054,1
    - Dst: PyGC_Disable
      Src: /src/cpython/Modules/_posixsubprocess.c:1060,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1063,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_posixsubprocess.c:1074,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_posixsubprocess.c:1077,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_posixsubprocess.c:1078,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_posixsubprocess.c:1083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1084,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_posixsubprocess.c:1087,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_posixsubprocess.c:1088,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_posixsubprocess.c:1090,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1093,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_posixsubprocess.c:1094,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_posixsubprocess.c:1095,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1101,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_posixsubprocess.c:1107,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_posixsubprocess.c:1109,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_posixsubprocess.c:1121,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1122,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_posixsubprocess.c:1126,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1132,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_posixsubprocess.c:1138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1140,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_posixsubprocess.c:1148,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_posixsubprocess.c:1151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1154,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/_posixsubprocess.c:1158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1159,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1165,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_posixsubprocess.c:1169,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/_posixsubprocess.c:1177,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_posixsubprocess.c:1181,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/_posixsubprocess.c:1189,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_posixsubprocess.c:1193,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_posixsubprocess.c:1198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1200,1
    - Dst: convert_fds_to_keep_to_c
      Src: /src/cpython/Modules/_posixsubprocess.c:1203,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_posixsubprocess.c:1212,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_posixsubprocess.c:1224,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/_posixsubprocess.c:1227,1
    - Dst: sigfillset
      Src: /src/cpython/Modules/_posixsubprocess.c:1248,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/_posixsubprocess.c:1249,1
    - Dst: do_fork_exec
      Src: /src/cpython/Modules/_posixsubprocess.c:1256,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/_posixsubprocess.c:1285,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/_posixsubprocess.c:1290,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_posixsubprocess.c:1294,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_posixsubprocess.c:1301,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1304,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_posixsubprocess.c:1305,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1306,1
    - Dst: _Py_FreeCharPArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1308,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1309,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1310,1
    - Dst: _Py_FreeCharPArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1312,1
    - Dst: _Py_FreeCharPArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1314,1
    - Dst: PyGC_Enable
      Src: /src/cpython/Modules/_posixsubprocess.c:1317,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/_posixsubprocess.c:1320,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 191
    argCount: 23
    argNames:
    - module
    - process_args
    - executable_list
    - close_fds
    - py_fds_to_keep
    - cwd_obj
    - env_list
    - p2cread
    - p2cwrite
    - c2pread
    - c2pwrite
    - errread
    - errwrite
    - errpipe_read
    - errpipe_write
    - restore_signals
    - call_setsid
    - pgid_to_set
    - gid_object
    - extra_groups_packed
    - uid_object
    - child_umask
    - preexec_fn
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - pid_t
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1008
    functionDepth: 5
    functionLinenumber: 1008
    functionLinenumberEnd: 1321
    functionName: subprocess_fork_exec_impl
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - pthread_sigmask
    - PyErr_SetString
    - PyLong_FromPid
    - PyList_Check
    - Py_CLEAR
    - _PyInterpreterState_GetFinalizing
    - PyMem_Free
    - PySequence_GetItem
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyOS_BeforeFork
    - PySequence_Size
    - _Py_Gid_Converter
    - PySys_Audit
    - _sanity_check_python_fd_sequence
    - PyInterpreterState_Main
    - Py_DECREF
    - PyMem_RawFree
    - sigfillset
    - PyLong_Check
    - PyBytes_AsString
    - PyUnicode_FSConverter
    - _Py_Uid_Converter
    - PyMem_RawMalloc
    - PySequence_Fast_GET_ITEM
    - PyErr_SetFromErrno
    - _Py_FreeCharPArray
    - PyGC_Disable
    - PyMem_Malloc
    - do_fork_exec
    - _PySequence_BytesToCharpArray
    - PySequence_Fast_GET_SIZE
    - PyErr_BadInternalCall
    - PyTuple_SET_ITEM
    - _PyInterpreterState_GET
    - PySequence_Fast
    - convert_fds_to_keep_to_c
    - PyOS_AfterFork_Parent
    - PyGC_Enable
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsubprocess_fork_exec_impl(PyObject *module, PyObject *process_args,\n
      \                         PyObject *executable_list, int close_fds,\n                          PyObject
      *py_fds_to_keep, PyObject *cwd_obj,\n                          PyObject *env_list,
      int p2cread, int p2cwrite,\n                          int c2pread, int c2pwrite,
      int errread,\n                          int errwrite, int errpipe_read, int
      errpipe_write,\n                          int restore_signals, int call_setsid,\n
      \                         pid_t pgid_to_set, PyObject *gid_object,\n                          PyObject
      *extra_groups_packed,\n                          PyObject *uid_object, int child_umask,\n
      \                         PyObject *preexec_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_posixsubprocess.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1352
    functionName: PyInit__posixsubprocess
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__posixsubprocess(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 4
    functionName: _RESOLVE_MODINIT_FUNC_NAME
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _RESOLVE_MODINIT_FUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 6
    functionName: RESOLVE_MODINIT_FUNC_NAME
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESOLVE_MODINIT_FUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: GETDATA
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETDATA(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_interpreters_common.h:13,1
    - Dst: _PyXIData_RegisterClass
      Src: /src/cpython/Modules/_interpreters_common.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cls
    - getdata
    argTypes:
    - PyTypeObject*
    - _PyXIData_getdata_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: ensure_xid_class
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 3
    functionsReached:
    - PyThreadState_Get
    - _PyXIData_RegisterClass
    linkageType: ''
    returnType: int
    signature: int ensure_xid_class(PyTypeObject *cls, _PyXIData_getdata_t getdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_interpreters_common.h:21,1
    - Dst: _PyXIData_UnregisterClass
      Src: /src/cpython/Modules/_interpreters_common.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: clear_xid_class
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 4
    functionsReached:
    - _PyXIData_UnregisterClass
    - PyThreadState_Get
    linkageType: ''
    returnType: int
    signature: int clear_xid_class(PyTypeObject *cls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpreters_common.h:32,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpreters_common.h:33,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpreters_common.h:33,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpreters_common.h:36,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_interpreters_common.h:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Modules/_interpreters_common.h
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: _get_interpid
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 2
    functionsReached:
    - PyInterpreterState_GetID
    - PyInterpreterState_Get
    - PyErr_Occurred
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: int64_t
    signature: int64_t _get_interpid(_PyXIData_t *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpreters_common.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - arg
    - dflt
    - p_fallback
    argTypes:
    - int
    - xidata_fallback_t
    - xidata_fallback_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: resolve_fallback
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 5
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int resolve_fallback(int arg, xidata_fallback_t dflt,\n                 xidata_fallback_t
      *p_fallback)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - unboundop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: check_unbound
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_unbound(int unboundop)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpreters_common.h:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - arg
    - dflt
    - p_unboundop
    argTypes:
    - int
    - unboundop_t
    - unboundop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 121
    functionName: resolve_unboundop
    functionSourceFile: /src/cpython/Modules/_interpreters_common.h
    functionUses: 5
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int resolve_unboundop(int arg, unboundop_t dflt, unboundop_t *p_unboundop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Modules/symtablemodule.c:36,1
    - Dst: strcmp
      Src: /src/cpython/Modules/symtablemodule.c:41,1
    - Dst: strcmp
      Src: /src/cpython/Modules/symtablemodule.c:43,1
    - Dst: strcmp
      Src: /src/cpython/Modules/symtablemodule.c:45,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/symtablemodule.c:48,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/symtablemodule.c:50,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/symtablemodule.c:51,1
    - Dst: _Py_SymtableStringObjectFlags
      Src: /src/cpython/Modules/symtablemodule.c:54,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/symtablemodule.c:55,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/symtablemodule.c:56,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/symtablemodule.c:60,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Modules/symtablemodule.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - module
    - source
    - filename
    - startstr
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 63
    functionName: _symtable_symtable_impl
    functionSourceFile: /src/cpython/Modules/symtablemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PySymtable_Free
    - Py_DECREF
    - PyErr_SetString
    - _Py_SymtableStringObjectFlags
    - Py_NewRef
    - strcmp
    - _Py_SourceAsString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_symtable_symtable_impl(PyObject *module, PyObject *source,\n
      \                       PyObject *filename, const char *startstr)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:73,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:74,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:75,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:76,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:77,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:78,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:79,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:80,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:81,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:82,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:83,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:84,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:86,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:88,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:90,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:92,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:94,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:96,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:98,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:101,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:102,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:103,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:104,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:105,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:107,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:108,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 54
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 111
    functionName: symtable_init_constants
    functionSourceFile: /src/cpython/Modules/symtablemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int symtable_init_constants(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/symtablemodule.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: PyInit__symtable
    functionSourceFile: /src/cpython/Modules/symtablemodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__symtable(void)
  - 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: _SHA1object_CAST
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _SHA1object_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/sha1module.c:52,1
    - Dst: assert
      Src: /src/cpython/Modules/sha1module.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cpython/Modules/sha1module.c
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: sha1_get_state
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: SHA1State
    signature: 'SHA1State *

      sha1_get_state(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha1module.c:72,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha1module.c:76,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha1module.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - SHA1State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: newSHA1object
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: SHA1object
    signature: 'SHA1object *

      newSHA1object(SHA1State *st)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha1module.c:87,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha1module.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: SHA1_traverse
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int SHA1_traverse(PyObject *ptr, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA1object_CAST
      Src: /src/cpython/Modules/sha1module.c:94,1
    - Dst: Hacl_Hash_SHA1_free
      Src: /src/cpython/Modules/sha1module.c:96,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha1module.c:99,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha1module.c:100,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/sha1module.c:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha1module.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: SHA1_dealloc
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA1_free
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - _SHA1object_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SHA1_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha1module.c:120,1
    - Dst: newSHA1object
      Src: /src/cpython/Modules/sha1module.c:123,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha1module.c:127,1
    - Dst: Hacl_Hash_SHA1_copy
      Src: /src/cpython/Modules/sha1module.c:128,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha1module.c:129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha1module.c:131,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha1module.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA1object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 135
    functionName: SHA1Type_copy_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - newSHA1object
    - _PyType_GetModuleState
    - Hacl_Hash_SHA1_copy
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_copy_impl(SHA1object *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha1module.c:148,1
    - Dst: Hacl_Hash_SHA1_digest
      Src: /src/cpython/Modules/sha1module.c:149,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha1module.c:150,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha1module.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA1object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: SHA1Type_digest_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_RELEASE_LOCK
    - PyBytes_FromStringAndSize
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA1_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_digest_impl(SHA1object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha1module.c:165,1
    - Dst: Hacl_Hash_SHA1_digest
      Src: /src/cpython/Modules/sha1module.c:166,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha1module.c:167,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha1module.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA1object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 169
    functionName: SHA1Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA1_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_hexdigest_impl(SHA1object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA1_update
      Src: /src/cpython/Modules/sha1module.c:181,1
    - Dst: Hacl_Hash_SHA1_update
      Src: /src/cpython/Modules/sha1module.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - Hacl_Hash_SHA1_state_t*
    - uint8_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 188
    functionName: update
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA1_update
    linkageType: ''
    returnType: void
    signature: void update(Hacl_Hash_SHA1_state_t *state, uint8_t *buf, Py_ssize_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha1module.c:204,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha1module.c:205,1
    - Dst: update
      Src: /src/cpython/Modules/sha1module.c:207,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHA1object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: SHA1Type_update_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

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

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

      sha1_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/sha1module.c:283,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha1module.c:288,1
    - Dst: sha1_get_state
      Src: /src/cpython/Modules/sha1module.c:291,1
    - Dst: newSHA1object::newSHA1object
      Src: /src/cpython/Modules/sha1module.c:292,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:294,1
    - Dst: Hacl_Hash_SHA1_malloc
      Src: /src/cpython/Modules/sha1module.c:299,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/sha1module.c:301,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:304,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha1module.c:306,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha1module.c:311,1
    - Dst: update
      Src: /src/cpython/Modules/sha1module.c:313,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/sha1module.c:313,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string_obj
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 319
    functionName: _sha1_sha1_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - newSHA1object::newSHA1object
    - sha1_get_state
    - GET_BUFFER_VIEW_OR_ERROUT
    - _Py_hashlib_data_argument
    - PyBuffer_Release
    - Hacl_Hash_SHA1_malloc
    - update
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - hash_state::hash_state
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sha1_sha1_impl(PyObject *module, PyObject *data, int
      usedforsecurity,\n                PyObject *string_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_get_state
      Src: /src/cpython/Modules/sha1module.c:332,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha1module.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: _sha1_traverse
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - sha1_get_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _sha1_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_get_state
      Src: /src/cpython/Modules/sha1module.c:340,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha1module.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: _sha1_clear
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - sha1_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _sha1_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha1_clear
      Src: /src/cpython/Modules/sha1module.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: _sha1_free
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - _sha1_clear
    linkageType: ''
    returnType: void
    signature: void _sha1_free(void *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sha1_get_state
      Src: /src/cpython/Modules/sha1module.c:354,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha1module.c:356,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/sha1module.c:358,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/sha1module.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 372
    functionName: _sha1_exec
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - sha1_get_state
    - PyType_FromModuleAndSpec
    - PyModule_AddObjectRef
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int _sha1_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/sha1module.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: PyInit__sha1
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sha1(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Modules/main.c:40,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:41,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/cpython/Modules/main.c:46,1
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/cpython/Modules/main.c:48,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:49,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Modules/main.c:54,1
    - Dst: PyConfig_SetBytesArgv
      Src: /src/cpython/Modules/main.c:59,1
    - Dst: PyConfig_SetArgv
      Src: /src/cpython/Modules/main.c:62,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:64,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Modules/main.c:68,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:69,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/main.c:72,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Modules/main.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - args
    argTypes:
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 77
    functionName: pymain_init
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - PyPreConfig_InitPythonConfig
    - _PyStatus_EXCEPTION
    - PyConfig_Clear
    - _Py_PreInitializeFromPyArgv
    - PyConfig_InitPythonConfig
    - PyConfig_SetArgv
    - PyConfig_SetBytesArgv
    - _PyRuntime_Initialize
    - Py_InitializeFromConfig
    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: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: config_run_code
    functionSourceFile: /src/cpython/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/cpython/Modules/main.c:96,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: stdin_is_interactive
    functionSourceFile: /src/cpython/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_HandleSystemExitAndKeyboardInterrupt
      Src: /src/cpython/Modules/main.c:105,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/main.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - exitcode_p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: pymain_err_print
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - _Py_HandleSystemExitAndKeyboardInterrupt
    linkageType: ''
    returnType: int
    signature: int pymain_err_print(int *exitcode_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymain_err_print
      Src: /src/cpython/Modules/main.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: pymain_exit_err_print
    functionSourceFile: /src/cpython/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/cpython/Modules/main.c:131,1
    - Dst: PyImport_GetImporter
      Src: /src/cpython/Modules/main.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:147,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:152,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:154,1
    - Dst: pymain_err_print
      Src: /src/cpython/Modules/main.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - filename
    - importer_p
    - exitcode
    argTypes:
    - wchar_t*
    - PyObject**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 156
    functionName: pymain_get_importer
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyImport_GetImporter
    - PySys_WriteStderr
    - PyUnicode_FromWideChar
    - pymain_err_print
    linkageType: ''
    returnType: int
    signature: int pymain_get_importer(const wchar_t *filename, PyObject **importer_p,
      int *exitcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/main.c:165,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/main.c:165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/main.c:166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/main.c:174,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/main.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - interp
    - path0
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 182
    functionName: pymain_sys_path_add_path0
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyErr_SetString
    - _Py_ID
    - PyList_Insert
    linkageType: ''
    returnType: int
    signature: int pymain_sys_path_add_path0(PyInterpreterState *interp, PyObject
      *path0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: config_run_code
      Src: /src/cpython/Modules/main.c:192,1
    - Dst: stdin_is_interactive
      Src: /src/cpython/Modules/main.c:192,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:196,1
    - Dst: Py_GetVersion
      Src: /src/cpython/Modules/main.c:196,1
    - Dst: Py_GetPlatform
      Src: /src/cpython/Modules/main.c:196,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 200
    functionName: pymain_header
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_GetPlatform
    - Py_GetVersion
    - config_run_code
    - stdin_is_interactive
    - fprintf
    linkageType: ''
    returnType: void
    signature: void pymain_header(const PyConfig *config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: config_run_code
      Src: /src/cpython/Modules/main.c:209,1
    - Dst: isatty
      Src: /src/cpython/Modules/main.c:212,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:212,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:216,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:221,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:223,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 230
    functionName: pymain_import_readline
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - config_run_code
    - PyImport_ImportModule
    - isatty
    - PyErr_Clear
    - fileno
    linkageType: ''
    returnType: void
    signature: void pymain_import_readline(const PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:239,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:244,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:245,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/main.c:248,1
    - Dst: _PyUnicode_Dedent
      Src: /src/cpython/Modules/main.c:248,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/main.c:253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:254,1
    - Dst: _PyRun_SimpleStringFlagsWithName
      Src: /src/cpython/Modules/main.c:261,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/main.c:261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:262,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:266,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - command
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 268
    functionName: pymain_run_command
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyRun_SimpleStringFlagsWithName
    - Py_DECREF
    - pymain_exit_err_print
    - Py_SETREF
    - PyBytes_AsString
    - PySys_WriteStderr
    - PyUnicode_FromWideChar
    - _PyUnicode_Dedent
    - PySys_Audit
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: int
    signature: int pymain_run_command(wchar_t *command)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:281,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:283,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:284,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/main.c:287,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:289,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:290,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/main.c:293,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:295,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/main.c:298,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:300,1
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Modules/main.c:303,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:305,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/main.c:308,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/main.c:309,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/main.c:310,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:312,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:316,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:317,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:318,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:320,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:321,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - pythonstartup
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 323
    functionName: pymain_start_pyrepl
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - PyObject_GetAttrString
    - pymain_exit_err_print
    - PyImport_ImportModule
    - PyImport_AddModuleRef
    - PyObject_Call
    - PyDict_SetItemString
    - PyDict_New
    - fprintf
    linkageType: ''
    returnType: int
    signature: int pymain_start_pyrepl(int pythonstartup)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:330,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:331,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/main.c:333,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:336,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:337,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:339,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:342,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:343,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/main.c:345,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:350,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:351,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/main.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:356,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - modname
    - set_argv0
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 362
    functionName: pymain_run_module
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - pymain_exit_err_print
    - PyObject_Call
    - PyUnicode_FromWideChar
    - fprintf
    - PySys_Audit
    - PyTuple_Pack
    linkageType: ''
    returnType: int
    signature: int pymain_run_module(const wchar_t *modname, int set_argv0)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:369,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:370,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/main.c:373,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:376,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Modules/main.c:378,1
    - Dst: strerror
      Src: /src/cpython/Modules/main.c:379,1
    - Dst: getc
      Src: /src/cpython/Modules/main.c:386,1
    - Dst: ungetc
      Src: /src/cpython/Modules/main.c:388,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Modules/main.c:395,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:395,1
    - Dst: S_ISDIR
      Src: /src/cpython/Modules/main.c:395,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Modules/main.c:396,1
    - Dst: fclose
      Src: /src/cpython/Modules/main.c:398,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/main.c:403,1
    - Dst: fclose
      Src: /src/cpython/Modules/main.c:404,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:405,1
    - Dst: _PyRun_AnyFileObject
      Src: /src/cpython/Modules/main.c:410,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - program_name
    - filename
    - skip_source_first_line
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 412
    functionName: pymain_run_file_obj
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - getc
    - pymain_exit_err_print
    - ungetc
    - Py_MakePendingCalls
    - _Py_fstat_noraise
    - Py_fopen
    - strerror
    - _PyRun_AnyFileObject
    - PySys_FormatStderr
    - PySys_Audit
    - PyErr_Clear
    - fileno
    - S_ISDIR
    - fclose
    linkageType: ''
    returnType: int
    signature: "int pymain_run_file_obj(PyObject *program_name, PyObject *filename,\n
      \                   int skip_source_first_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:417,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/main.c:419,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:424,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/main.c:425,1
    - Dst: pymain_run_file_obj
      Src: /src/cpython/Modules/main.c:429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: pymain_run_file
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - pymain_run_file_obj
    - Py_DECREF
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: int
    signature: int pymain_run_file(const PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/cpython/Modules/main.c:446,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:450,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:455,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/main.c:459,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:464,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/main.c:468,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:471,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:472,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Modules/main.c:475,1
    - Dst: _PyRun_SimpleFileObject
      Src: /src/cpython/Modules/main.c:480,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:481,1
    - Dst: fclose
      Src: /src/cpython/Modules/main.c:482,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:486,1
    - Dst: pymain_err_print
      Src: /src/cpython/Modules/main.c:490,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - config
    - exitcode
    argTypes:
    - PyConfig*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 492
    functionName: pymain_run_startup
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - _PyRun_SimpleFileObject
    - _wgetenv
    - _Py_GetEnv
    - PyErr_SetFromErrnoWithFilenameObjects
    - pymain_err_print
    - Py_fopen
    - PySys_WriteStderr
    - PyUnicode_FromWideChar
    - PySys_Audit
    - PyErr_Clear
    - fclose
    linkageType: ''
    returnType: int
    signature: int pymain_run_startup(PyConfig *config, int *exitcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Modules/main.c:501,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:508,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/main.c:512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:517,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:522,1
    - Dst: pymain_err_print
      Src: /src/cpython/Modules/main.c:523,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 524
    functionName: pymain_run_interactive_hook
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - PySys_GetOptionalAttrString
    - Py_DECREF
    - PySys_WriteStderr
    - PySys_Audit
    - pymain_err_print
    linkageType: ''
    returnType: int
    signature: int pymain_run_interactive_hook(int *exitcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - inspect
    argTypes:
    - PyConfig*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 535
    functionName: pymain_set_inspect
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pymain_set_inspect(PyConfig *config, int inspect)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stdin_is_interactive
      Src: /src/cpython/Modules/main.c:541,1
    - Dst: pymain_set_inspect
      Src: /src/cpython/Modules/main.c:543,1
    - Dst: pymain_run_startup
      Src: /src/cpython/Modules/main.c:546,1
    - Dst: pymain_run_interactive_hook
      Src: /src/cpython/Modules/main.c:550,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/main.c:556,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:557,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:560,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:561,1
    - Dst: isatty
      Src: /src/cpython/Modules/main.c:564,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:564,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:565,1
    - Dst: PyRun_AnyFileExFlags
      Src: /src/cpython/Modules/main.c:567,1
    - Dst: pymain_start_pyrepl
      Src: /src/cpython/Modules/main.c:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 571
    functionName: pymain_run_stdin
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_start_pyrepl
    - pymain_set_inspect
    - _Py_GetEnv
    - pymain_exit_err_print
    - Py_MakePendingCalls
    - pymain_run_interactive_hook
    - PyRun_AnyFileExFlags
    - pymain_run_startup
    - isatty
    - stdin_is_interactive
    - PySys_Audit
    - fileno
    linkageType: ''
    returnType: int
    signature: int pymain_run_stdin(PyConfig *config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:579,1
    - Dst: pymain_set_inspect
      Src: /src/cpython/Modules/main.c:580,1
    - Dst: stdin_is_interactive
      Src: /src/cpython/Modules/main.c:583,1
    - Dst: config_run_code
      Src: /src/cpython/Modules/main.c:583,1
    - Dst: pymain_set_inspect
      Src: /src/cpython/Modules/main.c:587,1
    - Dst: pymain_run_interactive_hook
      Src: /src/cpython/Modules/main.c:588,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:592,1
    - Dst: isatty
      Src: /src/cpython/Modules/main.c:596,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:596,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:597,1
    - Dst: PyRun_AnyFileExFlags
      Src: /src/cpython/Modules/main.c:599,1
    - Dst: pymain_start_pyrepl
      Src: /src/cpython/Modules/main.c:603,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - config
    - exitcode
    argTypes:
    - PyConfig*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 606
    functionName: pymain_repl
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_start_pyrepl
    - pymain_set_inspect
    - _Py_GetEnv
    - config_run_code
    - pymain_run_interactive_hook
    - PyRun_AnyFileExFlags
    - isatty
    - stdin_is_interactive
    - PySys_Audit
    - fileno
    linkageType: ''
    returnType: void
    signature: void pymain_repl(PyConfig *config, int *exitcode)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/main.c:613,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Modules/main.c:615,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:618,1
    - Dst: _PyPathConfig_UpdateGlobal
      Src: /src/cpython/Modules/main.c:618,1
    - Dst: assert
      Src: /src/cpython/Modules/main.c:625,1
    - Dst: pymain_get_importer
      Src: /src/cpython/Modules/main.c:633,1
    - Dst: pymain_import_readline
      Src: /src/cpython/Modules/main.c:640,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/main.c:644,1
    - Dst: _PyPathConfig_ComputeSysPath0
      Src: /src/cpython/Modules/main.c:647,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/main.c:652,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/main.c:658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:660,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Modules/main.c:663,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/main.c:664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:666,1
    - Dst: pymain_sys_path_add_path0
      Src: /src/cpython/Modules/main.c:669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:670,1
    - Dst: pymain_header
      Src: /src/cpython/Modules/main.c:676,1
    - Dst: _PyInterpreterState_SetRunningMain
      Src: /src/cpython/Modules/main.c:678,1
    - Dst: assert
      Src: /src/cpython/Modules/main.c:679,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/main.c:679,1
    - Dst: pymain_run_command
      Src: /src/cpython/Modules/main.c:682,1
    - Dst: pymain_run_module
      Src: /src/cpython/Modules/main.c:685,1
    - Dst: pymain_run_module
      Src: /src/cpython/Modules/main.c:688,1
    - Dst: pymain_run_file
      Src: /src/cpython/Modules/main.c:691,1
    - Dst: pymain_run_stdin
      Src: /src/cpython/Modules/main.c:694,1
    - Dst: pymain_repl
      Src: /src/cpython/Modules/main.c:697,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:701,1
    - Dst: _PyInterpreterState_SetNotRunningMain
      Src: /src/cpython/Modules/main.c:704,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:705,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/cpython/Modules/main.c
    - condition: (config->sys_path_0 == NULL)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/cpython/Modules/main.c
    constantsTouched: []
    func_position:
      end: 706
      start: 609
    functionDepth: 5
    functionLinenumber: 609
    functionLinenumberEnd: 706
    functionName: pymain_run_python
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyPathConfig_UpdateGlobal
    - _PyStatus_EXCEPTION
    - pymain_import_readline
    - Py_CLEAR
    - PyMem_Free
    - _PyMem_RawWcsdup
    - PyUnicode_AsWideCharString
    - PyErr_Occurred
    - pymain_sys_path_add_path0
    - pymain_run_module
    - pymain_run_file
    - pymain_header
    - pymain_run_command
    - _PyPathConfig_ComputeSysPath0
    - Py_DECREF
    - pymain_get_importer
    - Py_NewRef
    - _PyInterpreterState_SetRunningMain
    - pymain_repl
    - pymain_exit_err_print
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetConfig
    - _PyInterpreterState_SetNotRunningMain
    - pymain_run_stdin
    - assert
    linkageType: ''
    returnType: void
    signature: void pymain_run_python(int *exitcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_Fini2
      Src: /src/cpython/Modules/main.c:714,1
    - Dst: _PyPathConfig_ClearGlobal
      Src: /src/cpython/Modules/main.c:720,1
    - Dst: _Py_ClearArgcArgv
      Src: /src/cpython/Modules/main.c:721,1
    - Dst: _PyRuntime_Finalize
      Src: /src/cpython/Modules/main.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 723
    functionName: pymain_free
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyImport_Fini2
    - _Py_ClearArgcArgv
    - _PyRuntime_Finalize
    - _PyPathConfig_ClearGlobal
    linkageType: ''
    returnType: void
    signature: void pymain_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/main.c:734,1
    - Dst: perror
      Src: /src/cpython/Modules/main.c:735,1
    - Dst: kill
      Src: /src/cpython/Modules/main.c:737,1
    - Dst: getpid
      Src: /src/cpython/Modules/main.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 749
    functionName: exit_sigint
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - perror
    - kill
    - getpid
    linkageType: ''
    returnType: int
    signature: int exit_sigint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/cpython/Modules/main.c:755,1
    - Dst: pymain_free
      Src: /src/cpython/Modules/main.c:759,1
    - Dst: _Py_NO_RETURN::Py_ExitStatusException
      Src: /src/cpython/Modules/main.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 762
    functionName: _Py_NO_RETURN::pymain_exit_error
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyStatus_IS_EXIT
    - _Py_NO_RETURN::Py_ExitStatusException
    - pymain_free
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      pymain_exit_error(PyStatus status)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymain_run_python
      Src: /src/cpython/Modules/main.c:772,1
    - Dst: Py_FinalizeEx
      Src: /src/cpython/Modules/main.c:774,1
    - Dst: pymain_free
      Src: /src/cpython/Modules/main.c:780,1
    - Dst: exit_sigint
      Src: /src/cpython/Modules/main.c:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 765
    functionDepth: 6
    functionLinenumber: 765
    functionLinenumberEnd: 787
    functionName: Py_RunMain
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_run_python
    - Py_FinalizeEx
    - exit_sigint
    - pymain_free
    linkageType: ''
    returnType: int
    signature: int Py_RunMain(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymain_init
      Src: /src/cpython/Modules/main.c:793,1
    - Dst: _PyStatus_IS_EXIT
      Src: /src/cpython/Modules/main.c:794,1
    - Dst: pymain_free
      Src: /src/cpython/Modules/main.c:795,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:798,1
    - Dst: pymain_exit_error
      Src: /src/cpython/Modules/main.c:799,1
    - Dst: Py_RunMain
      Src: /src/cpython/Modules/main.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 790
    functionDepth: 7
    functionLinenumber: 790
    functionLinenumberEnd: 803
    functionName: pymain_main
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_RunMain
    - _PyStatus_IS_EXIT
    - _PyStatus_EXCEPTION
    - pymain_exit_error
    - pymain_init
    - pymain_free
    linkageType: ''
    returnType: int
    signature: int pymain_main(_PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymain_main
      Src: /src/cpython/Modules/main.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 806
    functionDepth: 8
    functionLinenumber: 806
    functionLinenumberEnd: 815
    functionName: Py_Main
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_main
    linkageType: ''
    returnType: int
    signature: int Py_Main(int argc, wchar_t **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymain_main
      Src: /src/cpython/Modules/main.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 818
    functionDepth: 8
    functionLinenumber: 818
    functionLinenumberEnd: 827
    functionName: Py_BytesMain
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_main
    linkageType: ''
    returnType: int
    signature: int Py_BytesMain(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/grpmodule.c:51,1
    - Dst: assert
      Src: /src/cpython/Modules/grpmodule.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Modules/grpmodule.c
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: get_grp_state
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: grpmodulestate
    signature: 'grpmodulestate *

      get_grp_state(PyObject *module)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/grpmodule.c:72,1
    - Dst: get_grp_state
      Src: /src/cpython/Modules/grpmodule.c:72,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/grpmodule.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:77,1
    - Dst: memcpy
      Src: /src/cpython/Modules/grpmodule.c:83,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/grpmodule.c:87,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/grpmodule.c:88,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/grpmodule.c:89,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:90,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:91,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:94,1
    - Dst: SET
      Src: /src/cpython/Modules/grpmodule.c:98,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/grpmodule.c:98,1
    - Dst: SET
      Src: /src/cpython/Modules/grpmodule.c:100,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/grpmodule.c:100,1
    - Dst: SET
      Src: /src/cpython/Modules/grpmodule.c:102,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/grpmodule.c:103,1
    - Dst: SET
      Src: /src/cpython/Modules/grpmodule.c:105,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/grpmodule.c:105,1
    - Dst: SET
      Src: /src/cpython/Modules/grpmodule.c:106,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/grpmodule.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - module
    - p
    argTypes:
    - PyObject*
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 115
    functionName: mkgrent
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - get_grp_state
    - Py_DECREF
    - Py_INCREF
    - PyList_Append
    - PyErr_Occurred
    - _PyLong_FromGid
    - memcpy
    - SET
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mkgrent(PyObject *module, 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: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: SET
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(i,val)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/grpmodule.c:137,1
    - Dst: sysconf
      Src: /src/cpython/Modules/grpmodule.c:147,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/grpmodule.c:153,1
    - Dst: getgrgid_r
      Src: /src/cpython/Modules/grpmodule.c:160,1
    - Dst: getgrgid
      Src: /src/cpython/Modules/grpmodule.c:179,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/grpmodule.c:183,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/grpmodule.c:185,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/grpmodule.c:187,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/grpmodule.c:189,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/grpmodule.c:192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:193,1
    - Dst: mkgrent
      Src: /src/cpython/Modules/grpmodule.c:196,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/grpmodule.c:198,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/grpmodule.c:200,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - module
    - id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 203
    functionName: grp_getgrgid_impl
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_RawFree
    - _PyLong_FromGid
    - _Py_Gid_Converter
    - PyMem_RawRealloc
    - getgrgid_r
    - PyMutex_Unlock
    - mkgrent
    - PyErr_Format
    - sysconf
    - PyErr_NoMemory
    - getgrgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrgid_impl(PyObject *module, PyObject *id)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/grpmodule.c:224,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/grpmodule.c:227,1
    - Dst: sysconf
      Src: /src/cpython/Modules/grpmodule.c:236,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/grpmodule.c:242,1
    - Dst: getgrnam_r
      Src: /src/cpython/Modules/grpmodule.c:249,1
    - Dst: getgrnam
      Src: /src/cpython/Modules/grpmodule.c:268,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/grpmodule.c:272,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/grpmodule.c:275,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/grpmodule.c:278,1
    - Dst: mkgrent
      Src: /src/cpython/Modules/grpmodule.c:282,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/grpmodule.c:284,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/grpmodule.c:287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:288,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 290
    functionName: grp_getgrnam_impl
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_RawFree
    - getgrnam_r
    - PyUnicode_EncodeFSDefault
    - PyMem_RawRealloc
    - PyMutex_Unlock
    - mkgrent
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - getgrnam
    - sysconf
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrnam_impl(PyObject *module, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/grpmodule.c:305,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/grpmodule.c:310,1
    - Dst: setgrent
      Src: /src/cpython/Modules/grpmodule.c:311,1
    - Dst: getgrent
      Src: /src/cpython/Modules/grpmodule.c:314,1
    - Dst: mkgrent
      Src: /src/cpython/Modules/grpmodule.c:319,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/grpmodule.c:320,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/grpmodule.c:321,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/grpmodule.c:322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/grpmodule.c:325,1
    - Dst: endgrent
      Src: /src/cpython/Modules/grpmodule.c:329,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/grpmodule.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 332
    functionName: grp_getgrall_impl
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - getgrent
    - PyList_Append
    - setgrent
    - PyMutex_Lock
    - mkgrent
    - PyMutex_Unlock
    - Py_CLEAR
    - endgrent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrall_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_grp_state
      Src: /src/cpython/Modules/grpmodule.c:360,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/grpmodule.c:362,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/grpmodule.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: grpmodule_exec
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyStructSequence_NewType
    - get_grp_state
    linkageType: ''
    returnType: int
    signature: int grpmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/grpmodule.c:380,1
    - Dst: get_grp_state
      Src: /src/cpython/Modules/grpmodule.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: grpmodule_traverse
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - get_grp_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int grpmodule_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/grpmodule.c:385,1
    - Dst: get_grp_state
      Src: /src/cpython/Modules/grpmodule.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: grpmodule_clear
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - get_grp_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int grpmodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grpmodule_clear
      Src: /src/cpython/Modules/grpmodule.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: grpmodule_free
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - grpmodule_clear
    linkageType: ''
    returnType: void
    signature: void grpmodule_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/grpmodule.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: PyInit_grp
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_grp(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sysconfig.c:24,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_sysconfig.c:28,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sysconfig.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dict
    - key
    - str_value
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: add_string_value
    functionSourceFile: /src/cpython/Modules/_sysconfig.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int add_string_value(PyObject *dict, const char *key, const char *str_value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_sysconfig.c:45,1
    - Dst: add_string_value
      Src: /src/cpython/Modules/_sysconfig.c:51,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sysconfig.c:52,1
    - Dst: add_string_value
      Src: /src/cpython/Modules/_sysconfig.c:55,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sysconfig.c:56,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_sysconfig.c:62,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_sysconfig.c:64,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_sysconfig.c:66,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sysconfig.c:67,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_sysconfig.c:72,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_sysconfig.c:74,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_sysconfig.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sysconfig.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 82
    functionName: _sysconfig_config_vars_impl
    functionSourceFile: /src/cpython/Modules/_sysconfig.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - add_string_value
    - Py_DECREF
    - _PyLong_GetOne
    - PyDict_SetItemString
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sysconfig_config_vars_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_sysconfig.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: PyInit__sysconfig
    functionSourceFile: /src/cpython/Modules/_sysconfig.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sysconfig(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: IN_MULTICAST
    functionSourceFile: /src/cpython/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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: IN_EXPERIMENTAL
    functionSourceFile: /src/cpython/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: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: GET_CANONNAME
    functionSourceFile: /src/cpython/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: 184
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 184
    functionName: GET_AI
    functionSourceFile: /src/cpython/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: 199
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 199
    functionName: GET_AI
    functionSourceFile: /src/cpython/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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: ERR
    functionSourceFile: /src/cpython/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: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: gai_strerror
    functionSourceFile: /src/cpython/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      gai_strerror(int ecode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Modules/getaddrinfo.c:219,1
    - Dst: free
      Src: /src/cpython/Modules/getaddrinfo.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: freeaddrinfo
    functionSourceFile: /src/cpython/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeaddrinfo(struct addrinfo *ai)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Modules/getaddrinfo.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: str_isnumber
    functionSourceFile: /src/cpython/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - Py_ISDIGIT
    linkageType: ''
    returnType: int
    signature: int str_isnumber(const char *p)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/cpython/Modules/getaddrinfo.c:257,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/getaddrinfo.c:258,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:285,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:287,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:296,1
    - Dst: memcpy
      Src: /src/cpython/Modules/getaddrinfo.c:298,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:320,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:326,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:330,1
    - Dst: str_isnumber
      Src: /src/cpython/Modules/getaddrinfo.c:339,1
    - Dst: strtol
      Src: /src/cpython/Modules/getaddrinfo.c:345,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:347,1
    - Dst: htons
      Src: /src/cpython/Modules/getaddrinfo.c:349,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:355,1
    - Dst: fprintf
      Src: /src/cpython/Modules/getaddrinfo.c:370,1
    - Dst: getservbyname
      Src: /src/cpython/Modules/getaddrinfo.c:373,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:374,1
    - Dst: strcmp
      Src: /src/cpython/Modules/getaddrinfo.c:377,1
    - Dst: strcmp
      Src: /src/cpython/Modules/getaddrinfo.c:380,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:384,1
    - Dst: GET_AI
      Src: /src/cpython/Modules/getaddrinfo.c:404,1
    - Dst: GET_AI
      Src: /src/cpython/Modules/getaddrinfo.c:409,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:421,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/getaddrinfo.c:426,1
    - Dst: ntohl
      Src: /src/cpython/Modules/getaddrinfo.c:435,1
    - Dst: IN_MULTICAST
      Src: /src/cpython/Modules/getaddrinfo.c:436,1
    - Dst: IN_EXPERIMENTAL
      Src: /src/cpython/Modules/getaddrinfo.c:436,1
    - Dst: GET_AI
      Src: /src/cpython/Modules/getaddrinfo.c:454,1
    - Dst: get_name
      Src: /src/cpython/Modules/getaddrinfo.c:466,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:469,1
    - Dst: ERR
      Src: /src/cpython/Modules/getaddrinfo.c:474,1
    - Dst: get_addr
      Src: /src/cpython/Modules/getaddrinfo.c:477,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/getaddrinfo.c:488,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 181
    argCount: 4
    argNames:
    - hostname
    - servname
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 492
    functionName: getaddrinfo
    functionSourceFile: /src/cpython/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - ntohl
    - getservbyname
    - freeaddrinfo
    - IN_MULTICAST
    - get_name
    - get_addr
    - IN_EXPERIMENTAL
    - getenv
    - inet_pton
    - htons
    - strcmp
    - fprintf
    - memcpy
    - str_isnumber
    - GET_AI
    - ERR
    - strtol
    linkageType: ''
    returnType: int
    signature: "int getaddrinfo(const char*hostname, const char*servname,\n            const
      struct addrinfo *hints, struct addrinfo **res)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getipnodebyaddr
      Src: /src/cpython/Modules/getaddrinfo.c:507,1
    - Dst: gethostbyaddr
      Src: /src/cpython/Modules/getaddrinfo.c:509,1
    - Dst: GET_AI
      Src: /src/cpython/Modules/getaddrinfo.c:512,1
    - Dst: GET_CANONNAME
      Src: /src/cpython/Modules/getaddrinfo.c:513,1
    - Dst: GET_AI
      Src: /src/cpython/Modules/getaddrinfo.c:515,1
    - Dst: freehostent
      Src: /src/cpython/Modules/getaddrinfo.c:519,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/getaddrinfo.c:525,1
    - Dst: freehostent
      Src: /src/cpython/Modules/getaddrinfo.c:528,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - addr
    - gai_afd
    - res
    - numaddr
    - pai
    - port0
    argTypes:
    - char*
    - struct gai_afd*
    - struct addrinfo**
    - char*
    - struct addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 533
    functionName: get_name
    functionSourceFile: /src/cpython/Modules/getaddrinfo.c
    functionUses: 1
    functionsReached:
    - GET_CANONNAME
    - freehostent
    - freeaddrinfo
    - gethostbyaddr
    - getipnodebyaddr
    - GET_AI
    linkageType: ''
    returnType: int
    signature: "int get_name(const char *addr, struct gai_afd *gai_afd, struct addrinfo
      **res,\n         char *numaddr, struct addrinfo *pai, int port0)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getipnodebyname
      Src: /src/cpython/Modules/getaddrinfo.c:552,1
    - Dst: getipnodebyname
      Src: /src/cpython/Modules/getaddrinfo.c:555,1
    - Dst: gethostbyname
      Src: /src/cpython/Modules/getaddrinfo.c:557,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/cpython/Modules/getaddrinfo.c:598,1
    - Dst: GET_AI
      Src: /src/cpython/Modules/getaddrinfo.c:611,1
    - Dst: memcpy
      Src: /src/cpython/Modules/getaddrinfo.c:613,1
    - Dst: memcpy
      Src: /src/cpython/Modules/getaddrinfo.c:615,1
    - Dst: GET_AI
      Src: /src/cpython/Modules/getaddrinfo.c:618,1
    - Dst: GET_CANONNAME
      Src: /src/cpython/Modules/getaddrinfo.c:621,1
    - Dst: freehostent
      Src: /src/cpython/Modules/getaddrinfo.c:626,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/getaddrinfo.c:632,1
    - Dst: freehostent
      Src: /src/cpython/Modules/getaddrinfo.c:635,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 5
    argNames:
    - hostname
    - af
    - res
    - pai
    - port0
    argTypes:
    - char*
    - int
    - struct addrinfo**
    - struct addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 640
    functionName: get_addr
    functionSourceFile: /src/cpython/Modules/getaddrinfo.c
    functionUses: 1
    functionsReached:
    - GET_CANONNAME
    - freehostent
    - memcpy
    - freeaddrinfo
    - getipnodebyname
    - GET_AI
    - IN6_IS_ADDR_V4MAPPED
    - gethostbyname
    linkageType: ''
    returnType: int
    signature: "int get_addr(const char *hostname, int af, struct addrinfo **res,\n
      \        struct addrinfo *pai, int port0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/syslogmodule.c:77,1
    - Dst: PyInterpreterState_Main
      Src: /src/cpython/Modules/syslogmodule.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: is_main_interpreter
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - PyInterpreterState_Main
    linkageType: ''
    returnType: int
    signature: int is_main_interpreter(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Modules/syslogmodule.c:94,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/syslogmodule.c:98,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/syslogmodule.c:100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:105,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/syslogmodule.c:109,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/syslogmodule.c:110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:111,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/syslogmodule.c:113,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/syslogmodule.c:116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:117,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/syslogmodule.c:120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:122,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/syslogmodule.c:126,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/syslogmodule.c:128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:129,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/syslogmodule.c:133,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/syslogmodule.c:133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 136
    functionName: syslog_get_argv
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - PySys_GetOptionalAttrString
    - Py_DECREF
    - PyUnicode_GET_LENGTH
    - PyUnicode_Substring
    - Py_SETREF
    - PyUnicode_FindChar
    - PyList_Size
    - PyUnicode_Check
    - PyErr_Clear
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_get_argv(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_main_interpreter
      Src: /src/cpython/Modules/syslogmodule.c:157,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/syslogmodule.c:158,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/syslogmodule.c:165,1
    - Dst: syslog_get_argv
      Src: /src/cpython/Modules/syslogmodule.c:169,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/syslogmodule.c:170,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/syslogmodule.c:180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:182,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/syslogmodule.c:186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/syslogmodule.c:187,1
    - Dst: openlog
      Src: /src/cpython/Modules/syslogmodule.c:191,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/syslogmodule.c:193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - module
    - ident
    - logopt
    - facility
    argTypes:
    - PyObject*
    - PyObject*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 196
    functionName: syslog_openlog_impl
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - openlog
    - PyErr_SetString
    - is_main_interpreter
    - syslog_get_argv
    - PyUnicode_AsUTF8
    - Py_XSETREF
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsyslog_openlog_impl(PyObject *module, PyObject *ident,
      long logopt,\n                    long facility)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/syslogmodule.c:220,1
    - Dst: is_main_interpreter
      Src: /src/cpython/Modules/syslogmodule.c:226,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/syslogmodule.c:227,1
    - Dst: syslog_openlog_impl
      Src: /src/cpython/Modules/syslogmodule.c:231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/syslogmodule.c:235,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/syslogmodule.c:241,1
    - Dst: syslog
      Src: /src/cpython/Modules/syslogmodule.c:244,1
    - Dst: syslog
      Src: /src/cpython/Modules/syslogmodule.c:247,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/syslogmodule.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - module
    - group_left_1
    - priority
    - message
    argTypes:
    - PyObject*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 252
    functionName: syslog_syslog_impl
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_SetString
    - is_main_interpreter
    - syslog_openlog_impl
    - Py_XNewRef
    - PySys_Audit
    - syslog
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsyslog_syslog_impl(PyObject *module, int group_left_1,
      int priority,\n                   const char *message)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_main_interpreter
      Src: /src/cpython/Modules/syslogmodule.c:268,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/syslogmodule.c:269,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/syslogmodule.c:273,1
    - Dst: closelog
      Src: /src/cpython/Modules/syslogmodule.c:277,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/syslogmodule.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: syslog_closelog_impl
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - closelog
    - PyErr_SetString
    - is_main_interpreter
    - PySys_Audit
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_closelog_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/syslogmodule.c:297,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/syslogmodule.c:302,1
    - Dst: setlogmask
      Src: /src/cpython/Modules/syslogmodule.c:304,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/syslogmodule.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - maskpri
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: syslog_setlogmask_impl
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PySys_Audit
    - PyMutex_Unlock
    - setlogmask
    linkageType: ''
    returnType: long
    signature: long syslog_setlogmask_impl(PyObject *module, long maskpri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG_MASK
      Src: /src/cpython/Modules/syslogmodule.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - pri
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 324
    functionName: syslog_LOG_MASK_impl
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - LOG_MASK
    linkageType: ''
    returnType: long
    signature: long syslog_LOG_MASK_impl(PyObject *module, long pri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG_UPTO
      Src: /src/cpython/Modules/syslogmodule.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - pri
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: syslog_LOG_UPTO_impl
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - LOG_UPTO
    linkageType: ''
    returnType: long
    signature: long syslog_LOG_UPTO_impl(PyObject *module, long pri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:365,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:366,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:367,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:368,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:369,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:370,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:371,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:372,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:375,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:376,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:377,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:379,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:382,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:385,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:389,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:390,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:391,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:392,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:393,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:394,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:395,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:396,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:397,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:398,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:399,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:400,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:401,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:402,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:417,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:418,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:419,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:420,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:423,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:427,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:431,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:435,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:439,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:443,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/syslogmodule.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 451
    functionName: syslog_exec
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - ADD_INT_MACRO
    linkageType: ''
    returnType: int
    signature: int syslog_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(module, macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/syslogmodule.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: PyInit_syslog
    functionSourceFile: /src/cpython/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_syslog(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_lzmamodule.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buffer
    - max_length
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - Py_ssize_t
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: OutputBuffer_InitAndGrow
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 9
    functionsReached:
    - _BlocksOutputBuffer_InitAndGrow
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_InitAndGrow(_BlocksOutputBuffer *buffer, Py_ssize_t
      max_length,\n                         uint8_t **next_out, size_t *avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Grow
      Src: /src/cpython/Modules/_lzmamodule.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - next_out
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: OutputBuffer_Grow
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 10
    functionsReached:
    - _BlocksOutputBuffer_Grow
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t OutputBuffer_Grow(_BlocksOutputBuffer *buffer,\n                  uint8_t
      **next_out, size_t *avail_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_GetDataSize
      Src: /src/cpython/Modules/_lzmamodule.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: OutputBuffer_GetDataSize
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 5
    functionsReached:
    - _BlocksOutputBuffer_GetDataSize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t OutputBuffer_GetDataSize(_BlocksOutputBuffer *buffer, size_t
      avail_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Finish
      Src: /src/cpython/Modules/_lzmamodule.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: OutputBuffer_Finish
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 10
    functionsReached:
    - _BlocksOutputBuffer_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OutputBuffer_Finish(_BlocksOutputBuffer *buffer, size_t avail_out)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_OnError
      Src: /src/cpython/Modules/_lzmamodule.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - _BlocksOutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: OutputBuffer_OnError
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 10
    functionsReached:
    - _BlocksOutputBuffer_OnError
    linkageType: ''
    returnType: void
    signature: void OutputBuffer_OnError(_BlocksOutputBuffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: ACQUIRE_LOCK
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 6
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: RELEASE_LOCK
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE_LOCK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_lzmamodule.c:93,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: get_lzma_state
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _lzma_state
    signature: '_lzma_state *

      get_lzma_state(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: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: Compressor_CAST
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Compressor_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: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: Decompressor_CAST
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Decompressor_CAST(op)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:145,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:148,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:157,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:160,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:163,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:166,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - state
    - lzret
    argTypes:
    - _lzma_state*
    - lzma_ret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 172
    functionName: catch_lzma_error
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_NoMemory
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int catch_lzma_error(_lzma_state *state, lzma_ret lzret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_lzmamodule.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: PyLzma_Malloc
    functionSourceFile: /src/cpython/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/cpython/Modules/_lzmamodule.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: PyLzma_Free
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void PyLzma_Free(void *opaque, void *ptr)
  - 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: 226
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: INT_TYPE_CONVERTER_FUNC
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TYPE_CONVERTER_FUNC(TYPE, FUNCNAME)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_lzmamodule.c:252,1
    - Dst: _PyLong_UInt32_Converter
      Src: /src/cpython/Modules/_lzmamodule.c:256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:257,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_lzmamodule.c:263,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:265,1
    - Dst: lzma_lzma_preset
      Src: /src/cpython/Modules/_lzmamodule.c:268,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:269,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:270,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_lzmamodule.c:274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:285,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - state
    - spec
    argTypes:
    - _lzma_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 292
    functionName: parse_filter_spec_lzma
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - _PyLong_UInt32_Converter
    - Py_DECREF
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyMem_Free
    - PyMapping_GetOptionalItemString
    - lzma_lzma_preset
    - PyErr_Format
    - PyErr_NoMemory
    linkageType: ''
    returnType: void
    signature: 'void *

      parse_filter_spec_lzma(_lzma_state *state, PyObject *spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_lzmamodule.c:302,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:304,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_lzmamodule.c:309,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - spec
    argTypes:
    - _lzma_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 316
    functionName: parse_filter_spec_delta
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: void
    signature: 'void *

      parse_filter_spec_delta(_lzma_state *state, PyObject *spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_lzmamodule.c:326,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:328,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_lzmamodule.c:333,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - state
    - spec
    argTypes:
    - _lzma_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 339
    functionName: parse_filter_spec_bcj
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: void
    signature: 'void *

      parse_filter_spec_bcj(_lzma_state *state, PyObject *spec)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/_lzmamodule.c:347,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:348,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_lzmamodule.c:352,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:356,1
    - Dst: lzma_vli_converter
      Src: /src/cpython/Modules/_lzmamodule.c:361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:365,1
    - Dst: parse_filter_spec_lzma
      Src: /src/cpython/Modules/_lzmamodule.c:371,1
    - Dst: parse_filter_spec_delta
      Src: /src/cpython/Modules/_lzmamodule.c:374,1
    - Dst: parse_filter_spec_bcj
      Src: /src/cpython/Modules/_lzmamodule.c:382,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 3
    argNames:
    - state
    - spec
    - ptr
    argTypes:
    - _lzma_state*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 388
    functionName: lzma_filter_converter
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - parse_filter_spec_bcj
    - parse_filter_spec_delta
    - PyErr_SetString
    - PyErr_Format
    - PyMapping_GetOptionalItemString
    - lzma_vli_converter
    - PyMapping_Check
    - parse_filter_spec_lzma
    linkageType: ''
    returnType: int
    signature: int lzma_filter_converter(_lzma_state *state, PyObject *spec, void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filters
    argTypes:
    - lzma_filter[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: free_filter_chain
    functionSourceFile: /src/cpython/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/cpython/Modules/_lzmamodule.c:403,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:408,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_lzmamodule.c:416,1
    - Dst: lzma_filter_converter
      Src: /src/cpython/Modules/_lzmamodule.c:417,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lzmamodule.c:420,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - state
    - filters
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_filter[]
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 429
    functionName: parse_filter_chain_spec
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_XDECREF
    - lzma_filter_converter
    - PySequence_Length
    - PyErr_Format
    - free_filter_chain
    linkageType: ''
    returnType: int
    signature: int parse_filter_chain_spec(_lzma_state *state, lzma_filter filters[],
      PyObject *filterspecs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_lzmamodule.c:440,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_lzmamodule.c:444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:446,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_lzmamodule.c:449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - spec
    - key
    - value
    argTypes:
    - PyObject*
    - char*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 453
    functionName: spec_add_field
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int spec_add_field(PyObject *spec, const char *key, unsigned long long
      value)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_lzmamodule.c:460,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:471,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:479,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:480,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:481,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:482,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:487,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:492,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:503,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - f
    argTypes:
    - lzma_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 519
    functionName: build_filter_spec
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - ADD_FIELD
    - Py_DECREF
    - PyDict_New
    - 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: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: ADD_FIELD
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FIELD(SOURCE, FIELD)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_lzmamodule.c:558,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:558,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:559,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_lzmamodule.c:561,1
    - Dst: lzma_code
      Src: /src/cpython/Modules/_lzmamodule.c:571,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:577,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_lzmamodule.c:584,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_lzmamodule.c:590,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_lzmamodule.c:596,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - c
    - data
    - len
    - action
    argTypes:
    - Compressor*
    - uint8_t*
    - size_t
    - lzma_action
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 598
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 598
    functionName: compress
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 5
    functionsReached:
    - catch_lzma_error
    - lzma_code
    - OutputBuffer_Finish
    - OutputBuffer_InitAndGrow
    - PyType_GetModuleState
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - Py_TYPE
    - assert
    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/cpython/Modules/_lzmamodule.c:620,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:622,1
    - Dst: compress
      Src: /src/cpython/Modules/_lzmamodule.c:625,1
    - Dst: RELEASE_LOCK
      Src: /src/cpython/Modules/_lzmamodule.c:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - Compressor*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 629
    functionName: _lzma_LZMACompressor_compress_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - compress
    - ACQUIRE_LOCK
    - PyErr_SetString
    - RELEASE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_compress_impl(Compressor *self, Py_buffer *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/cpython/Modules/_lzmamodule.c:647,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:649,1
    - Dst: compress
      Src: /src/cpython/Modules/_lzmamodule.c:652,1
    - Dst: RELEASE_LOCK
      Src: /src/cpython/Modules/_lzmamodule.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - Compressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 656
    functionName: _lzma_LZMACompressor_flush_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - compress
    - ACQUIRE_LOCK
    - PyErr_SetString
    - RELEASE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_flush_impl(Compressor *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lzma_easy_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:665,1
    - Dst: parse_filter_chain_spec
      Src: /src/cpython/Modules/_lzmamodule.c:669,1
    - Dst: lzma_stream_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:671,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:672,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - state
    - lzs
    - check
    - preset
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_stream*
    - int
    - uint32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 680
    functionName: Compressor_init_xz
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - lzma_easy_encoder
    - lzma_stream_encoder
    - parse_filter_chain_spec
    - free_filter_chain
    linkageType: ''
    returnType: int
    signature: "int Compressor_init_xz(_lzma_state *state, lzma_stream *lzs,\n                   int
      check, uint32_t preset, PyObject *filterspecs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lzma_lzma_preset
      Src: /src/cpython/Modules/_lzmamodule.c:690,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:691,1
    - Dst: lzma_alone_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:694,1
    - Dst: parse_filter_chain_spec
      Src: /src/cpython/Modules/_lzmamodule.c:698,1
    - Dst: lzma_alone_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:702,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:704,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:709,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_lzmamodule.c:711,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:711,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - state
    - lzs
    - preset
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_stream*
    - uint32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 717
    functionName: Compressor_init_alone
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_Format
    - lzma_lzma_preset
    - lzma_alone_encoder
    - parse_filter_chain_spec
    - free_filter_chain
    linkageType: ''
    returnType: int
    signature: int Compressor_init_alone(_lzma_state *state, lzma_stream *lzs, uint32_t
      preset, PyObject *filterspecs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:726,1
    - Dst: parse_filter_chain_spec
      Src: /src/cpython/Modules/_lzmamodule.c:730,1
    - Dst: lzma_raw_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:733,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:734,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - state
    - lzs
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_stream*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 719
    functionDepth: 4
    functionLinenumber: 719
    functionLinenumberEnd: 741
    functionName: Compressor_init_raw
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - PyErr_SetString
    - lzma_raw_encoder
    - parse_filter_chain_spec
    - free_filter_chain
    linkageType: ''
    returnType: int
    signature: int Compressor_init_raw(_lzma_state *state, lzma_stream *lzs, PyObject
      *filterspecs)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_lzmamodule.c:787,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:788,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_lzmamodule.c:789,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:803,1
    - Dst: _PyLong_UInt32_Converter
      Src: /src/cpython/Modules/_lzmamodule.c:808,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:812,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_lzmamodule.c:813,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_lzmamodule.c:823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:825,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:826,1
    - Dst: Compressor_init_xz
      Src: /src/cpython/Modules/_lzmamodule.c:836,1
    - Dst: Compressor_init_alone
      Src: /src/cpython/Modules/_lzmamodule.c:842,1
    - Dst: Compressor_init_raw
      Src: /src/cpython/Modules/_lzmamodule.c:848,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:854,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:862,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/cpython/Modules/_lzmamodule.c
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 864
      start: 776
    functionDepth: 5
    functionLinenumber: 776
    functionLinenumberEnd: 864
    functionName: Compressor_new
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Compressor_init_xz
    - _PyLong_UInt32_Converter
    - Py_DECREF
    - Compressor_init_raw
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyType_GetModuleState
    - PyArg_ParseTupleAndKeywords
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - Compressor_init_alone
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Compressor_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Compressor_CAST
      Src: /src/cpython/Modules/_lzmamodule.c:869,1
    - Dst: lzma_end
      Src: /src/cpython/Modules/_lzmamodule.c:870,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_lzmamodule.c:872,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:874,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_lzmamodule.c:875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 877
    functionName: Compressor_dealloc
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - lzma_end
    - PyTypeObject*::tp_free
    - PyThread_free_lock
    - Compressor_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Compressor_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:888,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 890
    functionName: Compressor_traverse
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Compressor_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_lzmamodule.c:952,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:952,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:953,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_lzmamodule.c:955,1
    - Dst: lzma_code
      Src: /src/cpython/Modules/_lzmamodule.c:963,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:969,1
    - Dst: lzma_get_check
      Src: /src/cpython/Modules/_lzmamodule.c:973,1
    - Dst: OutputBuffer_GetDataSize
      Src: /src/cpython/Modules/_lzmamodule.c:983,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_lzmamodule.c:986,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_lzmamodule.c:994,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_lzmamodule.c:1000,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - d
    - max_length
    argTypes:
    - Decompressor*
    - Py_ssize_t
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 952
        line_start: 952
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1002
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 1002
    functionName: decompress_buf
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 2
    functionsReached:
    - catch_lzma_error
    - lzma_code
    - OutputBuffer_Finish
    - OutputBuffer_InitAndGrow
    - PyType_GetModuleState
    - OutputBuffer_GetDataSize
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - lzma_get_check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress_buf(Decompressor *d, Py_ssize_t max_length)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_lzmamodule.c:1031,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_lzmamodule.c:1033,1
    - Dst: memmove
      Src: /src/cpython/Modules/_lzmamodule.c:1042,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_lzmamodule.c:1046,1
    - Dst: decompress_buf
      Src: /src/cpython/Modules/_lzmamodule.c:1056,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_lzmamodule.c:1065,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_lzmamodule.c:1066,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1082,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:1100,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_lzmamodule.c:1106,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_lzmamodule.c:1108,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_lzmamodule.c:1115,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1123,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    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: 1081
        line_start: 1081
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1125
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1125
    functionName: decompress
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 2
    functionsReached:
    - PyMem_Realloc
    - Py_XDECREF
    - assert
    - memmove
    - PyBytes_FromStringAndSize
    - PyErr_SetNone
    - Py_XSETREF
    - memcpy
    - PyMem_Free
    - decompress_buf
    - PyMem_Malloc
    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/cpython/Modules/_lzmamodule.c:1157,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1159,1
    - Dst: decompress
      Src: /src/cpython/Modules/_lzmamodule.c:1161,1
    - Dst: RELEASE_LOCK
      Src: /src/cpython/Modules/_lzmamodule.c:1162,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: 1164
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1164
    functionName: _lzma_LZMADecompressor_decompress_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - PyErr_SetString
    - decompress
    - RELEASE_LOCK
    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/cpython/Modules/_lzmamodule.c:1172,1
    - Dst: lzma_raw_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1175,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:1176,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - state
    - lzs
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_stream*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1166
    functionDepth: 4
    functionLinenumber: 1166
    functionLinenumberEnd: 1183
    functionName: Decompressor_init_raw
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - lzma_raw_decoder
    - parse_filter_chain_spec
    - free_filter_chain
    linkageType: ''
    returnType: int
    signature: int Decompressor_init_raw(_lzma_state *state, lzma_stream *lzs, PyObject
      *filterspecs)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_lzmamodule.c:1220,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1221,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1225,1
    - Dst: _PyLong_UInt64_Converter
      Src: /src/cpython/Modules/_lzmamodule.c:1229,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1235,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1239,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1244,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_lzmamodule.c:1245,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_lzmamodule.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1258,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_lzmamodule.c:1266,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_lzmamodule.c:1266,1
    - Dst: lzma_auto_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1273,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1274,1
    - Dst: lzma_stream_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1280,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1281,1
    - Dst: lzma_alone_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1288,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1289,1
    - Dst: Decompressor_init_raw
      Src: /src/cpython/Modules/_lzmamodule.c:1296,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:1302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1310,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 4
    argNames:
    - type
    - format
    - memlimit
    - filters
    argTypes:
    - PyTypeObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/cpython/Modules/_lzmamodule.c
    - condition: (state != NULL)
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1312
      start: 1211
    functionDepth: 5
    functionLinenumber: 1211
    functionLinenumberEnd: 1312
    functionName: _lzma_LZMADecompressor_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - Py_DECREF
    - lzma_stream_decoder
    - Decompressor_init_raw
    - _PyLong_UInt64_Converter
    - PyThread_allocate_lock
    - lzma_alone_decoder
    - PyErr_SetString
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - Py_XSETREF
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - lzma_auto_decoder
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lzma_LZMADecompressor_impl(PyTypeObject *type, int format,\n
      \                           PyObject *memlimit, PyObject *filters)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decompressor_CAST
      Src: /src/cpython/Modules/_lzmamodule.c:1317,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:1319,1
    - Dst: lzma_end
      Src: /src/cpython/Modules/_lzmamodule.c:1321,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1322,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_lzmamodule.c:1324,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:1326,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_lzmamodule.c:1327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1329
    functionName: Decompressor_dealloc
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - lzma_end
    - PyTypeObject*::tp_free
    - Py_TYPE
    - Decompressor_CAST
    - PyThread_free_lock
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void Decompressor_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1334,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1336
    functionName: Decompressor_traverse
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Decompressor_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_lzmamodule.c:1405,1
    - Dst: lzma_check_is_supported
      Src: /src/cpython/Modules/_lzmamodule.c:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - check_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1406
    functionName: _lzma_is_check_supported_impl
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma_state
      Src: /src/cpython/Modules/_lzmamodule.c:1427,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1428,1
    - Dst: lzma_filter_converter
      Src: /src/cpython/Modules/_lzmamodule.c:1429,1
    - Dst: _lzma__encode_filter_properties_impl
      Src: /src/cpython/Modules/_lzmamodule.c:1432,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:1437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1427
        line_start: 1427
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1441
      start: 1422
    functionDepth: 3
    functionLinenumber: 1422
    functionLinenumberEnd: 1441
    functionName: _lzma__encode_filter_properties
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - lzma_filter_converter
    - get_lzma_state
    - _lzma__encode_filter_properties_impl
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma__encode_filter_properties(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma_state
      Src: /src/cpython/Modules/_lzmamodule.c:1449,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1450,1
    - Dst: lzma_properties_size
      Src: /src/cpython/Modules/_lzmamodule.c:1452,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1453,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_lzmamodule.c:1456,1
    - Dst: lzma_properties_encode
      Src: /src/cpython/Modules/_lzmamodule.c:1460,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_lzmamodule.c:1461,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1462,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - filter
    argTypes:
    - PyObject*
    - lzma_filter
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1449
        line_start: 1449
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1471
      start: 1443
    functionDepth: 2
    functionLinenumber: 1443
    functionLinenumberEnd: 1471
    functionName: _lzma__encode_filter_properties_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 1
    functionsReached:
    - catch_lzma_error
    - Py_XDECREF
    - PyBytes_FromStringAndSize
    - lzma_properties_size
    - get_lzma_state
    - lzma_properties_encode
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma__encode_filter_properties_impl(PyObject *module, lzma_filter filter)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma_state
      Src: /src/cpython/Modules/_lzmamodule.c:1495,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1496,1
    - Dst: lzma_properties_decode
      Src: /src/cpython/Modules/_lzmamodule.c:1498,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1500,1
    - Dst: build_filter_spec
      Src: /src/cpython/Modules/_lzmamodule.c:1504,1
    - Dst: free
      Src: /src/cpython/Modules/_lzmamodule.c:1508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - module
    - filter_id
    - encoded_props
    argTypes:
    - PyObject*
    - lzma_vli
    - Py_buffer*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1510
      start: 1486
    functionDepth: 2
    functionLinenumber: 1486
    functionLinenumberEnd: 1510
    functionName: _lzma__decode_filter_properties_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - build_filter_spec
    - lzma_properties_decode
    - get_lzma_state
    - free
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lzma__decode_filter_properties_impl(PyObject *module,
      lzma_vli filter_id,\n                                     Py_buffer *encoded_props)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_lzmamodule.c:1517,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_lzmamodule.c:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1518
    functionName: module_add_int_constant
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyLong_FromLongLong
    linkageType: ''
    returnType: int
    signature: int module_add_int_constant(PyObject *m, const char *name, long long
      value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma_state
      Src: /src/cpython/Modules/_lzmamodule.c:1538,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_lzmamodule.c:1540,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1545,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1546,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1547,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1548,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1549,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1550,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1551,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1552,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1553,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1554,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1555,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1556,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1557,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1558,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1559,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1560,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1561,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1562,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1563,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1564,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1565,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1566,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1567,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1568,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1569,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1570,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1571,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1572,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_lzmamodule.c:1574,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lzmamodule.c:1579,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_lzmamodule.c:1584,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lzmamodule.c:1590,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_lzmamodule.c:1594,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lzmamodule.c:1600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1605
    functionName: lzma_exec
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyTuple_New
    - ADD_INT_MACRO
    - ADD_INT_PREFIX_MACRO
    - get_lzma_state
    - PyType_FromModuleAndSpec
    - PyErr_NewExceptionWithDoc
    linkageType: ''
    returnType: int
    signature: int lzma_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    functionName: ADD_INT_PREFIX_MACRO
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_PREFIX_MACRO(module, macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1536
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(module, macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma_state
      Src: /src/cpython/Modules/_lzmamodule.c:1624,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1625,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1626,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1627,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1621
    functionDepth: 2
    functionLinenumber: 1621
    functionLinenumberEnd: 1630
    functionName: lzma_traverse
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - get_lzma_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int lzma_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma_state
      Src: /src/cpython/Modules/_lzmamodule.c:1635,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1636,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1637,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1638,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1632
    functionDepth: 2
    functionLinenumber: 1632
    functionLinenumberEnd: 1641
    functionName: lzma_clear
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - get_lzma_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int lzma_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lzma_clear
      Src: /src/cpython/Modules/_lzmamodule.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1647
    functionName: lzma_free
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - lzma_clear
    linkageType: ''
    returnType: void
    signature: void lzma_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_lzmamodule.c:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1664
    functionName: PyInit__lzma
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__lzma(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/selectmodule.c:106,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: get_select_state
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _selectstate
    signature: '_selectstate *

      get_select_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: _selectstate_by_type
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _selectstate_by_type(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd2obj
    argTypes:
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: reap_obj
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:153,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/selectmodule.c:155,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/selectmodule.c:159,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:163,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/selectmodule.c:166,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/selectmodule.c:167,1
    - Dst: _PyIsSelectable_fd
      Src: /src/cpython/Modules/selectmodule.c:173,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:174,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/selectmodule.c:181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:194,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:199,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - seq
    - set
    - fd2obj
    argTypes:
    - PyObject*
    - fd_set*
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 201
    functionName: seq2set
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - PyErr_SetString
    - PySequence_Fast
    - FD_SET
    - PySequence_Fast_GET_ITEM
    - PyObject_AsFileDescriptor
    - FD_ZERO
    - _PyIsSelectable_fd
    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/cpython/Modules/selectmodule.c:212,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:215,1
    - Dst: FD_ISSET
      Src: /src/cpython/Modules/selectmodule.c:222,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/selectmodule.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - set
    - fd2obj
    argTypes:
    - fd_set*
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 236
    functionName: set2list
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_SetItem
    - Py_DECREF
    - 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/cpython/Modules/selectmodule.c:305,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:307,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:308,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/selectmodule.c:314,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:317,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:325,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:326,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:327,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:329,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:330,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:331,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:332,1
    - Dst: seq2set
      Src: /src/cpython/Modules/selectmodule.c:342,1
    - Dst: seq2set
      Src: /src/cpython/Modules/selectmodule.c:344,1
    - Dst: seq2set
      Src: /src/cpython/Modules/selectmodule.c:346,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:354,1
    - Dst: select
      Src: /src/cpython/Modules/selectmodule.c:360,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:372,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:376,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/selectmodule.c:379,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/selectmodule.c:380,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/selectmodule.c:381,1
    - Dst: _PyTime_AsTimeval_clamp
      Src: /src/cpython/Modules/selectmodule.c:385,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/selectmodule.c:392,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/selectmodule.c:392,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:396,1
    - Dst: set2list
      Src: /src/cpython/Modules/selectmodule.c:404,1
    - Dst: set2list
      Src: /src/cpython/Modules/selectmodule.c:405,1
    - Dst: set2list
      Src: /src/cpython/Modules/selectmodule.c:406,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/selectmodule.c:407,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/selectmodule.c:410,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:412,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:413,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:414,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 5
    argNames:
    - module
    - rlist
    - wlist
    - xlist
    - timeout_obj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 415
    functionName: select_select_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTime_AsTimeval_clamp
    - PyErr_SetString
    - PyErr_CheckSignals
    - PyMem_Free
    - set2list
    - PyErr_Occurred
    - PyTuple_Pack
    - PyErr_SetExcFromWindowsErr
    - _PyTime_AsTimeval
    - PyMem_NEW
    - _PyTime_FromSecondsObject
    - FD_ZERO
    - _PyDeadline_Get
    - PyErr_ExceptionMatches
    - PyErr_SetFromErrno
    - PyErr_NoMemory
    - _PyDeadline_Init
    - select
    - seq2set
    - WSAGetLastError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_select_impl(PyObject *module, PyObject *rlist,
      PyObject *wlist,\n                   PyObject *xlist, PyObject *timeout_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: pollObject_CAST
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pollObject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/selectmodule.c:456,1
    - Dst: PyMem_RESIZE
      Src: /src/cpython/Modules/selectmodule.c:457,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:460,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/selectmodule.c:465,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:466,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/selectmodule.c:468,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/selectmodule.c:469,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - pollObject*
    assertStmts:
    - condition: (i < self->ufd_len)
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (i == self->ufd_len)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 475
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 475
    functionName: update_ufd_array
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RESIZE
    - PyDict_GET_SIZE
    - PyLong_AsLong
    - PyDict_Next
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int update_ufd_array(pollObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:499,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:504,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/selectmodule.c:507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 516
    functionName: select_poll_register_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyLong_FromLong
    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/cpython/Modules/selectmodule.c:541,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/selectmodule.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:546,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:552,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:557,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/selectmodule.c:560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 569
    functionName: select_poll_modify_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyDict_Contains
    - PyErr_SetFromErrno
    - PyLong_FromLong
    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/cpython/Modules/selectmodule.c:589,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/selectmodule.c:593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - pollObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 604
    functionName: select_poll_unregister_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_DelItem
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_unregister_impl(pollObject *self, int fd)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromMillisecondsObject
      Src: /src/cpython/Modules/selectmodule.c:632,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:634,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:635,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:641,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:643,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:665,1
    - Dst: update_ufd_array
      Src: /src/cpython/Modules/selectmodule.c:672,1
    - Dst: poll
      Src: /src/cpython/Modules/selectmodule.c:682,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:689,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:695,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:700,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:709,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:715,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/selectmodule.c:727,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:732,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:735,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:741,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:743,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:746,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:753,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 2
    argNames:
    - self
    - timeout_obj
    argTypes:
    - pollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 755
    functionName: select_poll_poll_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsMilliseconds
    - _PyDeadline_Init
    - PyList_New
    - PyTuple_New
    - Py_DECREF
    - PyLong_FromLong
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - PyList_SET_ITEM
    - _PyDeadline_Get
    - PyErr_ExceptionMatches
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - _PyTime_FromMillisecondsObject
    - poll
    - update_ufd_array
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_poll_impl(pollObject *self, PyObject *timeout_obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/selectmodule.c:761,1
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:761,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/selectmodule.c:769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 775
    functionName: newPollObject
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_DECREF
    - get_select_state
    - PyObject_New
    linkageType: ''
    returnType: pollObject
    signature: 'pollObject *

      newPollObject(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pollObject_CAST
      Src: /src/cpython/Modules/selectmodule.c:780,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:781,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:783,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:785,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/selectmodule.c:786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 788
    functionName: poll_dealloc
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - pollObject_CAST
    - Py_DECREF
    - PyObject_Free
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void poll_dealloc(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: 803
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 803
    functionName: devpollObject_CAST
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: devpollObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 809
    functionName: devpoll_err_closed
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:820,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 839
    functionName: devpoll_flush
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _Py_write
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int devpoll_flush(devpollObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_err_closed
      Src: /src/cpython/Modules/selectmodule.c:846,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:853,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:862,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: 867
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 867
    functionName: internal_devpoll_register
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - devpollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 889
    functionName: select_devpoll_register_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - devpollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 911
    functionName: select_devpoll_modify_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:928,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - devpollObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 923
    functionDepth: 2
    functionLinenumber: 923
    functionLinenumberEnd: 939
    functionName: select_devpoll_unregister_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:966,1
    - Dst: _PyTime_FromMillisecondsObject
      Src: /src/cpython/Modules/selectmodule.c:974,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:976,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:977,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:983,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:985,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:990,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:998,1
    - Dst: ioctl
      Src: /src/cpython/Modules/selectmodule.c:1005,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:1012,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:1016,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:1021,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1028,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:1033,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1038,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1039,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:1041,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:1042,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/selectmodule.c:1045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1047,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:1050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1056,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 2
    argNames:
    - self
    - timeout_obj
    argTypes:
    - devpollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 1058
    functionName: select_devpoll_poll_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsMilliseconds
    - _PyDeadline_Init
    - devpoll_err_closed
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - PyLong_FromLong
    - PyErr_SetString
    - PyList_SET_ITEM
    - _PyDeadline_Get
    - PyErr_ExceptionMatches
    - devpoll_flush
    - PyErr_CheckSignals
    - ioctl
    - PyErr_SetFromErrno
    - _PyTime_FromMillisecondsObject
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1073
    functionName: devpoll_internal_close
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1088,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1094
    functionName: select_devpoll_close_impl
    functionSourceFile: /src/cpython/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:
    - Dst: devpollObject_CAST
      Src: /src/cpython/Modules/selectmodule.c:1099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1104
    functionName: devpoll_get_closed
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - devpollObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      devpoll_get_closed(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_err_closed
      Src: /src/cpython/Modules/selectmodule.c:1118,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1120
    functionName: select_devpoll_fileno_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1142,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1144,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/selectmodule.c:1148,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:1152,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1154,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:1155,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/selectmodule.c:1159,1
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:1159,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1161,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:1162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1171
    functionName: newDevPollObject
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - close
    - PyObject_New
    - get_select_state
    - _Py_open
    - PyMem_Free
    - PyErr_SetFromErrno
    - PyMem_NEW
    - PyErr_NoMemory
    linkageType: ''
    returnType: devpollObject
    signature: 'devpollObject *

      newDevPollObject(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: devpollObject_CAST
      Src: /src/cpython/Modules/selectmodule.c:1176,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1177,1
    - Dst: devpoll_internal_close
      Src: /src/cpython/Modules/selectmodule.c:1178,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:1179,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/selectmodule.c:1180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1182
    functionName: devpoll_dealloc
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Free
    - devpollObject_CAST
    - devpoll_internal_close
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void devpoll_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newPollObject
      Src: /src/cpython/Modules/selectmodule.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1212
    functionDepth: 3
    functionLinenumber: 1212
    functionLinenumberEnd: 1217
    functionName: select_poll_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1231
    functionDepth: 3
    functionLinenumber: 1231
    functionLinenumberEnd: 1236
    functionName: select_devpoll_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1254,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1258,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1259,1
    - Dst: poll
      Src: /src/cpython/Modules/selectmodule.c:1260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1267
    functionName: select_have_broken_poll
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - poll
    - pipe
    - close
    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: 1290
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1290
    functionName: pyEpoll_Object_CAST
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pyEpoll_Object_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1296
    functionName: pyepoll_err_closed
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1311
    functionName: pyepoll_internal_close
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1317,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/selectmodule.c:1318,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:1319,1
    - Dst: epoll_alloc
      Src: /src/cpython/Modules/selectmodule.c:1320,1
    - Dst: epoll_create1
      Src: /src/cpython/Modules/selectmodule.c:1327,1
    - Dst: epoll_create
      Src: /src/cpython/Modules/selectmodule.c:1329,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1338,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/selectmodule.c:1343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - type
    - sizehint
    - fd
    argTypes:
    - PyTypeObject*
    - int
    - SOCKET
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (epoll_alloc != NULL)
      pos:
        line_end: 1318
        line_start: 1318
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 1350
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1350
    functionName: newPyEpoll_Object
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - epoll_create
    - Py_DECREF
    - epoll_create1
    - PyType_GetSlot
    - PyErr_SetFromErrno
    - _Py_set_inheritable
    - epoll_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newPyEpoll_Object(PyTypeObject *type, int sizehint, SOCKET fd)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1377,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1383,1
    - Dst: newPyEpoll_Object
      Src: /src/cpython/Modules/selectmodule.c:1388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - type
    - sizehint
    - flags
    argTypes:
    - PyTypeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1389
    functionName: select_epoll_impl
    functionSourceFile: /src/cpython/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_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:1395,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1396,1
    - Dst: pyepoll_internal_close
      Src: /src/cpython/Modules/selectmodule.c:1397,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/selectmodule.c:1398,1
    - Dst: epoll_free
      Src: /src/cpython/Modules/selectmodule.c:1399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1401
    functionName: pyepoll_dealloc
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - pyEpoll_Object_CAST
    - epoll_free
    - PyType_GetSlot
    - pyepoll_internal_close
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pyepoll_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_internal_close
      Src: /src/cpython/Modules/selectmodule.c:1416,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1422
    functionName: select_epoll_close_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyepoll_internal_close
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_close_impl(pyEpoll_Object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pyEpoll_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1433
    functionName: pyepoll_get_closed
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyEpoll_Object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyepoll_get_closed(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_err_closed
      Src: /src/cpython/Modules/selectmodule.c:1446,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1441
    functionDepth: 2
    functionLinenumber: 1441
    functionLinenumberEnd: 1448
    functionName: select_epoll_fileno_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyepoll_err_closed
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      select_epoll_fromfd_impl(PyTypeObject *type, int fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_err_closed
      Src: /src/cpython/Modules/selectmodule.c:1477,1
    - Dst: epoll_ctl
      Src: /src/cpython/Modules/selectmodule.c:1485,1
    - Dst: epoll_ctl
      Src: /src/cpython/Modules/selectmodule.c:1493,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - epfd
    - op
    - fd
    - events
    argTypes:
    - int
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1470
    functionDepth: 2
    functionLinenumber: 1470
    functionLinenumberEnd: 1506
    functionName: pyepoll_internal_ctl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - epoll_ctl
    - pyepoll_err_closed
    - PyErr_SetFromErrno
    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/cpython/Modules/selectmodule.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pyEpoll_Object*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1521
    functionDepth: 3
    functionLinenumber: 1521
    functionLinenumberEnd: 1527
    functionName: select_epoll_register_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pyEpoll_Object*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1540
    functionDepth: 3
    functionLinenumber: 1540
    functionLinenumberEnd: 1546
    functionName: select_epoll_modify_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - pyEpoll_Object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1557
    functionDepth: 3
    functionLinenumber: 1557
    functionLinenumberEnd: 1562
    functionName: select_epoll_unregister_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/selectmodule.c:1590,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/selectmodule.c:1595,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:1597,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1598,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:1604,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1606,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:1621,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:1629,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:1635,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:1637,1
    - Dst: epoll_wait
      Src: /src/cpython/Modules/selectmodule.c:1644,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:1651,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:1655,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:1660,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1666,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:1670,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/selectmodule.c:1676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:1678,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:1681,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:1685,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 3
    argNames:
    - self
    - timeout_obj
    - maxevents
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1687
    functionName: select_epoll_poll_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsMilliseconds
    - _PyDeadline_Init
    - pyepoll_err_closed
    - PyList_New
    - Py_BuildValue
    - Py_CLEAR
    - PyErr_SetString
    - PyList_SET_ITEM
    - _PyDeadline_Get
    - PyErr_NoMemory
    - PyErr_ExceptionMatches
    - PyErr_CheckSignals
    - PyMem_Free
    - PyMem_New
    - PyErr_SetFromErrno
    - PyErr_Format
    - epoll_wait
    - _PyTime_FromSecondsObject
    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/cpython/Modules/selectmodule.c:1700,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/selectmodule.c:1702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1695
    functionDepth: 2
    functionLinenumber: 1695
    functionLinenumberEnd: 1703
    functionName: select_epoll___enter___impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - pyepoll_err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll___enter___impl(pyEpoll_Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:1720,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1720,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/selectmodule.c:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - exc_tb
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1715
    functionDepth: 1
    functionLinenumber: 1715
    functionLinenumberEnd: 1722
    functionName: select_epoll___exit___impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - _selectstate_by_type
    - Py_TYPE
    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: 1796
      start: 1795
    functionDepth: 0
    functionLinenumber: 1795
    functionLinenumberEnd: 1796
    functionName: kqueue_event_Object_CAST
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kqueue_event_Object_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1797
    functionName: kqueue_event_Check
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kqueue_event_Check(op, state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1804
    functionName: kqueue_queue_Object_CAST
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kqueue_queue_Object_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1885
    functionName: KQ_OFF
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KQ_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_event_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:1899,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/selectmodule.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1896
    functionDepth: 1
    functionLinenumber: 1896
    functionLinenumberEnd: 1905
    functionName: kqueue_event_repr
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - kqueue_event_Object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kqueue_event_repr(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_event_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:1917,1
    - Dst: EV_SET
      Src: /src/cpython/Modules/selectmodule.c:1918,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/selectmodule.c:1920,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/selectmodule.c:1928,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/selectmodule.c:1929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1939,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/selectmodule.c:1945,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/selectmodule.c:1946,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1951
    functionName: kqueue_event_init
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - kqueue_event_Object_CAST
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - EV_SET
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: int
    signature: int kqueue_event_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_event_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:1957,1
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:1958,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1958,1
    - Dst: kqueue_event_Check
      Src: /src/cpython/Modules/selectmodule.c:1960,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:1966,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:1967,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:1968,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:1969,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:1970,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:1971,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Modules/selectmodule.c:1975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - lhs
    - rhs
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1953
    functionDepth: 1
    functionLinenumber: 1953
    functionLinenumberEnd: 1976
    functionName: kqueue_event_richcompare
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - _selectstate_by_type
    - CMP
    - kqueue_event_Object_CAST
    - kqueue_event_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kqueue_event_richcompare(PyObject *lhs, PyObject *rhs, 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: 1966
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1966
    functionName: CMP
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2001
    functionName: kqueue_queue_err_closed
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kqueue_queue_err_closed(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:2005,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2012,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj->kqfd != -1)
      pos:
        line_end: 2011
        line_start: 2011
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2019
      start: 2003
    functionDepth: 2
    functionLinenumber: 2003
    functionLinenumberEnd: 2019
    functionName: kqueue_tracking_after_fork
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - get_select_state
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kqueue_tracking_after_fork(PyObject *module, PyObject *Py_UNUSED(dummy))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:2028,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2029,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/selectmodule.c:2033,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/selectmodule.c:2038,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/selectmodule.c:2042,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2043,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/selectmodule.c:2044,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/selectmodule.c:2048,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/selectmodule.c:2051,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/selectmodule.c:2055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2056,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/selectmodule.c:2057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2060,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2062,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2063,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2064,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2065,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2066,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state->kqueue_open_list == NULL)
      pos:
        line_end: 2028
        line_start: 2028
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (args != NULL)
      pos:
        line_end: 2042
        line_start: 2042
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2068
      start: 2026
    functionDepth: 2
    functionLinenumber: 2026
    functionLinenumberEnd: 2068
    functionName: kqueue_tracking_init
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyCFunction_New
    - PyErr_WarnFormat
    - PyTuple_New
    - PyImport_ImportModuleAttrString
    - Py_BuildValue
    - PyErr_GetRaisedException
    - Py_DECREF
    - PyErr_Occurred
    - Py_XDECREF
    - get_select_state
    - PyObject_Call
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void kqueue_tracking_init(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2073,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:2074,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:2076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - _selectstate*
    - kqueue_queue_Object*
    assertStmts:
    - condition: (self->kqfd >= 0)
      pos:
        line_end: 2072
        line_start: 2072
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2083
      start: 2070
    functionDepth: 1
    functionLinenumber: 2070
    functionLinenumberEnd: 2083
    functionName: kqueue_tracking_add_lock_held
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_New
    - assert
    linkageType: ''
    returnType: int
    signature: int kqueue_tracking_add_lock_held(_selectstate *state, kqueue_queue_Object
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/selectmodule.c:2089,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2089,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/selectmodule.c:2090,1
    - Dst: kqueue_tracking_init
      Src: /src/cpython/Modules/selectmodule.c:2092,1
    - Dst: kqueue_tracking_add_lock_held
      Src: /src/cpython/Modules/selectmodule.c:2094,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/selectmodule.c:2095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - _selectstate*
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2085
    functionDepth: 3
    functionLinenumber: 2085
    functionLinenumberEnd: 2097
    functionName: kqueue_tracking_add
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - kqueue_tracking_init
    - PyType_GetModule
    - Py_TYPE
    - kqueue_tracking_add_lock_held
    linkageType: ''
    returnType: int
    signature: int kqueue_tracking_add(_selectstate *state, kqueue_queue_Object *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2107,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - _selectstate*
    - kqueue_queue_Object*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 2113
        line_start: 2113
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2115
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2115
    functionName: kqueue_tracking_remove_lock_held
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void kqueue_tracking_remove_lock_held(_selectstate *state, kqueue_queue_Object
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/selectmodule.c:2120,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/selectmodule.c:2120,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2120,1
    - Dst: kqueue_tracking_remove_lock_held
      Src: /src/cpython/Modules/selectmodule.c:2121,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/selectmodule.c:2122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - _selectstate*
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2117
    functionDepth: 2
    functionLinenumber: 2117
    functionLinenumberEnd: 2123
    functionName: kqueue_tracking_remove
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - kqueue_tracking_remove_lock_held
    - PyType_GetModule
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void kqueue_tracking_remove(_selectstate *state, kqueue_queue_Object
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:2132,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2132,1
    - Dst: kqueue_tracking_remove
      Src: /src/cpython/Modules/selectmodule.c:2133,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:2135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2125
    functionDepth: 3
    functionLinenumber: 2125
    functionLinenumberEnd: 2140
    functionName: kqueue_queue_internal_close
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _selectstate_by_type
    - kqueue_tracking_remove
    - Py_TYPE
    - close
    linkageType: ''
    returnType: int
    signature: int kqueue_queue_internal_close(kqueue_queue_Object *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2146,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/selectmodule.c:2147,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2148,1
    - Dst: queue_alloc
      Src: /src/cpython/Modules/selectmodule.c:2149,1
    - Dst: kqueue
      Src: /src/cpython/Modules/selectmodule.c:2156,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:2163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2164,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/selectmodule.c:2169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2170,1
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:2175,1
    - Dst: kqueue_tracking_add
      Src: /src/cpython/Modules/selectmodule.c:2176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - SOCKET
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 2145
        line_start: 2145
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (queue_alloc != NULL)
      pos:
        line_end: 2147
        line_start: 2147
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2182
      start: 2142
    functionDepth: 4
    functionLinenumber: 2142
    functionLinenumberEnd: 2182
    functionName: newKqueue_Object
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _selectstate_by_type
    - Py_DECREF
    - PyType_GetSlot
    - queue_alloc
    - PyErr_SetFromErrno
    - _Py_set_inheritable
    - kqueue
    - kqueue_tracking_add
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newKqueue_Object(PyTypeObject *type, SOCKET fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newKqueue_Object
      Src: /src/cpython/Modules/selectmodule.c:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2203
    functionDepth: 5
    functionLinenumber: 2203
    functionLinenumberEnd: 2208
    functionName: select_kqueue_impl
    functionSourceFile: /src/cpython/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_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:2213,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/selectmodule.c:2214,1
    - Dst: kqueue_queue_internal_close
      Src: /src/cpython/Modules/selectmodule.c:2215,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/selectmodule.c:2216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2210
    functionDepth: 4
    functionLinenumber: 2210
    functionLinenumberEnd: 2217
    functionName: kqueue_queue_finalize
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - kqueue_queue_internal_close
    - kqueue_queue_Object_CAST
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void kqueue_queue_finalize(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_internal_close
      Src: /src/cpython/Modules/selectmodule.c:2232,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:2234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2228
    functionDepth: 4
    functionLinenumber: 2228
    functionLinenumberEnd: 2238
    functionName: select_kqueue_close_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - kqueue_queue_internal_close
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_close_impl(kqueue_queue_Object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:2243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2240
    functionDepth: 1
    functionLinenumber: 2240
    functionLinenumberEnd: 2248
    functionName: kqueue_queue_get_closed
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - kqueue_queue_Object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kqueue_queue_get_closed(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_err_closed
      Src: /src/cpython/Modules/selectmodule.c:2261,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:2262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2256
    functionDepth: 2
    functionLinenumber: 2256
    functionLinenumberEnd: 2263
    functionName: select_kqueue_fileno_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - kqueue_queue_err_closed
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_fileno_impl(kqueue_queue_Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newKqueue_Object
      Src: /src/cpython/Modules/selectmodule.c:2281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2275
    functionDepth: 5
    functionLinenumber: 2275
    functionLinenumberEnd: 2282
    functionName: select_kqueue_fromfd_impl
    functionSourceFile: /src/cpython/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: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:2315,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2315,1
    - Dst: kqueue_queue_err_closed
      Src: /src/cpython/Modules/selectmodule.c:2318,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:2321,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/selectmodule.c:2331,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:2333,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/selectmodule.c:2336,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2336,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/selectmodule.c:2340,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:2344,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/selectmodule.c:2352,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/selectmodule.c:2356,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:2357,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/selectmodule.c:2361,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:2363,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:2365,1
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:2368,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2368,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:2370,1
    - Dst: kqueue_event_Check
      Src: /src/cpython/Modules/selectmodule.c:2371,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:2372,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2379,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:2384,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:2386,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:2392,1
    - Dst: kevent
      Src: /src/cpython/Modules/selectmodule.c:2398,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:2406,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:2410,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/selectmodule.c:2415,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:2422,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:2426,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/selectmodule.c:2434,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:2439,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2441,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2442,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2446,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2447,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2448,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2449,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 106
    argCount: 4
    argNames:
    - self
    - changelist
    - maxevents
    - otimeout
    argTypes:
    - kqueue_queue_Object*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2300
    functionDepth: 2
    functionLinenumber: 2300
    functionLinenumberEnd: 2451
    functionName: select_kqueue_control_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - kqueue_event_Check
    - PyErr_CheckSignals
    - PyMem_New
    - Py_CLEAR
    - PyMem_Free
    - kevent
    - PyErr_Format
    - _PyTime_FromSecondsObject
    - _selectstate_by_type
    - _PyDeadline_Get
    - PyErr_SetFromErrno
    - PySequence_Fast_GET_ITEM
    - Py_TYPE
    - PyErr_NoMemory
    - _PyDeadline_Init
    - PySequence_Fast_GET_SIZE
    - kqueue_queue_err_closed
    - PyObject_New
    - PyList_SET_ITEM
    - PySequence_Fast
    - _PyType_Name
    - _PyTime_AsTimespec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_kqueue_control_impl(kqueue_queue_Object *self,
      PyObject *changelist,\n                           int maxevents, PyObject *otimeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:2595,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2597,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2598,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2599,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2600,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2602,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2592
    functionDepth: 2
    functionLinenumber: 2592
    functionLinenumberEnd: 2607
    functionName: _select_traverse
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - get_select_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _select_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:2612,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2614,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2615,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2616,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2617,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2619,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2609
    functionDepth: 2
    functionLinenumber: 2609
    functionLinenumberEnd: 2623
    functionName: _select_clear
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_select_state
    linkageType: ''
    returnType: int
    signature: int _select_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _select_clear
      Src: /src/cpython/Modules/selectmodule.c:2628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2625
    functionDepth: 3
    functionLinenumber: 2625
    functionLinenumberEnd: 2629
    functionName: _select_free
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _select_clear
    linkageType: ''
    returnType: void
    signature: void _select_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2644
    functionDepth: 0
    functionLinenumber: 2644
    functionLinenumberEnd: 2649
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2766
    functionDepth: 0
    functionLinenumber: 2766
    functionLinenumberEnd: 2772
    functionName: ADD_INT_CONST
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_CONST(NAME, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/selectmodule.c:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2894
    functionDepth: 1
    functionLinenumber: 2894
    functionLinenumberEnd: 2898
    functionName: PyInit_select
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_dbmmodule.c:49,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: get_dbm_state
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _dbm_state
    signature: '_dbm_state *

      get_dbm_state(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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: dbmobject_CAST
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dbmobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: check_dbmobject_open
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_dbmobject_open(v, err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_dbmmodule.c:81,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_dbmmodule.c:87,1
    - Dst: dbm_open
      Src: /src/cpython/Modules/_dbmmodule.c:90,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_dbmmodule.c:91,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - state
    - file
    - flags
    - mode
    argTypes:
    - _dbm_state*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: newdbmobject
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetFromErrnoWithFilename
    - dbm_open
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newdbmobject(_dbm_state *state, const char *file, int flags, int mode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_dbmmodule.c:102,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dp
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: dbm_traverse
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dbm_traverse(PyObject *dp, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:109,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_dbmmodule.c:110,1
    - Dst: dbm_close
      Src: /src/cpython/Modules/_dbmmodule.c:112,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:114,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_dbmmodule.c:115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: dbm_dealloc
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - dbmobject_CAST
    - PyTypeObject*::tp_free
    - dbm_close
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dbm_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:122,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:123,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:123,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:126,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:134,1
    - Dst: dbm_nextkey
      Src: /src/cpython/Modules/_dbmmodule.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 140
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 140
    functionName: dbm_length_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_nextkey
    - PyErr_SetString
    - PyType_GetModuleState
    - dbmobject_CAST
    - dbm_firstkey
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dbm_length_lock_held(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:146,1
    - Dst: dbm_length_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:147,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: dbm_length
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - dbm_length_lock_held
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dbm_length(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:155,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:156,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:156,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:157,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:160,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 182
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 182
    functionName: dbm_bool_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyType_GetModuleState
    - dbmobject_CAST
    - dbm_firstkey
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int dbm_bool_lock_held(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:188,1
    - Dst: dbm_bool_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:189,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: dbm_bool
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - dbm_bool_lock_held
    linkageType: ''
    returnType: int
    signature: int dbm_bool(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:199,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:200,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:200,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:201,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:202,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:207,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:208,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_dbmmodule.c:210,1
    - Dst: dbm_error
      Src: /src/cpython/Modules/_dbmmodule.c:213,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:215,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 219
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 219
    functionName: dbm_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - dbm_error
    - PyErr_SetString
    - check_dbmobject_open
    - PyType_GetModuleState
    - PyErr_SetObject
    - PyBytes_FromStringAndSize
    - dbmobject_CAST
    - dbm_fetch
    - Py_TYPE
    - dbm_clearerr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm_subscript_lock_held(PyObject *self, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:225,1
    - Dst: dbm_subscript_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:226,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: dbm_subscript
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - dbm_subscript_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm_subscript(PyObject *self, PyObject *key)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:236,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:238,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:239,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:243,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:243,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:247,1
    - Dst: dbm_delete
      Src: /src/cpython/Modules/_dbmmodule.c:252,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:253,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_dbmmodule.c:257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:260,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:265,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:266,1
    - Dst: dbm_store
      Src: /src/cpython/Modules/_dbmmodule.c:271,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:272,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:273,1
    - Dst: dbm_error
      Src: /src/cpython/Modules/_dbmmodule.c:278,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:279,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - self
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 284
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 284
    functionName: dbm_ass_sub_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - dbm_error
    - PyErr_SetString
    - PyErr_SetObject
    - PyType_GetModuleState
    - dbmobject_CAST
    - dbm_store
    - dbm_delete
    - Py_TYPE
    - dbm_clearerr
    - assert
    linkageType: ''
    returnType: int
    signature: int dbm_ass_sub_lock_held(PyObject *self, PyObject *v, PyObject *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:290,1
    - Dst: dbm_ass_sub_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:291,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: dbm_ass_sub
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dbm_ass_sub_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int dbm_ass_sub(PyObject *self, PyObject *v, PyObject *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbm_close
      Src: /src/cpython/Modules/_dbmmodule.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: _dbm_dbm_close_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_close_impl(dbmobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:331,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:332,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:333,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_dbmmodule.c:334,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:338,1
    - Dst: dbm_nextkey
      Src: /src/cpython/Modules/_dbmmodule.c:339,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:342,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_dbmmodule.c:345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - dbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 353
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 353
    functionName: _dbm_dbm_keys_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_Append
    - check_dbmobject_open
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - dbm_firstkey
    - dbm_nextkey
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_keys_impl(dbmobject *self, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:358,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:362,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:362,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:363,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:365,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_dbmmodule.c:369,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_dbmmodule.c:370,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_dbmmodule.c:375,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_dbmmodule.c:376,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:378,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_dbmmodule.c:382,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_dbmmodule.c:383,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 387
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 387
    functionName: dbm_contains_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyType_GetModuleState
    - dbmobject_CAST
    - PyBytes_Check
    - PyBytes_AS_STRING
    - dbm_fetch
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int dbm_contains_lock_held(PyObject *self, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:393,1
    - Dst: dbm_contains_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:394,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: dbm_contains
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dbm_contains_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int dbm_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:416,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:417,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:420,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:421,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:423,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_dbmmodule.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - cls
    - key
    - key_length
    - default_value
    argTypes:
    - dbmobject*
    - PyTypeObject*
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: _dbm_dbm_get_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - check_dbmobject_open
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - dbm_fetch
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_dbm_dbm_get_impl(dbmobject *self, PyTypeObject *cls,
      const char *key,\n                  Py_ssize_t key_length, PyObject *default_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:449,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:450,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:453,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:454,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:456,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:459,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:467,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:468,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_dbmmodule.c:473,1
    - Dst: dbm_store
      Src: /src/cpython/Modules/_dbmmodule.c:475,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - self
    - cls
    - key
    - key_length
    - default_value
    argTypes:
    - dbmobject*
    - PyTypeObject*
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 449
        line_start: 449
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 482
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 482
    functionName: _dbm_dbm_setdefault_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - Py_INCREF
    - Py_DECREF
    - PyErr_SetString
    - check_dbmobject_open
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - dbm_store
    - dbm_fetch
    - dbm_clearerr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_dbm_dbm_setdefault_impl(dbmobject *self, PyTypeObject
      *cls, const char *key,\n                         Py_ssize_t key_length, PyObject
      *default_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:497,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:498,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:499,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:504,1
    - Dst: dbm_delete
      Src: /src/cpython/Modules/_dbmmodule.c:508,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - dbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 515
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 515
    functionName: _dbm_dbm_clear_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - check_dbmobject_open
    - PyType_GetModuleState
    - dbm_firstkey
    - dbm_delete
    - dbm_clearerr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_clear_impl(dbmobject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_dbmmodule.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: dbm__enter__
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm__enter__(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:526,1
    - Dst: _dbm_dbm_close_impl
      Src: /src/cpython/Modules/_dbmmodule.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: dbm__exit__
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbmobject_CAST
    - _dbm_dbm_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm__exit__(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_dbm_state
      Src: /src/cpython/Modules/_dbmmodule.c:594,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:595,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_dbmmodule.c:596,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_dbmmodule.c:599,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_dbmmodule.c:602,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_dbmmodule.c:606,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_dbmmodule.c:609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:613,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_dbmmodule.c:619,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_dbmmodule.c:623,1
    - Dst: newdbmobject
      Src: /src/cpython/Modules/_dbmmodule.c:624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - module
    - filename
    - flags
    - mode
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 627
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 627
    functionName: dbmopen_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyUnicode_FSConverter
    - strcmp
    - newdbmobject
    - get_dbm_state
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndbmopen_impl(PyObject *module, PyObject *filename, const
      char *flags,\n             int mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_dbm_state
      Src: /src/cpython/Modules/_dbmmodule.c:637,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_dbmmodule.c:638,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_dbmmodule.c:643,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_dbmmodule.c:647,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_dbmmodule.c:650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: _dbm_exec
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyModule_AddStringConstant
    - PyType_FromModuleAndSpec
    - PyErr_NewException
    - get_dbm_state
    linkageType: ''
    returnType: int
    signature: int _dbm_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_dbm_state
      Src: /src/cpython/Modules/_dbmmodule.c:659,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_dbmmodule.c:660,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_dbmmodule.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 663
    functionName: _dbm_module_traverse
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - get_dbm_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _dbm_module_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_dbm_state
      Src: /src/cpython/Modules/_dbmmodule.c:668,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_dbmmodule.c:669,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_dbmmodule.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: _dbm_module_clear
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - get_dbm_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _dbm_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dbm_module_clear
      Src: /src/cpython/Modules/_dbmmodule.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: _dbm_module_free
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - _dbm_module_clear
    linkageType: ''
    returnType: void
    signature: void _dbm_module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_dbmmodule.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: PyInit__dbm
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__dbm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_typingmodule.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: _typing__idfunc
    functionSourceFile: /src/cpython/Modules/_typingmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _typing__idfunc(PyObject *module, PyObject *x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_typingmodule.c:49,1
    - Dst: EXPORT_TYPE
      Src: /src/cpython/Modules/_typingmodule.c:57,1
    - Dst: EXPORT_TYPE
      Src: /src/cpython/Modules/_typingmodule.c:58,1
    - Dst: EXPORT_TYPE
      Src: /src/cpython/Modules/_typingmodule.c:59,1
    - Dst: EXPORT_TYPE
      Src: /src/cpython/Modules/_typingmodule.c:60,1
    - Dst: EXPORT_TYPE
      Src: /src/cpython/Modules/_typingmodule.c:61,1
    - Dst: EXPORT_TYPE
      Src: /src/cpython/Modules/_typingmodule.c:62,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_typingmodule.c:64,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_typingmodule.c:67,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_typingmodule.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 74
    functionName: _typing_exec
    functionSourceFile: /src/cpython/Modules/_typingmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddObjectRef
    - _PyInterpreterState_GET
    - EXPORT_TYPE
    linkageType: ''
    returnType: int
    signature: int _typing_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - typename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: EXPORT_TYPE
    functionSourceFile: /src/cpython/Modules/_typingmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPORT_TYPE(name, typename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_typingmodule.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: PyInit__typing
    functionSourceFile: /src/cpython/Modules/_typingmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__typing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_randommodule.c:104,1
    - Dst: assert
      Src: /src/cpython/Modules/_randommodule.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Modules/_randommodule.c
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: get_random_state
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _randomstate
    signature: '_randomstate *

      get_random_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: _randomstate_type
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _randomstate_type(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: RandomObject_CAST
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RandomObject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 166
    functionName: genrand_uint32
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t genrand_uint32(RandomObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genrand_uint32
      Src: /src/cpython/Modules/_randommodule.c:191,1
    - Dst: genrand_uint32
      Src: /src/cpython/Modules/_randommodule.c:191,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_randommodule.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: _random_Random_random_impl
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - genrand_uint32
    - 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: 214
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: init_genrand
    functionSourceFile: /src/cpython/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/cpython/Modules/_randommodule.c:226,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: 244
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: init_by_array
    functionSourceFile: /src/cpython/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/cpython/Modules/_randommodule.c:256,1
    - Dst: init_by_array
      Src: /src/cpython/Modules/_randommodule.c:259,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_randommodule.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: random_seed_urandom
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - _PyOS_URandomNonblock
    - init_by_array
    linkageType: ''
    returnType: int
    signature: int random_seed_urandom(RandomObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Time
      Src: /src/cpython/Modules/_randommodule.c:267,1
    - Dst: GetCurrentProcessId
      Src: /src/cpython/Modules/_randommodule.c:276,1
    - Dst: getpid
      Src: /src/cpython/Modules/_randommodule.c:278,1
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/_randommodule.c:283,1
    - Dst: init_by_array
      Src: /src/cpython/Modules/_randommodule.c:289,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_randommodule.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 291
    functionName: random_seed_time_pid
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyTime_Monotonic
    - GetCurrentProcessId
    - init_by_array
    - Py_ARRAY_LENGTH
    - PyTime_Time
    - getpid
    linkageType: ''
    returnType: int
    signature: int random_seed_time_pid(RandomObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: random_seed_urandom
      Src: /src/cpython/Modules/_randommodule.c:304,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_randommodule.c:305,1
    - Dst: random_seed_time_pid
      Src: /src/cpython/Modules/_randommodule.c:309,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_randommodule.c:320,1
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Modules/_randommodule.c:321,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_randommodule.c:322,1
    - Dst: _randomstate_type
      Src: /src/cpython/Modules/_randommodule.c:325,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_randommodule.c:325,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_randommodule.c:326,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_randommodule.c:329,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_randommodule.c:332,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Modules/_randommodule.c:338,1
    - Dst: assert
      Src: /src/cpython/Modules/_randommodule.c:339,1
    - Dst: assert
      Src: /src/cpython/Modules/_randommodule.c:340,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_randommodule.c:340,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_randommodule.c:346,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_randommodule.c:348,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_randommodule.c:351,1
    - Dst: init_by_array
      Src: /src/cpython/Modules/_randommodule.c:371,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_randommodule.c:376,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_randommodule.c:377,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/cpython/Modules/_randommodule.c
    - condition: (bits >= 0)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Modules/_randommodule.c
    constantsTouched: []
    func_position:
      end: 379
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 379
    functionName: random_seed
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _randomstate_type
    - PyObject_CallOneArg
    - PyLong_CheckExact
    - PyMem_Free
    - PyErr_Occurred
    - random_seed_time_pid
    - init_by_array
    - PyErr_Clear
    - _PyLong_NumBits
    - PyLong_Check
    - random_seed_urandom
    - Py_TYPE
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyNumber_Absolute
    - _PyLong_AsByteArray
    - PyObject_Hash
    - PyLong_FromSize_t
    - assert
    linkageType: ''
    returnType: int
    signature: int random_seed(RandomObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_seed
      Src: /src/cpython/Modules/_randommodule.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: _random_Random_seed_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_randommodule.c:422,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_randommodule.c:426,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_randommodule.c:429,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_randommodule.c:431,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_randommodule.c:434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_randommodule.c:438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 440
    functionName: _random_Random_getstate_impl
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getstate_impl(RandomObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_randommodule.c:463,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_randommodule.c:464,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_randommodule.c:468,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_randommodule.c:469,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_randommodule.c:475,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_randommodule.c:475,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_randommodule.c:476,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_randommodule.c:481,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_randommodule.c:481,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_randommodule.c:482,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_randommodule.c:485,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 493
    functionName: _random_Random_setstate_impl
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyTuple_Check
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsUnsignedLong
    - PyTuple_GET_ITEM
    - PyTuple_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_setstate_impl(RandomObject *self, PyObject *state)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_randommodule.c:516,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_randommodule.c:519,1
    - Dst: genrand_uint32
      Src: /src/cpython/Modules/_randommodule.c:519,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_randommodule.c:522,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_randommodule.c:526,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_randommodule.c:528,1
    - Dst: genrand_uint32
      Src: /src/cpython/Modules/_randommodule.c:540,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_randommodule.c:546,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_randommodule.c:548,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - k
    argTypes:
    - RandomObject*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 550
    functionName: _random_Random_getrandbits_impl
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - genrand_uint32
    - _PyLong_FromByteArray
    - PyMem_Free
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getrandbits_impl(RandomObject *self, uint64_t k)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _randomstate_type
      Src: /src/cpython/Modules/_randommodule.c:556,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_randommodule.c:556,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_randommodule.c:558,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_randommodule.c:559,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_randommodule.c:560,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_randommodule.c:564,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_randommodule.c:565,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_randommodule.c:569,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_randommodule.c:570,1
    - Dst: random_seed
      Src: /src/cpython/Modules/_randommodule.c:572,1
    - Dst: RandomObject_CAST
      Src: /src/cpython/Modules/_randommodule.c:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 573
    functionName: random_init
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - Py_IS_TYPE
    - _randomstate_type
    - PyTuple_GET_ITEM
    - RandomObject_CAST
    - random_seed
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int random_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:611,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_randommodule.c:613,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_randommodule.c:618,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_randommodule.c:623,1
    - Dst: PyObject_Type
      Src: /src/cpython/Modules/_randommodule.c:628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_randommodule.c:629,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_randommodule.c:634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_randommodule.c:635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 640
    functionName: _random_exec
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - PyObject_Type
    - PyObject_GetAttrString
    - get_random_state
    - PyType_FromModuleAndSpec
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int _random_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_randommodule.c:652,1
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 654
    functionName: _random_traverse
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - get_random_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _random_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_randommodule.c:659,1
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:659,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_randommodule.c:660,1
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 662
    functionName: _random_clear
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_random_state
    linkageType: ''
    returnType: int
    signature: int _random_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _random_clear
      Src: /src/cpython/Modules/_randommodule.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: _random_free
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - _random_clear
    linkageType: ''
    returnType: void
    signature: void _random_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_randommodule.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: PyInit__random
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_curses_panel.c:41,1
    - Dst: assert
      Src: /src/cpython/Modules/_curses_panel.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/cpython/Modules/_curses_panel.c
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: get_curses_panel_state
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _curses_panel_state
    signature: '_curses_panel_state *

      get_curses_panel_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_curses_panel.c:60,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_curses_panel.c:60,1
    - Dst: assert
      Src: /src/cpython/Modules/_curses_panel.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - panel
    argTypes:
    - PyCursesPanelObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/cpython/Modules/_curses_panel.c
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: get_curses_panel_state_by_panel
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: _curses_panel_state
    signature: '_curses_panel_state *

      get_curses_panel_state_by_panel(PyCursesPanelObject *panel)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_curses_panel_state
      Src: /src/cpython/Modules/_curses_panel.c:68,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_curses_panel.c:69,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_curses_panel.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: _curses_panel_clear
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - get_curses_panel_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _curses_panel_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_curses_panel.c:77,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_curses_panel.c:77,1
    - Dst: get_curses_panel_state
      Src: /src/cpython/Modules/_curses_panel.c:78,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_curses_panel.c:79,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_curses_panel.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: _curses_panel_traverse
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - get_curses_panel_state
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _curses_panel_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_clear
      Src: /src/cpython/Modules/_curses_panel.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: _curses_panel_free
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - _curses_panel_clear
    linkageType: ''
    returnType: void
    signature: void _curses_panel_free(void *mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_curses_panel.c:105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_curses_panel.c:105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_curses_panel.c:107,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_curses_panel.c:110,1
    - Dst: assert
      Src: /src/cpython/Modules/_curses_panel.c:114,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_curses_panel.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - state
    - curses_funcname
    - python_funcname
    - return_value
    - default_message
    argTypes:
    - _curses_panel_state*
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Modules/_curses_panel.c
    - condition: (python_funcname != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/cpython/Modules/_curses_panel.c
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: _curses_panel_format_error
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void _curses_panel_format_error(_curses_panel_state *state,\n                           const
      char *curses_funcname,\n                           const char *python_funcname,\n
      \                          const char *return_value,\n                           const
      char *default_message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_format_error
      Src: /src/cpython/Modules/_curses_panel.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - curses_funcname
    - python_funcname
    argTypes:
    - _curses_panel_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: _curses_panel_set_error
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - _curses_panel_format_error
    linkageType: ''
    returnType: void
    signature: "void _curses_panel_set_error(_curses_panel_state *state,\n                        const
      char *curses_funcname,\n                        const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_format_error
      Src: /src/cpython/Modules/_curses_panel.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - curses_funcname
    - python_funcname
    argTypes:
    - _curses_panel_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: _curses_panel_set_null_error
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - _curses_panel_format_error
    linkageType: ''
    returnType: void
    signature: "void _curses_panel_set_null_error(_curses_panel_state *state,\n                             const
      char *curses_funcname,\n                             const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_curses_panel_state
      Src: /src/cpython/Modules/_curses_panel.c:158,1
    - Dst: _curses_panel_set_null_error
      Src: /src/cpython/Modules/_curses_panel.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - curses_funcname
    - python_funcname
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: curses_panel_set_null_error
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 1
    functionsReached:
    - get_curses_panel_state
    - _curses_panel_set_null_error
    linkageType: ''
    returnType: void
    signature: "void curses_panel_set_null_error(PyObject *module,\n                            const
      char *curses_funcname,\n                            const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_curses_panel_state_by_panel
      Src: /src/cpython/Modules/_curses_panel.c:168,1
    - Dst: _curses_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - panel
    - curses_funcname
    - python_funcname
    argTypes:
    - PyCursesPanelObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: curses_panel_panel_set_error
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - _curses_panel_set_error
    - get_curses_panel_state_by_panel
    linkageType: ''
    returnType: void
    signature: "void curses_panel_panel_set_error(PyCursesPanelObject *panel,\n                             const
      char *curses_funcname,\n                             const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_curses_panel_state_by_panel
      Src: /src/cpython/Modules/_curses_panel.c:178,1
    - Dst: _curses_panel_set_null_error
      Src: /src/cpython/Modules/_curses_panel.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - panel
    - curses_funcname
    - python_funcname
    argTypes:
    - PyCursesPanelObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: curses_panel_panel_set_null_error
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - get_curses_panel_state_by_panel
    - _curses_panel_set_null_error
    linkageType: ''
    returnType: void
    signature: "void curses_panel_panel_set_null_error(PyCursesPanelObject *panel,\n
      \                                 const char *curses_funcname,\n                                  const
      char *python_funcname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_curses_panel.c:198,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_curses_panel.c:200,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_curses_panel.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - called_funcname
    - caller_funcname
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (!(called_funcname == NULL && caller_funcname == NULL))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Modules/_curses_panel.c
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: curses_panel_notfound_error
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void curses_panel_notfound_error(const char *called_funcname,\n                            const
      char *caller_funcname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - panel
    - code
    - curses_funcname
    - python_funcname
    argTypes:
    - PyCursesPanelObject*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: curses_panel_panel_check_err
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - curses_panel_panel_set_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncurses_panel_panel_check_err(PyCursesPanelObject *panel,
      int code,\n                             const char *curses_funcname,\n                             const
      char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: _PyCursesPanelObject_CAST
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCursesPanelObject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_curses_panel.c:280,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_curses_panel.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - po
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: insert_lop
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int insert_lop(PyCursesPanelObject *po)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_curses_panel.c:302,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_curses_panel.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - po
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 315
    functionName: remove_lop
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int 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: 325
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 325
    functionName: find_po_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyCursesPanelObject
    signature: 'PyCursesPanelObject *

      find_po_impl(PANEL *pan)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_po_impl
      Src: /src/cpython/Modules/_curses_panel.c:331,1
    - Dst: curses_panel_notfound_error
      Src: /src/cpython/Modules/_curses_panel.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pan
    - called_funcname
    - caller_funcname
    argTypes:
    - PANEL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: find_po
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - find_po_impl
    - curses_panel_notfound_error
    linkageType: ''
    returnType: PyCursesPanelObject
    signature: 'PyCursesPanelObject *

      find_po(PANEL *pan, const char *called_funcname, const char *caller_funcname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bottom_panel
      Src: /src/cpython/Modules/_curses_panel.c:358,1
    - Dst: curses_panel_panel_check_err
      Src: /src/cpython/Modules/_curses_panel.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 5
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: _curses_panel_panel_bottom_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - curses_panel_panel_check_err
    - bottom_panel
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_bottom_impl(PyCursesPanelObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hide_panel
      Src: /src/cpython/Modules/_curses_panel.c:375,1
    - Dst: curses_panel_panel_check_err
      Src: /src/cpython/Modules/_curses_panel.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: _curses_panel_panel_hide_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - hide_panel
    - curses_panel_panel_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_hide_impl(PyCursesPanelObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_panel
      Src: /src/cpython/Modules/_curses_panel.c:389,1
    - Dst: curses_panel_panel_check_err
      Src: /src/cpython/Modules/_curses_panel.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: _curses_panel_panel_show_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - curses_panel_panel_check_err
    - show_panel
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_show_impl(PyCursesPanelObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: top_panel
      Src: /src/cpython/Modules/_curses_panel.c:403,1
    - Dst: curses_panel_panel_check_err
      Src: /src/cpython/Modules/_curses_panel.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: _curses_panel_panel_top_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - top_panel
    - curses_panel_panel_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_top_impl(PyCursesPanelObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_curses_panel.c:413,1
    - Dst: insert_lop
      Src: /src/cpython/Modules/_curses_panel.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:422,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_curses_panel.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - state
    - pan
    - wo
    argTypes:
    - _curses_panel_state*
    - PANEL*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 427
    functionName: PyCursesPanel_New
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - insert_lop
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCursesPanel_New(_curses_panel_state *state, PANEL *pan,\n
      \                 PyCursesWindowObject *wo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesPanelObject_CAST
      Src: /src/cpython/Modules/_curses_panel.c:433,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_curses_panel.c:435,1
    - Dst: panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:438,1
    - Dst: set_panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:439,1
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:440,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_curses_panel.c:441,1
    - Dst: del_panel
      Src: /src/cpython/Modules/_curses_panel.c:444,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_curses_panel.c:444,1
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:445,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_curses_panel.c:446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:449,1
    - Dst: remove_lop
      Src: /src/cpython/Modules/_curses_panel.c:450,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_curses_panel.c:451,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_curses_panel.c:452,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_curses_panel.c:455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 429
    functionDepth: 4
    functionLinenumber: 429
    functionLinenumberEnd: 457
    functionName: PyCursesPanel_Dealloc
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - remove_lop
    - Py_DECREF
    - PyObject_Free
    - PyErr_Occurred
    - panel_userptr
    - PyErr_SetString
    - set_panel_userptr
    - PyErr_FormatUnraisable
    - _PyCursesPanelObject_CAST
    - del_panel
    - curses_panel_panel_set_error
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyCursesPanel_Dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_above
      Src: /src/cpython/Modules/_curses_panel.c:474,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:478,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 480
    functionName: _curses_panel_panel_above_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - find_po
    - Py_XNewRef
    - panel_above
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_above_impl(PyCursesPanelObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_below
      Src: /src/cpython/Modules/_curses_panel.c:497,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:501,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 503
    functionName: _curses_panel_panel_below_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - find_po
    - panel_below
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_below_impl(PyCursesPanelObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_hidden
      Src: /src/cpython/Modules/_curses_panel.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: _curses_panel_panel_hidden_impl
    functionSourceFile: /src/cpython/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: move_panel
      Src: /src/cpython/Modules/_curses_panel.c:535,1
    - Dst: curses_panel_panel_check_err
      Src: /src/cpython/Modules/_curses_panel.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - y
    - x
    argTypes:
    - PyCursesPanelObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 5
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: _curses_panel_panel_move_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - move_panel
    - curses_panel_panel_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_move_impl(PyCursesPanelObject *self, int y, int x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_curses_panel.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: _curses_panel_panel_window_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_window_impl(PyCursesPanelObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:566,1
    - Dst: replace_panel
      Src: /src/cpython/Modules/_curses_panel.c:571,1
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:573,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_curses_panel.c:576,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_curses_panel.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - win
    argTypes:
    - PyCursesPanelObject*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 578
    functionName: _curses_panel_panel_replace_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - replace_panel
    - Py_NewRef
    - Py_SETREF
    - find_po
    - curses_panel_panel_set_error
    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/cpython/Modules/_curses_panel.c:595,1
    - Dst: panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:596,1
    - Dst: set_panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:600,1
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:601,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_curses_panel.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 606
    functionName: _curses_panel_panel_set_userptr_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - panel_userptr
    - set_panel_userptr
    - curses_panel_panel_set_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_panel_panel_set_userptr_impl(PyCursesPanelObject
      *self,\n                                     PyObject *obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:619,1
    - Dst: curses_panel_panel_set_null_error
      Src: /src/cpython/Modules/_curses_panel.c:621,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_curses_panel.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 626
    functionName: _curses_panel_panel_userptr_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - panel_userptr
    - curses_panel_panel_set_null_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_userptr_impl(PyCursesPanelObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_above
      Src: /src/cpython/Modules/_curses_panel.c:681,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:685,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 687
    functionName: _curses_panel_bottom_panel_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - find_po
    - Py_XNewRef
    - panel_above
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_bottom_panel_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_panel
      Src: /src/cpython/Modules/_curses_panel.c:702,1
    - Dst: curses_panel_set_null_error
      Src: /src/cpython/Modules/_curses_panel.c:704,1
    - Dst: get_curses_panel_state
      Src: /src/cpython/Modules/_curses_panel.c:707,1
    - Dst: PyCursesPanel_New
      Src: /src/cpython/Modules/_curses_panel.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - win
    argTypes:
    - PyObject*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 698
    functionDepth: 4
    functionLinenumber: 698
    functionLinenumberEnd: 709
    functionName: _curses_panel_new_panel_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - get_curses_panel_state
    - PyCursesPanel_New
    - curses_panel_set_null_error
    - new_panel
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_new_panel_impl(PyObject *module, PyCursesWindowObject *win)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_below
      Src: /src/cpython/Modules/_curses_panel.c:731,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:735,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 737
    functionName: _curses_panel_top_panel_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - find_po
    - panel_below
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _curses_panel_update_panels_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_curses_panel_state
      Src: /src/cpython/Modules/_curses_panel.c:770,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_curses_panel.c:772,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_curses_panel.c:778,1
    - Dst: import_curses
      Src: /src/cpython/Modules/_curses_panel.c:782,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_curses_panel.c:783,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_curses_panel.c:788,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_curses_panel.c:791,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_curses_panel.c:796,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_curses_panel.c:801,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_curses_panel.c:802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:803,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_curses_panel.c:806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:811,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 814
    functionName: _curses_panel_exec
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_curses_panel_state
    - Py_DECREF
    - PyErr_Occurred
    - PyModule_AddObjectRef
    - PyType_FromModuleAndSpec
    - PyErr_NewException
    - PyModule_GetDict
    - PyDict_SetItemString
    - import_curses
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _curses_panel_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_curses_panel.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 840
    functionName: PyInit__curses_panel
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__curses_panel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - save
    - ','
    - mutex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: PySSL_BEGIN_ALLOW_THREADS_S
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSL_BEGIN_ALLOW_THREADS_S(save, mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - save
    - ','
    - mutex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: PySSL_END_ALLOW_THREADS_S
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSL_END_ALLOW_THREADS_S(save, mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: PySSL_BEGIN_ALLOW_THREADS
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSL_BEGIN_ALLOW_THREADS(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: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: PySSL_END_ALLOW_THREADS
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSL_END_ALLOW_THREADS(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_ssl.c:89,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ssl.c:91,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: Py_off_t_converter
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 3
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLongLong
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: int Py_off_t_converter(PyObject *arg, void *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/cpython/Modules/_ssl.c:128,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ssl.c:137,1
    - Dst: ssl_errno
      Src: /src/cpython/Modules/_ssl.c:139,1
    - Dst: ssl_errno
      Src: /src/cpython/Modules/_ssl.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 144
    functionName: _PySSLFixErrno
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GetModuleHandleW
    - GetProcAddress
    - ssl_errno
    linkageType: ''
    returnType: void
    signature: void _PySSLFixErrno(void)
  - 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: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: PySSLContext_CAST
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLContext_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: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: PySSLSocket_CAST
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLSocket_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: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: PySSLMemoryBIO_CAST
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLMemoryBIO_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: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: PySSLSession_CAST
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLSession_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/_ssl.c:394,1
    - Dst: SSL_get_error
      Src: /src/cpython/Modules/_ssl.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - failed
    - ssl
    - retcode
    argTypes:
    - int
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: _PySSL_errno
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - SSL_get_error
    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: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: ERRSTR1
    functionSourceFile: /src/cpython/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: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: ERRSTR
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRSTR(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl.c:434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 447
    functionName: GET_SOCKET
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyWeakref_GetRef
    - Py_DECREF
    linkageType: ''
    returnType: PySocketSockObject
    signature: PySocketSockObject * GET_SOCKET(PySSLSocket *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: GET_SOCKET_TIMEOUT
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SOCKET_TIMEOUT(sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ssl.c:486,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:487,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_ssl.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: SSLError_str
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_NewRef
    - PyObject_Str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SSLError_str(PyObject *op)'
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:519,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:520,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:521,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_ssl.c:524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:525,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:526,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:529,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_ssl.c:532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:533,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:534,1
    - Dst: ERR_reason_error_string
      Src: /src/cpython/Modules/_ssl.c:538,1
    - Dst: SSL_get_verify_result
      Src: /src/cpython/Modules/_ssl.c:547,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:548,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:555,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:561,1
    - Dst: X509_verify_cert_error_string
      Src: /src/cpython/Modules/_ssl.c:567,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:569,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:571,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_ssl.c:583,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:588,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:592,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_ssl.c:596,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:601,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:606,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:612,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:616,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_ssl.c:619,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:625,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:625,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_ssl.c:629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:630,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:636,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:641,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:646,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:649,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ssl.c:653,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:655,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:656,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:657,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_ssl.c:658,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 138
    argCount: 7
    argNames:
    - state
    - sslsock
    - type
    - ssl_errno
    - errstr
    - lineno
    - errcode
    argTypes:
    - _sslmodulestate*
    - PySSLSocket*
    - PyObject*
    - int
    - char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 659
    functionName: fill_and_set_sslerror
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_GetItemWithError
    - ERR_GET_REASON
    - PyObject_CallObject
    - PyLong_FromLong
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - PyErr_SetObject
    - ERR_reason_error_string
    - SSL_get_verify_result
    - X509_verify_cert_error_string
    - PyUnicodeWriter_WriteASCII
    - Py_BuildValue
    - Py_DECREF
    - Py_NewRef
    - PyObject_SetAttr
    - ERR_GET_LIB
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PyUnicode_FromString
    linkageType: ''
    returnType: void
    signature: "void fill_and_set_sslerror(_sslmodulestate *state,\n                      PySSLSocket
      *sslsock, PyObject *type, int ssl_errno,\n                      const char *errstr,
      int lineno, unsigned long errcode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_ssl.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sslsock
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 669
    functionName: PySSL_ChainExceptions
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    linkageType: ''
    returnType: int
    signature: int PySSL_ChainExceptions(PySSLSocket *sslsock)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:680,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:682,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:686,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:719,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:722,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:727,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:735,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:736,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:739,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:741,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:742,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:755,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:756,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:762,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:763,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:769,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:771,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:772,1
    - Dst: fill_and_set_sslerror
      Src: /src/cpython/Modules/_ssl.c:781,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:782,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:783,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 3
    argNames:
    - sslsock
    - filename
    - lineno
    argTypes:
    - PySSLSocket*
    - char*
    - int
    assertStmts:
    - condition: (sslsock != NULL)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 785
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 785
    functionName: PySSL_SetError
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_peek_last_error
    - PyErr_SetFromWindowsErr
    - ERR_GET_REASON
    - ERR_GET_LIB
    - PyErr_SetFromErrno
    - fill_and_set_sslerror
    - get_state_sock
    - PySSL_ChainExceptions
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:791,1
    - Dst: fill_and_set_sslerror
      Src: /src/cpython/Modules/_ssl.c:794,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - state
    - errstr
    - errcode
    - filename
    - lineno
    argTypes:
    - _sslmodulestate*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 797
    functionName: _setSSLError
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - fill_and_set_sslerror
    - ERR_peek_last_error
    - ERR_clear_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _setSSLError (_sslmodulestate *state, const char *errstr, int errcode, const
      char *filename, int lineno)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_ssl.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - stacklevel
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 804
    functionName: _ssl_deprecated
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int _ssl_deprecated(const char* msg, int stacklevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - stacklevel
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 808
    functionName: PY_SSL_DEPRECATED
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_SSL_DEPRECATED(name, stacklevel, ret)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:821,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:827,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:829,1
    - Dst: a2i_IPADDRESS
      Src: /src/cpython/Modules/_ssl.c:837,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:839,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_ssl.c:842,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/cpython/Modules/_ssl.c:850,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:851,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:851,1
    - Dst: SSL_get0_param
      Src: /src/cpython/Modules/_ssl.c:856,1
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/cpython/Modules/_ssl.c:858,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:859,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:860,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:860,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/cpython/Modules/_ssl.c:864,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:864,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:865,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:866,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:866,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/cpython/Modules/_ssl.c:874,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - self
    - server_hostname
    argTypes:
    - PySSLSocket*
    - char*
    assertStmts:
    - condition: (server_hostname)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 877
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 877
    functionName: _ssl_configure_hostname
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_tlsext_host_name
    - strlen
    - ASN1_OCTET_STRING_free
    - ERR_clear_error
    - ASN1_STRING_get0_data
    - PyErr_SetString
    - X509_VERIFY_PARAM_set1_ip
    - SSL_get0_param
    - _setSSLError
    - a2i_IPADDRESS
    - get_state_sock
    - PyUnicode_Decode
    - ASN1_STRING_length
    - assert
    - X509_VERIFY_PARAM_set1_host
    linkageType: ''
    returnType: int
    signature: int _ssl_configure_hostname(PySSLSocket *self, const char* server_hostname)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:892,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:892,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:899,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:899,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_ssl.c:905,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:906,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:912,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:920,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:922,1
    - Dst: SSL_new
      Src: /src/cpython/Modules/_ssl.c:923,1
    - Dst: PySSL_END_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:926,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:927,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:927,1
    - Dst: SSL_set_session_id_context
      Src: /src/cpython/Modules/_ssl.c:934,1
    - Dst: SSL_get0_param
      Src: /src/cpython/Modules/_ssl.c:941,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:942,1
    - Dst: X509_VERIFY_PARAM_get_hostflags
      Src: /src/cpython/Modules/_ssl.c:944,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/cpython/Modules/_ssl.c:945,1
    - Dst: SSL_set_app_data
      Src: /src/cpython/Modules/_ssl.c:947,1
    - Dst: SSL_set_fd
      Src: /src/cpython/Modules/_ssl.c:949,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ssl.c:949,1
    - Dst: BIO_up_ref
      Src: /src/cpython/Modules/_ssl.c:954,1
    - Dst: BIO_up_ref
      Src: /src/cpython/Modules/_ssl.c:955,1
    - Dst: SSL_set_bio
      Src: /src/cpython/Modules/_ssl.c:956,1
    - Dst: SSL_set_mode
      Src: /src/cpython/Modules/_ssl.c:958,1
    - Dst: SSL_get_verify_mode
      Src: /src/cpython/Modules/_ssl.c:967,1
    - Dst: SSL_set_verify
      Src: /src/cpython/Modules/_ssl.c:970,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/cpython/Modules/_ssl.c:974,1
    - Dst: _ssl_configure_hostname
      Src: /src/cpython/Modules/_ssl.c:980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:981,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:989,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:989,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:990,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:990,1
    - Dst: SSL_set_connect_state
      Src: /src/cpython/Modules/_ssl.c:995,1
    - Dst: SSL_set_accept_state
      Src: /src/cpython/Modules/_ssl.c:997,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_ssl.c:1002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1004,1
    - Dst: _ssl__SSLSocket_owner_set
      Src: /src/cpython/Modules/_ssl.c:1009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1010,1
    - Dst: _ssl__SSLSocket_session_set
      Src: /src/cpython/Modules/_ssl.c:1015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1016,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_ssl.c:1021,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    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: 1023
      start: 879
    functionDepth: 4
    functionLinenumber: 879
    functionLinenumberEnd: 1023
    functionName: newPySSLSocket
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - PyObject_GC_Track
    - get_state_ctx
    - SSL_set_fd
    - ERR_clear_error
    - SSL_set_post_handshake_auth
    - SSL_get0_param
    - BIO_set_nbio
    - SSL_new
    - _ssl__SSLSocket_session_set
    - Py_SAFE_DOWNCAST
    - SSL_set_session_id_context
    - SSL_set_accept_state
    - PyWeakref_NewRef
    - Py_DECREF
    - SSL_get_verify_mode
    - PySSL_END_ALLOW_THREADS
    - _setSSLError
    - Py_NewRef
    - SSL_set_verify
    - SSL_set_connect_state
    - PySSL_BEGIN_ALLOW_THREADS
    - SSL_set_mode
    - SSL_CTX_get0_param
    - BIO_up_ref
    - SSL_set_bio
    - X509_VERIFY_PARAM_set_hostflags
    - _ssl_configure_hostname
    - _ssl__SSLSocket_owner_set
    - PyObject_GC_New
    - SSL_get_rbio
    - X509_VERIFY_PARAM_get_hostflags
    - SSL_set_app_data
    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/cpython/Modules/_ssl.c:1039,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1045,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1045,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ssl.c:1050,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:1054,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:1054,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:1055,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:1055,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:1058,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:1061,1
    - Dst: SSL_do_handshake
      Src: /src/cpython/Modules/_ssl.c:1068,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:1069,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:1074,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:1078,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:1081,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:1083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1089,1
    - Dst: ERRSTR
      Src: /src/cpython/Modules/_ssl.c:1090,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1093,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1093,1
    - Dst: ERRSTR
      Src: /src/cpython/Modules/_ssl.c:1094,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1097,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1097,1
    - Dst: ERRSTR
      Src: /src/cpython/Modules/_ssl.c:1098,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1105,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:1108,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:1109,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1113,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:1114,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1116
    functionName: _ssl__SSLSocket_do_handshake_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - Py_XDECREF
    - PyErr_SetString
    - PyErr_CheckSignals
    - get_state_sock
    - ERRSTR
    - Py_INCREF
    - GET_SOCKET
    - PySSL_SetError
    - BIO_set_nbio
    - SSL_do_handshake
    - GET_SOCKET_TIMEOUT
    - _PySSL_errno
    - _PyDeadline_Get
    - _setSSLError
    - PySSL_ChainExceptions
    - _PyDeadline_Init
    - PySSL_select
    - SSL_get_rbio
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _asn1obj2py
      Src: /src/cpython/Modules/_ssl.c:1167,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1170,1
    - Dst: ASN1_STRING_type
      Src: /src/cpython/Modules/_ssl.c:1174,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1175,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:1176,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1176,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/cpython/Modules/_ssl.c:1179,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1182,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:1185,1
    - Dst: OPENSSL_free
      Src: /src/cpython/Modules/_ssl.c:1186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - state
    - name
    - value
    argTypes:
    - _sslmodulestate*
    - ASN1_OBJECT*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1161
    functionDepth: 4
    functionLinenumber: 1161
    functionLinenumberEnd: 1189
    functionName: _create_tuple_for_attribute
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - OPENSSL_free
    - ASN1_STRING_get0_data
    - _setSSLError
    - _asn1obj2py
    - ASN1_STRING_to_UTF8
    - ASN1_STRING_type
    - ASN1_STRING_length
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_create_tuple_for_attribute(_sslmodulestate *state,\n
      \                           ASN1_OBJECT *name, ASN1_STRING *value)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_entry_count
      Src: /src/cpython/Modules/_ssl.c:1198,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1206,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1210,1
    - Dst: X509_NAME_get_entry
      Src: /src/cpython/Modules/_ssl.c:1218,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/cpython/Modules/_ssl.c:1222,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1226,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1230,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1234,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/cpython/Modules/_ssl.c:1239,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/cpython/Modules/_ssl.c:1242,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/cpython/Modules/_ssl.c:1243,1
    - Dst: _create_tuple_for_attribute
      Src: /src/cpython/Modules/_ssl.c:1244,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1254,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:1260,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1262,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1271,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1277,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1283,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1286,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - state
    - xname
    argTypes:
    - _sslmodulestate*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1191
    functionDepth: 5
    functionLinenumber: 1191
    functionLinenumberEnd: 1288
    functionName: _create_tuple_for_X509_NAME
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - X509_NAME_entry_count
    - Py_XDECREF
    - Py_DECREF
    - _create_tuple_for_attribute
    - PyList_Append
    - PyList_GET_SIZE
    - PyList_AsTuple
    - X509_NAME_ENTRY_get_data
    - X509_NAME_ENTRY_set
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname)'
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl.c:1313,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl.c:1313,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1315,1
    - Dst: X509_get_ext_d2i
      Src: /src/cpython/Modules/_ssl.c:1319,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1323,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/cpython/Modules/_ssl.c:1328,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/cpython/Modules/_ssl.c:1333,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1340,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1347,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1350,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/cpython/Modules/_ssl.c:1352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1354,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1357,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1365,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1370,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1374,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1383,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1386,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1387,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1387,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1390,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1393,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1397,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1403,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1406,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/cpython/Modules/_ssl.c:1408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1410,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1411,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1414,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1419,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1422,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1429,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1435,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1438,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:1442,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:1448,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1464,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1467,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/_ssl.c:1480,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1487,1
    - Dst: GENERAL_NAME_print
      Src: /src/cpython/Modules/_ssl.c:1488,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1489,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1491,1
    - Dst: strchr
      Src: /src/cpython/Modules/_ssl.c:1494,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:1496,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1501,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1506,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1509,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1513,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1516,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1526,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/cpython/Modules/_ssl.c:1528,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1530,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1533,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1542,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1545,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 207
    argCount: 2
    argNames:
    - state
    - certificate
    argTypes:
    - _sslmodulestate*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1290
    functionDepth: 6
    functionLinenumber: 1290
    functionLinenumberEnd: 1549
    functionName: _get_peer_alt_names
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyErr_WarnFormat
    - Py_XDECREF
    - PyErr_SetString
    - sk_GENERAL_NAME_pop_free
    - sk_GENERAL_NAME_value
    - strchr
    - PyUnicode_FromStringAndSize
    - PyTuple_New
    - PyUnicode_FromFormat
    - PyList_Append
    - BIO_new
    - X509_get_ext_d2i
    - BIO_free
    - PyErr_Format
    - i2t_ASN1_OBJECT
    - Py_DECREF
    - GENERAL_NAME_print
    - _setSSLError
    - sk_GENERAL_NAME_num
    - BIO_reset
    - ASN1_STRING_length
    - BIO_gets
    - _create_tuple_for_X509_NAME
    - ASN1_STRING_get0_data
    - PyTuple_SET_ITEM
    - PyList_AsTuple
    - BIO_s_mem
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_peer_alt_names (_sslmodulestate *state, X509 *certificate)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/cpython/Modules/_ssl.c:1557,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/cpython/Modules/_ssl.c:1560,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/cpython/Modules/_ssl.c:1561,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1565,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/cpython/Modules/_ssl.c:1569,1
    - Dst: sk_ACCESS_DESCRIPTION_value
      Src: /src/cpython/Modules/_ssl.c:1570,1
    - Dst: OBJ_obj2nid
      Src: /src/cpython/Modules/_ssl.c:1573,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1578,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1584,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/cpython/Modules/_ssl.c:1589,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_ssl.c:1592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1593,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1598,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/cpython/Modules/_ssl.c:1603,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1604,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - certificate
    - nid
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1551
    functionDepth: 1
    functionLinenumber: 1551
    functionLinenumberEnd: 1606
    functionName: _get_aia_uri
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - PyList_Append
    - PyList_AsTuple
    - PyList_Size
    - X509_get_ext_d2i
    - sk_ACCESS_DESCRIPTION_value
    - OBJ_obj2nid
    - sk_ACCESS_DESCRIPTION_num
    - AUTHORITY_INFO_ACCESS_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_aia_uri(X509 *certificate, int nid)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:1610,1
    - Dst: X509_get_ext_d2i
      Src: /src/cpython/Modules/_ssl.c:1614,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1619,1
    - Dst: sk_DIST_POINT_num
      Src: /src/cpython/Modules/_ssl.c:1623,1
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:1625,1
    - Dst: sk_DIST_POINT_value
      Src: /src/cpython/Modules/_ssl.c:1627,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/cpython/Modules/_ssl.c:1634,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/cpython/Modules/_ssl.c:1640,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1645,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1651,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:1658,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1658,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1661,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/cpython/Modules/_ssl.c:1662,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - certificate
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1664
    functionName: _get_crl_dp
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - PyList_Append
    - PyList_GET_SIZE
    - PyList_AsTuple
    - CRL_DIST_POINTS_free
    - sk_DIST_POINT_value
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_value
    - STACK_OF
    - sk_DIST_POINT_num
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_crl_dp(X509 *certificate)'
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:1683,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/cpython/Modules/_ssl.c:1687,1
    - Dst: X509_get_subject_name
      Src: /src/cpython/Modules/_ssl.c:1689,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1696,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/cpython/Modules/_ssl.c:1698,1
    - Dst: X509_get_issuer_name
      Src: /src/cpython/Modules/_ssl.c:1700,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1707,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:1709,1
    - Dst: X509_get_version
      Src: /src/cpython/Modules/_ssl.c:1709,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1716,1
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl.c:1719,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl.c:1719,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1721,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1725,1
    - Dst: X509_get_serialNumber
      Src: /src/cpython/Modules/_ssl.c:1726,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/cpython/Modules/_ssl.c:1728,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1729,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1731,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1734,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1741,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1743,1
    - Dst: X509_get0_notBefore
      Src: /src/cpython/Modules/_ssl.c:1744,1
    - Dst: ASN1_TIME_print
      Src: /src/cpython/Modules/_ssl.c:1745,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1746,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1748,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1751,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1758,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1760,1
    - Dst: X509_get0_notAfter
      Src: /src/cpython/Modules/_ssl.c:1761,1
    - Dst: ASN1_TIME_print
      Src: /src/cpython/Modules/_ssl.c:1762,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1763,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1765,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1768,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1775,1
    - Dst: _get_peer_alt_names
      Src: /src/cpython/Modules/_ssl.c:1779,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1788,1
    - Dst: _get_aia_uri
      Src: /src/cpython/Modules/_ssl.c:1792,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1797,1
    - Dst: _get_aia_uri
      Src: /src/cpython/Modules/_ssl.c:1803,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1808,1
    - Dst: _get_crl_dp
      Src: /src/cpython/Modules/_ssl.c:1815,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1820,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1826,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1831,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1833,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 158
    argCount: 2
    argNames:
    - state
    - certificate
    argTypes:
    - _sslmodulestate*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1666
    functionDepth: 7
    functionLinenumber: 1666
    functionLinenumberEnd: 1835
    functionName: _decode_certificate
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - X509_get_version
    - PyErr_SetString
    - PyLong_FromLong
    - X509_get_issuer_name
    - PyUnicode_FromStringAndSize
    - BIO_new
    - X509_get_subject_name
    - X509_get0_notBefore
    - BIO_free
    - ASN1_TIME_print
    - Py_DECREF
    - X509_get0_notAfter
    - _setSSLError
    - PyDict_SetItemString
    - _get_crl_dp
    - BIO_reset
    - BIO_gets
    - i2a_ASN1_INTEGER
    - _create_tuple_for_X509_NAME
    - X509_get_serialNumber
    - BIO_s_mem
    - PyDict_New
    - _get_peer_alt_names
    - _get_aia_uri
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decode_certificate(_sslmodulestate *state, X509 *certificate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/cpython/Modules/_ssl.c:1845,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1847,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1851,1
    - Dst: OPENSSL_free
      Src: /src/cpython/Modules/_ssl.c:1852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - certificate
    argTypes:
    - _sslmodulestate*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1837
    functionDepth: 3
    functionLinenumber: 1837
    functionLinenumberEnd: 1854
    functionName: _certificate_to_der
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - PyBytes_FromStringAndSize
    - i2d_X509
    - OPENSSL_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _certificate_to_der(_sslmodulestate *state, X509 *certificate)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:1873,1
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl.c:1875,1
    - Dst: BIO_s_file
      Src: /src/cpython/Modules/_ssl.c:1875,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1876,1
    - Dst: BIO_read_filename
      Src: /src/cpython/Modules/_ssl.c:1881,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_ssl.c:1881,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1882,1
    - Dst: PEM_read_bio_X509
      Src: /src/cpython/Modules/_ssl.c:1887,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1889,1
    - Dst: _decode_certificate
      Src: /src/cpython/Modules/_ssl.c:1894,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:1895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1898,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1899,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1866
    functionDepth: 8
    functionLinenumber: 1866
    functionLinenumberEnd: 1901
    functionName: _ssl__test_decode_cert_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_read_filename
    - Py_DECREF
    - PyErr_SetString
    - X509_free
    - BIO_new
    - PyBytes_AsString
    - _decode_certificate
    - get_ssl_state
    - PEM_read_bio_X509
    - BIO_free
    - BIO_s_file
    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/cpython/Modules/_ssl.c:1929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1930,1
    - Dst: SSL_get_peer_certificate
      Src: /src/cpython/Modules/_ssl.c:1934,1
    - Dst: _certificate_to_der
      Src: /src/cpython/Modules/_ssl.c:1940,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1940,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/cpython/Modules/_ssl.c:1942,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/cpython/Modules/_ssl.c:1942,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:1944,1
    - Dst: _decode_certificate
      Src: /src/cpython/Modules/_ssl.c:1946,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1946,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:1948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - binary_mode
    argTypes:
    - PySSLSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1921
    functionDepth: 8
    functionLinenumber: 1921
    functionLinenumberEnd: 1950
    functionName: _ssl__SSLSocket_getpeercert_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_peer_certificate
    - PyErr_SetString
    - _certificate_to_der
    - SSL_CTX_get_verify_mode
    - X509_free
    - _decode_certificate
    - SSL_get_SSL_CTX
    - PyDict_New
    - get_state_sock
    - SSL_is_init_finished
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_getpeercert_impl(PySSLSocket *self, int binary_mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:1963,1
    - Dst: SSL_get0_verified_chain
      Src: /src/cpython/Modules/_ssl.c:1963,1
    - Dst: _PySSL_CertificateFromX509Stack
      Src: /src/cpython/Modules/_ssl.c:1967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1958
    functionDepth: 1
    functionLinenumber: 1958
    functionLinenumberEnd: 1968
    functionName: _ssl__SSLSocket_get_verified_chain_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _PySSL_CertificateFromX509Stack
    - SSL_get0_verified_chain
    - STACK_OF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_get_verified_chain_impl(PySSLSocket *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:1983,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/cpython/Modules/_ssl.c:1983,1
    - Dst: _PySSL_CertificateFromX509Stack
      Src: /src/cpython/Modules/_ssl.c:1987,1
    - Dst: SSL_get_peer_certificate
      Src: /src/cpython/Modules/_ssl.c:1994,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:1997,1
    - Dst: _PySSL_CertificateFromX509
      Src: /src/cpython/Modules/_ssl.c:2000,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:2002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2003,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_ssl.c:2007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2010,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1976
    functionDepth: 1
    functionLinenumber: 1976
    functionLinenumberEnd: 2015
    functionName: _ssl__SSLSocket_get_unverified_chain_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _PySSL_CertificateFromX509
    - _PySSL_CertificateFromX509Stack
    - PyList_Insert
    - Py_DECREF
    - SSL_get_peer_certificate
    - X509_free
    - Py_NewRef
    - SSL_get_peer_cert_chain
    - STACK_OF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_get_unverified_chain_impl(PySSLSocket *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:2021,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/cpython/Modules/_ssl.c:2025,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2027,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2027,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:2029,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2032,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/cpython/Modules/_ssl.c:2035,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2037,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2037,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:2039,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2042,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:2045,1
    - Dst: SSL_CIPHER_get_bits
      Src: /src/cpython/Modules/_ssl.c:2045,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2053,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2055
    functionName: cipher_to_tuple
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - SSL_CIPHER_get_name
    - PyLong_FromLong
    - SSL_CIPHER_get_bits
    - SSL_CIPHER_get_version
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cipher_to_tuple(const SSL_CIPHER *cipher)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_get_name
      Src: /src/cpython/Modules/_ssl.c:2069,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/cpython/Modules/_ssl.c:2070,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/cpython/Modules/_ssl.c:2071,1
    - Dst: SSL_CIPHER_description
      Src: /src/cpython/Modules/_ssl.c:2072,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:2074,1
    - Dst: SSL_CIPHER_get_bits
      Src: /src/cpython/Modules/_ssl.c:2077,1
    - Dst: SSL_CIPHER_is_aead
      Src: /src/cpython/Modules/_ssl.c:2079,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/cpython/Modules/_ssl.c:2080,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2081,1
    - Dst: SSL_CIPHER_get_digest_nid
      Src: /src/cpython/Modules/_ssl.c:2082,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2083,1
    - Dst: SSL_CIPHER_get_kx_nid
      Src: /src/cpython/Modules/_ssl.c:2084,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2085,1
    - Dst: SSL_CIPHER_get_auth_nid
      Src: /src/cpython/Modules/_ssl.c:2086,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2087,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:2089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2057
    functionDepth: 1
    functionLinenumber: 2057
    functionLinenumberEnd: 2105
    functionName: cipher_to_dict
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - OBJ_nid2ln
    - SSL_CIPHER_get_id
    - strlen
    - SSL_CIPHER_get_cipher_nid
    - SSL_CIPHER_description
    - SSL_CIPHER_get_auth_nid
    - SSL_CIPHER_is_aead
    - SSL_CIPHER_get_kx_nid
    - SSL_CIPHER_get_name
    - SSL_CIPHER_get_bits
    - SSL_CIPHER_get_version
    - SSL_CIPHER_get_digest_nid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cipher_to_dict(const SSL_CIPHER *cipher)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:2116,1
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:2117,1
    - Dst: SSL_get_ciphers
      Src: /src/cpython/Modules/_ssl.c:2130,1
    - Dst: SSL_get_client_ciphers
      Src: /src/cpython/Modules/_ssl.c:2133,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:2137,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:2137,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:2141,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/cpython/Modules/_ssl.c:2142,1
    - Dst: sk_SSL_CIPHER_find
      Src: /src/cpython/Modules/_ssl.c:2143,1
    - Dst: cipher_to_tuple
      Src: /src/cpython/Modules/_ssl.c:2146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2148,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2151,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_ssl.c:2153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2112
    functionDepth: 2
    functionLinenumber: 2112
    functionLinenumberEnd: 2155
    functionName: _ssl__SSLSocket_shared_ciphers_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_SET_SIZE
    - cipher_to_tuple
    - Py_DECREF
    - SSL_get_client_ciphers
    - SSL_get_ciphers
    - PyList_SET_ITEM
    - sk_SSL_CIPHER_find
    - STACK_OF
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shared_ciphers_impl(PySSLSocket *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_cipher
      Src: /src/cpython/Modules/_ssl.c:2170,1
    - Dst: cipher_to_tuple
      Src: /src/cpython/Modules/_ssl.c:2173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2162
    functionDepth: 2
    functionLinenumber: 2162
    functionLinenumberEnd: 2174
    functionName: _ssl__SSLSocket_cipher_impl
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_group_name
      Src: /src/cpython/Modules/_ssl.c:2191,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_ssl.c:2195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2181
    functionDepth: 1
    functionLinenumber: 2181
    functionLinenumberEnd: 2201
    functionName: _ssl__SSLSocket_group_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get0_group_name
    - PyUnicode_DecodeFSDefault
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_group_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_init_finished
      Src: /src/cpython/Modules/_ssl.c:2216,1
    - Dst: SSL_get_version
      Src: /src/cpython/Modules/_ssl.c:2220,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_ssl.c:2221,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:2223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2224
    functionName: _ssl__SSLSocket_version_impl
    functionSourceFile: /src/cpython/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_alpn_selected
      Src: /src/cpython/Modules/_ssl.c:2238,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:2242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2231
    functionDepth: 1
    functionLinenumber: 2231
    functionLinenumberEnd: 2243
    functionName: _ssl__SSLSocket_selected_alpn_protocol_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get0_alpn_selected
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_selected_alpn_protocol_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_compression
      Src: /src/cpython/Modules/_ssl.c:2261,1
    - Dst: COMP_get_type
      Src: /src/cpython/Modules/_ssl.c:2262,1
    - Dst: OBJ_nid2sn
      Src: /src/cpython/Modules/_ssl.c:2264,1
    - Dst: COMP_get_type
      Src: /src/cpython/Modules/_ssl.c:2264,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_ssl.c:2267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2249
    functionDepth: 1
    functionLinenumber: 2249
    functionLinenumberEnd: 2269
    functionName: _ssl__SSLSocket_compression_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - PyUnicode_DecodeFSDefault
    - COMP_get_type
    - SSL_get_current_compression
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_compression_impl(PySSLSocket *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2284
    functionDepth: 0
    functionLinenumber: 2284
    functionLinenumberEnd: 2289
    functionName: _ssl__SSLSocket_context_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_context_get_impl(PySSLSocket *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_ssl.c:2302,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_ssl.c:2303,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2303,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/cpython/Modules/_ssl.c:2304,1
    - Dst: SSL_set_msg_callback
      Src: /src/cpython/Modules/_ssl.c:2306,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2298
    functionDepth: 1
    functionLinenumber: 2298
    functionLinenumberEnd: 2316
    functionName: _ssl__SSLSocket_context_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_SSL_CTX
    - PyObject_TypeCheck
    - PyErr_SetString
    - Py_SETREF
    - Py_NewRef
    - SSL_set_msg_callback
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLSocket_context_set_impl(PySSLSocket *self, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ssl.c:2330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2326
    functionDepth: 1
    functionLinenumber: 2326
    functionLinenumberEnd: 2331
    functionName: _ssl__SSLSocket_server_side_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_server_side_get_impl(PySSLSocket *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2348
    functionName: _ssl__SSLSocket_server_hostname_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_server_hostname_get_impl(PySSLSocket *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl.c:2368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2372
    functionName: _ssl__SSLSocket_owner_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyWeakref_GetRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_owner_get_impl(PySSLSocket *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ssl.c:2384,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_ssl.c:2384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2380
    functionDepth: 1
    functionLinenumber: 2380
    functionLinenumberEnd: 2388
    functionName: _ssl__SSLSocket_owner_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyWeakref_NewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLSocket_owner_set_impl(PySSLSocket *self, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLSocket_CAST
      Src: /src/cpython/Modules/_ssl.c:2393,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:2394,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:2395,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2397
    functionName: PySSL_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - PySSLSocket_CAST
    linkageType: ''
    returnType: int
    signature: int PySSL_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLSocket_CAST
      Src: /src/cpython/Modules/_ssl.c:2402,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2399
    functionDepth: 1
    functionLinenumber: 2399
    functionLinenumberEnd: 2405
    functionName: PySSL_clear
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PySSLSocket_CAST
    linkageType: ''
    returnType: int
    signature: int PySSL_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySSLSocket_CAST
      Src: /src/cpython/Modules/_ssl.c:2410,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:2411,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ssl.c:2412,1
    - Dst: SSL_set_shutdown
      Src: /src/cpython/Modules/_ssl.c:2424,1
    - Dst: SSL_get_shutdown
      Src: /src/cpython/Modules/_ssl.c:2424,1
    - Dst: SSL_free
      Src: /src/cpython/Modules/_ssl.c:2425,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2427,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2428,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2429,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2430,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_ssl.c:2431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2407
    functionDepth: 1
    functionLinenumber: 2407
    functionLinenumberEnd: 2433
    functionName: PySSL_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - SSL_get_shutdown
    - PyObject_GC_Del
    - PySSLSocket_CAST
    - SSL_set_shutdown
    - SSL_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PySSL_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/_ssl.c:2474,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:2475,1
    - Dst: poll
      Src: /src/cpython/Modules/_ssl.c:2478,1
    - Dst: _PyIsSelectable_fd
      Src: /src/cpython/Modules/_ssl.c:2483,1
    - Dst: _PyTime_AsTimeval_clamp
      Src: /src/cpython/Modules/_ssl.c:2486,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/_ssl.c:2488,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/_ssl.c:2489,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ssl.c:2493,1
    - Dst: select
      Src: /src/cpython/Modules/_ssl.c:2495,1
    - Dst: select
      Src: /src/cpython/Modules/_ssl.c:2497,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: 2474
        line_start: 2474
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 2505
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2505
    functionName: PySSL_select
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - _PyTime_AsMilliseconds
    - select
    - _PyTime_AsTimeval_clamp
    - FD_ZERO
    - FD_SET
    - poll
    - Py_SAFE_DOWNCAST
    - assert
    - _PyIsSelectable_fd
    linkageType: ''
    returnType: int
    signature: int PySSL_select(PySocketSockObject *s, int writing, PyTime_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_ktls_send
      Src: /src/cpython/Modules/_ssl.c:2519,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:2519,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2514
    functionDepth: 0
    functionLinenumber: 2514
    functionLinenumberEnd: 2526
    functionName: _ssl__SSLSocket_uses_ktls_for_send_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - Py_NewRef
    - BIO_get_ktls_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_uses_ktls_for_send_impl(PySSLSocket *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_ktls_recv
      Src: /src/cpython/Modules/_ssl.c:2540,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:2540,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2547
    functionName: _ssl__SSLSocket_uses_ktls_for_recv_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - BIO_get_ktls_recv
    - SSL_get_rbio
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_uses_ktls_for_recv_impl(PySSLSocket *self)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/cpython/Modules/_ssl.c:2578,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:2584,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2584,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ssl.c:2589,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:2592,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:2592,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:2593,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:2593,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:2596,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:2599,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2602,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2605,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2609,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2613,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2613,1
    - Dst: SSL_sendfile
      Src: /src/cpython/Modules/_ssl.c:2620,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2621,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:2626,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:2631,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2636,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2639,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2647,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2652,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2652,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:2663,1
    - Dst: ERR_peek_error
      Src: /src/cpython/Modules/_ssl.c:2663,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:2668,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2668,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2673,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:2675,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:2677,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:2680,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2682,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:2683,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 5
    argNames:
    - self
    - fd
    - offset
    - size
    - flags
    argTypes:
    - PySSLSocket*
    - int
    - Py_off_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2570
    functionDepth: 3
    functionLinenumber: 2570
    functionLinenumberEnd: 2685
    functionName: _ssl__SSLSocket_sendfile_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - Py_XDECREF
    - PyErr_SetString
    - ERR_GET_REASON
    - PyErr_CheckSignals
    - ERR_peek_error
    - get_state_sock
    - Py_INCREF
    - GET_SOCKET
    - PySSL_SetError
    - BIO_set_nbio
    - GET_SOCKET_TIMEOUT
    - SSL_sendfile
    - _PySSL_errno
    - _PyDeadline_Get
    - _setSSLError
    - PySSL_ChainExceptions
    - _PyDeadline_Init
    - PySSL_select
    - PyLong_FromSize_t
    - SSL_get_rbio
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLSocket_sendfile_impl(PySSLSocket *self, int fd,
      Py_off_t offset,\n                              size_t size, int flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/cpython/Modules/_ssl.c:2708,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:2714,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2714,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ssl.c:2719,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:2725,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:2725,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:2726,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:2726,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:2729,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:2732,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2735,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2737,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2741,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2741,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2745,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2745,1
    - Dst: SSL_write_ex
      Src: /src/cpython/Modules/_ssl.c:2752,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2753,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:2758,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:2762,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2766,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2768,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2774,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2778,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2778,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2787,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:2789,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:2790,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:2792,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2794,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:2795,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - PySSLSocket*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2699
    functionDepth: 3
    functionLinenumber: 2699
    functionLinenumberEnd: 2797
    functionName: _ssl__SSLSocket_write_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - Py_XDECREF
    - PyErr_SetString
    - PyErr_CheckSignals
    - get_state_sock
    - Py_INCREF
    - GET_SOCKET
    - PySSL_SetError
    - BIO_set_nbio
    - GET_SOCKET_TIMEOUT
    - SSL_write_ex
    - _PySSL_errno
    - _PyDeadline_Get
    - _setSSLError
    - PySSL_ChainExceptions
    - _PyDeadline_Init
    - PySSL_select
    - PyLong_FromSize_t
    - SSL_get_rbio
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_pending
      Src: /src/cpython/Modules/_ssl.c:2815,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2816,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:2822,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:2824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2807
    functionDepth: 3
    functionLinenumber: 2807
    functionLinenumberEnd: 2825
    functionName: _ssl__SSLSocket_pending_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PySSL_SetError
    - SSL_pending
    - _PySSL_errno
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_pending_impl(PySSLSocket *self)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/cpython/Modules/_ssl.c:2851,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2856,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:2862,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2862,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ssl.c:2867,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:2871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2875,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:2878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2885,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:2899,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:2899,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:2900,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:2900,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:2903,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:2906,1
    - Dst: SSL_read_ex
      Src: /src/cpython/Modules/_ssl.c:2910,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2911,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:2916,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:2920,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2924,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2926,1
    - Dst: SSL_get_shutdown
      Src: /src/cpython/Modules/_ssl.c:2928,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2937,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:2947,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2954,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_ssl.c:2956,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:2960,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:2964,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2965,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2967,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 105
    argCount: 4
    argNames:
    - self
    - len
    - group_right_1
    - buffer
    argTypes:
    - PySSLSocket*
    - Py_ssize_t
    - int
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2969
      start: 2839
    functionDepth: 3
    functionLinenumber: 2839
    functionLinenumberEnd: 2969
    functionName: _ssl__SSLSocket_read_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - Py_XDECREF
    - PyErr_SetString
    - SSL_read_ex
    - PyErr_CheckSignals
    - get_state_sock
    - Py_INCREF
    - GET_SOCKET
    - SSL_get_shutdown
    - PySSL_SetError
    - BIO_set_nbio
    - GET_SOCKET_TIMEOUT
    - _PySSL_errno
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _PyDeadline_Get
    - _setSSLError
    - PyBytes_AS_STRING
    - PySSL_ChainExceptions
    - _PyDeadline_Init
    - PySSL_select
    - PyLong_FromSize_t
    - SSL_get_rbio
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t
      len,\n                          int group_right_1, Py_buffer *buffer)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/cpython/Modules/_ssl.c:2985,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:2992,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2992,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ssl.c:2997,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:3001,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:3001,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:3002,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:3002,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:3005,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:3008,1
    - Dst: SSL_set_read_ahead
      Src: /src/cpython/Modules/_ssl.c:3022,1
    - Dst: SSL_shutdown
      Src: /src/cpython/Modules/_ssl.c:3023,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:3024,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:3044,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:3049,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:3051,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3057,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3060,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3065,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3065,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3074,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:3075,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3087,1
    - Dst: PySSL_ChainExceptions
      Src: /src/cpython/Modules/_ssl.c:3088,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 2978
    functionDepth: 3
    functionLinenumber: 2978
    functionLinenumberEnd: 3090
    functionName: _ssl__SSLSocket_shutdown_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - Py_INCREF
    - _PyDeadline_Init
    - GET_SOCKET_TIMEOUT
    - SSL_shutdown
    - GET_SOCKET
    - _PySSL_errno
    - Py_XDECREF
    - PySSL_SetError
    - PyErr_SetString
    - _PyDeadline_Get
    - _setSSLError
    - PySSL_select
    - BIO_set_nbio
    - SSL_set_read_ahead
    - get_state_sock
    - SSL_get_rbio
    - PySSL_ChainExceptions
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/_ssl.c:3113,1
    - Dst: SSL_session_reused
      Src: /src/cpython/Modules/_ssl.c:3114,1
    - Dst: SSL_get_finished
      Src: /src/cpython/Modules/_ssl.c:3116,1
    - Dst: SSL_get_peer_finished
      Src: /src/cpython/Modules/_ssl.c:3120,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3124,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:3136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - cb_type
    argTypes:
    - PySSLSocket*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3105
    functionDepth: 1
    functionLinenumber: 3105
    functionLinenumberEnd: 3137
    functionName: _ssl__SSLSocket_get_channel_binding_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_finished
    - PyBytes_FromStringAndSize
    - SSL_session_reused
    - strcmp
    - SSL_get_peer_finished
    - PyErr_Format
    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/cpython/Modules/_ssl.c:3151,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3153,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3153,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3146
    functionDepth: 3
    functionLinenumber: 3146
    functionLinenumberEnd: 3162
    functionName: _ssl__SSLSocket_verify_client_post_handshake_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - SSL_verify_client_post_handshake
    - get_state_sock
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_verify_client_post_handshake_impl(PySSLSocket *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get1_session
      Src: /src/cpython/Modules/_ssl.c:3181,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_ssl.c:3185,1
    - Dst: SSL_SESSION_free
      Src: /src/cpython/Modules/_ssl.c:3189,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3193,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:3194,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_ssl.c:3196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts:
    - condition: (self->ctx)
      pos:
        line_end: 3192
        line_start: 3192
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3198
      start: 3172
    functionDepth: 1
    functionLinenumber: 3172
    functionLinenumberEnd: 3198
    functionName: _ssl__SSLSocket_session_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    - SSL_get1_session
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_session_get_impl(PySSLSocket *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl.c:3212,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3212,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3213,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3219,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3224,1
    - Dst: SSL_is_init_finished
      Src: /src/cpython/Modules/_ssl.c:3228,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3229,1
    - Dst: SSL_set_session
      Src: /src/cpython/Modules/_ssl.c:3234,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3235,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3206
    functionDepth: 3
    functionLinenumber: 3206
    functionLinenumberEnd: 3239
    functionName: _ssl__SSLSocket_session_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _setSSLError
    - Py_IS_TYPE
    - get_state_sock
    - SSL_set_session
    - SSL_is_init_finished
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLSocket_session_set_impl(PySSLSocket *self, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_session_reused
      Src: /src/cpython/Modules/_ssl.c:3253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3249
    functionDepth: 0
    functionLinenumber: 3249
    functionLinenumberEnd: 3255
    functionName: _ssl__SSLSocket_session_reused_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_session_reused
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_session_reused_get_impl(PySSLSocket *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3327,1
    - Dst: SSL_CTX_set_verify
      Src: /src/cpython/Modules/_ssl.c:3335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PySSLContext*
    - enum py_ssl_cert_requirements
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3311
    functionDepth: 1
    functionLinenumber: 3311
    functionLinenumberEnd: 3337
    functionName: _set_verify_mode
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - SSL_CTX_set_verify
    linkageType: ''
    returnType: int
    signature: int _set_verify_mode(PySSLContext *self, enum py_ssl_cert_requirements
      n)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_ssl.c:3360,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3362,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3370,1
    - Dst: SSLv3_method
      Src: /src/cpython/Modules/_ssl.c:3371,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3378,1
    - Dst: TLSv1_method
      Src: /src/cpython/Modules/_ssl.c:3379,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3386,1
    - Dst: TLSv1_1_method
      Src: /src/cpython/Modules/_ssl.c:3387,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3394,1
    - Dst: TLSv1_2_method
      Src: /src/cpython/Modules/_ssl.c:3395,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3399,1
    - Dst: TLS_method
      Src: /src/cpython/Modules/_ssl.c:3400,1
    - Dst: TLS_client_method
      Src: /src/cpython/Modules/_ssl.c:3403,1
    - Dst: TLS_server_method
      Src: /src/cpython/Modules/_ssl.c:3406,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3413,1
    - Dst: SSL_CTX_new
      Src: /src/cpython/Modules/_ssl.c:3424,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3429,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:3429,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3433,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ssl.c:3434,1
    - Dst: SSL_CTX_free
      Src: /src/cpython/Modules/_ssl.c:3436,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:3446,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:3456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:3457,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:3462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:3463,1
    - Dst: SSL_CTX_set_options
      Src: /src/cpython/Modules/_ssl.c:3487,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/cpython/Modules/_ssl.c:3496,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/cpython/Modules/_ssl.c:3500,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:3503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3504,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3504,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/cpython/Modules/_ssl.c:3513,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3515,1
    - Dst: SSL_CTX_set_mode
      Src: /src/cpython/Modules/_ssl.c:3528,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:3530,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/cpython/Modules/_ssl.c:3533,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/cpython/Modules/_ssl.c:3534,1
    - Dst: SSL_CTX_set_post_handshake_auth
      Src: /src/cpython/Modules/_ssl.c:3538,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3543,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:3544,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 2
    argNames:
    - type
    - proto_version
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 3432
        line_start: 3432
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3546
      start: 3347
    functionDepth: 3
    functionLinenumber: 3347
    functionLinenumberEnd: 3546
    functionName: _ssl__SSLContext_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - SSL_CTX_set_post_handshake_auth
    - SSL_CTX_set_cipher_list
    - PyErr_SetString
    - _set_verify_mode
    - PyTypeObject*::tp_alloc
    - TLSv1_1_method
    - SSL_CTX_free
    - SSL_CTX_set_options
    - get_state_ctx
    - SSL_CTX_set_mode
    - PyType_GetModuleByDef
    - ERR_clear_error
    - SSL_CTX_set_min_proto_version
    - TLS_client_method
    - PY_SSL_DEPRECATED
    - get_ssl_state
    - SSL_CTX_new
    - PyErr_Format
    - SSLv3_method
    - Py_DECREF
    - _setSSLError
    - TLS_method
    - TLS_server_method
    - TLSv1_2_method
    - TLSv1_method
    - SSL_CTX_get0_param
    - X509_VERIFY_PARAM_set_flags
    - assert
    - X509_VERIFY_PARAM_set_hostflags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl.c:3551,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3552,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3553,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:3554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3548
    functionDepth: 1
    functionLinenumber: 3548
    functionLinenumberEnd: 3556
    functionName: context_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - PySSLContext_CAST
    linkageType: ''
    returnType: int
    signature: int context_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl.c:3561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3562,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3563,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3564,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3566,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3577
      start: 3558
    functionDepth: 1
    functionLinenumber: 3558
    functionLinenumberEnd: 3577
    functionName: context_clear
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PySSLContext_CAST
    linkageType: ''
    returnType: int
    signature: int context_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl.c:3582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:3583,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ssl.c:3585,1
    - Dst: context_clear
      Src: /src/cpython/Modules/_ssl.c:3586,1
    - Dst: SSL_CTX_free
      Src: /src/cpython/Modules/_ssl.c:3587,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/_ssl.c:3588,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ssl.c:3589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:3590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3591
      start: 3579
    functionDepth: 1
    functionLinenumber: 3579
    functionLinenumberEnd: 3591
    functionName: context_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - Py_DECREF
    - PyObject_GC_UnTrack
    - context_clear
    - PySSLContext_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void context_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/cpython/Modules/_ssl.c:3604,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:3609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3610,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - cipherlist
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3600
    functionDepth: 1
    functionLinenumber: 3600
    functionLinenumberEnd: 3615
    functionName: _ssl__SSLContext_set_ciphers_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - ERR_clear_error
    - PyErr_SetString
    - get_state_ctx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ciphers_impl(PySSLContext *self, const char *cipherlist)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:3627,1
    - Dst: SSL_new
      Src: /src/cpython/Modules/_ssl.c:3632,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3634,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3634,1
    - Dst: SSL_get_ciphers
      Src: /src/cpython/Modules/_ssl.c:3637,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:3639,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:3639,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:3644,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/cpython/Modules/_ssl.c:3645,1
    - Dst: cipher_to_dict
      Src: /src/cpython/Modules/_ssl.c:3646,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3648,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:3651,1
    - Dst: SSL_free
      Src: /src/cpython/Modules/_ssl.c:3656,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3659
      start: 3622
    functionDepth: 3
    functionLinenumber: 3622
    functionLinenumberEnd: 3659
    functionName: _ssl__SSLContext_get_ciphers_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - PyList_New
    - Py_CLEAR
    - cipher_to_dict
    - SSL_get_ciphers
    - PyList_SET_ITEM
    - _setSSLError
    - SSL_new
    - SSL_free
    - STACK_OF
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ciphers_impl(PySSLContext *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set1_groups_list
      Src: /src/cpython/Modules/_ssl.c:3672,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3673,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - grouplist
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3668
    functionDepth: 3
    functionLinenumber: 3668
    functionLinenumberEnd: 3677
    functionName: _ssl__SSLContext_set_groups_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - get_state_ctx
    - SSL_CTX_set1_groups_list
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_groups_impl(PySSLContext *self, const char *grouplist)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:3691,1
    - Dst: sk_OPENSSL_CSTRING_new_null
      Src: /src/cpython/Modules/_ssl.c:3698,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3699,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3699,1
    - Dst: SSL_CTX_get0_implemented_groups
      Src: /src/cpython/Modules/_ssl.c:3703,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3704,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3704,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/cpython/Modules/_ssl.c:3708,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:3709,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3711,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3711,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/cpython/Modules/_ssl.c:3717,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3718,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_ssl.c:3723,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:3723,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3725,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3725,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:3729,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/cpython/Modules/_ssl.c:3732,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3735,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/cpython/Modules/_ssl.c:3736,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3739,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - self
    - include_aliases
    argTypes:
    - PySSLContext*
    - int
    assertStmts:
    - condition: (group != NULL)
      pos:
        line_end: 3717
        line_start: 3717
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3743
      start: 3686
    functionDepth: 3
    functionLinenumber: 3686
    functionLinenumberEnd: 3743
    functionName: _ssl__SSLContext_get_groups_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - PyList_New
    - Py_XDECREF
    - sk_OPENSSL_CSTRING_value
    - strlen
    - PyErr_SetString
    - sk_OPENSSL_CSTRING_free
    - sk_OPENSSL_CSTRING_num
    - PyList_SET_ITEM
    - SSL_CTX_get0_implemented_groups
    - _setSSLError
    - PyUnicode_DecodeASCII
    - sk_OPENSSL_CSTRING_new_null
    - STACK_OF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_groups_impl(PySSLContext *self, int include_aliases)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/cpython/Modules/_ssl.c:3760,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: 3767
      start: 3745
    functionDepth: 0
    functionLinenumber: 3745
    functionLinenumberEnd: 3767
    functionName: do_protocol_selection
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_protocol_selection
      Src: /src/cpython/Modules/_ssl.c:3776,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: 3779
      start: 3769
    functionDepth: 1
    functionLinenumber: 3769
    functionLinenumberEnd: 3779
    functionName: _selectALPN_cb
    functionSourceFile: /src/cpython/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/cpython/Modules/_ssl.c:3794,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:3799,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ssl.c:3800,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:3802,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:3804,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/cpython/Modules/_ssl.c:3806,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:3807,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/cpython/Modules/_ssl.c:3809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - protos
    argTypes:
    - PySSLContext*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3812
      start: 3788
    functionDepth: 1
    functionLinenumber: 3788
    functionLinenumberEnd: 3812
    functionName: _ssl__SSLContext__set_alpn_protocols_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_alpn_protos
    - SSL_CTX_set_alpn_select_cb
    - PyMem_Free
    - PyErr_Format
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    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/cpython/Modules/_ssl.c:3827,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:3830,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:3832,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:3834,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3836,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3839
    functionName: _ssl__SSLContext_verify_mode_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - PyErr_SetString
    - SSL_CTX_get_verify_mode
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_verify_mode_get_impl(PySSLContext *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:3852,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3855,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:3860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3861
      start: 3847
    functionDepth: 2
    functionLinenumber: 3847
    functionLinenumberEnd: 3861
    functionName: _ssl__SSLContext_verify_mode_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_SetString
    - _set_verify_mode
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_verify_mode_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:3876,1
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/cpython/Modules/_ssl.c:3877,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:3878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3869
    functionDepth: 0
    functionLinenumber: 3869
    functionLinenumberEnd: 3879
    functionName: _ssl__SSLContext_verify_flags_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get0_param
    - X509_VERIFY_PARAM_get_flags
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_verify_flags_get_impl(PySSLContext *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:3894,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:3896,1
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/cpython/Modules/_ssl.c:3897,1
    - Dst: X509_VERIFY_PARAM_clear_flags
      Src: /src/cpython/Modules/_ssl.c:3901,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3902,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3902,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/cpython/Modules/_ssl.c:3907,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3908,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3887
    functionDepth: 3
    functionLinenumber: 3887
    functionLinenumberEnd: 3913
    functionName: _ssl__SSLContext_verify_flags_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - SSL_CTX_get0_param
    - get_state_ctx
    - X509_VERIFY_PARAM_get_flags
    - X509_VERIFY_PARAM_clear_flags
    - _setSSLError
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_verify_flags_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:3922,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3925,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3935,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3946,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3949,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3952,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3961,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/cpython/Modules/_ssl.c:3978,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/cpython/Modules/_ssl.c:3992,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3995,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 3
    argNames:
    - self
    - arg
    - what
    argTypes:
    - PySSLContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3916
    functionDepth: 1
    functionLinenumber: 3916
    functionLinenumberEnd: 4000
    functionName: set_min_max_proto_version
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - SSL_CTX_set_max_proto_version
    - PyErr_SetString
    - SSL_CTX_set_min_proto_version
    - PyErr_Format
    - PY_SSL_DEPRECATED
    linkageType: ''
    returnType: int
    signature: int set_min_max_proto_version(PySSLContext *self, PyObject *arg, int
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_min_proto_version
      Src: /src/cpython/Modules/_ssl.c:4012,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:4016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 4008
    functionDepth: 0
    functionLinenumber: 4008
    functionLinenumberEnd: 4017
    functionName: _ssl__SSLContext_minimum_version_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_min_proto_version
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_minimum_version_get_impl(PySSLContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_min_max_proto_version
      Src: /src/cpython/Modules/_ssl.c:4030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4031
      start: 4025
    functionDepth: 2
    functionLinenumber: 4025
    functionLinenumberEnd: 4031
    functionName: _ssl__SSLContext_minimum_version_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - set_min_max_proto_version
    linkageType: ''
    returnType: int
    signature: "int _ssl__SSLContext_minimum_version_set_impl(PySSLContext *self,\n
      \                                         PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_max_proto_version
      Src: /src/cpython/Modules/_ssl.c:4043,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:4047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4048
      start: 4039
    functionDepth: 0
    functionLinenumber: 4039
    functionLinenumberEnd: 4048
    functionName: _ssl__SSLContext_maximum_version_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SSL_CTX_get_max_proto_version
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_maximum_version_get_impl(PySSLContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_min_max_proto_version
      Src: /src/cpython/Modules/_ssl.c:4061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4056
    functionDepth: 2
    functionLinenumber: 4056
    functionLinenumberEnd: 4062
    functionName: _ssl__SSLContext_maximum_version_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - set_min_max_proto_version
    linkageType: ''
    returnType: int
    signature: "int _ssl__SSLContext_maximum_version_set_impl(PySSLContext *self,\n
      \                                         PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:4078,1
    - Dst: SSL_CTX_get_num_tickets
      Src: /src/cpython/Modules/_ssl.c:4078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4083
      start: 4072
    functionDepth: 1
    functionLinenumber: 4072
    functionLinenumberEnd: 4083
    functionName: _ssl__SSLContext_num_tickets_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_num_tickets
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_num_tickets_get_impl(PySSLContext *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:4096,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4099,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4103,1
    - Dst: SSL_CTX_set_num_tickets
      Src: /src/cpython/Modules/_ssl.c:4107,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4112
      start: 4091
    functionDepth: 1
    functionLinenumber: 4091
    functionLinenumberEnd: 4112
    functionName: _ssl__SSLContext_num_tickets_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_SetString
    - SSL_CTX_set_num_tickets
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_num_tickets_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:4126,1
    - Dst: SSL_CTX_get_security_level
      Src: /src/cpython/Modules/_ssl.c:4126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4128
      start: 4122
    functionDepth: 0
    functionLinenumber: 4122
    functionLinenumberEnd: 4128
    functionName: _ssl__SSLContext_security_level_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_security_level
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_security_level_get_impl(PySSLContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_options
      Src: /src/cpython/Modules/_ssl.c:4140,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_ssl.c:4141,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_ssl.c:4142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4143
      start: 4136
    functionDepth: 1
    functionLinenumber: 4136
    functionLinenumberEnd: 4143
    functionName: _ssl__SSLContext_options_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - PyLong_FromUnsignedLongLong
    - SSL_CTX_get_options
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_options_get_impl(PySSLContext *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:4162,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_ssl.c:4165,1
    - Dst: SSL_CTX_get_options
      Src: /src/cpython/Modules/_ssl.c:4168,1
    - Dst: _ssl_deprecated
      Src: /src/cpython/Modules/_ssl.c:4173,1
    - Dst: SSL_CTX_clear_options
      Src: /src/cpython/Modules/_ssl.c:4179,1
    - Dst: SSL_CTX_set_options
      Src: /src/cpython/Modules/_ssl.c:4182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4185
      start: 4151
    functionDepth: 2
    functionLinenumber: 4151
    functionLinenumberEnd: 4185
    functionName: _ssl__SSLContext_options_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _ssl_deprecated
    - Py_BUILD_ASSERT
    - SSL_CTX_clear_options
    - SSL_CTX_get_options
    - SSL_CTX_set_options
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_options_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:4200,1
    - Dst: X509_VERIFY_PARAM_get_hostflags
      Src: /src/cpython/Modules/_ssl.c:4201,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:4202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4203
      start: 4193
    functionDepth: 0
    functionLinenumber: 4193
    functionLinenumberEnd: 4203
    functionName: _ssl__SSLContext__host_flags_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get0_param
    - X509_VERIFY_PARAM_get_hostflags
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__host_flags_get_impl(PySSLContext *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:4218,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:4221,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/cpython/Modules/_ssl.c:4222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4224
      start: 4211
    functionDepth: 1
    functionLinenumber: 4211
    functionLinenumberEnd: 4224
    functionName: _ssl__SSLContext__host_flags_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - SSL_CTX_get0_param
    - X509_VERIFY_PARAM_set_hostflags
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext__host_flags_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ssl.c:4236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4237
      start: 4232
    functionDepth: 1
    functionLinenumber: 4232
    functionLinenumberEnd: 4237
    functionName: _ssl__SSLContext_check_hostname_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_check_hostname_get_impl(PySSLContext *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:4250,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/cpython/Modules/_ssl.c:4252,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:4256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4262
      start: 4245
    functionDepth: 2
    functionLinenumber: 4245
    functionLinenumberEnd: 4262
    functionName: _ssl__SSLContext_check_hostname_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - SSL_CTX_get_verify_mode
    - _set_verify_mode
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_check_hostname_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl.c:4267,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ssl.c:4269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4273
      start: 4264
    functionDepth: 1
    functionLinenumber: 4264
    functionLinenumberEnd: 4273
    functionName: get_post_handshake_auth
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PySSLContext_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_post_handshake_auth(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl.c:4279,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4281,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_ssl.c:4284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - op
    - arg
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4295
      start: 4276
    functionDepth: 1
    functionLinenumber: 4276
    functionLinenumberEnd: 4295
    functionName: set_post_handshake_auth
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - PyObject_IsTrue
    - PySSLContext_CAST
    linkageType: ''
    returnType: int
    signature: int set_post_handshake_auth(PyObject *op, PyObject *arg, void *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:4308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4304
    functionDepth: 0
    functionLinenumber: 4304
    functionLinenumberEnd: 4309
    functionName: _ssl__SSLContext_protocol_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_protocol_get_impl(PySSLContext *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ssl.c:4331,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_ssl.c:4332,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4336,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4337,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ssl.c:4338,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4339,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4340,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_ssl.c:4341,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4342,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4343,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4345,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:4350,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4355,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ssl.c:4356,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4358,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:4362,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4365,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4369,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: 4371
      start: 4319
    functionDepth: 1
    functionLinenumber: 4319
    functionLinenumberEnd: 4371
    functionName: _pwinfo_set
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - memcpy
    - PyByteArray_AS_STRING
    - PyBytes_Check
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyUnicode_Check
    - PyErr_Format
    - PyMem_Malloc
    - PyBytes_AS_STRING
    - PyMem_Free
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: int
    signature: "int _pwinfo_set(_PySSLPasswordInfo *pw_info, PyObject* password,\n
      \           const char *bad_type_error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_ssl.c:4379,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ssl.c:4390,1
    - Dst: _pwinfo_set
      Src: /src/cpython/Modules/_ssl.c:4397,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:4401,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:4405,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_ssl.c:4410,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:4411,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4415,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_ssl.c:4416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4373
    functionDepth: 2
    functionLinenumber: 4373
    functionLinenumberEnd: 4419
    functionName: _password_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - memcpy
    - PyErr_Format
    - PyThreadState_Swap
    - Py_CLEAR
    - _pwinfo_set
    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/cpython/Modules/_ssl.c:4436,1
    - Dst: SSL_CTX_get_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4437,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4442,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4445,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4446,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4447,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4452,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4453,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4454,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:4460,1
    - Dst: _pwinfo_set
      Src: /src/cpython/Modules/_ssl.c:4462,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4466,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4467,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4469,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/cpython/Modules/_ssl.c:4470,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4471,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4472,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4475,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:4479,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4480,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4483,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4483,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4487,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/cpython/Modules/_ssl.c:4488,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4489,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4491,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:4492,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:4493,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4496,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:4500,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4501,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4504,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4504,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4508,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/cpython/Modules/_ssl.c:4509,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4510,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4512,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4512,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4515,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4516,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4517,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4521,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4522,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4523,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4524,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4525,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 4
    argNames:
    - self
    - certfile
    - keyfile
    - password
    argTypes:
    - PySSLContext*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4527
      start: 4430
    functionDepth: 3
    functionLinenumber: 4430
    functionLinenumberEnd: 4527
    functionName: _ssl__SSLContext_load_cert_chain_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PySSL_BEGIN_ALLOW_THREADS_S
    - SSL_CTX_get_default_passwd_cb
    - Py_CLEAR
    - PyMem_Free
    - SSL_CTX_use_certificate_chain_file
    - SSL_CTX_check_private_key
    - get_state_ctx
    - SSL_CTX_set_default_passwd_cb
    - ERR_clear_error
    - SSL_CTX_set_default_passwd_cb_userdata
    - SSL_CTX_get_default_passwd_cb_userdata
    - SSL_CTX_use_PrivateKey_file
    - PyCallable_Check
    - _setSSLError
    - PyUnicode_FSConverter
    - PyErr_ExceptionMatches
    - PySSL_END_ALLOW_THREADS_S
    - PyErr_SetFromErrno
    - PyBytes_AS_STRING
    - _pwinfo_set
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_load_cert_chain_impl(PySSLContext *self,
      PyObject *certfile,\n                                      PyObject *keyfile,
      PyObject *password)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:4539,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4542,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4546,1
    - Dst: BIO_new_mem_buf
      Src: /src/cpython/Modules/_ssl.c:4551,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4553,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4553,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/cpython/Modules/_ssl.c:4557,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:4558,1
    - Dst: BIO_eof
      Src: /src/cpython/Modules/_ssl.c:4565,1
    - Dst: d2i_X509_bio
      Src: /src/cpython/Modules/_ssl.c:4569,1
    - Dst: PEM_read_bio_X509
      Src: /src/cpython/Modules/_ssl.c:4571,1
    - Dst: SSL_CTX_get_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4572,1
    - Dst: SSL_CTX_get_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4573,1
    - Dst: X509_STORE_add_cert
      Src: /src/cpython/Modules/_ssl.c:4579,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:4580,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:4582,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:4583,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:4584,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4586,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:4594,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4602,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4602,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4606,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:4609,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:4610,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4612,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4615,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4615,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:4621,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 4
    argNames:
    - self
    - data
    - len
    - filetype
    argTypes:
    - PySSLContext*
    - void*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (filetype == SSL_FILETYPE_ASN1 || filetype == SSL_FILETYPE_PEM)
      pos:
        line_end: 4538
        line_start: 4538
        source_file: /src/cpython/Modules/_ssl.c
    - condition: (store != NULL)
      pos:
        line_end: 4557
        line_start: 4557
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4623
      start: 4531
    functionDepth: 3
    functionLinenumber: 4531
    functionLinenumberEnd: 4623
    functionName: _add_ca_certs
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - BIO_new_mem_buf
    - SSL_CTX_get_cert_store
    - BIO_eof
    - ERR_clear_error
    - X509_STORE_add_cert
    - PyErr_SetString
    - SSL_CTX_get_default_passwd_cb_userdata
    - ERR_peek_last_error
    - X509_free
    - ERR_GET_REASON
    - _setSSLError
    - d2i_X509_bio
    - ERR_GET_LIB
    - PEM_read_bio_X509
    - SSL_CTX_get_default_passwd_cb
    - BIO_free
    - assert
    linkageType: ''
    returnType: int
    signature: "int _add_ca_certs(PySSLContext *self, const void *data, Py_ssize_t
      len,\n              int filetype)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4655,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4659,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4660,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4661,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4666,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4667,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4668,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ssl.c:4676,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_ssl.c:4677,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4679,1
    - Dst: _add_ca_certs
      Src: /src/cpython/Modules/_ssl.c:4684,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4685,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4686,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:4688,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_ssl.c:4693,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_ssl.c:4695,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:4698,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_ssl.c:4698,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ssl.c:4700,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4701,1
    - Dst: _add_ca_certs
      Src: /src/cpython/Modules/_ssl.c:4706,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ssl.c:4707,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4714,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4724,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4726,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:4727,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/cpython/Modules/_ssl.c:4728,1
    - Dst: PySSL_END_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:4729,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:4732,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4733,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4736,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4736,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4746,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4747,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 102
    argCount: 4
    argNames:
    - self
    - cafile
    - capath
    - cadata
    argTypes:
    - PySSLContext*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBuffer_IsContiguous(&buf, 'C'))
      pos:
        line_end: 4697
        line_start: 4697
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4753
      start: 4635
    functionDepth: 4
    functionLinenumber: 4635
    functionLinenumberEnd: 4753
    functionName: _ssl__SSLContext_load_verify_locations_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyBytes_GET_SIZE
    - get_state_ctx
    - SSL_CTX_load_verify_locations
    - PyBuffer_IsContiguous
    - ERR_clear_error
    - PyUnicode_AsASCIIString
    - PyUnicode_Check
    - Py_DECREF
    - PySSL_END_ALLOW_THREADS
    - _setSSLError
    - PyErr_ExceptionMatches
    - PyUnicode_FSConverter
    - PyObject_GetBuffer
    - PyErr_SetFromErrno
    - PySSL_BEGIN_ALLOW_THREADS
    - PyBytes_AS_STRING
    - PyObject_CheckBuffer
    - _add_ca_certs
    - PyBuffer_Release
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_load_verify_locations_impl(PySSLContext
      *self,\n                                            PyObject *cafile,\n                                            PyObject
      *capath,\n                                            PyObject *cadata)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4771,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_ssl.c:4776,1
    - Dst: PEM_read_DHparams
      Src: /src/cpython/Modules/_ssl.c:4782,1
    - Dst: fclose
      Src: /src/cpython/Modules/_ssl.c:4783,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_ssl.c:4788,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4789,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4792,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4792,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/cpython/Modules/_ssl.c:4796,1
    - Dst: DH_free
      Src: /src/cpython/Modules/_ssl.c:4797,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4798,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4798,1
    - Dst: DH_free
      Src: /src/cpython/Modules/_ssl.c:4800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - filepath
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4763
    functionDepth: 3
    functionLinenumber: 4763
    functionLinenumberEnd: 4802
    functionName: _ssl__SSLContext_load_dh_params_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - ERR_clear_error
    - PyErr_SetString
    - DH_free
    - PyErr_SetFromErrnoWithFilenameObject
    - PEM_read_DHparams
    - _setSSLError
    - Py_fopen
    - SSL_CTX_set_tmp_dh
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_load_dh_params_impl(PySSLContext *self, PyObject *filepath)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:4828,1
    - Dst: newPySSLSocket
      Src: /src/cpython/Modules/_ssl.c:4832,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4837,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: 4839
      start: 4816
    functionDepth: 5
    functionLinenumber: 4816
    functionLinenumberEnd: 4839
    functionName: _ssl__SSLContext__wrap_socket_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - newPySSLSocket
    - PyMem_Free
    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/cpython/Modules/_ssl.c:4867,1
    - Dst: newPySSLSocket
      Src: /src/cpython/Modules/_ssl.c:4871,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4875,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: 4877
      start: 4854
    functionDepth: 5
    functionLinenumber: 4854
    functionLinenumberEnd: 4877
    functionName: _ssl__SSLContext__wrap_bio_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - newPySSLSocket
    - PyMem_Free
    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/cpython/Modules/_ssl.c:4889,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4902,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4903,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4904,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4905,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4906,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4907,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4908,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4909,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4910,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4911,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4912,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:4913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:4920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4922
      start: 4884
    functionDepth: 1
    functionLinenumber: 4884
    functionLinenumberEnd: 4922
    functionName: _ssl__SSLContext_session_stats_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ADD_STATS
    - Py_DECREF
    - PyDict_New
    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: 4901
      start: 4893
    functionDepth: 0
    functionLinenumber: 4893
    functionLinenumberEnd: 4901
    functionName: ADD_STATS
    functionSourceFile: /src/cpython/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/cpython/Modules/_ssl.c:4935,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4939,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4929
    functionDepth: 3
    functionLinenumber: 4929
    functionLinenumberEnd: 4943
    functionName: _ssl__SSLContext_set_default_verify_paths_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_default_verify_paths
    - get_state_ctx
    - _setSSLError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_default_verify_paths_impl(PySSLContext *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4959,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:4961,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ssl.c:4961,1
    - Dst: OBJ_sn2nid
      Src: /src/cpython/Modules/_ssl.c:4962,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:4963,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:4965,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/cpython/Modules/_ssl.c:4970,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4972,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4972,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/cpython/Modules/_ssl.c:4975,1
    - Dst: EC_KEY_free
      Src: /src/cpython/Modules/_ssl.c:4976,1
    - Dst: SSL_CTX_set1_groups
      Src: /src/cpython/Modules/_ssl.c:4978,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4979,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(name_bytes))
      pos:
        line_end: 4960
        line_start: 4960
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4984
      start: 4953
    functionDepth: 3
    functionLinenumber: 4953
    functionLinenumberEnd: 4984
    functionName: _ssl__SSLContext_set_ecdh_curve_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - Py_DECREF
    - OBJ_sn2nid
    - SSL_CTX_set1_groups
    - PyBytes_Check
    - PyUnicode_FSConverter
    - _setSSLError
    - EC_KEY_free
    - EC_KEY_new_by_curve_name
    - PyErr_Format
    - SSL_CTX_set_tmp_ecdh
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ecdh_curve_impl(PySSLContext *self, PyObject *name)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/cpython/Modules/_ssl.c:4995,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ssl.c:4996,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5001,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl.c:5005,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:5006,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl.c:5006,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5006,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl.c:5017,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl.c:5019,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5021,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5027,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_ssl.c:5034,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5036,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Modules/_ssl.c:5043,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5052,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5058,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5061,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ssl.c:5075,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:5076,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5086,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5093,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5096,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 3
    argNames:
    - s
    - al
    - args
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts:
    - condition: (Py_IS_TYPE(ssl, get_state_ctx(sslctx)->PySSLSocket_Type))
      pos:
        line_end: 5005
        line_start: 5005
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 5098
      start: 4986
    functionDepth: 1
    functionLinenumber: 4986
    functionLinenumberEnd: 5098
    functionName: _servername_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - PyGILState_Ensure
    - get_state_ctx
    - Py_DECREF
    - PyBytes_FromString
    - SSL_get_servername
    - PyGILState_Release
    - PyLong_AsLong
    - PyErr_Occurred
    - PyWeakref_GetRef
    - PyObject_CallFunctionObjArgs
    - Py_NewRef
    - Py_IS_TYPE
    - PyErr_FormatUnraisable
    - PyUnicode_FromEncodedObject
    - assert
    linkageType: ''
    returnType: int
    signature: int _servername_callback(SSL *s, int *al, void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5124
      start: 5115
    functionDepth: 0
    functionLinenumber: 5115
    functionLinenumberEnd: 5124
    functionName: _ssl__SSLContext_sni_callback_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_sni_callback_get_impl(PySSLContext *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5139,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:5143,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/cpython/Modules/_ssl.c:5145,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:5148,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/cpython/Modules/_ssl.c:5149,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5150,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5154,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/cpython/Modules/_ssl.c:5155,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/cpython/Modules/_ssl.c:5156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5159
      start: 5134
    functionDepth: 1
    functionLinenumber: 5134
    functionLinenumberEnd: 5159
    functionName: _ssl__SSLContext_sni_callback_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - SSL_CTX_set_tlsext_servername_callback
    - PyCallable_Check
    - SSL_CTX_set_tlsext_servername_arg
    - Py_NewRef
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_sni_callback_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/cpython/Modules/_ssl.c:5165,1
    - Dst: X509_OBJECT_get_type
      Src: /src/cpython/Modules/_ssl.c:5169,1
    - Dst: X509_OBJECT_set1_X509
      Src: /src/cpython/Modules/_ssl.c:5171,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/cpython/Modules/_ssl.c:5171,1
    - Dst: X509_OBJECT_set1_X509_CRL
      Src: /src/cpython/Modules/_ssl.c:5175,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/cpython/Modules/_ssl.c:5176,1
    - Dst: X509_OBJECT_free
      Src: /src/cpython/Modules/_ssl.c:5185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5189
      start: 5162
    functionDepth: 0
    functionLinenumber: 5162
    functionLinenumberEnd: 5189
    functionName: x509_object_dup
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_new
    - X509_OBJECT_get0_X509_CRL
    - X509_OBJECT_set1_X509
    - X509_OBJECT_get0_X509
    - X509_OBJECT_get_type
    - X509_OBJECT_free
    - X509_OBJECT_set1_X509_CRL
    linkageType: ''
    returnType: X509_OBJECT
    signature: X509_OBJECT *x509_object_dup(const X509_OBJECT *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:5194,1
    - Dst: X509_STORE_lock
      Src: /src/cpython/Modules/_ssl.c:5195,1
    - Dst: sk_X509_OBJECT_deep_copy
      Src: /src/cpython/Modules/_ssl.c:5198,1
    - Dst: X509_STORE_get0_objects
      Src: /src/cpython/Modules/_ssl.c:5198,1
    - Dst: X509_STORE_unlock
      Src: /src/cpython/Modules/_ssl.c:5200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - store
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5202
      start: 5191
    functionDepth: 0
    functionLinenumber: 5191
    functionLinenumberEnd: 5202
    functionName: X509_STORE_get1_objects
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_STORE_get0_objects
    - X509_STORE_unlock
    - X509_STORE_lock
    - sk_X509_OBJECT_deep_copy
    - STACK_OF
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      X509_STORE_get1_objects(X509_STORE *store)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:5223,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/cpython/Modules/_ssl.c:5227,1
    - Dst: X509_STORE_get1_objects
      Src: /src/cpython/Modules/_ssl.c:5228,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5230,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/cpython/Modules/_ssl.c:5234,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/cpython/Modules/_ssl.c:5235,1
    - Dst: X509_OBJECT_get_type
      Src: /src/cpython/Modules/_ssl.c:5236,1
    - Dst: X509_check_ca
      Src: /src/cpython/Modules/_ssl.c:5239,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/cpython/Modules/_ssl.c:5239,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/cpython/Modules/_ssl.c:5251,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:5252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5254
      start: 5218
    functionDepth: 1
    functionLinenumber: 5218
    functionLinenumberEnd: 5254
    functionName: _ssl__SSLContext_cert_store_stats_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_cert_store
    - sk_X509_OBJECT_value
    - Py_BuildValue
    - PyErr_SetString
    - sk_X509_OBJECT_pop_free
    - X509_check_ca
    - sk_X509_OBJECT_num
    - X509_OBJECT_get_type
    - X509_STORE_get1_objects
    - X509_OBJECT_get0_X509
    - STACK_OF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_cert_store_stats_impl(PySSLContext *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:5275,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:5279,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/cpython/Modules/_ssl.c:5283,1
    - Dst: X509_STORE_get1_objects
      Src: /src/cpython/Modules/_ssl.c:5284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5286,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/cpython/Modules/_ssl.c:5290,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/cpython/Modules/_ssl.c:5294,1
    - Dst: X509_OBJECT_get_type
      Src: /src/cpython/Modules/_ssl.c:5295,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/cpython/Modules/_ssl.c:5300,1
    - Dst: X509_check_ca
      Src: /src/cpython/Modules/_ssl.c:5301,1
    - Dst: _certificate_to_der
      Src: /src/cpython/Modules/_ssl.c:5305,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5305,1
    - Dst: _decode_certificate
      Src: /src/cpython/Modules/_ssl.c:5307,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5307,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:5312,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:5315,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/cpython/Modules/_ssl.c:5317,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/cpython/Modules/_ssl.c:5321,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5322,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5323,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - self
    - binary_form
    argTypes:
    - PySSLContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5325
      start: 5270
    functionDepth: 8
    functionLinenumber: 5270
    functionLinenumberEnd: 5325
    functionName: _ssl__SSLContext_get_ca_certs_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - get_state_ctx
    - SSL_CTX_get_cert_store
    - sk_X509_OBJECT_value
    - Py_XDECREF
    - Py_CLEAR
    - PyList_Append
    - PyErr_SetString
    - sk_X509_OBJECT_pop_free
    - X509_check_ca
    - sk_X509_OBJECT_num
    - X509_OBJECT_get_type
    - X509_STORE_get1_objects
    - X509_OBJECT_get0_X509
    - _certificate_to_der
    - _decode_certificate
    - STACK_OF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ca_certs_impl(PySSLContext *self, int binary_form)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ssl.c:5335,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl.c:5338,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_ssl.c:5348,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:5348,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5349,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ssl.c:5354,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5358,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ssl.c:5368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5376,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:5379,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:5381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5385,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5387,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:5391,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5392,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5395,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 6
    argNames:
    - s
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5397
      start: 5328
    functionDepth: 1
    functionLinenumber: 5328
    functionLinenumberEnd: 5397
    functionName: psk_client_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - PyGILState_Ensure
    - Py_DECREF
    - strlen
    - PyArg_ParseTuple
    - PyGILState_Release
    - PyErr_Occurred
    - PyObject_CallFunctionObjArgs
    - Py_NewRef
    - PyUnicode_DecodeUTF8
    - PyErr_FormatUnraisable
    - memcpy
    - PyErr_Clear
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_client_callback(SSL *s,\n                                        const
      char *hint,\n                                        char *identity,\n                                        unsigned
      int max_identity_len,\n                                        unsigned char
      *psk,\n                                        unsigned int max_psk_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5414,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5414,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:5426,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5427,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5433,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ssl.c:5434,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/cpython/Modules/_ssl.c:5437,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - self
    - callback
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5445
      start: 5407
    functionDepth: 3
    functionLinenumber: 5407
    functionLinenumberEnd: 5445
    functionName: _ssl__SSLContext_set_psk_client_callback_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - Py_XDECREF
    - SSL_CTX_set_psk_client_callback
    - PyErr_SetString
    - PyCallable_Check
    - _setSSLError
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_set_psk_client_callback_impl(PySSLContext
      *self,\n                                              PyObject *callback)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ssl.c:5453,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl.c:5456,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_ssl.c:5466,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:5466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5467,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ssl.c:5472,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5476,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_ssl.c:5484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5490,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:5493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5495,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:5501,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5502,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5505,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - s
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5507
      start: 5448
    functionDepth: 1
    functionLinenumber: 5448
    functionLinenumberEnd: 5507
    functionName: psk_server_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - PyGILState_Ensure
    - Py_DECREF
    - strlen
    - PyGILState_Release
    - PyErr_Occurred
    - memcpy
    - PyObject_CallFunctionObjArgs
    - Py_NewRef
    - PyUnicode_DecodeUTF8
    - PyErr_FormatUnraisable
    - PyBytes_AsStringAndSize
    - PyErr_Clear
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_server_callback(SSL *s,\n                                        const
      char *identity,\n                                        unsigned char *psk,\n
      \                                       unsigned int max_psk_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5526,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5526,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:5539,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5540,1
    - Dst: SSL_CTX_use_psk_identity_hint
      Src: /src/cpython/Modules/_ssl.c:5546,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5547,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5551,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ssl.c:5552,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/cpython/Modules/_ssl.c:5555,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - self
    - callback
    - identity_hint
    argTypes:
    - PySSLContext*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5518
    functionDepth: 3
    functionLinenumber: 5518
    functionLinenumberEnd: 5563
    functionName: _ssl__SSLContext_set_psk_server_callback_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - Py_XDECREF
    - SSL_CTX_set_psk_server_callback
    - PyErr_SetString
    - PyCallable_Check
    - _setSSLError
    - SSL_CTX_use_psk_identity_hint
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_set_psk_server_callback_impl(PySSLContext
      *self,\n                                              PyObject *callback,\n
      \                                             const char *identity_hint)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl.c:5652,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl.c:5652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5654,1
    - Dst: BIO_set_retry_read
      Src: /src/cpython/Modules/_ssl.c:5660,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/cpython/Modules/_ssl.c:5661,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:5663,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ssl.c:5664,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:5666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 5662
        line_start: 5662
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 5673
      start: 5645
    functionDepth: 1
    functionLinenumber: 5645
    functionLinenumberEnd: 5673
    functionName: _ssl_MemoryBIO_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - BIO_new
    - BIO_s_mem
    - BIO_set_retry_read
    - BIO_free
    - PyTypeObject*::tp_alloc
    - BIO_set_mem_eof_return
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_impl(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:5678,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:5678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5675
    functionDepth: 1
    functionLinenumber: 5675
    functionLinenumberEnd: 5680
    functionName: memory_bio_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int memory_bio_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLMemoryBIO_CAST
      Src: /src/cpython/Modules/_ssl.c:5685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:5686,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ssl.c:5687,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:5688,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ssl.c:5689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5691
      start: 5682
    functionDepth: 1
    functionLinenumber: 5682
    functionLinenumberEnd: 5691
    functionName: memory_bio_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - BIO_free
    - Py_TYPE
    - PySSLMemoryBIO_CAST
    linkageType: ''
    returnType: void
    signature: void memory_bio_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl_pending
      Src: /src/cpython/Modules/_ssl.c:5705,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:5706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5707
      start: 5701
    functionDepth: 1
    functionLinenumber: 5701
    functionLinenumberEnd: 5707
    functionName: _ssl_MemoryBIO_pending_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - BIO_ctrl_pending
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_pending_get_impl(PySSLMemoryBIO *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl_pending
      Src: /src/cpython/Modules/_ssl.c:5721,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ssl.c:5722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5723
      start: 5717
    functionDepth: 1
    functionLinenumber: 5717
    functionLinenumberEnd: 5723
    functionName: _ssl_MemoryBIO_eof_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - BIO_ctrl_pending
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_eof_get_impl(PySSLMemoryBIO *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_ssl.c:5746,1
    - Dst: BIO_ctrl_pending
      Src: /src/cpython/Modules/_ssl.c:5746,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:5750,1
    - Dst: BIO_read
      Src: /src/cpython/Modules/_ssl.c:5754,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:5754,1
    - Dst: get_state_mbio
      Src: /src/cpython/Modules/_ssl.c:5756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5757,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5758,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_ssl.c:5764,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - PySSLMemoryBIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5768
      start: 5739
    functionDepth: 3
    functionLinenumber: 5739
    functionLinenumberEnd: 5768
    functionName: _ssl_MemoryBIO_read_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - BIO_read
    - Py_DECREF
    - get_state_mbio
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - BIO_ctrl_pending
    - _setSSLError
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_read_impl(PySSLMemoryBIO *self, int len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:5788,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_ssl.c:5794,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:5794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5797,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:5797,1
    - Dst: BIO_write
      Src: /src/cpython/Modules/_ssl.c:5802,1
    - Dst: get_state_mbio
      Src: /src/cpython/Modules/_ssl.c:5804,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5805,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:5809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - PySSLMemoryBIO*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5810
      start: 5781
    functionDepth: 3
    functionLinenumber: 5781
    functionLinenumberEnd: 5810
    functionName: _ssl_MemoryBIO_write_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - get_state_mbio
    - PyErr_SetString
    - _setSSLError
    - get_ssl_state
    - PyType_GetModule
    - PyErr_Format
    - Py_TYPE
    - 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/cpython/Modules/_ssl.c:5828,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/cpython/Modules/_ssl.c:5829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5832
      start: 5821
    functionDepth: 0
    functionLinenumber: 5821
    functionLinenumberEnd: 5832
    functionName: _ssl_MemoryBIO_write_eof_impl
    functionSourceFile: /src/cpython/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: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:5871,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:5872,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ssl.c:5874,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5875,1
    - Dst: SSL_SESSION_free
      Src: /src/cpython/Modules/_ssl.c:5877,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_ssl.c:5879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5881
      start: 5868
    functionDepth: 1
    functionLinenumber: 5868
    functionLinenumberEnd: 5881
    functionName: PySSLSession_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - SSL_SESSION_free
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - PySSLSession_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PySSLSession_dealloc(PyObject *op)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_ssl.c:5887,1
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:5892,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl.c:5894,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl.c:5894,1
    - Dst: SSL_SESSION_get_id
      Src: /src/cpython/Modules/_ssl.c:5903,1
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:5903,1
    - Dst: SSL_SESSION_get_id
      Src: /src/cpython/Modules/_ssl.c:5905,1
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:5905,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_ssl.c:5908,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/_ssl.c:5936,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - left
    - right
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5939
      start: 5883
    functionDepth: 1
    functionLinenumber: 5883
    functionLinenumberEnd: 5939
    functionName: PySSLSession_richcompare
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_id
    - PyErr_BadInternalCall
    - Py_IS_TYPE
    - memcmp
    - PyErr_BadArgument
    - PySSLSession_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSLSession_richcompare(PyObject *left, PyObject *right, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:5944,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:5945,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:5946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:5946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5948
      start: 5941
    functionDepth: 1
    functionLinenumber: 5941
    functionLinenumberEnd: 5948
    functionName: PySSLSession_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PySSLSession_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PySSLSession_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:5953,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:5954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5956
      start: 5950
    functionDepth: 1
    functionLinenumber: 5950
    functionLinenumberEnd: 5956
    functionName: PySSLSession_clear
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PySSLSession_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PySSLSession_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/_ssl.c:5972,1
    - Dst: SSL_SESSION_get_time_ex
      Src: /src/cpython/Modules/_ssl.c:5972,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:5974,1
    - Dst: SSL_SESSION_get_time
      Src: /src/cpython/Modules/_ssl.c:5974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5976
      start: 5967
    functionDepth: 1
    functionLinenumber: 5967
    functionLinenumberEnd: 5976
    functionName: _ssl_SSLSession_time_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromTime_t
    - SSL_SESSION_get_time_ex
    - SSL_SESSION_get_time
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_time_get_impl(PySSLSession *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_timeout
      Src: /src/cpython/Modules/_ssl.c:5990,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:5991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5986
    functionDepth: 0
    functionLinenumber: 5986
    functionLinenumberEnd: 5993
    functionName: _ssl_SSLSession_timeout_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_timeout
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_timeout_get_impl(PySSLSession *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_ticket_lifetime_hint
      Src: /src/cpython/Modules/_ssl.c:6007,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:6008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6009
      start: 6003
    functionDepth: 0
    functionLinenumber: 6003
    functionLinenumberEnd: 6009
    functionName: _ssl_SSLSession_ticket_lifetime_hint_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - SSL_SESSION_get_ticket_lifetime_hint
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_ticket_lifetime_hint_get_impl(PySSLSession *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/cpython/Modules/_ssl.c:6026,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6028
      start: 6019
    functionDepth: 1
    functionLinenumber: 6019
    functionLinenumberEnd: 6028
    functionName: _ssl_SSLSession_id_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_id
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_id_get_impl(PySSLSession *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_has_ticket
      Src: /src/cpython/Modules/_ssl.c:6042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6044
      start: 6038
    functionDepth: 0
    functionLinenumber: 6038
    functionLinenumberEnd: 6044
    functionName: _ssl_SSLSession_has_ticket_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_has_ticket
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_has_ticket_get_impl(PySSLSession *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_ssl.c:6098,1
    - Dst: RAND_add
      Src: /src/cpython/Modules/_ssl.c:6099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - module
    - view
    - entropy
    argTypes:
    - PyObject*
    - Py_buffer*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6104
      start: 6088
    functionDepth: 1
    functionLinenumber: 6088
    functionLinenumberEnd: 6104
    functionName: _ssl_RAND_add_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - RAND_add
    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/cpython/Modules/_ssl.c:6116,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6120,1
    - Dst: RAND_bytes
      Src: /src/cpython/Modules/_ssl.c:6124,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:6124,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6126,1
    - Dst: RAND_bytes
      Src: /src/cpython/Modules/_ssl.c:6129,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:6129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6133,1
    - Dst: ERR_get_error
      Src: /src/cpython/Modules/_ssl.c:6135,1
    - Dst: ERR_reason_error_string
      Src: /src/cpython/Modules/_ssl.c:6136,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6137,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ssl.c:6139,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - module
    - len
    - pseudo
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6106
    functionDepth: 1
    functionLinenumber: 6106
    functionLinenumberEnd: 6143
    functionName: PySSL_RAND
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyErr_SetString
    - PyErr_SetObject
    - PyBytes_FromStringAndSize
    - RAND_bytes
    - get_ssl_state
    - ERR_reason_error_string
    - ERR_get_error
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_RAND(PyObject *module, int len, int pseudo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSL_RAND
      Src: /src/cpython/Modules/_ssl.c:6158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6159
      start: 6154
    functionDepth: 2
    functionLinenumber: 6154
    functionLinenumberEnd: 6159
    functionName: _ssl_RAND_bytes_impl
    functionSourceFile: /src/cpython/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: PyBool_FromLong
      Src: /src/cpython/Modules/_ssl.c:6177,1
    - Dst: RAND_status
      Src: /src/cpython/Modules/_ssl.c:6177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6173
    functionDepth: 1
    functionLinenumber: 6173
    functionLinenumberEnd: 6178
    functionName: _ssl_RAND_status_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - RAND_status
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_status_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT
      Src: /src/cpython/Modules/_ssl.c:6208,1
    - Dst: X509_get_default_cert_file_env
      Src: /src/cpython/Modules/_ssl.c:6208,1
    - Dst: CONVERT
      Src: /src/cpython/Modules/_ssl.c:6209,1
    - Dst: X509_get_default_cert_file
      Src: /src/cpython/Modules/_ssl.c:6209,1
    - Dst: CONVERT
      Src: /src/cpython/Modules/_ssl.c:6210,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/cpython/Modules/_ssl.c:6210,1
    - Dst: CONVERT
      Src: /src/cpython/Modules/_ssl.c:6211,1
    - Dst: X509_get_default_cert_dir
      Src: /src/cpython/Modules/_ssl.c:6211,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6214,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6217,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6218,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6219,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6222
      start: 6190
    functionDepth: 1
    functionLinenumber: 6190
    functionLinenumberEnd: 6222
    functionName: _ssl_get_default_verify_paths_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_get_default_cert_file_env
    - X509_get_default_cert_dir
    - Py_XDECREF
    - Py_BuildValue
    - CONVERT
    - X509_get_default_cert_file
    - 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: 6207
      start: 6199
    functionDepth: 0
    functionLinenumber: 6199
    functionLinenumberEnd: 6207
    functionName: CONVERT
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT(info, target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/cpython/Modules/_ssl.c:6230,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:6232,1
    - Dst: OBJ_nid2sn
      Src: /src/cpython/Modules/_ssl.c:6235,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:6236,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6237,1
    - Dst: _asn1obj2py
      Src: /src/cpython/Modules/_ssl.c:6237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - state
    - obj
    argTypes:
    - _sslmodulestate*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6238
      start: 6224
    functionDepth: 4
    functionLinenumber: 6224
    functionLinenumberEnd: 6238
    functionName: asn1obj2py
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - Py_BuildValue
    - OBJ_nid2ln
    - OBJ_nid2sn
    - _asn1obj2py
    - PyErr_Format
    - OBJ_obj2nid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      asn1obj2py(_sslmodulestate *state, ASN1_OBJECT *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/cpython/Modules/_ssl.c:6259,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:6261,1
    - Dst: asn1obj2py
      Src: /src/cpython/Modules/_ssl.c:6264,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6264,1
    - Dst: ASN1_OBJECT_free
      Src: /src/cpython/Modules/_ssl.c:6265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - module
    - txt
    - name
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6267
      start: 6252
    functionDepth: 5
    functionLinenumber: 6252
    functionLinenumberEnd: 6267
    functionName: _ssl_txt2obj_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - asn1obj2py
    - ASN1_OBJECT_free
    - OBJ_txt2obj
    - get_ssl_state
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_txt2obj_impl(PyObject *module, const char *txt, int name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:6286,1
    - Dst: OBJ_nid2obj
      Src: /src/cpython/Modules/_ssl.c:6289,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:6291,1
    - Dst: asn1obj2py
      Src: /src/cpython/Modules/_ssl.c:6294,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6294,1
    - Dst: ASN1_OBJECT_free
      Src: /src/cpython/Modules/_ssl.c:6295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - nid
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6297
      start: 6278
    functionDepth: 5
    functionLinenumber: 6278
    functionLinenumberEnd: 6297
    functionName: _ssl_nid2obj_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - asn1obj2py
    - ASN1_OBJECT_free
    - get_ssl_state
    - PyErr_Format
    - OBJ_nid2obj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_nid2obj_impl(PyObject *module, int nid)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:6308,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:6313,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:6319,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:6321,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:6323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - encodingType
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6325
      start: 6301
    functionDepth: 1
    functionLinenumber: 6301
    functionLinenumberEnd: 6325
    functionName: certEncodingType
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyUnicode_InternFromString
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      certEncodingType(DWORD encodingType)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6334,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6335,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6339,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ssl.c:6342,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:6344,1
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6348,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:6349,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6350,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6354,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_ssl.c:6356,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:6364,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6366,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_ssl.c:6369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6370,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6372,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:6378,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - pCertCtx
    - flags
    argTypes:
    - PCCERT_CONTEXT
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6380
      start: 6327
    functionDepth: 1
    functionLinenumber: 6327
    functionLinenumberEnd: 6380
    functionName: parseKeyUsage
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - CertGetEnhancedKeyUsage
    - Py_DECREF
    - PyFrozenSet_New
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyUnicode_FromString
    - PyMem_Free
    - PySet_Add
    - Py_CLEAR
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parseKeyUsage(PCCERT_CONTEXT pCertCtx, DWORD flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CertOpenStore
      Src: /src/cpython/Modules/_ssl.c:6403,1
    - Dst: CertOpenStore
      Src: /src/cpython/Modules/_ssl.c:6410,1
    - Dst: CertAddStoreToCollection
      Src: /src/cpython/Modules/_ssl.c:6415,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6420,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - store_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6382
    functionDepth: 0
    functionLinenumber: 6382
    functionLinenumberEnd: 6429
    functionName: ssl_collect_certificates
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - CertOpenStore
    - CertAddStoreToCollection
    - CertCloseStore
    linkageType: ''
    returnType: HCERTSTORE
    signature: HCERTSTORE ssl_collect_certificates(const char *store_name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Modules/_ssl.c:6454,1
    - Dst: ssl_collect_certificates
      Src: /src/cpython/Modules/_ssl.c:6458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6460,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6461,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6461,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/cpython/Modules/_ssl.c:6464,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6465,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6468,1
    - Dst: certEncodingType
      Src: /src/cpython/Modules/_ssl.c:6471,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6472,1
    - Dst: parseKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6477,1
    - Dst: parseKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6478,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6481,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:6484,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6485,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6488,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6490,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6492,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_ssl.c:6494,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6495,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6496,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6499,1
    - Dst: CertFreeCertificateContext
      Src: /src/cpython/Modules/_ssl.c:6503,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6507,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6508,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6509,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6510,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6515,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6517,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6518,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6518,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_ssl.c:6525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6526,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - module
    - store_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6529
      start: 6445
    functionDepth: 2
    functionLinenumber: 6445
    functionLinenumberEnd: 6529
    functionName: _ssl_enum_certificates_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - parseKeyUsage
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - ssl_collect_certificates
    - CertEnumCertificatesInStore
    - CertCloseStore
    - PyTuple_SET_ITEM
    - PyBytes_FromStringAndSize
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PySet_Add
    - PySequence_List
    - CertFreeCertificateContext
    - certEncodingType
    - PySet_New
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_certificates_impl(PyObject *module, const char *store_name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Modules/_ssl.c:6553,1
    - Dst: ssl_collect_certificates
      Src: /src/cpython/Modules/_ssl.c:6557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6559,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6560,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6560,1
    - Dst: CertEnumCRLsInStore
      Src: /src/cpython/Modules/_ssl.c:6563,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6564,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6567,1
    - Dst: certEncodingType
      Src: /src/cpython/Modules/_ssl.c:6570,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6571,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:6574,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6575,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6578,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6580,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_ssl.c:6583,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6584,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6585,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6588,1
    - Dst: CertFreeCRLContext
      Src: /src/cpython/Modules/_ssl.c:6592,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6596,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6597,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6598,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6603,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6605,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6606,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6606,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_ssl.c:6612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6613,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - module
    - store_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6616
      start: 6544
    functionDepth: 2
    functionLinenumber: 6544
    functionLinenumberEnd: 6616
    functionName: _ssl_enum_crls_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - ssl_collect_certificates
    - CertFreeCRLContext
    - CertCloseStore
    - PyTuple_SET_ITEM
    - PyBytes_FromStringAndSize
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PySet_Add
    - PySequence_List
    - CertEnumCRLsInStore
    - certEncodingType
    - PySet_New
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_crls_impl(PyObject *module, const char *store_name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6642,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_ssl.c:6652,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_ssl.c:6657,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_ssl.c:6662,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6666,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6672,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6674,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6681,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6688,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6695,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6702,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6714
      start: 6639
    functionDepth: 1
    functionLinenumber: 6639
    functionLinenumberEnd: 6714
    functionName: sslmodule_init_exceptions
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyModule_AddObjectRef
    - get_ssl_state
    - PyType_FromSpecWithBases
    - add_exception
    - PyTuple_Pack
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_exceptions(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - exc
    - ','
    - name
    - ','
    - doc
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6651
      start: 6645
    functionDepth: 0
    functionLinenumber: 6645
    functionLinenumberEnd: 6651
    functionName: add_exception
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_exception(exc, name, doc, base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6719,1
    - Dst: PySocketModule_ImportModuleAndAPI
      Src: /src/cpython/Modules/_ssl.c:6720,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:6725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6727
      start: 6716
    functionDepth: 1
    functionLinenumber: 6716
    functionLinenumberEnd: 6727
    functionName: sslmodule_init_socketapi
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySocketModule_ImportModuleAndAPI
    - get_ssl_state
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_socketapi(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_ssl.c:6733,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:6734,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_ssl.c:6734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6735
      start: 6730
    functionDepth: 1
    functionLinenumber: 6730
    functionLinenumberEnd: 6735
    functionName: sslmodule_add_option
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - Py_BUILD_ASSERT
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: int
    signature: int sslmodule_add_option(PyObject *m, const char *name, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_ssl.c:6741,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6753,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6754,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6755,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6756,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6757,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6758,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6759,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6761,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6762,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6765,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6766,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6767,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6769,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6770,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6771,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6773,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6774,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6775,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6778,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6789,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6790,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6791,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6792,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6793,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6794,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6795,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6796,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6797,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6798,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6799,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6800,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6801,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6802,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6803,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6804,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6805,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6806,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6807,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6808,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6809,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6812,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6815,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6818,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6821,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6824,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6827,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6834,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6836,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6837,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6838,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6839,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6840,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6841,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6842,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6847,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6848,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6849,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6850,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6851,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6852,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6854,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6856,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6858,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6860,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6861,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6862,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6865,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6868,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6872,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6876,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6880,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:6884,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6890,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6894,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6898,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6902,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6906,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6910,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6915,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6916,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6919,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6920,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6921,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6922,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6923,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6924,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6925,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6935,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6936,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6937,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6938,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6939,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6941,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6944,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6946,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6950,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6952,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6956,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6958,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6962,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6964,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6968,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6970,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6974,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6976,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6980,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6982,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6986,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:6988,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 114
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6995
      start: 6738
    functionDepth: 1
    functionLinenumber: 6738
    functionLinenumberEnd: 6995
    functionName: sslmodule_init_constants
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - ADD_AD_CONSTANT
    - addbool
    - ADD_INT_CONST
    - ADD_OPTION
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_constants(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6752
      start: 6747
    functionDepth: 0
    functionLinenumber: 6747
    functionLinenumberEnd: 6752
    functionName: ADD_INT_CONST
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_CONST(NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6788
      start: 6785
    functionDepth: 0
    functionLinenumber: 6785
    functionLinenumberEnd: 6788
    functionName: ADD_AD_CONSTANT
    functionSourceFile: /src/cpython/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: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6845
      start: 6844
    functionDepth: 0
    functionLinenumber: 6844
    functionLinenumberEnd: 6845
    functionName: ADD_OPTION
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_OPTION(NAME, VALUE)
  - 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: 6934
      start: 6927
    functionDepth: 0
    functionLinenumber: 6927
    functionLinenumberEnd: 6934
    functionName: addbool
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addbool(m, key, value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7000,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:7006,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:7009,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:7015,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:7019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7021,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ssl.c:7024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7026,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:7036,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:7037,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ssl.c:7040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7043,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7048
      start: 6997
    functionDepth: 1
    functionLinenumber: 6997
    functionLinenumberEnd: 7048
    functionName: sslmodule_init_errorcodes
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyDict_SetItem
    - get_ssl_state
    - PyDict_New
    - PyLong_FromLong
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_errorcodes(PyObject *module)
  - 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: 7065
      start: 7050
    functionDepth: 0
    functionLinenumber: 7050
    functionLinenumberEnd: 7065
    functionName: parse_openssl_version
    functionSourceFile: /src/cpython/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: 5
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_version_num
      Src: /src/cpython/Modules/_ssl.c:7078,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:7079,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7080,1
    - Dst: parse_openssl_version
      Src: /src/cpython/Modules/_ssl.c:7083,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:7084,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7085,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:7088,1
    - Dst: OpenSSL_version
      Src: /src/cpython/Modules/_ssl.c:7088,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7089,1
    - Dst: parse_openssl_version
      Src: /src/cpython/Modules/_ssl.c:7093,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:7094,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7099
      start: 7067
    functionDepth: 1
    functionLinenumber: 7067
    functionLinenumberEnd: 7099
    functionName: sslmodule_init_versioninfo
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - parse_openssl_version
    - OpenSSL_version
    - PyLong_FromUnsignedLong
    - OpenSSL_version_num
    - PyModule_Add
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_versioninfo(PyObject *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7104,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7106,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7112,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7118,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7124,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7130,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7136,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7138,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7140,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7142,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7147
      start: 7101
    functionDepth: 1
    functionLinenumber: 7101
    functionLinenumberEnd: 7147
    functionName: sslmodule_init_types
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    - get_ssl_state
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_types(PyObject *module)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7152,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7153,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7157,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7161,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7170
      start: 7149
    functionDepth: 1
    functionLinenumber: 7149
    functionLinenumberEnd: 7170
    functionName: sslmodule_init_strings
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_ssl_state
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_strings(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7175,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_ssl.c:7176,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:7178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7182
      start: 7172
    functionDepth: 1
    functionLinenumber: 7172
    functionLinenumberEnd: 7182
    functionName: sslmodule_init_lock
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_ssl_state
    - PyErr_NoMemory
    - PyThread_allocate_lock
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_lock(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7201,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7203,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7204,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7205,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7206,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7207,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7208,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7209,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7210,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7211,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7212,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7213,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7214,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7215,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7216,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7220
      start: 7198
    functionDepth: 1
    functionLinenumber: 7198
    functionLinenumberEnd: 7220
    functionName: sslmodule_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_ssl_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int sslmodule_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7225,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7227,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7228,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7229,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7230,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7231,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7232,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7233,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7234,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7235,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7236,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7238,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7239,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7240,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7241,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7242,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7243,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7244,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7247
      start: 7222
    functionDepth: 1
    functionLinenumber: 7222
    functionLinenumberEnd: 7247
    functionName: sslmodule_clear
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_ssl_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int sslmodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslmodule_clear
      Src: /src/cpython/Modules/_ssl.c:7252,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7253,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_ssl.c:7254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7255
      start: 7249
    functionDepth: 2
    functionLinenumber: 7249
    functionLinenumberEnd: 7255
    functionName: sslmodule_free
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyThread_free_lock
    - sslmodule_clear
    - get_ssl_state
    linkageType: ''
    returnType: void
    signature: void sslmodule_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_ssl.c:7272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7273
      start: 7269
    functionDepth: 1
    functionLinenumber: 7269
    functionLinenumberEnd: 7273
    functionName: PyInit__ssl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ssl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: CHECK_HACL_UINT32_T_LENGTH
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_HACL_UINT32_T_LENGTH(LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/sha3module.c:57,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: sha3_get_state
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: SHA3State
    signature: 'SHA3State *

      sha3_get_state(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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: _SHA3object_CAST
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _SHA3object_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha3module.c:93,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha3module.c:97,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha3module.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: newSHA3object
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: SHA3object
    signature: 'SHA3object *

      newSHA3object(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA3_update
      Src: /src/cpython/Modules/sha3module.c:113,1
    - Dst: Hacl_Hash_SHA3_update
      Src: /src/cpython/Modules/sha3module.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    - uint8_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 120
    functionName: sha3_update
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_update
    linkageType: ''
    returnType: void
    signature: void sha3_update(Hacl_Hash_SHA3_state_t *state, uint8_t *buf, Py_ssize_t
      len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/sha3module.c:140,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha3module.c:145,1
    - Dst: newSHA3object
      Src: /src/cpython/Modules/sha3module.c:146,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:151,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:154,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:157,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:160,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:163,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:166,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:169,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/sha3module.c:172,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha3module.c:177,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/sha3module.c:182,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha3module.c:185,1
    - Dst: sha3_update
      Src: /src/cpython/Modules/sha3module.c:187,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha3module.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha3module.c:197,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha3module.c:200,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 4
    argNames:
    - type
    - data_obj
    - usedforsecurity
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 203
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 203
    functionName: py_sha3_new_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - sha3_update
    - PyErr_BadInternalCall
    - newSHA3object
    - _PyType_GetModuleState
    - _Py_hashlib_data_argument
    - GET_BUFFER_VIEW_OR_ERROR
    - PyBuffer_Release
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyErr_NoMemory
    - assert
    - Hacl_Hash_SHA3_malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_sha3_new_impl(PyTypeObject *type, PyObject *data_obj,
      int usedforsecurity,\n                 PyObject *string)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA3object_CAST
      Src: /src/cpython/Modules/sha3module.c:211,1
    - Dst: Hacl_Hash_SHA3_free
      Src: /src/cpython/Modules/sha3module.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: SHA3_clear
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - Hacl_Hash_SHA3_free
    linkageType: ''
    returnType: int
    signature: int SHA3_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha3module.c:222,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha3module.c:223,1
    - Dst: SHA3_clear
      Src: /src/cpython/Modules/sha3module.c:224,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/sha3module.c:225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha3module.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: SHA3_dealloc
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - SHA3_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SHA3_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:232,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha3module.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: SHA3_traverse
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int SHA3_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: newSHA3object
      Src: /src/cpython/Modules/sha3module.c:252,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:255,1
    - Dst: Hacl_Hash_SHA3_copy
      Src: /src/cpython/Modules/sha3module.c:256,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha3module.c:259,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha3module.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA3object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: _sha3_sha3_224_copy_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - newSHA3object
    - Hacl_Hash_SHA3_copy
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_copy_impl(SHA3object *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:279,1
    - Dst: Hacl_Hash_SHA3_digest
      Src: /src/cpython/Modules/sha3module.c:280,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:281,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha3module.c:282,1
    - Dst: Hacl_Hash_SHA3_hash_len
      Src: /src/cpython/Modules/sha3module.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 284
    functionName: _sha3_sha3_224_digest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_hash_len
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA3_digest
    - HASHLIB_RELEASE_LOCK
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_digest_impl(SHA3object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:298,1
    - Dst: Hacl_Hash_SHA3_digest
      Src: /src/cpython/Modules/sha3module.c:299,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:300,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha3module.c:301,1
    - Dst: Hacl_Hash_SHA3_hash_len
      Src: /src/cpython/Modules/sha3module.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: _sha3_sha3_224_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_hash_len
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA3_digest
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_hexdigest_impl(SHA3object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha3module.c:320,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha3module.c:321,1
    - Dst: sha3_update
      Src: /src/cpython/Modules/sha3module.c:323,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha3module.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 327
    functionName: _sha3_sha3_224_update_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - sha3_update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_update_impl(SHA3object *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SHA3object_CAST
      Src: /src/cpython/Modules/sha3module.c:342,1
    - Dst: Hacl_Hash_SHA3_block_len
      Src: /src/cpython/Modules/sha3module.c:343,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: SHA3_get_block_size
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - Hacl_Hash_SHA3_block_len
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_block_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha3module.c:351,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha3module.c:353,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:354,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:357,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:359,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:361,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:363,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:365,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:367,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/sha3module.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 372
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 372
    functionName: SHA3_get_name
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - _PyType_GetModuleState
    - Py_TYPE
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_name(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA3object_CAST
      Src: /src/cpython/Modules/sha3module.c:379,1
    - Dst: Hacl_Hash_SHA3_is_shake
      Src: /src/cpython/Modules/sha3module.c:380,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:381,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:383,1
    - Dst: Hacl_Hash_SHA3_hash_len
      Src: /src/cpython/Modules/sha3module.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 384
    functionName: SHA3_get_digest_size
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - Hacl_Hash_SHA3_is_shake
    - Hacl_Hash_SHA3_hash_len
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_digest_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SHA3object_CAST
      Src: /src/cpython/Modules/sha3module.c:390,1
    - Dst: Hacl_Hash_SHA3_block_len
      Src: /src/cpython/Modules/sha3module.c:391,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:392,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (rate <= 1600)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 395
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 395
    functionName: SHA3_get_capacity_bits
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - Hacl_Hash_SHA3_block_len
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_capacity_bits(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SHA3object_CAST
      Src: /src/cpython/Modules/sha3module.c:401,1
    - Dst: Hacl_Hash_SHA3_block_len
      Src: /src/cpython/Modules/sha3module.c:402,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: SHA3_get_rate_bits
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - Hacl_Hash_SHA3_block_len
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_rate_bits(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha3module.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: SHA3_get_suffix
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_suffix(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type_slots_obj
    - ','
    - type_doc
    - ','
    - type_methods
    - ','
    - type_getseters
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 434
    functionName: SHA3_TYPE_SLOTS
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA3_TYPE_SLOTS(type_slots_obj, type_doc, type_methods, type_getseters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type_spec_obj
    - ','
    - type_name
    - ','
    - type_slots
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 445
    functionName: SHA3_TYPE_SPEC
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA3_TYPE_SPEC(type_spec_obj, type_name, type_slots)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/sha3module.c:482,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/sha3module.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - length
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 495
    functionName: sha3_shake_check_digest_length
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int sha3_shake_check_digest_length(Py_ssize_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sha3_shake_check_digest_length
      Src: /src/cpython/Modules/sha3module.c:510,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/sha3module.c:520,1
    - Dst: CHECK_HACL_UINT32_T_LENGTH
      Src: /src/cpython/Modules/sha3module.c:523,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha3module.c:524,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/sha3module.c:525,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:526,1
    - Dst: Hacl_Hash_SHA3_squeeze
      Src: /src/cpython/Modules/sha3module.c:527,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - SHA3object*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 530
    functionName: _sha3_shake_128_digest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - CHECK_HACL_UINT32_T_LENGTH
    - sha3_shake_check_digest_length
    - Py_GetConstant
    - HASHLIB_RELEASE_LOCK
    - PyBytes_FromStringAndSize
    - Hacl_Hash_SHA3_squeeze
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_digest_impl(SHA3object *self, Py_ssize_t length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sha3_shake_check_digest_length
      Src: /src/cpython/Modules/sha3module.c:545,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/sha3module.c:551,1
    - Dst: CHECK_HACL_UINT32_T_LENGTH
      Src: /src/cpython/Modules/sha3module.c:554,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/sha3module.c:555,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha3module.c:557,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:560,1
    - Dst: Hacl_Hash_SHA3_squeeze
      Src: /src/cpython/Modules/sha3module.c:561,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:562,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha3module.c:563,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/sha3module.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - SHA3object*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 566
    functionName: _sha3_shake_128_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - CHECK_HACL_UINT32_T_LENGTH
    - sha3_shake_check_digest_length
    - Py_GetConstant
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    - Hacl_Hash_SHA3_squeeze
    - PyMem_Free
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_hexdigest_impl(SHA3object *self, Py_ssize_t length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 572
    functionName: SHAKE_get_digest_size
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHAKE_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha3module.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 579
    functionName: SHAKE_get_suffix
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHAKE_get_suffix(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_get_state
      Src: /src/cpython/Modules/sha3module.c:621,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:622,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:623,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:624,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:625,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:626,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 629
    functionName: _sha3_traverse
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - sha3_get_state
    linkageType: ''
    returnType: int
    signature: int _sha3_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_get_state
      Src: /src/cpython/Modules/sha3module.c:634,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:635,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:636,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:637,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:638,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:639,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: _sha3_clear
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - sha3_get_state
    linkageType: ''
    returnType: int
    signature: int _sha3_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha3_clear
      Src: /src/cpython/Modules/sha3module.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: _sha3_free
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _sha3_clear
    linkageType: ''
    returnType: void
    signature: void _sha3_free(void *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sha3_get_state
      Src: /src/cpython/Modules/sha3module.c:653,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:667,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:668,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:669,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:670,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:671,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:672,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/sha3module.c:675,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/sha3module.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 683
    functionName: _sha3_exec
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - init_sha3type
    - PyModule_AddIntConstant
    - PyModule_AddStringConstant
    - sha3_get_state
    linkageType: ''
    returnType: int
    signature: int _sha3_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - typespec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 666
    functionName: init_sha3type
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_sha3type(type, typespec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/sha3module.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 708
    functionName: PyInit__sha3
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sha3(void)
  - 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: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: CHECK_SIZE
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE(size, elemsize)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Modules/_tkinter.c:148,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_tkinter.c:154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:156,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_tkinter.c:159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:160,1
    - Dst: _Py_stat
      Src: /src/cpython/Modules/_tkinter.c:164,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_tkinter.c:173,1
    - Dst: _Py_stat
      Src: /src/cpython/Modules/_tkinter.c:178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 195
    functionName: _get_tcl_lib_path
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PySys_GetOptionalAttrString
    - Py_DECREF
    - PyUnicode_Concat
    - _Py_stat
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_tcl_lib_path(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: TkappObject_CAST
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TkappObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: Tkapp_Interp
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tkapp_Interp(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:333,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - app
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 339
    functionName: check_tcl_appartment
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Tcl_GetCurrentThread
    linkageType: ''
    returnType: int
    signature: int check_tcl_appartment(TkappObject *app)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - APP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: CHECK_TCL_APPARTMENT
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TCL_APPARTMENT(APP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:362,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_tkinter.c:364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 368
    functionName: Tkinter_Error
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Py_DECREF
    - Tkapp_UnicodeResult
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkinter_Error(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select
      Src: /src/cpython/Modules/_tkinter.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - milli
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: Sleep
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - select
    linkageType: ''
    returnType: void
    signature: void Sleep(int milli)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 408
    functionName: WaitForMainloop
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int WaitForMainloop(TkappObject* self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_tkinter.c:419,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_tkinter.c:420,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_tkinter.c:425,1
    - Dst: memchr
      Src: /src/cpython/Modules/_tkinter.c:428,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:431,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:433,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_tkinter.c:447,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:449,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_tkinter.c:451,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:458,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_tkinter.c:461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:463,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/_tkinter.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:470,1
    - Dst: assert
      Src: /src/cpython/Modules/_tkinter.c:486,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_tkinter.c:486,1
    - Dst: assert
      Src: /src/cpython/Modules/_tkinter.c:496,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_tkinter.c:496,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Modules/_tkinter.c:497,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_tkinter.c:500,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:501,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 69
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (Py_UNICODE_IS_HIGH_SURROGATE(high))
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/cpython/Modules/_tkinter.c
    - condition: (Py_UNICODE_IS_HIGH_SURROGATE(high))
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/cpython/Modules/_tkinter.c
    constantsTouched: []
    func_position:
      end: 503
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 503
    functionName: unicodeFromTclStringAndSize
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_DECREF
    - PyUnicode_FromKindAndData
    - PyUnicode_DecodeUTF8
    - PyErr_ExceptionMatches
    - PyMem_Free
    - PyUnicode_FindChar
    - memchr
    - PyUnicode_AsUCS4Copy
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      unicodeFromTclString(const char *s)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetUnicodeFromObj
      Src: /src/cpython/Modules/_tkinter.c:521,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/cpython/Modules/_tkinter.c:523,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Modules/_tkinter.c:526,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_tkinter.c:529,1
    - Dst: Tcl_GetStringFromObj
      Src: /src/cpython/Modules/_tkinter.c:532,1
    - Dst: unicodeFromTclStringAndSize
      Src: /src/cpython/Modules/_tkinter.c:533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 534
    functionName: unicodeFromTclObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16
    - unicodeFromTclStringAndSize
    - Tcl_GetStringFromObj
    - PyUnicode_DecodeUTF32
    - Tcl_GetUnicodeFromObj
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeFromTclObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_Init
      Src: /src/cpython/Modules/_tkinter.c:556,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/_tkinter.c:557,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:557,1
    - Dst: Tcl_GetVar
      Src: /src/cpython/Modules/_tkinter.c:561,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:564,1
    - Dst: Tk_Init
      Src: /src/cpython/Modules/_tkinter.c:568,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/_tkinter.c:569,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 574
    functionName: Tcl_AppInit
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tk_Init
    - strcmp
    - PySys_WriteStderr
    - Tcl_Init
    - Tcl_GetStringResult
    - Tcl_GetVar
    linkageType: ''
    returnType: int
    signature: int Tcl_AppInit(Tcl_Interp *interp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_tkinter.c:595,1
    - Dst: Tcl_CreateInterp
      Src: /src/cpython/Modules/_tkinter.c:599,1
    - Dst: Tcl_GetVar2Ex
      Src: /src/cpython/Modules/_tkinter.c:601,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:603,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:611,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_tkinter.c:617,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:621,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:630,1
    - Dst: Tcl_GetBooleanFromObj
      Src: /src/cpython/Modules/_tkinter.c:631,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:633,1
    - Dst: Tcl_NewByteArrayObj
      Src: /src/cpython/Modules/_tkinter.c:636,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:638,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:640,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:645,1
    - Dst: Tcl_NewIntObj
      Src: /src/cpython/Modules/_tkinter.c:647,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:649,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:651,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:652,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:653,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:654,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:655,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:656,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:659,1
    - Dst: Tcl_SetVar2
      Src: /src/cpython/Modules/_tkinter.c:662,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:666,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:668,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:671,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:671,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:674,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_tkinter.c:678,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Modules/_tkinter.c:679,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Modules/_tkinter.c:680,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:681,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:682,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:685,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:697,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:699,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:702,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:708,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:711,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:712,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:713,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:716,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:717,1
    - Dst: GetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:726,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_tkinter.c:727,1
    - Dst: _get_tcl_lib_path
      Src: /src/cpython/Modules/_tkinter.c:728,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:729,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_tkinter.c:733,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:737,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:739,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:741,1
    - Dst: Tcl_AppInit
      Src: /src/cpython/Modules/_tkinter.c:747,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:749,1
    - Dst: EnableEventHook
      Src: /src/cpython/Modules/_tkinter.c:753,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 105
    argCount: 7
    argNames:
    - screenName
    - className
    - interactive
    - wantobjects
    - wantTk
    - sync
    - use
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 756
    functionName: Tkapp_New
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - GetEnvironmentVariableW
    - strlen
    - PyErr_SetString
    - Tcl_NewByteArrayObj
    - Tcl_NewStringObj
    - GetLastError
    - Tcl_NewIntObj
    - PyThread_free_lock
    - Tcl_SetVar2
    - PyMem_Free
    - PyErr_Occurred
    - Tcl_DecrRefCount
    - Tcl_CreateInterp
    - Py_TOLOWER
    - Tcl_SetVar
    - PyUnicode_AsUTF8String
    - Tcl_GetCurrentThread
    - Py_DECREF
    - Tcl_GetObjType
    - Tkinter_Error
    - Tcl_GetBooleanFromObj
    - _get_tcl_lib_path
    - PyErr_NoMemory
    - PyBytes_AS_STRING
    - PyMem_Malloc
    - Py_ISUPPER
    - Tcl_GetVar2Ex
    - Tcl_DeleteCommand
    - strcat
    - EnableEventHook
    - PyObject_New
    - Tcl_AppInit
    - strcpy
    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_MutexLock
      Src: /src/cpython/Modules/_tkinter.c:764,1
    - Dst: Tcl_ThreadQueueEvent
      Src: /src/cpython/Modules/_tkinter.c:765,1
    - Dst: Tcl_ThreadAlert
      Src: /src/cpython/Modules/_tkinter.c:766,1
    - Dst: Tcl_ConditionWait
      Src: /src/cpython/Modules/_tkinter.c:767,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:768,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: 770
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 770
    functionName: Tkapp_ThreadSend
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ThreadAlert
    - Tcl_MutexUnlock
    - Tcl_ConditionWait
    - Tcl_ThreadQueueEvent
    - Tcl_MutexLock
    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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 784
    functionName: PyTclObject_CAST
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTclObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 787
    functionName: PyTclObject_Check
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTclObject_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_tkinter.c:792,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 799
    functionName: newPyTclObject
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_IncrRefCount
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newPyTclObject(Tcl_Obj *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:804,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:805,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:806,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:807,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 810
    functionName: PyTclObject_dealloc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTclObject_CAST
    - Py_DECREF
    - PyObject_Free
    - Tcl_DecrRefCount
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyTclObject_dealloc(PyObject *_self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:819,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:821,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 826
    functionName: PyTclObject_string
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - unicodeFromTclObj
    - PyTclObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_string(PyObject *_self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:831,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:833,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 837
    functionName: PyTclObject_str
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - unicodeFromTclObj
    - PyTclObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_str(PyObject *_self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:842,1
    - Dst: PyTclObject_str
      Src: /src/cpython/Modules/_tkinter.c:843,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 839
    functionDepth: 4
    functionLinenumber: 839
    functionLinenumberEnd: 850
    functionName: PyTclObject_repr
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyTclObject_CAST
    - Py_DECREF
    - PyTclObject_str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_repr(PyObject *_self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_tkinter.c:859,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:864,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:864,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:875,1
    - Dst: Tcl_GetString
      Src: /src/cpython/Modules/_tkinter.c:875,1
    - Dst: Tcl_GetString
      Src: /src/cpython/Modules/_tkinter.c:876,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Modules/_tkinter.c:878,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 879
    functionName: PyTclObject_richcompare
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetString
    - Py_RETURN_RICHCOMPARE
    - PyErr_BadInternalCall
    - strcmp
    - PyTclObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:886,1
    - Dst: unicodeFromTclString
      Src: /src/cpython/Modules/_tkinter.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 888
    functionName: get_typename
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - unicodeFromTclString
    - PyTclObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_typename(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 923
    functionName: CHECK_STRING_LENGTH
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_STRING_LENGTH(s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_tkinter.c:936,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_tkinter.c:936,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/_tkinter.c:937,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Modules/_tkinter.c:938,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_tkinter.c:941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:943,1
    - Dst: mp_init
      Src: /src/cpython/Modules/_tkinter.c:947,1
    - Dst: mp_read_radix
      Src: /src/cpython/Modules/_tkinter.c:948,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:951,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:952,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:955,1
    - Dst: Tcl_NewBignumObj
      Src: /src/cpython/Modules/_tkinter.c:957,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:958,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:960,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/cpython/Modules/_tkinter.c
    constantsTouched: []
    func_position:
      end: 964
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 964
    functionName: asBignumObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_read_radix
    - _PyLong_IsNegative
    - Py_DECREF
    - PyLong_Check
    - PyUnicode_AsUTF8
    - Tcl_NewBignumObj
    - _PyLong_Format
    - mp_clear
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj *

      asBignumObj(PyObject *value)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_tkinter.c:971,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:972,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:973,1
    - Dst: Tcl_NewByteArrayObj
      Src: /src/cpython/Modules/_tkinter.c:976,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:976,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:977,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/_tkinter.c:980,1
    - Dst: Tcl_NewBooleanObj
      Src: /src/cpython/Modules/_tkinter.c:981,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_tkinter.c:981,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_tkinter.c:983,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_tkinter.c:987,1
    - Dst: Tcl_NewLongObj
      Src: /src/cpython/Modules/_tkinter.c:989,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_tkinter.c:993,1
    - Dst: Tcl_NewWideIntObj
      Src: /src/cpython/Modules/_tkinter.c:999,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_tkinter.c:1001,1
    - Dst: asBignumObj
      Src: /src/cpython/Modules/_tkinter.c:1004,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_tkinter.c:1009,1
    - Dst: Tcl_NewDoubleObj
      Src: /src/cpython/Modules/_tkinter.c:1010,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_tkinter.c:1010,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1012,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:1012,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1016,1
    - Dst: Tcl_NewListObj
      Src: /src/cpython/Modules/_tkinter.c:1018,1
    - Dst: CHECK_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1019,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1020,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1021,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:1025,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1027,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1031,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:1031,1
    - Dst: Tcl_NewListObj
      Src: /src/cpython/Modules/_tkinter.c:1032,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:1033,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_tkinter.c:1037,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1038,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:1040,1
    - Dst: CHECK_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1042,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1043,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_tkinter.c:1046,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1047,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_tkinter.c:1047,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1047,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:1049,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_tkinter.c:1049,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_tkinter.c:1056,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_tkinter.c:1059,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_tkinter.c:1062,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1068,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1069,1
    - Dst: Tcl_NewUnicodeObj
      Src: /src/cpython/Modules/_tkinter.c:1072,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1072,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_tkinter.c:1075,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1079,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1080,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1080,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_tkinter.c:1089,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_tkinter.c:1090,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1099,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1100,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:1103,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1105,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:1109,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_tkinter.c:1114,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1118,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 98
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 1121
    functionName: AsObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - strlen
    - PyErr_SetString
    - Tcl_NewByteArrayObj
    - CHECK_SIZE
    - Tcl_NewWideIntObj
    - PyList_Check
    - PyBytes_Check
    - Tcl_NewStringObj
    - PyUnicode_IS_ASCII
    - _PyUnicode_AsUTF8String
    - Py_SETREF
    - PyBytes_GET_SIZE
    - PyLong_CheckExact
    - PyMem_Free
    - Tcl_NewUnicodeObj
    - _PyUnicode_EncodeUTF32
    - PyUnicode_Check
    - PyErr_Clear
    - PyObject_Str
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - asBignumObj
    - PyTuple_Check
    - AsObj
    - PyBool_Check
    - PyFloat_AS_DOUBLE
    - PySequence_Fast_GET_ITEM
    - Tcl_NewListObj
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - Tcl_NewDoubleObj
    - PyMem_Malloc
    - PyUnicode_GET_LENGTH
    - PyObject_IsTrue
    - Tcl_NewBooleanObj
    - PyFloat_Check
    - PySequence_Fast_GET_SIZE
    - PyObject_CallMethod
    - _PyLong_AsByteArray
    - Tcl_NewLongObj
    - _PyUnicode_EncodeUTF16
    - PyUnicode_DATA
    - PyTclObject_Check
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj *

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

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

      fromWideIntObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetBignumFromObj
      Src: /src/cpython/Modules/_tkinter.c:1160,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1160,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1161,1
    - Dst: mp_unsigned_bin_size
      Src: /src/cpython/Modules/_tkinter.c:1163,1
    - Dst: mp_ubin_size
      Src: /src/cpython/Modules/_tkinter.c:1165,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:1167,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:1169,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1170,1
    - Dst: mp_to_unsigned_bin_n
      Src: /src/cpython/Modules/_tkinter.c:1173,1
    - Dst: mp_to_ubin
      Src: /src/cpython/Modules/_tkinter.c:1175,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:1178,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:1179,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1180,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_tkinter.c:1182,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:1185,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Modules/_tkinter.c:1187,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_tkinter.c:1188,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:1190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1192
    functionName: fromBignumObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Interp
    - _PyLong_FromByteArray
    - Tcl_GetBignumFromObj
    - mp_to_unsigned_bin_n
    - Py_SETREF
    - mp_to_ubin
    - PyMem_Free
    - Tkinter_Error
    - mp_clear
    - mp_unsigned_bin_size
    - mp_ubin_size
    - PyNumber_Negative
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fromBignumObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1198,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:1201,1
    - Dst: fromBoolean
      Src: /src/cpython/Modules/_tkinter.c:1206,1
    - Dst: Tcl_GetByteArrayFromObj
      Src: /src/cpython/Modules/_tkinter.c:1211,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_tkinter.c:1212,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:1216,1
    - Dst: fromWideIntObj
      Src: /src/cpython/Modules/_tkinter.c:1221,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:1222,1
    - Dst: Tcl_ResetResult
      Src: /src/cpython/Modules/_tkinter.c:1224,1
    - Dst: fromBignumObj
      Src: /src/cpython/Modules/_tkinter.c:1232,1
    - Dst: Tcl_ListObjLength
      Src: /src/cpython/Modules/_tkinter.c:1241,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1243,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:1244,1
    - Dst: Tcl_ListObjIndex
      Src: /src/cpython/Modules/_tkinter.c:1248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1250,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1251,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:1253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1255,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:1258,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:1267,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:1271,1
    - Dst: fromBignumObj
      Src: /src/cpython/Modules/_tkinter.c:1274,1
    - Dst: newPyTclObject
      Src: /src/cpython/Modules/_tkinter.c:1277,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1278
    functionName: FromObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 6
    functionsReached:
    - Tkapp_Interp
    - Tcl_ListObjIndex
    - Tcl_ListObjLength
    - FromObj
    - PyFloat_FromDouble
    - PyTuple_New
    - PyErr_Occurred
    - newPyTclObject
    - strcmp
    - fromBoolean
    - Tcl_ResetResult
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - Tcl_GetByteArrayFromObj
    - Tkinter_Error
    - unicodeFromTclObj
    - PyTuple_SET_ITEM
    - fromBignumObj
    - fromWideIntObj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FromObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1298,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:1300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - objv
    - objStore
    - objc
    argTypes:
    - Tcl_Obj**
    - Tcl_Obj**
    - Tcl_Size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1301
    functionName: Tkapp_CallDeallocArgs
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_DecrRefCount
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void Tkapp_CallDeallocArgs(Tcl_Obj** objv, Tcl_Obj** objStore, Tcl_Size
      objc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1314,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:1314,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1315,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1319,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1322,1
    - Dst: CHECK_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1325,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1326,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1327,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:1331,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1333,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:1340,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1345,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1352,1
    - Dst: Tkapp_CallDeallocArgs
      Src: /src/cpython/Modules/_tkinter.c:1358,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1306
    functionDepth: 3
    functionLinenumber: 1306
    functionLinenumberEnd: 1360
    functionName: Tkapp_CallArgs
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - PyTuple_Check
    - PyErr_SetString
    - CHECK_SIZE
    - PyList_Check
    - AsObj
    - Tcl_IncrRefCount
    - PySequence_Fast_GET_ITEM
    - Tkapp_CallDeallocArgs
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj **

      Tkapp_CallArgs(PyObject *args, Tcl_Obj** objStore, Tcl_Size *pobjc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:1367,1
    - Dst: Tcl_GetObjResult
      Src: /src/cpython/Modules/_tkinter.c:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1364
    functionDepth: 3
    functionLinenumber: 1364
    functionLinenumberEnd: 1368
    functionName: Tkapp_UnicodeResult
    functionSourceFile: /src/cpython/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/cpython/Modules/_tkinter.c:1377,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1382,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:1383,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1384,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1373
    functionDepth: 4
    functionLinenumber: 1373
    functionLinenumberEnd: 1389
    functionName: Tkapp_ObjectResult
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - unicodeFromTclObj
    - Tcl_IncrRefCount
    - FromObj
    - Tcl_DecrRefCount
    - Tcl_GetObjResult
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_ObjectResult(TkappObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_tkinter.c:1398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1407
    functionName: Tkapp_Trace
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int Tkapp_Trace(TkappObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _self
    - ','
    - ARGS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1414
    functionName: TRACE
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(_self, ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_Trace
      Src: /src/cpython/Modules/_tkinter.c:1428,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_tkinter.c:1428,1
    - Dst: Tkapp_CallArgs
      Src: /src/cpython/Modules/_tkinter.c:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evPtr
    - flags
    argTypes:
    - Tcl_Event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1419
    functionDepth: 4
    functionLinenumber: 1419
    functionLinenumberEnd: 1433
    functionName: Tkapp_CallProc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Trace
    - PyTuple_Pack
    - Tkapp_CallArgs
    linkageType: ''
    returnType: int
    signature: int Tkapp_CallProc(Tcl_Event *evPtr, int flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TkappObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:1483,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1487,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:1488,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1489,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:1492,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:1498,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:1500,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1502,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:1512,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:1516,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_tkinter.c:1519,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:1522,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1526,1
    - Dst: Tkapp_CallArgs
      Src: /src/cpython/Modules/_tkinter.c:1529,1
    - Dst: Tcl_EvalObjv
      Src: /src/cpython/Modules/_tkinter.c:1535,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1540,1
    - Dst: Tkapp_ObjectResult
      Src: /src/cpython/Modules/_tkinter.c:1542,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - selfptr
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1476
    functionDepth: 5
    functionLinenumber: 1476
    functionLinenumberEnd: 1549
    functionName: Tkapp_Call
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetCurrentThread
    - PyTuple_GET_SIZE
    - Tkapp_ThreadSend
    - PyTuple_Check
    - TkappObject_CAST
    - PyErr_SetObject
    - Tkapp_ObjectResult
    - TRACE
    - Tcl_EvalObjv
    - WaitForMainloop
    - PyErr_NoMemory
    - PyTuple_GET_ITEM
    - Tkapp_CallArgs
    - Tkinter_Error
    - attemptckalloc
    - Tcl_ConditionFinalize
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_Call(PyObject *selfptr, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1567,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:1568,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1570,1
    - Dst: Tcl_Eval
      Src: /src/cpython/Modules/_tkinter.c:1573,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1573,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1576,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - script
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1560
    functionDepth: 4
    functionLinenumber: 1560
    functionLinenumberEnd: 1581
    functionName: _tkinter_tkapp_eval_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - Tcl_Eval
    - TRACE
    - Tkinter_Error
    - CHECK_TCL_APPARTMENT
    - Tkapp_UnicodeResult
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_eval_impl(TkappObject *self, const char *script)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1598,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:1599,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1601,1
    - Dst: Tcl_EvalFile
      Src: /src/cpython/Modules/_tkinter.c:1604,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1604,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1607,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - fileName
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1591
    functionDepth: 4
    functionLinenumber: 1591
    functionLinenumberEnd: 1612
    functionName: _tkinter_tkapp_evalfile_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - Tcl_EvalFile
    - TRACE
    - Tkinter_Error
    - CHECK_TCL_APPARTMENT
    - Tkapp_UnicodeResult
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _tkinter_tkapp_record_impl(TkappObject *self, const char *script)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1657,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:1658,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/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - CHECK_TCL_APPARTMENT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_adderrorinfo_impl(TkappObject *self, const char *msg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_tkinter.c:1700,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1701,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1702,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1705,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1706,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1707,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_tkinter.c:1713,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_tkinter.c:1715,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1720,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1723,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1724,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:1730,1
    - Dst: Tcl_GetString
      Src: /src/cpython/Modules/_tkinter.c:1731,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_tkinter.c:1734,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:1736,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - in
    - _out
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1738
    functionName: varname_converter
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetString
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyBytes_Check
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyUnicode_Check
    - PyTclObject_Check
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int varname_converter(PyObject *in, void *_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarEvent*::func
      Src: /src/cpython/Modules/_tkinter.c:1744,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ev
    argTypes:
    - VarEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1741
    functionDepth: 1
    functionLinenumber: 1741
    functionLinenumberEnd: 1749
    functionName: var_perform
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - VarEvent*::func
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void var_perform(VarEvent *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_MutexLock
      Src: /src/cpython/Modules/_tkinter.c:1757,1
    - Dst: Tcl_ConditionNotify
      Src: /src/cpython/Modules/_tkinter.c:1758,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - evPtr
    - flags
    argTypes:
    - Tcl_Event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1762
    functionName: var_proc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_MutexUnlock
    - Tcl_ConditionNotify
    - Tcl_MutexLock
    linkageType: ''
    returnType: int
    signature: int var_proc(Tcl_Event *evPtr, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TkappObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:1768,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:1769,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:1778,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:1781,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1783,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:1794,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:1795,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_tkinter.c:1797,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:1797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1798,1
    - Dst: func
      Src: /src/cpython/Modules/_tkinter.c:1804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - func
    - selfptr
    - args
    - flags
    argTypes:
    - EventFunc
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1765
    functionDepth: 2
    functionLinenumber: 1765
    functionLinenumberEnd: 1805
    functionName: var_invoke
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetCurrentThread
    - Tkapp_ThreadSend
    - Py_DECREF
    - func
    - TkappObject_CAST
    - PyErr_SetObject
    - WaitForMainloop
    - attemptckalloc
    - Py_TYPE
    - PyErr_NoMemory
    - Tcl_ConditionFinalize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      var_invoke(EventFunc func, PyObject *selfptr, PyObject *args, int flags)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1815,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_tkinter.c:1817,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1821,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1826,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1830,1
    - Dst: Tcl_SetVar2Ex
      Src: /src/cpython/Modules/_tkinter.c:1834,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1834,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:1840,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_tkinter.c:1845,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1848,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1849,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1852,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1855,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1856,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1860,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1861,1
    - Dst: Tcl_SetVar2Ex
      Src: /src/cpython/Modules/_tkinter.c:1867,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1867,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:1872,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - flags
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1807
    functionDepth: 3
    functionLinenumber: 1807
    functionLinenumberEnd: 1873
    functionName: SetVar
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - CHECK_STRING_LENGTH
    - PyTuple_GET_SIZE
    - Tkapp_Interp
    - PyArg_ParseTuple
    - PyUnicode_FromFormat
    - TRACE
    - Py_NewRef
    - AsObj
    - Tcl_SetVar2Ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SetVar(TkappObject *self, PyObject *args, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: var_invoke
      Src: /src/cpython/Modules/_tkinter.c:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1926
    functionDepth: 3
    functionLinenumber: 1926
    functionLinenumberEnd: 1930
    functionName: Tkapp_GetVar
    functionSourceFile: /src/cpython/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/cpython/Modules/_tkinter.c:1935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1932
    functionDepth: 3
    functionLinenumber: 1932
    functionLinenumberEnd: 1936
    functionName: Tkapp_GlobalGetVar
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - var_invoke
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_GlobalGetVar(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_tkinter.c:1947,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1951,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1952,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1957,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1958,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1961,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1966,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1967,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1970,1
    - Dst: Tcl_UnsetVar2
      Src: /src/cpython/Modules/_tkinter.c:1976,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1976,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1979,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:1981,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - flags
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1940
    functionDepth: 2
    functionLinenumber: 1940
    functionLinenumberEnd: 1982
    functionName: UnsetVar
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - PyArg_ParseTuple
    - PyUnicode_FromFormat
    - TRACE
    - Py_NewRef
    - Tcl_UnsetVar2
    - Tkinter_Error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnsetVar(TkappObject *self, PyObject *args, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: var_invoke
      Src: /src/cpython/Modules/_tkinter.c:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1987
    functionDepth: 3
    functionLinenumber: 1987
    functionLinenumberEnd: 1991
    functionName: Tkapp_UnsetVar
    functionSourceFile: /src/cpython/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/cpython/Modules/_tkinter.c:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1993
    functionDepth: 3
    functionLinenumber: 1993
    functionLinenumberEnd: 1998
    functionName: Tkapp_GlobalUnsetVar
    functionSourceFile: /src/cpython/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/cpython/Modules/_tkinter.c:2020,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2021,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:2024,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:2026,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2029,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2031,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:2032,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2034,1
    - Dst: fromBignumObj
      Src: /src/cpython/Modules/_tkinter.c:2042,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:2043,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:2044,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2046,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2012
    functionDepth: 3
    functionLinenumber: 2012
    functionLinenumberEnd: 2047
    functionName: _tkinter_tkapp_getint_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_STRING_LENGTH
    - PyErr_Occurred
    - PyLong_Check
    - Tcl_NewStringObj
    - fromBignumObj
    - Py_NewRef
    - Tcl_IncrRefCount
    - Tkinter_Error
    - Tcl_DecrRefCount
    - PyTclObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getint_impl(TkappObject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_tkinter.c:2064,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2065,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_tkinter.c:2068,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Modules/_tkinter.c:2069,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:2072,1
    - Dst: Tcl_GetDoubleFromObj
      Src: /src/cpython/Modules/_tkinter.c:2073,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2073,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2076,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:2077,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2080,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2082,1
    - Dst: Tcl_GetDouble
      Src: /src/cpython/Modules/_tkinter.c:2083,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2083,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2084,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:2085,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2057
    functionDepth: 2
    functionLinenumber: 2057
    functionLinenumberEnd: 2086
    functionName: _tkinter_tkapp_getdouble_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_STRING_LENGTH
    - PyFloat_Check
    - Tcl_GetDoubleFromObj
    - Tcl_GetDouble
    - PyNumber_Float
    - Tkapp_Interp
    - Py_NewRef
    - PyNumber_Check
    - Tkinter_Error
    - PyTclObject_Check
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getdouble_impl(TkappObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_tkinter.c:2103,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2104,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/_tkinter.c:2104,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:2107,1
    - Dst: Tcl_GetBooleanFromObj
      Src: /src/cpython/Modules/_tkinter.c:2108,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2108,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2111,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2112,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2115,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2117,1
    - Dst: Tcl_GetBoolean
      Src: /src/cpython/Modules/_tkinter.c:2118,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2118,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2119,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2096
    functionDepth: 2
    functionLinenumber: 2096
    functionLinenumberEnd: 2121
    functionName: _tkinter_tkapp_getboolean_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_STRING_LENGTH
    - Tcl_GetBoolean
    - Tkapp_Interp
    - PyLong_Check
    - Tkinter_Error
    - PyBool_FromLong
    - _PyLong_IsZero
    - Tcl_GetBooleanFromObj
    - PyTclObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getboolean_impl(TkappObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2138,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2139,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2141,1
    - Dst: Tcl_ExprString
      Src: /src/cpython/Modules/_tkinter.c:2144,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2144,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2147,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:2149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2131
    functionDepth: 4
    functionLinenumber: 2131
    functionLinenumberEnd: 2152
    functionName: _tkinter_tkapp_exprstring_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - TRACE
    - Tkinter_Error
    - CHECK_TCL_APPARTMENT
    - Tkapp_UnicodeResult
    - Tcl_ExprString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprstring_impl(TkappObject *self, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2170,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2171,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2173,1
    - Dst: Tcl_ExprLong
      Src: /src/cpython/Modules/_tkinter.c:2176,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2176,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2179,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2162
    functionDepth: 2
    functionLinenumber: 2162
    functionLinenumberEnd: 2184
    functionName: _tkinter_tkapp_exprlong_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - TRACE
    - Tcl_ExprLong
    - Tkinter_Error
    - PyLong_FromLong
    - CHECK_TCL_APPARTMENT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprlong_impl(TkappObject *self, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2202,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2203,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2205,1
    - Dst: Tcl_ExprDouble
      Src: /src/cpython/Modules/_tkinter.c:2208,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2208,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2211,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2194
    functionDepth: 2
    functionLinenumber: 2194
    functionLinenumberEnd: 2216
    functionName: _tkinter_tkapp_exprdouble_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - TRACE
    - Tcl_ExprDouble
    - Tkinter_Error
    - CHECK_TCL_APPARTMENT
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprdouble_impl(TkappObject *self, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2234,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2235,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2237,1
    - Dst: Tcl_ExprBoolean
      Src: /src/cpython/Modules/_tkinter.c:2240,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2240,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2243,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2226
    functionDepth: 2
    functionLinenumber: 2226
    functionLinenumberEnd: 2248
    functionName: _tkinter_tkapp_exprboolean_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - TRACE
    - Tkinter_Error
    - PyLong_FromLong
    - CHECK_TCL_APPARTMENT
    - Tcl_ExprBoolean
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprboolean_impl(TkappObject *self, const char *s)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:2269,1
    - Dst: Tcl_ListObjGetElements
      Src: /src/cpython/Modules/_tkinter.c:2272,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2272,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2275,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:2277,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:2280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2282,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:2285,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:2289,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2290,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:2292,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_tkinter.c:2293,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2296,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:2299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2300,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2301,1
    - Dst: Tcl_SplitList
      Src: /src/cpython/Modules/_tkinter.c:2304,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2304,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2306,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2307,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:2310,1
    - Dst: unicodeFromTclString
      Src: /src/cpython/Modules/_tkinter.c:2314,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_tkinter.c:2316,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:2319,1
    - Dst: ckfree
      Src: /src/cpython/Modules/_tkinter.c:2323,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2324,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2260
    functionDepth: 4
    functionLinenumber: 2260
    functionLinenumberEnd: 2326
    functionName: _tkinter_tkapp_splitlist_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Interp
    - strlen
    - PyErr_SetString
    - PyList_Check
    - unicodeFromTclString
    - Py_SETREF
    - FromObj
    - PyMem_Free
    - ckfree
    - PyTuple_New
    - PyArg_Parse
    - Py_DECREF
    - Tcl_ListObjGetElements
    - Tcl_SplitList
    - PyTuple_Check
    - PySequence_Tuple
    - Py_NewRef
    - Tkinter_Error
    - PyTuple_SET_ITEM
    - PyTclObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_splitlist_impl(TkappObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2337
    functionDepth: 1
    functionLinenumber: 2337
    functionLinenumberEnd: 2344
    functionName: PythonCmd_Error
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: int
    signature: int PythonCmd_Error(Tcl_Interp *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:2362,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2363,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:2366,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:2367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2369,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2370,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:2372,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_tkinter.c:2375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2376,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2379,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:2381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2383,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2384,1
    - Dst: Tcl_SetObjResult
      Src: /src/cpython/Modules/_tkinter.c:2386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2387,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: 2392
      start: 2349
    functionDepth: 4
    functionLinenumber: 2349
    functionLinenumberEnd: 2392
    functionName: PythonCmd
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - unicodeFromTclObj
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - AsObj
    - PythonCmd_Error
    - PyObject_Call
    - Tcl_SetObjResult
    - FromObj
    linkageType: ''
    returnType: int
    signature: "int PythonCmd(ClientData clientData, Tcl_Interp *interp,\n          int
      objc, Tcl_Obj *const objv[])"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2402,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2403,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2427,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2431,1
    - Dst: Tcl_MutexLock
      Src: /src/cpython/Modules/_tkinter.c:2432,1
    - Dst: Tcl_ConditionNotify
      Src: /src/cpython/Modules/_tkinter.c:2433,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:2434,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2455,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2457,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2461,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:2462,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2465,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_tkinter.c:2467,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2469,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_tkinter.c:2470,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2472,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2473,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2477,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2479,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2480,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2490,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2491,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2496,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2497,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2502,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2503,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2526,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2528,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2530,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2535,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2537,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2546,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2548,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2553,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2557,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_tkinter.c:2581,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2583,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2584,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2601,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2602,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2603,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_tkinter.c:2620,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2625,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2647,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2649,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2653,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2657,1
    - Dst: NewFHCD
      Src: /src/cpython/Modules/_tkinter.c:2659,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2684,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2686,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2690,1
    - Dst: DeleteFHCD
      Src: /src/cpython/Modules/_tkinter.c:2692,1
    - Dst: Tcl_DeleteTimerHandler
      Src: /src/cpython/Modules/_tkinter.c:2731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2737,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_tkinter.c:2747,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2755,1
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2761,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:2763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2765,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:2767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2768,1
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2774,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:2775,1
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2785,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_tkinter.c:2796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2798,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2805,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2826,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2827,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2831,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2833,1
    - Dst: Tktt_New
      Src: /src/cpython/Modules/_tkinter.c:2835,1
    - Dst: Tcl_CreateTimerHandler
      Src: /src/cpython/Modules/_tkinter.c:2837,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_tkinter.c:2859,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2861,1
    - Dst: Tk_GetNumMainWindows
      Src: /src/cpython/Modules/_tkinter.c:2865,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2874,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_tkinter.c:2879,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2881,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_tkinter.c:2883,1
    - Dst: Sleep
      Src: /src/cpython/Modules/_tkinter.c:2885,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_tkinter.c:2889,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2901,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2923,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_tkinter.c:2948,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2948,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2959,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2964,1
    - Dst: Tcl_Eval
      Src: /src/cpython/Modules/_tkinter.c:2966,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2966,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2971,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:2973,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2973,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:2979,1
    - Dst: Tk_Init
      Src: /src/cpython/Modules/_tkinter.c:2980,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2981,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 223
    argCount: 1
    argNames:
    - clientData
    argTypes:
    - ClientData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2395
    functionDepth: 2
    functionLinenumber: 2395
    functionLinenumberEnd: 2986
    functionName: PythonCmdDelete
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Tkapp_Interp
    - Tcl_MutexUnlock
    - PyErr_SetString
    - DeleteFHCD
    - Tcl_CreateTimerHandler
    - PyErr_CheckSignals
    - PyObject_AsFileDescriptor
    - attemptckalloc
    - PyMem_Free
    - Sleep
    - NewFHCD
    - Tcl_ConditionNotify
    - CHECK_STRING_LENGTH
    - Py_INCREF
    - PyObject_CallFunction
    - Tcl_DeleteTimerHandler
    - PyObject_CallNoArgs
    - Tcl_Eval
    - PyUnicode_FromFormat
    - strcmp
    - PyThread_acquire_lock
    - Py_XNewRef
    - PyMem_NEW
    - Tcl_ConditionFinalize
    - PyErr_SetRaisedException
    - Tk_Init
    - Tcl_GetCurrentThread
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyObject_Free
    - Tk_GetNumMainWindows
    - PyCallable_Check
    - TRACE
    - TkttObject_CAST
    - Py_NewRef
    - Tktt_New
    - Tkinter_Error
    - Tcl_DoOneEvent
    - Py_TYPE
    - PyErr_NoMemory
    - Tcl_MutexLock
    - Tcl_DeleteCommand
    - PyLong_FromVoidPtr
    - Tkapp_ThreadSend
    - Tcl_CreateObjCommand
    - PyObject_New
    - PyThread_release_lock
    - WaitForMainloop
    - Tcl_GetStringResult
    - CHECK_TCL_APPARTMENT
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: void PythonCmdDelete(ClientData clientData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2427,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2431,1
    - Dst: Tcl_MutexLock
      Src: /src/cpython/Modules/_tkinter.c:2432,1
    - Dst: Tcl_ConditionNotify
      Src: /src/cpython/Modules/_tkinter.c:2433,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:2434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - evPtr
    - flags
    argTypes:
    - Tcl_Event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2422
    functionDepth: 0
    functionLinenumber: 2422
    functionLinenumberEnd: 2436
    functionName: Tkapp_CommandProc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_DeleteCommand
    - Tcl_ConditionNotify
    - Tcl_CreateObjCommand
    - Tcl_MutexUnlock
    - Tcl_MutexLock
    linkageType: ''
    returnType: int
    signature: int Tkapp_CommandProc(Tcl_Event *evPtr, int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2455,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2457,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2461,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:2462,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2465,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_tkinter.c:2467,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2469,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_tkinter.c:2470,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2472,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2473,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2477,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2479,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2480,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2490,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2491,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2496,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2497,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2502,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2503,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - self
    - name
    - func
    argTypes:
    - TkappObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2447
    functionDepth: 2
    functionLinenumber: 2447
    functionLinenumberEnd: 2508
    functionName: _tkinter_tkapp_createcommand_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Py_INCREF
    - Tcl_GetCurrentThread
    - Tkapp_ThreadSend
    - Tkapp_Interp
    - Tcl_CreateObjCommand
    - PyErr_SetString
    - PyCallable_Check
    - TRACE
    - WaitForMainloop
    - Py_NewRef
    - attemptckalloc
    - PyMem_Free
    - PyMem_NEW
    - PyErr_NoMemory
    - Tcl_ConditionFinalize
    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/cpython/Modules/_tkinter.c:2526,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2528,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2530,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2535,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2537,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2546,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2548,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2553,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2561
    functionName: _tkinter_tkapp_deletecommand_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tcl_DeleteCommand
    - Tcl_GetCurrentThread
    - Tkapp_ThreadSend
    - PyErr_SetString
    - TRACE
    - attemptckalloc
    - PyErr_NoMemory
    - Tcl_ConditionFinalize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_deletecommand_impl(TkappObject *self, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_tkinter.c:2581,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2583,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - func
    - file
    - id
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2577
    functionDepth: 1
    functionLinenumber: 2577
    functionLinenumberEnd: 2590
    functionName: NewFHCD
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - PyMem_NEW
    - Py_XNewRef
    linkageType: ''
    returnType: FileHandler_ClientData
    signature: 'FileHandler_ClientData *

      NewFHCD(PyObject *func, PyObject *file, int id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2601,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2602,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2608
    functionName: DeleteFHCD
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void DeleteFHCD(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_tkinter.c:2620,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - clientData
    - mask
    argTypes:
    - ClientData
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2610
    functionDepth: 1
    functionLinenumber: 2610
    functionLinenumberEnd: 2627
    functionName: FileHandler
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallFunction
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void FileHandler(ClientData clientData, int mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2647,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2649,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2653,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2657,1
    - Dst: NewFHCD
      Src: /src/cpython/Modules/_tkinter.c:2659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - file
    - mask
    - func
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2639
    functionDepth: 2
    functionLinenumber: 2639
    functionLinenumberEnd: 2668
    functionName: _tkinter_tkapp_createfilehandler_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - NewFHCD
    - PyErr_SetString
    - PyObject_AsFileDescriptor
    - PyCallable_Check
    - TRACE
    - CHECK_TCL_APPARTMENT
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_tkinter_tkapp_createfilehandler_impl(TkappObject *self,
      PyObject *file,\n                                      int mask, PyObject *func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2684,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2686,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2690,1
    - Dst: DeleteFHCD
      Src: /src/cpython/Modules/_tkinter.c:2692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2678
    functionDepth: 2
    functionLinenumber: 2678
    functionLinenumberEnd: 2699
    functionName: _tkinter_tkapp_deletefilehandler_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_TCL_APPARTMENT
    - PyObject_AsFileDescriptor
    - TRACE
    - DeleteFHCD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_deletefilehandler_impl(TkappObject *self, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2708
    functionName: TkttObject_Check
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TkttObject_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: 2716
      start: 2715
    functionDepth: 0
    functionLinenumber: 2715
    functionLinenumberEnd: 2716
    functionName: TkttObject_CAST
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TkttObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_DeleteTimerHandler
      Src: /src/cpython/Modules/_tkinter.c:2731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkttObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2740
    functionName: _tkinter_tktimertoken_deletetimerhandler_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Tcl_DeleteTimerHandler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tktimertoken_deletetimerhandler_impl(TkttObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_tkinter.c:2747,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2756
    functionName: Tktt_New
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - PyObject_New
    linkageType: ''
    returnType: TkttObject
    signature: 'TkttObject *

      Tktt_New(PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2761,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:2763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2765,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:2767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2769
    functionName: Tktt_Dealloc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Free
    - TkttObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Tktt_Dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2774,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:2775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2771
    functionDepth: 1
    functionLinenumber: 2771
    functionLinenumberEnd: 2778
    functionName: Tktt_Repr
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - TkttObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tktt_Repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2785,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_tkinter.c:2796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2798,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - clientData
    argTypes:
    - ClientData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2782
    functionDepth: 1
    functionLinenumber: 2782
    functionLinenumberEnd: 2808
    functionName: TimerHandler
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyErr_GetRaisedException
    - TkttObject_CAST
    linkageType: ''
    returnType: void
    signature: void TimerHandler(ClientData clientData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2826,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2827,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2831,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2833,1
    - Dst: Tktt_New
      Src: /src/cpython/Modules/_tkinter.c:2835,1
    - Dst: Tcl_CreateTimerHandler
      Src: /src/cpython/Modules/_tkinter.c:2837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - milliseconds
    - func
    argTypes:
    - TkappObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2819
    functionDepth: 2
    functionLinenumber: 2819
    functionLinenumberEnd: 2842
    functionName: _tkinter_tkapp_createtimerhandler_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyCallable_Check
    - TRACE
    - Tktt_New
    - Tcl_CreateTimerHandler
    - CHECK_TCL_APPARTMENT
    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/cpython/Modules/_tkinter.c:2859,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2861,1
    - Dst: Tk_GetNumMainWindows
      Src: /src/cpython/Modules/_tkinter.c:2865,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2874,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_tkinter.c:2879,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2881,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_tkinter.c:2883,1
    - Dst: Sleep
      Src: /src/cpython/Modules/_tkinter.c:2885,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_tkinter.c:2889,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2901,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - self
    - threshold
    argTypes:
    - TkappObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2855
    functionDepth: 1
    functionLinenumber: 2855
    functionLinenumberEnd: 2906
    functionName: _tkinter_tkapp_mainloop_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_TCL_APPARTMENT
    - Tk_GetNumMainWindows
    - PyThread_release_lock
    - PyErr_CheckSignals
    - PyThread_acquire_lock
    - Tcl_DoOneEvent
    - PyThreadState_Get
    - Sleep
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_mainloop_impl(TkappObject *self, int threshold)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - TkappObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2916
    functionDepth: 0
    functionLinenumber: 2916
    functionLinenumberEnd: 2926
    functionName: _tkinter_tkapp_dooneevent_impl
    functionSourceFile: /src/cpython/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: 2938
      start: 2932
    functionDepth: 0
    functionLinenumber: 2932
    functionLinenumberEnd: 2938
    functionName: _tkinter_tkapp_quit_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_tkinter.c:2948,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2944
    functionDepth: 1
    functionLinenumber: 2944
    functionLinenumberEnd: 2949
    functionName: _tkinter_tkapp_interpaddr_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - Tkapp_Interp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_interpaddr_impl(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2959,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2964,1
    - Dst: Tcl_Eval
      Src: /src/cpython/Modules/_tkinter.c:2966,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2966,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2971,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:2973,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2955
    functionDepth: 2
    functionLinenumber: 2955
    functionLinenumberEnd: 2974
    functionName: _tkinter_tkapp_loadtk_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Interp
    - Tcl_Eval
    - Tcl_GetStringResult
    - Tkinter_Error
    - CHECK_TCL_APPARTMENT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_loadtk_impl(TkappObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TkappObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2991,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_tkinter.c:2993,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2988
    functionDepth: 1
    functionLinenumber: 2988
    functionLinenumberEnd: 3001
    functionName: Tkapp_WantObjects
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TkappObject_CAST
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_WantObjects(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_tkinter.c:3020,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_tkinter.c:3022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3024
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3024
    functionName: _tkinter_tkapp_settrace_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_settrace_impl(TkappObject *self, PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_tkinter.c:3040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3042
    functionName: _tkinter_tkapp_gettrace_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _tkinter_tkapp_willdispatch_impl(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TkappObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:3064,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:3065,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:3071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3072,1
    - Dst: DisableEventHook
      Src: /src/cpython/Modules/_tkinter.c:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3061
    functionDepth: 1
    functionLinenumber: 3061
    functionLinenumberEnd: 3074
    functionName: Tkapp_Dealloc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Free
    - TkappObject_CAST
    - DisableEventHook
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Tkapp_Dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Modules/_tkinter.c:3099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - size
    argTypes:
    - FlattenContext*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3086
    functionDepth: 1
    functionLinenumber: 3086
    functionLinenumberEnd: 3100
    functionName: _bump
    functionSourceFile: /src/cpython/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/cpython/Modules/_tkinter.c:3110,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:3113,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:3113,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:3114,1
    - Dst: _bump
      Src: /src/cpython/Modules/_tkinter.c:3117,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:3121,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:3122,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:3122,1
    - Dst: _flatten1
      Src: /src/cpython/Modules/_tkinter.c:3123,1
    - Dst: _bump
      Src: /src/cpython/Modules/_tkinter.c:3127,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:3129,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:3130,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:3134,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - context
    - item
    - depth
    argTypes:
    - FlattenContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3102
    functionDepth: 2
    functionLinenumber: 3102
    functionLinenumberEnd: 3138
    functionName: _flatten1
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - _flatten1
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - PyList_Check
    - Py_NewRef
    - _bump
    - PySequence_Fast_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int _flatten1(FlattenContext* context, PyObject* item, int depth)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_tkinter.c:3154,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:3158,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:3160,1
    - Dst: _flatten1
      Src: /src/cpython/Modules/_tkinter.c:3166,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:3167,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Modules/_tkinter.c:3171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3175
      start: 3148
    functionDepth: 3
    functionLinenumber: 3148
    functionLinenumberEnd: 3175
    functionName: _tkinter__flatten
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - _flatten1
    - _PyTuple_Resize
    - PySequence_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter__flatten(PyObject *module, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:3204,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:3205,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:3206,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:3207,1
    - Dst: Tkapp_New
      Src: /src/cpython/Modules/_tkinter.c:3209,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: 3212
      start: 3195
    functionDepth: 3
    functionLinenumber: 3195
    functionLinenumberEnd: 3212
    functionName: _tkinter_create_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    - Tkapp_New
    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/cpython/Modules/_tkinter.c:3232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - new_val
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3238
      start: 3227
    functionDepth: 1
    functionLinenumber: 3227
    functionLinenumberEnd: 3238
    functionName: _tkinter_setbusywaitinterval_impl
    functionSourceFile: /src/cpython/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: 3252
      start: 3247
    functionDepth: 0
    functionLinenumber: 3247
    functionLinenumberEnd: 3252
    functionName: _tkinter_getbusywaitinterval_impl
    functionSourceFile: /src/cpython/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: 3351
      start: 3347
    functionDepth: 0
    functionLinenumber: 3347
    functionLinenumberEnd: 3351
    functionName: MyFileProc
    functionSourceFile: /src/cpython/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/cpython/Modules/_tkinter.c:3362,1
    - Dst: fileno
      Src: /src/cpython/Modules/_tkinter.c:3366,1
    - Dst: Tcl_CreateFileHandler
      Src: /src/cpython/Modules/_tkinter.c:3367,1
    - Dst: _kbhit
      Src: /src/cpython/Modules/_tkinter.c:3372,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_tkinter.c:3378,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:3381,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_tkinter.c:3384,1
    - Dst: Sleep
      Src: /src/cpython/Modules/_tkinter.c:3386,1
    - Dst: Tcl_DeleteFileHandler
      Src: /src/cpython/Modules/_tkinter.c:3393,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:3397,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_tkinter.c:3399,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_tkinter.c:3401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3356
    functionDepth: 1
    functionLinenumber: 3356
    functionLinenumberEnd: 3403
    functionName: EventHook
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - Tcl_CreateFileHandler
    - _kbhit
    - Tcl_DeleteFileHandler
    - PyErr_Print
    - PyThread_release_lock
    - PyEval_SaveThread
    - PyThread_acquire_lock
    - Sleep
    - Tcl_DoOneEvent
    - fileno
    - PyEval_RestoreThread
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int EventHook(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_tkinter.c:3412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3407
    functionDepth: 1
    functionLinenumber: 3407
    functionLinenumberEnd: 3416
    functionName: EnableEventHook
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: void EnableEventHook(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tk_GetNumMainWindows
      Src: /src/cpython/Modules/_tkinter.c:3422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3418
    functionDepth: 0
    functionLinenumber: 3418
    functionLinenumberEnd: 3426
    functionName: DisableEventHook
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Tk_GetNumMainWindows
    linkageType: ''
    returnType: void
    signature: void DisableEventHook(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_tkinter.c:3431,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_tkinter.c:3432,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_tkinter.c:3433,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_tkinter.c:3434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - Py_UNUSED(mod)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3436
      start: 3428
    functionDepth: 1
    functionLinenumber: 3428
    functionLinenumberEnd: 3436
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 5
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *Py_UNUSED(mod))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_tkinter.c:3441,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_tkinter.c:3442,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_tkinter.c:3443,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_tkinter.c:3444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - Py_UNUSED(module)
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3438
    functionDepth: 1
    functionLinenumber: 3438
    functionLinenumberEnd: 3446
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *Py_UNUSED(module), visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_tkinter.c:3451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3452
      start: 3448
    functionDepth: 0
    functionLinenumber: 3448
    functionLinenumberEnd: 3452
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - module_clear
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_tkinter.c:3469,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_tkinter.c:3473,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_tkinter.c:3477,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_tkinter.c:3480,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_tkinter.c:3481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3482,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3487,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3491,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3495,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3499,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3503,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3507,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3511,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3515,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3519,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_tkinter.c:3522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3523,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_tkinter.c:3526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3527,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_tkinter.c:3531,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_tkinter.c:3532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3533,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_tkinter.c:3537,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_tkinter.c:3538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3539,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_tkinter.c:3543,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_tkinter.c:3544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3545,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Modules/_tkinter.c:3552,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_tkinter.c:3553,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/_tkinter.c:3554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3555,1
    - Dst: GetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:3563,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_tkinter.c:3565,1
    - Dst: _get_tcl_lib_path
      Src: /src/cpython/Modules/_tkinter.c:3566,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:3567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3569,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_tkinter.c:3573,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3576,1
    - Dst: SetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:3579,1
    - Dst: Tcl_FindExecutable
      Src: /src/cpython/Modules/_tkinter.c:3584,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:3584,1
    - Dst: SetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:3587,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:3588,1
    - Dst: Tcl_FindExecutable
      Src: /src/cpython/Modules/_tkinter.c:3591,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:3591,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:3594,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:3597,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:3600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3601,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3606
      start: 3464
    functionDepth: 2
    functionLinenumber: 3464
    functionLinenumberEnd: 3606
    functionName: PyInit__tkinter
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - GetEnvironmentVariableW
    - GetLastError
    - PyErr_NewException
    - SetEnvironmentVariableW
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - PyModule_AddStringConstant
    - Tcl_FindExecutable
    - PyErr_Occurred
    - PyModule_AddObjectRef
    - PyUnstable_Module_SetGIL
    - PyType_FromSpec
    - PyUnicode_Check
    - PyModule_Create
    - Py_DECREF
    - PyUnicode_EncodeFSDefault
    - _get_tcl_lib_path
    - PyBytes_AS_STRING
    - PySys_GetOptionalAttrString
    - PyThread_allocate_lock
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__tkinter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Register
      Src: /src/cpython/Modules/_codecsmodule.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - search_function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: _codecs_register
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_Register
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_register(PyObject *module, PyObject *search_function)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Unregister
      Src: /src/cpython/Modules/_codecsmodule.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - search_function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: _codecs_unregister
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_Unregister
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_unregister(PyObject *module, PyObject *search_function)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Modules/_codecsmodule.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - encoding
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: _codecs_lookup_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:131,1
    - Dst: PyCodec_Encode
      Src: /src/cpython/Modules/_codecsmodule.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: _codecs_encode_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:158,1
    - Dst: PyCodec_Decode
      Src: /src/cpython/Modules/_codecsmodule.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: _codecs_decode_impl
    functionSourceFile: /src/cpython/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: Py_BuildValue
      Src: /src/cpython/Modules/_codecsmodule.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - decoded
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: codec_tuple
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:188,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: _codecs_escape_decode_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_codecsmodule.c:211,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_codecsmodule.c:216,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_codecsmodule.c:224,1
    - Dst: assert
      Src: /src/cpython/Modules/_codecsmodule.c:228,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_codecsmodule.c:228,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_codecsmodule.c:229,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_codecsmodule.c:248,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_codecsmodule.c:248,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:253,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: 227
        line_start: 227
        source_file: /src/cpython/Modules/_codecsmodule.c
    constantsTouched: []
    func_position:
      end: 254
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 254
    functionName: _codecs_escape_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyErr_SetString
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - 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/cpython/Modules/_codecsmodule.c:271,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:274,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: 275
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: _codecs_utf_7_decode_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:291,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:294,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: 295
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: _codecs_utf_8_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF8Stateful
    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/cpython/Modules/_codecsmodule.c:313,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:316,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: 317
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 317
    functionName: _codecs_utf_16_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF16Stateful
    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/cpython/Modules/_codecsmodule.c:335,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:338,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: 339
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 339
    functionName: _codecs_utf_16_le_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF16Stateful
    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/cpython/Modules/_codecsmodule.c:357,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:360,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: 361
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: _codecs_utf_16_be_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF16Stateful
    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/cpython/Modules/_codecsmodule.c:387,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_codecsmodule.c:392,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: 393
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: _codecs_utf_16_ex_decode_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:411,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:414,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: 415
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: _codecs_utf_32_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF32Stateful
    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/cpython/Modules/_codecsmodule.c:433,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:436,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: 437
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: _codecs_utf_32_le_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF32Stateful
    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/cpython/Modules/_codecsmodule.c:455,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:458,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: 459
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: _codecs_utf_32_be_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF32Stateful
    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/cpython/Modules/_codecsmodule.c:483,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_codecsmodule.c:488,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: 489
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 489
    functionName: _codecs_utf_32_ex_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_DecodeUTF32Stateful
    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_DecodeUnicodeEscapeStateful
      Src: /src/cpython/Modules/_codecsmodule.c:505,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:508,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: 509
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: _codecs_unicode_escape_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - _PyUnicode_DecodeUnicodeEscapeStateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_unicode_escape_decode_impl(PyObject *module, Py_buffer
      *data,\n                                   const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_DecodeRawUnicodeEscapeStateful
      Src: /src/cpython/Modules/_codecsmodule.c:525,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:528,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: 529
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 529
    functionName: _codecs_raw_unicode_escape_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_DecodeRawUnicodeEscapeStateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_raw_unicode_escape_decode_impl(PyObject *module,
      Py_buffer *data,\n                                       const char *errors,
      int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Modules/_codecsmodule.c:543,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 545
    functionName: _codecs_latin_1_decode_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:559,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: _codecs_ascii_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeASCII
    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/cpython/Modules/_codecsmodule.c:581,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:582,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: 583
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 583
    functionName: _codecs_charmap_decode_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:601,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:603,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: 604
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 604
    functionName: _codecs_mbcs_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeMBCSStateful
    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/cpython/Modules/_codecsmodule.c:620,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:622,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: 623
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 623
    functionName: _codecs_oem_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeCodePageStateful
    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/cpython/Modules/_codecsmodule.c:640,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:644,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: 645
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 645
    functionName: _codecs_code_page_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeCodePageStateful
    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/cpython/Modules/_codecsmodule.c:663,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: _codecs_readbuffer_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyBytes_FromStringAndSize
    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/cpython/Modules/_codecsmodule.c:679,1
    - Dst: _PyUnicode_EncodeUTF7
      Src: /src/cpython/Modules/_codecsmodule.c:679,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 681
    functionName: _codecs_utf_7_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF7
    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/cpython/Modules/_codecsmodule.c:695,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_codecsmodule.c:695,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 697
    functionName: _codecs_utf_8_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_GET_LENGTH
    - _PyUnicode_AsUTF8String
    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/cpython/Modules/_codecsmodule.c:719,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_codecsmodule.c:719,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 721
    functionName: _codecs_utf_16_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_codecsmodule.c:735,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_codecsmodule.c:735,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 737
    functionName: _codecs_utf_16_le_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_codecsmodule.c:751,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_codecsmodule.c:751,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 753
    functionName: _codecs_utf_16_be_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_codecsmodule.c:775,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_codecsmodule.c:775,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 777
    functionName: _codecs_utf_32_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - codec_tuple
    - _PyUnicode_EncodeUTF32
    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/cpython/Modules/_codecsmodule.c:791,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_codecsmodule.c:791,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 793
    functionName: _codecs_utf_32_le_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - codec_tuple
    - _PyUnicode_EncodeUTF32
    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/cpython/Modules/_codecsmodule.c:807,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_codecsmodule.c:807,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 809
    functionName: _codecs_utf_32_be_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - codec_tuple
    - _PyUnicode_EncodeUTF32
    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/cpython/Modules/_codecsmodule.c:823,1
    - Dst: PyUnicode_AsUnicodeEscapeString
      Src: /src/cpython/Modules/_codecsmodule.c:823,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 825
    functionName: _codecs_unicode_escape_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_GET_LENGTH
    - PyUnicode_AsUnicodeEscapeString
    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/cpython/Modules/_codecsmodule.c:839,1
    - Dst: PyUnicode_AsRawUnicodeEscapeString
      Src: /src/cpython/Modules/_codecsmodule.c:839,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: _codecs_raw_unicode_escape_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsRawUnicodeEscapeString
    - codec_tuple
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_codecsmodule.c:855,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_codecsmodule.c:855,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 857
    functionName: _codecs_latin_1_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsLatin1String
    - codec_tuple
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_codecsmodule.c:871,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_codecsmodule.c:871,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 873
    functionName: _codecs_ascii_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsASCIIString
    - codec_tuple
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_codecsmodule.c:891,1
    - Dst: _PyUnicode_EncodeCharmap
      Src: /src/cpython/Modules/_codecsmodule.c:891,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - mapping
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 893
    functionName: _codecs_charmap_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeCharmap
    - codec_tuple
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_codecsmodule.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - map
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 906
    functionName: _codecs_charmap_build_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_codecsmodule.c:921,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Modules/_codecsmodule.c:921,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 923
    functionName: _codecs_mbcs_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    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/cpython/Modules/_codecsmodule.c:936,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Modules/_codecsmodule.c:936,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 938
    functionName: _codecs_oem_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    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/cpython/Modules/_codecsmodule.c:953,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Modules/_codecsmodule.c:953,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:954,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: 955
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 955
    functionName: _codecs_code_page_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    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/cpython/Modules/_codecsmodule.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - errors
    - handler
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 982
    functionName: _codecs_register_error_impl
    functionSourceFile: /src/cpython/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_UnregisterError
      Src: /src/cpython/Modules/_codecsmodule.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1006
    functionName: _codecs__unregister_error_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyCodec_UnregisterError
    linkageType: ''
    returnType: int
    signature: int _codecs__unregister_error_impl(PyObject *module, const char *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Modules/_codecsmodule.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1024
    functionName: _codecs_lookup_error_impl
    functionSourceFile: /src/cpython/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: PyModuleDef_Init
      Src: /src/cpython/Modules/_codecsmodule.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1100
    functionName: PyInit__codecs
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__codecs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_operator.c:21,1
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/cpython/Modules/_operator.c
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: get_operator_state
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _operator_state
    signature: '_operator_state *

      get_operator_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_operator.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: _operator_truth_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: _operator_add_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: _operator_sub_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: _operator_mul_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: _operator_matmul_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: _operator_floordiv_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: _operator_truediv_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: _operator_mod_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: _operator_neg
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: _operator_pos
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: _operator_abs
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: _operator_inv
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: _operator_invert
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: _operator_lshift_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: _operator_rshift_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: _operator_not__impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: _operator_and__impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: _operator_xor_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: _operator_or__impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: _operator_iadd_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: _operator_isub_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: _operator_imul_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: _operator_imatmul_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: _operator_ifloordiv_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: _operator_itruediv_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 387
    functionName: _operator_imod_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: _operator_ilshift_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: _operator_irshift_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 426
    functionName: _operator_iand_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: _operator_ixor_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: _operator_ior_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: _operator_concat_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 478
    functionName: _operator_iconcat_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: _operator_contains_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 512
    functionName: _operator_indexOf_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 525
    functionName: _operator_countOf_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: _operator_getitem_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 563
    functionName: _operator_setitem_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 578
    functionName: _operator_delitem_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: _operator_eq_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: _operator_ne_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 621
    functionName: _operator_lt_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: _operator_le_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: _operator_gt_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: _operator_ge_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 673
    functionName: _operator_pow_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 686
    functionName: _operator_ipow_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: _operator_index
    functionSourceFile: /src/cpython/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_Is
      Src: /src/cpython/Modules/_operator.c:714,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: _operator_is__impl
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_Is
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is__impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 731
    functionName: _operator_is_not_impl
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is_not_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_operator.c:743,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 745
    functionName: _operator_is_none
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_IsNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is_none(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_operator.c:757,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 759
    functionName: _operator_is_not_none
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_IsNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is_not_none(PyObject *module, PyObject *a)'
  - 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: 807
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 807
    functionName: _tscmp
    functionSourceFile: /src/cpython/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/cpython/Modules/_operator.c:830,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: 831
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 831
    functionName: _operator_length_hint_impl
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_operator.c:858,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_operator.c:858,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_operator.c:859,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_operator.c:859,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_operator.c:860,1
    - Dst: _tscmp
      Src: /src/cpython/Modules/_operator.c:866,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_operator.c:866,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_operator.c:867,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_operator.c:868,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_operator.c:869,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_operator.c:876,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_operator.c:876,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_operator.c:877,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:880,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:880,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_operator.c:884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_operator.c:888,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_operator.c:890,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_operator.c:894,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_operator.c:895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_operator.c:899,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_operator.c:901,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_operator.c:902,1
    - Dst: _tscmp
      Src: /src/cpython/Modules/_operator.c:906,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_operator.c:911,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_operator.c:912,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_operator.c:915,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 916
    functionName: _operator__compare_digest_impl
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_CheckBuffer
    - PyBool_FromLong
    - PyErr_SetString
    - PyUnicode_IS_ASCII
    - Py_TYPE
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyUnicode_DATA
    - PyErr_Format
    - PyUnicode_Check
    - _tscmp
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator__compare_digest_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_operator.c:930,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_operator.c:933,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_operator.c:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 937
    functionName: _operator_call
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - PyObject_Vectorcall
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_call(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_operator.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1007
    functionName: text_signature
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      text_signature(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1025
    functionName: itemgetterobject_CAST
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itemgetterobject_CAST(op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_operator.c:1041,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1044,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_operator.c:1046,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_operator.c:1051,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_operator.c:1053,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:1058,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_operator.c:1061,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_operator.c:1062,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_operator.c:1069,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_operator.c:1077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1079
    functionName: itemgetter_new
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyErr_Clear
    - PyArg_UnpackTuple
    - _PyType_GetModuleState
    - Py_NewRef
    - PyObject_GC_Track
    - PyLong_CheckExact
    - PyObject_GC_New
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: itemgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1084,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1087
    functionName: itemgetter_clear
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - itemgetterobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int itemgetter_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1092,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_operator.c:1093,1
    - Dst: itemgetter_clear
      Src: /src/cpython/Modules/_operator.c:1094,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_operator.c:1095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1097
    functionName: itemgetter_dealloc
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - itemgetter_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void itemgetter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: itemgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1102,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1103,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1103,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1106
    functionName: itemgetter_traverse
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - itemgetterobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int itemgetter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:1111,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_operator.c:1111,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_operator.c:1112,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_operator.c:1114,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1114,1
    - Dst: itemgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1116,1
    - Dst: itemgetter_call_impl
      Src: /src/cpython/Modules/_operator.c:1117,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - op
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(args))
      pos:
        line_end: 1110
        line_start: 1110
        source_file: /src/cpython/Modules/_operator.c
    constantsTouched: []
    func_position:
      end: 1118
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1118
    functionName: itemgetter_call
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - itemgetterobject_CAST
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - itemgetter_call_impl
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_call(PyObject *op, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Modules/_operator.c:1124,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_operator.c:1127,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_operator.c:1128,1
    - Dst: itemgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1131,1
    - Dst: itemgetter_call_impl
      Src: /src/cpython/Modules/_operator.c:1132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - op
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1133
    functionName: itemgetter_vectorcall
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - itemgetter_call_impl
    - itemgetterobject_CAST
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitemgetter_vectorcall(PyObject *op, PyObject *const *args,\n
      \                     size_t nargsf, PyObject *kwnames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_operator.c:1142,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1143,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1145,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:1146,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_operator.c:1148,1
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:1151,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_operator.c:1151,1
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:1152,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1152,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_operator.c:1154,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1160,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_operator.c:1161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1163,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ig
    - obj
    argTypes:
    - itemgetterobject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(ig->item))
      pos:
        line_end: 1150
        line_start: 1150
        source_file: /src/cpython/Modules/_operator.c
    - condition: (PyTuple_GET_SIZE(ig->item) == nitems)
      pos:
        line_end: 1151
        line_start: 1151
        source_file: /src/cpython/Modules/_operator.c
    constantsTouched: []
    func_position:
      end: 1169
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1169
    functionName: itemgetter_call_impl
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 2
    functionsReached:
    - assert
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyTuple_SET_ITEM
    - PyObject_GetItem
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_call_impl(itemgetterobject *ig, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: itemgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1176,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_operator.c:1178,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1182,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1186,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1186,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_operator.c:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1189
    functionName: itemgetter_repr
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - itemgetterobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: itemgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1194,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_operator.c:1196,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1196,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_operator.c:1197,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1198
    functionName: itemgetter_reduce
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - itemgetterobject_CAST
    - Py_TYPE
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1253
    functionName: attrgetterobject_CAST
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: attrgetterobject_CAST(op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_operator.c:1268,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1271,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_operator.c:1273,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_operator.c:1277,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_operator.c:1282,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1284,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_operator.c:1287,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_operator.c:1288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1290,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_operator.c:1293,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_operator.c:1294,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_operator.c:1295,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_operator.c:1300,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_operator.c:1305,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Modules/_operator.c:1306,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1307,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_operator.c:1309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1316,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_operator.c:1321,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_operator.c:1324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1329,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Modules/_operator.c:1332,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1333,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_operator.c:1339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1343,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Modules/_operator.c:1346,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1347,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1349,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_operator.c:1353,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_operator.c:1355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1357,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_operator.c:1365,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1367
    functionName: attrgetter_new
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - _PyUnicode_InternMortal
    - PyErr_SetString
    - PyObject_GC_Track
    - PyUnicode_KIND
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyArg_UnpackTuple
    - PyUnicode_READ
    - _PyType_GetModuleState
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    - PyUnicode_Substring
    - Py_DECREF
    - PyUnicode_GET_LENGTH
    - PyTuple_SET_ITEM
    - _PyInterpreterState_GET
    - PyUnicode_DATA
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attrgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1372,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1375
    functionName: attrgetter_clear
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - attrgetterobject_CAST
    linkageType: ''
    returnType: int
    signature: int attrgetter_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1380,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_operator.c:1381,1
    - Dst: attrgetter_clear
      Src: /src/cpython/Modules/_operator.c:1382,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_operator.c:1383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1385
    functionName: attrgetter_dealloc
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - attrgetter_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void attrgetter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attrgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1390,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1391,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1392,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1394
    functionName: attrgetter_traverse
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - attrgetterobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int attrgetter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_operator.c:1403,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1407,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_operator.c:1408,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1410,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_operator.c:1411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1412,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_operator.c:1420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - obj
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1427
    functionName: dotted_getattr
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetAttr
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dotted_getattr(PyObject *obj, PyObject *attr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_operator.c:1432,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_operator.c:1434,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1434,1
    - Dst: attrgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1436,1
    - Dst: attrgetter_call_impl
      Src: /src/cpython/Modules/_operator.c:1437,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - op
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1438
    functionName: attrgetter_call
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - attrgetterobject_CAST
    - attrgetter_call_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_call(PyObject *op, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Modules/_operator.c:1444,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_operator.c:1447,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_operator.c:1448,1
    - Dst: attrgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1451,1
    - Dst: attrgetter_call_impl
      Src: /src/cpython/Modules/_operator.c:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - op
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1453
    functionName: attrgetter_vectorcall
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - attrgetter_call_impl
    - attrgetterobject_CAST
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nattrgetter_vectorcall(PyObject *op, PyObject *const *args,\n
      \                     size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dotted_getattr
      Src: /src/cpython/Modules/_operator.c:1463,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1463,1
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:1466,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_operator.c:1466,1
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:1467,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1467,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_operator.c:1469,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1475,1
    - Dst: dotted_getattr
      Src: /src/cpython/Modules/_operator.c:1476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1478,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ag
    - obj
    argTypes:
    - attrgetterobject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_GET_SIZE(ag->attr) == nattrs)
      pos:
        line_end: 1466
        line_start: 1466
        source_file: /src/cpython/Modules/_operator.c
    - condition: (PyTuple_Check(ag->attr))
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/cpython/Modules/_operator.c
    constantsTouched: []
    func_position:
      end: 1484
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1484
    functionName: attrgetter_call_impl
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 2
    functionsReached:
    - dotted_getattr
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_call_impl(attrgetterobject *ag, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_operator.c:1489,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_operator.c:1491,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_operator.c:1495,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:1497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - attr
    - attrsep
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1499
    functionName: dotjoinattr
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyUnicode_Join
    - PyUnicode_FromString
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dotjoinattr(PyObject *attr, PyObject **attrsep)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_operator.c:1506,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1511,1
    - Dst: dotjoinattr
      Src: /src/cpython/Modules/_operator.c:1512,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_operator.c:1514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1515,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1518,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_operator.c:1520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ag
    argTypes:
    - attrgetterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1522
    functionName: attrgetter_args
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - dotjoinattr
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_args(attrgetterobject *ag)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: attrgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1528,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_operator.c:1529,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1533,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1533,1
    - Dst: dotjoinattr
      Src: /src/cpython/Modules/_operator.c:1538,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1538,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1540,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1541,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_operator.c:1543,1
    - Dst: attrgetter_args
      Src: /src/cpython/Modules/_operator.c:1546,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1548,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1550,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_operator.c:1553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1524
    functionDepth: 3
    functionLinenumber: 1524
    functionLinenumberEnd: 1555
    functionName: attrgetter_repr
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - Py_ReprEnter
    - dotjoinattr
    - attrgetterobject_CAST
    - PyUnicode_FromFormat
    - Py_ReprLeave
    - attrgetter_args
    - PyTuple_GET_ITEM
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attrgetterobject_CAST
      Src: /src/cpython/Modules/_operator.c:1560,1
    - Dst: attrgetter_args
      Src: /src/cpython/Modules/_operator.c:1561,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_operator.c:1564,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1557
    functionDepth: 3
    functionLinenumber: 1557
    functionLinenumberEnd: 1565
    functionName: attrgetter_reduce
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - attrgetter_args
    - Py_TYPE
    - attrgetterobject_CAST
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1624
    functionName: methodcallerobject_CAST
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: methodcallerobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: methodcallerobject_CAST
      Src: /src/cpython/Modules/_operator.c:1631,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_operator.c:1632,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_operator.c:1632,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Modules/_operator.c:1633,1
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:1636,1
    - Dst: assert
      Src: /src/cpython/Modules/_operator.c:1640,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1640,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_operator.c:1641,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_operator.c:1641,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1641,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_operator.c:1643,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - op
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (mc->vectorcall_args != NULL)
      pos:
        line_end: 1635
        line_start: 1635
        source_file: /src/cpython/Modules/_operator.c
    - condition: (1 + PyTuple_GET_SIZE(mc->vectorcall_args) <= _METHODCALLER_MAX_ARGS)
      pos:
        line_end: 1639
        line_start: 1639
        source_file: /src/cpython/Modules/_operator.c
    constantsTouched: []
    func_position:
      end: 1646
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1646
    functionName: methodcaller_vectorcall
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_VectorcallMethod
    - PyTuple_GET_SIZE
    - methodcallerobject_CAST
    - _PyTuple_ITEMS
    - _PyArg_CheckPositional
    - memcpy
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethodcaller_vectorcall(PyObject *op, PyObject *const
      *args,\n                        size_t nargsf, PyObject* kwnames)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_operator.c:1654,1
    - Dst: PyDict_Values
      Src: /src/cpython/Modules/_operator.c:1655,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_operator.c:1659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1660,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1664,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Modules/_operator.c:1665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1666,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_operator.c:1674,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:1680,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - mc
    argTypes:
    - methodcallerobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1686
    functionName: _methodcaller_initialize_vectorcall
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PySequence_Tuple
    - Py_NewRef
    - PySequence_Concat
    - PyDict_Values
    - PyDict_Size
    linkageType: ''
    returnType: int
    signature: int _methodcaller_initialize_vectorcall(methodcallerobject* mc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1695,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_operator.c:1696,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1701,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_operator.c:1702,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_operator.c:1703,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_operator.c:1708,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_operator.c:1710,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_operator.c:1717,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_operator.c:1719,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_operator.c:1720,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Modules/_operator.c:1721,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_operator.c:1724,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1726,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1730,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_operator.c:1731,1
    - Dst: _methodcaller_initialize_vectorcall
      Src: /src/cpython/Modules/_operator.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1734,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_operator.c:1739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1741
    functionName: methodcaller_new
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyUnicode_InternMortal
    - PyErr_SetString
    - _PyInterpreterState_GET
    - _PyType_GetModuleState
    - PyObject_GC_Track
    - _methodcaller_initialize_vectorcall
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - PyUnicode_Check
    - PyObject_GC_New
    - PyTuple_GetSlice
    - PyDict_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: methodcallerobject_CAST
      Src: /src/cpython/Modules/_operator.c:1746,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:1747,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:1748,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:1749,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:1750,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1752
    functionName: methodcaller_clear
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - methodcallerobject_CAST
    linkageType: ''
    returnType: void
    signature: void methodcaller_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1757,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_operator.c:1758,1
    - Dst: methodcaller_clear
      Src: /src/cpython/Modules/_operator.c:1759,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_operator.c:1760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1754
    functionDepth: 2
    functionLinenumber: 1754
    functionLinenumberEnd: 1762
    functionName: methodcaller_dealloc
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - methodcaller_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void methodcaller_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: methodcallerobject_CAST
      Src: /src/cpython/Modules/_operator.c:1767,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1768,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1769,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1770,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1771,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1772,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1773,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1775
    functionName: methodcaller_traverse
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - methodcallerobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int methodcaller_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: methodcallerobject_CAST
      Src: /src/cpython/Modules/_operator.c:1781,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_operator.c:1783,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_operator.c:1785,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1785,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1787,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_operator.c:1788,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_operator.c:1792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - op
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1795
    functionName: methodcaller_call
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - methodcallerobject_CAST
    - Py_DECREF
    - PyObject_GetAttr
    - PyObject_Call
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_call(PyObject *op, PyObject *args, PyObject *kw)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: methodcallerobject_CAST
      Src: /src/cpython/Modules/_operator.c:1800,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_operator.c:1803,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1807,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1807,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1810,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1811,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1815,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1815,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_operator.c:1816,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_operator.c:1820,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_operator.c:1822,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_operator.c:1827,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1827,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1830,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_operator.c:1836,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1842,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1845,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_operator.c:1849,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_operator.c:1855,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_operator.c:1859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1860,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_operator.c:1864,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1869,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_operator.c:1870,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1872
    functionName: methodcaller_repr
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyDict_GET_SIZE
    - Py_ReprEnter
    - methodcallerobject_CAST
    - PyTuple_GET_SIZE
    - PyUnicode_FromFormat
    - Py_ReprLeave
    - PyObject_Repr
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyErr_SetString
    - PyDict_Next
    - PyTuple_GET_ITEM
    - PyUnicode_Join
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_repr(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: methodcallerobject_CAST
      Src: /src/cpython/Modules/_operator.c:1877,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1878,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_operator.c:1880,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_operator.c:1881,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1884,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:1884,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_operator.c:1886,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_operator.c:1887,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_operator.c:1887,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_operator.c:1889,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1889,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_operator.c:1896,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_operator.c:1900,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Modules/_operator.c:1902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_operator.c:1904,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_operator.c:1905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1907
    functionName: methodcaller_reduce
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - methodcallerobject_CAST
    - Py_BuildValue
    - PyImport_ImportModuleAttrString
    - PyObject_VectorcallDict
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyTuple_GET_ITEM
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_operator_state
      Src: /src/cpython/Modules/_operator.c:1954,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_operator.c:1955,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_operator.c:1959,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_operator.c:1963,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_operator.c:1967,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_operator.c:1971,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_operator.c:1975,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1951
    functionDepth: 2
    functionLinenumber: 1951
    functionLinenumberEnd: 1980
    functionName: operator_exec
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_operator_state
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int operator_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_operator_state
      Src: /src/cpython/Modules/_operator.c:1993,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1994,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1995,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 1998
    functionName: operator_traverse
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - get_operator_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int operator_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_operator_state
      Src: /src/cpython/Modules/_operator.c:2003,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:2004,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:2005,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:2006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 2000
    functionDepth: 2
    functionLinenumber: 2000
    functionLinenumberEnd: 2008
    functionName: operator_clear
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - get_operator_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int operator_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operator_clear
      Src: /src/cpython/Modules/_operator.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2010
    functionDepth: 3
    functionLinenumber: 2010
    functionLinenumberEnd: 2014
    functionName: operator_free
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - operator_clear
    linkageType: ''
    returnType: void
    signature: void operator_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_operator.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2032
    functionName: PyInit__operator
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 8345
      start: 8336
    functionDepth: 0
    functionLinenumber: 8336
    functionLinenumberEnd: 8345
    functionName: get_change_3_2_0
    functionSourceFile: /src/cpython/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: 8357
      start: 8347
    functionDepth: 0
    functionLinenumber: 8347
    functionLinenumberEnd: 8357
    functionName: normalization_3_2_0
    functionSourceFile: /src/cpython/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:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testimportmultiple.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: PyInit__testimportmultiple
    functionSourceFile: /src/cpython/Modules/_testimportmultiple.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testimportmultiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testimportmultiple.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: PyInit__testimportmultiple_foo
    functionSourceFile: /src/cpython/Modules/_testimportmultiple.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testimportmultiple_foo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testimportmultiple.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: PyInit__testimportmultiple_bar
    functionSourceFile: /src/cpython/Modules/_testimportmultiple.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: _getrecord_ex
    functionSourceFile: /src/cpython/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: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: PreviousDBVersion_CAST
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PreviousDBVersion_CAST(op)
  - 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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: get_old_record
    functionSourceFile: /src/cpython/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:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: UCD_Check
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UCD_Check(self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/unicodedata.c:103,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/unicodedata.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ucd_type
    - name
    - (*getrecord)(Py_UCS4)
    argTypes:
    - PyTypeObject*
    - char*
    - change_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: new_previous_version
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_previous_version(PyTypeObject *ucd_type,\n                     const
      char*name, const change_record* (*getrecord)(Py_UCS4),\n                     Py_UCS4
      (*normalization)(Py_UCS4))"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:140,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:141,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Modules/unicodedata.c:154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:157,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:162,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/unicodedata.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: unicodedata_UCD_decimal_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_NewRef
    - PyLong_FromLong
    - get_old_record
    - Py_UNICODE_TODECIMAL
    - 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/cpython/Modules/unicodedata.c:189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:192,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:196,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/unicodedata.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: unicodedata_UCD_digit_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_UNICODE_TODIGIT
    - PyErr_SetString
    - PyLong_FromLong
    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/cpython/Modules/unicodedata.c:226,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:227,1
    - Dst: Py_UNICODE_TONUMERIC
      Src: /src/cpython/Modules/unicodedata.c:240,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:243,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:247,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/unicodedata.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 251
    functionName: unicodedata_UCD_numeric_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_TONUMERIC
    - PyErr_SetString
    - Py_NewRef
    - PyFloat_FromDouble
    - get_old_record
    - 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/cpython/Modules/unicodedata.c:269,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:270,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:271,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: unicodedata_UCD_category_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_old_record
    - UCD_Check
    - _getrecord_ex
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_category_impl(PyObject *self, int chr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:296,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:297,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:298,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: unicodedata_UCD_bidirectional_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_old_record
    - UCD_Check
    - _getrecord_ex
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_bidirectional_impl(PyObject *self, int chr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:326,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:327,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    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/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_old_record
    - UCD_Check
    - _getrecord_ex
    linkageType: ''
    returnType: int
    signature: int unicodedata_UCD_combining_impl(PyObject *self, int chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:354,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:355,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    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/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_old_record
    - UCD_Check
    - _getrecord_ex
    linkageType: ''
    returnType: int
    signature: int unicodedata_UCD_mirrored_impl(PyObject *self, int chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:381,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:382,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:383,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    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/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_old_record
    - UCD_Check
    - _getrecord_ex
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_east_asian_width_impl(PyObject *self, int chr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:417,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:418,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/unicodedata.c:420,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:442,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:442,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:445,1
    - Dst: memcpy
      Src: /src/cpython/Modules/unicodedata.c:446,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:451,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/unicodedata.c:452,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:454,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/unicodedata.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (prefix_index < Py_ARRAY_LENGTH(decomp_prefix))
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Modules/unicodedata.c
    - condition: (i < sizeof(decomp))
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 457
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 457
    functionName: unicodedata_UCD_decomposition_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - strlen
    - Py_GetConstant
    - memcpy
    - PyOS_snprintf
    - Py_ARRAY_LENGTH
    - get_old_record
    - UCD_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_decomposition_impl(PyObject *self, int chr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:466,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - code
    - index
    - prefix
    - count
    argTypes:
    - PyObject*
    - Py_UCS4
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 483
    functionName: get_decomp_record
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_old_record
    - UCD_Check
    linkageType: ''
    returnType: void
    signature: "void get_decomp_record(PyObject *self, Py_UCS4 code,\n                  int
      *index, int *prefix, int *count)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:510,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/unicodedata.c:521,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/unicodedata.c:523,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:527,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:528,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:531,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/unicodedata.c:540,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:542,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/unicodedata.c:543,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:564,1
    - Dst: normalization
      Src: /src/cpython/Modules/unicodedata.c:565,1
    - Dst: get_decomp_record
      Src: /src/cpython/Modules/unicodedata.c:573,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/unicodedata.c:591,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:593,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:597,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:598,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:602,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:602,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:603,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:604,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:604,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:612,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/unicodedata.c:613,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:614,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/unicodedata.c:615,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:619,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:619,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:623,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:623,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 3
    argNames:
    - self
    - input
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 626
    functionName: nfd_nfkd
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyMem_Realloc
    - UCD_Check
    - PyUnicode_FromKindAndData
    - PyUnicode_READ
    - _getrecord_ex
    - normalization
    - PyMem_Free
    - PyUnicode_WRITE
    - get_decomp_record
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyMem_NEW
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nfd_nfkd(PyObject *self, PyObject *input, int k)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - nfc
    - code
    argTypes:
    - struct reindex*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: find_nfc_index
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_nfc_index(const struct reindex* nfc, Py_UCS4 code)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nfd_nfkd
      Src: /src/cpython/Modules/unicodedata.c:657,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:661,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:662,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:663,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/unicodedata.c:668,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/unicodedata.c:670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:671,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:690,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:693,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:694,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:699,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:703,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:704,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:707,1
    - Dst: find_nfc_index
      Src: /src/cpython/Modules/unicodedata.c:715,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:725,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:727,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:728,1
    - Dst: find_nfc_index
      Src: /src/cpython/Modules/unicodedata.c:738,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:760,1
    - Dst: find_nfc_index
      Src: /src/cpython/Modules/unicodedata.c:763,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:776,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/unicodedata.c:777,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:779,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 3
    argNames:
    - self
    - input
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (cskipped < 20)
      pos:
        line_end: 759
        line_start: 759
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 781
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 781
    functionName: nfc_nfkc
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_DECREF
    - find_nfc_index
    - nfd_nfkd
    - PyUnicode_READ
    - _getrecord_ex
    - PyUnicode_FromKindAndData
    - PyMem_Free
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyMem_NEW
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nfc_nfkc(PyObject *self, PyObject *input, int k)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:804,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/unicodedata.c:808,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:823,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:824,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:825,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:827,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:828,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - self
    - input
    - nfc
    - k
    - yes_only
    argTypes:
    - PyObject*
    - PyObject*
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 849
    functionName: is_normalized_quickcheck
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - UCD_Check
    - PyUnicode_READ
    - _getrecord_ex
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: QuickcheckResult
    signature: "QuickcheckResult is_normalized_quickcheck(PyObject *self, PyObject
      *input, bool nfc, bool k,\n                         bool yes_only)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:869,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:882,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:885,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:889,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:892,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:896,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:900,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Modules/unicodedata.c:907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:908,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - self
    - form
    - input
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 864
    functionDepth: 2
    functionLinenumber: 864
    functionLinenumberEnd: 916
    functionName: unicodedata_UCD_is_normalized_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - Py_DECREF
    - PyUnicode_CompareWithASCIIString
    - PyErr_SetString
    - Py_NewRef
    - PyUnicode_GET_LENGTH
    - is_normalized_quickcheck
    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/cpython/Modules/unicodedata.c:937,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:940,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:943,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:944,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:946,1
    - Dst: nfc_nfkc
      Src: /src/cpython/Modules/unicodedata.c:948,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:950,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:951,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:953,1
    - Dst: nfc_nfkc
      Src: /src/cpython/Modules/unicodedata.c:955,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:957,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:958,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:960,1
    - Dst: nfd_nfkd
      Src: /src/cpython/Modules/unicodedata.c:962,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:964,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:965,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:967,1
    - Dst: nfd_nfkd
      Src: /src/cpython/Modules/unicodedata.c:969,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:971,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - form
    - input
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 932
    functionDepth: 4
    functionLinenumber: 932
    functionLinenumberEnd: 973
    functionName: unicodedata_UCD_normalize_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    - PyErr_SetString
    - nfd_nfkd
    - PyUnicode_FromObject
    - nfc_nfkc
    - PyUnicode_GET_LENGTH
    - is_normalized_quickcheck
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_normalize_impl(PyObject *self, PyObject
      *form,\n                               PyObject *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1030
    functionName: is_unified_ideograph
    functionSourceFile: /src/cpython/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: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: IS_ALIAS
    functionSourceFile: /src/cpython/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: 1037
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1037
    functionName: IS_NAMED_SEQ
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAMED_SEQ(cp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - index
    - result
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1056
    functionName: _dawg_decode_varint_unsigned
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _dawg_decode_varint_unsigned(unsigned int index, unsigned
      int* result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOUPPER
      Src: /src/cpython/Modules/unicodedata.c:1068,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - name
    - namelen
    - size
    - label_offset
    - namepos
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1076
    functionName: _dawg_match_edge
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_TOUPPER
    linkageType: ''
    returnType: int
    signature: "int _dawg_match_edge(const char* name, unsigned int namelen, unsigned
      int size,\n                 unsigned int label_offset, unsigned int namepos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dawg_decode_varint_unsigned
      Src: /src/cpython/Modules/unicodedata.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - node_offset
    - final
    argTypes:
    - unsigned int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1097
    functionName: _dawg_decode_node
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_decode_varint_unsigned
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _dawg_decode_node(unsigned int node_offset, bool* final)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dawg_decode_varint_unsigned
      Src: /src/cpython/Modules/unicodedata.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node_offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1105
    functionName: _dawg_node_is_final
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_decode_varint_unsigned
    linkageType: ''
    returnType: bool
    signature: bool _dawg_node_is_final(unsigned int node_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dawg_decode_varint_unsigned
      Src: /src/cpython/Modules/unicodedata.c:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node_offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1113
    functionName: _dawg_node_descendant_count
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_decode_varint_unsigned
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _dawg_node_descendant_count(unsigned int node_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _dawg_decode_varint_unsigned
      Src: /src/cpython/Modules/unicodedata.c:1161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - is_first_edge
    - prev_target_node_offset
    - edge_offset
    - size
    - label_offset
    - target_node_offset
    argTypes:
    - bool
    - unsigned int
    - unsigned int
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1177
    functionName: _dawg_decode_edge
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_decode_varint_unsigned
    linkageType: ''
    returnType: int
    signature: "int _dawg_decode_edge(bool is_first_edge, unsigned int prev_target_node_offset,\n
      \                 unsigned int edge_offset, unsigned int* size,\n                  unsigned
      int* label_offset, unsigned int* target_node_offset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _dawg_decode_node
      Src: /src/cpython/Modules/unicodedata.c:1187,1
    - Dst: _dawg_decode_edge
      Src: /src/cpython/Modules/unicodedata.c:1193,1
    - Dst: _dawg_match_edge
      Src: /src/cpython/Modules/unicodedata.c:1201,1
    - Dst: _dawg_node_descendant_count
      Src: /src/cpython/Modules/unicodedata.c:1215,1
    - Dst: _dawg_node_is_final
      Src: /src/cpython/Modules/unicodedata.c:1219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - name
    - namelen
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1223
    functionName: _lookup_dawg_packed
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_decode_node
    - _dawg_match_edge
    - _dawg_node_is_final
    - _dawg_decode_edge
    - _dawg_node_descendant_count
    linkageType: ''
    returnType: int
    signature: int _lookup_dawg_packed(const char* name, unsigned int namelen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _dawg_decode_node
      Src: /src/cpython/Modules/unicodedata.c:1232,1
    - Dst: _dawg_decode_edge
      Src: /src/cpython/Modules/unicodedata.c:1249,1
    - Dst: _dawg_node_descendant_count
      Src: /src/cpython/Modules/unicodedata.c:1258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - buffer
    - buflen
    - pos
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1276
    functionName: _inverse_dawg_lookup
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_decode_node
    - _dawg_decode_edge
    - _dawg_node_descendant_count
    linkageType: ''
    returnType: int
    signature: int _inverse_dawg_lookup(char* buffer, unsigned int buflen, unsigned
      int pos)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1292,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1292,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:1295,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1298,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1298,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:1300,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1317,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1319,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1320,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1321,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1322,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1323,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1324,1
    - Dst: is_unified_ideograph
      Src: /src/cpython/Modules/unicodedata.c:1329,1
    - Dst: sprintf
      Src: /src/cpython/Modules/unicodedata.c:1333,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:1344,1
    - Dst: _inverse_dawg_lookup
      Src: /src/cpython/Modules/unicodedata.c:1345,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/unicodedata.c:1345,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 5
    argNames:
    - self
    - code
    - buffer
    - buflen
    - with_alias_and_seq
    argTypes:
    - PyObject*
    - Py_UCS4
    - char*
    - int
    - int
    assertStmts:
    - condition: (buflen >= 0)
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 1346
      start: 1279
    functionDepth: 3
    functionLinenumber: 1279
    functionLinenumberEnd: 1346
    functionName: _getucname
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - IS_NAMED_SEQ
    - strlen
    - sprintf
    - get_old_record
    - is_unified_ideograph
    - _inverse_dawg_lookup
    - IS_ALIAS
    - Py_SAFE_DOWNCAST
    - UCD_Check
    - strcpy
    - assert
    linkageType: ''
    returnType: int
    signature: "int _getucname(PyObject *self,\n           Py_UCS4 code, char* buffer,
      int buflen, int with_alias_and_seq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getucname
      Src: /src/cpython/Modules/unicodedata.c:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - code
    - buffer
    - buflen
    - with_alias_and_seq
    argTypes:
    - Py_UCS4
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1355
    functionName: capi_getucname
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getucname
    linkageType: ''
    returnType: int
    signature: "int capi_getucname(Py_UCS4 code,\n               char* buffer, int
      buflen,\n               int with_alias_and_seq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/unicodedata.c:1364,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1364,1
    - Dst: strncmp
      Src: /src/cpython/Modules/unicodedata.c:1367,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: 1375
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1375
    functionName: find_syllable
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - strncmp
    - Py_SAFE_DOWNCAST
    - strlen
    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/cpython/Modules/unicodedata.c:1381,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - code
    - with_named_seq
    argTypes:
    - Py_UCS4*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1388
    functionName: _check_alias_and_seq
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - IS_ALIAS
    - IS_NAMED_SEQ
    linkageType: ''
    returnType: int
    signature: int _check_alias_and_seq(Py_UCS4* code, int with_named_seq)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/cpython/Modules/unicodedata.c:1399,1
    - Dst: find_syllable
      Src: /src/cpython/Modules/unicodedata.c:1402,1
    - Dst: find_syllable
      Src: /src/cpython/Modules/unicodedata.c:1404,1
    - Dst: find_syllable
      Src: /src/cpython/Modules/unicodedata.c:1406,1
    - Dst: strncmp
      Src: /src/cpython/Modules/unicodedata.c:1417,1
    - Dst: is_unified_ideograph
      Src: /src/cpython/Modules/unicodedata.c:1435,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:1441,1
    - Dst: _lookup_dawg_packed
      Src: /src/cpython/Modules/unicodedata.c:1442,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/unicodedata.c:1442,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - name
    - namelen
    - code
    argTypes:
    - char*
    - int
    - Py_UCS4*
    assertStmts:
    - condition: (namelen >= 0)
      pos:
        line_end: 1440
        line_start: 1440
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 1448
      start: 1391
    functionDepth: 3
    functionLinenumber: 1391
    functionLinenumberEnd: 1448
    functionName: _getcode
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - strncmp
    - _lookup_dawg_packed
    - is_unified_ideograph
    - Py_SAFE_DOWNCAST
    - assert
    - find_syllable
    linkageType: ''
    returnType: int
    signature: int _getcode(const char* name, int namelen, Py_UCS4* code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _getcode
      Src: /src/cpython/Modules/unicodedata.c:1455,1
    - Dst: _check_alias_and_seq
      Src: /src/cpython/Modules/unicodedata.c:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - name
    - namelen
    - code
    - with_named_seq
    argTypes:
    - char*
    - int
    - Py_UCS4*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1451
    functionDepth: 4
    functionLinenumber: 1451
    functionLinenumberEnd: 1459
    functionName: capi_getcode
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _check_alias_and_seq
    - _getcode
    linkageType: ''
    returnType: int
    signature: "int capi_getcode(const char* name, int namelen, Py_UCS4* code,\n             int
      with_named_seq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/unicodedata.c:1464,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1466
    functionName: unicodedata_destroy_capi
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void unicodedata_destroy_capi(PyObject *capsule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/unicodedata.c:1471,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/unicodedata.c:1473,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/unicodedata.c:1479,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:1483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1486
    functionName: unicodedata_create_capi
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyCapsule_New
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_create_capi(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _getucname
      Src: /src/cpython/Modules/unicodedata.c:1513,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:1515,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:1519,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:1523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1506
    functionDepth: 4
    functionLinenumber: 1506
    functionLinenumberEnd: 1524
    functionName: unicodedata_UCD_name_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - _getucname
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_name_impl(PyObject *self, int chr, PyObject *default_value)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:1547,1
    - Dst: _getcode
      Src: /src/cpython/Modules/unicodedata.c:1551,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/unicodedata.c:1552,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:1555,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1557,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1557,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/unicodedata.c:1558,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1564,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/unicodedata.c:1566,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1570,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/unicodedata.c:1573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - name
    - name_length
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1539
    functionDepth: 4
    functionLinenumber: 1539
    functionLinenumberEnd: 1574
    functionName: unicodedata_UCD_lookup_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - IS_NAMED_SEQ
    - PyErr_SetString
    - _getcode
    - PyErr_Format
    - IS_ALIAS
    - PyUnicode_FromKindAndData
    - UCD_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_lookup_impl(PyObject *self, const char
      *name,\n                            Py_ssize_t name_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/unicodedata.c:1600,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/unicodedata.c:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1602
    functionName: ucd_traverse
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ucd_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/unicodedata.c:1607,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/unicodedata.c:1608,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/unicodedata.c:1609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1611
    functionName: ucd_dealloc
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void ucd_dealloc(PyObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/unicodedata.c:1642,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/unicodedata.c:1646,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/unicodedata.c:1651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:1652,1
    - Dst: new_previous_version
      Src: /src/cpython/Modules/unicodedata.c:1658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:1660,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/unicodedata.c:1661,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/unicodedata.c:1666,1
    - Dst: unicodedata_create_capi
      Src: /src/cpython/Modules/unicodedata.c:1666,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1639
    functionDepth: 2
    functionLinenumber: 1639
    functionLinenumberEnd: 1670
    functionName: unicodedata_exec
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddType
    - Py_DECREF
    - unicodedata_create_capi
    - new_previous_version
    - PyType_FromSpec
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int unicodedata_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/unicodedata.c:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1688
    functionDepth: 1
    functionLinenumber: 1688
    functionLinenumberEnd: 1692
    functionName: PyInit_unicodedata
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_unicodedata(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_Init
      Src: /src/cpython/Modules/tkappinit.c:26,1
    - Dst: Tcl_GetVar
      Src: /src/cpython/Modules/tkappinit.c:33,1
    - Dst: strcmp
      Src: /src/cpython/Modules/tkappinit.c:36,1
    - Dst: Tk_Init
      Src: /src/cpython/Modules/tkappinit.c:40,1
    - Dst: Tk_MainWindow
      Src: /src/cpython/Modules/tkappinit.c:44,1
    - Dst: TkImaging_Init
      Src: /src/cpython/Modules/tkappinit.c:49,1
    - Dst: Tcl_StaticPackage
      Src: /src/cpython/Modules/tkappinit.c:67,1
    - Dst: Tcl_StaticPackage
      Src: /src/cpython/Modules/tkappinit.c:75,1
    - Dst: Tcl_StaticPackage
      Src: /src/cpython/Modules/tkappinit.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 92
    functionName: Tcl_AppInit
    functionSourceFile: /src/cpython/Modules/tkappinit.c
    functionUses: 1
    functionsReached:
    - Tk_Init
    - Tcl_StaticPackage
    - strcmp
    - Tk_MainWindow
    - Tcl_Init
    - TkImaging_Init
    - Tcl_GetVar
    linkageType: ''
    returnType: int
    signature: int Tcl_AppInit(Tcl_Interp *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:98,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:98,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts:
    - condition: (fabs(a) >= fabs(b))
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: dl_fast_sum
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - assert
    linkageType: ''
    returnType: DoubleLength
    signature: DoubleLength dl_fast_sum(double a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: dl_sum
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DoubleLength
    signature: DoubleLength dl_sum(double a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fma
      Src: /src/cpython/Modules/mathmodule.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: dl_mul
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fma
    linkageType: ''
    returnType: DoubleLength
    signature: DoubleLength dl_mul(double x, double y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: dl_split
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DoubleLength
    signature: DoubleLength dl_split(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dl_split
      Src: /src/cpython/Modules/mathmodule.c:155,1
    - Dst: dl_split
      Src: /src/cpython/Modules/mathmodule.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: dl_mul
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - dl_split
    linkageType: ''
    returnType: DoubleLength
    signature: DoubleLength dl_mul(double x, double y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dl_mul
      Src: /src/cpython/Modules/mathmodule.c:174,1
    - Dst: dl_sum
      Src: /src/cpython/Modules/mathmodule.c:175,1
    - Dst: dl_sum
      Src: /src/cpython/Modules/mathmodule.c:176,1
    - Dst: dl_sum
      Src: /src/cpython/Modules/mathmodule.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - total
    argTypes:
    - double
    - double
    - TripleLength
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: tl_fma
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - dl_sum
    - dl_mul
    linkageType: ''
    returnType: TripleLength
    signature: TripleLength tl_fma(double x, double y, TripleLength total)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dl_sum
      Src: /src/cpython/Modules/mathmodule.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - total
    argTypes:
    - TripleLength
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: tl_to_d
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - dl_sum
    linkageType: ''
    returnType: double
    signature: double tl_to_d(TripleLength total)
  - 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: 220
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: ASSIGN_DOUBLE
    functionSourceFile: /src/cpython/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/cpython/Modules/mathmodule.c:227,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:227,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:228,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:228,1
    - Dst: round
      Src: /src/cpython/Modules/mathmodule.c:229,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:230,1
    - Dst: sin
      Src: /src/cpython/Modules/mathmodule.c:233,1
    - Dst: cos
      Src: /src/cpython/Modules/mathmodule.c:236,1
    - Dst: sin
      Src: /src/cpython/Modules/mathmodule.c:241,1
    - Dst: cos
      Src: /src/cpython/Modules/mathmodule.c:244,1
    - Dst: sin
      Src: /src/cpython/Modules/mathmodule.c:247,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/mathmodule.c:250,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: (isfinite(x))
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (0 <= n && n <= 4)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 253
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 253
    functionName: m_sinpi
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - fabs
    - round
    - fmod
    - sin
    - copysign
    - cos
    - isfinite
    - assert
    linkageType: ''
    returnType: double
    signature: double m_sinpi(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: (x > 0.0)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 377
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 377
    functionName: lanczos_sum
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: double
    signature: double lanczos_sum(double x)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:386,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:387,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:397,1
    - Dst: floor
      Src: /src/cpython/Modules/mathmodule.c:401,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:409,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:414,1
    - Dst: m_sinpi
      Src: /src/cpython/Modules/mathmodule.c:424,1
    - Dst: m_sinpi
      Src: /src/cpython/Modules/mathmodule.c:448,1
    - Dst: exp
      Src: /src/cpython/Modules/mathmodule.c:448,1
    - Dst: lanczos_sum
      Src: /src/cpython/Modules/mathmodule.c:448,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:451,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:454,1
    - Dst: lanczos_sum
      Src: /src/cpython/Modules/mathmodule.c:460,1
    - Dst: exp
      Src: /src/cpython/Modules/mathmodule.c:460,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:463,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:466,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:471,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 474
    functionName: m_tgamma
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - pow
    - fabs
    - copysign
    - floor
    - m_sinpi
    - isinf
    - isnan
    - isfinite
    - exp
    - lanczos_sum
    linkageType: ''
    returnType: double
    signature: double m_tgamma(double x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:488,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:489,1
    - Dst: floor
      Src: /src/cpython/Modules/mathmodule.c:496,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:506,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:509,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:515,1
    - Dst: lanczos_sum
      Src: /src/cpython/Modules/mathmodule.c:515,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:516,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:519,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:519,1
    - Dst: m_sinpi
      Src: /src/cpython/Modules/mathmodule.c:519,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:519,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 523
    functionName: m_lgamma
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - floor
    - m_sinpi
    - isinf
    - isnan
    - isfinite
    - lanczos_sum
    - log
    linkageType: ''
    returnType: double
    signature: double m_lgamma(double x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:533,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:533,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:540,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:541,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:542,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:599,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:600,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:602,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:606,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:609,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:612,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:615,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:615,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts:
    - condition: (m == c)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (isinf(y))
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 617
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 617
    functionName: m_remainder
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - fmod
    - copysign
    - isinf
    - isnan
    - isfinite
    - assert
    linkageType: ''
    returnType: double
    signature: double m_remainder(double x, double y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:630,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:632,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 647
    functionName: m_log
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - isnan
    - isfinite
    - log
    linkageType: ''
    returnType: double
    signature: double m_log(double x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:662,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:663,1
    - Dst: log2
      Src: /src/cpython/Modules/mathmodule.c:674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 684
    functionName: m_log2
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - log2
    - isnan
    - isfinite
    linkageType: ''
    returnType: double
    signature: double m_log2(double x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:689,1
    - Dst: log10
      Src: /src/cpython/Modules/mathmodule.c:691,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:698,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 706
    functionName: m_log10
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - isnan
    - isfinite
    - log10
    linkageType: ''
    returnType: double
    signature: double m_log10(double x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:723,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:723,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/mathmodule.c:725,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:729,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:732,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:737,1
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Modules/mathmodule.c:737,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/mathmodule.c:741,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:751,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:754,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/mathmodule.c:754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:755,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 761
    functionName: math_gcd_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_GCD
    - PyNumber_Index
    - Py_DECREF
    - _PyNumber_Index
    - PyNumber_Absolute
    - _PyLong_GetOne
    - Py_SETREF
    - PyLong_CheckExact
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_gcd_impl(PyObject *module, PyObject * const *args,\n
      \             Py_ssize_t args_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/mathmodule.c:769,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/mathmodule.c:769,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:770,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/mathmodule.c:772,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathmodule.c:776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:777,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:782,1
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Modules/mathmodule.c:786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 789
    functionName: long_lcm
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_GCD
    - Py_DECREF
    - PyNumber_Absolute
    - PyNumber_FloorDivide
    - PyNumber_Multiply
    - PyLong_FromLong
    - _PyLong_IsZero
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lcm(PyObject *a, PyObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:809,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:811,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:816,1
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Modules/mathmodule.c:816,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/mathmodule.c:820,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:830,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:833,1
    - Dst: long_lcm
      Src: /src/cpython/Modules/mathmodule.c:833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:834,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 840
    functionName: math_lcm_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - PyNumber_Index
    - Py_DECREF
    - PyNumber_Absolute
    - Py_SETREF
    - PyLong_FromLong
    - long_lcm
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_lcm_impl(PyObject *module, PyObject * const *args,\n
      \             Py_ssize_t args_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:851,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:854,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:881,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mathmodule.c:886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - x
    - raise_edom
    argTypes:
    - double
    - int
    assertStmts:
    - condition: (errno)
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 888
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 888
    functionName: is_error
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyErr_SetString
    - fabs
    - assert
    linkageType: ''
    returnType: int
    signature: int is_error(double x, int raise_edom)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:925,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:926,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:930,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:930,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:932,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:932,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:934,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:940,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:940,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:944,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Modules/mathmodule.c:948,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:950,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:951,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:955,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - arg
    - can_overflow
    - err_msg
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 958
    functionName: math_1
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    - isinf
    - is_error
    - isnan
    - isfinite
    - PyErr_Format
    - PyFloat_FromDouble
    - PyMem_Free
    - PyOS_double_to_string
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_1(PyObject *arg, double (*func) (double), int can_overflow,\n
      \      const char *err_msg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:968,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:969,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:973,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:975,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Modules/mathmodule.c:976,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:978,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:979,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:984,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 985
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 985
    functionName: math_1a
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - assert
    - PyErr_Occurred
    - is_error
    - PyErr_Format
    - PyFloat_FromDouble
    - PyMem_Free
    - PyOS_double_to_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_1a(PyObject *arg, double (*func) (double), const char *err_msg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/mathmodule.c:1019,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:1021,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1022,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:1025,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1026,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1031,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1032,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1032,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:1037,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1038,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1038,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:1043,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1046,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - args
    - nargs
    - funcname
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1047
    functionName: math_2
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - isinf
    - is_error
    - isnan
    - _PyArg_CheckPositional
    - isfinite
    - PyFloat_FromDouble
    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: 1054
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1054
    functionName: FUNC1
    functionSourceFile: /src/cpython/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: 11
    argNames:
    - (
    - funcname
    - ','
    - func
    - ','
    - can_overflow
    - ','
    - docstring
    - ','
    - err_msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1060
    functionName: FUNC1D
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC1D(funcname, func, can_overflow, docstring, err_msg)
  - 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: 1066
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1066
    functionName: FUNC1A
    functionSourceFile: /src/cpython/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: 9
    argNames:
    - (
    - funcname
    - ','
    - func
    - ','
    - docstring
    - ','
    - err_msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1072
    functionName: FUNC1AD
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC1AD(funcname, func, docstring, err_msg)
  - 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: 1078
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1078
    functionName: FUNC2
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC2(funcname, func, docstring)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:1129,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:1130,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Modules/mathmodule.c:1133,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/mathmodule.c:1133,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1137,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:1140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1141,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1145,1
    - Dst: ceil
      Src: /src/cpython/Modules/mathmodule.c:1145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1146
    functionName: math_ceil
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyLong_FromDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - ceil
    - _PyObject_MaybeCallSpecialNoArgs
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_ceil(PyObject *module, PyObject *number)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:1198,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:1199,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Modules/mathmodule.c:1202,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/mathmodule.c:1202,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1206,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:1209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1210,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1214,1
    - Dst: floor
      Src: /src/cpython/Modules/mathmodule.c:1214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1215
    functionName: math_floor
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyLong_FromDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - floor
    - _PyObject_MaybeCallSpecialNoArgs
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_floor(PyObject *module, PyObject *number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmax
      Src: /src/cpython/Modules/mathmodule.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1232
    functionName: math_fmax_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fmax
    linkageType: ''
    returnType: double
    signature: double math_fmax_impl(PyObject *module, double x, double y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmin
      Src: /src/cpython/Modules/mathmodule.c:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1249
    functionName: math_fmin_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fmin
    linkageType: ''
    returnType: double
    signature: double math_fmin_impl(PyObject *module, double x, double y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mathmodule.c:1284,1
    - Dst: signbit
      Src: /src/cpython/Modules/mathmodule.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1285
    functionName: math_signbit_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - signbit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_signbit_impl(PyObject *module, double x)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/mathmodule.c:1356,1
    - Dst: memcpy
      Src: /src/cpython/Modules/mathmodule.c:1358,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/mathmodule.c:1361,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1364,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: 1370
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1370
    functionName: _fsum_realloc
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_SetString
    - PyMem_Realloc
    - PyMem_Malloc
    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/cpython/Modules/mathmodule.c:1423,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1428,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1429,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:1432,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1434,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:1438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1439,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1444,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1444,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1457,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1463,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:1467,1
    - Dst: _fsum_realloc
      Src: /src/cpython/Modules/mathmodule.c:1473,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1481,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1482,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1485,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1497,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1497,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1497,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1521,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:1523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1527,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 90
    argCount: 2
    argNames:
    - module
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (0 <= n && n <= m)
      pos:
        line_end: 1427
        line_start: 1427
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: "((m == NUM_PARTIALS && p == ps) ||\n               (m >  NUM_PARTIALS
        && p != NULL))"
      pos:
        line_end: 1429
        line_start: 1428
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (fabs(y) < fabs(x))
      pos:
        line_end: 1496
        line_start: 1496
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 1529
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1529
    functionName: math_fsum
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - fabs
    - PyErr_Occurred
    - PyObject_GetIter
    - PyErr_SetString
    - ASSIGN_DOUBLE
    - PyIter_Next
    - isinf
    - _fsum_realloc
    - isnan
    - isfinite
    - PyFloat_FromDouble
    - PyMem_Free
    - assert
    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: 1543
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1543
    functionName: count_set_bits
    functionSourceFile: /src/cpython/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: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1726
    functionDepth: 0
    functionLinenumber: 1726
    functionLinenumberEnd: 1732
    functionName: _approximate_isqrt
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _approximate_isqrt(uint64_t n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:1753,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:1758,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1759,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/mathmodule.c:1764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1765,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:1766,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Modules/mathmodule.c:1770,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1771,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1772,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1772,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:1779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1780,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1781,1
    - Dst: _approximate_isqrt
      Src: /src/cpython/Modules/mathmodule.c:1784,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathmodule.c:1786,1
    - Dst: _PyLong_Rshift
      Src: /src/cpython/Modules/mathmodule.c:1800,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:1804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1806,1
    - Dst: _approximate_isqrt
      Src: /src/cpython/Modules/mathmodule.c:1809,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathmodule.c:1810,1
    - Dst: _PyLong_Rshift
      Src: /src/cpython/Modules/mathmodule.c:1822,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:1826,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathmodule.c:1826,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:1832,1
    - Dst: _PyLong_Lshift
      Src: /src/cpython/Modules/mathmodule.c:1832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1834,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:1837,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathmodule.c:1837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1838,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:1848,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/mathmodule.c:1852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1853,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:1859,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/mathmodule.c:1859,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/mathmodule.c:1859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1861,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:1865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1866,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (c > 0)
      pos:
        line_end: 1770
        line_start: 1770
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1771
        line_start: 1771
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 1868
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1868
    functionName: math_isqrt
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyLong_IsNegative
    - _PyNumber_Index
    - PyErr_SetString
    - Py_SETREF
    - PyLong_AsUnsignedLongLong
    - PyNumber_FloorDivide
    - PyLong_FromLong
    - _PyLong_IsZero
    - _PyLong_Lshift
    - PyErr_Occurred
    - _approximate_isqrt
    - PyObject_RichCompareBool
    - PyLong_FromUnsignedLong
    - PyNumber_Add
    - _PyLong_Rshift
    - Py_DECREF
    - _PyLong_NumBits
    - PyNumber_Subtract
    - _PyLong_GetOne
    - PyNumber_Multiply
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isqrt(PyObject *module, PyObject *n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathmodule.c:1970,1
    - Dst: factorial_partial_product
      Src: /src/cpython/Modules/mathmodule.c:1975,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Modules/mathmodule.c:1976,1
    - Dst: factorial_partial_product
      Src: /src/cpython/Modules/mathmodule.c:1979,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:1982,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:1985,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:1986,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: 1988
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1988
    functionName: factorial_partial_product
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - factorial_partial_product
    - PyNumber_Multiply
    - PyLong_FromUnsignedLong
    - _Py_bit_length
    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/cpython/Modules/mathmodule.c:1999,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/mathmodule.c:2002,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Modules/mathmodule.c:2005,1
    - Dst: factorial_partial_product
      Src: /src/cpython/Modules/mathmodule.c:2015,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Modules/mathmodule.c:2015,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:2019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2020,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2023,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:2028,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2038,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 1992
    functionDepth: 2
    functionLinenumber: 1992
    functionLinenumberEnd: 2040
    functionName: factorial_odd_part
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - factorial_partial_product
    - Py_DECREF
    - Py_NewRef
    - PyNumber_Multiply
    - Py_SETREF
    - PyLong_FromLong
    - _Py_bit_length
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      factorial_odd_part(unsigned long n)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2072,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2073,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:2077,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:2083,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathmodule.c:2089,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathmodule.c:2090,1
    - Dst: factorial_odd_part
      Src: /src/cpython/Modules/mathmodule.c:2094,1
    - Dst: count_set_bits
      Src: /src/cpython/Modules/mathmodule.c:2097,1
    - Dst: _PyLong_Lshift
      Src: /src/cpython/Modules/mathmodule.c:2098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2099,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2064
    functionDepth: 3
    functionLinenumber: 2064
    functionLinenumberEnd: 2101
    functionName: math_factorial
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_Lshift
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - factorial_odd_part
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - count_set_bits
    - PyErr_Format
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_factorial(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2119,1
    - Dst: tp_as_number::nb_int
      Src: /src/cpython/Modules/mathmodule.c:2120,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Modules/mathmodule.c:2123,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/mathmodule.c:2123,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2127,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:2128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mathmodule.c:2130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2115
    functionDepth: 1
    functionLinenumber: 2115
    functionLinenumberEnd: 2133
    functionName: math_trunc
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - _PyObject_MaybeCallSpecialNoArgs
    - PyErr_Format
    - Py_TYPE
    - tp_as_number::nb_int
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_trunc(PyObject *module, PyObject *x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2155,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2155,1
    - Dst: frexp
      Src: /src/cpython/Modules/mathmodule.c:2159,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:2161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2162
    functionName: math_frexp_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - frexp
    - isinf
    - isnan
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_frexp_impl(PyObject *module, double x)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/mathmodule.c:2185,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2188,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:2195,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2200,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:2206,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:2210,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:2214,1
    - Dst: frexp
      Src: /src/cpython/Modules/mathmodule.c:2221,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:2225,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:2233,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2236,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:2240,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2242,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - module
    - x
    - i
    argTypes:
    - PyObject*
    - double
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2177
    functionDepth: 2
    functionLinenumber: 2177
    functionLinenumberEnd: 2243
    functionName: math_ldexp_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - copysign
    - PyErr_SetString
    - PyLong_Check
    - isinf
    - is_error
    - isfinite
    - frexp
    - ldexp
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_ldexp_impl(PyObject *module, double x, PyObject *i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2264,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:2265,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:2265,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2266,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:2267,1
    - Dst: modf
      Src: /src/cpython/Modules/mathmodule.c:2270,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:2271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2272
    functionName: math_modf_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - copysign
    - isinf
    - isnan
    - modf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_modf_impl(PyObject *module, double x)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/mathmodule.c:2288,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Modules/mathmodule.c:2293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:2296,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:2301,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2302,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:2303,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2307,1
    - Dst: _PyLong_Frexp
      Src: /src/cpython/Modules/mathmodule.c:2308,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2309,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2310,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2310,1
    - Dst: func
      Src: /src/cpython/Modules/mathmodule.c:2312,1
    - Dst: func
      Src: /src/cpython/Modules/mathmodule.c:2312,1
    - Dst: func
      Src: /src/cpython/Modules/mathmodule.c:2316,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2317,1
    - Dst: math_1
      Src: /src/cpython/Modules/mathmodule.c:2321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (e >= 0)
      pos:
        line_end: 2308
        line_start: 2308
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2309
        line_start: 2309
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 2322
      start: 2284
    functionDepth: 3
    functionLinenumber: 2284
    functionLinenumberEnd: 2322
    functionName: loghelper
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_Frexp
    - func
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyErr_ExceptionMatches
    - _PyLong_IsPositive
    - math_1
    - PyLong_AsDouble
    - PyErr_Clear
    - PyFloat_FromDouble
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      loghelper(PyObject* arg, double (*func)(double))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/mathmodule.c:2333,1
    - Dst: loghelper
      Src: /src/cpython/Modules/mathmodule.c:2336,1
    - Dst: loghelper
      Src: /src/cpython/Modules/mathmodule.c:2340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2342,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Modules/mathmodule.c:2346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2327
    functionDepth: 4
    functionLinenumber: 2327
    functionLinenumberEnd: 2350
    functionName: math_log
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - loghelper
    - _PyArg_CheckPositional
    - PyNumber_TrueDivide
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_log(PyObject *module, PyObject * const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loghelper
      Src: /src/cpython/Modules/mathmodule.c:2370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2366
    functionDepth: 4
    functionLinenumber: 2366
    functionLinenumberEnd: 2371
    functionName: math_log2
    functionSourceFile: /src/cpython/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/cpython/Modules/mathmodule.c:2387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2383
    functionDepth: 4
    functionLinenumber: 2383
    functionLinenumberEnd: 2388
    functionName: math_log10
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - loghelper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_log10(PyObject *module, PyObject *x)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fma
      Src: /src/cpython/Modules/mathmodule.c:2408,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2411,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2412,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2416,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2417,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2417,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2417,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:2419,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2423,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2423,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2423,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:2425,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2429,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - module
    - x
    - y
    - z
    argTypes:
    - PyObject*
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2430
    functionName: math_fma_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - fma
    - isnan
    - isfinite
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fma_impl(PyObject *module, double x, double y, double z)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2451,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2451,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2452,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:2454,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:2461,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2464,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2465,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2465,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:2470,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2473,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2445
    functionDepth: 2
    functionLinenumber: 2445
    functionLinenumberEnd: 2474
    functionName: math_fmod_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fmod
    - copysign
    - isinf
    - is_error
    - isnan
    - isfinite
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fmod_impl(PyObject *module, double x, double y)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2587,1
    - Dst: frexp
      Src: /src/cpython/Modules/mathmodule.c:2596,1
    - Dst: vector_norm
      Src: /src/cpython/Modules/mathmodule.c:2602,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:2604,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2605,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2606,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2609,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2609,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2609,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2611,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2611,1
    - Dst: dl_mul
      Src: /src/cpython/Modules/mathmodule.c:2612,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2613,1
    - Dst: dl_fast_sum
      Src: /src/cpython/Modules/mathmodule.c:2614,1
    - Dst: sqrt
      Src: /src/cpython/Modules/mathmodule.c:2619,1
    - Dst: dl_mul
      Src: /src/cpython/Modules/mathmodule.c:2620,1
    - Dst: dl_fast_sum
      Src: /src/cpython/Modules/mathmodule.c:2621,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - n
    - vec
    - max
    - found_nan
    argTypes:
    - Py_ssize_t
    - double*
    - double
    - int
    assertStmts:
    - condition: (max * scale >= 0.5)
      pos:
        line_end: 2604
        line_start: 2604
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (max * scale < 1.0)
      pos:
        line_end: 2605
        line_start: 2605
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (isfinite(x) && fabs(x) <= max)
      pos:
        line_end: 2608
        line_start: 2608
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (fabs(x) < 1.0)
      pos:
        line_end: 2610
        line_start: 2610
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (pr.hi <= 1.0)
      pos:
        line_end: 2612
        line_start: 2612
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 2628
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2628
    functionName: vector_norm
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 1
    functionsReached:
    - vector_norm
    - fabs
    - sqrt
    - isinf
    - dl_mul
    - dl_fast_sum
    - isfinite
    - frexp
    - ldexp
    - assert
    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/cpython/Modules/mathmodule.c:2660,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/mathmodule.c:2661,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/mathmodule.c:2667,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/mathmodule.c:2668,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2671,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/mathmodule.c:2678,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/mathmodule.c:2679,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:2681,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/mathmodule.c:2686,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/mathmodule.c:2688,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/mathmodule.c:2693,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2694,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/mathmodule.c:2695,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2696,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2697,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2699,1
    - Dst: vector_norm
      Src: /src/cpython/Modules/mathmodule.c:2704,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2709,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2712,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2714,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2724,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 3
    argNames:
    - module
    - p
    - q
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2648
    functionDepth: 2
    functionLinenumber: 2648
    functionLinenumberEnd: 2727
    functionName: math_dist_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - fabs
    - vector_norm
    - PyTuple_Check
    - PySequence_Tuple
    - PyErr_SetString
    - ASSIGN_DOUBLE
    - PyMem_Free
    - isnan
    - PyTuple_GET_ITEM
    - PyFloat_FromDouble
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_dist_impl(PyObject *module, PyObject *p, PyObject *q)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/mathmodule.c:2762,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/mathmodule.c:2764,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2769,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2770,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2772,1
    - Dst: vector_norm
      Src: /src/cpython/Modules/mathmodule.c:2777,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2779,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2781,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2785,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - args_length
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2748
    functionDepth: 2
    functionLinenumber: 2748
    functionLinenumberEnd: 2788
    functionName: math_hypot_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - vector_norm
    - fabs
    - ASSIGN_DOUBLE
    - PyMem_Free
    - isnan
    - PyFloat_FromDouble
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_hypot_impl(PyObject *module, PyObject * const *args,\n
      \               Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2801
    functionName: long_add_would_overflow
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool long_add_would_overflow(long a, long b)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/mathmodule.c:2833,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/mathmodule.c:2837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2839,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:2842,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2845,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mathmodule.c:2848,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mathmodule.c:2849,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2853,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2854,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2855,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2856,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2858,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2859,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2860,1
    - Dst: p_next
      Src: /src/cpython/Modules/mathmodule.c:2862,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2864,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:2865,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2868,1
    - Dst: q_next
      Src: /src/cpython/Modules/mathmodule.c:2872,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2874,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:2875,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2878,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:2883,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2890,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2890,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2894,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2898,1
    - Dst: _check_long_mult_overflow
      Src: /src/cpython/Modules/mathmodule.c:2902,1
    - Dst: long_add_would_overflow
      Src: /src/cpython/Modules/mathmodule.c:2906,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2911,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2912,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:2920,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathmodule.c:2924,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2928,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2930,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2940,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2941,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2943,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2944,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2945,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/mathmodule.c:2945,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2950,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:2951,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2952,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2953,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2956,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/mathmodule.c:2956,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2957,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:2958,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2959,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2960,1
    - Dst: tl_fma
      Src: /src/cpython/Modules/mathmodule.c:2966,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2967,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2970,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2971,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2980,1
    - Dst: tl_to_d
      Src: /src/cpython/Modules/mathmodule.c:2980,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathmodule.c:2984,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2988,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2990,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2996,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2997,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:3001,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathmodule.c:3005,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3009,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:3011,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:3012,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:3013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3024,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:3025,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:3026,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:3027,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:3028,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 195
    argCount: 3
    argNames:
    - module
    - p
    - q
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (term_i == NULL)
      pos:
        line_end: 2854
        line_start: 2854
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (q_i == NULL)
      pos:
        line_end: 2853
        line_start: 2853
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (p_it != NULL)
      pos:
        line_end: 2857
        line_start: 2857
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (new_total == NULL)
      pos:
        line_end: 2855
        line_start: 2855
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (!flt_total_in_use)
      pos:
        line_end: 2996
        line_start: 2996
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (total != NULL)
      pos:
        line_end: 2859
        line_start: 2859
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (q_it != NULL)
      pos:
        line_end: 2858
        line_start: 2858
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (p_i == NULL)
      pos:
        line_end: 2852
        line_start: 2852
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (!int_total_in_use)
      pos:
        line_end: 2995
        line_start: 2995
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 3030
      start: 2820
    functionDepth: 2
    functionLinenumber: 2820
    functionLinenumberEnd: 3030
    functionName: math_sumprod_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetIter
    - Py_SETREF
    - tl_fma
    - PyLong_CheckExact
    - PyLong_FromLong
    - Py_CLEAR
    - PyFloat_FromDouble
    - _check_long_mult_overflow
    - q_next
    - PyErr_Occurred
    - p_next
    - tl_to_d
    - PyNumber_Add
    - PyErr_Format
    - PyErr_Clear
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyErr_ExceptionMatches
    - isfinite
    - PyBool_Check
    - PyFloat_AS_DOUBLE
    - Py_TYPE
    - long_add_would_overflow
    - PyFloat_CheckExact
    - PyNumber_Multiply
    - PyLong_AsDouble
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_sumprod_impl(PyObject *module, PyObject *p, PyObject *q)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:3059,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:3059,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:3061,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:3063,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:3065,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:3066,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:3066,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3066,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3068,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:3072,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3075,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:3075,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3076,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3078,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3080,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:3090,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:3093,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:3094,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:3102,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:3111,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3114,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts:
    - condition: (isinf(y))
      pos:
        line_end: 3074
        line_start: 3074
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 3115
      start: 3049
    functionDepth: 2
    functionLinenumber: 3049
    functionLinenumberEnd: 3115
    functionName: math_pow_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - pow
    - fabs
    - fmod
    - copysign
    - isinf
    - is_error
    - isnan
    - isfinite
    - PyFloat_FromDouble
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_pow_impl(PyObject *module, double x, double y)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3130
    functionDepth: 1
    functionLinenumber: 3130
    functionLinenumberEnd: 3135
    functionName: math_degrees_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/mathmodule.c:3151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3147
    functionDepth: 1
    functionLinenumber: 3147
    functionLinenumberEnd: 3152
    functionName: math_radians_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/mathmodule.c:3168,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:3168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3164
    functionDepth: 1
    functionLinenumber: 3164
    functionLinenumberEnd: 3169
    functionName: math_isfinite_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - isfinite
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isfinite_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3185,1
    - Dst: isnormal
      Src: /src/cpython/Modules/mathmodule.c:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3181
    functionDepth: 1
    functionLinenumber: 3181
    functionLinenumberEnd: 3186
    functionName: math_isnormal_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - isnormal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isnormal_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3203,1
    - Dst: issubnormal
      Src: /src/cpython/Modules/mathmodule.c:3203,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3205,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:3205,1
    - Dst: isnormal
      Src: /src/cpython/Modules/mathmodule.c:3205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3198
    functionDepth: 1
    functionLinenumber: 3198
    functionLinenumberEnd: 3207
    functionName: math_issubnormal_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - issubnormal
    - isfinite
    - isnormal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_issubnormal_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3223,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:3223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3219
    functionDepth: 1
    functionLinenumber: 3219
    functionLinenumberEnd: 3224
    functionName: math_isnan_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - isnan
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isnan_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3240,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:3240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3236
    functionDepth: 1
    functionLinenumber: 3236
    functionLinenumberEnd: 3241
    functionName: math_isinf_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - isinf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isinf_impl(PyObject *module, double x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:3278,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:3297,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:3297,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3305,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3307,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3308,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: 3310
      start: 3269
    functionDepth: 1
    functionLinenumber: 3269
    functionLinenumberEnd: 3310
    functionName: math_isclose_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - isinf
    - PyErr_SetString
    - fabs
    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: 3360
      start: 3312
    functionDepth: 0
    functionLinenumber: 3312
    functionLinenumberEnd: 3360
    functionName: _check_long_mult_overflow
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _check_long_mult_overflow(long a, long b)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/mathmodule.c:3386,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/mathmodule.c:3392,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/mathmodule.c:3394,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3400,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3402,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3405,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:3410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3412,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3413,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3416,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3418,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3419,1
    - Dst: _check_long_mult_overflow
      Src: /src/cpython/Modules/mathmodule.c:3420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3423,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3432,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:3435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3440,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3450,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:3451,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3452,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:3454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3457,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3460,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3462,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:3463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3464,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3467,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3473,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3480,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:3483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3488,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:3497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3500,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3501,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:3505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3512,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 102
    argCount: 3
    argNames:
    - module
    - iterable
    - start
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3379
    functionDepth: 1
    functionLinenumber: 3379
    functionLinenumberEnd: 3514
    functionName: math_prod_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - PyObject_GetIter
    - PyFloat_CheckExact
    - _PyLong_GetOne
    - PyIter_Next
    - Py_SETREF
    - PyNumber_Multiply
    - PyLong_CheckExact
    - PyFloat_AS_DOUBLE
    - PyLong_FromLong
    - PyFloat_FromDouble
    - _check_long_mult_overflow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3643,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathmodule.c:3658,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:3675,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathmodule.c:3685,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:3692,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathmodule.c:3703,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:3710,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:3719,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathmodule.c:3730,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathmodule.c:3734,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3738,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:3738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3739,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathmodule.c:3741,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3745,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathmodule.c:3745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3751,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - n
    - k
    - iscomb
    argTypes:
    - unsigned long long
    - unsigned long long
    - int
    assertStmts:
    - condition: (k != 0)
      pos:
        line_end: 3642
        line_start: 3642
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 3753
      start: 3640
    functionDepth: 1
    functionLinenumber: 3640
    functionLinenumberEnd: 3753
    functionName: perm_comb_small
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - perm_comb_small
    - Py_SETREF
    - PyNumber_Multiply
    - PyNumber_FloorDivide
    - PyLong_FromUnsignedLongLong
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      perm_comb_small(unsigned long long n, unsigned long long k, int iscomb)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3763,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/mathmodule.c:3766,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathmodule.c:3773,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:3777,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/mathmodule.c:3781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3782,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathmodule.c:3786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3787,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3791,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:3791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3792,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathmodule.c:3794,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3798,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathmodule.c:3798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3804,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - n
    - k
    - iscomb
    argTypes:
    - PyObject*
    - unsigned long long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3806
      start: 3759
    functionDepth: 2
    functionLinenumber: 3759
    functionLinenumberEnd: 3806
    functionName: perm_comb
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyLong_FromLong
    - PyNumber_Subtract
    - perm_comb_small
    - Py_NewRef
    - Py_SETREF
    - PyNumber_Multiply
    - PyLong_FromUnsignedLongLong
    - PyNumber_FloorDivide
    - perm_comb
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      perm_comb(PyObject *n, unsigned long long k, int iscomb)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: math_factorial
      Src: /src/cpython/Modules/mathmodule.c:3837,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:3839,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:3843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3845,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3848,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3848,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3848,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:3850,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:3851,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:3855,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:3856,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/mathmodule.c:3861,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3864,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3870,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3871,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3871,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:3873,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3878,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3880,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3881,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3881,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3883,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathmodule.c:3884,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathmodule.c:3888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3898,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 3
    argNames:
    - module
    - n
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_CheckExact(n) && PyLong_CheckExact(k))
      pos:
        line_end: 3847
        line_start: 3847
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 3870
        line_start: 3870
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (ki >= 0)
      pos:
        line_end: 3877
        line_start: 3877
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 3880
        line_start: 3880
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (ni >= 0)
      pos:
        line_end: 3882
        line_start: 3882
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 3900
      start: 3828
    functionDepth: 4
    functionLinenumber: 3828
    functionLinenumberEnd: 3900
    functionName: math_perm_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - math_factorial
    - Py_DECREF
    - _PyLong_IsNegative
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsLongLongAndOverflow
    - perm_comb_small
    - PyObject_RichCompareBool
    - PyLong_CheckExact
    - PyLong_FromLong
    - PyErr_Format
    - perm_comb
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_perm_impl(PyObject *module, PyObject *n, PyObject *k)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:3932,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:3936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3938,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3941,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3941,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:3941,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:3943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:3944,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:3948,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:3949,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3954,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3955,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3955,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3957,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3958,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3959,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3959,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3961,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3964,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/mathmodule.c:3966,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathmodule.c:3968,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/mathmodule.c:3976,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3980,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/mathmodule.c:3980,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:3981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3982,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:3983,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/mathmodule.c:3986,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:3988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3991,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:3997,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:3998,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:3998,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:4000,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:4005,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathmodule.c:4008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:4011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:4012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:4016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:4017,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 3
    argNames:
    - module
    - n
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 3958
        line_start: 3958
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (PyLong_CheckExact(n) && PyLong_CheckExact(k))
      pos:
        line_end: 3940
        line_start: 3940
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (ni >= 0)
      pos:
        line_end: 3956
        line_start: 3956
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 3954
        line_start: 3954
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (PyLong_Check(temp))
      pos:
        line_end: 3979
        line_start: 3979
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (ki >= 0)
      pos:
        line_end: 3963
        line_start: 3963
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 3997
        line_start: 3997
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (ki >= 0)
      pos:
        line_end: 4004
        line_start: 4004
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 4019
      start: 3924
    functionDepth: 3
    functionLinenumber: 3924
    functionLinenumberEnd: 4019
    functionName: math_comb_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - PyNumber_Index
    - _PyLong_IsNegative
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsLongLongAndOverflow
    - perm_comb_small
    - PyNumber_Subtract
    - PyLong_Check
    - Py_SETREF
    - PyObject_RichCompareBool
    - PyLong_CheckExact
    - PyLong_FromLong
    - PyErr_Format
    - perm_comb
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_comb_impl(PyObject *module, PyObject *n, PyObject *k)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4048,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:4050,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4051,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:4053,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4054,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4059,1
    - Dst: nextafter
      Src: /src/cpython/Modules/mathmodule.c:4059,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:4061,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:4065,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:4065,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:4066,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:4067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:4069,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:4073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:4077,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:4083,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:4084,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:4085,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:4093,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4097,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:4099,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4100,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:4102,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4103,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4113,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4126,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4131,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4134,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4140,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4142,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4147,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4149,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 4
    argNames:
    - module
    - x
    - y
    - steps
    argTypes:
    - PyObject*
    - double
    - double
    - PyObject*
    assertStmts:
    - condition: (usteps_ull <= UINT64_MAX)
      pos:
        line_end: 4092
        line_start: 4092
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (PyLong_CheckExact(steps))
      pos:
        line_end: 4064
        line_start: 4064
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 4152
      start: 4040
    functionDepth: 1
    functionLinenumber: 4040
    functionLinenumberEnd: 4152
    functionName: math_nextafter_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - _PyLong_IsNegative
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - nextafter
    - PyLong_AsUnsignedLongLong
    - PyErr_ExceptionMatches
    - isnan
    - PyLong_CheckExact
    - PyErr_Clear
    - PyFloat_FromDouble
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_nextafter_impl(PyObject *module, double x, double y, PyObject *steps)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:4168,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:4171,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:4172,1
    - Dst: nextafter
      Src: /src/cpython/Modules/mathmodule.c:4176,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:4177,1
    - Dst: nextafter
      Src: /src/cpython/Modules/mathmodule.c:4179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4183
      start: 4164
    functionDepth: 0
    functionLinenumber: 4164
    functionLinenumberEnd: 4183
    functionName: math_ulp_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - isinf
    - isnan
    - nextafter
    - fabs
    linkageType: ''
    returnType: double
    signature: double math_ulp_impl(PyObject *module, double x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:4189,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4189,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:4192,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4192,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:4196,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4196,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:4199,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4199,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:4202,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:4202,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:4202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4185
    functionDepth: 1
    functionLinenumber: 4185
    functionLinenumberEnd: 4206
    functionName: math_exec
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyFloat_FromDouble
    - fabs
    linkageType: ''
    returnType: int
    signature: int math_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/mathmodule.c:4297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4294
    functionDepth: 1
    functionLinenumber: 4294
    functionLinenumberEnd: 4298
    functionName: PyInit_math
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_math(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:69,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:73,1
    - Dst: _Py_abspath
      Src: /src/cpython/Modules/getpath.c:76,1
    - Dst: _Py_normpath
      Src: /src/cpython/Modules/getpath.c:76,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:77,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:78,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/getpath.c:80,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 85
    functionName: getpath_abspath
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyArg_ParseTuple
    - PyErr_SetString
    - _Py_abspath
    - _Py_normpath
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_abspath(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:92,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/getpath.c:95,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/getpath.c:96,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:98,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/getpath.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: getpath_basename
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_NewRef
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_basename(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:108,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/getpath.c:111,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/getpath.c:112,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/getpath.c:114,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/getpath.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: getpath_dirname
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_GetConstant
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_dirname(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:126,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:129,1
    - Dst: _Py_isabs
      Src: /src/cpython/Modules/getpath.c:131,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:132,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/getpath.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: getpath_isabs
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - _Py_isabs
    - PyArg_ParseTuple
    - Py_XNewRef
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_isabs(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:146,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:150,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:152,1
    - Dst: wcsicmp
      Src: /src/cpython/Modules/getpath.c:156,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/getpath.c:158,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:163,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:165,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: getpath_hassuffix
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - wcscmp
    - Py_NewRef
    - wcsicmp
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_hassuffix(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:179,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:182,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/getpath.c:185,1
    - Dst: _Py_wstat
      Src: /src/cpython/Modules/getpath.c:190,1
    - Dst: S_ISDIR
      Src: /src/cpython/Modules/getpath.c:190,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:192,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/getpath.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 195
    functionName: getpath_isdir
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - GetFileAttributesW
    - PyArg_ParseTuple
    - Py_XNewRef
    - S_ISDIR
    - PyMem_Free
    - _Py_wstat
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_isdir(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:204,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:207,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/getpath.c:210,1
    - Dst: _Py_wstat
      Src: /src/cpython/Modules/getpath.c:215,1
    - Dst: S_ISREG
      Src: /src/cpython/Modules/getpath.c:215,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:217,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/getpath.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 220
    functionName: getpath_isfile
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - GetFileAttributesW
    - PyArg_ParseTuple
    - Py_XNewRef
    - S_ISREG
    - PyMem_Free
    - _Py_wstat
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_isfile(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:230,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:233,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/getpath.c:236,1
    - Dst: CompareStringOrdinal
      Src: /src/cpython/Modules/getpath.c:240,1
    - Dst: _Py_wstat
      Src: /src/cpython/Modules/getpath.c:244,1
    - Dst: S_ISREG
      Src: /src/cpython/Modules/getpath.c:245,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:249,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/getpath.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 252
    functionName: getpath_isxfile
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - CompareStringOrdinal
    - GetFileAttributesW
    - PyArg_ParseTuple
    - Py_XNewRef
    - S_ISREG
    - PyMem_Free
    - _Py_wstat
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_isxfile(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/getpath.c:258,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/getpath.c:259,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/getpath.c:262,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/getpath.c:264,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/getpath.c:267,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/getpath.c:269,1
    - Dst: memset
      Src: /src/cpython/Modules/getpath.c:272,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/getpath.c:277,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/getpath.c:281,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:282,1
    - Dst: _Py_isabs
      Src: /src/cpython/Modules/getpath.c:287,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/getpath.c:291,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/getpath.c:298,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:301,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:303,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/getpath.c:305,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/getpath.c:308,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/getpath.c:320,1
    - Dst: _Py_add_relfile
      Src: /src/cpython/Modules/getpath.c:321,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:323,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:327,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:329,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/getpath.c:331,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:334,1
    - Dst: _Py_normpath
      Src: /src/cpython/Modules/getpath.c:334,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:335,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 337
    functionName: getpath_joinpath
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - _Py_add_relfile
    - PyTuple_GET_SIZE
    - _Py_isabs
    - PyTuple_Check
    - Py_GetConstant
    - PyErr_SetString
    - memset
    - PyMem_Free
    - _Py_normpath
    - PyTuple_GET_ITEM
    - PyUnicode_FromWideChar
    - PyUnicode_Check
    - wcscpy
    - PyUnicode_AsWideCharString
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_joinpath(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:346,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:349,1
    - Dst: _Py_wfopen
      Src: /src/cpython/Modules/getpath.c:353,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/getpath.c:355,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:356,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:359,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/getpath.c:361,1
    - Dst: fclose
      Src: /src/cpython/Modules/getpath.c:363,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/getpath.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:369,1
    - Dst: fclose
      Src: /src/cpython/Modules/getpath.c:370,1
    - Dst: fread
      Src: /src/cpython/Modules/getpath.c:374,1
    - Dst: fclose
      Src: /src/cpython/Modules/getpath.c:375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/getpath.c:381,1
    - Dst: _Py_DecodeUTF8_surrogateescape
      Src: /src/cpython/Modules/getpath.c:388,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:391,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/getpath.c:392,1
    - Dst: wcschr
      Src: /src/cpython/Modules/getpath.c:398,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:403,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/getpath.c:404,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/getpath.c:405,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/getpath.c:406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:409,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:413,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/getpath.c:414,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/getpath.c:415,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/getpath.c:417,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:419,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 421
    functionName: getpath_readlines
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _Py_DecodeUTF8_surrogateescape
    - Py_XDECREF
    - _Py_wfopen
    - PyErr_SetString
    - Py_CLEAR
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - PyList_Append
    - wcschr
    - Py_DECREF
    - fread
    - PyMem_RawFree
    - PyErr_SetFromErrno
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyArg_ParseTuple
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_readlines(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:428,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:438,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Modules/getpath.c:442,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:443,1
    - Dst: _Py_wreadlink
      Src: /src/cpython/Modules/getpath.c:447,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/getpath.c:447,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:449,1
    - Dst: _Py_isabs
      Src: /src/cpython/Modules/getpath.c:452,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:453,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Modules/getpath.c:454,1
    - Dst: wcsrchr
      Src: /src/cpython/Modules/getpath.c:456,1
    - Dst: _Py_join_relfile
      Src: /src/cpython/Modules/getpath.c:460,1
    - Dst: _Py_normpath
      Src: /src/cpython/Modules/getpath.c:462,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:464,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/getpath.c:470,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/getpath.c:475,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:478,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:485,1
    - Dst: Py_EncodeLocale
      Src: /src/cpython/Modules/getpath.c:489,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/getpath.c:491,1
    - Dst: lstat
      Src: /src/cpython/Modules/getpath.c:494,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/getpath.c:495,1
    - Dst: S_ISLNK
      Src: /src/cpython/Modules/getpath.c:498,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:499,1
    - Dst: _Py_wrealpath
      Src: /src/cpython/Modules/getpath.c:503,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/getpath.c:504,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:506,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:509,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:510,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/getpath.c:519,1
    - Dst: wcslen
      Src: /src/cpython/Modules/getpath.c:523,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/getpath.c:524,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/getpath.c:529,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/cpython/Modules/getpath.c:531,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/getpath.c:532,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/getpath.c:533,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/getpath.c:535,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/getpath.c:540,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/getpath.c:544,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/getpath.c:545,1
    - Dst: CompareStringOrdinal
      Src: /src/cpython/Modules/getpath.c:550,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:551,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:553,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:556,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/getpath.c:558,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:562,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 105
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 563
    functionName: getpath_realpath
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - wcsncmp
    - Py_EncodeLocale
    - CreateFileW
    - wcsrchr
    - PyErr_SetString
    - GetLastError
    - PyErr_SetFromWindowsErr
    - _Py_normpath
    - _PyMem_RawWcsdup
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - _Py_isabs
    - CloseHandle
    - CompareStringOrdinal
    - PyMem_RawFree
    - S_ISLNK
    - Py_NewRef
    - wcslen
    - PyUnicode_FromWideChar
    - PyErr_SetFromErrno
    - PyErr_NoMemory
    - _Py_wreadlink
    - _Py_wrealpath
    - PyArg_ParseTuple
    - GetFinalPathNameByHandleW
    - _Py_join_relfile
    - lstat
    - Py_ARRAY_LENGTH
    - GetFileAttributesW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_realpath(PyObject *Py_UNUSED(self) , PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/getpath.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: if
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/getpath.c:589,1
    - Dst: fprintf
      Src: /src/cpython/Modules/getpath.c:592,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/getpath.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 594
    functionName: getpath_warn
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PyUnicode_AsUTF8
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_warn(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: getpath_nowarn
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getpath_nowarn(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Modules/getpath.c:612,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:620,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Modules/getpath.c:623,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dict
    - warnings
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 633
    functionName: funcs_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyCFunction_NewEx
    - PyDict_SetItemString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int funcs_to_dict(PyObject *dict, int warnings)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:643,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:648,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - dict
    - key
    - s
    argTypes:
    - PyObject*
    - char*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 653
    functionName: wchar_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyDict_SetItemString
    - PyUnicode_FromWideChar
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int wchar_to_dict(PyObject *dict, const char *key, const wchar_t *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Modules/getpath.c:664,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:666,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:667,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/getpath.c:673,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - dict
    - key
    - s
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 678
    functionName: decode_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - Py_DecodeLocale
    - PyMem_RawFree
    - Py_DECREF
    - Py_NewRef
    - PyDict_SetItemString
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: int
    signature: int decode_to_dict(PyObject *dict, const char *key, const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/getpath.c:686,1
    - Dst: strncmp
      Src: /src/cpython/Modules/getpath.c:686,1
    - Dst: assert
      Src: /src/cpython/Modules/getpath.c:687,1
    - Dst: strlen
      Src: /src/cpython/Modules/getpath.c:687,1
    - Dst: assert
      Src: /src/cpython/Modules/getpath.c:693,1
    - Dst: _wgetenv
      Src: /src/cpython/Modules/getpath.c:697,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:699,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:701,1
    - Dst: getenv
      Src: /src/cpython/Modules/getpath.c:705,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Modules/getpath.c:708,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/getpath.c:710,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:712,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:714,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:720,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:722,1
    - Dst: _wputenv_s
      Src: /src/cpython/Modules/getpath.c:726,1
    - Dst: unsetenv
      Src: /src/cpython/Modules/getpath.c:728,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - dict
    - key
    - and_clear
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (strncmp(key, "ENV_", 4) == 0)
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/cpython/Modules/getpath.c
    - condition: (strlen(key) < 64)
      pos:
        line_end: 686
        line_start: 686
        source_file: /src/cpython/Modules/getpath.c
    - condition: (!(*p & 0x80))
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/cpython/Modules/getpath.c
    constantsTouched: []
    func_position:
      end: 732
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 732
    functionName: env_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - Py_DecodeLocale
    - PyMem_RawFree
    - strncmp
    - strlen
    - Py_DECREF
    - _wputenv_s
    - getenv
    - unsetenv
    - PyDict_SetItemString
    - PyUnicode_FromWideChar
    - _wgetenv
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: int env_to_dict(PyObject *dict, const char *key, int and_clear)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/getpath.c:741,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - dict
    - key
    - v
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 748
    functionName: int_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItemString
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int int_to_dict(PyObject *dict, const char *key, int v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/getpath.c:757,1
    - Dst: GetModuleFileNameW
      Src: /src/cpython/Modules/getpath.c:759,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:760,1
    - Dst: wchar_to_dict
      Src: /src/cpython/Modules/getpath.c:765,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - dict
    - key
    - mod
    argTypes:
    - PyObject*
    - char*
    - HMODULE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 768
    functionName: winmodule_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - GetModuleFileNameW
    - wchar_to_dict
    - PyMem_RawMalloc
    - PyMem_RawFree
    linkageType: ''
    returnType: int
    signature: int winmodule_to_dict(PyObject *dict, const char *key, HMODULE mod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: winmodule_to_dict
      Src: /src/cpython/Modules/getpath.c:777,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/getpath.c:782,1
    - Dst: _NSGetExecutablePath
      Src: /src/cpython/Modules/getpath.c:786,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:787,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:792,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:793,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/getpath.c:797,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:801,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dict
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 802
    functionName: progname_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - winmodule_to_dict
    - decode_to_dict
    - PyDict_SetItemString
    - PyMem_RawMalloc
    - _NSGetExecutablePath
    linkageType: ''
    returnType: int
    signature: int progname_to_dict(PyObject *dict, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winmodule_to_dict
      Src: /src/cpython/Modules/getpath.c:816,1
    - Dst: dladdr
      Src: /src/cpython/Modules/getpath.c:822,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:823,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - dict
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 829
    functionName: library_to_dict
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - decode_to_dict
    - dladdr
    - PyDict_SetItemString
    - winmodule_to_dict
    linkageType: ''
    returnType: int
    signature: int library_to_dict(PyObject *dict, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/cpython/Modules/getpath.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: _Py_Get_Getpath_CodeObject
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyMarshal_ReadObjectFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_Get_Getpath_CodeObject(void)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyPathConfig_ReadGlobal
      Src: /src/cpython/Modules/getpath.c:858,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/getpath.c:860,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/getpath.c:864,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Modules/getpath.c:865,1
    - Dst: _PyConfig_AsDict
      Src: /src/cpython/Modules/getpath.c:868,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:870,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Modules/getpath.c:871,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/getpath.c:874,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:877,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Modules/getpath.c:878,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:881,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:884,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Modules/getpath.c:885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:888,1
    - Dst: _Py_Get_Getpath_CodeObject
      Src: /src/cpython/Modules/getpath.c:890,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/getpath.c:891,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:892,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/getpath.c:893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:894,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Modules/getpath.c:895,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/getpath.c:899,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:900,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:901,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/getpath.c:902,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:903,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/getpath.c:904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:906,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Modules/getpath.c:907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:910,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:916,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:918,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:920,1
    - Dst: int_to_dict
      Src: /src/cpython/Modules/getpath.c:923,1
    - Dst: int_to_dict
      Src: /src/cpython/Modules/getpath.c:925,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:927,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:928,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:929,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:930,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:931,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:932,1
    - Dst: int_to_dict
      Src: /src/cpython/Modules/getpath.c:933,1
    - Dst: int_to_dict
      Src: /src/cpython/Modules/getpath.c:934,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:935,1
    - Dst: wchar_to_dict
      Src: /src/cpython/Modules/getpath.c:936,1
    - Dst: env_to_dict
      Src: /src/cpython/Modules/getpath.c:937,1
    - Dst: env_to_dict
      Src: /src/cpython/Modules/getpath.c:938,1
    - Dst: env_to_dict
      Src: /src/cpython/Modules/getpath.c:939,1
    - Dst: env_to_dict
      Src: /src/cpython/Modules/getpath.c:940,1
    - Dst: progname_to_dict
      Src: /src/cpython/Modules/getpath.c:941,1
    - Dst: library_to_dict
      Src: /src/cpython/Modules/getpath.c:942,1
    - Dst: wchar_to_dict
      Src: /src/cpython/Modules/getpath.c:943,1
    - Dst: wchar_to_dict
      Src: /src/cpython/Modules/getpath.c:944,1
    - Dst: _PyPathConfig_GetGlobalModuleSearchPath
      Src: /src/cpython/Modules/getpath.c:944,1
    - Dst: funcs_to_dict
      Src: /src/cpython/Modules/getpath.c:945,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:947,1
    - Dst: decode_to_dict
      Src: /src/cpython/Modules/getpath.c:949,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:952,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/getpath.c:954,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Modules/getpath.c:954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:957,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/getpath.c:958,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Modules/getpath.c:959,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Modules/getpath.c:962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:966,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/getpath.c:967,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Modules/getpath.c:968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:970,1
    - Dst: _PyConfig_FromDict
      Src: /src/cpython/Modules/getpath.c:972,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/getpath.c:973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:974,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Modules/getpath.c:975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/getpath.c:978,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/getpath.c:980,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 60
    argCount: 2
    argNames:
    - config
    - compute_path_config
    argTypes:
    - PyConfig*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 981
    functionName: _PyConfig_InitPathConfig
    functionSourceFile: /src/cpython/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_Get_Getpath_CodeObject
    - _PyStatus_EXCEPTION
    - PyStatus_Error
    - PyImport_ImportModule
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - wchar_to_dict
    - library_to_dict
    - decode_to_dict
    - _PyConfig_AsDict
    - PyErr_Clear
    - env_to_dict
    - _PyStatus_OK
    - Py_DECREF
    - _PyPathConfig_ReadGlobal
    - PyDict_SetItemString
    - int_to_dict
    - progname_to_dict
    - funcs_to_dict
    - PyCode_Check
    - _PyConfig_FromDict
    - PyStatus_NoMemory
    - _PyPathConfig_GetGlobalModuleSearchPath
    - PyEval_GetBuiltins
    - PyEval_EvalCode
    - PyDict_New
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_interpretersmodule.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: _get_current_interp
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 7
    functionsReached:
    - PyInterpreterState_Get
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _get_current_interp(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_interpretersmodule.c:49,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_interpretersmodule.c:53,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:54,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: _get_current_module
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 4
    functionsReached:
    - PyImport_GetModule
    - Py_DECREF
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_current_module(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_IsRunningMain
      Src: /src/cpython/Modules/_interpretersmodule.c:66,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: is_running_main
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_IsRunningMain
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: int
    signature: int is_running_main(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_GetNotShareableErrorType
      Src: /src/cpython/Modules/_interpretersmodule.c:84,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_interpretersmodule.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: is_notshareable_raised
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_ExceptionMatches
    - _PyXIData_GetNotShareableErrorType
    linkageType: ''
    returnType: int
    signature: int is_notshareable_raised(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_UnwrapNotShareableError
      Src: /src/cpython/Modules/_interpretersmodule.c:91,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tstate
    - failure
    argTypes:
    - PyThreadState*
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: unwrap_not_shareable
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_Clear
    - _PyXI_UnwrapNotShareableError
    linkageType: ''
    returnType: void
    signature: void unwrap_not_shareable(PyThreadState *tstate, _PyXI_failure *failure)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:142,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_interpretersmodule.c:144,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_interpretersmodule.c:151,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:153,1
    - Dst: PyObject_Init
      Src: /src/cpython/Modules/_interpretersmodule.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - cls
    - view
    - interpid
    argTypes:
    - PyTypeObject*
    - Py_buffer*
    - int64_t
    assertStmts:
    - condition: (interpid >= 0)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: xibufferview_from_buffer
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - PyMem_RawFree
    - PyObject_Init
    - PyMem_RawMalloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xibufferview_from_buffer(PyTypeObject *cls, Py_buffer *view, int64_t interpid)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Modules/_interpretersmodule.c:171,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:174,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:175,1
    - Dst: _PyBuffer_ReleaseInInterpreterAndRawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:178,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpretersmodule.c:187,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_interpretersmodule.c:188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 196
    functionName: xibufferview_dealloc
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpID
    - Py_DECREF
    - PyMem_RawFree
    - _PyBuffer_ReleaseInInterpreterAndRawFree
    - PyTypeObject*::tp_free
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void xibufferview_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: xibufferview_getbuf
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xibufferview_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:239,1
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpretersmodule.c:239,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:240,1
    - Dst: _PyXIData_OBJ
      Src: /src/cpython/Modules/_interpretersmodule.c:240,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:241,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpretersmodule.c:241,1
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpretersmodule.c:242,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:243,1
    - Dst: _get_current_xibufferview_type
      Src: /src/cpython/Modules/_interpretersmodule.c:245,1
    - Dst: xibufferview_from_buffer
      Src: /src/cpython/Modules/_interpretersmodule.c:250,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpretersmodule.c:251,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_interpretersmodule.c:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (_PyXIData_DATA(data) != NULL)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (_PyXIData_OBJ(data) == NULL)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (_PyXIData_INTERPID(data) >= 0)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!view->used)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 262
    functionName: _memoryview_from_xid
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMemoryView_FromObject
    - _PyXIData_DATA
    - xibufferview_from_buffer
    - _get_current_xibufferview_type
    - _PyXIData_INTERPID
    - assert
    - _PyXIData_OBJ
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _memoryview_from_xid(_PyXIData_t *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:269,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: _pybuffer_shared_free
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void _pybuffer_shared_free(void* data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_interpretersmodule.c:277,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_interpretersmodule.c:284,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:285,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Modules/_interpretersmodule.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tstate
    - obj
    - data
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 293
    functionName: _pybuffer_shared
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _PyXIData_Init
    - PyObject_GetBuffer
    - PyMem_RawMalloc
    linkageType: ''
    returnType: int
    signature: int _pybuffer_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:299,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_interpretersmodule.c:300,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpretersmodule.c:305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:306,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpretersmodule.c:312,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpretersmodule.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mod
    - p_state
    argTypes:
    - PyObject*
    - PyTypeObject**
    assertStmts:
    - condition: (*p_state == NULL)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: register_memoryview_xid
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - ensure_xid_class
    - PyType_FromModuleAndSpec
    - GETDATA
    - assert
    linkageType: ''
    returnType: int
    signature: int register_memoryview_xid(PyObject *mod, PyTypeObject **p_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:334,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_interpretersmodule.c:335,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (state != NULL)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 30
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      get_module_state(PyObject *mod)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_interpretersmodule.c:343,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpretersmodule.c:345,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: _get_current_module_state
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _get_current_module
    - get_module_state
    - PyImport_ImportModule
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      _get_current_module_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpretersmodule.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - visit
    - arg
    argTypes:
    - module_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: traverse_module_state
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 2
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int traverse_module_state(module_state *state, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpretersmodule.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: clear_module_state
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 4
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int clear_module_state(module_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 382
    functionName: _get_current_xibufferview_type
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 1
    functionsReached:
    - _get_current_module_state
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _get_current_xibufferview_type(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:391,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:392,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:397,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:400,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:403,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyInterpreterConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 412
    functionName: init_named_config
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int init_named_config(PyInterpreterConfig *config, const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_named_config
      Src: /src/cpython/Modules/_interpretersmodule.c:418,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:422,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_interpretersmodule.c:423,1
    - Dst: init_named_config
      Src: /src/cpython/Modules/_interpretersmodule.c:427,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_interpretersmodule.c:432,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:434,1
    - Dst: _PyInterpreterConfig_InitFromDict
      Src: /src/cpython/Modules/_interpretersmodule.c:437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:438,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - configobj
    - config
    argTypes:
    - PyObject*
    - PyInterpreterConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 444
    functionName: config_from_object
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - init_named_config
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyInterpreterConfig_InitFromDict
    - PyUnicode_AsUTF8
    - PyErr_Format
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int config_from_object(PyObject *configobj, PyInterpreterConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:462,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:465,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - call
    argTypes:
    - struct interp_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 471
    functionName: _interp_call_clear
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyXIData_Clear
    linkageType: ''
    returnType: void
    signature: void _interp_call_clear(struct interp_call *call)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:478,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:479,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:480,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:482,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:483,1
    - Dst: _PyFunction_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:487,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:488,1
    - Dst: _PyPickle_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:489,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:493,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:501,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:501,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_interpretersmodule.c:502,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:503,1
    - Dst: _interp_call_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:506,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:517,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:517,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_interpretersmodule.c:518,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:519,1
    - Dst: _interp_call_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:522,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - tstate
    - call
    - func
    - args
    - kwargs
    argTypes:
    - PyThreadState*
    - struct interp_call*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (call->func == NULL)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyDict_Check(kwargs))
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (call->args == NULL)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (call->kwargs == NULL)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 529
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 529
    functionName: _interp_call_pack
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyFunction_GetXIData
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyErr_SetRaisedException
    - _PyErr_Format
    - PyTuple_Check
    - _PyObject_GetXIData
    - _interp_call_clear
    - PyDict_GET_SIZE
    - PyCallable_Check
    - _PyPickle_GetXIData
    - PyDict_Check
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: int
    signature: "int _interp_call_pack(PyThreadState *tstate, struct interp_call *call,\n
      \                 PyObject *func, PyObject *args, PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_notshareable_raised
      Src: /src/cpython/Modules/_interpretersmodule.c:534,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:537,1
    - Dst: strlen
      Src: /src/cpython/Modules/_interpretersmodule.c:537,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:538,1
    - Dst: _PyXIData_FormatNotShareableError
      Src: /src/cpython/Modules/_interpretersmodule.c:539,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:540,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Modules/_interpretersmodule.c:541,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tstate
    - label
    argTypes:
    - PyThreadState*
    - char*
    assertStmts:
    - condition: (label != NULL && strlen(label) > 0)
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 543
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 543
    functionName: wrap_notshareable
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - is_notshareable_raised
    - assert
    - PyException_SetCause
    - strlen
    - _PyErr_SetRaisedException
    - _PyXIData_FormatNotShareableError
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void wrap_notshareable(PyThreadState *tstate, const char *label)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_interpretersmodule.c:549,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpretersmodule.c:552,1
    - Dst: wrap_notshareable
      Src: /src/cpython/Modules/_interpretersmodule.c:554,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_interpretersmodule.c:560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:562,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpretersmodule.c:567,1
    - Dst: wrap_notshareable
      Src: /src/cpython/Modules/_interpretersmodule.c:569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:570,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:573,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:573,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpretersmodule.c:578,1
    - Dst: wrap_notshareable
      Src: /src/cpython/Modules/_interpretersmodule.c:580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:582,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:585,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:585,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 4
    argNames:
    - call
    - p_func
    - p_args
    - p_kwargs
    argTypes:
    - struct interp_call*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyDict_Check(kwargs))
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 591
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 591
    functionName: _interp_call_unpack
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - wrap_notshareable
    - PyTuple_Check
    - _PyXIData_NewObject
    - PyDict_Check
    - PyThreadState_Get
    - assert
    linkageType: ''
    returnType: int
    signature: "int _interp_call_unpack(struct interp_call *call,\n                    PyObject
      **p_func, PyObject **p_args, PyObject **p_kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:597,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:598,1
    - Dst: _interp_call_unpack
      Src: /src/cpython/Modules/_interpretersmodule.c:602,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:603,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:604,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:605,1
    - Dst: _PyXI_InitFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:606,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:607,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:610,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:610,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_interpretersmodule.c:613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:614,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:615,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - call
    - p_result
    - failure
    argTypes:
    - struct interp_call*
    - PyObject**
    - _PyXI_failure*
    assertStmts:
    - condition: (call != NULL && call->func != NULL)
      pos:
        line_end: 596
        line_start: 596
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (func == NULL)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (args == NULL)
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (kwargs == NULL)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 622
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 622
    functionName: _make_call
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _interp_call_unpack
    - Py_DECREF
    - unwrap_not_shareable
    - _PyThreadState_GET
    - _PyXI_InitFailure
    - PyObject_Call
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: "int _make_call(struct interp_call *call,\n           PyObject **p_result,
      _PyXI_failure *failure)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpretersmodule.c:627,1
    - Dst: _PyXI_InitFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:629,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Modules/_interpretersmodule.c:632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:633,1
    - Dst: _PyXI_InitFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:635,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - script
    - ns
    - failure
    argTypes:
    - _PyXIData_t*
    - PyObject*
    - _PyXI_failure*
    assertStmts:
    - condition: (result == Py_None)
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 641
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 641
    functionName: _run_script
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyXIData_NewObject
    - PyEval_EvalCode
    - _PyXI_InitFailure
    - assert
    linkageType: ''
    returnType: int
    signature: int _run_script(_PyXIData_t *script, PyObject *ns, _PyXI_failure *failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpretersmodule.c:651,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpretersmodule.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runres
    argTypes:
    - struct run_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: _run_result_clear
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _run_result_clear(struct run_result *runres)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:660,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:660,1
    - Dst: _PyXI_NewFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:662,1
    - Dst: _PyXI_NewSession
      Src: /src/cpython/Modules/_interpretersmodule.c:666,1
    - Dst: _PyXI_FreeFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:668,1
    - Dst: _PyXI_Enter
      Src: /src/cpython/Modules/_interpretersmodule.c:674,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:677,1
    - Dst: _PyXI_FreeFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:678,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:679,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:685,1
    - Dst: _PyXI_GetMainNamespace
      Src: /src/cpython/Modules/_interpretersmodule.c:686,1
    - Dst: _run_script
      Src: /src/cpython/Modules/_interpretersmodule.c:690,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:693,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_interpretersmodule.c:695,1
    - Dst: _PyXI_Preserve
      Src: /src/cpython/Modules/_interpretersmodule.c:697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:698,1
    - Dst: _PyXI_Exit
      Src: /src/cpython/Modules/_interpretersmodule.c:708,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:709,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:710,1
    - Dst: _PyXI_FreeFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:711,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:714,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:716,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:719,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpretersmodule.c:720,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:724,1
    - Dst: _PyXI_GetPreserved
      Src: /src/cpython/Modules/_interpretersmodule.c:725,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:726,1
    - Dst: _PyXI_ClearResult
      Src: /src/cpython/Modules/_interpretersmodule.c:730,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 6
    argNames:
    - tstate
    - interp
    - script
    - call
    - shareables
    - runres
    argTypes:
    - PyThreadState*
    - PyInterpreterState*
    - _PyXIData_t*
    - struct interp_call*
    - PyObject*
    - struct run_result*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (call != NULL)
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (result.excinfo != NULL)
      pos:
        line_end: 718
        line_start: 718
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (result.excinfo == NULL)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (res < 0)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (call == NULL)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (res == 0 || exitres != 0)
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (result.excinfo == NULL)
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 732
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 732
    functionName: _run_in_interpreter
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyXI_GetMainNamespace
    - _PyXI_Preserve
    - _PyXI_NewFailure
    - Py_DECREF
    - _PyXI_FreeFailure
    - _run_script
    - _PyXI_NewSession
    - _make_call
    - _PyXI_Enter
    - _PyXI_FreeSession
    - Py_NewRef
    - _PyXI_ClearResult
    - _PyXI_Exit
    - _PyXI_GetPreserved
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: "int _run_in_interpreter(PyThreadState *tstate, PyInterpreterState
      *interp,\n                     _PyXIData_t *script, struct interp_call *call,\n
      \                    PyObject *shareables, struct run_result *runres)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetWhence
      Src: /src/cpython/Modules/_interpretersmodule.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: get_whence
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetWhence
    linkageType: ''
    returnType: long
    signature: long get_whence(PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_interpretersmodule.c:749,1
    - Dst: look_up_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:752,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:758,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:760,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:764,1
    - Dst: get_whence
      Src: /src/cpython/Modules/_interpretersmodule.c:770,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:772,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:776,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - idobj
    - restricted
    - reqready
    - op
    argTypes:
    - PyObject*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 783
    functionName: resolve_interp
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - get_whence
    - _PyInterpreterState_IsReady
    - PyErr_Format
    - look_up_interp
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      resolve_interp(PyObject *idobj, int restricted, int reqready, const char *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Modules/_interpretersmodule.c:789,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_interpretersmodule.c:793,1
    - Dst: get_whence
      Src: /src/cpython/Modules/_interpretersmodule.c:794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:796,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_interpretersmodule.c:799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 803
    functionName: get_summary
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - get_whence
    - _PyInterpreterState_GetIDObject
    - Py_DECREF
    - PyLong_FromLong
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_summary(PyInterpreterState *interp)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_interpretersmodule.c:811,1
    - Dst: init_named_config
      Src: /src/cpython/Modules/_interpretersmodule.c:818,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_interpretersmodule.c:822,1
    - Dst: _PyInterpreterConfig_UpdateFromDict
      Src: /src/cpython/Modules/_interpretersmodule.c:823,1
    - Dst: _PyInterpreterConfig_AsDict
      Src: /src/cpython/Modules/_interpretersmodule.c:828,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Modules/_interpretersmodule.c:833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:834,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 836
    functionName: interp_new_config
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - init_named_config
    - _PyInterpreterConfig_UpdateFromDict
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyArg_ParseTuple
    - _PyInterpreterConfig_AsDict
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_new_config(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: config_from_object
      Src: /src/cpython/Modules/_interpretersmodule.c:874,1
    - Dst: _PyXI_NewInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:880,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:883,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:885,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_interpretersmodule.c:886,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:889,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:889,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Modules/_interpretersmodule.c:891,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:893,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Modules/_interpretersmodule.c:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - configobj
    - reqrefs
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (_PyInterpreterState_IsReady(interp))
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 903
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 903
    functionName: _interpreters_create_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - _PyInterpreterState_IsReady
    - _PyInterpreterState_GetIDObject
    - _PyXI_NewInterpreter
    - PyErr_GetRaisedException
    - _PyXI_EndInterpreter
    - PyErr_SetString
    - config_from_object
    - _PyInterpreterState_RequireIDRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_create_impl(PyObject *module, PyObject *configobj, int reqrefs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:925,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:931,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:936,1
    - Dst: is_running_main
      Src: /src/cpython/Modules/_interpretersmodule.c:944,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:945,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - id
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 953
    functionName: _interpreters_destroy_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_interp
    - _PyXI_EndInterpreter
    - PyErr_SetString
    - resolve_interp
    - PyErr_Format
    - is_running_main
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_destroy_impl(PyObject *module, PyObject *id, int restricted)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpretersmodule.c:968,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Modules/_interpretersmodule.c:973,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:975,1
    - Dst: get_summary
      Src: /src/cpython/Modules/_interpretersmodule.c:976,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:978,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_interpretersmodule.c:983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:986,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Modules/_interpretersmodule.c:990,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - module
    - reqready
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 994
    functionName: _interpreters_list_all_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyInterpreterState_IsReady
    - Py_DECREF
    - PyList_Insert
    - PyInterpreterState_Next
    - PyInterpreterState_Head
    - get_summary
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_list_all_impl(PyObject *module, int reqready)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1007,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1011,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:1011,1
    - Dst: get_summary
      Src: /src/cpython/Modules/_interpretersmodule.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_IsReady(interp))
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1013
      start: 1003
    functionDepth: 3
    functionLinenumber: 1003
    functionLinenumberEnd: 1013
    functionName: _interpreters_get_current_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_interp
    - _PyInterpreterState_IsReady
    - get_summary
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_get_current_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Modules/_interpretersmodule.c:1026,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1027,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:1027,1
    - Dst: get_summary
      Src: /src/cpython/Modules/_interpretersmodule.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_IsReady(interp))
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1029
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1029
    functionName: _interpreters_get_main_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - _PyInterpreterState_IsReady
    - get_summary
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_get_main_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1050,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_interpretersmodule.c:1056,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:1061,1
    - Dst: _PyXI_NewSession
      Src: /src/cpython/Modules/_interpretersmodule.c:1066,1
    - Dst: _PyXI_Enter
      Src: /src/cpython/Modules/_interpretersmodule.c:1072,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:1073,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1078,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1078,1
    - Dst: _PyXI_Exit
      Src: /src/cpython/Modules/_interpretersmodule.c:1079,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:1080,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1081,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:1085,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - module
    - id
    - updates
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (res == 0)
      pos:
        line_end: 1080
        line_start: 1080
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1091
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1091
    functionName: _interpreters_set___main___attrs_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Occurred
    - PyErr_SetString
    - resolve_interp
    - _PyXI_NewSession
    - _PyXI_Enter
    - _PyXI_FreeSession
    - _PyXI_Exit
    - PyDict_Size
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpreters_set___main___attrs_impl(PyObject *module,
      PyObject *id,\n                                      PyObject *updates, int
      restricted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1097,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1099,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1099,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - runres
    argTypes:
    - struct run_result*
    assertStmts:
    - condition: (runres->result == NULL)
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1104
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1104
    functionName: _handle_script_error
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _handle_script_error(struct run_result *runres)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:1135,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1138,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1146,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:1147,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1152,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:1154,1
    - Dst: _handle_script_error
      Src: /src/cpython/Modules/_interpretersmodule.c:1156,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - module
    - id
    - code
    - shared
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (runres.result == NULL)
      pos:
        line_end: 1157
        line_start: 1157
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1160
      start: 1130
    functionDepth: 3
    functionLinenumber: 1130
    functionLinenumberEnd: 1160
    functionName: _interpreters_exec_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - resolve_interp
    - unwrap_not_shareable
    - _PyXIData_Release
    - _PyThreadState_GET
    - _PyCode_GetScriptXIData
    - _run_in_interpreter
    - _handle_script_error
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpreters_exec_impl(PyObject *module, PyObject *id,
      PyObject *code,\n                        PyObject *shared, int restricted)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:1182,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1185,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1190,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1190,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_interpretersmodule.c:1191,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1196,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:1197,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1202,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:1204,1
    - Dst: _handle_script_error
      Src: /src/cpython/Modules/_interpretersmodule.c:1206,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - module
    - id
    - script
    - shared
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (runres.result == NULL)
      pos:
        line_end: 1207
        line_start: 1207
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1211
      start: 1175
    functionDepth: 3
    functionLinenumber: 1175
    functionLinenumberEnd: 1211
    functionName: _interpreters_run_string_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyFunction_Check
    - resolve_interp
    - unwrap_not_shareable
    - _PyXIData_Release
    - _PyThreadState_GET
    - _PyCode_GetScriptXIData
    - _run_in_interpreter
    - _handle_script_error
    - _PyArg_BadArgument
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpreters_run_string_impl(PyObject *module, PyObject
      *id,\n                              PyObject *script, PyObject *shared,\n                              int
      restricted)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:1235,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1238,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1246,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_interpretersmodule.c:1247,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1249,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_interpretersmodule.c:1253,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1258,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:1259,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1264,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:1266,1
    - Dst: _handle_script_error
      Src: /src/cpython/Modules/_interpretersmodule.c:1268,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - module
    - id
    - func
    - shared
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (runres.result == NULL)
      pos:
        line_end: 1269
        line_start: 1269
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1273
      start: 1229
    functionDepth: 3
    functionLinenumber: 1229
    functionLinenumberEnd: 1273
    functionName: _interpreters_run_func_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyFunction_Check
    - PyFunction_GET_CODE
    - resolve_interp
    - unwrap_not_shareable
    - _PyXIData_Release
    - _PyThreadState_GET
    - _PyCode_GetScriptXIData
    - _run_in_interpreter
    - _handle_script_error
    - _PyArg_BadArgument
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpreters_run_func_impl(PyObject *module, PyObject
      *id, PyObject *func,\n                            PyObject *shared, int restricted)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:1296,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1299,1
    - Dst: _interp_call_pack
      Src: /src/cpython/Modules/_interpretersmodule.c:1305,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1311,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1313,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1313,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1316,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1316,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1318,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpretersmodule.c:1319,1
    - Dst: _interp_call_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:1324,1
    - Dst: _run_result_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:1325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - module
    - id
    - callable
    - args
    - kwargs
    - preserve_exc
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 1312
        line_start: 1312
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1315
        line_start: 1315
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (runres.result == NULL || runres.excinfo == NULL)
      pos:
        line_end: 1317
        line_start: 1317
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1327
      start: 1290
    functionDepth: 3
    functionLinenumber: 1290
    functionLinenumberEnd: 1327
    functionName: _interpreters_call_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _run_result_clear
    - Py_BuildValue
    - _interp_call_clear
    - _interp_call_pack
    - resolve_interp
    - _PyThreadState_GET
    - _run_in_interpreter
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpreters_call_impl(PyObject *module, PyObject *id,
      PyObject *callable,\n                        PyObject *args, PyObject *kwargs,
      int preserve_exc,\n                        int restricted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:1342,1
    - Dst: _PyObject_CheckXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1343,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1348
    functionName: _interpreters_is_shareable_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyErr_Clear
    - _PyObject_CheckXIData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_is_shareable_impl(PyObject *module, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1366,1
    - Dst: is_running_main
      Src: /src/cpython/Modules/_interpretersmodule.c:1371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - id
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1360
    functionDepth: 3
    functionLinenumber: 1360
    functionLinenumberEnd: 1375
    functionName: _interpreters_is_running_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - is_running_main
    - resolve_interp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_is_running_impl(PyObject *module, PyObject *id, int restricted)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1397,1
    - Dst: _PyInterpreterConfig_InitFromState
      Src: /src/cpython/Modules/_interpretersmodule.c:1403,1
    - Dst: _PyInterpreterConfig_AsDict
      Src: /src/cpython/Modules/_interpretersmodule.c:1406,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Modules/_interpretersmodule.c:1411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:1412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - id
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1387
    functionDepth: 3
    functionLinenumber: 1387
    functionLinenumberEnd: 1414
    functionName: _interpreters_get_config_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterConfig_InitFromState
    - Py_DECREF
    - resolve_interp
    - _PyInterpreterConfig_AsDict
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_get_config_impl(PyObject *module, PyObject *id, int restricted)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: look_up_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1428,1
    - Dst: get_whence
      Src: /src/cpython/Modules/_interpretersmodule.c:1433,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_interpretersmodule.c:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1424
    functionDepth: 2
    functionLinenumber: 1424
    functionLinenumberEnd: 1435
    functionName: _interpreters_whence_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - get_whence
    - look_up_interp
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_whence_impl(PyObject *module, PyObject *id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1454,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Modules/_interpretersmodule.c:1461,1
    - Dst: _PyInterpreterState_IDIncref
      Src: /src/cpython/Modules/_interpretersmodule.c:1463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - module
    - id
    - implieslink
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1447
    functionDepth: 3
    functionLinenumber: 1447
    functionLinenumberEnd: 1466
    functionName: _interpreters_incref_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_RequireIDRef
    - _PyInterpreterState_IDIncref
    - resolve_interp
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpreters_incref_impl(PyObject *module, PyObject *id,
      int implieslink,\n                          int restricted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1483,1
    - Dst: _PyInterpreterState_IDDecref
      Src: /src/cpython/Modules/_interpretersmodule.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - id
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1477
    functionDepth: 3
    functionLinenumber: 1477
    functionLinenumberEnd: 1491
    functionName: _interpreters_decref_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_IDDecref
    - resolve_interp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_decref_impl(PyObject *module, PyObject *id, int restricted)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:1511,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1516,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:1517,1
    - Dst: _PyXI_NewExcInfo
      Src: /src/cpython/Modules/_interpretersmodule.c:1522,1
    - Dst: _PyXI_ExcInfoAsObject
      Src: /src/cpython/Modules/_interpretersmodule.c:1526,1
    - Dst: _PyXI_FormatExcInfo
      Src: /src/cpython/Modules/_interpretersmodule.c:1531,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpretersmodule.c:1533,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_interpretersmodule.c:1536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:1537,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpretersmodule.c:1539,1
    - Dst: _PyXI_FreeExcInfo
      Src: /src/cpython/Modules/_interpretersmodule.c:1544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1546,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:1547,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_interpretersmodule.c:1550,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - module
    - exc_arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1554
    functionName: _interpreters_capture_exception_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - _PyXI_FreeExcInfo
    - _PyXI_NewExcInfo
    - PyObject_SetAttrString
    - _PyXI_FormatExcInfo
    - PyErr_Format
    - _PyXI_ExcInfoAsObject
    - Py_CLEAR
    - PyExceptionInstance_Check
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_capture_exception_impl(PyObject *module, PyObject *exc_arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:1597,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1598,1
    - Dst: ADD_WHENCE
      Src: /src/cpython/Modules/_interpretersmodule.c:1606,1
    - Dst: ADD_WHENCE
      Src: /src/cpython/Modules/_interpretersmodule.c:1607,1
    - Dst: ADD_WHENCE
      Src: /src/cpython/Modules/_interpretersmodule.c:1608,1
    - Dst: ADD_WHENCE
      Src: /src/cpython/Modules/_interpretersmodule.c:1609,1
    - Dst: ADD_WHENCE
      Src: /src/cpython/Modules/_interpretersmodule.c:1610,1
    - Dst: ADD_WHENCE
      Src: /src/cpython/Modules/_interpretersmodule.c:1611,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpretersmodule.c:1615,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpretersmodule.c:1618,1
    - Dst: _PyXIData_GetNotShareableErrorType
      Src: /src/cpython/Modules/_interpretersmodule.c:1621,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpretersmodule.c:1622,1
    - Dst: register_memoryview_xid
      Src: /src/cpython/Modules/_interpretersmodule.c:1626,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1594
    functionDepth: 3
    functionLinenumber: 1594
    functionLinenumberEnd: 1634
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_module_state
    - _PyXIData_GetNotShareableErrorType
    - _PyThreadState_GET
    - ADD_WHENCE
    - register_memoryview_xid
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1606
    functionName: ADD_WHENCE
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_WHENCE(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1646,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1647,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1646
        line_start: 1646
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1649
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1649
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - traverse_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1654,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1655,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1654
        line_start: 1654
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1657
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1657
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 6
    functionsReached:
    - clear_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1662,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1663,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1662
        line_start: 1662
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1665
      start: 1659
    functionDepth: 0
    functionLinenumber: 1659
    functionLinenumberEnd: 1665
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - clear_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_interpretersmodule.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1683
    functionName: MODINIT_FUNC_NAME
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC MODINIT_FUNC_NAME(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_opcode.c:45,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_opcode.c:46,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_opcode.c:61,1
    - Dst: PyCompile_OpcodeStackEffectWithJump
      Src: /src/cpython/Modules/_opcode.c:65,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_opcode.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - module
    - opcode
    - oparg
    - jump
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 71
    functionName: _opcode_stack_effect_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyCompile_OpcodeStackEffectWithJump
    - PyErr_SetString
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: "int _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject
      *oparg,\n                          PyObject *jump)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: _opcode_is_valid_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    linkageType: ''
    returnType: int
    signature: int _opcode_is_valid_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:102,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Modules/_opcode.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: _opcode_has_arg_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    - OPCODE_HAS_ARG
    linkageType: ''
    returnType: int
    signature: int _opcode_has_arg_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:118,1
    - Dst: OPCODE_HAS_CONST
      Src: /src/cpython/Modules/_opcode.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: _opcode_has_const_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    - OPCODE_HAS_CONST
    linkageType: ''
    returnType: int
    signature: int _opcode_has_const_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:134,1
    - Dst: OPCODE_HAS_NAME
      Src: /src/cpython/Modules/_opcode.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: _opcode_has_name_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    - OPCODE_HAS_NAME
    linkageType: ''
    returnType: int
    signature: int _opcode_has_name_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:150,1
    - Dst: OPCODE_HAS_JUMP
      Src: /src/cpython/Modules/_opcode.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _opcode_has_jump_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    - OPCODE_HAS_JUMP
    linkageType: ''
    returnType: int
    signature: int _opcode_has_jump_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:171,1
    - Dst: OPCODE_HAS_FREE
      Src: /src/cpython/Modules/_opcode.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: _opcode_has_free_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    - OPCODE_HAS_FREE
    linkageType: ''
    returnType: int
    signature: int _opcode_has_free_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:187,1
    - Dst: OPCODE_HAS_LOCAL
      Src: /src/cpython/Modules/_opcode.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: _opcode_has_local_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    - OPCODE_HAS_LOCAL
    linkageType: ''
    returnType: int
    signature: int _opcode_has_local_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Modules/_opcode.c:203,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Modules/_opcode.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: _opcode_has_exc_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    - IS_BLOCK_PUSH_OPCODE
    linkageType: ''
    returnType: int
    signature: int _opcode_has_exc_impl(PyObject *module, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetSpecializationStats
      Src: /src/cpython/Modules/_opcode.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: _opcode_get_specialization_stats_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - _Py_GetSpecializationStats
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_specialization_stats_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_opcode.c:237,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:251,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:252,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:253,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:254,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:255,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:256,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:257,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:258,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:259,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:260,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:261,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:262,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:263,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:264,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:265,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:266,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:267,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:268,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:269,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:270,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:271,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:272,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:273,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:274,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:275,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:276,1
    - Dst: ADD_NB_OP
      Src: /src/cpython/Modules/_opcode.c:277,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_opcode.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_opcode.c:283,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_opcode.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 291
    functionName: _opcode_get_nb_ops_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_GET_ITEM
    - Py_DECREF
    - ADD_NB_OP
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_nb_ops_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NUM
    - ','
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: ADD_NB_OP
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_NB_OP(NUM, STR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_opcode.c:304,1
    - Dst: _PyCompile_GetUnaryIntrinsicName
      Src: /src/cpython/Modules/_opcode.c:309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_opcode.c:311,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_opcode.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: _opcode_get_intrinsic1_descs_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyCompile_GetUnaryIntrinsicName
    - Py_DECREF
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_intrinsic1_descs_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_opcode.c:331,1
    - Dst: _PyCompile_GetBinaryIntrinsicName
      Src: /src/cpython/Modules/_opcode.c:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_opcode.c:338,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_opcode.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 344
    functionName: _opcode_get_intrinsic2_descs_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_SET_ITEM
    - _PyCompile_GetBinaryIntrinsicName
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_intrinsic2_descs_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_opcode.c:357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_opcode.c:364,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_opcode.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 370
    functionName: _opcode_get_special_method_names_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_special_method_names_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_opcode.c:386,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_opcode.c:387,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_opcode.c:389,1
    - Dst: _Py_GetExecutor
      Src: /src/cpython/Modules/_opcode.c:393,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_opcode.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - code
    - offset
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 399
    functionName: _opcode_get_executor_impl
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - _Py_GetExecutor
    - PyCode_Check
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_executor_impl(PyObject *module, PyObject *code, int offset)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_opcode.c:423,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_opcode.c:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: _opcode_exec
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int _opcode_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_opcode.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: PyInit__opcode
    functionSourceFile: /src/cpython/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__opcode(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_gitversion
      Src: /src/cpython/Modules/getbuildinfo.c:51,1
    - Dst: _Py_gitidentifier
      Src: /src/cpython/Modules/getbuildinfo.c:53,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/getbuildinfo.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: Py_GetBuildInfo
    functionSourceFile: /src/cpython/Modules/getbuildinfo.c
    functionUses: 0
    functionsReached:
    - _Py_gitidentifier
    - _Py_gitversion
    - PyOS_snprintf
    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: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: _Py_gitversion
    functionSourceFile: /src/cpython/Modules/getbuildinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_gitversion(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/getbuildinfo.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: _Py_gitidentifier
    functionSourceFile: /src/cpython/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: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: doubletime
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: doubletime(TV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/resource.c:85,1
    - Dst: assert
      Src: /src/cpython/Modules/resource.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/cpython/Modules/resource.c
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: get_resource_state
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: resourcemodulestate
    signature: 'resourcemodulestate *

      get_resource_state(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getrusage
      Src: /src/cpython/Modules/resource.c:108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:110,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/resource.c:114,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/resource.c:118,1
    - Dst: get_resource_state
      Src: /src/cpython/Modules/resource.c:119,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:123,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/resource.c:124,1
    - Dst: doubletime
      Src: /src/cpython/Modules/resource.c:124,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:125,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/resource.c:126,1
    - Dst: doubletime
      Src: /src/cpython/Modules/resource.c:126,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:127,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:127,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:128,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:128,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:129,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:129,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:130,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:130,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:131,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:131,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:132,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:132,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:133,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:133,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:134,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:134,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:135,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:135,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:136,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:136,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:137,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:137,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:138,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:138,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:139,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:139,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/resource.c:140,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/resource.c:140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/resource.c:142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/resource.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - module
    - who
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 148
    functionName: resource_getrusage_impl
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_SetItem
    - doubletime
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - get_resource_state
    - getrusage
    - PyErr_SetFromErrno
    - PyLong_FromLong
    - PyFloat_FromDouble
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrusage_impl(PyObject *module, int who)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/resource.c:154,1
    - Dst: PyLong_IsNegative
      Src: /src/cpython/Modules/resource.c:158,1
    - Dst: assert
      Src: /src/cpython/Modules/resource.c:159,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/resource.c:160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/resource.c:163,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/resource.c:168,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:180,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - obj
    - out
    argTypes:
    - PyObject*
    - rlim_t*
    assertStmts:
    - condition: (neg >= 0)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Modules/resource.c
    constantsTouched: []
    func_position:
      end: 185
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 185
    functionName: py2rlim
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_DECREF
    - PyErr_SetString
    - PyLong_AsNativeBytes
    - PyErr_WarnEx
    - PyLong_IsNegative
    - assert
    linkageType: ''
    returnType: int
    signature: int py2rlim(PyObject *obj, rlim_t *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/resource.c:191,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/resource.c:196,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:197,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/resource.c:201,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/resource.c:202,1
    - Dst: py2rlim
      Src: /src/cpython/Modules/resource.c:203,1
    - Dst: py2rlim
      Src: /src/cpython/Modules/resource.c:204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/resource.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/resource.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - limits
    - rl_out
    argTypes:
    - PyObject*
    - struct rlimit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 215
    functionName: py2rlimit
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Tuple
    - PyErr_SetString
    - PyTuple_Size
    - PyTuple_GetItem
    - py2rlim
    linkageType: ''
    returnType: int
    signature: int py2rlimit(PyObject *limits, struct rlimit *rl_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedNativeBytes
      Src: /src/cpython/Modules/resource.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - rlim_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: rlim2py
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedNativeBytes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlim2py(rlim_t value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlim2py
      Src: /src/cpython/Modules/resource.c:226,1
    - Dst: rlim2py
      Src: /src/cpython/Modules/resource.c:230,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/resource.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rl
    argTypes:
    - struct rlimit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: rlimit2py
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - rlim2py
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlimit2py(struct rlimit rl)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:249,1
    - Dst: getrlimit
      Src: /src/cpython/Modules/resource.c:254,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/resource.c:255,1
    - Dst: rlimit2py
      Src: /src/cpython/Modules/resource.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - resource
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: resource_getrlimit_impl
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - PyErr_SetString
    - PyErr_SetFromErrno
    - rlimit2py
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrlimit_impl(PyObject *module, int resource)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:277,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/resource.c:282,1
    - Dst: py2rlimit
      Src: /src/cpython/Modules/resource.c:287,1
    - Dst: setrlimit
      Src: /src/cpython/Modules/resource.c:291,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:296,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/resource.c:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - resource
    - limits
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 303
    functionName: resource_setrlimit_impl
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - py2rlimit
    - PyErr_SetFromErrno
    - setrlimit
    - 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/cpython/Modules/resource.c:325,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/resource.c:330,1
    - Dst: py2rlimit
      Src: /src/cpython/Modules/resource.c:336,1
    - Dst: prlimit
      Src: /src/cpython/Modules/resource.c:339,1
    - Dst: prlimit
      Src: /src/cpython/Modules/resource.c:342,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/resource.c:347,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/resource.c:350,1
    - Dst: rlimit2py
      Src: /src/cpython/Modules/resource.c:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - module
    - pid
    - resource
    - limits
    argTypes:
    - PyObject*
    - pid_t
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 355
    functionName: resource_prlimit_impl
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - rlimit2py
    - py2rlimit
    - PyErr_SetFromErrno
    - PySys_Audit
    - prlimit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nresource_prlimit_impl(PyObject *module, pid_t pid, int
      resource,\n                      PyObject *limits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/cpython/Modules/resource.c:368,1
    - Dst: sysconf
      Src: /src/cpython/Modules/resource.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: resource_getpagesize_impl
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - getpagesize
    - sysconf
    linkageType: ''
    returnType: int
    signature: int resource_getpagesize_impl(PyObject *module)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_resource_state
      Src: /src/cpython/Modules/resource.c:395,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/resource.c:404,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/resource.c:408,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/resource.c:412,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:418,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:422,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:426,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:430,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:434,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:438,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:442,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:446,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:450,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:454,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:458,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:462,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:466,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:471,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:475,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:479,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:483,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:487,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:492,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:496,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:500,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:504,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:510,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:514,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:518,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:522,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:526,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:530,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:534,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/resource.c:538,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/resource.c:541,1
    - Dst: rlim2py
      Src: /src/cpython/Modules/resource.c:541,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/resource.c:546,1
    - Dst: rlim2py
      Src: /src/cpython/Modules/resource.c:546,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/resource.c:552,1
    - Dst: rlim2py
      Src: /src/cpython/Modules/resource.c:552,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 560
    functionName: resource_exec
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_resource_state
    - PyModule_AddObjectRef
    - ADD_INT
    - PyStructSequence_NewType
    - PyModule_Add
    - rlim2py
    linkageType: ''
    returnType: int
    signature: int resource_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(module, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/resource.c:571,1
    - Dst: get_resource_state
      Src: /src/cpython/Modules/resource.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 573
    functionName: resourcemodule_traverse
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - get_resource_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int resourcemodule_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/resource.c:577,1
    - Dst: get_resource_state
      Src: /src/cpython/Modules/resource.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 579
    functionName: resourcemodule_clear
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - get_resource_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int resourcemodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resourcemodule_clear
      Src: /src/cpython/Modules/resource.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: resourcemodule_free
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - resourcemodule_clear
    linkageType: ''
    returnType: void
    signature: void resourcemodule_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/resource.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: PyInit_resource
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_resource(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/socketmodule.c:352,1
    - Dst: GetVersionEx
      Src: /src/cpython/Modules/socketmodule.c:358,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:359,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:364,1
    - Dst: VER_SET_CONDITION
      Src: /src/cpython/Modules/socketmodule.c:371,1
    - Dst: VER_SET_CONDITION
      Src: /src/cpython/Modules/socketmodule.c:372,1
    - Dst: VER_SET_CONDITION
      Src: /src/cpython/Modules/socketmodule.c:373,1
    - Dst: VerifyVersionInfo
      Src: /src/cpython/Modules/socketmodule.c:381,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/socketmodule.c:397,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 404
    functionName: remove_unusable_flags
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - VER_SET_CONDITION
    - GetVersionEx
    - memset
    - PyDict_PopString
    - PyErr_SetFromWindowsErr
    - PyModule_GetDict
    - VerifyVersionInfo
    linkageType: ''
    returnType: int
    signature: int 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: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: _BT_L2_MEMB
    functionSourceFile: /src/cpython/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: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: _BT_RC_MEMB
    functionSourceFile: /src/cpython/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: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: _BT_HCI_MEMB
    functionSourceFile: /src/cpython/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: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: _BT_SCO_MEMB
    functionSourceFile: /src/cpython/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: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: _BT_L2_MEMB
    functionSourceFile: /src/cpython/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: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: _BT_RC_MEMB
    functionSourceFile: /src/cpython/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: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: _BT_HCI_MEMB
    functionSourceFile: /src/cpython/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: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: _BT_SCO_MEMB
    functionSourceFile: /src/cpython/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: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: _BT_L2_MEMB
    functionSourceFile: /src/cpython/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: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: _BT_RC_MEMB
    functionSourceFile: /src/cpython/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: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: _BT_HCI_MEMB
    functionSourceFile: /src/cpython/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: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: _BT_SCO_MEMB
    functionSourceFile: /src/cpython/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: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: _BT_RC_MEMB
    functionSourceFile: /src/cpython/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: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: SAS2SA
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAS2SA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:568,1
    - Dst: _Py_atomic_store_long_relaxed
      Src: /src/cpython/Modules/socketmodule.c:570,1
    - Dst: _Py_atomic_store_llong_relaxed
      Src: /src/cpython/Modules/socketmodule.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - PySocketSockObject*
    - SOCKET_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: set_sock_fd
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_long_relaxed
    - _Py_atomic_store_llong_relaxed
    - _Py_atomic_store_int_relaxed
    linkageType: ''
    returnType: void
    signature: void set_sock_fd(PySocketSockObject *s, SOCKET_T fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:582,1
    - Dst: _Py_atomic_load_long_relaxed
      Src: /src/cpython/Modules/socketmodule.c:584,1
    - Dst: _Py_atomic_load_llong_relaxed
      Src: /src/cpython/Modules/socketmodule.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - PySocketSockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 590
    functionName: get_sock_fd
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_long_relaxed
    - _Py_atomic_load_llong_relaxed
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: SOCKET_T
    signature: SOCKET_T get_sock_fd(PySocketSockObject *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 593
    functionName: _PySocketSockObject_CAST
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PySocketSockObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/socketmodule.c:597,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 600
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 600
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 35
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: socket_state
    signature: 'socket_state *

      get_module_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/socketmodule.c:607,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:608,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: find_module_state_by_def
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: socket_state
    signature: 'socket_state *

      find_module_state_by_def(PyTypeObject *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: 631
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 631
    functionName: UNSIGNED_INT_CONVERTER
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSIGNED_INT_CONVERTER(NAME, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 656
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 682
    functionName: IS_SELECTABLE
    functionSourceFile: /src/cpython/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: 687
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 687
    functionName: IS_SELECTABLE
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SELECTABLE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: select_error
    functionSourceFile: /src/cpython/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: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: CHECK_ERRNO
    functionSourceFile: /src/cpython/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: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: CHECK_ERRNO
    functionSourceFile: /src/cpython/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: 710
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 710
    functionName: SET_SOCK_ERROR
    functionSourceFile: /src/cpython/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: 715
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 715
    functionName: SET_SOCK_ERROR
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SOCK_ERROR(err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/socketmodule.c:726,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:731,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 735
    functionName: set_error
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 5
    functionsReached:
    - WSAGetLastError
    - PyErr_SetExcFromWindowsErr
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:745,1
    - Dst: hstrerror
      Src: /src/cpython/Modules/socketmodule.c:745,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:747,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/socketmodule.c:750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - h_error
    argTypes:
    - socket_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 755
    functionName: set_herror
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - hstrerror
    - Py_BuildValue
    - Py_DECREF
    - PyErr_SetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_herror(socket_state *state, int h_error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:768,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:772,1
    - Dst: gai_strerror
      Src: /src/cpython/Modules/socketmodule.c:772,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:774,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/socketmodule.c:777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - error
    argTypes:
    - socket_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 782
    functionName: set_gaierror
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyErr_SetObject
    - gai_strerror
    - set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_gaierror(socket_state *state, int error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:803,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:803,1
    - Dst: fcntl
      Src: /src/cpython/Modules/socketmodule.c:806,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:806,1
    - Dst: fcntl
      Src: /src/cpython/Modules/socketmodule.c:814,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:814,1
    - Dst: ioctlsocket
      Src: /src/cpython/Modules/socketmodule.c:819,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:819,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:830,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:832,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/socketmodule.c:832,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - s
    - block
    argTypes:
    - PySocketSockObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 834
    functionName: internal_setblocking
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - ioctlsocket
    - fcntl
    - WSAGetLastError
    - PyErr_SetFromErrno
    - ioctl
    - get_sock_fd
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int internal_setblocking(PySocketSockObject *s, int block)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Modules/socketmodule.c:853,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:856,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:859,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:865,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/socketmodule.c:876,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:891,1
    - Dst: poll
      Src: /src/cpython/Modules/socketmodule.c:894,1
    - Dst: _PyTime_AsTimeval_clamp
      Src: /src/cpython/Modules/socketmodule.c:898,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/socketmodule.c:904,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/socketmodule.c:905,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:905,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/socketmodule.c:906,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/socketmodule.c:912,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:912,1
    - Dst: select
      Src: /src/cpython/Modules/socketmodule.c:918,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/socketmodule.c:918,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:918,1
    - Dst: select
      Src: /src/cpython/Modules/socketmodule.c:921,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/socketmodule.c:921,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:921,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - s
    - writing
    - interval
    - connect
    argTypes:
    - PySocketSockObject*
    - int
    - PyTime_t
    - int
    assertStmts:
    - condition: (!(connect && !writing))
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (INT_MIN <= ms && ms <= INT_MAX)
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 931
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 931
    functionName: internal_select
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsMilliseconds
    - select
    - _PyTime_AsTimeval_clamp
    - FD_ZERO
    - FD_SET
    - poll
    - Py_SAFE_DOWNCAST
    - get_sock_fd
    - _Py_AssertHoldsTstate
    - assert
    linkageType: ''
    returnType: int
    signature: "int internal_select(PySocketSockObject *s, int writing, PyTime_t interval,\n
      \               int connect)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Modules/socketmodule.c:967,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/socketmodule.c:980,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/socketmodule.c:984,1
    - Dst: internal_select
      Src: /src/cpython/Modules/socketmodule.c:989,1
    - Dst: internal_select
      Src: /src/cpython/Modules/socketmodule.c:996,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1003,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:1005,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:1016,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1024,1
    - Dst: sock_func
      Src: /src/cpython/Modules/socketmodule.c:1035,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1048,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:1052,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1062,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1062,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:1075,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 6
    argNames:
    - s
    - writing
    - data
    - connect
    - err
    - timeout
    argTypes:
    - PySocketSockObject*
    - int
    - void*
    - int
    - int*
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 1079
    functionName: sock_call_ex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyDeadline_Init
    - PyErr_SetString
    - _PyDeadline_Get
    - PyErr_CheckSignals
    - sock_func
    - PySocketSockObject*::errorhandler
    - _Py_AssertHoldsTstate
    - CHECK_ERRNO
    - internal_select
    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: 1043
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1043
    functionName: if
    functionSourceFile: /src/cpython/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/cpython/Modules/socketmodule.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - writing
    - data
    argTypes:
    - PySocketSockObject*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1081
    functionDepth: 3
    functionLinenumber: 1081
    functionLinenumberEnd: 1088
    functionName: sock_call
    functionSourceFile: /src/cpython/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: set_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:1097,1
    - Dst: _Py_atomic_load_int64_relaxed
      Src: /src/cpython/Modules/socketmodule.c:1124,1
    - Dst: internal_setblocking
      Src: /src/cpython/Modules/socketmodule.c:1126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - state
    - s
    - fd
    - family
    - type
    - proto
    argTypes:
    - socket_state*
    - PySocketSockObject*
    - SOCKET_T
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1133
    functionName: init_sockobject
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - internal_setblocking
    - _Py_atomic_load_int64_relaxed
    - set_sock_fd
    linkageType: ''
    returnType: int
    signature: "int init_sockobject(socket_state *state, PySocketSockObject *s,\n
      \               SOCKET_T fd, int family, int type, int proto)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/socketmodule.c:1147,1
    - Dst: init_sockobject
      Src: /src/cpython/Modules/socketmodule.c:1151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - state
    - fd
    - family
    - type
    - proto
    argTypes:
    - socket_state*
    - SOCKET_T
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1156
    functionName: new_sockobject
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - init_sockobject
    linkageType: ''
    returnType: PySocketSockObject
    signature: "PySocketSockObject *\nnew_sockobject(socket_state *state, SOCKET_T
      fd, int family, int type,\n               int proto)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1181,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1184,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1189,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:1197,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1210,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1211,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1216,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1217,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:1223,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1224,1
    - Dst: strcmp
      Src: /src/cpython/Modules/socketmodule.c:1229,1
    - Dst: strcmp
      Src: /src/cpython/Modules/socketmodule.c:1230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1233,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1238,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1252,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/socketmodule.c:1253,1
    - Dst: strchr
      Src: /src/cpython/Modules/socketmodule.c:1265,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1267,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/socketmodule.c:1268,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1281,1
    - Dst: inet_addr
      Src: /src/cpython/Modules/socketmodule.c:1282,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1293,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1296,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1302,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:1308,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:1313,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1314,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1323,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 93
    argCount: 5
    argNames:
    - state
    - name
    - addr_ret
    - addr_ret_size
    - af
    argTypes:
    - socket_state*
    - char*
    - struct sockaddr*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1326
    functionName: setipaddr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    - getaddrinfo
    - freeaddrinfo
    - PyErr_SetString
    - memset
    - inet_pton
    - strcmp
    - memcpy
    - inet_addr
    - strchr
    linkageType: ''
    returnType: int
    signature: "int setipaddr(socket_state *state, const char *name, struct sockaddr
      *addr_ret,\n          size_t addr_ret_size, int af)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1199
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1305
    functionDepth: 2
    functionLinenumber: 1305
    functionLinenumberEnd: 1310
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/cpython/Modules/socketmodule.c:1335,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:1336,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1340
    functionName: make_ipv4_addr
    functionSourceFile: /src/cpython/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/cpython/Modules/socketmodule.c:1349,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:1350,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:1353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1354
    functionName: make_ipv6_addr
    functionSourceFile: /src/cpython/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/cpython/Modules/socketmodule.c:1369,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - name
    - bdaddr
    argTypes:
    - char*
    - bdaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1394
    functionName: setbdaddr
    functionSourceFile: /src/cpython/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: PyUnicode_FromFormat
      Src: /src/cpython/Modules/socketmodule.c:1411,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/socketmodule.c:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bdaddr
    argTypes:
    - bdaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1419
    functionName: makebdaddr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makebdaddr(bdaddr_t *bdaddr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1426
    functionName: unicode_fsdecode
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fsdecode(void *arg)'
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: make_ipv4_addr
      Src: /src/cpython/Modules/socketmodule.c:1447,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1450,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:1450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1451,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:1463,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:1469,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1478,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1486,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1494,1
    - Dst: make_ipv6_addr
      Src: /src/cpython/Modules/socketmodule.c:1502,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1505,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:1507,1
    - Dst: ntohl
      Src: /src/cpython/Modules/socketmodule.c:1508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1510,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1524,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1524,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1528,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1529,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1531,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1532,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1533,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1537,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1538,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1540,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1541,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1545,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1549,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1559,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1559,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1562,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1565,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1576,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1577,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1577,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1580,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1581,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1582,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1586,1
    - Dst: strnlen
      Src: /src/cpython/Modules/socketmodule.c:1587,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1587,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:1588,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1590,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1590,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1599,1
    - Dst: _BT_SCO_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1604,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:1619,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1622,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:1624,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1637,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1644,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1651,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1658,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:1674,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1682,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1691,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1700,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1713,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1717,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1727,1
    - Dst: strnlen
      Src: /src/cpython/Modules/socketmodule.c:1729,1
    - Dst: strnlen
      Src: /src/cpython/Modules/socketmodule.c:1732,1
    - Dst: UuidToStringW
      Src: /src/cpython/Modules/socketmodule.c:1745,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:1747,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/socketmodule.c:1750,1
    - Dst: RpcStringFreeW
      Src: /src/cpython/Modules/socketmodule.c:1751,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:1752,1
    - Dst: UuidToStringW
      Src: /src/cpython/Modules/socketmodule.c:1754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1756,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:1757,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/socketmodule.c:1760,1
    - Dst: RpcStringFreeW
      Src: /src/cpython/Modules/socketmodule.c:1761,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:1762,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1764,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1773,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 147
    argCount: 4
    argNames:
    - sockfd
    - addr
    - addrlen
    - proto
    argTypes:
    - SOCKET_T
    - struct sockaddr*
    - size_t
    - int
    assertStmts:
    - condition: (res == RPC_S_OK)
      pos:
        line_end: 1751
        line_start: 1751
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (res == RPC_S_OK)
      pos:
        line_end: 1761
        line_start: 1761
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 1779
      start: 1434
    functionDepth: 2
    functionLinenumber: 1434
    functionLinenumberEnd: 1779
    functionName: makesockaddr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - PyErr_SetString
    - PyErr_SetFromWindowsErr
    - _BT_SCO_MEMB
    - ntohl
    - _BT_L2_MEMB
    - PyUnicode_FromStringAndSize
    - make_ipv6_addr
    - makebdaddr
    - strnlen
    - _BT_RC_MEMB
    - RpcStringFreeW
    - Py_BuildValue
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyUnicode_FromWideChar
    - ntohs
    - make_ipv4_addr
    - _BT_HCI_MEMB
    - UuidToStringW
    - ioctl
    - assert
    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/cpython/Modules/socketmodule.c:1792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct maybe_idna*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1793
    functionName: idna_cleanup
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void idna_cleanup(struct maybe_idna *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: idna_cleanup
      Src: /src/cpython/Modules/socketmodule.c:1802,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:1807,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/socketmodule.c:1808,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/socketmodule.c:1809,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/socketmodule.c:1811,1
    - Dst: PyByteArray_AsString
      Src: /src/cpython/Modules/socketmodule.c:1812,1
    - Dst: PyByteArray_Size
      Src: /src/cpython/Modules/socketmodule.c:1813,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:1815,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Modules/socketmodule.c:1816,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/socketmodule.c:1817,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:1818,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/socketmodule.c:1821,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1823,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:1826,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:1826,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:1828,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:1829,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1833,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1834,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:1837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:1838,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1839,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyBytes_Check(obj2))
      pos:
        line_end: 1825
        line_start: 1825
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 1843
      start: 1795
    functionDepth: 2
    functionLinenumber: 1795
    functionLinenumberEnd: 1843
    functionName: idna_converter
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - Py_CLEAR
    - PyByteArray_AsString
    - PyBytes_Size
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_IS_COMPACT_ASCII
    - PyBytes_AsString
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyUnicode_GET_LENGTH
    - idna_cleanup
    - PyUnicode_AsEncodedString
    - PyByteArray_Check
    - PyUnicode_DATA
    - assert
    - PyByteArray_Size
    linkageType: ''
    returnType: int
    signature: int idna_converter(PyObject *obj, void *arg)
  - BBCount: 110
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:1864,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:1865,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/socketmodule.c:1869,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:1870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1871,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:1874,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1877,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1896,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:1906,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:1910,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1911,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1921,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:1922,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1923,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1926,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:1929,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1949,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:1950,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1951,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1955,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:1958,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1973,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:1974,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1975,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1979,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:1982,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2009,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2010,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2013,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2016,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:2021,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:2021,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/socketmodule.c:2022,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2023,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2029,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:2030,1
    - Dst: idna_cleanup
      Src: /src/cpython/Modules/socketmodule.c:2032,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2036,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:2042,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2054,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2058,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2061,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:2067,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:2067,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/socketmodule.c:2068,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2069,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2075,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:2076,1
    - Dst: idna_cleanup
      Src: /src/cpython/Modules/socketmodule.c:2078,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2082,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2088,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:2094,1
    - Dst: htonl
      Src: /src/cpython/Modules/socketmodule.c:2095,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2112,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2113,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2118,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2122,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2126,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2129,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2131,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2136,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2137,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2139,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2139,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2150,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2151,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2159,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2161,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2165,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2167,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2167,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2177,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2178,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:2182,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2183,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2187,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2188,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2192,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2193,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2196,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2197,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:2202,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2202,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2203,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2207,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2207,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2208,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2210,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2210,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2224,1
    - Dst: _BT_SCO_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2225,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:2227,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2228,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:2232,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2233,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2238,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2242,1
    - Dst: _BT_SCO_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2242,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2250,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2267,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2268,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2271,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2277,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:2283,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:2283,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/socketmodule.c:2284,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2285,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2290,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2292,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2292,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2293,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2294,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2298,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2300,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2304,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2307,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2311,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:2313,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:2318,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2324,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2336,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2339,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2343,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2352,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2370,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2398,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2400,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2401,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2403,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2406,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2414,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2419,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2419,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2421,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2421,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2423,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2437,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2451,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2453,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2459,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2464,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2464,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2466,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2466,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2468,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2484,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2499,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2501,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2508,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2513,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2513,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2515,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2515,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2517,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2534,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2539,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2552,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:2556,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2560,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2565,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2568,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2571,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2573,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2575,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2575,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2576,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2583,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2585,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2596,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2608,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2611,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2614,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2617,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:2627,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2628,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2631,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:2632,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2633,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2636,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2653,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2656,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2657,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2659,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2662,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/socketmodule.c:2669,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2671,1
    - Dst: UuidFromStringW
      Src: /src/cpython/Modules/socketmodule.c:2676,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:2677,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2679,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/socketmodule.c:2685,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2687,1
    - Dst: UuidFromStringW
      Src: /src/cpython/Modules/socketmodule.c:2692,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:2693,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2695,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2705,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2716,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 509
    argCount: 5
    argNames:
    - s
    - args
    - addrbuf
    - len_ret
    - caller
    argTypes:
    - PySocketSockObject*
    - PyObject*
    - sock_addr_t*
    - int*
    - char*
    assertStmts:
    - condition: (path.len >= 0)
      pos:
        line_end: 1873
        line_start: 1873
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2282
        line_start: 2282
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2066
        line_start: 2066
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2020
        line_start: 2020
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 2720
      start: 1850
    functionDepth: 4
    functionLinenumber: 1850
    functionLinenumberEnd: 2720
    functionName: getsockaddrarg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyErr_SetString
    - PyBytes_Check
    - _BT_SCO_MEMB
    - setipaddr
    - PyBytes_GET_SIZE
    - _BT_L2_MEMB
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_INCREF
    - strncpy
    - PyErr_Occurred
    - _BT_RC_MEMB
    - PyErr_Format
    - PyUnicode_Check
    - PySocketSockObject*::errorhandler
    - htonl
    - PyArg_Parse
    - Py_DECREF
    - PyTuple_Check
    - PyUnicode_EncodeFSDefault
    - PyErr_ExceptionMatches
    - memcpy
    - PyIndex_Check
    - get_sock_fd
    - Py_TYPE
    - PyBytes_AS_STRING
    - idna_cleanup
    - PyArg_ParseTuple
    - UuidFromStringW
    - memset
    - setbdaddr
    - _BT_HCI_MEMB
    - htons
    - PyBuffer_Release
    - ioctl
    - assert
    linkageType: ''
    returnType: int
    signature: "int getsockaddrarg(PySocketSockObject *s, PyObject *args,\n               sock_addr_t
      *addrbuf, int *len_ret, const char *caller)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2810,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2851,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 80
    argCount: 2
    argNames:
    - s
    - len_ret
    argTypes:
    - PySocketSockObject*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2728
    functionDepth: 1
    functionLinenumber: 2728
    functionLinenumberEnd: 2878
    functionName: getsockaddrlen
    functionSourceFile: /src/cpython/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/cpython/Modules/socketmodule.c:2897,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:2899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - length
    - result
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2892
    functionDepth: 0
    functionLinenumber: 2892
    functionLinenumberEnd: 2904
    functionName: get_CMSG_LEN
    functionSourceFile: /src/cpython/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/cpython/Modules/socketmodule.c:2916,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:2918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - length
    - result
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2909
    functionDepth: 0
    functionLinenumber: 2909
    functionLinenumberEnd: 2923
    functionName: get_CMSG_SPACE
    functionSourceFile: /src/cpython/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: 2965
      start: 2929
    functionDepth: 0
    functionLinenumber: 2929
    functionLinenumberEnd: 2965
    functionName: cmsg_min_space
    functionSourceFile: /src/cpython/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/cpython/Modules/socketmodule.c:2977,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: 2984
      start: 2971
    functionDepth: 0
    functionLinenumber: 2971
    functionLinenumberEnd: 2984
    functionName: get_cmsg_data_space
    functionSourceFile: /src/cpython/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/cpython/Modules/socketmodule.c:2998,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:2998,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:2999,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:3001,1
    - Dst: get_cmsg_data_space
      Src: /src/cpython/Modules/socketmodule.c:3002,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: 3010
      start: 2993
    functionDepth: 1
    functionLinenumber: 2993
    functionLinenumberEnd: 3010
    functionName: get_cmsg_data_len
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_cmsg_data_space
    - CMSG_LEN
    - cmsg_min_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/cpython/Modules/socketmodule.c:3026,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3039,1
    - Dst: accept4
      Src: /src/cpython/Modules/socketmodule.c:3040,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3040,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3042,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3044,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3047,1
    - Dst: accept
      Src: /src/cpython/Modules/socketmodule.c:3048,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3048,1
    - Dst: accept
      Src: /src/cpython/Modules/socketmodule.c:3050,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3050,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3022
    functionDepth: 1
    functionLinenumber: 3022
    functionLinenumberEnd: 3058
    functionName: sock_accept_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - accept4
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_store_int_relaxed
    - SAS2SA
    - get_sock_fd
    - accept
    linkageType: ''
    returnType: int
    signature: int sock_accept_impl(PySocketSockObject *s, void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3065,1
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:3075,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:3077,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:3079,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:3080,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:3086,1
    - Dst: SetHandleInformation
      Src: /src/cpython/Modules/socketmodule.c:3095,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:3096,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3097,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3104,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/socketmodule.c:3107,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3108,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:3114,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3116,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:3120,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3120,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3120,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/socketmodule.c:3125,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:3128,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:3129,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3062
    functionDepth: 4
    functionLinenumber: 3062
    functionLinenumberEnd: 3131
    functionName: sock_accept
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - IS_SELECTABLE
    - Py_XDECREF
    - PyLong_FromSocket_t
    - SetHandleInformation
    - select_error
    - _Py_atomic_load_int_relaxed
    - SOCKETCLOSE
    - memset
    - getsockaddrlen
    - sock_call
    - PyErr_SetFromWindowsErr
    - makesockaddr
    - SAS2SA
    - get_sock_fd
    - PyTuple_Pack
    - _PySocketSockObject_CAST
    - _Py_set_inheritable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_accept(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/socketmodule.c:3152,1
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3156,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/socketmodule.c:3157,1
    - Dst: internal_setblocking
      Src: /src/cpython/Modules/socketmodule.c:3158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3147
    functionDepth: 2
    functionLinenumber: 3147
    functionLinenumberEnd: 3162
    functionName: sock_setblocking
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - internal_setblocking
    - PyObject_IsTrue
    - _PyTime_FromSeconds
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_setblocking(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3175
    functionDepth: 1
    functionLinenumber: 3175
    functionLinenumberEnd: 3185
    functionName: sock_getblocking
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getblocking(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/socketmodule.c:3205,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/socketmodule.c:3209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3214,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/socketmodule.c:3219,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/socketmodule.c:3222,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - timeout
    - timeout_obj
    argTypes:
    - PyTime_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3193
    functionDepth: 1
    functionLinenumber: 3193
    functionLinenumberEnd: 3232
    functionName: socket_parse_timeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsMilliseconds
    - PyErr_SetString
    - _PyTime_FromSeconds
    - _PyTime_AsTimeval
    - _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/cpython/Modules/socketmodule.c:3245,1
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3248,1
    - Dst: internal_setblocking
      Src: /src/cpython/Modules/socketmodule.c:3273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3240
    functionDepth: 2
    functionLinenumber: 3240
    functionLinenumberEnd: 3277
    functionName: sock_settimeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - internal_setblocking
    - socket_parse_timeout
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_settimeout(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3292,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/socketmodule.c:3297,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/socketmodule.c:3298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3300
      start: 3289
    functionDepth: 1
    functionLinenumber: 3289
    functionLinenumberEnd: 3300
    functionName: sock_gettimeout_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_gettimeout_impl(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock_gettimeout_impl
      Src: /src/cpython/Modules/socketmodule.c:3305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3306
      start: 3302
    functionDepth: 2
    functionLinenumber: 3302
    functionLinenumberEnd: 3306
    functionName: sock_gettimeout_method
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_gettimeout_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_gettimeout_method(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock_gettimeout_impl
      Src: /src/cpython/Modules/socketmodule.c:3311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3312
      start: 3308
    functionDepth: 2
    functionLinenumber: 3308
    functionLinenumberEnd: 3312
    functionName: sock_gettimeout_getter
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_gettimeout_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_gettimeout_getter(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3333,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3344,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/socketmodule.c:3350,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3352,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3358,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:3366,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3367,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:3373,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3377,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3377,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:3384,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:3385,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:3391,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3391,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3399,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3399,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:3406,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3407,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3407,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/socketmodule.c:3413,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:3414,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:3419,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3420,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3425,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3425,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3428,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3428,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:3430,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3434,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3441,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (sizeof(socklen_t) >= sizeof(unsigned int))
      pos:
        line_end: 3405
        line_start: 3405
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 3445
      start: 3330
    functionDepth: 1
    functionLinenumber: 3330
    functionLinenumberEnd: 3445
    functionName: sock_setsockopt
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyArg_ParseTuple
    - WSAIoctl
    - PyTuple_Size
    - PyObject_CheckBuffer
    - PySocketSockObject*::errorhandler
    - setsockopt
    - PyBuffer_Release
    - PyErr_Format
    - PyIndex_Check
    - get_sock_fd
    - _PySocketSockObject_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_setsockopt(PyObject *self, PyObject *args)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3465,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3475,1
    - Dst: getsockopt
      Src: /src/cpython/Modules/socketmodule.c:3484,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3484,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3487,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:3488,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:3493,1
    - Dst: getsockopt
      Src: /src/cpython/Modules/socketmodule.c:3497,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3497,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3500,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:3501,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3505,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3511,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:3515,1
    - Dst: getsockopt
      Src: /src/cpython/Modules/socketmodule.c:3518,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3518,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:3519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:3521,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3522,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/socketmodule.c:3524,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3462
    functionDepth: 1
    functionLinenumber: 3462
    functionLinenumberEnd: 3526
    functionName: sock_getsockopt
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyLong_FromUnsignedLong
    - PyLong_FromLong
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - PyBytes_AS_STRING
    - _PySocketSockObject_CAST
    - getsockopt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getsockopt(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3542,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:3548,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:3552,1
    - Dst: bind
      Src: /src/cpython/Modules/socketmodule.c:3557,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3557,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3557,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - addro
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3562
      start: 3539
    functionDepth: 5
    functionLinenumber: 3539
    functionLinenumberEnd: 3562
    functionName: sock_bind
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - bind
    - SAS2SA
    - getsockaddrarg
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_bind(PyObject *self, PyObject *addro)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3593,1
    - Dst: set_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3595,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3602,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - PySocketSockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3611
      start: 3586
    functionDepth: 1
    functionLinenumber: 3586
    functionLinenumberEnd: 3611
    functionName: _socket_socket_close_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - SOCKETCLOSE
    - set_sock_fd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_socket_close_impl(PySocketSockObject *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3616,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3617,1
    - Dst: set_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3618,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:3619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3620
      start: 3613
    functionDepth: 1
    functionLinenumber: 3613
    functionLinenumberEnd: 3620
    functionName: sock_detach
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - PyLong_FromSocket_t
    - _PySocketSockObject_CAST
    - set_sock_fd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_detach(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/cpython/Modules/socketmodule.c:3636,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3636,1
    - Dst: SET_SOCK_ERROR
      Src: /src/cpython/Modules/socketmodule.c:3645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(data)
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3649
      start: 3630
    functionDepth: 1
    functionLinenumber: 3630
    functionLinenumberEnd: 3649
    functionName: sock_connect_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - SET_SOCK_ERROR
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int sock_connect_impl(PySocketSockObject *s, void* Py_UNUSED(data))
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/cpython/Modules/socketmodule.c:3670,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3670,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:3682,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:3683,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:3696,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:3700,1
    - Dst: SET_SOCK_ERROR
      Src: /src/cpython/Modules/socketmodule.c:3706,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3707,1
    - Dst: sock_call_ex
      Src: /src/cpython/Modules/socketmodule.c:3716,1
    - Dst: sock_call_ex
      Src: /src/cpython/Modules/socketmodule.c:3722,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: 3727
      start: 3663
    functionDepth: 3
    functionLinenumber: 3663
    functionLinenumberEnd: 3727
    functionName: internal_connect
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - IS_SELECTABLE
    - PyErr_CheckSignals
    - sock_call_ex
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - SET_SOCK_ERROR
    - CHECK_ERRNO
    - connect
    linkageType: ''
    returnType: int
    signature: "int internal_connect(PySocketSockObject *s, struct sockaddr *addr,
      int addrlen,\n                 int raise)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3734,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:3740,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:3744,1
    - Dst: internal_connect
      Src: /src/cpython/Modules/socketmodule.c:3748,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3748,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:3750,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:3750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - addro
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3749
        line_start: 3749
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 3755
      start: 3731
    functionDepth: 5
    functionLinenumber: 3731
    functionLinenumberEnd: 3755
    functionName: sock_connect
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Occurred
    - SAS2SA
    - getsockaddrarg
    - PySys_Audit
    - _PySocketSockObject_CAST
    - internal_connect
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_connect(PyObject *self, PyObject *addro)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3769,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:3775,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:3779,1
    - Dst: internal_connect
      Src: /src/cpython/Modules/socketmodule.c:3783,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3783,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:3784,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:3788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - addro
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3789
      start: 3766
    functionDepth: 5
    functionLinenumber: 3766
    functionLinenumberEnd: 3789
    functionName: sock_connect_ex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - SAS2SA
    - getsockaddrarg
    - PyLong_FromLong
    - PySys_Audit
    - _PySocketSockObject_CAST
    - internal_connect
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_connect_ex(PyObject *self, PyObject *addro)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3804,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:3805,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3806
      start: 3801
    functionDepth: 1
    functionLinenumber: 3801
    functionLinenumberEnd: 3806
    functionName: sock_fileno
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - PyLong_FromSocket_t
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3820,1
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:3826,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:3828,1
    - Dst: getsockname
      Src: /src/cpython/Modules/socketmodule.c:3830,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3830,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3830,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3833,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:3834,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3834,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3836
      start: 3817
    functionDepth: 3
    functionLinenumber: 3817
    functionLinenumberEnd: 3836
    functionName: sock_getsockname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - memset
    - getsockaddrlen
    - makesockaddr
    - SAS2SA
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - getsockname
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getsockname(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3854,1
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:3860,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:3862,1
    - Dst: getpeername
      Src: /src/cpython/Modules/socketmodule.c:3864,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3864,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3864,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3867,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:3868,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3868,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3870
      start: 3851
    functionDepth: 3
    functionLinenumber: 3851
    functionLinenumberEnd: 3870
    functionName: sock_getpeername
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - getpeername
    - memset
    - getsockaddrlen
    - makesockaddr
    - SAS2SA
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getpeername(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3887,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/socketmodule.c:3890,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3893,1
    - Dst: listen
      Src: /src/cpython/Modules/socketmodule.c:3901,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3901,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3906
      start: 3884
    functionDepth: 1
    functionLinenumber: 3884
    functionLinenumberEnd: 3906
    functionName: sock_listen
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - PyArg_ParseTuple
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - listen
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_listen(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/cpython/Modules/socketmodule.c:3932,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3932,1
    - Dst: recv
      Src: /src/cpython/Modules/socketmodule.c:3934,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3937
      start: 3924
    functionDepth: 1
    functionLinenumber: 3924
    functionLinenumberEnd: 3937
    functionName: sock_recv_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - recv
    linkageType: ''
    returnType: int
    signature: int sock_recv_impl(PySocketSockObject *s, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:3954,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:3955,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:3966,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: 3970
      start: 3949
    functionDepth: 4
    functionLinenumber: 3949
    functionLinenumberEnd: 3970
    functionName: sock_recv_guts
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - IS_SELECTABLE
    - sock_call
    - select_error
    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: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3978,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3984,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3988,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:3994,1
    - Dst: sock_recv_guts
      Src: /src/cpython/Modules/socketmodule.c:3999,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:3999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:4003,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/socketmodule.c:4009,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 3975
    functionDepth: 5
    functionLinenumber: 3975
    functionLinenumberEnd: 4013
    functionName: sock_recv
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_recv_guts
    - Py_DECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recv(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4030,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/socketmodule.c:4038,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4045,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4046,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4057,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4058,1
    - Dst: sock_recv_guts
      Src: /src/cpython/Modules/socketmodule.c:4064,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4067,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4071,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:4074,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4075
      start: 4026
    functionDepth: 5
    functionLinenumber: 4026
    functionLinenumberEnd: 4075
    functionName: sock_recv_into
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_recv_guts
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyArg_ParseTupleAndKeywords
    - PyBuffer_Release
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recv_into(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:4101,1
    - Dst: recvfrom
      Src: /src/cpython/Modules/socketmodule.c:4106,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4106,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4107,1
    - Dst: recvfrom
      Src: /src/cpython/Modules/socketmodule.c:4109,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4109,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4113
      start: 4096
    functionDepth: 1
    functionLinenumber: 4096
    functionLinenumberEnd: 4113
    functionName: sock_recvfrom_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - SAS2SA
    - memset
    - recvfrom
    linkageType: ''
    returnType: int
    signature: int sock_recvfrom_impl(PySocketSockObject *s, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:4137,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4140,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4141,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4150,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:4153,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4153,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4153,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: 4159
      start: 4127
    functionDepth: 4
    functionLinenumber: 4127
    functionLinenumberEnd: 4159
    functionName: sock_recvfrom_guts
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - IS_SELECTABLE
    - select_error
    - makesockaddr
    - getsockaddrlen
    - sock_call
    - SAS2SA
    - get_sock_fd
    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: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4166,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4174,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4178,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:4183,1
    - Dst: sock_recvfrom_guts
      Src: /src/cpython/Modules/socketmodule.c:4187,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:4187,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/socketmodule.c:4196,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/socketmodule.c:4201,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4204,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4205,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4207
      start: 4163
    functionDepth: 5
    functionLinenumber: 4163
    functionLinenumberEnd: 4207
    functionName: sock_recvfrom
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - sock_recvfrom_guts
    - PyTuple_Pack
    - PyBytes_AS_STRING
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvfrom(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4221,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/socketmodule.c:4230,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4238,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4239,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4247,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4248,1
    - Dst: sock_recvfrom_guts
      Src: /src/cpython/Modules/socketmodule.c:4253,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4255,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4257,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4261,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:4264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4265
      start: 4217
    functionDepth: 5
    functionLinenumber: 4217
    functionLinenumberEnd: 4265
    functionName: sock_recvfrom_into
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - PyErr_SetString
    - sock_recvfrom_guts
    - PyArg_ParseTupleAndKeywords
    - PyBuffer_Release
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvfrom_into(PyObject *self, PyObject *args, PyObject* kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recvmsg
      Src: /src/cpython/Modules/socketmodule.c:4287,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4282
    functionDepth: 1
    functionLinenumber: 4282
    functionLinenumberEnd: 4289
    functionName: sock_recvmsg_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - recvmsg
    linkageType: ''
    returnType: int
    signature: int sock_recvmsg_impl(PySocketSockObject *s, void *data)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:4322,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:4324,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4325,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4328,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/socketmodule.c:4332,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4333,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4336,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4337,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4341,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4350,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:4354,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/cpython/Modules/socketmodule.c:4358,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:4359,1
    - Dst: get_cmsg_data_len
      Src: /src/cpython/Modules/socketmodule.c:4363,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/socketmodule.c:4365,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4373,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:4377,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:4377,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:4379,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:4383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:4384,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:4392,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:4396,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4396,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4396,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4404,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:4405,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/cpython/Modules/socketmodule.c:4411,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:4412,1
    - Dst: get_cmsg_data_len
      Src: /src/cpython/Modules/socketmodule.c:4413,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:4422,1
    - Dst: close
      Src: /src/cpython/Modules/socketmodule.c:4424,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: 4431
      start: 4301
    functionDepth: 4
    functionLinenumber: 4301
    functionLinenumberEnd: 4431
    functionName: sock_recvmsg_guts
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - PyMem_Free
    - select_error
    - PyList_Append
    - getsockaddrlen
    - Py_BuildValue
    - Py_DECREF
    - get_cmsg_data_len
    - close
    - PyBytes_FromStringAndSize
    - sock_call
    - get_sock_fd
    - PyErr_WarnEx
    - PyErr_NoMemory
    - PyMem_Malloc
    - IS_SELECTABLE
    - CMSG_NXTHDR
    - memset
    - makesockaddr
    - SAS2SA
    - CMSG_FIRSTHDR
    - CMSG_DATA
    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/cpython/Modules/socketmodule.c:4439,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/socketmodule.c:4440,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/socketmodule.c:4441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - received
    - data
    argTypes:
    - ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4442
      start: 4434
    functionDepth: 1
    functionLinenumber: 4434
    functionLinenumberEnd: 4442
    functionName: makeval_recvmsg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makeval_recvmsg(ssize_t received, void *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4449,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4460,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:4463,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:4465,1
    - Dst: sock_recvmsg_guts
      Src: /src/cpython/Modules/socketmodule.c:4471,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4475
      start: 4446
    functionDepth: 5
    functionLinenumber: 4446
    functionLinenumberEnd: 4475
    functionName: sock_recvmsg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - _PySocketSockObject_CAST
    - sock_recvmsg_guts
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvmsg(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:4510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - received
    - data
    argTypes:
    - ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4511
      start: 4507
    functionDepth: 1
    functionLinenumber: 4507
    functionLinenumberEnd: 4511
    functionName: makeval_recvmsg_into
    functionSourceFile: /src/cpython/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: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4518,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4527,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/socketmodule.c:4531,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:4535,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4537,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4543,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4544,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4545,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:4549,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/socketmodule.c:4549,1
    - Dst: sock_recvmsg_guts
      Src: /src/cpython/Modules/socketmodule.c:4558,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4562,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:4563,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:4564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:4565,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4515
    functionDepth: 5
    functionLinenumber: 4515
    functionLinenumberEnd: 4567
    functionName: sock_recvmsg_into
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - PySequence_Fast
    - PyErr_NoMemory
    - PyMem_Free
    - PyMem_New
    - PySequence_Fast_GET_ITEM
    - PyBuffer_Release
    - _PySocketSockObject_CAST
    - sock_recvmsg_guts
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvmsg_into(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/cpython/Modules/socketmodule.c:4619,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4619,1
    - Dst: send
      Src: /src/cpython/Modules/socketmodule.c:4621,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4624
      start: 4611
    functionDepth: 1
    functionLinenumber: 4611
    functionLinenumberEnd: 4624
    functionName: sock_send_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - send
    - get_sock_fd
    linkageType: ''
    returnType: int
    signature: int sock_send_impl(PySocketSockObject *s, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4647,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4648,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4653,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:4657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - pbuf
    - flags
    argTypes:
    - PySocketSockObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4658
      start: 4640
    functionDepth: 4
    functionLinenumber: 4640
    functionLinenumberEnd: 4658
    functionName: _socket_socket_send_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - IS_SELECTABLE
    - PyLong_FromSsize_t
    - sock_call
    - select_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_socket_send_impl(PySocketSockObject *s, Py_buffer *pbuf, int flags)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4693,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4694,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/socketmodule.c:4701,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/socketmodule.c:4705,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4709,1
    - Dst: sock_call_ex
      Src: /src/cpython/Modules/socketmodule.c:4717,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:4720,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:4728,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/socketmodule.c:4732,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - s
    - pbuf
    - flags
    argTypes:
    - PySocketSockObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 4719
        line_start: 4719
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 4736
      start: 4675
    functionDepth: 3
    functionLinenumber: 4675
    functionLinenumberEnd: 4736
    functionName: _socket_socket_sendall_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - IS_SELECTABLE
    - _PyDeadline_Init
    - select_error
    - PyErr_SetString
    - _PyDeadline_Get
    - Py_NewRef
    - PyErr_CheckSignals
    - sock_call_ex
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_socket_socket_sendall_impl(PySocketSockObject *s, Py_buffer
      *pbuf,\n                            int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sendto
      Src: /src/cpython/Modules/socketmodule.c:4757,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4757,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4758,1
    - Dst: sendto
      Src: /src/cpython/Modules/socketmodule.c:4760,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4760,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4764
      start: 4749
    functionDepth: 1
    functionLinenumber: 4749
    functionLinenumberEnd: 4764
    functionName: sock_sendto_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sendto
    - get_sock_fd
    - SAS2SA
    linkageType: ''
    returnType: int
    signature: int sock_sendto_impl(PySocketSockObject *s, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4771,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/socketmodule.c:4781,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4784,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4789,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:4795,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4801,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4802,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4803,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:4806,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4807,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:4811,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4820,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4821,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4824,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:4826,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4827
      start: 4768
    functionDepth: 5
    functionLinenumber: 4768
    functionLinenumberEnd: 4827
    functionName: sock_sendto
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - IS_SELECTABLE
    - select_error
    - PyArg_ParseTuple
    - PyTuple_Size
    - PyLong_FromSsize_t
    - sock_call
    - getsockaddrarg
    - PyBuffer_Release
    - PyErr_Format
    - PySys_Audit
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_sendto(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/socketmodule.c:4858,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:4865,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4867,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4873,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4875,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4880,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4882,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/socketmodule.c:4887,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/socketmodule.c:4887,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4897,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: 4899
      start: 4846
    functionDepth: 1
    functionLinenumber: 4846
    functionLinenumberEnd: 4899
    functionName: sock_sendmsg_iovec
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - PyErr_SetString
    - PySequence_Fast
    - PyObject_GetBuffer
    - PyMem_New
    - PySequence_Fast_GET_ITEM
    - PyErr_NoMemory
    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/cpython/Modules/socketmodule.c:4906,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4901
    functionDepth: 1
    functionLinenumber: 4901
    functionLinenumberEnd: 4908
    functionName: sock_sendmsg_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - sendmsg
    linkageType: ''
    returnType: int
    signature: int sock_sendmsg_impl(PySocketSockObject *s, void *data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5125,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5153,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/socketmodule.c:5158,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:5166,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/socketmodule.c:5170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5174,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/socketmodule.c:5180,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:5181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5185,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5191,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5193,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5196,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/socketmodule.c:5199,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:5201,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:5204,1
    - Dst: sock_sendmsg_iovec
      Src: /src/cpython/Modules/socketmodule.c:5212,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/cpython/Modules/socketmodule.c:5218,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5220,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:5226,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:5227,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:5232,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5234,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5240,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:5241,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:5243,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:5248,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5250,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:5256,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:5257,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:5263,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:5267,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5270,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:5272,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5274,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:5276,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5278,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 108
    argCount: 3
    argNames:
    - s
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5280
      start: 5122
    functionDepth: 4
    functionLinenumber: 5122
    functionLinenumberEnd: 5280
    functionName: sock_sendmsg_afalg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_SetString
    - sock_sendmsg_iovec
    - PyMem_Free
    - PyErr_Occurred
    - _PySocketSockObject_CAST
    - PyArg_ParseTupleAndKeywords
    - sock_call
    - memcpy
    - CMSG_LEN
    - PyErr_NoMemory
    - PyMem_Malloc
    - CMSG_NXTHDR
    - PyLong_FromSsize_t
    - memset
    - CMSG_SPACE
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_sendmsg_afalg(PyObject *s, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5295,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/socketmodule.c:5300,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:5301,1
    - Dst: shutdown
      Src: /src/cpython/Modules/socketmodule.c:5304,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5304,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:5307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5309
      start: 5292
    functionDepth: 1
    functionLinenumber: 5292
    functionLinenumberEnd: 5309
    functionName: sock_shutdown
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - shutdown
    - PySocketSockObject*::errorhandler
    - get_sock_fd
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_shutdown(PyObject *self, PyObject *arg)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5322,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5328,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5334,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:5336,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5336,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5338,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:5340,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5343,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:5346,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5346,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5348,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:5350,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5354,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:5356,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5356,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5358,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:5360,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:5363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5366
      start: 5319
    functionDepth: 1
    functionLinenumber: 5319
    functionLinenumberEnd: 5366
    functionName: sock_ioctl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - WSAIoctl
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    - PyErr_Format
    - get_sock_fd
    - set_error
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_ioctl(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5380,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5386,1
    - Dst: WSADuplicateSocketW
      Src: /src/cpython/Modules/socketmodule.c:5390,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5390,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5393,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:5394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5395
      start: 5377
    functionDepth: 1
    functionLinenumber: 5377
    functionLinenumberEnd: 5395
    functionName: sock_share
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - WSADuplicateSocketW
    - get_sock_fd
    - set_error
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_share(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:5544,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:5544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5546
      start: 5541
    functionDepth: 1
    functionLinenumber: 5541
    functionLinenumberEnd: 5546
    functionName: sock_traverse
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int sock_traverse(PyObject *s, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/socketmodule.c:5551,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:5554,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/socketmodule.c:5555,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/socketmodule.c:5556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:5557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5558
      start: 5548
    functionDepth: 1
    functionLinenumber: 5548
    functionLinenumberEnd: 5558
    functionName: sock_dealloc
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFinalizerFromDealloc
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void sock_dealloc(PyObject *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5564,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5568,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5572,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5576,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5583,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/socketmodule.c:5584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5589
      start: 5561
    functionDepth: 1
    functionLinenumber: 5561
    functionLinenumberEnd: 5589
    functionName: sock_repr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - get_sock_fd
    - PyErr_SetString
    - _PySocketSockObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type::type
      Src: /src/cpython/Modules/socketmodule.c:5599,1
    - Dst: tp_alloc
      Src: /src/cpython/Modules/socketmodule.c:5599,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/socketmodule.c:5602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5609
      start: 5594
    functionDepth: 1
    functionLinenumber: 5594
    functionLinenumberEnd: 5609
    functionName: sock_new
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - tp_alloc
    - type::type
    - _PyTime_FromSeconds
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5623
      start: 5618
    functionDepth: 0
    functionLinenumber: 5618
    functionLinenumberEnd: 5623
    functionName: socket
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int socket(int domain, int type, int protocol)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:5874,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:5883,1
    - Dst: GetComputerNameExW
      Src: /src/cpython/Modules/socketmodule.c:5887,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/socketmodule.c:5888,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/socketmodule.c:5890,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:5891,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/socketmodule.c:5894,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:5898,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:5900,1
    - Dst: GetComputerNameExW
      Src: /src/cpython/Modules/socketmodule.c:5903,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:5907,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5908,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/socketmodule.c:5912,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5913,1
    - Dst: gethostname
      Src: /src/cpython/Modules/socketmodule.c:5919,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5922,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:5924,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5871
    functionDepth: 1
    functionLinenumber: 5871
    functionLinenumberEnd: 5926
    functionName: socket_gethostname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - gethostname
    - GetComputerNameExW
    - Py_GetConstant
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyMem_Free
    - PyUnicode_FromWideChar
    - PyMem_New
    - Py_ARRAY_LENGTH
    - PySys_Audit
    - set_error
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostname(PyObject *self, PyObject *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5952,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/socketmodule.c:5953,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5954,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:5960,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/socketmodule.c:5964,1
    - Dst: sethostname
      Src: /src/cpython/Modules/socketmodule.c:5966,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:5967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:5970,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5972,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5974
      start: 5939
    functionDepth: 1
    functionLinenumber: 5939
    functionLinenumberEnd: 5974
    functionName: socket_sethostname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - PyObject_GetBuffer
    - sethostname
    - PyBuffer_Release
    - PySys_Audit
    - PyErr_Clear
    - set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_sethostname(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5988,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:5990,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:5993,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:5994,1
    - Dst: make_ipv4_addr
      Src: /src/cpython/Modules/socketmodule.c:5999,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:6001,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6003
      start: 5981
    functionDepth: 4
    functionLinenumber: 5981
    functionLinenumberEnd: 6003
    functionName: socket_gethostbyname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyArg_ParseTuple
    - make_ipv4_addr
    - setipaddr
    - PySys_Audit
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyname(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeMBCS
      Src: /src/cpython/Modules/socketmodule.c:6019,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:6019,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6024
      start: 6013
    functionDepth: 1
    functionLinenumber: 6013
    functionLinenumberEnd: 6024
    functionName: sock_decode_hostname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeMBCS
    - PyUnicode_FromString
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_decode_hostname(const char *name)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: set_herror
      Src: /src/cpython/Modules/socketmodule.c:6041,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:6048,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:6068,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:6071,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6080,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6084,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:6088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:6089,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6100,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6110,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6115,1
    - Dst: make_ipv4_addr
      Src: /src/cpython/Modules/socketmodule.c:6116,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6119,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6127,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6132,1
    - Dst: make_ipv6_addr
      Src: /src/cpython/Modules/socketmodule.c:6133,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6142,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:6150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:6151,1
    - Dst: sock_decode_hostname
      Src: /src/cpython/Modules/socketmodule.c:6157,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:6160,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:6163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:6164,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 92
    argCount: 5
    argNames:
    - state
    - h
    - addr
    - alen
    - af
    argTypes:
    - socket_state*
    - struct hostent*
    - struct sockaddr*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6028
    functionDepth: 2
    functionLinenumber: 6028
    functionLinenumberEnd: 6166
    functionName: gethost_common
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - set_herror
    - Py_DECREF
    - Py_BuildValue
    - PyList_Append
    - make_ipv4_addr
    - PyErr_SetString
    - memset
    - sock_decode_hostname
    - make_ipv6_addr
    - PyErr_SetFromErrno
    - memcpy
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ngethost_common(socket_state *state, struct hostent *h,
      struct sockaddr *addr,\n               size_t alen, int af)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6195,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6197,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:6200,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:6201,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6201,1
    - Dst: gethostbyname_r
      Src: /src/cpython/Modules/socketmodule.c:6207,1
    - Dst: gethostbyname_r
      Src: /src/cpython/Modules/socketmodule.c:6210,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6212,1
    - Dst: gethostbyname_r
      Src: /src/cpython/Modules/socketmodule.c:6213,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/socketmodule.c:6218,1
    - Dst: gethostbyname
      Src: /src/cpython/Modules/socketmodule.c:6222,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6230,1
    - Dst: gethost_common
      Src: /src/cpython/Modules/socketmodule.c:6231,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6231,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/socketmodule.c:6234,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:6237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6239
      start: 6173
    functionDepth: 4
    functionLinenumber: 6173
    functionLinenumberEnd: 6239
    functionName: socket_gethostbyname_ex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyArg_ParseTuple
    - memset
    - SAS2SA
    - PyThread_release_lock
    - PyMem_Free
    - setipaddr
    - PyThread_acquire_lock
    - PySys_Audit
    - gethost_common
    - gethostbyname_r
    - gethostbyname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyname_ex(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6256,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6281,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6283,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:6287,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:6288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6306,1
    - Dst: gethostbyaddr_r
      Src: /src/cpython/Modules/socketmodule.c:6312,1
    - Dst: gethostbyaddr_r
      Src: /src/cpython/Modules/socketmodule.c:6316,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6319,1
    - Dst: gethostbyaddr_r
      Src: /src/cpython/Modules/socketmodule.c:6320,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/socketmodule.c:6325,1
    - Dst: gethostbyaddr
      Src: /src/cpython/Modules/socketmodule.c:6329,1
    - Dst: gethost_common
      Src: /src/cpython/Modules/socketmodule.c:6333,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6333,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/socketmodule.c:6335,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:6338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6340
      start: 6252
    functionDepth: 4
    functionLinenumber: 6252
    functionLinenumberEnd: 6340
    functionName: socket_gethostbyaddr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyArg_ParseTuple
    - PyErr_SetString
    - memset
    - SAS2SA
    - PyThread_release_lock
    - gethostbyaddr_r
    - gethostbyaddr
    - setipaddr
    - PyThread_acquire_lock
    - PySys_Audit
    - gethost_common
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyaddr(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6360,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6363,1
    - Dst: getservbyname
      Src: /src/cpython/Modules/socketmodule.c:6368,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6371,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:6374,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:6374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6375
      start: 6355
    functionDepth: 1
    functionLinenumber: 6355
    functionLinenumberEnd: 6375
    functionName: socket_getservbyname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - ntohs
    - PyErr_SetString
    - PyLong_FromLong
    - getservbyname
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getservbyname(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6397,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6400,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6406,1
    - Dst: getservbyport
      Src: /src/cpython/Modules/socketmodule.c:6411,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:6411,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6414,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6418
      start: 6391
    functionDepth: 1
    functionLinenumber: 6391
    functionLinenumberEnd: 6418
    functionName: socket_getservbyport
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - getservbyport
    - PyArg_ParseTuple
    - PyErr_SetString
    - htons
    - PySys_Audit
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getservbyport(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6439,1
    - Dst: getprotobyname
      Src: /src/cpython/Modules/socketmodule.c:6442,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6445,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:6448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6449
      start: 6434
    functionDepth: 1
    functionLinenumber: 6434
    functionLinenumberEnd: 6449
    functionName: socket_getprotobyname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - getprotobyname
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getprotobyname(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSocket_t
      Src: /src/cpython/Modules/socketmodule.c:6463,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:6464,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:6467,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:6471,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - fdobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6475
      start: 6457
    functionDepth: 1
    functionLinenumber: 6457
    functionLinenumberEnd: 6475
    functionName: socket_close
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - SOCKETCLOSE
    - set_error
    - CHECK_ERRNO
    - PyLong_AsSocket_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_close(PyObject *self, PyObject *fdobj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSocket_t
      Src: /src/cpython/Modules/socketmodule.c:6495,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:6496,1
    - Dst: WSADuplicateSocketW
      Src: /src/cpython/Modules/socketmodule.c:6501,1
    - Dst: GetCurrentProcessId
      Src: /src/cpython/Modules/socketmodule.c:6501,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6502,1
    - Dst: WSASocketW
      Src: /src/cpython/Modules/socketmodule.c:6504,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6508,1
    - Dst: SetHandleInformation
      Src: /src/cpython/Modules/socketmodule.c:6511,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:6512,1
    - Dst: closesocket
      Src: /src/cpython/Modules/socketmodule.c:6513,1
    - Dst: _Py_dup
      Src: /src/cpython/Modules/socketmodule.c:6518,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:6524,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:6526,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - fdobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6529
      start: 6486
    functionDepth: 1
    functionLinenumber: 6486
    functionLinenumberEnd: 6529
    functionName: socket_dup
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - closesocket
    - PyLong_FromSocket_t
    - SetHandleInformation
    - PyErr_Occurred
    - SOCKETCLOSE
    - WSASocketW
    - PyErr_SetFromWindowsErr
    - GetCurrentProcessId
    - _Py_dup
    - WSADuplicateSocketW
    - set_error
    - PyLong_AsSocket_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_dup(PyObject *self, PyObject *fdobj)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:6552,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6565,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6572,1
    - Dst: socketpair
      Src: /src/cpython/Modules/socketmodule.c:6573,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6574,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6576,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6580,1
    - Dst: socketpair
      Src: /src/cpython/Modules/socketmodule.c:6581,1
    - Dst: socketpair
      Src: /src/cpython/Modules/socketmodule.c:6588,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6593,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/socketmodule.c:6595,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/socketmodule.c:6597,1
    - Dst: new_sockobject
      Src: /src/cpython/Modules/socketmodule.c:6600,1
    - Dst: new_sockobject
      Src: /src/cpython/Modules/socketmodule.c:6603,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/socketmodule.c:6606,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:6611,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:6613,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:6615,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:6616,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6618
      start: 6545
    functionDepth: 4
    functionLinenumber: 6545
    functionLinenumberEnd: 6618
    functionName: socket_socketpair
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_module_state
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_store_int_relaxed
    - PyArg_ParseTuple
    - SOCKETCLOSE
    - socketpair
    - new_sockobject
    - PyTuple_Pack
    - set_error
    - _Py_set_inheritable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_socketpair(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:6643,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:6643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6644
      start: 6639
    functionDepth: 0
    functionLinenumber: 6639
    functionLinenumberEnd: 6644
    functionName: _socket_ntohs_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - ntohs
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_ntohs_impl(PyObject *module, uint16_t x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:6659,1
    - Dst: ntohl
      Src: /src/cpython/Modules/socketmodule.c:6659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6660
      start: 6655
    functionDepth: 0
    functionLinenumber: 6655
    functionLinenumberEnd: 6660
    functionName: _socket_ntohl_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - ntohl
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_ntohl_impl(PyObject *module, uint32_t x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:6675,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:6675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6676
      start: 6671
    functionDepth: 0
    functionLinenumber: 6671
    functionLinenumberEnd: 6676
    functionName: _socket_htons_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - htons
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_htons_impl(PyObject *module, uint16_t x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:6691,1
    - Dst: htonl
      Src: /src/cpython/Modules/socketmodule.c:6691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6692
      start: 6687
    functionDepth: 0
    functionLinenumber: 6687
    functionLinenumberEnd: 6692
    functionName: _socket_htonl_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - htonl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_htonl_impl(PyObject *module, uint32_t x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6785,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6787,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6791,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - packed_ip
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6798
      start: 6778
    functionDepth: 1
    functionLinenumber: 6778
    functionLinenumberEnd: 6798
    functionName: _socket_inet_ntoa_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_SetString
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_inet_ntoa_impl(PyObject *module, Py_buffer *packed_ip)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Modules/socketmodule.c:6816,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6820,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6826,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/socketmodule.c:6832,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:6834,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6837,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:6841,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:6845,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6849,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6852
      start: 6809
    functionDepth: 1
    functionLinenumber: 6809
    functionLinenumberEnd: 6852
    functionName: socket_inet_pton
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - inet_pton
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_inet_pton(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Modules/socketmodule.c:6866,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6871,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6877,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6879,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6885,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6887,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:6892,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6894,1
    - Dst: inet_ntop
      Src: /src/cpython/Modules/socketmodule.c:6899,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:6901,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6902,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6905,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6908
      start: 6859
    functionDepth: 1
    functionLinenumber: 6859
    functionLinenumberEnd: 6908
    functionName: socket_inet_ntop
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - Py_MAX
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyBuffer_Release
    - PyErr_SetFromErrno
    - PyErr_Format
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_inet_ntop(PyObject *self, PyObject *args)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/socketmodule.c:6934,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:6941,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/socketmodule.c:6942,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:6945,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:6945,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:6946,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:6947,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/socketmodule.c:6948,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6950,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:6954,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/socketmodule.c:6955,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:6958,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/socketmodule.c:6958,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/socketmodule.c:6959,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/socketmodule.c:6959,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:6962,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:6962,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/socketmodule.c:6963,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:6966,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/socketmodule.c:6967,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:6970,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:6971,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6975,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6988,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6993,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:6999,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7003,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7004,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:7008,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:7014,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7021,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:7025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7029,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7031,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7032,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7034,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7037,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7038,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7039,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7041,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 103
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(idna))
      pos:
        line_end: 6944
        line_start: 6944
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyUnicode_Check(pstr))
      pos:
        line_end: 6961
        line_start: 6961
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyLong_CheckExact(pstr))
      pos:
        line_end: 6957
        line_start: 6957
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 7043
      start: 6916
    functionDepth: 3
    functionLinenumber: 6916
    functionLinenumberEnd: 7043
    functionName: socket_getaddrinfo
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyNumber_Index
    - PyErr_SetString
    - PyBytes_Check
    - Py_SETREF
    - PyLong_CheckExact
    - set_gaierror
    - PyList_Append
    - PyUnicode_Check
    - PySys_Audit
    - PyObject_Str
    - get_module_state
    - Py_BuildValue
    - Py_DECREF
    - getaddrinfo
    - freeaddrinfo
    - PyArg_ParseTupleAndKeywords
    - PyBytes_AsString
    - PyIndex_Check
    - PyBytes_AS_STRING
    - memset
    - makesockaddr
    - PyUnicode_AsEncodedString
    - PyUnicode_AsUTF8
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7003,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7006
      start: 7000
    functionDepth: 2
    functionLinenumber: 7000
    functionLinenumberEnd: 7006
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    - get_module_state
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:7071,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:7073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7074,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:7078,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7084,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:7089,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/socketmodule.c:7093,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:7094,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7099,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7103,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7104,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7108,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:7115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7116,1
    - Dst: htonl
      Src: /src/cpython/Modules/socketmodule.c:7127,1
    - Dst: getnameinfo
      Src: /src/cpython/Modules/socketmodule.c:7134,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7138,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7139,1
    - Dst: sock_decode_hostname
      Src: /src/cpython/Modules/socketmodule.c:7143,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7146,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7150,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7152
      start: 7056
    functionDepth: 3
    functionLinenumber: 7056
    functionLinenumberEnd: 7152
    functionName: socket_getnameinfo
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    - Py_BuildValue
    - get_module_state
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyTuple_Check
    - getaddrinfo
    - PyErr_SetString
    - PyOS_snprintf
    - memset
    - freeaddrinfo
    - getnameinfo
    - sock_decode_hostname
    - PySys_Audit
    - htonl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getnameinfo(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7103,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7106
      start: 7100
    functionDepth: 2
    functionLinenumber: 7100
    functionLinenumberEnd: 7106
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    - get_module_state
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7138,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7141
      start: 7136
    functionDepth: 2
    functionLinenumber: 7136
    functionLinenumberEnd: 7141
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    - get_module_state
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7165,1
    - Dst: _Py_atomic_load_int64_relaxed
      Src: /src/cpython/Modules/socketmodule.c:7166,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/socketmodule.c:7171,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/socketmodule.c:7172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7174
      start: 7162
    functionDepth: 1
    functionLinenumber: 7162
    functionLinenumberEnd: 7174
    functionName: socket_getdefaulttimeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyTime_AsSecondsDouble
    - get_module_state
    - _Py_atomic_load_int64_relaxed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getdefaulttimeout(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_parse_timeout
      Src: /src/cpython/Modules/socketmodule.c:7188,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7191,1
    - Dst: _Py_atomic_store_int64_relaxed
      Src: /src/cpython/Modules/socketmodule.c:7192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7195
      start: 7183
    functionDepth: 2
    functionLinenumber: 7183
    functionLinenumberEnd: 7195
    functionName: socket_setdefaulttimeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - socket_parse_timeout
    - get_module_state
    - _Py_atomic_store_int64_relaxed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_setdefaulttimeout(PyObject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:7210,1
    - Dst: GetIfTable2Ex
      Src: /src/cpython/Modules/socketmodule.c:7217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7218,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:7220,1
    - Dst: ConvertInterfaceLuidToNameW
      Src: /src/cpython/Modules/socketmodule.c:7225,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:7226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7227,1
    - Dst: FreeMibTable
      Src: /src/cpython/Modules/socketmodule.c:7228,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:7230,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7232,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:7233,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7235,1
    - Dst: FreeMibTable
      Src: /src/cpython/Modules/socketmodule.c:7236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7239,1
    - Dst: FreeMibTable
      Src: /src/cpython/Modules/socketmodule.c:7241,1
    - Dst: if_nameindex
      Src: /src/cpython/Modules/socketmodule.c:7247,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:7249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7250,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7255,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7256,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7261,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7267,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7271,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:7274,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7276,1
    - Dst: if_freenameindex
      Src: /src/cpython/Modules/socketmodule.c:7277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7280,1
    - Dst: if_freenameindex
      Src: /src/cpython/Modules/socketmodule.c:7283,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7286
      start: 7207
    functionDepth: 1
    functionLinenumber: 7207
    functionLinenumberEnd: 7286
    functionName: socket_if_nameindex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - __msan_unpoison
    - Py_BuildValue
    - Py_DECREF
    - FreeMibTable
    - if_freenameindex
    - PyList_Append
    - if_nameindex
    - PyErr_SetFromWindowsErr
    - GetIfTable2Ex
    - PyErr_SetFromErrno
    - ConvertInterfaceLuidToNameW
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_if_nameindex(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/cpython/Modules/socketmodule.c:7311,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:7311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7315,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:7319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - oname
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7320
      start: 7301
    functionDepth: 1
    functionLinenumber: 7301
    functionLinenumberEnd: 7320
    functionName: _socket_if_nametoindex_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - if_nametoindex
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_if_nametoindex_impl(PyObject *module, PyObject *oname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: if_indextoname
      Src: /src/cpython/Modules/socketmodule.c:7336,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:7337,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:7341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - index
    argTypes:
    - PyObject*
    - NET_IFINDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7342
      start: 7331
    functionDepth: 1
    functionLinenumber: 7331
    functionLinenumberEnd: 7342
    functionName: _socket_if_indextoname_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - PyErr_SetFromErrno
    - if_indextoname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_if_indextoname_impl(PyObject *module, NET_IFINDEX index)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:7356,1
    - Dst: get_CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:7358,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:7359,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/socketmodule.c:7362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7363
      start: 7350
    functionDepth: 1
    functionLinenumber: 7350
    functionLinenumberEnd: 7363
    functionName: socket_CMSG_LEN
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyLong_FromSize_t
    - get_CMSG_LEN
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_CMSG_LEN(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:7386,1
    - Dst: get_CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:7388,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7389,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/socketmodule.c:7393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7394
      start: 7380
    functionDepth: 1
    functionLinenumber: 7380
    functionLinenumberEnd: 7394
    functionName: socket_CMSG_SPACE
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromSize_t
    - get_CMSG_SPACE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_CMSG_SPACE(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSACleanup
      Src: /src/cpython/Modules/socketmodule.c:7506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7507
      start: 7503
    functionDepth: 0
    functionLinenumber: 7503
    functionLinenumberEnd: 7507
    functionName: os_cleanup
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - WSACleanup
    linkageType: ''
    returnType: void
    signature: void os_cleanup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/cpython/Modules/socketmodule.c:7514,1
    - Dst: Py_AtExit
      Src: /src/cpython/Modules/socketmodule.c:7517,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7520,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7525,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:7530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7534
      start: 7509
    functionDepth: 1
    functionLinenumber: 7509
    functionLinenumberEnd: 7534
    functionName: os_init
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - WSAStartup
    - Py_AtExit
    - PyErr_Format
    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: 7545
      start: 7541
    functionDepth: 0
    functionLinenumber: 7541
    functionLinenumberEnd: 7545
    functionName: os_init
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int os_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/socketmodule.c:7551,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:7552,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:7553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - capsule
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (capi != NULL)
      pos:
        line_end: 7551
        line_start: 7551
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 7555
      start: 7548
    functionDepth: 1
    functionLinenumber: 7548
    functionLinenumberEnd: 7555
    functionName: sock_capi_traverse
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_VISIT
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: int
    signature: int sock_capi_traverse(PyObject *capsule, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/socketmodule.c:7560,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:7561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:7562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (capi != NULL)
      pos:
        line_end: 7560
        line_start: 7560
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 7564
      start: 7557
    functionDepth: 1
    functionLinenumber: 7557
    functionLinenumberEnd: 7564
    functionName: sock_capi_clear
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_CLEAR
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: int
    signature: int sock_capi_clear(PyObject *capsule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7571,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:7572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - capi
    argTypes:
    - PySocketModule_APIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7573
      start: 7566
    functionDepth: 1
    functionLinenumber: 7566
    functionLinenumberEnd: 7573
    functionName: sock_capi_free
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void sock_capi_free(PySocketModule_APIObject *capi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/socketmodule.c:7578,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:7579,1
    - Dst: sock_capi_free
      Src: /src/cpython/Modules/socketmodule.c:7580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (capi != NULL)
      pos:
        line_end: 7578
        line_start: 7578
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 7581
      start: 7575
    functionDepth: 2
    functionLinenumber: 7575
    functionLinenumberEnd: 7581
    functionName: sock_capi_destroy
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyCapsule_GetPointer
    - sock_capi_free
    linkageType: ''
    returnType: void
    signature: void sock_capi_destroy(PyObject *capsule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/socketmodule.c:7586,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:7588,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/socketmodule.c:7592,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/socketmodule.c:7593,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/socketmodule.c:7594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - socket_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7596
      start: 7583
    functionDepth: 1
    functionLinenumber: 7583
    functionLinenumberEnd: 7596
    functionName: sock_get_api
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PySocketModule_APIObject
    signature: 'PySocketModule_APIObject *

      sock_get_api(socket_state *state)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: os_init
      Src: /src/cpython/Modules/socketmodule.c:7617,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7621,1
    - Dst: _Py_atomic_store_int64_relaxed
      Src: /src/cpython/Modules/socketmodule.c:7623,1
    - Dst: _PYTIME_FROMSECONDS
      Src: /src/cpython/Modules/socketmodule.c:7623,1
    - Dst: ADD_EXC
      Src: /src/cpython/Modules/socketmodule.c:7635,1
    - Dst: ADD_EXC
      Src: /src/cpython/Modules/socketmodule.c:7636,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/socketmodule.c:7640,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/socketmodule.c:7643,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/socketmodule.c:7647,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/socketmodule.c:7652,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/socketmodule.c:7655,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/socketmodule.c:7665,1
    - Dst: sock_get_api
      Src: /src/cpython/Modules/socketmodule.c:7670,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/socketmodule.c:7674,1
    - Dst: sock_capi_free
      Src: /src/cpython/Modules/socketmodule.c:7678,1
    - Dst: _PyCapsule_SetTraverse
      Src: /src/cpython/Modules/socketmodule.c:7681,1
    - Dst: sock_capi_free
      Src: /src/cpython/Modules/socketmodule.c:7683,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/socketmodule.c:7687,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7711,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7713,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7715,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7719,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7722,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7726,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7730,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7734,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7738,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7742,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7745,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7749,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7752,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7756,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7760,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7764,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7768,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7772,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7776,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7777,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7778,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7779,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7781,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7784,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7787,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7790,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7793,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7799,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7803,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7804,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7805,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7806,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7807,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7808,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7809,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7810,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7811,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:7812,1
    - Dst: _IO
      Src: /src/cpython/Modules/socketmodule.c:7812,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7817,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7820,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7824,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7828,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7832,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7836,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7840,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7844,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7848,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7852,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7856,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7859,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7862,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7863,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7864,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7865,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7868,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7869,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7870,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7871,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7872,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7873,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7877,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7879,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7880,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7882,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7883,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7884,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7887,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7888,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7889,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7892,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7893,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7896,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7899,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7900,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7901,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7902,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7903,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7904,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7905,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7908,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7909,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7910,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7911,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7915,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7916,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7918,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7919,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7920,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7921,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7922,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7923,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7926,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7929,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7932,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7935,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7936,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7940,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7941,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7943,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7944,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7947,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7948,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7949,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7950,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7953,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7954,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7955,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7956,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7959,1
    - Dst: ADD_STR_CONST
      Src: /src/cpython/Modules/socketmodule.c:7960,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7962,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7963,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7965,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7968,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7971,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7975,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7976,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7977,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7978,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7979,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7980,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7982,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7985,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7987,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7988,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7989,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7990,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7991,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7992,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7993,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7994,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7995,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7996,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7997,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7998,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:7999,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8001,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8003,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8004,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8006,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8007,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8008,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8009,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8010,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8011,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8012,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8013,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8014,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8015,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8016,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8017,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8018,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8019,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8020,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8021,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8024,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8025,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8026,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8027,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8028,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8029,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8032,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8035,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8038,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8045,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8049,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8054,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8057,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8062,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8065,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8070,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8073,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8077,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8080,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8083,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8086,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8089,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8092,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8095,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8098,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8101,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8105,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8108,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8109,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8110,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8112,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8113,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8114,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8117,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8118,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8119,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8120,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8121,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8123,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8124,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8125,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8126,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8129,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8130,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8133,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8135,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8136,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8137,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8138,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8139,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8140,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8145,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8146,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8147,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8148,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8149,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8150,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8153,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8154,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8155,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8156,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8161,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8164,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8167,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8170,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8175,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8179,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8180,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8184,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8187,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8190,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8193,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8196,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8200,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8203,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8206,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8209,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8212,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8216,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8219,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8222,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8225,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8228,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8231,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8234,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8238,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8242,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8245,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8248,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8251,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8254,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8257,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8260,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8263,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8266,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8269,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8272,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8275,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8278,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8281,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8284,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8287,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8290,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8293,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8296,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8299,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8302,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8305,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8308,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8311,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8314,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8319,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8321,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8326,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8329,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8332,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8335,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8340,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8343,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8346,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8349,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8352,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8359,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8362,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8365,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8368,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8371,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8374,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8377,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8380,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8383,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8386,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8389,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8392,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8395,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8398,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8401,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8406,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8409,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8411,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8414,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8417,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8420,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8423,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8426,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8429,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8431,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8434,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8436,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8439,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8442,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8443,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8446,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8447,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8448,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8450,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8451,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8452,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8454,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8457,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8461,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8463,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8465,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8466,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8469,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8472,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8475,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8478,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8479,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8480,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8481,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8482,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8483,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8484,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8485,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8486,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8487,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8488,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8489,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8492,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8493,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8494,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8495,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8496,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8497,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8498,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8499,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8500,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8501,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8502,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8505,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8509,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8510,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8511,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8512,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8513,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8514,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8515,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8516,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8517,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8518,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8521,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8522,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8523,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8524,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8526,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8527,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8528,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8529,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8531,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8532,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8534,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8535,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8537,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8540,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8543,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8546,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8549,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8552,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8555,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8558,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8561,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8564,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8566,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8569,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8572,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8574,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8577,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8580,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8583,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8586,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8589,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8592,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8594,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8597,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8600,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8603,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8605,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8608,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8612,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8616,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8619,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8622,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8625,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8628,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8631,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8634,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8637,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8640,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8643,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8646,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8649,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8652,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8655,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8658,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8661,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8664,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8667,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8670,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8673,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8676,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8679,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8682,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8686,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8688,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8691,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8695,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8696,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8697,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8698,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8699,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8700,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8701,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8702,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8706,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8711,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8713,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8716,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8718,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8723,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8725,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8728,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8730,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8733,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8735,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8738,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8740,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8743,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8746,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8749,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8751,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8754,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8756,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8761,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8764,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8767,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8770,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8773,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8776,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8779,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8782,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8785,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8788,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8791,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8794,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8797,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8800,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8803,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8806,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8809,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8812,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8815,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8818,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8821,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8824,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8827,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8830,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8833,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8836,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8839,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8842,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8847,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8850,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8853,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8856,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8859,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8862,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8866,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8870,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8873,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8876,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8879,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8882,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8885,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8888,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8891,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8894,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8897,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8900,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8903,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8906,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8909,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8912,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8915,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8918,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8921,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8924,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8927,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8930,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8935,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8938,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8941,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8944,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8948,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8951,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8954,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8957,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8960,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8963,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8966,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8969,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8972,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8978,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8981,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8984,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8987,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8990,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8993,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8996,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8999,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9002,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9005,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9008,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9011,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9014,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9017,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9020,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9023,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9026,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9029,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9032,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9035,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9038,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9041,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9044,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9047,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9050,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9055,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9060,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9063,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9066,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9069,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9072,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9075,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9078,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9081,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9084,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9087,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9090,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9093,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9098,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9101,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9104,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9107,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9110,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9113,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9116,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9119,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9122,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9125,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9128,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9131,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9134,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9137,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9140,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9143,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9146,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9149,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9152,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9155,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9158,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9161,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9164,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9167,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9170,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9173,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9176,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9179,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9182,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9185,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9188,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9191,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9194,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9199,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9201,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9203,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9206,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9208,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9210,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9213,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9215,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9217,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:9233,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/socketmodule.c:9234,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:9234,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9239,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9240,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9241,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9243,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9246,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/socketmodule.c:9252,1
    - Dst: remove_unusable_flags
      Src: /src/cpython/Modules/socketmodule.c:9257,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 671
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9270
      start: 7614
    functionDepth: 2
    functionLinenumber: 7614
    functionLinenumberEnd: 9270
    functionName: socket_exec
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - ADD_EXC
    - sock_capi_free
    - _Py_atomic_store_int64_relaxed
    - PyModule_AddObjectRef
    - PyCapsule_New
    - PyLong_FromUnsignedLong
    - os_init
    - get_module_state
    - _PYTIME_FROMSECONDS
    - ADD_INT_MACRO
    - PyType_FromMetaclass
    - PyModule_Add
    - PyModule_AddType
    - ADD_STR_CONST
    - PyThread_allocate_lock
    - sock_get_api
    - _PyCapsule_SetTraverse
    - remove_unusable_flags
    - _IO
    - Py_ARRAY_LENGTH
    - ADD_INT_CONST
    linkageType: ''
    returnType: int
    signature: int socket_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - MOD
    - ','
    - NAME
    - ','
    - VAR
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7634
      start: 7625
    functionDepth: 0
    functionLinenumber: 7625
    functionLinenumberEnd: 7634
    functionName: ADD_EXC
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_EXC(MOD, NAME, VAR, BASE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - MOD
    - ','
    - INT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7696
      start: 7691
    functionDepth: 0
    functionLinenumber: 7691
    functionLinenumberEnd: 7696
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(MOD, INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - MOD
    - ','
    - NAME
    - ','
    - INT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7702
      start: 7697
    functionDepth: 0
    functionLinenumber: 7697
    functionLinenumberEnd: 7702
    functionName: ADD_INT_CONST
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_CONST(MOD, NAME, INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - MOD
    - ','
    - NAME
    - ','
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7708
      start: 7703
    functionDepth: 0
    functionLinenumber: 7703
    functionLinenumberEnd: 7708
    functionName: ADD_STR_CONST
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_STR_CONST(MOD, NAME, STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:9282,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:9283,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:9284,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:9285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9287
      start: 9279
    functionDepth: 1
    functionLinenumber: 9279
    functionLinenumberEnd: 9287
    functionName: socket_traverse
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int socket_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:9292,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:9293,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:9294,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:9295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9297
      start: 9289
    functionDepth: 1
    functionLinenumber: 9289
    functionLinenumberEnd: 9297
    functionName: socket_clear
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int socket_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket_clear
      Src: /src/cpython/Modules/socketmodule.c:9302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9303
      start: 9299
    functionDepth: 2
    functionLinenumber: 9299
    functionLinenumberEnd: 9303
    functionName: socket_free
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - socket_clear
    linkageType: ''
    returnType: void
    signature: void socket_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/socketmodule.c:9320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9321
      start: 9317
    functionDepth: 1
    functionLinenumber: 9317
    functionLinenumberEnd: 9321
    functionName: PyInit__socket
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__socket(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_collectionsmodule.c:23,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 50
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: collections_state
    signature: 'collections_state *

      get_module_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_collectionsmodule.c:31,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: get_module_state_by_cls
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: collections_state
    signature: 'collections_state *

      get_module_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_collectionsmodule.c:41,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:42,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_collectionsmodule.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: find_module_state_by_def
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: collections_state
    signature: 'collections_state *

      find_module_state_by_def(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: dequeobject_CAST
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dequeobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - link
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: MARK_END
    functionSourceFile: /src/cpython/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: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: CHECK_END
    functionSourceFile: /src/cpython/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: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: CHECK_NOT_END
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOT_END(link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_collectionsmodule.c:183,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_collectionsmodule.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 189
    functionName: newblock
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: block
    signature: 'block *

      newblock(dequeobject *deque)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_collectionsmodule.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - deque
    - b
    argTypes:
    - dequeobject*
    - block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: freeblock
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void freeblock(dequeobject *deque, block *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_collectionsmodule.c:209,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:215,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:218,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:219,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:221,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (BLOCKLEN >= 2)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: deque_new
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - MARK_END
    - Py_DECREF
    - newblock
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:252,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:257,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:257,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:261,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:263,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:264,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:265,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:266,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:270,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: (deque->leftblock != deque->rightblock)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 278
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 278
    functionName: deque_pop_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - MARK_END
    - Py_SIZE
    - PyErr_SetString
    - CHECK_NOT_END
    - freeblock
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_pop_impl(dequeobject *deque)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:297,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:300,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:303,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:303,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:307,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:308,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:310,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:311,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:312,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:316,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: (deque->leftblock != NULL)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftblock != deque->rightblock)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 324
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 324
    functionName: deque_popleft_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - MARK_END
    - Py_SIZE
    - PyErr_SetString
    - CHECK_NOT_END
    - freeblock
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_popleft_impl(dequeobject *deque)'
  - 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: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: NEEDS_TRIM
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDS_TRIM(deque, maxlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:344,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:348,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:351,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:354,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:354,1
    - Dst: NEEDS_TRIM
      Src: /src/cpython/Modules/_collectionsmodule.c:357,1
    - Dst: deque_popleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - deque
    - item
    - maxlen
    argTypes:
    - dequeobject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 364
    functionName: deque_append_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - MARK_END
    - Py_DECREF
    - Py_SIZE
    - CHECK_END
    - NEEDS_TRIM
    - deque_popleft_impl
    - newblock
    linkageType: ''
    returnType: int
    signature: int deque_append_lock_held(dequeobject *deque, PyObject *item, Py_ssize_t
      maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deque_append_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:381,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 384
    functionName: deque_append_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - deque_append_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_append_impl(dequeobject *deque, PyObject *item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:391,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:395,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:398,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:401,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:401,1
    - Dst: NEEDS_TRIM
      Src: /src/cpython/Modules/_collectionsmodule.c:404,1
    - Dst: deque_pop_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - deque
    - item
    - maxlen
    argTypes:
    - dequeobject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 411
    functionName: deque_appendleft_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - MARK_END
    - Py_DECREF
    - deque_pop_impl
    - Py_SIZE
    - CHECK_END
    - NEEDS_TRIM
    - newblock
    linkageType: ''
    returnType: int
    signature: "int deque_appendleft_lock_held(dequeobject *deque, PyObject *item,\n
      \                          Py_ssize_t maxlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deque_appendleft_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:428,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 431
    functionName: deque_appendleft_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - deque_appendleft_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_appendleft_impl(dequeobject *deque, PyObject *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:436,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_collectionsmodule.c:437,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_collectionsmodule.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 446
    functionName: finalize_iterator
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      finalize_iterator(PyObject *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:456,1
    - Dst: iternext
      Src: /src/cpython/Modules/_collectionsmodule.c:457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:458,1
    - Dst: finalize_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 461
    functionName: consume_iterator
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - iternext
    - finalize_iterator
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      consume_iterator(PyObject *it)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_collectionsmodule.c:485,1
    - Dst: deque_extend
      Src: /src/cpython/Modules/_collectionsmodule.c:488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:489,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:493,1
    - Dst: consume_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:498,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:501,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:502,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:503,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:508,1
    - Dst: iternext
      Src: /src/cpython/Modules/_collectionsmodule.c:509,1
    - Dst: deque_append_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:512,1
    - Dst: finalize_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 517
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 517
    functionName: deque_extend_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_extend
    - deque_append_lock_held
    - Py_DECREF
    - finalize_iterator
    - consume_iterator
    - Py_SIZE
    - PyObject_GetIter
    - PySequence_List
    - iternext
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_extend_impl(dequeobject *deque, PyObject *iterable)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_collectionsmodule.c:541,1
    - Dst: deque_extendleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:545,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:549,1
    - Dst: consume_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:554,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:557,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:558,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:559,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:564,1
    - Dst: iternext
      Src: /src/cpython/Modules/_collectionsmodule.c:565,1
    - Dst: deque_appendleft_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:568,1
    - Dst: finalize_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:572,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 573
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 573
    functionName: deque_extendleft_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 1
    functionsReached:
    - finalize_iterator
    - Py_DECREF
    - deque_appendleft_lock_held
    - consume_iterator
    - Py_SIZE
    - PyObject_GetIter
    - PySequence_List
    - Py_TYPE
    - iternext
    - deque_extendleft_impl
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_extendleft_impl(dequeobject *deque, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:578,1
    - Dst: deque_extend
      Src: /src/cpython/Modules/_collectionsmodule.c:582,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_collectionsmodule.c:585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 588
    functionName: deque_inplace_concat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - deque_extend
    - Py_DECREF
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_inplace_concat(PyObject *self, PyObject *other)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_module_state_by_def
      Src: /src/cpython/Modules/_collectionsmodule.c:605,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:605,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:606,1
    - Dst: deque_new
      Src: /src/cpython/Modules/_collectionsmodule.c:610,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:619,1
    - Dst: deque_append_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:621,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:629,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_collectionsmodule.c:633,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:633,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_collectionsmodule.c:636,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:636,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_collectionsmodule.c:638,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_collectionsmodule.c:639,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:641,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:642,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 599
    functionDepth: 5
    functionLinenumber: 599
    functionLinenumberEnd: 646
    functionName: deque_copy_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunction
    - PyObject_TypeCheck
    - find_module_state_by_def
    - Py_SIZE
    - Py_IS_TYPE
    - deque_new
    - deque_append_impl
    - PyObject_CallOneArg
    - PyErr_Format
    - deque_extend_impl
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_copy_impl(dequeobject *deque)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque_copy_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 6
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: deque___copy___impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___copy___impl(dequeobject *deque)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_module_state_by_def
      Src: /src/cpython/Modules/_collectionsmodule.c:668,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:668,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_collectionsmodule.c:669,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_collectionsmodule.c:672,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:674,1
    - Dst: deque_copy_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:679,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - deque
    - other
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 662
    functionDepth: 6
    functionLinenumber: 662
    functionLinenumberEnd: 692
    functionName: deque_concat_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - Py_DECREF
    - find_module_state_by_def
    - deque_copy_impl
    - PyErr_Format
    - deque_extend_impl
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_concat_lock_held(dequeobject *deque, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:697,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:699,1
    - Dst: deque_concat_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:700,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 694
    functionDepth: 7
    functionLinenumber: 694
    functionLinenumberEnd: 703
    functionName: deque_concat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_concat_lock_held
    - Py_END_CRITICAL_SECTION
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_concat(PyObject *self, PyObject *other)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:715,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:717,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:733,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_collectionsmodule.c:735,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:740,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:745,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:746,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:747,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:765,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:775,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:777,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:778,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:782,1
    - Dst: deque_pop_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:783,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:785,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (item != NULL)
      pos:
        line_end: 783
        line_start: 783
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 788
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 788
    functionName: deque_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - MARK_END
    - Py_DECREF
    - deque_pop_impl
    - Py_SIZE
    - CHECK_END
    - CHECK_NOT_END
    - newblock
    - freeblock
    - PyErr_Clear
    - assert
    - dequeobject_CAST
    linkageType: ''
    returnType: int
    signature: int deque_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: deque_clearmethod_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_clearmethod_impl(dequeobject *deque)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:814,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:816,1
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:820,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:821,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:834,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:836,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:836,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:840,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:843,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:852,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:855,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:856,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_collectionsmodule.c:860,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_collectionsmodule.c:863,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:874,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:877,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_collectionsmodule.c:879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:880,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 807
    functionDepth: 5
    functionLinenumber: 807
    functionLinenumberEnd: 882
    functionName: deque_inplace_repeat_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - MARK_END
    - Py_INCREF
    - Py_DECREF
    - Py_SIZE
    - CHECK_END
    - newblock
    - Py_NewRef
    - PySequence_List
    - deque_extend_impl
    - deque_clear
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_inplace_repeat_lock_held(dequeobject *deque, Py_ssize_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:887,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:889,1
    - Dst: deque_inplace_repeat_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:890,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 884
    functionDepth: 6
    functionLinenumber: 884
    functionLinenumberEnd: 893
    functionName: deque_inplace_repeat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_inplace_repeat_lock_held
    - Py_END_CRITICAL_SECTION
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_inplace_repeat(PyObject *self, Py_ssize_t n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:898,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:902,1
    - Dst: deque_copy_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:903,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:904,1
    - Dst: deque_inplace_repeat_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 895
    functionDepth: 6
    functionLinenumber: 895
    functionLinenumberEnd: 912
    functionName: deque_repeat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - deque_copy_impl
    - deque_inplace_repeat_lock_held
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_repeat(PyObject *self, Py_ssize_t n)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:947,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:959,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:960,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:966,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:971,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:974,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:978,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:987,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:998,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:999,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1001,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1003,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:1010,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1015,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1018,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1022,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1031,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1042,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1043,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1045,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1047,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:1054,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: 959
        line_start: 959
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (len > 1)
      pos:
        line_end: 958
        line_start: 958
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (m > 0 && m <= len)
      pos:
        line_end: 1030
        line_start: 1030
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (rightindex < BLOCKLEN - 1)
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (leftindex > 0)
      pos:
        line_end: 977
        line_start: 977
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (leftblock != rightblock)
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (leftblock != rightblock)
      pos:
        line_end: 1041
        line_start: 1041
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (m > 0 && m <= len)
      pos:
        line_end: 986
        line_start: 986
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (b == NULL)
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (b == NULL)
      pos:
        line_end: 1042
        line_start: 1042
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1061
      start: 939
    functionDepth: 2
    functionLinenumber: 939
    functionLinenumberEnd: 1061
    functionName: _deque_rotate
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - MARK_END
    - Py_SIZE
    - CHECK_END
    - CHECK_NOT_END
    - newblock
    - freeblock
    - assert
    linkageType: ''
    returnType: int
    signature: int _deque_rotate(dequeobject *deque, Py_ssize_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1081
    functionName: deque_rotate_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - _deque_rotate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_rotate_impl(dequeobject *deque, Py_ssize_t n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1100,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1105,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1106,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: (leftblock != rightblock || leftindex < rightindex)
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1129
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1129
    functionName: deque_reverse_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - CHECK_NOT_END
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reverse_impl(dequeobject *deque)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1148,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1156,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1158,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1164,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - deque
    - v
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1177
    functionName: deque_count_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyErr_SetString
    - PyLong_FromSsize_t
    - CHECK_NOT_END
    - Py_NewRef
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_count_impl(dequeobject *deque, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1184,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1190,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1191,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1193,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - deque
    - v
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1209
    functionName: deque_contains_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyErr_SetString
    - CHECK_NOT_END
    - Py_NewRef
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int deque_contains_lock_held(dequeobject *deque, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1214,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1216,1
    - Dst: deque_contains_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:1217,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1220
    functionName: deque_contains
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_contains_lock_held
    - Py_END_CRITICAL_SECTION
    - dequeobject_CAST
    linkageType: ''
    returnType: int
    signature: int deque_contains(PyObject *self, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyVarObject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1225,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1227
    functionName: deque_len
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE
    - _PyVarObject_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t deque_len(PyObject *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1258,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1263,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1267,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1268,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1271,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1271,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1286,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1287,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1289,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1291,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1295,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1305,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - deque
    - v
    - start
    - stop
    argTypes:
    - dequeobject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= start && start <= stop && stop <= Py_SIZE(deque))
      pos:
        line_end: 1270
        line_start: 1270
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1307
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1307
    functionName: deque_index_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyLong_FromSsize_t
    - PyErr_SetString
    - CHECK_NOT_END
    - Py_NewRef
    - PyObject_RichCompareBool
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndeque_index_impl(dequeobject *deque, PyObject *v, Py_ssize_t
      start,\n                 Py_ssize_t stop)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1333,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1336,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1337,1
    - Dst: deque_append_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1341,1
    - Dst: deque_appendleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1343,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1344,1
    - Dst: deque_append_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1347,1
    - Dst: deque_appendleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1352,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - deque
    - index
    - value
    argTypes:
    - dequeobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1329
    functionDepth: 5
    functionLinenumber: 1329
    functionLinenumberEnd: 1356
    functionName: deque_insert_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - deque_appendleft_impl
    - PyErr_SetString
    - deque_append_impl
    - _deque_rotate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_insert_impl(dequeobject *deque, Py_ssize_t index, 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: 1364
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1364
    functionName: valid_index
    functionSourceFile: /src/cpython/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/cpython/Modules/_collectionsmodule.c:1373,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1373,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1374,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1381,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1388,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1394,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - deque
    - i
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1403
    functionName: deque_item_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - Py_NewRef
    - valid_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_item_lock_held(dequeobject *deque, Py_ssize_t i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1408,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1410,1
    - Dst: deque_item_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:1411,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1414
    functionName: deque_item
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_item_lock_held
    - Py_END_CRITICAL_SECTION
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_item(PyObject *self, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1422,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1422,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1423,1
    - Dst: deque_popleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1425,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1426,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1428,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: 1421
        line_start: 1421
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (item != NULL)
      pos:
        line_end: 1426
        line_start: 1426
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1430
      start: 1416
    functionDepth: 3
    functionLinenumber: 1416
    functionLinenumberEnd: 1430
    functionName: deque_del_item
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - deque_popleft_impl
    - _deque_rotate
    - assert
    linkageType: ''
    returnType: int
    signature: int deque_del_item(dequeobject *deque, Py_ssize_t i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1449,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1454,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1461,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1475,1
    - Dst: deque_del_item
      Src: /src/cpython/Modules/_collectionsmodule.c:1478,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - deque
    - value
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1443
    functionDepth: 4
    functionLinenumber: 1443
    functionLinenumberEnd: 1483
    functionName: deque_remove_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyErr_SetString
    - Py_NewRef
    - PyObject_RichCompareBool
    - deque_del_item
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_remove_impl(dequeobject *deque, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1489,1
    - Dst: valid_index
      Src: /src/cpython/Modules/_collectionsmodule.c:1491,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1492,1
    - Dst: deque_del_item
      Src: /src/cpython/Modules/_collectionsmodule.c:1496,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1507,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1513,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - deque
    - i
    - v
    argTypes:
    - dequeobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1485
    functionDepth: 4
    functionLinenumber: 1485
    functionLinenumberEnd: 1515
    functionName: deque_ass_item_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - Py_SETREF
    - Py_NewRef
    - valid_index
    - deque_del_item
    linkageType: ''
    returnType: int
    signature: int deque_ass_item_lock_held(dequeobject *deque, Py_ssize_t i, PyObject
      *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1520,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1522,1
    - Dst: deque_ass_item_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:1523,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1517
    functionDepth: 5
    functionLinenumber: 1517
    functionLinenumberEnd: 1526
    functionName: deque_ass_item
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_ass_item_lock_held
    - dequeobject_CAST
    linkageType: ''
    returnType: int
    signature: int deque_ass_item(PyObject *self, Py_ssize_t i, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1531,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1532,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:1535,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_collectionsmodule.c:1536,1
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:1538,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1539,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:1540,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_collectionsmodule.c:1545,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_collectionsmodule.c:1547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock != NULL)
      pos:
        line_end: 1538
        line_start: 1538
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1549
      start: 1528
    functionDepth: 4
    functionLinenumber: 1528
    functionLinenumberEnd: 1549
    functionName: deque_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - freeblock
    - Py_TYPE
    - deque_clear
    - PyMem_Free
    - assert
    - dequeobject_CAST
    linkageType: ''
    returnType: void
    signature: void deque_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1554,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1555,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1555,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1566,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1551
    functionDepth: 1
    functionLinenumber: 1551
    functionLinenumberEnd: 1576
    functionName: deque_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - dequeobject_CAST
    linkageType: ''
    returnType: int
    signature: int deque_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetState
      Src: /src/cpython/Modules/_collectionsmodule.c:1592,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:1597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1599,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:1606,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1606,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:1609,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1611
    functionName: deque___reduce___impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetState
    - Py_BuildValue
    - Py_DECREF
    - PyObject_GetIter
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___reduce___impl(dequeobject *deque)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_collectionsmodule.c:1621,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_collectionsmodule.c:1625,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_collectionsmodule.c:1628,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_collectionsmodule.c:1630,1
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1633,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:1635,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:1636,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1636,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:1639,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:1640,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1640,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_collectionsmodule.c:1641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - deque
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1644
    functionName: deque_repr
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_ReprEnter
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - PySequence_List
    - _PyType_Name
    - Py_TYPE
    - PyUnicode_FromString
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_repr(PyObject *deque)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: find_module_state_by_def
      Src: /src/cpython/Modules/_collectionsmodule.c:1653,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1653,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_collectionsmodule.c:1654,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_collectionsmodule.c:1655,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1660,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1661,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:1676,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:1679,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:1683,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:1684,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:1686,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1689,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1697,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1702,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1703,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:1704,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1716,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1717,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1646
    functionDepth: 1
    functionLinenumber: 1646
    functionLinenumberEnd: 1723
    functionName: deque_richcompare
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_TypeCheck
    - Py_DECREF
    - find_module_state_by_def
    - PyObject_GetIter
    - Py_SIZE
    - PyErr_Occurred
    - PyIter_Next
    - PyObject_RichCompareBool
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1743,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:1744,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1747,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1752,1
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:1753,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1758,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - deque
    - iterable
    - maxlenobj
    argTypes:
    - dequeobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1737
    functionDepth: 5
    functionLinenumber: 1737
    functionLinenumberEnd: 1761
    functionName: deque_init_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - Py_SIZE
    - PyErr_SetString
    - deque_extend_impl
    - deque_clear
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int deque_init_impl(dequeobject *deque, PyObject *iterable, PyObject
      *maxlenobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1776,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1776,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1778,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1779,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1779,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: "(((size_t)deque->leftindex + (size_t)Py_SIZE(deque) - 1) ==\n           ((blocks
        - 1) * BLOCKLEN + (size_t)deque->rightindex))"
      pos:
        line_end: 1779
        line_start: 1778
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1783
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1783
    functionName: deque___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _PyObject_SIZE
    - PyLong_FromSize_t
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___sizeof___impl(dequeobject *deque)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1788,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1785
    functionDepth: 1
    functionLinenumber: 1785
    functionLinenumberEnd: 1792
    functionName: deque_get_maxlen
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_get_maxlen(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque_reviter
      Src: /src/cpython/Modules/_collectionsmodule.c:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: deque___reversed___impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_reviter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___reversed___impl(dequeobject *deque)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1900
    functionDepth: 0
    functionLinenumber: 1900
    functionLinenumberEnd: 1901
    functionName: dequeiterobject_CAST
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dequeiterobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1906,1
    - Dst: find_module_state_by_def
      Src: /src/cpython/Modules/_collectionsmodule.c:1908,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1908,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_collectionsmodule.c:1909,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1912,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1915,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1917,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1918,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_collectionsmodule.c:1919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1921
    functionName: deque_iter
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - find_module_state_by_def
    - Py_SIZE
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_TYPE
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_iter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeiterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1926,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1927,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1927,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1930
    functionName: dequeiter_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - dequeiterobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dequeiter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeiterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1935,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1938
    functionName: dequeiter_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - dequeiterobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int dequeiter_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1944,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:1945,1
    - Dst: dequeiter_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:1946,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_collectionsmodule.c:1947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dio
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1940
    functionDepth: 2
    functionLinenumber: 1940
    functionLinenumberEnd: 1949
    functionName: dequeiter_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - dequeiter_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dequeiter_dealloc(PyObject *dio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1958,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1964,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1971,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - it
    - deque
    argTypes:
    - dequeiterobject*
    - dequeobject*
    assertStmts:
    - condition: "(!(it->b == it->deque->rightblock &&\n              it->index >
        it->deque->rightindex))"
      pos:
        line_end: 1964
        line_start: 1963
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1976
      start: 1951
    functionDepth: 1
    functionLinenumber: 1951
    functionLinenumberEnd: 1976
    functionName: dequeiter_next_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - CHECK_NOT_END
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_next_lock_held(dequeiterobject *it, dequeobject *deque)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeiterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1982,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:1986,1
    - Dst: dequeiter_next_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:1987,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1978
    functionDepth: 2
    functionLinenumber: 1978
    functionLinenumberEnd: 1991
    functionName: dequeiter_next
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - dequeiter_next_lock_held
    - Py_END_CRITICAL_SECTION2
    - dequeiterobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_next(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_cls
      Src: /src/cpython/Modules/_collectionsmodule.c:1999,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_collectionsmodule.c:2000,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2002,1
    - Dst: deque_iter
      Src: /src/cpython/Modules/_collectionsmodule.c:2004,1
    - Dst: dequeiter_next
      Src: /src/cpython/Modules/_collectionsmodule.c:2009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type == state->dequeiter_type)
      pos:
        line_end: 2001
        line_start: 2001
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2026
      start: 1993
    functionDepth: 3
    functionLinenumber: 1993
    functionLinenumberEnd: 2026
    functionName: dequeiter_new
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - get_module_state_by_cls
    - dequeiter_next
    - deque_iter
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeiterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2031,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2032,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2034
    functionName: dequeiter_len
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE
    - PyLong_FromSsize_t
    - dequeiterobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_len(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeiterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2041,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2042,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2047,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2048,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2050,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2052
    functionName: dequeiter_reduce
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - dequeiterobject_CAST
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_SIZE
    - Py_END_CRITICAL_SECTION2
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_module_state_by_def
      Src: /src/cpython/Modules/_collectionsmodule.c:2086,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2086,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_collectionsmodule.c:2088,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:2091,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2094,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2096,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:2097,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_collectionsmodule.c:2098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2100
    functionName: deque_reviter
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - find_module_state_by_def
    - Py_SIZE
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reviter(dequeobject *deque)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2111,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2115,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:2122,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - it
    - deque
    argTypes:
    - dequeiterobject*
    - dequeobject*
    assertStmts:
    - condition: "(!(it->b == it->deque->leftblock &&\n              it->index < it->deque->leftindex))"
      pos:
        line_end: 2115
        line_start: 2114
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2127
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2127
    functionName: dequereviter_next_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - CHECK_NOT_END
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequereviter_next_lock_held(dequeiterobject *it, dequeobject *deque)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeiterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2133,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2137,1
    - Dst: dequereviter_next_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:2138,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2141
    functionName: dequereviter_next
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - dequereviter_next_lock_held
    - dequeiterobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequereviter_next(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_cls
      Src: /src/cpython/Modules/_collectionsmodule.c:2149,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_collectionsmodule.c:2150,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2152,1
    - Dst: deque_reviter
      Src: /src/cpython/Modules/_collectionsmodule.c:2154,1
    - Dst: dequereviter_next
      Src: /src/cpython/Modules/_collectionsmodule.c:2159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type == state->dequereviter_type)
      pos:
        line_end: 2151
        line_start: 2151
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2176
      start: 2143
    functionDepth: 3
    functionLinenumber: 2143
    functionLinenumberEnd: 2176
    functionName: dequereviter_new
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyArg_ParseTuple
    - dequereviter_next
    - get_module_state_by_cls
    - deque_reviter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequereviter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2206
    functionName: defdictobject_CAST
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: defdictobject_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2219,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_collectionsmodule.c:2225,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_collectionsmodule.c:2227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2228,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2231,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_collectionsmodule.c:2234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2216
    functionDepth: 1
    functionLinenumber: 2216
    functionLinenumberEnd: 2239
    functionName: defdict_missing
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PyObject_SetItem
    - defdictobject_CAST
    - PyErr_SetObject
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_missing(PyObject *op, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2244,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2245,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2241
    functionDepth: 1
    functionLinenumber: 2241
    functionLinenumberEnd: 2247
    functionName: new_defdict
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - defdictobject_CAST
    - Py_TYPE
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_defdict(PyObject *op, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_defdict
      Src: /src/cpython/Modules/_collectionsmodule.c:2258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2251
    functionDepth: 2
    functionLinenumber: 2251
    functionLinenumberEnd: 2259
    functionName: defdict_copy
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - new_defdict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_copy(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2290,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_collectionsmodule.c:2293,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_collectionsmodule.c:2295,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2298,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2300,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:2303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2306,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_collectionsmodule.c:2309,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2315
    functionName: defdict_reduce
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyObject_GetIter
    - _Py_ID
    - defdictobject_CAST
    - PyObject_CallMethodNoArgs
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2341,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2343,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:2344,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2345,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_collectionsmodule.c:2346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2348
    functionName: defdict_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tp_dealloc
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - defdictobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void defdict_dealloc(PyObject *op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2353,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_collectionsmodule.c:2357,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_collectionsmodule.c:2361,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_collectionsmodule.c:2364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2367,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_collectionsmodule.c:2370,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_collectionsmodule.c:2373,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_collectionsmodule.c:2374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2377,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:2380,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:2381,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2386
    functionName: defdict_repr
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - Py_DECREF
    - Py_ReprEnter
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - defdictobject_CAST
    - tp_repr
    - _PyType_Name
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_repr(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_collectionsmodule.c:2393,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2393,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2402,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_collectionsmodule.c:2402,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2402,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2406,1
    - Dst: new_defdict
      Src: /src/cpython/Modules/_collectionsmodule.c:2411,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_collectionsmodule.c:2415,1
    - Dst: right::right
      Src: /src/cpython/Modules/_collectionsmodule.c:2415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_GetBaseByToken(Py_TYPE(right), &defdict_spec, NULL) == 1)
      pos:
        line_end: 2401
        line_start: 2401
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2420
      start: 2388
    functionDepth: 2
    functionLinenumber: 2388
    functionLinenumberEnd: 2420
    functionName: defdict_or
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - right::right
    - new_defdict
    - PyType_GetBaseByToken
    - PyDict_Update
    - PyDict_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_or(PyObject* left, PyObject* right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2425,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2426,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2426,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2427,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_collectionsmodule.c:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2429
    functionName: defdict_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - defdictobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int defdict_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2434,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2435,1
    - Dst: tp_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:2436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2431
    functionDepth: 1
    functionLinenumber: 2431
    functionLinenumberEnd: 2437
    functionName: defdict_tp_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - defdictobject_CAST
    - Py_CLEAR
    - tp_clear
    linkageType: ''
    returnType: int
    signature: int defdict_tp_clear(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2442,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2447,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_collectionsmodule.c:2448,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2450,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_collectionsmodule.c:2452,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2453,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2454,1
    - Dst: PySequence_GetSlice
      Src: /src/cpython/Modules/_collectionsmodule.c:2459,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2463,1
    - Dst: tp_init
      Src: /src/cpython/Modules/_collectionsmodule.c:2464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2465,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2468
    functionName: defdict_init
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PySequence_GetSlice
    - PyTuple_Check
    - PyErr_SetString
    - defdictobject_CAST
    - tp_init
    - PyCallable_Check
    - PyTuple_GET_ITEM
    - Py_XNewRef
    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: 2482
      start: 2481
    functionDepth: 0
    functionLinenumber: 2481
    functionLinenumberEnd: 2482
    functionName: DEFERRED_ADDRESS
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFERRED_ADDRESS(ADDR)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_collectionsmodule.c:2533,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:2535,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2542,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2542,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2542,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Modules/_collectionsmodule.c:2543,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2543,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2544,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2544,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2544,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Modules/_collectionsmodule.c:2545,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2545,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2549,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:2564,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Modules/_collectionsmodule.c:2568,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Modules/_collectionsmodule.c:2573,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:2575,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_collectionsmodule.c:2577,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_collectionsmodule.c:2580,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_collectionsmodule.c:2583,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2587,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_collectionsmodule.c:2591,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2591,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_collectionsmodule.c:2595,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:2597,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2600,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2604,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_collectionsmodule.c:2606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2608,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_collectionsmodule.c:2611,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2614,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2619,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2621,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2622,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2624,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:2625,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 75
    argCount: 3
    argNames:
    - module
    - mapping
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2628
    functionName: _collections__count_elements_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetIter
    - PyIter_Next
    - Py_CLEAR
    - _PyType_Lookup
    - _PyLong_GetZero
    - PyErr_Occurred
    - _PyType_LookupRef
    - PyObject_CallFunctionObjArgs
    - PyNumber_Add
    - PyDict_Check
    - Py_DECREF
    - _Py_ID
    - PyObject_SetItem
    - Py_NewRef
    - Py_TYPE
    - _PyLong_GetOne
    - PyObject_GetAttr
    - _PyObject_HashFast
    - _PyDict_GetItem_KnownHash
    - _PyDict_SetItem_KnownHash
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_collections__count_elements_impl(PyObject *module, PyObject
      *mapping,\n                                  PyObject *iterable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2638
    functionDepth: 0
    functionLinenumber: 2638
    functionLinenumberEnd: 2639
    functionName: tuplegetterobject_CAST
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tuplegetterobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_collectionsmodule.c:2654,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - index
    - doc
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2649
    functionDepth: 0
    functionLinenumber: 2649
    functionLinenumberEnd: 2661
    functionName: tuplegetter_new_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tuplegetterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2666,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2670,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2672,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2674,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_collectionsmodule.c:2676,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2680,1
    - Dst: valid_index
      Src: /src/cpython/Modules/_collectionsmodule.c:2684,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2684,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2685,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_collectionsmodule.c:2689,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2663
    functionDepth: 1
    functionLinenumber: 2663
    functionLinenumberEnd: 2691
    functionName: tuplegetter_descr_get
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyErr_SetString
    - Py_NewRef
    - valid_index
    - PyTuple_GET_ITEM
    - PyErr_Format
    - tuplegetterobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2697,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2702
    functionName: tuplegetter_descr_set
    functionSourceFile: /src/cpython/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: tuplegetterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2707,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2708,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2708,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2704
    functionDepth: 1
    functionLinenumber: 2704
    functionLinenumberEnd: 2711
    functionName: tuplegetter_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tuplegetterobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tuplegetter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tuplegetterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2716,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2713
    functionDepth: 1
    functionLinenumber: 2713
    functionLinenumberEnd: 2719
    functionName: tuplegetter_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tuplegetterobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tuplegetter_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2724,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:2725,1
    - Dst: tuplegetter_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:2726,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_collectionsmodule.c:2727,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2721
    functionDepth: 2
    functionLinenumber: 2721
    functionLinenumberEnd: 2729
    functionName: tuplegetter_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - tuplegetter_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void tuplegetter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tuplegetterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2734,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:2735,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2731
    functionDepth: 1
    functionLinenumber: 2731
    functionLinenumberEnd: 2737
    functionName: tuplegetter_reduce
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tuplegetterobject_CAST
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tuplegetterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2742,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:2743,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:2744,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2739
    functionDepth: 1
    functionLinenumber: 2739
    functionLinenumberEnd: 2746
    functionName: tuplegetter_repr
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - tuplegetterobject_CAST
    - Py_TYPE
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_collectionsmodule.c:2786,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2787,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2788,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2789,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2790,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2783
    functionDepth: 1
    functionLinenumber: 2783
    functionLinenumberEnd: 2793
    functionName: collections_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int collections_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_collectionsmodule.c:2798,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2799,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2800,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2801,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2802,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2805
    functionName: collections_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int collections_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: collections_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:2810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2807
    functionDepth: 2
    functionLinenumber: 2807
    functionLinenumberEnd: 2811
    functionName: collections_free
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - collections_clear
    linkageType: ''
    returnType: void
    signature: void collections_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - MOD
    - ','
    - SPEC
    - ','
    - TYPE
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2824
    functionDepth: 0
    functionLinenumber: 2824
    functionLinenumberEnd: 2834
    functionName: ADD_TYPE
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(MOD, SPEC, TYPE, BASE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_collectionsmodule.c:2837,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2838,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2839,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2840,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2841,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2842,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_collectionsmodule.c:2844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2849
    functionName: collections_exec
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - ADD_TYPE
    - get_module_state
    linkageType: ''
    returnType: int
    signature: int collections_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_collectionsmodule.c:2875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2872
    functionDepth: 1
    functionLinenumber: 2872
    functionLinenumberEnd: 2876
    functionName: PyInit__collections
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__collections(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testcapimodule.c:44,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: get_testcapi_state
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: testcapistate_t
    signature: 'testcapistate_t *

      get_testcapi_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_testcapi_state
      Src: /src/cpython/Modules/_testcapimodule.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: get_testerror
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - get_testcapi_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_testerror(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapimodule.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: simple_object_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void simple_object_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:66,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - test_name
    - msg
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: raiseTestError
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - get_testerror
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raiseTestError(PyObject *self, const char* test_name, const char* msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:80,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - self
    - fatname
    - typname
    - expected
    - got
    argTypes:
    - PyObject*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: sizeof_error
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - get_testerror
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsizeof_error(PyObject *self, const char* fatname, const
      char* typname,\n    int expected, int got)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SIZEOF
      Src: /src/cpython/Modules/_testcapimodule.c:96,1
    - Dst: CHECK_SIZEOF
      Src: /src/cpython/Modules/_testcapimodule.c:98,1
    - Dst: CHECK_SIZEOF
      Src: /src/cpython/Modules/_testcapimodule.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 106
    functionName: test_config
    functionSourceFile: /src/cpython/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: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: CHECK_SIZEOF
    functionSourceFile: /src/cpython/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: 124
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: CHECK_SIZEOF
    functionSourceFile: /src/cpython/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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: IS_SIGNED
    functionSourceFile: /src/cpython/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: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: CHECK_SIGNNESS
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIGNNESS(TYPE, SIGNED)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_testcapimodule.c:176,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testcapimodule.c:222,1
    - Dst: Py_CompileString
      Src: /src/cpython/Modules/_testcapimodule.c:226,1
    - Dst: test_lazy_hash_inheritance
      Src: /src/cpython/Modules/_testcapimodule.c:230,1
    - Dst: Py_UNUSED
      Src: /src/cpython/Modules/_testcapimodule.c:230,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapimodule.c:244,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:246,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:247,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:248,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:254,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:257,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_testcapimodule.c:261,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:262,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:263,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:264,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:267,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:272,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:275,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:280,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:287,1
    - Dst: return_none
      Src: /src/cpython/Modules/_testcapimodule.c:293,1
    - Dst: raise_error
      Src: /src/cpython/Modules/_testcapimodule.c:299,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapimodule.c:345,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:350,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:355,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:356,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:357,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:357,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:363,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:364,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:365,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:366,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:366,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:370,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:371,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:372,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:377,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 379
    functionName: CHECK_SIZEOF
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - PyErr_SetString
    - return_none
    - test_lazy_hash_inheritance
    - Py_INCREF
    - Py_CompileString
    - get_testerror
    - Py_UNUSED
    - PyErr_Occurred
    - raise_error
    - PyErr_Format
    - PyErr_Clear
    - Py_BuildValue
    - Py_DECREF
    - PyBytes_AsString
    - PyVarObject_HEAD_INIT
    - PyObject_New
    - PyObject_Hash
    - Py_REFCNT
    linkageType: ''
    returnType: void
    signature: "void CHECK_SIZEOF(int32_t, 4);\n    CHECK_SIGNNESS(int32_t, 1);\n
      \   CHECK_SIZEOF(uint32_t, 4);\n    CHECK_SIGNNESS(uint32_t, 0);\n    CHECK_SIZEOF(int64_t,
      8);\n    CHECK_SIGNNESS(int64_t, 1);\n    CHECK_SIZEOF(uint64_t, 8);\n    CHECK_SIGNNESS(uint64_t,
      0);\n\n    /* pointer/size types */\n    CHECK_SIZEOF(size_t, sizeof(void *));\n
      \   CHECK_SIGNNESS(size_t, 0);\n    CHECK_SIZEOF(Py_ssize_t, sizeof(void *));\n
      \   CHECK_SIGNNESS(Py_ssize_t, 1);\n\n    CHECK_SIZEOF(uintptr_t, sizeof(void
      *));\n    CHECK_SIGNNESS(uintptr_t, 0);\n    CHECK_SIZEOF(intptr_t, sizeof(void
      *));\n    CHECK_SIGNNESS(intptr_t, 1);\n\n    Py_RETURN_NONE;\n\n#undef IS_SIGNED\n#undef
      CHECK_SIGNESS\n#undef CHECK_SIZEOF\n#if defined(__GNUC__) && ((__GNUC__ > 4)
      || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))\n#pragma GCC diagnostic pop\n#endif\n}\n\n/*
      Issue #4701: Check that PyObject_Hash implicitly calls\n *   PyType_Ready if
      it hasn't already been called\n */\nstatic PyTypeObject _HashInheritanceTester_Type
      = {\n    PyVarObject_HEAD_INIT(NULL, 0)\n    \"hashinheritancetester\",            /*
      Name of this type */\n    sizeof(PyObject),           /* Basic object size */\n
      \   0,                          /* Item size for varobject */\n    simple_object_dealloc,
      \     /* tp_dealloc */\n    0,                          /* tp_vectorcall_offset
      */\n    0,                          /* tp_getattr */\n    0,                          /*
      tp_setattr */\n    0,                          /* tp_as_async */\n    0,                          /*
      tp_repr */\n    0,                          /* tp_as_number */\n    0,                          /*
      tp_as_sequence */\n    0,                          /* tp_as_mapping */\n    0,
      \                         /* tp_hash */\n    0,                          /*
      tp_call */\n    0,                          /* tp_str */\n    PyObject_GenericGetAttr,
      \ /* tp_getattro */\n    0,                          /* tp_setattro */\n    0,
      \                         /* tp_as_buffer */\n    Py_TPFLAGS_DEFAULT,         /*
      tp_flags */\n    0,                          /* tp_doc */\n    0,                          /*
      tp_traverse */\n    0,                          /* tp_clear */\n    0,                          /*
      tp_richcompare */\n    0,                          /* tp_weaklistoffset */\n
      \   0,                          /* tp_iter */\n    0,                          /*
      tp_iternext */\n    0,                          /* tp_methods */\n    0,                          /*
      tp_members */\n    0,                          /* tp_getset */\n    0,                          /*
      tp_base */\n    0,                          /* tp_dict */\n    0,                          /*
      tp_descr_get */\n    0,                          /* tp_descr_set */\n    0,
      \                         /* tp_dictoffset */\n    0,                          /*
      tp_init */\n    0,                          /* tp_alloc */\n    PyType_GenericNew,
      \                 /* tp_new */\n};\n\nstatic PyObject*\npycompilestring(PyObject*
      self, PyObject *obj) {\n    if (PyBytes_CheckExact(obj) == 0) {\n        PyErr_SetString(PyExc_ValueError,
      \"Argument must be a bytes object\");\n        return NULL;\n    }\n    const
      char *the_string = PyBytes_AsString(obj);\n    if (the_string == NULL) {\n        return
      NULL;\n    }\n    return Py_CompileString(the_string, \"<string>\", Py_file_input);\n}\n\nstatic
      PyObject*\ntest_lazy_hash_inheritance(PyObject* self, PyObject *Py_UNUSED(ignored))\n{\n
      \   PyTypeObject *type;\n    PyObject *obj;\n    Py_hash_t hash;\n\n    type
      = &_HashInheritanceTester_Type;\n\n    if (type->tp_dict != NULL)\n        /*
      The type has already been initialized. This probably means\n           -R is
      being used. */\n        Py_RETURN_NONE;\n\n\n    obj = PyObject_New(PyObject,
      type);\n    if (obj == NULL) {\n        PyErr_Clear();\n        PyErr_SetString(\n
      \           get_testerror(self),\n            \"test_lazy_hash_inheritance:
      failed to create object\");\n        return NULL;\n    }\n\n    if (type->tp_dict
      != NULL) {\n        PyErr_SetString(\n            get_testerror(self),\n            \"test_lazy_hash_inheritance:
      type initialised too soon\");\n        Py_DECREF(obj);\n        return NULL;\n
      \   }\n\n    hash = PyObject_Hash(obj);\n    if ((hash == -1) && PyErr_Occurred())
      {\n        PyErr_Clear();\n        PyErr_SetString(\n            get_testerror(self),\n
      \           \"test_lazy_hash_inheritance: could not hash object\");\n        Py_DECREF(obj);\n
      \       return NULL;\n    }\n\n    if (type->tp_dict == NULL) {\n        PyErr_SetString(\n
      \           get_testerror(self),\n            \"test_lazy_hash_inheritance:
      type not initialised by hash()\");\n        Py_DECREF(obj);\n        return
      NULL;\n    }\n\n    if (type->tp_hash != PyType_Type.tp_hash) {\n        PyErr_SetString(\n
      \           get_testerror(self),\n            \"test_lazy_hash_inheritance:
      unexpected hash function\");\n        Py_DECREF(obj);\n        return NULL;\n
      \   }\n\n    Py_DECREF(obj);\n\n    Py_RETURN_NONE;\n}\n\nstatic PyObject *\nreturn_none(void
      *unused)\n{\n    Py_RETURN_NONE;\n}\n\nstatic PyObject *\nraise_error(void *unused)\n{\n
      \   PyErr_SetNone(PyExc_ValueError);\n    return NULL;\n}\n\nstatic PyObject
      *\npy_buildvalue(PyObject *self, PyObject *args)\n{\n    const char *fmt;\n
      \   PyObject *objs[10] = {NULL};\n    if (!PyArg_ParseTuple(args, \"s|OOOOOOOOOO\",
      &fmt,\n            &objs[0], &objs[1], &objs[2], &objs[3], &objs[4],\n            &objs[5],
      &objs[6], &objs[7], &objs[8], &objs[9]))\n    {\n        return NULL;\n    }\n
      \   for(int i = 0; i < 10; i++) {\n        NULLABLE(objs[i]);\n    }\n    return
      Py_BuildValue(fmt,\n            objs[0], objs[1], objs[2], objs[3], objs[4],\n
      \           objs[5], objs[6], objs[7], objs[8], objs[9]);\n}\n\nstatic PyObject
      *\npy_buildvalue_ints(PyObject *self, PyObject *args)\n{\n    const char *fmt;\n
      \   unsigned int values[10] = {0};\n    if (!PyArg_ParseTuple(args, \"s|IIIIIIIIII\",
      &fmt,\n            &values[0], &values[1], &values[2], &values[3], &values[4],\n
      \           &values[5], &values[6], &values[7], &values[8], &values[9]))\n    {\n
      \       return NULL;\n    }\n    return Py_BuildValue(fmt,\n            values[0],
      values[1], values[2], values[3], values[4],\n            values[5], values[6],
      values[7], values[8], values[9]);\n}\n\nstatic int\ntest_buildvalue_N_error(PyObject
      *self, const char *fmt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapimodule.c:386,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:390,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:391,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:396,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:399,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:404,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:406,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:408,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:410,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:412,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 418
    functionName: test_buildvalue_N
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_INCREF
    - Py_BuildValue
    - Py_DECREF
    - raiseTestError
    - test_buildvalue_N_error
    - Py_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_buildvalue_N(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:423,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_testcapimodule.c:427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:428,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:431,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:433,1
    - Dst: Py_IsFalse
      Src: /src/cpython/Modules/_testcapimodule.c:437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:438,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 444
    functionName: test_buildvalue_p
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_IsFalse
    - Py_BuildValue
    - Py_IsTrue
    - Py_DECREF
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_buildvalue_p(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_testcapimodule.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: pyobject_repr_from_null
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_repr_from_null(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_testcapimodule.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: pyobject_str_from_null
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_str_from_null(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Bytes
      Src: /src/cpython/Modules/_testcapimodule.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: pyobject_bytes_from_null
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Bytes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_bytes_from_null(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: set_errno
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_errno(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:490,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:491,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:493,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - callable
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 496
    functionName: _make_call
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached:
    - PyGILState_Ensure
    - PyObject_CallNoArgs
    - Py_XDECREF
    - PyGILState_Release
    linkageType: ''
    returnType: int
    signature: int _make_call(void *callable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:504,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - callable
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: _make_call_from_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _make_call
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _make_call_from_thread(void *callable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:514,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_testcapimodule.c:517,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:518,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:522,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:524,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:525,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapimodule.c:528,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:530,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:533,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:534,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:543,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:544,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 554
    functionName: test_thread_state
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_start_new_thread
    - PyThread_allocate_lock
    - PyArg_ParseTuple
    - PyCallable_Check
    - _make_call
    - PyThread_acquire_lock
    - PyErr_Format
    - PyThread_free_lock
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:559,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: gilstate_ensure_release
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyGILState_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gilstate_ensure_release(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:568,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:569,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 572
    functionName: wait_for_lock
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached:
    - PyThread_free_lock
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void wait_for_lock(void *unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:581,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:584,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:586,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:587,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapimodule.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 590
    functionName: spawn_pthread_waiter
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_start_new_thread
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyThread_acquire_lock
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spawn_pthread_waiter(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:596,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 601
    functionName: end_spawned_pthread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      end_spawned_pthread(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:610,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 613
    functionName: _pending_callback
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _pending_callback(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapimodule.c:627,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:636,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_testcapimodule.c:641,1
    - Dst: Py_AddPendingCall
      Src: /src/cpython/Modules/_testcapimodule.c:649,1
    - Dst: Py_AddPendingCall
      Src: /src/cpython/Modules/_testcapimodule.c:653,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/_testcapimodule.c:660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:664,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:667,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - arg
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 668
    functionName: pending_threadfunc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyArg_ParseTupleAndKeywords
    - PyEval_SaveThread
    - PyLong_FromUnsignedLong
    - Py_AddPendingCall
    - PyEval_RestoreThread
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pending_threadfunc(PyObject *self, PyObject *arg, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetContext
      Src: /src/cpython/Modules/_testcapimodule.c:682,1
    - Dst: PyCapsule_GetDestructor
      Src: /src/cpython/Modules/_testcapimodule.c:684,1
    - Dst: PyCapsule_GetName
      Src: /src/cpython/Modules/_testcapimodule.c:686,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 691
    functionName: capsule_destructor
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_GetDestructor
    - PyCapsule_GetContext
    - PyCapsule_GetPointer
    - PyCapsule_GetName
    linkageType: ''
    returnType: void
    signature: void capsule_destructor(PyObject *o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:707,1
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:708,1
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:709,1
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:710,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_testcapimodule.c:732,1
    - Dst: PyCapsule_SetContext
      Src: /src/cpython/Modules/_testcapimodule.c:733,1
    - Dst: capsule_destructor
      Src: /src/cpython/Modules/_testcapimodule.c:734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:736,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_testcapimodule.c:739,1
    - Dst: PyCapsule_SetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:740,1
    - Dst: PyCapsule_SetName
      Src: /src/cpython/Modules/_testcapimodule.c:741,1
    - Dst: PyCapsule_SetDestructor
      Src: /src/cpython/Modules/_testcapimodule.c:742,1
    - Dst: PyCapsule_SetContext
      Src: /src/cpython/Modules/_testcapimodule.c:743,1
    - Dst: capsule_destructor
      Src: /src/cpython/Modules/_testcapimodule.c:744,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:747,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:748,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:749,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:751,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:754,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:757,1
    - Dst: PyCapsule_SetDestructor
      Src: /src/cpython/Modules/_testcapimodule.c:761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:762,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:764,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testcapimodule.c:781,1
    - Dst: PyCapsule_Import
      Src: /src/cpython/Modules/_testcapimodule.c:783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:785,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:786,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapimodule.c:788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:790,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:793,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:797,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:798,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:803,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:805,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:813,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:816,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:821,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 825
    functionName: test_capsule
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_SetPointer
    - Py_DECREF
    - FAIL
    - PyObject_GetAttrString
    - PyErr_Occurred
    - PyErr_Clear
    - PyCapsule_SetName
    - KNOWN_CAPSULE
    - PyCapsule_SetContext
    - PyImport_ImportModule
    - capsule_destructor
    - raiseTestError
    - PyCapsule_New
    - PyCapsule_GetPointer
    - PyCapsule_SetDestructor
    - PyCapsule_Import
    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: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: FAIL
    functionSourceFile: /src/cpython/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: 780
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: FAIL
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Modules/_testcapimodule.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - test
    - s
    - e
    argTypes:
    - int
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 838
    functionName: print_delta
    functionSourceFile: /src/cpython/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/cpython/Modules/_testcapimodule.c:849,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:853,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:855,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:856,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:860,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:864,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:866,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:867,1
    - Dst: malloc
      Src: /src/cpython/Modules/_testcapimodule.c:871,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:873,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:874,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:880,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:883,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:884,1
    - Dst: free
      Src: /src/cpython/Modules/_testcapimodule.c:885,1
    - Dst: malloc
      Src: /src/cpython/Modules/_testcapimodule.c:889,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:891,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:892,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:898,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:901,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:902,1
    - Dst: free
      Src: /src/cpython/Modules/_testcapimodule.c:903,1
    - Dst: malloc
      Src: /src/cpython/Modules/_testcapimodule.c:906,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:908,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:909,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:915,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:918,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:919,1
    - Dst: free
      Src: /src/cpython/Modules/_testcapimodule.c:920,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:923,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:924,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_testcapimodule.c:926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:927,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:930,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:931,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:934,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:937,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_testcapimodule.c:939,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:940,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:943,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:944,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 947
    functionName: profile_int
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - malloc
    - gettimeofday
    - PyNumber_Add
    - print_delta
    - PyLong_FromLong
    - free
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      profile_int(PyObject *self, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:956,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (str1)
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 959
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 959
    functionName: failing_converter
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: int
    signature: int failing_converter(PyObject *obj, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:965,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:972,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:973,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 978
    functionName: argparsing
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - PyLong_FromSsize_t
    - PyErr_Clear
    - Py_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      argparsing(PyObject *o, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:988,1
    - Dst: PyCode_NewEmpty
      Src: /src/cpython/Modules/_testcapimodule.c:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 993
    functionName: code_newempty
    functionSourceFile: /src/cpython/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: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_testcapimodule.c:999,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_testcapimodule.c:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1002
    functionName: make_memoryview_from_NULL_pointer
    functionSourceFile: /src/cpython/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: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1013,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_testcapimodule.c:1018,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_testcapimodule.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1022
    functionName: buffer_fill_info
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffer_fill_info(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FromContiguous
      Src: /src/cpython/Modules/_testcapimodule.c:1048,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1052,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:1052,1
    - Dst: PyBuffer_FromContiguous
      Src: /src/cpython/Modules/_testcapimodule.c:1061,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1065,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:1065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1024
    functionDepth: 3
    functionLinenumber: 1024
    functionLinenumberEnd: 1072
    functionName: test_from_contiguous
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - get_testerror
    - PyBuffer_FromContiguous
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_from_contiguous(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_testcapimodule.c:1084,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1085,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:1085,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:1086,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_testcapimodule.c:1091,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:1097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1098,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testcapimodule.c:1103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1104,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1105,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:1105,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:1106,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1113,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:1113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1076
    functionDepth: 3
    functionLinenumber: 1076
    functionLinenumberEnd: 1116
    functionName: test_pep3118_obsolete_write_locks
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - get_testerror
    - PyErr_Occurred
    - PyErr_Clear
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyObject_GetBuffer
    - PyTypeObject*::tp_alloc
    - PyBuffer_FillInfo
    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/cpython/Modules/_testcapimodule.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1129
    functionName: getbuffer_with_null_view
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getbuffer_with_null_view(PyObject* self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1137,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:1142,1
    - Dst: PyBuffer_SizeFromFormat
      Src: /src/cpython/Modules/_testcapimodule.c:1142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1143
    functionName: test_PyBuffer_SizeFromFormat
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_SizeFromFormat
    - RETURN_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyBuffer_SizeFromFormat(PyObject *self, PyObject *args)'
  - 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: 1158
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1158
    functionName: crash_no_current_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      crash_no_current_thread(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1164,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:1166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1167,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1173,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1174,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1176,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:1180,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1186,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1187,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1194
    functionName: test_current_tstate_matches
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_EndInterpreter
    - PyErr_SetString
    - PyGILState_GetThisThreadState
    - Py_NewInterpreter
    - PyThreadState_Swap
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_current_tstate_matches(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1206,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1210,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1212,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1214,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1219,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1220,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testcapimodule.c:1223,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1224,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1226,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:1228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1229
    functionName: run_in_subinterp
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_EndInterpreter
    - PyArg_ParseTuple
    - PyLong_FromLong
    - PyErr_SetString
    - PyRun_SimpleStringFlags
    - Py_NewInterpreter
    - PyThreadState_Swap
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      run_in_subinterp(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Modules/_testcapimodule.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1237
    functionName: create_cfunction
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCFunction_NewEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_cfunction(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_testcapimodule.c:1262,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1266,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1266,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1267,1
    - Dst: PyType_FastSubclass
      Src: /src/cpython/Modules/_testcapimodule.c:1267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    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: 1266
        line_start: 1266
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyType_Check(structseq_type))
      pos:
        line_end: 1265
        line_start: 1265
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1271
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1271
    functionName: test_structseq_newtype_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - assert
    - Py_DECREF
    - PyStructSequence_NewType
    - PyType_FastSubclass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntest_structseq_newtype_doesnt_leak(PyObject *Py_UNUSED(self),\n
      \                             PyObject *Py_UNUSED(args))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_testcapimodule.c:1283,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1284,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1285,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1285,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1286,1
    - Dst: PyType_FastSubclass
      Src: /src/cpython/Modules/_testcapimodule.c:1286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(structseq_type))
      pos:
        line_end: 1284
        line_start: 1284
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (structseq_type != NULL)
      pos:
        line_end: 1283
        line_start: 1283
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyType_FastSubclass(structseq_type, Py_TPFLAGS_TUPLE_SUBCLASS))
      pos:
        line_end: 1285
        line_start: 1285
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1290
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1290
    functionName: test_structseq_newtype_null_descr_doc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - assert
    - Py_DECREF
    - PyStructSequence_NewType
    - PyType_FastSubclass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntest_structseq_newtype_null_descr_doc(PyObject *Py_UNUSED(self),\n
      \                             PyObject *Py_UNUSED(args))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1305,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:1308,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:1310,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:1311,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_testcapimodule.c:1314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1317,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:1321,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1324
    functionName: temporary_c_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyGILState_Release
    - PyErr_Print
    - PyThread_release_lock
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void temporary_c_thread(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1335,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1340,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1341,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1344,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1348,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1350,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1351,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapimodule.c:1353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1355,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1356,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1357,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1361,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1362,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1370,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1373,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:1376,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1378,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1382,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1386
    functionName: call_in_temporary_c_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_start_new_thread
    - PyThread_allocate_lock
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyThread_release_lock
    - Py_NewRef
    - PyThread_acquire_lock
    - PyThread_free_lock
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_in_temporary_c_thread(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1393,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1396,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1401
    functionName: join_temporary_c_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_free_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      join_temporary_c_thread(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1413,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1417,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1419,1
    - Dst: PyMarshal_WriteLongToFile
      Src: /src/cpython/Modules/_testcapimodule.c:1423,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1424,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1424,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1423
        line_start: 1423
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1428
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1428
    functionName: pymarshal_write_long_to_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_Occurred
    - Py_fopen
    - PyErr_SetFromErrno
    - PyMarshal_WriteLongToFile
    - assert
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_write_long_to_file(PyObject* self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1438,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1442,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1444,1
    - Dst: PyMarshal_WriteObjectToFile
      Src: /src/cpython/Modules/_testcapimodule.c:1448,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1449,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1449,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1448
        line_start: 1448
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1453
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1453
    functionName: pymarshal_write_object_to_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_Occurred
    - Py_fopen
    - PyErr_SetFromErrno
    - PyMarshal_WriteObjectToFile
    - assert
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_write_object_to_file(PyObject* self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1463,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1466,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1468,1
    - Dst: PyMarshal_ReadShortFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1472,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1473,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1475,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1476,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1479
    functionName: pymarshal_read_short_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    - PyErr_Occurred
    - ftell
    - PyMarshal_ReadShortFromFile
    - Py_fopen
    - PyErr_SetFromErrno
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_short_from_file(PyObject* self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1488,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1491,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1493,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1497,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1498,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1500,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1501,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1504
    functionName: pymarshal_read_long_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    - PyErr_Occurred
    - ftell
    - PyMarshal_ReadLongFromFile
    - Py_fopen
    - PyErr_SetFromErrno
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_long_from_file(PyObject* self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1510,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1513,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1515,1
    - Dst: PyMarshal_ReadLastObjectFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1519,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1520,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1522,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1527
    functionName: pymarshal_read_last_object_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyMarshal_ReadLastObjectFromFile
    - PyArg_ParseTuple
    - ftell
    - Py_fopen
    - PyErr_SetFromErrno
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_last_object_from_file(PyObject* self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1533,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1536,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1538,1
    - Dst: PyMarshal_ReadObjectFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1542,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1543,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1545,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1550
    functionName: pymarshal_read_object_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyMarshal_ReadObjectFromFile
    - PyArg_ParseTuple
    - ftell
    - Py_fopen
    - PyErr_SetFromErrno
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_object_from_file(PyObject* self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1559
    functionName: return_null_without_error
    functionSourceFile: /src/cpython/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/cpython/Modules/_testcapimodule.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1568
    functionName: return_result_with_error
    functionSourceFile: /src/cpython/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/cpython/Modules/_testcapimodule.c:1574,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1578,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_testcapimodule.c:1579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1570
    functionDepth: 1
    functionLinenumber: 1570
    functionLinenumberEnd: 1580
    functionName: getitem_with_error
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_GetItem
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getitem_with_error(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1588,1
    - Dst: raise
      Src: /src/cpython/Modules/_testcapimodule.c:1601,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_testcapimodule.c:1602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1603
    functionName: raise_SIGINT_then_send_None
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - raise
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raise_SIGINT_then_send_None(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapimodule.c:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1611
    functionName: stack_pointer
    functionSourceFile: /src/cpython/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/cpython/Modules/_testcapimodule.c:1619,1
    - Dst: W_STOPCODE
      Src: /src/cpython/Modules/_testcapimodule.c:1622,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:1623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1624
    functionName: py_w_stopcode
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - W_STOPCODE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_w_stopcode(PyObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Modules/_testcapimodule.c:1632,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1633,1
    - Dst: PyThread_tss_create
      Src: /src/cpython/Modules/_testcapimodule.c:1637,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1638,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Modules/_testcapimodule.c:1641,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1642,1
    - Dst: PyThread_tss_create
      Src: /src/cpython/Modules/_testcapimodule.c:1646,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1647,1
    - Dst: CHECK_TSS_API
      Src: /src/cpython/Modules/_testcapimodule.c:1661,1
    - Dst: PyThread_tss_set
      Src: /src/cpython/Modules/_testcapimodule.c:1661,1
    - Dst: CHECK_TSS_API
      Src: /src/cpython/Modules/_testcapimodule.c:1662,1
    - Dst: PyThread_tss_get
      Src: /src/cpython/Modules/_testcapimodule.c:1662,1
    - Dst: PyThread_tss_delete
      Src: /src/cpython/Modules/_testcapimodule.c:1664,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Modules/_testcapimodule.c:1665,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1666,1
    - Dst: PyThread_tss_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:1671,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1673,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Modules/_testcapimodule.c:1676,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1677,1
    - Dst: PyThread_tss_free
      Src: /src/cpython/Modules/_testcapimodule.c:1681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1684
    functionName: test_pythread_tss_key_state
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_alloc
    - PyThread_tss_create
    - PyThread_tss_is_created
    - PyThread_tss_get
    - PyErr_SetString
    - PyThread_tss_set
    - PyThread_tss_delete
    - raiseTestError
    - CHECK_TSS_API
    - PyThread_tss_free
    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: 1660
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1660
    functionName: CHECK_TSS_API
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TSS_API(expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1695,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:1699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1703,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_testcapimodule.c:1705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1706
    functionName: bad_get
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - PyObject_Repr
    - Py_DECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bad_get(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1724
    functionName: _null_to_none
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _null_to_none(PyObject* obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1729,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1726
    functionDepth: 1
    functionLinenumber: 1726
    functionLinenumberEnd: 1730
    functionName: meth_varargs
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _null_to_none
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_varargs(PyObject* self, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1735,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1735,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1732
    functionDepth: 1
    functionLinenumber: 1732
    functionLinenumberEnd: 1736
    functionName: meth_varargs_keywords
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _null_to_none
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_varargs_keywords(PyObject* self, PyObject* args, PyObject* kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1741,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1742
    functionName: meth_o
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _null_to_none
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_o(PyObject* self, PyObject* obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 1
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    functionName: meth_noargs
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _null_to_none
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_noargs(PyObject* self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapimodule.c:1753,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:1758,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:1759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - args
    - nargs
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1762
    functionName: _fastcall_to_tuple
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_SET_ITEM
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _fastcall_to_tuple(PyObject* const* args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1767,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1768,1
    - Dst: _fastcall_to_tuple
      Src: /src/cpython/Modules/_testcapimodule.c:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1764
    functionDepth: 2
    functionLinenumber: 1764
    functionLinenumberEnd: 1770
    functionName: meth_fastcall
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _null_to_none
    - Py_BuildValue
    - _fastcall_to_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_fastcall(PyObject* self, PyObject* const* args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _fastcall_to_tuple
      Src: /src/cpython/Modules/_testcapimodule.c:1776,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1780,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testcapimodule.c:1782,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1784,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (args != NULL || nargs == 0)
      pos:
        line_end: 1779
        line_start: 1779
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1785
      start: 1772
    functionDepth: 2
    functionLinenumber: 1772
    functionLinenumberEnd: 1785
    functionName: meth_fastcall_keywords
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _null_to_none
    - Py_BuildValue
    - PyObject_Vectorcall
    - _fastcall_to_tuple
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmeth_fastcall_keywords(PyObject* self, PyObject* const*
      args,\n                       Py_ssize_t nargs, PyObject* kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1794,1
    - Dst: PyCFunction_Call
      Src: /src/cpython/Modules/_testcapimodule.c:1797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1798
    functionName: test_pycfunction_call
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Call
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pycfunction_call(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1805,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Modules/_testcapimodule.c:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1810
    functionName: pynumber_tobase
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pynumber_tobase(PyObject *module, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1831,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1834,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1834,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1837,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapimodule.c:1843,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1847,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:1849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1851,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (base == NULL || PyType_Check(base))
      pos:
        line_end: 1833
        line_start: 1833
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1855
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1855
    functionName: get_basic_static_type
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyType_Ready
    - Py_NewRef
    - PyTuple_Pack
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_basic_static_type(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1863,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1864,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1867,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1868,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:1871,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1872,1
    - Dst: PyThreadState_EnterTracing
      Src: /src/cpython/Modules/_testcapimodule.c:1875,1
    - Dst: PyThreadState_LeaveTracing
      Src: /src/cpython/Modules/_testcapimodule.c:1876,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_testcapimodule.c:1879,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1882,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1883,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1883,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1887,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1888,1
    - Dst: PyThreadState_GetFrame
      Src: /src/cpython/Modules/_testcapimodule.c:1891,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1892,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1893,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1894,1
    - Dst: PyThreadState_GetID
      Src: /src/cpython/Modules/_testcapimodule.c:1897,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 1882
        line_start: 1882
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyFrame_Check(frame))
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (tstate != NULL)
      pos:
        line_end: 1863
        line_start: 1863
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (frame != NULL)
      pos:
        line_end: 1891
        line_start: 1891
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (interp != NULL)
      pos:
        line_end: 1887
        line_start: 1887
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (tstate2 == tstate)
      pos:
        line_end: 1867
        line_start: 1867
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (tstate3 == tstate)
      pos:
        line_end: 1871
        line_start: 1871
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (dict != NULL)
      pos:
        line_end: 1881
        line_start: 1881
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (id >= 1)
      pos:
        line_end: 1897
        line_start: 1897
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1859
    functionDepth: 1
    functionLinenumber: 1859
    functionLinenumberEnd: 1901
    functionName: test_tstate_capi
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_EnterTracing
    - PyThreadState_GetDict
    - PyFrame_Check
    - PyThreadState_GetFrame
    - Py_DECREF
    - PyThreadState_GetID
    - PyThreadState_GetInterpreter
    - PyThreadState_LeaveTracing
    - PyThreadState_GetUnchecked
    - PyDict_Check
    - PyThreadState_Get
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_tstate_capi(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGen_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1906,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1907,1
    - Dst: PyGen_GetCode
      Src: /src/cpython/Modules/_testcapimodule.c:1910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - gen
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1911
    functionName: gen_get_code
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyGen_Check
    - PyErr_SetString
    - PyGen_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_get_code(PyObject *self, PyObject *gen)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1928,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1942,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1943,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1944,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1945,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1946,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:1951,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testcapimodule.c:1952,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_testcapimodule.c:1957,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_testcapimodule.c:1959,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:1961,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_testcapimodule.c:1967,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:1978,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testcapimodule.c:1979,1
    - Dst: PyEval_EvalCodeEx
      Src: /src/cpython/Modules/_testcapimodule.c:1982,1
    - Dst: PyMem_DEL
      Src: /src/cpython/Modules/_testcapimodule.c:1998,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - mod
    - pos_args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 2002
    functionName: eval_eval_code_ex
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyDict_Next
    - PyEval_EvalCodeEx
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PyMem_DEL
    - PyMem_NEW
    - PyErr_NoMemory
    - PyDict_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_eval_code_ex(PyObject *mod, PyObject *pos_args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testcapimodule.c:2007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2004
    functionDepth: 1
    functionLinenumber: 2004
    functionLinenumberEnd: 2014
    functionName: get_feature_macros
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_feature_macros(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_NewEmpty
      Src: /src/cpython/Modules/_testcapimodule.c:2019,1
    - Dst: PyCode_GetCode
      Src: /src/cpython/Modules/_testcapimodule.c:2025,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2029,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2029,1
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/_testcapimodule.c:2030,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2035,1
    - Dst: PyCode_GetVarnames
      Src: /src/cpython/Modules/_testcapimodule.c:2039,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2043,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2045,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2048,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2053,1
    - Dst: PyCode_GetCellvars
      Src: /src/cpython/Modules/_testcapimodule.c:2057,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2061,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2063,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2066,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2071,1
    - Dst: PyCode_GetFreevars
      Src: /src/cpython/Modules/_testcapimodule.c:2075,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2079,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2081,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2085,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2094,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_CheckExact(co_code))
      pos:
        line_end: 2028
        line_start: 2028
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2096
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2096
    functionName: test_code_api
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCode_NewEmpty
    - PyTuple_CheckExact
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyCode_GetCellvars
    - PyCode_GetVarnames
    - PyErr_SetString
    - PyObject_Length
    - PyCode_GetCode
    - PyCode_GetFreevars
    - PyBytes_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_code_api(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2101,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2101,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:2106,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/cpython/Modules/_testcapimodule.c:2110,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:2111,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapimodule.c:2115,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:2119,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapimodule.c:2120,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2125,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2126,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - obj
    - f
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(obj))
      pos:
        line_end: 2100
        line_start: 2100
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2129
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2129
    functionName: record_func
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyList_Append
    - PyTuple_SET_ITEM
    - PyList_Check
    - PyFrame_GetLineNumber
    - PyLong_FromLong
    - PyTuple_Pack
    - assert
    linkageType: ''
    returnType: int
    signature: int record_func(PyObject *obj, PyFrameObject *f, int what, PyObject
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2135,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2136,1
    - Dst: PyEval_SetTrace
      Src: /src/cpython/Modules/_testcapimodule.c:2139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2141
    functionName: settrace_to_record
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyEval_SetTrace
    - PyErr_SetString
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      settrace_to_record(PyObject *self, PyObject *list)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2146,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2146,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2149,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapimodule.c:2152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - obj
    - f
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(obj))
      pos:
        line_end: 2145
        line_start: 2145
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2157
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2157
    functionName: error_func
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyList_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int error_func(PyObject *obj, PyFrameObject *f, int what, PyObject
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2162,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2163,1
    - Dst: PyEval_SetTrace
      Src: /src/cpython/Modules/_testcapimodule.c:2166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2168
    functionName: settrace_to_error
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyEval_SetTrace
    - PyErr_SetString
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      settrace_to_error(PyObject *self, PyObject *list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2180,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2184,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_testcapimodule.c:2184,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2185,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_testcapimodule.c:2185,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2186,1
    - Dst: Py_ABS
      Src: /src/cpython/Modules/_testcapimodule.c:2186,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2189,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapimodule.c:2189,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_testcapimodule.c:2189,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2193,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapimodule.c:2193,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2197,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/_testcapimodule.c:2197,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2201,1
    - Dst: _Py_IS_TYPE_SIGNED
      Src: /src/cpython/Modules/_testcapimodule.c:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_MAX(5, 11) == 11)
      pos:
        line_end: 2184
        line_start: 2184
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_MIN(5, 11) == 5)
      pos:
        line_end: 2183
        line_start: 2183
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_ABS(-5) == 5)
      pos:
        line_end: 2185
        line_start: 2185
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (strcmp(Py_STRINGIFY(123), "123") == 0)
      pos:
        line_end: 2188
        line_start: 2188
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_ARRAY_LENGTH(array) == 3)
      pos:
        line_end: 2192
        line_start: 2192
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!_Py_IS_TYPE_SIGNED(unsigned int))
      pos:
        line_end: 2200
        line_start: 2200
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_CHARMASK(c) == 7)
      pos:
        line_end: 2196
        line_start: 2196
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2204
      start: 2170
    functionDepth: 1
    functionLinenumber: 2170
    functionLinenumberEnd: 2204
    functionName: test_macros
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_STRINGIFY
    - Py_MAX
    - Py_BUILD_ASSERT
    - Py_CHARMASK
    - Py_ABS
    - strcmp
    - _Py_IS_TYPE_SIGNED
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_macros(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_testcapimodule.c:2215,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:2220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2221,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2225,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:2228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2230,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2235,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2235,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2236,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2236,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2237,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2237,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2238,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2238,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2242,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_testcapimodule.c:2242,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2243,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2244,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2244,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2245,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2246,1
    - Dst: PyWeakref_GetObject
      Src: /src/cpython/Modules/_testcapimodule.c:2249,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2250,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/cpython/Modules/_testcapimodule.c:2253,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2254,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2257,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2258,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2260,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2260,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2263,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/cpython/Modules/_testcapimodule.c:2263,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2267,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_testcapimodule.c:2267,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2268,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2272,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2272,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2273,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2273,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2274,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2274,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2277,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:2277,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2279,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_testcapimodule.c:2279,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2280,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2280,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2281,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2282,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2285,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:2285,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2286,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2286,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2287,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2287,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2288,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2291,1
    - Dst: PyWeakref_GetObject
      Src: /src/cpython/Modules/_testcapimodule.c:2291,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2292,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2292,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2293,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2297,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_testcapimodule.c:2297,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2298,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2298,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2299,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2300,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2303,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2303,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2304,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2304,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2305,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2308,1
    - Dst: PyWeakref_GetObject
      Src: /src/cpython/Modules/_testcapimodule.c:2308,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2309,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2309,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2284
        line_start: 2284
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_IsDead(invalid_weakref) == -1)
      pos:
        line_end: 2285
        line_start: 2285
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(weakref, &ref) == 1)
      pos:
        line_end: 2241
        line_start: 2241
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == obj)
      pos:
        line_end: 2253
        line_start: 2253
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 2256
        line_start: 2256
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_CheckRefExact(weakref))
      pos:
        line_end: 2235
        line_start: 2235
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_IsDead(weakref))
      pos:
        line_end: 2243
        line_start: 2243
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == NULL)
      pos:
        line_end: 2298
        line_start: 2298
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetObject(NULL) == NULL)
      pos:
        line_end: 2307
        line_start: 2307
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_REFCNT(obj) == refcnt)
      pos:
        line_end: 2237
        line_start: 2237
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(weakref, &ref) == 0)
      pos:
        line_end: 2266
        line_start: 2266
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2276
        line_start: 2276
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == NULL)
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GET_OBJECT(weakref) == Py_None)
      pos:
        line_end: 2262
        line_start: 2262
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_Check(weakref))
      pos:
        line_end: 2234
        line_start: 2234
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_IsDead(weakref))
      pos:
        line_end: 2259
        line_start: 2259
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_TypeError))
      pos:
        line_end: 2286
        line_start: 2286
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == obj)
      pos:
        line_end: 2249
        line_start: 2249
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_Check(invalid_weakref))
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_REFCNT(obj) == (refcnt + 1))
      pos:
        line_end: 2244
        line_start: 2244
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_IsDead(NULL) == -1)
      pos:
        line_end: 2302
        line_start: 2302
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_CheckRefExact(invalid_weakref))
      pos:
        line_end: 2272
        line_start: 2272
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_CheckRefExact(weakref))
      pos:
        line_end: 2236
        line_start: 2236
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_TypeError))
      pos:
        line_end: 2279
        line_start: 2279
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2308
        line_start: 2308
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2297
        line_start: 2297
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == NULL)
      pos:
        line_end: 2267
        line_start: 2267
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(invalid_weakref, &ref) == -1)
      pos:
        line_end: 2278
        line_start: 2278
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetObject(invalid_weakref) == NULL)
      pos:
        line_end: 2290
        line_start: 2290
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(NULL, &ref) == -1)
      pos:
        line_end: 2296
        line_start: 2296
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == obj)
      pos:
        line_end: 2242
        line_start: 2242
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2291
        line_start: 2291
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_CheckRefExact(invalid_weakref))
      pos:
        line_end: 2273
        line_start: 2273
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2317
      start: 2206
    functionDepth: 1
    functionLinenumber: 2206
    functionLinenumberEnd: 2317
    functionName: test_weakref_capi
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyWeakref_NewRef
    - PyObject_CallNoArgs
    - PyObject_CallFunction
    - Py_DECREF
    - PyWeakref_GetObject
    - PyErr_Occurred
    - PyWeakref_GET_OBJECT
    - PyWeakref_GetRef
    - PyWeakref_Check
    - PyWeakref_IsDead
    - PyErr_ExceptionMatches
    - PyWeakref_CheckRefExact
    - PyErr_Clear
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_weakref_capi(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2327,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapimodule.c:2327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - obj
    - event
    - data
    argTypes:
    - PyObject*
    - PyRefTracerEvent
    - void*
    assertStmts:
    - condition: (the_data->create_count + the_data->destroy_count < (int)Py_ARRAY_LENGTH(the_data->addresses))
      pos:
        line_end: 2326
        line_start: 2326
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2335
      start: 2325
    functionDepth: 1
    functionLinenumber: 2325
    functionLinenumberEnd: 2335
    functionName: _simpletracer
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int _simpletracer(PyObject *obj, PyRefTracerEvent event, void* data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyRefTracer_GetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2342,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2347,1
    - Dst: PyRefTracer_GetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2354,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2355,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapimodule.c:2360,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testcapimodule.c:2364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2372,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2375,1
    - Dst: PyRefTracer_GetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2378,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2379,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2386,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2393,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2396,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2399,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2337
    functionDepth: 1
    functionLinenumber: 2337
    functionLinenumberEnd: 2401
    functionName: test_reftracer
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyErr_SetString
    - PyRefTracer_SetTracer
    - PyRefTracer_GetTracer
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_reftracer(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_testcapimodule.c:2406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2410
    functionName: function_set_warning
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_set_warning(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testcapimodule.c:2415,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testcapimodule.c:2416,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testcapimodule.c:2418,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testcapimodule.c:2419,1
    - Dst: Py_BEGIN_CRITICAL_SECTION_MUTEX
      Src: /src/cpython/Modules/_testcapimodule.c:2424,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testcapimodule.c:2425,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2_MUTEX
      Src: /src/cpython/Modules/_testcapimodule.c:2427,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testcapimodule.c:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2412
    functionDepth: 1
    functionLinenumber: 2412
    functionLinenumberEnd: 2432
    functionName: test_critical_sections
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION2_MUTEX
    - Py_END_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION_MUTEX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapimodule.c:2439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(arg)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2437
    functionDepth: 1
    functionLinenumber: 2437
    functionLinenumberEnd: 2440
    functionName: finalize_thread_hang_cleanup_callback
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void finalize_thread_hang_cleanup_callback(void *Py_UNUSED(arg))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cleanup_push
      Src: /src/cpython/Modules/_testcapimodule.c:2452,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:2454,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapimodule.c:2456,1
    - Dst: pthread_cleanup_pop
      Src: /src/cpython/Modules/_testcapimodule.c:2458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2447
    functionDepth: 1
    functionLinenumber: 2447
    functionLinenumberEnd: 2461
    functionName: finalize_thread_hang
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - pthread_cleanup_push
    - pthread_cleanup_pop
    - Py_FatalError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      finalize_thread_hang(PyObject *self, PyObject *callback)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2475,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2475,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2476,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (PyThreadState_Get() == at_data->tstate)
      pos:
        line_end: 2474
        line_start: 2474
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyInterpreterState_Get() == at_data->interp)
      pos:
        line_end: 2475
        line_start: 2475
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2478
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2478
    functionName: atexit_callback
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - PyThreadState_Get
    - assert
    linkageType: ''
    returnType: void
    signature: void atexit_callback(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2483,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2484,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2487,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2488,1
    - Dst: PyUnstable_AtExit
      Src: /src/cpython/Modules/_testcapimodule.c:2493,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2495,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2496,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2497,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2502,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2480
    functionDepth: 1
    functionLinenumber: 2480
    functionLinenumberEnd: 2510
    functionName: test_atexit
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_EndInterpreter
    - PyInterpreterState_Get
    - PyErr_SetString
    - PyUnstable_AtExit
    - Py_NewInterpreter
    - PyThreadState_Swap
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_atexit(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyVectorcall_NARGS
      Src: /src/cpython/Modules/_testcapimodule.c:2515,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2517,1
    - Dst: PyLong_AsInt32
      Src: /src/cpython/Modules/_testcapimodule.c:2521,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2525,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2526,1
    - Dst: PyLong_FromInt32
      Src: /src/cpython/Modules/_testcapimodule.c:2529,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Modules/_testcapimodule.c:2529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - nargsf
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2512
    functionDepth: 1
    functionLinenumber: 2512
    functionLinenumberEnd: 2530
    functionName: code_offset_to_line
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyVectorcall_NARGS
    - PyCode_Check
    - PyLong_FromInt32
    - PyErr_SetString
    - PyLong_AsInt32
    - PyCode_Addr2Line
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_offset_to_line(PyObject* self, PyObject* const* args, Py_ssize_t nargsf)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Modules/_testcapimodule.c:2537,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:2537,1
    - Dst: printf
      Src: /src/cpython/Modules/_testcapimodule.c:2540,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - obj
    - event
    - counter_data
    argTypes:
    - PyObject*
    - PyRefTracerEvent
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2533
    functionDepth: 0
    functionLinenumber: 2533
    functionLinenumberEnd: 2543
    functionName: _reftrace_printer
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - printf
    linkageType: ''
    returnType: int
    signature: int _reftrace_printer(PyObject *obj, PyRefTracerEvent event, void *counter_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2550,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ob
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2556
    functionName: toggle_reftrace_printer
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyRefTracer_SetTracer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      toggle_reftrace_printer(PyObject *ob, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:2663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2660
    functionDepth: 1
    functionLinenumber: 2660
    functionLinenumberEnd: 2664
    functionName: matmulType_matmul
    functionSourceFile: /src/cpython/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/cpython/Modules/_testcapimodule.c:2669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2666
    functionDepth: 1
    functionLinenumber: 2666
    functionLinenumberEnd: 2670
    functionName: matmulType_imatmul
    functionSourceFile: /src/cpython/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/cpython/Modules/_testcapimodule.c:2675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2672
    functionDepth: 0
    functionLinenumber: 2672
    functionLinenumberEnd: 2676
    functionName: matmulType_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void matmulType_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapimodule.c:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - other
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2767
    functionName: ipowType_ipow
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ipowType_ipow(PyObject *self, PyObject *other, 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: 2787
      start: 2786
    functionDepth: 0
    functionLinenumber: 2786
    functionLinenumberEnd: 2787
    functionName: awaitObject_CAST
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: awaitObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_testcapimodule.c:2794,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:2797,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:2802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2788
    functionDepth: 1
    functionLinenumber: 2788
    functionLinenumberEnd: 2805
    functionName: awaitObject_new
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      awaitObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: awaitObject_CAST
      Src: /src/cpython/Modules/_testcapimodule.c:2811,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:2812,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:2813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2808
    functionDepth: 1
    functionLinenumber: 2808
    functionLinenumberEnd: 2814
    functionName: awaitObject_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - awaitObject_CAST
    - Py_TYPE
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void awaitObject_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: awaitObject_CAST
      Src: /src/cpython/Modules/_testcapimodule.c:2820,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:2821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2817
    functionDepth: 1
    functionLinenumber: 2817
    functionLinenumberEnd: 2822
    functionName: awaitObject_await
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - awaitObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      awaitObject_await(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_new
      Src: /src/cpython/Modules/_testcapimodule.c:2886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2889
    functionName: MyList_new
    functionSourceFile: /src/cpython/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/cpython/Modules/_testcapimodule.c:2898,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_testcapimodule.c:2901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2891
    functionDepth: 1
    functionLinenumber: 2891
    functionLinenumberEnd: 2902
    functionName: MyList_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - tp_dealloc
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void MyList_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:2956,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:2957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2952
    functionDepth: 1
    functionLinenumber: 2952
    functionLinenumberEnd: 2958
    functionName: generic_alias_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void generic_alias_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapimodule.c:2964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(bases)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2960
    functionDepth: 1
    functionLinenumber: 2960
    functionLinenumberEnd: 2965
    functionName: generic_alias_mro_entries
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_alias_mro_entries(PyObject *op, PyObject *Py_UNUSED(bases))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapimodule.c:2985,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:2989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2991
      start: 2982
    functionDepth: 1
    functionLinenumber: 2982
    functionLinenumberEnd: 2991
    functionName: generic_alias_new
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_alias_new(PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_alias_new
      Src: /src/cpython/Modules/_testcapimodule.c:3000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2997
    functionDepth: 2
    functionLinenumber: 2997
    functionLinenumberEnd: 3001
    functionName: generic_class_getitem
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - generic_alias_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_class_getitem(PyObject *type, PyObject *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapimodule.c:3095,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:3098,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3090
    functionDepth: 1
    functionLinenumber: 3090
    functionLinenumberEnd: 3105
    functionName: ContainerNoGC_new
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ContainerNoGC_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3111,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3107
    functionDepth: 0
    functionLinenumber: 3107
    functionLinenumberEnd: 3113
    functionName: ContainerNoGC_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void ContainerNoGC_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapimodule.c:3142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3138
    functionDepth: 1
    functionLinenumber: 3138
    functionLinenumberEnd: 3144
    functionName: ManualHeapType_traverse
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ManualHeapType_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapimodule.c:3150,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3151,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3152,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3146
    functionDepth: 0
    functionLinenumber: 3146
    functionLinenumberEnd: 3155
    functionName: ManualHeapType_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void ManualHeapType_dealloc(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:3162,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapimodule.c:3174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3176,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:3179,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3157
    functionDepth: 1
    functionLinenumber: 3157
    functionLinenumberEnd: 3185
    functionName: create_manual_heap_type
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_Ready
    - Py_NewRef
    - tp_alloc
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_manual_heap_type(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_testcapimodule.c:3192,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapimodule.c:3193,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3191
    functionDepth: 1
    functionLinenumber: 3191
    functionLinenumberEnd: 3195
    functionName: ManagedDict_traverse
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - PyObject_VisitManagedDict
    linkageType: ''
    returnType: int
    signature: int ManagedDict_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Modules/_testcapimodule.c:3198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3197
    functionDepth: 1
    functionLinenumber: 3197
    functionLinenumberEnd: 3200
    functionName: ManagedDict_clear
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearManagedDict
    linkageType: ''
    returnType: int
    signature: int ManagedDict_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapimodule.c:3226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3223
    functionDepth: 1
    functionLinenumber: 3223
    functionLinenumberEnd: 3227
    functionName: create_managed_dict_type
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_FromSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_managed_dict_type(void)'
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testcapimodule.c:3244,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testcapimodule.c:3248,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3251,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3252,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3255,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3257,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3258,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3259,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3262,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3263,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3265,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3267,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3268,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3271,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3273,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3274,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3276,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3278,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3279,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3281,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3283,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3284,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3286,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3288,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3289,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3291,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3293,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3294,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3296,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3298,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3299,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3301,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3301,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3302,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3302,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3303,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3303,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3304,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3304,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3305,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3305,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3306,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3306,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3307,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3307,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3308,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3308,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3309,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:3309,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3310,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3310,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3311,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3311,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3312,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:3312,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3313,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3313,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3314,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3314,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3315,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3315,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3316,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3316,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3317,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapimodule.c:3317,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3318,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapimodule.c:3318,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3319,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testcapimodule.c:3319,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3320,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3320,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3321,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3321,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3322,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3322,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3323,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3323,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3324,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3324,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3325,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3325,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3326,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3326,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3327,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:3327,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3328,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3329,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testcapimodule.c:3331,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3332,1
    - Dst: PyLong_FromInt32
      Src: /src/cpython/Modules/_testcapimodule.c:3332,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3333,1
    - Dst: PyLong_FromInt32
      Src: /src/cpython/Modules/_testcapimodule.c:3333,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3334,1
    - Dst: PyLong_FromUInt32
      Src: /src/cpython/Modules/_testcapimodule.c:3334,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3335,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testcapimodule.c:3335,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3336,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testcapimodule.c:3336,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3337,1
    - Dst: PyLong_FromUInt64
      Src: /src/cpython/Modules/_testcapimodule.c:3337,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapimodule.c:3339,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapimodule.c:3342,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapimodule.c:3345,1
    - Dst: get_testcapi_state
      Src: /src/cpython/Modules/_testcapimodule.c:3349,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_testcapimodule.c:3350,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3351,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3353,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3356,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3357,1
    - Dst: create_manual_heap_type
      Src: /src/cpython/Modules/_testcapimodule.c:3361,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapimodule.c:3365,1
    - Dst: create_managed_dict_type
      Src: /src/cpython/Modules/_testcapimodule.c:3369,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapimodule.c:3373,1
    - Dst: _PyTestCapi_Init_Vectorcall
      Src: /src/cpython/Modules/_testcapimodule.c:3378,1
    - Dst: _PyTestCapi_Init_Heaptype
      Src: /src/cpython/Modules/_testcapimodule.c:3381,1
    - Dst: _PyTestCapi_Init_Abstract
      Src: /src/cpython/Modules/_testcapimodule.c:3384,1
    - Dst: _PyTestCapi_Init_Bytes
      Src: /src/cpython/Modules/_testcapimodule.c:3387,1
    - Dst: _PyTestCapi_Init_Unicode
      Src: /src/cpython/Modules/_testcapimodule.c:3390,1
    - Dst: _PyTestCapi_Init_GetArgs
      Src: /src/cpython/Modules/_testcapimodule.c:3393,1
    - Dst: _PyTestCapi_Init_DateTime
      Src: /src/cpython/Modules/_testcapimodule.c:3396,1
    - Dst: _PyTestCapi_Init_Docstring
      Src: /src/cpython/Modules/_testcapimodule.c:3399,1
    - Dst: _PyTestCapi_Init_Mem
      Src: /src/cpython/Modules/_testcapimodule.c:3402,1
    - Dst: _PyTestCapi_Init_Watchers
      Src: /src/cpython/Modules/_testcapimodule.c:3405,1
    - Dst: _PyTestCapi_Init_Long
      Src: /src/cpython/Modules/_testcapimodule.c:3408,1
    - Dst: _PyTestCapi_Init_Float
      Src: /src/cpython/Modules/_testcapimodule.c:3411,1
    - Dst: _PyTestCapi_Init_Complex
      Src: /src/cpython/Modules/_testcapimodule.c:3414,1
    - Dst: _PyTestCapi_Init_Numbers
      Src: /src/cpython/Modules/_testcapimodule.c:3417,1
    - Dst: _PyTestCapi_Init_Dict
      Src: /src/cpython/Modules/_testcapimodule.c:3420,1
    - Dst: _PyTestCapi_Init_Set
      Src: /src/cpython/Modules/_testcapimodule.c:3423,1
    - Dst: _PyTestCapi_Init_List
      Src: /src/cpython/Modules/_testcapimodule.c:3426,1
    - Dst: _PyTestCapi_Init_Tuple
      Src: /src/cpython/Modules/_testcapimodule.c:3429,1
    - Dst: _PyTestCapi_Init_Structmember
      Src: /src/cpython/Modules/_testcapimodule.c:3432,1
    - Dst: _PyTestCapi_Init_Exceptions
      Src: /src/cpython/Modules/_testcapimodule.c:3435,1
    - Dst: _PyTestCapi_Init_Code
      Src: /src/cpython/Modules/_testcapimodule.c:3438,1
    - Dst: _PyTestCapi_Init_Buffer
      Src: /src/cpython/Modules/_testcapimodule.c:3441,1
    - Dst: _PyTestCapi_Init_File
      Src: /src/cpython/Modules/_testcapimodule.c:3444,1
    - Dst: _PyTestCapi_Init_Codec
      Src: /src/cpython/Modules/_testcapimodule.c:3447,1
    - Dst: _PyTestCapi_Init_Immortal
      Src: /src/cpython/Modules/_testcapimodule.c:3450,1
    - Dst: _PyTestCapi_Init_GC
      Src: /src/cpython/Modules/_testcapimodule.c:3453,1
    - Dst: _PyTestCapi_Init_PyAtomic
      Src: /src/cpython/Modules/_testcapimodule.c:3456,1
    - Dst: _PyTestCapi_Init_Run
      Src: /src/cpython/Modules/_testcapimodule.c:3459,1
    - Dst: _PyTestCapi_Init_Hash
      Src: /src/cpython/Modules/_testcapimodule.c:3462,1
    - Dst: _PyTestCapi_Init_Time
      Src: /src/cpython/Modules/_testcapimodule.c:3465,1
    - Dst: _PyTestCapi_Init_Monitoring
      Src: /src/cpython/Modules/_testcapimodule.c:3468,1
    - Dst: _PyTestCapi_Init_Object
      Src: /src/cpython/Modules/_testcapimodule.c:3471,1
    - Dst: _PyTestCapi_Init_Config
      Src: /src/cpython/Modules/_testcapimodule.c:3474,1
    - Dst: _PyTestCapi_Init_Import
      Src: /src/cpython/Modules/_testcapimodule.c:3477,1
    - Dst: _PyTestCapi_Init_Frame
      Src: /src/cpython/Modules/_testcapimodule.c:3480,1
    - Dst: _PyTestCapi_Init_Type
      Src: /src/cpython/Modules/_testcapimodule.c:3483,1
    - Dst: _PyTestCapi_Init_Function
      Src: /src/cpython/Modules/_testcapimodule.c:3486,1
    - Dst: PyState_AddModule
      Src: /src/cpython/Modules/_testcapimodule.c:3490,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 225
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3239
    functionDepth: 2
    functionLinenumber: 3239
    functionLinenumberEnd: 3492
    functionName: PyInit__testcapi
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - _PyTestCapi_Init_Dict
    - _PyTestCapi_Init_Docstring
    - _PyTestCapi_Init_Complex
    - _PyTestCapi_Init_Object
    - _PyTestCapi_Init_Unicode
    - _PyTestCapi_Init_Watchers
    - PyErr_NewException
    - _PyTestCapi_Init_Vectorcall
    - _PyTestCapi_Init_Codec
    - PyLong_FromLong
    - _PyTestCapi_Init_Hash
    - _PyTestCapi_Init_Bytes
    - _PyTestCapi_Init_DateTime
    - PyFloat_FromDouble
    - PyModule_AddObject
    - _PyTestCapi_Init_Heaptype
    - Py_INCREF
    - PyLong_FromUInt64
    - _PyTestCapi_Init_Code
    - _PyTestCapi_Init_Import
    - _PyTestCapi_Init_Numbers
    - _PyTestCapi_Init_PyAtomic
    - _PyTestCapi_Init_Buffer
    - Py_SET_TYPE
    - _PyTestCapi_Init_GC
    - PyType_Ready
    - PyUnstable_Module_SetGIL
    - get_testcapi_state
    - _PyTestCapi_Init_Structmember
    - _PyTestCapi_Init_Time
    - PyLong_FromUnsignedLong
    - _PyTestCapi_Init_Float
    - PyModule_Create
    - PyLong_FromLongLong
    - _PyTestCapi_Init_Set
    - _PyTestCapi_Init_Tuple
    - PyLong_FromInt32
    - _PyTestCapi_Init_List
    - _PyTestCapi_Init_Run
    - _PyTestCapi_Init_Exceptions
    - _PyTestCapi_Init_Config
    - _PyTestCapi_Init_Function
    - _PyTestCapi_Init_File
    - _PyTestCapi_Init_Frame
    - PyState_AddModule
    - PyModule_Add
    - _PyTestCapi_Init_Monitoring
    - _PyTestCapi_Init_Mem
    - _PyTestCapi_Init_Abstract
    - _PyTestCapi_Init_Type
    - PyLong_FromUInt32
    - _PyTestCapi_Init_Immortal
    - _PyTestCapi_Init_GetArgs
    - _PyTestCapi_Init_Long
    - create_manual_heap_type
    - PyLong_FromSsize_t
    - PyModule_AddIntConstant
    - PyLong_FromUnsignedLongLong
    - PyLong_FromSize_t
    - PyModule_AddIntMacro
    - create_managed_dict_type
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testcapi(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:120,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:122,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:128,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:134,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 140
    functionName: special_type
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - copysign
    - isnan
    - isfinite
    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: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: SPECIAL_VALUE
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPECIAL_VALUE(z, table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/cpython/Modules/cmathmodule.c:183,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:185,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:185,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:187,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:187,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:188,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:188,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:188,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:193,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:196,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:197,1
    - Dst: asinh
      Src: /src/cpython/Modules/cmathmodule.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 202
    functionName: cmath_acos_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - atan2
    - copysign
    - hypot
    - asinh
    - SPECIAL_VALUE
    - cmath_sqrt_impl
    - log
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_acos_impl(PyObject *module, Py_complex z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/cpython/Modules/cmathmodule.c:219,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:221,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:221,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:223,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:223,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:224,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:228,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:231,1
    - Dst: asinh
      Src: /src/cpython/Modules/cmathmodule.c:232,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 237
    functionName: cmath_acosh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - atan2
    - hypot
    - asinh
    - SPECIAL_VALUE
    - cmath_sqrt_impl
    - log
    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/cpython/Modules/cmathmodule.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: cmath_asin_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/cmathmodule.c:274,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:276,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:276,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:278,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:278,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:278,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:281,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:281,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:281,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:284,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:284,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:288,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:291,1
    - Dst: asinh
      Src: /src/cpython/Modules/cmathmodule.c:292,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 297
    functionName: cmath_asinh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - fabs
    - atan2
    - copysign
    - hypot
    - asinh
    - SPECIAL_VALUE
    - cmath_sqrt_impl
    - log
    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/cpython/Modules/cmathmodule.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: cmath_atan_impl
    functionSourceFile: /src/cpython/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: 5
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/cpython/Modules/cmathmodule.c:336,1
    - Dst: _Py_c_neg
      Src: /src/cpython/Modules/cmathmodule.c:340,1
    - Dst: cmath_atanh_impl
      Src: /src/cpython/Modules/cmathmodule.c:340,1
    - Dst: _Py_c_neg
      Src: /src/cpython/Modules/cmathmodule.c:340,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:343,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:350,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:352,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:361,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:361,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:361,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:361,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:362,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:362,1
    - Dst: m_log1p
      Src: /src/cpython/Modules/cmathmodule.c:366,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 371
    functionName: cmath_atanh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 2
    functionsReached:
    - sqrt
    - fabs
    - cmath_atanh_impl
    - atan2
    - copysign
    - hypot
    - _Py_c_neg
    - SPECIAL_VALUE
    - m_log1p
    - log
    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/cpython/Modules/cmathmodule.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 390
    functionName: cmath_cos_impl
    functionSourceFile: /src/cpython/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: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:410,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:410,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:411,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:411,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:414,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:414,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:415,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:415,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:418,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:418,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:419,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:419,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:423,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:424,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:428,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:428,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:435,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:438,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:439,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:439,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:440,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:440,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:442,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:442,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:443,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:443,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:446,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:446,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 451
    functionName: cmath_cosh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - sinh
    - fabs
    - cosh
    - sin
    - copysign
    - cos
    - isinf
    - isnan
    - isfinite
    - special_type
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_cosh_impl(PyObject *module, Py_complex z)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:471,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:471,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:472,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:472,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:475,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:475,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:476,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:476,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:479,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:479,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:480,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:480,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:484,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:485,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:489,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:490,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:491,1
    - Dst: exp
      Src: /src/cpython/Modules/cmathmodule.c:499,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:500,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:501,1
    - Dst: exp
      Src: /src/cpython/Modules/cmathmodule.c:503,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:504,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:505,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:508,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:508,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 513
    functionName: cmath_exp_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - sin
    - copysign
    - cos
    - isinf
    - isfinite
    - special_type
    - exp
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_exp_impl(PyObject *module, Py_complex z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/cpython/Modules/cmathmodule.c:551,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:553,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:554,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:557,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:557,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:561,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:561,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:561,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:562,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:567,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:572,1
    - Dst: m_log1p
      Src: /src/cpython/Modules/cmathmodule.c:576,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:578,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:581,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - z
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 584
    functionName: c_log
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - atan2
    - hypot
    - ldexp
    - SPECIAL_VALUE
    - m_log1p
    - log
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_log(Py_complex z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_log
      Src: /src/cpython/Modules/cmathmodule.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 606
    functionName: cmath_log10_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/cmathmodule.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 627
    functionName: cmath_sin_impl
    functionSourceFile: /src/cpython/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: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:648,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:648,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:649,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:649,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:652,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:652,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:653,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:653,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:656,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:656,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:657,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:657,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:661,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:662,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:666,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:666,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:673,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:674,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:675,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:675,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:676,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:676,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:678,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:678,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:679,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:679,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:682,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:682,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 687
    functionName: cmath_sinh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - sinh
    - fabs
    - cosh
    - sin
    - copysign
    - cos
    - isinf
    - isnan
    - isfinite
    - special_type
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_sinh_impl(PyObject *module, Py_complex z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/cpython/Modules/cmathmodule.c:733,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:741,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:742,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:746,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:747,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:747,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:747,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:747,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:751,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:751,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:757,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 764
    functionName: cmath_sqrt_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 3
    functionsReached:
    - sqrt
    - fabs
    - copysign
    - hypot
    - ldexp
    - SPECIAL_VALUE
    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/cpython/Modules/cmathmodule.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 785
    functionName: cmath_tan_impl
    functionSourceFile: /src/cpython/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: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:818,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:818,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:819,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:819,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:823,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:824,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:824,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:828,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:829,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:829,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:833,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:834,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:838,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:838,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:846,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:847,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:848,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:848,1
    - Dst: exp
      Src: /src/cpython/Modules/cmathmodule.c:848,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:848,1
    - Dst: tanh
      Src: /src/cpython/Modules/cmathmodule.c:850,1
    - Dst: tan
      Src: /src/cpython/Modules/cmathmodule.c:851,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:852,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 860
    functionName: cmath_tanh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - fabs
    - cosh
    - sin
    - copysign
    - tanh
    - tan
    - cos
    - isinf
    - isfinite
    - special_type
    - exp
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_tanh_impl(PyObject *module, Py_complex z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_log
      Src: /src/cpython/Modules/cmathmodule.c:882,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/cmathmodule.c:884,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cmathmodule.c:885,1
    - Dst: c_log
      Src: /src/cpython/Modules/cmathmodule.c:888,1
    - Dst: _Py_c_quot
      Src: /src/cpython/Modules/cmathmodule.c:889,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:892,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:893,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - module
    - x
    - y_obj
    argTypes:
    - PyObject*
    - Py_complex
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 894
    functionName: cmath_log_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - math_error
    - _Py_c_quot
    - 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/cpython/Modules/cmathmodule.c:903,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cmathmodule.c:905,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/cmathmodule.c:907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 909
    functionName: math_error
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:928,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:930,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 933
    functionName: cmath_phase_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - math_error
    - PyFloat_FromDouble
    - atan2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_phase_impl(PyObject *module, Py_complex z)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:953,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:954,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:956,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/cmathmodule.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 959
    functionName: cmath_polar_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - math_error
    - Py_BuildValue
    - _Py_c_abs
    - atan2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_polar_impl(PyObject *module, Py_complex z)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:992,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:992,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:996,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:996,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:999,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:999,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:1000,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:1000,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:1003,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:1003,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:1004,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:1004,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:1008,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:1009,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:1013,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1013,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:1026,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:1027,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:1032,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:1034,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - module
    - r
    - phi
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1035
    functionName: cmath_rect_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - sin
    - copysign
    - cos
    - isinf
    - math_error
    - isnan
    - isfinite
    - special_type
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_rect_impl(PyObject *module, double r, double phi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/cmathmodule.c:1048,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:1048,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: cmath_isfinite_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - isfinite
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isfinite_impl(PyObject *module, Py_complex z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/cmathmodule.c:1061,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:1061,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1062
    functionName: cmath_isnan_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - isnan
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isnan_impl(PyObject *module, Py_complex z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/cmathmodule.c:1074,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1074,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1075
    functionName: cmath_isinf_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - isinf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isinf_impl(PyObject *module, Py_complex z)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cmathmodule.c:1111,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1130,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1130,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1130,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1130,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:1138,1
    - Dst: _Py_c_diff
      Src: /src/cpython/Modules/cmathmodule.c:1138,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:1140,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:1141,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: 1143
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1143
    functionName: cmath_isclose_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - _Py_c_diff
    - isinf
    - PyErr_SetString
    - _Py_c_abs
    linkageType: ''
    returnType: int
    signature: "int cmath_isclose_impl(PyObject *module, Py_complex a, Py_complex
      b,\n                   double rel_tol, double abs_tol)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1179,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1179,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1182,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1182,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1186,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1186,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1189,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1189,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1194,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:1194,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1197,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1197,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:1197,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:1200,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1201,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:1201,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1210,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1211,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1211,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1211,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1211,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1211,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1211,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1211,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1212,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1212,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1212,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1212,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1212,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1212,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1212,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1213,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1213,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1213,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1213,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1213,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1213,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1213,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1214,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1214,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1214,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1214,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1214,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1214,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1214,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1215,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1215,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1215,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1215,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1215,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1215,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1215,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1216,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1216,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1216,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1216,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1216,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1216,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1216,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1217,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1217,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1217,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1217,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1217,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1217,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1217,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1220,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1221,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1221,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1221,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1221,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1221,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1221,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1221,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1222,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1222,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1222,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1222,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1222,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1222,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1222,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1223,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1223,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1223,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1223,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1223,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1223,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1223,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1224,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1224,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1224,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1224,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1224,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1224,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1224,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1225,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1225,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1225,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1225,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1225,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1225,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1225,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1227,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1227,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1227,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1227,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1227,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1227,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1227,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1230,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1231,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1231,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1231,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1231,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1231,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1231,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1231,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1232,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1232,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1232,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1232,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1232,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1232,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1232,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1233,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1233,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1233,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1233,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1233,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1233,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1233,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1234,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1234,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1234,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1234,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1234,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1234,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1234,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1235,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1235,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1235,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1235,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1235,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1235,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1235,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1236,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1236,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1236,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1236,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1236,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1236,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1236,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1237,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1237,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1237,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1237,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1237,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1237,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1237,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1240,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1241,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1241,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1241,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1241,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1241,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1241,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1241,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1242,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1242,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1242,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1242,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1242,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1242,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1242,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1243,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1243,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1243,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1243,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1243,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1243,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1243,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1244,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1244,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1244,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1244,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1244,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1244,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1244,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1245,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1245,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1245,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1245,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1245,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1245,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1245,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1246,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1246,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1246,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1246,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1246,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1246,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1246,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1247,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1247,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1247,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1247,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1247,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1247,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1247,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1250,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1251,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1251,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1251,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1251,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1251,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1251,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1251,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1252,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1252,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1252,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1252,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1252,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1252,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1252,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1253,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1253,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1253,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1253,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1253,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1253,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1253,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1254,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1254,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1254,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1254,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1254,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1254,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1254,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1255,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1255,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1255,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1255,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1255,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1255,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1255,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1256,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1256,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1256,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1256,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1256,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1256,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1256,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1257,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1257,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1257,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1257,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1257,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1257,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1257,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1260,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1261,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1261,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1261,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1261,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1261,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1261,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1261,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1262,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1262,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1262,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1262,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1262,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1262,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1262,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1263,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1263,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1263,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1263,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1263,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1263,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1263,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1264,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1264,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1264,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1264,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1264,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1264,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1264,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1265,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1265,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1265,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1265,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1265,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1265,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1265,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1266,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1266,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1266,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1266,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1266,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1266,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1266,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1270,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1271,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1271,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1271,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1271,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1271,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1271,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1271,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1272,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1272,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1272,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1272,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1272,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1272,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1272,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1273,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1273,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1273,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1273,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1273,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1273,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1273,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1275,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1275,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1275,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1275,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1275,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1275,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1275,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1276,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1276,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1276,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1276,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1276,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1276,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1276,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1280,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1281,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1281,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1281,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1281,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1281,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1281,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1281,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1283,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1283,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1283,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1283,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1283,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1283,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1283,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1284,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1284,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1284,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1284,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1284,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1284,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1284,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1286,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1286,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1286,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1286,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1286,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1286,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1286,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1287,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1287,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1287,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1287,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1287,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1287,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1287,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1290,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1291,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1291,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1291,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1291,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1291,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1291,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1291,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1292,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1292,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1292,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1292,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1292,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1292,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1292,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1293,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1293,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1293,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1293,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1293,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1293,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1293,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1294,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1294,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1294,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1294,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1294,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1294,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1294,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1295,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1295,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1295,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1295,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1295,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1295,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1295,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1296,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1296,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1296,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1296,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1296,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1296,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1296,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1297,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1297,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1297,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1297,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1297,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1297,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1297,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1300,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1301,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1301,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1301,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1301,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1301,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1301,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1301,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1302,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1302,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1302,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1302,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1302,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1302,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1302,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1307,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/cpython/Modules/cmathmodule.c:1310,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1311,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1311,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1311,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1311,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1311,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1311,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1311,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1312,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1312,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1312,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1312,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1312,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1312,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1312,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/cpython/Modules/cmathmodule.c:1317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 284
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1320
    functionName: cmath_exec
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - C
    - fabs
    - PyModule_Add
    - PyComplex_FromCComplex
    - PyFloat_FromDouble
    - INIT_SPECIAL_VALUES
    linkageType: ''
    returnType: int
    signature: int cmath_exec(PyObject *mod)
  - 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: 1208
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1208
    functionName: INIT_SPECIAL_VALUES
    functionSourceFile: /src/cpython/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: 1209
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1209
    functionName: C
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(REAL, IMAG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/cmathmodule.c:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1342
    functionName: PyInit_cmath
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_cmath(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/atexitmodule.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: get_atexit_state
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: struct atexit_state
    signature: 'struct atexit_state *

      get_atexit_state(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/atexitmodule.c:30,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Modules/atexitmodule.c:31,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:32,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/atexitmodule.c:34,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/atexitmodule.c:36,1
    - Dst: _PyAtExit_LockCallbacks
      Src: /src/cpython/Modules/atexitmodule.c:44,1
    - Dst: _PyAtExit_UnlockCallbacks
      Src: /src/cpython/Modules/atexitmodule.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - interp
    - func
    - data
    argTypes:
    - PyInterpreterState*
    - atexit_datacallbackfunc
    - void*
    assertStmts:
    - condition: (tstate->interp == interp)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: PyUnstable_AtExit
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 3
    functionsReached:
    - _PyAtExit_UnlockCallbacks
    - _PyThreadState_GET
    - _PyAtExit_LockCallbacks
    - _Py_EnsureTstateNotNULL
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: "int PyUnstable_AtExit(PyInterpreterState *interp,\n                  atexit_datacallbackfunc
      func, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Clear
      Src: /src/cpython/Modules/atexitmodule.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct atexit_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: atexit_cleanup
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Clear
    linkageType: ''
    returnType: void
    signature: void atexit_cleanup(struct atexit_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:71,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/atexitmodule.c:73,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Modules/atexitmodule.c:75,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/atexitmodule.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (state->callbacks == NULL)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: _PyAtExit_Init
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyAtExit_Init(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atexit_cleanup
      Src: /src/cpython/Modules/atexitmodule.c:86,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/atexitmodule.c:87,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/atexitmodule.c:97,1
    - Dst: exitfunc
      Src: /src/cpython/Modules/atexitmodule.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: _PyAtExit_Fini
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - exitfunc
    - Py_CLEAR
    - PyMem_Free
    - atexit_cleanup
    linkageType: ''
    returnType: void
    signature: void _PyAtExit_Fini(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/atexitmodule.c:105,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:106,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:107,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/atexitmodule.c:107,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Modules/atexitmodule.c:110,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:110,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/atexitmodule.c:113,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:118,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:121,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:122,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/atexitmodule.c:122,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:124,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:125,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:126,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/atexitmodule.c:128,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/atexitmodule.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:140,1
    - Dst: atexit_cleanup
      Src: /src/cpython/Modules/atexitmodule.c:141,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/atexitmodule.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct atexit_state*
    assertStmts:
    - condition: (PyList_CheckExact(state->callbacks))
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (state->callbacks != NULL)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 144
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 144
    functionName: atexit_callfuncs
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GetSlice
    - PyList_CheckExact
    - PyList_GET_ITEM
    - Py_DECREF
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    - PyObject_Call
    - PyTuple_GET_ITEM
    - atexit_cleanup
    - PyTuple_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void atexit_callfuncs(struct atexit_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atexit_callfuncs
      Src: /src/cpython/Modules/atexitmodule.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: _PyAtExit_Call
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_callfuncs
    linkageType: ''
    returnType: void
    signature: void _PyAtExit_Call(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:174,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/atexitmodule.c:175,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:180,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/atexitmodule.c:181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/atexitmodule.c:182,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/atexitmodule.c:186,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:186,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/atexitmodule.c:193,1
    - Dst: get_atexit_state
      Src: /src/cpython/Modules/atexitmodule.c:199,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/atexitmodule.c:201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:206,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/atexitmodule.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 209
    functionName: atexit_register
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Insert
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_SetString
    - PyCallable_Check
    - get_atexit_state
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTuple_Pack
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_register(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_atexit_state
      Src: /src/cpython/Modules/atexitmodule.c:222,1
    - Dst: atexit_callfuncs
      Src: /src/cpython/Modules/atexitmodule.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: atexit_run_exitfuncs
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - get_atexit_state
    - atexit_callfuncs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_run_exitfuncs(PyObject *module, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atexit_cleanup
      Src: /src/cpython/Modules/atexitmodule.c:236,1
    - Dst: get_atexit_state
      Src: /src/cpython/Modules/atexitmodule.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: atexit_clear
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - get_atexit_state
    - atexit_cleanup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_clear(PyObject *module, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_atexit_state
      Src: /src/cpython/Modules/atexitmodule.c:249,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:250,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:251,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/atexitmodule.c:251,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/atexitmodule.c:252,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(state->callbacks))
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (state->callbacks != NULL)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: atexit_ncallbacks
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyLong_FromSsize_t
    - PyList_GET_SIZE
    - get_atexit_state
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_ncallbacks(PyObject *module, PyObject *Py_UNUSED(dummy))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:258,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:259,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:260,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/atexitmodule.c:260,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:261,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/atexitmodule.c:262,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/atexitmodule.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - callbacks
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 277
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 277
    functionName: atexit_unregister_locked
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyList_SetSlice
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int atexit_unregister_locked(PyObject *callbacks, PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_atexit_state
      Src: /src/cpython/Modules/atexitmodule.c:291,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/atexitmodule.c:293,1
    - Dst: atexit_unregister_locked
      Src: /src/cpython/Modules/atexitmodule.c:294,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/atexitmodule.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 297
    functionName: atexit_unregister
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - get_atexit_state
    - Py_END_CRITICAL_SECTION
    - atexit_unregister_locked
    - Py_BEGIN_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_unregister(PyObject *module, PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/atexitmodule.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: PyInit_atexit
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_atexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/hmacmodule.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: set_invalid_key_length_error
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void set_invalid_key_length_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/hmacmodule.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: set_invalid_msg_length_error
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void set_invalid_msg_length_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: Py_CHECK_HACL_UINT32_T_LENGTH
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_CHECK_HACL_UINT32_T_LENGTH(LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/hmacmodule.c:269,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: get_hmacmodule_state
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: hmacmodule_state
    signature: 'hmacmodule_state *

      get_hmacmodule_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/hmacmodule.c:277,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: get_hmacmodule_state_by_cls
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: hmacmodule_state
    signature: 'hmacmodule_state *

      get_hmacmodule_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: HMACObject_CAST
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HMACObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/hmacmodule.c:336,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/hmacmodule.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - kind
    argTypes:
    - HMAC_Hash_Kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 347
    functionName: assert_is_static_hmac_hash_kind
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void assert_is_static_hmac_hash_kind(HMAC_Hash_Kind kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - Py_UNUSED
    argTypes:
    - HMAC_Hash_Kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: assert_is_static_hmac_hash_kind
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assert_is_static_hmac_hash_kind(HMAC_Hash_Kind Py_UNUSED(kind))
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - state
    - kind
    argTypes:
    - hmacmodule_state*
    - HMAC_Hash_Kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 383
    functionName: narrow_hmac_hash_kind
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HMAC_Hash_Kind
    signature: HMAC_Hash_Kind narrow_hmac_hash_kind(hmacmodule_state *state, HMAC_Hash_Kind
      kind)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:394,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/hmacmodule.c:394,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/hmacmodule.c:399,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hmacmodule.c:402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hmacmodule.c:406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hmacmodule.c:410,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:414,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/hmacmodule.c:418,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/hmacmodule.c:424,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - code
    argTypes:
    - hacl_errno_t
    assertStmts:
    - condition: (PyGILState_GetThisThreadState() != NULL)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 426
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 426
    functionName: _hacl_convert_errno
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyGILState_Release
    - PyErr_SetString
    - PyGILState_GetThisThreadState
    - PyErr_Format
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int _hacl_convert_errno(hacl_errno_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:436,1
    - Dst: Hacl_Streaming_HMAC_malloc_
      Src: /src/cpython/Modules/hmacmodule.c:438,1
    - Dst: _hacl_convert_errno
      Src: /src/cpython/Modules/hmacmodule.c:439,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - kind
    - key
    - len
    argTypes:
    - HMAC_Hash_Kind
    - uint8_t*
    - uint32_t
    assertStmts:
    - condition: (kind != Py_hmac_kind_hash_unknown)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (state == NULL)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 444
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 444
    functionName: _hacl_hmac_state_new
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - _hacl_convert_errno
    - Hacl_Streaming_HMAC_malloc_
    - assert
    linkageType: ''
    returnType: HACL_HMAC_state
    signature: 'HACL_HMAC_state *

      _hacl_hmac_state_new(HMAC_Hash_Kind kind, uint8_t *key, uint32_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_free
      Src: /src/cpython/Modules/hmacmodule.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - HACL_HMAC_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: _hacl_hmac_state_free
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_HMAC_free
    linkageType: ''
    returnType: void
    signature: void _hacl_hmac_state_free(HACL_HMAC_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_update
      Src: /src/cpython/Modules/hmacmodule.c:469,1
    - Dst: _hacl_convert_errno
      Src: /src/cpython/Modules/hmacmodule.c:470,1
    - Dst: Hacl_Streaming_HMAC_update
      Src: /src/cpython/Modules/hmacmodule.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - HACL_HMAC_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 475
    functionName: _hacl_hmac_state_update_once
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_HMAC_update
    - _hacl_convert_errno
    linkageType: ''
    returnType: int
    signature: "int _hacl_hmac_state_update_once(HACL_HMAC_state *state,\n                             uint8_t
      *buf, uint32_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:487,1
    - Dst: _hacl_hmac_state_update_once
      Src: /src/cpython/Modules/hmacmodule.c:490,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:491,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/hmacmodule.c:491,1
    - Dst: Py_CHECK_HACL_UINT32_T_LENGTH
      Src: /src/cpython/Modules/hmacmodule.c:498,1
    - Dst: _hacl_hmac_state_update_once
      Src: /src/cpython/Modules/hmacmodule.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - HACL_HMAC_state*
    - uint8_t*
    - Py_ssize_t
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 500
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 500
    functionName: _hacl_hmac_state_update
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _hacl_hmac_state_update_once
    - Py_CHECK_HACL_UINT32_T_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int _hacl_hmac_state_update(HACL_HMAC_state *state, uint8_t *buf, Py_ssize_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HACL_HID
    - ','
    - HLIB_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 522
    functionName: Py_HMAC_HINFO_ENTRY
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_HMAC_HINFO_ENTRY(HACL_HID, HLIB_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:561,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/hmacmodule.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - state
    - name
    - info
    argTypes:
    - hmacmodule_state*
    - char*
    - py_hmac_hinfo**
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 560
        line_start: 560
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 564
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 564
    functionName: find_hash_info_by_utf8name
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_get
    - assert
    linkageType: ''
    returnType: bool
    signature: "bool find_hash_info_by_utf8name(hmacmodule_state *state,\n                           const
      char *name,\n                           const py_hmac_hinfo **info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/hmacmodule.c:585,1
    - Dst: find_hash_info_by_utf8name
      Src: /src/cpython/Modules/hmacmodule.c:589,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/hmacmodule.c:594,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/hmacmodule.c:598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:600,1
    - Dst: find_hash_info_by_utf8name
      Src: /src/cpython/Modules/hmacmodule.c:603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:604,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - state
    - name
    - info
    argTypes:
    - hmacmodule_state*
    - PyObject*
    - py_hmac_hinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 610
    functionName: find_hash_info_by_name
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - find_hash_info_by_utf8name
    - PyUnicode_AsUTF8
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: int
    signature: "int find_hash_info_by_name(hmacmodule_state *state,\n                       PyObject
      *name,\n                       const py_hmac_hinfo **info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/hmacmodule.c:631,1
    - Dst: find_hash_info_by_name
      Src: /src/cpython/Modules/hmacmodule.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - hash_info_ref
    - info
    argTypes:
    - hmacmodule_state*
    - PyObject*
    - py_hmac_hinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 639
    functionName: find_hash_info_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - find_hash_info_by_name
    linkageType: ''
    returnType: int
    signature: "int find_hash_info_impl(hmacmodule_state *state,\n                    PyObject
      *hash_info_ref,\n                    const py_hmac_hinfo **info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_hash_info_impl
      Src: /src/cpython/Modules/hmacmodule.c:651,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/hmacmodule.c:658,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - hash_info_ref
    argTypes:
    - hmacmodule_state*
    - PyObject*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 664
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 664
    functionName: find_hash_info
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - find_hash_info_impl
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: py_hmac_hinfo
    signature: 'py_hmac_hinfo *

      find_hash_info(hmacmodule_state *state, PyObject *hash_info_ref)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 675
    functionName: has_uint32_t_buffer_length
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_uint32_t_buffer_length(const Py_buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:689,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/hmacmodule.c:690,1
    - Dst: assert_is_static_hmac_hash_kind
      Src: /src/cpython/Modules/hmacmodule.c:691,1
    - Dst: narrow_hmac_hash_kind
      Src: /src/cpython/Modules/hmacmodule.c:692,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:693,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:695,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:697,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - state
    - self
    - info
    argTypes:
    - hmacmodule_state*
    - HMACObject*
    - py_hmac_hinfo*
    assertStmts:
    - condition: (info->display_name != NULL)
      pos:
        line_end: 688
        line_start: 688
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (info->block_size <= Py_hmac_hash_max_block_size)
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (info->digest_size <= Py_hmac_hash_max_digest_size)
      pos:
        line_end: 694
        line_start: 694
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (info->api.compute != NULL)
      pos:
        line_end: 696
        line_start: 696
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (info->api.compute_py != NULL)
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 700
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 700
    functionName: hmac_set_hinfo
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - assert_is_static_hmac_hash_kind
    - narrow_hmac_hash_kind
    - assert
    linkageType: ''
    returnType: void
    signature: "void hmac_set_hinfo(hmacmodule_state *state,\n               HMACObject
      *self, const py_hmac_hinfo *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:714,1
    - Dst: set_invalid_key_length_error
      Src: /src/cpython/Modules/hmacmodule.c:721,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:725,1
    - Dst: _hacl_hmac_state_new
      Src: /src/cpython/Modules/hmacmodule.c:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - len
    argTypes:
    - HMACObject*
    - uint8_t*
    - Py_ssize_t
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (self->kind != Py_hmac_kind_hash_unknown)
      pos:
        line_end: 724
        line_start: 724
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 730
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 730
    functionName: hmac_new_initial_state
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - _hacl_hmac_state_new
    - set_invalid_key_length_error
    - assert
    linkageType: ''
    returnType: int
    signature: int hmac_new_initial_state(HMACObject *self, uint8_t *key, Py_ssize_t
      len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_hmacmodule_state
      Src: /src/cpython/Modules/hmacmodule.c:747,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hmacmodule.c:749,1
    - Dst: find_hash_info
      Src: /src/cpython/Modules/hmacmodule.c:754,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/hmacmodule.c:759,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/hmacmodule.c:763,1
    - Dst: hmac_set_hinfo
      Src: /src/cpython/Modules/hmacmodule.c:764,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/hmacmodule.c:768,1
    - Dst: hmac_new_initial_state
      Src: /src/cpython/Modules/hmacmodule.c:769,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:770,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/hmacmodule.c:777,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/hmacmodule.c:780,1
    - Dst: _hacl_hmac_state_update
      Src: /src/cpython/Modules/hmacmodule.c:782,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:784,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:793,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/hmacmodule.c:794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:800,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - module
    - keyobj
    - msgobj
    - hash_info_ref
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (rc == 0)
      pos:
        line_end: 792
        line_start: 792
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 802
      start: 742
    functionDepth: 5
    functionLinenumber: 742
    functionLinenumberEnd: 802
    functionName: _hmac_new_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - _hacl_hmac_state_update
    - Py_DECREF
    - PyErr_SetString
    - find_hash_info
    - PyObject_GC_Track
    - get_hmacmodule_state
    - GET_BUFFER_VIEW_OR_ERROR
    - PyBuffer_Release
    - hmac_new_initial_state
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - HASHLIB_INIT_MUTEX
    - hmac_set_hinfo
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hmac_new_impl(PyObject *module, PyObject *keyobj, PyObject
      *msgobj,\n               PyObject *hash_info_ref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:810,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/hmacmodule.c:811,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:812,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:814,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:816,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:818,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - out
    - src
    argTypes:
    - HMACObject*
    - HMACObject*
    assertStmts:
    - condition: (src->name != NULL)
      pos:
        line_end: 809
        line_start: 809
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->block_size <= Py_hmac_hash_max_block_size)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->digest_size <= Py_hmac_hash_max_digest_size)
      pos:
        line_end: 815
        line_start: 815
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->kind != Py_hmac_kind_hash_unknown)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->api.compute != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->api.compute_py != NULL)
      pos:
        line_end: 818
        line_start: 818
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: hmac_copy_hinfo
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: void
    signature: void hmac_copy_hinfo(HMACObject *out, const HMACObject *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:833,1
    - Dst: Hacl_Streaming_HMAC_copy
      Src: /src/cpython/Modules/hmacmodule.c:834,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - src
    argTypes:
    - HMACObject*
    - HMACObject*
    assertStmts:
    - condition: (src->state != NULL)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 840
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 840
    functionName: hmac_copy_state
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Hacl_Streaming_HMAC_copy
    - assert
    linkageType: ''
    returnType: int
    signature: int hmac_copy_state(HMACObject *out, const HMACObject *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hmacmodule_state_by_cls
      Src: /src/cpython/Modules/hmacmodule.c:854,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/hmacmodule.c:855,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:860,1
    - Dst: hmac_copy_hinfo
      Src: /src/cpython/Modules/hmacmodule.c:862,1
    - Dst: hmac_copy_state
      Src: /src/cpython/Modules/hmacmodule.c:864,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:868,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/hmacmodule.c:872,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/hmacmodule.c:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - HMACObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 875
    functionName: _hmac_HMAC_copy_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - HASHLIB_ACQUIRE_LOCK
    - hmac_copy_state
    - hmac_copy_hinfo
    - get_hmacmodule_state_by_cls
    - HASHLIB_RELEASE_LOCK
    - PyObject_GC_Track
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_copy_impl(HMACObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/hmacmodule.c:891,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/hmacmodule.c:892,1
    - Dst: _hacl_hmac_state_update
      Src: /src/cpython/Modules/hmacmodule.c:894,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - msgobj
    argTypes:
    - HMACObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 885
    functionDepth: 4
    functionLinenumber: 885
    functionLinenumberEnd: 898
    functionName: _hmac_HMAC_update_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - _hacl_hmac_state_update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_update_impl(HMACObject *self, PyObject *msgobj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:913,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:915,1
    - Dst: Hacl_Streaming_HMAC_digest
      Src: /src/cpython/Modules/hmacmodule.c:916,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:917,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:918,1
    - Dst: _hacl_convert_errno
      Src: /src/cpython/Modules/hmacmodule.c:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - digest
    argTypes:
    - HMACObject*
    - uint8_t*
    assertStmts:
    - condition: (digest != NULL)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: "(\n        rc == Hacl_Streaming_Types_Success ||\n        rc ==
        Hacl_Streaming_Types_OutOfMemory\n    )"
      pos:
        line_end: 920
        line_start: 917
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 923
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 923
    functionName: hmac_digest_compute_locked
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - _hacl_convert_errno
    - HASHLIB_RELEASE_LOCK
    - Hacl_Streaming_HMAC_digest
    - assert
    linkageType: ''
    returnType: int
    signature: int hmac_digest_compute_locked(HMACObject *self, uint8_t *digest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:937,1
    - Dst: hmac_digest_compute_locked
      Src: /src/cpython/Modules/hmacmodule.c:939,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/hmacmodule.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts:
    - condition: (self->digest_size <= Py_hmac_hash_max_digest_size)
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 943
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 943
    functionName: _hmac_HMAC_digest_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - hmac_digest_compute_locked
    - PyBytes_FromStringAndSize
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_digest_impl(HMACObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:962,1
    - Dst: hmac_digest_compute_locked
      Src: /src/cpython/Modules/hmacmodule.c:964,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/hmacmodule.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts:
    - condition: (self->digest_size <= Py_hmac_hash_max_digest_size)
      pos:
        line_end: 961
        line_start: 961
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 968
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 968
    functionName: _hmac_HMAC_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - hmac_digest_compute_locked
    - _Py_strhex
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_hexdigest_impl(HMACObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:979,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/hmacmodule.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts:
    - condition: (self->name != NULL)
      pos:
        line_end: 978
        line_start: 978
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 981
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 981
    functionName: _hmac_HMAC_name_get_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_name_get_impl(HMACObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUInt32
      Src: /src/cpython/Modules/hmacmodule.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 993
    functionName: _hmac_HMAC_block_size_get_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUInt32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_block_size_get_impl(HMACObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUInt32
      Src: /src/cpython/Modules/hmacmodule.c:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1005
    functionName: _hmac_HMAC_digest_size_get_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUInt32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_digest_size_get_impl(HMACObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACObject_CAST
      Src: /src/cpython/Modules/hmacmodule.c:1010,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1011,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/hmacmodule.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->name != NULL)
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1013
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1013
    functionName: HMACObject_repr
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - HMACObject_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      HMACObject_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACObject_CAST
      Src: /src/cpython/Modules/hmacmodule.c:1018,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1019,1
    - Dst: _hacl_hmac_state_free
      Src: /src/cpython/Modules/hmacmodule.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1023
    functionName: HMACObject_clear
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HMACObject_CAST
    - Py_CLEAR
    - _hacl_hmac_state_free
    linkageType: ''
    returnType: int
    signature: int HMACObject_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/hmacmodule.c:1028,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/hmacmodule.c:1029,1
    - Dst: HMACObject_clear
      Src: /src/cpython/Modules/hmacmodule.c:1030,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/hmacmodule.c:1031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1033
    functionName: HMACObject_dealloc
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    - HMACObject_clear
    linkageType: ''
    returnType: void
    signature: void HMACObject_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1038,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/hmacmodule.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1040
    functionName: HMACObject_traverse
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int HMACObject_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hmacmodule_state
      Src: /src/cpython/Modules/hmacmodule.c:1094,1
    - Dst: find_hash_info
      Src: /src/cpython/Modules/hmacmodule.c:1095,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1099,1
    - Dst: py_hmac_hinfo*::api::compute_py
      Src: /src/cpython/Modules/hmacmodule.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - module
    - key
    - msg
    - digest
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (info->api.compute_py != NULL)
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1101
      start: 1089
    functionDepth: 5
    functionLinenumber: 1089
    functionLinenumberEnd: 1101
    functionName: _hmac_compute_digest_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - find_hash_info
    - get_hmacmodule_state
    - assert
    - py_hmac_hinfo*::api::compute_py
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hmac_compute_digest_impl(PyObject *module, PyObject *key,
      PyObject *msg,\n                          PyObject *digest)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_get_buffer_view
      Src: /src/cpython/Modules/hmacmodule.c:1116,1
    - Dst: has_uint32_t_buffer_length
      Src: /src/cpython/Modules/hmacmodule.c:1119,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1120,1
    - Dst: set_invalid_key_length_error
      Src: /src/cpython/Modules/hmacmodule.c:1121,1
    - Dst: _Py_hashlib_get_buffer_view
      Src: /src/cpython/Modules/hmacmodule.c:1124,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1125,1
    - Dst: has_uint32_t_buffer_length
      Src: /src/cpython/Modules/hmacmodule.c:1128,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1129,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1130,1
    - Dst: set_invalid_msg_length_error
      Src: /src/cpython/Modules/hmacmodule.c:1131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - key
    - keyview
    - msg
    - msgview
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1135
    functionName: hmac_get_buffer_views
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - _Py_hashlib_get_buffer_view
    - set_invalid_key_length_error
    - set_invalid_msg_length_error
    - PyBuffer_Release
    - has_uint32_t_buffer_length
    linkageType: ''
    returnType: int
    signature: "int hmac_get_buffer_views(PyObject *key, Py_buffer *keyview,\n                      PyObject
      *msg, Py_buffer *msgview)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - HACL_HID
    - ','
    - KEY
    - ','
    - MSG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1159
    functionName: HACL_HMAC_COMPUTE_NAMED_DIGEST
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HACL_HMAC_COMPUTE_NAMED_DIGEST(HACL_HID, KEY, MSG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1174
    functionName: _hmac_compute_md5_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_md5_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1190
    functionName: _hmac_compute_sha1_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha1_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1206
    functionName: _hmac_compute_sha2_224_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_224_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1222
    functionName: _hmac_compute_sha2_256_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_256_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1238
    functionName: _hmac_compute_sha2_384_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_384_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1254
    functionName: _hmac_compute_sha2_512_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_512_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1270
    functionName: _hmac_compute_sha3_224_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_224_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1286
    functionName: _hmac_compute_sha3_256_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_256_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1302
    functionName: _hmac_compute_sha3_384_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_384_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1318
    functionName: _hmac_compute_sha3_512_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_512_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1334
    functionName: _hmac_compute_blake2s_32_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_blake2s_32_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HACL_HMAC_COMPUTE_NAMED_DIGEST
      Src: /src/cpython/Modules/hmacmodule.c:1349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1350
    functionName: _hmac_compute_blake2b_32_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HACL_HMAC_COMPUTE_NAMED_DIGEST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_blake2b_32_impl(PyObject *module, PyObject *key, PyObject *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_HashBuffer
      Src: /src/cpython/Modules/hmacmodule.c:1381,1
    - Dst: strlen
      Src: /src/cpython/Modules/hmacmodule.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1382
    functionName: py_hmac_hinfo_ht_hash
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_HashBuffer
    - strlen
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t py_hmac_hinfo_ht_hash(const void *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/hmacmodule.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1388
    functionName: py_hmac_hinfo_ht_comp
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int py_hmac_hinfo_ht_comp(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1394,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1396,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/hmacmodule.c:1397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hinfo
    argTypes:
    - void*
    assertStmts:
    - condition: (entry->display_name != NULL)
      pos:
        line_end: 1393
        line_start: 1393
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1399
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1399
    functionName: py_hmac_hinfo_ht_free
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void py_hmac_hinfo_ht_free(void *hinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Modules/hmacmodule.c:1416,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/hmacmodule.c:1419,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1420,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/hmacmodule.c:1420,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:1421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - table
    - key
    - info
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1419
        line_start: 1419
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1425
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1425
    functionName: py_hmac_hinfo_ht_add
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _Py_hashtable_get_entry
    - _Py_hashtable_set
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int py_hmac_hinfo_ht_add(_Py_hashtable_t *table, const void *key, void
      *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/hmacmodule.c:1434,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1443,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/hmacmodule.c:1443,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:1444,1
    - Dst: assert_is_static_hmac_hash_kind
      Src: /src/cpython/Modules/hmacmodule.c:1457,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/hmacmodule.c:1459,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:1461,1
    - Dst: memcpy
      Src: /src/cpython/Modules/hmacmodule.c:1465,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1466,1
    - Dst: Py_HMAC_HINFO_LINK
      Src: /src/cpython/Modules/hmacmodule.c:1480,1
    - Dst: Py_HMAC_HINFO_LINK
      Src: /src/cpython/Modules/hmacmodule.c:1481,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1483,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1484,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/hmacmodule.c:1485,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/hmacmodule.c:1490,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/hmacmodule.c:1498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1442
        line_start: 1442
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (value->display_name == NULL)
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (value->refcnt > 0)
      pos:
        line_end: 1482
        line_start: 1482
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (value->display_name == NULL)
      pos:
        line_end: 1483
        line_start: 1483
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1500
      start: 1431
    functionDepth: 2
    functionLinenumber: 1431
    functionLinenumberEnd: 1500
    functionName: py_hmac_hinfo_ht_new
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - memcpy
    - _Py_hashtable_new_full
    - PyUnicode_FromString
    - _Py_hashtable_destroy
    - PyMem_Free
    - Py_HMAC_HINFO_LINK
    - assert_is_static_hmac_hash_kind
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      py_hmac_hinfo_ht_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - KEY
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1480
    functionName: Py_HMAC_HINFO_LINK
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_HMAC_HINFO_LINK(KEY)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py_hmac_hinfo_ht_new
      Src: /src/cpython/Modules/hmacmodule.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1510
    functionName: hmacmodule_init_hash_info_table
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - py_hmac_hinfo_ht_new
    linkageType: ''
    returnType: int
    signature: int hmacmodule_init_hash_info_table(hmacmodule_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_EXC
      Src: /src/cpython/Modules/hmacmodule.c:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1528
    functionName: hmacmodule_init_exceptions
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - ADD_EXC
    linkageType: ''
    returnType: int
    signature: int hmacmodule_init_exceptions(PyObject *module, hmacmodule_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATTR
    - ','
    - NAME
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1525
    functionName: ADD_EXC
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_EXC(ATTR, NAME, BASE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/hmacmodule.c:1533,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/hmacmodule.c:1539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1543
    functionName: hmacmodule_init_hmac_type
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int hmacmodule_init_hmac_type(PyObject *module, hmacmodule_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_STR
      Src: /src/cpython/Modules/hmacmodule.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1558
    functionName: hmacmodule_init_strings
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - ADD_STR
    linkageType: ''
    returnType: int
    signature: int hmacmodule_init_strings(hmacmodule_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - STRING
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1555
    functionName: ADD_STR
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_STR(ATTR, STRING)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/hmacmodule.c:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1572
    functionName: hmacmodule_init_globals
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - ADD_INT_CONST
    linkageType: ''
    returnType: int
    signature: int hmacmodule_init_globals(PyObject *module, hmacmodule_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1569
    functionName: ADD_INT_CONST
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_CONST(NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid_count
      Src: /src/cpython/Modules/hmacmodule.c:1580,1
    - Dst: __cpuid_count
      Src: /src/cpython/Modules/hmacmodule.c:1581,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/hmacmodule.c:1584,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/hmacmodule.c:1588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1646
    functionName: hmacmodule_init_cpu_features
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - __cpuidex
    - __cpuid_count
    linkageType: ''
    returnType: void
    signature: void hmacmodule_init_cpu_features(hmacmodule_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_hmacmodule_state
      Src: /src/cpython/Modules/hmacmodule.c:1651,1
    - Dst: hmacmodule_init_hash_info_table
      Src: /src/cpython/Modules/hmacmodule.c:1652,1
    - Dst: hmacmodule_init_exceptions
      Src: /src/cpython/Modules/hmacmodule.c:1655,1
    - Dst: hmacmodule_init_hmac_type
      Src: /src/cpython/Modules/hmacmodule.c:1658,1
    - Dst: hmacmodule_init_strings
      Src: /src/cpython/Modules/hmacmodule.c:1661,1
    - Dst: hmacmodule_init_globals
      Src: /src/cpython/Modules/hmacmodule.c:1664,1
    - Dst: hmacmodule_init_cpu_features
      Src: /src/cpython/Modules/hmacmodule.c:1667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1648
    functionDepth: 4
    functionLinenumber: 1648
    functionLinenumberEnd: 1669
    functionName: hmacmodule_exec
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - hmacmodule_init_strings
    - hmacmodule_init_hmac_type
    - hmacmodule_init_cpu_features
    - hmacmodule_init_globals
    - get_hmacmodule_state
    - hmacmodule_init_exceptions
    - hmacmodule_init_hash_info_table
    linkageType: ''
    returnType: int
    signature: int hmacmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1674,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/hmacmodule.c:1674,1
    - Dst: get_hmacmodule_state
      Src: /src/cpython/Modules/hmacmodule.c:1675,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1676,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1677,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1671
    functionDepth: 2
    functionLinenumber: 1671
    functionLinenumberEnd: 1680
    functionName: hmacmodule_traverse
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - get_hmacmodule_state
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hmacmodule_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hmacmodule_state
      Src: /src/cpython/Modules/hmacmodule.c:1685,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/hmacmodule.c:1687,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1690,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1691,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1682
    functionDepth: 2
    functionLinenumber: 1682
    functionLinenumberEnd: 1694
    functionName: hmacmodule_clear
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - get_hmacmodule_state
    - Py_CLEAR
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: int
    signature: int hmacmodule_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmacmodule_clear
      Src: /src/cpython/Modules/hmacmodule.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1696
    functionDepth: 3
    functionLinenumber: 1696
    functionLinenumberEnd: 1700
    functionName: hmacmodule_free
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - hmacmodule_clear
    linkageType: ''
    returnType: void
    signature: void hmacmodule_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/hmacmodule.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1724
    functionName: PyInit__hmac
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__hmac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ADDR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: DEFERRED_ADDRESS
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFERRED_ADDRESS(ADDR)
  - 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: _spamlistobject_CAST
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _spamlistobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxsubtype.c:34,1
    - Dst: _spamlistobject_CAST
      Src: /src/cpython/Modules/xxsubtype.c:37,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxsubtype.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: spamlist_getstate
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _spamlistobject_CAST
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_getstate(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxsubtype.c:45,1
    - Dst: _spamlistobject_CAST
      Src: /src/cpython/Modules/xxsubtype.c:48,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxsubtype.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: spamlist_setstate
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _spamlistobject_CAST
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_setstate(PyObject *op, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/xxsubtype.c:56,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/xxsubtype.c:63,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxsubtype.c:63,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/xxsubtype.c:64,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxsubtype.c:64,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/xxsubtype.c:65,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxsubtype.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: spamlist_specialmeth
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTuple_SET_ITEM
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_specialmeth(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/cpython/Modules/xxsubtype.c:89,1
    - Dst: _spamlistobject_CAST
      Src: /src/cpython/Modules/xxsubtype.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: spamlist_init
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - tp_init
    - _spamlistobject_CAST
    linkageType: ''
    returnType: int
    signature: int spamlist_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _spamlistobject_CAST
      Src: /src/cpython/Modules/xxsubtype.c:100,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxsubtype.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: spamlist_state_get
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - _spamlistobject_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_state_get(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: _spamdictobject_CAST
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _spamdictobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxsubtype.c:163,1
    - Dst: _spamdictobject_CAST
      Src: /src/cpython/Modules/xxsubtype.c:166,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxsubtype.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: spamdict_getstate
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _spamdictobject_CAST
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamdict_getstate(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxsubtype.c:174,1
    - Dst: _spamdictobject_CAST
      Src: /src/cpython/Modules/xxsubtype.c:178,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxsubtype.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: spamdict_setstate
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _spamdictobject_CAST
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamdict_setstate(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/cpython/Modules/xxsubtype.c:194,1
    - Dst: _spamdictobject_CAST
      Src: /src/cpython/Modules/xxsubtype.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: spamdict_init
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - tp_init
    - _spamdictobject_CAST
    linkageType: ''
    returnType: int
    signature: int spamdict_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxsubtype.c:256,1
    - Dst: clock
      Src: /src/cpython/Modules/xxsubtype.c:259,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/xxsubtype.c:261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxsubtype.c:264,1
    - Dst: clock
      Src: /src/cpython/Modules/xxsubtype.c:266,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/xxsubtype.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 269
    functionName: spam_bench
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - clock
    - Py_DECREF
    - PyArg_ParseTuple
    - PyObject_GetAttr
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spam_bench(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/xxsubtype.c:284,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/xxsubtype.c:288,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/xxsubtype.c:291,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/xxsubtype.c:293,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/xxsubtype.c:296,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/xxsubtype.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: xxsubtype_exec
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int xxsubtype_exec(PyObject* m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/xxsubtype.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: PyInit_xxsubtype
    functionSourceFile: /src/cpython/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xxsubtype(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_struct.c:33,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: get_struct_state
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _structmodulestate
    signature: '_structmodulestate *

      get_struct_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: get_struct_state_structinst
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_struct_state_structinst(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: get_struct_state_iterinst
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_struct_state_iterinst(self)
  - 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: PyStructObject_CAST
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyStructObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: PyStruct_Check
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyStruct_Check(op, state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:113,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:114,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_struct.c:116,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_struct.c:117,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:122,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_struct.c:128,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:130,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - state
    - v
    argTypes:
    - _structmodulestate*
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/cpython/Modules/_struct.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: get_pylong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyNumber_Index
    - PyErr_SetString
    - PyLong_Check
    - PyIndex_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_pylong(_structmodulestate *state, PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:142,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:145,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:145,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_struct.c:146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - v
    - p
    argTypes:
    - _structmodulestate*
    - PyObject*
    - long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 153
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 153
    functionName: get_long
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_Check
    - assert
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int get_long(_structmodulestate *state, PyObject *v, long *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:163,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:166,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:166,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_struct.c:167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:168,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - v
    - p
    argTypes:
    - _structmodulestate*
    - PyObject*
    - unsigned long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 174
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 174
    functionName: get_ulong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - assert
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int get_ulong(_structmodulestate *state, PyObject *v, unsigned long
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:183,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:186,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:186,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_struct.c:187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:188,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - v
    - p
    argTypes:
    - _structmodulestate*
    - PyObject*
    - long long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: get_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLongLong
    - PyErr_Occurred
    - PyLong_Check
    - assert
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int get_longlong(_structmodulestate *state, PyObject *v, long long
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:203,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:206,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:206,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_struct.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:208,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - v
    - p
    argTypes:
    - _structmodulestate*
    - PyObject*
    - unsigned long long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 214
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 214
    functionName: get_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsUnsignedLongLong
    - assert
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int get_ulonglong(_structmodulestate *state, PyObject *v, unsigned
      long long *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:223,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:226,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:226,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_struct.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:228,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - v
    - p
    argTypes:
    - _structmodulestate*
    - PyObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: get_ssize_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsSsize_t
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int get_ssize_t(_structmodulestate *state, PyObject *v, Py_ssize_t
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:243,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:246,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:246,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Modules/_struct.c:247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:248,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - v
    - p
    argTypes:
    - _structmodulestate*
    - PyObject*
    - size_t*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 254
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 254
    functionName: get_size_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_AsSize_t
    - PyLong_Check
    - assert
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int get_size_t(_structmodulestate *state, PyObject *v, size_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - state
    - ','
    - f
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: RANGE_ERROR
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_ERROR(state, f, flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Modules/_struct.c:266,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:267,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: unpack_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_FromDouble
    - PyFloat_Unpack2
    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/cpython/Modules/_struct.c:279,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:280,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:281,1
    - Dst: PyFloat_Pack2
      Src: /src/cpython/Modules/_struct.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - le
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 286
    functionName: pack_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_Pack2
    linkageType: ''
    returnType: int
    signature: "int pack_halffloat(_structmodulestate *state,\n               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/cpython/Modules/_struct.c:294,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:295,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 298
    functionName: unpack_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_FromDouble
    - PyFloat_Unpack4
    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/cpython/Modules/_struct.c:306,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:307,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: unpack_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_Unpack8
    - PyFloat_FromDouble
    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/cpython/Modules/_struct.c:325,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:327,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - state
    - f
    - is_unsigned
    argTypes:
    - _structmodulestate*
    - formatdef*
    - int
    assertStmts:
    - condition: (f->size >= 1 && f->size <= SIZEOF_SIZE_T)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 341
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 341
    functionName: _range_error
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _range_error(_structmodulestate *state, const formatdef *f, int
      is_unsigned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_struct.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: nu_char
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_char(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: nu_byte
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_byte(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: nu_ubyte
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ubyte(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:386,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: nu_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_short(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:394,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: nu_ushort
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ushort(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:402,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: nu_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_int(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:410,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_struct.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: nu_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_uint(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:418,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: nu_long
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_long(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:426,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_struct.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: nu_ulong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ulong(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:434,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_struct.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: nu_ssize_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ssize_t(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:442,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_struct.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: nu_size_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_size_t(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:450,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_struct.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: nu_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_longlong(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:458,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_struct.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: nu_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ulonglong(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_struct.c:466,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_struct.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: nu_bool
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_bool(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_halffloat
      Src: /src/cpython/Modules/_struct.c:474,1
    - Dst: unpack_halffloat
      Src: /src/cpython/Modules/_struct.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 478
    functionName: nu_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_halffloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_halffloat(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:484,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 486
    functionName: nu_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_float(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:492,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: nu_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_double(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:501,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 503
    functionName: nu_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyComplex_FromDoubles
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_float_complex(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:510,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: nu_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyComplex_FromDoubles
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_double_complex(_structmodulestate *state, const char *p, const formatdef
      *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:518,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_struct.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: nu_void_p
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_void_p(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:526,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:527,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:528,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 537
    functionName: np_byte
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_byte(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:543,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:544,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:545,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 554
    functionName: np_ubyte
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_ubyte(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:559,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_struct.c:559,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:560,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 566
    functionName: np_char
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyBytes_Size
    - PyErr_SetString
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int np_char(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:573,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:574,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:575,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:580,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 585
    functionName: np_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_short(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:592,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:593,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:594,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:599,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 604
    functionName: np_ushort
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_ushort(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:611,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:612,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:613,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:619,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 624
    functionName: np_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_int(_structmodulestate *state, char *p, PyObject *v, const formatdef
      *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/cpython/Modules/_struct.c:631,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:632,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:633,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:640,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:642,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 644
    functionName: np_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - get_ulong
    - memcpy
    - RANGE_ERROR
    linkageType: ''
    returnType: int
    signature: int np_uint(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:650,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:651,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:652,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 658
    functionName: np_long
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_long(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/cpython/Modules/_struct.c:664,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:665,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:666,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 672
    functionName: np_ulong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - get_ulong
    - memcpy
    - RANGE_ERROR
    linkageType: ''
    returnType: int
    signature: int np_ulong(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_ssize_t
      Src: /src/cpython/Modules/_struct.c:678,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:679,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:680,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 686
    functionName: np_ssize_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - get_ssize_t
    - RANGE_ERROR
    linkageType: ''
    returnType: int
    signature: int np_ssize_t(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_size_t
      Src: /src/cpython/Modules/_struct.c:692,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:693,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:694,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 700
    functionName: np_size_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - get_size_t
    - RANGE_ERROR
    linkageType: ''
    returnType: int
    signature: int np_size_t(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_longlong
      Src: /src/cpython/Modules/_struct.c:706,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:707,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:708,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 718
    functionName: np_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_longlong
    - PyErr_ExceptionMatches
    - memcpy
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int np_longlong(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_ulonglong
      Src: /src/cpython/Modules/_struct.c:724,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:725,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:726,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 735
    functionName: np_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - get_ulonglong
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int np_ulonglong(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_struct.c:743,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 749
    functionName: np_bool
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int np_bool(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_halffloat
      Src: /src/cpython/Modules/_struct.c:755,1
    - Dst: pack_halffloat
      Src: /src/cpython/Modules/_struct.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: np_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - pack_halffloat
    linkageType: ''
    returnType: int
    signature: int np_halffloat(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_struct.c:764,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:765,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:766,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 772
    functionName: np_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyErr_SetString
    - memcpy
    linkageType: ''
    returnType: int
    signature: int np_float(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_struct.c:777,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:778,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:779,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 785
    functionName: np_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyErr_SetString
    - memcpy
    linkageType: ''
    returnType: int
    signature: int np_double(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_struct.c:791,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:795,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 801
    functionName: np_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - PyErr_SetString
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int np_float_complex(_structmodulestate *state, char *p, PyObject
      *v,\n                 const formatdef *f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_struct.c:807,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:810,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:811,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 817
    functionName: np_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - PyErr_SetString
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int np_double_complex(_structmodulestate *state, char *p, PyObject
      *v,\n                  const formatdef *f)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:824,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:827,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:827,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_struct.c:828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:829,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:830,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 826
        line_start: 826
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 834
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 834
    functionName: np_void_p
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsVoidPtr
    - memcpy
    - assert
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int np_void_p(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:871,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts:
    - condition: (f->size == 2)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 880
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 880
    functionName: bu_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_short(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:888,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts:
    - condition: (f->size == 4)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 897
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 897
    functionName: bu_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_int(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_struct.c:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 909
    functionName: bu_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_uint(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:917,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_struct.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts:
    - condition: (f->size == 8)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 927
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 927
    functionName: bu_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_longlong(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_struct.c:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 939
    functionName: bu_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_ulonglong(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_halffloat
      Src: /src/cpython/Modules/_struct.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 945
    functionName: bu_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_halffloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_halffloat(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_float
      Src: /src/cpython/Modules/_struct.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 951
    functionName: bu_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_float
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_float(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_double
      Src: /src/cpython/Modules/_struct.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 957
    functionName: bu_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_double
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_double(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_struct.c:962,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:963,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_struct.c:966,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:967,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:970,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 971
    functionName: bu_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyComplex_FromDoubles
    - PyFloat_Unpack4
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_float_complex(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_struct.c:978,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:979,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_struct.c:982,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:983,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 987
    functionName: bu_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_Unpack8
    - PyComplex_FromDoubles
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_double_complex(_structmodulestate *state, const char *p, const formatdef
      *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_struct.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 993
    functionName: bu_bool
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_bool(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:1001,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1002,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1003,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1010,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1013,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 995
    functionDepth: 3
    functionLinenumber: 995
    functionLinenumberEnd: 1021
    functionName: bp_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int bp_int(_structmodulestate *state, char *p, PyObject *v, const formatdef
      *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/cpython/Modules/_struct.c:1029,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1030,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1031,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1040,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1023
    functionDepth: 3
    functionLinenumber: 1023
    functionLinenumberEnd: 1047
    functionName: bp_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - get_ulong
    - RANGE_ERROR
    linkageType: ''
    returnType: int
    signature: int bp_uint(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:1053,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1062,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1072
    functionName: bp_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _PyLong_AsByteArray
    - Py_DECREF
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int bp_longlong(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:1078,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1081,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1087,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1096
    functionName: bp_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _PyLong_AsByteArray
    - Py_DECREF
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int bp_ulonglong(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_halffloat
      Src: /src/cpython/Modules/_struct.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1102
    functionName: bp_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - pack_halffloat
    linkageType: ''
    returnType: int
    signature: int bp_halffloat(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_struct.c:1107,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1109,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1114
    functionName: bp_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_Pack4
    linkageType: ''
    returnType: int
    signature: int bp_float(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_struct.c:1119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1120,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1121,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1126
    functionName: bp_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_Pack8
    linkageType: ''
    returnType: int
    signature: int bp_double(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_struct.c:1131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1133,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1137,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1141
    functionName: bp_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Pack4
    linkageType: ''
    returnType: int
    signature: int bp_float_complex(_structmodulestate *state, char *p, PyObject *v,
      const formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_struct.c:1146,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1148,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1152,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1156
    functionName: bp_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Pack8
    linkageType: ''
    returnType: int
    signature: int bp_double_complex(_structmodulestate *state, char *p, PyObject
      *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_struct.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1167
    functionName: bp_bool
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int bp_bool(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:1201,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:1209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts:
    - condition: (f->size == 2)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1210
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1210
    functionName: lu_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_short(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:1218,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts:
    - condition: (f->size == 4)
      pos:
        line_end: 1217
        line_start: 1217
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1227
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1227
    functionName: lu_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_int(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_struct.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1239
    functionName: lu_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_uint(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:1247,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_struct.c:1255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts:
    - condition: (f->size == 8)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1257
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1257
    functionName: lu_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_longlong(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_struct.c:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1269
    functionName: lu_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_ulonglong(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_halffloat
      Src: /src/cpython/Modules/_struct.c:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1275
    functionName: lu_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_halffloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_halffloat(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_float
      Src: /src/cpython/Modules/_struct.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1281
    functionName: lu_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_float
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_float(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_double
      Src: /src/cpython/Modules/_struct.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1287
    functionName: lu_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_double
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_double(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_struct.c:1292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1293,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_struct.c:1296,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1297,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:1300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1301
    functionName: lu_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyComplex_FromDoubles
    - PyFloat_Unpack4
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_float_complex(_structmodulestate *state, const char *p, const formatdef *f)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_struct.c:1308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1309,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_struct.c:1312,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1313,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:1316,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1317
    functionName: lu_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_Unpack8
    - PyComplex_FromDoubles
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_double_complex(_structmodulestate *state, const char *p, const formatdef
      *f)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/cpython/Modules/_struct.c:1325,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1326,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1327,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1334,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1319
    functionDepth: 3
    functionLinenumber: 1319
    functionLinenumberEnd: 1345
    functionName: lp_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int lp_int(_structmodulestate *state, char *p, PyObject *v, const formatdef
      *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/cpython/Modules/_struct.c:1353,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1354,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1355,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1347
    functionDepth: 3
    functionLinenumber: 1347
    functionLinenumberEnd: 1371
    functionName: lp_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - get_ulong
    - RANGE_ERROR
    linkageType: ''
    returnType: int
    signature: int lp_uint(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:1377,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1386,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1396
    functionName: lp_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _PyLong_AsByteArray
    - Py_DECREF
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int lp_longlong(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:1402,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1411,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1420
    functionName: lp_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _PyLong_AsByteArray
    - Py_DECREF
    - get_pylong
    linkageType: ''
    returnType: int
    signature: int lp_ulonglong(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_halffloat
      Src: /src/cpython/Modules/_struct.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1422
    functionDepth: 2
    functionLinenumber: 1422
    functionLinenumberEnd: 1426
    functionName: lp_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - pack_halffloat
    linkageType: ''
    returnType: int
    signature: int lp_halffloat(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_struct.c:1431,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1432,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1433,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1438
    functionName: lp_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_Pack4
    linkageType: ''
    returnType: int
    signature: int lp_float(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_struct.c:1443,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1444,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1445,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1450
    functionName: lp_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_Pack8
    linkageType: ''
    returnType: int
    signature: int lp_double(_structmodulestate *state, char *p, PyObject *v, const
      formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_struct.c:1455,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1457,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1461,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1466
    functionName: lp_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Pack4
    linkageType: ''
    returnType: int
    signature: int lp_float_complex(_structmodulestate *state, char *p, PyObject *v,
      const formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_struct.c:1471,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1472,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1473,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1477,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1481
    functionName: lp_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Pack8
    linkageType: ''
    returnType: int
    signature: int lp_double_complex(_structmodulestate *state, char *p, PyObject
      *v, const formatdef *f)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - pfmt
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1532
    functionName: whichtable
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: formatdef
    signature: 'formatdef *

      whichtable(const char **pfmt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - state
    - c
    - f
    argTypes:
    - _structmodulestate*
    - int
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1547
    functionName: getentry
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: formatdef
    signature: 'formatdef *

      getentry(_structmodulestate *state, 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: 1566
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1566
    functionName: align
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t align(Py_ssize_t size, char c, const formatdef *e)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:1587,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:1589,1
    - Dst: strlen
      Src: /src/cpython/Modules/_struct.c:1590,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1590,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1591,1
    - Dst: whichtable
      Src: /src/cpython/Modules/_struct.c:1596,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Modules/_struct.c:1603,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1617,1
    - Dst: getentry
      Src: /src/cpython/Modules/_struct.c:1625,1
    - Dst: align
      Src: /src/cpython/Modules/_struct.c:1637,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_struct.c:1649,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_struct.c:1655,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_struct.c:1657,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_struct.c:1662,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Modules/_struct.c:1668,1
    - Dst: getentry
      Src: /src/cpython/Modules/_struct.c:1678,1
    - Dst: align
      Src: /src/cpython/Modules/_struct.c:1680,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1707,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 112
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyStructObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1574
    functionDepth: 2
    functionLinenumber: 1574
    functionLinenumberEnd: 1710
    functionName: prepare_s
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - getentry
    - strlen
    - PyErr_SetString
    - whichtable
    - PyMem_Free
    - PyBytes_GET_SIZE
    - get_struct_state_structinst
    - align
    - PyMem_Malloc
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - Py_ISSPACE
    linkageType: ''
    returnType: int
    signature: int prepare_s(PyStructObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:1717,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_struct.c:1718,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:1719,1
    - Dst: alloc_func
      Src: /src/cpython/Modules/_struct.c:1721,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_struct.c:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/cpython/Modules/_struct.c
    - condition: (alloc_func != NULL)
      pos:
        line_end: 1718
        line_start: 1718
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1730
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1730
    functionName: s_new
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 2
    functionsReached:
    - PyType_GetSlot
    - alloc_func
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_struct.c:1751,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_struct.c:1752,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_struct.c:1757,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:1760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1761,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1762,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_struct.c:1765,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:1765,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_struct.c:1769,1
    - Dst: prepare_s
      Src: /src/cpython/Modules/_struct.c:1771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1745
    functionDepth: 3
    functionLinenumber: 1745
    functionLinenumberEnd: 1773
    functionName: Struct___init___impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyUnicode_AsASCIIString
    - prepare_s
    - PyBytes_Check
    - Py_SETREF
    - _PyType_Name
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Struct___init___impl(PyStructObject *self, PyObject *format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:1778,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1781
    functionName: s_clear
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 4
    functionsReached:
    - PyStructObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int s_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:1786,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:1787,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:1787,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1783
    functionDepth: 1
    functionLinenumber: 1783
    functionLinenumberEnd: 1790
    functionName: s_traverse
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyStructObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int s_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:1795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:1796,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_struct.c:1797,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_struct.c:1798,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_struct.c:1800,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_struct.c:1802,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_struct.c:1803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1805
    functionName: s_dealloc
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - PyStructObject_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void s_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_struct.c:1812,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_struct.c:1823,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_struct.c:1835,1
    - Dst: formatdef*::unpack
      Src: /src/cpython/Modules/_struct.c:1837,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_struct.c:1841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1848,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - soself
    - startfrom
    - state
    argTypes:
    - PyStructObject*
    - char*
    - _structmodulestate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1850
    functionName: s_unpack_internal
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyBytes_FromStringAndSize
    - formatdef*::unpack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ns_unpack_internal(PyStructObject *soself, const char *startfrom,\n
      \                 _structmodulestate *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:1871,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:1872,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1874,1
    - Dst: s_unpack_internal
      Src: /src/cpython/Modules/_struct.c:1879,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: 1871
        line_start: 1871
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1880
      start: 1867
    functionDepth: 2
    functionLinenumber: 1867
    functionLinenumberEnd: 1880
    functionName: Struct_unpack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - s_unpack_internal
    - get_struct_state_structinst
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_unpack_impl(PyStructObject *self, Py_buffer *buffer)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:1903,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:1904,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1908,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1916,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1926,1
    - Dst: s_unpack_internal
      Src: /src/cpython/Modules/_struct.c:1936,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: 1903
        line_start: 1903
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1937
      start: 1898
    functionDepth: 2
    functionLinenumber: 1898
    functionLinenumberEnd: 1937
    functionName: Struct_unpack_from_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - s_unpack_internal
    - get_struct_state_structinst
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nStruct_unpack_from_impl(PyStructObject *self, Py_buffer
      *buffer,\n                        Py_ssize_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1950
    functionDepth: 0
    functionLinenumber: 1950
    functionLinenumberEnd: 1951
    functionName: unpackiterobject_CAST
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpackiterobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpackiterobject_CAST
      Src: /src/cpython/Modules/_struct.c:1955,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:1957,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_struct.c:1958,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_struct.c:1959,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:1960,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_struct.c:1961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1952
    functionDepth: 1
    functionLinenumber: 1952
    functionLinenumberEnd: 1963
    functionName: unpackiter_dealloc
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpackiterobject_CAST
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - PyBuffer_Release
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void unpackiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpackiterobject_CAST
      Src: /src/cpython/Modules/_struct.c:1968,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:1969,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:1969,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:1970,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:1971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 1973
    functionName: unpackiter_traverse
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpackiterobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int unpackiter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unpackiterobject_CAST
      Src: /src/cpython/Modules/_struct.c:1979,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_struct.c:1986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1975
    functionDepth: 1
    functionLinenumber: 1975
    functionLinenumberEnd: 1987
    functionName: unpackiter_len
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpackiterobject_CAST
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpackiter_len(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unpackiterobject_CAST
      Src: /src/cpython/Modules/_struct.c:1997,1
    - Dst: get_struct_state_iterinst
      Src: /src/cpython/Modules/_struct.c:1998,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2005,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2006,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2009,1
    - Dst: s_unpack_internal
      Src: /src/cpython/Modules/_struct.c:2010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->index + self->so->s_size <= self->buf.len)
      pos:
        line_end: 2008
        line_start: 2008
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 2015
      start: 1994
    functionDepth: 2
    functionLinenumber: 1994
    functionLinenumberEnd: 2015
    functionName: unpackiter_iternext
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpackiterobject_CAST
    - s_unpack_internal
    - PyBuffer_Release
    - Py_CLEAR
    - assert
    - get_struct_state_iterinst
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpackiter_iternext(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:2054,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2057,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2060,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Modules/_struct.c:2065,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_struct.c:2069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2078,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_struct.c:2081,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts:
    - condition: (self->s_codes != NULL)
      pos:
        line_end: 2056
        line_start: 2056
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 2084
      start: 2050
    functionDepth: 1
    functionLinenumber: 2050
    functionLinenumberEnd: 2084
    functionName: Struct_iter_unpack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_NewRef
    - PyObject_GetBuffer
    - get_struct_state_structinst
    - PyErr_Format
    - assert
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_iter_unpack_impl(PyStructObject *self, PyObject *buffer)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_struct.c:2106,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:2118,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_struct.c:2119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:2120,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2125,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2126,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2129,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2130,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:2135,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:2140,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_struct.c:2141,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:2142,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2147,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2148,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2151,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2152,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:2161,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_struct.c:2164,1
    - Dst: formatdef*::pack
      Src: /src/cpython/Modules/_struct.c:2166,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:2167,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:2167,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:2168,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 5
    argNames:
    - soself
    - args
    - offset
    - buf
    - state
    argTypes:
    - PyStructObject*
    - PyObject**
    - int
    - char*
    - _structmodulestate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2179
    functionName: s_pack_internal
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - memcpy
    - memset
    - PyByteArray_AS_STRING
    - PyLong_Check
    - PyBytes_Check
    - PyErr_ExceptionMatches
    - PyBytes_GET_SIZE
    - formatdef*::pack
    - PyByteArray_GET_SIZE
    - PyByteArray_Check
    - Py_SAFE_DOWNCAST
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: "int s_pack_internal(PyStructObject *soself, PyObject *const *args,
      int offset,\n                char* buf, _structmodulestate *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:2194,1
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2197,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2198,1
    - Dst: PyStruct_Check
      Src: /src/cpython/Modules/_struct.c:2198,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2199,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2202,1
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Modules/_struct.c:2209,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Modules/_struct.c:2210,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Modules/_struct.c:2212,1
    - Dst: s_pack_internal
      Src: /src/cpython/Modules/_struct.c:2217,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Modules/_struct.c:2218,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Modules/_struct.c:2222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (PyStruct_Check(self, state))
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/cpython/Modules/_struct.c
    - condition: (soself->s_codes != NULL)
      pos:
        line_end: 2198
        line_start: 2198
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 2223
      start: 2189
    functionDepth: 2
    functionLinenumber: 2189
    functionLinenumberEnd: 2223
    functionName: s_pack
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - s_pack_internal
    - PyStruct_Check
    - _PyBytesWriter_Init
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Alloc
    - PyStructObject_CAST
    - get_struct_state_structinst
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_pack(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:2239,1
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2242,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2243,1
    - Dst: PyStruct_Check
      Src: /src/cpython/Modules/_struct.c:2243,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2244,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2248,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2252,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2256,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_struct.c:2264,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2266,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_struct.c:2269,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:2270,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2271,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2279,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2283,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2289,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2293,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2302,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2303,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2305,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2313,1
    - Dst: s_pack_internal
      Src: /src/cpython/Modules/_struct.c:2318,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2319,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2323,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (soself->s_size >= 0)
      pos:
        line_end: 2302
        line_start: 2302
        source_file: /src/cpython/Modules/_struct.c
    - condition: (offset >= 0)
      pos:
        line_end: 2301
        line_start: 2301
        source_file: /src/cpython/Modules/_struct.c
    - condition: (buffer.len >= 0)
      pos:
        line_end: 2265
        line_start: 2265
        source_file: /src/cpython/Modules/_struct.c
    - condition: (PyStruct_Check(self, state))
      pos:
        line_end: 2242
        line_start: 2242
        source_file: /src/cpython/Modules/_struct.c
    - condition: (soself->s_codes != NULL)
      pos:
        line_end: 2243
        line_start: 2243
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 2325
      start: 2233
    functionDepth: 2
    functionLinenumber: 2233
    functionLinenumberEnd: 2325
    functionName: s_pack_into
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - s_pack_internal
    - PyErr_Occurred
    - PyStruct_Check
    - PyNumber_AsSsize_t
    - PyStructObject_CAST
    - get_struct_state_structinst
    - PyBuffer_Release
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2330,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_struct.c:2331,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2331,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2327
    functionDepth: 1
    functionLinenumber: 2327
    functionLinenumberEnd: 2333
    functionName: s_get_format
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyBytes_AS_STRING
    - PyStructObject_CAST
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_get_format(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2338,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_struct.c:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2340
    functionName: s_get_size
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyStructObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_get_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2348,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_struct.c:2349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2349,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_struct.c:2353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2354
    functionName: s_sizeof
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    - PyStructObject_CAST
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_sizeof(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2359,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_struct.c:2360,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2361,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2361,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_struct.c:2365,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_struct.c:2365,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2356
    functionDepth: 1
    functionLinenumber: 2356
    functionLinenumberEnd: 2368
    functionName: s_repr
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyStructObject_CAST
    - PyBytes_GET_SIZE
    - _PyType_Name
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_repr(PyObject *op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2434,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_struct.c:2437,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_struct.c:2441,1
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2445,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_struct.c:2449,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2451,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Modules/_struct.c:2452,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_struct.c:2454,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_struct.c:2455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - module
    - fmt
    - ptr
    argTypes:
    - PyObject*
    - PyObject*
    - PyStructObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2430
    functionDepth: 2
    functionLinenumber: 2430
    functionLinenumberEnd: 2460
    functionName: cache_struct_converter
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_struct_state
    - PyDict_GET_SIZE
    - PyDict_Clear
    - PyDict_SetItem
    - Py_SETREF
    - PyObject_CallOneArg
    - PyStructObject_CAST
    - PyDict_GetItemRef
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int cache_struct_converter(PyObject *module, PyObject *fmt, PyStructObject
      **ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Clear
      Src: /src/cpython/Modules/_struct.c:2472,1
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2468
    functionDepth: 2
    functionLinenumber: 2468
    functionLinenumberEnd: 2474
    functionName: _clearcache_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    - get_struct_state
    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: 2491
      start: 2486
    functionDepth: 0
    functionLinenumber: 2486
    functionLinenumberEnd: 2491
    functionName: calcsize_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_struct.c:2506,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/_struct.c:2511,1
    - Dst: s_pack
      Src: /src/cpython/Modules/_struct.c:2514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2499
    functionDepth: 3
    functionLinenumber: 2499
    functionLinenumberEnd: 2517
    functionName: pack
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - s_pack
    - cache_struct_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:2534,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/_struct.c:2539,1
    - Dst: s_pack_into
      Src: /src/cpython/Modules/_struct.c:2542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2527
    functionDepth: 3
    functionLinenumber: 2527
    functionLinenumberEnd: 2545
    functionName: pack_into
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - Py_DECREF
    - s_pack_into
    - cache_struct_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pack_into(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_unpack_impl
      Src: /src/cpython/Modules/_struct.c:2565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - s_object
    - buffer
    argTypes:
    - PyObject*
    - PyStructObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2561
    functionDepth: 3
    functionLinenumber: 2561
    functionLinenumberEnd: 2566
    functionName: unpack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 1
    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/cpython/Modules/_struct.c:2588,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: 2589
      start: 2583
    functionDepth: 3
    functionLinenumber: 2583
    functionLinenumberEnd: 2589
    functionName: unpack_from_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 1
    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/cpython/Modules/_struct.c:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - s_object
    - buffer
    argTypes:
    - PyObject*
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2606
    functionDepth: 1
    functionLinenumber: 2606
    functionLinenumberEnd: 2612
    functionName: iter_unpack_impl
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2662,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2664,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2665,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2666,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2659
    functionDepth: 2
    functionLinenumber: 2659
    functionLinenumberEnd: 2670
    functionName: _structmodule_traverse
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_struct_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _structmodule_traverse(PyObject *module, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2675,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2677,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2678,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2679,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2672
    functionDepth: 2
    functionLinenumber: 2672
    functionLinenumberEnd: 2683
    functionName: _structmodule_clear
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_struct_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _structmodule_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _structmodule_clear
      Src: /src/cpython/Modules/_struct.c:2688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2685
    functionDepth: 3
    functionLinenumber: 2685
    functionLinenumberEnd: 2689
    functionName: _structmodule_free
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - _structmodule_clear
    linkageType: ''
    returnType: void
    signature: void _structmodule_free(void *module)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2694,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_struct.c:2696,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_struct.c:2701,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_struct.c:2706,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_struct.c:2710,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_struct.c:2759,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_struct.c:2763,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2691
    functionDepth: 2
    functionLinenumber: 2691
    functionLinenumberEnd: 2768
    functionName: _structmodule_exec
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_struct_state
    - PyModule_AddObjectRef
    - PyType_FromModuleAndSpec
    - PyErr_NewException
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int _structmodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_struct.c:2792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2789
    functionDepth: 1
    functionLinenumber: 2789
    functionLinenumberEnd: 2793
    functionName: PyInit__struct
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__struct(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: _MD5object_CAST
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MD5object_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/md5module.c:54,1
    - Dst: assert
      Src: /src/cpython/Modules/md5module.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: md5_get_state
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: MD5State
    signature: 'MD5State *

      md5_get_state(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/md5module.c:74,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/md5module.c:78,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/md5module.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - MD5State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: newMD5object
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: MD5object
    signature: 'MD5object *

      newMD5object(MD5State * st)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/md5module.c:88,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/md5module.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: MD5_traverse
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int MD5_traverse(PyObject *ptr, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MD5object_CAST
      Src: /src/cpython/Modules/md5module.c:95,1
    - Dst: Hacl_Hash_MD5_free
      Src: /src/cpython/Modules/md5module.c:96,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/md5module.c:97,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/md5module.c:98,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/md5module.c:99,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/md5module.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: MD5_dealloc
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_MD5_free
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - _MD5object_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void MD5_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/md5module.c:118,1
    - Dst: newMD5object
      Src: /src/cpython/Modules/md5module.c:121,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/md5module.c:125,1
    - Dst: Hacl_Hash_MD5_copy
      Src: /src/cpython/Modules/md5module.c:126,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/md5module.c:127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/md5module.c:129,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/md5module.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - MD5object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: MD5Type_copy_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_MD5_copy
    - Py_DECREF
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - PyType_GetModuleState
    - PyErr_NoMemory
    - newMD5object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_copy_impl(MD5object *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/md5module.c:146,1
    - Dst: Hacl_Hash_MD5_digest
      Src: /src/cpython/Modules/md5module.c:147,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/md5module.c:148,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/md5module.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MD5object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: MD5Type_digest_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_RELEASE_LOCK
    - Hacl_Hash_MD5_digest
    - HASHLIB_ACQUIRE_LOCK
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_digest_impl(MD5object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/md5module.c:163,1
    - Dst: Hacl_Hash_MD5_digest
      Src: /src/cpython/Modules/md5module.c:164,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/md5module.c:165,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/md5module.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MD5object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: MD5Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    - Hacl_Hash_MD5_digest
    - HASHLIB_ACQUIRE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_hexdigest_impl(MD5object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/md5module.c:177,1
    - Dst: Hacl_Hash_MD5_update
      Src: /src/cpython/Modules/md5module.c:180,1
    - Dst: Hacl_Hash_MD5_update
      Src: /src/cpython/Modules/md5module.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - Hacl_Hash_MD5_state_t*
    - uint8_t*
    - Py_ssize_t
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: update
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 10
    functionsReached:
    - Hacl_Hash_MD5_update
    - assert
    linkageType: ''
    returnType: void
    signature: void update(Hacl_Hash_MD5_state_t *state, uint8_t *buf, Py_ssize_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/md5module.c:203,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/md5module.c:204,1
    - Dst: update
      Src: /src/cpython/Modules/md5module.c:206,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - MD5object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: MD5Type_update_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_update_impl(MD5object *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/md5module.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: MD5_get_block_size
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/md5module.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: MD5_get_name
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5_get_name(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/md5module.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: md5_get_digest_size
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      md5_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/md5module.c:280,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/md5module.c:288,1
    - Dst: md5_get_state
      Src: /src/cpython/Modules/md5module.c:291,1
    - Dst: newMD5object::newMD5object
      Src: /src/cpython/Modules/md5module.c:292,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:294,1
    - Dst: Hacl_Hash_MD5_malloc
      Src: /src/cpython/Modules/md5module.c:299,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/md5module.c:300,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:303,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/md5module.c:305,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/md5module.c:311,1
    - Dst: update
      Src: /src/cpython/Modules/md5module.c:313,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/md5module.c:313,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string_obj
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 319
    functionName: _md5_md5_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - newMD5object::newMD5object
    - md5_get_state
    - GET_BUFFER_VIEW_OR_ERROUT
    - _Py_hashlib_data_argument
    - PyBuffer_Release
    - update
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - Hacl_Hash_MD5_malloc
    - hash_state::hash_state
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_md5_md5_impl(PyObject *module, PyObject *data, int usedforsecurity,\n
      \             PyObject *string_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_get_state
      Src: /src/cpython/Modules/md5module.c:332,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/md5module.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: _md5_traverse
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - md5_get_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _md5_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_get_state
      Src: /src/cpython/Modules/md5module.c:340,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/md5module.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: _md5_clear
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - md5_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _md5_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _md5_clear
      Src: /src/cpython/Modules/md5module.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: _md5_free
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - _md5_clear
    linkageType: ''
    returnType: void
    signature: void _md5_free(void *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: md5_get_state
      Src: /src/cpython/Modules/md5module.c:355,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/md5module.c:357,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/md5module.c:360,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/md5module.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 368
    functionName: md5_exec
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyType_FromModuleAndSpec
    - md5_get_state
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int md5_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/md5module.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: PyInit__md5
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: DATE_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATE_TYPE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: DATETIME_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATETIME_TYPE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: TIME_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_TYPE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: DELTA_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DELTA_TYPE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: TZINFO_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TZINFO_TYPE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: TIMEZONE_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMEZONE_TYPE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: ISOCALENDAR_DATE_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISOCALENDAR_DATE_TYPE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: PyDate_CAST
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: PyDate_Check
    functionSourceFile: /src/cpython/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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: PyDate_CheckExact
    functionSourceFile: /src/cpython/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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: PyDateTime_CAST
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_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: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: PyDateTime_Check
    functionSourceFile: /src/cpython/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: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: PyDateTime_CheckExact
    functionSourceFile: /src/cpython/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: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: PyTime_CAST
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTime_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: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: PyTime_Check
    functionSourceFile: /src/cpython/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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: PyTime_CheckExact
    functionSourceFile: /src/cpython/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: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: PyDelta_CAST
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDelta_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: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: PyDelta_Check
    functionSourceFile: /src/cpython/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: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: PyDelta_CheckExact
    functionSourceFile: /src/cpython/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: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: PyTZInfo_CAST
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTZInfo_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: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: PyTZInfo_Check
    functionSourceFile: /src/cpython/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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: PyTZInfo_CheckExact
    functionSourceFile: /src/cpython/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: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: PyTimeZone_CAST
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTimeZone_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: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: PyTimezone_Check
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTimezone_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: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: PyIsoCalendarDate_CAST
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyIsoCalendarDate_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: CONST_US_PER_MS
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_US_PER_MS(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: CONST_US_PER_SECOND
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_US_PER_SECOND(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: CONST_US_PER_MINUTE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_US_PER_MINUTE(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: CONST_US_PER_HOUR
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_US_PER_HOUR(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: CONST_US_PER_DAY
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_US_PER_DAY(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: CONST_US_PER_WEEK
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_US_PER_WEEK(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: CONST_SEC_PER_DAY
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_SEC_PER_DAY(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: CONST_EPOCH
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_EPOCH(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: CONST_UTC
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_UTC(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_datetimemodule.c:119,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 54
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: datetime_state
    signature: 'datetime_state *

      get_module_state(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:132,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_datetimemodule.c:137,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_datetimemodule.c:142,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:146,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:152,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: get_current_module
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyWeakref_GetRef
    - PyDict_GetItemRef
    - Py_CLEAR
    - assert
    - PyInterpreterState_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_current_module(PyInterpreterState *interp)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_datetimemodule.c:161,1
    - Dst: get_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:162,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:164,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:164,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:165,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_datetimemodule.c:170,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_datetimemodule.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - p_mod
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: _get_current_state
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - get_module_state
    - PyErr_Occurred
    - PyImport_ImportModule
    - get_current_module
    - assert
    linkageType: ''
    returnType: datetime_state
    signature: 'datetime_state *

      _get_current_state(PyObject **p_mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MOD_VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: GET_CURRENT_STATE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CURRENT_STATE(MOD_VAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ST_VAR
    - ','
    - MOD_VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: RELEASE_CURRENT_STATE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE_CURRENT_STATE(ST_VAR, MOD_VAR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:188,1
    - Dst: PyInterpreterState_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:189,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:193,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_datetimemodule.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - interp
    - mod
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 200
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 200
    functionName: set_current_module
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyWeakref_NewRef
    - Py_DECREF
    - PyDict_SetItem
    - assert
    - PyInterpreterState_GetDict
    linkageType: ''
    returnType: int
    signature: int set_current_module(PyInterpreterState *interp, PyObject *mod)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_datetimemodule.c:205,1
    - Dst: PyInterpreterState_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:207,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_datetimemodule.c:214,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_datetimemodule.c:219,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:222,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_datetimemodule.c:233,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_datetimemodule.c:240,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_datetimemodule.c:243,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - interp
    - expected
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 244
    functionName: clear_current_module
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetRaisedException
    - Py_XDECREF
    - Py_DECREF
    - PyDict_SetItem
    - PyErr_GetRaisedException
    - PyWeakref_GetRef
    - PyErr_FormatUnraisable
    - PyDict_GetItemRef
    - PyInterpreterState_GetDict
    linkageType: ''
    returnType: void
    signature: void clear_current_module(PyInterpreterState *interp, PyObject *expected)
  - 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: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: SET_YEAR
    functionSourceFile: /src/cpython/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: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: SET_MONTH
    functionSourceFile: /src/cpython/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: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: SET_DAY
    functionSourceFile: /src/cpython/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: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: DATE_SET_HOUR
    functionSourceFile: /src/cpython/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: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: DATE_SET_MINUTE
    functionSourceFile: /src/cpython/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: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: DATE_SET_SECOND
    functionSourceFile: /src/cpython/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: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: DATE_SET_MICROSECOND
    functionSourceFile: /src/cpython/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: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: DATE_SET_FOLD
    functionSourceFile: /src/cpython/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: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: TIME_SET_HOUR
    functionSourceFile: /src/cpython/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: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: TIME_SET_MINUTE
    functionSourceFile: /src/cpython/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: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: TIME_SET_SECOND
    functionSourceFile: /src/cpython/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: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: TIME_SET_MICROSECOND
    functionSourceFile: /src/cpython/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: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: TIME_SET_FOLD
    functionSourceFile: /src/cpython/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: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: GET_TD_DAYS
    functionSourceFile: /src/cpython/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: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: GET_TD_SECONDS
    functionSourceFile: /src/cpython/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: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: GET_TD_MICROSECONDS
    functionSourceFile: /src/cpython/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: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: SET_TD_DAYS
    functionSourceFile: /src/cpython/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: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: SET_TD_SECONDS
    functionSourceFile: /src/cpython/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: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: SET_TD_MICROSECONDS
    functionSourceFile: /src/cpython/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:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: MONTH_IS_SANE
    functionSourceFile: /src/cpython/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: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: SIGNED_ADD_OVERFLOWED
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGNED_ADD_OVERFLOWED(RESULT, I, J)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:367,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - x
    - y
    - r
    argTypes:
    - int
    - int
    - int*
    assertStmts:
    - condition: (y > 0)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= *r && *r < y)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 376
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 376
    functionName: divmod
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:387,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:390,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 394
    functionName: divide_nearest
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_DECREF
    - PyTuple_GET_ITEM
    - _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: 425
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 425
    functionName: is_leap
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_leap(int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:431,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:432,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (month >= 1)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (month <= 12)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: days_in_month
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:445,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:446,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (month >= 1)
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (month <= 12)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: days_before_month
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts:
    - condition: (year >= 1)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 466
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 466
    functionName: days_before_year
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:503,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:532,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:544,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:544,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:550,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:553,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:554,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:554,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: 502
        line_start: 502
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (n == 0)
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (leapyear == is_leap(*year))
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= n)
      pos:
        line_end: 552
        line_start: 552
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (n < days_in_month(*year, *month))
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 557
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 557
    functionName: ord_to_ymd
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_in_month
    - assert
    - 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/cpython/Modules/_datetimemodule.c:563,1
    - Dst: days_before_month
      Src: /src/cpython/Modules/_datetimemodule.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: ymd_to_ord
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: weekday
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 588
    functionName: iso_week1_monday
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ymd_to_ord
    linkageType: ''
    returnType: int
    signature: int iso_week1_monday(int year)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: weekday
      Src: /src/cpython/Modules/_datetimemodule.c:602,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:603,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:618,1
    - Dst: ord_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:622,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 6
    argNames:
    - iso_year
    - iso_week
    - iso_day
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 624
    functionName: iso_to_ymd
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - iso_week1_monday
    - ord_to_ymd
    - weekday
    - is_leap
    linkageType: ''
    returnType: int
    signature: "int iso_to_ymd(const int iso_year, const int iso_week, const int iso_day,\n
      \          int *year, int *month, int *day)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - days
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 643
    functionName: check_delta_day_range
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:653,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:658,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:662,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 670
    functionName: check_date_args
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_in_month
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_date_args(int year, int month, int day)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:679,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:683,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:687,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:691,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:696,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: 701
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 701
    functionName: check_time_args
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    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/cpython/Modules/_datetimemodule.c:716,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:717,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:719,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:721,1
    - Dst: SIGNED_ADD_OVERFLOWED
      Src: /src/cpython/Modules/_datetimemodule.c:721,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - hi
    - lo
    - factor
    argTypes:
    - int*
    - int*
    - int
    assertStmts:
    - condition: (factor > 0)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (lo != hi)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (! SIGNED_ADD_OVERFLOWED(new_hi, *hi, num_hi))
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= *lo && *lo < factor)
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 725
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 725
    functionName: normalize_pair
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - SIGNED_ADD_OVERFLOWED
    - divmod
    - assert
    linkageType: ''
    returnType: void
    signature: void normalize_pair(int *hi, int *lo, int factor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:737,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:744,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:750,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:751,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: 749
        line_start: 749
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= *us && *us < 1000000)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 752
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 752
    functionName: normalize_d_s_us
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:769,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:776,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:785,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:802,1
    - Dst: ord_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:807,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:812,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:813,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:817,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: 768
        line_start: 768
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (*m > 0)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (*d > 0)
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 821
      start: 760
    functionDepth: 3
    functionLinenumber: 760
    functionLinenumberEnd: 821
    functionName: normalize_y_m_d
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_in_month
    - ymd_to_ord
    - ord_to_ymd
    - 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/cpython/Modules/_datetimemodule.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 831
    functionName: normalize_date
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:841,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:842,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:843,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:844,1
    - Dst: normalize_date
      Src: /src/cpython/Modules/_datetimemodule.c:845,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: 846
      start: 836
    functionDepth: 5
    functionLinenumber: 836
    functionLinenumberEnd: 846
    functionName: normalize_datetime
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:873,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_datetimemodule.c:875,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Modules/_datetimemodule.c:877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - aware
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 879
    functionName: time_alloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_alloc(PyTypeObject *type, Py_ssize_t aware)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_datetimemodule.c:885,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_datetimemodule.c:887,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Modules/_datetimemodule.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - aware
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 891
    functionName: datetime_alloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_alloc(PyTypeObject *type, Py_ssize_t aware)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:903,1
    - Dst: SET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:904,1
    - Dst: SET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:905,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: 906
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 906
    functionName: set_date_fields
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - SET_YEAR
    - SET_MONTH
    - SET_DAY
    linkageType: ''
    returnType: void
    signature: void set_date_fields(PyDateTime_Date *self, int y, int m, int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: is_digit
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char is_digit(const char c)
  - 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: 930
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 930
    functionName: parse_digits
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      parse_digits(const char *ptr, int *var, size_t num_digits)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:946,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:962,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:967,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:973,1
    - Dst: iso_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:981,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:989,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:997,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 5
    argNames:
    - dtstr
    - len
    - year
    - month
    - day
    argTypes:
    - char*
    - size_t
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (p > dtstr)
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1002
      start: 932
    functionDepth: 4
    functionLinenumber: 932
    functionLinenumberEnd: 1002
    functionName: parse_isoformat_date
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - parse_digits
    - iso_to_ymd
    - assert
    linkageType: ''
    returnType: int
    signature: int parse_isoformat_date(const char *dtstr, const size_t len, int *year,
      int *month, int *day)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:1017,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:1055,1
    - Dst: is_digit
      Src: /src/cpython/Modules/_datetimemodule.c:1068,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 6
    argNames:
    - tstr
    - tstr_end
    - hour
    - minute
    - second
    - microsecond
    argTypes:
    - char*
    - char*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1074
    functionName: parse_hh_mm_ss_ff
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - parse_digits
    - is_digit
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_hh_mm_ss_ff
      Src: /src/cpython/Modules/_datetimemodule.c:1101,1
    - Dst: parse_hh_mm_ss_ff
      Src: /src/cpython/Modules/_datetimemodule.c:1133,1
    - Dst: check_time_args
      Src: /src/cpython/Modules/_datetimemodule.c:1137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    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: 1145
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1145
    functionName: parse_isoformat_time
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_time_args
    - 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/cpython/Modules/_datetimemodule.c:1157,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1161,1
    - Dst: set_date_fields
      Src: /src/cpython/Modules/_datetimemodule.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - year
    - month
    - day
    - type
    argTypes:
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1152
    functionDepth: 3
    functionLinenumber: 1152
    functionLinenumberEnd: 1165
    functionName: new_date_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - check_date_args
    - set_date_fields
    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: 1169
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1169
    functionName: new_date
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_date(year, month, day)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DATE_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1180,1
    - Dst: new_date_ex
      Src: /src/cpython/Modules/_datetimemodule.c:1181,1
    - Dst: DATETIME_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1183,1
    - Dst: new_datetime_ex
      Src: /src/cpython/Modules/_datetimemodule.c:1184,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - year
    - month
    - day
    - cls
    argTypes:
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1191
    functionName: new_date_subclass_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - DATETIME_TYPE
    - new_date_ex
    - DATE_TYPE
    - new_datetime_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_date_subclass_ex(int year, int month, int day, PyTypeObject *cls)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_date_args
      Src: /src/cpython/Modules/_datetimemodule.c:1201,1
    - Dst: check_time_args
      Src: /src/cpython/Modules/_datetimemodule.c:1204,1
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:1207,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1211,1
    - Dst: set_date_fields
      Src: /src/cpython/Modules/_datetimemodule.c:1214,1
    - Dst: DATE_SET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:1215,1
    - Dst: DATE_SET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:1216,1
    - Dst: DATE_SET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1217,1
    - Dst: DATE_SET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1218,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1220,1
    - Dst: DATE_SET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:1222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    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: 1225
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1225
    functionName: new_datetime_ex2
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_time_args
    - DATE_SET_MINUTE
    - DATE_SET_SECOND
    - DATE_SET_FOLD
    - Py_NewRef
    - set_date_fields
    - DATE_SET_HOUR
    - PyTypeObject*::tp_alloc
    - check_date_args
    - check_tzinfo_subclass
    - DATE_SET_MICROSECOND
    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/cpython/Modules/_datetimemodule.c:1231,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: 1233
      start: 1227
    functionDepth: 4
    functionLinenumber: 1227
    functionLinenumberEnd: 1233
    functionName: new_datetime_ex
    functionSourceFile: /src/cpython/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: 1237
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1237
    functionName: new_datetime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_datetime(y, m, d, hh, mm, ss, us, tzinfo, fold)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Modules/_datetimemodule.c:1244,1
    - Dst: Py_VaBuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:1245,1
    - Dst: va_end
      Src: /src/cpython/Modules/_datetimemodule.c:1246,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_datetimemodule.c:1251,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:1255,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_datetimemodule.c:1259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1260,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_datetimemodule.c:1265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1267,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - cls
    - fold
    - format
    argTypes:
    - PyTypeObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1270
    functionName: call_subclass_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Call
    - va_start
    - PyDict_New
    - Py_VaBuildValue
    - PyLong_FromLong
    - PyDict_SetItemString
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_subclass_fold(PyTypeObject *cls, int fold, const char *format, ...)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATETIME_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1278,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:1280,1
    - Dst: call_subclass_fold
      Src: /src/cpython/Modules/_datetimemodule.c:1285,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
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1290
    functionName: new_datetime_subclass_fold_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_subclass_fold
    - DATETIME_TYPE
    - new_datetime
    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, PyTypeObject *cls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/cpython/Modules/_datetimemodule.c:1296,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*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1292
    functionDepth: 3
    functionLinenumber: 1292
    functionLinenumberEnd: 1299
    functionName: new_datetime_subclass_ex
    functionSourceFile: /src/cpython/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                              PyTypeObject *cls)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_time_args
      Src: /src/cpython/Modules/_datetimemodule.c:1309,1
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:1312,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1316,1
    - Dst: TIME_SET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:1320,1
    - Dst: TIME_SET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:1321,1
    - Dst: TIME_SET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1322,1
    - Dst: TIME_SET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1323,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1325,1
    - Dst: TIME_SET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:1327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 7
    argNames:
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - fold
    - type
    argTypes:
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1330
    functionName: new_time_ex2
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_time_args
    - TIME_SET_MICROSECOND
    - TIME_SET_MINUTE
    - TIME_SET_SECOND
    - Py_NewRef
    - TIME_SET_FOLD
    - PyTypeObject*::tp_alloc
    - TIME_SET_HOUR
    - check_tzinfo_subclass
    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/cpython/Modules/_datetimemodule.c:1336,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: 1337
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1337
    functionName: new_time_ex
    functionSourceFile: /src/cpython/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: 1341
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1341
    functionName: new_time
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_time(hh, mm, ss, us, tzinfo, fold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TIME_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1347,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:1349,1
    - Dst: call_subclass_fold
      Src: /src/cpython/Modules/_datetimemodule.c:1353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - fold
    - cls
    argTypes:
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1358
    functionName: new_time_subclass_fold_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_TYPE
    - call_subclass_fold
    - new_time
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_time_subclass_fold_ex(int hour, int minute, int second,
      int usecond,\n                          PyObject *tzinfo, int fold, PyTypeObject
      *cls)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: normalize_d_s_us
      Src: /src/cpython/Modules/_datetimemodule.c:1375,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1376,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1377,1
    - Dst: check_delta_day_range
      Src: /src/cpython/Modules/_datetimemodule.c:1379,1
    - Dst: look_up_delta
      Src: /src/cpython/Modules/_datetimemodule.c:1382,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1386,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1386,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1388,1
    - Dst: SET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1391,1
    - Dst: SET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1392,1
    - Dst: SET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - days
    - seconds
    - microseconds
    - normalize
    - type
    argTypes:
    - int
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts:
    - condition: (0 <= microseconds && microseconds < 1000000)
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= seconds && seconds < 24*3600)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1385
        line_start: 1385
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1396
      start: 1368
    functionDepth: 3
    functionLinenumber: 1368
    functionLinenumberEnd: 1396
    functionName: new_delta_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_d_s_us
    - PyErr_Occurred
    - look_up_delta
    - SET_TD_MICROSECONDS
    - PyTypeObject*::tp_alloc
    - SET_TD_DAYS
    - SET_TD_SECONDS
    - assert
    - check_delta_day_range
    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: 1400
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1400
    functionName: new_delta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_delta(d, s, us, normalize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIMEZONE_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1419,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1421,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1422,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1422,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1423,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1423,1
    - Dst: look_up_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:1425,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1429,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1429,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1431,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1435,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDelta_Check(offset))
      pos:
        line_end: 1421
        line_start: 1421
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (name == NULL || PyUnicode_Check(name))
      pos:
        line_end: 1422
        line_start: 1422
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (offset != NULL)
      pos:
        line_end: 1420
        line_start: 1420
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1438
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1438
    functionName: create_timezone
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - look_up_timezone
    - PyTypeObject*::tp_alloc
    - PyErr_Occurred
    - PyDelta_Check
    - Py_NewRef
    - Py_XNewRef
    - PyUnicode_Check
    - TIMEZONE_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_timezone(PyObject *offset, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1446,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1447,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1447,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1448,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1448,1
    - Dst: delta_bool
      Src: /src/cpython/Modules/_datetimemodule.c:1450,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1451,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:1451,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1453,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1454,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1455,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1456,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1456,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1457,1
    - Dst: create_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:1463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (offset != NULL)
      pos:
        line_end: 1445
        line_start: 1445
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (name == NULL || PyUnicode_Check(name))
      pos:
        line_end: 1447
        line_start: 1447
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyDelta_Check(offset))
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1464
      start: 1443
    functionDepth: 2
    functionLinenumber: 1443
    functionLinenumberEnd: 1464
    functionName: new_timezone
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - CONST_UTC
    - GET_TD_DAYS
    - create_timezone
    - GET_TD_SECONDS
    - PyDelta_Check
    - Py_NewRef
    - delta_bool
    - GET_TD_MICROSECONDS
    - PyUnicode_Check
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_timezone(PyObject *offset, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTZInfo_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1476,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1478,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1483
    functionName: check_tzinfo_subclass
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 2
    functionsReached:
    - PyTZInfo_Check
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_tzinfo_subclass(PyObject *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1494,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:1494,1
    - Dst: PyTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1496,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:1496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1500
    functionName: get_tzinfo_member
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_Check
    - HASTZINFO
    - PyDateTime_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tzinfo_member(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1514,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1515,1
    - Dst: PyTZInfo_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1515,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1516,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_datetimemodule.c:1520,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1523,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1524,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1525,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1526,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1527,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1527,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1531,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1536,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1540,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - tzinfo
    - name
    - tzinfoarg
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (tzinfo != NULL)
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyTZInfo_Check(tzinfo) || tzinfo == Py_None)
      pos:
        line_end: 1514
        line_start: 1514
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1515
        line_start: 1515
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1545
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1545
    functionName: call_tzinfo_method
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTZInfo_Check
    - Py_DECREF
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - PyObject_CallMethod
    - PyDelta_Check
    - GET_TD_MICROSECONDS
    - PyErr_Format
    - Py_TYPE
    - assert
    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/cpython/Modules/_datetimemodule.c:1558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1559
    functionName: call_utcoffset
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1573
    functionName: call_dst
    functionSourceFile: /src/cpython/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: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1585,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1586,1
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:1586,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1587,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:1592,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:1592,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1597,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1598,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1600,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:1601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tzinfo != NULL)
      pos:
        line_end: 1584
        line_start: 1584
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (check_tzinfo_subclass(tzinfo) >= 0)
      pos:
        line_end: 1585
        line_start: 1585
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1586
        line_start: 1586
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1605
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1605
    functionName: call_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - Py_SETREF
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - PyObject_CallMethodOneArg
    - check_tzinfo_subclass
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_tzname(PyObject *tzinfo, PyObject *tzinfoarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1617,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1617,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1618,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1622,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1622,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1622,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_datetimemodule.c:1623,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1624,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:1627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - repr
    - tzinfo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(repr))
      pos:
        line_end: 1616
        line_start: 1616
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_READ_CHAR(repr, PyUnicode_GET_LENGTH(repr)-1) == ')')
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (tzinfo)
      pos:
        line_end: 1617
        line_start: 1617
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1630
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1630
    functionName: append_keyword_tzinfo
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      append_keyword_tzinfo(PyObject *repr, PyObject *tzinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1642,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1642,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1646,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1646,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1646,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_datetimemodule.c:1647,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1648,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:1651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - repr
    - fold
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_Check(repr))
      pos:
        line_end: 1641
        line_start: 1641
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_READ_CHAR(repr, PyUnicode_GET_LENGTH(repr)-1) == ')')
      pos:
        line_end: 1645
        line_start: 1645
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1654
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1654
    functionName: append_keyword_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      append_keyword_fold(PyObject *repr, int fold)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1663,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:1663,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:1666,1
    - Dst: new_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:1670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1671,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - rv
    - tzoffset
    - tz_useconds
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1656
    functionDepth: 3
    functionLinenumber: 1656
    functionLinenumberEnd: 1678
    functionName: tzinfo_from_isoformat_results
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - Py_DECREF
    - CONST_UTC
    - Py_NewRef
    - new_timezone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_from_isoformat_results(int rv, int tzoffset, int tz_useconds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weekday
      Src: /src/cpython/Modules/_datetimemodule.c:1695,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:1695,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:1695,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:1695,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:1697,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:1698,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:1699,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - date
    - hours
    - minutes
    - seconds
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1701
    functionName: format_ctime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - GET_DAY
    - GET_MONTH
    - weekday
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      format_ctime(PyObject *date, int hours, int minutes, int seconds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1723,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:1725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1729,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1734,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:1736,1
    - Dst: delta_negative
      Src: /src/cpython/Modules/_datetimemodule.c:1736,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1744,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1746,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:1747,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:1748,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1750,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1755,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1759,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: 1722
        line_start: 1722
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1761
      start: 1715
    functionDepth: 3
    functionLinenumber: 1715
    functionLinenumberEnd: 1761
    functionName: format_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_utcoffset
    - Py_DECREF
    - delta_negative
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - divmod
    - PyOS_snprintf
    - Py_SETREF
    - GET_TD_MICROSECONDS
    - assert
    linkageType: ''
    returnType: int
    signature: "int format_utcoffset(char *buf, size_t buflen, const char *sep,\n
      \               PyObject *tzinfo, PyObject *tzinfoarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strftime
      Src: /src/cpython/Modules/_datetimemodule.c:1775,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:1776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1779
    functionName: normalize_century
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strftime
    linkageType: ''
    returnType: int
    signature: int normalize_century(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tzinfo_member
      Src: /src/cpython/Modules/_datetimemodule.c:1785,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_datetimemodule.c:1788,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1791,1
    - Dst: format_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:1792,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:1799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - object
    - sep
    - tzinfoarg
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1790
        line_start: 1790
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1800
      start: 1781
    functionDepth: 4
    functionLinenumber: 1781
    functionLinenumberEnd: 1800
    functionName: make_somezreplacement
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - get_tzinfo_member
    - format_utcoffset
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_somezreplacement(PyObject *object, char *sep, PyObject *tzinfoarg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_tzinfo_member
      Src: /src/cpython/Modules/_datetimemodule.c:1806,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_datetimemodule.c:1807,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1814,1
    - Dst: call_tzname
      Src: /src/cpython/Modules/_datetimemodule.c:1815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1819,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1823,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1828,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_datetimemodule.c:1829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1830,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1833,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:1834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1841,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - object
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1813
        line_start: 1813
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(temp))
      pos:
        line_end: 1822
        line_start: 1822
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1843
      start: 1802
    functionDepth: 3
    functionLinenumber: 1802
    functionLinenumberEnd: 1843
    functionName: make_Zreplacement
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - get_tzinfo_member
    - Py_DECREF
    - Py_GetConstant
    - PyErr_SetString
    - PyObject_CallMethod
    - call_tzname
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_Zreplacement(PyObject *object, PyObject *tzinfoarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1849,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1850,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1850,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1851,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1852,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1852,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1854,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:1856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1857
    functionName: make_freplacement
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_Check
    - sprintf
    - DATE_GET_MICROSECOND
    - TIME_GET_MICROSECOND
    - PyDateTime_Check
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_freplacement(PyObject *object)'
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1877,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1878,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1878,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_datetimemodule.c:1880,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_datetimemodule.c:1890,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1895,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_datetimemodule.c:1900,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1902,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1902,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1910,1
    - Dst: make_somezreplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1917,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1923,1
    - Dst: make_somezreplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1927,1
    - Dst: make_Zreplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1936,1
    - Dst: make_freplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1946,1
    - Dst: normalize_century
      Src: /src/cpython/Modules/_datetimemodule.c:1952,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:1956,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_datetimemodule.c:1960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1961,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1962,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:1971,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Modules/_datetimemodule.c:1976,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1977,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_datetimemodule.c:1981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1982,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1983,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1990,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_datetimemodule.c:1996,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Modules/_datetimemodule.c:2000,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2009,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2010,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2010,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_datetimemodule.c:2011,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_datetimemodule.c:2015,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_datetimemodule.c:2022,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:2023,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_datetimemodule.c:2026,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_datetimemodule.c:2029,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:2034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2036,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2039,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2040,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2041,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2042,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2043,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_datetimemodule.c:2047,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 146
    argCount: 4
    argNames:
    - object
    - format
    - timetuple
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (replacement != NULL)
      pos:
        line_end: 2008
        line_start: 2008
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (object && format && timetuple)
      pos:
        line_end: 1876
        line_start: 1876
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1901
        line_start: 1901
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(format))
      pos:
        line_end: 1877
        line_start: 1877
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(replacement))
      pos:
        line_end: 2009
        line_start: 2009
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2049
      start: 1866
    functionDepth: 5
    functionLinenumber: 1866
    functionLinenumberEnd: 2049
    functionName: wrap_strftime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicodeWriter_WriteSubstring
    - PyUnicodeWriter_WriteUTF8
    - PySequence_GetItem
    - PyImport_ImportModuleAttrString
    - make_freplacement
    - PyObject_CallFunction
    - PyLong_AsLong
    - PyErr_Occurred
    - make_somezreplacement
    - PyOS_snprintf
    - PyObject_CallFunctionObjArgs
    - PyUnicode_FindChar
    - PyNumber_Long
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - normalize_century
    - Py_DECREF
    - Py_NewRef
    - make_Zreplacement
    - PyUnicodeWriter_WriteStr
    - PyUnicode_GET_LENGTH
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwrap_strftime(PyObject *object, PyObject *format, PyObject
      *timetuple,\n              PyObject *tzinfoarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_datetimemodule.c:2061,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:2064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2057
    functionDepth: 1
    functionLinenumber: 2057
    functionLinenumberEnd: 2068
    functionName: time_time
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_time(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_datetimemodule.c:2079,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:2084,1
    - Dst: weekday
      Src: /src/cpython/Modules/_datetimemodule.c:2087,1
    - Dst: days_before_month
      Src: /src/cpython/Modules/_datetimemodule.c:2088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - y
    - m
    - d
    - hh
    - mm
    - ss
    - dstflag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2073
    functionDepth: 2
    functionLinenumber: 2073
    functionLinenumberEnd: 2092
    functionName: build_struct_time
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - PyObject_CallFunction
    - Py_DECREF
    - days_before_month
    - 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/cpython/Modules/_datetimemodule.c:2104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - diff
    - op
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2105
    functionName: diff_to_bool
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      diff_to_bool(int diff, int op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2130,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2132,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2132,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2135,1
    - Dst: CONST_SEC_PER_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:2135,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2138,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2141,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2141,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2148,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2152,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:2152,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2155,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2158,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2158,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2161,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2162,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_datetimemodule.c:2162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2165,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2166,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2167,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2168,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts:
    - condition: (result == NULL || PyLong_CheckExact(result))
      pos:
        line_end: 2161
        line_start: 2161
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2170
      start: 2121
    functionDepth: 1
    functionLinenumber: 2121
    functionLinenumberEnd: 2170
    functionName: delta_to_microseconds
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - Py_XDECREF
    - Py_DECREF
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - PyNumber_Add
    - GET_CURRENT_STATE
    - CONST_US_PER_SECOND
    - PyNumber_Multiply
    - Py_SETREF
    - PyLong_CheckExact
    - PyLong_FromLong
    - RELEASE_CURRENT_STATE
    - assert
    - CONST_SEC_PER_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_to_microseconds(PyDateTime_Delta *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2175,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2177,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2178,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2181,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:2184,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2185,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:2187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2193
    functionName: checked_divmod
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyNumber_Divmod
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      checked_divmod(PyObject *a, PyObject *b)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2209,1
    - Dst: checked_divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2211,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:2211,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2216,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_datetimemodule.c:2217,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2219,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:2226,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2227,1
    - Dst: checked_divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2229,1
    - Dst: CONST_SEC_PER_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:2229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2232,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2234,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_datetimemodule.c:2235,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2237,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:2244,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2244,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_datetimemodule.c:2245,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2246,1
    - Dst: new_delta_ex
      Src: /src/cpython/Modules/_datetimemodule.c:2249,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2252,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2253,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2254,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:2258,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 2
    argNames:
    - pyus
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2197
    functionDepth: 4
    functionLinenumber: 2197
    functionLinenumberEnd: 2261
    functionName: microseconds_to_delta_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - new_delta_ex
    - GET_CURRENT_STATE
    - CONST_US_PER_SECOND
    - Py_NewRef
    - checked_divmod
    - PyTuple_GET_ITEM
    - RELEASE_CURRENT_STATE
    - CONST_SEC_PER_DAY
    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: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: microseconds_to_delta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: microseconds_to_delta(pymicros)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2273,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2278,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - intobj
    - delta
    argTypes:
    - PyObject*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2285
    functionName: multiply_int_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - microseconds_to_delta
    - PyNumber_Multiply
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiply_int_timedelta(PyObject *intobj, PyDateTime_Delta *delta)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2292,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2292,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:2293,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:2293,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2297,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2298,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2302,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_datetimemodule.c:2305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:2306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - floatobj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (floatobj && PyFloat_Check(floatobj))
      pos:
        line_end: 2291
        line_start: 2291
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2312
      start: 2287
    functionDepth: 1
    functionLinenumber: 2287
    functionLinenumberEnd: 2312
    functionName: get_float_as_integer_ratio
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - Py_DECREF
    - PyTuple_Check
    - PyTuple_Size
    - _Py_ID
    - PyErr_SetString
    - PyObject_CallMethodNoArgs
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_float_as_integer_ratio(PyObject *floatobj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2322,1
    - Dst: get_float_as_integer_ratio
      Src: /src/cpython/Modules/_datetimemodule.c:2325,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2329,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2329,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2330,1
    - Dst: divide_nearest
      Src: /src/cpython/Modules/_datetimemodule.c:2333,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2334,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2338,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2340,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - delta
    - floatobj
    - op
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2315
    functionDepth: 2
    functionLinenumber: 2315
    functionLinenumberEnd: 2344
    functionName: multiply_truedivide_timedelta_float
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - delta_to_microseconds
    - get_float_as_integer_ratio
    - Py_SETREF
    - PyNumber_Multiply
    - divide_nearest
    - microseconds_to_delta
    - PyTuple_GET_ITEM
    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/cpython/Modules/_datetimemodule.c:2353,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/_datetimemodule.c:2357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2358,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - delta
    - intobj
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2346
    functionDepth: 2
    functionLinenumber: 2346
    functionLinenumberEnd: 2365
    functionName: divide_timedelta_int
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - microseconds_to_delta
    - Py_DECREF
    - PyNumber_FloorDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      divide_timedelta_int(PyDateTime_Delta *delta, PyObject *intobj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2374,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2380,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/_datetimemodule.c:2384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyDateTime_Delta*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2367
    functionDepth: 2
    functionLinenumber: 2367
    functionLinenumberEnd: 2388
    functionName: divide_timedelta_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - Py_DECREF
    - PyNumber_FloorDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      divide_timedelta_timedelta(PyDateTime_Delta *left, PyDateTime_Delta *right)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2397,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2403,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Modules/_datetimemodule.c:2407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyDateTime_Delta*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2390
    functionDepth: 2
    functionLinenumber: 2390
    functionLinenumberEnd: 2411
    functionName: truedivide_timedelta_timedelta
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:2418,1
    - Dst: divide_nearest
      Src: /src/cpython/Modules/_datetimemodule.c:2421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2422,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - delta
    - i
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2413
    functionDepth: 2
    functionLinenumber: 2413
    functionLinenumberEnd: 2429
    functionName: truedivide_timedelta_int
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - microseconds_to_delta
    - Py_DECREF
    - divide_nearest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      truedivide_timedelta_int(PyDateTime_Delta *delta, PyObject *i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2436,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2436,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2441,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2441,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2442,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2442,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2443,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2444,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2445,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2431
    functionDepth: 1
    functionLinenumber: 2431
    functionLinenumberEnd: 2451
    functionName: delta_add
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - Py_INCREF
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - PyDelta_Check
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_add(PyObject *left, PyObject *right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2456,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2456,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2457,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2453
    functionDepth: 1
    functionLinenumber: 2453
    functionLinenumberEnd: 2460
    functionName: delta_negative
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - new_delta
    - GET_TD_SECONDS
    - GET_TD_DAYS
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_negative(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2468,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2468,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2469,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2462
    functionDepth: 1
    functionLinenumber: 2462
    functionLinenumberEnd: 2472
    functionName: delta_positive
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - GET_TD_SECONDS
    - GET_TD_DAYS
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_positive(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2479,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2479,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2480,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2480,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2482,1
    - Dst: delta_negative
      Src: /src/cpython/Modules/_datetimemodule.c:2483,1
    - Dst: delta_positive
      Src: /src/cpython/Modules/_datetimemodule.c:2485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (GET_TD_MICROSECONDS(self) >= 0)
      pos:
        line_end: 2478
        line_start: 2478
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (GET_TD_SECONDS(self) >= 0)
      pos:
        line_end: 2479
        line_start: 2479
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2488
      start: 2474
    functionDepth: 2
    functionLinenumber: 2474
    functionLinenumberEnd: 2488
    functionName: delta_abs
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_negative
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    - delta_positive
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_abs(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2495,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2495,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2500,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2500,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2501,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2501,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2502,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2503,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2504,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2490
    functionDepth: 1
    functionLinenumber: 2490
    functionLinenumberEnd: 2510
    functionName: delta_subtract
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - Py_INCREF
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - PyDelta_Check
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_subtract(PyObject *left, PyObject *right)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2515,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2515,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2517,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2517,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2519,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2512
    functionDepth: 1
    functionLinenumber: 2512
    functionLinenumberEnd: 2523
    functionName: delta_cmp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: int
    signature: int delta_cmp(PyObject *self, PyObject *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2528,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:2529,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:2530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2525
    functionDepth: 2
    functionLinenumber: 2525
    functionLinenumberEnd: 2535
    functionName: delta_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - diff_to_bool
    - delta_cmp
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:2542,1
    - Dst: delta_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:2544,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_datetimemodule.c:2546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2539
    functionDepth: 1
    functionLinenumber: 2539
    functionLinenumberEnd: 2551
    functionName: delta_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Hash
    - PyDelta_CAST
    - delta_getstate
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t delta_hash(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2558,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2560,1
    - Dst: multiply_int_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2561,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2563,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/cpython/Modules/_datetimemodule.c:2564,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2567,1
    - Dst: multiply_int_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2568,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2570,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/cpython/Modules/_datetimemodule.c:2571,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2575,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2553
    functionDepth: 3
    functionLinenumber: 2553
    functionLinenumberEnd: 2577
    functionName: delta_multiply
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - multiply_truedivide_timedelta_float
    - PyFloat_Check
    - Py_INCREF
    - multiply_int_timedelta
    - PyLong_Check
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_multiply(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2584,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2586,1
    - Dst: divide_timedelta_int
      Src: /src/cpython/Modules/_datetimemodule.c:2587,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2590,1
    - Dst: divide_timedelta_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2591,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2579
    functionDepth: 3
    functionLinenumber: 2579
    functionLinenumberEnd: 2599
    functionName: delta_divide
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyLong_Check
    - divide_timedelta_int
    - PyDelta_Check
    - divide_timedelta_timedelta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_divide(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2606,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2607,1
    - Dst: truedivide_timedelta_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2608,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2611,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/cpython/Modules/_datetimemodule.c:2612,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2614,1
    - Dst: truedivide_timedelta_int
      Src: /src/cpython/Modules/_datetimemodule.c:2615,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2601
    functionDepth: 3
    functionLinenumber: 2601
    functionLinenumberEnd: 2622
    functionName: delta_truedivide
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - multiply_truedivide_timedelta_float
    - PyFloat_Check
    - Py_INCREF
    - PyLong_Check
    - PyDelta_Check
    - truedivide_timedelta_timedelta
    - truedivide_timedelta_int
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_truedivide(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2632,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2632,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2635,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2641,1
    - Dst: PyNumber_Remainder
      Src: /src/cpython/Modules/_datetimemodule.c:2645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2647,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2624
    functionDepth: 2
    functionLinenumber: 2624
    functionLinenumberEnd: 2657
    functionName: delta_remainder
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_to_microseconds
    - PyDelta_Check
    - microseconds_to_delta
    - PyNumber_Remainder
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_remainder(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2668,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2668,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2671,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2677,1
    - Dst: checked_divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2683,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2687,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2689,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:2692,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 2
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: delta_divmod
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_to_microseconds
    - PyDelta_Check
    - checked_divmod
    - microseconds_to_delta
    - PyTuple_GET_ITEM
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_divmod(PyObject *left, PyObject *right)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2714,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2716,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2717,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2721,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2725,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2740,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2741,1
    - Dst: modf
      Src: /src/cpython/Modules/_datetimemodule.c:2743,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2744,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2749,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2754,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2764,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_datetimemodule.c:2764,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2765,1
    - Dst: modf
      Src: /src/cpython/Modules/_datetimemodule.c:2768,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2771,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2777,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2782,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2784,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 5
    argNames:
    - tag
    - sofar
    - num
    - factor
    - leftover
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    - PyObject*
    - double*
    assertStmts:
    - condition: (num != NULL)
      pos:
        line_end: 2713
        line_start: 2713
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyLong_CheckExact(factor))
      pos:
        line_end: 2763
        line_start: 2763
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2786
      start: 2707
    functionDepth: 1
    functionLinenumber: 2707
    functionLinenumberEnd: 2786
    functionName: accum
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - modf
    - PyFloat_Check
    - PyFloat_AsDouble
    - Py_DECREF
    - PyLong_FromDouble
    - PyErr_Occurred
    - PyLong_Check
    - PyNumber_Multiply
    - PyLong_CheckExact
    - PyNumber_Add
    - PyErr_Format
    - PyLong_AsDouble
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naccum(const char* tag, PyObject *sofar, PyObject *num,
      PyObject *factor,\n      double *leftover)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2815,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2821,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2832,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_datetimemodule.c:2832,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2836,1
    - Dst: CONST_US_PER_MS
      Src: /src/cpython/Modules/_datetimemodule.c:2836,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2840,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:2840,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2844,1
    - Dst: CONST_US_PER_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:2844,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2848,1
    - Dst: CONST_US_PER_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:2848,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2852,1
    - Dst: CONST_US_PER_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:2852,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2856,1
    - Dst: CONST_US_PER_WEEK
      Src: /src/cpython/Modules/_datetimemodule.c:2856,1
    - Dst: round
      Src: /src/cpython/Modules/_datetimemodule.c:2861,1
    - Dst: fabs
      Src: /src/cpython/Modules/_datetimemodule.c:2865,1
    - Dst: PyNumber_And
      Src: /src/cpython/Modules/_datetimemodule.c:2871,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_datetimemodule.c:2871,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2873,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_datetimemodule.c:2876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2879,1
    - Dst: round
      Src: /src/cpython/Modules/_datetimemodule.c:2882,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2888,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2892,1
    - Dst: microseconds_to_delta_ex
      Src: /src/cpython/Modules/_datetimemodule.c:2896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2897,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2900,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 8
    argNames:
    - type
    - days
    - seconds
    - microseconds
    - milliseconds
    - minutes
    - hours
    - weeks
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2806
    functionDepth: 5
    functionLinenumber: 2806
    functionLinenumberEnd: 2904
    functionName: delta_new_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - fabs
    - round
    - PyNumber_And
    - CONST_US_PER_DAY
    - CONST_US_PER_WEEK
    - CONST_US_PER_MINUTE
    - _PyLong_GetOne
    - GET_CURRENT_STATE
    - CONST_US_PER_SECOND
    - PyNumber_Add
    - microseconds_to_delta_ex
    - CONST_US_PER_HOUR
    - PyLong_FromLong
    - CONST_US_PER_MS
    - accum
    - RELEASE_CURRENT_STATE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndelta_new_impl(PyTypeObject *type, PyObject *days, PyObject
      *seconds,\n               PyObject *microseconds, PyObject *milliseconds,\n
      \              PyObject *minutes, PyObject *hours, PyObject *weeks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2909,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2910,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2906
    functionDepth: 1
    functionLinenumber: 2906
    functionLinenumberEnd: 2912
    functionName: delta_bool
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: int
    signature: int delta_bool(PyObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_datetimemodule.c:2917,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2925,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2926,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2926,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2926,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2933,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2934,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2934,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2935,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2942,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2943,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2943,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2944,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:2950,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2951,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:2951,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2957,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2959,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2914
    functionDepth: 1
    functionLinenumber: 2914
    functionLinenumberEnd: 2961
    functionName: delta_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_GetConstant
    - PyUnicode_FromFormat
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - Py_SETREF
    - Py_TYPE
    - GET_TD_MICROSECONDS
    - PyUnicode_GET_LENGTH
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2966,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2967,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2968,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2969,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2970,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2974,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2978,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2983,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2986,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2963
    functionDepth: 1
    functionLinenumber: 2963
    functionLinenumberEnd: 2990
    functionName: delta_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - GET_TD_DAYS
    - divmod
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:2998,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2998,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2999,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:3000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2995
    functionDepth: 1
    functionLinenumber: 2995
    functionLinenumberEnd: 3001
    functionName: delta_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TD_DAYS
    - Py_BuildValue
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_getstate(PyDateTime_Delta *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:3009,1
    - Dst: PyDelta_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3009,1
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3014,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Modules/_datetimemodule.c:3016,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:3016,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3003
    functionDepth: 2
    functionLinenumber: 3003
    functionLinenumberEnd: 3021
    functionName: delta_total_seconds
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_to_microseconds
    - GET_CURRENT_STATE
    - CONST_US_PER_SECOND
    - PyDelta_CAST
    - PyNumber_TrueDivide
    - RELEASE_CURRENT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_total_seconds(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3026,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3027,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3027,1
    - Dst: delta_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:3027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3023
    functionDepth: 2
    functionLinenumber: 3023
    functionLinenumberEnd: 3028
    functionName: delta_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - PyDelta_CAST
    - delta_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3031
      start: 3030
    functionDepth: 0
    functionLinenumber: 3030
    functionLinenumberEnd: 3031
    functionName: OFFSET
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - days
    - seconds
    - microseconds
    - type
    argTypes:
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3140
    functionDepth: 0
    functionLinenumber: 3140
    functionLinenumberEnd: 3149
    functionName: look_up_delta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: PyDateTime_Delta
    signature: 'PyDateTime_Delta *

      look_up_delta(int days, int seconds, int microseconds, PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3161,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3162,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3163
      start: 3158
    functionDepth: 1
    functionLinenumber: 3158
    functionLinenumberEnd: 3163
    functionName: date_year
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_YEAR
    - PyDate_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_year(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3168,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3169,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3165
    functionDepth: 1
    functionLinenumber: 3165
    functionLinenumberEnd: 3170
    functionName: date_month
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_MONTH
    - PyDate_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_month(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3175,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3176,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3172
    functionDepth: 1
    functionLinenumber: 3172
    functionLinenumberEnd: 3177
    functionName: date_day
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_DAY
    - PyDate_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_day(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:3193,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:3195,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_datetimemodule.c:3196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - state
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3188
    functionDepth: 1
    functionLinenumber: 3188
    functionLinenumberEnd: 3200
    functionName: date_from_pickle
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - memcpy
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_from_pickle(PyTypeObject *type, PyObject *state)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:3206,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3207,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3208,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:3209,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:3210,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:3210,1
    - Dst: date_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:3212,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3215,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:3216,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:3217,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:3217,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_datetimemodule.c:3219,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:3221,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:3223,1
    - Dst: date_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:3230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3231,1
    - Dst: datetime_date
      Src: /src/cpython/Modules/_datetimemodule.c:3237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3238
      start: 3202
    functionDepth: 2
    functionLinenumber: 3202
    functionLinenumberEnd: 3238
    functionName: date_new
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyUnicode_AsLatin1String
    - PyErr_SetString
    - MONTH_IS_SANE
    - datetime_date
    - PyBytes_Check
    - PyErr_ExceptionMatches
    - PyBytes_GET_SIZE
    - PyTuple_GET_ITEM
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - date_from_pickle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_date_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - year
    - month
    - day
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3251
    functionDepth: 4
    functionLinenumber: 3251
    functionLinenumberEnd: 3256
    functionName: datetime_date_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_date_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_impl(PyTypeObject *type, int year, int month, int day)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_ObjectToTime_t
      Src: /src/cpython/Modules/_datetimemodule.c:3264,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/_datetimemodule.c:3267,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cls
    - obj
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3258
    functionDepth: 5
    functionLinenumber: 3258
    functionLinenumberEnd: 3274
    functionName: date_fromtimestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_date_subclass_ex
    - _PyTime_ObjectToTime_t
    - _PyTime_localtime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_fromtimestamp(PyTypeObject *cls, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_time
      Src: /src/cpython/Modules/_datetimemodule.c:3296,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:3306,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3309
    functionName: datetime_date_today_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_time
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_today_impl(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: date_fromtimestamp
      Src: /src/cpython/Modules/_datetimemodule.c:3329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3325
    functionDepth: 6
    functionLinenumber: 3325
    functionLinenumberEnd: 3330
    functionName: datetime_date_fromtimestamp_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - date_fromtimestamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromtimestamp_impl(PyTypeObject *type, PyObject *timestamp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_datetimemodule.c:3342,1
    - Dst: date_fromtimestamp
      Src: /src/cpython/Modules/_datetimemodule.c:3343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3336
    functionDepth: 6
    functionLinenumber: 3336
    functionLinenumberEnd: 3347
    functionName: datetime_date_fromtimestamp_capi
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    - date_fromtimestamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromtimestamp_capi(PyObject *cls, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:3371,1
    - Dst: ord_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:3374,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - ordinal
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3376
      start: 3362
    functionDepth: 5
    functionLinenumber: 3362
    functionLinenumberEnd: 3376
    functionName: datetime_date_fromordinal_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ord_to_ymd
    - PyErr_SetString
    - new_date_subclass_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromordinal_impl(PyTypeObject *type, int ordinal)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_datetimemodule.c:3394,1
    - Dst: parse_isoformat_date
      Src: /src/cpython/Modules/_datetimemodule.c:3403,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3413,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3388
    functionDepth: 5
    functionLinenumber: 3388
    functionLinenumberEnd: 3418
    functionName: datetime_date_fromisoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - new_date_subclass_ex
    - parse_isoformat_date
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromisoformat_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iso_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:3440,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3443,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3449,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3454,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - type
    - year
    - week
    - day
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3460
      start: 3434
    functionDepth: 5
    functionLinenumber: 3434
    functionLinenumberEnd: 3460
    functionName: datetime_date_fromisocalendar_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_date_subclass_ex
    - iso_to_ymd
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_date_fromisocalendar_impl(PyTypeObject *type,
      int year, int week,\n                                   int day)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_datetimemodule.c:3480,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3480,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:3484,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - string
    - format
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3489
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3489
    functionName: datetime_date_strptime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - _Py_ID
    - PyImport_Import
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_date_strptime_impl(PyTypeObject *type, PyObject
      *string,\n                            PyObject *format)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3503,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3504,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:3505,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3507,1
    - Dst: normalize_date
      Src: /src/cpython/Modules/_datetimemodule.c:3509,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3510,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - date
    - delta
    - negate
    argTypes:
    - PyDateTime_Date*
    - PyDateTime_Delta*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3499
    functionDepth: 5
    functionLinenumber: 3499
    functionLinenumberEnd: 3512
    functionName: add_date_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_DAYS
    - GET_DAY
    - new_date_subclass_ex
    - Py_TYPE
    - GET_MONTH
    - GET_YEAR
    - normalize_date
    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/cpython/Modules/_datetimemodule.c:3517,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3517,1
    - Dst: PyDate_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3520,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3522,1
    - Dst: add_date_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:3524,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3532,1
    - Dst: add_date_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:3534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3514
    functionDepth: 6
    functionLinenumber: 3514
    functionLinenumberEnd: 3539
    functionName: date_add
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDate_Check
    - PyDateTime_Check
    - PyDelta_Check
    - add_date_timedelta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_add(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3544,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3544,1
    - Dst: PyDate_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3547,1
    - Dst: PyDate_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3548,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3550,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3550,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3551,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3552,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3553,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3553,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3554,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3555,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:3556,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3558,1
    - Dst: add_date_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:3560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3541
    functionDepth: 6
    functionLinenumber: 3541
    functionLinenumberEnd: 3566
    functionName: date_subtract
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - PyDate_Check
    - ymd_to_ord
    - PyDelta_Check
    - GET_DAY
    - add_date_timedelta
    - GET_MONTH
    - GET_YEAR
    - PyDateTime_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_subtract(PyObject *left, PyObject *right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3574,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:3575,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3576,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3577,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3577,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3578
      start: 3571
    functionDepth: 1
    functionLinenumber: 3571
    functionLinenumberEnd: 3578
    functionName: date_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyDate_CAST
    - GET_DAY
    - GET_MONTH
    - GET_YEAR
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3583,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:3584,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3585,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3585,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3580
    functionDepth: 1
    functionLinenumber: 3580
    functionLinenumberEnd: 3586
    functionName: date_isoformat
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - GET_DAY
    - PyDate_CAST
    - GET_MONTH
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_isoformat(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:3592,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3589
    functionDepth: 1
    functionLinenumber: 3589
    functionLinenumberEnd: 3593
    functionName: date_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_ctime
      Src: /src/cpython/Modules/_datetimemodule.c:3599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3596
    functionDepth: 2
    functionLinenumber: 3596
    functionLinenumberEnd: 3600
    functionName: date_ctime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - format_ctime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_ctime(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:3623,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3623,1
    - Dst: wrap_strftime
      Src: /src/cpython/Modules/_datetimemodule.c:3626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3629
      start: 3613
    functionDepth: 6
    functionLinenumber: 3613
    functionLinenumberEnd: 3629
    functionName: datetime_date_strftime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - wrap_strftime
    - _Py_ID
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_strftime_impl(PyObject *self, PyObject *format)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_datetimemodule.c:3646,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_datetimemodule.c:3647,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:3649,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3641
    functionDepth: 1
    functionLinenumber: 3641
    functionLinenumberEnd: 3650
    functionName: datetime_date___format___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - PyObject_CallMethodOneArg
    - PyObject_Str
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date___format___impl(PyObject *self, PyObject *format)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weekday
      Src: /src/cpython/Modules/_datetimemodule.c:3657,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3657,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3657,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3657,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3660
      start: 3654
    functionDepth: 1
    functionLinenumber: 3654
    functionLinenumberEnd: 3660
    functionName: date_isoweekday
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - GET_MONTH
    - PyLong_FromLong
    - weekday
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_isoweekday(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3675,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3679,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3683,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:3688,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3672
    functionDepth: 1
    functionLinenumber: 3672
    functionLinenumberEnd: 3690
    functionName: iso_calendar_date_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyTuple_GetItem
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iso_calendar_date_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3696,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3698,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3699,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3704
      start: 3692
    functionDepth: 1
    functionLinenumber: 3692
    functionLinenumberEnd: 3704
    functionName: iso_calendar_date_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iso_calendar_date_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3709,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:3713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3714
      start: 3706
    functionDepth: 1
    functionLinenumber: 3706
    functionLinenumberEnd: 3714
    functionName: iso_calendar_date_year
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTuple_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iso_calendar_date_year(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3719,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:3723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3716
    functionDepth: 1
    functionLinenumber: 3716
    functionLinenumberEnd: 3724
    functionName: iso_calendar_date_week
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTuple_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iso_calendar_date_week(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3729,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:3733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3734
    functionName: iso_calendar_date_weekday
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTuple_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iso_calendar_date_weekday(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_datetimemodule.c:3752,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3752,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_datetimemodule.c:3753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3749
    functionDepth: 1
    functionLinenumber: 3749
    functionLinenumberEnd: 3754
    functionName: iso_calendar_date_traverse
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int iso_calendar_date_traverse(PyObject *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3759,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_datetimemodule.c:3760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3756
    functionDepth: 0
    functionLinenumber: 3756
    functionLinenumberEnd: 3762
    functionName: iso_calendar_date_dealloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tp_dealloc
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void iso_calendar_date_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:3799,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3804,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3804,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3805,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3805,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3806,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - type
    - year
    - week
    - weekday
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3809
      start: 3792
    functionDepth: 1
    functionLinenumber: 3792
    functionLinenumberEnd: 3809
    functionName: iso_calendar_date_new_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyTuple_SET_ITEM
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\niso_calendar_date_new_impl(PyTypeObject *type, int year,
      int week,\n                           int weekday)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3814,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:3815,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3816,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3816,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3816,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:3820,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:3823,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:3824,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:3826,1
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3832,1
    - Dst: iso_calendar_date_new_impl
      Src: /src/cpython/Modules/_datetimemodule.c:3834,1
    - Dst: ISOCALENDAR_DATE_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3834,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3841
      start: 3811
    functionDepth: 2
    functionLinenumber: 3811
    functionLinenumberEnd: 3841
    functionName: date_isocalendar
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - iso_calendar_date_new_impl
    - iso_week1_monday
    - ymd_to_ord
    - divmod
    - GET_CURRENT_STATE
    - GET_DAY
    - ISOCALENDAR_DATE_TYPE
    - GET_MONTH
    - GET_YEAR
    - RELEASE_CURRENT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_isocalendar(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3856,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3856,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:3857,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:3860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3845
    functionDepth: 2
    functionLinenumber: 3845
    functionLinenumberEnd: 3864
    functionName: date_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - diff_to_bool
    - PyDate_Check
    - PyDateTime_Check
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_struct_time
      Src: /src/cpython/Modules/_datetimemodule.c:3869,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3869,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3870,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3866
    functionDepth: 3
    functionLinenumber: 3866
    functionLinenumberEnd: 3873
    functionName: date_timetuple
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_YEAR
    - build_struct_time
    - GET_MONTH
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_timetuple(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3890,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - year
    - month
    - day
    argTypes:
    - PyDateTime_Date*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3885
    functionDepth: 5
    functionLinenumber: 3885
    functionLinenumberEnd: 3891
    functionName: datetime_date_replace_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_date_subclass_ex
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_date_replace_impl(PyDateTime_Date *self, int
      year, int month,\n                           int day)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_HashBuffer
      Src: /src/cpython/Modules/_datetimemodule.c:3896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3893
    functionDepth: 1
    functionLinenumber: 3893
    functionLinenumberEnd: 3897
    functionName: generic_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_HashBuffer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t generic_hash(unsigned char *data, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3905,1
    - Dst: generic_hash
      Src: /src/cpython/Modules/_datetimemodule.c:3907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3902
    functionDepth: 2
    functionLinenumber: 3902
    functionLinenumberEnd: 3912
    functionName: date_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - generic_hash
    - PyDate_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t date_hash(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3917,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3917,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3917,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3917,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3919
      start: 3914
    functionDepth: 0
    functionLinenumber: 3914
    functionLinenumberEnd: 3919
    functionName: date_toordinal
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ymd_to_ord
    - GET_DAY
    - GET_MONTH
    - PyLong_FromLong
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_toordinal(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weekday
      Src: /src/cpython/Modules/_datetimemodule.c:3924,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3924,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3924,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3924,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3921
    functionDepth: 1
    functionLinenumber: 3921
    functionLinenumberEnd: 3926
    functionName: date_weekday
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - GET_MONTH
    - PyLong_FromLong
    - weekday
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_weekday(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_datetimemodule.c:3935,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Date*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3931
    functionDepth: 1
    functionLinenumber: 3931
    functionLinenumberEnd: 3938
    functionName: date_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_getstate(PyDateTime_Date *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3943,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3944,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3944,1
    - Dst: date_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:3944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3940
    functionDepth: 2
    functionLinenumber: 3940
    functionLinenumberEnd: 3945
    functionName: date_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - date_getstate
    - PyDate_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:4073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - methodname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 4070
    functionDepth: 1
    functionLinenumber: 4070
    functionLinenumberEnd: 4077
    functionName: tzinfo_nogo
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:4084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(dt)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4081
    functionDepth: 2
    functionLinenumber: 4081
    functionLinenumberEnd: 4085
    functionName: tzinfo_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tzinfo_nogo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_tzname(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(dt))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzinfo_nogo
      Src: /src/cpython/Modules/_datetimemodule.c:4090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(dt)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4091
      start: 4087
    functionDepth: 2
    functionLinenumber: 4087
    functionLinenumberEnd: 4091
    functionName: tzinfo_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tzinfo_nogo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_utcoffset(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(dt))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzinfo_nogo
      Src: /src/cpython/Modules/_datetimemodule.c:4096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(dt)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4097
      start: 4093
    functionDepth: 2
    functionLinenumber: 4093
    functionLinenumberEnd: 4097
    functionName: tzinfo_dst
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tzinfo_nogo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_dst(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(dt))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4114,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4118,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4119,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4128,1
    - Dst: datetime_dst
      Src: /src/cpython/Modules/_datetimemodule.c:4133,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4137,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:4142,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:4145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4149,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:4150,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4150,1
    - Dst: delta_bool
      Src: /src/cpython/Modules/_datetimemodule.c:4155,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:4156,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:4156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4163,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4167,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4172,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4173,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4174,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4175,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4177
      start: 4106
    functionDepth: 3
    functionLinenumber: 4106
    functionLinenumberEnd: 4177
    functionName: tzinfo_fromutc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - add_datetime_timedelta
    - PyErr_SetString
    - datetime_dst
    - delta_subtract
    - Py_SETREF
    - delta_bool
    - call_dst
    - datetime_utcoffset
    - GET_DT_TZINFO
    - PyDateTime_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_fromutc(PyObject *self, PyObject *dt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_datetimemodule.c:4190,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4190,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:4194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4195,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_datetimemodule.c:4198,1
    - Dst: _PyObject_GetState
      Src: /src/cpython/Modules/_datetimemodule.c:4204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4206,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:4210,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4211
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4211
    functionName: tzinfo_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetState
    - PyObject_CallNoArgs
    - PyTuple_New
    - Py_DECREF
    - Py_BuildValue
    - PyObject_GetOptionalAttr
    - _Py_ID
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_reduce(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:4294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - offset
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4295
      start: 4290
    functionDepth: 3
    functionLinenumber: 4290
    functionLinenumberEnd: 4295
    functionName: timezone_new_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_timezone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_new_impl(PyTypeObject *type, PyObject *offset, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4300,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:4301,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:4302,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4304
      start: 4297
    functionDepth: 1
    functionLinenumber: 4297
    functionLinenumberEnd: 4304
    functionName: timezone_dealloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void timezone_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTimezone_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4311,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4314,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4315,1
    - Dst: delta_richcompare
      Src: /src/cpython/Modules/_datetimemodule.c:4316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4317
      start: 4306
    functionDepth: 3
    functionLinenumber: 4306
    functionLinenumberEnd: 4317
    functionName: timezone_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - delta_richcompare
    - PyTimezone_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4322,1
    - Dst: delta_hash
      Src: /src/cpython/Modules/_datetimemodule.c:4323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4319
    functionDepth: 2
    functionLinenumber: 4319
    functionLinenumberEnd: 4324
    functionName: timezone_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - delta_hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t timezone_hash(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4333,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:4335,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dt
    - meth
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4330
    functionDepth: 1
    functionLinenumber: 4330
    functionLinenumberEnd: 4338
    functionName: _timezone_check_argument
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyDateTime_Check
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _timezone_check_argument(PyObject *dt, const char *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4345,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4346,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:4348,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4349,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4353,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4357
      start: 4340
    functionDepth: 1
    functionLinenumber: 4340
    functionLinenumberEnd: 4357
    functionName: timezone_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - CONST_UTC
    - PyTimeZone_CAST
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_repr(PyObject *op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4362,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4368,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:4370,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:4371,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4372,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4373,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:4375,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:4378,1
    - Dst: delta_negative
      Src: /src/cpython/Modules/_datetimemodule.c:4380,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4386,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4389,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4391,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:4392,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:4393,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4395,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4400,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4403,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4359
    functionDepth: 2
    functionLinenumber: 4359
    functionLinenumberEnd: 4404
    functionName: timezone_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - Py_DECREF
    - delta_negative
    - CONST_UTC
    - GET_TD_DAYS
    - PyUnicode_FromFormat
    - GET_TD_SECONDS
    - divmod
    - Py_NewRef
    - GET_TD_MICROSECONDS
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_str(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _timezone_check_argument
      Src: /src/cpython/Modules/_datetimemodule.c:4409,1
    - Dst: timezone_str
      Src: /src/cpython/Modules/_datetimemodule.c:4412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4406
    functionDepth: 3
    functionLinenumber: 4406
    functionLinenumberEnd: 4413
    functionName: timezone_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _timezone_check_argument
    - timezone_str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_tzname(PyObject *op, PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _timezone_check_argument
      Src: /src/cpython/Modules/_datetimemodule.c:4418,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4421,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4423
      start: 4415
    functionDepth: 2
    functionLinenumber: 4415
    functionLinenumberEnd: 4423
    functionName: timezone_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _timezone_check_argument
    - PyTimeZone_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_utcoffset(PyObject *op, PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _timezone_check_argument
      Src: /src/cpython/Modules/_datetimemodule.c:4428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4425
    functionDepth: 2
    functionLinenumber: 4425
    functionLinenumberEnd: 4432
    functionName: timezone_dst
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _timezone_check_argument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_dst(PyObject *op, PyObject *dt)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4437,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4438,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4444,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4445,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4449,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:4450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4451
      start: 4434
    functionDepth: 1
    functionLinenumber: 4434
    functionLinenumberEnd: 4451
    functionName: timezone_fromutc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - add_datetime_timedelta
    - HASTZINFO
    - PyErr_SetString
    - PyDateTime_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_fromutc(PyObject *op, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4456,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:4458,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:4459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4460
      start: 4453
    functionDepth: 1
    functionLinenumber: 4453
    functionLinenumberEnd: 4460
    functionName: timezone_getinitargs
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - PyTimeZone_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_getinitargs(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:4534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4537
      start: 4530
    functionDepth: 1
    functionLinenumber: 4530
    functionLinenumberEnd: 4537
    functionName: look_up_timezone
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - CONST_UTC
    linkageType: ''
    returnType: PyDateTime_TimeZone
    signature: 'PyDateTime_TimeZone *

      look_up_timezone(PyObject *offset, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4550,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4551,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4552
      start: 4547
    functionDepth: 1
    functionLinenumber: 4547
    functionLinenumberEnd: 4552
    functionName: time_hour
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_HOUR
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_hour(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4557,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4558,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4554
    functionDepth: 1
    functionLinenumber: 4554
    functionLinenumberEnd: 4559
    functionName: time_minute
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_MINUTE
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_minute(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4565,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4566,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4562
    functionDepth: 1
    functionLinenumber: 4562
    functionLinenumberEnd: 4567
    functionName: py_time_second
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_SECOND
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_time_second(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4572,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4573,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4574
      start: 4569
    functionDepth: 1
    functionLinenumber: 4569
    functionLinenumberEnd: 4574
    functionName: time_microsecond
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_MICROSECOND
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_microsecond(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4579,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4580,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4582
      start: 4576
    functionDepth: 1
    functionLinenumber: 4576
    functionLinenumberEnd: 4582
    functionName: time_tzinfo
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - HASTZINFO
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_tzinfo(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4587,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4588,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:4588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4589
      start: 4584
    functionDepth: 1
    functionLinenumber: 4584
    functionLinenumberEnd: 4589
    functionName: time_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_FOLD
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_fold(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:4611,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4612,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:4616,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:4618,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_datetimemodule.c:4620,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - type
    - state
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4635
      start: 4605
    functionDepth: 2
    functionLinenumber: 4605
    functionLinenumberEnd: 4635
    functionName: time_from_pickle
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - memcpy
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    - check_tzinfo_subclass
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_from_pickle(PyTypeObject *type, PyObject *state, PyObject *tzinfo)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:4641,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:4641,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:4642,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:4644,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:4645,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4647,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:4648,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:4649,1
    - Dst: time_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:4651,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4654,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:4655,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:4656,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_datetimemodule.c:4658,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:4660,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4662,1
    - Dst: time_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:4669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4670,1
    - Dst: datetime_time
      Src: /src/cpython/Modules/_datetimemodule.c:4676,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4677
      start: 4637
    functionDepth: 3
    functionLinenumber: 4637
    functionLinenumberEnd: 4677
    functionName: time_new
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyUnicode_AsLatin1String
    - PyErr_SetString
    - time_from_pickle
    - PyBytes_Check
    - PyErr_ExceptionMatches
    - PyBytes_GET_SIZE
    - PyTuple_GET_ITEM
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - datetime_time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_time_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:4702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - type
    - hour
    - minute
    - second
    - microsecond
    - tzinfo
    - fold
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4703
      start: 4697
    functionDepth: 3
    functionLinenumber: 4697
    functionLinenumberEnd: 4703
    functionName: datetime_time_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_time_ex2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_time_impl(PyTypeObject *type, int hour, int minute,
      int second,\n                   int microsecond, PyObject *tzinfo, int fold)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_datetimemodule.c:4723,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4723,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:4727,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - string
    - format
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4716
    functionDepth: 1
    functionLinenumber: 4716
    functionLinenumberEnd: 4732
    functionName: datetime_time_strptime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - _Py_ID
    - PyImport_Import
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_time_strptime_impl(PyTypeObject *type, PyObject
      *string,\n                            PyObject *format)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4741,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4742,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4743,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4746
      start: 4738
    functionDepth: 1
    functionLinenumber: 4738
    functionLinenumberEnd: 4746
    functionName: time_dealloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - HASTZINFO
    - Py_XDECREF
    - Py_TYPE
    - PyTime_CAST
    linkageType: ''
    returnType: void
    signature: void time_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4755,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4756,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4757
      start: 4753
    functionDepth: 3
    functionLinenumber: 4753
    functionLinenumberEnd: 4757
    functionName: time_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_utcoffset
    - GET_TIME_TZINFO
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_utcoffset(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4761,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:4762,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4763
      start: 4759
    functionDepth: 3
    functionLinenumber: 4759
    functionLinenumberEnd: 4763
    functionName: time_dst
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TIME_TZINFO
    - call_dst
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_dst(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4767,1
    - Dst: call_tzname
      Src: /src/cpython/Modules/_datetimemodule.c:4768,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4765
    functionDepth: 3
    functionLinenumber: 4765
    functionLinenumberEnd: 4769
    functionName: time_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_tzname
    - GET_TIME_TZINFO
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_tzname(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4778,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4779,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4780,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4781,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4782,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4783,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:4784,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4788,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4791,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4794,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4795,1
    - Dst: append_keyword_tzinfo
      Src: /src/cpython/Modules/_datetimemodule.c:4796,1
    - Dst: append_keyword_fold
      Src: /src/cpython/Modules/_datetimemodule.c:4798,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4800
      start: 4775
    functionDepth: 2
    functionLinenumber: 4775
    functionLinenumberEnd: 4800
    functionName: time_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_MINUTE
    - TIME_GET_HOUR
    - PyUnicode_FromFormat
    - HASTZINFO
    - append_keyword_fold
    - TIME_GET_FOLD
    - TIME_GET_SECOND
    - append_keyword_tzinfo
    - TIME_GET_MICROSECOND
    - Py_TYPE
    - PyTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:4805,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4806
      start: 4802
    functionDepth: 1
    functionLinenumber: 4802
    functionLinenumberEnd: 4806
    functionName: time_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_str(PyObject *op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4830,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:4840,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:4851,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:4852,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:4862,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:4863,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4867,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4868,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4868,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4869,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4872,1
    - Dst: format_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4878,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_datetimemodule.c:4881,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:4881,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - self
    - timespec
    argTypes:
    - PyDateTime_Time*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4883
      start: 4823
    functionDepth: 4
    functionLinenumber: 4823
    functionLinenumberEnd: 4883
    functionName: datetime_time_isoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - TIME_GET_HOUR
    - TIME_GET_MINUTE
    - PyUnicode_FromFormat
    - HASTZINFO
    - format_utcoffset
    - PyUnicode_AppendAndDel
    - strcmp
    - TIME_GET_SECOND
    - PyErr_Format
    - TIME_GET_MICROSECOND
    - Py_ARRAY_LENGTH
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_isoformat_impl(PyDateTime_Time *self, const char *timespec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:4907,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4909,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4910,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4911,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:4915,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_datetimemodule.c:4915,1
    - Dst: wrap_strftime
      Src: /src/cpython/Modules/_datetimemodule.c:4916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyDateTime_Time*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Size(tuple) == 9)
      pos:
        line_end: 4914
        line_start: 4914
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 4920
      start: 4896
    functionDepth: 6
    functionLinenumber: 4896
    functionLinenumberEnd: 4920
    functionName: datetime_time_strftime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - TIME_GET_HOUR
    - TIME_GET_MINUTE
    - TIME_GET_SECOND
    - PyTuple_Size
    - wrap_strftime
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_strftime_impl(PyDateTime_Time *self, PyObject *format)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_datetimemodule.c:4937,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_datetimemodule.c:4938,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:4940,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4941
      start: 4932
    functionDepth: 1
    functionLinenumber: 4932
    functionLinenumberEnd: 4941
    functionName: datetime_time___format___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - PyObject_CallMethodOneArg
    - PyObject_Str
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time___format___impl(PyObject *self, PyObject *format)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4954,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4957,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4957,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:4958,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:4961,1
    - Dst: time_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4963,1
    - Dst: time_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4966,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4974,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4974,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:4975,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:4976,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:4979,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:4984,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4985,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4986,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4987,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:4988,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4989,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4990,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4991,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4992,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:4993,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4994,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4997,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4998,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:4999,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5002,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5005,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5013,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5014,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (offset1 != offset2)
      pos:
        line_end: 4983
        line_start: 4983
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5016
      start: 4947
    functionDepth: 4
    functionLinenumber: 4947
    functionLinenumberEnd: 5016
    functionName: time_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - delta_cmp
    - TIME_GET_HOUR
    - GET_TIME_TZINFO
    - TIME_GET_MINUTE
    - PyTime_Check
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - PyErr_SetString
    - PyDelta_Check
    - diff_to_bool
    - Py_NewRef
    - time_utcoffset
    - TIME_GET_SECOND
    - memcmp
    - TIME_GET_MICROSECOND
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:5021,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5024,1
    - Dst: new_time_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:5025,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5025,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5026,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5027,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5028,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5029,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5030,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5035,1
    - Dst: time_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:5037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5038,1
    - Dst: generic_hash
      Src: /src/cpython/Modules/_datetimemodule.c:5045,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:5050,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5050,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5051,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5052,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5053,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5054,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:5055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5057,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:5060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5063,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_datetimemodule.c:5066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5069,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (HASTZINFO(self))
      pos:
        line_end: 5049
        line_start: 5049
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5072
      start: 5018
    functionDepth: 4
    functionLinenumber: 5018
    functionLinenumberEnd: 5072
    functionName: time_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - Py_DECREF
    - TIME_GET_MINUTE
    - TIME_GET_HOUR
    - HASTZINFO
    - TIME_GET_FOLD
    - Py_NewRef
    - delta_subtract
    - time_utcoffset
    - TIME_GET_SECOND
    - PyObject_Hash
    - generic_hash
    - TIME_GET_MICROSECOND
    - Py_TYPE
    - new_time_ex2
    - assert
    - PyTime_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t time_hash(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_time_subclass_fold_ex
      Src: /src/cpython/Modules/_datetimemodule.c:5094,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - self
    - hour
    - minute
    - second
    - microsecond
    - tzinfo
    - fold
    argTypes:
    - PyDateTime_Time*
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5096
      start: 5088
    functionDepth: 3
    functionLinenumber: 5088
    functionLinenumberEnd: 5096
    functionName: datetime_time_replace_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - new_time_subclass_fold_ex
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_time_replace_impl(PyDateTime_Time *self, int
      hour, int minute,\n                           int second, int microsecond, PyObject
      *tzinfo,\n                           int fold)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_datetimemodule.c:5113,1
    - Dst: parse_isoformat_time
      Src: /src/cpython/Modules/_datetimemodule.c:5129,1
    - Dst: tzinfo_from_isoformat_results
      Src: /src/cpython/Modules/_datetimemodule.c:5148,1
    - Dst: TIME_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5156,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:5157,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:5159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5163,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5167,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:5171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5176
      start: 5108
    functionDepth: 4
    functionLinenumber: 5108
    functionLinenumberEnd: 5176
    functionName: datetime_time_fromisoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - tzinfo_from_isoformat_results
    - new_time
    - parse_isoformat_time
    - PyErr_Format
    - TIME_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_fromisoformat_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_datetimemodule.c:5192,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5195,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:5197,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5198,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:5199,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:5201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_Time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5186
    functionDepth: 1
    functionLinenumber: 5186
    functionLinenumberEnd: 5205
    functionName: time_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - HASTZINFO
    - PyBytes_FromStringAndSize
    - TIME_GET_FOLD
    - PyTuple_Pack
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_getstate(PyDateTime_Time *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:5218,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5218,1
    - Dst: time_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:5218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_Time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5219
      start: 5214
    functionDepth: 2
    functionLinenumber: 5214
    functionLinenumberEnd: 5219
    functionName: datetime_time___reduce_ex___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_getstate
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time___reduce_ex___impl(PyDateTime_Time *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:5229,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5229,1
    - Dst: time_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:5229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5230
      start: 5225
    functionDepth: 2
    functionLinenumber: 5225
    functionLinenumberEnd: 5230
    functionName: datetime_time___reduce___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_getstate
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time___reduce___impl(PyDateTime_Time *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:5318,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5319,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5320
      start: 5315
    functionDepth: 1
    functionLinenumber: 5315
    functionLinenumberEnd: 5320
    functionName: datetime_hour
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - PyDateTime_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_hour(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:5325,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5326,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5322
    functionDepth: 1
    functionLinenumber: 5322
    functionLinenumberEnd: 5327
    functionName: datetime_minute
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_MINUTE
    - PyDateTime_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_minute(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:5332,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5333,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5334
      start: 5329
    functionDepth: 1
    functionLinenumber: 5329
    functionLinenumberEnd: 5334
    functionName: datetime_second
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - PyDateTime_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_second(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:5339,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5340,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5341
      start: 5336
    functionDepth: 1
    functionLinenumber: 5336
    functionLinenumberEnd: 5341
    functionName: datetime_microsecond
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_MICROSECOND
    - PyDateTime_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_microsecond(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:5346,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5347,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5349
      start: 5343
    functionDepth: 1
    functionLinenumber: 5343
    functionLinenumberEnd: 5349
    functionName: datetime_tzinfo
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - HASTZINFO
    - PyDateTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_tzinfo(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:5354,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5355,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5351
    functionDepth: 1
    functionLinenumber: 5351
    functionLinenumberEnd: 5356
    functionName: datetime_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_CAST
    - DATE_GET_FOLD
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_fold(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:5378,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5379,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:5383,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:5385,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_datetimemodule.c:5387,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - type
    - state
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5372
    functionDepth: 2
    functionLinenumber: 5372
    functionLinenumberEnd: 5402
    functionName: datetime_from_pickle
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - memcpy
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    - check_tzinfo_subclass
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_from_pickle(PyTypeObject *type, PyObject *state, PyObject *tzinfo)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:5408,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:5408,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:5409,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:5411,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:5412,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_datetimemodule.c:5414,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:5415,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:5416,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:5416,1
    - Dst: datetime_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:5418,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:5421,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:5422,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:5423,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:5423,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_datetimemodule.c:5425,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:5427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5429,1
    - Dst: datetime_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:5436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5437,1
    - Dst: datetime_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:5443,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5444
      start: 5404
    functionDepth: 3
    functionLinenumber: 5404
    functionLinenumberEnd: 5444
    functionName: datetime_new
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyUnicode_AsLatin1String
    - PyErr_SetString
    - MONTH_IS_SANE
    - PyBytes_Check
    - PyErr_ExceptionMatches
    - datetime_datetime
    - PyBytes_GET_SIZE
    - PyTuple_GET_ITEM
    - datetime_from_pickle
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:5473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - type
    - year
    - month
    - day
    - hour
    - minute
    - second
    - microsecond
    - tzinfo
    - fold
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5476
      start: 5467
    functionDepth: 4
    functionLinenumber: 5467
    functionLinenumberEnd: 5476
    functionName: datetime_datetime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_datetime_ex2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_impl(PyTypeObject *type, int year, int
      month, int day,\n                       int hour, int minute, int second, int
      microsecond,\n                       PyObject *tzinfo, int fold)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:5496,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:5501,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: 5503
      start: 5488
    functionDepth: 1
    functionLinenumber: 5488
    functionLinenumberEnd: 5503
    functionName: utc_to_seconds
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ymd_to_ord
    - PyErr_Format
    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/cpython/Modules/_datetimemodule.c:5513,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/_datetimemodule.c:5517,1
    - Dst: utc_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:5519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - u
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5525
      start: 5505
    functionDepth: 2
    functionLinenumber: 5505
    functionLinenumberEnd: 5525
    functionName: local
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - utc_to_seconds
    - _PyTime_localtime
    linkageType: ''
    returnType: long long
    signature: long long local(long long u)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/cpython/Modules/_datetimemodule.c:5538,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_datetimemodule.c:5552,1
    - Dst: utc_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:5573,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:5575,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:5580,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:5585,1
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/cpython/Modules/_datetimemodule.c:5592,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - cls
    - f
    - timet
    - us
    - tzinfo
    argTypes:
    - PyTypeObject*
    - TM_FUNC
    - time_t
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5594
      start: 5531
    functionDepth: 3
    functionLinenumber: 5531
    functionLinenumberEnd: 5594
    functionName: datetime_from_timet_and_us
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - f
    - utc_to_seconds
    - PyErr_Occurred
    - new_datetime_subclass_fold_ex
    - local
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_from_timet_and_us(PyTypeObject *cls, TM_FUNC
      f, time_t timet, int us,\n                           PyObject *tzinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_ObjectToTimeval
      Src: /src/cpython/Modules/_datetimemodule.c:5610,1
    - Dst: datetime_from_timet_and_us
      Src: /src/cpython/Modules/_datetimemodule.c:5614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cls
    - f
    - timestamp
    - tzinfo
    argTypes:
    - PyTypeObject*
    - TM_FUNC
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5615
      start: 5603
    functionDepth: 4
    functionLinenumber: 5603
    functionLinenumberEnd: 5615
    functionName: datetime_from_timestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_ObjectToTimeval
    - datetime_from_timet_and_us
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_from_timestamp(PyTypeObject *cls, TM_FUNC f,
      PyObject *timestamp,\n                        PyObject *tzinfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Time
      Src: /src/cpython/Modules/_datetimemodule.c:5625,1
    - Dst: _PyTime_AsTimevalTime_t
      Src: /src/cpython/Modules/_datetimemodule.c:5632,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:5635,1
    - Dst: datetime_from_timet_and_us
      Src: /src/cpython/Modules/_datetimemodule.c:5637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cls
    - f
    - tzinfo
    argTypes:
    - PyTypeObject*
    - TM_FUNC
    - PyObject*
    assertStmts:
    - condition: (0 <= us && us <= 999999)
      pos:
        line_end: 5634
        line_start: 5634
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5638
      start: 5621
    functionDepth: 4
    functionLinenumber: 5621
    functionLinenumberEnd: 5638
    functionName: datetime_best_possible
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTime_Time
    - _PyTime_AsTimevalTime_t
    - datetime_from_timet_and_us
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_best_possible(PyTypeObject *cls, TM_FUNC f, PyObject *tzinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:5662,1
    - Dst: datetime_best_possible
      Src: /src/cpython/Modules/_datetimemodule.c:5665,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:5671,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - type
    - tz
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5676
      start: 5653
    functionDepth: 5
    functionLinenumber: 5653
    functionLinenumberEnd: 5676
    functionName: datetime_datetime_now_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - datetime_best_possible
    - PyObject_CallMethodOneArg
    - check_tzinfo_subclass
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_now_impl(PyTypeObject *type, PyObject *tz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_datetimemodule.c:5692,1
    - Dst: datetime_best_possible
      Src: /src/cpython/Modules/_datetimemodule.c:5699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5700
      start: 5688
    functionDepth: 5
    functionLinenumber: 5688
    functionLinenumberEnd: 5700
    functionName: datetime_datetime_utcnow_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_best_possible
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_utcnow_impl(PyTypeObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:5722,1
    - Dst: datetime_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:5725,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:5732,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - type
    - timestamp
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5737
      start: 5716
    functionDepth: 5
    functionLinenumber: 5716
    functionLinenumberEnd: 5737
    functionName: datetime_datetime_fromtimestamp_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - datetime_from_timestamp
    - PyObject_CallMethodOneArg
    - check_tzinfo_subclass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_fromtimestamp_impl(PyTypeObject *type,
      PyObject *timestamp,\n                                     PyObject *tzinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_datetimemodule.c:5747,1
    - Dst: datetime_datetime_fromtimestamp_impl
      Src: /src/cpython/Modules/_datetimemodule.c:5750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cls
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5752
      start: 5740
    functionDepth: 6
    functionLinenumber: 5740
    functionLinenumberEnd: 5752
    functionName: datetime_datetime_fromtimestamp_capi
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - datetime_datetime_fromtimestamp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_fromtimestamp_capi(PyObject *cls, PyObject *args, PyObject
      *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_datetimemodule.c:5769,1
    - Dst: datetime_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:5777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5778
      start: 5764
    functionDepth: 5
    functionLinenumber: 5764
    functionLinenumberEnd: 5778
    functionName: datetime_datetime_utcfromtimestamp_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_from_timestamp
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_utcfromtimestamp_impl(PyTypeObject *type,\n
      \                                       PyObject *timestamp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_datetimemodule.c:5799,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5799,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:5803,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - string
    - format
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5808
      start: 5792
    functionDepth: 1
    functionLinenumber: 5792
    functionLinenumberEnd: 5808
    functionName: datetime_datetime_strptime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - _Py_ID
    - PyImport_Import
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_strptime_impl(PyTypeObject *type, PyObject
      *string,\n                                PyObject *format)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5827,1
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/cpython/Modules/_datetimemodule.c:5832,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:5832,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:5833,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:5834,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5835,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5836,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5837,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5838,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - type
    - date
    - time
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5821
    functionDepth: 3
    functionLinenumber: 5821
    functionLinenumberEnd: 5842
    functionName: datetime_datetime_combine_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - TIME_GET_MINUTE
    - HASTZINFO
    - TIME_GET_FOLD
    - GET_DAY
    - new_datetime_subclass_fold_ex
    - TIME_GET_SECOND
    - GET_MONTH
    - TIME_GET_MICROSECOND
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_combine_impl(PyTypeObject *type, PyObject
      *date,\n                               PyObject *time, PyObject *tzinfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_datetimemodule.c:5847,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_datetimemodule.c:5858,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_datetimemodule.c:5859,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Modules/_datetimemodule.c:5876,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_datetimemodule.c:5876,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5883,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Modules/_datetimemodule.c:5886,1
    - Dst: PyUnicode_WriteChar
      Src: /src/cpython/Modules/_datetimemodule.c:5891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - dtstr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5897
      start: 5844
    functionDepth: 1
    functionLinenumber: 5844
    functionLinenumberEnd: 5897
    functionName: _sanitize_isoformat_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_DECREF
    - _PyUnicode_Copy
    - PyUnicode_READ
    - Py_NewRef
    - Py_UNICODE_IS_SURROGATE
    - PyUnicode_GetLength
    - PyUnicode_DATA
    - PyUnicode_WriteChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sanitize_isoformat_str(PyObject *dtstr)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/cpython/Modules/_datetimemodule.c:5949,1
    - Dst: is_digit
      Src: /src/cpython/Modules/_datetimemodule.c:5977,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - dtstr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5997
      start: 5900
    functionDepth: 1
    functionLinenumber: 5900
    functionLinenumberEnd: 5997
    functionName: _find_isoformat_datetime_separator
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - is_digit
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _find_isoformat_datetime_separator(const char *dtstr, Py_ssize_t
      len)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _sanitize_isoformat_str
      Src: /src/cpython/Modules/_datetimemodule.c:6018,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_datetimemodule.c:6024,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:6027,1
    - Dst: _find_isoformat_datetime_separator
      Src: /src/cpython/Modules/_datetimemodule.c:6036,1
    - Dst: parse_isoformat_date
      Src: /src/cpython/Modules/_datetimemodule.c:6047,1
    - Dst: parse_isoformat_time
      Src: /src/cpython/Modules/_datetimemodule.c:6070,1
    - Dst: tzinfo_from_isoformat_results
      Src: /src/cpython/Modules/_datetimemodule.c:6080,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:6086,1
    - Dst: new_datetime_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:6105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6109,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:6113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6115,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:6119,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6122,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6125
      start: 6009
    functionDepth: 5
    functionLinenumber: 6009
    functionLinenumberEnd: 6125
    functionName: datetime_datetime_fromisoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_in_month
    - Py_XDECREF
    - parse_isoformat_date
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - _sanitize_isoformat_str
    - PyErr_SetString
    - tzinfo_from_isoformat_results
    - PyErr_ExceptionMatches
    - parse_isoformat_time
    - _find_isoformat_datetime_separator
    - new_datetime_subclass_ex
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_fromisoformat_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6134,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6135,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6136,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6139
      start: 6131
    functionDepth: 1
    functionLinenumber: 6131
    functionLinenumberEnd: 6139
    functionName: datetime_dealloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - HASTZINFO
    - Py_XDECREF
    - Py_TYPE
    - PyDateTime_CAST
    linkageType: ''
    returnType: void
    signature: void datetime_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6148,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6149,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6150
      start: 6146
    functionDepth: 3
    functionLinenumber: 6146
    functionLinenumberEnd: 6150
    functionName: datetime_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_utcoffset
    - GET_DT_TZINFO
    - PyDateTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_utcoffset(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6154,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:6155,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6156
      start: 6152
    functionDepth: 3
    functionLinenumber: 6152
    functionLinenumberEnd: 6156
    functionName: datetime_dst
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_DT_TZINFO
    - call_dst
    - PyDateTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_dst(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6160,1
    - Dst: call_tzname
      Src: /src/cpython/Modules/_datetimemodule.c:6161,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6162
      start: 6158
    functionDepth: 3
    functionLinenumber: 6158
    functionLinenumberEnd: 6162
    functionName: datetime_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_tzname
    - GET_DT_TZINFO
    - PyDateTime_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_tzname(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6178,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6179,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6180,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:6180,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6181,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6182,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6183,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6183,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6184,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6185,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:6187,1
    - Dst: normalize_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:6188,1
    - Dst: new_datetime_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:6193,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6195,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6196,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: 6186
        line_start: 6186
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6197
      start: 6171
    functionDepth: 6
    functionLinenumber: 6171
    functionLinenumberEnd: 6197
    functionName: add_datetime_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 2
    functionsReached:
    - GET_TD_MICROSECONDS
    - DATE_GET_HOUR
    - normalize_datetime
    - GET_TD_DAYS
    - HASTZINFO
    - GET_TD_SECONDS
    - GET_DAY
    - new_datetime_subclass_ex
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - GET_YEAR
    - DATE_GET_SECOND
    - Py_TYPE
    - assert
    - 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/cpython/Modules/_datetimemodule.c:6202,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6204,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6206,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6211,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6218
      start: 6199
    functionDepth: 7
    functionLinenumber: 6199
    functionLinenumberEnd: 6218
    functionName: datetime_add
    functionSourceFile: /src/cpython/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/cpython/Modules/_datetimemodule.c:6225,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6227,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6232,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6232,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6233,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6234,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6237,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6242,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:6246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6250,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6255,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6264,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:6265,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6265,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6266,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6267,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:6268,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6268,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6269,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6270,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6275,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6276,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6277,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6278,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6279,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6280,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6281,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6282,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6283,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:6288,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6289,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6292,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6294,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:6302,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6304
      start: 6220
    functionDepth: 7
    functionLinenumber: 6220
    functionLinenumberEnd: 6304
    functionName: datetime_subtract
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_cmp
    - PyErr_SetString
    - GET_DAY
    - Py_SETREF
    - DATE_GET_MINUTE
    - Py_INCREF
    - ymd_to_ord
    - GET_YEAR
    - datetime_utcoffset
    - PyDateTime_Check
    - Py_DECREF
    - Py_NewRef
    - delta_subtract
    - new_delta
    - DATE_GET_HOUR
    - add_datetime_timedelta
    - PyDelta_Check
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - GET_DT_TZINFO
    - DATE_GET_SECOND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_subtract(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6311,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6312,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6315,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6316,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6319,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6319,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6319,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6320,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6320,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6321,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6322,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6324,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6325,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6328,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6328,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6328,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6329,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6329,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6330,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6333,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6336,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6336,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6336,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6337,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6337,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6339,1
    - Dst: append_keyword_fold
      Src: /src/cpython/Modules/_datetimemodule.c:6340,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6340,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6341,1
    - Dst: append_keyword_tzinfo
      Src: /src/cpython/Modules/_datetimemodule.c:6343,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6344
      start: 6308
    functionDepth: 2
    functionLinenumber: 6308
    functionLinenumberEnd: 6344
    functionName: datetime_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - DATE_GET_FOLD
    - PyUnicode_FromFormat
    - HASTZINFO
    - append_keyword_fold
    - GET_DAY
    - append_keyword_tzinfo
    - PyDateTime_CAST
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - GET_YEAR
    - DATE_GET_SECOND
    - Py_TYPE
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:6349,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:6353,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:6353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6356
      start: 6346
    functionDepth: 1
    functionLinenumber: 6346
    functionLinenumberEnd: 6356
    functionName: datetime_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - _Py_ID
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_str(PyObject *op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6388,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6398,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:6409,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6410,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:6419,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:6420,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6424,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6425,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6425,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6426,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6427,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6427,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6428,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6431,1
    - Dst: format_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6436,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_datetimemodule.c:6439,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:6439,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - self
    - sep
    - timespec
    argTypes:
    - PyDateTime_DateTime*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6380
    functionDepth: 4
    functionLinenumber: 6380
    functionLinenumberEnd: 6441
    functionName: datetime_datetime_isoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - Py_DECREF
    - PyUnicode_FromFormat
    - HASTZINFO
    - format_utcoffset
    - DATE_GET_SECOND
    - PyUnicode_AppendAndDel
    - GET_DAY
    - strcmp
    - GET_MONTH
    - PyErr_Format
    - Py_ARRAY_LENGTH
    - GET_YEAR
    - DATE_GET_MICROSECOND
    - PyUnicode_FromString
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_isoformat_impl(PyDateTime_DateTime *self,
      int sep,\n                                 const char *timespec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6446,1
    - Dst: format_ctime
      Src: /src/cpython/Modules/_datetimemodule.c:6447,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6448,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6449,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6451
      start: 6443
    functionDepth: 2
    functionLinenumber: 6443
    functionLinenumberEnd: 6451
    functionName: datetime_ctime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - PyDateTime_CAST
    - format_ctime
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_ctime(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:6458,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6458,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6459,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6460,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6461,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6462,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6463,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6464,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6465,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6467,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6469
      start: 6455
    functionDepth: 4
    functionLinenumber: 6455
    functionLinenumberEnd: 6469
    functionName: flip_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - DATE_GET_FOLD
    - HASTZINFO
    - DATE_GET_SECOND
    - GET_DAY
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - GET_YEAR
    - new_datetime_ex2
    - Py_TYPE
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flip_fold(PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flip_fold
      Src: /src/cpython/Modules/_datetimemodule.c:6476,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6482
      start: 6471
    functionDepth: 5
    functionLinenumber: 6471
    functionLinenumberEnd: 6482
    functionName: get_flip_fold_offset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - flip_fold
    - Py_DECREF
    - datetime_utcoffset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_flip_fold_offset(PyObject *dt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_flip_fold_offset
      Src: /src/cpython/Modules/_datetimemodule.c:6497,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6506,1
    - Dst: get_flip_fold_offset
      Src: /src/cpython/Modules/_datetimemodule.c:6508,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6515,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: 6517
      start: 6490
    functionDepth: 6
    functionLinenumber: 6490
    functionLinenumberEnd: 6517
    functionName: pep495_eq_exception
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_cmp
    - get_flip_fold_offset
    linkageType: ''
    returnType: int
    signature: "int pep495_eq_exception(PyObject *self, PyObject *other,\n                    PyObject
      *offset_self, PyObject *offset_other)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6526,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6530,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6530,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6531,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6534,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6536,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6539,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6547,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6547,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6548,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6549,1
    - Dst: pep495_eq_exception
      Src: /src/cpython/Modules/_datetimemodule.c:6553,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6559,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:6564,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6565,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:6568,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6570,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6572,1
    - Dst: pep495_eq_exception
      Src: /src/cpython/Modules/_datetimemodule.c:6574,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6580,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6583,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6586,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:6589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6594,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6595,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (offset1 != offset2)
      pos:
        line_end: 6563
        line_start: 6563
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6597
      start: 6519
    functionDepth: 8
    functionLinenumber: 6519
    functionLinenumberEnd: 6597
    functionName: datetime_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - Py_XDECREF
    - Py_DECREF
    - delta_cmp
    - GET_TD_DAYS
    - PyErr_SetString
    - GET_TD_SECONDS
    - pep495_eq_exception
    - PyDelta_Check
    - datetime_subtract
    - diff_to_bool
    - Py_NewRef
    - memcmp
    - datetime_utcoffset
    - GET_DT_TZINFO
    - PyDateTime_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6602,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6605,1
    - Dst: new_datetime_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:6606,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6606,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6607,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6608,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6609,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6610,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6611,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6612,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6613,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6614,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6619,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6622,1
    - Dst: generic_hash
      Src: /src/cpython/Modules/_datetimemodule.c:6629,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:6635,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6635,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:6636,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6636,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6637,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6638,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6639,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6640,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6641,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6642,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6646,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6652,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_datetimemodule.c:6655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (HASTZINFO(self))
      pos:
        line_end: 6634
        line_start: 6634
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6661
      start: 6599
    functionDepth: 4
    functionLinenumber: 6599
    functionLinenumberEnd: 6661
    functionName: datetime_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_FOLD
    - HASTZINFO
    - GET_DAY
    - new_datetime_ex2
    - DATE_GET_MINUTE
    - ymd_to_ord
    - datetime_utcoffset
    - GET_YEAR
    - Py_DECREF
    - Py_NewRef
    - delta_subtract
    - PyDateTime_CAST
    - generic_hash
    - Py_TYPE
    - new_delta
    - DATE_GET_HOUR
    - PyObject_Hash
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - assert
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t datetime_hash(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/cpython/Modules/_datetimemodule.c:6687,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - self
    - year
    - month
    - day
    - hour
    - minute
    - second
    - microsecond
    - tzinfo
    - fold
    argTypes:
    - PyDateTime_DateTime*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6690
      start: 6680
    functionDepth: 3
    functionLinenumber: 6680
    functionLinenumberEnd: 6690
    functionName: datetime_datetime_replace_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_datetime_subclass_fold_ex
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_replace_impl(PyDateTime_DateTime *self,
      int year,\n                               int month, int day, int hour, int
      minute,\n                               int second, int microsecond, PyObject
      *tzinfo,\n                               int fold)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/_datetimemodule.c:6701,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6705,1
    - Dst: strftime
      Src: /src/cpython/Modules/_datetimemodule.c:6711,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:6713,1
    - Dst: _PyTime_gmtime
      Src: /src/cpython/Modules/_datetimemodule.c:6722,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:6724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6731,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6735,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6736,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_datetimemodule.c:6743,1
    - Dst: new_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:6747,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6750,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6752
      start: 6692
    functionDepth: 8
    functionLinenumber: 6692
    functionLinenumberEnd: 6752
    functionName: local_timezone_from_timestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - Py_XDECREF
    - Py_DECREF
    - new_timezone
    - PyUnicode_DecodeLocale
    - _PyTime_localtime
    - strftime
    - _PyTime_gmtime
    - datetime_subtract
    - new_datetime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_timezone_from_timestamp(time_t timestamp)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:6763,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6765,1
    - Dst: CONST_EPOCH
      Src: /src/cpython/Modules/_datetimemodule.c:6765,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:6766,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6772,1
    - Dst: divide_timedelta_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6778,1
    - Dst: _PyLong_AsTime_t
      Src: /src/cpython/Modules/_datetimemodule.c:6781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6782,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:6783,1
    - Dst: local_timezone_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:6785,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - utc_time
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6786
      start: 6754
    functionDepth: 9
    functionLinenumber: 6754
    functionLinenumberEnd: 6786
    functionName: local_timezone
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - _PyLong_AsTime_t
    - local_timezone_from_timestamp
    - Py_DECREF
    - PyErr_Occurred
    - GET_CURRENT_STATE
    - divide_timedelta_timedelta
    - CONST_EPOCH
    - datetime_subtract
    - RELEASE_CURRENT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_timezone(PyDateTime_DateTime *utc_time)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6797,1
    - Dst: local_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:6798,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6798,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6799,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6800,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6801,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6802,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6803,1
    - Dst: local_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:6807,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6807,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6808,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6809,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6810,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6811,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6812,1
    - Dst: local_timezone_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:6822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - local_dt
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6823
      start: 6792
    functionDepth: 9
    functionLinenumber: 6792
    functionLinenumberEnd: 6823
    functionName: local_timezone_from_local
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - local_timezone_from_timestamp
    - DATE_GET_HOUR
    - DATE_GET_FOLD
    - GET_DAY
    - local_to_seconds
    - GET_MONTH
    - GET_YEAR
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_timezone_from_local(PyDateTime_DateTime *local_dt)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:6843,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6846,1
    - Dst: local_timezone_from_local
      Src: /src/cpython/Modules/_datetimemodule.c:6848,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6857,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6858,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6867,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6871,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:6872,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6873,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6879,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6884,1
    - Dst: new_datetime_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:6887,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6887,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6888,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6889,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6890,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6891,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6892,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6893,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:6894,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6895,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6897,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:6903,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6903,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:6903,1
    - Dst: local_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:6908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6910,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:6915,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:6916,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:6920,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:6920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6921,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - self
    - tzinfo
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6924
      start: 6833
    functionDepth: 10
    functionLinenumber: 6833
    functionLinenumberEnd: 6924
    functionName: datetime_datetime_astimezone_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_FOLD
    - CONST_UTC
    - HASTZINFO
    - GET_DAY
    - Py_SETREF
    - new_datetime_ex2
    - DATE_GET_MINUTE
    - call_utcoffset
    - Py_INCREF
    - PyErr_Format
    - GET_YEAR
    - check_tzinfo_subclass
    - Py_DECREF
    - _Py_ID
    - local_timezone_from_local
    - Py_NewRef
    - local_timezone
    - Py_TYPE
    - DATE_GET_HOUR
    - add_datetime_timedelta
    - PyDelta_Check
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - PyObject_CallMethodOneArg
    - DATE_GET_SECOND
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_datetime_astimezone_impl(PyDateTime_DateTime
      *self,\n                                  PyObject *tzinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6929,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6932,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:6935,1
    - Dst: delta_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6941,1
    - Dst: build_struct_time
      Src: /src/cpython/Modules/_datetimemodule.c:6943,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6943,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6944,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6945,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6946,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6947,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6950
      start: 6926
    functionDepth: 3
    functionLinenumber: 6926
    functionLinenumberEnd: 6950
    functionName: datetime_timetuple
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - DATE_GET_HOUR
    - HASTZINFO
    - build_struct_time
    - GET_DAY
    - delta_bool
    - call_dst
    - PyDateTime_CAST
    - GET_MONTH
    - GET_YEAR
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_timetuple(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utc_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:6957,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:6959,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:6964,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:6975,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:6984,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:6987,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_datetimemodule.c:6996,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_datetimemodule.c:6996,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: 6983
        line_start: 6983
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6997
      start: 6952
    functionDepth: 3
    functionLinenumber: 6952
    functionLinenumberEnd: 6997
    functionName: local_to_seconds
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - Py_MIN
    - Py_MAX
    - utc_to_seconds
    - assert
    - local
    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: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:7005,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7008,1
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:7010,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:7013,1
    - Dst: CONST_EPOCH
      Src: /src/cpython/Modules/_datetimemodule.c:7013,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:7014,1
    - Dst: delta_total_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:7017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7018,1
    - Dst: local_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:7022,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7022,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:7023,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:7024,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7025,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7026,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7027,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7028,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7031,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7035
      start: 7002
    functionDepth: 8
    functionLinenumber: 7002
    functionLinenumberEnd: 7035
    functionName: datetime_timestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_total_seconds
    - Py_DECREF
    - DATE_GET_HOUR
    - DATE_GET_FOLD
    - DATE_GET_MINUTE
    - HASTZINFO
    - GET_CURRENT_STATE
    - GET_DAY
    - local_to_seconds
    - PyFloat_FromDouble
    - CONST_EPOCH
    - PyDateTime_CAST
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - GET_YEAR
    - DATE_GET_SECOND
    - datetime_subtract
    - RELEASE_CURRENT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_timestamp(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:7040,1
    - Dst: new_date
      Src: /src/cpython/Modules/_datetimemodule.c:7041,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7041,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:7042,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:7043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7044
      start: 7037
    functionDepth: 1
    functionLinenumber: 7037
    functionLinenumberEnd: 7044
    functionName: datetime_getdate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_date
    - GET_DAY
    - PyDateTime_CAST
    - GET_MONTH
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_getdate(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:7049,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7050,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7050,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7051,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7052,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7053,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7056
      start: 7046
    functionDepth: 1
    functionLinenumber: 7046
    functionLinenumberEnd: 7056
    functionName: datetime_gettime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - DATE_GET_FOLD
    - new_time
    - PyDateTime_CAST
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_gettime(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:7061,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7062,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7062,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7063,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7064,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7065,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7066,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7068
      start: 7058
    functionDepth: 1
    functionLinenumber: 7058
    functionLinenumberEnd: 7068
    functionName: datetime_gettimetz
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - DATE_GET_FOLD
    - new_time
    - PyDateTime_CAST
    - DATE_GET_MICROSECOND
    - GET_DT_TZINFO
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_gettimetz(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:7076,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7078,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7080,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:7084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7088,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7089,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:7092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7094,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7099,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:7100,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:7101,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7102,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7103,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7106,1
    - Dst: build_struct_time
      Src: /src/cpython/Modules/_datetimemodule.c:7107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7108
      start: 7070
    functionDepth: 7
    functionLinenumber: 7070
    functionLinenumberEnd: 7108
    functionName: datetime_utctimetuple
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_utcoffset
    - Py_DECREF
    - add_datetime_timedelta
    - DATE_GET_HOUR
    - build_struct_time
    - GET_DAY
    - Py_NewRef
    - PyDateTime_CAST
    - GET_MONTH
    - GET_YEAR
    - GET_DT_TZINFO
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_utctimetuple(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_datetimemodule.c:7123,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7126,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:7128,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7129,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:7130,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:7132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_DateTime*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7136
      start: 7117
    functionDepth: 1
    functionLinenumber: 7117
    functionLinenumberEnd: 7136
    functionName: datetime_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - DATE_GET_FOLD
    - HASTZINFO
    - PyBytes_FromStringAndSize
    - PyTuple_Pack
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_getstate(PyDateTime_DateTime *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:7149,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:7149,1
    - Dst: datetime_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:7150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_DateTime*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7151
      start: 7145
    functionDepth: 2
    functionLinenumber: 7145
    functionLinenumberEnd: 7151
    functionName: datetime_datetime___reduce_ex___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - datetime_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime___reduce_ex___impl(PyDateTime_DateTime *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:7161,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:7161,1
    - Dst: datetime_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:7162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7163
      start: 7157
    functionDepth: 2
    functionLinenumber: 7157
    functionLinenumberEnd: 7163
    functionName: datetime_datetime___reduce___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - datetime_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime___reduce___impl(PyDateTime_DateTime *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7327
      start: 7323
    functionDepth: 0
    functionLinenumber: 7323
    functionLinenumberEnd: 7327
    functionName: get_datetime_capi
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyDateTime_CAPI
    signature: 'PyDateTime_CAPI *

      get_datetime_capi(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7332,1
    - Dst: create_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:7336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - days
    - sec
    - ms
    - normalize
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7339
      start: 7329
    functionDepth: 2
    functionLinenumber: 7329
    functionLinenumberEnd: 7339
    functionName: create_timezone_from_delta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - create_timezone
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_timezone_from_delta(int days, int sec, int ms, int normalize)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:7360,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7364,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_datetimemodule.c:7365,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7368,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7369,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7370,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7371,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7372,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7373,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7374,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7375,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7380,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7384,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7388,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7392,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7400,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7404,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7408,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:7414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - st
    - module
    - old_module
    argTypes:
    - datetime_state*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (old_module != module)
      pos:
        line_end: 7363
        line_start: 7363
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 7421
      start: 7346
    functionDepth: 1
    functionLinenumber: 7346
    functionLinenumberEnd: 7421
    functionName: init_state
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 3
    functionsReached:
    - ADD_TYPE
    - get_module_state
    - PyLong_FromDouble
    - Py_NewRef
    - PyLong_FromLong
    - new_datetime
    - assert
    linkageType: ''
    returnType: int
    signature: int init_state(datetime_state *st, PyObject *module, PyObject *old_module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FIELD
    - ','
    - SPEC
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7359
      start: 7350
    functionDepth: 0
    functionLinenumber: 7350
    functionLinenumberEnd: 7359
    functionName: ADD_TYPE
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(FIELD, SPEC, BASE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_datetimemodule.c:7427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - st
    - visit
    - arg
    argTypes:
    - datetime_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7430
      start: 7423
    functionDepth: 1
    functionLinenumber: 7423
    functionLinenumberEnd: 7430
    functionName: traverse_state
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int traverse_state(datetime_state *st, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7435,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7436,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7437,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7438,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7439,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7440,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7441,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7442,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - st
    argTypes:
    - datetime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7445
      start: 7432
    functionDepth: 1
    functionLinenumber: 7432
    functionLinenumberEnd: 7445
    functionName: clear_state
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 6
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int clear_state(datetime_state *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:7453,1
    - Dst: _PyStaticType_InitForExtension
      Src: /src/cpython/Modules/_datetimemodule.c:7455,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Modules/_datetimemodule.c:7456,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7475,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7476,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7476,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7477,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7477,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7478,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7479,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7482,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7483,1
    - Dst: new_date
      Src: /src/cpython/Modules/_datetimemodule.c:7483,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7484,1
    - Dst: new_date
      Src: /src/cpython/Modules/_datetimemodule.c:7484,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7485,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7485,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7488,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7489,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7489,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7490,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7490,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7491,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7491,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7494,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7495,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:7496,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7497,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:7497,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7499,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7499,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7502,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_datetimemodule.c:7503,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7512,1
    - Dst: create_timezone_from_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7512,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7515,1
    - Dst: create_timezone_from_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7516,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/_datetimemodule.c:7520,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Modules/_datetimemodule.c:7523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7524
      start: 7448
    functionDepth: 3
    functionLinenumber: 7448
    functionLinenumberEnd: 7524
    functionName: _PyDateTime_InitTypes
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - _PyStatus_NO_MEMORY
    - DATETIME_ADD_MACRO
    - _PyStatus_OK
    - new_date
    - new_time
    - _PyStaticType_InitForExtension
    - PyDict_SetItemString
    - _PyStatus_ERR
    - Py_ARRAY_LENGTH
    - create_timezone_from_delta
    - _PyType_GetDict
    - new_datetime
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyDateTime_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dict
    - ','
    - c
    - ','
    - value_expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7473
      start: 7460
    functionDepth: 0
    functionLinenumber: 7460
    functionLinenumberEnd: 7473
    functionName: DATETIME_ADD_MACRO
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATETIME_ADD_MACRO(dict, c, value_expr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_datetimemodule.c:7540,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_datetimemodule.c:7542,1
    - Dst: get_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:7543,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:7544,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7545,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:7550,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_datetimemodule.c:7552,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7553,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_datetimemodule.c:7554,1
    - Dst: init_state
      Src: /src/cpython/Modules/_datetimemodule.c:7559,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_datetimemodule.c:7564,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_datetimemodule.c:7567,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_datetimemodule.c:7570,1
    - Dst: get_datetime_capi
      Src: /src/cpython/Modules/_datetimemodule.c:7575,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_datetimemodule.c:7579,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_datetimemodule.c:7581,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7589,1
    - Dst: days_before_year
      Src: /src/cpython/Modules/_datetimemodule.c:7589,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7595,1
    - Dst: days_before_year
      Src: /src/cpython/Modules/_datetimemodule.c:7595,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7601,1
    - Dst: days_before_year
      Src: /src/cpython/Modules/_datetimemodule.c:7601,1
    - Dst: set_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:7603,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_datetimemodule.c:7611,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7614,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (old_module == NULL)
      pos:
        line_end: 7544
        line_start: 7544
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (name != NULL)
      pos:
        line_end: 7552
        line_start: 7552
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (DI100Y == days_before_year(100+1))
      pos:
        line_end: 7600
        line_start: 7600
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (DI400Y == days_before_year(400+1))
      pos:
        line_end: 7594
        line_start: 7594
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (DI4Y == days_before_year(4+1))
      pos:
        line_end: 7588
        line_start: 7588
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 7616
      start: 7536
    functionDepth: 2
    functionLinenumber: 7536
    functionLinenumberEnd: 7616
    functionName: _datetime_exec
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - days_before_year
    - set_current_module
    - get_module_state
    - init_state
    - Py_XDECREF
    - PyErr_Occurred
    - PyModule_AddObjectRef
    - get_current_module
    - _PyType_Name
    - PyCapsule_New
    - get_datetime_capi
    - Py_ARRAY_LENGTH
    - PyModule_AddIntMacro
    - clear_state
    - assert
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int _datetime_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_datetimemodule.c:7628,1
    - Dst: traverse_state
      Src: /src/cpython/Modules/_datetimemodule.c:7629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7631
      start: 7625
    functionDepth: 2
    functionLinenumber: 7625
    functionLinenumberEnd: 7631
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - traverse_state
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_datetimemodule.c:7636,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_datetimemodule.c:7637,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_datetimemodule.c:7639,1
    - Dst: clear_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:7640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7646
      start: 7633
    functionDepth: 2
    functionLinenumber: 7633
    functionLinenumberEnd: 7646
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 9
    functionsReached:
    - clear_current_module
    - PyInterpreterState_Get
    - get_module_state
    - clear_state
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_datetimemodule.c:7651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7652
      start: 7648
    functionDepth: 0
    functionLinenumber: 7648
    functionLinenumberEnd: 7652
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - module_clear
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_datetimemodule.c:7669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7670
      start: 7666
    functionDepth: 1
    functionLinenumber: 7666
    functionLinenumberEnd: 7670
    functionName: PyInit__datetime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__datetime(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/errnomodule.c:61,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/errnomodule.c:66,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/errnomodule.c:68,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/errnomodule.c:74,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/errnomodule.c:78,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/errnomodule.c:83,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/errnomodule.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - module_dict
    - error_dict
    - name_str
    - code_int
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: _add_errcode
    functionSourceFile: /src/cpython/Modules/errnomodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyUnicode_FromString
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int _add_errcode(PyObject *module_dict, PyObject *error_dict, const
      char *name_str, int code_int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/errnomodule.c:91,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/errnomodule.c:95,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/errnomodule.c:99,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/errnomodule.c:100,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:122,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:125,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:128,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:131,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:135,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:138,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:141,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:144,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:147,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:150,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:153,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:156,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:159,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:162,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:166,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:169,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:172,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:175,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:179,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:182,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:186,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:189,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:193,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:196,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:200,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:203,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:206,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:210,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:213,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:216,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:219,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:223,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:226,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:229,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:232,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:235,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:239,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:242,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:246,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:249,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:252,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:256,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:259,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:263,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:266,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:270,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:273,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:276,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:280,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:283,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:286,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:289,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:293,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:300,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:303,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:307,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:310,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:313,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:316,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:319,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:322,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:326,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:329,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:332,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:335,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:338,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:342,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:345,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:348,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:351,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:355,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:358,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:362,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:365,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:368,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:372,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:375,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:378,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:381,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:384,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:387,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:390,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:393,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:396,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:400,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:403,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:406,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:410,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:413,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:416,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:420,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:423,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:426,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:429,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:432,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:435,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:438,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:441,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:444,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:447,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:450,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:453,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:457,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:460,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:464,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:467,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:470,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:473,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:477,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:480,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:483,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:486,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:489,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:492,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:496,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:499,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:502,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:505,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:509,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:512,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:516,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:519,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:522,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:525,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:528,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:532,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:535,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:539,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:542,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:546,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:549,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:552,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:555,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:559,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:562,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:565,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:568,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:571,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:574,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:577,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:581,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:584,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:588,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:591,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:595,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:598,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:601,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:604,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:608,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:611,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:614,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:617,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:621,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:624,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:627,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:630,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:633,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:637,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:640,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:644,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:647,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:650,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:654,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:657,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:660,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:663,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:666,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:669,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:672,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:675,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:678,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:681,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:684,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:687,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:690,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:693,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:696,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:699,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:702,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:705,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:708,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:711,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:714,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:717,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:720,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:723,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:726,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:729,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:732,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:735,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:738,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:741,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:744,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:747,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:750,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:753,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:756,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:759,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:762,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:765,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:768,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:771,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:774,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:777,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:780,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:783,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:786,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:789,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:792,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:795,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:798,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:801,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:804,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:807,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:810,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:813,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:816,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:819,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:822,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:825,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:828,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:831,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:834,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:837,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:840,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:843,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:846,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:849,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:852,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:855,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:858,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:861,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:864,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:867,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:872,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:875,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:878,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:881,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:884,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:887,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:892,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:895,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:898,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:901,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:904,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:907,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:910,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:913,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:916,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:919,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:922,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:925,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:928,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:931,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:934,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:937,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:940,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:943,1
    - Dst: add_errcode
      Src: /src/cpython/Modules/errnomodule.c:947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/errnomodule.c:950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 272
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 952
    functionName: errno_exec
    functionSourceFile: /src/cpython/Modules/errnomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - add_errcode
    - PyModule_GetDict
    - PyDict_SetItemString
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int errno_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - code
    - ','
    - comment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: add_errcode
    functionSourceFile: /src/cpython/Modules/errnomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_errcode(name, code, comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/errnomodule.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 988
    functionName: PyInit_errno
    functionSourceFile: /src/cpython/Modules/errnomodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_errno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - algorithm
    - ','
    - properties
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: PY_EVP_MD_fetch
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_fetch(algorithm, properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: PY_EVP_MD_up_ref
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_up_ref(md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PY_EVP_MD_free
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_free(md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CTX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: PY_EVP_MD_CTX_md
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_CTX_md(CTX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - algorithm
    - ','
    - properties
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: PY_EVP_MD_fetch
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_fetch(algorithm, properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: PY_EVP_MD_up_ref
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_up_ref(md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: PY_EVP_MD_free
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_free(md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CTX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: PY_EVP_MD_CTX_md
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_EVP_MD_CTX_md(CTX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_flags
      Src: /src/cpython/Modules/_hashopenssl.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - PY_EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: PY_EVP_MD_xof
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_flags
    linkageType: ''
    returnType: int
    signature: int PY_EVP_MD_xof(PY_EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - py_name
    - ','
    - py_alias
    - ','
    - ossl_name
    - ','
    - ossl_nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: PY_HASH_ENTRY
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_HASH_ENTRY(py_name, py_alias, ossl_name, ossl_nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_HashBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:208,1
    - Dst: strlen
      Src: /src/cpython/Modules/_hashopenssl.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: py_hashentry_t_hash_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_HashBuffer
    - strlen
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t py_hashentry_t_hash_name(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/_hashopenssl.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: py_hashentry_t_compare_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int py_hashentry_t_compare_name(const void *key1, const void *key2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:221,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:225,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - entry
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: py_hashentry_t_destroy_value
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PY_EVP_MD_free
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void py_hashentry_t_destroy_value(void *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/_hashopenssl.c:234,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_hashopenssl.c:246,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hashopenssl.c:250,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_hashopenssl.c:252,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:253,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_hashopenssl.c:259,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:260,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_hashopenssl.c:269,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 271
    functionName: py_hashentry_table_new
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_new_full
    - _Py_hashtable_destroy
    - _Py_hashtable_set
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      py_hashentry_table_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_hashopenssl.c:291,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: get_hashlib_state
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _hashlibstate
    signature: '_hashlibstate *

      get_hashlib_state(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: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: HASHobject_CAST
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHobject_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: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: HMACobject_CAST
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HMACobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: py_wrapper_ERR_reason_error_string
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    linkageType: ''
    returnType: char
    signature: 'char *

      py_wrapper_ERR_reason_error_string(unsigned long errcode)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:346,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:347,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:349,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:352,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:355,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_hashopenssl.c:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - exc_type
    - exc_text
    - lib
    - reason
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts:
    - condition: (exc_type != NULL)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (exc_text != NULL)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 360
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 360
    functionName: set_exception_with_ssl_errinfo
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void set_exception_with_ssl_errinfo(PyObject *exc_type, PyObject *exc_text,\n
      \                              const char *lib, const char *reason)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:367,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:368,1
    - Dst: ERR_lib_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:371,1
    - Dst: ERR_func_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:376,1
    - Dst: py_wrapper_ERR_reason_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:378,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:381,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:384,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - exc_type
    - errcode
    argTypes:
    - PyObject*
    - unsigned long
    assertStmts:
    - condition: (exc_type != NULL)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (errcode != 0)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 389
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 389
    functionName: set_ssl_exception_from_errcode
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - py_wrapper_ERR_reason_error_string
    - ERR_lib_error_string
    - PyErr_Format
    - ERR_func_error_string
    - assert
    linkageType: ''
    returnType: void
    signature: void set_ssl_exception_from_errcode(PyObject *exc_type, unsigned long
      errcode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_hashopenssl.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - errcode
    - default_exc_type
    argTypes:
    - unsigned long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: get_smart_ssl_exception_type
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_smart_ssl_exception_type(unsigned long errcode, PyObject *default_exc_type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:417,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:418,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:420,1
    - Dst: set_ssl_exception_from_errcode
      Src: /src/cpython/Modules/_hashopenssl.c:421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - exc_type
    - fallback_message
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (fallback_message != NULL)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: raise_ssl_error
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_peek_last_error
    - PyErr_SetString
    - set_ssl_exception_from_errcode
    - assert
    linkageType: ''
    returnType: void
    signature: void raise_ssl_error(PyObject *exc_type, const char *fallback_message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:432,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:433,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:435,1
    - Dst: set_ssl_exception_from_errcode
      Src: /src/cpython/Modules/_hashopenssl.c:436,1
    - Dst: va_start
      Src: /src/cpython/Modules/_hashopenssl.c:440,1
    - Dst: PyErr_FormatV
      Src: /src/cpython/Modules/_hashopenssl.c:441,1
    - Dst: va_end
      Src: /src/cpython/Modules/_hashopenssl.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - exc_type
    - fallback_format
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (fallback_format != NULL)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 444
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 444
    functionName: raise_ssl_error_f
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_peek_last_error
    - PyErr_FormatV
    - va_start
    - set_ssl_exception_from_errcode
    - assert
    - va_end
    linkageType: ''
    returnType: void
    signature: void raise_ssl_error_f(PyObject *exc_type, const char *fallback_format,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:450,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:452,1
    - Dst: get_smart_ssl_exception_type
      Src: /src/cpython/Modules/_hashopenssl.c:453,1
    - Dst: set_ssl_exception_from_errcode
      Src: /src/cpython/Modules/_hashopenssl.c:454,1
    - Dst: va_start
      Src: /src/cpython/Modules/_hashopenssl.c:458,1
    - Dst: PyErr_FormatV
      Src: /src/cpython/Modules/_hashopenssl.c:459,1
    - Dst: va_end
      Src: /src/cpython/Modules/_hashopenssl.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - exc_type
    - fallback_format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 462
    functionName: raise_smart_ssl_error_f
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_peek_last_error
    - PyErr_FormatV
    - va_start
    - set_ssl_exception_from_errcode
    - get_smart_ssl_exception_type
    - va_end
    linkageType: ''
    returnType: void
    signature: void raise_smart_ssl_error_f(PyObject *exc_type, const char *fallback_format,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise_ssl_error
      Src: /src/cpython/Modules/_hashopenssl.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: notify_ssl_error_occurred
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_ssl_error
    linkageType: ''
    returnType: void
    signature: void notify_ssl_error_occurred(const char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise_ssl_error_f
      Src: /src/cpython/Modules/_hashopenssl.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: notify_ssl_error_occurred_in
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_ssl_error_f
    linkageType: ''
    returnType: void
    signature: void notify_ssl_error_occurred_in(const char *funcname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise_smart_ssl_error_f
      Src: /src/cpython/Modules/_hashopenssl.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: notify_smart_ssl_error_occurred_in
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_smart_ssl_error_f
    linkageType: ''
    returnType: void
    signature: void notify_smart_ssl_error_occurred_in(const char *funcname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:498,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_hashopenssl.c:499,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:501,1
    - Dst: ERR_lib_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:503,1
    - Dst: set_exception_with_ssl_errinfo
      Src: /src/cpython/Modules/_hashopenssl.c:504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:505,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:510,1
    - Dst: ERR_lib_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:512,1
    - Dst: ERR_reason_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:513,1
    - Dst: set_exception_with_ssl_errinfo
      Src: /src/cpython/Modules/_hashopenssl.c:514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:515,1
    - Dst: raise_ssl_error_f
      Src: /src/cpython/Modules/_hashopenssl.c:520,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:523,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - exc_type
    - fallback_format
    - format_arg
    argTypes:
    - PyObject*
    - char*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 524
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 524
    functionName: raise_unsupported_algorithm_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_ssl_error_f
    - set_exception_with_ssl_errinfo
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - ERR_peek_last_error
    - ERR_GET_REASON
    - ERR_lib_error_string
    - ERR_reason_error_string
    - assert
    linkageType: ''
    returnType: void
    signature: "void raise_unsupported_algorithm_impl(PyObject *exc_type,\n                                 const
      char *fallback_format,\n                                 const void *format_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise_unsupported_algorithm_impl
      Src: /src/cpython/Modules/_hashopenssl.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - digestmod
    argTypes:
    - _hashlibstate*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: raise_unsupported_algorithm_error
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_unsupported_algorithm_impl
    linkageType: ''
    returnType: void
    signature: void raise_unsupported_algorithm_error(_hashlibstate *state, PyObject
      *digestmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise_unsupported_algorithm_impl
      Src: /src/cpython/Modules/_hashopenssl.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - name
    argTypes:
    - _hashlibstate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 548
    functionName: raise_unsupported_str_algorithm_error
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_unsupported_algorithm_impl
    linkageType: ''
    returnType: void
    signature: void raise_unsupported_str_algorithm_error(_hashlibstate *state, const
      char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 578
    functionName: get_hashentry_by_nid
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: py_hashentry_t
    signature: 'py_hashentry_t *

      get_hashentry_by_nid(int nid)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_hashopenssl.c:588,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:591,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:591,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_hashopenssl.c:592,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:592,1
    - Dst: OBJ_nid2sn
      Src: /src/cpython/Modules/_hashopenssl.c:596,1
    - Dst: raise_ssl_error_f
      Src: /src/cpython/Modules/_hashopenssl.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts:
    - condition: (ERR_peek_last_error() != 0)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 606
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 606
    functionName: get_asn1_utf8name_by_nid
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_ssl_error_f
    - OBJ_nid2ln
    - ERR_peek_last_error
    - ERR_GET_REASON
    - OBJ_nid2sn
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      get_asn1_utf8name_by_nid(int nid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_hashentry_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:616,1
    - Dst: get_asn1_utf8name_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 4
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: get_hashlib_utf8name_by_nid
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_asn1_utf8name_by_nid
    - get_hashentry_by_nid
    linkageType: ''
    returnType: char
    signature: 'char *

      get_hashlib_utf8name_by_nid(int nid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:624,1
    - Dst: get_hashlib_utf8name_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:625,1
    - Dst: EVP_MD_nid
      Src: /src/cpython/Modules/_hashopenssl.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts:
    - condition: (md != NULL)
      pos:
        line_end: 623
        line_start: 623
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 5
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: get_hashlib_utf8name_by_evp_md
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_utf8name_by_nid
    - EVP_MD_nid
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      get_hashlib_utf8name_by_evp_md(const EVP_MD *md)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_hashopenssl.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - py_ht
    argTypes:
    - Py_hash_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 646
    functionName: disable_fips_property
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int disable_fips_property(Py_hash_type py_ht)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_hashopenssl.c:658,1
    - Dst: disable_fips_property
      Src: /src/cpython/Modules/_hashopenssl.c:661,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_hashopenssl.c:662,1
    - Dst: PY_EVP_MD_fetch
      Src: /src/cpython/Modules/_hashopenssl.c:664,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Modules/_hashopenssl.c:667,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_hashopenssl.c:674,1
    - Dst: PY_EVP_MD_fetch
      Src: /src/cpython/Modules/_hashopenssl.c:676,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Modules/_hashopenssl.c:679,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:686,1
    - Dst: PY_EVP_MD_up_ref
      Src: /src/cpython/Modules/_hashopenssl.c:688,1
    - Dst: disable_fips_property
      Src: /src/cpython/Modules/_hashopenssl.c:693,1
    - Dst: PY_EVP_MD_fetch
      Src: /src/cpython/Modules/_hashopenssl.c:695,1
    - Dst: raise_unsupported_str_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:698,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - state
    - name
    - py_ht
    argTypes:
    - _hashlibstate*
    - char*
    - Py_hash_type
    assertStmts:
    - condition: (other_digest == NULL || other_digest == digest)
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 702
      start: 653
    functionDepth: 5
    functionLinenumber: 653
    functionLinenumberEnd: 702
    functionName: get_openssl_evp_md_by_utf8name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - assert
    - PY_EVP_MD_fetch
    - _Py_atomic_exchange_ptr
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - raise_unsupported_str_algorithm_error
    - PY_EVP_MD_up_ref
    - _Py_hashtable_get
    - disable_fips_property
    linkageType: ''
    returnType: PY_EVP_MD
    signature: "PY_EVP_MD *\nget_openssl_evp_md_by_utf8name(_hashlibstate *state,
      const char *name,\n                               Py_hash_type py_ht)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_hashopenssl.c:718,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_hashopenssl.c:719,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:723,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_hashopenssl.c:724,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_hashopenssl.c:725,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:728,1
    - Dst: raise_unsupported_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:729,1
    - Dst: get_openssl_evp_md_by_utf8name
      Src: /src/cpython/Modules/_hashopenssl.c:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - state
    - digestmod
    - py_ht
    argTypes:
    - _hashlibstate*
    - PyObject*
    - Py_hash_type
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 734
      start: 714
    functionDepth: 6
    functionLinenumber: 714
    functionLinenumberEnd: 734
    functionName: get_openssl_evp_md
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - raise_unsupported_algorithm_error
    - PyErr_Occurred
    - PyUnicode_AsUTF8
    - PyUnicode_Check
    - get_openssl_evp_md_by_utf8name
    - assert
    linkageType: ''
    returnType: PY_EVP_MD
    signature: 'PY_EVP_MD *

      get_openssl_evp_md(_hashlibstate *state, PyObject *digestmod, Py_hash_type py_ht)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:742,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 748
    functionName: py_wrapper_EVP_MD_CTX_new
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - EVP_MD_CTX_new
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: 'EVP_MD_CTX *

      py_wrapper_EVP_MD_CTX_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_hashopenssl.c:755,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/_hashopenssl.c:759,1
    - Dst: py_wrapper_EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 768
    functionName: new_hash_object
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - py_wrapper_EVP_MD_CTX_new
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: HASHobject
    signature: 'HASHobject *

      new_hash_object(PyTypeObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_hashopenssl.c:779,1
    - Dst: EVP_DigestUpdate
      Src: /src/cpython/Modules/_hashopenssl.c:780,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:781,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - vp
    - len
    argTypes:
    - HASHobject*
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 770
    functionDepth: 4
    functionLinenumber: 770
    functionLinenumberEnd: 788
    functionName: _hashlib_HASH_hash
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - Py_SAFE_DOWNCAST
    - notify_ssl_error_occurred_in
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int _hashlib_HASH_hash(HASHobject *self, const void *vp, Py_ssize_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:796,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:797,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_hashopenssl.c:798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 800
    functionName: _hashlib_HASH_dealloc
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHobject_CAST
    - Py_DECREF
    - PyObject_Free
    - EVP_MD_CTX_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _hashlib_HASH_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:806,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/cpython/Modules/_hashopenssl.c:807,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:808,1
    - Dst: notify_smart_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:810,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - new_ctx_p
    argTypes:
    - HASHobject*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 814
    functionName: _hashlib_HASH_copy_locked
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - notify_smart_ssl_error_occurred_in
    - EVP_MD_CTX_copy
    linkageType: ''
    returnType: int
    signature: int _hashlib_HASH_copy_locked(HASHobject *self, EVP_MD_CTX *new_ctx_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_hash_object
      Src: /src/cpython/Modules/_hashopenssl.c:830,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:830,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - HASHobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 824
    functionDepth: 5
    functionLinenumber: 824
    functionLinenumberEnd: 838
    functionName: _hashlib_HASH_copy_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - new_hash_object
    - Py_DECREF
    - Py_TYPE
    - _hashlib_HASH_copy_locked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_copy_impl(HASHobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: py_wrapper_EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:843,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:847,1
    - Dst: EVP_MD_CTX_size
      Src: /src/cpython/Modules/_hashopenssl.c:850,1
    - Dst: EVP_DigestFinal
      Src: /src/cpython/Modules/_hashopenssl.c:851,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:852,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:852,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:855,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - digest
    argTypes:
    - HASHobject*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 840
    functionDepth: 5
    functionLinenumber: 840
    functionLinenumberEnd: 861
    functionName: _hashlib_HASH_digest_compute
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - EVP_DigestFinal
    - EVP_MD_CTX_free
    - EVP_MD_CTX_size
    - _hashlib_HASH_copy_locked
    - py_wrapper_EVP_MD_CTX_new
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _hashlib_HASH_digest_compute(HASHobject *self, unsigned
      char *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HASH_digest_compute
      Src: /src/cpython/Modules/_hashopenssl.c:874,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HASHobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 869
    functionDepth: 6
    functionLinenumber: 869
    functionLinenumberEnd: 876
    functionName: _hashlib_HASH_digest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_digest_compute
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_digest_impl(HASHobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HASH_digest_compute
      Src: /src/cpython/Modules/_hashopenssl.c:889,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/_hashopenssl.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HASHobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 884
    functionDepth: 6
    functionLinenumber: 884
    functionLinenumberEnd: 891
    functionName: _hashlib_HASH_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_digest_compute
    - _Py_strhex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_hexdigest_impl(HASHobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/_hashopenssl.c:908,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/_hashopenssl.c:909,1
    - Dst: _hashlib_HASH_hash
      Src: /src/cpython/Modules/_hashopenssl.c:911,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - HASHobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 902
    functionDepth: 5
    functionLinenumber: 902
    functionLinenumberEnd: 915
    functionName: _hashlib_HASH_update_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_hash
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_update_impl(HASHobject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:928,1
    - Dst: EVP_MD_CTX_block_size
      Src: /src/cpython/Modules/_hashopenssl.c:929,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: _hashlib_HASH_get_blocksize
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHobject_CAST
    - EVP_MD_CTX_block_size
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_get_blocksize(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:936,1
    - Dst: EVP_MD_CTX_size
      Src: /src/cpython/Modules/_hashopenssl.c:937,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 939
    functionName: _hashlib_HASH_get_digestsize
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHobject_CAST
    - EVP_MD_CTX_size
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_get_digestsize(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASHobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:944,1
    - Dst: PY_EVP_MD_CTX_md
      Src: /src/cpython/Modules/_hashopenssl.c:945,1
    - Dst: notify_ssl_error_occurred
      Src: /src/cpython/Modules/_hashopenssl.c:947,1
    - Dst: get_hashlib_utf8name_by_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:950,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:951,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:951,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_hashopenssl.c:952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (name != NULL || PyErr_Occurred())
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 953
      start: 941
    functionDepth: 6
    functionLinenumber: 941
    functionLinenumberEnd: 953
    functionName: _hashlib_HASH_get_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHobject_CAST
    - PyErr_Occurred
    - notify_ssl_error_occurred
    - get_hashlib_utf8name_by_evp_md
    - PY_EVP_MD_CTX_md
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_get_name(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HASH_get_name
      Src: /src/cpython/Modules/_hashopenssl.c:966,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:970,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 963
    functionDepth: 7
    functionLinenumber: 963
    functionLinenumberEnd: 974
    functionName: _hashlib_HASH_repr
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_get_name
    - Py_DECREF
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_repr(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1033,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_hashopenssl.c:1038,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:1041,1
    - Dst: py_wrapper_EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:1046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:1048,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:1052,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/cpython/Modules/_hashopenssl.c:1055,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_hashopenssl.c:1056,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1059,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1059,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:1067,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1068,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - HASHobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1025
    functionDepth: 5
    functionLinenumber: 1025
    functionLinenumberEnd: 1070
    functionName: _hashlib_HASHXOF_digest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - Py_DECREF
    - EVP_MD_CTX_free
    - Py_GetConstant
    - EVP_DigestFinalXOF
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - _hashlib_HASH_copy_locked
    - py_wrapper_EVP_MD_CTX_new
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASHXOF_digest_impl(HASHobject *self, Py_ssize_t length)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1089,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_hashopenssl.c:1094,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_hashopenssl.c:1097,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:1099,1
    - Dst: py_wrapper_EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:1103,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:1105,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:1110,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/cpython/Modules/_hashopenssl.c:1113,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1114,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1114,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1118,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/_hashopenssl.c:1120,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:1121,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:1125,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - HASHobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1080
    functionDepth: 5
    functionLinenumber: 1080
    functionLinenumberEnd: 1128
    functionName: _hashlib_HASHXOF_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - EVP_MD_CTX_free
    - Py_GetConstant
    - EVP_DigestFinalXOF
    - PyErr_SetString
    - _Py_strhex
    - PyMem_Free
    - _hashlib_HASH_copy_locked
    - py_wrapper_EVP_MD_CTX_new
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASHXOF_hexdigest_impl(HASHobject *self, Py_ssize_t length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1142
    functionName: _hashlib_HASHXOF_digest_size
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_HASHXOF_digest_size(PyObject *Py_UNUSED(self),\n
      \                            void *Py_UNUSED(closure))"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/_hashopenssl.c:1199,1
    - Dst: get_openssl_evp_md_by_utf8name
      Src: /src/cpython/Modules/_hashopenssl.c:1203,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:1208,1
    - Dst: new_hash_object
      Src: /src/cpython/Modules/_hashopenssl.c:1209,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/cpython/Modules/_hashopenssl.c:1218,1
    - Dst: EVP_DigestInit_ex
      Src: /src/cpython/Modules/_hashopenssl.c:1222,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1224,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1224,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:1225,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/_hashopenssl.c:1232,1
    - Dst: _hashlib_HASH_hash
      Src: /src/cpython/Modules/_hashopenssl.c:1234,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1237,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:1238,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:1245,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:1248,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - state
    - digestname
    - data_obj
    - usedforsecurity
    argTypes:
    - _hashlibstate*
    - char*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1236
        line_start: 1236
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1252
      start: 1189
    functionDepth: 6
    functionLinenumber: 1189
    functionLinenumberEnd: 1252
    functionName: _hashlib_HASH
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - new_hash_object
    - _hashlib_HASH_hash
    - EVP_MD_CTX_set_flags
    - PyErr_Occurred
    - PY_EVP_MD_xof
    - PY_EVP_MD_free
    - GET_BUFFER_VIEW_OR_ERROUT
    - EVP_DigestInit_ex
    - PyBuffer_Release
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - get_openssl_evp_md_by_utf8name
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_HASH(_hashlibstate *state, const char *digestname,
      PyObject *data_obj,\n              int usedforsecurity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - MODULE
    - ','
    - NAME
    - ','
    - DATA
    - ','
    - STRING
    - ','
    - USEDFORSECURITY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1259
    functionName: CALL_HASHLIB_NEW
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_HASHLIB_NEW(MODULE, NAME, DATA, STRING, USEDFORSECURITY)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/_hashopenssl.c:1285,1
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:1288,1
    - Dst: _hashlib_HASH
      Src: /src/cpython/Modules/_hashopenssl.c:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - module
    - name
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1279
    functionDepth: 7
    functionLinenumber: 1279
    functionLinenumberEnd: 1290
    functionName: _hashlib_HASH_new_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hashlib_HASH
    - _Py_hashlib_data_argument
    - get_hashlib_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_HASH_new_impl(PyObject *module, const char *name,
      PyObject *data,\n                       int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1311
    functionName: _hashlib_openssl_md5_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_md5_impl(PyObject *module, PyObject *data,\n
      \                         int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1332
    functionName: _hashlib_openssl_sha1_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha1_impl(PyObject *module, PyObject
      *data,\n                           int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1353
    functionName: _hashlib_openssl_sha224_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha224_impl(PyObject *module, PyObject
      *data,\n                             int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1374
    functionName: _hashlib_openssl_sha256_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha256_impl(PyObject *module, PyObject
      *data,\n                             int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1395
    functionName: _hashlib_openssl_sha384_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha384_impl(PyObject *module, PyObject
      *data,\n                             int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1416
    functionName: _hashlib_openssl_sha512_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha512_impl(PyObject *module, PyObject
      *data,\n                             int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1439
    functionName: _hashlib_openssl_sha3_224_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha3_224_impl(PyObject *module, PyObject
      *data,\n                               int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1459
    functionName: _hashlib_openssl_sha3_256_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha3_256_impl(PyObject *module, PyObject
      *data,\n                               int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1479
    functionName: _hashlib_openssl_sha3_384_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha3_384_impl(PyObject *module, PyObject
      *data,\n                               int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1499
    functionName: _hashlib_openssl_sha3_512_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_sha3_512_impl(PyObject *module, PyObject
      *data,\n                               int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1522
    functionName: _hashlib_openssl_shake_128_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_shake_128_impl(PyObject *module, PyObject
      *data,\n                                int usedforsecurity, PyObject *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_HASHLIB_NEW
      Src: /src/cpython/Modules/_hashopenssl.c:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1543
    functionName: _hashlib_openssl_shake_256_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - CALL_HASHLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_openssl_shake_256_impl(PyObject *module, PyObject
      *data,\n                                int usedforsecurity, PyObject *string)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:1567,1
    - Dst: get_openssl_evp_md_by_utf8name
      Src: /src/cpython/Modules/_hashopenssl.c:1573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1580,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1586,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1592,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1597,1
    - Dst: EVP_MD_size
      Src: /src/cpython/Modules/_hashopenssl.c:1603,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_hashopenssl.c:1605,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1606,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1611,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1617,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:1622,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_hashopenssl.c:1626,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/cpython/Modules/_hashopenssl.c:1629,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:1636,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1637,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1637,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:1643,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    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: 1646
      start: 1561
    functionDepth: 6
    functionLinenumber: 1561
    functionLinenumberEnd: 1646
    functionName: pbkdf2_hmac_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - get_hashlib_state
    - Py_CLEAR
    - PyLong_AsLong
    - PyErr_Occurred
    - PKCS5_PBKDF2_HMAC
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - EVP_MD_size
    - PY_EVP_MD_free
    - get_openssl_evp_md_by_utf8name
    - PyBytes_AS_STRING
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1693,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1698,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1703,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:1708,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:1715,1
    - Dst: EVP_PBE_scrypt
      Src: /src/cpython/Modules/_hashopenssl.c:1722,1
    - Dst: notify_ssl_error_occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1725,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:1730,1
    - Dst: EVP_PBE_scrypt
      Src: /src/cpython/Modules/_hashopenssl.c:1736,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_hashopenssl.c:1740,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:1745,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1746,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1746,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 8
    argNames:
    - module
    - password
    - salt
    - n
    - r
    - p
    - maxmem
    - dklen
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    - unsigned long
    - unsigned long
    - unsigned long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1683
    functionDepth: 4
    functionLinenumber: 1683
    functionLinenumberEnd: 1750
    functionName: _hashlib_scrypt_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - Py_DECREF
    - PyErr_SetString
    - notify_ssl_error_occurred
    - PyBytes_FromStringAndSize
    - EVP_PBE_scrypt
    - PyErr_Format
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_scrypt_impl(PyObject *module, Py_buffer *password,
      Py_buffer *salt,\n                     unsigned long n, unsigned long r, unsigned
      long p,\n                     long maxmem, long dklen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:1773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1781,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1786,1
    - Dst: get_openssl_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:1791,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:1797,1
    - Dst: HMAC
      Src: /src/cpython/Modules/_hashopenssl.c:1798,1
    - Dst: raise_unsupported_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:1810,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1813,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1813,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:1817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - module
    - key
    - msg
    - digest
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1768
    functionDepth: 7
    functionLinenumber: 1768
    functionLinenumberEnd: 1818
    functionName: _hashlib_hmac_singleshot_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - get_hashlib_state
    - raise_unsupported_algorithm_error
    - HMAC
    - PyErr_SetString
    - PY_EVP_MD_xof
    - PyBytes_FromStringAndSize
    - get_openssl_evp_md
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer
      *key,\n                              Py_buffer *msg, PyObject *digest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:1827,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1833
    functionName: py_openssl_wrapper_HMAC_CTX_new
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_new
    - PyErr_NoMemory
    linkageType: ''
    returnType: HMAC_CTX
    signature: 'HMAC_CTX *

      py_openssl_wrapper_HMAC_CTX_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:1840,1
    - Dst: notify_ssl_error_occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1837
    functionDepth: 4
    functionLinenumber: 1837
    functionLinenumberEnd: 1845
    functionName: _hashlib_hmac_get_md
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - notify_ssl_error_occurred
    - HMAC_CTX_get_md
    linkageType: ''
    returnType: EVP_MD
    signature: 'EVP_MD *

      _hashlib_hmac_get_md(HMACobject *self)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:1862,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1869,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1875,1
    - Dst: get_openssl_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:1880,1
    - Dst: py_openssl_wrapper_HMAC_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:1885,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:1887,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:1891,1
    - Dst: HMAC_Init_ex
      Src: /src/cpython/Modules/_hashopenssl.c:1892,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:1893,1
    - Dst: raise_unsupported_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:1897,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1900,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1900,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_hashopenssl.c:1905,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/_hashopenssl.c:1912,1
    - Dst: _hmac_update
      Src: /src/cpython/Modules/_hashopenssl.c:1915,1
    - Dst: HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1922,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_hashopenssl.c:1923,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - module
    - key
    - msg_obj
    - digestmod
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1857
    functionDepth: 7
    functionLinenumber: 1857
    functionLinenumberEnd: 1925
    functionName: _hashlib_hmac_new_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hmac_update
    - py_openssl_wrapper_HMAC_CTX_new
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    - Py_XDECREF
    - get_hashlib_state
    - raise_unsupported_algorithm_error
    - PyObject_New
    - PyErr_SetString
    - HMAC_Init_ex
    - PY_EVP_MD_xof
    - HMAC_CTX_free
    - PY_EVP_MD_free
    - get_openssl_evp_md
    - HASHLIB_INIT_MUTEX
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_hmac_new_impl(PyObject *module, Py_buffer *key,
      PyObject *msg_obj,\n                       PyObject *digestmod)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:1932,1
    - Dst: HMAC_CTX_copy
      Src: /src/cpython/Modules/_hashopenssl.c:1933,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:1934,1
    - Dst: notify_smart_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1936,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - new_ctx_p
    - self
    argTypes:
    - HMAC_CTX*
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1928
    functionDepth: 4
    functionLinenumber: 1928
    functionLinenumberEnd: 1940
    functionName: locked_HMAC_CTX_copy
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - HMAC_CTX_copy
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - notify_smart_ssl_error_occurred_in
    linkageType: ''
    returnType: int
    signature: int locked_HMAC_CTX_copy(HMAC_CTX *new_ctx_p, HMACobject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_hmac_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:1952,1
    - Dst: EVP_MD_size
      Src: /src/cpython/Modules/_hashopenssl.c:1956,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1958,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1959,1
    - Dst: raise_ssl_error
      Src: /src/cpython/Modules/_hashopenssl.c:1962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts:
    - condition: (digest_size >= 0)
      pos:
        line_end: 1957
        line_start: 1957
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (digest_size <= (int)EVP_MAX_MD_SIZE)
      pos:
        line_end: 1958
        line_start: 1958
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1966
      start: 1949
    functionDepth: 5
    functionLinenumber: 1949
    functionLinenumberEnd: 1966
    functionName: _hashlib_hmac_digest_size
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - assert
    - raise_ssl_error
    - EVP_MD_size
    - _hashlib_hmac_get_md
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _hashlib_hmac_digest_size(HMACobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/_hashopenssl.c:1974,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/_hashopenssl.c:1975,1
    - Dst: HMAC_Update
      Src: /src/cpython/Modules/_hashopenssl.c:1977,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:1981,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1984,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - HMACobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1968
    functionDepth: 4
    functionLinenumber: 1968
    functionLinenumberEnd: 1988
    functionName: _hmac_update
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 1
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - HMAC_Update
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROR
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int _hmac_update(HMACobject *self, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: py_openssl_wrapper_HMAC_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:2002,1
    - Dst: locked_HMAC_CTX_copy
      Src: /src/cpython/Modules/_hashopenssl.c:2006,1
    - Dst: HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2007,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_hashopenssl.c:2011,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2011,1
    - Dst: HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2013,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/_hashopenssl.c:2017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1996
    functionDepth: 5
    functionLinenumber: 1996
    functionLinenumberEnd: 2020
    functionName: _hashlib_HMAC_copy_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - py_openssl_wrapper_HMAC_CTX_new
    - PyObject_New
    - locked_HMAC_CTX_copy
    - HMAC_CTX_free
    - HASHLIB_INIT_MUTEX
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_copy_impl(HMACobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMACobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:2025,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2026,1
    - Dst: HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2028,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_hashopenssl.c:2031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2033
    functionName: _hmac_dealloc
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HMACobject_CAST
    - PyObject_Free
    - Py_DECREF
    - HMAC_CTX_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _hmac_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMACobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:2039,1
    - Dst: _hashlib_hmac_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:2040,1
    - Dst: get_hashlib_utf8name_by_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:2041,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2043,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2043,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:2046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2042
        line_start: 2042
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2047
      start: 2035
    functionDepth: 6
    functionLinenumber: 2035
    functionLinenumberEnd: 2047
    functionName: _hmac_repr
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HMACobject_CAST
    - _hashlib_hmac_get_md
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - get_hashlib_utf8name_by_evp_md
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_update
      Src: /src/cpython/Modules/_hashopenssl.c:2060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - msg
    argTypes:
    - HMACobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2056
    functionDepth: 5
    functionLinenumber: 2056
    functionLinenumberEnd: 2064
    functionName: _hashlib_HMAC_update_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hmac_update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_update_impl(HMACobject *self, PyObject *msg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_hmac_digest_size
      Src: /src/cpython/Modules/_hashopenssl.c:2077,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2078,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2080,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2080,1
    - Dst: py_openssl_wrapper_HMAC_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:2083,1
    - Dst: locked_HMAC_CTX_copy
      Src: /src/cpython/Modules/_hashopenssl.c:2087,1
    - Dst: HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2088,1
    - Dst: HMAC_Final
      Src: /src/cpython/Modules/_hashopenssl.c:2091,1
    - Dst: HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2092,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2094,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - buf
    argTypes:
    - HMACobject*
    - unsigned char*
    assertStmts:
    - condition: (digest_size <= EVP_MAX_MD_SIZE)
      pos:
        line_end: 2077
        line_start: 2077
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2079
        line_start: 2079
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2098
      start: 2074
    functionDepth: 6
    functionLinenumber: 2074
    functionLinenumberEnd: 2098
    functionName: _hmac_digest
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - py_openssl_wrapper_HMAC_CTX_new
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    - PyErr_Occurred
    - locked_HMAC_CTX_copy
    - HMAC_Final
    - HMAC_CTX_free
    - _hashlib_hmac_digest_size
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _hmac_digest(HMACobject *self, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_digest
      Src: /src/cpython/Modules/_hashopenssl.c:2110,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2105
    functionDepth: 7
    functionLinenumber: 2105
    functionLinenumberEnd: 2112
    functionName: _hashlib_HMAC_digest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _hmac_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_digest_impl(HMACobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_digest
      Src: /src/cpython/Modules/_hashopenssl.c:2130,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/_hashopenssl.c:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2125
    functionDepth: 7
    functionLinenumber: 2125
    functionLinenumberEnd: 2132
    functionName: _hashlib_HMAC_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - _hmac_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_hexdigest_impl(HMACobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:2137,1
    - Dst: _hashlib_hmac_digest_size
      Src: /src/cpython/Modules/_hashopenssl.c:2138,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2134
    functionDepth: 6
    functionLinenumber: 2134
    functionLinenumberEnd: 2140
    functionName: _hashlib_hmac_get_digest_size
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hashlib_hmac_digest_size
    - HMACobject_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_hmac_get_digest_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:2145,1
    - Dst: _hashlib_hmac_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:2146,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:2147,1
    - Dst: EVP_MD_block_size
      Src: /src/cpython/Modules/_hashopenssl.c:2147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2142
    functionDepth: 5
    functionLinenumber: 2142
    functionLinenumberEnd: 2148
    functionName: _hashlib_hmac_get_block_size
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_block_size
    - HMACobject_CAST
    - _hashlib_hmac_get_md
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_hmac_get_block_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HMACobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:2153,1
    - Dst: _hashlib_hmac_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:2154,1
    - Dst: get_hashlib_utf8name_by_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:2158,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2160,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:2163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2159
        line_start: 2159
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2164
      start: 2150
    functionDepth: 6
    functionLinenumber: 2150
    functionLinenumberEnd: 2164
    functionName: _hashlib_hmac_get_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HMACobject_CAST
    - _hashlib_hmac_get_md
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - get_hashlib_utf8name_by_evp_md
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_hmac_get_name(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2233,1
    - Dst: EVP_MD_nid
      Src: /src/cpython/Modules/_hashopenssl.c:2235,1
    - Dst: get_hashlib_utf8name_by_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:2239,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2240,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2240,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_hashopenssl.c:2241,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_hashopenssl.c:2245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - md
    - from
    - to
    - arg
    argTypes:
    - EVP_MD*
    - char*
    - char*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (name != NULL || PyErr_Occurred())
      pos:
        line_end: 2239
        line_start: 2239
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2250
      start: 2226
    functionDepth: 6
    functionLinenumber: 2226
    functionLinenumberEnd: 2250
    functionName: _openssl_hash_name_mapper
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - get_hashlib_utf8name_by_evp_md
    - EVP_MD_nid
    - PySet_Add
    - PyUnicode_FromString
    - assert
    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/cpython/Modules/_hashopenssl.c:2258,1
    - Dst: EVP_MD_do_all_provided
      Src: /src/cpython/Modules/_hashopenssl.c:2267,1
    - Dst: EVP_MD_do_all
      Src: /src/cpython/Modules/_hashopenssl.c:2269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2273,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_hashopenssl.c:2277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2278
    functionName: hashlib_md_meth_names
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_do_all
    - Py_DECREF
    - PyFrozenSet_New
    - EVP_MD_do_all_provided
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int hashlib_md_meth_names(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_default_properties_is_fips_enabled
      Src: /src/cpython/Modules/_hashopenssl.c:2299,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:2301,1
    - Dst: FIPS_mode
      Src: /src/cpython/Modules/_hashopenssl.c:2302,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:2303,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2308,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2293
    functionDepth: 4
    functionLinenumber: 2293
    functionLinenumberEnd: 2313
    functionName: _hashlib_get_fips_mode_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - notify_ssl_error_occurred_in
    - ERR_clear_error
    - ERR_peek_last_error
    - EVP_default_properties_is_fips_enabled
    - FIPS_mode
    linkageType: ''
    returnType: int
    signature: int _hashlib_get_fips_mode_impl(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/cpython/Modules/_hashopenssl.c:2333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    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: 2336
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2336
    functionName: _tscmp
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 1
    functionsReached:
    - CRYPTO_memcmp
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_hashopenssl.c:2367,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_hashopenssl.c:2367,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_hashopenssl.c:2368,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_hashopenssl.c:2368,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2369,1
    - Dst: _tscmp
      Src: /src/cpython/Modules/_hashopenssl.c:2375,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_hashopenssl.c:2375,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_hashopenssl.c:2376,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_hashopenssl.c:2377,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_hashopenssl.c:2378,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2385,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:2386,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2389,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2389,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2393,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2397,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2399,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2403,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2404,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2408,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2410,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2411,1
    - Dst: _tscmp
      Src: /src/cpython/Modules/_hashopenssl.c:2415,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2420,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2421,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:2424,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2425
    functionName: _hashlib_compare_digest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyObject_CheckBuffer
    - PyBool_FromLong
    - PyErr_SetString
    - PyUnicode_IS_ASCII
    - Py_TYPE
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyUnicode_DATA
    - PyErr_Format
    - PyUnicode_Check
    - _tscmp
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2458,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2459,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2460,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2462,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2464,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2455
    functionDepth: 2
    functionLinenumber: 2455
    functionLinenumberEnd: 2467
    functionName: hashlib_traverse
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hashlib_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2472,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2473,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2474,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2476,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2478,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2479,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_hashopenssl.c:2482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2469
    functionDepth: 2
    functionLinenumber: 2469
    functionLinenumberEnd: 2487
    functionName: hashlib_clear
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_destroy
    - Py_CLEAR
    - get_hashlib_state
    linkageType: ''
    returnType: int
    signature: int hashlib_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashlib_clear
      Src: /src/cpython/Modules/_hashopenssl.c:2492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2489
    functionDepth: 3
    functionLinenumber: 2489
    functionLinenumberEnd: 2493
    functionName: hashlib_free
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - hashlib_clear
    linkageType: ''
    returnType: void
    signature: void hashlib_free(void *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2499,1
    - Dst: py_hashentry_table_new
      Src: /src/cpython/Modules/_hashopenssl.c:2501,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:2503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2496
    functionDepth: 2
    functionLinenumber: 2496
    functionLinenumberEnd: 2507
    functionName: hashlib_init_hashtable
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - py_hashentry_table_new
    - get_hashlib_state
    linkageType: ''
    returnType: int
    signature: int hashlib_init_hashtable(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2512,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_hashopenssl.c:2514,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_hashopenssl.c:2518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2509
    functionDepth: 2
    functionLinenumber: 2509
    functionLinenumberEnd: 2522
    functionName: hashlib_init_HASH_type
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyType_FromSpec
    - get_hashlib_state
    linkageType: ''
    returnType: int
    signature: int hashlib_init_HASH_type(PyObject *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2528,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_hashopenssl.c:2534,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_hashopenssl.c:2540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2524
    functionDepth: 2
    functionLinenumber: 2524
    functionLinenumberEnd: 2545
    functionName: hashlib_init_HASHXOF_type
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyType_FromSpecWithBases
    - get_hashlib_state
    linkageType: ''
    returnType: int
    signature: int hashlib_init_HASHXOF_type(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2550,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_hashopenssl.c:2552,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_hashopenssl.c:2556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2547
    functionDepth: 2
    functionLinenumber: 2547
    functionLinenumberEnd: 2560
    functionName: hashlib_init_hmactype
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyType_FromSpec
    - get_hashlib_state
    linkageType: ''
    returnType: int
    signature: int hashlib_init_hmactype(PyObject *module)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2571,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_hashopenssl.c:2573,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_hashopenssl.c:2578,1
    - Dst: strncmp
      Src: /src/cpython/Modules/_hashopenssl.c:2584,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_hashopenssl.c:2587,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_hashopenssl.c:2591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2593,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_hashopenssl.c:2596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2598,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_hashopenssl.c:2604,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Modules/_hashopenssl.c:2605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2562
    functionDepth: 2
    functionLinenumber: 2562
    functionLinenumberEnd: 2606
    functionName: hashlib_init_constructors
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyDictProxy_New
    - Py_DECREF
    - get_hashlib_state
    - strncmp
    - PyObject_GetAttrString
    - PyDict_SetItem
    - PyDict_New
    - PyModule_GetDef
    - PyModule_Add
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int hashlib_init_constructors(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2611,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_hashopenssl.c:2612,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_hashopenssl.c:2617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2608
    functionDepth: 2
    functionLinenumber: 2608
    functionLinenumberEnd: 2622
    functionName: hashlib_exception
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - get_hashlib_state
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int hashlib_exception(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_hashopenssl.c:2627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2624
    functionDepth: 1
    functionLinenumber: 2624
    functionLinenumberEnd: 2633
    functionName: hashlib_constants
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int hashlib_constants(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_hashopenssl.c:2664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2661
    functionDepth: 1
    functionLinenumber: 2661
    functionLinenumberEnd: 2665
    functionName: PyInit__hashlib
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__hashlib(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/cpython/Modules/_statisticsmodule.c:45,1
    - Dst: sqrt
      Src: /src/cpython/Modules/_statisticsmodule.c:74,1
    - Dst: log
      Src: /src/cpython/Modules/_statisticsmodule.c:74,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_statisticsmodule.c:124,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - module
    - p
    - mu
    - sigma
    argTypes:
    - PyObject*
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 126
    functionName: _statistics__normal_dist_inv_cdf_impl
    functionSourceFile: /src/cpython/Modules/_statisticsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - sqrt
    - fabs
    - log
    linkageType: ''
    returnType: double
    signature: "double _statistics__normal_dist_inv_cdf_impl(PyObject *module, double
      p, double mu,\n                                      double sigma)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_statisticsmodule.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: PyInit__statistics
    functionSourceFile: /src/cpython/Modules/_statisticsmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__statistics(void)
  - 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: XxoObject_CAST
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_CAST(op)
  - 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/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/xxlimited_35.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/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    linkageType: ''
    returnType: XxoObject
    signature: 'XxoObject *

      newXxoObject(PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_35.c:46,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited_35.c:47,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited_35.c:47,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited_35.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: Xxo_traverse
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_35.c:55,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited_35.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Xxo_clear
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_35.c:63,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited_35.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: Xxo_finalize
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - XxoObject_CAST
    linkageType: ''
    returnType: void
    signature: void Xxo_finalize(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxlimited_35.c:71,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/xxlimited_35.c:75,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_35.c:76,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_35.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: Xxo_demo
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_demo(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_35.c:89,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/xxlimited_35.c:91,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_35.c:93,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/xxlimited_35.c:95,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/xxlimited_35.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: Xxo_getattro
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_NewRef
    - PyObject_GenericGetAttr
    - XxoObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_getattro(PyObject *op, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_35.c:105,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/xxlimited_35.c:107,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Modules/xxlimited_35.c:113,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/xxlimited_35.c:114,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited_35.c:115,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/xxlimited_35.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - op
    - name
    - v
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 121
    functionName: Xxo_setattr
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyDict_DelItemString
    - PyDict_SetItemString
    - PyDict_New
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_setattr(PyObject *op, char *name, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxlimited_35.c:156,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxlimited_35.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: xx_foo
    functionSourceFile: /src/cpython/Modules/xxlimited_35.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/cpython/Modules/xxlimited_35.c:170,1
    - Dst: newXxoObject
      Src: /src/cpython/Modules/xxlimited_35.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: xx_new
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - newXxoObject
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_new(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxlimited_35.c:185,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_35.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: xx_roj
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyArg_ParseTuple
    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: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: null_richcompare
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/xxlimited_35.c:260,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/xxlimited_35.c:265,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/xxlimited_35.c:266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited_35.c:267,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/xxlimited_35.c:272,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/xxlimited_35.c:276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited_35.c:277,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/xxlimited_35.c:282,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/xxlimited_35.c:286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited_35.c:287,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/xxlimited_35.c:292,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/xxlimited_35.c:296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited_35.c:297,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 302
    functionName: xx_modexec
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyType_FromSpec
    - PyErr_NewException
    - PyModule_AddObject
    linkageType: ''
    returnType: int
    signature: int xx_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/xxlimited_35.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: PyInit_xxlimited_35
    functionSourceFile: /src/cpython/Modules/xxlimited_35.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xxlimited_35(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: test_empty_function_impl
    functionSourceFile: /src/cpython/Modules/_testclinic_limited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_empty_function_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: my_int_func_impl
    functionSourceFile: /src/cpython/Modules/_testclinic_limited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int my_int_func_impl(PyObject *module, int arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: my_int_sum_impl
    functionSourceFile: /src/cpython/Modules/_testclinic_limited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int my_int_sum_impl(PyObject *module, int x, int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: my_float_sum_impl
    functionSourceFile: /src/cpython/Modules/_testclinic_limited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float my_float_sum_impl(PyObject *module, float x, float y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: my_double_sum_impl
    functionSourceFile: /src/cpython/Modules/_testclinic_limited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double my_double_sum_impl(PyObject *module, double x, double y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: get_file_descriptor_impl
    functionSourceFile: /src/cpython/Modules/_testclinic_limited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_file_descriptor_impl(PyObject *module, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testclinic_limited.c:145,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testclinic_limited.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: PyInit__testclinic_limited
    functionSourceFile: /src/cpython/Modules/_testclinic_limited.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyUnstable_Module_SetGIL
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testclinic_limited(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_bisectmodule.c:27,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/cpython/Modules/_bisectmodule.c
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: get_bisect_state
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: bisect_state
    signature: 'bisect_state *

      get_bisect_state(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:36,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_bisectmodule.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: get_sq_item
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: ssizeargfunc
    signature: ssizeargfunc get_sq_item(PyObject *s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bisectmodule.c:61,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_bisectmodule.c:65,1
    - Dst: get_sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:69,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:73,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:76,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:83,1
    - Dst: sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:85,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:86,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_bisectmodule.c:86,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:91,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_bisectmodule.c:95,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:102,1
    - Dst: compare
      Src: /src/cpython/Modules/_bisectmodule.c:104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:121,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:123,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_bisectmodule.c:126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:127,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:137,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:143,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:146,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_bisectmodule.c:147,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 5
    argNames:
    - list
    - item
    - lo
    - hi
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (mid >= 0)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/cpython/Modules/_bisectmodule.c
    - condition: ((PyErr_Occurred() == NULL) ^ (litem == NULL))
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/cpython/Modules/_bisectmodule.c
    constantsTouched: []
    func_position:
      end: 149
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 149
    functionName: internal_bisect_right
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_IsTrue
    - Py_DECREF
    - PyErr_Occurred
    - compare
    - PyErr_SetString
    - sq_item
    - get_sq_item
    - Py_SETREF
    - PySequence_Size
    - Py_IS_TYPE
    - PyObject_CallOneArg
    - PyObject_RichCompareBool
    - Py_EnterRecursiveCall
    - Py_TYPE
    - Py_LeaveRecursiveCall
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t
      lo, Py_ssize_t hi,\n                      PyObject* key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_bisect_right
      Src: /src/cpython/Modules/_bisectmodule.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - a
    - x
    - lo
    - hi
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: _bisect_bisect_right_impl
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - internal_bisect_right
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _bisect_bisect_right_impl(PyObject *module, PyObject *a,
      PyObject *x,\n                          Py_ssize_t lo, Py_ssize_t hi, PyObject
      *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: internal_bisect_right
      Src: /src/cpython/Modules/_bisectmodule.c:210,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:212,1
    - Dst: internal_bisect_right
      Src: /src/cpython/Modules/_bisectmodule.c:216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:217,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_bisectmodule.c:221,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_bisectmodule.c:222,1
    - Dst: get_bisect_state
      Src: /src/cpython/Modules/_bisectmodule.c:226,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_bisectmodule.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - module
    - a
    - x
    - lo
    - hi
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 234
    functionName: _bisect_insort_right_impl
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_DECREF
    - _PyObject_CallMethod
    - internal_bisect_right
    - get_bisect_state
    - PyObject_CallOneArg
    - PyList_Insert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_bisect_insort_right_impl(PyObject *module, PyObject *a,
      PyObject *x,\n                          Py_ssize_t lo, Py_ssize_t hi, PyObject
      *key)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bisectmodule.c:245,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_bisectmodule.c:249,1
    - Dst: get_sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:253,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:257,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:260,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:267,1
    - Dst: sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:269,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:270,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_bisectmodule.c:270,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:275,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_bisectmodule.c:279,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:286,1
    - Dst: compare
      Src: /src/cpython/Modules/_bisectmodule.c:288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:305,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:307,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_bisectmodule.c:310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:311,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:321,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:327,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:330,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_bisectmodule.c:331,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 5
    argNames:
    - list
    - item
    - lo
    - hi
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (mid >= 0)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/cpython/Modules/_bisectmodule.c
    - condition: ((PyErr_Occurred() == NULL) ^ (litem == NULL))
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Modules/_bisectmodule.c
    constantsTouched: []
    func_position:
      end: 333
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 333
    functionName: internal_bisect_left
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_IsTrue
    - Py_DECREF
    - PyErr_Occurred
    - compare
    - PyErr_SetString
    - sq_item
    - get_sq_item
    - Py_SETREF
    - PySequence_Size
    - Py_IS_TYPE
    - PyObject_CallOneArg
    - PyObject_RichCompareBool
    - Py_EnterRecursiveCall
    - Py_TYPE
    - Py_LeaveRecursiveCall
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t internal_bisect_left(PyObject *list, PyObject *item, Py_ssize_t
      lo, Py_ssize_t hi,\n                     PyObject *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_bisect_left
      Src: /src/cpython/Modules/_bisectmodule.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - a
    - x
    - lo
    - hi
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: _bisect_bisect_left_impl
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - internal_bisect_left
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _bisect_bisect_left_impl(PyObject *module, PyObject *a,
      PyObject *x,\n                         Py_ssize_t lo, Py_ssize_t hi, PyObject
      *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: internal_bisect_left
      Src: /src/cpython/Modules/_bisectmodule.c:396,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:398,1
    - Dst: internal_bisect_left
      Src: /src/cpython/Modules/_bisectmodule.c:402,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:403,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_bisectmodule.c:407,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_bisectmodule.c:408,1
    - Dst: get_bisect_state
      Src: /src/cpython/Modules/_bisectmodule.c:411,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_bisectmodule.c:412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - module
    - a
    - x
    - lo
    - hi
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 419
    functionName: _bisect_insort_left_impl
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_DECREF
    - _PyObject_CallMethod
    - get_bisect_state
    - internal_bisect_left
    - PyObject_CallOneArg
    - PyList_Insert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_bisect_insort_left_impl(PyObject *module, PyObject *a,
      PyObject *x,\n                         Py_ssize_t lo, Py_ssize_t hi, PyObject
      *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bisect_state
      Src: /src/cpython/Modules/_bisectmodule.c:440,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bisectmodule.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: bisect_clear
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - get_bisect_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int bisect_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bisect_clear
      Src: /src/cpython/Modules/_bisectmodule.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: bisect_free
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - bisect_clear
    linkageType: ''
    returnType: void
    signature: void bisect_free(void *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bisect_state
      Src: /src/cpython/Modules/_bisectmodule.c:454,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_bisectmodule.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: bisect_modexec
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - get_bisect_state
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int bisect_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_bisectmodule.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: PyInit__bisect
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: ProfilerObject_CAST
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ProfilerObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_lsprof.c:86,1
    - Dst: assert
      Src: /src/cpython/Modules/_lsprof.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/cpython/Modules/_lsprof.c
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: _lsprof_get_state
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _lsprof_state
    signature: '_lsprof_state *

      _lsprof_get_state(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_lsprof.c:100,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_lsprof.c:104,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/_lsprof.c:114,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_lsprof.c:120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:122,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_lsprof.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 129
    functionName: CallExternalTimer
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - _PyTime_FromLong
    - PyErr_FormatUnraisable
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t CallExternalTimer(ProfilerObject *pObj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CallExternalTimer
      Src: /src/cpython/Modules/_lsprof.c:135,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Modules/_lsprof.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: call_timer
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - CallExternalTimer
    - PyTime_PerfCounterRaw
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t call_timer(ProfilerObject *pObj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_lsprof.c:151,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_lsprof.c:152,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_lsprof.c:164,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_lsprof.c:165,1
    - Dst: PyModule_Check
      Src: /src/cpython/Modules/_lsprof.c:167,1
    - Dst: PyModule_GetNameObject
      Src: /src/cpython/Modules/_lsprof.c:168,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_lsprof.c:170,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_lsprof.c:174,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_lsprof.c:176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:181,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_lsprof.c:183,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_lsprof.c:190,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Modules/_lsprof.c:194,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:195,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_lsprof.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:198,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_lsprof.c:204,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_lsprof.c:205,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_lsprof.c:206,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_lsprof.c:209,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 212
    functionName: normalizeUserObj
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyModule_GetNameObject
    - PyObject_Repr
    - Py_DECREF
    - PyUnicode_FromFormat
    - _PyUnicode_EqualToASCIIString
    - _PyType_LookupRef
    - Py_NewRef
    - PyModule_Check
    - PyUnicode_Check
    - PyErr_Clear
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      normalizeUserObj(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_lsprof.c:218,1
    - Dst: normalizeUserObj
      Src: /src/cpython/Modules/_lsprof.c:223,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_lsprof.c:225,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:226,1
    - Dst: RotatingTree_Add
      Src: /src/cpython/Modules/_lsprof.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - pObj
    - key
    - userObj
    argTypes:
    - ProfilerObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 240
    functionName: newProfilerEntry
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - normalizeUserObj
    - PyMem_Malloc
    - PyErr_Clear
    - PyMem_Free
    - RotatingTree_Add
    linkageType: ''
    returnType: ProfilerEntry
    signature: 'ProfilerEntry *

      newProfilerEntry(ProfilerObject *pObj, void *key, PyObject *userObj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Get
      Src: /src/cpython/Modules/_lsprof.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pObj
    - key
    argTypes:
    - ProfilerObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: getEntry
    functionSourceFile: /src/cpython/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/cpython/Modules/_lsprof.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pObj
    - caller
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerEntry*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: getSubEntry
    functionSourceFile: /src/cpython/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/cpython/Modules/_lsprof.c:259,1
    - Dst: RotatingTree_Add
      Src: /src/cpython/Modules/_lsprof.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - pObj
    - caller
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerEntry*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 272
    functionName: newSubEntry
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - RotatingTree_Add
    - PyMem_Malloc
    linkageType: ''
    returnType: ProfilerSubEntry
    signature: 'ProfilerSubEntry *

      newSubEntry(ProfilerObject *pObj,  ProfilerEntry *caller, ProfilerEntry* entry)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - header
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: freeSubEntry
    functionSourceFile: /src/cpython/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/cpython/Modules/_lsprof.c:284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:285,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - header
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: freeEntry
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - RotatingTree_Enum
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int freeEntry(rotating_node_t *header, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Enum
      Src: /src/cpython/Modules/_lsprof.c:292,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:296,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: clearEntries
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - RotatingTree_Enum
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void clearEntries(ProfilerObject *pObj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getSubEntry
      Src: /src/cpython/Modules/_lsprof.c:318,1
    - Dst: newSubEntry
      Src: /src/cpython/Modules/_lsprof.c:320,1
    - Dst: call_timer
      Src: /src/cpython/Modules/_lsprof.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - pObj
    - self
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerContext*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: initContext
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - getSubEntry
    - newSubEntry
    - call_timer
    linkageType: ''
    returnType: void
    signature: void initContext(ProfilerObject *pObj, ProfilerContext *self, ProfilerEntry
      *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_timer
      Src: /src/cpython/Modules/_lsprof.c:330,1
    - Dst: getSubEntry
      Src: /src/cpython/Modules/_lsprof.c:344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - pObj
    - self
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerContext*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 354
    functionName: Stop
    functionSourceFile: /src/cpython/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_GetRaisedException
      Src: /src/cpython/Modules/_lsprof.c:371,1
    - Dst: getEntry
      Src: /src/cpython/Modules/_lsprof.c:373,1
    - Dst: newProfilerEntry
      Src: /src/cpython/Modules/_lsprof.c:375,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_lsprof.c:387,1
    - Dst: initContext
      Src: /src/cpython/Modules/_lsprof.c:393,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_lsprof.c:396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - key
    - userObj
    argTypes:
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 397
    functionName: ptrace_enter_call
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - getEntry
    - PyErr_GetRaisedException
    - initContext
    - PyErr_SetRaisedException
    - newProfilerEntry
    - PyMem_Malloc
    linkageType: ''
    returnType: void
    signature: void ptrace_enter_call(PyObject *self, void *key, PyObject *userObj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/cpython/Modules/_lsprof.c:410,1
    - Dst: Stop
      Src: /src/cpython/Modules/_lsprof.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 420
    functionName: ptrace_leave_call
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Stop
    - getEntry
    linkageType: ''
    returnType: void
    signature: void ptrace_leave_call(PyObject *self, void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lsprof.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: pending_exception
    functionSourceFile: /src/cpython/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/cpython/Modules/_lsprof.c:483,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_lsprof.c:492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 495
    functionName: statsForSubEntry
    functionSourceFile: /src/cpython/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/cpython/Modules/_lsprof.c:507,1
    - Dst: RotatingTree_Enum
      Src: /src/cpython/Modules/_lsprof.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:512,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_lsprof.c:517,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_lsprof.c:520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:528,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_lsprof.c:531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 534
    functionName: statsForEntry
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyObject_CallFunction
    - Py_DECREF
    - PyList_Append
    - Py_NewRef
    - RotatingTree_Enum
    linkageType: ''
    returnType: int
    signature: int statsForEntry(rotating_node_t *node, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_lsprof.c:571,1
    - Dst: pending_exception
      Src: /src/cpython/Modules/_lsprof.c:572,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/_lsprof.c:576,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_lsprof.c:583,1
    - Dst: RotatingTree_Enum
      Src: /src/cpython/Modules/_lsprof.c:586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ProfilerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: _lsprof_Profiler_getstats_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - _PyType_GetModuleState
    - RotatingTree_Enum
    - _PyTime_FromSeconds
    - pending_exception
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_getstats_impl(ProfilerObject *self, PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pObj
    - nvalue
    argTypes:
    - ProfilerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 602
    functionName: setSubcalls
    functionSourceFile: /src/cpython/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: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: setBuiltins
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setBuiltins(ProfilerObject *pObj, int nvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptrace_enter_call
      Src: /src/cpython/Modules/_lsprof.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - code
    - instruction_offset
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 5
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: _lsprof_Profiler__pystart_callback_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ptrace_enter_call
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lsprof_Profiler__pystart_callback_impl(ProfilerObject
      *self, PyObject *code,\n                                        PyObject *instruction_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptrace_enter_call
      Src: /src/cpython/Modules/_lsprof.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - code
    - instruction_offset
    - exception
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 5
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: _lsprof_Profiler__pythrow_callback_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ptrace_enter_call
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lsprof_Profiler__pythrow_callback_impl(ProfilerObject
      *self, PyObject *code,\n                                        PyObject *instruction_offset,\n
      \                                       PyObject *exception)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptrace_leave_call
      Src: /src/cpython/Modules/_lsprof.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - code
    - instruction_offset
    - retval
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 665
    functionDepth: 5
    functionLinenumber: 665
    functionLinenumberEnd: 675
    functionName: _lsprof_Profiler__pyreturn_callback_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ptrace_leave_call
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lsprof_Profiler__pyreturn_callback_impl(ProfilerObject
      *self,\n                                         PyObject *code,\n                                         PyObject
      *instruction_offset,\n                                         PyObject *retval)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_lsprof.c:680,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_lsprof.c:681,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:684,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:692,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:693,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_lsprof.c:695,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_lsprof.c:698,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - callable
    - self_arg
    - missing
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 703
    functionName: get_cfunc_from_callable
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - Py_INCREF
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: PyObject * get_cfunc_from_callable(PyObject* callable, PyObject* self_arg,
      PyObject* missing)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cfunc_from_callable
      Src: /src/cpython/Modules/_lsprof.c:723,1
    - Dst: ptrace_enter_call
      Src: /src/cpython/Modules/_lsprof.c:726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - code
    - instruction_offset
    - callable
    - self_arg
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 733
    functionName: _lsprof_Profiler__ccall_callback_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ptrace_enter_call
    - Py_DECREF
    - get_cfunc_from_callable
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lsprof_Profiler__ccall_callback_impl(ProfilerObject *self,
      PyObject *code,\n                                      PyObject *instruction_offset,\n
      \                                     PyObject *callable, PyObject *self_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cfunc_from_callable
      Src: /src/cpython/Modules/_lsprof.c:754,1
    - Dst: ptrace_leave_call
      Src: /src/cpython/Modules/_lsprof.c:757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - code
    - instruction_offset
    - callable
    - self_arg
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 746
    functionDepth: 5
    functionLinenumber: 746
    functionLinenumberEnd: 763
    functionName: _lsprof_Profiler__creturn_callback_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_cfunc_from_callable
    - ptrace_leave_call
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lsprof_Profiler__creturn_callback_impl(ProfilerObject
      *self, PyObject *code,\n                                        PyObject *instruction_offset,\n
      \                                       PyObject *callable,\n                                        PyObject
      *self_arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setSubcalls
      Src: /src/cpython/Modules/_lsprof.c:802,1
    - Dst: setBuiltins
      Src: /src/cpython/Modules/_lsprof.c:802,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:806,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:811,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lsprof.c:815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:818,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:822,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:833,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:850,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - self
    - subcalls
    - builtins
    argTypes:
    - ProfilerObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 852
    functionName: _lsprof_Profiler_enable_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyObject_CallMethod
    - PyErr_Format
    - PySys_GetAttrString
    - setBuiltins
    - setSubcalls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lsprof_Profiler_enable_impl(ProfilerObject *self, int
      subcalls,\n                             int builtins)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Stop
      Src: /src/cpython/Modules/_lsprof.c:861,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 854
    functionDepth: 4
    functionLinenumber: 854
    functionLinenumberEnd: 868
    functionName: flush_unmatched
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Stop
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void flush_unmatched(ProfilerObject *pObj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lsprof.c:882,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:888,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:901,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:909,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:911,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:918,1
    - Dst: flush_unmatched
      Src: /src/cpython/Modules/_lsprof.c:921,1
    - Dst: pending_exception
      Src: /src/cpython/Modules/_lsprof.c:924,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 928
    functionName: _lsprof_Profiler_disable_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - flush_unmatched
    - Py_DECREF
    - PyErr_SetString
    - PyObject_CallMethod
    - PySys_GetAttrString
    - pending_exception
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_disable_impl(ProfilerObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lsprof.c:941,1
    - Dst: clearEntries
      Src: /src/cpython/Modules/_lsprof.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 947
    functionName: _lsprof_Profiler_clear_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - clearEntries
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_clear_impl(ProfilerObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ProfilerObject_CAST
      Src: /src/cpython/Modules/_lsprof.c:952,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:953,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:953,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 956
    functionName: profiler_traverse
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ProfilerObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int profiler_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ProfilerObject_CAST
      Src: /src/cpython/Modules/_lsprof.c:961,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_lsprof.c:962,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_lsprof.c:964,1
    - Dst: _PyEval_SetProfile
      Src: /src/cpython/Modules/_lsprof.c:965,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_lsprof.c:966,1
    - Dst: flush_unmatched
      Src: /src/cpython/Modules/_lsprof.c:971,1
    - Dst: clearEntries
      Src: /src/cpython/Modules/_lsprof.c:972,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lsprof.c:973,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:974,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_lsprof.c:975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 958
    functionDepth: 5
    functionLinenumber: 958
    functionLinenumberEnd: 977
    functionName: profiler_dealloc
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ProfilerObject_CAST
    - flush_unmatched
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - clearEntries
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - PyTypeObject*::tp_free
    - _PyEval_SetProfile
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void profiler_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setSubcalls
      Src: /src/cpython/Modules/_lsprof.c:1000,1
    - Dst: setBuiltins
      Src: /src/cpython/Modules/_lsprof.c:1000,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_lsprof.c:1004,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_lsprof.c:1004,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:1007,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:1011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:1013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:1016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - self
    - timer
    - timeunit
    - subcalls
    - builtins
    argTypes:
    - ProfilerObject*
    - PyObject*
    - double
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1018
    functionName: profiler_init_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - Py_XNewRef
    - Py_XSETREF
    - PySys_GetAttrString
    - setBuiltins
    - setSubcalls
    linkageType: ''
    returnType: int
    signature: "int profiler_init_impl(ProfilerObject *self, PyObject *timer, double
      timeunit,\n                   int subcalls, int builtins)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lsprof_get_state
      Src: /src/cpython/Modules/_lsprof.c:1057,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:1058,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:1059,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1062
    functionName: _lsprof_traverse
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _lsprof_get_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _lsprof_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lsprof_get_state
      Src: /src/cpython/Modules/_lsprof.c:1067,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lsprof.c:1068,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lsprof.c:1069,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lsprof.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1072
    functionName: _lsprof_clear
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _lsprof_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _lsprof_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lsprof_clear
      Src: /src/cpython/Modules/_lsprof.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1078
    functionName: _lsprof_free
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _lsprof_clear
    linkageType: ''
    returnType: void
    signature: void _lsprof_free(void *module)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_lsprof.c:1083,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_lsprof.c:1085,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lsprof.c:1091,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_lsprof.c:1095,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lsprof.c:1099,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_lsprof.c:1103,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lsprof.c:1107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1112
    functionName: _lsprof_exec
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyModule_GetState
    - PyType_FromModuleAndSpec
    - PyStructSequence_NewType
    linkageType: ''
    returnType: int
    signature: int _lsprof_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_lsprof.c:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1137
    functionName: PyInit__lsprof
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__lsprof(void)
  - 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: XxoObject_CAST
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_CAST(op)
  - 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/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/xxmodule.c:33,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/cpython/Modules/xxmodule.c
    functionUses: 1
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: XxoObject
    signature: 'XxoObject *

      newXxoObject(PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxmodule.c:46,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/xxmodule.c:47,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/xxmodule.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: Xxo_dealloc
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Free
    - XxoObject_CAST
    linkageType: ''
    returnType: void
    signature: void Xxo_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxmodule.c:54,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxmodule.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(op)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: Xxo_demo
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_demo(PyObject *Py_UNUSED(op), PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxmodule.c:68,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/xxmodule.c:70,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxmodule.c:72,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/xxmodule.c:74,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/xxmodule.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: Xxo_getattro
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_NewRef
    - PyObject_GenericGetAttr
    - XxoObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_getattro(PyObject *op, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxmodule.c:84,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/xxmodule.c:86,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Modules/xxmodule.c:92,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/xxmodule.c:93,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxmodule.c:94,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/xxmodule.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - op
    - name
    - v
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: Xxo_setattr
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyDict_DelItemString
    - PyDict_SetItemString
    - PyDict_New
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_setattr(PyObject *op, const char *name, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxmodule.c:161,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxmodule.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: xx_foo
    functionSourceFile: /src/cpython/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/cpython/Modules/xxmodule.c:175,1
    - Dst: newXxoObject
      Src: /src/cpython/Modules/xxmodule.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: xx_new
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - newXxoObject
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_new(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxmodule.c:190,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/xxmodule.c:193,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/xxmodule.c:195,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxmodule.c:195,1
    - Dst: PyObject_Print
      Src: /src/cpython/Modules/xxmodule.c:196,1
    - Dst: printf
      Src: /src/cpython/Modules/xxmodule.c:197,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxmodule.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: xx_bug
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - PyObject_Print
    - PyList_SetItem
    - PyArg_ParseTuple
    - printf
    - Py_NewRef
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_bug(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxmodule.c:210,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxmodule.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: xx_roj
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_roj(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxmodule.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: null_richcompare
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/xxmodule.c:360,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/xxmodule.c:366,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxmodule.c:371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxmodule.c:372,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxmodule.c:378,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxmodule.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 386
    functionName: xx_exec
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyErr_NewException
    - PyType_Ready
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int xx_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/xxmodule.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: PyInit_xx
    functionSourceFile: /src/cpython/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xx(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_suggestions.c:24,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_suggestions.c:25,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_suggestions.c:30,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_suggestions.c:32,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_suggestions.c:33,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_suggestions.c:34,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Modules/_suggestions.c:39,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_suggestions.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - candidates
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 44
    functionName: _suggestions__generate_suggestions_impl
    functionSourceFile: /src/cpython/Modules/_suggestions.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyList_GetItem
    - PyErr_Occurred
    - PyErr_SetString
    - PyList_Size
    - PyUnicode_Check
    - _Py_CalculateSuggestions
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_suggestions__generate_suggestions_impl(PyObject *module,\n
      \                                       PyObject *candidates, PyObject *item)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_suggestions.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: PyInit__suggestions
    functionSourceFile: /src/cpython/Modules/_suggestions.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__suggestions(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: 5
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 5
    functionName: KEY_LOWER_THAN
    functionSourceFile: /src/cpython/Modules/rotatingtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY_LOWER_THAN(key1, key2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/rotatingtree.c:20,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/rotatingtree.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: randombits
    functionSourceFile: /src/cpython/Modules/rotatingtree.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: int
    signature: int randombits(int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KEY_LOWER_THAN
      Src: /src/cpython/Modules/rotatingtree.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - root
    - node
    argTypes:
    - rotating_node_t**
    - rotating_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: RotatingTree_Add
    functionSourceFile: /src/cpython/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/cpython/Modules/rotatingtree.c:54,1
    - Dst: KEY_LOWER_THAN
      Src: /src/cpython/Modules/rotatingtree.c:60,1
    - Dst: randombits
      Src: /src/cpython/Modules/rotatingtree.c:77,1
    - Dst: KEY_LOWER_THAN
      Src: /src/cpython/Modules/rotatingtree.c:78,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - root
    - key
    argTypes:
    - rotating_node_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 105
    functionName: RotatingTree_Get
    functionSourceFile: /src/cpython/Modules/rotatingtree.c
    functionUses: 2
    functionsReached:
    - randombits
    - KEY_LOWER_THAN
    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/cpython/Modules/rotatingtree.c:117,1
    - Dst: enumfn
      Src: /src/cpython/Modules/rotatingtree.c:120,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: 125
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: RotatingTree_Enum
    functionSourceFile: /src/cpython/Modules/rotatingtree.c
    functionUses: 5
    functionsReached:
    - RotatingTree_Enum
    - enumfn
    linkageType: ''
    returnType: int
    signature: "int RotatingTree_Enum(rotating_node_t *root, rotating_tree_enum_fn
      enumfn,\n                  void *arg)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/cpython/Modules/getnameinfo.c:132,1
    - Dst: ntohs
      Src: /src/cpython/Modules/getnameinfo.c:132,1
    - Dst: strlen
      Src: /src/cpython/Modules/getnameinfo.c:133,1
    - Dst: strcpy
      Src: /src/cpython/Modules/getnameinfo.c:135,1
    - Dst: getservbyport
      Src: /src/cpython/Modules/getnameinfo.c:137,1
    - Dst: strlen
      Src: /src/cpython/Modules/getnameinfo.c:139,1
    - Dst: strcpy
      Src: /src/cpython/Modules/getnameinfo.c:141,1
    - Dst: IN_MULTICAST
      Src: /src/cpython/Modules/getnameinfo.c:149,1
    - Dst: IN_EXPERIMENTAL
      Src: /src/cpython/Modules/getnameinfo.c:149,1
    - Dst: inet_ntop
      Src: /src/cpython/Modules/getnameinfo.c:166,1
    - Dst: strlen
      Src: /src/cpython/Modules/getnameinfo.c:169,1
    - Dst: strcpy
      Src: /src/cpython/Modules/getnameinfo.c:171,1
    - Dst: getipnodebyaddr
      Src: /src/cpython/Modules/getnameinfo.c:174,1
    - Dst: gethostbyaddr
      Src: /src/cpython/Modules/getnameinfo.c:176,1
    - Dst: strchr
      Src: /src/cpython/Modules/getnameinfo.c:181,1
    - Dst: strlen
      Src: /src/cpython/Modules/getnameinfo.c:184,1
    - Dst: freehostent
      Src: /src/cpython/Modules/getnameinfo.c:186,1
    - Dst: strcpy
      Src: /src/cpython/Modules/getnameinfo.c:190,1
    - Dst: freehostent
      Src: /src/cpython/Modules/getnameinfo.c:192,1
    - Dst: inet_ntop
      Src: /src/cpython/Modules/getnameinfo.c:197,1
    - Dst: strlen
      Src: /src/cpython/Modules/getnameinfo.c:200,1
    - Dst: strcpy
      Src: /src/cpython/Modules/getnameinfo.c:202,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 86
    argCount: 7
    argNames:
    - sa
    - salen
    - host
    - hostlen
    - serv
    - servlen
    - flags
    argTypes:
    - struct sockaddr*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 206
    functionName: getnameinfo
    functionSourceFile: /src/cpython/Modules/getnameinfo.c
    functionUses: 1
    functionsReached:
    - inet_ntop
    - strlen
    - getservbyport
    - sprintf
    - ntohs
    - freehostent
    - IN_EXPERIMENTAL
    - gethostbyaddr
    - getipnodebyaddr
    - IN_MULTICAST
    - strcpy
    - strchr
    linkageType: ''
    returnType: int
    signature: "int getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
      size_t hostlen,\n            char *serv, size_t servlen, int flags)"
  - 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: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: PUTS
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttr
      Src: /src/cpython/Modules/faulthandler.c:109,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/faulthandler.c:109,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:115,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/faulthandler.c:119,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/faulthandler.c:120,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/faulthandler.c:121,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/faulthandler.c:127,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/faulthandler.c:128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:131,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/faulthandler.c:139,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/faulthandler.c:142,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/faulthandler.c:142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:144,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/faulthandler.c:149,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/faulthandler.c:150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:159,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/faulthandler.c:163,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/faulthandler.c:165,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - file_ptr
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 169
    functionName: faulthandler_get_fileno
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_AsLong
    - PyErr_SetString
    - _Py_ID
    - PyLong_Check
    - PyObject_CallMethodNoArgs
    - PySys_GetAttr
    - PyBool_Check
    - _PyFile_Flush
    - PyErr_Clear
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int faulthandler_get_fileno(PyObject **file_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/faulthandler.c:176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: get_thread_state
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyErr_SetString
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      get_thread_state(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/faulthandler.c:205,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/cpython/Modules/faulthandler.c:208,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:212,1
    - Dst: _Py_DumpTraceback
      Src: /src/cpython/Modules/faulthandler.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - all_threads
    - interp
    argTypes:
    - int
    - int
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 219
    functionName: faulthandler_dump_traceback
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PUTS
    - PyGILState_GetThisThreadState
    - _Py_DumpTraceback
    - _Py_DumpTracebackThreads
    linkageType: ''
    returnType: void
    signature: "void faulthandler_dump_traceback(int fd, int all_threads,\n                            PyInterpreterState
      *interp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:233,1
    - Dst: _Py_DumpStack
      Src: /src/cpython/Modules/faulthandler.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 238
    functionName: faulthandler_dump_c_stack
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PUTS
    - _Py_DumpStack
    linkageType: ''
    returnType: void
    signature: void faulthandler_dump_c_stack(int fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:261,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:265,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:267,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/faulthandler.c:272,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/faulthandler.c:275,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/cpython/Modules/faulthandler.c:276,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/faulthandler.c:277,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:279,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:280,1
    - Dst: _Py_DumpTraceback
      Src: /src/cpython/Modules/faulthandler.c:285,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:287,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/faulthandler.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - module
    - file
    - all_threads
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 293
    functionName: faulthandler_dump_traceback_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_thread_state
    - PyErr_SetString
    - _PyInterpreterState_GET
    - faulthandler_get_fileno
    - _Py_DumpTracebackThreads
    - PyErr_CheckSignals
    - _Py_DumpTraceback
    - _PyEval_StopTheWorld
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_dump_traceback_py_impl(PyObject *module,
      PyObject *file,\n                                    int all_threads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:308,1
    - Dst: _Py_DumpStack
      Src: /src/cpython/Modules/faulthandler.c:313,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:314,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/faulthandler.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: faulthandler_dump_c_stack_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_DumpStack
    - PyErr_CheckSignals
    - faulthandler_get_fileno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_dump_c_stack_py_impl(PyObject *module, PyObject *file)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:330,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handler
    argTypes:
    - fault_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: faulthandler_disable_fatal_handler
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - signal
    - sigaction
    linkageType: ''
    returnType: void
    signature: void faulthandler_disable_fatal_handler(fault_handler_t *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/faulthandler.c:346,1
    - Dst: _PyEval_IsGILEnabled
      Src: /src/cpython/Modules/faulthandler.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 356
    functionName: deduce_all_threads
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _PyEval_IsGILEnabled
    - PyGILState_GetThisThreadState
    linkageType: ''
    returnType: int
    signature: int deduce_all_threads(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/cpython/Modules/faulthandler.c:396,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:399,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:400,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:401,1
    - Dst: snprintf
      Src: /src/cpython/Modules/faulthandler.c:405,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:406,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:407,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:408,1
    - Dst: faulthandler_dump_traceback
      Src: /src/cpython/Modules/faulthandler.c:411,1
    - Dst: deduce_all_threads
      Src: /src/cpython/Modules/faulthandler.c:411,1
    - Dst: faulthandler_dump_c_stack
      Src: /src/cpython/Modules/faulthandler.c:413,1
    - Dst: _Py_DumpExtensionModules
      Src: /src/cpython/Modules/faulthandler.c:415,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:427,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 428
    functionName: faulthandler_fatal_error
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable_fatal_handler
    - faulthandler_dump_traceback
    - faulthandler_dump_c_stack
    - _Py_DumpExtensionModules
    - snprintf
    - PUTS
    - deduce_all_threads
    - raise
    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: 446
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 446
    functionName: faulthandler_ignore_exception
    functionSourceFile: /src/cpython/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/cpython/Modules/faulthandler.c:454,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:459,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:463,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:464,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:465,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:466,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:467,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:468,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:469,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:471,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Modules/faulthandler.c:472,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:474,1
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/cpython/Modules/faulthandler.c:481,1
    - Dst: faulthandler_dump_traceback
      Src: /src/cpython/Modules/faulthandler.c:487,1
    - Dst: deduce_all_threads
      Src: /src/cpython/Modules/faulthandler.c:487,1
    - Dst: faulthandler_dump_c_stack
      Src: /src/cpython/Modules/faulthandler.c:489,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - exc_info
    argTypes:
    - struct _EXCEPTION_POINTERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 493
    functionName: faulthandler_exc_handler
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable_fatal_handler
    - faulthandler_dump_traceback
    - faulthandler_dump_c_stack
    - faulthandler_ignore_exception
    - _Py_DumpHexadecimal
    - PUTS
    - deduce_all_threads
    linkageType: ''
    returnType: LONG
    signature: LONG faulthandler_exc_handler(struct _EXCEPTION_POINTERS *exc_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/faulthandler.c:506,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:508,1
    - Dst: sigaltstack
      Src: /src/cpython/Modules/faulthandler.c:512,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/faulthandler.c:514,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 521
    functionName: faulthandler_allocate_stack
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - sigaltstack
    - PyErr_NoMemory
    - PyErr_SetFromErrno
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int faulthandler_allocate_stack(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_allocate_stack
      Src: /src/cpython/Modules/faulthandler.c:536,1
    - Dst: _Py_InitDumpStack
      Src: /src/cpython/Modules/faulthandler.c:544,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:551,1
    - Dst: sigemptyset
      Src: /src/cpython/Modules/faulthandler.c:555,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:560,1
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:565,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:567,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/faulthandler.c:572,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:580,1
    - Dst: AddVectoredExceptionHandler
      Src: /src/cpython/Modules/faulthandler.c:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!handler->enabled)
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/cpython/Modules/faulthandler.c
    - condition: (stack.ss_sp != NULL)
      pos:
        line_end: 559
        line_start: 559
        source_file: /src/cpython/Modules/faulthandler.c
    - condition: (fatal_error.exc_handler == NULL)
      pos:
        line_end: 579
        line_start: 579
        source_file: /src/cpython/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 584
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 584
    functionName: faulthandler_enable
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _Py_InitDumpStack
    - signal
    - faulthandler_allocate_stack
    - PyErr_SetFromErrno
    - AddVectoredExceptionHandler
    - sigaction
    - assert
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int faulthandler_enable(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:605,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:609,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:611,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/faulthandler.c:615,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/faulthandler.c:618,1
    - Dst: faulthandler_enable
      Src: /src/cpython/Modules/faulthandler.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - module
    - file
    - all_threads
    - c_stack
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 626
    functionName: faulthandler_py_enable_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_thread_state
    - faulthandler_enable
    - faulthandler_get_fileno
    - Py_XSETREF
    - PyThreadState_GetInterpreter
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_py_enable_impl(PyObject *module, PyObject
      *file,\n                            int all_threads, int c_stack)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/cpython/Modules/faulthandler.c:636,1
    - Dst: RemoveVectoredExceptionHandler
      Src: /src/cpython/Modules/faulthandler.c:641,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: faulthandler_disable
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable_fatal_handler
    - RemoveVectoredExceptionHandler
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void faulthandler_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable
      Src: /src/cpython/Modules/faulthandler.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 664
    functionName: faulthandler_disable_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_disable_py_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 678
    functionName: faulthandler_is_enabled_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int faulthandler_is_enabled_impl(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/cpython/Modules/faulthandler.c:690,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/faulthandler.c:691,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/cpython/Modules/faulthandler.c:695,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:698,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:702,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/faulthandler.c:704,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/cpython/Modules/faulthandler.c:706,1
    - Dst: _exit
      Src: /src/cpython/Modules/faulthandler.c:710,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts:
    - condition: (st == PY_LOCK_FAILURE)
      pos:
        line_end: 701
        line_start: 701
        source_file: /src/cpython/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 715
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 715
    functionName: faulthandler_thread
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _exit
    - sigfillset
    - pthread_sigmask
    - PyThread_release_lock
    - PyThread_acquire_lock_timed
    - _Py_DumpTracebackThreads
    - _Py_write_noraise
    - assert
    linkageType: ''
    returnType: void
    signature: void faulthandler_thread(void *unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:726,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:729,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:730,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:733,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:735,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 740
    functionName: cancel_dump_traceback_later
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_CLEAR
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void cancel_dump_traceback_later(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/faulthandler.c:760,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/faulthandler.c:765,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/faulthandler.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - us
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 770
    functionName: format_timeout
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyOS_snprintf
    - _PyMem_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      format_timeout(PyTime_t us)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/faulthandler.c:799,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Modules/faulthandler.c:803,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:805,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:810,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:815,1
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:820,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/faulthandler.c:826,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:828,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:829,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/faulthandler.c:833,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:835,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:836,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:841,1
    - Dst: format_timeout
      Src: /src/cpython/Modules/faulthandler.c:845,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:847,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:848,1
    - Dst: strlen
      Src: /src/cpython/Modules/faulthandler.c:850,1
    - Dst: cancel_dump_traceback_later
      Src: /src/cpython/Modules/faulthandler.c:853,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/faulthandler.c:855,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/faulthandler.c:860,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:866,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/faulthandler.c:868,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:869,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:870,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:871,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:873,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 5
    argNames:
    - module
    - timeout_obj
    - repeat
    - file
    - exit
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 879
    functionName: faulthandler_dump_traceback_later_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_thread_state
    - PyThread_start_new_thread
    - strlen
    - PyThread_allocate_lock
    - Py_CLEAR
    - PyErr_SetString
    - _PyTime_AsMicroseconds
    - faulthandler_get_fileno
    - PyThread_release_lock
    - PyErr_NoMemory
    - cancel_dump_traceback_later
    - PyMem_Free
    - PyThread_acquire_lock
    - Py_XSETREF
    - format_timeout
    - _PyTime_FromSecondsObject
    - PyThreadState_GetInterpreter
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_dump_traceback_later_impl(PyObject *module,\n
      \                                      PyObject *timeout_obj, int repeat,\n
      \                                      PyObject *file, int exit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel_dump_traceback_later
      Src: /src/cpython/Modules/faulthandler.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 894
    functionName: faulthandler_cancel_dump_traceback_later_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - cancel_dump_traceback_later
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_cancel_dump_traceback_later_py_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/cpython/Modules/faulthandler.c:904,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:915,1
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:920,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - signum
    - chain
    - previous_p
    argTypes:
    - int
    - int
    - _Py_sighandler_t*
    assertStmts:
    - condition: (stack.ss_sp != NULL)
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/cpython/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 929
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 929
    functionName: faulthandler_register
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - signal
    - sigaction
    - assert
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int faulthandler_register(int signum, int chain, _Py_sighandler_t *previous_p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_dump_traceback
      Src: /src/cpython/Modules/faulthandler.c:948,1
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:952,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:956,1
    - Dst: faulthandler_register
      Src: /src/cpython/Modules/faulthandler.c:959,1
    - Dst: user_signal_t*::previous
      Src: /src/cpython/Modules/faulthandler.c:966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 969
    functionName: faulthandler_user
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_dump_traceback
    - faulthandler_register
    - user_signal_t*::previous
    - sigaction
    - raise
    linkageType: ''
    returnType: void
    signature: void faulthandler_user(int signum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/faulthandler.c:976,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 988
    functionName: check_signum
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_signum(int signum)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_signum
      Src: /src/cpython/Modules/faulthandler.c:1016,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:1019,1
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:1023,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/faulthandler.c:1028,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:1030,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:1031,1
    - Dst: faulthandler_allocate_stack
      Src: /src/cpython/Modules/faulthandler.c:1038,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:1039,1
    - Dst: faulthandler_register
      Src: /src/cpython/Modules/faulthandler.c:1044,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/faulthandler.c:1046,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:1047,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/faulthandler.c:1054,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/faulthandler.c:1058,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - module
    - signum
    - file
    - all_threads
    - chain
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1062
    functionName: faulthandler_register_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_thread_state
    - PyMem_Calloc
    - faulthandler_register
    - faulthandler_get_fileno
    - faulthandler_allocate_stack
    - PyErr_SetFromErrno
    - Py_XSETREF
    - check_signum
    - PyErr_NoMemory
    - PyThreadState_GetInterpreter
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_register_py_impl(PyObject *module, int signum,
      PyObject *file,\n                              int all_threads, int chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:1071,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:1073,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - user
    - signum
    argTypes:
    - user_signal_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1078
    functionName: faulthandler_unregister
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - signal
    - sigaction
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int faulthandler_unregister(user_signal_t *user, int signum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_signum
      Src: /src/cpython/Modules/faulthandler.c:1097,1
    - Dst: faulthandler_unregister
      Src: /src/cpython/Modules/faulthandler.c:1104,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/faulthandler.c:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - signum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1106
    functionName: faulthandler_unregister_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - check_signum
    - faulthandler_unregister
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_unregister_py_impl(PyObject *module, int signum)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetErrorMode
      Src: /src/cpython/Modules/faulthandler.c:1117,1
    - Dst: SetErrorMode
      Src: /src/cpython/Modules/faulthandler.c:1118,1
    - Dst: getrlimit
      Src: /src/cpython/Modules/faulthandler.c:1125,1
    - Dst: setrlimit
      Src: /src/cpython/Modules/faulthandler.c:1127,1
    - Dst: _set_abort_behavior
      Src: /src/cpython/Modules/faulthandler.c:1134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1136
    functionName: faulthandler_suppress_crash_report
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - SetErrorMode
    - _set_abort_behavior
    - setrlimit
    linkageType: ''
    returnType: void
    signature: void faulthandler_suppress_crash_report(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/cpython/Modules/faulthandler.c:1142,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:1156,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1160
    functionName: faulthandler_raise_sigsegv
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - raise
    linkageType: ''
    returnType: void
    signature: void faulthandler_raise_sigsegv(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_raise_sigsegv
      Src: /src/cpython/Modules/faulthandler.c:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - release_gil
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1184
    functionName: faulthandler__sigsegv_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_raise_sigsegv
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__sigsegv_impl(PyObject *module, int release_gil)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::Py_FatalError
      Src: /src/cpython/Modules/faulthandler.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - plock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1190
    functionName: _Py_NO_RETURN::faulthandler_fatal_error_thread
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _Py_NO_RETURN::Py_FatalError
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      faulthandler_fatal_error_thread(void *plock)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/cpython/Modules/faulthandler.c:1206,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/faulthandler.c:1208,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:1210,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:1212,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/faulthandler.c:1214,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1216,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:1217,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:1223,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:1224,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1228
    functionName: faulthandler__fatal_error_c_thread_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyThread_start_new_thread
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyThread_release_lock
    - PyThread_acquire_lock
    - faulthandler_suppress_crash_report
    - PyThread_free_lock
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__fatal_error_c_thread_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/cpython/Modules/faulthandler.c:1241,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:1242,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/faulthandler.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1244
    functionName: faulthandler__sigfpe_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - Py_UNREACHABLE
    - raise
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__sigfpe_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/cpython/Modules/faulthandler.c:1257,1
    - Dst: abort
      Src: /src/cpython/Modules/faulthandler.c:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1260
    functionName: faulthandler__sigabrt_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - abort
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__sigabrt_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_overflow
      Src: /src/cpython/Modules/faulthandler.c:1279,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: 1280
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1280
    functionName: stack_overflow
    functionSourceFile: /src/cpython/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/cpython/Modules/faulthandler.c:1297,1
    - Dst: stack_overflow
      Src: /src/cpython/Modules/faulthandler.c:1314,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/faulthandler.c:1319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1324
    functionName: faulthandler__stack_overflow_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - stack_overflow
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__stack_overflow_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/faulthandler.c:1331,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/faulthandler.c:1335,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/faulthandler.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1340
    functionName: faulthandler_traverse
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int faulthandler_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/cpython/Modules/faulthandler.c:1359,1
    - Dst: RaiseException
      Src: /src/cpython/Modules/faulthandler.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - code
    - flags
    argTypes:
    - PyObject*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1362
    functionName: faulthandler__raise_exception_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - RaiseException
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler__raise_exception_impl(PyObject *module, unsigned
      int code,\n                                   unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1398,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1399,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1402,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1403,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1406,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1407,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1412,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1413,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1416,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1422
    functionName: PyExec_faulthandler
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: int
    signature: int PyExec_faulthandler(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/faulthandler.c:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1445
    functionName: PyInit_faulthandler
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_faulthandler(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/faulthandler.c:1450,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/faulthandler.c:1455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:1456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:1460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1463
    functionName: faulthandler_init_enable
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int faulthandler_init_enable(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/faulthandler.c:1469,1
    - Dst: getauxval
      Src: /src/cpython/Modules/faulthandler.c:1480,1
    - Dst: memset
      Src: /src/cpython/Modules/faulthandler.c:1487,1
    - Dst: faulthandler_init_enable
      Src: /src/cpython/Modules/faulthandler.c:1490,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Modules/faulthandler.c:1491,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/faulthandler.c:1494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1465
    functionDepth: 2
    functionLinenumber: 1465
    functionLinenumberEnd: 1495
    functionName: _PyFaulthandler_Init
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - faulthandler_init_enable
    - memset
    - _PyStatus_ERR
    - getauxval
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyFaulthandler_Init(int enable)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cancel_dump_traceback_later
      Src: /src/cpython/Modules/faulthandler.c:1501,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:1502,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1503,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1507,1
    - Dst: faulthandler_unregister
      Src: /src/cpython/Modules/faulthandler.c:1515,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:1517,1
    - Dst: faulthandler_disable
      Src: /src/cpython/Modules/faulthandler.c:1523,1
    - Dst: memset
      Src: /src/cpython/Modules/faulthandler.c:1529,1
    - Dst: sigaltstack
      Src: /src/cpython/Modules/faulthandler.c:1530,1
    - Dst: sigaltstack
      Src: /src/cpython/Modules/faulthandler.c:1535,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:1542,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1546
    functionName: _PyFaulthandler_Fini
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable
    - sigaltstack
    - memset
    - PyThread_release_lock
    - cancel_dump_traceback_later
    - PyThread_free_lock
    - faulthandler_unregister
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _PyFaulthandler_Fini(void)
  - 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: ExampleObject_CAST
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExampleObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExampleObject_CAST
      Src: /src/cpython/Modules/_testmultiphase.c:46,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testmultiphase.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: Example_traverse
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - ExampleObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Example_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExampleObject_CAST
      Src: /src/cpython/Modules/_testmultiphase.c:54,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testmultiphase.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: Example_finalize
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - ExampleObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void Example_finalize(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testmultiphase.c:62,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testmultiphase.c:64,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testmultiphase.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: Example_demo
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Example_demo(PyObject *op, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ExampleObject_CAST
      Src: /src/cpython/Modules/_testmultiphase.c:81,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_testmultiphase.c:83,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testmultiphase.c:85,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testmultiphase.c:87,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/_testmultiphase.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: Example_getattro
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - ExampleObject_CAST
    - PyErr_Occurred
    - Py_NewRef
    - PyObject_GenericGetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Example_getattro(PyObject *op, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ExampleObject_CAST
      Src: /src/cpython/Modules/_testmultiphase.c:97,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testmultiphase.c:99,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Modules/_testmultiphase.c:104,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testmultiphase.c:105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:106,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testmultiphase.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - op
    - name
    - v
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 112
    functionName: Example_setattr
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - ExampleObject_CAST
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyDict_DelItemString
    - PyDict_SetItemString
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int Example_setattr(PyObject *op, char *name, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_testmultiphase.c:154,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:158,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_testmultiphase.c:158,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testmultiphase.c:158,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testmultiphase.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_GetModuleByDef(Py_TYPE(self), &def_meth_state_access) ==
        retval)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: _testmultiphase_StateAccessType_get_defining_module_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleByDef
    - Py_NewRef
    - PyType_GetModule
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testmultiphase_StateAccessType_get_defining_module_impl(StateAccessTypeObject
      *self,\n                                                         PyTypeObject
      *cls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_testmultiphase.c:175,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testmultiphase.c:175,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:176,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testmultiphase.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: _testmultiphase_StateAccessType_getmodulebydef_bad_def_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testmultiphase_StateAccessType_getmodulebydef_bad_def_impl(StateAccessTypeObject
      *self,\n                                                            PyTypeObject
      *cls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_testmultiphase.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - cls
    - n
    - twice
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: _testmultiphase_StateAccessType_increment_count_clinic_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testmultiphase_StateAccessType_increment_count_clinic_impl(StateAccessTypeObject
      *self,\n                                                            PyTypeObject
      *cls,\n                                                            int n, int
      twice)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testmultiphase.c:227,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testmultiphase.c:232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testmultiphase.c:233,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testmultiphase.c:237,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testmultiphase.c:238,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_testmultiphase.c:239,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testmultiphase.c:240,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:243,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_testmultiphase.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 255
    functionName: _StateAccessType_increment_count_noclinic
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_Check
    - PyUnicode_CompareWithASCIIString
    - PyErr_SetString
    - PyType_GetModuleState
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_StateAccessType_increment_count_noclinic(PyObject *self,\n
      \                                         PyTypeObject *defining_class,\n                                          PyObject
      *const *args,\n                                          Py_ssize_t nargs,\n
      \                                         PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_testmultiphase.c:270,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: _testmultiphase_StateAccessType_get_count_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleState
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testmultiphase_StateAccessType_get_count_impl(StateAccessTypeObject
      *self,\n                                               PyTypeObject *cls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testmultiphase.c:314,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: testexport_foo
    functionSourceFile: /src/cpython/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/cpython/Modules/_testmultiphase.c:331,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testmultiphase.c:335,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testmultiphase.c:339,1
    - Dst: PyState_AddModule
      Src: /src/cpython/Modules/_testmultiphase.c:345,1
    - Dst: PyState_RemoveModule
      Src: /src/cpython/Modules/_testmultiphase.c:351,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - mod
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 358
    functionName: call_state_registration_func
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyState_FindModule
    - PyState_RemoveModule
    - PyModule_GetDef
    - PyState_AddModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_state_registration_func(PyObject *mod, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testmultiphase.c:392,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:393,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_testmultiphase.c:399,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:400,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testmultiphase.c:405,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:406,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testmultiphase.c:410,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_testmultiphase.c:414,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 421
    functionName: execfunc
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyType_FromSpec
    - PyErr_NewException
    - PyModule_AddIntConstant
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int execfunc(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.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: PyInit__testmultiphase
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:462,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testmultiphase.c:466,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:472,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testmultiphase.c:475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:476,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Modules/_testmultiphase.c:478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 481
    functionName: createfunc_nonmodule
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyDict_SetItemString
    - PyDict_New
    - PyLong_FromLong
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createfunc_nonmodule(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: PyInit__testmultiphase_nonmodule
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_nonmodule(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testmultiphase.c:507,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 511
    functionName: nonmodule_bar
    functionSourceFile: /src/cpython/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/cpython/Modules/_testmultiphase.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: PyInit__testmultiphase_nonmodule_with_methods
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_nonmodule_with_methods(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: PyInitU__testmultiphase_zkouka_naten_evc07gi8e
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInitU__testmultiphase_zkouka_naten_evc07gi8e(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 568
    functionName: PyInitU_eckzbwbhc6jpgzcx415x
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInitU_eckzbwbhc6jpgzcx415x(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: PyInit_x
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_x(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: PyInit__testmultiphase_null_slots
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_null_slots(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: PyInit__testmultiphase_bad_slot_large
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_bad_slot_large(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: PyInit__testmultiphase_bad_slot_negative
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_bad_slot_negative(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: PyInit__testmultiphase_create_int_with_state
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_int_with_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: PyInit__testmultiphase_negative_size
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_negative_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: PyInit__testmultiphase_export_uninitialized
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_uninitialized(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: PyInit__testmultiphase_export_null
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 676
    functionName: PyInit__testmultiphase_export_raise
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_raise(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:681,1
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 683
    functionName: PyInit__testmultiphase_export_unreported_exception
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_unreported_exception(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_New
      Src: /src/cpython/Modules/_testmultiphase.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: createfunc_noop
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createfunc_noop(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 704
    functionName: PyInit__testmultiphase_multiple_create_slots
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_multiple_create_slots(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 710
    functionName: createfunc_null
    functionSourceFile: /src/cpython/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/cpython/Modules/_testmultiphase.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: PyInit__testmultiphase_create_null
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 731
    functionName: createfunc_raise
    functionSourceFile: /src/cpython/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/cpython/Modules/_testmultiphase.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: PyInit__testmultiphase_create_raise
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_raise(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:750,1
    - Dst: PyModule_New
      Src: /src/cpython/Modules/_testmultiphase.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 752
    functionName: createfunc_unreported_exception
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyModule_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createfunc_unreported_exception(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 766
    functionName: PyInit__testmultiphase_create_unreported_exception
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_unreported_exception(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 783
    functionName: PyInit__testmultiphase_nonmodule_with_exec_slots
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_nonmodule_with_exec_slots(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: execfunc_err
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int execfunc_err(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 805
    functionName: PyInit__testmultiphase_exec_err
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_exec_err(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: execfunc_raise
    functionSourceFile: /src/cpython/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/cpython/Modules/_testmultiphase.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: PyInit__testmultiphase_exec_raise
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_exec_raise(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 835
    functionName: execfunc_unreported_exception
    functionSourceFile: /src/cpython/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/cpython/Modules/_testmultiphase.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 851
    functionName: PyInit__testmultiphase_exec_unreported_exception
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_exec_unreported_exception(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testmultiphase.c:859,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testmultiphase.c:864,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 871
    functionName: meth_state_access_exec
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyModule_GetState
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int meth_state_access_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 893
    functionName: PyInit__testmultiphase_meth_state_access
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_meth_state_access(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testmultiphase.c:905,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testmultiphase.c:910,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testmultiphase.c:913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 918
    functionName: PyInit__test_module_state_shared
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - Py_DECREF
    - PyModule_AddObjectRef
    - PyUnstable_Module_SetGIL
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__test_module_state_shared(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 939
    functionName: PyInit__testmultiphase_multiple_multiple_interpreters_slots
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_multiple_multiple_interpreters_slots(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 956
    functionName: PyInit__test_non_isolated
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__test_non_isolated(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 977
    functionName: PyInit__test_shared_gil_only
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__test_shared_gil_only(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 995
    functionName: PyInit__test_no_multiple_interpreter_slot
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__test_no_multiple_interpreter_slot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_gdbmmodule.c:32,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: get_gdbm_state
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _gdbm_state
    signature: '_gdbm_state *

      get_gdbm_state(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdbm_strerror
      Src: /src/cpython/Modules/_gdbmmodule.c:46,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_gdbmmodule.c:48,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - generic_error
    argTypes:
    - _gdbm_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: set_gdbm_error
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetLocaleString
    - PyErr_SetString
    - gdbm_strerror
    linkageType: ''
    returnType: void
    signature: void set_gdbm_error(_gdbm_state *state, const char *generic_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: _gdbmobject_CAST
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _gdbmobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: check_gdbmobject_open
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_gdbmobject_open(v, err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_gdbmmodule.c:103,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_gdbmmodule.c:109,1
    - Dst: gdbm_open
      Src: /src/cpython/Modules/_gdbmmodule.c:111,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_gdbmmodule.c:113,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - state
    - file
    - flags
    - mode
    argTypes:
    - _gdbm_state*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: newgdbmobject
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - gdbm_open
    - PyErr_SetFromErrnoWithFilename
    - PyObject_GC_Track
    - PyObject_GC_New
    - set_gdbm_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newgdbmobject(_gdbm_state *state, const char *file, int flags, int mode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_gdbmmodule.c:128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: gdbm_traverse
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int gdbm_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _gdbmobject_CAST
      Src: /src/cpython/Modules/_gdbmmodule.c:135,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:136,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_gdbmmodule.c:137,1
    - Dst: gdbm_close
      Src: /src/cpython/Modules/_gdbmmodule.c:139,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_gdbmmodule.c:141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: gdbm_dealloc
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbmobject_CAST
    - Py_DECREF
    - PyObject_GC_UnTrack
    - gdbm_close
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void gdbm_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _gdbmobject_CAST
      Src: /src/cpython/Modules/_gdbmmodule.c:148,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:149,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:149,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:151,1
    - Dst: gdbm_count
      Src: /src/cpython/Modules/_gdbmmodule.c:158,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_gdbmmodule.c:160,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:163,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:168,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:178,1
    - Dst: gdbm_nextkey
      Src: /src/cpython/Modules/_gdbmmodule.c:179,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 190
    functionName: gdbm_length_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbmobject_CAST
    - gdbm_firstkey
    - PyErr_SetString
    - PyType_GetModuleState
    - gdbm_count
    - PyErr_SetFromErrno
    - free
    - gdbm_nextkey
    - Py_TYPE
    - set_gdbm_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gdbm_length_lock_held(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:196,1
    - Dst: gdbm_length_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:197,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: gdbm_length
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - gdbm_length_lock_held
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gdbm_length(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _gdbmobject_CAST
      Src: /src/cpython/Modules/_gdbmmodule.c:205,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:206,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:208,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:220,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: gdbm_bool_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbmobject_CAST
    - gdbm_firstkey
    - PyErr_SetString
    - PyType_GetModuleState
    - free
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int gdbm_bool_lock_held(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:236,1
    - Dst: gdbm_bool_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:237,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: gdbm_bool
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - gdbm_bool_lock_held
    linkageType: ''
    returnType: int
    signature: int gdbm_bool(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_gdbmmodule.c:249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - o
    - d
    - failmsg
    argTypes:
    - PyObject*
    - datum*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: parse_datum
    functionSourceFile: /src/cpython/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: _gdbmobject_CAST
      Src: /src/cpython/Modules/_gdbmmodule.c:268,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:269,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:269,1
    - Dst: parse_datum
      Src: /src/cpython/Modules/_gdbmmodule.c:271,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:275,1
    - Dst: gdbm_fetch
      Src: /src/cpython/Modules/_gdbmmodule.c:279,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_gdbmmodule.c:281,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:284,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: gdbm_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbmobject_CAST
    - parse_datum
    - PyErr_SetString
    - PyErr_SetObject
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - gdbm_fetch
    - free
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gdbm_subscript_lock_held(PyObject *op, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:293,1
    - Dst: gdbm_subscript_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:294,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: gdbm_subscript
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - gdbm_subscript_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gdbm_subscript(PyObject *op, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdbm_subscript
      Src: /src/cpython/Modules/_gdbmmodule.c:315,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_gdbmmodule.c:316,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_gdbmmodule.c:317,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_gdbmmodule.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - gdbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: _gdbm_gdbm_get_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - gdbm_subscript
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_get_impl(gdbmobject *self, PyObject *key, PyObject *default_value)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _gdbmobject_CAST
      Src: /src/cpython/Modules/_gdbmmodule.c:328,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:329,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:329,1
    - Dst: parse_datum
      Src: /src/cpython/Modules/_gdbmmodule.c:331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:335,1
    - Dst: gdbm_delete
      Src: /src/cpython/Modules/_gdbmmodule.c:341,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_gdbmmodule.c:343,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:346,1
    - Dst: parse_datum
      Src: /src/cpython/Modules/_gdbmmodule.c:352,1
    - Dst: gdbm_store
      Src: /src/cpython/Modules/_gdbmmodule.c:356,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_gdbmmodule.c:358,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - op
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 367
    functionName: gdbm_ass_sub_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbmobject_CAST
    - parse_datum
    - gdbm_store
    - PyErr_SetString
    - PyErr_SetObject
    - PyType_GetModuleState
    - gdbm_delete
    - PyErr_SetFromErrno
    - Py_TYPE
    - set_gdbm_error
    linkageType: ''
    returnType: int
    signature: int gdbm_ass_sub_lock_held(PyObject *op, PyObject *v, PyObject *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:373,1
    - Dst: gdbm_ass_sub_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:374,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: gdbm_ass_sub
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - gdbm_ass_sub_lock_held
    linkageType: ''
    returnType: int
    signature: int gdbm_ass_sub(PyObject *op, PyObject *v, PyObject *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gdbm_subscript
      Src: /src/cpython/Modules/_gdbmmodule.c:398,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_gdbmmodule.c:399,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_gdbmmodule.c:400,1
    - Dst: gdbm_ass_sub
      Src: /src/cpython/Modules/_gdbmmodule.c:401,1
    - Dst: gdbm_subscript
      Src: /src/cpython/Modules/_gdbmmodule.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - gdbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: _gdbm_gdbm_setdefault_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - gdbm_ass_sub
    - PyErr_Clear
    - gdbm_subscript
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_gdbm_gdbm_setdefault_impl(gdbmobject *self, PyObject
      *key,\n                           PyObject *default_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdbm_close
      Src: /src/cpython/Modules/_gdbmmodule.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - gdbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: _gdbm_gdbm_close_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_close_impl(gdbmobject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:444,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:445,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:447,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_gdbmmodule.c:448,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:451,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_gdbmmodule.c:453,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:457,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:459,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:462,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_gdbmmodule.c:465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:466,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:469,1
    - Dst: gdbm_nextkey
      Src: /src/cpython/Modules/_gdbmmodule.c:472,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 477
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 477
    functionName: _gdbm_gdbm_keys_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_gdbmobject_open
    - PyList_New
    - gdbm_firstkey
    - Py_DECREF
    - PyList_Append
    - PyErr_BadInternalCall
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - Py_IS_TYPE
    - free
    - gdbm_nextkey
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_keys_impl(gdbmobject *self, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:485,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:485,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:488,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_gdbmmodule.c:492,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:493,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_gdbmmodule.c:498,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_gdbmmodule.c:499,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:501,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_gdbmmodule.c:505,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_gdbmmodule.c:506,1
    - Dst: gdbm_exists
      Src: /src/cpython/Modules/_gdbmmodule.c:508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 509
    functionName: gdbm_contains_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyType_GetModuleState
    - gdbm_exists
    - PyBytes_Check
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int gdbm_contains_lock_held(PyObject *self, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:515,1
    - Dst: gdbm_contains_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:516,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: gdbm_contains
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - gdbm_contains_lock_held
    linkageType: ''
    returnType: int
    signature: int gdbm_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:540,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:541,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:543,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:544,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:546,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: _gdbm_gdbm_firstkey_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_gdbmobject_open
    - gdbm_firstkey
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - free
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_firstkey_impl(gdbmobject *self, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:581,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:582,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:586,1
    - Dst: gdbm_nextkey
      Src: /src/cpython/Modules/_gdbmmodule.c:587,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:589,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - cls
    - key
    - key_length
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 581
        line_start: 581
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 596
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 596
    functionName: _gdbm_gdbm_nextkey_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_gdbmobject_open
    - PyType_GetModuleState
    - PyBytes_FromStringAndSize
    - free
    - gdbm_nextkey
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_gdbm_gdbm_nextkey_impl(gdbmobject *self, PyTypeObject
      *cls, const char *key,\n                        Py_ssize_t key_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:617,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:618,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:619,1
    - Dst: gdbm_reorganize
      Src: /src/cpython/Modules/_gdbmmodule.c:621,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_gdbmmodule.c:623,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 631
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 631
    functionName: _gdbm_gdbm_reorganize_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_gdbmobject_open
    - PyType_GetModuleState
    - PyErr_SetFromErrno
    - gdbm_reorganize
    - set_gdbm_error
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_reorganize_impl(gdbmobject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:649,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:650,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:651,1
    - Dst: gdbm_sync
      Src: /src/cpython/Modules/_gdbmmodule.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: _gdbm_gdbm_sync_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_gdbmobject_open
    - gdbm_sync
    - PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_sync_impl(gdbmobject *self, PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:669,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:670,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:671,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:676,1
    - Dst: gdbm_delete
      Src: /src/cpython/Modules/_gdbmmodule.c:680,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 686
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 686
    functionName: _gdbm_gdbm_clear_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_gdbmobject_open
    - gdbm_firstkey
    - PyErr_SetString
    - PyType_GetModuleState
    - gdbm_delete
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_clear_impl(gdbmobject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_gdbmmodule.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: gdbm__enter__
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gdbm__enter__(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_gdbm_close_impl
      Src: /src/cpython/Modules/_gdbmmodule.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: gdbm__exit__
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbm_gdbm_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gdbm__exit__(PyObject *self, PyObject *args)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_gdbm_state
      Src: /src/cpython/Modules/_gdbmmodule.c:780,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:781,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:797,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_gdbmmodule.c:824,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_gdbmmodule.c:831,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_gdbmmodule.c:835,1
    - Dst: strlen
      Src: /src/cpython/Modules/_gdbmmodule.c:836,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_gdbmmodule.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:837,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:838,1
    - Dst: newgdbmobject
      Src: /src/cpython/Modules/_gdbmmodule.c:841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:842,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - module
    - filename
    - flags
    - mode
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 844
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 844
    functionName: dbmopen_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - get_gdbm_state
    - Py_DECREF
    - strlen
    - newgdbmobject
    - PyErr_SetString
    - PyUnicode_FSConverter
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndbmopen_impl(PyObject *module, PyObject *filename, const
      char *flags,\n             int mode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_gdbm_state
      Src: /src/cpython/Modules/_gdbmmodule.c:869,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_gdbmmodule.c:870,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_gdbmmodule.c:875,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_gdbmmodule.c:879,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_gdbmmodule.c:882,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_gdbmmodule.c:889,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_gdbmmodule.c:891,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 896
    functionName: _gdbm_exec
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_gdbm_state
    - PyModule_AddStringConstant
    - Py_BuildValue
    - PyType_FromModuleAndSpec
    - PyErr_NewException
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int _gdbm_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gdbm_state
      Src: /src/cpython/Modules/_gdbmmodule.c:901,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_gdbmmodule.c:902,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_gdbmmodule.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 905
    functionName: _gdbm_module_traverse
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - get_gdbm_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _gdbm_module_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gdbm_state
      Src: /src/cpython/Modules/_gdbmmodule.c:910,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_gdbmmodule.c:911,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_gdbmmodule.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 914
    functionName: _gdbm_module_clear
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - get_gdbm_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _gdbm_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_module_clear
      Src: /src/cpython/Modules/_gdbmmodule.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 920
    functionName: _gdbm_module_free
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbm_module_clear
    linkageType: ''
    returnType: void
    signature: void _gdbm_module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_gdbmmodule.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 945
    functionName: PyInit__gdbm
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__gdbm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - obj
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: GET_MEMBER
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_MEMBER(type, obj, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: CLEAR_PTR_TAG
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_PTR_TAG(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - obj
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: GET_MEMBER_NO_TAG
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_MEMBER_NO_TAG(type, obj, offset)
  - 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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: MAX
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: RemoteUnwinder_CAST
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RemoteUnwinder_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - unwinder
    - ','
    - exc_type
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: set_exception_cause
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_exception_cause(unwinder, exc_type, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:329,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: cached_code_metadata_destroy
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void cached_code_metadata_destroy(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_remote_debugging_module.c:336,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: RemoteDebugging_GetState
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: RemoteDebuggingState
    signature: 'RemoteDebuggingState *

      RemoteDebugging_GetState(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_remote_debugging_module.c:344,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:345,1
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging_module.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: RemoteDebugging_GetStateFromType
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - RemoteDebugging_GetState
    - assert
    - PyType_GetModule
    linkageType: ''
    returnType: RemoteDebuggingState
    signature: 'RemoteDebuggingState *

      RemoteDebugging_GetStateFromType(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetStateFromType
      Src: /src/cpython/Modules/_remote_debugging_module.c:354,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging_module.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 357
    functionName: RemoteDebugging_GetStateFromObject
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - RemoteDebugging_GetStateFromType
    - Py_TYPE
    linkageType: ''
    returnType: RemoteDebuggingState
    signature: 'RemoteDebuggingState *

      RemoteDebugging_GetStateFromObject(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - RemoteDebuggingState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: RemoteDebugging_InitState
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RemoteDebugging_InitState(RemoteDebuggingState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: is_prerelease_version
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_prerelease_version(uint64_t version)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Modules/_remote_debugging_module.c:374,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:376,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Modules/_remote_debugging_module.c:384,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:385,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Modules/_remote_debugging_module.c:392,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:393,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging_module.c:404,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:421,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - debug_offsets
    argTypes:
    - struct _Py_DebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 429
    functionName: validate_debug_offsets
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - is_prerelease_version
    - PyErr_Format
    - PyErr_SetString
    - memcmp
    linkageType: ''
    returnType: int
    signature: int validate_debug_offsets(struct _Py_DebugOffsets *debug_offsets)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:441,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:447,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:452,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:458,1
    - Dst: processor
      Src: /src/cpython/Modules/_remote_debugging_module.c:463,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:468,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - unwinder
    - processor
    - context
    argTypes:
    - RemoteUnwinderObject*
    - thread_processor_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 480
    functionName: iterate_threads
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    - processor
    linkageType: ''
    returnType: int
    signature: "int iterate_threads(\n    RemoteUnwinderObject *unwinder,\n    thread_processor_func
      processor,\n    void *context\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:491,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:493,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:497,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:498,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:499,1
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:505,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:506,1
    - Dst: read_Py_ssize_t
      Src: /src/cpython/Modules/_remote_debugging_module.c:512,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:513,1
    - Dst: processor
      Src: /src/cpython/Modules/_remote_debugging_module.c:519,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - unwinder
    - set_addr
    - processor
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - set_entry_processor_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 530
    functionName: iterate_set_entries
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - read_py_ptr
    - set_exception_cause
    - read_Py_ssize_t
    - processor
    - _Py_RemoteDebug_PagedReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int iterate_set_entries(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      set_addr,\n    set_entry_processor_func processor,\n    void *context\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_task_and_waiters
      Src: /src/cpython/Modules/_remote_debugging_module.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unwinder
    - key_addr
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 541
    functionName: process_waiter_task
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - process_task_and_waiters
    linkageType: ''
    returnType: int
    signature: "int process_waiter_task(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      key_addr,\n    void *context\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_task
      Src: /src/cpython/Modules/_remote_debugging_module.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unwinder
    - key_addr
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 552
    functionName: process_task_parser
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - parse_task
    linkageType: ''
    returnType: int
    signature: "int process_task_parser(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      key_addr,\n    void *context\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type_name
    - ','
    - c_type
    - ','
    - error_msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 569
    functionName: DEFINE_MEMORY_READER
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_MEMORY_READER(type_name, c_type, error_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:577,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - unwinder
    - address
    - ptr_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 583
    functionName: read_py_ptr
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - set_exception_cause
    - read_ptr
    linkageType: ''
    returnType: int
    signature: int read_py_ptr(RemoteUnwinderObject *unwinder, uintptr_t address,
      uintptr_t *ptr_addr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:600,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:607,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:611,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging_module.c:613,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:615,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:619,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:621,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:622,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:627,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:629,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_remote_debugging_module.c:634,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:636,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:640,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:641,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:646,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - unwinder
    - address
    - max_len
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - Py_ssize_t
    assertStmts:
    - condition: (result != NULL)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    constantsTouched: []
    func_position:
      end: 649
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 649
    functionName: read_py_str
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - PyUnicode_FromStringAndSize
    - set_exception_cause
    - PyMem_RawFree
    - PyMem_RawMalloc
    - PyErr_Format
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nread_py_str(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      address,\n    Py_ssize_t max_len\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:662,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:669,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:673,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging_module.c:675,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:677,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:681,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:683,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:684,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:689,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:691,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_remote_debugging_module.c:696,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:698,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:702,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:703,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:708,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - unwinder
    - address
    - max_len
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - Py_ssize_t
    assertStmts:
    - condition: (result != NULL)
      pos:
        line_end: 702
        line_start: 702
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    constantsTouched: []
    func_position:
      end: 711
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 711
    functionName: read_py_bytes
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - PyMem_RawFree
    - PyBytes_FromStringAndSize
    - PyMem_RawMalloc
    - PyErr_Format
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nread_py_bytes(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t address,\n    Py_ssize_t max_len\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:723,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:729,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:733,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:745,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:747,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:748,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging_module.c:751,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:754,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:756,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:757,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:761,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:768,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:783,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:789,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - unwinder
    - address
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 791
    functionName: read_py_long
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - PyMem_RawFree
    - PyMem_RawMalloc
    - memcpy
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyErr_NoMemory
    linkageType: ''
    returnType: long
    signature: "long read_py_long(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      address\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: search_windows_map_for_section
      Src: /src/cpython/Modules/_remote_debugging_module.c:805,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_remote_debugging_module.c:808,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:809,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_remote_debugging_module.c:810,1
    - Dst: search_linux_map_for_section
      Src: /src/cpython/Modules/_remote_debugging_module.c:814,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_remote_debugging_module.c:817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:818,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_remote_debugging_module.c:819,1
    - Dst: search_map_for_section
      Src: /src/cpython/Modules/_remote_debugging_module.c:823,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging_module.c:825,1
    - Dst: search_map_for_section
      Src: /src/cpython/Modules/_remote_debugging_module.c:826,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_remote_debugging_module.c:830,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:831,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_remote_debugging_module.c:832,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_remote_debugging_module.c:835,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 839
    functionName: _Py_RemoteDebug_GetAsyncioDebugAddress
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - PyErr_GetRaisedException
    - PyErr_SetString
    - search_windows_map_for_section
    - search_linux_map_for_section
    - PyErr_Clear
    - search_map_for_section
    - Py_UNREACHABLE
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_RemoteDebug_GetAsyncioDebugAddress(proc_handle_t* handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_GetAsyncioDebugAddress
      Src: /src/cpython/Modules/_remote_debugging_module.c:845,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:847,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:852,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - unwinder
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 857
    functionName: read_async_debug
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_GetAsyncioDebugAddress
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    linkageType: ''
    returnType: int
    signature: "int read_async_debug(\n    RemoteUnwinderObject *unwinder\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:870,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:876,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging_module.c:880,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:884,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:890,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:896,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:898,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:902,1
    - Dst: read_py_long
      Src: /src/cpython/Modules/_remote_debugging_module.c:907,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:909,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_remote_debugging_module.c:912,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:916,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:917,1
    - Dst: read_py_str
      Src: /src/cpython/Modules/_remote_debugging_module.c:921,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - unwinder
    - task_address
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 926
    functionName: parse_task_name
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - read_py_str
    - GET_MEMBER_NO_TAG
    - PyUnicode_FromFormat
    - PyErr_SetString
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - read_py_long
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nparse_task_name(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t task_address\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging_module.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unwinder
    - task_address
    - awaited_by
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 934
    functionName: parse_task_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - process_task_awaited_by
    linkageType: ''
    returnType: int
    signature: "int parse_task_awaited_by(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t task_address,\n    PyObject *awaited_by\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:945,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:951,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:955,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:956,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:959,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging_module.c:963,1
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:967,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:972,1
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:978,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:983,1
    - Dst: parse_coro_chain
      Src: /src/cpython/Modules/_remote_debugging_module.c:998,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1000,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - unwinder
    - gi_iframe_addr
    - gen_type_addr
    - render_to
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1008
    functionName: handle_yield_from_frame
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - read_py_ptr
    - set_exception_cause
    - GET_MEMBER_NO_TAG
    - PyErr_SetString
    - parse_coro_chain
    - read_ptr
    - _Py_RemoteDebug_PagedReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int handle_yield_from_frame(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t gi_iframe_addr,\n    uintptr_t gen_type_addr,\n    PyObject *render_to\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:1016,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1020,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1026,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1030,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1035,1
    - Dst: parse_frame_object
      Src: /src/cpython/Modules/_remote_debugging_module.c:1043,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1044,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:1052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1053,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1057,1
    - Dst: handle_yield_from_frame
      Src: /src/cpython/Modules/_remote_debugging_module.c:1060,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - unwinder
    - coro_address
    - render_to
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject*
    assertStmts:
    - condition: ((void*)coro_address != NULL)
      pos:
        line_end: 1015
        line_start: 1015
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    constantsTouched: []
    func_position:
      end: 1064
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1064
    functionName: parse_coro_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - Py_DECREF
    - parse_frame_object
    - PyList_Append
    - handle_yield_from_frame
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - assert
    linkageType: ''
    returnType: int
    signature: "int parse_coro_chain(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      coro_address,\n    PyObject *render_to\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1078,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1080,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging_module.c:1085,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1087,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1092,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1095,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging_module.c:1099,1
    - Dst: parse_coro_chain
      Src: /src/cpython/Modules/_remote_debugging_module.c:1102,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1103,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Modules/_remote_debugging_module.c:1107,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1108,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging_module.c:1114,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1115,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1117,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1122,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1123,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1128,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1129,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1130,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - unwinder
    - task_address
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1066
    functionDepth: 4
    functionLinenumber: 1066
    functionLinenumberEnd: 1132
    functionName: create_task_result
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyList_Reverse
    - set_exception_cause
    - RemoteDebugging_GetStateFromObject
    - PyStructSequence_SetItem
    - GET_MEMBER_NO_TAG
    - PyLong_FromUnsignedLongLong
    - parse_coro_chain
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncreate_task_result(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t task_address\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: read_char
      Src: /src/cpython/Modules/_remote_debugging_module.c:1144,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1149,1
    - Dst: create_task_result
      Src: /src/cpython/Modules/_remote_debugging_module.c:1154,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1156,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging_module.c:1161,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1162,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1164,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1167,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1169,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging_module.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1174,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1175,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1178,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1179,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:1181,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1190,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - unwinder
    - task_address
    - render_to
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1134
    functionDepth: 5
    functionLinenumber: 1134
    functionLinenumberEnd: 1192
    functionName: parse_task
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - RemoteDebugging_GetStateFromObject
    - set_exception_cause
    - Py_DECREF
    - PyStructSequence_SetItem
    - PyList_Append
    - read_char
    - PyLong_FromUnsignedLongLong
    - PyStructSequence_New
    - create_task_result
    linkageType: ''
    returnType: int
    signature: "int parse_task(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      task_address,\n    PyObject *render_to\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_task_name
      Src: /src/cpython/Modules/_remote_debugging_module.c:1207,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1209,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1213,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1215,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1220,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1222,1
    - Dst: parse_task
      Src: /src/cpython/Modules/_remote_debugging_module.c:1226,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1227,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging_module.c:1231,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1233,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging_module.c:1237,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1238,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1240,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1244,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1245,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1246,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1247,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1256,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1263,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1266,1
    - Dst: parse_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging_module.c:1267,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1268,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1277,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1278,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1279,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1280,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1281,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 4
    argNames:
    - unwinder
    - task_addr
    - task_info
    - result
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1194
    functionDepth: 6
    functionLinenumber: 1194
    functionLinenumberEnd: 1283
    functionName: process_single_task_node
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - RemoteDebugging_GetStateFromObject
    - set_exception_cause
    - PyStructSequence_SetItem
    - Py_DECREF
    - PyList_Append
    - PyLong_FromUnsignedLongLong
    - parse_task
    - parse_task_awaited_by
    - parse_task_name
    - PyStructSequence_New
    - PyStructSequence_GetItem
    linkageType: ''
    returnType: int
    signature: "int process_single_task_node(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t task_addr,\n    PyObject **task_info,\n    PyObject *result\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_awaited_by
      Src: /src/cpython/Modules/_remote_debugging_module.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - unwinder
    - thread_state_addr
    - tid
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1286
    functionDepth: 1
    functionLinenumber: 1286
    functionLinenumberEnd: 1296
    functionName: process_thread_for_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - append_awaited_by
    linkageType: ''
    returnType: int
    signature: "int process_thread_for_awaited_by(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t thread_state_addr,\n    unsigned long tid,\n    void *context\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1308,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1311,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging_module.c:1315,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1320,1
    - Dst: iterate_set_entries
      Src: /src/cpython/Modules/_remote_debugging_module.c:1323,1
    - Dst: processor
      Src: /src/cpython/Modules/_remote_debugging_module.c:1326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - unwinder
    - task_address
    - processor
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - set_entry_processor_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1328
    functionName: process_task_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - iterate_set_entries
    - set_exception_cause
    - GET_MEMBER_NO_TAG
    - processor
    - _Py_RemoteDebug_PagedReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int process_task_awaited_by(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t task_address,\n    set_entry_processor_func processor,\n    void
      *context\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_task_code_object
      Src: /src/cpython/Modules/_remote_debugging_module.c:1338,1
    - Dst: process_single_task_node
      Src: /src/cpython/Modules/_remote_debugging_module.c:1344,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging_module.c:1349,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:1350,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging_module.c:1351,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1352,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging_module.c:1355,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:1356,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging_module.c:1357,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging_module.c:1358,1
    - Dst: PyList_Clear
      Src: /src/cpython/Modules/_remote_debugging_module.c:1361,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1362,1
    - Dst: parse_async_frame_chain
      Src: /src/cpython/Modules/_remote_debugging_module.c:1367,1
    - Dst: process_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging_module.c:1372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - unwinder
    - running_task_addr
    - thread_state_addr
    - result
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t
    - PyObject*
    assertStmts:
    - condition: (coro_chain != NULL)
      pos:
        line_end: 1349
        line_start: 1349
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    - condition: (coro_info != NULL)
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    - condition: (frame_chain != NULL)
      pos:
        line_end: 1357
        line_start: 1357
        source_file: /src/cpython/Modules/_remote_debugging_module.c
    constantsTouched: []
    func_position:
      end: 1377
      start: 1330
    functionDepth: 7
    functionLinenumber: 1330
    functionLinenumberEnd: 1377
    functionName: process_running_task_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - set_exception_cause
    - PyList_GET_SIZE
    - parse_async_frame_chain
    - PyList_Clear
    - get_task_code_object
    - process_single_task_node
    - process_task_awaited_by
    - PyStructSequence_GET_ITEM
    - assert
    linkageType: ''
    returnType: int
    signature: "int process_running_task_chain(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t running_task_addr,\n    uintptr_t thread_state_addr,\n    PyObject
      *result\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_running_task_in_thread
      Src: /src/cpython/Modules/_remote_debugging_module.c:1391,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1397,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1399,1
    - Dst: process_running_task_chain
      Src: /src/cpython/Modules/_remote_debugging_module.c:1403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1404,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1405,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging_module.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1412,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1413,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging_module.c:1417,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1421,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1422,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1426,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1427,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:1429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1430,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1434,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - unwinder
    - thread_state_addr
    - tid
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1380
    functionDepth: 8
    functionLinenumber: 1380
    functionLinenumberEnd: 1438
    functionName: process_thread_for_async_stack_trace
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - RemoteDebugging_GetStateFromObject
    - Py_DECREF
    - set_exception_cause
    - PyStructSequence_SetItem
    - PyList_Append
    - process_running_task_chain
    - PyLong_FromUnsignedLong
    - PyStructSequence_New
    - find_running_task_in_thread
    linkageType: ''
    returnType: int
    signature: "int process_thread_for_async_stack_trace(\n    RemoteUnwinderObject
      *unwinder,\n    uintptr_t thread_state_addr,\n    unsigned long tid,\n    void
      *context\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: process_single_task_node
      Src: /src/cpython/Modules/_remote_debugging_module.c:1447,1
    - Dst: process_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging_module.c:1452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - unwinder
    - task_addr
    - result
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1440
    functionDepth: 7
    functionLinenumber: 1440
    functionLinenumberEnd: 1453
    functionName: process_task_and_waiters
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - process_single_task_node
    - process_task_awaited_by
    linkageType: ''
    returnType: int
    signature: "int process_task_and_waiters(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t task_addr,\n    PyObject *result\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:1464,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1469,1
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:1478,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - unwinder
    - thread_state_addr
    - running_task_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1488
    functionName: find_running_task_in_thread
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - read_py_ptr
    - set_exception_cause
    - read_ptr
    linkageType: ''
    returnType: int
    signature: "int find_running_task_in_thread(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t thread_state_addr,\n    uintptr_t *running_task_addr\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:1494,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1498,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:1503,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1504,1
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:1510,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1513,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:1518,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - unwinder
    - task_addr
    - code_obj_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1524
    functionName: get_task_code_object
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - read_py_ptr
    - PyErr_SetString
    - set_exception_cause
    linkageType: ''
    returnType: int
    signature: int get_task_code_object(RemoteUnwinderObject *unwinder, uintptr_t
      task_addr, uintptr_t *code_obj_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1543,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1538
    functionDepth: 1
    functionLinenumber: 1538
    functionLinenumberEnd: 1546
    functionName: tlbc_cache_entry_destroy
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void tlbc_cache_entry_destroy(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_remote_debugging_module.c:1552,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging_module.c:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - code_addr
    - current_generation
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1561
    functionName: get_tlbc_cache_entry
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_set
    - _Py_hashtable_get
    linkageType: ''
    returnType: TLBCCacheEntry
    signature: 'TLBCCacheEntry *

      get_tlbc_cache_entry(RemoteUnwinderObject *self, uintptr_t code_addr, uint32_t
      current_generation)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:1571,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:1572,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:1579,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1585,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:1586,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1587,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:1593,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:1598,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:1604,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1606,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1607,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1611,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1612,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1613,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:1618,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1620,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1621,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1622,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging_module.c:1632,1
    - Dst: tlbc_cache_entry_destroy
      Src: /src/cpython/Modules/_remote_debugging_module.c:1633,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1634,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 4
    argNames:
    - unwinder
    - code_addr
    - tlbc_array_addr
    - generation
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1563
    functionDepth: 2
    functionLinenumber: 1563
    functionLinenumberEnd: 1639
    functionName: cache_tlbc_array
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - set_exception_cause
    - PyMem_RawFree
    - PyErr_SetString
    - PyMem_RawMalloc
    - _Py_hashtable_set
    - read_ptr
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyErr_NoMemory
    - tlbc_cache_entry_destroy
    linkageType: ''
    returnType: int
    signature: int cache_tlbc_array(RemoteUnwinderObject *unwinder, uintptr_t code_addr,
      uintptr_t tlbc_array_addr, uint32_t generation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1663
    functionName: scan_varint
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scan_varint(const uint8_t **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging_module.c:1668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1675
    functionName: scan_signed_varint
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - scan_varint
    linkageType: ''
    returnType: int
    signature: int scan_signed_varint(const uint8_t **ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: scan_signed_varint
      Src: /src/cpython/Modules/_remote_debugging_module.c:1696,1
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging_module.c:1698,1
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging_module.c:1699,1
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging_module.c:1700,1
    - Dst: scan_signed_varint
      Src: /src/cpython/Modules/_remote_debugging_module.c:1704,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 4
    argNames:
    - addrq
    - linetable
    - firstlineno
    - info
    argTypes:
    - uintptr_t
    - char*
    - int
    - LocationInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1735
    functionName: parse_linetable
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - scan_signed_varint
    - scan_varint
    linkageType: ''
    returnType: bool
    signature: bool parse_linetable(const uintptr_t addrq, const char* linetable,
      int firstlineno, LocationInfo* info)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_remote_debugging_module.c:1766,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1771,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1774,1
    - Dst: read_py_str
      Src: /src/cpython/Modules/_remote_debugging_module.c:1778,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1779,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1781,1
    - Dst: read_py_str
      Src: /src/cpython/Modules/_remote_debugging_module.c:1785,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1786,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1788,1
    - Dst: read_py_bytes
      Src: /src/cpython/Modules/_remote_debugging_module.c:1792,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1793,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1795,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:1799,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1801,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1802,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1809,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging_module.c:1812,1
    - Dst: cached_code_metadata_destroy
      Src: /src/cpython/Modules/_remote_debugging_module.c:1813,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1814,1
    - Dst: get_tlbc_cache_entry
      Src: /src/cpython/Modules/_remote_debugging_module.c:1836,1
    - Dst: cache_tlbc_array
      Src: /src/cpython/Modules/_remote_debugging_module.c:1840,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1841,1
    - Dst: get_tlbc_cache_entry
      Src: /src/cpython/Modules/_remote_debugging_module.c:1844,1
    - Dst: parse_linetable
      Src: /src/cpython/Modules/_remote_debugging_module.c:1871,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_remote_debugging_module.c:1871,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging_module.c:1877,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1879,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging_module.c:1883,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:1884,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1886,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1890,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1891,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1892,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1893,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:1894,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1900,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1901,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1902,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1903,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:1904,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 107
    argCount: 6
    argNames:
    - unwinder
    - result
    - address
    - instruction_pointer
    - previous_frame
    - tlbc_index
    argTypes:
    - RemoteUnwinderObject*
    - PyObject**
    - uintptr_t
    - uintptr_t
    - uintptr_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1741
    functionDepth: 4
    functionLinenumber: 1741
    functionLinenumberEnd: 1906
    functionName: parse_code_object
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromLong
    - GET_MEMBER
    - Py_INCREF
    - set_exception_cause
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyStructSequence_New
    - cached_code_metadata_destroy
    - read_py_str
    - parse_linetable
    - PyMem_RawMalloc
    - _Py_hashtable_set
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - cache_tlbc_array
    - get_tlbc_cache_entry
    - read_py_bytes
    - RemoteDebugging_GetStateFromObject
    - PyStructSequence_SetItem
    - _Py_hashtable_get
    linkageType: ''
    returnType: int
    signature: "int parse_code_object(RemoteUnwinderObject *unwinder,\n                  PyObject
      **result,\n                  uintptr_t address,\n                  uintptr_t
      instruction_pointer,\n                  uintptr_t *previous_frame,\n                  int32_t
      tlbc_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1916,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chunks
    argTypes:
    - StackChunkList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1912
    functionDepth: 1
    functionLinenumber: 1912
    functionLinenumberEnd: 1919
    functionName: cleanup_stack_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void cleanup_stack_chunks(StackChunkList *chunks)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:1930,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1932,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1933,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1937,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1938,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1939,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:1944,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:1946,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1948,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1949,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1953,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:1954,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1955,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - unwinder
    - chunk_addr
    - chunk_info
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - StackChunkInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1965
    functionName: process_single_stack_chunk
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - PyMem_RawFree
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: "int process_single_stack_chunk(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t chunk_addr,\n    StackChunkInfo *chunk_info\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:1977,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1978,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:1982,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1984,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1985,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/_remote_debugging_module.c:1993,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:1995,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:1996,1
    - Dst: process_single_stack_chunk
      Src: /src/cpython/Modules/_remote_debugging_module.c:2003,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2004,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2009,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:2019,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging_module.c:2021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - unwinder
    - tstate_addr
    - out_chunks
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - StackChunkList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1967
    functionDepth: 2
    functionLinenumber: 1967
    functionLinenumberEnd: 2023
    functionName: copy_stack_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - PyMem_RawFree
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - read_ptr
    - process_single_stack_chunk
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: "int copy_stack_chunks(RemoteUnwinderObject *unwinder,\n                  uintptr_t
      tstate_addr,\n                  StackChunkList *out_chunks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - chunks
    - remote_ptr
    argTypes:
    - StackChunkList*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2025
    functionDepth: 0
    functionLinenumber: 2025
    functionLinenumberEnd: 2037
    functionName: find_frame_in_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      find_frame_in_chunks(StackChunkList *chunks, uintptr_t remote_ptr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_frame_in_chunks
      Src: /src/cpython/Modules/_remote_debugging_module.c:2047,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2049,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2054,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging_module.c:2055,1
    - Dst: is_frame_valid
      Src: /src/cpython/Modules/_remote_debugging_module.c:2056,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2061,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2067,1
    - Dst: parse_code_object
      Src: /src/cpython/Modules/_remote_debugging_module.c:2071,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - unwinder
    - result
    - address
    - previous_frame
    - chunks
    argTypes:
    - RemoteUnwinderObject*
    - PyObject**
    - uintptr_t
    - uintptr_t*
    - StackChunkList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2039
    functionDepth: 5
    functionLinenumber: 2039
    functionLinenumberEnd: 2072
    functionName: parse_frame_from_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - is_frame_valid
    - parse_code_object
    - GET_MEMBER_NO_TAG
    - find_frame_in_chunks
    linkageType: ''
    returnType: int
    signature: "int parse_frame_from_chunks(\n    RemoteUnwinderObject *unwinder,\n
      \   PyObject **result,\n    uintptr_t address,\n    uintptr_t *previous_frame,\n
      \   StackChunkList *chunks\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2090,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2096,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2101,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2102,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2116,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - all_threads
    - unwinder
    - runtime_start_address
    - interpreter_state
    - tstate
    argTypes:
    - int
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t*
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2078
    functionDepth: 1
    functionLinenumber: 2078
    functionLinenumberEnd: 2126
    functionName: populate_initial_state_data
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyErr_SetString
    - set_exception_cause
    linkageType: ''
    returnType: int
    signature: "int populate_initial_state_data(\n    int all_threads,\n    RemoteUnwinderObject
      *unwinder,\n    uintptr_t runtime_start_address,\n    uintptr_t *interpreter_state,\n
      \   uintptr_t *tstate\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging_module.c:2136,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - unwinder
    - address_of_thread
    - frame
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2149
    functionName: find_running_frame
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - set_exception_cause
    - read_ptr
    linkageType: ''
    returnType: int
    signature: "int find_running_frame(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      address_of_thread,\n    uintptr_t *frame\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2167,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2168,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2172,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2173,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging_module.c:2174,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2175,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - unwinder
    - frame_addr
    - code_object_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2180
    functionName: is_frame_valid
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int is_frame_valid(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      frame_addr,\n    uintptr_t code_object_addr\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2193,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2200,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2204,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging_module.c:2205,1
    - Dst: is_frame_valid
      Src: /src/cpython/Modules/_remote_debugging_module.c:2206,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2211,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2217,1
    - Dst: parse_code_object
      Src: /src/cpython/Modules/_remote_debugging_module.c:2222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - unwinder
    - result
    - address
    - address_of_code_object
    - previous_frame
    argTypes:
    - RemoteUnwinderObject*
    - PyObject**
    - uintptr_t
    - uintptr_t*
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2182
    functionDepth: 5
    functionLinenumber: 2182
    functionLinenumberEnd: 2223
    functionName: parse_frame_object
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - is_frame_valid
    - parse_code_object
    - GET_MEMBER_NO_TAG
    - _Py_RemoteDebug_PagedReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int parse_frame_object(\n    RemoteUnwinderObject *unwinder,\n    PyObject**
      result,\n    uintptr_t address,\n    uintptr_t* address_of_code_object,\n    uintptr_t*
      previous_frame\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_running_frame
      Src: /src/cpython/Modules/_remote_debugging_module.c:2233,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2234,1
    - Dst: parse_frame_object
      Src: /src/cpython/Modules/_remote_debugging_module.c:2241,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2250,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:2258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2259,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - unwinder
    - calls
    - address_of_thread
    - running_task_code_obj
    argTypes:
    - RemoteUnwinderObject*
    - PyObject*
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2225
    functionDepth: 6
    functionLinenumber: 2225
    functionLinenumberEnd: 2272
    functionName: parse_async_frame_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - set_exception_cause
    - Py_DECREF
    - parse_frame_object
    - PyList_Append
    - find_running_frame
    linkageType: ''
    returnType: int
    signature: "int parse_async_frame_chain(\n    RemoteUnwinderObject *unwinder,\n
      \   PyObject *calls,\n    uintptr_t address_of_thread,\n    uintptr_t running_task_code_obj\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2286,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2288,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2295,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2297,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2298,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2302,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2303,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2305,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2309,1
    - Dst: process_single_task_node
      Src: /src/cpython/Modules/_remote_debugging_module.c:2312,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2313,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2318,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2320,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - unwinder
    - head_addr
    - result
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2278
    functionDepth: 7
    functionLinenumber: 2278
    functionLinenumberEnd: 2329
    functionName: append_awaited_by_for_thread
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - set_exception_cause
    - PyErr_SetString
    - process_single_task_node
    - _Py_RemoteDebug_PagedReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int append_awaited_by_for_thread(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t head_addr,\n    PyObject *result\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging_module.c:2338,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2340,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2346,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2347,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging_module.c:2351,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2355,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2356,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:2360,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:2361,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:2362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2363,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2367,1
    - Dst: append_awaited_by_for_thread
      Src: /src/cpython/Modules/_remote_debugging_module.c:2369,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - unwinder
    - tid
    - head_addr
    - result
    argTypes:
    - RemoteUnwinderObject*
    - unsigned long
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2331
    functionDepth: 8
    functionLinenumber: 2331
    functionLinenumberEnd: 2376
    functionName: append_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - RemoteDebugging_GetStateFromObject
    - set_exception_cause
    - Py_DECREF
    - PyStructSequence_SetItem
    - PyList_Append
    - append_awaited_by_for_thread
    - PyLong_FromUnsignedLong
    - PyStructSequence_New
    linkageType: ''
    returnType: int
    signature: "int append_awaited_by(\n    RemoteUnwinderObject *unwinder,\n    unsigned
      long tid,\n    uintptr_t head_addr,\n    PyObject *result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2399,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2400,1
    - Dst: parse_frame_from_chunks
      Src: /src/cpython/Modules/_remote_debugging_module.c:2405,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging_module.c:2406,1
    - Dst: parse_frame_object
      Src: /src/cpython/Modules/_remote_debugging_module.c:2408,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2409,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging_module.c:2419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2422,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2423,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:2427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2428,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2432,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - unwinder
    - initial_frame_addr
    - chunks
    - frame_info
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - StackChunkList*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2382
    functionDepth: 6
    functionLinenumber: 2382
    functionLinenumberEnd: 2439
    functionName: process_frame_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - set_exception_cause
    - Py_DECREF
    - parse_frame_object
    - PyList_Append
    - PyErr_SetString
    - parse_frame_from_chunks
    - PyErr_Format
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int process_frame_chain(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      initial_frame_addr,\n    StackChunkList *chunks,\n    PyObject *frame_info\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2452,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2455,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2459,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2461,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2463,1
    - Dst: copy_stack_chunks
      Src: /src/cpython/Modules/_remote_debugging_module.c:2467,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2468,1
    - Dst: process_frame_chain
      Src: /src/cpython/Modules/_remote_debugging_module.c:2472,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2473,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2477,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_remote_debugging_module.c:2479,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2480,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2482,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging_module.c:2486,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2487,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2489,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:2493,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging_module.c:2494,1
    - Dst: cleanup_stack_chunks
      Src: /src/cpython/Modules/_remote_debugging_module.c:2496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2500,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2501,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2502,1
    - Dst: cleanup_stack_chunks
      Src: /src/cpython/Modules/_remote_debugging_module.c:2503,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - unwinder
    - current_tstate
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2441
    functionDepth: 7
    functionLinenumber: 2441
    functionLinenumberEnd: 2505
    functionName: unwind_stack_for_thread
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - PyList_New
    - Py_XDECREF
    - RemoteDebugging_GetStateFromObject
    - set_exception_cause
    - PyStructSequence_SetItem
    - cleanup_stack_chunks
    - process_frame_chain
    - copy_stack_chunks
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyLong_FromLongLong
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunwind_stack_for_thread(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t *current_tstate\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2557,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2564,1
    - Dst: _Py_RemoteDebug_InitProcHandle
      Src: /src/cpython/Modules/_remote_debugging_module.c:2573,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2574,1
    - Dst: _Py_RemoteDebug_GetPyRuntimeAddress
      Src: /src/cpython/Modules/_remote_debugging_module.c:2578,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2580,1
    - Dst: _Py_RemoteDebug_ReadDebugOffsets
      Src: /src/cpython/Modules/_remote_debugging_module.c:2584,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2588,1
    - Dst: validate_debug_offsets
      Src: /src/cpython/Modules/_remote_debugging_module.c:2593,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2594,1
    - Dst: read_async_debug
      Src: /src/cpython/Modules/_remote_debugging_module.c:2600,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging_module.c:2601,1
    - Dst: memset
      Src: /src/cpython/Modules/_remote_debugging_module.c:2602,1
    - Dst: populate_initial_state_data
      Src: /src/cpython/Modules/_remote_debugging_module.c:2606,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2609,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/_remote_debugging_module.c:2613,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2621,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2622,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/_remote_debugging_module.c:2629,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging_module.c:2637,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2638,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2639,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 5
    argNames:
    - self
    - pid
    - all_threads
    - only_active_thread
    - debug
    argTypes:
    - RemoteUnwinderObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2548
    functionDepth: 3
    functionLinenumber: 2548
    functionLinenumberEnd: 2645
    functionName: _remote_debugging_RemoteUnwinder___init___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_GetPyRuntimeAddress
    - set_exception_cause
    - _Py_RemoteDebug_InitProcHandle
    - PyErr_SetString
    - _Py_RemoteDebug_ReadDebugOffsets
    - memset
    - populate_initial_state_data
    - _Py_hashtable_new_full
    - PyErr_NoMemory
    - _Py_hashtable_destroy
    - validate_debug_offsets
    - PyErr_Clear
    - read_async_debug
    linkageType: ''
    returnType: int
    signature: "int _remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject
      *self,\n                                               int pid, int all_threads,\n
      \                                              int only_active_thread,\n                                               int
      debug)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging_module.c:2692,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2697,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2702,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Modules/_remote_debugging_module.c:2707,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2715,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2720,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2724,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2726,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2734,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Modules/_remote_debugging_module.c:2738,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging_module.c:2748,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2754,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2756,1
    - Dst: unwind_stack_for_thread
      Src: /src/cpython/Modules/_remote_debugging_module.c:2761,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:2763,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2764,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging_module.c:2768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2769,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:2770,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2774,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging_module.c:2788,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2685
    functionDepth: 8
    functionLinenumber: 2685
    functionLinenumberEnd: 2790
    functionName: _remote_debugging_RemoteUnwinder_get_stack_trace_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - PyList_New
    - set_exception_cause
    - Py_DECREF
    - PyList_Append
    - _Py_RemoteDebug_ClearCache
    - unwind_stack_for_thread
    - _Py_hashtable_clear
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_stack_trace_impl(RemoteUnwinderObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2843,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2844,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2848,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2850,1
    - Dst: iterate_threads
      Src: /src/cpython/Modules/_remote_debugging_module.c:2855,1
    - Dst: append_awaited_by
      Src: /src/cpython/Modules/_remote_debugging_module.c:2867,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2869,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging_module.c:2873,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging_module.c:2877,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2878,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2838
    functionDepth: 9
    functionLinenumber: 2838
    functionLinenumberEnd: 2880
    functionName: _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - set_exception_cause
    - PyErr_SetString
    - _Py_RemoteDebug_ClearCache
    - append_awaited_by
    - iterate_threads
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject
      *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging_module.c:2934,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2935,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging_module.c:2939,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging_module.c:2941,1
    - Dst: iterate_threads
      Src: /src/cpython/Modules/_remote_debugging_module.c:2946,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging_module.c:2950,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging_module.c:2953,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2954,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2929
    functionDepth: 2
    functionLinenumber: 2929
    functionLinenumberEnd: 2956
    functionName: _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - set_exception_cause
    - PyErr_SetString
    - _Py_RemoteDebug_ClearCache
    - iterate_threads
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl(RemoteUnwinderObject
      *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RemoteUnwinder_CAST
      Src: /src/cpython/Modules/_remote_debugging_module.c:2968,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging_module.c:2969,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging_module.c:2971,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging_module.c:2975,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging_module.c:2979,1
    - Dst: _Py_RemoteDebug_CleanupProcHandle
      Src: /src/cpython/Modules/_remote_debugging_module.c:2980,1
    - Dst: PyObject_Del
      Src: /src/cpython/Modules/_remote_debugging_module.c:2982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging_module.c:2983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2965
    functionDepth: 1
    functionLinenumber: 2965
    functionLinenumberEnd: 2984
    functionName: RemoteUnwinder_dealloc
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_CleanupProcHandle
    - Py_DECREF
    - RemoteUnwinder_CAST
    - _Py_hashtable_destroy
    - PyObject_Del
    - _Py_RemoteDebug_ClearCache
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void RemoteUnwinder_dealloc(PyObject *op)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging_module.c:3008,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_remote_debugging_module.c:3017,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3019,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3024,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3028,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3032,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3036,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3040,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3044,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3048,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3052,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3056,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging_module.c:3060,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_remote_debugging_module.c:3064,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging_module.c:3066,1
    - Dst: RemoteDebugging_InitState
      Src: /src/cpython/Modules/_remote_debugging_module.c:3070,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3005
    functionDepth: 2
    functionLinenumber: 3005
    functionLinenumberEnd: 3074
    functionName: _remote_debugging_exec
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - CREATE_TYPE
    - RemoteDebugging_GetState
    - PyUnstable_Module_SetGIL
    - PyStructSequence_NewType
    - PyModule_AddIntConstant
    - RemoteDebugging_InitState
    linkageType: ''
    returnType: int
    signature: int _remote_debugging_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mod
    - ','
    - type
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 3009
    functionDepth: 0
    functionLinenumber: 3009
    functionLinenumberEnd: 3016
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(mod, type, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging_module.c:3079,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging_module.c:3080,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging_module.c:3081,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging_module.c:3082,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging_module.c:3083,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging_module.c:3084,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging_module.c:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3076
    functionDepth: 2
    functionLinenumber: 3076
    functionLinenumberEnd: 3087
    functionName: remote_debugging_traverse
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - RemoteDebugging_GetState
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int remote_debugging_traverse(PyObject *mod, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging_module.c:3092,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:3093,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:3094,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:3095,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:3096,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:3097,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging_module.c:3098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3089
    functionDepth: 2
    functionLinenumber: 3089
    functionLinenumberEnd: 3100
    functionName: remote_debugging_clear
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - RemoteDebugging_GetState
    linkageType: ''
    returnType: int
    signature: int remote_debugging_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remote_debugging_clear
      Src: /src/cpython/Modules/_remote_debugging_module.c:3105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3102
    functionDepth: 3
    functionLinenumber: 3102
    functionLinenumberEnd: 3106
    functionName: remote_debugging_free
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - remote_debugging_clear
    linkageType: ''
    returnType: void
    signature: void remote_debugging_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_remote_debugging_module.c:3133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3130
    functionDepth: 1
    functionLinenumber: 3130
    functionLinenumberEnd: 3134
    functionName: PyInit__remote_debugging
    functionSourceFile: /src/cpython/Modules/_remote_debugging_module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__remote_debugging(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: XxoObject_CAST
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited.c:100,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/xxlimited.c:105,1
    - Dst: memset
      Src: /src/cpython/Modules/xxlimited.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: newXxoObject
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 2
    functionsReached:
    - PyModule_GetState
    - PyObject_GC_New
    - memset
    linkageType: ''
    returnType: XxoObject
    signature: 'XxoObject *

      newXxoObject(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:121,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited.c:121,1
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:124,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: Xxo_traverse
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:132,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: Xxo_clear
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:140,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: Xxo_finalize
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - XxoObject_CAST
    linkageType: ''
    returnType: void
    signature: void Xxo_finalize(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/xxlimited.c:147,1
    - Dst: Xxo_finalize
      Src: /src/cpython/Modules/xxlimited.c:148,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited.c:149,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/xxlimited.c:150,1
    - Dst: free
      Src: /src/cpython/Modules/xxlimited.c:151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: Xxo_dealloc
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Xxo_finalize
    - PyObject_GC_UnTrack
    - PyType_GetSlot
    - free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Xxo_dealloc(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:161,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/xxlimited.c:163,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/xxlimited.c:167,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/xxlimited.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: Xxo_getattro
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_NewRef
    - PyObject_GenericGetAttr
    - XxoObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_getattro(PyObject *op, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:177,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/xxlimited.c:180,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/xxlimited.c:187,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/xxlimited.c:188,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:189,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/xxlimited.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - op
    - name
    - v
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 199
    functionName: Xxo_setattro
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyErr_SetString
    - PyDict_DelItem
    - PyErr_ExceptionMatches
    - PyDict_New
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_setattro(PyObject *op, PyObject *name, PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/xxlimited.c:207,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:208,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:212,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/xxlimited.c:219,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:220,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/xxlimited.c:224,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:225,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - op
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 229
    functionName: Xxo_demo
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyErr_SetString
    - Py_NewRef
    - PyObject_Length
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nXxo_demo(PyObject *op, PyTypeObject *defining_class,\n
      \        PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:242,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/xxlimited.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: Xxo_getbuffer
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - XxoObject_CAST
    linkageType: ''
    returnType: int
    signature: int Xxo_getbuffer(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: Xxo_releasebuffer
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - XxoObject_CAST
    linkageType: ''
    returnType: void
    signature: void Xxo_releasebuffer(PyObject *op, Py_buffer *Py_UNUSED(view))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited.c:262,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/xxlimited.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: Xxo_get_x_exports
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - XxoObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_get_x_exports(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxlimited.c:326,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxlimited.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: xx_foo
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_foo(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newXxoObject
      Src: /src/cpython/Modules/xxlimited.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(unused)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: xx_new
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - newXxoObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_new(PyObject *module, PyObject *Py_UNUSED(unused))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited.c:367,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/xxlimited.c:369,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited.c:373,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/xxlimited.c:377,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited.c:381,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/xxlimited.c:389,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited.c:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 400
    functionName: xx_modexec
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - PyModule_GetState
    - PyErr_NewException
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int xx_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited.c:412,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:413,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: xx_traverse
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int xx_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited.c:421,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:422,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: xx_clear
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int xx_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xx_clear
      Src: /src/cpython/Modules/xxlimited.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: xx_free
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - xx_clear
    linkageType: ''
    returnType: void
    signature: void xx_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/xxlimited.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: PyInit_xxlimited
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xxlimited(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/pwdmodule.c:59,1
    - Dst: assert
      Src: /src/cpython/Modules/pwdmodule.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Modules/pwdmodule.c
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: get_pwd_state
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: pwdmodulestate
    signature: 'pwdmodulestate *

      get_pwd_state(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/pwdmodule.c:76,1
    - Dst: get_pwd_state
      Src: /src/cpython/Modules/pwdmodule.c:76,1
    - Dst: SET_STRING
      Src: /src/cpython/Modules/pwdmodule.c:95,1
    - Dst: SET_STRING
      Src: /src/cpython/Modules/pwdmodule.c:97,1
    - Dst: SET_STRING
      Src: /src/cpython/Modules/pwdmodule.c:99,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/pwdmodule.c:101,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/pwdmodule.c:101,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/pwdmodule.c:102,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/pwdmodule.c:102,1
    - Dst: SET_STRING
      Src: /src/cpython/Modules/pwdmodule.c:104,1
    - Dst: SET_STRING
      Src: /src/cpython/Modules/pwdmodule.c:106,1
    - Dst: SET_STRING
      Src: /src/cpython/Modules/pwdmodule.c:108,1
    - Dst: SET_STRING
      Src: /src/cpython/Modules/pwdmodule.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pwdmodule.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - module
    - p
    argTypes:
    - PyObject*
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 119
    functionName: mkpwent
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_pwd_state
    - _PyLong_FromUid
    - _PyLong_FromGid
    - SET_RESULT
    - SET_STRING
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mkpwent(PyObject *module, struct passwd *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: SET_STRING
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_STRING(VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: SET_RESULT
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RESULT(CALL)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/pwdmodule.c:142,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/pwdmodule.c:143,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pwdmodule.c:144,1
    - Dst: sysconf
      Src: /src/cpython/Modules/pwdmodule.c:155,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/pwdmodule.c:161,1
    - Dst: getpwuid_r
      Src: /src/cpython/Modules/pwdmodule.c:168,1
    - Dst: getpwuid
      Src: /src/cpython/Modules/pwdmodule.c:187,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/pwdmodule.c:191,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/pwdmodule.c:193,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pwdmodule.c:195,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/pwdmodule.c:197,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pwdmodule.c:200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pwdmodule.c:202,1
    - Dst: mkpwent
      Src: /src/cpython/Modules/pwdmodule.c:205,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/pwdmodule.c:207,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/pwdmodule.c:209,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - module
    - uidobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 212
    functionName: pwd_getpwuid
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - getpwuid
    - Py_DECREF
    - PyMem_RawFree
    - _PyLong_FromUid
    - PyErr_ExceptionMatches
    - PyMem_RawRealloc
    - _Py_Uid_Converter
    - PyMutex_Unlock
    - PyErr_Format
    - getpwuid_r
    - sysconf
    - mkpwent
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwuid(PyObject *module, PyObject *uidobj)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/pwdmodule.c:234,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/pwdmodule.c:237,1
    - Dst: sysconf
      Src: /src/cpython/Modules/pwdmodule.c:246,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/pwdmodule.c:252,1
    - Dst: getpwnam_r
      Src: /src/cpython/Modules/pwdmodule.c:259,1
    - Dst: getpwnam
      Src: /src/cpython/Modules/pwdmodule.c:278,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/pwdmodule.c:282,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pwdmodule.c:285,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pwdmodule.c:288,1
    - Dst: mkpwent
      Src: /src/cpython/Modules/pwdmodule.c:293,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/pwdmodule.c:295,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/pwdmodule.c:298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pwdmodule.c:299,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 301
    functionName: pwd_getpwnam_impl
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_RawFree
    - getpwnam
    - getpwnam_r
    - PyUnicode_EncodeFSDefault
    - PyMem_RawRealloc
    - PyMutex_Unlock
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - sysconf
    - mkpwent
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwnam_impl(PyObject *module, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/pwdmodule.c:319,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/pwdmodule.c:322,1
    - Dst: setpwent
      Src: /src/cpython/Modules/pwdmodule.c:328,1
    - Dst: getpwent
      Src: /src/cpython/Modules/pwdmodule.c:329,1
    - Dst: mkpwent
      Src: /src/cpython/Modules/pwdmodule.c:330,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/pwdmodule.c:331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pwdmodule.c:336,1
    - Dst: endpwent
      Src: /src/cpython/Modules/pwdmodule.c:340,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/pwdmodule.c:341,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pwdmodule.c:343,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pwdmodule.c:344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 347
    functionName: pwd_getpwall_impl
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - Py_CLEAR
    - PyList_Append
    - PyMutex_Lock
    - PyMutex_Unlock
    - getpwent
    - endpwent
    - mkpwent
    - setpwent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwall_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pwd_state
      Src: /src/cpython/Modules/pwdmodule.c:362,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/pwdmodule.c:364,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/pwdmodule.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 372
    functionName: pwdmodule_exec
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyStructSequence_NewType
    - get_pwd_state
    linkageType: ''
    returnType: int
    signature: int pwdmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pwdmodule.c:382,1
    - Dst: get_pwd_state
      Src: /src/cpython/Modules/pwdmodule.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: pwdmodule_traverse
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - get_pwd_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int pwdmodule_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pwdmodule.c:386,1
    - Dst: get_pwd_state
      Src: /src/cpython/Modules/pwdmodule.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: pwdmodule_clear
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_pwd_state
    linkageType: ''
    returnType: int
    signature: int pwdmodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pwdmodule_clear
      Src: /src/cpython/Modules/pwdmodule.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: pwdmodule_free
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - pwdmodule_clear
    linkageType: ''
    returnType: void
    signature: void pwdmodule_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/pwdmodule.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: PyInit_pwd
    functionSourceFile: /src/cpython/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_pwd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/itertoolsmodule.c:45,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 59
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: itertools_state
    signature: 'itertools_state *

      get_module_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/itertoolsmodule.c:53,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: get_module_state_by_cls
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 2
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: itertools_state
    signature: 'itertools_state *

      get_module_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/itertoolsmodule.c:63,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:64,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/itertoolsmodule.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: find_state_by_type
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: itertools_state
    signature: 'itertools_state *

      find_state_by_type(PyTypeObject *tp)'
  - 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: clinic_state
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: clinic_state_by_cls
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state_by_cls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: batchedobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: batchedobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:149,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:152,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - type
    - iterable
    - n
    - strict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 167
    functionName: batched_new_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetIter
    - PyErr_SetString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbatched_new_impl(PyTypeObject *type, PyObject *iterable,
      Py_ssize_t n,\n                 int strict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: batchedobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:172,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:173,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:174,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:175,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: batched_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - batchedobject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void batched_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: batchedobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:183,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:184,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:184,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: batched_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - batchedobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int batched_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: batchedobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:192,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:194,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:202,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:206,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:207,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:218,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/itertoolsmodule.c:219,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:221,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:225,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:228,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:231,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:235,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:239,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:243,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:244,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Modules/itertoolsmodule.c:247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 249
    functionName: batched_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyTuple_New
    - Py_DECREF
    - _PyTuple_ITEMS
    - Py_CLEAR
    - PyErr_Occurred
    - _PyTuple_Resize
    - batchedobject_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - iternext
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      batched_next(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: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: pairwiseobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pairwiseobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:302,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:308,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/itertoolsmodule.c:313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 319
    functionName: pairwise_new_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetIter
    - PyTuple_Pack
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pairwise_new_impl(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pairwiseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:324,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:325,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:326,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:327,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:328,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:329,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: pairwise_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - pairwiseobject_CAST
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pairwise_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pairwiseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:337,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:338,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:338,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:339,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:340,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: pairwise_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - pairwiseobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int pairwise_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pairwiseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:348,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:357,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:358,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:360,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:365,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:369,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:370,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:372,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:374,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:379,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:380,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:381,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:382,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:383,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:383,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:384,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:386,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:389,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:392,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:394,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:394,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:395,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:395,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 402
    functionName: pairwise_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - pairwiseobject_CAST
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - Py_NewRef
    - Py_TYPE
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - Py_CLEAR
    - Py_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pairwise_next(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: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: groupbyobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: groupbyobject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:463,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:469,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:472,1
    - Dst: find_state_by_type
      Src: /src/cpython/Modules/itertoolsmodule.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - type
    - it
    - keyfunc
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 477
    functionName: itertools_groupby_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - find_state_by_type
    - Py_DECREF
    - PyObject_GetIter
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_groupby_impl(PyTypeObject *type, PyObject *it, PyObject *keyfunc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:482,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:483,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:484,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:485,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:486,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:487,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:488,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:489,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: groupby_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - groupbyobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void groupby_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:497,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:498,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:498,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:499,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:500,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:501,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:502,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: groupby_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - groupbyobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int groupby_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:512,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:517,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:521,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:528,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - gbo
    argTypes:
    - groupbyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 531
    functionName: groupby_step
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyIter_Next
    - Py_NewRef
    - PyObject_CallOneArg
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void groupby_step(groupbyobject *gbo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:537,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/itertoolsmodule.c:549,1
    - Dst: groupby_step
      Src: /src/cpython/Modules/itertoolsmodule.c:556,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:559,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:560,1
    - Dst: _grouper_create
      Src: /src/cpython/Modules/itertoolsmodule.c:562,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/itertoolsmodule.c:566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:567,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 569
    functionName: groupby_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - groupby_step
    - Py_DECREF
    - groupbyobject_CAST
    - PyObject_RichCompareBool
    - Py_XSETREF
    - PyTuple_Pack
    - _grouper_create
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      groupby_next(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: 600
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 600
    functionName: _grouperobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _grouperobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _grouper_create
      Src: /src/cpython/Modules/itertoolsmodule.c:615,1
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - parent
    - tgtkey
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 616
    functionName: itertools__grouper_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - groupbyobject_CAST
    - _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/cpython/Modules/itertoolsmodule.c:622,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:625,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:626,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - tgtkey
    argTypes:
    - groupbyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 631
    functionName: _grouper_create
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 2
    functionsReached:
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _grouper_create(groupbyobject *parent, PyObject *tgtkey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _grouperobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:636,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:637,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:640,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/itertoolsmodule.c:641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 643
    functionName: _grouper_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - _grouperobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _grouper_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _grouperobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:648,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:649,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:649,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:650,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 653
    functionName: _grouper_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _grouperobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _grouper_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _grouperobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:658,1
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:659,1
    - Dst: groupby_step
      Src: /src/cpython/Modules/itertoolsmodule.c:666,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:670,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/itertoolsmodule.c:671,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (gbo->currkey != NULL)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 681
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 681
    functionName: _grouper_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - groupby_step
    - groupbyobject_CAST
    - PyObject_RichCompareBool
    - _grouperobject_CAST
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _grouper_next(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: 725
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 725
    functionName: teedataobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: teedataobject_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: 735
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 735
    functionName: teeobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: teeobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/itertoolsmodule.c:741,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:748,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - it
    argTypes:
    - itertools_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 751
    functionName: teedataobject_newinternal
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_newinternal(itertools_state *state, PyObject *it)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teedataobject_newinternal
      Src: /src/cpython/Modules/itertoolsmodule.c:757,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - tdo
    argTypes:
    - itertools_state*
    - teedataobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 759
    functionName: teedataobject_jumplink
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_newinternal
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_jumplink(itertools_state *state, teedataobject *tdo)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:766,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:771,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:773,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:778,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - tdo
    - i
    argTypes:
    - teedataobject*
    - int
    assertStmts:
    - condition: (i < LINKCELLS)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (i == tdo->numread)
      pos:
        line_end: 770
        line_start: 770
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 786
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 786
    functionName: teedataobject_getitem
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - assert
    - PyIter_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_getitem(teedataobject *tdo, int i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teedataobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:792,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:794,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:794,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:795,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:797,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 800
    functionName: teedataobject_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - teedataobject_CAST
    linkageType: ''
    returnType: int
    signature: int teedataobject_traverse(PyObject *op, visitproc visit, void * arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:805,1
    - Dst: teedataobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:806,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:809,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 812
    functionName: teedataobject_safe_decref
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - Py_XDECREF
    - Py_REFCNT
    - teedataobject_CAST
    linkageType: ''
    returnType: void
    signature: void teedataobject_safe_decref(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teedataobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:819,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:823,1
    - Dst: teedataobject_safe_decref
      Src: /src/cpython/Modules/itertoolsmodule.c:826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 828
    functionName: teedataobject_clear
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_safe_decref
    - Py_CLEAR
    - teedataobject_CAST
    linkageType: ''
    returnType: int
    signature: int teedataobject_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:833,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:834,1
    - Dst: teedataobject_clear
      Src: /src/cpython/Modules/itertoolsmodule.c:835,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/itertoolsmodule.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: teedataobject_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - teedataobject_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void teedataobject_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_cls
      Src: /src/cpython/Modules/itertoolsmodule.c:858,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:859,1
    - Dst: teedataobject_newinternal
      Src: /src/cpython/Modules/itertoolsmodule.c:861,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:865,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:869,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:870,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/itertoolsmodule.c:873,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:877,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:879,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:880,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:889,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:890,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - type
    - it
    - values
    - next
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type == state->teedataobject_type)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (tdo->nextlink == NULL)
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 892
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 892
    functionName: itertools_teedataobject_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyList_GET_ITEM
    - teedataobject_newinternal
    - get_module_state_by_cls
    - PyList_GET_SIZE
    - PyErr_SetString
    - Py_NewRef
    - Py_IS_TYPE
    - Py_SAFE_DOWNCAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_teedataobject_impl(PyTypeObject *type, PyObject
      *it,\n                             PyObject *values, PyObject *next)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: teeobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:917,1
    - Dst: teedataobject_jumplink
      Src: /src/cpython/Modules/itertoolsmodule.c:921,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:924,1
    - Dst: teedataobject_getitem
      Src: /src/cpython/Modules/itertoolsmodule.c:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 932
    functionName: tee_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teeobject_CAST
    - Py_SETREF
    - teedataobject_jumplink
    - teedataobject_getitem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teeobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:937,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:938,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:938,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 941
    functionName: tee_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teeobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tee_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/itertoolsmodule.c:946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:946,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:950,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - to
    argTypes:
    - teeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 956
    functionName: tee_copy_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: teeobject
    signature: 'teeobject *

      tee_copy_impl(teeobject *to)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teeobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:961,1
    - Dst: tee_copy_impl
      Src: /src/cpython/Modules/itertoolsmodule.c:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 963
    functionName: tee_copy
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teeobject_CAST
    - tee_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_copy(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:973,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/itertoolsmodule.c:976,1
    - Dst: tee_copy_impl
      Src: /src/cpython/Modules/itertoolsmodule.c:977,1
    - Dst: teedataobject_newinternal
      Src: /src/cpython/Modules/itertoolsmodule.c:981,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/itertoolsmodule.c:986,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:988,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:995,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:997,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - state
    - iterable
    argTypes:
    - itertools_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 999
    functionName: tee_fromiterable
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - Py_DECREF
    - PyObject_GetIter
    - teedataobject_newinternal
    - tee_copy_impl
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_fromiterable(itertools_state *state, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_cls
      Src: /src/cpython/Modules/itertoolsmodule.c:1013,1
    - Dst: tee_fromiterable
      Src: /src/cpython/Modules/itertoolsmodule.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1015
    functionName: itertools__tee_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_cls
    - tee_fromiterable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools__tee_impl(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teeobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1020,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/itertoolsmodule.c:1022,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1025
    functionName: tee_clear
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teeobject_CAST
    - PyObject_ClearWeakRefs
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tee_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1030,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1031,1
    - Dst: tee_clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1032,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/itertoolsmodule.c:1033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1035
    functionName: tee_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - tee_clear
    - PyObject_GC_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void tee_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1085,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:1088,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1093,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1095,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/itertoolsmodule.c:1099,1
    - Dst: tee_fromiterable
      Src: /src/cpython/Modules/itertoolsmodule.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1103,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:1107,1
    - Dst: tee_copy
      Src: /src/cpython/Modules/itertoolsmodule.c:1109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1111,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:1114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - module
    - iterable
    - n
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1117
    functionName: itertools_tee_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - get_module_state
    - PyObject_GetIter
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - tee_copy
    - tee_fromiterable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_tee_impl(PyObject *module, PyObject *iterable, Py_ssize_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1130
    functionName: cycleobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cycleobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1149,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/itertoolsmodule.c:1153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1155,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1171
    functionName: itertools_cycle_impl
    functionSourceFile: /src/cpython/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: cycleobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1176,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1177,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1178,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1179,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1180,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1183
    functionName: cycle_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - cycleobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cycle_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cycleobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1188,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1189,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1190,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1193
    functionName: cycle_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - cycleobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cycle_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cycleobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1198,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:1201,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:1204,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/itertoolsmodule.c:1206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1207,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1213,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:1216,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1218,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:1221,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1223,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:1224,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:1226,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:1229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (item)
      pos:
        line_end: 1223
        line_start: 1223
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1231
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1231
    functionName: cycle_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - Py_DECREF
    - PyList_Append
    - PyErr_Occurred
    - PyList_GET_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyIter_Next
    - PyList_GetItemRef
    - cycleobject_CAST
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cycle_next(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: 1264
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1264
    functionName: dropwhileobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dropwhileobject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1284,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1291,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1299
    functionName: itertools_dropwhile_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetIter
    - Py_NewRef
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_dropwhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dropwhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1304,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1305,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1306,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1307,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1308,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1311
    functionName: dropwhile_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - dropwhileobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dropwhile_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dropwhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1316,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1317,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1317,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1318,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1321
    functionName: dropwhile_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - dropwhileobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dropwhile_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dropwhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1326,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1332,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:1334,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:1340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1342,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:1345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1355
    functionName: dropwhile_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - iternext
    - PyObject_CallOneArg
    - dropwhileobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dropwhile_next(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: 1388
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1388
    functionName: takewhileobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: takewhileobject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1407,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1414,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1422
    functionName: itertools_takewhile_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetIter
    - Py_NewRef
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_takewhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: takewhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1427,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1428,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1429,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1430,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1431,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1434
    functionName: takewhile_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - takewhileobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void takewhile_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: takewhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1439,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1440,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1440,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1441,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1436
    functionDepth: 1
    functionLinenumber: 1436
    functionLinenumberEnd: 1444
    functionName: takewhile_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - takewhileobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int takewhile_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: takewhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1449,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1457,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:1461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1463,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:1466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1474
    functionName: takewhile_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_CallOneArg
    - takewhileobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      takewhile_next(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: 1509
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1509
    functionName: isliceobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isliceobject_CAST(op)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: find_state_by_type
      Src: /src/cpython/Modules/itertoolsmodule.c:1519,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:1522,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/itertoolsmodule.c:1525,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/itertoolsmodule.c:1528,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1531,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1533,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1534,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1535,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1543,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1544,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1545,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1547,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1549,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1550,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1551,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1559,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1567,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1568,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1569,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1572,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1578,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1585,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1510
    functionDepth: 2
    functionLinenumber: 1510
    functionLinenumberEnd: 1595
    functionName: islice_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - find_state_by_type
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PyNumber_AsSsize_t
    - PyTuple_Size
    - PyTypeObject*::tp_alloc
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      islice_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isliceobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1600,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1601,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1602,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1603,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1606
    functionName: islice_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    - isliceobject_CAST
    linkageType: ''
    returnType: void
    signature: void islice_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isliceobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1611,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1612,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1615
    functionName: islice_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - isliceobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int islice_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isliceobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1620,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1630,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:1632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1635,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:1640,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1653,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1655
    functionName: islice_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - iternext
    - Py_TYPE
    - isliceobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      islice_next(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: 1698
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1698
    functionName: starmapobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: starmapobject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1717,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1724,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1731
    functionName: itertools_starmap_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetIter
    - Py_NewRef
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_starmap_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starmapobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1736,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1737,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1738,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1739,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1740,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1741,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1743
    functionName: starmap_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - starmapobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void starmap_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starmapobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1748,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1749,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1749,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1750,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1753
    functionName: starmap_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - starmapobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int starmap_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starmapobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1758,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1763,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/itertoolsmodule.c:1766,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:1767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1768,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/itertoolsmodule.c:1773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1776
    functionName: starmap_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Tuple
    - starmapobject_CAST
    - PyObject_Call
    - Py_TYPE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      starmap_next(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: 1808
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1808
    functionName: chainobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chainobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - type
    - source
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1823
    functionName: chain_new_internal
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_new_internal(PyTypeObject *type, PyObject *source)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_state_by_type
      Src: /src/cpython/Modules/itertoolsmodule.c:1830,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:1833,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1836,1
    - Dst: chain_new_internal
      Src: /src/cpython/Modules/itertoolsmodule.c:1840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1825
    functionDepth: 2
    functionLinenumber: 1825
    functionLinenumberEnd: 1841
    functionName: chain_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - find_state_by_type
    - _PyArg_NoKeywords
    - 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/cpython/Modules/itertoolsmodule.c:1858,1
    - Dst: chain_new_internal
      Src: /src/cpython/Modules/itertoolsmodule.c:1862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1852
    functionDepth: 1
    functionLinenumber: 1852
    functionLinenumberEnd: 1863
    functionName: itertools_chain_from_iterable_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - chain_new_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_chain_from_iterable_impl(PyTypeObject *type, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chainobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1868,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1869,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1870,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1872,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1875
    functionName: chain_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - chainobject_CAST
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void chain_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chainobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1880,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1881,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1881,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1882,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1885
    functionName: chain_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - chainobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int chain_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chainobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1890,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:1898,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1900,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1904,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1906,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1913,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/itertoolsmodule.c:1914,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1915,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1920,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1887
    functionDepth: 1
    functionLinenumber: 1887
    functionLinenumberEnd: 1924
    functionName: chain_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - chainobject_CAST
    - PyErr_Occurred
    - PyObject_GetIter
    - PyIter_Next
    - PyErr_ExceptionMatches
    - Py_TYPE
    - PyErr_Clear
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:1930,1
    - Dst: chain_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:1931,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:1932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1926
    functionDepth: 2
    functionLinenumber: 1926
    functionLinenumberEnd: 1934
    functionName: chain_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - chain_next_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_next(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: 1984
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 1984
    functionName: productobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: productobject_CAST(op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:1996,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:1999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2004,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2006,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2012,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/itertoolsmodule.c:2012,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2016,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2018,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2024,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2026,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2030,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2035,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:2036,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2039,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2043,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2044,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2045,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2050,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2063,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2064,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: 2011
        line_start: 2011
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2066
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2066
    functionName: product_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - PySequence_Tuple
    - PyTuple_SET_ITEM
    - PyArg_ParseTupleAndKeywords
    - PyMem_Free
    - PyMem_New
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_alloc
    - PyTuple_CheckExact
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: productobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2071,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2072,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2073,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2074,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2075,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2076,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2079
    functionName: product_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - productobject_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void product_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: productobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2084,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2085,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2085,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2086,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2081
    functionDepth: 1
    functionLinenumber: 2081
    functionLinenumberEnd: 2088
    functionName: product_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyObject_SIZE
    - productobject_CAST
    - PyLong_FromSize_t
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_sizeof(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: productobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2095,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2096,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2096,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2097,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2100
    functionName: product_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - productobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int product_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: productobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2105,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2111,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2120,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2125,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2126,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2128,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2129,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2130,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2136,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2138,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2142,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2147,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2150,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2150,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2155,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2157,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2160,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2161,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2162,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2164,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2167,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2168,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2169,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2171,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2182,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (npools==0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2149
        line_start: 2149
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2187
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2187
    functionName: product_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _PyTuple_ITEMS
    - Py_DECREF
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - Py_NewRef
    - productobject_CAST
    - PyTuple_GET_ITEM
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2193,1
    - Dst: product_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:2194,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2189
    functionDepth: 2
    functionLinenumber: 2189
    functionLinenumberEnd: 2197
    functionName: product_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - product_next_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_next(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: 2253
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2253
    functionName: combinationsobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: combinationsobject_CAST(op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:2275,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2278,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2280,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2284,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2286,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2294,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2308,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - type
    - iterable
    - r
    argTypes:
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2311
    functionName: itertools_combinations_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PySequence_Tuple
    - PyErr_SetString
    - PyMem_Free
    - PyMem_New
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_combinations_impl(PyTypeObject *type, PyObject
      *iterable,\n                            Py_ssize_t r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combinationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2316,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2317,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2318,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2320,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2321,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2313
    functionDepth: 1
    functionLinenumber: 2313
    functionLinenumberEnd: 2324
    functionName: combinations_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - combinationsobject_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void combinations_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combinationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2329,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2330,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2330,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2326
    functionDepth: 1
    functionLinenumber: 2326
    functionLinenumberEnd: 2333
    functionName: combinations_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - combinationsobject_CAST
    - Py_TYPE
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      combinations_sizeof(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combinationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2338,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2339,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2339,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2340,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2343
    functionName: combinations_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - combinationsobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int combinations_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: combinationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2348,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2354,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2363,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2369,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2370,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2371,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2375,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2377,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2381,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2386,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2392,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2392,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2416,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2417,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2418,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2420,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2424,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2391
        line_start: 2391
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2429
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2429
    functionName: combinations_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _PyTuple_ITEMS
    - Py_DECREF
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - Py_NewRef
    - combinationsobject_CAST
    - PyTuple_GET_ITEM
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      combinations_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2435,1
    - Dst: combinations_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:2436,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2431
    functionDepth: 2
    functionLinenumber: 2431
    functionLinenumberEnd: 2439
    functionName: combinations_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - combinations_next_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      combinations_next(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: 2506
      start: 2505
    functionDepth: 0
    functionLinenumber: 2505
    functionLinenumberEnd: 2506
    functionName: cwrobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cwrobject_CAST(op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:2531,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2534,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2536,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2540,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2542,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2550,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2564,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2565,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - type
    - iterable
    - r
    argTypes:
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2567
    functionName: itertools_combinations_with_replacement_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PySequence_Tuple
    - PyErr_SetString
    - PyMem_Free
    - PyMem_New
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_combinations_with_replacement_impl(PyTypeObject
      *type,\n                                             PyObject *iterable,\n                                             Py_ssize_t
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cwrobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2572,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2573,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2574,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2575,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2576,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2577,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2580
    functionName: cwr_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - cwrobject_CAST
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void cwr_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cwrobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2585,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2586,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2586,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2582
    functionDepth: 1
    functionLinenumber: 2582
    functionLinenumberEnd: 2589
    functionName: cwr_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - cwrobject_CAST
    - Py_TYPE
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cwr_sizeof(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cwrobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2594,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2595,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2595,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2596,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2591
    functionDepth: 1
    functionLinenumber: 2591
    functionLinenumberEnd: 2599
    functionName: cwr_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - cwrobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cwr_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cwrobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2604,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2610,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2619,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2624,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2626,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2627,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2628,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2633,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2635,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2639,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2644,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2648,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2648,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2663,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2664,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2667,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2668,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2670,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2674,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (indices[i] == 0)
      pos:
        line_end: 2625
        line_start: 2625
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (index < n)
      pos:
        line_end: 2662
        line_start: 2662
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2647
        line_start: 2647
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2679
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2679
    functionName: cwr_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - cwrobject_CAST
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _PyTuple_ITEMS
    - Py_DECREF
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_GET_ITEM
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cwr_next(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: 2747
      start: 2746
    functionDepth: 0
    functionLinenumber: 2746
    functionLinenumberEnd: 2747
    functionName: permutationsobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: permutationsobject_CAST(op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:2771,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2774,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:2778,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2779,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2782,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:2783,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2787,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2791,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2792,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2794,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2804,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2819,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2821,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2822,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - type
    - iterable
    - robj
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2824
    functionName: itertools_permutations_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PySequence_Tuple
    - PyLong_Check
    - PyErr_SetString
    - PyMem_Free
    - PyMem_New
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_permutations_impl(PyTypeObject *type, PyObject
      *iterable,\n                            PyObject *robj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: permutationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2829,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2830,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2831,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2832,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2833,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2834,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2835,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2838
      start: 2826
    functionDepth: 1
    functionLinenumber: 2826
    functionLinenumberEnd: 2838
    functionName: permutations_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - permutationsobject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void permutations_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: permutationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2843,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2844,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2844,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2845,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2840
    functionDepth: 1
    functionLinenumber: 2840
    functionLinenumberEnd: 2848
    functionName: permutations_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - permutationsobject_CAST
    - _PyObject_SIZE
    - PyLong_FromSize_t
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      permutations_sizeof(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: permutationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2853,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2854,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2854,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2855,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2858
    functionName: permutations_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - permutationsobject_CAST
    linkageType: ''
    returnType: int
    signature: int permutations_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: permutationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2863,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2870,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2879,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2885,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2886,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2887,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2894,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2896,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2900,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2905,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2908,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2908,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2930,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2931,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2932,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2934,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2944,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2907
        line_start: 2907
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2949
      start: 2860
    functionDepth: 1
    functionLinenumber: 2860
    functionLinenumberEnd: 2949
    functionName: permutations_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _PyTuple_ITEMS
    - Py_DECREF
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - permutationsobject_CAST
    - Py_NewRef
    - PyTuple_GET_ITEM
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      permutations_next(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: 2990
      start: 2989
    functionDepth: 0
    functionLinenumber: 2989
    functionLinenumberEnd: 2990
    functionName: accumulateobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: accumulateobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:3010,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3017,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3022,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3026,1
    - Dst: find_state_by_type
      Src: /src/cpython/Modules/itertoolsmodule.c:3027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - type
    - iterable
    - binop
    - initial
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3001
    functionDepth: 2
    functionLinenumber: 3001
    functionLinenumberEnd: 3029
    functionName: itertools_accumulate_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - find_state_by_type
    - Py_DECREF
    - PyObject_GetIter
    - Py_XNewRef
    - 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: accumulateobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3034,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3035,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3036,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3037,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3038,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3039,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3040,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3031
    functionDepth: 1
    functionLinenumber: 3031
    functionLinenumberEnd: 3043
    functionName: accumulate_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - accumulateobject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void accumulate_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accumulateobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3048,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3049,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3049,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3050,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3051,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3052,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3045
    functionDepth: 1
    functionLinenumber: 3045
    functionLinenumberEnd: 3055
    functionName: accumulate_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - accumulateobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int accumulate_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: accumulateobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3060,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3065,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3066,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3068,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3073,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/itertoolsmodule.c:3078,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/itertoolsmodule.c:3080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3081,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3085,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3086,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3057
    functionDepth: 1
    functionLinenumber: 3057
    functionLinenumberEnd: 3088
    functionName: accumulate_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - accumulateobject_CAST
    - PyObject_CallFunctionObjArgs
    - Py_NewRef
    - Py_SETREF
    - PyNumber_Add
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      accumulate_next(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: 3127
      start: 3126
    functionDepth: 0
    functionLinenumber: 3126
    functionLinenumberEnd: 3127
    functionName: compressobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compressobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:3146,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:3149,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3154,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - seq1
    - seq2
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3139
    functionDepth: 1
    functionLinenumber: 3139
    functionLinenumberEnd: 3165
    functionName: itertools_compress_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_compress_impl(PyTypeObject *type, PyObject *seq1, PyObject *seq2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compressobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3170,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3171,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3172,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3173,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3174,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3167
    functionDepth: 1
    functionLinenumber: 3167
    functionLinenumberEnd: 3177
    functionName: compress_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - compressobject_CAST
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void compress_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compressobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3182,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3183,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3183,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3184,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3187
      start: 3179
    functionDepth: 1
    functionLinenumber: 3179
    functionLinenumberEnd: 3187
    functionName: compress_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - compressobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int compress_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compressobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3192,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3195,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3196,1
    - Dst: datanext
      Src: /src/cpython/Modules/itertoolsmodule.c:3206,1
    - Dst: selectornext
      Src: /src/cpython/Modules/itertoolsmodule.c:3210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3212,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:3216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3189
    functionDepth: 1
    functionLinenumber: 3189
    functionLinenumberEnd: 3224
    functionName: compress_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - compressobject_CAST
    - datanext
    - PyObject_IsTrue
    - Py_DECREF
    - selectornext
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress_next(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: 3256
      start: 3255
    functionDepth: 0
    functionLinenumber: 3255
    functionLinenumberEnd: 3256
    functionName: filterfalseobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: filterfalseobject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:3276,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3283,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3268
    functionDepth: 1
    functionLinenumber: 3268
    functionLinenumberEnd: 3290
    functionName: itertools_filterfalse_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetIter
    - Py_NewRef
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_filterfalse_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filterfalseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3295,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3296,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3297,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3298,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3299,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3292
    functionDepth: 1
    functionLinenumber: 3292
    functionLinenumberEnd: 3302
    functionName: filterfalse_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - filterfalseobject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void filterfalse_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filterfalseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3307,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3308,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3308,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3309,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3312
      start: 3304
    functionDepth: 1
    functionLinenumber: 3304
    functionLinenumberEnd: 3312
    functionName: filterfalse_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - filterfalseobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int filterfalse_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: filterfalseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3317,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3323,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:3325,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:3330,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:3333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3335,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:3338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3314
    functionDepth: 1
    functionLinenumber: 3314
    functionLinenumberEnd: 3347
    functionName: filterfalse_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - filterfalseobject_CAST
    - PyObject_CallOneArg
    - iternext
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filterfalse_next(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: 3380
      start: 3379
    functionDepth: 0
    functionLinenumber: 3379
    functionLinenumberEnd: 3380
    functionName: countobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: countobject_CAST(op)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3423,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3424,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:3425,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3429,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3430,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3435,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3435,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3436,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3437,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:3438,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/itertoolsmodule.c:3444,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3446,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/itertoolsmodule.c:3450,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3452,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3454,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3458,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3458,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/itertoolsmodule.c:3459,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3462,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:3463,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:3468,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3472,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3474,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3475,1
    - Dst: PyLong_AS_LONG
      Src: /src/cpython/Modules/itertoolsmodule.c:3475,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3481,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 3
    argNames:
    - type
    - long_cnt
    - long_step
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(long_cnt))
      pos:
        line_end: 3434
        line_start: 3434
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: "((long_cnt == NULL && fast_mode) ||\n           (cnt == PY_SSIZE_T_MAX
        && long_cnt != NULL && !fast_mode))"
      pos:
        line_end: 3472
        line_start: 3471
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: "(!fast_mode ||\n           (PyLong_Check(long_step) && PyLong_AS_LONG(long_step)
        == 1))"
      pos:
        line_end: 3474
        line_start: 3473
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (PyLong_Check(long_step))
      pos:
        line_end: 3457
        line_start: 3457
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (long_cnt != NULL && long_step != NULL)
      pos:
        line_end: 3453
        line_start: 3453
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3489
      start: 3413
    functionDepth: 1
    functionLinenumber: 3413
    functionLinenumberEnd: 3489
    functionName: itertools_count_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - assert
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_GetOne
    - PyLong_AS_LONG
    - PyNumber_Check
    - PyTypeObject*::tp_alloc
    - PyErr_Clear
    - Py_CLEAR
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_count_impl(PyTypeObject *type, PyObject *long_cnt,\n
      \                    PyObject *long_step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3494,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3495,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3497,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3498,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3499,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3491
    functionDepth: 1
    functionLinenumber: 3491
    functionLinenumberEnd: 3501
    functionName: count_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    - countobject_CAST
    linkageType: ''
    returnType: void
    signature: void count_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3506,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3507,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3507,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3508,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3503
    functionDepth: 1
    functionLinenumber: 3503
    functionLinenumberEnd: 3511
    functionName: count_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - countobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int count_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3522,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3526,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/itertoolsmodule.c:3528,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: 3525
        line_start: 3525
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3533
      start: 3513
    functionDepth: 1
    functionLinenumber: 3513
    functionLinenumberEnd: 3533
    functionName: count_nextlong
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - assert
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_nextlong(countobject *lz)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: countobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3538,1
    - Dst: count_nextlong
      Src: /src/cpython/Modules/itertoolsmodule.c:3541,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3542,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Modules/itertoolsmodule.c:3550,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3553,1
    - Dst: count_nextlong
      Src: /src/cpython/Modules/itertoolsmodule.c:3554,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3555,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Modules/itertoolsmodule.c:3558,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3563
      start: 3535
    functionDepth: 2
    functionLinenumber: 3535
    functionLinenumberEnd: 3563
    functionName: count_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_atomic_load_ssize_relaxed
    - Py_END_CRITICAL_SECTION
    - _Py_atomic_compare_exchange_ssize
    - PyLong_FromSsize_t
    - count_nextlong
    - countobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_next(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: countobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3568,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3570,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3571,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3571,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3573,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/itertoolsmodule.c:3574,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3575,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:3576,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3580,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3581,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3581,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3585,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3586,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3588
      start: 3565
    functionDepth: 1
    functionLinenumber: 3565
    functionLinenumberEnd: 3588
    functionName: count_repr
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - PyLong_Check
    - _PyType_Name
    - PyErr_Clear
    - Py_TYPE
    - countobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_repr(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: 3621
      start: 3620
    functionDepth: 0
    functionLinenumber: 3620
    functionLinenumberEnd: 3621
    functionName: repeatobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repeatobject_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3630,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3632,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:3633,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3640,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3622
    functionDepth: 1
    functionLinenumber: 3622
    functionLinenumberEnd: 3646
    functionName: repeat_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3651,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3652,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3653,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3654,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3657
      start: 3648
    functionDepth: 1
    functionLinenumber: 3648
    functionLinenumberEnd: 3657
    functionName: repeat_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - repeatobject_CAST
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void repeat_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3662,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3663,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3663,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3659
    functionDepth: 1
    functionLinenumber: 3659
    functionLinenumberEnd: 3666
    functionName: repeat_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - repeatobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int repeat_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3671,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:3672,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:3678,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3668
    functionDepth: 1
    functionLinenumber: 3668
    functionLinenumberEnd: 3681
    functionName: repeat_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - repeatobject_CAST
    - Py_NewRef
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_next(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3686,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3688,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3689,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3689,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3691,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3692,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3683
    functionDepth: 1
    functionLinenumber: 3683
    functionLinenumberEnd: 3694
    functionName: repeat_repr
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - repeatobject_CAST
    - Py_TYPE
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3699,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:3701,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3696
    functionDepth: 1
    functionLinenumber: 3696
    functionLinenumberEnd: 3705
    functionName: repeat_len
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - repeatobject_CAST
    - PyErr_SetString
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_len(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3753
    functionDepth: 0
    functionLinenumber: 3753
    functionLinenumberEnd: 3754
    functionName: ziplongestobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ziplongestobject_CAST(op)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/itertoolsmodule.c:3765,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3765,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3767,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/itertoolsmodule.c:3768,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/itertoolsmodule.c:3768,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3771,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:3772,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3780,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3780,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3781,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:3784,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3788,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:3789,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3791,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3794,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:3798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3800,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3804,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3805,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3812,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3819,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 3779
        line_start: 3779
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3821
      start: 3755
    functionDepth: 1
    functionLinenumber: 3755
    functionLinenumberEnd: 3821
    functionName: zip_longest_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyDict_GetItemWithError
    - PyTuple_New
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyDict_CheckExact
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_Check
    - _Py_ID
    - PyErr_SetString
    - PyObject_GetIter
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ziplongestobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3826,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3827,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3828,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3829,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3830,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3831,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3834
      start: 3823
    functionDepth: 1
    functionLinenumber: 3823
    functionLinenumberEnd: 3834
    functionName: zip_longest_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - ziplongestobject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void zip_longest_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ziplongestobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3839,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3840,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3840,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3841,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3842,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3845
      start: 3836
    functionDepth: 1
    functionLinenumber: 3836
    functionLinenumberEnd: 3845
    functionName: zip_longest_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - ziplongestobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int zip_longest_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ziplongestobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3850,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:3862,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3863,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3865,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3867,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:3869,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3874,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3877,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3878,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3879,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3883,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3885,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:3889,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:3891,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3895,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3897,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:3899,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3904,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3907,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3909,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3913,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3847
    functionDepth: 1
    functionLinenumber: 3847
    functionLinenumberEnd: 3917
    functionName: zip_longest_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - _PyTuple_Recycle
    - ziplongestobject_CAST
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyIter_Next
    - Py_NewRef
    - PyTuple_GET_ITEM
    - Py_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/itertoolsmodule.c:3989,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3990,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3991,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3992,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3993,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3994,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3995,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3996,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3997,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3998,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3999,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4000,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4001,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4002,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4003,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4004,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4005,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4006,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4007,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4008,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4009,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4010,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 3986
    functionDepth: 1
    functionLinenumber: 3986
    functionLinenumberEnd: 4013
    functionName: itertoolsmodule_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int itertoolsmodule_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/itertoolsmodule.c:4018,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4019,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4020,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4021,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4022,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4023,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4024,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4025,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4026,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4027,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4028,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4029,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4030,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4031,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4032,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4033,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4034,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4035,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4036,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4037,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4038,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4039,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4042
      start: 4015
    functionDepth: 1
    functionLinenumber: 4015
    functionLinenumberEnd: 4042
    functionName: itertoolsmodule_clear
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int itertoolsmodule_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: itertoolsmodule_clear
      Src: /src/cpython/Modules/itertoolsmodule.c:4047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4048
      start: 4044
    functionDepth: 2
    functionLinenumber: 4044
    functionLinenumberEnd: 4048
    functionName: itertoolsmodule_free
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - itertoolsmodule_clear
    linkageType: ''
    returnType: void
    signature: void itertoolsmodule_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - module
    - ','
    - type
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4050
    functionDepth: 0
    functionLinenumber: 4050
    functionLinenumberEnd: 4060
    functionName: ADD_TYPE
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(module, type, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/itertoolsmodule.c:4064,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4065,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4066,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4067,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4068,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4069,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4070,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4071,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4072,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4073,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4074,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4075,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4076,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4077,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4078,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4079,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4080,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4081,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4082,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4083,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4084,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4085,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4086,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4090
      start: 4061
    functionDepth: 1
    functionLinenumber: 4061
    functionLinenumberEnd: 4090
    functionName: itertoolsmodule_exec
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_TYPE
    - ADD_TYPE
    - get_module_state
    linkageType: ''
    returnType: int
    signature: int itertoolsmodule_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/itertoolsmodule.c:4120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4117
    functionDepth: 1
    functionLinenumber: 4117
    functionLinenumberEnd: 4121
    functionName: PyInit_itertools
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_itertools(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: get_gc_state
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: GCState
    signature: 'GCState *

      get_gc_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGC_Enable
      Src: /src/cpython/Modules/gcmodule.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: gc_enable_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyGC_Enable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_enable_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGC_Disable
      Src: /src/cpython/Modules/gcmodule.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: gc_disable_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyGC_Disable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_disable_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGC_IsEnabled
      Src: /src/cpython/Modules/gcmodule.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: gc_isenabled_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyGC_IsEnabled
    linkageType: ''
    returnType: int
    signature: int gc_isenabled_impl(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/gcmodule.c:87,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/gcmodule.c:90,1
    - Dst: _PyGC_Collect
      Src: /src/cpython/Modules/gcmodule.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - generation
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: gc_collect_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    - _PyGC_Collect
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_collect_impl(PyObject *module, int generation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: gc_set_debug_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - get_gc_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_set_debug_impl(PyObject *module, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: gc_get_debug_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int gc_get_debug_impl(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - module
    - threshold0
    - group_right_1
    - threshold1
    - group_right_2
    - threshold2
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: gc_set_threshold_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - get_gc_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ngc_set_threshold_impl(PyObject *module, int threshold0,
      int group_right_1,\n                      int threshold1, int group_right_2,
      int threshold2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:182,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: gc_get_threshold_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - get_gc_state
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_threshold_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:199,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/gcmodule.c:202,1
    - Dst: _Py_atomic_add_int
      Src: /src/cpython/Modules/gcmodule.c:206,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 214
    functionName: gc_get_count_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - get_gc_state
    - _PyThreadState_GET
    - _Py_atomic_add_int
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_count_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/gcmodule.c:228,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:232,1
    - Dst: _PyGC_GetReferrers
      Src: /src/cpython/Modules/gcmodule.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - objs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: gc_get_referrers_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGC_GetReferrers
    - PySys_Audit
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_referrers_impl(PyObject *module, PyObject *objs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/cpython/Modules/gcmodule.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: referentsvisit
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    linkageType: ''
    returnType: int
    signature: int referentsvisit(PyObject *obj, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/gcmodule.c:247,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/gcmodule.c:248,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Modules/gcmodule.c:249,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/gcmodule.c:253,1
    - Dst: traverse
      Src: /src/cpython/Modules/gcmodule.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - result
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 262
    functionName: append_referrents
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - traverse
    - PyTuple_GET_SIZE
    - _PyObject_IS_GC
    - PyTuple_GET_ITEM
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int append_referrents(PyObject *result, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/gcmodule.c:276,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:279,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/gcmodule.c:280,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/gcmodule.c:287,1
    - Dst: append_referrents
      Src: /src/cpython/Modules/gcmodule.c:288,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/gcmodule.c:289,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/gcmodule.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - objs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 296
    functionName: gc_get_referents_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PySys_Audit
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - append_referrents
    - Py_CLEAR
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_referents_impl(PyObject *module, PyObject *objs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/gcmodule.c:314,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/gcmodule.c:319,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/gcmodule.c:326,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:331,1
    - Dst: _PyGC_GetObjects
      Src: /src/cpython/Modules/gcmodule.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - generation
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 333
    functionName: gc_get_objects_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGC_GetObjects
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyErr_Format
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_objects_impl(PyObject *module, Py_ssize_t generation)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:350,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/gcmodule.c:355,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:362,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/gcmodule.c:369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/gcmodule.c:370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/gcmodule.c:373,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/gcmodule.c:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 380
    functionName: gc_get_stats_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - PyList_Append
    - get_gc_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_stats_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/gcmodule.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: gc_is_tracked_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_IsTracked
    linkageType: ''
    returnType: int
    signature: int gc_is_tracked_impl(PyObject *module, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_IsFinalized
      Src: /src/cpython/Modules/gcmodule.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: gc_is_finalized_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_IsFinalized
    linkageType: ''
    returnType: int
    signature: int gc_is_finalized_impl(PyObject *module, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:432,1
    - Dst: _PyGC_Freeze
      Src: /src/cpython/Modules/gcmodule.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: gc_freeze_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - _PyGC_Freeze
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_freeze_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:449,1
    - Dst: _PyGC_Unfreeze
      Src: /src/cpython/Modules/gcmodule.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: gc_unfreeze_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - _PyGC_Unfreeze
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_unfreeze_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:464,1
    - Dst: _PyGC_GetFreezeCount
      Src: /src/cpython/Modules/gcmodule.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: gc_get_freeze_count_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGC_GetFreezeCount
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_get_freeze_count_impl(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:516,1
    - Dst: assert
      Src: /src/cpython/Modules/gcmodule.c:520,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/gcmodule.c:521,1
    - Dst: assert
      Src: /src/cpython/Modules/gcmodule.c:524,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/gcmodule.c:525,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:530,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:531,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:532,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:533,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 519
        line_start: 519
        source_file: /src/cpython/Modules/gcmodule.c
    - condition: (gcstate->callbacks != NULL)
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/cpython/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 537
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 537
    functionName: gcmodule_exec
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - get_gc_state
    - PyModule_AddObjectRef
    - assert
    - ADD_INT
    linkageType: ''
    returnType: int
    signature: int gcmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/gcmodule.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: PyInit_gc
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_gc(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/fcntlmodule.c:64,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/fcntlmodule.c:68,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:71,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:78,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:80,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:82,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/fcntlmodule.c:84,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/fcntlmodule.c:86,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/fcntlmodule.c:86,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:92,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:97,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:98,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:99,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:103,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:105,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:107,1
    - Dst: memcmp
      Src: /src/cpython/Modules/fcntlmodule.c:109,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:110,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/fcntlmodule.c:113,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/fcntlmodule.c:116,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:118,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/fcntlmodule.c:121,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:122,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:123,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:127,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:129,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/fcntlmodule.c:134,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/fcntlmodule.c:139,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/fcntlmodule.c:146,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 4
    argNames:
    - module
    - fd
    - code
    - arg
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 151
    functionName: fcntl_fcntl_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - memcmp
    - Py_DECREF
    - fcntl
    - PyObject_CheckBuffer
    - PyErr_Format
    - PyErr_SetString
    - memcpy
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - PyBuffer_Release
    - PyLong_FromLong
    - PyIndex_Check
    - PyUnicode_Check
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/fcntlmodule.c:212,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/fcntlmodule.c:216,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:219,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:226,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:228,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:230,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/fcntlmodule.c:232,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/fcntlmodule.c:234,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/fcntlmodule.c:234,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/fcntlmodule.c:239,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/fcntlmodule.c:239,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/fcntlmodule.c:240,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:244,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:245,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:250,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:252,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:255,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:257,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:261,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:263,1
    - Dst: memcmp
      Src: /src/cpython/Modules/fcntlmodule.c:264,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:265,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/fcntlmodule.c:268,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/fcntlmodule.c:270,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/fcntlmodule.c:273,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:276,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:281,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:282,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:283,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:287,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:289,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:291,1
    - Dst: memcmp
      Src: /src/cpython/Modules/fcntlmodule.c:293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:294,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/fcntlmodule.c:297,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/fcntlmodule.c:300,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:302,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/fcntlmodule.c:305,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:306,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:307,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:311,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:313,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/fcntlmodule.c:318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/fcntlmodule.c:323,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/fcntlmodule.c:330,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 92
    argCount: 5
    argNames:
    - module
    - fd
    - code
    - arg
    - mutate_arg
    argTypes:
    - PyObject*
    - int
    - unsigned long
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 335
    functionName: fcntl_ioctl_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBytes_Check
    - PyErr_CheckSignals
    - memcmp
    - PyLong_FromLong
    - PyErr_Format
    - PyUnicode_Check
    - PySys_Audit
    - PyErr_Clear
    - PyArg_Parse
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - PyErr_ExceptionMatches
    - PyObject_GetBuffer
    - PyErr_SetFromErrno
    - memcpy
    - PyIndex_Check
    - PyObject_CheckBuffer
    - ioctl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfcntl_ioctl_impl(PyObject *module, int fd, unsigned long
      code, PyObject *arg,\n                 int mutate_arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/fcntlmodule.c:357,1
    - Dst: flock
      Src: /src/cpython/Modules/fcntlmodule.c:364,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:366,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:384,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:391,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:393,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:397,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - module
    - fd
    - code
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 400
    functionName: fcntl_flock_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - flock
    - fcntl
    - PyErr_SetString
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - 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/cpython/Modules/fcntlmodule.c:446,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:466,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:473,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/fcntlmodule.c:475,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/fcntlmodule.c:476,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:477,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/fcntlmodule.c:479,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:484,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/fcntlmodule.c:486,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/fcntlmodule.c:487,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:488,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/fcntlmodule.c:490,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:496,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:498,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:501,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: 504
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 504
    functionName: fcntl_lockf_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongLong
    - PyLong_AsLong
    - PyErr_Occurred
    - fcntl
    - PyErr_SetString
    - PyLong_Check
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfcntl_lockf_impl(PyObject *module, int fd, int code, PyObject
      *lenobj,\n                 PyObject *startobj, int whence)"
  - BBCount: 114
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:529,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:530,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:531,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:532,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:535,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:538,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:541,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:544,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:548,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:551,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:554,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:557,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:560,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:563,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:566,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:569,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:572,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:575,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:578,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:581,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:584,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:587,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:590,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:593,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:596,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:599,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:602,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:605,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:609,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:612,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:615,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:619,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:622,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:625,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:628,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:631,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:635,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:638,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:643,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:646,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:652,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:655,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:661,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:662,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:663,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:664,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:665,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:669,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:670,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:671,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:672,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:676,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:677,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:678,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:679,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:680,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:681,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:686,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:689,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:694,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:697,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:700,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:703,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:706,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:709,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:714,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:717,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:720,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:723,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:728,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:733,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:736,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:739,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:742,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:745,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:748,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:751,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:756,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:757,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:758,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:759,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:760,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:761,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:762,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:763,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:764,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:765,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:766,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:767,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:768,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:769,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:770,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:773,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:775,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:776,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:777,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:778,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:779,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:780,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:781,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:782,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:784,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:786,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:787,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:788,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:789,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:793,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:794,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:795,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:796,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:797,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:798,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:800,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 228
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 804
    functionName: all_ins
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 1
    functionsReached:
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int all_ins(PyObject* m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: all_ins
      Src: /src/cpython/Modules/fcntlmodule.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 813
    functionName: fcntl_exec
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - all_ins
    linkageType: ''
    returnType: int
    signature: int fcntl_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/fcntlmodule.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: PyInit_fcntl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_fcntl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: PyZoneInfo_ZoneInfo_CAST
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyZoneInfo_ZoneInfo_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_zoneinfo.c:203,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: zoneinfo_get_state
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: zoneinfo_state
    signature: 'zoneinfo_state *

      zoneinfo_get_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_zoneinfo.c:211,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: zoneinfo_get_state_by_cls
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: zoneinfo_state
    signature: 'zoneinfo_state *

      zoneinfo_get_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_zoneinfo.c:221,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:222,1
    - Dst: zoneinfo_get_state
      Src: /src/cpython/Modules/_zoneinfo.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: zoneinfo_get_state_by_self
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - assert
    - zoneinfo_get_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: zoneinfo_state
    signature: 'zoneinfo_state *

      zoneinfo_get_state_by_self(PyTypeObject *self)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_zoneinfo.c:232,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:241,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_zoneinfo.c:246,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_zoneinfo.c:253,1
    - Dst: load_data
      Src: /src/cpython/Modules/_zoneinfo.c:260,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:264,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_zoneinfo.c:265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:269,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:271,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:275,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_zoneinfo.c:278,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:279,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_zoneinfo.c:280,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:282,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:287,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - state
    - type
    - key
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 289
    functionName: zoneinfo_new_instance
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_ChainExceptions1
    - PyObject_CallFunction
    - Py_DECREF
    - Py_CLEAR
    - PyErr_GetRaisedException
    - PyObject_CallMethod
    - PyObject_CallFunctionObjArgs
    - Py_SETREF
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    - load_data
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_new_instance(zoneinfo_state *state, PyTypeObject *type, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:299,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - type
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 306
    functionName: get_weak_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_weak_cache(zoneinfo_state *state, PyTypeObject *type)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_self
      Src: /src/cpython/Modules/_zoneinfo.c:322,1
    - Dst: zone_from_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:324,1
    - Dst: get_weak_cache
      Src: /src/cpython/Modules/_zoneinfo.c:328,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:335,1
    - Dst: zoneinfo_new_instance
      Src: /src/cpython/Modules/_zoneinfo.c:336,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:343,1
    - Dst: update_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - type
    - key
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 352
    functionName: zoneinfo_ZoneInfo_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_weak_cache
    - PyErr_Occurred
    - PyObject_CallMethod
    - zoneinfo_get_state_by_self
    - update_strong_cache
    - zone_from_strong_cache
    - zoneinfo_new_instance
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_impl(PyTypeObject *type, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:357,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:358,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zoneinfo.c:358,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: zoneinfo_traverse
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int zoneinfo_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:366,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:367,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: zoneinfo_clear
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int zoneinfo_clear(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:375,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zoneinfo.c:376,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_zoneinfo.c:377,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_zoneinfo.c:379,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:382,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:387,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:393,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:395,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:399,1
    - Dst: free_tzrule
      Src: /src/cpython/Modules/_zoneinfo.c:402,1
    - Dst: zoneinfo_clear
      Src: /src/cpython/Modules/_zoneinfo.c:404,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_zoneinfo.c:405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - obj_self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 407
    functionName: zoneinfo_dealloc
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - free_tzrule
    - FT_CLEAR_WEAKREFS
    - zoneinfo_clear
    - PyZoneInfo_ZoneInfo_CAST
    - xdecref_ttinfo
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void zoneinfo_dealloc(PyObject *obj_self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_zoneinfo.c:429,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_zoneinfo.c:434,1
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:439,1
    - Dst: load_data
      Src: /src/cpython/Modules/_zoneinfo.c:440,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:446,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:450,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - type
    - cls
    - file_obj
    - key
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 453
    functionName: zoneinfo_ZoneInfo_from_file_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Repr
    - zoneinfo_get_state_by_cls
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    - load_data
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzoneinfo_ZoneInfo_from_file_impl(PyTypeObject *type, PyTypeObject
      *cls,\n                                 PyObject *file_obj, PyObject *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:471,1
    - Dst: zoneinfo_new_instance
      Src: /src/cpython/Modules/_zoneinfo.c:472,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - cls
    - key
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 478
    functionName: zoneinfo_ZoneInfo_no_cache_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - zoneinfo_get_state_by_cls
    - zoneinfo_new_instance
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzoneinfo_ZoneInfo_no_cache_impl(PyTypeObject *type, PyTypeObject
      *cls,\n                                PyObject *key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:498,1
    - Dst: get_weak_cache
      Src: /src/cpython/Modules/_zoneinfo.c:499,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:504,1
    - Dst: clear_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:507,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_zoneinfo.c:511,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_zoneinfo.c:516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:518,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_zoneinfo.c:522,1
    - Dst: eject_from_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:525,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_zoneinfo.c:530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:540,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:543,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - type
    - cls
    - only_keys
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 548
    functionName: zoneinfo_ZoneInfo_clear_cache_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - zoneinfo_get_state_by_cls
    - Py_DECREF
    - get_weak_cache
    - PyErr_Occurred
    - PyObject_GetIter
    - eject_from_strong_cache
    - PyObject_CallMethod
    - PyIter_Next
    - PyObject_CallMethodObjArgs
    - clear_strong_cache
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzoneinfo_ZoneInfo_clear_cache_impl(PyTypeObject *type,
      PyTypeObject *cls,\n                                   PyObject *only_keys)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:566,1
    - Dst: find_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:567,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:567,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - cls
    - dt
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 572
    functionName: zoneinfo_ZoneInfo_utcoffset_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - find_ttinfo
    - Py_NewRef
    - zoneinfo_get_state_by_cls
    - PyZoneInfo_ZoneInfo_CAST
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzoneinfo_ZoneInfo_utcoffset_impl(PyObject *self, PyTypeObject
      *cls,\n                                 PyObject *dt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:589,1
    - Dst: find_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:590,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:590,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - cls
    - dt
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 595
    functionName: zoneinfo_ZoneInfo_dst_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - find_ttinfo
    - Py_NewRef
    - zoneinfo_get_state_by_cls
    - PyZoneInfo_ZoneInfo_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_dst_impl(PyObject *self, PyTypeObject *cls, PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:613,1
    - Dst: find_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:614,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:614,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - cls
    - dt
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 619
    functionName: zoneinfo_ZoneInfo_tzname_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - find_ttinfo
    - Py_NewRef
    - zoneinfo_get_state_by_cls
    - PyZoneInfo_ZoneInfo_CAST
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzoneinfo_ZoneInfo_tzname_impl(PyObject *self, PyTypeObject
      *cls,\n                              PyObject *dt)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_zoneinfo.c:626,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zoneinfo.c:627,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_zoneinfo.c:631,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zoneinfo.c:632,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:638,1
    - Dst: get_local_timestamp
      Src: /src/cpython/Modules/_zoneinfo.c:641,1
    - Dst: find_tzrule_ttinfo_fromutc
      Src: /src/cpython/Modules/_zoneinfo.c:654,1
    - Dst: PyDateTime_GET_YEAR
      Src: /src/cpython/Modules/_zoneinfo.c:655,1
    - Dst: _bisect
      Src: /src/cpython/Modules/_zoneinfo.c:678,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_zoneinfo.c:698,1
    - Dst: PyDateTime_CheckExact
      Src: /src/cpython/Modules/_zoneinfo.c:704,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:709,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:710,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_zoneinfo.c:714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:716,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_zoneinfo.c:719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:722,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_zoneinfo.c:727,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_zoneinfo.c:727,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_zoneinfo.c:728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:733,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - obj_self
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 744
    functionName: zoneinfo_fromutc
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyObject_GetAttrString
    - PyDateTime_CheckExact
    - get_local_timestamp
    - PyErr_SetString
    - _PyLong_GetOne
    - PyZoneInfo_ZoneInfo_CAST
    - PyObject_Call
    - _bisect
    - PyDateTime_GET_YEAR
    - PyDict_New
    - PyNumber_Add
    - PyDict_SetItemString
    - GET_DT_TZINFO
    - PyDateTime_Check
    - find_tzrule_ttinfo_fromutc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_fromutc(PyObject *obj_self, PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:749,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_zoneinfo.c:751,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:753,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_zoneinfo.c:753,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_zoneinfo.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(self->file_repr))
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: zoneinfo_repr
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - PyUnicode_Check
    - assert
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:760,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:762,1
    - Dst: zoneinfo_repr
      Src: /src/cpython/Modules/_zoneinfo.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: zoneinfo_str
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - Py_NewRef
    - zoneinfo_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_str(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:782,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:786,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:793,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:798,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zoneinfo.c:804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - obj_self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 807
    functionName: zoneinfo_reduce
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyObject_GetAttrString
    - Py_BuildValue
    - PyZoneInfo_ZoneInfo_CAST
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_reduce(PyObject *obj_self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_zoneinfo.c:828,1
    - Dst: zoneinfo_ZoneInfo_impl
      Src: /src/cpython/Modules/_zoneinfo.c:829,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_zoneinfo.c:830,1
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:834,1
    - Dst: zoneinfo_new_instance
      Src: /src/cpython/Modules/_zoneinfo.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - type
    - cls
    - key
    - from_cache
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 821
    functionDepth: 4
    functionLinenumber: 821
    functionLinenumberEnd: 837
    functionName: zoneinfo_ZoneInfo__unpickle_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - zoneinfo_get_state_by_cls
    - zoneinfo_ZoneInfo_impl
    - zoneinfo_new_instance
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzoneinfo_ZoneInfo__unpickle_impl(PyTypeObject *type, PyTypeObject
      *cls,\n                                 PyObject *key, unsigned char from_cache)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_zoneinfo.c:856,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_zoneinfo.c:860,1
    - Dst: Delta_FromDelta
      Src: /src/cpython/Modules/_zoneinfo.c:861,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/_zoneinfo.c:865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - seconds
    argTypes:
    - zoneinfo_state*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 872
    functionName: load_timedelta
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Delta_FromDelta
    - PyDict_SetDefaultRef
    - PyLong_FromLong
    - PyDict_GetItemRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      load_timedelta(zoneinfo_state *state, long seconds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_timedelta
      Src: /src/cpython/Modules/_zoneinfo.c:887,1
    - Dst: load_timedelta
      Src: /src/cpython/Modules/_zoneinfo.c:892,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - state
    - utcoffset
    - dstoffset
    - tzname
    - out
    argTypes:
    - zoneinfo_state*
    - long
    - long
    - PyObject*
    - _ttinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 900
    functionName: build_ttinfo
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - load_timedelta
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: "int build_ttinfo(zoneinfo_state *state, long utcoffset, long dstoffset,\n
      \            PyObject *tzname, _ttinfo *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:907,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:908,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ttinfo
    argTypes:
    - _ttinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 911
    functionName: xdecref_ttinfo
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void xdecref_ttinfo(_ttinfo *ttinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_zoneinfo.c:918,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_zoneinfo.c:923,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_zoneinfo.c:928,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - tti0
    - tti1
    argTypes:
    - _ttinfo*
    - _ttinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 934
    functionName: ttinfo_eq
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int ttinfo_eq(const _ttinfo *const tti0, const _ttinfo *const tti1)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:967,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_zoneinfo.c:974,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:975,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:981,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:986,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:991,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:996,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1001,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1006,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_zoneinfo.c:1012,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_zoneinfo.c:1017,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1027,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1031,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1037,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_zoneinfo.c:1041,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1042,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1046,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_zoneinfo.c:1051,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1058,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1068,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1069,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1075,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:1080,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1081,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1085,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zoneinfo.c:1090,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1099,1
    - Dst: utcoff_to_dstoff
      Src: /src/cpython/Modules/_zoneinfo.c:1105,1
    - Dst: ts_to_local
      Src: /src/cpython/Modules/_zoneinfo.c:1108,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1115,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1120,1
    - Dst: build_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1126,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1135,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:1141,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zoneinfo.c:1159,1
    - Dst: parse_tz_str
      Src: /src/cpython/Modules/_zoneinfo.c:1160,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1166,1
    - Dst: build_tzrule
      Src: /src/cpython/Modules/_zoneinfo.c:1179,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zoneinfo.c:1186,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_zoneinfo.c:1188,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:1188,1
    - Dst: ttinfo_eq
      Src: /src/cpython/Modules/_zoneinfo.c:1218,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1233,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1239,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1246,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1248,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1253,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1259,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1262,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1266,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1270,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1274,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 235
    argCount: 3
    argNames:
    - state
    - self
    - file_obj
    argTypes:
    - zoneinfo_state*
    - PyZoneInfo_ZoneInfo*
    - PyObject*
    assertStmts:
    - condition: (ttinfo_idx < self->num_ttinfos)
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 1278
      start: 947
    functionDepth: 3
    functionLinenumber: 947
    functionLinenumberEnd: 1278
    functionName: load_data
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - build_ttinfo
    - Py_XDECREF
    - PyMem_Calloc
    - Py_SETREF
    - PyMem_Free
    - PyTuple_CheckExact
    - ts_to_local
    - ttinfo_eq
    - PyLong_AsLong
    - PyErr_Occurred
    - parse_tz_str
    - PyErr_Format
    - PyTuple_Size
    - utcoff_to_dstoff
    - Py_NewRef
    - PyLong_AsSsize_t
    - PyMem_Malloc
    - PyObject_IsTrue
    - PyLong_AsLongLong
    - PyObject_CallMethod
    - build_tzrule
    - xdecref_ttinfo
    - PyTuple_GetItem
    - assert
    linkageType: ''
    returnType: int
    signature: int load_data(zoneinfo_state *state, PyZoneInfo_ZoneInfo *self, PyObject
      *file_obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_zoneinfo.c:1292,1
    - Dst: is_leap_year
      Src: /src/cpython/Modules/_zoneinfo.c:1294,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_zoneinfo.c:1322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - base_self
    - year
    argTypes:
    - TransitionRuleType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1325
    functionName: calendarrule_year_to_timestamp
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - ymd_to_ord
    - is_leap_year
    linkageType: ''
    returnType: int64_t
    signature: int64_t calendarrule_year_to_timestamp(TransitionRuleType *base_self,
      int year)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1340,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1345,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1350,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - month
    - week
    - day
    - hour
    - minute
    - second
    - out
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - CalendarRule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1373
    functionName: calendarrule_new
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int calendarrule_new(int month, int week, int day, int hour,\n                 int
      minute, int second, CalendarRule *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_zoneinfo.c:1395,1
    - Dst: is_leap_year
      Src: /src/cpython/Modules/_zoneinfo.c:1409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - base_self
    - year
    argTypes:
    - TransitionRuleType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1415
    functionName: dayrule_year_to_timestamp
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - ymd_to_ord
    - is_leap_year
    linkageType: ''
    returnType: int64_t
    signature: int64_t dayrule_year_to_timestamp(TransitionRuleType *base_self, int
      year)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1426,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - julian
    - day
    - hour
    - minute
    - second
    - out
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - DayRule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1452
    functionName: dayrule_new
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int dayrule_new(int julian, int day, int hour, int minute,\n            int
      second, DayRule *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:1458,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:1459,1
    - Dst: _tzrule*::start::year_to_timestamp
      Src: /src/cpython/Modules/_zoneinfo.c:1460,1
    - Dst: _tzrule*::end::year_to_timestamp
      Src: /src/cpython/Modules/_zoneinfo.c:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - rule
    - year
    - start
    - end
    argTypes:
    - _tzrule*
    - int
    - int64_t*
    - int64_t*
    assertStmts:
    - condition: (rule->start != NULL)
      pos:
        line_end: 1457
        line_start: 1457
        source_file: /src/cpython/Modules/_zoneinfo.c
    - condition: (rule->end != NULL)
      pos:
        line_end: 1458
        line_start: 1458
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 1462
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1462
    functionName: tzrule_transitions
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - _tzrule*::start::year_to_timestamp
    - _tzrule*::end::year_to_timestamp
    - assert
    linkageType: ''
    returnType: void
    signature: void tzrule_transitions(_tzrule *rule, int year, int64_t *start, int64_t
      *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tzrule_transitions
      Src: /src/cpython/Modules/_zoneinfo.c:1482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - rule
    - ts
    - fold
    - year
    argTypes:
    - _tzrule*
    - int64_t
    - unsigned char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1472
    functionDepth: 1
    functionLinenumber: 1472
    functionLinenumberEnd: 1512
    functionName: find_tzrule_ttinfo
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - tzrule_transitions
    linkageType: ''
    returnType: _ttinfo
    signature: '_ttinfo *

      find_tzrule_ttinfo(_tzrule *rule, int64_t ts, unsigned char fold, int year)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tzrule_transitions
      Src: /src/cpython/Modules/_zoneinfo.c:1536,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - rule
    - ts
    - year
    - fold
    argTypes:
    - _tzrule*
    - int64_t
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1525
    functionDepth: 1
    functionLinenumber: 1525
    functionLinenumberEnd: 1568
    functionName: find_tzrule_ttinfo_fromutc
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - tzrule_transitions
    linkageType: ''
    returnType: _ttinfo
    signature: "_ttinfo *\nfind_tzrule_ttinfo_fromutc(_tzrule *rule, int64_t ts, int
      year,\n                           unsigned char *fold)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_zoneinfo.c:1596,1
    - Dst: parse_abbr
      Src: /src/cpython/Modules/_zoneinfo.c:1603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1604,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1605,1
    - Dst: parse_tz_delta
      Src: /src/cpython/Modules/_zoneinfo.c:1611,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1612,1
    - Dst: parse_abbr
      Src: /src/cpython/Modules/_zoneinfo.c:1622,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1623,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1624,1
    - Dst: parse_tz_delta
      Src: /src/cpython/Modules/_zoneinfo.c:1637,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1638,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1647,1
    - Dst: parse_transition_rule
      Src: /src/cpython/Modules/_zoneinfo.c:1654,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1655,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1663,1
    - Dst: build_tzrule
      Src: /src/cpython/Modules/_zoneinfo.c:1670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1672,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1673,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1679,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1683,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1687,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 3
    argNames:
    - state
    - tz_str_obj
    - out
    argTypes:
    - zoneinfo_state*
    - PyObject*
    - _tzrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1691
    functionName: parse_tz_str
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - parse_tz_delta
    - parse_transition_rule
    - build_tzrule
    - PyBytes_AsString
    - parse_abbr
    - PyErr_Format
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int parse_tz_str(zoneinfo_state *state, PyObject *tz_str_obj, _tzrule
      *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:1696,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Modules/_zoneinfo.c:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - p
    - min
    - max
    - value
    argTypes:
    - char**
    - int
    - int
    - int*
    assertStmts:
    - condition: (max <= 3)
      pos:
        line_end: 1695
        line_start: 1695
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 1706
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1706
    functionName: parse_digits
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - Py_ISDIGIT
    - assert
    linkageType: ''
    returnType: int
    signature: int parse_digits(const char **p, int min, int max, int *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISALPHA
      Src: /src/cpython/Modules/_zoneinfo.c:1731,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Modules/_zoneinfo.c:1731,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Modules/_zoneinfo.c:1747,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_zoneinfo.c:1756,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - p
    - abbr
    argTypes:
    - char**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1763
    functionName: parse_abbr
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - Py_ISALPHA
    - PyUnicode_FromStringAndSize
    - Py_ISDIGIT
    linkageType: ''
    returnType: int
    signature: int parse_abbr(const char **p, PyObject **abbr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_transition_time
      Src: /src/cpython/Modules/_zoneinfo.c:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - total_seconds
    argTypes:
    - char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1801
    functionName: parse_tz_delta
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - parse_transition_time
    linkageType: ''
    returnType: int
    signature: int parse_tz_delta(const char **p, long *total_seconds)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1832,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1838,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1844,1
    - Dst: parse_transition_time
      Src: /src/cpython/Modules/_zoneinfo.c:1850,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1855,1
    - Dst: calendarrule_new
      Src: /src/cpython/Modules/_zoneinfo.c:1860,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1861,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1875,1
    - Dst: parse_transition_time
      Src: /src/cpython/Modules/_zoneinfo.c:1881,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1886,1
    - Dst: dayrule_new
      Src: /src/cpython/Modules/_zoneinfo.c:1891,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1892,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - p
    - out
    argTypes:
    - char**
    - TransitionRuleType**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1900
    functionName: parse_transition_rule
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - PyMem_Calloc
    - parse_transition_time
    - dayrule_new
    - parse_digits
    - PyMem_Free
    - calendarrule_new
    linkageType: ''
    returnType: int
    signature: int parse_transition_rule(const char **p, TransitionRuleType **out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1928,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1936,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1943,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - p
    - hour
    - minute
    - second
    argTypes:
    - char**
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1952
    functionName: parse_transition_time
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - parse_digits
    linkageType: ''
    returnType: int
    signature: int parse_transition_time(const char **p, int *hour, int *minute, int
      *second)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: build_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1972,1
    - Dst: build_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1978,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1990,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1991,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 8
    argNames:
    - state
    - std_abbr
    - dst_abbr
    - std_offset
    - dst_offset
    - start
    - end
    - out
    argTypes:
    - zoneinfo_state*
    - PyObject*
    - PyObject*
    - long
    - long
    - TransitionRuleType*
    - TransitionRuleType*
    - _tzrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1962
    functionDepth: 3
    functionLinenumber: 1962
    functionLinenumberEnd: 1993
    functionName: build_tzrule
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - build_ttinfo
    - xdecref_ttinfo
    linkageType: ''
    returnType: int
    signature: "int build_tzrule(zoneinfo_state *state, PyObject *std_abbr, PyObject
      *dst_abbr,\n             long std_offset, long dst_offset, TransitionRuleType
      *start,\n             TransitionRuleType *end, _tzrule *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1999,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:2001,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:2005,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:2009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tzrule
    argTypes:
    - _tzrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2011
    functionName: free_tzrule
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - xdecref_ttinfo
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_tzrule(_tzrule *tzrule)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 6
    argNames:
    - trans_idx
    - utcoffs
    - dstoffs
    - isdsts
    - num_transitions
    - num_ttinfos
    argTypes:
    - size_t*
    - long*
    - long*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2084
    functionName: utcoff_to_dstoff
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void utcoff_to_dstoff(size_t *trans_idx, long *utcoffs, long *dstoffs,\n
      \                unsigned char *isdsts, size_t num_transitions,\n                 size_t
      num_ttinfos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2090
    functionName: _swap
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _swap(x, y, buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:2119,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zoneinfo.c:2124,1
    - Dst: _swap
      Src: /src/cpython/Modules/_zoneinfo.c:2133,1
    - Dst: _swap
      Src: /src/cpython/Modules/_zoneinfo.c:2149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 6
    argNames:
    - trans_idx
    - trans_utc
    - utcoff
    - trans_local
    - num_ttinfos
    - num_transitions
    argTypes:
    - size_t*
    - int64_t*
    - long*
    - int64_t*[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2157
    functionName: ts_to_local
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - memcpy
    - _swap
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: "int ts_to_local(size_t *trans_idx, int64_t *trans_utc, long *utcoff,\n
      \           int64_t *trans_local[2], size_t num_ttinfos,\n            size_t
      num_transitions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - value
    - arr
    - size
    argTypes:
    - int64_t
    - int64_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2178
    functionName: _bisect
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _bisect(const int64_t value, const int64_t *arr, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_local_timestamp
      Src: /src/cpython/Modules/_zoneinfo.c:2196,1
    - Dst: PyDateTime_DATE_GET_FOLD
      Src: /src/cpython/Modules/_zoneinfo.c:2200,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:2201,1
    - Dst: find_tzrule_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:2209,1
    - Dst: PyDateTime_GET_YEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2210,1
    - Dst: _bisect
      Src: /src/cpython/Modules/_zoneinfo.c:2213,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:2214,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - state
    - self
    - dt
    argTypes:
    - zoneinfo_state*
    - PyZoneInfo_ZoneInfo*
    - PyObject*
    assertStmts:
    - condition: (fold < 2)
      pos:
        line_end: 2200
        line_start: 2200
        source_file: /src/cpython/Modules/_zoneinfo.c
    - condition: (idx < self->num_transitions)
      pos:
        line_end: 2213
        line_start: 2213
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 2217
      start: 2181
    functionDepth: 2
    functionLinenumber: 2181
    functionLinenumberEnd: 2217
    functionName: find_ttinfo
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 3
    functionsReached:
    - get_local_timestamp
    - _bisect
    - PyDateTime_GET_YEAR
    - find_tzrule_ttinfo
    - PyDateTime_DATE_GET_FOLD
    - assert
    linkageType: ''
    returnType: _ttinfo
    signature: '_ttinfo *

      find_ttinfo(zoneinfo_state *state, PyZoneInfo_ZoneInfo *self, PyObject *dt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2219
    functionDepth: 0
    functionLinenumber: 2219
    functionLinenumberEnd: 2224
    functionName: is_leap_year
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_leap_year(int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_leap_year
      Src: /src/cpython/Modules/_zoneinfo.c:2233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2238
    functionName: ymd_to_ord
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 11
    functionsReached:
    - is_leap_year
    linkageType: ''
    returnType: int
    signature: int ymd_to_ord(int y, int m, int d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:2249,1
    - Dst: PyDateTime_CheckExact
      Src: /src/cpython/Modules/_zoneinfo.c:2253,1
    - Dst: PyDateTime_GET_YEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2254,1
    - Dst: PyDateTime_GET_MONTH
      Src: /src/cpython/Modules/_zoneinfo.c:2255,1
    - Dst: PyDateTime_GET_DAY
      Src: /src/cpython/Modules/_zoneinfo.c:2256,1
    - Dst: PyDateTime_DATE_GET_HOUR
      Src: /src/cpython/Modules/_zoneinfo.c:2257,1
    - Dst: PyDateTime_DATE_GET_MINUTE
      Src: /src/cpython/Modules/_zoneinfo.c:2258,1
    - Dst: PyDateTime_DATE_GET_SECOND
      Src: /src/cpython/Modules/_zoneinfo.c:2259,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_zoneinfo.c:2261,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:2264,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2270,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:2271,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2275,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2280,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2285,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2290,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2295,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2300,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - dt
    - local_ts
    argTypes:
    - PyObject*
    - int64_t*
    assertStmts:
    - condition: (local_ts != NULL)
      pos:
        line_end: 2248
        line_start: 2248
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 2310
      start: 2246
    functionDepth: 1
    functionLinenumber: 2246
    functionLinenumberEnd: 2310
    functionName: get_local_timestamp
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - PyDateTime_GET_MONTH
    - Py_DECREF
    - PyObject_GetAttrString
    - PyDateTime_CheckExact
    - PyLong_AsLong
    - ymd_to_ord
    - PyErr_Occurred
    - PyObject_CallMethod
    - PyDateTime_GET_DAY
    - PyDateTime_DATE_GET_HOUR
    - PyDateTime_DATE_GET_MINUTE
    - PyDateTime_GET_YEAR
    - PyDateTime_DATE_GET_SECOND
    - assert
    linkageType: ''
    returnType: int
    signature: int get_local_timestamp(PyObject *dt, int64_t *local_ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:2324,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2331,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - key
    - zone
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2335
    functionName: strong_cache_node_new
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMem_Malloc
    linkageType: ''
    returnType: StrongCacheNode
    signature: 'StrongCacheNode *

      strong_cache_node_new(PyObject *key, PyObject *zone)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2341,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2342,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:2344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2345
    functionName: strong_cache_node_free
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void strong_cache_node_free(StrongCacheNode *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strong_cache_node_free
      Src: /src/cpython/Modules/_zoneinfo.c:2360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2353
    functionDepth: 2
    functionLinenumber: 2353
    functionLinenumberEnd: 2364
    functionName: strong_cache_free
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - strong_cache_node_free
    linkageType: ''
    returnType: void
    signature: void strong_cache_free(StrongCacheNode *root)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_zoneinfo.c:2374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - node
    argTypes:
    - zoneinfo_state*
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2389
    functionName: remove_from_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: void
    signature: void remove_from_strong_cache(zoneinfo_state *state, StrongCacheNode
      *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_zoneinfo.c:2403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - root
    - key
    argTypes:
    - StrongCacheNode*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2415
    functionName: find_in_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: StrongCacheNode
    signature: 'StrongCacheNode *

      find_in_strong_cache(const StrongCacheNode *const root, PyObject *const key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_zoneinfo.c:2429,1
    - Dst: find_in_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2431,1
    - Dst: remove_from_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2433,1
    - Dst: strong_cache_node_free
      Src: /src/cpython/Modules/_zoneinfo.c:2435,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:2437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - state
    - type
    - key
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2421
    functionDepth: 2
    functionLinenumber: 2421
    functionLinenumberEnd: 2441
    functionName: eject_from_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - remove_from_strong_cache
    - find_in_strong_cache
    - strong_cache_node_free
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: "int eject_from_strong_cache(zoneinfo_state *state, const PyTypeObject
      *const type,\n                        PyObject *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_from_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - state
    - root
    - node
    argTypes:
    - zoneinfo_state*
    - StrongCacheNode**
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2448
    functionDepth: 2
    functionLinenumber: 2448
    functionLinenumberEnd: 2467
    functionName: move_strong_cache_node_to_front
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - remove_from_strong_cache
    linkageType: ''
    returnType: void
    signature: "void move_strong_cache_node_to_front(zoneinfo_state *state, StrongCacheNode
      **root,\n                                StrongCacheNode *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_zoneinfo.c:2486,1
    - Dst: find_in_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2488,1
    - Dst: move_strong_cache_node_to_front
      Src: /src/cpython/Modules/_zoneinfo.c:2492,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - state
    - type
    - key
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2478
    functionDepth: 3
    functionLinenumber: 2478
    functionLinenumberEnd: 2497
    functionName: zone_from_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - move_strong_cache_node_to_front
    - find_in_strong_cache
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzone_from_strong_cache(zoneinfo_state *state, const PyTypeObject
      *const type,\n                       PyObject *const key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_zoneinfo.c:2513,1
    - Dst: strong_cache_node_new
      Src: /src/cpython/Modules/_zoneinfo.c:2514,1
    - Dst: move_strong_cache_node_to_front
      Src: /src/cpython/Modules/_zoneinfo.c:2519,1
    - Dst: strong_cache_free
      Src: /src/cpython/Modules/_zoneinfo.c:2534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - state
    - type
    - key
    - zone
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2505
    functionDepth: 3
    functionLinenumber: 2505
    functionLinenumberEnd: 2536
    functionName: update_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - move_strong_cache_node_to_front
    - strong_cache_free
    - strong_cache_node_new
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: void
    signature: "void update_strong_cache(zoneinfo_state *state, const PyTypeObject
      *const type,\n                    PyObject *key, PyObject *zone)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strong_cache_free
      Src: /src/cpython/Modules/_zoneinfo.c:2550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - type
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2543
    functionDepth: 3
    functionLinenumber: 2543
    functionLinenumberEnd: 2552
    functionName: clear_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - strong_cache_free
    linkageType: ''
    returnType: void
    signature: void clear_strong_cache(zoneinfo_state *state, const PyTypeObject *const
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2558,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_zoneinfo.c:2562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2565
    functionName: new_weak_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_weak_cache(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_zoneinfo.c:2571,1
    - Dst: new_weak_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - zoneinfo_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2568
    functionDepth: 2
    functionLinenumber: 2568
    functionLinenumberEnd: 2582
    functionName: initialize_caches
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - new_weak_cache
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int initialize_caches(zoneinfo_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_weak_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2587,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2584
    functionDepth: 2
    functionLinenumber: 2584
    functionLinenumberEnd: 2599
    functionName: zoneinfo_init_subclass
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - new_weak_cache
    - Py_DECREF
    - PyObject_SetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_init_subclass(PyObject *cls, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state
      Src: /src/cpython/Modules/_zoneinfo.c:2663,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2665,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2666,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2667,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2668,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2669,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2670,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2675,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2676,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2680,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2681,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2660
    functionDepth: 2
    functionLinenumber: 2660
    functionLinenumberEnd: 2685
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - zoneinfo_get_state
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state
      Src: /src/cpython/Modules/_zoneinfo.c:2690,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2692,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2693,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2694,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2695,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2696,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2697,1
    - Dst: clear_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2698,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2699,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2700,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2687
    functionDepth: 4
    functionLinenumber: 2687
    functionLinenumberEnd: 2704
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 13
    functionsReached:
    - clear_strong_cache
    - Py_CLEAR
    - zoneinfo_get_state
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_zoneinfo.c:2709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2710
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - module_clear
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state
      Src: /src/cpython/Modules/_zoneinfo.c:2720,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_zoneinfo.c:2722,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_zoneinfo.c:2728,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2736,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2741,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_zoneinfo.c:2746,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2753,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2754,1
    - Dst: initialize_caches
      Src: /src/cpython/Modules/_zoneinfo.c:2757,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2712
    functionDepth: 3
    functionLinenumber: 2712
    functionLinenumberEnd: 2765
    functionName: zoneinfomodule_exec
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - initialize_caches
    - PyModule_AddObjectRef
    - PyImport_ImportModule
    - Py_NewRef
    - PyType_FromModuleAndSpec
    - zoneinfo_get_state
    linkageType: ''
    returnType: int
    signature: int zoneinfomodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_zoneinfo.c:2789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2786
    functionDepth: 1
    functionLinenumber: 2786
    functionLinenumberEnd: 2790
    functionName: PyInit__zoneinfo
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__zoneinfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_pickle.c:219,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: _Pickle_GetState
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: PickleState
    signature: 'PickleState *

      _Pickle_GetState(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_pickle.c:227,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: _Pickle_GetStateByClass
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: PickleState
    signature: 'PickleState *

      _Pickle_GetStateByClass(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_pickle.c:235,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:236,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: _Pickle_FindStateByType
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _Pickle_GetState
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: PickleState
    signature: 'PickleState *

      _Pickle_FindStateByType(PyTypeObject *tp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:244,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:245,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:246,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:247,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:248,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:249,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:250,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:251,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:252,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:253,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:254,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:255,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:256,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:257,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:258,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:259,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:260,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:261,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 263
    functionName: _Pickle_ClearState
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _Pickle_ClearState(PickleState *st)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Modules/_pickle.c:272,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:272,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_pickle.c:276,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:279,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:282,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:283,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:285,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:289,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:292,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:293,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:295,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:299,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:302,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:303,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:305,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:308,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:311,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:312,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:314,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:317,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_pickle.c:320,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:324,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:327,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:328,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:330,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:334,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:337,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:338,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:340,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:345,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:348,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:351,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:355,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:358,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:359,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:361,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:364,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_pickle.c:366,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_pickle.c:370,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:371,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:373,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_pickle.c:377,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:384,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:385,1
    - Dst: _Pickle_ClearState
      Src: /src/cpython/Modules/_pickle.c:386,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 108
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 388
    functionName: _Pickle_InitState
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - PyImport_ImportModuleAttrString
    - PyObject_GetAttrString
    - PyDict_CheckExact
    - Py_CLEAR
    - _Py_ID
    - PyCallable_Check
    - PyImport_ImportModule
    - _Pickle_ClearState
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Pickle_InitState(PickleState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: _Pickle_FastCall
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallOneArg
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Pickle_FastCall(PyObject *func, 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: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: Pdata_CAST
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Pdata_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:419,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: Pdata_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Pdata_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pdata_CAST
      Src: /src/cpython/Modules/_pickle.c:426,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:427,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:428,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:431,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:433,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: Pdata_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - Py_SIZE
    - PyTypeObject*::tp_free
    - Pdata_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void Pdata_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:458,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:460,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_pickle.c:464,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:469,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 471
    functionName: Pdata_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_DECREF
    - PyObject_GC_Track
    - PyObject_GC_New
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_New(PickleState *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:480,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:482,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:487,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:489,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: 481
        line_start: 481
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 491
    functionName: Pdata_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_SET_SIZE
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: int Pdata_clear(Pdata *self, Py_ssize_t clearto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 516
    functionName: Pdata_grow
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int Pdata_grow(Pdata *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: Pdata_stack_underflow
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int Pdata_stack_underflow(PickleState *st, Pdata *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:535,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:536,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:539,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:539,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: Pdata_pop
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_SET_SIZE
    - Pdata_stack_underflow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_pop(PickleState *state, Pdata *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - S
    - ','
    - D
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: PDATA_POP
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDATA_POP(S, D, V)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:547,1
    - Dst: Pdata_grow
      Src: /src/cpython/Modules/_pickle.c:547,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:550,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:551,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - Pdata*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 553
    functionName: Pdata_push
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Pdata_grow
    - Py_SET_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: 558
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 558
    functionName: PDATA_PUSH
    functionSourceFile: /src/cpython/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: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: PDATA_APPEND
    functionSourceFile: /src/cpython/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/cpython/Modules/_pickle.c:571,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:574,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:575,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:579,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - state
    - self
    - start
    argTypes:
    - PickleState*
    - Pdata*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 583
    functionName: Pdata_poptuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - PyTuple_New
    - Py_SIZE
    - PyTuple_SET_ITEM
    - Pdata_stack_underflow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_poptuple(PickleState *state, Pdata *self, Py_ssize_t start)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:591,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_pickle.c:592,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:596,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - Pdata*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 600
    functionName: Pdata_poplist
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_SET_SIZE
    - PyList_New
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_poplist(Pdata *self, Py_ssize_t start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 704
    functionName: PicklerObject_CAST
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PicklerObject_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: 705
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 705
    functionName: UnpicklerObject_CAST
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UnpicklerObject_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: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    functionName: PicklerMemoProxyObject_CAST
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PicklerMemoProxyObject_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: 707
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 707
    functionName: UnpicklerMemoProxyObject_CAST
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UnpicklerMemoProxyObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_pickle.c:727,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:729,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_pickle.c:736,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:738,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:739,1
    - Dst: memset
      Src: /src/cpython/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/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - memset
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyMemoTable
    signature: 'PyMemoTable *

      PyMemoTable_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_New
      Src: /src/cpython/Modules/_pickle.c:750,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:759,1
    - Dst: mt_table::mt_table
      Src: /src/cpython/Modules/_pickle.c:759,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_pickle.c:760,1
    - Dst: mt_table::mt_table
      Src: /src/cpython/Modules/_pickle.c:761,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:763,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_pickle.c:767,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_New
    - memcpy
    - PyMem_Free
    - mt_table::mt_table
    - Py_XINCREF
    - PyMem_NEW
    - PyErr_NoMemory
    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/cpython/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/cpython/Modules/_pickle.c:787,1
    - Dst: memset
      Src: /src/cpython/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: 0
    functionLinenumber: 781
    functionLinenumberEnd: 792
    functionName: PyMemoTable_Clear
    functionSourceFile: /src/cpython/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/cpython/Modules/_pickle.c:799,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:801,1
    - Dst: PyMem_Free
      Src: /src/cpython/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: 1
    functionLinenumber: 794
    functionLinenumberEnd: 803
    functionName: PyMemoTable_Del
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_Clear
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void PyMemoTable_Del(PyMemoTable *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/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/cpython/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/cpython/Modules/_pickle.c:840,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:843,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:852,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_pickle.c:856,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:859,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:864,1
    - Dst: _PyMemoTable_Lookup
      Src: /src/cpython/Modules/_pickle.c:874,1
    - Dst: PyMem_Free
      Src: /src/cpython/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/cpython/Modules/_pickle.c
    - condition: ((new_size & (new_size - 1)) == 0)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 883
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 883
    functionName: _PyMemoTable_ResizeTable
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyMemoTable_Lookup
    - memset
    - PyMem_Free
    - PyMem_NEW
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMemoTable_ResizeTable(PyMemoTable *self, size_t min_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMemoTable_Lookup
      Src: /src/cpython/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/cpython/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/cpython/Modules/_pickle.c:901,1
    - Dst: _PyMemoTable_Lookup
      Src: /src/cpython/Modules/_pickle.c:903,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:908,1
    - Dst: _PyMemoTable_ResizeTable
      Src: /src/cpython/Modules/_pickle.c:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    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/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 928
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 928
    functionName: PyMemoTable_Set
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyMemoTable_ResizeTable
    - assert
    - _PyMemoTable_Lookup
    linkageType: ''
    returnType: int
    signature: int PyMemoTable_Set(PyMemoTable *self, PyObject *key, Py_ssize_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:939,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 946
    functionName: _Pickler_ClearBuffer
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int _Pickler_ClearBuffer(PicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - value
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 961
    functionName: _write_size64
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _write_size64(char *out, size_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:972,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:975,1
    - Dst: memmove
      Src: /src/cpython/Modules/_pickle.c:978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 983
    functionName: _Pickler_CommitFrame
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _write_size64
    - memmove
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int _Pickler_CommitFrame(PicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:990,1
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:992,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_pickle.c:997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts:
    - condition: (self->output_buffer != NULL)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1000
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1000
    functionName: _Pickler_GetString
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - _Pickler_CommitFrame
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Pickler_GetString(PicklerObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1007,1
    - Dst: _Pickler_GetString
      Src: /src/cpython/Modules/_pickle.c:1010,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1014,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts:
    - condition: (self->write != NULL)
      pos:
        line_end: 1006
        line_start: 1006
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1017
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1017
    functionName: _Pickler_FlushToFile
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_GetString
    - Py_XDECREF
    - _Pickle_FastCall
    - assert
    linkageType: ''
    returnType: int
    signature: int _Pickler_FlushToFile(PicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:1029,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:1040,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/cpython/Modules/_pickle.c:1043,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1019
    functionDepth: 4
    functionLinenumber: 1019
    functionLinenumberEnd: 1049
    functionName: _Pickler_OpcodeBoundary
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_FlushToFile
    - _Pickler_ClearBuffer
    - _Pickler_CommitFrame
    linkageType: ''
    returnType: int
    signature: int _Pickler_OpcodeBoundary(PicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1058,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1070,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_pickle.c:1074,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:1077,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1095,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: 1057
        line_start: 1057
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1099
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1099
    functionName: _Pickler_Write
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - memcpy
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Pickler_Write(PicklerObject *self, const char *s, Py_ssize_t
      data_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_New
      Src: /src/cpython/Modules/_pickle.c:1104,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:1110,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:1115,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:1140,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:1144,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:1145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1147
    functionName: _Pickler_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMemoTable_New
    - PyBytes_FromStringAndSize
    - PyObject_GC_Track
    - PyObject_GC_New
    - PyMem_Free
    linkageType: ''
    returnType: PicklerObject
    signature: 'PicklerObject *

      _Pickler_New(PickleState *st)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_pickle.c:1158,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1160,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - protocol
    - fix_imports
    argTypes:
    - PicklerObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1174
    functionName: _Pickler_SetProtocol
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_Format
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: int _Pickler_SetProtocol(PicklerObject *self, PyObject *protocol, int
      fix_imports)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1181,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1182,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1182,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (file != NULL)
      pos:
        line_end: 1180
        line_start: 1180
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1192
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1192
    functionName: _Pickler_SetOutputStream
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - _Py_ID
    - assert
    linkageType: ''
    returnType: int
    signature: int _Pickler_SetOutputStream(PicklerObject *self, PyObject *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1201,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_pickle.c:1206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - buffer_callback
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1208
    functionName: _Pickler_SetBufferCallback
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_XNewRef
    linkageType: ''
    returnType: int
    signature: int _Pickler_SetBufferCallback(PicklerObject *self, PyObject *buffer_callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_pickle.c:1216,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_pickle.c:1217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - input
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1224
    functionName: _Unpickler_SetStringInput
    functionSourceFile: /src/cpython/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: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1231
    functionName: bad_readline
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int bad_readline(PickleState *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1244,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_pickle.c:1246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts:
    - condition: (self->peek)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1253
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1253
    functionName: _Unpickler_SkipConsumed
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _Unpickler_SkipConsumed(UnpicklerObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1277,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/cpython/Modules/_pickle.c:1279,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_pickle.c:1283,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:1289,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1292,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:1294,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_pickle.c:1297,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1298,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/cpython/Modules/_pickle.c:1301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1302,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:1312,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1315,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/cpython/Modules/_pickle.c:1320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1321,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->read != NULL)
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1323
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1323
    functionName: _Unpickler_ReadFromFile
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - _Unpickler_SkipConsumed
    - Py_DECREF
    - PyLong_FromSsize_t
    - _Unpickler_SetStringInput
    - PyErr_ExceptionMatches
    - _Pickle_FastCall
    - PyErr_Clear
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_ReadFromFile(UnpicklerObject *self, Py_ssize_t
      n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1333,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1339,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1342,1
    - Dst: _Unpickler_ReadFromFile
      Src: /src/cpython/Modules/_pickle.c:1345,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - st
    - s
    - n
    argTypes:
    - UnpicklerObject*
    - PickleState*
    - char**
    - Py_ssize_t
    assertStmts:
    - condition: (self->next_read_idx + n > self->input_len)
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1353
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1353
    functionName: _Unpickler_ReadImpl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_ReadFromFile
    - PyErr_SetString
    - bad_readline
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_ReadImpl(UnpicklerObject *self, PickleState *st,
      char **s, Py_ssize_t n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1367,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:1372,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1373,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1386,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/cpython/Modules/_pickle.c:1388,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:1395,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1399,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_pickle.c:1403,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1404,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:1406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1407,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1412,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1413,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1415,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:1415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1416,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Modules/_pickle.c:1421,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1425,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:1429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1430,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1433,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1434,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1440,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 4
    argNames:
    - state
    - self
    - buf
    - n
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (n != READ_WHOLE_LINE)
      pos:
        line_end: 1366
        line_start: 1366
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1443
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1443
    functionName: _Unpickler_ReadInto
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - _Unpickler_SkipConsumed
    - assert
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_AS_STRING
    - _Pickle_FastCall
    - PyBytes_GET_SIZE
    - PyErr_Format
    - memcpy
    - PyMemoryView_FromMemory
    - Py_TYPE
    - bad_readline
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _Unpickler_ReadInto(PickleState *state, UnpicklerObject
      *self, char *buf,\n                    Py_ssize_t n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - self
    - ','
    - state
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1464
    functionName: _Unpickler_Read
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Unpickler_Read(self, state, s, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_pickle.c:1469,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1471,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1475,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: 1480
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1480
    functionName: _Unpickler_CopyLine
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - memcpy
    - PyErr_NoMemory
    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/cpython/Modules/_pickle.c:1496,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1500,1
    - Dst: _Unpickler_ReadFromFile
      Src: /src/cpython/Modules/_pickle.c:1502,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1506,1
    - Dst: _Unpickler_CopyLine
      Src: /src/cpython/Modules/_pickle.c:1508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - state
    - self
    - result
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1486
    functionDepth: 3
    functionLinenumber: 1486
    functionLinenumberEnd: 1509
    functionName: _Unpickler_Readline
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_ReadFromFile
    - bad_readline
    - _Unpickler_CopyLine
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_Readline(PickleState *state, UnpicklerObject
      *self, char **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1518,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1523,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: 1517
        line_start: 1517
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1531
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1531
    functionName: _Unpickler_ResizeMemoList
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - assert
    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: 1541
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1541
    functionName: _Unpickler_MemoGet
    functionSourceFile: /src/cpython/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/cpython/Modules/_pickle.c:1551,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1553,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:1556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - idx
    - value
    argTypes:
    - UnpicklerObject*
    - size_t
    - PyObject*
    assertStmts:
    - condition: (idx < self->memo_size)
      pos:
        line_end: 1552
        line_start: 1552
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1564
      start: 1545
    functionDepth: 2
    functionLinenumber: 1545
    functionLinenumberEnd: 1564
    functionName: _Unpickler_MemoPut
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _Unpickler_ResizeMemoList
    - Py_DECREF
    - assert
    linkageType: ''
    returnType: int
    signature: int _Unpickler_MemoPut(UnpicklerObject *self, size_t idx, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_pickle.c:1569,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1571,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1566
    functionDepth: 1
    functionLinenumber: 1566
    functionLinenumberEnd: 1576
    functionName: _Unpickler_NewMemo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memset
    - PyMem_NEW
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _Unpickler_NewMemo(Py_ssize_t new_size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:1590,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:1592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1593
    functionName: _Unpickler_MemoCleanup
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _Unpickler_MemoCleanup(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:1599,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:1604,1
    - Dst: Pdata_New
      Src: /src/cpython/Modules/_pickle.c:1605,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:1610,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:1622,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:1641,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:1645,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:1646,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1648
    functionName: _Unpickler_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - memset
    - _Pickle_GetState
    - PyObject_GC_Track
    - Pdata_New
    - _Unpickler_NewMemo
    - PyObject_GC_New
    - PyMem_Free
    linkageType: ''
    returnType: UnpicklerObject
    signature: 'UnpicklerObject *

      _Unpickler_New(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1656,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1656,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1659,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1659,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1662,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1662,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1665,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1665,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1669,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1677,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1678,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1679,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1681
    functionName: _Unpickler_SetInputStream
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyErr_SetString
    - Py_CLEAR
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int _Unpickler_SetInputStream(UnpicklerObject *self, PyObject *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_pickle.c:1695,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_pickle.c:1696,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - UnpicklerObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1702
    functionName: _Unpickler_SetInputEncoding
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyMem_Strdup
    - PyErr_NoMemory
    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/cpython/Modules/_pickle.c:1713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - buffers
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1719
    functionName: _Unpickler_SetBuffers
    functionSourceFile: /src/cpython/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/cpython/Modules/_pickle.c:1729,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_pickle.c:1731,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_pickle.c:1737,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:1739,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1756,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:1762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - st
    - self
    - key
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1722
    functionDepth: 3
    functionLinenumber: 1722
    functionLinenumberEnd: 1766
    functionName: memo_get
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - strlen
    - _Pickler_Write
    - PyErr_SetString
    - PyOS_snprintf
    - PyMemoTable_Get
    - PyErr_SetObject
    linkageType: ''
    returnType: int
    signature: int memo_get(PickleState *st, PicklerObject *self, PyObject *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Size
      Src: /src/cpython/Modules/_pickle.c:1782,1
    - Dst: PyMemoTable_Set
      Src: /src/cpython/Modules/_pickle.c:1783,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:1787,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_pickle.c:1793,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:1795,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1812,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:1817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - st
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1770
    functionDepth: 4
    functionLinenumber: 1770
    functionLinenumberEnd: 1821
    functionName: memo_put
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - strlen
    - _Pickler_Write
    - PyErr_SetString
    - PyOS_snprintf
    - PyMemoTable_Size
    - PyMemoTable_Set
    linkageType: ''
    returnType: int
    signature: int memo_put(PickleState *st, PicklerObject *self, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Split
      Src: /src/cpython/Modules/_pickle.c:1826,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_pickle.c:1826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1823
    functionDepth: 1
    functionLinenumber: 1823
    functionLinenumberEnd: 1827
    functionName: get_dotted_path
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Split
    - _Py_LATIN1_CHR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dotted_path(PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:1833,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1834,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:1836,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_pickle.c:1837,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - st
    - obj
    - dotted_path
    argTypes:
    - PickleState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (n >= 1)
      pos:
        line_end: 1833
        line_start: 1833
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1844
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1844
    functionName: check_dotted_path
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyErr_Format
    - _PyUnicode_EqualToASCIIString
    - assert
    linkageType: ''
    returnType: int
    signature: int check_dotted_path(PickleState *st, PyObject *obj, PyObject *dotted_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1851,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:1851,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:1852,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:1853,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:1855,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:1858,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - obj
    - names
    - raises
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyList_CheckExact(names))
      pos:
        line_end: 1850
        line_start: 1850
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1869
      start: 1846
    functionDepth: 1
    functionLinenumber: 1846
    functionLinenumberEnd: 1869
    functionName: getattribute
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_INCREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyList_GET_SIZE
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getattribute(PyObject *obj, PyObject *names, int raises)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:1878,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_pickle.c:1879,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:1882,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_pickle.c:1883,1
    - Dst: getattribute
      Src: /src/cpython/Modules/_pickle.c:1887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1895,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - module_name
    - module
    - global
    - dotted_path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1871
    functionDepth: 2
    functionLinenumber: 1871
    functionLinenumberEnd: 1897
    functionName: _checkmodule
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    - Py_DECREF
    - getattribute
    linkageType: ''
    returnType: int
    signature: "int _checkmodule(PyObject *module_name, PyObject *module,\n             PyObject
      *global, PyObject *dotted_path)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: check_dotted_path
      Src: /src/cpython/Modules/_pickle.c:1907,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1910,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1910,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1917,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Modules/_pickle.c:1918,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1918,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:1922,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:1924,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:1925,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:1926,1
    - Dst: _checkmodule
      Src: /src/cpython/Modules/_pickle.c:1927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1933,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1934,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1935,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:1941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1943,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:1946,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_pickle.c:1947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1951,1
    - Dst: _checkmodule
      Src: /src/cpython/Modules/_pickle.c:1954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1961,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1970,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1971,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:1976,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1976,1
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_pickle.c:1987,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:1989,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:1990,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:1992,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1993,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:1995,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1997,1
    - Dst: getattribute
      Src: /src/cpython/Modules/_pickle.c:2000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2001,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2003,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2003,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:2004,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:2005,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:2006,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:2009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2015,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:2016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2022,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 92
    argCount: 4
    argNames:
    - st
    - global
    - global_name
    - dotted_path
    argTypes:
    - PickleState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2002
        line_start: 2002
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2024
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 2024
    functionName: whichmodule
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - getattribute
    - PyObject_GetIter
    - PyIter_Next
    - PySys_GetAttr
    - Py_CLEAR
    - Py_INCREF
    - PyDict_CheckExact
    - PyErr_Occurred
    - PyObject_GetItem
    - PyErr_Format
    - _checkmodule
    - check_dotted_path
    - PyImport_Import
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - Py_NewRef
    - PyErr_ExceptionMatches
    - PyObject_GetOptionalAttr
    - PyDict_Next
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      whichmodule(PickleState *st, PyObject *global, PyObject *global_name, PyObject
      *dotted_path)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_pickle.c:2041,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_pickle.c:2047,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_pickle.c:2052,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:2054,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:2057,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:2060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2062,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2069
    functionName: fast_save_enter
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - PyDict_SetItem
    - Py_DECREF
    - PyDict_Contains
    - PyDict_New
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int fast_save_enter(PicklerObject *self, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_pickle.c:2075,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_pickle.c:2078,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2071
    functionDepth: 1
    functionLinenumber: 2071
    functionLinenumberEnd: 2085
    functionName: fast_save_leave
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PyDict_DelItem
    linkageType: ''
    returnType: int
    signature: int fast_save_leave(PicklerObject *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2087
    functionDepth: 2
    functionLinenumber: 2087
    functionLinenumberEnd: 2095
    functionName: save_none
    functionSourceFile: /src/cpython/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/cpython/Modules/_pickle.c:2102,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2112,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:2112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2097
    functionDepth: 2
    functionLinenumber: 2097
    functionLinenumberEnd: 2116
    functionName: save_bool
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - strlen
    - _Pickler_Write
    linkageType: ''
    returnType: int
    signature: int save_bool(PicklerObject *self, PyObject *obj)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_pickle.c:2127,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_pickle.c:2163,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:2164,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2166,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2171,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2171,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2182,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_pickle.c:2182,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Modules/_pickle.c:2183,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2187,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Modules/_pickle.c:2191,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2192,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2193,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2210,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:2214,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2217,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_pickle.c:2218,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2249,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2250,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_pickle.c:2261,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_pickle.c:2265,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2269,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2270,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2271,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2279,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(obj))
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2170
        line_start: 2170
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (nbits >= 0)
      pos:
        line_end: 2191
        line_start: 2191
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2192
        line_start: 2192
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2282
      start: 2118
    functionDepth: 2
    functionLinenumber: 2118
    functionLinenumberEnd: 2282
    functionName: save_long
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_GetSign
    - Py_XDECREF
    - PyObject_Repr
    - PyLong_AsLongAndOverflow
    - _Pickler_Write
    - strlen
    - sprintf
    - PyErr_Occurred
    - PyLong_Check
    - _PyLong_NumBits
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsByteArray
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: int
    signature: int save_long(PicklerObject *self, PyObject *obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_pickle.c:2287,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_pickle.c:2292,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2294,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2302,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Modules/_pickle.c:2305,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:2307,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2311,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:2311,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2314,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:2319,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2284
    functionDepth: 2
    functionLinenumber: 2284
    functionLinenumberEnd: 2324
    functionName: save_float
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - strlen
    - _Pickler_Write
    - PyFloat_Pack8
    - PyMem_Free
    - PyFloat_AS_DOUBLE
    - PyErr_NoMemory
    - PyOS_double_to_string
    linkageType: ''
    returnType: int
    signature: int save_float(PicklerObject *self, PyObject *obj)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2343,1
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:2345,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2352,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:2361,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:2370,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:2375,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2380,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/cpython/Modules/_pickle.c:2383,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2388,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: 2342
        line_start: 2342
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2397
      start: 2333
    functionDepth: 4
    functionLinenumber: 2333
    functionLinenumberEnd: 2397
    functionName: _Pickler_write_bytes
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Pickler_ClearBuffer
    - Py_DECREF
    - _Pickler_Write
    - _Pickler_FlushToFile
    - PyBytes_FromStringAndSize
    - PyObject_CallOneArg
    - _Pickler_CommitFrame
    - assert
    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/cpython/Modules/_pickle.c:2403,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:2426,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2430,1
    - Dst: _Pickler_write_bytes
      Src: /src/cpython/Modules/_pickle.c:2436,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:2440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - st
    - self
    - obj
    - data
    - size
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (self->proto >= 3)
      pos:
        line_end: 2402
        line_start: 2402
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2445
      start: 2399
    functionDepth: 5
    functionLinenumber: 2399
    functionLinenumberEnd: 2445
    functionName: _save_bytes_data
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _Pickler_write_bytes
    - _write_size64
    - memo_put
    - assert
    linkageType: ''
    returnType: int
    signature: "int _save_bytes_data(PickleState *st, PicklerObject *self, PyObject
      *obj,\n                 const char *data, Py_ssize_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2465,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2466,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Modules/_pickle.c:2470,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2470,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2471,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2476,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:2478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2479,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:2486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2487,1
    - Dst: _save_bytes_data
      Src: /src/cpython/Modules/_pickle.c:2491,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2491,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - st
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2447
    functionDepth: 6
    functionLinenumber: 2447
    functionLinenumberEnd: 2494
    functionName: save_bytes
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_reduce
    - PyUnicode_DecodeLatin1
    - Py_BuildValue
    - Py_DECREF
    - _save_bytes_data
    - _Py_ID
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int save_bytes(PickleState *st, PicklerObject *self, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2500,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:2509,1
    - Dst: _Pickler_write_bytes
      Src: /src/cpython/Modules/_pickle.c:2512,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:2516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - state
    - self
    - obj
    - data
    - size
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (self->proto >= 5)
      pos:
        line_end: 2499
        line_start: 2499
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2521
      start: 2496
    functionDepth: 5
    functionLinenumber: 2496
    functionLinenumberEnd: 2521
    functionName: _save_bytearray_data
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _write_size64
    - _Pickler_write_bytes
    - assert
    - memo_put
    linkageType: ''
    returnType: int
    signature: "int _save_bytearray_data(PickleState *state, PicklerObject *self,
      PyObject *obj,\n                     const char *data, Py_ssize_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2532,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2533,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Modules/_pickle.c:2537,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2542,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:2549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2550,1
    - Dst: _save_bytearray_data
      Src: /src/cpython/Modules/_pickle.c:2554,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2555,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2523
    functionDepth: 6
    functionLinenumber: 2523
    functionLinenumberEnd: 2558
    functionName: save_bytearray
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_reduce
    - Py_BuildValue
    - Py_DECREF
    - PyBytes_FromObject
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - _save_bytearray_data
    linkageType: ''
    returnType: int
    signature: int save_bytearray(PickleState *state, PicklerObject *self, PyObject
      *obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2564,1
    - Dst: PyPickleBuffer_GetBuffer
      Src: /src/cpython/Modules/_pickle.c:2568,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_pickle.c:2572,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2573,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:2580,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_pickle.c:2584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2585,1
    - Dst: _save_bytes_data
      Src: /src/cpython/Modules/_pickle.c:2593,1
    - Dst: _save_bytearray_data
      Src: /src/cpython/Modules/_pickle.c:2597,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2604,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2609,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - st
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2560
    functionDepth: 6
    functionLinenumber: 2560
    functionLinenumberEnd: 2615
    functionName: save_picklebuffer
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyBuffer_IsContiguous
    - _save_bytes_data
    - _Pickler_Write
    - PyErr_SetString
    - PyPickleBuffer_GetBuffer
    - PyObject_CallOneArg
    - _save_bytearray_data
    linkageType: ''
    returnType: int
    signature: int save_picklebuffer(PickleState *st, PicklerObject *self, PyObject
      *obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Modules/_pickle.c:2628,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_pickle.c:2630,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_pickle.c:2631,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_pickle.c:2632,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Modules/_pickle.c:2634,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_pickle.c:2640,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Modules/_pickle.c:2644,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Modules/_pickle.c:2665,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Modules/_pickle.c:2681,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Modules/_pickle.c:2684,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2619
    functionDepth: 1
    functionLinenumber: 2619
    functionLinenumberEnd: 2686
    functionName: raw_unicode_escape
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyBytesWriter_Init
    - PyUnicode_READ
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Prepare
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Alloc
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raw_unicode_escape(PyObject *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_pickle.c:2697,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_pickle.c:2701,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_pickle.c:2702,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2706,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2707,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2710,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:2726,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2730,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2733,1
    - Dst: _Pickler_write_bytes
      Src: /src/cpython/Modules/_pickle.c:2737,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2738,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 2709
        line_start: 2709
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2743
      start: 2688
    functionDepth: 5
    functionLinenumber: 2688
    functionLinenumberEnd: 2743
    functionName: write_unicode_binary
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _Pickler_write_bytes
    - PyUnicode_AsEncodedString
    - _write_size64
    - PyBytes_GET_SIZE
    - PyErr_Clear
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: int
    signature: int write_unicode_binary(PicklerObject *self, PyObject *obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: write_unicode_binary
      Src: /src/cpython/Modules/_pickle.c:2749,1
    - Dst: raw_unicode_escape
      Src: /src/cpython/Modules/_pickle.c:2757,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2762,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2766,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2767,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2771,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2773,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:2776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2745
    functionDepth: 6
    functionLinenumber: 2745
    functionLinenumberEnd: 2780
    functionName: save_unicode
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - write_unicode_binary
    - Py_DECREF
    - _Pickler_Write
    - raw_unicode_escape
    - PyBytes_GET_SIZE
    - memo_put
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int save_unicode(PickleState *state, PicklerObject *self, PyObject
      *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2789,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:2789,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:2792,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:2796,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:2797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - state
    - self
    - t
    - len
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyTuple_Size(t) == len)
      pos:
        line_end: 2788
        line_start: 2788
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2803
      start: 2783
    functionDepth: 1
    functionLinenumber: 2783
    functionLinenumberEnd: 2803
    functionName: store_tuple_elements
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - _PyErr_FormatNote
    - assert
    linkageType: ''
    returnType: int
    signature: "int store_tuple_elements(PickleState *state, PicklerObject *self,
      PyObject *t,\n                     Py_ssize_t len)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:2822,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2837,1
    - Dst: store_tuple_elements
      Src: /src/cpython/Modules/_pickle.c:2849,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:2852,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2855,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:2858,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2864,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2873,1
    - Dst: store_tuple_elements
      Src: /src/cpython/Modules/_pickle.c:2876,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:2879,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2882,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2890,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:2894,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2900,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:2905,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2811
    functionDepth: 5
    functionLinenumber: 2811
    functionLinenumberEnd: 2909
    functionName: save_tuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memo_get
    - _Pickler_Write
    - PyMemoTable_Get
    - PyTuple_Size
    - memo_put
    - store_tuple_elements
    linkageType: ''
    returnType: int
    signature: int save_tuple(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2929,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:2939,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2941,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:2945,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2946,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:2948,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2951,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:2960,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2962,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:2970,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2972,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:2976,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:2977,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2980,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:2982,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2989,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:2992,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:2993,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:2996,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3002,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3003,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3006,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3013,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3015,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3021,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3028,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3029,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 85
    argCount: 4
    argNames:
    - state
    - self
    - iter
    - origobj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 2928
        line_start: 2928
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3031
      start: 2917
    functionDepth: 2
    functionLinenumber: 2917
    functionLinenumberEnd: 3031
    functionName: batch_list
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - Py_CLEAR
    - _Pickler_Write
    - PyErr_Occurred
    - save
    - PyIter_Next
    - _PyErr_FormatNote
    - assert
    linkageType: ''
    returnType: int
    signature: int batch_list(PickleState *state, PicklerObject *self, PyObject *iter,
      PyObject *origobj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3054,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3055,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3056,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3056,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3058,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3059,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3060,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3062,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3064,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3067,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3076,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3078,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3079,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3080,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3081,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3082,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3084,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3091,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3094,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 3053
        line_start: 3053
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (PyList_CheckExact(obj))
      pos:
        line_end: 3055
        line_start: 3055
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (self->proto > 0)
      pos:
        line_end: 3054
        line_start: 3054
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3097
      start: 3044
    functionDepth: 2
    functionLinenumber: 3044
    functionLinenumberEnd: 3097
    functionName: batch_list_exact
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_INCREF
    - PyList_GET_ITEM
    - Py_DECREF
    - _Pickler_Write
    - PyList_GET_SIZE
    - save
    - _PyErr_FormatNote
    - assert
    linkageType: ''
    returnType: int
    signature: int batch_list_exact(PickleState *state, PicklerObject *self, PyObject
      *obj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fast_save_enter
      Src: /src/cpython/Modules/_pickle.c:3106,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3120,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_pickle.c:3124,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3127,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3132,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3133,1
    - Dst: batch_list_exact
      Src: /src/cpython/Modules/_pickle.c:3135,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3136,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:3138,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3143,1
    - Dst: batch_list
      Src: /src/cpython/Modules/_pickle.c:3146,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3148,1
    - Dst: fast_save_leave
      Src: /src/cpython/Modules/_pickle.c:3156,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3099
    functionDepth: 5
    functionLinenumber: 3099
    functionLinenumberEnd: 3160
    functionName: save_list
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - batch_list
    - Py_DECREF
    - _Pickler_Write
    - fast_save_enter
    - PyObject_GetIter
    - _Py_EnterRecursiveCall
    - batch_list_exact
    - memo_put
    - PyList_Size
    - _Py_LeaveRecursiveCall
    - fast_save_leave
    linkageType: ''
    returnType: int
    signature: int save_list(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3184,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3191,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3195,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:3195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:3196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3198,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3201,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3201,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3203,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3203,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3205,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3209,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3212,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3221,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3223,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3229,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:3229,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:3230,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3236,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3238,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3242,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3242,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3244,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3244,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3245,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3246,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3249,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3251,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3258,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3261,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3261,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3263,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3263,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3264,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3265,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3268,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3273,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:3273,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:3274,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3278,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3278,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3280,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3280,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3281,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3282,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3285,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3291,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3293,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3299,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3306,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3307,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 111
    argCount: 4
    argNames:
    - state
    - self
    - iter
    - origobj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 3183
        line_start: 3183
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3309
      start: 3173
    functionDepth: 2
    functionLinenumber: 3173
    functionLinenumberEnd: 3309
    functionName: batch_dict
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - Py_CLEAR
    - _Pickler_Write
    - PyErr_Occurred
    - PyTuple_Check
    - PyErr_SetString
    - save
    - PyIter_Next
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - _PyErr_FormatNote
    - assert
    linkageType: ''
    returnType: int
    signature: int batch_dict(PickleState *state, PicklerObject *self, PyObject *iter,
      PyObject *origobj)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3331,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3331,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3332,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3334,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:3338,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3339,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3340,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3341,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3344,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3345,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3348,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3349,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3350,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3358,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:3360,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3361,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3362,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3363,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3366,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3367,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3370,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3371,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3375,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3377,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3378,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3387,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3388,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (obj != NULL && PyDict_CheckExact(obj))
      pos:
        line_end: 3330
        line_start: 3330
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (self->proto > 0)
      pos:
        line_end: 3331
        line_start: 3331
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3390
      start: 3320
    functionDepth: 2
    functionLinenumber: 3320
    functionLinenumberEnd: 3390
    functionName: batch_dict_exact
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyDict_GET_SIZE
    - Py_CLEAR
    - PyDict_CheckExact
    - _Pickler_Write
    - save
    - PyDict_Next
    - PyErr_Format
    - _PyErr_FormatNote
    - assert
    linkageType: ''
    returnType: int
    signature: int batch_dict_exact(PickleState *state, PicklerObject *self, PyObject
      *obj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3399,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:3399,1
    - Dst: fast_save_enter
      Src: /src/cpython/Modules/_pickle.c:3401,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3415,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3418,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3421,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3423,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3426,1
    - Dst: batch_dict_exact
      Src: /src/cpython/Modules/_pickle.c:3428,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3429,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_pickle.c:3431,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:3431,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:3434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3435,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3439,1
    - Dst: batch_dict
      Src: /src/cpython/Modules/_pickle.c:3442,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3444,1
    - Dst: fast_save_leave
      Src: /src/cpython/Modules/_pickle.c:3453,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(obj))
      pos:
        line_end: 3398
        line_start: 3398
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3457
      start: 3392
    functionDepth: 5
    functionLinenumber: 3392
    functionLinenumberEnd: 3457
    functionName: save_dict
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyDict_CheckExact
    - _Pickler_Write
    - fast_save_enter
    - PyObject_GetIter
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - _Py_EnterRecursiveCall
    - memo_put
    - _Py_LeaveRecursiveCall
    - batch_dict
    - PyDict_Check
    - fast_save_leave
    - assert
    - batch_dict_exact
    linkageType: ''
    returnType: int
    signature: int save_dict(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_pickle.c:3476,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:3480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3481,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:3486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3487,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3491,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3494,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3497,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3504,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_pickle.c:3508,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Modules/_pickle.c:3509,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3510,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3511,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3513,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_pickle.c:3519,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3523,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3525,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3526,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3459
    functionDepth: 5
    functionLinenumber: 3459
    functionLinenumberEnd: 3534
    functionName: save_set
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - save_reduce
    - Py_BuildValue
    - Py_DECREF
    - Py_END_CRITICAL_SECTION
    - _Pickler_Write
    - PySet_GET_SIZE
    - save
    - _PyErr_FormatNote
    - _PySet_NextEntryRef
    - PySequence_List
    - memo_put
    - PyErr_Format
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int save_set(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fast_save_enter
      Src: /src/cpython/Modules/_pickle.c:3544,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_pickle.c:3552,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:3556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3558,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:3563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3564,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3568,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:3571,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3578,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3581,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3586,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3594,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:3599,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3602,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:3604,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3609,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3611,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3536
    functionDepth: 5
    functionLinenumber: 3536
    functionLinenumberEnd: 3615
    functionName: save_frozenset
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_reduce
    - Py_BuildValue
    - Py_DECREF
    - memo_get
    - _Pickler_Write
    - fast_save_enter
    - PyObject_GetIter
    - PyErr_Occurred
    - save
    - PyMemoTable_Get
    - PyIter_Next
    - PySequence_List
    - memo_put
    - _PyErr_FormatNote
    linkageType: ''
    returnType: int
    signature: int save_frozenset(PickleState *state, PicklerObject *self, PyObject
      *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_pickle.c:3623,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:3626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3627,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3632,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3632,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3633,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3636,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3639,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3640,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:3641,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:3642,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3643,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3646,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3647,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3651,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3652,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3653,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3657,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:3661,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:3663,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3664,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3667,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:3670,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3670,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3672,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - st
    - module_name
    - global_name
    argTypes:
    - PickleState*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3617
    functionDepth: 1
    functionLinenumber: 3617
    functionLinenumberEnd: 3677
    functionName: fix_imports
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_CLEAR
    - PyTuple_Check
    - PyErr_Occurred
    - Py_NewRef
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - PyErr_Format
    - PyUnicode_Check
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int fix_imports(PickleState *st, PyObject **module_name, PyObject **global_name)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3691,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:3694,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:3694,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:3697,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:3697,1
    - Dst: get_dotted_path
      Src: /src/cpython/Modules/_pickle.c:3703,1
    - Dst: whichmodule
      Src: /src/cpython/Modules/_pickle.c:3706,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_pickle.c:3720,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_pickle.c:3724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3728,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_pickle.c:3735,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3736,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3740,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3741,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3766,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3774,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3776,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3779,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3794,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_pickle.c:3795,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3795,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3795,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3797,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3798,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3799,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3809,1
    - Dst: fix_imports
      Src: /src/cpython/Modules/_pickle.c:3815,1
    - Dst: unicode_encoder
      Src: /src/cpython/Modules/_pickle.c:3831,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:3833,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:3834,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3835,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:3839,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3843,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:3843,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3848,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3849,1
    - Dst: unicode_encoder
      Src: /src/cpython/Modules/_pickle.c:3853,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:3855,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:3856,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3857,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:3861,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3865,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:3865,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3870,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3871,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3875,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3876,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3876,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3877,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3878,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3886,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3894,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3895,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3896,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 164
    argCount: 4
    argNames:
    - st
    - self
    - obj
    - name
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3679
    functionDepth: 5
    functionLinenumber: 3679
    functionLinenumberEnd: 3899
    functionName: save_global
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_ChainExceptions1
    - Py_SETREF
    - PyBytes_GET_SIZE
    - PyDict_GetItemRef
    - get_dotted_path
    - PyLong_AsLong
    - PyErr_Occurred
    - save
    - PyList_GET_SIZE
    - PyErr_Format
    - PyTuple_Pack
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - Py_NewRef
    - PyErr_ExceptionMatches
    - memo_put
    - PyBytes_AS_STRING
    - PyList_GET_ITEM
    - PyObject_GetOptionalAttr
    - _Pickler_Write
    - fix_imports
    - unicode_encoder
    - whichmodule
    - PyObject_GetAttr
    linkageType: ''
    returnType: int
    signature: "int save_global(PickleState *st, PicklerObject *self, PyObject *obj,\n
      \           PyObject *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:3908,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:3912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - state
    - self
    - obj
    - singleton
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3901
    functionDepth: 1
    functionLinenumber: 3901
    functionLinenumberEnd: 3915
    functionName: save_singleton_type
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_reduce
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int save_singleton_type(PickleState *state, PicklerObject *self, PyObject
      *obj,\n                    PyObject *singleton)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: save_singleton_type
      Src: /src/cpython/Modules/_pickle.c:3921,1
    - Dst: save_singleton_type
      Src: /src/cpython/Modules/_pickle.c:3924,1
    - Dst: save_singleton_type
      Src: /src/cpython/Modules/_pickle.c:3927,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:3929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3917
    functionDepth: 6
    functionLinenumber: 3917
    functionLinenumberEnd: 3930
    functionName: save_type
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_singleton_type
    - save_global
    linkageType: ''
    returnType: int
    signature: int save_type(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:3941,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3947,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3948,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_pickle.c:3954,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_pickle.c:3960,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:3961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3964,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3968,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3969,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_pickle.c:3969,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_pickle.c:3970,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3975,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3984,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3932
    functionDepth: 2
    functionLinenumber: 3932
    functionLinenumberEnd: 3987
    functionName: save_pers
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - _Pickler_Write
    - save
    - PyErr_SetString
    - PyUnicode_IS_ASCII
    - PyObject_CallOneArg
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int save_pers(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:3994,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:3994,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3995,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3998
      start: 3989
    functionDepth: 1
    functionLinenumber: 3989
    functionLinenumberEnd: 3998
    functionName: get_class
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _Py_ID
    - Py_TYPE
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_class(PyObject *obj)'
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:4021,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:4023,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_pickle.c:4029,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_pickle.c:4034,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4035,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:4040,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4041,1
    - Dst: PyIter_Check
      Src: /src/cpython/Modules/_pickle.c:4052,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4053,1
    - Dst: PyIter_Check
      Src: /src/cpython/Modules/_pickle.c:4061,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4062,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_pickle.c:4070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4071,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4080,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4080,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:4083,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Modules/_pickle.c:4084,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4084,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Modules/_pickle.c:4086,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4086,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4089,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4097,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4098,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4100,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4104,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:4105,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4106,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4111,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:4112,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4113,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4118,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:4119,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4120,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4127,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4128,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4131,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4132,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4134,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4137,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:4146,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4146,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:4150,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4152,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4155,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4156,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4156,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4157,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4158,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4159,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4159,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_pickle.c:4162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4163,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:4167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4169,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4173,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4174,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4182,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4183,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4195,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4196,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4198,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4202,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:4203,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4204,1
    - Dst: get_class
      Src: /src/cpython/Modules/_pickle.c:4211,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4222,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4252,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4253,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_pickle.c:4257,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4257,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4262,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4264,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4269,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4273,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4274,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4277,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4278,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4281,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:4294,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4297,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:4299,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:4304,1
    - Dst: batch_list
      Src: /src/cpython/Modules/_pickle.c:4308,1
    - Dst: batch_dict
      Src: /src/cpython/Modules/_pickle.c:4311,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4316,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4317,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4320,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4336,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4337,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4340,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4343,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4344,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4347,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4348,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4349,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 206
    argCount: 4
    argNames:
    - st
    - self
    - args
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4354
      start: 4003
    functionDepth: 5
    functionLinenumber: 4003
    functionLinenumberEnd: 4354
    functionName: save_reduce
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 5
    functionsReached:
    - Py_XDECREF
    - memo_get
    - PyErr_SetString
    - PyIter_Check
    - PyTuple_GetSlice
    - batch_list
    - PyTuple_New
    - PyTuple_GET_SIZE
    - save
    - PyArg_UnpackTuple
    - PyObject_Call
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_Check
    - PyType_Check
    - Py_DECREF
    - PyTuple_Check
    - _Py_ID
    - PyCallable_Check
    - Py_NewRef
    - get_class
    - memo_put
    - batch_dict
    - _PyErr_FormatNote
    - PyObject_GetOptionalAttr
    - _Pickler_Write
    - PyTuple_SET_ITEM
    - PyMemoTable_Get
    - PyObject_GetAttr
    - _PyUnicode_Equal
    linkageType: ''
    returnType: int
    signature: "int save_reduce(PickleState *st, PicklerObject *self, PyObject *args,\n
      \           PyObject *obj)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_OpcodeBoundary
      Src: /src/cpython/Modules/_pickle.c:4364,1
    - Dst: save_pers
      Src: /src/cpython/Modules/_pickle.c:4375,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4379,1
    - Dst: save_none
      Src: /src/cpython/Modules/_pickle.c:4389,1
    - Dst: save_bool
      Src: /src/cpython/Modules/_pickle.c:4392,1
    - Dst: save_long
      Src: /src/cpython/Modules/_pickle.c:4395,1
    - Dst: save_float
      Src: /src/cpython/Modules/_pickle.c:4398,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:4404,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:4405,1
    - Dst: save_bytes
      Src: /src/cpython/Modules/_pickle.c:4409,1
    - Dst: save_unicode
      Src: /src/cpython/Modules/_pickle.c:4412,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:4417,1
    - Dst: save_dict
      Src: /src/cpython/Modules/_pickle.c:4422,1
    - Dst: save_set
      Src: /src/cpython/Modules/_pickle.c:4426,1
    - Dst: save_frozenset
      Src: /src/cpython/Modules/_pickle.c:4430,1
    - Dst: save_list
      Src: /src/cpython/Modules/_pickle.c:4434,1
    - Dst: save_tuple
      Src: /src/cpython/Modules/_pickle.c:4438,1
    - Dst: save_bytearray
      Src: /src/cpython/Modules/_pickle.c:4442,1
    - Dst: save_picklebuffer
      Src: /src/cpython/Modules/_pickle.c:4446,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:4455,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_pickle.c:4462,1
    - Dst: save_type
      Src: /src/cpython/Modules/_pickle.c:4466,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:4470,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:4481,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:4484,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:4491,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Modules/_pickle.c:4494,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:4501,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4501,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_pickle.c:4503,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:4504,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4517,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4517,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:4522,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:4524,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4529,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4529,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_pickle.c:4533,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4536,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:4547,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:4548,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:4552,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4553,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4555,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:4559,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4561,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:4570,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4571,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4572,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 166
    argCount: 4
    argNames:
    - st
    - self
    - obj
    - pers_save
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4575
      start: 4356
    functionDepth: 7
    functionLinenumber: 4356
    functionLinenumberEnd: 4575
    functionName: save
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 10
    functionsReached:
    - Py_XDECREF
    - PyDict_GetItemWithError
    - save_type
    - memo_get
    - Py_SETREF
    - save_set
    - PyObject_CallOneArg
    - save_pers
    - save_bool
    - PyLong_FromLong
    - save_dict
    - Py_INCREF
    - PyObject_CallNoArgs
    - PyErr_Occurred
    - save_picklebuffer
    - PyErr_Format
    - PyUnicode_Check
    - _Py_LeaveRecursiveCall
    - PyMapping_GetOptionalItem
    - save_list
    - PyType_IsSubtype
    - PyTuple_Check
    - _Py_ID
    - save_frozenset
    - Py_NewRef
    - save_unicode
    - Py_TYPE
    - _PyErr_FormatNote
    - save_reduce
    - save_none
    - PyObject_GetOptionalAttr
    - save_bytes
    - PyMemoTable_Get
    - save_global
    - _Py_EnterRecursiveCall
    - save_long
    - _Pickle_FastCall
    - _Pickler_OpcodeBoundary
    - save_bytearray
    - save_tuple
    - save_float
    linkageType: ''
    returnType: int
    signature: int save(PickleState *st, PicklerObject *self, PyObject *obj, int pers_save)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4581
      start: 4577
    functionDepth: 0
    functionLinenumber: 4577
    functionLinenumberEnd: 4581
    functionName: persistent_id
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      persistent_id(PyObject *self, PyObject *obj)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:4591,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4591,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_pickle.c:4595,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Modules/_pickle.c:4596,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Modules/_pickle.c:4597,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4599,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:4601,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4604,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4604,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:4608,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:4614,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4616,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4622,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4623,1
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:4624,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4639,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4640,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (self->proto >= 0 && self->proto < 256)
      pos:
        line_end: 4613
        line_start: 4613
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 4642
      start: 4583
    functionDepth: 8
    functionLinenumber: 4583
    functionLinenumberEnd: 4642
    functionName: dump
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyObject_GetOptionalAttr
    - _Pickler_Write
    - _Py_ID
    - save
    - PyCFunction_GET_FUNCTION
    - PyObject_GetAttr
    - _Pickler_CommitFrame
    - Py_XSETREF
    - PyCFunction_GET_SELF
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: int dump(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Clear
      Src: /src/cpython/Modules/_pickle.c:4661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4656
    functionDepth: 1
    functionLinenumber: 4656
    functionLinenumberEnd: 4664
    functionName: _pickle_Pickler_clear_memo_impl
    functionSourceFile: /src/cpython/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_GetStateByClass
      Src: /src/cpython/Modules/_pickle.c:4682,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4687,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4689,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/cpython/Modules/_pickle.c:4693,1
    - Dst: dump
      Src: /src/cpython/Modules/_pickle.c:4696,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:4699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - cls
    - obj
    argTypes:
    - PicklerObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4703
      start: 4677
    functionDepth: 9
    functionLinenumber: 4677
    functionLinenumberEnd: 4703
    functionName: _pickle_Pickler_dump_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_ClearBuffer
    - dump
    - _Pickler_FlushToFile
    - PyErr_Format
    - Py_TYPE
    - _Pickle_GetStateByClass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_Pickler_dump_impl(PicklerObject *self, PyTypeObject
      *cls,\n                          PyObject *obj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_pickle.c:4716,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4716,1
    - Dst: _PySys_GetSizeOf
      Src: /src/cpython/Modules/_pickle.c:4722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4729
      start: 4712
    functionDepth: 1
    functionLinenumber: 4712
    functionLinenumberEnd: 4729
    functionName: _pickle_Pickler___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    - _PySys_GetSizeOf
    linkageType: ''
    returnType: size_t
    signature: size_t _pickle_Pickler___sizeof___impl(PicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:4743,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4744,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4745,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4746,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4747,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4748,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4749,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4750,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4751,1
    - Dst: PyMemoTable_Del
      Src: /src/cpython/Modules/_pickle.c:4756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4759
      start: 4740
    functionDepth: 2
    functionLinenumber: 4740
    functionLinenumberEnd: 4759
    functionName: Pickler_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerObject_CAST
    - Py_CLEAR
    - PyMemoTable_Del
    linkageType: ''
    returnType: int
    signature: int Pickler_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4764,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:4765,1
    - Dst: Pickler_clear
      Src: /src/cpython/Modules/_pickle.c:4766,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:4767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4761
    functionDepth: 3
    functionLinenumber: 4761
    functionLinenumberEnd: 4769
    functionName: Pickler_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    - Pickler_clear
    linkageType: ''
    returnType: void
    signature: void Pickler_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:4774,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4775,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4775,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4776,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4777,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4778,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4779,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4780,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4781,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4782,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4771
    functionDepth: 1
    functionLinenumber: 4771
    functionLinenumberEnd: 4792
    functionName: Pickler_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Pickler_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Pickler_clear
      Src: /src/cpython/Modules/_pickle.c:4845,1
    - Dst: _Pickler_SetProtocol
      Src: /src/cpython/Modules/_pickle.c:4847,1
    - Dst: _Pickler_SetOutputStream
      Src: /src/cpython/Modules/_pickle.c:4850,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/cpython/Modules/_pickle.c:4853,1
    - Dst: PyMemoTable_New
      Src: /src/cpython/Modules/_pickle.c:4858,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:4865,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4878,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - self
    - file
    - protocol
    - fix_imports
    - buffer_callback
    argTypes:
    - PicklerObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4837
    functionDepth: 3
    functionLinenumber: 4837
    functionLinenumberEnd: 4884
    functionName: _pickle_Pickler___init___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_SetOutputStream
    - PyObject_GetOptionalAttr
    - PyMemoTable_New
    - _Py_ID
    - _Pickler_SetBufferCallback
    - PyBytes_FromStringAndSize
    - _Pickler_SetProtocol
    - Pickler_clear
    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/cpython/Modules/_pickle.c:4908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4910
      start: 4903
    functionDepth: 1
    functionLinenumber: 4903
    functionLinenumberEnd: 4910
    functionName: _pickle_PicklerMemoProxy_clear_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_clear_impl(PicklerMemoProxyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_pickle.c:4923,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_pickle.c:4934,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:4938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4940,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:4943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4945,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4953,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4955
      start: 4918
    functionDepth: 1
    functionLinenumber: 4918
    functionLinenumberEnd: 4955
    functionName: _pickle_PicklerMemoProxy_copy_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - PyDict_SetItem
    - Py_DECREF
    - Py_BuildValue
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_copy_impl(PicklerMemoProxyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy_copy_impl
      Src: /src/cpython/Modules/_pickle.c:4968,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:4972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4974,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:4977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4979,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4980,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4983,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4984,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4984,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4987
      start: 4963
    functionDepth: 2
    functionLinenumber: 4963
    functionLinenumberEnd: 4987
    functionName: _pickle_PicklerMemoProxy___reduce___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - _pickle_PicklerMemoProxy_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy___reduce___impl(PicklerMemoProxyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:4999,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5000,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:5001,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:5002,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:5003,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5005
      start: 4996
    functionDepth: 1
    functionLinenumber: 4996
    functionLinenumberEnd: 5005
    functionName: PicklerMemoProxy_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - PicklerMemoProxyObject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PicklerMemoProxy_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5010,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:5011,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5011,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:5012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 5007
    functionDepth: 1
    functionLinenumber: 5007
    functionLinenumberEnd: 5014
    functionName: PicklerMemoProxy_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - PicklerMemoProxyObject_CAST
    linkageType: ''
    returnType: int
    signature: int PicklerMemoProxy_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5019,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:5020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5022
      start: 5016
    functionDepth: 1
    functionLinenumber: 5016
    functionLinenumberEnd: 5022
    functionName: PicklerMemoProxy_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PicklerMemoProxyObject_CAST
    linkageType: ''
    returnType: int
    signature: int PicklerMemoProxy_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:5045,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5045,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:5046,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:5049,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:5050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pickler
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5052
      start: 5041
    functionDepth: 3
    functionLinenumber: 5041
    functionLinenumberEnd: 5052
    functionName: PicklerMemoProxy_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_FindStateByType
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PicklerMemoProxy_New(PicklerObject *pickler)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5059,1
    - Dst: PicklerMemoProxy_New
      Src: /src/cpython/Modules/_pickle.c:5060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5061
      start: 5056
    functionDepth: 4
    functionLinenumber: 5056
    functionLinenumberEnd: 5061
    functionName: Pickler_get_memo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerObject_CAST
    - PicklerMemoProxy_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pickler_get_memo(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5067,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5070,1
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:5075,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5075,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_pickle.c:5076,1
    - Dst: PyMemoTable_Copy
      Src: /src/cpython/Modules/_pickle.c:5080,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:5084,1
    - Dst: PyMemoTable_New
      Src: /src/cpython/Modules/_pickle.c:5088,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:5092,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:5096,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:5096,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5097,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:5101,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:5101,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5102,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:5104,1
    - Dst: PyMemoTable_Set
      Src: /src/cpython/Modules/_pickle.c:5105,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5110,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5112,1
    - Dst: PyMemoTable_Del
      Src: /src/cpython/Modules/_pickle.c:5116,1
    - Dst: PyMemoTable_Del
      Src: /src/cpython/Modules/_pickle.c:5123,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - op
    - obj
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5125
      start: 5063
    functionDepth: 4
    functionLinenumber: 5063
    functionLinenumberEnd: 5125
    functionName: Pickler_set_memo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerObject_CAST
    - PyTuple_GET_SIZE
    - PyMemoTable_New
    - PyTuple_Check
    - PyErr_Occurred
    - PyErr_SetString
    - PyMemoTable_Copy
    - _Pickle_FindStateByType
    - PyDict_Next
    - PyMemoTable_Del
    - Py_IS_TYPE
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyDict_Check
    - Py_TYPE
    - PyMemoTable_Set
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int Pickler_set_memo(PyObject *op, PyObject *obj, void *Py_UNUSED(closure))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5130,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:5131,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:5132,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:5135,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/_pickle.c:5138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5139
      start: 5127
    functionDepth: 1
    functionLinenumber: 5127
    functionLinenumberEnd: 5139
    functionName: Pickler_getattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerObject_CAST
    - PyUnicode_EqualToUTF8
    - Py_NewRef
    - PyObject_GenericGetAttr
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pickler_getattr(PyObject *self, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:5144,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:5145,1
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5147,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_pickle.c:5148,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:5149,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_pickle.c:5153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5154
      start: 5141
    functionDepth: 1
    functionLinenumber: 5141
    functionLinenumberEnd: 5154
    functionName: Pickler_setattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerObject_CAST
    - PyObject_GenericSetAttr
    - PyUnicode_EqualToUTF8
    - Py_XSETREF
    - PyUnicode_Check
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int Pickler_setattr(PyObject *self, PyObject *name, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_pickle.c:5203,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:5203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - module_name
    - global_name
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5200
    functionDepth: 1
    functionLinenumber: 5200
    functionLinenumberEnd: 5205
    functionName: find_class
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      find_class(UnpicklerObject *self, PyObject *module_name, PyObject *global_name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5220
      start: 5207
    functionDepth: 1
    functionLinenumber: 5207
    functionLinenumberEnd: 5220
    functionName: marker
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t marker(PickleState *st, UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:5225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5227
      start: 5222
    functionDepth: 1
    functionLinenumber: 5222
    functionLinenumberEnd: 5227
    functionName: load_none
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_APPEND
    linkageType: ''
    returnType: int
    signature: int load_none(PickleState *state, UnpicklerObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5237,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5240,1
    - Dst: strtol
      Src: /src/cpython/Modules/_pickle.c:5244,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:5250,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5252,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_pickle.c:5259,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:5263,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5270
      start: 5229
    functionDepth: 4
    functionLinenumber: 5229
    functionLinenumberEnd: 5270
    functionName: load_int
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - _Unpickler_Readline
    - PyErr_SetString
    - bad_readline
    - PyLong_FromString
    - PyLong_FromLong
    - PyBool_FromLong
    - strtol
    linkageType: ''
    returnType: int
    signature: int load_int(PickleState *state, UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:5275,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:5276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - state
    - self
    - boolean
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - PyObject*
    assertStmts:
    - condition: (boolean == Py_True || boolean == Py_False)
      pos:
        line_end: 5274
        line_start: 5274
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5278
      start: 5272
    functionDepth: 1
    functionLinenumber: 5272
    functionLinenumberEnd: 5278
    functionName: load_bool
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_APPEND
    - assert
    linkageType: ''
    returnType: int
    signature: int load_bool(PickleState *state, 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: 5308
      start: 5283
    functionDepth: 0
    functionLinenumber: 5283
    functionLinenumberEnd: 5308
    functionName: calc_binsize
    functionSourceFile: /src/cpython/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: 5335
      start: 5315
    functionDepth: 0
    functionLinenumber: 5315
    functionLinenumberEnd: 5335
    functionName: calc_binint
    functionSourceFile: /src/cpython/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/cpython/Modules/_pickle.c:5343,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:5345,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - s
    - size
    argTypes:
    - UnpicklerObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5350
      start: 5337
    functionDepth: 1
    functionLinenumber: 5337
    functionLinenumberEnd: 5350
    functionName: load_binintx
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - calc_binint
    - PDATA_PUSH
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int load_binintx(UnpicklerObject *self, char *s, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5356,1
    - Dst: load_binintx
      Src: /src/cpython/Modules/_pickle.c:5359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5360
      start: 5352
    functionDepth: 2
    functionLinenumber: 5352
    functionLinenumberEnd: 5360
    functionName: load_binint
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_binintx
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_binint(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5366,1
    - Dst: load_binintx
      Src: /src/cpython/Modules/_pickle.c:5369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5362
    functionDepth: 2
    functionLinenumber: 5362
    functionLinenumberEnd: 5370
    functionName: load_binint1
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_binintx
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_binint1(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5376,1
    - Dst: load_binintx
      Src: /src/cpython/Modules/_pickle.c:5379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5380
      start: 5372
    functionDepth: 2
    functionLinenumber: 5372
    functionLinenumberEnd: 5380
    functionName: load_binint2
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_binintx
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_binint2(PickleState *state, UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5389,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5392,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:5400,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5382
    functionDepth: 4
    functionLinenumber: 5382
    functionLinenumberEnd: 5406
    functionName: load_long
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Readline
    - PDATA_PUSH
    - PyLong_FromString
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_long(PickleState *state, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:5418,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5419,1
    - Dst: calc_binint
      Src: /src/cpython/Modules/_pickle.c:5422,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5425,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:5431,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5434,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_pickle.c:5436,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5441,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - st
    - self
    - size
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts:
    - condition: (size == 1 || size == 4)
      pos:
        line_end: 5417
        line_start: 5417
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5443
      start: 5411
    functionDepth: 1
    functionLinenumber: 5411
    functionLinenumberEnd: 5443
    functionName: load_counted_long
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - calc_binint
    - PDATA_PUSH
    - _PyLong_FromByteArray
    - PyErr_SetString
    - _Unpickler_Read
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: int
    signature: int load_counted_long(PickleState *st, UnpicklerObject *self, int size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5453,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5456,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Modules/_pickle.c:5459,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5463,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_pickle.c:5466,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5472
      start: 5445
    functionDepth: 4
    functionLinenumber: 5445
    functionLinenumberEnd: 5472
    functionName: load_float
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - PyErr_Occurred
    - _Unpickler_Readline
    - PyErr_SetString
    - PyOS_string_to_double
    - PyFloat_FromDouble
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_float(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5481,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_pickle.c:5484,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5485,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_pickle.c:5488,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5474
    functionDepth: 1
    functionLinenumber: 5474
    functionLinenumberEnd: 5493
    functionName: load_binfloat
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - PyErr_Occurred
    - _Unpickler_Read
    - PyFloat_Unpack8
    - PyFloat_FromDouble
    linkageType: ''
    returnType: int
    signature: int load_binfloat(PickleState *state, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5513,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:5517,1
    - Dst: PyBytes_DecodeEscape
      Src: /src/cpython/Modules/_pickle.c:5521,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_pickle.c:5527,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Modules/_pickle.c:5531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5532,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 5516
        line_start: 5516
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5540
      start: 5495
    functionDepth: 4
    functionLinenumber: 5495
    functionLinenumberEnd: 5540
    functionName: load_string
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - Py_DECREF
    - _Unpickler_Readline
    - PyErr_SetString
    - strcmp
    - PyBytes_DecodeEscape
    - PyUnicode_FromEncodedObject
    - assert
    linkageType: ''
    returnType: int
    signature: int load_string(PickleState *st, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5549,1
    - Dst: calc_binint
      Src: /src/cpython/Modules/_pickle.c:5552,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5554,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5559,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_pickle.c:5564,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:5565,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_pickle.c:5568,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - st
    - self
    - nbytes
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5576
      start: 5542
    functionDepth: 1
    functionLinenumber: 5542
    functionLinenumberEnd: 5576
    functionName: load_counted_binstring
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - calc_binint
    - PDATA_PUSH
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - _Unpickler_Read
    - strcmp
    - PyUnicode_Decode
    linkageType: ''
    returnType: int
    signature: int load_counted_binstring(PickleState *st, UnpicklerObject *self,
      int nbytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5585,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:5588,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5590,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:5596,1
    - Dst: _Unpickler_ReadInto
      Src: /src/cpython/Modules/_pickle.c:5599,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:5599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5600,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - state
    - self
    - nbytes
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5606
      start: 5578
    functionDepth: 3
    functionLinenumber: 5578
    functionLinenumberEnd: 5606
    functionName: load_counted_binbytes
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - Py_DECREF
    - _Unpickler_ReadInto
    - PyBytes_FromStringAndSize
    - _Unpickler_Read
    - calc_binsize
    - PyErr_Format
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int load_counted_binbytes(PickleState *state, UnpicklerObject *self,
      int nbytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5615,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:5619,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5621,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:5627,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:5631,1
    - Dst: _Unpickler_ReadInto
      Src: /src/cpython/Modules/_pickle.c:5632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5633,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5639
      start: 5608
    functionDepth: 3
    functionLinenumber: 5608
    functionLinenumberEnd: 5639
    functionName: load_counted_bytearray
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - Py_DECREF
    - _Unpickler_ReadInto
    - PyByteArray_AS_STRING
    - _Unpickler_Read
    - calc_binsize
    - PyByteArray_FromStringAndSize
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int load_counted_bytearray(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5645,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:5650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5653,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5661
      start: 5641
    functionDepth: 1
    functionLinenumber: 5641
    functionLinenumberEnd: 5661
    functionName: load_next_buffer
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PDATA_PUSH
    - PyIter_Next
    linkageType: ''
    returnType: int
    signature: int load_next_buffer(PickleState *st, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5666,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:5668,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_pickle.c:5672,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/cpython/Modules/_pickle.c:5676,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/cpython/Modules/_pickle.c:5678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5687
      start: 5663
    functionDepth: 2
    functionLinenumber: 5663
    functionLinenumberEnd: 5687
    functionName: load_readonly_buffer
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMemoryView_FromObject
    - Py_SIZE
    - Pdata_stack_underflow
    - PyMemoryView_GET_BUFFER
    linkageType: ''
    returnType: int
    signature: int load_readonly_buffer(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5696,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5699,1
    - Dst: PyUnicode_DecodeRawUnicodeEscape
      Src: /src/cpython/Modules/_pickle.c:5701,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5707
      start: 5689
    functionDepth: 4
    functionLinenumber: 5689
    functionLinenumberEnd: 5707
    functionName: load_unicode
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Readline
    - PDATA_PUSH
    - PyUnicode_DecodeRawUnicodeEscape
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_unicode(PickleState *state, UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5716,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:5719,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5721,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5727,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_pickle.c:5730,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - state
    - self
    - nbytes
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5736
      start: 5709
    functionDepth: 1
    functionLinenumber: 5709
    functionLinenumberEnd: 5736
    functionName: load_counted_binunicode
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - _Unpickler_Read
    - calc_binsize
    - PyUnicode_DecodeUTF8
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int load_counted_binunicode(PickleState *state, UnpicklerObject *self,
      int nbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5743,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:5744,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:5746,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5746,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - state
    - self
    - len
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5751
      start: 5738
    functionDepth: 3
    functionLinenumber: 5738
    functionLinenumberEnd: 5751
    functionName: load_counted_tuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Pdata_poptuple
    - PDATA_PUSH
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_counted_tuple(PickleState *state, UnpicklerObject *self, Py_ssize_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:5758,1
    - Dst: load_counted_tuple
      Src: /src/cpython/Modules/_pickle.c:5761,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5762
      start: 5753
    functionDepth: 4
    functionLinenumber: 5753
    functionLinenumberEnd: 5762
    functionName: load_tuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - marker
    - load_counted_tuple
    linkageType: ''
    returnType: int
    signature: int load_tuple(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_pickle.c:5769,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5773
      start: 5764
    functionDepth: 1
    functionLinenumber: 5764
    functionLinenumberEnd: 5773
    functionName: load_empty_list
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_empty_list(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_pickle.c:5780,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5784
      start: 5775
    functionDepth: 1
    functionLinenumber: 5775
    functionLinenumberEnd: 5784
    functionName: load_empty_dict
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int load_empty_dict(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Modules/_pickle.c:5791,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5795
      start: 5786
    functionDepth: 1
    functionLinenumber: 5786
    functionLinenumberEnd: 5795
    functionName: load_empty_set
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PySet_New
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_empty_set(PickleState *state, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:5803,1
    - Dst: Pdata_poplist
      Src: /src/cpython/Modules/_pickle.c:5806,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5811
      start: 5797
    functionDepth: 2
    functionLinenumber: 5797
    functionLinenumberEnd: 5811
    functionName: load_list
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - PDATA_PUSH
    - Pdata_poplist
    linkageType: ''
    returnType: int
    signature: int load_list(PickleState *state, UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:5819,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5821,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_pickle.c:5823,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5828,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:5835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5836,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:5840,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5841,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5843
      start: 5813
    functionDepth: 2
    functionLinenumber: 5813
    functionLinenumberEnd: 5843
    functionName: load_dict
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - Pdata_clear
    - Py_DECREF
    - PyDict_SetItem
    - PDATA_PUSH
    - Py_SIZE
    - PyErr_SetString
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int load_dict(PickleState *st, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:5852,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:5855,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_pickle.c:5859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5860,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5864,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5866
      start: 5845
    functionDepth: 3
    functionLinenumber: 5845
    functionLinenumberEnd: 5866
    functionName: load_frozenset
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - PDATA_PUSH
    - Py_DECREF
    - PyFrozenSet_New
    - Pdata_poptuple
    linkageType: ''
    returnType: int
    signature: int load_frozenset(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:5874,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:5874,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:5875,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:5875,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_pickle.c:5876,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:5876,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_pickle.c:5881,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:5881,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_pickle.c:5884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 5873
        line_start: 5873
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5885
      start: 5868
    functionDepth: 1
    functionLinenumber: 5868
    functionLinenumberEnd: 5885
    functionName: instantiate
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - PyObject_HasAttrWithError
    - PyTuple_Check
    - _Py_ID
    - PyObject_CallObject
    - PyObject_CallMethodOneArg
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instantiate(PyObject *cls, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:5893,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5896,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:5897,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:5899,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:5903,1
    - Dst: instantiate
      Src: /src/cpython/Modules/_pickle.c:5905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5908,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5912,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5914
      start: 5887
    functionDepth: 3
    functionLinenumber: 5887
    functionLinenumberEnd: 5914
    functionName: load_obj
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - PDATA_PUSH
    - Py_DECREF
    - instantiate
    - Py_SIZE
    - Pdata_poptuple
    - Pdata_stack_underflow
    - PDATA_POP
    linkageType: ''
    returnType: int
    signature: int load_obj(PickleState *state, UnpicklerObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:5928,1
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5930,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5933,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_pickle.c:5938,1
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5944,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5945,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_pickle.c:5947,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:5949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5953,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:5958,1
    - Dst: instantiate
      Src: /src/cpython/Modules/_pickle.c:5959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5962,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5967,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5969
      start: 5916
    functionDepth: 4
    functionLinenumber: 5916
    functionLinenumberEnd: 5969
    functionName: load_inst
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - PDATA_PUSH
    - Py_DECREF
    - instantiate
    - _Unpickler_Readline
    - Pdata_poptuple
    - PyUnicode_DecodeASCII
    - find_class
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_inst(PickleState *state, UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5975,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - st
    - msg
    - use_kwargs
    - arg
    argTypes:
    - PickleState*
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5978
      start: 5971
    functionDepth: 1
    functionLinenumber: 5971
    functionLinenumberEnd: 5978
    functionName: newobj_unpickling_error
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void newobj_unpickling_error(PickleState *st, const char *msg, int
      use_kwargs,\n                        PyObject *arg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:5990,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:5995,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:5997,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6000,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6003,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:6007,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6008,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6014,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:6019,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6020,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:6025,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6026,1
    - Dst: tp_new
      Src: /src/cpython/Modules/_pickle.c:6032,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6038,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6039,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6045,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - state
    - self
    - use_kwargs
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6047
      start: 5980
    functionDepth: 2
    functionLinenumber: 5980
    functionLinenumberEnd: 6047
    functionName: load_newobj
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_XDECREF
    - PDATA_PUSH
    - Py_DECREF
    - PyTuple_Check
    - PDATA_POP
    - tp_new
    - PyDict_Check
    - newobj_unpickling_error
    linkageType: ''
    returnType: int
    signature: int load_newobj(PickleState *state, UnpicklerObject *self, int use_kwargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6058,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6061,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_pickle.c:6062,1
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6068,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6069,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_pickle.c:6071,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:6073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6077,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6081,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6083
      start: 6049
    functionDepth: 4
    functionLinenumber: 6049
    functionLinenumberEnd: 6083
    functionName: load_global
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - Py_DECREF
    - _Unpickler_Readline
    - PyUnicode_DecodeUTF8
    - find_class
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_global(PickleState *state, UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6092,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6098,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6101,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6106,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:6109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6111,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6116
      start: 6085
    functionDepth: 2
    functionLinenumber: 6085
    functionLinenumberEnd: 6116
    functionName: load_stack_global
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - Py_DECREF
    - PyUnicode_CheckExact
    - PyErr_SetString
    - PDATA_POP
    - find_class
    linkageType: ''
    returnType: int
    signature: int load_stack_global(PickleState *st, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6125,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6128,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_pickle.c:6130,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:6132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6133,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:6140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6141,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6118
    functionDepth: 4
    functionLinenumber: 6118
    functionLinenumberEnd: 6147
    functionName: load_persid
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - Py_DECREF
    - _Unpickler_Readline
    - PyErr_SetString
    - PyUnicode_DecodeASCII
    - PyErr_ExceptionMatches
    - PyObject_CallOneArg
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_persid(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6154,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:6158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6159,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6165
      start: 6149
    functionDepth: 1
    functionLinenumber: 6149
    functionLinenumberEnd: 6165
    functionName: load_binpersid
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - PyObject_CallOneArg
    - Py_DECREF
    - PDATA_POP
    linkageType: ''
    returnType: int
    signature: int load_binpersid(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6170,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6188,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6192
      start: 6167
    functionDepth: 2
    functionLinenumber: 6167
    functionLinenumberEnd: 6192
    functionName: load_pop
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_SET_SIZE
    - Py_DECREF
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_pop(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6198,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6204
      start: 6194
    functionDepth: 2
    functionLinenumber: 6194
    functionLinenumberEnd: 6204
    functionName: load_pop_mark
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - Pdata_clear
    linkageType: ''
    returnType: int
    signature: int load_pop_mark(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6210,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6213,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6217
      start: 6206
    functionDepth: 2
    functionLinenumber: 6206
    functionLinenumberEnd: 6217
    functionName: load_dup
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PDATA_APPEND
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_dup(PickleState *state, UnpicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6227,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6230,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:6232,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:6235,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6237,1
    - Dst: _Unpickler_MemoGet
      Src: /src/cpython/Modules/_pickle.c:6241,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6243,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6249,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6253
      start: 6219
    functionDepth: 4
    functionLinenumber: 6219
    functionLinenumberEnd: 6253
    functionName: load_get
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_APPEND
    - PyErr_Occurred
    - _Unpickler_Readline
    - bad_readline
    - PyLong_FromString
    - PyErr_Format
    - _Unpickler_MemoGet
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int load_get(PickleState *st, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6262,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/_pickle.c:6265,1
    - Dst: _Unpickler_MemoGet
      Src: /src/cpython/Modules/_pickle.c:6267,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:6269,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6272,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6279
      start: 6255
    functionDepth: 1
    functionLinenumber: 6255
    functionLinenumberEnd: 6279
    functionName: load_binget
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_APPEND
    - PyLong_FromSsize_t
    - Py_CHARMASK
    - _Unpickler_Read
    - PyErr_Format
    - _Unpickler_MemoGet
    linkageType: ''
    returnType: int
    signature: int load_binget(PickleState *st, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6288,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:6291,1
    - Dst: _Unpickler_MemoGet
      Src: /src/cpython/Modules/_pickle.c:6293,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:6295,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6298,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6305
      start: 6281
    functionDepth: 1
    functionLinenumber: 6281
    functionLinenumberEnd: 6305
    functionName: load_long_binget
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_APPEND
    - PyLong_FromSsize_t
    - _Unpickler_Read
    - calc_binsize
    - PyErr_Format
    - _Unpickler_MemoGet
    linkageType: ''
    returnType: int
    signature: int load_long_binget(PickleState *st, UnpicklerObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:6320,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6321,1
    - Dst: calc_binint
      Src: /src/cpython/Modules/_pickle.c:6323,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6326,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:6331,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:6334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6337,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6338,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6342,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:6347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6349,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6350,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6351,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:6359,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:6359,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6363,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:6364,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6368,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:6369,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:6374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6376,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:6380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6383,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6390,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6391,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 3
    argNames:
    - st
    - self
    - nbytes
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts:
    - condition: (nbytes == 1 || nbytes == 2 || nbytes == 4)
      pos:
        line_end: 6319
        line_start: 6319
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 6394
      start: 6310
    functionDepth: 2
    functionLinenumber: 6310
    functionLinenumberEnd: 6394
    functionName: load_extension
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - calc_binint
    - PyDict_GetItemWithError
    - PDATA_PUSH
    - Py_DECREF
    - PDATA_APPEND
    - PyDict_SetItem
    - PyErr_Occurred
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_Size
    - _Unpickler_Read
    - find_class
    - PyTuple_GET_ITEM
    - PyLong_FromLong
    - PyUnicode_Check
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int load_extension(PickleState *st, UnpicklerObject *self, int nbytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6404,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6407,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6408,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6409,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6410,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:6412,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:6415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6416,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6418,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6419,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6425
      start: 6396
    functionDepth: 4
    functionLinenumber: 6396
    functionLinenumberEnd: 6425
    functionName: load_put
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsSsize_t
    - Py_SIZE
    - _Unpickler_Readline
    - PyErr_Occurred
    - PyErr_SetString
    - _Unpickler_MemoPut
    - Pdata_stack_underflow
    - PyLong_FromString
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_put(PickleState *state, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6434,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6437,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6438,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6439,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/_pickle.c:6441,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6444
      start: 6427
    functionDepth: 3
    functionLinenumber: 6427
    functionLinenumberEnd: 6444
    functionName: load_binput
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_CHARMASK
    - _Unpickler_MemoPut
    - _Unpickler_Read
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_binput(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6453,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6456,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6457,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6458,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:6460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6462,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6468
      start: 6446
    functionDepth: 3
    functionLinenumber: 6446
    functionLinenumberEnd: 6468
    functionName: load_long_binput
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - _Unpickler_Read
    - Pdata_stack_underflow
    - calc_binsize
    - _Unpickler_MemoPut
    linkageType: ''
    returnType: int
    signature: int load_long_binput(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6475,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6476,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6477,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6480
      start: 6470
    functionDepth: 3
    functionLinenumber: 6470
    functionLinenumberEnd: 6480
    functionName: load_memoize
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _Unpickler_MemoPut
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_memoize(PickleState *state, UnpicklerObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6491,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6493,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6499,1
    - Dst: Pdata_poplist
      Src: /src/cpython/Modules/_pickle.c:6503,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6506,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_pickle.c:6507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6508,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:6514,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6514,1
    - Dst: Pdata_poplist
      Src: /src/cpython/Modules/_pickle.c:6518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6520,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6527,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:6535,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6535,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6540,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6542,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6547,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6550,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - state
    - self
    - x
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6555
      start: 6482
    functionDepth: 2
    functionLinenumber: 6482
    functionLinenumberEnd: 6555
    functionName: do_append
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_SET_SIZE
    - Pdata_clear
    - Py_DECREF
    - Pdata_poplist
    - PyObject_GetOptionalAttr
    - Py_SIZE
    - PyList_GET_SIZE
    - PyList_SetSlice
    - _Py_ID
    - Pdata_stack_underflow
    - PyObject_GetAttr
    - _Pickle_FastCall
    linkageType: ''
    returnType: int
    signature: int do_append(PickleState *state, UnpicklerObject *self, Py_ssize_t
      x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6560,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6561,1
    - Dst: do_append
      Src: /src/cpython/Modules/_pickle.c:6562,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6563
      start: 6557
    functionDepth: 3
    functionLinenumber: 6557
    functionLinenumberEnd: 6563
    functionName: load_append
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - do_append
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_append(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6568,1
    - Dst: do_append
      Src: /src/cpython/Modules/_pickle.c:6571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6572
      start: 6565
    functionDepth: 3
    functionLinenumber: 6565
    functionLinenumberEnd: 6572
    functionName: load_appends
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - do_append
    linkageType: ''
    returnType: int
    signature: int load_appends(PickleState *state, UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6582,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6584,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6589,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_pickle.c:6601,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - st
    - self
    - x
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6609
      start: 6574
    functionDepth: 2
    functionLinenumber: 6574
    functionLinenumberEnd: 6609
    functionName: do_setitems
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_clear
    - Py_SIZE
    - PyErr_SetString
    - PyObject_SetItem
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int do_setitems(PickleState *st, UnpicklerObject *self, Py_ssize_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_setitems
      Src: /src/cpython/Modules/_pickle.c:6614,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6615
      start: 6611
    functionDepth: 3
    functionLinenumber: 6611
    functionLinenumberEnd: 6615
    functionName: load_setitem
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - do_setitems
    linkageType: ''
    returnType: int
    signature: int load_setitem(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6620,1
    - Dst: do_setitems
      Src: /src/cpython/Modules/_pickle.c:6623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6624
      start: 6617
    functionDepth: 3
    functionLinenumber: 6617
    functionLinenumberEnd: 6624
    functionName: load_setitems
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - do_setitems
    linkageType: ''
    returnType: int
    signature: int load_setitems(PickleState *state, UnpicklerObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6632,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6635,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6637,1
    - Dst: PySet_Check
      Src: /src/cpython/Modules/_pickle.c:6643,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:6647,1
    - Dst: _PySet_Update
      Src: /src/cpython/Modules/_pickle.c:6651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6652,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:6658,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6658,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6666,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6668,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6673,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6676,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6680
      start: 6626
    functionDepth: 3
    functionLinenumber: 6626
    functionLinenumberEnd: 6680
    functionName: load_additems
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - Py_SET_SIZE
    - Pdata_clear
    - Py_DECREF
    - Py_SIZE
    - PySet_Check
    - _PySet_Update
    - _Py_ID
    - Pdata_poptuple
    - Pdata_stack_underflow
    - PyObject_GetAttr
    - _Pickle_FastCall
    linkageType: ''
    returnType: int
    signature: int load_additems(PickleState *state, UnpicklerObject *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6692,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6693,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6696,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6700,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:6702,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6703,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6714,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:6721,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6721,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6724,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6725,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:6726,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:6727,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6728,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:6739,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6740,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:6743,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6743,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:6748,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:6751,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6752,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_pickle.c:6753,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Modules/_pickle.c:6754,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_pickle.c:6756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6763,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:6771,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6772,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:6777,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_pickle.c:6778,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6788,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6789,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6791
      start: 6682
    functionDepth: 2
    functionLinenumber: 6682
    functionLinenumberEnd: 6791
    functionName: load_build
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyUnicode_InternMortal
    - PyErr_SetString
    - PDATA_POP
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyDict_Check
    - Py_DECREF
    - Py_SIZE
    - PyTuple_Check
    - _Py_ID
    - PyUnicode_CheckExact
    - PyObject_SetItem
    - PyObject_SetAttr
    - PyObject_GetOptionalAttr
    - _PyInterpreterState_GET
    - Pdata_stack_underflow
    - PyDict_Next
    - PyObject_GetAttr
    - _Pickle_FastCall
    linkageType: ''
    returnType: int
    signature: int load_build(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RESIZE
      Src: /src/cpython/Modules/_pickle.c:6805,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:6807,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6818
      start: 6793
    functionDepth: 1
    functionLinenumber: 6793
    functionLinenumberEnd: 6818
    functionName: load_mark
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_RESIZE
    - Py_SIZE
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int load_mark(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6827,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6830,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_pickle.c:6832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6835,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6842
      start: 6820
    functionDepth: 1
    functionLinenumber: 6820
    functionLinenumberEnd: 6842
    functionName: load_reduce
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PDATA_PUSH
    - Py_DECREF
    - PDATA_POP
    linkageType: ''
    returnType: int
    signature: int load_reduce(PickleState *state, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6853,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6864
      start: 6847
    functionDepth: 1
    functionLinenumber: 6847
    functionLinenumberEnd: 6864
    functionName: load_proto
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int load_proto(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6872,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:6875,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6877,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6883,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6889
      start: 6866
    functionDepth: 1
    functionLinenumber: 6866
    functionLinenumberEnd: 6889
    functionName: load_frame
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _Unpickler_Read
    - calc_binsize
    linkageType: ''
    returnType: int
    signature: int load_frame(PickleState *state, UnpicklerObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6902,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6903,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:6906,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6906,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:6910,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6920,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:6921,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6922,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6928,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6929,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6930,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6931,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6932,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6933,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6934,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6935,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6936,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6937,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6938,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6939,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6940,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6941,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6942,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6943,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6944,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6945,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6946,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6947,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6948,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6949,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6950,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6951,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6952,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6953,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6954,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6955,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6956,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6957,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6958,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6959,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6960,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6961,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6962,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6963,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6964,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6965,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6966,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6967,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6968,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6969,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6970,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6971,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6972,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6973,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6974,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6975,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6976,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6977,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6978,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6979,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6980,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6981,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6982,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6983,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6984,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6985,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6986,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6987,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6988,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:6989,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6990,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6991,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6992,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6993,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:6994,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7003,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7007,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7017,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/cpython/Modules/_pickle.c:7021,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7024,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:7025,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7029,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 117
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7031
      start: 6891
    functionDepth: 2
    functionLinenumber: 6891
    functionLinenumberEnd: 7031
    functionName: load
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_SkipConsumed
    - Pdata_clear
    - Py_SIZE
    - PyErr_Occurred
    - _Py_ID
    - _Unpickler_Read
    - PDATA_POP
    - PyObject_GetAttr
    - PyErr_ExceptionMatches
    - OP_ARG
    - Py_XSETREF
    - PyErr_Format
    - Py_CLEAR
    - OP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      load(PickleState *st, 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: 6915
      start: 6913
    functionDepth: 0
    functionLinenumber: 6913
    functionLinenumberEnd: 6915
    functionName: OP
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 9
    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: 6918
      start: 6916
    functionDepth: 0
    functionLinenumber: 6916
    functionLinenumberEnd: 6918
    functionName: OP_ARG
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_ARG(opcode, load_func, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetStateByClass
      Src: /src/cpython/Modules/_pickle.c:7048,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - pid
    argTypes:
    - UnpicklerObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7053
      start: 7043
    functionDepth: 2
    functionLinenumber: 7043
    functionLinenumberEnd: 7053
    functionName: _pickle_Unpickler_persistent_load_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _Pickle_GetStateByClass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_Unpickler_persistent_load_impl(UnpicklerObject
      *self,\n                                       PyTypeObject *cls, PyObject *pid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetStateByClass
      Src: /src/cpython/Modules/_pickle.c:7074,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7081,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7083,1
    - Dst: load
      Src: /src/cpython/Modules/_pickle.c:7087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - UnpicklerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7088
      start: 7068
    functionDepth: 3
    functionLinenumber: 7068
    functionLinenumberEnd: 7088
    functionName: _pickle_Unpickler_load_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _Pickle_GetStateByClass
    - load
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler_load_impl(UnpicklerObject *self, PyTypeObject *cls)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_pickle.c:7122,1
    - Dst: _Pickle_GetStateByClass
      Src: /src/cpython/Modules/_pickle.c:7133,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_pickle.c:7137,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:7140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7141,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:7143,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:7143,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7144,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7146,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7149,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7150,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7151,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7152,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7153,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7156,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7161,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:7166,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7168,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7169,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7171,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7176,1
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_pickle.c:7186,1
    - Dst: get_dotted_path
      Src: /src/cpython/Modules/_pickle.c:7191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7193,1
    - Dst: getattribute
      Src: /src/cpython/Modules/_pickle.c:7196,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:7197,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7197,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:7198,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:7199,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7200,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:7203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7205,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:7208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7210,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - self
    - cls
    - module_name
    - global_name
    argTypes:
    - UnpicklerObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (global != NULL || PyErr_Occurred())
      pos:
        line_end: 7196
        line_start: 7196
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 7212
      start: 7113
    functionDepth: 2
    functionLinenumber: 7113
    functionLinenumberEnd: 7212
    functionName: _pickle_Unpickler_find_class_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - _PyErr_ChainExceptions1
    - getattribute
    - get_dotted_path
    - _Pickle_GetStateByClass
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PySys_Audit
    - PyTuple_Pack
    - PyImport_Import
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyTuple_Check
    - Py_TYPE
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_Unpickler_find_class_impl(UnpicklerObject *self,
      PyTypeObject *cls,\n                                  PyObject *module_name,\n
      \                                 PyObject *global_name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_pickle.c:7225,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7225,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:7231,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:7233,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:7235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7237
      start: 7221
    functionDepth: 1
    functionLinenumber: 7221
    functionLinenumberEnd: 7237
    functionName: _pickle_Unpickler___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t _pickle_Unpickler___sizeof___impl(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7250,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7251,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7252,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7253,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7254,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7255,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7256,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7257,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7258,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_pickle.c:7260,1
    - Dst: _Unpickler_MemoCleanup
      Src: /src/cpython/Modules/_pickle.c:7264,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7265,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7267,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7269,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7275
      start: 7247
    functionDepth: 2
    functionLinenumber: 7247
    functionLinenumberEnd: 7275
    functionName: Unpickler_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - UnpicklerObject_CAST
    - PyBuffer_Release
    - Py_CLEAR
    - PyMem_Free
    - _Unpickler_MemoCleanup
    linkageType: ''
    returnType: int
    signature: int Unpickler_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7280,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:7281,1
    - Dst: Unpickler_clear
      Src: /src/cpython/Modules/_pickle.c:7282,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:7283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7285
      start: 7277
    functionDepth: 3
    functionLinenumber: 7277
    functionLinenumberEnd: 7285
    functionName: Unpickler_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Unpickler_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Unpickler_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7290,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7291,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7291,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7292,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7293,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7294,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7295,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7296,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7297,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7298,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7299,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7308
      start: 7287
    functionDepth: 1
    functionLinenumber: 7287
    functionLinenumberEnd: 7308
    functionName: Unpickler_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - UnpicklerObject_CAST
    linkageType: ''
    returnType: int
    signature: int Unpickler_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Unpickler_clear
      Src: /src/cpython/Modules/_pickle.c:7351,1
    - Dst: _Unpickler_SetInputStream
      Src: /src/cpython/Modules/_pickle.c:7353,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/cpython/Modules/_pickle.c:7356,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/cpython/Modules/_pickle.c:7359,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7364,1
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:7365,1
    - Dst: Pdata_New
      Src: /src/cpython/Modules/_pickle.c:7366,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - self
    - file
    - fix_imports
    - encoding
    - errors
    - buffers
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - int
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7343
    functionDepth: 3
    functionLinenumber: 7343
    functionLinenumberEnd: 7378
    functionName: _pickle_Unpickler___init___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_SetBuffers
    - _Pickle_FindStateByType
    - _Unpickler_SetInputEncoding
    - Pdata_New
    - _Unpickler_NewMemo
    - Unpickler_clear
    - Py_TYPE
    - _Unpickler_SetInputStream
    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/cpython/Modules/_pickle.c:7404,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7409
      start: 7400
    functionDepth: 2
    functionLinenumber: 7400
    functionLinenumberEnd: 7409
    functionName: _pickle_UnpicklerMemoProxy_clear_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_NewMemo
    - _Unpickler_MemoCleanup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_clear_impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_pickle.c:7422,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:7434,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:7437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7445,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7447
      start: 7417
    functionDepth: 1
    functionLinenumber: 7417
    functionLinenumberEnd: 7447
    functionName: _pickle_UnpicklerMemoProxy_copy_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyDict_SetItem
    - PyDict_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_copy_impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy_copy_impl
      Src: /src/cpython/Modules/_pickle.c:7461,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:7465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7467,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:7470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7473,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7476,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7477,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:7477,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7480
      start: 7455
    functionDepth: 2
    functionLinenumber: 7455
    functionLinenumberEnd: 7480
    functionName: _pickle_UnpicklerMemoProxy___reduce___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _pickle_UnpicklerMemoProxy_copy_impl
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy___reduce___impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7492,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7493,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:7494,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7495,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:7496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7498
      start: 7489
    functionDepth: 1
    functionLinenumber: 7489
    functionLinenumberEnd: 7498
    functionName: UnpicklerMemoProxy_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - UnpicklerMemoProxyObject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void UnpicklerMemoProxy_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7503,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7504,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7504,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7507
      start: 7500
    functionDepth: 1
    functionLinenumber: 7500
    functionLinenumberEnd: 7507
    functionName: UnpicklerMemoProxy_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - UnpicklerMemoProxyObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int UnpicklerMemoProxy_traverse(PyObject *op, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7512,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7515
      start: 7509
    functionDepth: 1
    functionLinenumber: 7509
    functionLinenumberEnd: 7515
    functionName: UnpicklerMemoProxy_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - UnpicklerMemoProxyObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int UnpicklerMemoProxy_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:7537,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7537,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:7539,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:7543,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:7544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - unpickler
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7546
      start: 7534
    functionDepth: 3
    functionLinenumber: 7534
    functionLinenumberEnd: 7546
    functionName: UnpicklerMemoProxy_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_FindStateByType
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnpicklerMemoProxy_New(UnpicklerObject *unpickler)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7554,1
    - Dst: UnpicklerMemoProxy_New
      Src: /src/cpython/Modules/_pickle.c:7555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7556
      start: 7551
    functionDepth: 4
    functionLinenumber: 7551
    functionLinenumberEnd: 7556
    functionName: Unpickler_get_memo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - UnpicklerObject_CAST
    - UnpicklerMemoProxy_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Unpickler_get_memo(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7562,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7566,1
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:7571,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7571,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_pickle.c:7572,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7577,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_pickle.c:7582,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:7585,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:7589,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7590,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:7594,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_pickle.c:7596,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7597,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:7601,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7602,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7605,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:7609,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7614,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7616,1
    - Dst: _Unpickler_MemoCleanup
      Src: /src/cpython/Modules/_pickle.c:7620,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:7629,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7631,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - op
    - obj
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7634
      start: 7558
    functionDepth: 3
    functionLinenumber: 7558
    functionLinenumberEnd: 7634
    functionName: Unpickler_set_memo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_GET_SIZE
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - _Pickle_FindStateByType
    - PyDict_Next
    - _Unpickler_MemoPut
    - Py_IS_TYPE
    - _Unpickler_MemoCleanup
    - _Unpickler_NewMemo
    - Py_XNewRef
    - PyErr_Format
    - PyDict_Check
    - Py_TYPE
    - PyMem_Free
    - UnpicklerObject_CAST
    linkageType: ''
    returnType: int
    signature: int Unpickler_set_memo(PyObject *op, PyObject *obj, void *Py_UNUSED(closure))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7639,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7640,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:7641,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:7644,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/_pickle.c:7647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7648
      start: 7636
    functionDepth: 1
    functionLinenumber: 7636
    functionLinenumberEnd: 7648
    functionName: Unpickler_getattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EqualToUTF8
    - Py_NewRef
    - PyObject_GenericGetAttr
    - PyUnicode_Check
    - UnpicklerObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Unpickler_getattr(PyObject *self, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7653,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:7654,1
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7656,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_pickle.c:7657,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:7658,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_pickle.c:7662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7663
      start: 7650
    functionDepth: 1
    functionLinenumber: 7650
    functionLinenumberEnd: 7663
    functionName: Unpickler_setattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - PyUnicode_EqualToUTF8
    - Py_XSETREF
    - PyUnicode_Check
    - Py_XINCREF
    - UnpicklerObject_CAST
    linkageType: ''
    returnType: int
    signature: int Unpickler_setattr(PyObject *self, PyObject *name, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:7740,1
    - Dst: _Pickler_New
      Src: /src/cpython/Modules/_pickle.c:7741,1
    - Dst: _Pickler_SetProtocol
      Src: /src/cpython/Modules/_pickle.c:7746,1
    - Dst: _Pickler_SetOutputStream
      Src: /src/cpython/Modules/_pickle.c:7749,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/cpython/Modules/_pickle.c:7752,1
    - Dst: dump
      Src: /src/cpython/Modules/_pickle.c:7755,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:7758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7761,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:7765,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: 7767
      start: 7734
    functionDepth: 9
    functionLinenumber: 7734
    functionLinenumberEnd: 7767
    functionName: _pickle_dump_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Pickler_SetOutputStream
    - dump
    - Py_DECREF
    - _Pickler_FlushToFile
    - _Pickler_SetBufferCallback
    - _Pickle_GetState
    - _Pickler_SetProtocol
    - _Pickler_New
    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: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:7806,1
    - Dst: _Pickler_New
      Src: /src/cpython/Modules/_pickle.c:7807,1
    - Dst: _Pickler_SetProtocol
      Src: /src/cpython/Modules/_pickle.c:7812,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/cpython/Modules/_pickle.c:7815,1
    - Dst: dump
      Src: /src/cpython/Modules/_pickle.c:7818,1
    - Dst: _Pickler_GetString
      Src: /src/cpython/Modules/_pickle.c:7821,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7822,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:7826,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: 7828
      start: 7800
    functionDepth: 9
    functionLinenumber: 7800
    functionLinenumberEnd: 7828
    functionName: _pickle_dumps_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_GetString
    - Py_XDECREF
    - Py_DECREF
    - dump
    - _Pickler_SetBufferCallback
    - _Pickle_GetState
    - _Pickler_SetProtocol
    - _Pickler_New
    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/cpython/Modules/_pickle.c:7873,1
    - Dst: _Unpickler_SetInputStream
      Src: /src/cpython/Modules/_pickle.c:7878,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/cpython/Modules/_pickle.c:7881,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/cpython/Modules/_pickle.c:7884,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:7889,1
    - Dst: load
      Src: /src/cpython/Modules/_pickle.c:7890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7891,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:7895,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: 7897
      start: 7866
    functionDepth: 3
    functionLinenumber: 7866
    functionLinenumberEnd: 7897
    functionName: _pickle_load_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_SetBuffers
    - Py_XDECREF
    - Py_DECREF
    - _Unpickler_New
    - load
    - _Pickle_GetState
    - _Unpickler_SetInputEncoding
    - _Unpickler_SetInputStream
    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/cpython/Modules/_pickle.c:7934,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/cpython/Modules/_pickle.c:7939,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/cpython/Modules/_pickle.c:7942,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/cpython/Modules/_pickle.c:7945,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:7950,1
    - Dst: load
      Src: /src/cpython/Modules/_pickle.c:7951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7952,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:7956,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: 7958
      start: 7927
    functionDepth: 3
    functionLinenumber: 7927
    functionLinenumberEnd: 7958
    functionName: _pickle_loads_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_SetBuffers
    - Py_XDECREF
    - Py_DECREF
    - _Unpickler_New
    - load
    - _Pickle_GetState
    - _Unpickler_SetInputEncoding
    - _Unpickler_SetStringInput
    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/cpython/Modules/_pickle.c:7971,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:7971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7973
      start: 7968
    functionDepth: 2
    functionLinenumber: 7968
    functionLinenumberEnd: 7973
    functionName: pickle_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_ClearState
    - _Pickle_GetState
    linkageType: ''
    returnType: int
    signature: int pickle_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_ClearState
      Src: /src/cpython/Modules/_pickle.c:7978,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:7978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7979
      start: 7975
    functionDepth: 2
    functionLinenumber: 7975
    functionLinenumberEnd: 7979
    functionName: pickle_free
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_ClearState
    - _Pickle_GetState
    linkageType: ''
    returnType: void
    signature: void pickle_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:7984,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7985,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7986,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7987,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7988,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7989,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7990,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7991,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7992,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7993,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7994,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7995,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7996,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7997,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7998,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7999,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8000,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8001,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8002,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8005
      start: 7981
    functionDepth: 2
    functionLinenumber: 7981
    functionLinenumberEnd: 8005
    functionName: pickle_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _Pickle_GetState
    linkageType: ''
    returnType: int
    signature: int pickle_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:8010,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8020,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8021,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8022,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8023,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8024,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_pickle.c:8029,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_pickle.c:8032,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_pickle.c:8035,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_pickle.c:8040,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_pickle.c:8044,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_pickle.c:8048,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_pickle.c:8052,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_pickle.c:8055,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_pickle.c:8058,1
    - Dst: _Pickle_InitState
      Src: /src/cpython/Modules/_pickle.c:8062,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8066
      start: 8007
    functionDepth: 3
    functionLinenumber: 8007
    functionLinenumberEnd: 8066
    functionName: _pickle_exec
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - CREATE_TYPE
    - PyModule_AddObjectRef
    - _Pickle_GetState
    - PyErr_NewException
    - _Pickle_InitState
    linkageType: ''
    returnType: int
    signature: int _pickle_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mod
    - ','
    - type
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8019
      start: 8012
    functionDepth: 0
    functionLinenumber: 8012
    functionLinenumberEnd: 8019
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(mod, type, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_pickle.c:8090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8091
      start: 8087
    functionDepth: 1
    functionLinenumber: 8087
    functionLinenumberEnd: 8091
    functionName: PyInit__pickle
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__pickle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/arraymodule.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: get_array_state
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    linkageType: ''
    returnType: array_state
    signature: 'array_state *

      get_array_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: find_array_state_by_type
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_array_state_by_type(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cls
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: get_array_state_by_class
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_array_state_by_class(cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: arrayobject_CAST
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arrayobject_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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: arrayiterobject_CAST
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arrayiterobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: array_Check
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_Check(op, state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:141,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:152,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:154,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:159,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:161,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:178,1
    - Dst: PyMem_RESIZE
      Src: /src/cpython/Modules/arraymodule.c:183,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:187,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - newsize
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 194
    functionName: array_resize
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RESIZE
    - Py_SET_SIZE
    - Py_SIZE
    - PyErr_SetString
    - PyErr_NoMemory
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int array_resize(arrayobject *self, Py_ssize_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/arraymodule.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: b_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:222,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:225,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: b_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: BB_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: BB_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: u_getitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      u_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:267,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:268,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:274,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:276,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:277,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:280,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:283,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:292,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (len == 1)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 299
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 299
    functionName: u_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideChar
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int u_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/arraymodule.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: w_getitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      w_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:310,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:311,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:317,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:318,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:321,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/arraymodule.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 329
    functionName: w_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyUnicode_READ_CHAR
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int w_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/arraymodule.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: h_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: h_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: HH_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:362,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:365,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: HH_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: i_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: i_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: II_getitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      II_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/arraymodule.c:410,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/arraymodule.c:411,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/arraymodule.c:417,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:420,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:436,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 439
    functionName: II_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyLong_AsUnsignedLong
    linkageType: ''
    returnType: int
    signature: int II_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/arraymodule.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: l_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: l_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: LL_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:470,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/arraymodule.c:471,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/arraymodule.c:477,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 491
    functionName: LL_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsUnsignedLong
    linkageType: ''
    returnType: int
    signature: int LL_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/arraymodule.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: q_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 508
    functionName: q_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: QQ_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:523,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/arraymodule.c:524,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/arraymodule.c:530,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:541,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 544
    functionName: QQ_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsUnsignedLongLong
    linkageType: ''
    returnType: int
    signature: int QQ_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: f_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: f_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: d_getitem
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 578
    functionName: d_setitem
    functionSourceFile: /src/cpython/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: 590
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 590
    functionName: DEFINE_COMPAREITEMS
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_COMPAREITEMS(code, type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/arraymodule.c:642,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:648,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/arraymodule.c:651,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:658,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/arraymodule.c:663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:665,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:666,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: 671
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 671
    functionName: newarrayobject
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_DECREF
    - PyErr_BadInternalCall
    - PyTypeObject*::tp_alloc
    - PyMem_NEW
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newarrayobject(PyTypeObject *type, Py_ssize_t size, const struct arraydescr
      *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:677,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:677,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:678,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:678,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:682,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (array_Check(op, state))
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (i>=0 && i<Py_SIZE(ap))
      pos:
        line_end: 681
        line_start: 681
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 684
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 684
    functionName: getarrayitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - find_array_state_by_type
    - Py_SIZE
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getarrayitem(PyObject *op, Py_ssize_t i)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:690,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/arraymodule.c:692,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:698,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 714
    functionName: ins1
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_BadInternalCall
    - memmove
    - array_resize
    linkageType: ''
    returnType: int
    signature: int ins1(arrayobject *self, Py_ssize_t where, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:721,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 723
    functionName: array_tp_traverse
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int array_tp_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:728,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/arraymodule.c:729,1
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:731,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/arraymodule.c:732,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:734,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/arraymodule.c:736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 738
    functionName: array_dealloc
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - arrayobject_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void array_dealloc(PyObject *op)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:743,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:743,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:750,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:750,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:756,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:756,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:762,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/arraymodule.c:768,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:768,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:768,1
    - Dst: arrayobject*::ob_descr::compareitems
      Src: /src/cpython/Modules/arraymodule.c:769,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:785,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:791,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:791,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:792,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:798,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:805,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:813,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:814,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:821,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:822,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:831,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:836,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:839,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/arraymodule.c:843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:846,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (vs == ws)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (vs == ws)
      pos:
        line_end: 821
        line_start: 821
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 848
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 848
    functionName: array_richcompare
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - Py_MIN
    - Py_DECREF
    - find_array_state_by_type
    - Py_SIZE
    - PyObject_RichCompare
    - arrayobject*::ob_descr::compareitems
    - getarrayitem
    - Py_NewRef
    - PyObject_RichCompareBool
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: array_length
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t array_length(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:859,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:860,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 864
    functionName: array_item
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - getarrayitem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_item(PyObject *op, Py_ssize_t i)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:869,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:869,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:874,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:875,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:880,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:881,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:882,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:886,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: 890
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 890
    functionName: array_slice
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - find_array_state_by_type
    - Py_SIZE
    - newarrayobject
    - memcpy
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_slice(arrayobject *a, Py_ssize_t ilow, Py_ssize_t ihigh)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 906
    functionName: array_array_clear_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_resize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_clear_impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_slice
      Src: /src/cpython/Modules/arraymodule.c:918,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 919
    functionName: array_array___copy___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - array_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___copy___impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array___copy___impl
      Src: /src/cpython/Modules/arraymodule.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 930
    functionDepth: 4
    functionLinenumber: 930
    functionLinenumberEnd: 935
    functionName: array_array___deepcopy___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_array___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___deepcopy___impl(arrayobject *self, PyObject *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:940,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:941,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:941,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:944,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:945,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:947,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/arraymodule.c:952,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:955,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:955,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:956,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:958,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:958,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:959,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:963,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:964,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:964,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:966,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:967,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:967,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:968,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - op
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 972
    functionName: array_concat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - find_array_state_by_type
    - Py_SIZE
    - newarrayobject
    - PyErr_Format
    - memcpy
    - arrayobject_CAST
    - PyErr_BadArgument
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_concat(PyObject *op, PyObject *bb)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:977,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:978,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:978,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:982,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:984,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:987,1
    - Dst: _PyBytes_Repeat
      Src: /src/cpython/Modules/arraymodule.c:995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - op
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 998
    functionName: array_repeat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Repeat
    - find_array_state_by_type
    - Py_SIZE
    - newarrayobject
    - arrayobject_CAST
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_repeat(PyObject *op, Py_ssize_t n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1007,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1008,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1013,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1014,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1021,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:1026,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1028,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1029,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1029,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: 1033
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1033
    functionName: array_del_slice
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - memmove
    - array_resize
    linkageType: ''
    returnType: int
    signature: int array_del_slice(arrayobject *a, Py_ssize_t ilow, Py_ssize_t ihigh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:1038,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1040,1
    - Dst: array_del_slice
      Src: /src/cpython/Modules/arraymodule.c:1045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - op
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1035
    functionDepth: 3
    functionLinenumber: 1035
    functionLinenumberEnd: 1047
    functionName: array_ass_item
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - arrayobject_CAST
    - PyErr_SetString
    - array_del_slice
    linkageType: ''
    returnType: int
    signature: int array_ass_item(PyObject *op, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:1053,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1053,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1054,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:1054,1
    - Dst: array_ass_item
      Src: /src/cpython/Modules/arraymodule.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (array_Check(a, state))
      pos:
        line_end: 1053
        line_start: 1053
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1057
      start: 1049
    functionDepth: 4
    functionLinenumber: 1049
    functionLinenumberEnd: 1057
    functionName: setarrayitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - array_ass_item
    - find_array_state_by_type
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int setarrayitem(PyObject *a, Py_ssize_t i, PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/arraymodule.c:1064,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/arraymodule.c:1068,1
    - Dst: ins1
      Src: /src/cpython/Modules/arraymodule.c:1069,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1076,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:1077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - bb
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1080
    functionName: array_iter_extend
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyObject_GetIter
    - PyErr_Occurred
    - PyIter_Next
    - ins1
    linkageType: ''
    returnType: int
    signature: int array_iter_extend(arrayobject *self, PyObject *bb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:1087,1
    - Dst: array_iter_extend
      Src: /src/cpython/Modules/arraymodule.c:1088,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1091,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1095,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1095,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1096,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1096,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1097,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1100,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1102,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1103,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1104,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - state
    - self
    - bb
    argTypes:
    - array_state*
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1113
    functionName: array_do_extend
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - array_resize
    - Py_SIZE
    - array_iter_extend
    - PyErr_SetString
    - memcpy
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int array_do_extend(array_state *state, arrayobject *self, PyObject
      *bb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:1118,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:1119,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1119,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:1121,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:1122,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1124,1
    - Dst: array_do_extend
      Src: /src/cpython/Modules/arraymodule.c:1127,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:1129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1115
    functionDepth: 3
    functionLinenumber: 1115
    functionLinenumberEnd: 1130
    functionName: array_inplace_concat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - find_array_state_by_type
    - Py_NewRef
    - array_do_extend
    - PyErr_Format
    - arrayobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_inplace_concat(PyObject *op, PyObject *bb)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:1135,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1136,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1143,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1147,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1149,1
    - Dst: _PyBytes_Repeat
      Src: /src/cpython/Modules/arraymodule.c:1152,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:1154,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - op
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1155
    functionName: array_inplace_repeat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Repeat
    - array_resize
    - Py_SIZE
    - Py_NewRef
    - arrayobject_CAST
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_inplace_repeat(PyObject *op, Py_ssize_t n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ins1
      Src: /src/cpython/Modules/arraymodule.c:1161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1164
    functionName: ins
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 10
    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/cpython/Modules/arraymodule.c:1182,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1186,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1190,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/arraymodule.c:1196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1197
    functionName: array_array_count_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyLong_FromSsize_t
    - getarrayitem
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_count_impl(arrayobject *self, PyObject *v)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1219,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1225,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1229,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1233,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1237,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/arraymodule.c:1239,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - self
    - v
    - start
    - stop
    argTypes:
    - arrayobject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1246
    functionName: array_array_index_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyLong_FromSsize_t
    - PyErr_SetString
    - getarrayitem
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\narray_array_index_impl(arrayobject *self, PyObject *v,
      Py_ssize_t start,\n                       Py_ssize_t stop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1254,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1255,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1262
    functionName: array_contains
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyObject_RichCompareBool
    - Py_DECREF
    - getarrayitem
    linkageType: ''
    returnType: int
    signature: int array_contains(PyObject *self, PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1279,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1283,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1287,1
    - Dst: array_del_slice
      Src: /src/cpython/Modules/arraymodule.c:1289,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1273
    functionDepth: 3
    functionLinenumber: 1273
    functionLinenumberEnd: 1298
    functionName: array_array_remove_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyErr_SetString
    - getarrayitem
    - array_del_slice
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_remove_impl(arrayobject *self, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1317,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1319,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1323,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1324,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1325,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1328,1
    - Dst: array_del_slice
      Src: /src/cpython/Modules/arraymodule.c:1331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1336
    functionName: array_array_pop_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyErr_SetString
    - getarrayitem
    - array_del_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_pop_impl(arrayobject *self, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state_by_class
      Src: /src/cpython/Modules/arraymodule.c:1352,1
    - Dst: array_do_extend
      Src: /src/cpython/Modules/arraymodule.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - cls
    - bb
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1348
    functionDepth: 3
    functionLinenumber: 1348
    functionLinenumberEnd: 1357
    functionName: array_array_extend_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_do_extend
    - get_array_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_extend_impl(arrayobject *self, PyTypeObject *cls, PyObject *bb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ins
      Src: /src/cpython/Modules/arraymodule.c:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1374
    functionName: array_array_insert_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:1392,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/arraymodule.c:1396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1398,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:1401,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/arraymodule.c:1403,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1405,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:1408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1386
    functionDepth: 1
    functionLinenumber: 1386
    functionLinenumberEnd: 1411
    functionName: array_array_buffer_info_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyLong_FromVoidPtr
    - Py_SIZE
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_buffer_info_impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ins
      Src: /src/cpython/Modules/arraymodule.c:1426,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1427
    functionName: array_array_append_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - ins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_append_impl(arrayobject *self, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1450,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1457,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1467,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1483,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1488
    functionName: array_array_byteswap_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:1504,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1506,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1508,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1514,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1515,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts:
    - condition: ((size_t)itemsize <= sizeof(tmp))
      pos:
        line_end: 1503
        line_start: 1503
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1521
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1521
    functionName: array_array_reverse_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - memcpy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_reverse_impl(arrayobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1546,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1550,1
    - Dst: get_array_state_by_class
      Src: /src/cpython/Modules/arraymodule.c:1555,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1556,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/arraymodule.c:1560,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:1564,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1567,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1571,1
    - Dst: array_array_frombytes
      Src: /src/cpython/Modules/arraymodule.c:1573,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1574,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1579,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - self
    - cls
    - f
    - n
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1555
        line_start: 1555
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1586
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1586
    functionName: array_array_fromfile_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethod
    - PyErr_SetString
    - array_array_frombytes
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_NoMemory
    - assert
    - get_array_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\narray_array_fromfile_impl(arrayobject *self, PyTypeObject
      *cls, PyObject *f,\n                          Py_ssize_t n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1602,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1609,1
    - Dst: get_array_state_by_class
      Src: /src/cpython/Modules/arraymodule.c:1613,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1614,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/arraymodule.c:1623,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/arraymodule.c:1626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - cls
    - f
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1613
        line_start: 1613
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1635
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1635
    functionName: array_array_tofile_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyBytes_FromStringAndSize
    - PyObject_CallMethodOneArg
    - assert
    - get_array_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tofile_impl(arrayobject *self, PyTypeObject *cls, PyObject *f)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/arraymodule.c:1652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1653,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/arraymodule.c:1656,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1659,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1660,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:1663,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1665,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1666,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1669,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1670,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1678
    functionName: array_array_fromlist_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - array_resize
    - Py_SIZE
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyList_Check
    - PyList_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromlist_impl(arrayobject *self, PyObject *list)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:1690,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1690,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1695,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1696,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:1699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1704,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1686
    functionDepth: 2
    functionLinenumber: 1686
    functionLinenumberEnd: 1706
    functionName: array_array_tolist_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - Py_SIZE
    - PyList_SET_ITEM
    - getarrayitem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tolist_impl(arrayobject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1714,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1715,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1720,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1721,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1727,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1730,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1731,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1733,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1734,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1737,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1740,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1708
    functionDepth: 2
    functionLinenumber: 1708
    functionLinenumberEnd: 1742
    functionName: frombytes
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - array_resize
    - Py_SIZE
    - PyErr_SetString
    - PyBuffer_Release
    - memcpy
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frombytes(arrayobject *self, Py_buffer *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frombytes
      Src: /src/cpython/Modules/arraymodule.c:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1754
    functionDepth: 3
    functionLinenumber: 1754
    functionLinenumberEnd: 1759
    functionName: array_array_frombytes_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:1772,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/arraymodule.c:1773,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1774,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1778
    functionName: array_array_tobytes_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tobytes_impl(arrayobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1800,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:1807,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1808,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1811,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1812,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:1817,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/arraymodule.c:1822,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1823,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1827,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1829,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/cpython/Modules/arraymodule.c:1834,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1836,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - ustr
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts:
    - condition: (ustr_length > 0)
      pos:
        line_end: 1807
        line_start: 1807
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (u != NULL)
      pos:
        line_end: 1835
        line_start: 1835
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1841
      start: 1794
    functionDepth: 2
    functionLinenumber: 1794
    functionLinenumberEnd: 1841
    functionName: array_array_fromunicode_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_resize
    - PyUnicode_AsWideChar
    - Py_SIZE
    - PyErr_SetString
    - PyUnicode_GetLength
    - PyUnicode_AsUCS4
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromunicode_impl(arrayobject *self, PyObject *ustr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1860,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/arraymodule.c:1865,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1865,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Modules/arraymodule.c:1869,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1869,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1854
    functionDepth: 1
    functionLinenumber: 1854
    functionLinenumberEnd: 1872
    functionName: array_array_tounicode_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyUnicode_DecodeUTF32
    - PyErr_SetString
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tounicode_impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1884,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1884,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/arraymodule.c:1886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1887
    functionName: array_array___sizeof___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___sizeof___impl(arrayobject *self)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Modules/arraymodule.c:1956,1
    - Dst: memcmp
      Src: /src/cpython/Modules/arraymodule.c:1958,1
    - Dst: memcmp
      Src: /src/cpython/Modules/arraymodule.c:1966,1
    - Dst: memcmp
      Src: /src/cpython/Modules/arraymodule.c:1968,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 1
    argNames:
    - typecode
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1927
    functionDepth: 0
    functionLinenumber: 1927
    functionLinenumberEnd: 2019
    functionName: typecode_to_mformat_code
    functionSourceFile: /src/cpython/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/cpython/Modules/arraymodule.c:2042,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2043,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/arraymodule.c:2045,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/arraymodule.c:2049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2051,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2054,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2055,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:2055,1
    - Dst: array_new
      Src: /src/cpython/Modules/arraymodule.c:2057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - arraytype
    - typecode
    - items
    argTypes:
    - PyTypeObject*
    - char
    - PyObject*
    assertStmts:
    - condition: (arraytype != NULL)
      pos:
        line_end: 2041
        line_start: 2041
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (items != NULL)
      pos:
        line_end: 2042
        line_start: 2042
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 2063
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2063
    functionName: make_array
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - array_new
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_array(PyTypeObject *arraytype, char typecode, PyObject *items)'
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state
      Src: /src/cpython/Modules/arraymodule.c:2088,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/arraymodule.c:2093,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2094,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2096,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/arraymodule.c:2099,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2100,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2110,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2116,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:2120,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2121,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2123,1
    - Dst: typecode_to_mformat_code
      Src: /src/cpython/Modules/arraymodule.c:2128,1
    - Dst: make_array
      Src: /src/cpython/Modules/arraymodule.c:2130,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2139,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2148,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2149,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2151,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:2155,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/arraymodule.c:2156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2158,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2161,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2169,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2170,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2172,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:2176,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/arraymodule.c:2177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2179,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2182,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/cpython/Modules/arraymodule.c:2189,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2190,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2190,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Modules/arraymodule.c:2199,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2200,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2200,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2224,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2226,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2246,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/arraymodule.c:2252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2258,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2261,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/arraymodule.c:2270,1
    - Dst: make_array
      Src: /src/cpython/Modules/arraymodule.c:2274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2275,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: 2277
      start: 2081
    functionDepth: 2
    functionLinenumber: 2081
    functionLinenumberEnd: 2277
    functionName: array__array_reconstructor_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyErr_SetString
    - PyBytes_Check
    - PyFloat_Unpack8
    - PyErr_BadArgument
    - PyFloat_FromDouble
    - PyFloat_Unpack4
    - typecode_to_mformat_code
    - get_array_state
    - make_array
    - PyErr_Format
    - PyType_Check
    - Py_DECREF
    - PyType_IsSubtype
    - PyUnicode_DecodeUTF16
    - Py_SIZE
    - PyUnicode_DecodeUTF32
    - PyBytes_AS_STRING
    - Py_TYPE
    - _PyLong_FromByteArray
    - PyList_SET_ITEM
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state_by_class
      Src: /src/cpython/Modules/arraymodule.c:2301,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2302,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/arraymodule.c:2305,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/arraymodule.c:2312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2313,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/arraymodule.c:2317,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:2318,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/arraymodule.c:2321,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:2325,1
    - Dst: typecode_to_mformat_code
      Src: /src/cpython/Modules/arraymodule.c:2328,1
    - Dst: array_array_tolist_impl
      Src: /src/cpython/Modules/arraymodule.c:2342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2344,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:2347,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2350,1
    - Dst: array_array_tobytes_impl
      Src: /src/cpython/Modules/arraymodule.c:2354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2356,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2360,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:2361,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2364,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - self
    - cls
    - value
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2301
        line_start: 2301
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (state->array_reconstructor != NULL)
      pos:
        line_end: 2359
        line_start: 2359
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 2366
      start: 2289
    functionDepth: 3
    functionLinenumber: 2289
    functionLinenumberEnd: 2366
    functionName: array_array___reduce_ex___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - typecode_to_mformat_code
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - Py_BuildValue
    - PyObject_GetOptionalAttr
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - array_array_tobytes_impl
    - Py_NewRef
    - array_array_tolist_impl
    - Py_TYPE
    - assert
    - get_array_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\narray_array___reduce_ex___impl(arrayobject *self, PyTypeObject
      *cls,\n                               PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2371,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/arraymodule.c:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2374
    functionName: array_get_typecode
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - arrayobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_get_typecode(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2379,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/arraymodule.c:2380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2376
    functionDepth: 1
    functionLinenumber: 2376
    functionLinenumberEnd: 2381
    functionName: array_get_itemsize
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - arrayobject_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_get_itemsize(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2425,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2427,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/arraymodule.c:2430,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/arraymodule.c:2431,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2431,1
    - Dst: array_array_tounicode_impl
      Src: /src/cpython/Modules/arraymodule.c:2434,1
    - Dst: array_array_tolist_impl
      Src: /src/cpython/Modules/arraymodule.c:2436,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/arraymodule.c:2441,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/arraymodule.c:2442,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2419
    functionDepth: 3
    functionLinenumber: 2419
    functionLinenumberEnd: 2445
    functionName: array_repr
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - array_array_tounicode_impl
    - Py_SIZE
    - PyUnicode_FromFormat
    - _PyType_Name
    - array_array_tolist_impl
    - arrayobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_repr(PyObject *op)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2450,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:2451,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2451,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/arraymodule.c:2453,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/arraymodule.c:2454,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:2455,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2459,1
    - Dst: array_item
      Src: /src/cpython/Modules/arraymodule.c:2460,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/arraymodule.c:2462,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/arraymodule.c:2469,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/arraymodule.c:2472,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2472,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:2476,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:2479,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2483,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:2489,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2496,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2447
    functionDepth: 3
    functionLinenumber: 2447
    functionLinenumberEnd: 2509
    functionName: array_subscr
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PySlice_AdjustIndices
    - find_array_state_by_type
    - PyErr_Occurred
    - Py_SIZE
    - array_item
    - PySlice_Check
    - newarrayobject
    - memcpy
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - PyErr_SetString
    - PyIndex_Check
    - arrayobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_subscr(PyObject *op, PyObject *item)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2515,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:2516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2516,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/arraymodule.c:2520,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/arraymodule.c:2521,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:2523,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2526,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2527,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2528,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/arraymodule.c:2542,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/arraymodule.c:2543,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/arraymodule.c:2546,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2546,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2550,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:2558,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2560,1
    - Dst: array_slice
      Src: /src/cpython/Modules/arraymodule.c:2564,1
    - Dst: array_ass_subscr
      Src: /src/cpython/Modules/arraymodule.c:2567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2568,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/arraymodule.c:2572,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2577,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2579,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2592,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2599,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2601,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2602,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2602,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2607,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2607,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2610,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2612,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2615,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2633,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2634,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2635,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2640,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2641,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2643,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2645,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2645,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2654,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2662,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2511
    functionDepth: 3
    functionLinenumber: 2511
    functionLinenumberEnd: 2668
    functionName: array_ass_subscr
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - array_resize
    - PyErr_SetString
    - PyErr_BadArgument
    - PyErr_Occurred
    - PySlice_Unpack
    - PyErr_Format
    - arrayobject_CAST
    - PySlice_AdjustIndices
    - Py_DECREF
    - find_array_state_by_type
    - Py_SIZE
    - PyIndex_Check
    - memcpy
    - Py_TYPE
    - array_Check
    - array_ass_subscr
    - memmove
    - PyNumber_AsSsize_t
    - PySlice_Check
    - array_slice
    linkageType: ''
    returnType: int
    signature: int array_ass_subscr(PyObject *op, PyObject *item, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2677,1
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2682,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:2684,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2673
    functionDepth: 1
    functionLinenumber: 2673
    functionLinenumberEnd: 2712
    functionName: array_buffer_getbuf
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - arrayobject_CAST
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int array_buffer_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2714
    functionDepth: 1
    functionLinenumber: 2714
    functionLinenumberEnd: 2719
    functionName: array_buffer_relbuf
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - arrayobject_CAST
    linkageType: ''
    returnType: void
    signature: void array_buffer_relbuf(PyObject *op, Py_buffer *Py_UNUSED(view))
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:2724,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/arraymodule.c:2731,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/arraymodule.c:2734,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/arraymodule.c:2737,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/arraymodule.c:2743,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:2754,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2755,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:2759,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2762,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/arraymodule.c:2769,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/arraymodule.c:2770,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:2771,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/arraymodule.c:2772,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:2773,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:2774,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/arraymodule.c:2776,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/arraymodule.c:2793,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2794,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/arraymodule.c:2795,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:2795,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2796,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:2800,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:2804,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/arraymodule.c:2808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2810,1
    - Dst: setarrayitem
      Src: /src/cpython/Modules/arraymodule.c:2813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2818,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/arraymodule.c:2821,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:2822,1
    - Dst: array_array_frombytes
      Src: /src/cpython/Modules/arraymodule.c:2824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2829,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:2831,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/arraymodule.c:2834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2836,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:2843,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2845,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:2850,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/arraymodule.c:2851,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2853,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:2859,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2861,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:2865,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2868,1
    - Dst: array_iter_extend
      Src: /src/cpython/Modules/arraymodule.c:2871,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2876,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2881,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 104
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2721
    functionDepth: 5
    functionLinenumber: 2721
    functionLinenumberEnd: 2884
    functionName: array_new
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - Py_SET_SIZE
    - _PyArg_NoKeywords
    - PyObject_GetIter
    - PyErr_SetString
    - PyList_Check
    - PyBytes_Check
    - setarrayitem
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - PySequence_GetItem
    - PyList_GET_SIZE
    - array_iter_extend
    - PyErr_Format
    - PyUnicode_Check
    - PySys_Audit
    - Py_DECREF
    - find_array_state_by_type
    - PyTuple_Check
    - Py_SIZE
    - array_array_frombytes
    - PyUnicode_AsUCS4Copy
    - memcpy
    - PyUnicode_GET_LENGTH
    - PyErr_WarnEx
    - array_Check
    - PyArg_ParseTuple
    - newarrayobject
    - PyByteArray_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:3014,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:3015,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3015,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3018,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/arraymodule.c:3019,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/arraymodule.c:3023,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:3027,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/arraymodule.c:3030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 3011
    functionDepth: 1
    functionLinenumber: 3011
    functionLinenumberEnd: 3032
    functionName: array_iter
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - find_array_state_by_type
    - PyErr_BadInternalCall
    - Py_NewRef
    - PyObject_GC_Track
    - arrayobject_CAST
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_iter(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arrayiterobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:3037,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3038,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:3040,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3040,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3041,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/arraymodule.c:3041,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3048,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3048,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 3037
        line_start: 3037
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (PyObject_TypeCheck(it, state->ArrayIterType))
      pos:
        line_end: 3040
        line_start: 3040
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (array_Check(ao, state))
      pos:
        line_end: 3047
        line_start: 3047
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 3056
      start: 3034
    functionDepth: 1
    functionLinenumber: 3034
    functionLinenumberEnd: 3056
    functionName: arrayiter_next
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - PyObject_TypeCheck
    - Py_DECREF
    - find_array_state_by_type
    - Py_SIZE
    - arrayiterobject_CAST
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      arrayiter_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayiterobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:3061,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3062,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/arraymodule.c:3063,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3064,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/arraymodule.c:3065,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3058
    functionDepth: 1
    functionLinenumber: 3058
    functionLinenumberEnd: 3067
    functionName: arrayiter_dealloc
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - arrayiterobject_CAST
    - PyObject_GC_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void arrayiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayiterobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:3072,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3073,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3073,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3069
    functionDepth: 1
    functionLinenumber: 3069
    functionLinenumberEnd: 3076
    functionName: arrayiter_traverse
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - arrayiterobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int arrayiter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state_by_class
      Src: /src/cpython/Modules/arraymodule.c:3092,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3093,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Modules/arraymodule.c:3094,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:3096,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:3098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - arrayiterobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3092
        line_start: 3092
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 3099
      start: 3087
    functionDepth: 1
    functionLinenumber: 3087
    functionLinenumberEnd: 3099
    functionName: array_arrayiterator___reduce___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - assert
    - get_array_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_arrayiterator___reduce___impl(arrayiterobject *self, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/arraymodule.c:3114,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:3115,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3122,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - arrayiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3110
    functionDepth: 1
    functionLinenumber: 3110
    functionLinenumberEnd: 3128
    functionName: array_arrayiterator___setstate___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_SIZE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_arrayiterator___setstate___impl(arrayiterobject *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state
      Src: /src/cpython/Modules/arraymodule.c:3160,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3161,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3162,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3157
    functionDepth: 2
    functionLinenumber: 3157
    functionLinenumberEnd: 3165
    functionName: array_traverse
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - get_array_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int array_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state
      Src: /src/cpython/Modules/arraymodule.c:3170,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3171,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3172,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3173,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3174,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3175,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3179
      start: 3167
    functionDepth: 2
    functionLinenumber: 3167
    functionLinenumberEnd: 3179
    functionName: array_clear
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_array_state
    linkageType: ''
    returnType: int
    signature: int array_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_clear
      Src: /src/cpython/Modules/arraymodule.c:3184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3181
    functionDepth: 3
    functionLinenumber: 3181
    functionLinenumberEnd: 3185
    functionName: array_free
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_clear
    linkageType: ''
    returnType: void
    signature: void array_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - module
    - ','
    - type
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3193
    functionDepth: 0
    functionLinenumber: 3193
    functionLinenumberEnd: 3200
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(module, type, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3201
    functionDepth: 0
    functionLinenumber: 3201
    functionLinenumberEnd: 3209
    functionName: ADD_INTERNED
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INTERNED(state, string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state
      Src: /src/cpython/Modules/arraymodule.c:3213,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:3214,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3220,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3221,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3222,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3223,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3225,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3226,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3227,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/arraymodule.c:3229,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/arraymodule.c:3234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3237,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/arraymodule.c:3240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3247,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/arraymodule.c:3249,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/arraymodule.c:3257,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/arraymodule.c:3258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3210
    functionDepth: 2
    functionLinenumber: 3210
    functionLinenumberEnd: 3263
    functionName: array_modexec
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyImport_ImportModuleAttrString
    - CREATE_TYPE
    - get_array_state
    - ADD_INTERNED
    - Py_DECREF
    - Py_SET_TYPE
    - PyModule_AddObjectRef
    - PyObject_CallMethod
    - PyUnicode_DecodeASCII
    - Py_ARRAY_LENGTH
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int array_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/arraymodule.c:3289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3286
    functionDepth: 1
    functionLinenumber: 3286
    functionLinenumberEnd: 3290
    functionName: PyInit_array
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_array(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:52,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_testinternalcapi.c:56,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:57,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: _get_current_module
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 5
    functionsReached:
    - PyImport_GetModule
    - Py_DECREF
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_current_module(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:75,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testinternalcapi.c:76,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (state != NULL)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 64
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      get_module_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testinternalcapi.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - visit
    - arg
    argTypes:
    - module_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: traverse_module_state
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 3
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int traverse_module_state(module_state *state, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: clear_module_state
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 6
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int clear_module_state(module_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfigsAsDict
      Src: /src/cpython/Modules/_testinternalcapi.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: get_configs
    functionSourceFile: /src/cpython/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: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:112,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: get_recursion_depth
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_recursion_depth(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:121,1
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Modules/_testinternalcapi.c:122,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: get_c_recursion_remaining
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_get_machine_stack_pointer
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_c_recursion_remaining(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bswap16
      Src: /src/cpython/Modules/_testinternalcapi.c:132,1
    - Dst: UINT16_C
      Src: /src/cpython/Modules/_testinternalcapi.c:132,1
    - Dst: UINT16_C
      Src: /src/cpython/Modules/_testinternalcapi.c:133,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:134,1
    - Dst: _Py_bswap32
      Src: /src/cpython/Modules/_testinternalcapi.c:139,1
    - Dst: UINT32_C
      Src: /src/cpython/Modules/_testinternalcapi.c:139,1
    - Dst: UINT32_C
      Src: /src/cpython/Modules/_testinternalcapi.c:140,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:141,1
    - Dst: _Py_bswap64
      Src: /src/cpython/Modules/_testinternalcapi.c:146,1
    - Dst: UINT64_C
      Src: /src/cpython/Modules/_testinternalcapi.c:146,1
    - Dst: UINT64_C
      Src: /src/cpython/Modules/_testinternalcapi.c:147,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 154
    functionName: test_bswap
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_bswap64
    - UINT16_C
    - _Py_bswap16
    - UINT64_C
    - PyErr_Format
    - UINT32_C
    - _Py_bswap32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_bswap(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_popcount32
      Src: /src/cpython/Modules/_testinternalcapi.c:162,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - expected
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: check_popcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_popcount(uint32_t x, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:183,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:184,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:185,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:186,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:187,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:188,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:189,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 194
    functionName: test_popcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_popcount(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - RESULT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: CHECK
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(X, RESULT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bit_length
      Src: /src/cpython/Modules/_testinternalcapi.c:202,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - expected
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: check_bit_length
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_bit_length
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_bit_length(unsigned long x, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:223,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:224,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:225,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:226,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:227,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:228,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: test_bit_length
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_bit_length(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - RESULT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: CHECK
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(X, RESULT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: TO_PTR
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_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: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: FROM_PTR
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_PTR(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: VALUE
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALUE(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: hash_char
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - FROM_PTR
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hash_char(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:254,1
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:255,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:256,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - table
    - key_ptr
    - value_ptr
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts:
    - condition: (value == VALUE(key))
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 259
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 259
    functionName: hashtable_cb
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - FROM_PTR
    - VALUE
    - assert
    linkageType: ''
    returnType: int
    signature: "int hashtable_cb(_Py_hashtable_t *table,\n             const void
      *key_ptr, const void *value_ptr,\n             void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new
      Src: /src/cpython/Modules/_testinternalcapi.c:265,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:268,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:272,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:273,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:274,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_testinternalcapi.c:274,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:274,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:279,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_testinternalcapi.c:280,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:280,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:280,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_testinternalcapi.c:281,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:282,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:285,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:286,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Modules/_testinternalcapi.c:290,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:290,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:291,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:292,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:292,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:293,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:293,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:293,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_testinternalcapi.c:298,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:298,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:299,1
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:299,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:299,1
    - Dst: _Py_hashtable_steal
      Src: /src/cpython/Modules/_testinternalcapi.c:304,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:304,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:305,1
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:305,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:305,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:306,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:307,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Modules/_testinternalcapi.c:307,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:307,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Modules/_testinternalcapi.c:311,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:312,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:313,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Modules/_testinternalcapi.c:316,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:317,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:318,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:319,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_testinternalcapi.c:319,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:319,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_testinternalcapi.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_hashtable_get(table, TO_PTR('x')) == NULL)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 26)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: ((int)FROM_PTR(value_ptr) == VALUE(key))
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (res == 0)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nbuckets > 0)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nbuckets > table->nentries)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: ((int)FROM_PTR(value_ptr) == VALUE(key))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 0)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (entry->key == TO_PTR(key))
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (entry->value == TO_PTR(VALUE(key)))
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_Py_hashtable_get_entry(table, TO_PTR(key)) == NULL)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (count == 25)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nbuckets > 0)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (entry != NULL)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 25)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 0)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_Py_hashtable_get(table, TO_PTR('x')) == NULL)
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 323
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 323
    functionName: test_hashtable
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - TO_PTR
    - VALUE
    - _Py_hashtable_destroy
    - _Py_hashtable_get_entry
    - PyErr_NoMemory
    - _Py_hashtable_foreach
    - _Py_hashtable_set
    - _Py_hashtable_clear
    - _Py_hashtable_steal
    - _Py_hashtable_new
    - FROM_PTR
    - _Py_hashtable_get
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_hashtable(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyPathConfig_ClearGlobal
      Src: /src/cpython/Modules/_testinternalcapi.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(arg)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: test_reset_path_config
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyPathConfig_ClearGlobal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_reset_path_config(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(arg))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:341,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:345,1
    - Dst: _Py_UTF8_Edit_Cost
      Src: /src/cpython/Modules/_testinternalcapi.c:349,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:351,1
    - Dst: _Py_UTF8_Edit_Cost
      Src: /src/cpython/Modules/_testinternalcapi.c:360,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:362,1
    - Dst: _Py_UTF8_Edit_Cost
      Src: /src/cpython/Modules/_testinternalcapi.c:370,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:372,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:380,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - a
    - b
    - expected
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 383
    functionName: check_edit_cost
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_FromString
    - _Py_UTF8_Edit_Cost
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_edit_cost(const char *a, const char *b, Py_ssize_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:394,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:395,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:396,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:397,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:398,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:399,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:400,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:401,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:402,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:403,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:404,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:405,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:406,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:407,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:408,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:409,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:410,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:411,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 416
    functionName: test_edit_cost
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_edit_cost(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 394
    functionName: CHECK
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(a, b, n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_testinternalcapi.c:423,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testinternalcapi.c:424,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/_testinternalcapi.c:425,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:428,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testinternalcapi.c:434,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:436,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testinternalcapi.c:439,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:441,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:442,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testinternalcapi.c:445,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testinternalcapi.c:446,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/_testinternalcapi.c:447,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:449,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:450,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - haystack0
    - needle0
    - offset
    - expected
    argTypes:
    - char*
    - char*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 458
    functionName: check_bytes_find
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyMem_Free
    - PyErr_Format
    - memcpy
    - _PyBytes_Find
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: "int check_bytes_find(const char *haystack0, const char *needle0,\n
      \                int offset, Py_ssize_t expected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_testinternalcapi.c:464,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:466,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/_testinternalcapi.c:469,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testinternalcapi.c:470,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - len_haystack
    - len_needle
    - needle
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: check_bytes_find_large
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - PyMem_RawFree
    - PyErr_Format
    - PyErr_NoMemory
    - _PyBytes_Find
    linkageType: ''
    returnType: int
    signature: "int check_bytes_find_large(Py_ssize_t len_haystack, Py_ssize_t len_needle,\n
      \                      const char *needle)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:489,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:490,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:491,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:492,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:493,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:494,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:495,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:496,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:497,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:498,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:499,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:500,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:501,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:502,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:503,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:504,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:505,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:506,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:512,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:515,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:518,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:521,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 528
    functionName: test_bytes_find
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - CHECK
    - check_bytes_find_large
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_bytes_find(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - H
    - ','
    - N
    - ','
    - O
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: CHECK
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(H, N, O, E)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_testinternalcapi.c:535,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testinternalcapi.c:540,1
    - Dst: _Py_normpath
      Src: /src/cpython/Modules/_testinternalcapi.c:540,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 544
    functionName: normalize_path
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _Py_normpath
    - PyUnicode_FromWideChar
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      normalize_path(PyObject *self, PyObject *filename)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Get_Getpath_CodeObject
      Src: /src/cpython/Modules/_testinternalcapi.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: get_getpath_codeobject
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_Get_Getpath_CodeObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_getpath_codeobject(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:561,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_testinternalcapi.c:564,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Modules/_testinternalcapi.c:568,1
    - Dst: _Py_EncodeLocaleEx
      Src: /src/cpython/Modules/_testinternalcapi.c:573,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:576,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:580,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testinternalcapi.c:581,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:584,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:587,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:591,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 598
    functionName: encode_locale_ex
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _Py_GetErrorHandler
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyErr_NoMemory
    - PyErr_Format
    - _Py_EncodeLocaleEx
    - PyMem_Free
    - PyBytes_FromString
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encode_locale_ex(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:609,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Modules/_testinternalcapi.c:612,1
    - Dst: _Py_DecodeLocaleEx
      Src: /src/cpython/Modules/_testinternalcapi.c:617,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testinternalcapi.c:623,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testinternalcapi.c:624,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:627,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:634,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:637,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 641
    functionName: decode_locale_ex
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _Py_GetErrorHandler
    - PyArg_ParseTuple
    - PyErr_SetString
    - _Py_DecodeLocaleEx
    - PyUnicode_FromWideChar
    - PyErr_Format
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_locale_ex(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:646,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Modules/_testinternalcapi.c:647,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:647,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 650
    functionName: set_eval_frame_default
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_SetEvalFrameFunc
    - Py_CLEAR
    - get_module_state
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_eval_frame_default(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Modules/_testinternalcapi.c:655,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Modules/_testinternalcapi.c:656,1
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_testinternalcapi.c:657,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:658,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:660,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testinternalcapi.c:661,1
    - Dst: _PyEval_EvalFrameDefault
      Src: /src/cpython/Modules/_testinternalcapi.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tstate
    - f
    - exc
    argTypes:
    - PyThreadState*
    - struct _PyInterpreterFrame*
    - int
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 667
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 667
    functionName: record_eval
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_DECREF
    - PyList_Append
    - PyStackRef_FunctionCheck
    - _PyFrame_GetFunction
    - _get_current_module
    - _PyEval_EvalFrameDefault
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_eval(PyThreadState *tstate, struct _PyInterpreterFrame *f, int exc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:673,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:674,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:675,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testinternalcapi.c:678,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:678,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Modules/_testinternalcapi.c:679,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 681
    functionName: set_eval_frame_record
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyList_Check
    - Py_NewRef
    - Py_XSETREF
    - _PyInterpreterState_SetEvalFrameFunc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_eval_frame_record(PyObject *self, PyObject *list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_CleanDoc
      Src: /src/cpython/Modules/_testinternalcapi.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - doc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 697
    functionName: _testinternalcapi_compiler_cleandoc_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyCompile_CleanDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_compiler_cleandoc_impl(PyObject *module, PyObject *doc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_New
      Src: /src/cpython/Modules/_testinternalcapi.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 711
    functionName: _testinternalcapi_new_instruction_sequence_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_new_instruction_sequence_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_CodeGen
      Src: /src/cpython/Modules/_testinternalcapi.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - ast
    - filename
    - optimize
    - compile_mode
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 733
    functionName: _testinternalcapi_compiler_codegen_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyCompile_CodeGen
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testinternalcapi_compiler_codegen_impl(PyObject *module,
      PyObject *ast,\n                                        PyObject *filename,
      int optimize,\n                                        int compile_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_OptimizeCfg
      Src: /src/cpython/Modules/_testinternalcapi.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - instructions
    - consts
    - nlocals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 753
    functionName: _testinternalcapi_optimize_cfg_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyCompile_OptimizeCfg
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testinternalcapi_optimize_cfg_impl(PyObject *module,
      PyObject *instructions,\n                                    PyObject *consts,
      int nlocals)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:757,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testinternalcapi.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dict
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: get_nonnegative_int_from_dict
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemString
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: int get_nonnegative_int_from_dict(PyObject *dict, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:783,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:783,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:786,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:787,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:789,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:789,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:790,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:790,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:792,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:793,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:794,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:795,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:796,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:797,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:799,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:799,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:800,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:800,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:801,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:801,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:802,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:802,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:803,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:803,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:804,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:804,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:806,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:807,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:808,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:809,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:811,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:812,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:813,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:814,1
    - Dst: _PyCompile_Assemble
      Src: /src/cpython/Modules/_testinternalcapi.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 4
    argNames:
    - module
    - filename
    - instructions
    - metadata
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(metadata))
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_names))
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_cellvars))
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_posonlyargcount >= 0)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_firstlineno >= 0)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyUnicode_Check(umd.u_name))
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_freevars))
      pos:
        line_end: 802
        line_start: 802
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyUnicode_Check(umd.u_qualname))
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_fasthidden))
      pos:
        line_end: 803
        line_start: 803
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_argcount >= 0)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_kwonlyargcount >= 0)
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_consts))
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_varnames))
      pos:
        line_end: 800
        line_start: 800
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 817
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 817
    functionName: _testinternalcapi_assemble_code_object_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemString
    - _PyCompile_Assemble
    - PyUnicode_Check
    - PyDict_Check
    - assert
    - get_nonnegative_int_from_dict
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testinternalcapi_assemble_code_object_impl(PyObject *module,\n
      \                                           PyObject *filename,\n                                            PyObject
      *instructions,\n                                            PyObject *metadata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:825,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:831,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Modules/_testinternalcapi.c:832,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Modules/_testinternalcapi.c:835,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:838,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:842,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:844,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testinternalcapi.c:850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:852,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:856,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:858,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:865,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 870
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 870
    functionName: get_interp_settings
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - _PyThreadState_GET
    - PyDict_SetItemString
    - PyDict_New
    - PyLong_FromUnsignedLong
    - PyErr_Format
    - _PyInterpreterState_Main
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_interp_settings(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:877,1
    - Dst: _PyImport_ClearExtension
      Src: /src/cpython/Modules/_testinternalcapi.c:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 884
    functionName: clear_extension
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyImport_ClearExtension
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_extension(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:894,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:896,1
    - Dst: PyUnstable_WritePerfMapEntry
      Src: /src/cpython/Modules/_testinternalcapi.c:901,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testinternalcapi.c:903,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 907
    functionName: write_perf_map_entry
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_AsVoidPtr
    - PyErr_SetFromErrno
    - PyLong_FromLong
    - PyUnstable_WritePerfMapEntry
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      write_perf_map_entry(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_PerfMapState_Fini
      Src: /src/cpython/Modules/_testinternalcapi.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 914
    functionName: perf_map_state_teardown
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnstable_PerfMapState_Fini
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      perf_map_state_teardown(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:919,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:920,1
    - Dst: PyUnstable_InterpreterFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 925
    functionName: iframe_getcode
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnstable_InterpreterFrame_GetCode
    - PyErr_SetString
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iframe_getcode(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:930,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:931,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:935,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Modules/_testinternalcapi.c:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 936
    functionName: iframe_getline
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnstable_InterpreterFrame_GetLine
    - PyErr_SetString
    - PyFrame_Check
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iframe_getline(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:941,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:942,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:946,1
    - Dst: PyUnstable_InterpreterFrame_GetLasti
      Src: /src/cpython/Modules/_testinternalcapi.c:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 947
    functionName: iframe_getlasti
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnstable_InterpreterFrame_GetLasti
    - PyErr_SetString
    - PyFrame_Check
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iframe_getlasti(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:952,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:953,1
    - Dst: _PyCode_ReturnsOnlyNone
      Src: /src/cpython/Modules/_testinternalcapi.c:957,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 959
    functionName: code_returns_only_none
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _PyCode_ReturnsOnlyNone
    - PyCode_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_returns_only_none(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:964,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:965,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 970
    functionName: get_co_framesize
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyErr_SetString
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_co_framesize(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:975,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:976,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:981,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:986,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Modules/_testinternalcapi.c:987,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:990,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testinternalcapi.c:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:994,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 1001
    functionName: get_co_localskinds
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - Py_DECREF
    - PyDict_SetItem
    - PyErr_SetString
    - _PyLocals_GetKind
    - PyTuple_GET_ITEM
    - PyDict_New
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_co_localskinds(PyObject *self, PyObject *arg)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1006,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1014,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1021,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi.c:1023,1
    - Dst: _PyFunction_GET_BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi.c:1026,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi.c:1028,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1030,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1031,1
    - Dst: _PyCode_GetVarCounts
      Src: /src/cpython/Modules/_testinternalcapi.c:1038,1
    - Dst: _PyCode_SetUnboundVarCounts
      Src: /src/cpython/Modules/_testinternalcapi.c:1039,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1065,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1069,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1072,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1076,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1079,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1082,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1086,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1089,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1090,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1091,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1092,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1093,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1094,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1097,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1100,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1104,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1107,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1108,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1109,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1112,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1116,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1119,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1120,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1121,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1124,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1127,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1131,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1134,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1135,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1136,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1139,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1143,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1146,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1147,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1148,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1164,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1165,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1166,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1167,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1168,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 118
    argCount: 3
    argNames:
    - self
    - _args
    - _kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1170
    functionName: get_code_var_counts
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyFunction_GET_BUILTINS
    - PyFunction_Check
    - PyCode_Check
    - _PyCode_SetUnboundVarCounts
    - Py_DECREF
    - PyFunction_GET_CODE
    - PyErr_SetString
    - _PyCode_GetVarCounts
    - PyArg_ParseTupleAndKeywords
    - _PyThreadState_GET
    - PyFunction_GET_GLOBALS
    - SET_COUNT
    - PyDict_New
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_code_var_counts(PyObject *self, PyObject *_args, PyObject *_kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DICT
    - ','
    - STRUCT
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1058
    functionName: SET_COUNT
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_COUNT(DICT, STRUCT, NAME)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1175,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1182,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1189,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi.c:1191,1
    - Dst: _PyFunction_GET_BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi.c:1194,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi.c:1196,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1199,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Modules/_testinternalcapi.c:1205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1211
    functionName: verify_stateless_code
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyFunction_GET_BUILTINS
    - PyFunction_Check
    - PyCode_Check
    - PyFunction_GET_CODE
    - PyErr_SetString
    - _PyCode_VerifyStateless
    - PyArg_ParseTupleAndKeywords
    - _PyThreadState_GET
    - PyFunction_GET_GLOBALS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      verify_stateless_code(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:1220,1
    - Dst: _Py_Executor_DependsOn
      Src: /src/cpython/Modules/_testinternalcapi.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1225
    functionName: add_executor_dependency
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_Executor_DependsOn
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_executor_dependency(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:1230,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Modules/_testinternalcapi.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1233
    functionName: invalidate_executors
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - _Py_Executors_InvalidateDependency
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      invalidate_executors(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testinternalcapi.c:1241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1242,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1245
    functionName: _pending_callback
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _pending_callback(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1259,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1265,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1269,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_testinternalcapi.c:1274,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/_testinternalcapi.c:1282,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1283,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/_testinternalcapi.c:1288,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/_testinternalcapi.c:1295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1299,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1303,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: "(r == _Py_ADD_PENDING_SUCCESS\n                       || r == _Py_ADD_PENDING_FULL)"
      pos:
        line_end: 1283
        line_start: 1282
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1304
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1304
    functionName: pending_threadfunc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyEval_AddPendingCall
    - Py_DECREF
    - _PyInterpreterState_GET
    - PyArg_ParseTupleAndKeywords
    - PyEval_SaveThread
    - PyEval_RestoreThread
    - PyLong_FromUnsignedLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pending_threadfunc(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1315,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:1316,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_testinternalcapi.c:1317,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (pending_identify_result.interpid == -1)
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1320
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1320
    functionName: _pending_identify_callback
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_GetID
    - PyThreadState_Get
    - assert
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _pending_identify_callback(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:1326,1
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1329,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1332,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1339,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1343,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/_testinternalcapi.c:1349,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1358,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1359,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1360,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1368
    functionName: pending_identify
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyEval_AddPendingCall
    - PyThread_allocate_lock
    - PyErr_Occurred
    - PyArg_ParseTuple
    - PyErr_SetString
    - _PyInterpreterState_LookUpIDObject
    - PyThread_release_lock
    - PyThread_acquire_lock
    - PyThread_free_lock
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pending_identify(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:1376,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:1379,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1380,1
    - Dst: _PyTraceMalloc_GetTraceback
      Src: /src/cpython/Modules/_testinternalcapi.c:1384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1385
    functionName: tracemalloc_get_traceback
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTraceMalloc_GetTraceback
    - PyLong_AsVoidPtr
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_get_traceback(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:1393,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1394,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_testinternalcapi.c:1397,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1398,1
    - Dst: _PyThreadState_GetDict
      Src: /src/cpython/Modules/_testinternalcapi.c:1401,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 1397
        line_start: 1397
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (tstate != NULL)
      pos:
        line_end: 1393
        line_start: 1393
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (dict2 == dict)
      pos:
        line_end: 1401
        line_start: 1401
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1406
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1406
    functionName: test_tstate_capi
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GetDict
    - PyThreadState_Get
    - assert
    - _PyThreadState_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_tstate_capi(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/cpython/Modules/_testinternalcapi.c:1416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1417
    functionName: unicode_transformdecimalandspacetoascii
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_transformdecimalandspacetoascii(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Modules/_testinternalcapi.c:1422,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_name
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1428
    functionName: test_pyobject_is_freed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyObject_IsFreed
    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/cpython/Modules/_testinternalcapi.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1430
    functionDepth: 2
    functionLinenumber: 1430
    functionLinenumberEnd: 1435
    functionName: check_pyobject_null_is_freed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.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/cpython/Modules/_testinternalcapi.c:1442,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1447,1
    - Dst: test_pyobject_is_freed
      Src: /src/cpython/Modules/_testinternalcapi.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1438
    functionDepth: 2
    functionLinenumber: 1438
    functionLinenumberEnd: 1450
    functionName: check_pyobject_uninitialized_is_freed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - test_pyobject_is_freed
    - Py_SET_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncheck_pyobject_uninitialized_is_freed(PyObject *self,\n
      \                                     PyObject *Py_UNUSED(args))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_testinternalcapi.c:1458,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1463,1
    - Dst: test_pyobject_is_freed
      Src: /src/cpython/Modules/_testinternalcapi.c:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1453
    functionDepth: 2
    functionLinenumber: 1453
    functionLinenumberEnd: 1467
    functionName: check_pyobject_forbidden_bytes_is_freed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - test_pyobject_is_freed
    - Py_SET_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncheck_pyobject_forbidden_bytes_is_freed(PyObject *self,\n
      \                                       PyObject *Py_UNUSED(args))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testinternalcapi.c:1477,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi.c:1481,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1483,1
    - Dst: test_pyobject_is_freed
      Src: /src/cpython/Modules/_testinternalcapi.c:1485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1470
    functionDepth: 2
    functionLinenumber: 1470
    functionLinenumberEnd: 1487
    functionName: check_pyobject_freed_is_freed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - test_pyobject_is_freed
    - PyObject_CallNoArgs
    - Py_TYPE
    - Py_SET_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      check_pyobject_freed_is_freed(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_GetCurrentAllocatorName
      Src: /src/cpython/Modules/_testinternalcapi.c:1493,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1495,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1499
    functionName: test_pymem_getallocatorsname
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromString
    - _PyMem_GetCurrentAllocatorName
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pymem_getallocatorsname(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi.c:1504,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi.c:1505,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi.c:1508,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1513,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1515,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1516,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_testinternalcapi.c:1520,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_testinternalcapi.c:1524,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1527,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:1529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 1512
        line_start: 1512
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (size >= 0)
      pos:
        line_end: 1514
        line_start: 1514
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1532
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1532
    functionName: get_object_dict_values
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - _PyObject_InlineValues
    - _Py_DECLARE_STR
    - PyTuple_SET_ITEM
    - _Py_STR
    - Py_TYPE
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_object_dict_values(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContext_NewHamtForTests
      Src: /src/cpython/Modules/_testinternalcapi.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1539
    functionName: new_hamt
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyContext_NewHamtForTests
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_hamt(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:1548,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Modules/_testinternalcapi.c:1553,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1554,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Modules/_testinternalcapi.c:1555,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:1559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1560
    functionName: dict_getitem_knownhash
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_Occurred
    - _PyErr_SetKeyError
    - Py_XNewRef
    - _PyDict_GetItem_KnownHash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_getitem_knownhash(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testinternalcapi.c:1571,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:1573,1
    - Dst: _PyInterpreterConfig_InitFromDict
      Src: /src/cpython/Modules/_testinternalcapi.c:1576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - config
    - obj
    argTypes:
    - PyInterpreterConfig*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1563
    functionDepth: 1
    functionLinenumber: 1563
    functionLinenumberEnd: 1582
    functionName: _init_interp_config_from_object
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyInterpreterConfig_InitFromDict
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _init_interp_config_from_object(PyInterpreterConfig *config, PyObject
      *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_NewInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1588,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1593,1
    - Dst: PyInterpreterState_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1594,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1600,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1602,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1603,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1604,1
    - Dst: Py_NewInterpreterFromConfig
      Src: /src/cpython/Modules/_testinternalcapi.c:1607,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1608,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_testinternalcapi.c:1609,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1610,1
    - Dst: _PyErr_SetFromPyStatus
      Src: /src/cpython/Modules/_testinternalcapi.c:1611,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi.c:1612,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1616,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1618,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:1619,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1620,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_testinternalcapi.c:1621,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:1625,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1631,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_testinternalcapi.c:1634,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - config
    - whence
    argTypes:
    - PyInterpreterConfig*
    - long
    assertStmts:
    - condition: (config == NULL)
      pos:
        line_end: 1601
        line_start: 1601
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (config == NULL)
      pos:
        line_end: 1592
        line_start: 1592
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (tstate == NULL)
      pos:
        line_end: 1609
        line_start: 1609
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1638
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1638
    functionName: _new_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - PyInterpreterState_New
    - Py_NewInterpreterFromConfig
    - _PyXI_NewInterpreter
    - PyErr_GetRaisedException
    - PyThreadState_GetInterpreter
    - PyThreadState_Delete
    - PyErr_SetString
    - PyThreadState_Clear
    - _PyErr_SetFromPyStatus
    - Py_NewInterpreter
    - PyThreadState_Swap
    - PyErr_Format
    - PyStatus_Exception
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _new_interpreter(PyInterpreterConfig *config, long whence)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1665,1
    - Dst: _init_interp_config_from_object
      Src: /src/cpython/Modules/_testinternalcapi.c:1671,1
    - Dst: _new_interpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1677,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1683,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1685,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1642
    functionDepth: 2
    functionLinenumber: 1642
    functionLinenumberEnd: 1690
    functionName: create_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetIDObject
    - _PyXI_EndInterpreter
    - _init_interp_config_from_object
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - _new_interpreter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_interpreter(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1700,1
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1707,1
    - Dst: PyThreadState_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1719,1
    - Dst: PyThreadState_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1721,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1722,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:1723,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_testinternalcapi.c:1724,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1725,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1726,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1734
    functionName: destroy_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_EndInterpreter
    - _PyXI_EndInterpreter
    - PyThreadState_Delete
    - PyThreadState_Clear
    - PyArg_ParseTupleAndKeywords
    - _PyInterpreterState_LookUpIDObject
    - PyThreadState_New
    - PyThreadState_Swap
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      destroy_interpreter(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1745,1
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1752,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Modules/_testinternalcapi.c:1759,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1761,1
    - Dst: _PyInterpreterState_SetRunningMain
      Src: /src/cpython/Modules/_testinternalcapi.c:1764,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testinternalcapi.c:1771,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1772,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Modules/_testinternalcapi.c:1773,1
    - Dst: _PyInterpreterState_SetNotRunningMain
      Src: /src/cpython/Modules/_testinternalcapi.c:1777,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1780,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:1783,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1784,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_testinternalcapi.c:1785,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1787
    functionName: exec_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - _PyThreadState_NewBound
    - PyThreadState_Delete
    - PyThreadState_Clear
    - PyArg_ParseTupleAndKeywords
    - _PyInterpreterState_LookUpIDObject
    - PyRun_SimpleStringFlags
    - _PyInterpreterState_SetNotRunningMain
    - PyThreadState_Swap
    - PyErr_PrintEx
    - _PyInterpreterState_SetRunningMain
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      exec_interpreter(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1803,1
    - Dst: _init_interp_config_from_object
      Src: /src/cpython/Modules/_testinternalcapi.c:1811,1
    - Dst: _PyXI_NewInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1825,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testinternalcapi.c:1831,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1834,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1838,1
    - Dst: Py_NewInterpreterFromConfig
      Src: /src/cpython/Modules/_testinternalcapi.c:1841,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_testinternalcapi.c:1842,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1846,1
    - Dst: _PyErr_SetFromPyStatus
      Src: /src/cpython/Modules/_testinternalcapi.c:1847,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi.c:1848,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1849,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_testinternalcapi.c:1851,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testinternalcapi.c:1856,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:1859,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:1860,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1863,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1796
    functionDepth: 2
    functionLinenumber: 1796
    functionLinenumberEnd: 1864
    functionName: run_in_subinterp_with_config
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_EndInterpreter
    - _PyErr_ChainExceptions1
    - Py_NewInterpreterFromConfig
    - _PyXI_EndInterpreter
    - _PyXI_NewInterpreter
    - PyErr_GetRaisedException
    - _init_interp_config_from_object
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyRun_SimpleStringFlags
    - _PyErr_SetFromPyStatus
    - PyLong_FromLong
    - PyThreadState_Swap
    - PyStatus_Exception
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      run_in_subinterp_with_config(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_ObjectToID
      Src: /src/cpython/Modules/_testinternalcapi.c:1870,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1875
    functionName: normalize_interp_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - _PyInterpreterState_ObjectToID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      normalize_interp_id(PyObject *self, PyObject *idobj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1882
    functionName: next_interpreter_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      next_interpreter_id(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1888,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (interpid > _PyRuntime.interpreters.next_id)
      pos:
        line_end: 1887
        line_start: 1887
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1890
      start: 1884
    functionDepth: 1
    functionLinenumber: 1884
    functionLinenumberEnd: 1890
    functionName: unused_interpreter_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unused_interpreter_id(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1895,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi.c:1897,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:1898,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1901,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1905
      start: 1892
    functionDepth: 1
    functionLinenumber: 1892
    functionLinenumberEnd: 1905
    functionName: interpreter_exists
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyInterpreterState_LookUpIDObject
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpreter_exists(PyObject *self, PyObject *idobj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1910,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1915
    functionName: get_interpreter_refcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - _PyInterpreterState_LookUpIDObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_interpreter_refcount(PyObject *self, PyObject *idobj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1920,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1922,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1922,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Modules/_testinternalcapi.c:1925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1921
        line_start: 1921
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1927
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1927
    functionName: link_interpreter_refcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyInterpreterState_RequireIDRef
    - assert
    - _PyInterpreterState_LookUpIDObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      link_interpreter_refcount(PyObject *self, PyObject *idobj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1932,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1934,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1934,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Modules/_testinternalcapi.c:1937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1933
        line_start: 1933
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1939
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1939
    functionName: unlink_interpreter_refcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyInterpreterState_RequireIDRef
    - assert
    - _PyInterpreterState_LookUpIDObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unlink_interpreter_refcount(PyObject *self, PyObject *idobj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1944,1
    - Dst: _PyInterpreterState_RequiresIDRef
      Src: /src/cpython/Modules/_testinternalcapi.c:1948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1952
    functionName: interpreter_refcount_linked
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_RequiresIDRef
    - _PyInterpreterState_LookUpIDObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpreter_refcount_linked(PyObject *self, PyObject *idobj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testinternalcapi.c:1958,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1960,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_testinternalcapi.c:1960,1
    - Dst: _PyXIData_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:1961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyXIData_Release(xidata) == 0)
      pos:
        line_end: 1959
        line_start: 1959
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1963
      start: 1955
    functionDepth: 1
    functionLinenumber: 1955
    functionLinenumberEnd: 1963
    functionName: _xid_capsule_destructor
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyXIData_Release
    - PyCapsule_GetPointer
    - _PyXIData_Free
    linkageType: ''
    returnType: void
    signature: void _xid_capsule_destructor(PyObject *capsule)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1971,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1981,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:1982,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testinternalcapi.c:1986,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testinternalcapi.c:1987,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1992,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1993,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:1997,1
    - Dst: _PyObject_GetXIDataNoFallback
      Src: /src/cpython/Modules/_testinternalcapi.c:1998,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2002,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2004,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2009,1
    - Dst: _PyPickle_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2010,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2014,1
    - Dst: _PyMarshal_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2015,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2019,1
    - Dst: _PyCode_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2020,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2024,1
    - Dst: _PyFunction_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2025,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2029,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2030,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2034,1
    - Dst: _PyCode_GetPureScriptXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2035,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2040,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_testinternalcapi.c:2043,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2045,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_testinternalcapi.c:2045,1
    - Dst: _PyXIData_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:2051,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 81
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyXIData_Release(xidata) == 0)
      pos:
        line_end: 2044
        line_start: 2044
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2053
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 2053
    functionName: get_crossinterp_data
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - strlen
    - _PyThreadState_GET
    - _PyObject_GetXIDataNoFallback
    - _PyObject_GetXIData
    - _PyFunction_GetXIData
    - strcmp
    - PyCapsule_New
    - PyErr_Format
    - PyUnicode_Check
    - _PyXIData_Release
    - PyArg_ParseTupleAndKeywords
    - _PyCode_GetScriptXIData
    - _PyXIData_Free
    - _PyMarshal_GetXIData
    - _PyCode_GetPureScriptXIData
    - _PyCode_GetXIData
    - PyUnicode_AsUTF8
    - _PyPickle_GetXIData
    - _PyXIData_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_crossinterp_data(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:2059,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testinternalcapi.c:2063,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_testinternalcapi.c:2067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2068
    functionName: restore_crossinterp_data
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyXIData_NewObject
    - PyCapsule_GetPointer
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      restore_crossinterp_data(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2071
    functionDepth: 1
    functionLinenumber: 2071
    functionLinenumberEnd: 2076
    functionName: raiseTestError
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 4
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raiseTestError(const char* test_name, const char* msg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testinternalcapi.c:2108,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2113,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Modules/_testinternalcapi.c:2116,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Modules/_testinternalcapi.c:2117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:2119,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testinternalcapi.c:2121,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testinternalcapi.c:2124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2083
    functionDepth: 1
    functionLinenumber: 2083
    functionLinenumberEnd: 2128
    functionName: _testinternalcapi_test_long_numbits_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_GetSign
    - Py_DECREF
    - _PyLong_NumBits
    - raiseTestError
    - PyLong_FromLong
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_test_long_numbits_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:2134,1
    - Dst: PyUnstable_PerfTrampoline_CompileCode
      Src: /src/cpython/Modules/_testinternalcapi.c:2137,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2139,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2143
    functionName: compile_perf_trampoline_entry
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetString
    - PyUnstable_PerfTrampoline_CompileCode
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compile_perf_trampoline_entry(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:2149,1
    - Dst: PyUnstable_PerfTrampoline_SetPersistAfterFork
      Src: /src/cpython/Modules/_testinternalcapi.c:2152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2154,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2145
    functionDepth: 1
    functionLinenumber: 2145
    functionLinenumberEnd: 2158
    functionName: perf_trampoline_set_persist_after_fork
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnstable_PerfTrampoline_SetPersistAfterFork
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      perf_trampoline_set_persist_after_fork(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:2164,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi.c:2166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2174
    functionName: get_rare_event_counters
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_rare_event_counters(PyObject *self, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(type)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2176
    functionDepth: 0
    functionLinenumber: 2176
    functionLinenumberEnd: 2188
    functionName: reset_rare_event_counters
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reset_rare_event_counters(PyObject *self, PyObject *Py_UNUSED(type))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ThreadId
      Src: /src/cpython/Modules/_testinternalcapi.c:2195,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testinternalcapi.c:2196,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2192
    functionDepth: 1
    functionLinenumber: 2192
    functionLinenumberEnd: 2198
    functionName: get_py_thread_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - _Py_ThreadId
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_py_thread_id(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:2203,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:2206,1
    - Dst: PyFunction_GetCode
      Src: /src/cpython/Modules/_testinternalcapi.c:2207,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2200
    functionDepth: 1
    functionLinenumber: 2200
    functionLinenumberEnd: 2211
    functionName: get_code
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetCode
    - PyCode_Check
    - PyFunction_Check
    - PyErr_Format
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      get_code(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_code
      Src: /src/cpython/Modules/_testinternalcapi.c:2216,1
    - Dst: _PyCode_GetTLBCFast
      Src: /src/cpython/Modules/_testinternalcapi.c:2220,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:2220,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testinternalcapi.c:2224,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Modules/_testinternalcapi.c:2224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2213
    functionDepth: 1
    functionLinenumber: 2213
    functionLinenumberEnd: 2225
    functionName: get_tlbc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GET
    - PyBytes_FromStringAndSize
    - _PyCode_NBYTES
    - _PyCode_GetTLBCFast
    - get_code
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tlbc(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_code
      Src: /src/cpython/Modules/_testinternalcapi.c:2230,1
    - Dst: _PyCode_GetTLBCFast
      Src: /src/cpython/Modules/_testinternalcapi.c:2234,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:2234,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:2238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2239
    functionName: get_tlbc_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyCode_GetTLBCFast
    - PyLong_FromVoidPtr
    - get_code
    - PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tlbc_id(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi.c:2245,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi.c:2246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2242
    functionDepth: 1
    functionLinenumber: 2242
    functionLinenumberEnd: 2250
    functionName: has_inline_values
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyObject_InlineValues
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      has_inline_values(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:2255,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Modules/_testinternalcapi.c:2255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2252
    functionDepth: 1
    functionLinenumber: 2252
    functionLinenumberEnd: 2259
    functionName: has_split_table
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - _PyDict_HasSplitTable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      has_split_table(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:2268,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2271,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi.c:2271,1
    - Dst: _PyType_SetVersion
      Src: /src/cpython/Modules/_testinternalcapi.c:2272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyType_HasFeature(type, Py_TPFLAGS_IMMUTABLETYPE))
      pos:
        line_end: 2270
        line_start: 2270
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2274
      start: 2263
    functionDepth: 1
    functionLinenumber: 2263
    functionLinenumberEnd: 2274
    functionName: type_assign_specific_version_unsafe
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyType_SetVersion
    - PyType_HasFeature
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_assign_specific_version_unsafe(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2289,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2289,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:2289,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - spam
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_Py_IsMainInterpreter(PyInterpreterState_Get()))
      pos:
        line_end: 2288
        line_start: 2288
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2291
      start: 2284
    functionDepth: 1
    functionLinenumber: 2284
    functionLinenumberEnd: 2291
    functionName: gh_119213_getargs_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyInterpreterState_Get
    - _Py_IsMainInterpreter
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_119213_getargs_impl(PyObject *module, PyObject *spam)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:2301,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2297
    functionDepth: 1
    functionLinenumber: 2297
    functionLinenumberEnd: 2304
    functionName: get_next_dict_keys_version_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_next_dict_keys_version_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticType_GetBuiltins
      Src: /src/cpython/Modules/_testinternalcapi.c:2309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2310
    functionName: get_static_builtin_types
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GetBuiltins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_static_builtin_types(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetSlotWrapperNames
      Src: /src/cpython/Modules/_testinternalcapi.c:2316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2313
    functionDepth: 1
    functionLinenumber: 2313
    functionLinenumberEnd: 2317
    functionName: identify_type_slot_wrappers
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyType_GetSlotWrapperNames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      identify_type_slot_wrappers(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2323,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Modules/_testinternalcapi.c:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2324
    functionName: has_deferred_refcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _PyObject_HasDeferredRefcount
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      has_deferred_refcount(PyObject *self, PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testinternalcapi.c:2329,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2326
    functionDepth: 1
    functionLinenumber: 2326
    functionLinenumberEnd: 2330
    functionName: get_tracked_heap_size
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - PyInterpreterState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tracked_heap_size(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsStaticImmortal
      Src: /src/cpython/Modules/_testinternalcapi.c:2335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2332
    functionDepth: 1
    functionLinenumber: 2332
    functionLinenumberEnd: 2339
    functionName: is_static_immortal
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_IsStaticImmortal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_static_immortal(PyObject *self, PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_XDecRefDelayed
      Src: /src/cpython/Modules/_testinternalcapi.c:2344,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2346
    functionName: incref_decref_delayed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyObject_XDecRefDelayed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      incref_decref_delayed(PyObject *self, PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TextEncoder::TextEncoder
      Src: /src/cpython/Modules/_testinternalcapi.c:2353,1
    - Dst: encode
      Src: /src/cpython/Modules/_testinternalcapi.c:2354,1
    - Dst: setTimeout
      Src: /src/cpython/Modules/_testinternalcapi.c:2360,1
    - Dst: Promise::Promise
      Src: /src/cpython/Modules/_testinternalcapi.c:2360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - encode
    - encode
    - sleep
    argTypes:
    - encoder
    - encoder
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2351
    functionDepth: 1
    functionLinenumber: 2351
    functionLinenumberEnd: 2361
    functionName: EM_JS
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - encode
    - Promise::Promise
    - TextEncoder::TextEncoder
    - setTimeout
    linkageType: ''
    returnType: void
    signature: "void EM_JS(int, emscripten_set_up_async_input_device_js, (void), {\n
      \   let idx = 0;\n    const encoder = new TextEncoder();\n    const bufs = [\n
      \       encoder.encode(\"ab\\n\"),\n        encoder.encode(\"fi\\n\"),\n        encoder.encode(\"xy\\n\"),\n
      \   ];\n    function sleep(t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emscripten_set_up_async_input_device_js
      Src: /src/cpython/Modules/_testinternalcapi.c:2371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2369
    functionDepth: 0
    functionLinenumber: 2369
    functionLinenumberEnd: 2376
    functionName: emscripten_set_up_async_input_device
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - emscripten_set_up_async_input_device_js
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      emscripten_set_up_async_input_device(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyTestInternalCapi_Init_Lock
      Src: /src/cpython/Modules/_testinternalcapi.c:2493,1
    - Dst: _PyTestInternalCapi_Init_PyTime
      Src: /src/cpython/Modules/_testinternalcapi.c:2496,1
    - Dst: _PyTestInternalCapi_Init_Set
      Src: /src/cpython/Modules/_testinternalcapi.c:2499,1
    - Dst: _PyTestInternalCapi_Init_Complex
      Src: /src/cpython/Modules/_testinternalcapi.c:2502,1
    - Dst: _PyTestInternalCapi_Init_CriticalSection
      Src: /src/cpython/Modules/_testinternalcapi.c:2505,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2514,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:2515,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2519,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:2520,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2524,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:2525,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2529,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:2530,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2534,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2535,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2539,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2540,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2544,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2545,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:2549,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2550,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2490
    functionDepth: 1
    functionLinenumber: 2490
    functionLinenumberEnd: 2555
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyTestInternalCapi_Init_CriticalSection
    - PyLong_FromSsize_t
    - _PyTestInternalCapi_Init_Set
    - _PyTestInternalCapi_Init_Lock
    - _PyTestInternalCapi_Init_PyTime
    - PyLong_FromLong
    - _PyTestInternalCapi_Init_Complex
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:2567,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2568,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:2569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2567
        line_start: 2567
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2571
      start: 2564
    functionDepth: 0
    functionLinenumber: 2564
    functionLinenumberEnd: 2571
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - traverse_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:2576,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2577,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:2578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2576
        line_start: 2576
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2580
      start: 2573
    functionDepth: 0
    functionLinenumber: 2573
    functionLinenumberEnd: 2580
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 14
    functionsReached:
    - clear_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:2585,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2586,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:2587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2585
        line_start: 2585
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2588
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2588
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - clear_module_state
    - get_module_state
    - assert
    linkageType: ''
    returnType: void
    signature: void module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testinternalcapi.c:2606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2603
    functionDepth: 1
    functionLinenumber: 2603
    functionLinenumberEnd: 2607
    functionName: PyInit__testinternalcapi
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testinternalcapi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/timemodule.c:93,1
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Modules/timemodule.c
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: get_time_state
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: time_module_state
    signature: 'time_module_state *

      get_time_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/timemodule.c:102,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/timemodule.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: _PyFloat_FromPyTime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyFloat_FromPyTime(PyTime_t t)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Time
      Src: /src/cpython/Modules/timemodule.c:111,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: time_time
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 2
    functionsReached:
    - PyTime_Time
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_time(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Time
      Src: /src/cpython/Modules/timemodule.c:128,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/timemodule.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: time_time_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsLong
    - PyTime_Time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_time_ns(PyObject *self, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTimeFraction_Resolution
      Src: /src/cpython/Modules/timemodule.c:156,1
    - Dst: clock
      Src: /src/cpython/Modules/timemodule.c:161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:163,1
    - Dst: _PyTimeFraction_Mul
      Src: /src/cpython/Modules/timemodule.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - state
    - tp
    - info
    argTypes:
    - time_module_state*
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: py_clock
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - clock
    - _PyTimeFraction_Mul
    - PyErr_SetString
    - _PyTimeFraction_Resolution
    linkageType: ''
    returnType: int
    signature: int py_clock(time_module_state *state, PyTime_t *tp, _Py_clock_info_t
      *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/timemodule.c:189,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/timemodule.c:191,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/timemodule.c:193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:195,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/timemodule.c:196,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/timemodule.c:198,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/timemodule.c:198,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/timemodule.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - clockid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 206
    functionName: time_clockid_converter
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongLong
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_AsLong
    - Py_BUILD_ASSERT
    - _PyType_Name
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int time_clockid_converter(PyObject *obj, clockid_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/cpython/Modules/timemodule.c:232,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:234,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/timemodule.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - clk_id
    argTypes:
    - PyObject*
    - clockid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: time_clock_gettime_impl
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - PyFloat_FromDouble
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_gettime_impl(PyObject *module, clockid_t clk_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/cpython/Modules/timemodule.c:254,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:256,1
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/timemodule.c:261,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/timemodule.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - clk_id
    argTypes:
    - PyObject*
    - clockid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: time_clock_gettime_ns_impl
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - _PyTime_AsLong
    - _PyTime_FromTimespec
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_gettime_ns_impl(PyObject *module, clockid_t clk_id)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:278,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/timemodule.c:281,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/timemodule.c:284,1
    - Dst: clock_settime
      Src: /src/cpython/Modules/timemodule.c:287,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 293
    functionName: time_clock_settime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - clock_settime
    - PyErr_SetFromErrno
    - _PyTime_AsTimespec
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_settime(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:309,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/timemodule.c:313,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/timemodule.c:316,1
    - Dst: clock_settime
      Src: /src/cpython/Modules/timemodule.c:320,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 326
    functionName: time_clock_settime_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyTime_FromLong
    - clock_settime
    - PyErr_SetFromErrno
    - _PyTime_AsTimespec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_settime_ns(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:342,1
    - Dst: clock_getres
      Src: /src/cpython/Modules/timemodule.c:345,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:347,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/timemodule.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: time_clock_getres
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyErr_SetFromErrno
    - clock_getres
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_getres(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:372,1
    - Dst: pthread_getcpuclockid
      Src: /src/cpython/Modules/timemodule.c:375,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:378,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/timemodule.c:382,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/timemodule.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 385
    functionName: time_pthread_getcpuclockid
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    - pthread_getcpuclockid
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_pthread_getcpuclockid(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/timemodule.c:396,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/timemodule.c:401,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:404,1
    - Dst: pysleep
      Src: /src/cpython/Modules/timemodule.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - timeout_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 412
    functionName: time_sleep
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetString
    - pysleep
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_sleep(PyObject *self, PyObject *timeout_obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/timemodule.c:463,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:480,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:481,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:482,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:483,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:484,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:485,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:486,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:487,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:488,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/timemodule.c:490,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/timemodule.c:490,1
    - Dst: SET
      Src: /src/cpython/Modules/timemodule.c:491,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/timemodule.c:493,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/timemodule.c:493,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/timemodule.c:494,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/timemodule.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - state
    - p
    - zone
    - gmtoff
    argTypes:
    - time_module_state*
    - struct tm*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 501
    functionName: tmtotuple
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromTime_t
    - PyUnicode_DecodeLocale
    - SET_ITEM
    - SET
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntmtotuple(time_module_state *state, 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:
    - (
    - INDEX
    - ','
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: SET_ITEM
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM(INDEX, CALL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - INDEX
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: SET
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(INDEX, VAL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:513,1
    - Dst: time
      Src: /src/cpython/Modules/timemodule.c:516,1
    - Dst: _PyTime_ObjectToTime_t
      Src: /src/cpython/Modules/timemodule.c:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - args
    - format
    - pwhen
    argTypes:
    - PyObject*
    - char*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 524
    functionName: parse_time_t_args
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_ObjectToTime_t
    - time
    - PyArg_ParseTuple
    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/cpython/Modules/timemodule.c:532,1
    - Dst: _PyTime_gmtime
      Src: /src/cpython/Modules/timemodule.c:536,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:539,1
    - Dst: tmtotuple
      Src: /src/cpython/Modules/timemodule.c:541,1
    - Dst: tmtotuple
      Src: /src/cpython/Modules/timemodule.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 545
    functionName: time_gmtime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_gmtime
    - parse_time_t_args
    - tmtotuple
    - get_time_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_gmtime(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 557
    functionName: timegm
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t timegm(struct tm *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_t_args
      Src: /src/cpython/Modules/timemodule.c:576,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:578,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:581,1
    - Dst: tmtotuple
      Src: /src/cpython/Modules/timemodule.c:583,1
    - Dst: strftime
      Src: /src/cpython/Modules/timemodule.c:589,1
    - Dst: timegm
      Src: /src/cpython/Modules/timemodule.c:590,1
    - Dst: tmtotuple
      Src: /src/cpython/Modules/timemodule.c:591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 594
    functionName: time_localtime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - get_time_state
    - parse_time_t_args
    - timegm
    - tmtotuple
    - _PyTime_localtime
    - strftime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_localtime(PyObject *module, PyObject *args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/timemodule.c:616,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/timemodule.c:618,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:619,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:631,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/timemodule.c:640,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/timemodule.c:642,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/timemodule.c:644,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:652,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:655,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:658,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/timemodule.c:663,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/timemodule.c:665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:666,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - state
    - args
    - p
    - format
    argTypes:
    - time_module_state*
    - PyObject*
    - struct tm*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 672
    functionName: gettmarg
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_Check
    - PyLong_AsLong
    - PyErr_SetString
    - PyErr_Occurred
    - memset
    - Py_IS_TYPE
    - PyUnicode_AsUTF8
    - strcmp
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int gettmarg(time_module_state *state, PyObject *args,\n         struct
      tm *p, const char *format)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:714,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:718,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:722,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:726,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:732,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:738,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 742
    functionName: checktm
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int checktm(struct tm* buf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/cpython/Modules/timemodule.c:784,1
    - Dst: strchr
      Src: /src/cpython/Modules/timemodule.c:786,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:793,1
    - Dst: wcschr
      Src: /src/cpython/Modules/timemodule.c:799,1
    - Dst: wcschr
      Src: /src/cpython/Modules/timemodule.c:801,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:808,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/timemodule.c:820,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/timemodule.c:823,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/timemodule.c:826,1
    - Dst: format_time
      Src: /src/cpython/Modules/timemodule.c:833,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:838,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/timemodule.c:852,1
    - Dst: PyUnicode_DecodeLocaleAndSize
      Src: /src/cpython/Modules/timemodule.c:854,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 41
    argCount: 5
    argNames:
    - outbuf
    - bufsize
    - format
    - fmtlen
    - tm
    argTypes:
    - time_char**
    - size_t*
    - time_char*
    - size_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 857
    functionName: time_strftime1
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyErr_SetString
    - format_time
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeLocaleAndSize
    - wcschr
    - PyErr_NoMemory
    - strchr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntime_strftime1(time_char **outbuf, size_t *bufsize,\n
      \              time_char *format, size_t fmtlen,\n               struct tm *tm)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/timemodule.c:869,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:871,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:874,1
    - Dst: time
      Src: /src/cpython/Modules/timemodule.c:876,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:877,1
    - Dst: gettmarg
      Src: /src/cpython/Modules/timemodule.c:880,1
    - Dst: checktm
      Src: /src/cpython/Modules/timemodule.c:882,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:894,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/timemodule.c:908,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/timemodule.c:910,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/timemodule.c:913,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/timemodule.c:915,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/timemodule.c:918,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/timemodule.c:926,1
    - Dst: time_strftime1
      Src: /src/cpython/Modules/timemodule.c:934,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/timemodule.c:939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:943,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/timemodule.c:948,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/timemodule.c:953,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:958,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:959,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/timemodule.c:960,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:962,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:963,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/timemodule.c:964,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 73
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 966
    functionName: time_strftime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_WriteSubstring
    - get_time_state
    - PyErr_SetString
    - PyMem_Free
    - checktm
    - time_strftime1
    - PyUnicode_READ_CHAR
    - Py_DECREF
    - PyUnicodeWriter_WriteStr
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyArg_ParseTuple
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - memset
    - gettmarg
    - _PyTime_localtime
    - PyUnicodeWriter_Discard
    - time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_strftime(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/timemodule.c:984,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/timemodule.c:989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 992
    functionName: time_strptime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_strptime(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/timemodule.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeptr
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1022
    functionName: _asctime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asctime(struct tm *timeptr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/timemodule.c:1030,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1033,1
    - Dst: time
      Src: /src/cpython/Modules/timemodule.c:1035,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1036,1
    - Dst: gettmarg
      Src: /src/cpython/Modules/timemodule.c:1039,1
    - Dst: checktm
      Src: /src/cpython/Modules/timemodule.c:1041,1
    - Dst: _asctime
      Src: /src/cpython/Modules/timemodule.c:1045,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1046
    functionName: time_asctime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - checktm
    - get_time_state
    - PyArg_UnpackTuple
    - gettmarg
    - _asctime
    - _PyTime_localtime
    - time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_asctime(PyObject *module, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_t_args
      Src: /src/cpython/Modules/timemodule.c:1060,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1062,1
    - Dst: _asctime
      Src: /src/cpython/Modules/timemodule.c:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1065
    functionName: time_ctime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - parse_time_t_args
    - _asctime
    - _PyTime_localtime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_ctime(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1081,1
    - Dst: gettmarg
      Src: /src/cpython/Modules/timemodule.c:1082,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1096,1
    - Dst: mktime
      Src: /src/cpython/Modules/timemodule.c:1118,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1127,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/timemodule.c:1142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - module
    - tm_tuple
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1143
    functionName: time_mktime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - get_time_state
    - PyErr_SetString
    - gettmarg
    - mktime
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_mktime(PyObject *module, PyObject *tm_tuple)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/timemodule.c:1162,1
    - Dst: tzset
      Src: /src/cpython/Modules/timemodule.c:1168,1
    - Dst: init_timezone
      Src: /src/cpython/Modules/timemodule.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:1175,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:1176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1180
    functionName: time_tzset
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - init_timezone
    - PyErr_Occurred
    - PyImport_ImportModule
    - tzset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_tzset(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:1201,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1205
    functionName: time_monotonic
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_Monotonic
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_monotonic(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:1216,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/timemodule.c:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1220
    functionName: time_monotonic_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsLong
    - PyTime_Monotonic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_monotonic_ns(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_PerfCounter
      Src: /src/cpython/Modules/timemodule.c:1232,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1236
    functionName: time_perf_counter
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_PerfCounter
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_perf_counter(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_PerfCounter
      Src: /src/cpython/Modules/timemodule.c:1248,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/timemodule.c:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1252
    functionName: time_perf_counter_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_PerfCounter
    - _PyTime_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_perf_counter_ns(PyObject *self, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: times
      Src: /src/cpython/Modules/timemodule.c:1269,1
    - Dst: _PyTimeFraction_Resolution
      Src: /src/cpython/Modules/timemodule.c:1275,1
    - Dst: _PyTimeFraction_Mul
      Src: /src/cpython/Modules/timemodule.c:1281,1
    - Dst: _PyTimeFraction_Mul
      Src: /src/cpython/Modules/timemodule.c:1282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - state
    - tp
    - info
    argTypes:
    - time_module_state*
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1285
    functionName: process_time_times
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTimeFraction_Mul
    - _PyTimeFraction_Resolution
    - times
    linkageType: ''
    returnType: int
    signature: "int process_time_times(time_module_state *state, PyTime_t *tp,\n                   _Py_clock_info_t
      *info)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/timemodule.c:1300,1
    - Dst: GetProcessTimes
      Src: /src/cpython/Modules/timemodule.c:1301,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:1304,1
    - Dst: clock_gettime
      Src: /src/cpython/Modules/timemodule.c:1350,1
    - Dst: clock_getres
      Src: /src/cpython/Modules/timemodule.c:1356,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1357,1
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/timemodule.c:1363,1
    - Dst: getrusage
      Src: /src/cpython/Modules/timemodule.c:1375,1
    - Dst: _PyTime_FromTimeval
      Src: /src/cpython/Modules/timemodule.c:1385,1
    - Dst: _PyTime_FromTimeval
      Src: /src/cpython/Modules/timemodule.c:1388,1
    - Dst: process_time_times
      Src: /src/cpython/Modules/timemodule.c:1401,1
    - Dst: py_clock
      Src: /src/cpython/Modules/timemodule.c:1412,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - state
    - tp
    - info
    argTypes:
    - time_module_state*
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1414
    functionName: py_process_time
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - py_clock
    - clock_getres
    - _PyTime_FromTimespec
    - PyErr_SetFromWindowsErr
    - GetCurrentProcess
    - _PyTime_FromTimeval
    - getrusage
    - PyErr_SetFromErrno
    - GetProcessTimes
    - process_time_times
    linkageType: ''
    returnType: int
    signature: "int py_process_time(time_module_state *state, PyTime_t *tp,\n                _Py_clock_info_t
      *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1419,1
    - Dst: py_process_time
      Src: /src/cpython/Modules/timemodule.c:1421,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1416
    functionDepth: 3
    functionLinenumber: 1416
    functionLinenumberEnd: 1425
    functionName: time_process_time
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyFloat_FromPyTime
    - py_process_time
    - get_time_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_process_time(PyObject *module, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1435,1
    - Dst: py_process_time
      Src: /src/cpython/Modules/timemodule.c:1437,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/timemodule.c:1440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1432
    functionDepth: 3
    functionLinenumber: 1432
    functionLinenumberEnd: 1441
    functionName: time_process_time_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsLong
    - py_process_time
    - get_time_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_process_time_ns(PyObject *module, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThread
      Src: /src/cpython/Modules/timemodule.c:1461,1
    - Dst: GetThreadTimes
      Src: /src/cpython/Modules/timemodule.c:1462,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:1465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1487
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - GetThreadTimes
    - GetCurrentThread
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetThreadTimeWithInfo(PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: thread_cputime
      Src: /src/cpython/Modules/timemodule.c:1498,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1491
    functionDepth: 1
    functionLinenumber: 1491
    functionLinenumberEnd: 1511
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - thread_cputime
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetThreadTimeWithInfo(PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethrvtime
      Src: /src/cpython/Modules/timemodule.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1528
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - gethrvtime
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetThreadTimeWithInfo(PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/cpython/Modules/timemodule.c:1558,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1559,1
    - Dst: clock_getres
      Src: /src/cpython/Modules/timemodule.c:1567,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1568,1
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/timemodule.c:1574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1551
    functionDepth: 1
    functionLinenumber: 1551
    functionLinenumberEnd: 1578
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    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/cpython/Modules/timemodule.c:1595,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1591
    functionDepth: 2
    functionLinenumber: 1591
    functionLinenumberEnd: 1599
    functionName: time_thread_time
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyFloat_FromPyTime
    - _PyTime_GetThreadTimeWithInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_thread_time(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/cpython/Modules/timemodule.c:1610,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/timemodule.c:1613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1614
    functionName: time_thread_time_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsLong
    - _PyTime_GetThreadTimeWithInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_thread_time_ns(PyObject *self, PyObject *unused)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:1637,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1653,1
    - Dst: _PyTime_TimeWithInfo
      Src: /src/cpython/Modules/timemodule.c:1654,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1658,1
    - Dst: _PyTime_MonotonicWithInfo
      Src: /src/cpython/Modules/timemodule.c:1659,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1663,1
    - Dst: _PyTime_PerfCounterWithInfo
      Src: /src/cpython/Modules/timemodule.c:1664,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1668,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1669,1
    - Dst: py_process_time
      Src: /src/cpython/Modules/timemodule.c:1670,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1675,1
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/cpython/Modules/timemodule.c:1680,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1685,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1692,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1629
    functionDepth: 3
    functionLinenumber: 1629
    functionLinenumberEnd: 1694
    functionName: time_get_clock_info
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_MonotonicWithInfo
    - PyArg_ParseTuple
    - get_time_state
    - PyErr_SetString
    - py_process_time
    - _PyTime_GetThreadTimeWithInfo
    - strcmp
    - _PyTime_TimeWithInfo
    - _PyTime_PerfCounterWithInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_get_clock_info(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/cpython/Modules/timemodule.c:1762,1
    - Dst: tzset
      Src: /src/cpython/Modules/timemodule.c:1764,1
    - Dst: strftime
      Src: /src/cpython/Modules/timemodule.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - zone
    - n
    - p
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1767
    functionName: get_zone
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - strftime
    - tzset
    - strncpy
    linkageType: ''
    returnType: void
    signature: void get_zone(char *zone, int n, struct tm *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timegm
      Src: /src/cpython/Modules/timemodule.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1777
    functionName: get_gmtoff
    functionSourceFile: /src/cpython/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/cpython/Modules/timemodule.c:1789,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:1789,1
    - Dst: tzset
      Src: /src/cpython/Modules/timemodule.c:1810,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1812,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1814,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1816,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1818,1
    - Dst: GetTimeZoneInformation
      Src: /src/cpython/Modules/timemodule.c:1821,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/timemodule.c:1822,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/timemodule.c:1826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:1828,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/timemodule.c:1832,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/timemodule.c:1836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:1838,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/timemodule.c:1842,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/timemodule.c:1842,1
    - Dst: time
      Src: /src/cpython/Modules/timemodule.c:1851,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1852,1
    - Dst: get_zone
      Src: /src/cpython/Modules/timemodule.c:1853,1
    - Dst: get_gmtoff
      Src: /src/cpython/Modules/timemodule.c:1854,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1857,1
    - Dst: get_zone
      Src: /src/cpython/Modules/timemodule.c:1858,1
    - Dst: get_gmtoff
      Src: /src/cpython/Modules/timemodule.c:1859,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1868,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1877,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1878,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1879,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/timemodule.c:1880,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1882,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1883,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1884,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/timemodule.c:1885,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/timemodule.c:1887,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:1893,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1788
        line_start: 1788
        source_file: /src/cpython/Modules/timemodule.c
    constantsTouched: []
    func_position:
      end: 1897
      start: 1780
    functionDepth: 2
    functionLinenumber: 1780
    functionLinenumberEnd: 1897
    functionName: init_timezone
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - get_gmtoff
    - Py_BuildValue
    - Py_DECREF
    - PyErr_Occurred
    - get_zone
    - PyErr_SetString
    - GetTimeZoneInformation
    - ADD_INT
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeLocale
    - _PyTime_localtime
    - PyModule_Add
    - tzset
    - time
    - assert
    linkageType: ''
    returnType: int
    signature: int init_timezone(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1788
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(NAME, VALUE)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1979,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/timemodule.c:1984,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:1989,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:1992,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:1995,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:1998,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:2001,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/timemodule.c:2010,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:2012,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:2015,1
    - Dst: init_timezone
      Src: /src/cpython/Modules/timemodule.c:2021,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2029,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2034,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2039,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2044,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2049,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2054,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2059,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2064,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2069,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2074,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2079,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2084,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2089,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/timemodule.c:2097,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/timemodule.c:2102,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/timemodule.c:2106,1
    - Dst: gmtime_r
      Src: /src/cpython/Modules/timemodule.c:2113,1
    - Dst: CreateWaitableTimerExW
      Src: /src/cpython/Modules/timemodule.c:2120,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/timemodule.c:2129,1
    - Dst: _Py_GetTicksPerSecond
      Src: /src/cpython/Modules/timemodule.c:2137,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:2138,1
    - Dst: _PyTimeFraction_Set
      Src: /src/cpython/Modules/timemodule.c:2142,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/timemodule.c:2144,1
    - Dst: _PyTimeFraction_Set
      Src: /src/cpython/Modules/timemodule.c:2150,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/timemodule.c:2152,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 108
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 1976
    functionDepth: 3
    functionLinenumber: 1976
    functionLinenumberEnd: 2158
    functionName: time_exec
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - init_timezone
    - get_time_state
    - gmtime_r
    - PyErr_SetString
    - PyDict_PopString
    - CreateWaitableTimerExW
    - _PyTimeFraction_Set
    - PyModule_AddIntConstant
    - PyStructSequence_NewType
    - PyModule_GetDict
    - PyErr_Format
    - PyModule_AddIntMacro
    - CloseHandle
    - _Py_GetTicksPerSecond
    linkageType: ''
    returnType: int
    signature: int time_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:2164,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/timemodule.c:2165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2161
    functionDepth: 2
    functionLinenumber: 2161
    functionLinenumberEnd: 2167
    functionName: time_module_traverse
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_time_state
    linkageType: ''
    returnType: int
    signature: int time_module_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:2173,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/timemodule.c:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2170
    functionDepth: 2
    functionLinenumber: 2170
    functionLinenumberEnd: 2176
    functionName: time_module_clear
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_time_state
    linkageType: ''
    returnType: int
    signature: int time_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_module_clear
      Src: /src/cpython/Modules/timemodule.c:2182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2179
    functionDepth: 3
    functionLinenumber: 2179
    functionLinenumberEnd: 2183
    functionName: time_module_free
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - time_module_clear
    linkageType: ''
    returnType: void
    signature: void time_module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/timemodule.c:2208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2209
    functionName: PyInit_time
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_time(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:2218,1
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:2231,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/timemodule.c:2236,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/timemodule.c:2245,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/timemodule.c:2249,1
    - Dst: clock_nanosleep
      Src: /src/cpython/Modules/timemodule.c:2257,1
    - Dst: nanosleep
      Src: /src/cpython/Modules/timemodule.c:2260,1
    - Dst: select
      Src: /src/cpython/Modules/timemodule.c:2263,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:2274,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/timemodule.c:2279,1
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:2284,1
    - Dst: _PyTime_As100Nanoseconds
      Src: /src/cpython/Modules/timemodule.c:2297,1
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:2314,1
    - Dst: CreateWaitableTimerExW
      Src: /src/cpython/Modules/timemodule.c:2318,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2321,1
    - Dst: SetWaitableTimerEx
      Src: /src/cpython/Modules/timemodule.c:2325,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2331,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/timemodule.c:2337,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/timemodule.c:2338,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/timemodule.c:2342,1
    - Dst: ResetEvent
      Src: /src/cpython/Modules/timemodule.c:2345,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/timemodule.c:2351,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/timemodule.c:2351,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2359,1
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:2368,1
    - Dst: WaitForSingleObject
      Src: /src/cpython/Modules/timemodule.c:2376,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2380,1
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:2384,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/timemodule.c:2388,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/timemodule.c:2392,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - PyTime_t
    assertStmts:
    - condition: (sizeof(relative_timeout) == sizeof(timeout_100ns))
      pos:
        line_end: 2313
        line_start: 2313
        source_file: /src/cpython/Modules/timemodule.c
    - condition: (rc == (WAIT_OBJECT_0 + 1))
      pos:
        line_end: 2367
        line_start: 2367
        source_file: /src/cpython/Modules/timemodule.c
    - condition: (rc == WAIT_OBJECT_0)
      pos:
        line_end: 2383
        line_start: 2383
        source_file: /src/cpython/Modules/timemodule.c
    - condition: (timeout >= 0)
      pos:
        line_end: 2217
        line_start: 2217
        source_file: /src/cpython/Modules/timemodule.c
    constantsTouched: []
    func_position:
      end: 2395
      start: 2215
    functionDepth: 1
    functionLinenumber: 2215
    functionLinenumberEnd: 2395
    functionName: pysleep
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - SetWaitableTimerEx
    - _PyTime_As100Nanoseconds
    - PyErr_SetFromWindowsErr
    - PyErr_CheckSignals
    - ResetEvent
    - WaitForSingleObject
    - nanosleep
    - clock_nanosleep
    - _PyOS_IsMainThread
    - _PyTime_AsTimeval
    - CloseHandle
    - CreateWaitableTimerExW
    - PyErr_SetFromErrno
    - WaitForMultipleObjects
    - select
    - PyTime_Monotonic
    - _PyTime_AsTimespec
    - Py_ARRAY_LENGTH
    - _PyOS_SigintEvent
    - assert
    linkageType: ''
    returnType: int
    signature: int pysleep(PyTime_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: RESTORE_LOCALE
    functionSourceFile: /src/cpython/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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: completion_matches
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: completion_matches(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/readline.c:107,1
    - Dst: assert
      Src: /src/cpython/Modules/readline.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/cpython/Modules/readline.c
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: get_readline_state
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: readlinestate
    signature: 'readlinestate *

      get_readline_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:120,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:121,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:122,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:123,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:124,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:125,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: readline_clear
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - get_readline_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int readline_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:133,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/readline.c:134,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/readline.c:135,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/readline.c:136,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/readline.c:137,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/readline.c:138,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/readline.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: readline_traverse
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - get_readline_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int readline_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_clear
      Src: /src/cpython/Modules/readline.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: readline_free
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - readline_clear
    linkageType: ''
    returnType: void
    signature: void readline_free(void *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/readline.c:154,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/readline.c:156,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/readline.c:159,1
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: get_hook_module_state
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyState_FindModule
    - get_readline_state
    - PyErr_Clear
    linkageType: ''
    returnType: readlinestate
    signature: 'readlinestate *

      get_hook_module_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeLocale
      Src: /src/cpython/Modules/readline.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: encode
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 2
    functionsReached:
    - PyUnicode_EncodeLocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encode(PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/readline.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: decode
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode(const char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rl_variable_bind
      Src: /src/cpython/Modules/readline.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: disable_bracketed_paste
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - rl_variable_bind
    linkageType: ''
    returnType: void
    signature: void disable_bracketed_paste(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:217,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/readline.c:223,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/readline.c:223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/readline.c:226,1
    - Dst: strcpy
      Src: /src/cpython/Modules/readline.c:228,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:229,1
    - Dst: rl_parse_and_bind
      Src: /src/cpython/Modules/readline.c:230,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/readline.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 233
    functionName: readline_parse_and_bind_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - Py_DECREF
    - strcpy
    - PyMem_Free
    - PyBytes_GET_SIZE
    - rl_parse_and_bind
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_parse_and_bind_impl(PyObject *module, PyObject *string)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/readline.c:255,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:257,1
    - Dst: rl_read_init_file
      Src: /src/cpython/Modules/readline.c:260,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:261,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:267,1
    - Dst: rl_read_init_file
      Src: /src/cpython/Modules/readline.c:270,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:273,1
    - Dst: disable_bracketed_paste
      Src: /src/cpython/Modules/readline.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - module
    - filename_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 276
    functionName: readline_read_init_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - disable_bracketed_paste
    - Py_DECREF
    - rl_read_init_file
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    - PySys_Audit
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_read_init_file_impl(PyObject *module, PyObject *filename_obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/readline.c:298,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:300,1
    - Dst: read_history
      Src: /src/cpython/Modules/readline.c:303,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:304,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:308,1
    - Dst: read_history
      Src: /src/cpython/Modules/readline.c:311,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - module
    - filename_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 316
    functionName: readline_read_history_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - read_history
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    - PySys_Audit
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_read_history_file_impl(PyObject *module, PyObject *filename_obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/readline.c:342,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:344,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:345,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:353,1
    - Dst: write_history
      Src: /src/cpython/Modules/readline.c:357,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Modules/readline.c:358,1
    - Dst: history_truncate_file
      Src: /src/cpython/Modules/readline.c:360,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:361,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - module
    - filename_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 366
    functionName: readline_write_history_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PyUnicode_FSConverter
    - write_history
    - PyErr_SetFromErrno
    - history_truncate_file
    - PySys_Audit
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_write_history_file_impl(PyObject *module, PyObject *filename_obj)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/readline.c:391,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/readline.c:399,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:401,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:402,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:410,1
    - Dst: append_history
      Src: /src/cpython/Modules/readline.c:414,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Modules/readline.c:416,1
    - Dst: history_truncate_file
      Src: /src/cpython/Modules/readline.c:418,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:419,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - module
    - nelements
    - filename_obj
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 424
    functionName: readline_append_history_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - append_history
    - PyErr_SetString
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    - history_truncate_file
    - PySys_Audit
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreadline_append_history_file_impl(PyObject *module, int
      nelements,\n                                  PyObject *filename_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_INT_RELAXED
      Src: /src/cpython/Modules/readline.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - length
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 447
    functionName: readline_set_history_length_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_INT_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_history_length_impl(PyObject *module, int length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Modules/readline.c:461,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: readline_get_history_length_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_history_length_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:471,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/readline.c:473,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/readline.c:474,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:474,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/readline.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - funcname
    - hook_var
    - function
    argTypes:
    - char*
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 483
    functionName: set_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - Py_NewRef
    - Py_XSETREF
    - PyErr_Format
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_hook(const char *funcname, PyObject **hook_var, PyObject *function)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:504,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 521
    functionName: readline_set_completion_display_matches_hook_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - get_readline_state
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreadline_set_completion_display_matches_hook_impl(PyObject
      *module,\n                                                  PyObject *function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:540,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: readline_set_startup_hook_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - get_readline_state
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_startup_hook_impl(PyObject *module, PyObject *function)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:567,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: readline_set_pre_input_hook_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - get_readline_state
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_pre_input_hook_impl(PyObject *module, PyObject *function)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: readline_get_completion_type_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_completion_type_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:601,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 603
    functionName: readline_get_begidx_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_readline_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_begidx_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:617,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 619
    functionName: readline_get_endidx_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_readline_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_endidx_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:638,1
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:645,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:646,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:648,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/readline.c:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 662
    functionName: readline_set_completer_delims_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - Py_DECREF
    - strdup
    - free
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_completer_delims_impl(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_history_entry
      Src: /src/cpython/Modules/readline.c:676,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - HIST_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 678
    functionName: _py_free_history_entry_lock_held
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free
    - free_history_entry
    linkageType: ''
    returnType: void
    signature: void _py_free_history_entry_lock_held(HIST_ENTRY *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Modules/readline.c:688,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:690,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - HIST_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 692
    functionName: _py_free_history_entry_lock_held
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _py_free_history_entry_lock_held(HIST_ENTRY *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/readline.c:713,1
    - Dst: remove_history
      Src: /src/cpython/Modules/readline.c:717,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/readline.c:719,1
    - Dst: _py_free_history_entry_lock_held
      Src: /src/cpython/Modules/readline.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - entry_number
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 727
    functionName: readline_remove_history_item_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - remove_history
    - _py_free_history_entry_lock_held
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_remove_history_item_impl(PyObject *module, int entry_number)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/readline.c:751,1
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:755,1
    - Dst: replace_history_entry
      Src: /src/cpython/Modules/readline.c:759,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:762,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/readline.c:764,1
    - Dst: _py_free_history_entry_lock_held
      Src: /src/cpython/Modules/readline.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - module
    - entry_number
    - line
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 772
    functionName: readline_replace_history_item_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - Py_DECREF
    - PyErr_SetString
    - _py_free_history_entry_lock_held
    - PyErr_Format
    - replace_history_entry
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreadline_replace_history_item_impl(PyObject *module, int
      entry_number,\n                                   PyObject *line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:790,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:794,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 797
    functionName: readline_add_history_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - add_history
    - PyBytes_AS_STRING
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_add_history_impl(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - _should_auto_add_history
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 819
    functionName: readline_set_auto_history_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreadline_set_auto_history_impl(PyObject *module,\n                               int
      _should_auto_add_history)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 836
    functionName: readline_get_completer_delims_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - decode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_completer_delims_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:858,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 860
    functionName: readline_set_completer_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - get_readline_state
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_completer_impl(PyObject *module, PyObject *function)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:872,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: readline_get_completer_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_readline_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_completer_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: history_get_history_state
      Src: /src/cpython/Modules/readline.c:887,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 896
    functionName: _py_get_history_length_lock_held
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free
    - history_get_history_state
    linkageType: ''
    returnType: int
    signature: int _py_get_history_length_lock_held(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _py_get_history_length_lock_held
      Src: /src/cpython/Modules/readline.c:921,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:935,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - module
    - idx
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 940
    functionName: readline_get_history_item_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - history_get
    - decode
    - _py_get_history_length_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_history_item_impl(PyObject *module, int idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:955,1
    - Dst: _py_get_history_length_lock_held
      Src: /src/cpython/Modules/readline.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 956
    functionName: readline_get_current_history_length_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - _py_get_history_length_lock_held
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_current_history_length_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 972
    functionName: readline_get_line_buffer_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - decode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_line_buffer_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_history
      Src: /src/cpython/Modules/readline.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 991
    functionName: readline_clear_history_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - clear_history
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_clear_history_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:1011,1
    - Dst: rl_insert_text
      Src: /src/cpython/Modules/readline.c:1015,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:1015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1018
    functionName: readline_insert_text_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - Py_DECREF
    - PyBytes_AS_STRING
    - rl_insert_text
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_insert_text_impl(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rl_redisplay
      Src: /src/cpython/Modules/readline.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1036
    functionName: readline_redisplay_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - rl_redisplay
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_redisplay_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/readline.c:1089,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/readline.c:1095,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/readline.c:1096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1099,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/readline.c:1102,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1108
    functionName: on_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int on_hook(PyObject *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/readline.c:1118,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1119,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1121,1
    - Dst: on_hook
      Src: /src/cpython/Modules/readline.c:1124,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(text)
    - Py_UNUSED
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1127
    functionName: on_startup_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - get_hook_module_state
    - on_hook
    - PyGILState_Release
    linkageType: ''
    returnType: void
    signature: void on_startup_hook(const char *Py_UNUSED(text), int Py_UNUSED(state))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/readline.c:1138,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1139,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1141,1
    - Dst: on_hook
      Src: /src/cpython/Modules/readline.c:1144,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(text)
    - Py_UNUSED
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1134
    functionDepth: 3
    functionLinenumber: 1134
    functionLinenumberEnd: 1147
    functionName: on_pre_input_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - get_hook_module_state
    - on_hook
    - PyGILState_Release
    linkageType: ''
    returnType: void
    signature: void on_pre_input_hook(const char *Py_UNUSED(text), int Py_UNUSED(state))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/readline.c:1160,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1161,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1163,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/readline.c:1166,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:1170,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/readline.c:1173,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:1175,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/readline.c:1176,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/readline.c:1182,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/readline.c:1182,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:1185,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/readline.c:1189,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1190,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1191,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1193,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - matches
    - num_matches
    - max_length
    argTypes:
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1154
    functionDepth: 3
    functionLinenumber: 1154
    functionLinenumberEnd: 1194
    functionName: on_completion_display_matches_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyGILState_Ensure
    - get_hook_module_state
    - Py_XDECREF
    - PyObject_CallFunction
    - PyGILState_Release
    - PyLong_AsLong
    - PyErr_Occurred
    - PyList_SET_ITEM
    - decode
    - PyErr_Clear
    - Py_CLEAR
    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/cpython/Modules/readline.c:1208,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/readline.c:1213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1215
    functionName: readline_sigwinch_handler
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - sigwinch_ohandler
    - PyOS_setsig
    linkageType: ''
    returnType: void
    signature: void readline_sigwinch_handler(int signum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/readline.c:1224,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1225,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1227,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:1233,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/readline.c:1234,1
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:1241,1
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:1244,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:1244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1247,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/readline.c:1250,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1251,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1253,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - text
    - state
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1220
    functionDepth: 3
    functionLinenumber: 1220
    functionLinenumberEnd: 1258
    functionName: on_completion
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - PyGILState_Ensure
    - get_hook_module_state
    - Py_XDECREF
    - PyObject_CallFunction
    - Py_DECREF
    - PyGILState_Release
    - strdup
    - decode
    - PyErr_Clear
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: char
    signature: 'char *

      on_completion(const char *text, int state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/readline.c:1271,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1272,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Modules/readline.c:1282,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/readline.c:1287,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Modules/readline.c:1290,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/readline.c:1295,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1301,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1302,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1303,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1304,1
    - Dst: completion_matches
      Src: /src/cpython/Modules/readline.c:1306,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1264
    functionDepth: 3
    functionLinenumber: 1264
    functionLinenumberEnd: 1309
    functionName: flex_complete
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - get_hook_module_state
    - Py_XDECREF
    - Py_DecodeLocale
    - PyMem_RawFree
    - completion_matches
    - PyGILState_Release
    - PyLong_FromLong
    linkageType: ''
    returnType: char
    signature: 'char **

      flex_complete(const char *text, int start, int end)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:1318,1
    - Dst: setlocale
      Src: /src/cpython/Modules/readline.c:1318,1
    - Dst: rl_initialize
      Src: /src/cpython/Modules/readline.c:1331,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:1336,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1337,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:1348,1
    - Dst: replace_history_entry
      Src: /src/cpython/Modules/readline.c:1349,1
    - Dst: _py_free_history_entry_lock_held
      Src: /src/cpython/Modules/readline.c:1350,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1351,1
    - Dst: strcmp
      Src: /src/cpython/Modules/readline.c:1352,1
    - Dst: clear_history
      Src: /src/cpython/Modules/readline.c:1358,1
    - Dst: using_history
      Src: /src/cpython/Modules/readline.c:1360,1
    - Dst: rl_bind_key
      Src: /src/cpython/Modules/readline.c:1363,1
    - Dst: rl_bind_key_in_map
      Src: /src/cpython/Modules/readline.c:1365,1
    - Dst: rl_bind_key_in_map
      Src: /src/cpython/Modules/readline.c:1366,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/readline.c:1369,1
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:1380,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1393,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1394,1
    - Dst: isatty
      Src: /src/cpython/Modules/readline.c:1398,1
    - Dst: rl_variable_bind
      Src: /src/cpython/Modules/readline.c:1407,1
    - Dst: rl_read_init_file
      Src: /src/cpython/Modules/readline.c:1417,1
    - Dst: rl_initialize
      Src: /src/cpython/Modules/readline.c:1419,1
    - Dst: disable_bracketed_paste
      Src: /src/cpython/Modules/readline.c:1421,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - mod_state
    argTypes:
    - readlinestate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1425
    functionName: setup_readline
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - rl_bind_key
    - rl_initialize
    - PyLong_FromLong
    - add_history
    - rl_read_init_file
    - RESTORE_LOCALE
    - strcmp
    - strdup
    - isatty
    - _py_free_history_entry_lock_held
    - using_history
    - replace_history_entry
    - rl_variable_bind
    - setlocale
    - rl_bind_key_in_map
    - history_get
    - clear_history
    - PyOS_setsig
    - disable_bracketed_paste
    linkageType: ''
    returnType: int
    signature: int setup_readline(readlinestate *mod_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rl_callback_handler_remove
      Src: /src/cpython/Modules/readline.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1435
    functionName: rlhandler
    functionSourceFile: /src/cpython/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/cpython/Modules/readline.c:1451,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/readline.c:1452,1
    - Dst: rl_resize_terminal
      Src: /src/cpython/Modules/readline.c:1472,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/readline.c:1475,1
    - Dst: fileno
      Src: /src/cpython/Modules/readline.c:1475,1
    - Dst: select
      Src: /src/cpython/Modules/readline.c:1477,1
    - Dst: fileno
      Src: /src/cpython/Modules/readline.c:1477,1
    - Dst: PyOS_InputHook
      Src: /src/cpython/Modules/readline.c:1480,1
    - Dst: rl_callback_read_char
      Src: /src/cpython/Modules/readline.c:1484,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/readline.c:1488,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/readline.c:1489,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/readline.c:1490,1
    - Dst: rl_free_line_state
      Src: /src/cpython/Modules/readline.c:1492,1
    - Dst: rl_callback_sigcleanup
      Src: /src/cpython/Modules/readline.c:1494,1
    - Dst: rl_cleanup_after_signal
      Src: /src/cpython/Modules/readline.c:1496,1
    - Dst: rl_callback_handler_remove
      Src: /src/cpython/Modules/readline.c:1497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - prompt
    - signal
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1505
    functionName: readline_until_enter_or_signal
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - select
    - rl_callback_handler_install
    - rl_callback_read_char
    - rl_resize_terminal
    - PyEval_SaveThread
    - FD_SET
    - PyErr_CheckSignals
    - PyEval_RestoreThread
    - rl_callback_handler_remove
    - rl_callback_sigcleanup
    - rl_cleanup_after_signal
    - PyOS_InputHook
    - fileno
    - FD_ZERO
    - rl_free_line_state
    linkageType: ''
    returnType: char
    signature: 'char *

      readline_until_enter_or_signal(const char *prompt, int *signal)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:1516,1
    - Dst: setlocale
      Src: /src/cpython/Modules/readline.c:1516,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/readline.c:1518,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/cpython/Modules/readline.c:1519,1
    - Dst: rl_prep_terminal
      Src: /src/cpython/Modules/readline.c:1526,1
    - Dst: readline_until_enter_or_signal
      Src: /src/cpython/Modules/readline.c:1530,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1534,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/readline.c:1540,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1543,1
    - Dst: strlen
      Src: /src/cpython/Modules/readline.c:1548,1
    - Dst: _py_get_history_length_lock_held
      Src: /src/cpython/Modules/readline.c:1551,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1556,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1558,1
    - Dst: strcmp
      Src: /src/cpython/Modules/readline.c:1562,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:1563,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/readline.c:1568,1
    - Dst: memcpy
      Src: /src/cpython/Modules/readline.c:1570,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:1574,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1575,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - sys_stdin
    - sys_stdout
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1577
    functionName: call_readline
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - readline_until_enter_or_signal
    - setlocale
    - free
    - add_history
    - strlen
    - Py_FatalError
    - RESTORE_LOCALE
    - _Py_SetLocaleFromEnv
    - _py_get_history_length_lock_held
    - strcmp
    - strdup
    - PyMem_RawMalloc
    - memcpy
    - history_get
    - rl_prep_terminal
    linkageType: ''
    returnType: char
    signature: 'char *

      call_readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/cpython/Modules/readline.c:1608,1
    - Dst: strlen
      Src: /src/cpython/Modules/readline.c:1608,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/readline.c:1618,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/readline.c:1623,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/readline.c:1626,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/readline.c:1630,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/readline.c:1634,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/readline.c:1640,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/readline.c:1644,1
    - Dst: setup_readline
      Src: /src/cpython/Modules/readline.c:1649,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/readline.c:1650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/readline.c:1653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1659,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1661
    functionName: PyInit_readline
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - Py_DECREF
    - strncmp
    - strlen
    - PyErr_Occurred
    - PyUnstable_Module_SetGIL
    - PyModule_AddIntConstant
    - PyModule_GetState
    - setup_readline
    - PyModule_Create
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_readline(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/hashlib.h:23,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hashlib.h:24,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/hashlib.h:28,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hashlib.h:29,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/hashlib.h:33,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hashlib.h:37,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hashlib.h:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - obj
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 43
    functionName: _Py_hashlib_get_buffer_view
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 1
    functionsReached:
    - PyObject_CheckBuffer
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int _Py_hashlib_get_buffer_view(PyObject *obj, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OBJ
    - ','
    - VIEW
    - ','
    - ERRACTION
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: GET_BUFFER_VIEW_OR_ERROR
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BUFFER_VIEW_OR_ERROR(OBJ, VIEW, ERRACTION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBJ
    - ','
    - VIEW
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: GET_BUFFER_VIEW_OR_ERROUT
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BUFFER_VIEW_OR_ERROUT(OBJ, VIEW)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBJ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: HASHLIB_INIT_MUTEX
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHLIB_INIT_MUTEX(OBJ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBJ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: HASHLIB_ACQUIRE_LOCK
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHLIB_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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: HASHLIB_RELEASE_LOCK
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHLIB_RELEASE_LOCK(OBJ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SIZE
    - ','
    - STATEMENTS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED(SIZE, STATEMENTS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OBJ
    - ','
    - SIZE
    - ','
    - STATEMENTS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED(OBJ, SIZE, STATEMENTS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/hashlib.h:146,1
    - Dst: assert
      Src: /src/cpython/Modules/hashlib.h:160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/hashlib.h:160,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/hashlib.h:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - res
    - data
    - string
    argTypes:
    - PyObject**
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/cpython/Modules/hashlib.h
    constantsTouched: []
    func_position:
      end: 173
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 173
    functionName: _Py_hashlib_data_argument
    functionSourceFile: /src/cpython/Modules/hashlib.h
    functionUses: 4
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_WarnEx
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_hashlib_data_argument(PyObject **res, PyObject *data, PyObject
      *string)
  - 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: lockobject_CAST
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lockobject_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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: rlockobject_CAST
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rlockobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_threadmodule.c:58,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: get_thread_state
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 4
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: thread_module_state
    signature: 'thread_module_state *

      get_thread_state(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_threadmodule.c:67,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: get_thread_state_by_cls
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: thread_module_state
    signature: 'thread_module_state *

      get_thread_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:157,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: get_thread_handle_state
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: int
    signature: int get_thread_handle_state(ThreadHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:166,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - state
    argTypes:
    - ThreadHandle*
    - ThreadHandleState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: set_thread_handle_state
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void set_thread_handle_state(ThreadHandle *handle, ThreadHandleState
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:174,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: ThreadHandle_ident
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: PyThread_ident_t
    signature: PyThread_ident_t ThreadHandle_ident(ThreadHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:183,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - handle
    - os_handle
    argTypes:
    - ThreadHandle*
    - PyThread_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: ThreadHandle_get_os_handle
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: int
    signature: int ThreadHandle_get_os_handle(ThreadHandle *handle, PyThread_handle_t
      *os_handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:195,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Modules/_threadmodule.c:196,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - state
    - handle
    argTypes:
    - thread_module_state*
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: add_to_shutdown_handles
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - HEAD_UNLOCK
    - HEAD_LOCK
    - llist_insert_tail
    linkageType: ''
    returnType: void
    signature: void add_to_shutdown_handles(thread_module_state *state, ThreadHandle
      *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:203,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Modules/_threadmodule.c:205,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:206,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - thread_module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: clear_shutdown_handles
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - llist_remove
    - HEAD_UNLOCK
    - HEAD_LOCK
    - llist_for_each_safe
    linkageType: ''
    returnType: void
    signature: void clear_shutdown_handles(thread_module_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:214,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:216,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: remove_from_shutdown_handles
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - llist_remove
    - HEAD_UNLOCK
    - HEAD_LOCK
    linkageType: ''
    returnType: void
    signature: void remove_from_shutdown_handles(ThreadHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_threadmodule.c:225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_threadmodule.c:227,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:239,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Modules/_threadmodule.c:240,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 244
    functionName: ThreadHandle_new
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - HEAD_LOCK
    - llist_insert_tail
    - HEAD_UNLOCK
    - PyErr_NoMemory
    linkageType: ''
    returnType: ThreadHandle
    signature: 'ThreadHandle *

      ThreadHandle_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_threadmodule.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: ThreadHandle_incref
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_ssize
    linkageType: ''
    returnType: void
    signature: void ThreadHandle_incref(ThreadHandle *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_detach_thread
      Src: /src/cpython/Modules/_threadmodule.c:259,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_threadmodule.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 264
    functionName: detach_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 1
    functionsReached:
    - fprintf
    - PyThread_detach_thread
    linkageType: ''
    returnType: int
    signature: int detach_thread(ThreadHandle *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_threadmodule.c:272,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:277,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:279,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:281,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:283,1
    - Dst: detach_thread
      Src: /src/cpython/Modules/_threadmodule.c:289,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_threadmodule.c:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts:
    - condition: (self->shutdown_node.next == NULL)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 294
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 294
    functionName: ThreadHandle_decref
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - llist_remove
    - PyMem_RawFree
    - _Py_atomic_add_ssize
    - HEAD_LOCK
    - HEAD_UNLOCK
    - detach_thread
    - assert
    linkageType: ''
    returnType: void
    signature: void ThreadHandle_decref(ThreadHandle *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_threadmodule.c:303,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Modules/_threadmodule.c:306,1
    - Dst: llist_data
      Src: /src/cpython/Modules/_threadmodule.c:307,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:324,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:325,1
    - Dst: remove_from_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _pythread_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 328
    functionName: _PyThread_AfterFork
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - llist_remove
    - llist_data
    - llist_for_each_safe
    - PyThread_get_thread_ident_ex
    - remove_from_shutdown_handles
    linkageType: ''
    returnType: void
    signature: void _PyThread_AfterFork(struct _pythread_runtime_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:347,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:348,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:350,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_threadmodule.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - boot
    - decref
    argTypes:
    - struct bootstate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: thread_bootstate_free
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyMem_RawFree
    - ThreadHandle_decref
    linkageType: ''
    returnType: void
    signature: void thread_bootstate_free(struct bootstate *boot, int decref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_threadmodule.c:361,1
    - Dst: ThreadHandle_incref
      Src: /src/cpython/Modules/_threadmodule.c:365,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Modules/_threadmodule.c:372,1
    - Dst: thread_bootstate_free
      Src: /src/cpython/Modules/_threadmodule.c:379,1
    - Dst: _PyThreadState_Bind
      Src: /src/cpython/Modules/_threadmodule.c:383,1
    - Dst: PyEval_AcquireThread
      Src: /src/cpython/Modules/_threadmodule.c:384,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_threadmodule.c:385,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_threadmodule.c:387,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_threadmodule.c:389,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_threadmodule.c:391,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:398,1
    - Dst: thread_bootstate_free
      Src: /src/cpython/Modules/_threadmodule.c:401,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_threadmodule.c:403,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_threadmodule.c:404,1
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/cpython/Modules/_threadmodule.c:405,1
    - Dst: remove_from_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:409,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:411,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - boot_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 418
    functionName: thread_run
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_incref
    - PyEvent_Wait
    - _PyThreadState_MustExit
    - Py_DECREF
    - _PyEvent_Notify
    - _Py_atomic_add_ssize
    - PyThreadState_Clear
    - ThreadHandle_decref
    - thread_bootstate_free
    - PyErr_FormatUnraisable
    - PyErr_ExceptionMatches
    - PyObject_Call
    - PyEval_AcquireThread
    - _PyThreadState_DeleteCurrent
    - PyErr_Clear
    - _PyThreadState_Bind
    - remove_from_shutdown_handles
    linkageType: ''
    returnType: void
    signature: void thread_run(void *boot_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:424,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:424,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:425,1
    - Dst: set_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (get_thread_handle_state(handle) == THREAD_HANDLE_STARTING)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 428
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 428
    functionName: force_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - set_thread_handle_state
    - get_thread_handle_state
    - assert
    linkageType: ''
    returnType: int
    signature: int force_done(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:435,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:437,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:438,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:442,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_threadmodule.c:450,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_threadmodule.c:452,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:455,1
    - Dst: _PyThreadState_New
      Src: /src/cpython/Modules/_threadmodule.c:456,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_threadmodule.c:458,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:459,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_threadmodule.c:460,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:464,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:465,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_threadmodule.c:466,1
    - Dst: ThreadHandle_incref
      Src: /src/cpython/Modules/_threadmodule.c:468,1
    - Dst: PyThread_start_joinable_thread
      Src: /src/cpython/Modules/_threadmodule.c:473,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_threadmodule.c:474,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_threadmodule.c:475,1
    - Dst: thread_bootstate_free
      Src: /src/cpython/Modules/_threadmodule.c:476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:477,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:482,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:483,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:488,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:491,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_threadmodule.c:496,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 4
    argNames:
    - self
    - func
    - args
    - kwargs
    argTypes:
    - ThreadHandle*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (self->state == THREAD_HANDLE_STARTING)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 498
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 498
    functionName: ThreadHandle_start
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_New
    - PyErr_SetString
    - PyMutex_Lock
    - PyErr_Occurred
    - PyThreadState_Clear
    - thread_bootstate_free
    - PyMutex_Unlock
    - Py_XNewRef
    - ThreadHandle_incref
    - _PyEvent_Notify
    - _PyOnceFlag_CallOnce
    - PyMem_RawFree
    - Py_NewRef
    - PyMem_RawMalloc
    - PyErr_NoMemory
    - PyThread_start_joinable_thread
    - PyThreadState_Delete
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: int
    signature: "int ThreadHandle_start(ThreadHandle *self, PyObject *func, PyObject
      *args,\n                   PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:504,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:504,1
    - Dst: ThreadHandle_get_os_handle
      Src: /src/cpython/Modules/_threadmodule.c:506,1
    - Dst: PyThread_join_thread
      Src: /src/cpython/Modules/_threadmodule.c:509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:512,1
    - Dst: set_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (get_thread_handle_state(handle) == THREAD_HANDLE_RUNNING)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 518
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 518
    functionName: join_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - get_thread_handle_state
    - set_thread_handle_state
    - ThreadHandle_get_os_handle
    - PyThread_join_thread
    - assert
    linkageType: ''
    returnType: int
    signature: int join_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: if
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:523,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 529
    functionName: check_started
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - get_thread_handle_state
    linkageType: ''
    returnType: int
    signature: int check_started(ThreadHandle *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_started
      Src: /src/cpython/Modules/_threadmodule.c:534,1
    - Dst: _PyEvent_IsSet
      Src: /src/cpython/Modules/_threadmodule.c:548,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:549,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_threadmodule.c:549,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:551,1
    - Dst: Py_IsFinalizing
      Src: /src/cpython/Modules/_threadmodule.c:554,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:559,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_threadmodule.c:566,1
    - Dst: PyEvent_WaitTimed
      Src: /src/cpython/Modules/_threadmodule.c:568,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_threadmodule.c:572,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_threadmodule.c:572,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/_threadmodule.c:577,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_threadmodule.c:587,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:590,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:590,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - self
    - timeout_ns
    argTypes:
    - ThreadHandle*
    - PyTime_t
    assertStmts:
    - condition: (get_thread_handle_state(self) == THREAD_HANDLE_DONE)
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 592
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 592
    functionName: ThreadHandle_join
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyDeadline_Init
    - Py_MAX
    - _PyOnceFlag_CallOnce
    - Py_IsFinalizing
    - Py_MakePendingCalls
    - PyErr_SetString
    - ThreadHandle_ident
    - _PyDeadline_Get
    - get_thread_handle_state
    - PyEvent_WaitTimed
    - _PyEvent_IsSet
    - PyThread_get_thread_ident_ex
    - check_started
    - assert
    linkageType: ''
    returnType: int
    signature: int ThreadHandle_join(ThreadHandle *self, PyTime_t timeout_ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:598,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:598,1
    - Dst: detach_thread
      Src: /src/cpython/Modules/_threadmodule.c:599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:600,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:603,1
    - Dst: set_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (get_thread_handle_state(handle) == THREAD_HANDLE_RUNNING)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 606
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 606
    functionName: set_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - PyErr_SetString
    - get_thread_handle_state
    - set_thread_handle_state
    - detach_thread
    - assert
    linkageType: ''
    returnType: int
    signature: int set_done(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_started
      Src: /src/cpython/Modules/_threadmodule.c:611,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_threadmodule.c:615,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:619,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts:
    - condition: (get_thread_handle_state(self) == THREAD_HANDLE_DONE)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 621
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 621
    functionName: ThreadHandle_set_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyOnceFlag_CallOnce
    - get_thread_handle_state
    - check_started
    - assert
    linkageType: ''
    returnType: int
    signature: int ThreadHandle_set_done(ThreadHandle *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 631
    functionName: PyThreadHandleObject_CAST
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyThreadHandleObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThreadHandle_new
      Src: /src/cpython/Modules/_threadmodule.c:635,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:641,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 650
    functionName: PyThreadHandleObject_new
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - ThreadHandle_new
    - ThreadHandle_decref
    linkageType: ''
    returnType: PyThreadHandleObject
    signature: 'PyThreadHandleObject *

      PyThreadHandleObject_new(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_new
      Src: /src/cpython/Modules/_threadmodule.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: PyThreadHandleObject_tp_new
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThreadHandleObject_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:661,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 663
    functionName: PyThreadHandleObject_traverse
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PyThreadHandleObject_traverse(PyObject *self, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:668,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_threadmodule.c:669,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:670,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:671,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 674
    functionName: PyThreadHandleObject_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyThreadHandleObject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    - ThreadHandle_decref
    linkageType: ''
    returnType: void
    signature: void PyThreadHandleObject_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:679,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:680,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:681,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 683
    functionName: PyThreadHandleObject_repr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - ThreadHandle_ident
    - PyThreadHandleObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:688,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:689,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 690
    functionName: PyThreadHandleObject_get_ident
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    - ThreadHandle_ident
    - PyThreadHandleObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_get_ident(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:695,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_threadmodule.c:698,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_threadmodule.c:704,1
    - Dst: ThreadHandle_join
      Src: /src/cpython/Modules/_threadmodule.c:710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 714
    functionName: PyThreadHandleObject_join
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_join
    - PyArg_ParseTuple
    - _PyTime_FromSecondsObject
    - PyThreadHandleObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_join(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:719,1
    - Dst: _PyEvent_IsSet
      Src: /src/cpython/Modules/_threadmodule.c:720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 726
    functionName: PyThreadHandleObject_is_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_IsSet
    - PyThreadHandleObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_is_done(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:731,1
    - Dst: ThreadHandle_set_done
      Src: /src/cpython/Modules/_threadmodule.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 736
    functionName: PyThreadHandleObject_set_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_set_done
    - PyThreadHandleObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_set_done(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:773,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: lock_traverse
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int lock_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_threadmodule.c:780,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_threadmodule.c:781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:782,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 785
    functionName: lock_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void lock_dealloc(PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/_threadmodule.c:793,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_threadmodule.c:797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:802,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:807,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Modules/_threadmodule.c:816,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:818,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - timeout_obj
    - blocking
    - timeout
    argTypes:
    - PyObject*
    - int
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 824
    functionName: lock_acquire_parse_timeout
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyTime_FromSeconds
    - _PyTime_AsMicroseconds
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: int
    signature: int lock_acquire_parse_timeout(PyObject *timeout_obj, int blocking,
      PyTime_t *timeout)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lock_acquire_parse_timeout
      Src: /src/cpython/Modules/_threadmodule.c:847,1
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Modules/_threadmodule.c:851,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:858,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - blocking
    - timeoutobj
    argTypes:
    - lockobject*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 863
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 863
    functionName: _thread_lock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - lock_acquire_parse_timeout
    - PyErr_Occurred
    - _PyMutex_LockTimed
    - PyBool_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_thread_lock_acquire_impl(lockobject *self, int blocking,\n
      \                         PyObject *timeoutobj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_acquire_impl
      Src: /src/cpython/Modules/_threadmodule.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - blocking
    - timeoutobj
    argTypes:
    - lockobject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 877
    functionName: _thread_lock_acquire_lock_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _thread_lock_acquire_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_thread_lock_acquire_lock_impl(lockobject *self, int blocking,\n
      \                              PyObject *timeoutobj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_TryUnlock
      Src: /src/cpython/Modules/_threadmodule.c:894,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 900
    functionName: _thread_lock_release_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyMutex_TryUnlock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_release_impl(lockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_release_impl
      Src: /src/cpython/Modules/_threadmodule.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 913
    functionName: _thread_lock_release_lock_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _thread_lock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_release_lock_impl(lockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_acquire_impl
      Src: /src/cpython/Modules/_threadmodule.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 926
    functionName: _thread_lock___enter___impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _thread_lock_acquire_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock___enter___impl(lockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_release_impl
      Src: /src/cpython/Modules/_threadmodule.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - exc_tb
    argTypes:
    - lockobject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 944
    functionName: _thread_lock___exit___impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _thread_lock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_thread_lock___exit___impl(lockobject *self, PyObject
      *exc_type,\n                           PyObject *exc_value, PyObject *exc_tb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:957,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_threadmodule.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 958
    functionName: _thread_lock_locked_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyMutex_IsLocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_locked_impl(lockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_locked_impl
      Src: /src/cpython/Modules/_threadmodule.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 971
    functionName: _thread_lock_locked_lock_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _thread_lock_locked_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_locked_lock_impl(lockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lockobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:976,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:977,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_threadmodule.c:978,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 979
    functionName: lock_repr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyMutex_IsLocked
    - lockobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Modules/_threadmodule.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 992
    functionName: _thread_lock__at_fork_reinit_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyMutex_at_fork_reinit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock__at_fork_reinit_impl(lockobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1010
    functionName: lock_new_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_new_impl(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1066,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1068
    functionName: rlock_traverse
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int rlock_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_threadmodule.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1074
    functionName: rlock_locked_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_IsLocked
    linkageType: ''
    returnType: int
    signature: int rlock_locked_impl(rlockobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_threadmodule.c:1079,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_threadmodule.c:1080,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1081,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1084
    functionName: rlock_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void rlock_dealloc(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lock_acquire_parse_timeout
      Src: /src/cpython/Modules/_threadmodule.c:1114,1
    - Dst: _PyRecursiveMutex_LockTimed
      Src: /src/cpython/Modules/_threadmodule.c:1118,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:1125,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - blocking
    - timeoutobj
    argTypes:
    - rlockobject*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1121
        line_start: 1121
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1130
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1130
    functionName: _thread_RLock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - lock_acquire_parse_timeout
    - PyErr_Occurred
    - _PyRecursiveMutex_LockTimed
    - PyBool_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_thread_RLock_acquire_impl(rlockobject *self, int blocking,\n
      \                          PyObject *timeoutobj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock_acquire_impl
      Src: /src/cpython/Modules/_threadmodule.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1138
    functionDepth: 3
    functionLinenumber: 1138
    functionLinenumberEnd: 1143
    functionName: _thread_RLock___enter___impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _thread_RLock_acquire_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock___enter___impl(rlockobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_TryUnlock
      Src: /src/cpython/Modules/_threadmodule.c:1164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1170
    functionName: _thread_RLock_release_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyRecursiveMutex_TryUnlock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock_release_impl(rlockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock_release_impl
      Src: /src/cpython/Modules/_threadmodule.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - exc_tb
    argTypes:
    - rlockobject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1189
    functionName: _thread_RLock___exit___impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _thread_RLock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_thread_RLock___exit___impl(rlockobject *self, PyObject
      *exc_type,\n                            PyObject *exc_value, PyObject *exc_tb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rlock_locked_impl
      Src: /src/cpython/Modules/_threadmodule.c:1201,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1203
    functionName: _thread_RLock_locked_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - rlock_locked_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock_locked_impl(rlockobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_threadmodule.c:1220,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:1224,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Modules/_threadmodule.c:1225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - rlockobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1228
    functionName: _thread_RLock__acquire_restore_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _Py_atomic_store_ullong_relaxed
    - _PyRecursiveMutex_Lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__acquire_restore_impl(rlockobject *self, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_IsLockedByCurrentThread
      Src: /src/cpython/Modules/_threadmodule.c:1241,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1242,1
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:1250,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_threadmodule.c:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1252
    functionName: _thread_RLock__release_save_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - PyErr_SetString
    - Py_BuildValue
    - _PyRecursiveMutex_Unlock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__release_save_impl(rlockobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_IsLockedByCurrentThread
      Src: /src/cpython/Modules/_threadmodule.c:1265,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_threadmodule.c:1266,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1269
    functionName: _thread_RLock__recursion_count_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - PyLong_FromSize_t
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__recursion_count_impl(rlockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_IsLockedByCurrentThread
      Src: /src/cpython/Modules/_threadmodule.c:1282,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1284
    functionName: _thread_RLock__is_owned_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__is_owned_impl(rlockobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1301
    functionName: rlock_new_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_new_impl(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlockobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1306,1
    - Dst: rlock_locked_impl
      Src: /src/cpython/Modules/_threadmodule.c:1308,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:1316,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1321
    functionName: rlock_repr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - rlockobject_CAST
    - rlock_locked_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1335
    functionName: _thread_RLock__at_fork_reinit_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__at_fork_reinit_impl(rlockobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1433
    functionName: localdummyobject_CAST
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: localdummyobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localdummyobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1437,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_threadmodule.c:1438,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1439,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:1440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1442
    functionName: localdummy_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - localdummyobject_CAST
    - Py_DECREF
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void localdummy_dealloc(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: 1477
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1477
    functionName: localobject_CAST
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: localobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_threadmodule.c:1491,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:1495,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_threadmodule.c:1500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1502,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:1505,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:1506,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:1506,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/_threadmodule.c:1508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1509,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:1514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - localobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1518
    functionName: create_sentinel_wr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyCFunction_New
    - PyWeakref_NewRef
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_sentinel_wr(localobject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_threadmodule.c:1526,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_threadmodule.c:1528,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1531,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_threadmodule.c:1538,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1539,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:1540,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1542,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Modules/_threadmodule.c:1549,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_threadmodule.c:1551,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_threadmodule.c:1552,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_threadmodule.c:1554,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_threadmodule.c:1559,1
    - Dst: create_localsdict
      Src: /src/cpython/Modules/_threadmodule.c:1566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1575,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 1538
        line_start: 1538
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1577
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1577
    functionName: local_new
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - get_thread_state
    - Py_DECREF
    - PyType_GetModuleByDef
    - PyErr_SetString
    - create_localsdict
    - _PyObject_SetDeferredRefcount
    - Py_XNewRef
    - PyDict_New
    - PyTypeObject*::tp_alloc
    - PySet_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1582,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1583,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1583,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1584,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1585,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1586,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1589
    functionName: local_traverse
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - localobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int local_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1594,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1595,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1596,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1597,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1600
    functionName: local_clear
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - localobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int local_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1605,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_threadmodule.c:1609,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_threadmodule.c:1611,1
    - Dst: local_clear
      Src: /src/cpython/Modules/_threadmodule.c:1612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1613,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:1614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1602
    functionDepth: 2
    functionLinenumber: 1602
    functionLinenumberEnd: 1616
    functionName: local_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - local_clear
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - localobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void local_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_threadmodule.c:1622,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1629,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1634,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - thread_module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1641
    functionName: create_localdummies
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_CLEAR
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: int
    signature: int create_localdummies(thread_module_state *state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_threadmodule.c:1650,1
    - Dst: create_localdummies
      Src: /src/cpython/Modules/_threadmodule.c:1654,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_threadmodule.c:1659,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_threadmodule.c:1664,1
    - Dst: create_sentinel_wr
      Src: /src/cpython/Modules/_threadmodule.c:1670,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1672,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_threadmodule.c:1673,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1676,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1679,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_threadmodule.c:1683,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1684,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_threadmodule.c:1685,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1688,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1691,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:1700,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:1701,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - self
    - state
    - localsdict
    - sentinel_wr
    argTypes:
    - localobject*
    - thread_module_state*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1703
    functionName: create_localsdict
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyDict_SetItem
    - PyErr_GetRaisedException
    - create_sentinel_wr
    - PyDict_DelItem
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - create_localdummies
    - PyDict_New
    - PySet_Add
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: "int create_localsdict(localobject *self, thread_module_state *state,\n
      \                 PyObject **localsdict, PyObject **sentinel_wr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: create_localdummies
      Src: /src/cpython/Modules/_threadmodule.c:1711,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_threadmodule.c:1717,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_threadmodule.c:1718,1
    - Dst: create_localsdict
      Src: /src/cpython/Modules/_threadmodule.c:1728,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1733,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1734,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1738,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_threadmodule.c:1739,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1742,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1744,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:1744,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_threadmodule.c:1746,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1747,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1755,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - localobject*
    - thread_module_state*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1743
        line_start: 1743
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1758
      start: 1708
    functionDepth: 3
    functionLinenumber: 1708
    functionLinenumberEnd: 1758
    functionName: _ldict
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - PyDict_DelItem
    - PySet_Discard
    - _PyThreadState_GET
    - create_localsdict
    - create_localdummies
    - PyErr_FormatUnraisable
    - PyDict_GetItemRef
    - Py_TYPE
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ldict(localobject *self, thread_module_state *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1763,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_threadmodule.c:1764,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1764,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1765,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:1766,1
    - Dst: _ldict
      Src: /src/cpython/Modules/_threadmodule.c:1768,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_threadmodule.c:1773,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:1773,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_threadmodule.c:1778,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1780,1
    - Dst: _PyObject_GenericSetAttrWithDict
      Src: /src/cpython/Modules/_threadmodule.c:1784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1785,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:1789,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - op
    - name
    - v
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 1764
        line_start: 1764
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1791
      start: 1760
    functionDepth: 4
    functionLinenumber: 1760
    functionLinenumberEnd: 1791
    functionName: local_setattro
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_thread_state
    - Py_DECREF
    - PyType_GetModuleByDef
    - _Py_ID
    - _ldict
    - PyObject_RichCompareBool
    - PyErr_Format
    - localobject_CAST
    - Py_TYPE
    - _PyObject_GenericSetAttrWithDict
    - assert
    linkageType: ''
    returnType: int
    signature: int local_setattro(PyObject *op, PyObject *name, PyObject *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1823,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_threadmodule.c:1824,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1824,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1825,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:1826,1
    - Dst: _ldict
      Src: /src/cpython/Modules/_threadmodule.c:1828,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_threadmodule.c:1832,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:1832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1837,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1841,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Modules/_threadmodule.c:1843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1844,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_threadmodule.c:1850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1852,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Modules/_threadmodule.c:1857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1858,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 1824
        line_start: 1824
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1860
      start: 1820
    functionDepth: 4
    functionLinenumber: 1820
    functionLinenumberEnd: 1860
    functionName: local_getattro
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - Py_DECREF
    - PyType_GetModuleByDef
    - PyDict_GetItemRef
    - _Py_ID
    - _PyObject_GenericGetAttrWithDict
    - Py_IS_TYPE
    - _ldict
    - PyObject_RichCompareBool
    - localobject_CAST
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_getattro(PyObject *op, PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_threadmodule.c:1867,1
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1868,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Modules/_threadmodule.c:1868,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_threadmodule.c:1876,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_threadmodule.c:1877,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1878,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_threadmodule.c:1883,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1889,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - locals_and_key
    - dummyweakref
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1864
    functionDepth: 1
    functionLinenumber: 1864
    functionLinenumberEnd: 1891
    functionName: clear_locals
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySet_Discard
    - PyErr_FormatUnraisable
    - localobject_CAST
    - _PyWeakref_GET_REF
    - PyTuple_GetItem
    - PyDict_Pop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_locals(PyObject *locals_and_key, PyObject *dummyweakref)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:1898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1905
    functionName: thread_daemon_threads_allowed
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_daemon_threads_allowed(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:1918,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/_threadmodule.c:1919,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1920,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/_threadmodule.c:1924,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1925,1
    - Dst: add_to_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:1934,1
    - Dst: ThreadHandle_start
      Src: /src/cpython/Modules/_threadmodule.c:1937,1
    - Dst: remove_from_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:1939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - state
    - func
    - args
    - kwargs
    - handle
    - daemon
    argTypes:
    - thread_module_state*
    - PyObject*
    - PyObject*
    - PyObject*
    - ThreadHandle*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1914
    functionDepth: 4
    functionLinenumber: 1914
    functionLinenumberEnd: 1945
    functionName: do_start_new_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetFinalizing
    - ThreadHandle_start
    - add_to_shutdown_handles
    - _PyInterpreterState_HasFeature
    - remove_from_shutdown_handles
    linkageType: ''
    returnType: int
    signature: "int do_start_new_thread(thread_module_state *state, PyObject *func,
      PyObject *args,\n                    PyObject *kwargs, ThreadHandle *handle,
      int daemon)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:1951,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_threadmodule.c:1953,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_threadmodule.c:1956,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1957,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_threadmodule.c:1961,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1962,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_threadmodule.c:1966,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1967,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_threadmodule.c:1972,1
    - Dst: ThreadHandle_new
      Src: /src/cpython/Modules/_threadmodule.c:1977,1
    - Dst: do_start_new_thread
      Src: /src/cpython/Modules/_threadmodule.c:1983,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:1985,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:1988,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:1989,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:1990,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - fargs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1947
    functionDepth: 5
    functionLinenumber: 1947
    functionLinenumberEnd: 1991
    functionName: thread_PyThread_start_new_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - PyTuple_Check
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PySys_Audit
    - PyCallable_Check
    - ThreadHandle_ident
    - do_start_new_thread
    - PyLong_FromUnsignedLongLong
    - ThreadHandle_new
    - PyDict_Check
    - ThreadHandle_decref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_start_new_thread(PyObject *module, PyObject *fargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2019,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_threadmodule.c:2021,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_threadmodule.c:2027,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2028,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:2036,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2037,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_threadmodule.c:2041,1
    - Dst: PyThreadHandleObject_new
      Src: /src/cpython/Modules/_threadmodule.c:2047,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_threadmodule.c:2053,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_threadmodule.c:2056,1
    - Dst: do_start_new_thread
      Src: /src/cpython/Modules/_threadmodule.c:2060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2064,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - module
    - fargs
    - fkwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2012
    functionDepth: 5
    functionLinenumber: 2012
    functionLinenumberEnd: 2068
    functionName: thread_PyThread_start_joinable_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_thread_state
    - PyTuple_New
    - Py_DECREF
    - PyErr_SetString
    - PyCallable_Check
    - PyArg_ParseTupleAndKeywords
    - do_start_new_thread
    - PyThreadHandleObject_new
    - Py_IS_TYPE
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nthread_PyThread_start_joinable_thread(PyObject *module,
      PyObject *fargs,\n                                      PyObject *fkwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_threadmodule.c:2087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2089
    functionName: thread_PyThread_exit_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_exit_thread(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_threadmodule.c:2108,1
    - Dst: PyErr_SetInterruptEx
      Src: /src/cpython/Modules/_threadmodule.c:2112,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2117
    functionName: thread_PyThread_interrupt_main
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetInterruptEx
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_interrupt_main(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2134,1
    - Dst: lock_new_impl
      Src: /src/cpython/Modules/_threadmodule.c:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2136
    functionName: thread_PyThread_allocate_lock
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - lock_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_allocate_lock(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_threadmodule.c:2154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2156,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:2159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2160
    functionName: thread_get_ident
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromUnsignedLongLong
    - PyThread_get_thread_ident_ex
    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/cpython/Modules/_threadmodule.c:2178,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_threadmodule.c:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2175
    functionDepth: 0
    functionLinenumber: 2175
    functionLinenumberEnd: 2180
    functionName: thread_get_native_id
    functionSourceFile: /src/cpython/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/cpython/Modules/_threadmodule.c:2194,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_threadmodule.c:2195,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Modules/_threadmodule.c:2195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2196
    functionName: thread__count
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize
    - PyLong_FromSsize_t
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread__count(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_threadmodule.c:2217,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2221,1
    - Dst: PyThread_get_stacksize
      Src: /src/cpython/Modules/_threadmodule.c:2226,1
    - Dst: PyThread_set_stacksize
      Src: /src/cpython/Modules/_threadmodule.c:2228,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_threadmodule.c:2230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2236,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_threadmodule.c:2241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2242
    functionName: thread_stack_size
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyThread_set_stacksize
    - PyErr_Format
    - PyThread_get_stacksize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_stack_size(PyObject *self, PyObject *args)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_WriteString
      Src: /src/cpython/Modules/_threadmodule.c:2270,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_threadmodule.c:2276,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:2276,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Modules/_threadmodule.c:2281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2285,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_threadmodule.c:2288,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:2289,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Modules/_threadmodule.c:2291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2295,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_threadmodule.c:2298,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Modules/_threadmodule.c:2300,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Modules/_threadmodule.c:2306,1
    - Dst: _PyErr_Display
      Src: /src/cpython/Modules/_threadmodule.c:2311,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_threadmodule.c:2314,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - file
    - exc_type
    - exc_value
    - exc_traceback
    - thread
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2319
    functionName: thread_excepthook_file
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyFile_Flush
    - _PyErr_Display
    - Py_DECREF
    - PyFile_WriteString
    - PyObject_GetOptionalAttr
    - PyUnicode_FromFormat
    - _Py_ID
    - PyFile_WriteObject
    - PyThread_get_thread_ident_ex
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2346,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:2348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2349,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2356,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2363,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2364,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2365,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Modules/_threadmodule.c:2368,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:2368,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:2372,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_threadmodule.c:2378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2383,1
    - Dst: thread_excepthook_file
      Src: /src/cpython/Modules/_threadmodule.c:2390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2343
    functionDepth: 2
    functionLinenumber: 2343
    functionLinenumberEnd: 2398
    functionName: thread_excepthook
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_thread_state
    - Py_DECREF
    - PySys_GetOptionalAttr
    - PyObject_GetAttrString
    - thread_excepthook_file
    - PyErr_SetString
    - _Py_ID
    - Py_IS_TYPE
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_excepthook(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:2409,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:2410,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/_threadmodule.c:2410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2406
    functionDepth: 1
    functionLinenumber: 2406
    functionLinenumberEnd: 2411
    functionName: thread__is_main_interpreter
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _Py_IsMainInterpreter
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread__is_main_interpreter(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_threadmodule.c:2422,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2423,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:2429,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Modules/_threadmodule.c:2431,1
    - Dst: llist_data
      Src: /src/cpython/Modules/_threadmodule.c:2432,1
    - Dst: ThreadHandle_incref
      Src: /src/cpython/Modules/_threadmodule.c:2434,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:2439,1
    - Dst: ThreadHandle_join
      Src: /src/cpython/Modules/_threadmodule.c:2448,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:2449,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:2451,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:2455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2419
    functionDepth: 4
    functionLinenumber: 2419
    functionLinenumberEnd: 2459
    functionName: thread_shutdown
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_incref
    - get_thread_state
    - llist_data
    - HEAD_LOCK
    - llist_for_each_safe
    - PyErr_FormatUnraisable
    - HEAD_UNLOCK
    - PyThread_get_thread_ident_ex
    - ThreadHandle_join
    - ThreadHandle_decref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_shutdown(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2470,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_threadmodule.c:2471,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2472,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:2475,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:2476,1
    - Dst: PyThreadHandleObject_new
      Src: /src/cpython/Modules/_threadmodule.c:2480,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:2484,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:2487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - module
    - identobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2489
      start: 2467
    functionDepth: 3
    functionLinenumber: 2467
    functionLinenumberEnd: 2489
    functionName: thread__make_thread_handle
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyThreadHandleObject_new
    - PyLong_AsUnsignedLongLong
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread__make_thread_handle(PyObject *module, PyObject *identobj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:2501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2498
    functionDepth: 1
    functionLinenumber: 2498
    functionLinenumberEnd: 2502
    functionName: thread__get_main_thread_ident
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread__get_main_thread_ident(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/cpython/Modules/_threadmodule.c:2534,1
    - Dst: pthread_getname_np
      Src: /src/cpython/Modules/_threadmodule.c:2536,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_threadmodule.c:2536,1
    - Dst: pthread_get_name_np
      Src: /src/cpython/Modules/_threadmodule.c:2539,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_threadmodule.c:2539,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_threadmodule.c:2543,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_threadmodule.c:2547,1
    - Dst: strlen
      Src: /src/cpython/Modules/_threadmodule.c:2547,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_threadmodule.c:2549,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:2553,1
    - Dst: pGetThreadDescription
      Src: /src/cpython/Modules/_threadmodule.c:2556,1
    - Dst: GetCurrentThread
      Src: /src/cpython/Modules/_threadmodule.c:2556,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_threadmodule.c:2557,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_threadmodule.c:2558,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_threadmodule.c:2562,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/_threadmodule.c:2563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (pGetThreadDescription != NULL)
      pos:
        line_end: 2552
        line_start: 2552
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 2566
      start: 2527
    functionDepth: 1
    functionLinenumber: 2527
    functionLinenumberEnd: 2566
    functionName: _thread__get_name_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - pthread_get_name_np
    - pthread_self
    - pGetThreadDescription
    - strlen
    - GetCurrentThread
    - LocalFree
    - PyErr_SetFromWindowsErr
    - PyUnicode_DecodeUTF8
    - PyErr_SetFromErrno
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - FAILED
    - pthread_getname_np
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread__get_name_impl(PyObject *module)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:2590,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_threadmodule.c:2594,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_threadmodule.c:2601,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_threadmodule.c:2603,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_threadmodule.c:2603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2606,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_threadmodule.c:2609,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_threadmodule.c:2613,1
    - Dst: pthread_setname_np
      Src: /src/cpython/Modules/_threadmodule.c:2615,1
    - Dst: pthread_self
      Src: /src/cpython/Modules/_threadmodule.c:2617,1
    - Dst: pthread_setname_np
      Src: /src/cpython/Modules/_threadmodule.c:2618,1
    - Dst: pthread_self
      Src: /src/cpython/Modules/_threadmodule.c:2620,1
    - Dst: pthread_setname_np
      Src: /src/cpython/Modules/_threadmodule.c:2621,1
    - Dst: pthread_self
      Src: /src/cpython/Modules/_threadmodule.c:2623,1
    - Dst: pthread_set_name_np
      Src: /src/cpython/Modules/_threadmodule.c:2625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2627,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_threadmodule.c:2630,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:2635,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_threadmodule.c:2638,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_threadmodule.c:2646,1
    - Dst: pSetThreadDescription
      Src: /src/cpython/Modules/_threadmodule.c:2654,1
    - Dst: GetCurrentThread
      Src: /src/cpython/Modules/_threadmodule.c:2654,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_threadmodule.c:2655,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_threadmodule.c:2656,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_threadmodule.c:2657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - module
    - name_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (pSetThreadDescription != NULL)
      pos:
        line_end: 2634
        line_start: 2634
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 2662
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2662
    functionName: _thread_set_name_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - Py_SETREF
    - PyBytes_GET_SIZE
    - GetCurrentThread
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - pSetThreadDescription
    - Py_DECREF
    - pthread_set_name_np
    - PyBytes_FromStringAndSize
    - pthread_setname_np
    - PyErr_SetFromErrno
    - Py_UNICODE_IS_HIGH_SURROGATE
    - FAILED
    - PyBytes_AS_STRING
    - pthread_self
    - _PyInterpreterState_GET
    - PyUnicode_AsEncodedString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_set_name_impl(PyObject *module, PyObject *name_obj)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2716,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_threadmodule.c:2717,1
    - Dst: PyThread_init_thread
      Src: /src/cpython/Modules/_threadmodule.c:2720,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_threadmodule.c:2723,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_threadmodule.c:2727,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_threadmodule.c:2732,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2736,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_threadmodule.c:2740,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_threadmodule.c:2745,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2749,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_threadmodule.c:2754,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_threadmodule.c:2760,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2764,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_threadmodule.c:2769,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_threadmodule.c:2774,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2778,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_threadmodule.c:2784,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_threadmodule.c:2785,1
    - Dst: floor
      Src: /src/cpython/Modules/_threadmodule.c:2787,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_threadmodule.c:2789,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_threadmodule.c:2790,1
    - Dst: llist_init
      Src: /src/cpython/Modules/_threadmodule.c:2794,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_threadmodule.c:2797,1
    - Dst: GetModuleHandleW
      Src: /src/cpython/Modules/_threadmodule.c:2804,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_threadmodule.c:2807,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_threadmodule.c:2811,1
    - Dst: PyObject_DelAttrString
      Src: /src/cpython/Modules/_threadmodule.c:2817,1
    - Dst: PyObject_DelAttrString
      Src: /src/cpython/Modules/_threadmodule.c:2822,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2713
    functionDepth: 1
    functionLinenumber: 2713
    functionLinenumberEnd: 2829
    functionName: thread_module_exec
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_MIN
    - get_thread_state
    - PyThread_init_thread
    - PyTime_AsSecondsDouble
    - floor
    - PyType_FromSpec
    - PyType_FromModuleAndSpec
    - PyModule_GetDict
    - PyDict_SetItemString
    - PyStructSequence_NewType
    - llist_init
    - PyModule_AddIntConstant
    - PyModule_Add
    - GetModuleHandleW
    - GetProcAddress
    - PyObject_DelAttrString
    - PyFloat_FromDouble
    linkageType: ''
    returnType: int
    signature: int thread_module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2835,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2836,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2837,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2838,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2839,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2840,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2832
    functionDepth: 1
    functionLinenumber: 2832
    functionLinenumberEnd: 2843
    functionName: thread_module_traverse
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int thread_module_traverse(PyObject *module, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2848,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2849,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2850,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2851,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2852,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2853,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2854,1
    - Dst: clear_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:2858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2845
    functionDepth: 2
    functionLinenumber: 2845
    functionLinenumberEnd: 2860
    functionName: thread_module_clear
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - clear_shutdown_handles
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int thread_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_module_clear
      Src: /src/cpython/Modules/_threadmodule.c:2865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2862
    functionDepth: 3
    functionLinenumber: 2862
    functionLinenumberEnd: 2866
    functionName: thread_module_free
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - thread_module_clear
    linkageType: ''
    returnType: void
    signature: void thread_module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_threadmodule.c:2896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2893
    functionDepth: 1
    functionLinenumber: 2893
    functionLinenumberEnd: 2897
    functionName: PyInit__thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__thread(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_heapqmodule.c:32,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_heapqmodule.c:32,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:33,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:35,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:41,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:46,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:47,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:48,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:49,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:50,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:53,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:54,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:60,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:63,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:64,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: 31
        line_start: 31
        source_file: /src/cpython/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 68
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 68
    functionName: siftdown
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyList_ITEMS
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyList_Check
    - PyObject_RichCompareBool
    - FT_ATOMIC_STORE_PTR_RELAXED
    - 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/cpython/Modules/_heapqmodule.c:77,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_heapqmodule.c:77,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:78,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:81,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:86,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:94,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:95,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:96,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:97,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:98,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:102,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:104,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:112,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:113,1
    - Dst: siftdown
      Src: /src/cpython/Modules/_heapqmodule.c:117,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: 76
        line_start: 76
        source_file: /src/cpython/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 118
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 118
    functionName: siftup
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyList_ITEMS
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyList_Check
    - siftdown
    - PyObject_RichCompareBool
    - FT_ATOMIC_STORE_PTR_RELAXED
    - assert
    linkageType: ''
    returnType: int
    signature: int siftup(PyListObject *heap, Py_ssize_t pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_heapqmodule.c:136,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_heapqmodule.c:142,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:142,1
    - Dst: siftdown
      Src: /src/cpython/Modules/_heapqmodule.c:146,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: _heapq_heappush_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyList_GET_SIZE
    - Py_NewRef
    - siftdown
    - _PyList_AppendTakeRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappush_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:159,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:161,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:165,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:166,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_heapqmodule.c:167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:168,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:175,1
    - Dst: _PyList_CAST
      Src: /src/cpython/Modules/_heapqmodule.c:176,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:177,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 183
    functionName: heappop_internal
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - PyList_SetSlice
    - PyErr_SetString
    - siftup_func
    - FT_ATOMIC_STORE_PTR_RELAXED
    - _PyList_CAST
    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/cpython/Modules/_heapqmodule.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: _heapq_heappop_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heappop_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappop_impl(PyObject *module, PyObject *heap)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:207,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:208,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:212,1
    - Dst: _PyList_CAST
      Src: /src/cpython/Modules/_heapqmodule.c:213,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:214,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:214,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - heap
    - item
    - siftup_func
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: heapreplace_internal
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_SetString
    - siftup_func
    - Py_NewRef
    - FT_ATOMIC_STORE_PTR_RELAXED
    - _PyList_CAST
    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/cpython/Modules/_heapqmodule.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: _heapq_heapreplace_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapreplace_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapreplace_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:270,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:271,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:274,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:275,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:277,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:281,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:285,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:289,1
    - Dst: _PyList_CAST
      Src: /src/cpython/Modules/_heapqmodule.c:290,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:291,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:291,1
    - Dst: siftup
      Src: /src/cpython/Modules/_heapqmodule.c:292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 297
    functionName: _heapq_heappushpop_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_SetString
    - Py_NewRef
    - siftup
    - PyObject_RichCompareBool
    - FT_ATOMIC_STORE_PTR_RELAXED
    - _PyList_CAST
    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: 309
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: keep_top_bit
    functionSourceFile: /src/cpython/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/cpython/Modules/_heapqmodule.c:336,1
    - Dst: keep_top_bit
      Src: /src/cpython/Modules/_heapqmodule.c:337,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:343,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 362
    functionName: cache_friendly_heapify
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:373,1
    - Dst: cache_friendly_heapify
      Src: /src/cpython/Modules/_heapqmodule.c:375,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: heapify_internal
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - siftup_func
    - cache_friendly_heapify
    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/cpython/Modules/_heapqmodule.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: _heapq_heapify_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapify_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapify_impl(PyObject *module, PyObject *heap)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_heapqmodule.c:414,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_heapqmodule.c:414,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:415,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:417,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:423,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:427,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:428,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:431,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:434,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:435,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:441,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:444,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - heap
    - startpos
    - pos
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyList_Check(heap))
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/cpython/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 449
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 449
    functionName: siftdown_max
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyList_ITEMS
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyList_Check
    - Py_NewRef
    - PyObject_RichCompareBool
    - FT_ATOMIC_STORE_PTR_RELAXED
    - 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/cpython/Modules/_heapqmodule.c:458,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_heapqmodule.c:458,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:459,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:462,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:467,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:475,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:476,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:479,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:483,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:484,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:485,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:493,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:494,1
    - Dst: siftdown_max
      Src: /src/cpython/Modules/_heapqmodule.c:498,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: 457
        line_start: 457
        source_file: /src/cpython/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 499
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 499
    functionName: siftup_max
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyList_ITEMS
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_SetString
    - siftdown_max
    - PyList_Check
    - PyObject_RichCompareBool
    - FT_ATOMIC_STORE_PTR_RELAXED
    - assert
    linkageType: ''
    returnType: int
    signature: int siftup_max(PyListObject *heap, Py_ssize_t pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_heapqmodule.c:517,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_heapqmodule.c:523,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:523,1
    - Dst: siftdown_max
      Src: /src/cpython/Modules/_heapqmodule.c:527,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 532
    functionName: _heapq_heappush_max_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyList_GET_SIZE
    - siftdown_max
    - Py_NewRef
    - _PyList_AppendTakeRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappush_max_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heappop_internal
      Src: /src/cpython/Modules/_heapqmodule.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: _heapq_heappop_max_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heappop_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappop_max_impl(PyObject *module, PyObject *heap)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heapreplace_internal
      Src: /src/cpython/Modules/_heapqmodule.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: _heapq_heapreplace_max_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapreplace_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapreplace_max_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heapify_internal
      Src: /src/cpython/Modules/_heapqmodule.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: _heapq_heapify_max_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapify_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapify_max_impl(PyObject *module, PyObject *heap)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:607,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:608,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:611,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:612,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:614,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:619,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:622,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:623,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:627,1
    - Dst: _PyList_CAST
      Src: /src/cpython/Modules/_heapqmodule.c:628,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:629,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:629,1
    - Dst: siftup_max
      Src: /src/cpython/Modules/_heapqmodule.c:630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 635
    functionName: _heapq_heappushpop_max_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - PyErr_SetString
    - Py_NewRef
    - PyObject_RichCompareBool
    - siftup_max
    - FT_ATOMIC_STORE_PTR_RELAXED
    - _PyList_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappushpop_max_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_heapqmodule.c:782,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_heapqmodule.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 786
    functionName: heapq_exec
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int heapq_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_heapqmodule.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 811
    functionName: PyInit__heapq
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__heapq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_abc.c:30,1
    - Dst: assert
      Src: /src/cpython/Modules/_abc.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/cpython/Modules/_abc.c
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: get_abc_state
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _abcmodule_state
    signature: '_abcmodule_state *

      get_abc_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Modules/_abc.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - _abcmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: get_invalidation_counter
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_invalidation_counter(_abcmodule_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_uint64
      Src: /src/cpython/Modules/_abc.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - _abcmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: increment_invalidation_counter
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_uint64
    linkageType: ''
    returnType: void
    signature: void increment_invalidation_counter(_abcmodule_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: _abc_data_CAST
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _abc_data_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Modules/_abc.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - impl
    argTypes:
    - _abc_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: get_cache_version
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_cache_version(_abc_data *impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_uint64
      Src: /src/cpython/Modules/_abc.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - impl
    - version
    argTypes:
    - _abc_data*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: set_cache_version
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint64
    linkageType: ''
    returnType: void
    signature: void set_cache_version(_abc_data *impl, uint64_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _abc_data_CAST
      Src: /src/cpython/Modules/_abc.c:95,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_abc.c:96,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_abc.c:96,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_abc.c:97,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_abc.c:98,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_abc.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: abc_data_traverse
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _abc_data_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int abc_data_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _abc_data_CAST
      Src: /src/cpython/Modules/_abc.c:106,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_abc.c:107,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_abc.c:108,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_abc.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: abc_data_clear
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _abc_data_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int abc_data_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_abc.c:116,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_abc.c:117,1
    - Dst: abc_data_clear
      Src: /src/cpython/Modules/_abc.c:118,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_abc.c:119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: abc_data_dealloc
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - abc_data_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void abc_data_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_abc.c:126,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_abc.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:134,1
    - Dst: get_invalidation_counter
      Src: /src/cpython/Modules/_abc.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 143
    functionName: abc_data_new
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - get_invalidation_counter
    - _PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      abc_data_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:167,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_abc.c:168,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:168,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_abc.c:172,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: _get_impl
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 1
    functionsReached:
    - get_abc_state
    - Py_DECREF
    - _Py_ID
    - PyErr_SetString
    - PyObject_GetAttr
    - Py_IS_TYPE
    linkageType: ''
    returnType: _abc_data
    signature: '_abc_data *

      _get_impl(PyObject *module, PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:184,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:186,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_abc.c:187,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_abc.c:190,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_abc.c:192,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_abc.c:193,1
    - Dst: PySet_Contains
      Src: /src/cpython/Modules/_abc.c:198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - impl
    - pset
    - obj
    argTypes:
    - _abc_data*
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 201
    functionName: _in_weak_set
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyWeakref_NewRef
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PySet_GET_SIZE
    - PyErr_ExceptionMatches
    - PySet_Contains
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _in_weak_set(_abc_data *impl, PyObject **pset, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Modules/_abc.c:206,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_abc.c:210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - setweakref
    - objweakref
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: _destroy
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 16
    functionsReached:
    - Py_DECREF
    - _PyWeakref_GET_REF
    - PySet_Discard
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _destroy(PyObject *setweakref, PyObject *objweakref)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:226,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_abc.c:229,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:231,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_abc.c:238,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Modules/_abc.c:242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:244,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_abc.c:247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:250,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_abc.c:253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - impl
    - pset
    - obj
    argTypes:
    - _abc_data*
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 257
    functionName: _add_to_weak_set
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyWeakref_NewRef
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyCFunction_NewEx
    - PySet_Add
    - PySet_New
    linkageType: ''
    returnType: int
    signature: int _add_to_weak_set(_abc_data *impl, PyObject **pset, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/cpython/Modules/_abc.c:274,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:279,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:281,1
    - Dst: PySet_Clear
      Src: /src/cpython/Modules/_abc.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 288
    functionName: _abc__reset_registry
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PySet_Clear
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__reset_registry(PyObject *module, PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/cpython/Modules/_abc.c:305,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:310,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:313,1
    - Dst: PySet_Clear
      Src: /src/cpython/Modules/_abc.c:314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:315,1
    - Dst: PySet_Clear
      Src: /src/cpython/Modules/_abc.c:319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: _abc__reset_caches
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PySet_Clear
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__reset_caches(PyObject *module, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/cpython/Modules/_abc.c:344,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:349,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_abc.c:350,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_abc.c:351,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_abc.c:352,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_abc.c:353,1
    - Dst: get_cache_version
      Src: /src/cpython/Modules/_abc.c:354,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 358
    functionName: _abc__get_dump
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_BuildValue
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - get_cache_version
    - _get_impl
    - PySet_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__get_dump(PyObject *module, PyObject *self)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_abc.c:365,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_abc.c:373,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:373,1
    - Dst: PyMapping_Items
      Src: /src/cpython/Modules/_abc.c:380,1
    - Dst: assert
      Src: /src/cpython/Modules/_abc.c:384,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_abc.c:384,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_abc.c:385,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_abc.c:386,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_abc.c:387,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_abc.c:392,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:395,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_abc.c:400,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_abc.c:401,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_abc.c:404,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Modules/_abc.c:405,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_abc.c:407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:413,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_abc.c:417,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:417,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_abc.c:421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:422,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_abc.c:426,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_abc.c:427,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_abc.c:430,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:430,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_abc.c:437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:441,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_abc.c:443,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_abc.c:444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:450,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Modules/_abc.c:454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:455,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_abc.c:457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:465,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_abc.c:466,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_abc.c:471,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_abc.c:478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_abc.c:479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_abc.c:480,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 98
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(items))
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Modules/_abc.c
    constantsTouched: []
    func_position:
      end: 482
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 482
    functionName: compute_abstract_methods
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetIter
    - PyErr_SetString
    - PyIter_Next
    - PyList_Check
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyMapping_Items
    - PyErr_Occurred
    - PyList_GET_SIZE
    - _PyObject_IsAbstract
    - PyTuple_GET_ITEM
    - PySet_Add
    - Py_DECREF
    - PyTuple_Check
    - _Py_ID
    - PyObject_SetAttr
    - PySequence_Fast_GET_ITEM
    - PyList_GET_ITEM
    - PySequence_Fast_GET_SIZE
    - PyObject_GetOptionalAttr
    - PyFrozenSet_New
    - PySequence_Fast
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: int
    signature: int compute_abstract_methods(PyObject *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:500,1
    - Dst: compute_abstract_methods
      Src: /src/cpython/Modules/_abc.c:502,1
    - Dst: abc_data_new
      Src: /src/cpython/Modules/_abc.c:507,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_abc.c:511,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:515,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_abc.c:520,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_abc.c:522,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_abc.c:524,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:524,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_abc.c:527,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_abc.c:528,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_abc.c:532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:533,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_abc.c:534,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:538,1
    - Dst: _PyType_SetFlags
      Src: /src/cpython/Modules/_abc.c:541,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 544
    functionName: _abc__abc_init
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - compute_abstract_methods
    - PyType_Check
    - Py_XDECREF
    - get_abc_state
    - Py_DECREF
    - _PyType_SetFlags
    - abc_data_new
    - PyLong_AsLong
    - PyErr_Occurred
    - _Py_ID
    - PyErr_SetString
    - PyObject_SetAttr
    - PyLong_CheckExact
    - _PyType_GetDict
    - PyDict_Pop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__abc_init(PyObject *module, PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_abc.c:561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:562,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_abc.c:565,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_abc.c:567,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_abc.c:574,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:577,1
    - Dst: _get_impl
      Src: /src/cpython/Modules/_abc.c:583,1
    - Dst: _add_to_weak_set
      Src: /src/cpython/Modules/_abc.c:587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:591,1
    - Dst: increment_invalidation_counter
      Src: /src/cpython/Modules/_abc.c:594,1
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:594,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_abc.c:597,1
    - Dst: PyType_GetFlags
      Src: /src/cpython/Modules/_abc.c:599,1
    - Dst: _PyType_SetFlagsRecursive
      Src: /src/cpython/Modules/_abc.c:601,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_abc.c:606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - module
    - self
    - subclass
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 607
    functionName: _abc__abc_register_impl
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - increment_invalidation_counter
    - PyObject_IsSubclass
    - Py_DECREF
    - get_abc_state
    - PyType_GetFlags
    - PyErr_SetString
    - Py_NewRef
    - _PyType_SetFlagsRecursive
    - _get_impl
    - _add_to_weak_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__abc_register_impl(PyObject *module, PyObject *self, PyObject *subclass)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/cpython/Modules/_abc.c:627,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_abc.c:632,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:634,1
    - Dst: _in_weak_set
      Src: /src/cpython/Modules/_abc.c:638,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_abc.c:643,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_abc.c:646,1
    - Dst: get_cache_version
      Src: /src/cpython/Modules/_abc.c:648,1
    - Dst: get_invalidation_counter
      Src: /src/cpython/Modules/_abc.c:648,1
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:648,1
    - Dst: _in_weak_set
      Src: /src/cpython/Modules/_abc.c:649,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_abc.c:654,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_abc.c:659,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:659,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_abc.c:663,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:663,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_abc.c:669,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_abc.c:671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:674,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_abc.c:675,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:675,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_abc.c:681,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_abc.c:685,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_abc.c:686,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - module
    - self
    - instance
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 688
    functionName: _abc__abc_instancecheck_impl
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_IsTrue
    - get_abc_state
    - Py_DECREF
    - _Py_ID
    - _in_weak_set
    - PyObject_GetAttr
    - Py_NewRef
    - get_cache_version
    - Py_SETREF
    - _get_impl
    - PyObject_CallMethodOneArg
    - Py_TYPE
    - get_invalidation_counter
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_abc__abc_instancecheck_impl(PyObject *module, PyObject
      *self,\n                             PyObject *instance)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_abc.c:713,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:714,1
    - Dst: _get_impl
      Src: /src/cpython/Modules/_abc.c:722,1
    - Dst: _in_weak_set
      Src: /src/cpython/Modules/_abc.c:728,1
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:737,1
    - Dst: get_invalidation_counter
      Src: /src/cpython/Modules/_abc.c:739,1
    - Dst: get_cache_version
      Src: /src/cpython/Modules/_abc.c:740,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:743,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:745,1
    - Dst: PySet_Clear
      Src: /src/cpython/Modules/_abc.c:746,1
    - Dst: set_cache_version
      Src: /src/cpython/Modules/_abc.c:749,1
    - Dst: _in_weak_set
      Src: /src/cpython/Modules/_abc.c:752,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_abc.c:763,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_abc.c:764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:769,1
    - Dst: _add_to_weak_set
      Src: /src/cpython/Modules/_abc.c:770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:777,1
    - Dst: _add_to_weak_set
      Src: /src/cpython/Modules/_abc.c:778,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:785,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:790,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_abc.c:793,1
    - Dst: _add_to_weak_set
      Src: /src/cpython/Modules/_abc.c:794,1
    - Dst: subclasscheck_check_registry
      Src: /src/cpython/Modules/_abc.c:802,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_abc.c:808,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_abc.c:812,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_abc.c:813,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_abc.c:816,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/_abc.c:817,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_abc.c:821,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:822,1
    - Dst: _add_to_weak_set
      Src: /src/cpython/Modules/_abc.c:824,1
    - Dst: _add_to_weak_set
      Src: /src/cpython/Modules/_abc.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:842,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_abc.c:843,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_abc.c:844,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 125
    argCount: 3
    argNames:
    - module
    - self
    - subclass
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 845
    functionName: _abc__abc_subclasscheck_impl
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_END_CRITICAL_SECTION
    - PyObject_IsSubclass
    - PyErr_SetString
    - PyList_Check
    - Py_BEGIN_CRITICAL_SECTION
    - _in_weak_set
    - PyList_GET_SIZE
    - set_cache_version
    - Py_XNewRef
    - _get_impl
    - PyType_Check
    - PySet_Clear
    - Py_DECREF
    - PyType_IsSubtype
    - _Py_ID
    - get_cache_version
    - get_invalidation_counter
    - get_abc_state
    - subclasscheck_check_registry
    - PyObject_CallMethod
    - PyList_GetItemRef
    - PyObject_CallMethodOneArg
    - _add_to_weak_set
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_abc__abc_subclasscheck_impl(PyObject *module, PyObject
      *self,\n                             PyObject *subclass)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _in_weak_set
      Src: /src/cpython/Modules/_abc.c:853,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:864,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_abc.c:866,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_abc.c:873,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Modules/_abc.c:881,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_abc.c:883,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_abc.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:893,1
    - Dst: _add_to_weak_set
      Src: /src/cpython/Modules/_abc.c:899,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_abc.c:909,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - impl
    - subclass
    - result
    argTypes:
    - _abc_data*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 848
    functionDepth: 2
    functionLinenumber: 848
    functionLinenumberEnd: 911
    functionName: subclasscheck_check_registry
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_IsSubclass
    - Py_DECREF
    - _in_weak_set
    - PyFrozenSet_New
    - PyWeakref_GetRef
    - _PySet_NextEntry
    - _add_to_weak_set
    linkageType: ''
    returnType: int
    signature: "int subclasscheck_check_registry(_abc_data *impl, PyObject *subclass,\n
      \                            PyObject **result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:927,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_abc.c:928,1
    - Dst: get_invalidation_counter
      Src: /src/cpython/Modules/_abc.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 923
    functionDepth: 2
    functionLinenumber: 923
    functionLinenumberEnd: 929
    functionName: _abc_get_cache_token_impl
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - get_abc_state
    - get_invalidation_counter
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc_get_cache_token_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:946,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_abc.c:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 954
    functionName: _abcmodule_exec
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - get_abc_state
    linkageType: ''
    returnType: int
    signature: int _abcmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:959,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_abc.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 962
    functionName: _abcmodule_traverse
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - get_abc_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _abcmodule_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_abc_state
      Src: /src/cpython/Modules/_abc.c:967,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_abc.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 970
    functionName: _abcmodule_clear
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - get_abc_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _abcmodule_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _abcmodule_clear
      Src: /src/cpython/Modules/_abc.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 976
    functionName: _abcmodule_free
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _abcmodule_clear
    linkageType: ''
    returnType: void
    signature: void _abcmodule_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_abc.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1001
    functionName: PyInit__abc
    functionSourceFile: /src/cpython/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: SIMPLE_FORMAT
    functionSourceFile: /src/cpython/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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: FIX_FORMAT
    functionSourceFile: /src/cpython/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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: NDArray_Check
    functionSourceFile: /src/cpython/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: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: CHECK_LIST_OR_TUPLE
    functionSourceFile: /src/cpython/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: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: PyMem_XFree
    functionSourceFile: /src/cpython/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: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: HAVE_PTR
    functionSourceFile: /src/cpython/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: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: ADJUST_PTR
    functionSourceFile: /src/cpython/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: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: ND_IS_CONSUMER
    functionSourceFile: /src/cpython/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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: ND_C_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ND_FORTRAN_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ND_ANY_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: REQ_INDIRECT
    functionSourceFile: /src/cpython/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: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: REQ_C_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: REQ_F_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: REQ_ANY_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: REQ_STRIDES
    functionSourceFile: /src/cpython/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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: REQ_SHAPE
    functionSourceFile: /src/cpython/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: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: REQ_WRITABLE
    functionSourceFile: /src/cpython/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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: REQ_FORMAT
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_FORMAT(flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:121,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:125,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:127,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:136,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:138,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testbuffer.c:139,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: 160
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 160
    functionName: ndbuf_new
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyErr_SetString
    - PyErr_NoMemory
    - PyMem_Malloc
    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/cpython/Modules/_testbuffer.c:167,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:168,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:169,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:170,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:171,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testbuffer.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ndbuf
    argTypes:
    - ndbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 174
    functionName: ndbuf_free
    functionSourceFile: /src/cpython/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: 183
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: ndbuf_push
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - nd
    - elt
    argTypes:
    - NDArrayObject*
    - ndbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: ndbuf_delete
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nd
    argTypes:
    - NDArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: ndbuf_pop
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: ndarray_new
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:225,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:228,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:229,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:230,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:232,1
    - Dst: ndbuf_pop
      Src: /src/cpython/Modules/_testbuffer.c:236,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testbuffer.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: ndarray_dealloc
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_XFree
    - ndbuf_pop
    - PyObject_Free
    - ND_IS_CONSUMER
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void ndarray_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/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/cpython/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/cpython/Modules/_testbuffer.c:271,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/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/cpython/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/cpython/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/cpython/Modules/_testbuffer.c:312,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_testbuffer.c:312,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:313,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testbuffer.c:313,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testbuffer.c:313,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_testbuffer.c:315,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:319,1
    - Dst: get_nmemb
      Src: /src/cpython/Modules/_testbuffer.c:320,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:321,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testbuffer.c:323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:325,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testbuffer.c:330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:333,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:340,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:344,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:345,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:350,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:352,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_testbuffer.c:353,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testbuffer.c:353,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_testbuffer.c:354,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:355,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testbuffer.c:357,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testbuffer.c:357,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_testbuffer.c:358,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:360,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:361,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:365,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_testbuffer.c:371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:376,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testbuffer.c:379,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:382,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testbuffer.c:383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:387,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: (PyObject_CheckBuffer(obj))
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (PyList_Check(items) || PyTuple_Check(items))
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (nmemb >= 1)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 391
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 391
    functionName: pack_from_list
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyList_Check
    - PyBytes_Check
    - PyObject_CallObject
    - Py_INCREF
    - PyTuple_New
    - PyObject_CallFunctionObjArgs
    - PyTuple_GET_ITEM
    - Py_DECREF
    - PyTuple_Check
    - PyLong_Check
    - PySequence_Length
    - PySequence_Fast_GET_ITEM
    - get_nmemb
    - PyFloat_Check
    - PySequence_Fast_GET_SIZE
    - PyObject_GetAttrString
    - PyObject_CheckBuffer
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - Py_XINCREF
    - assert
    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/cpython/Modules/_testbuffer.c:405,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_testbuffer.c:409,1
    - Dst: get_nmemb
      Src: /src/cpython/Modules/_testbuffer.c:413,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:414,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Modules/_testbuffer.c:416,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testbuffer.c:420,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testbuffer.c:424,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testbuffer.c:428,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:432,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:433,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_testbuffer.c:435,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testbuffer.c:435,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_testbuffer.c:436,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:437,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testbuffer.c:439,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testbuffer.c:439,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_testbuffer.c:440,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:442,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:447,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_testbuffer.c:452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:454,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testbuffer.c:461,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:461,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:462,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:464,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:465,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:466,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:467,1
    - Dst: Py_XDECREF
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 470
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 470
    functionName: pack_single
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyList_Check
    - PyBytes_Check
    - PyObject_CallObject
    - PyLong_FromLong
    - PyTuple_New
    - PyObject_CallFunctionObjArgs
    - PyTuple_GET_ITEM
    - Py_DECREF
    - PyTuple_Check
    - PyLong_Check
    - PySequence_Length
    - PySequence_Fast_GET_ITEM
    - get_nmemb
    - PyFloat_Check
    - PyObject_GetAttrString
    - PyTuple_SET_ITEM
    - PyMemoryView_FromMemory
    - Py_XINCREF
    - PyUnicode_FromString
    - assert
    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/cpython/Modules/_testbuffer.c:480,1
    - Dst: HAVE_PTR
      Src: /src/cpython/Modules/_testbuffer.c:483,1
    - Dst: HAVE_PTR
      Src: /src/cpython/Modules/_testbuffer.c:483,1
    - Dst: memmove
      Src: /src/cpython/Modules/_testbuffer.c:485,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:489,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Modules/_testbuffer.c:491,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:492,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Modules/_testbuffer.c:495,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:496,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Modules/_testbuffer.c:503,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Modules/_testbuffer.c:504,1
    - Dst: copy_rec
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    - condition: (mem != NULL)
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 511
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 511
    functionName: copy_rec
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 1
    functionsReached:
    - ADJUST_PTR
    - copy_rec
    - memmove
    - HAVE_PTR
    - memcpy
    - 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/cpython/Modules/_testbuffer.c:518,1
    - Dst: FIX_FORMAT
      Src: /src/cpython/Modules/_testbuffer.c:518,1
    - Dst: FIX_FORMAT
      Src: /src/cpython/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/cpython/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/cpython/Modules/_testbuffer.c:541,1
    - Dst: cmp_structure
      Src: /src/cpython/Modules/_testbuffer.c:543,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:544,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:553,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:555,1
    - Dst: copy_rec
      Src: /src/cpython/Modules/_testbuffer.c:560,1
    - Dst: PyMem_XFree
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 567
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 567
    functionName: copy_buffer
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_XFree
    - PyErr_SetString
    - copy_rec
    - cmp_structure
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int copy_buffer(Py_buffer *dest, Py_buffer *src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testbuffer.c:581,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Modules/_testbuffer.c:585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:587,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_testbuffer.c:591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:593,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:597,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:598,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testbuffer.c:599,1
    - Dst: Py_DECREF
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_CallFunction
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTuple_GET_SIZE
    - PyMemoryView_FromMemory
    - 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/cpython/Modules/_testbuffer.c:617,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:618,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:619,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:622,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_testbuffer.c:623,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:626,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:627,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testbuffer.c:628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:629,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testbuffer.c:635,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Modules/_testbuffer.c:640,1
    - Dst: unpack_rec
      Src: /src/cpython/Modules/_testbuffer.c:642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:646,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    - condition: (shape != NULL)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (strides != NULL)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 654
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 654
    functionName: unpack_rec
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_INCREF
    - ADJUST_PTR
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - PyList_SET_ITEM
    - PyTuple_GET_ITEM
    - unpack_rec
    - memcpy
    - assert
    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/cpython/Modules/_testbuffer.c:674,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:680,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:680,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:681,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:682,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:689,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:689,1
    - Dst: strides_from_shape
      Src: /src/cpython/Modules/_testbuffer.c:690,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testbuffer.c:695,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_testbuffer.c:699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:700,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testbuffer.c:704,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:708,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:710,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Modules/_testbuffer.c:714,1
    - Dst: unpack_rec
      Src: /src/cpython/Modules/_testbuffer.c:718,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:723,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:725,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testbuffer.c:726,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:728,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - nd
    argTypes:
    - NDArrayObject*
    assertStmts:
    - condition: (base->ndim <= 1)
      pos:
        line_end: 681
        line_start: 681
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (base->strides == NULL)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (ND_C_CONTIGUOUS(nd->head->flags))
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (ND_C_CONTIGUOUS(nd->head->flags))
      pos:
        line_end: 688
        line_start: 688
        source_file: /src/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 731
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 731
    functionName: ndarray_as_list
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_C_CONTIGUOUS
    - Py_XDECREF
    - PyMem_XFree
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetString
    - strides_from_shape
    - PyObject_CallFunctionObjArgs
    - PyErr_NoMemory
    - PyMemoryView_FromMemory
    - unpack_rec
    - PyUnicode_FromString
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_as_list(NDArrayObject *nd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_testbuffer.c:791,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:794,1
    - Dst: Py_DECREF
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - 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/cpython/Modules/_testbuffer.c:806,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:809,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:809,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:812,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_testbuffer.c:815,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_testbuffer.c:815,1
    - Dst: Py_DECREF
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strcpy
    - PyUnicode_AsASCIIString
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      get_format(PyObject *format)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_testbuffer.c:829,1
    - Dst: pack_from_list
      Src: /src/cpython/Modules/_testbuffer.c:833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:834,1
    - Dst: get_format
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - pack_from_list
    - get_format
    - Py_DECREF
    - PyMemoryView_FromBuffer
    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/cpython/Modules/_testbuffer.c:854,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:856,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:861,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testbuffer.c:862,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:863,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testbuffer.c:866,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:869,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testbuffer.c:870,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testbuffer.c:871,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:875,1
    - Dst: PyMem_Free
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_Check
    - PyMem_Free
    - PyMem_New
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - PyErr_NoMemory
    - PyLong_AsSsize_t
    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/cpython/Modules/_testbuffer.c:892,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    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/cpython/Modules/_testbuffer.c:936,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 969
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 969
    functionName: verify_structure
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - assert
    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/cpython/Modules/_testbuffer.c:1039,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:1040,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:1048,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:1050,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:1054,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testbuffer.c:1056,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:1083,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    - condition: (base->suboffsets == NULL)
      pos:
        line_end: 1039
        line_start: 1039
        source_file: /src/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 1106
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1106
    functionName: init_suboffsets
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - memcpy
    - PyMem_Free
    - assert
    - PyMem_Malloc
    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/cpython/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/cpython/Modules/_testbuffer.c:1128,1
    - Dst: seq_as_ssize_array
      Src: /src/cpython/Modules/_testbuffer.c:1137,1
    - Dst: seq_as_ssize_array
      Src: /src/cpython/Modules/_testbuffer.c:1143,1
    - Dst: strides_from_shape
      Src: /src/cpython/Modules/_testbuffer.c:1146,1
    - Dst: verify_structure
      Src: /src/cpython/Modules/_testbuffer.c:1150,1
    - Dst: init_len
      Src: /src/cpython/Modules/_testbuffer.c:1158,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:1161,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:1163,1
    - Dst: init_suboffsets
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - init_len
    - PyBuffer_IsContiguous
    - PyErr_SetString
    - verify_structure
    - strides_from_shape
    - seq_as_ssize_array
    - init_suboffsets
    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/cpython/Modules/_testbuffer.c:1186,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:1187,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:1189,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/cpython/Modules/_testbuffer.c:1196,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:1197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1200,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:1204,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1205,1
    - Dst: get_itemsize
      Src: /src/cpython/Modules/_testbuffer.c:1212,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1215,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testbuffer.c:1223,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/cpython/Modules/_testbuffer.c:1228,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testbuffer.c:1229,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:1233,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1237,1
    - Dst: ndbuf_new
      Src: /src/cpython/Modules/_testbuffer.c:1241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1243,1
    - Dst: init_simple
      Src: /src/cpython/Modules/_testbuffer.c:1248,1
    - Dst: init_structure
      Src: /src/cpython/Modules/_testbuffer.c:1250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1257,1
    - Dst: ndbuf_free
      Src: /src/cpython/Modules/_testbuffer.c:1258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - ndbuf_new
    - PyErr_SetString
    - ndbuf_free
    - init_simple
    - CHECK_LIST_OR_TUPLE
    - PyErr_Format
    - PyTuple_Pack
    - init_structure
    - get_itemsize
    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/cpython/Modules/_testbuffer.c:1270,1
    - Dst: ndbuf_push
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndbuf_push
    - init_ndbuf
    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/cpython/Modules/_testbuffer.c:1296,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_testbuffer.c:1301,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1304,1
    - Dst: ndarray_init_staticbuf
      Src: /src/cpython/Modules/_testbuffer.c:1312,1
    - Dst: init_flags
      Src: /src/cpython/Modules/_testbuffer.c:1315,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1323,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1329,1
    - Dst: ndarray_push_base
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndarray_push_base
    - PyObject_CheckBuffer
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - init_flags
    - ndarray_init_staticbuf
    linkageType: ''
    returnType: int
    signature: int ndarray_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testbuffer.c:1359,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1364,1
    - Dst: ND_IS_CONSUMER
      Src: /src/cpython/Modules/_testbuffer.c:1368,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1369,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:1374,1
    - Dst: ndarray_push_base
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndarray_push_base
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - ND_IS_CONSUMER
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_push(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ND_IS_CONSUMER
      Src: /src/cpython/Modules/_testbuffer.c:1391,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1392,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:1397,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1403,1
    - Dst: ndbuf_pop
      Src: /src/cpython/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/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_IS_CONSUMER
    - PyErr_SetString
    - ndbuf_pop
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_pop(PyObject *self, PyObject *dummy)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testbuffer.c:1426,1
    - Dst: REQ_SHAPE
      Src: /src/cpython/Modules/_testbuffer.c:1438,1
    - Dst: REQ_STRIDES
      Src: /src/cpython/Modules/_testbuffer.c:1439,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1449,1
    - Dst: REQ_WRITABLE
      Src: /src/cpython/Modules/_testbuffer.c:1456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1457,1
    - Dst: REQ_FORMAT
      Src: /src/cpython/Modules/_testbuffer.c:1461,1
    - Dst: REQ_C_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1470,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1470,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1471,1
    - Dst: REQ_F_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1475,1
    - Dst: ND_FORTRAN_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1475,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1476,1
    - Dst: REQ_ANY_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1480,1
    - Dst: ND_ANY_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1480,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1481,1
    - Dst: REQ_INDIRECT
      Src: /src/cpython/Modules/_testbuffer.c:1485,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1486,1
    - Dst: REQ_STRIDES
      Src: /src/cpython/Modules/_testbuffer.c:1490,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1491,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1492,1
    - Dst: REQ_SHAPE
      Src: /src/cpython/Modules/_testbuffer.c:1498,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:1504,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1516,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:1516,1
    - Dst: ND_FORTRAN_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:1519,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:1519,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:1522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1523,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testbuffer.c:1528,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1532
    functionName: ndarray_getbuf
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_C_CONTIGUOUS
    - REQ_FORMAT
    - REQ_C_CONTIGUOUS
    - PyBuffer_IsContiguous
    - PyErr_SetString
    - ND_ANY_CONTIGUOUS
    - ND_FORTRAN_CONTIGUOUS
    - REQ_INDIRECT
    - Py_NewRef
    - REQ_SHAPE
    - PyObject_GetBuffer
    - REQ_STRIDES
    - PyErr_Format
    - REQ_WRITABLE
    - REQ_F_CONTIGUOUS
    - REQ_ANY_CONTIGUOUS
    linkageType: ''
    returnType: int
    signature: int ndarray_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ND_IS_CONSUMER
      Src: /src/cpython/Modules/_testbuffer.c:1538,1
    - Dst: ndbuf_delete
      Src: /src/cpython/Modules/_testbuffer.c:1541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - op
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1534
    functionDepth: 3
    functionLinenumber: 1534
    functionLinenumberEnd: 1543
    functionName: ndarray_releasebuf
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_IS_CONSUMER
    - ndbuf_delete
    linkageType: ''
    returnType: void
    signature: void ndarray_releasebuf(PyObject *op, Py_buffer *view)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:1564,1
    - Dst: SIMPLE_FORMAT
      Src: /src/cpython/Modules/_testbuffer.c:1564,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1572,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Modules/_testbuffer.c:1583,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: 1563
        line_start: 1563
        source_file: /src/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 1586
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1586
    functionName: ptr_from_index
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - SIMPLE_FORMAT
    - PyErr_SetString
    - ADJUST_PTR
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      ptr_from_index(Py_buffer *base, Py_ssize_t index)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1597,1
    - Dst: ptr_from_index
      Src: /src/cpython/Modules/_testbuffer.c:1601,1
    - Dst: unpack_single
      Src: /src/cpython/Modules/_testbuffer.c:1606,1
    - Dst: ndarray_new
      Src: /src/cpython/Modules/_testbuffer.c:1612,1
    - Dst: ndarray_init_staticbuf
      Src: /src/cpython/Modules/_testbuffer.c:1616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1617,1
    - Dst: init_flags
      Src: /src/cpython/Modules/_testbuffer.c:1631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1635
    functionName: ndarray_item
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - unpack_single
    - Py_DECREF
    - PyErr_SetString
    - ptr_from_index
    - ndarray_new
    - init_flags
    - ndarray_init_staticbuf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_item(PyObject *op, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_testbuffer.c:1718,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_testbuffer.c:1721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - base
    - key
    - dim
    argTypes:
    - Py_buffer*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1713
    functionDepth: 1
    functionLinenumber: 1713
    functionLinenumberEnd: 1740
    functionName: init_slice
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:1748,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:1749,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:1755,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:1774,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:1775,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:1776,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:1777,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - base
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1779
    functionName: copy_structure
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_XFree
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int copy_structure(Py_buffer *base)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testbuffer.c:1790,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:1790,1
    - Dst: unpack_single
      Src: /src/cpython/Modules/_testbuffer.c:1791,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testbuffer.c:1794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1797,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_testbuffer.c:1801,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:1802,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testbuffer.c:1803,1
    - Dst: ndarray_item
      Src: /src/cpython/Modules/_testbuffer.c:1805,1
    - Dst: ndarray_new
      Src: /src/cpython/Modules/_testbuffer.c:1808,1
    - Dst: ndarray_init_staticbuf
      Src: /src/cpython/Modules/_testbuffer.c:1813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1814,1
    - Dst: copy_structure
      Src: /src/cpython/Modules/_testbuffer.c:1821,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1822,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_testbuffer.c:1827,1
    - Dst: init_slice
      Src: /src/cpython/Modules/_testbuffer.c:1829,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testbuffer.c:1832,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:1837,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:1839,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_testbuffer.c:1840,1
    - Dst: init_slice
      Src: /src/cpython/Modules/_testbuffer.c:1842,1
    - Dst: init_len
      Src: /src/cpython/Modules/_testbuffer.c:1850,1
    - Dst: init_flags
      Src: /src/cpython/Modules/_testbuffer.c:1851,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:1857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1860,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1781
    functionDepth: 3
    functionLinenumber: 1781
    functionLinenumberEnd: 1862
    functionName: ndarray_subscript
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - ndarray_new
    - init_flags
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - copy_structure
    - PyTuple_GET_ITEM
    - PyErr_Format
    - ndarray_init_staticbuf
    - unpack_single
    - Py_DECREF
    - PyTuple_Check
    - ndarray_item
    - init_slice
    - Py_NewRef
    - PyIndex_Check
    - PyLong_AsSsize_t
    - init_len
    - PySlice_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_subscript(PyObject *op, PyObject *key)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1877,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1881,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testbuffer.c:1886,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:1886,1
    - Dst: pack_single
      Src: /src/cpython/Modules/_testbuffer.c:1888,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1891,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_testbuffer.c:1895,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:1897,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testbuffer.c:1898,1
    - Dst: ptr_from_index
      Src: /src/cpython/Modules/_testbuffer.c:1901,1
    - Dst: pack_single
      Src: /src/cpython/Modules/_testbuffer.c:1905,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testbuffer.c:1909,1
    - Dst: ndarray_subscript
      Src: /src/cpython/Modules/_testbuffer.c:1912,1
    - Dst: copy_buffer
      Src: /src/cpython/Modules/_testbuffer.c:1915,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1916,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:1919,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - op
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1865
    functionDepth: 4
    functionLinenumber: 1865
    functionLinenumberEnd: 1921
    functionName: ndarray_ass_subscript
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - copy_buffer
    - PyTuple_GET_SIZE
    - ndarray_subscript
    - Py_DECREF
    - PyTuple_Check
    - PyErr_Occurred
    - PyErr_SetString
    - ptr_from_index
    - pack_single
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyIndex_Check
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int ndarray_ass_subscript(PyObject *op, PyObject *key, PyObject *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testbuffer.c:1930,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_testbuffer.c:1933,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:1934,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_testbuffer.c:1938,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_testbuffer.c:1941,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testbuffer.c:1943,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:1948,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:1951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1957,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1959
    functionName: slice_indices
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PySlice_AdjustIndices
    - PyTuple_New
    - Py_DECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyTuple_SET_ITEM
    - PySlice_Unpack
    - PySlice_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_indices(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testbuffer.c:1987,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testbuffer.c:1989,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:1994,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:1996,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:1999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - array
    - len
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1980
    functionDepth: 1
    functionLinenumber: 1980
    functionLinenumberEnd: 2003
    functionName: ssize_array_as_tuple
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    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/cpython/Modules/_testbuffer.c:2009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 2005
    functionDepth: 0
    functionLinenumber: 2005
    functionLinenumberEnd: 2010
    functionName: ndarray_get_flags
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_flags(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2018
    functionName: ndarray_get_offset
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_offset(PyObject *op, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testbuffer.c:2029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2030
    functionName: ndarray_get_obj
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_obj(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2038
    functionName: ndarray_get_nbytes
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_nbytes(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testbuffer.c:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2046
    functionName: ndarray_get_readonly
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_readonly(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:2053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2054
    functionName: ndarray_get_itemsize
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_itemsize(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testbuffer.c:2062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2063
    functionName: ndarray_get_format
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_format(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:2070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2071
    functionName: ndarray_get_ndim
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_ndim(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssize_array_as_tuple
      Src: /src/cpython/Modules/_testbuffer.c:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2073
    functionDepth: 2
    functionLinenumber: 2073
    functionLinenumberEnd: 2079
    functionName: ndarray_get_shape
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ssize_array_as_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_shape(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssize_array_as_tuple
      Src: /src/cpython/Modules/_testbuffer.c:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2081
    functionDepth: 2
    functionLinenumber: 2081
    functionLinenumberEnd: 2087
    functionName: ndarray_get_strides
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ssize_array_as_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_strides(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssize_array_as_tuple
      Src: /src/cpython/Modules/_testbuffer.c:2094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2089
    functionDepth: 2
    functionLinenumber: 2089
    functionLinenumberEnd: 2095
    functionName: ndarray_get_suboffsets
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ssize_array_as_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_suboffsets(PyObject *op, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2101,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:2103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2104,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testbuffer.c:2108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2109
    functionName: ndarray_c_contig
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_C_CONTIGUOUS
    - PyBool_FromLong
    - PyErr_SetString
    - PyBuffer_IsContiguous
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_c_contig(PyObject *self, void *dummy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2115,1
    - Dst: ND_FORTRAN_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:2117,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2118,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testbuffer.c:2122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2123
    functionName: ndarray_fortran_contig
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyErr_SetString
    - ND_FORTRAN_CONTIGUOUS
    - PyBuffer_IsContiguous
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_fortran_contig(PyObject *self, void *dummy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2129,1
    - Dst: ND_ANY_CONTIGUOUS
      Src: /src/cpython/Modules/_testbuffer.c:2131,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2132,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testbuffer.c:2136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2137
    functionName: ndarray_contig
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - ND_ANY_CONTIGUOUS
    - PyErr_SetString
    - PyBuffer_IsContiguous
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_contig(PyObject *self, void *dummy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ndarray_as_list
      Src: /src/cpython/Modules/_testbuffer.c:2164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2161
    functionDepth: 3
    functionLinenumber: 2161
    functionLinenumberEnd: 2165
    functionName: ndarray_tolist
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:2176,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testbuffer.c:2177,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:2179,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:2180,1
    - Dst: assert
      Src: /src/cpython/Modules/_testbuffer.c:2181,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:2183,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:2185,1
    - Dst: strides_from_shape
      Src: /src/cpython/Modules/_testbuffer.c:2192,1
    - Dst: copy_buffer
      Src: /src/cpython/Modules/_testbuffer.c:2195,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testbuffer.c:2198,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:2201,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testbuffer.c:2202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (src->shape != NULL)
      pos:
        line_end: 2178
        line_start: 2178
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (src->strides != NULL)
      pos:
        line_end: 2179
        line_start: 2179
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (src->ndim > 0)
      pos:
        line_end: 2180
        line_start: 2180
        source_file: /src/cpython/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 2204
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2204
    functionName: ndarray_tobytes
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_C_CONTIGUOUS
    - copy_buffer
    - PyMem_XFree
    - PyBytes_FromStringAndSize
    - strides_from_shape
    - PyMem_Free
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_tobytes(PyObject *self, PyObject *dummy)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2215,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2220,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:2225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:2227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2237
    functionName: ndarray_add_suboffsets
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_add_suboffsets(PyObject *self, PyObject *dummy)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ND_IS_CONSUMER
      Src: /src/cpython/Modules/_testbuffer.c:2256,1
    - Dst: NDArray_Check
      Src: /src/cpython/Modules/_testbuffer.c:2258,1
    - Dst: ND_IS_CONSUMER
      Src: /src/cpython/Modules/_testbuffer.c:2258,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2262,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_testbuffer.c:2269,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testbuffer.c:2271,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:2272,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:2280,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testbuffer.c:2284,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:2285,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_testbuffer.c:2290,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:2294,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:2299,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:2303,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testbuffer.c:2307,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_testbuffer.c:2311,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2312
    functionName: ndarray_memoryview_from_buffer
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - NDArray_Check
    - strcpy
    - strlen
    - PyErr_SetString
    - ND_IS_CONSUMER
    - PyErr_NoMemory
    - PyMemoryView_FromBuffer
    - PyErr_Format
    - memcpy
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_memoryview_from_buffer(PyObject *self, PyObject *dummy)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testbuffer.c:2326,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/cpython/Modules/_testbuffer.c:2330,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testbuffer.c:2331,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:2335,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testbuffer.c:2339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2340,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_testbuffer.c:2346,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testbuffer.c:2347,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testbuffer.c:2348,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testbuffer.c:2351,1
    - Dst: PyBuffer_GetPointer
      Src: /src/cpython/Modules/_testbuffer.c:2358,1
    - Dst: unpack_single
      Src: /src/cpython/Modules/_testbuffer.c:2359,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:2362,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2317
    functionDepth: 1
    functionLinenumber: 2317
    functionLinenumberEnd: 2364
    functionName: get_pointer
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - unpack_single
    - PySequence_Fast_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyBuffer_GetPointer
    - PyBuffer_Release
    - CHECK_LIST_OR_TUPLE
    - PyErr_Format
    - PySequence_Fast_GET_ITEM
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_pointer(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_testbuffer.c:2369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2366
    functionDepth: 1
    functionLinenumber: 2366
    functionLinenumberEnd: 2370
    functionName: get_sizeof_void_p
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:2378,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2379,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_testbuffer.c:2384,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_testbuffer.c:2389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:2390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - order
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2372
    functionDepth: 1
    functionLinenumber: 2372
    functionLinenumberEnd: 2399
    functionName: get_ascii_order
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyUnicode_AsASCIIString
    - PyUnicode_Check
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: char
    signature: char get_ascii_order(PyObject *order)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testbuffer.c:2411,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testbuffer.c:2415,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2416,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testbuffer.c:2421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testbuffer.c:2422,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2426,1
    - Dst: get_ascii_order
      Src: /src/cpython/Modules/_testbuffer.c:2431,1
    - Dst: PyMemoryView_GetContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2402
    functionDepth: 2
    functionLinenumber: 2402
    functionLinenumberEnd: 2436
    functionName: get_contiguous
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyLong_Check
    - PyMemoryView_GetContiguous
    - get_ascii_order
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_contiguous(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testbuffer.c:2450,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testbuffer.c:2454,1
    - Dst: get_ascii_order
      Src: /src/cpython/Modules/_testbuffer.c:2458,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testbuffer.c:2463,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testbuffer.c:2465,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2469,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testbuffer.c:2473,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:2476,1
    - Dst: PyMem_XFree
      Src: /src/cpython/Modules/_testbuffer.c:2477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2439
    functionDepth: 2
    functionLinenumber: 2439
    functionLinenumberEnd: 2479
    functionName: py_buffer_to_contiguous
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_XFree
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBuffer_ToContiguous
    - PyObject_GetBuffer
    - PyBuffer_Release
    - get_ascii_order
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_buffer_to_contiguous(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/_testbuffer.c:2485,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testbuffer.c:2488,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testbuffer.c:2490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - fmt1
    - fmt2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2481
    functionDepth: 0
    functionLinenumber: 2481
    functionLinenumberEnd: 2491
    functionName: fmtcmp
    functionSourceFile: /src/cpython/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: 2511
      start: 2493
    functionDepth: 0
    functionLinenumber: 2493
    functionLinenumberEnd: 2511
    functionName: arraycmp
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:2522,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testbuffer.c:2526,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2527,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testbuffer.c:2532,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2533,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:2536,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2540,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2540,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2541,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2541,1
    - Dst: fmtcmp
      Src: /src/cpython/Modules/_testbuffer.c:2549,1
    - Dst: arraycmp
      Src: /src/cpython/Modules/_testbuffer.c:2556,1
    - Dst: arraycmp
      Src: /src/cpython/Modules/_testbuffer.c:2557,1
    - Dst: arraycmp
      Src: /src/cpython/Modules/_testbuffer.c:2558,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_testbuffer.c:2563,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:2570,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:2571,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testbuffer.c:2574,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 36
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2514
    functionDepth: 1
    functionLinenumber: 2514
    functionLinenumberEnd: 2575
    functionName: cmp_contig
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBuffer_IsContiguous
    - PyArg_ParseTuple
    - PyErr_SetString
    - arraycmp
    - Py_NewRef
    - PyObject_GetBuffer
    - fmtcmp
    - PyBuffer_Release
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmp_contig(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testbuffer.c:2586,1
    - Dst: get_ascii_order
      Src: /src/cpython/Modules/_testbuffer.c:2590,1
    - Dst: NDArray_Check
      Src: /src/cpython/Modules/_testbuffer.c:2595,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2598,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testbuffer.c:2601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2602,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_testbuffer.c:2607,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testbuffer.c:2608,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testbuffer.c:2611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2577
    functionDepth: 2
    functionLinenumber: 2577
    functionLinenumberEnd: 2612
    functionName: is_contiguous
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - NDArray_Check
    - PyBuffer_IsContiguous
    - PyArg_ParseTuple
    - PyErr_SetString
    - Py_NewRef
    - PyObject_GetBuffer
    - PyBuffer_Release
    - get_ascii_order
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_contiguous(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testbuffer.c:2623,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_testbuffer.c:2627,1
    - Dst: ndarray_tobytes
      Src: /src/cpython/Modules/_testbuffer.c:2631,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_testbuffer.c:2636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:2637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2614
    functionDepth: 3
    functionLinenumber: 2614
    functionLinenumberEnd: 2639
    functionName: ndarray_hash
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_Hash
    - ndarray_tobytes
    - Py_DECREF
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t ndarray_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testbuffer.c:2725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2726
    functionName: staticarray_new
    functionSourceFile: /src/cpython/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/cpython/Modules/_testbuffer.c:2737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2728
    functionDepth: 1
    functionLinenumber: 2728
    functionLinenumberEnd: 2742
    functionName: staticarray_init
    functionSourceFile: /src/cpython/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_Free
      Src: /src/cpython/Modules/_testbuffer.c:2747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2744
    functionDepth: 1
    functionLinenumber: 2744
    functionLinenumberEnd: 2748
    functionName: staticarray_dealloc
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void staticarray_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testbuffer.c:2762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2752
    functionDepth: 0
    functionLinenumber: 2752
    functionLinenumberEnd: 2766
    functionName: staticarray_getbuf
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int staticarray_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/_testbuffer.c:2841,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testbuffer.c:2842,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testbuffer.c:2845,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/_testbuffer.c:2849,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testbuffer.c:2850,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testbuffer.c:2854,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testbuffer.c:2859,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testbuffer.c:2863,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testbuffer.c:2868,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2880,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2881,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2882,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2883,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2884,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2885,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2886,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2887,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2888,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2890,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2891,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2892,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2893,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2894,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2895,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2896,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2897,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2898,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2899,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2900,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2901,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2902,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2903,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2904,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2905,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2906,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2908,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testbuffer.c:2909,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2914
    functionName: _testbuffer_exec
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyObject_GetAttrString
    - Py_SET_TYPE
    - PyType_Ready
    - ADD_INT_MACRO
    - PyImport_ImportModule
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _testbuffer_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mod
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2873
    functionDepth: 0
    functionLinenumber: 2873
    functionLinenumberEnd: 2879
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(mod, macro)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testbuffer.c:2919,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testbuffer.c:2924,1
    - Dst: _testbuffer_exec
      Src: /src/cpython/Modules/_testbuffer.c:2926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testbuffer.c:2927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2916
    functionDepth: 2
    functionLinenumber: 2916
    functionLinenumberEnd: 2931
    functionName: PyInit__testbuffer
    functionSourceFile: /src/cpython/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - _testbuffer_exec
    - PyModule_Create
    - Py_DECREF
    - PyUnstable_Module_SetGIL
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testbuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tracemalloc.c:23,1
    - Dst: _PyTraceMalloc_IsTracing
      Src: /src/cpython/Modules/_tracemalloc.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: _tracemalloc_is_tracing_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _PyTraceMalloc_IsTracing
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_is_tracing_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_ClearTraces
      Src: /src/cpython/Modules/_tracemalloc.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: _tracemalloc_clear_traces_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_ClearTraces
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_clear_traces_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_GetTraces
      Src: /src/cpython/Modules/_tracemalloc.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: _tracemalloc__get_traces_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_GetTraces
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc__get_traces_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_GetObjectTraceback
      Src: /src/cpython/Modules/_tracemalloc.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: _tracemalloc__get_object_traceback
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_GetObjectTraceback
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc__get_object_traceback(PyObject *module, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_Start
      Src: /src/cpython/Modules/_tracemalloc.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - nframe
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: _tracemalloc_start_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_Start
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_start_impl(PyObject *module, int nframe)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_Stop
      Src: /src/cpython/Modules/_tracemalloc.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: _tracemalloc_stop_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_Stop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_stop_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_tracemalloc.c:136,1
    - Dst: _PyTraceMalloc_GetTracebackLimit
      Src: /src/cpython/Modules/_tracemalloc.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: _tracemalloc_get_traceback_limit_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_GetTracebackLimit
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_traceback_limit_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_tracemalloc.c:151,1
    - Dst: _PyTraceMalloc_GetMemory
      Src: /src/cpython/Modules/_tracemalloc.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: _tracemalloc_get_tracemalloc_memory_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyTraceMalloc_GetMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_tracemalloc_memory_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_GetTracedMemory
      Src: /src/cpython/Modules/_tracemalloc.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: _tracemalloc_get_traced_memory_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_GetTracedMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_traced_memory_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_ResetPeak
      Src: /src/cpython/Modules/_tracemalloc.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: _tracemalloc_reset_peak_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_ResetPeak
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_reset_peak_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_tracemalloc.c:219,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_tracemalloc.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: PyInit__tracemalloc
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyUnstable_Module_SetGIL
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__tracemalloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/pyexpat.c:64,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: pyexpat_get_state
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: pyexpat_state
    signature: 'pyexpat_state *

      pyexpat_get_state(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: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: xmlparseobject_CAST
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmlparseobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setter
      Src: /src/cpython/Modules/pyexpat.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handler_info
    - xml_parser
    - xml_handler
    argTypes:
    - struct HandlerInfo*
    - XML_Parser
    - xmlhandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: CALL_XML_HANDLER_SETTER
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - setter
    linkageType: ''
    returnType: void
    signature: "void CALL_XML_HANDLER_SETTER(const struct HandlerInfo *handler_info,\n
      \                       XML_Parser xml_parser, xmlhandler xml_handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:131,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/pyexpat.c:133,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - err
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: set_error_attr
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_SetAttrString
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int set_error_attr(PyObject *err, const char *name, int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetErrorLineNumber
      Src: /src/cpython/Modules/pyexpat.c:150,1
    - Dst: XML_GetErrorColumnNumber
      Src: /src/cpython/Modules/pyexpat.c:151,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/pyexpat.c:153,1
    - Dst: XML_ErrorString
      Src: /src/cpython/Modules/pyexpat.c:154,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/pyexpat.c:157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:158,1
    - Dst: set_error_attr
      Src: /src/cpython/Modules/pyexpat.c:160,1
    - Dst: set_error_attr
      Src: /src/cpython/Modules/pyexpat.c:161,1
    - Dst: set_error_attr
      Src: /src/cpython/Modules/pyexpat.c:162,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/pyexpat.c:163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - state
    - self
    - code
    argTypes:
    - pyexpat_state*
    - xmlparseobject*
    - enum XML_Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: set_error
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 13
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - XML_GetErrorLineNumber
    - PyUnicode_FromFormat
    - XML_GetErrorColumnNumber
    - PyErr_SetObject
    - XML_ErrorString
    - set_error_attr
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_error(pyexpat_state *state, 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: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: have_handler
    functionSourceFile: /src/cpython/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/cpython/Modules/pyexpat.c:188,1
    - Dst: strlen
      Src: /src/cpython/Modules/pyexpat.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: conv_string_to_unicode
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      conv_string_to_unicode(const XML_Char *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conv_string_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: conv_string_to_unicode_void
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - conv_string_to_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      conv_string_to_unicode_void(void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/pyexpat.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: conv_string_len_to_unicode
    functionSourceFile: /src/cpython/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: 224
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: error_external_entity_ref_handler
    functionSourceFile: /src/cpython/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: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: noop_character_data_handler
    functionSourceFile: /src/cpython/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/cpython/Modules/pyexpat.c:241,1
    - Dst: XML_SetExternalEntityRefHandler
      Src: /src/cpython/Modules/pyexpat.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: flag_error
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetExternalEntityRefHandler
    - clear_handlers
    linkageType: ''
    returnType: void
    signature: void flag_error(xmlparseobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/pyexpat.c:252,1
    - Dst: _PyTraceback_Add
      Src: /src/cpython/Modules/pyexpat.c:254,1
    - Dst: XML_StopParser
      Src: /src/cpython/Modules/pyexpat.c:255,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: 258
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: call_with_frame
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - XML_StopParser
    - _PyTraceback_Add
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncall_with_frame(const char *funcname, int lineno, PyObject*
      func, PyObject* args,\n                xmlparseobject *self)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conv_string_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:263,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/pyexpat.c:270,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/pyexpat.c:271,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:275,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - str
    argTypes:
    - xmlparseobject*
    - char*
    assertStmts:
    - condition: ((value != NULL) == !PyErr_Occurred())
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 278
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 278
    functionName: string_intern
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_Occurred
    - PyDict_GetItemRef
    - conv_string_to_unicode
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      string_intern(xmlparseobject *self, const char* str)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: have_handler
      Src: /src/cpython/Modules/pyexpat.c:289,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/pyexpat.c:292,1
    - Dst: conv_string_len_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:297,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:298,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/cpython/Modules/pyexpat.c:299,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:303,1
    - Dst: call_with_frame
      Src: /src/cpython/Modules/pyexpat.c:306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:310,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:312,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/cpython/Modules/pyexpat.c:313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - self
    - buffer
    - len
    argTypes:
    - xmlparseobject*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 319
    functionName: call_character_handler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetCharacterDataHandler
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - call_with_frame
    - have_handler
    - flag_error
    - conv_string_len_to_unicode
    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/cpython/Modules/pyexpat.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: flush_character_buffer
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - call_character_handler
    linkageType: ''
    returnType: int
    signature: int flush_character_buffer(xmlparseobject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:335,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:337,1
    - Dst: call_character_handler
      Src: /src/cpython/Modules/pyexpat.c:341,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:344,1
    - Dst: have_handler
      Src: /src/cpython/Modules/pyexpat.c:349,1
    - Dst: call_character_handler
      Src: /src/cpython/Modules/pyexpat.c:353,1
    - Dst: memcpy
      Src: /src/cpython/Modules/pyexpat.c:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - userData
    - data
    - len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 362
    functionName: my_CharacterDataHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - flush_character_buffer
    - PyErr_Occurred
    - have_handler
    - call_character_handler
    - memcpy
    - xmlparseobject_CAST
    linkageType: ''
    returnType: void
    signature: void my_CharacterDataHandler(void *userData, const XML_Char *data,
      int len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:368,1
    - Dst: have_handler
      Src: /src/cpython/Modules/pyexpat.c:370,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:374,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:377,1
    - Dst: XML_GetSpecifiedAttributeCount
      Src: /src/cpython/Modules/pyexpat.c:383,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/pyexpat.c:392,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:394,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:396,1
    - Dst: string_intern
      Src: /src/cpython/Modules/pyexpat.c:400,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:404,1
    - Dst: conv_string_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:407,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:411,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:415,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:416,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/pyexpat.c:418,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:427,1
    - Dst: string_intern
      Src: /src/cpython/Modules/pyexpat.c:430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:432,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:435,1
    - Dst: call_with_frame
      Src: /src/cpython/Modules/pyexpat.c:441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:444,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:449,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 3
    argNames:
    - userData
    - name
    - atts
    argTypes:
    - void*
    - XML_Char*
    - XML_Char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 451
    functionName: my_StartElementHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_BuildValue
    - Py_DECREF
    - PyDict_SetItem
    - flush_character_buffer
    - PyErr_Occurred
    - PyList_SET_ITEM
    - call_with_frame
    - have_handler
    - XML_GetSpecifiedAttributeCount
    - flag_error
    - PyDict_New
    - string_intern
    - xmlparseobject_CAST
    - conv_string_to_unicode
    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:
    - (
    - RETURN_TYPE
    - ','
    - NAME
    - ','
    - PARAMS
    - ','
    - INIT
    - ','
    - PARSE_FORMAT
    - ','
    - CONVERSION
    - ','
    - RETURN_VARIABLE
    - ','
    - GETUSERDATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 488
    functionName: RC_HANDLER
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "RC_HANDLER(RETURN_TYPE, NAME, PARAMS,       \\\n                   INIT,
      PARSE_FORMAT, CONVERSION,  \\\n                   RETURN_VARIABLE, GETUSERDATA)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - userData
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: xmlparseobject_CAST
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmlparseobject_CAST(userData)
  - 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: 504
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: INT_HANDLER
    functionSourceFile: /src/cpython/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/cpython/Modules/pyexpat.c:559,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:563,1
    - Dst: conv_content_model
      Src: /src/cpython/Modules/pyexpat.c:565,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:568,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:571,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - model
    - (*conv_string)(void *)
    argTypes:
    - XML_Content*
    - PyObject*
    assertStmts:
    - condition: (model->numchildren < INT_MAX)
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 578
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 578
    functionName: conv_content_model
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_BuildValue
    - PyTuple_SET_ITEM
    - conv_content_model
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nconv_content_model(XML_Content * const model,\n                   PyObject
      *(*conv_string)(void *))"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:585,1
    - Dst: have_handler
      Src: /src/cpython/Modules/pyexpat.c:588,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:592,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:595,1
    - Dst: conv_content_model
      Src: /src/cpython/Modules/pyexpat.c:597,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:599,1
    - Dst: string_intern
      Src: /src/cpython/Modules/pyexpat.c:602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:604,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:605,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:608,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:610,1
    - Dst: call_with_frame
      Src: /src/cpython/Modules/pyexpat.c:614,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:621,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:624,1
    - Dst: XML_FreeContentModel
      Src: /src/cpython/Modules/pyexpat.c:625,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - userData
    - name
    - model
    argTypes:
    - void*
    - XML_Char*
    - XML_Content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 580
    functionDepth: 4
    functionLinenumber: 580
    functionLinenumberEnd: 627
    functionName: my_ElementDeclHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - flush_character_buffer
    - PyErr_Occurred
    - call_with_frame
    - have_handler
    - XML_FreeContentModel
    - flag_error
    - string_intern
    - conv_content_model
    - xmlparseobject_CAST
    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/cpython/Modules/pyexpat.c:734,1
    - Dst: set_error
      Src: /src/cpython/Modules/pyexpat.c:738,1
    - Dst: XML_GetErrorCode
      Src: /src/cpython/Modules/pyexpat.c:738,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:740,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - state
    - self
    - rv
    argTypes:
    - pyexpat_state*
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 731
    functionDepth: 4
    functionLinenumber: 731
    functionLinenumberEnd: 744
    functionName: get_parse_result
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_GetErrorCode
    - flush_character_buffer
    - PyErr_Occurred
    - PyLong_FromLong
    - set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_parse_result(pyexpat_state *state, xmlparseobject *self, int rv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_SetReparseDeferralEnabled
      Src: /src/cpython/Modules/pyexpat.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - enabled
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 767
    functionName: pyexpat_xmlparser_SetReparseDeferralEnabled_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetReparseDeferralEnabled
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_SetReparseDeferralEnabled_impl(xmlparseobject
      *self,\n                                                 int enabled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 781
    functionName: pyexpat_xmlparser_GetReparseDeferralEnabled_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetReparseDeferralEnabled_impl(xmlparseobject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/pyexpat.c:805,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/pyexpat.c:807,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/pyexpat.c:809,1
    - Dst: XML_SetEncoding
      Src: /src/cpython/Modules/pyexpat.c:813,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/pyexpat.c:816,1
    - Dst: XML_Parse
      Src: /src/cpython/Modules/pyexpat.c:825,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:832,1
    - Dst: XML_Parse
      Src: /src/cpython/Modules/pyexpat.c:833,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/pyexpat.c:837,1
    - Dst: get_parse_result
      Src: /src/cpython/Modules/pyexpat.c:839,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - self
    - cls
    - data
    - isfinal
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (slen <= INT_MAX)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 840
      start: 796
    functionDepth: 5
    functionLinenumber: 796
    functionLinenumberEnd: 840
    functionName: pyexpat_xmlparser_Parse_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_Parse
    - XML_SetEncoding
    - PyUnicode_AsUTF8AndSize
    - PyType_GetModuleState
    - get_parse_result
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_Parse_impl(xmlparseobject *self, PyTypeObject
      *cls,\n                             PyObject *data, int isfinal)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/pyexpat.c:853,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/pyexpat.c:857,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/pyexpat.c:858,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/pyexpat.c:859,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/pyexpat.c:860,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:862,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/pyexpat.c:864,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/pyexpat.c:867,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:869,1
    - Dst: memcpy
      Src: /src/cpython/Modules/pyexpat.c:875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:876,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:881,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - buf_size
    - meth
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 883
    functionName: readinst
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallFunction
    - Py_DECREF
    - Py_SIZE
    - memcpy
    - PyByteArray_AS_STRING
    - PyBytes_Check
    - Py_TYPE
    - PyErr_Format
    - PyByteArray_Check
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int readinst(char *buf, int buf_size, PyObject *meth)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/pyexpat.c:903,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/pyexpat.c:905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:909,1
    - Dst: XML_GetBuffer
      Src: /src/cpython/Modules/pyexpat.c:915,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:917,1
    - Dst: get_parse_result
      Src: /src/cpython/Modules/pyexpat.c:918,1
    - Dst: readinst
      Src: /src/cpython/Modules/pyexpat.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:923,1
    - Dst: XML_ParseBuffer
      Src: /src/cpython/Modules/pyexpat.c:926,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:927,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:928,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:935,1
    - Dst: get_parse_result
      Src: /src/cpython/Modules/pyexpat.c:936,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - cls
    - file
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 895
    functionDepth: 5
    functionLinenumber: 895
    functionLinenumberEnd: 937
    functionName: pyexpat_xmlparser_ParseFile_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyErr_Occurred
    - PyErr_SetString
    - XML_GetBuffer
    - PyType_GetModuleState
    - get_parse_result
    - readinst
    - XML_ParseBuffer
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_ParseFile_impl(xmlparseobject *self,
      PyTypeObject *cls,\n                                 PyObject *file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_SetBase
      Src: /src/cpython/Modules/pyexpat.c:952,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - base
    argTypes:
    - xmlparseobject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 956
    functionName: pyexpat_xmlparser_SetBase_impl
    functionSourceFile: /src/cpython/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: conv_string_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:968,1
    - Dst: XML_GetBase
      Src: /src/cpython/Modules/pyexpat.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 969
    functionName: pyexpat_xmlparser_GetBase_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_GetBase
    - conv_string_to_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetBase_impl(xmlparseobject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetInputContext
      Src: /src/cpython/Modules/pyexpat.c:988,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/pyexpat.c:991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 998
    functionName: pyexpat_xmlparser_GetInputContext_impl
    functionSourceFile: /src/cpython/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: PyType_GetModuleState
      Src: /src/cpython/Modules/pyexpat.c:1020,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/pyexpat.c:1022,1
    - Dst: XML_ExternalEntityParserCreate
      Src: /src/cpython/Modules/pyexpat.c:1034,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/pyexpat.c:1037,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:1040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1042,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1047,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1048,1
    - Dst: XML_SetUserData
      Src: /src/cpython/Modules/pyexpat.c:1051,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/pyexpat.c:1058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1060,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1061,1
    - Dst: clear_handlers
      Src: /src/cpython/Modules/pyexpat.c:1063,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/pyexpat.c:1069,1
    - Dst: CALL_XML_HANDLER_SETTER
      Src: /src/cpython/Modules/pyexpat.c:1071,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/pyexpat.c:1075,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - self
    - cls
    - context
    - encoding
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1077
    functionName: pyexpat_xmlparser_ExternalEntityParserCreate_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - XML_ExternalEntityParserCreate
    - PyType_GetModuleState
    - Py_NewRef
    - CALL_XML_HANDLER_SETTER
    - PyObject_GC_Track
    - XML_SetUserData
    - Py_XNewRef
    - PyMem_New
    - clear_handlers
    - PyObject_GC_New
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_ExternalEntityParserCreate_impl(xmlparseobject
      *self,\n                                                  PyTypeObject *cls,\n
      \                                                 const char *context,\n                                                  const
      char *encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_SetParamEntityParsing
      Src: /src/cpython/Modules/pyexpat.c:1098,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1100
    functionName: pyexpat_xmlparser_SetParamEntityParsing_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetParamEntityParsing
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetParamEntityParsing_impl(xmlparseobject *self, int flag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/pyexpat.c:1125,1
    - Dst: XML_UseForeignDTD
      Src: /src/cpython/Modules/pyexpat.c:1128,1
    - Dst: set_error
      Src: /src/cpython/Modules/pyexpat.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - cls
    - flag
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1133
    functionName: pyexpat_xmlparser_UseForeignDTD_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_UseForeignDTD
    - PyType_GetModuleState
    - set_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_UseForeignDTD_impl(xmlparseobject *self,
      PyTypeObject *cls,\n                                     int flag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:1189,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/pyexpat.c:1192,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:1194,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/pyexpat.c:1198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1200,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/pyexpat.c:1205,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/pyexpat.c:1206,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/pyexpat.c:1208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - encodingHandlerData
    - name
    - info
    argTypes:
    - void*
    - XML_Char*
    - XML_Encoding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1221
    functionName: PyUnknownEncodingHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyUnicode_READ
    - PyUnicode_DATA
    - PyUnicode_Decode
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/pyexpat.c:1231,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/pyexpat.c:1243,1
    - Dst: XML_ParserCreate_MM
      Src: /src/cpython/Modules/pyexpat.c:1251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1256,1
    - Dst: XML_SetHashSalt
      Src: /src/cpython/Modules/pyexpat.c:1261,1
    - Dst: XML_SetUserData
      Src: /src/cpython/Modules/pyexpat.c:1264,1
    - Dst: XML_SetUnknownEncodingHandler
      Src: /src/cpython/Modules/pyexpat.c:1265,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/pyexpat.c:1271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1273,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1274,1
    - Dst: clear_handlers
      Src: /src/cpython/Modules/pyexpat.c:1276,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/pyexpat.c:1278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 4
    argNames:
    - state
    - encoding
    - namespace_separator
    - intern
    argTypes:
    - pyexpat_state*
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1280
    functionName: newxmlparseobject
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_ParserCreate_MM
    - XML_SetUnknownEncodingHandler
    - Py_DECREF
    - PyErr_SetString
    - PyObject_GC_Track
    - XML_SetUserData
    - Py_XNewRef
    - PyMem_New
    - clear_handlers
    - XML_SetHashSalt
    - PyObject_GC_New
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnewxmlparseobject(pyexpat_state *state, const char *encoding,\n
      \                 const char *namespace_separator, PyObject *intern)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1285,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:1287,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:1289,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/pyexpat.c:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1291
    functionName: xmlparse_traverse
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - xmlparseobject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int xmlparse_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1296,1
    - Dst: clear_handlers
      Src: /src/cpython/Modules/pyexpat.c:1297,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1300
    functionName: xmlparse_clear
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - xmlparseobject_CAST
    - Py_CLEAR
    - clear_handlers
    linkageType: ''
    returnType: int
    signature: int xmlparse_clear(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1305,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/pyexpat.c:1306,1
    - Dst: xmlparse_clear
      Src: /src/cpython/Modules/pyexpat.c:1307,1
    - Dst: XML_ParserFree
      Src: /src/cpython/Modules/pyexpat.c:1309,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1314,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1318,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/pyexpat.c:1321,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/pyexpat.c:1322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1324
    functionName: xmlparse_dealloc
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_TYPE
    - xmlparse_clear
    - xmlparseobject_CAST
    - XML_ParserFree
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void xmlparse_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1330,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1332,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/pyexpat.c:1332,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/pyexpat.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: ((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info))
      pos:
        line_end: 1331
        line_start: 1331
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1339
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1339
    functionName: xmlparse_handler_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - xmlparseobject_CAST
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_handler_getter(PyObject *op, void *closure)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1344,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1346,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/pyexpat.c:1346,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1349,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:1358,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/pyexpat.c:1381,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/pyexpat.c:1384,1
    - Dst: CALL_XML_HANDLER_SETTER
      Src: /src/cpython/Modules/pyexpat.c:1385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - op
    - v
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: ((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info))
      pos:
        line_end: 1345
        line_start: 1345
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1387
      start: 1341
    functionDepth: 4
    functionLinenumber: 1341
    functionLinenumberEnd: 1387
    functionName: xmlparse_handler_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - flush_character_buffer
    - PyErr_SetString
    - CALL_XML_HANDLER_SETTER
    - Py_XSETREF
    - Py_ARRAY_LENGTH
    - xmlparseobject_CAST
    - assert
    linkageType: ''
    returnType: int
    signature: int xmlparse_handler_setter(PyObject *op, 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: 1396
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1396
    functionName: INT_GETTER
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_GETTER(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1409,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1411
    functionName: xmlparse_buffer_text_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - xmlparseobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_buffer_text_getter(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1416,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1418,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1421,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:1427,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1429,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:1436,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1413
    functionDepth: 4
    functionLinenumber: 1413
    functionLinenumberEnd: 1443
    functionName: xmlparse_buffer_text_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - flush_character_buffer
    - PyErr_SetString
    - PyMem_Free
    - xmlparseobject_CAST
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int xmlparse_buffer_text_setter(PyObject *op, PyObject *v, void *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1448,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1450
    functionName: xmlparse_buffer_size_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - xmlparseobject_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_buffer_size_getter(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1455,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1457,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/pyexpat.c:1461,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1462,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/pyexpat.c:1466,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:1468,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1469,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:1481,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:1488,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1493,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:1495,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1497,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1452
    functionDepth: 4
    functionLinenumber: 1452
    functionLinenumberEnd: 1502
    functionName: xmlparse_buffer_size_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - flush_character_buffer
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyErr_NoMemory
    - PyErr_Format
    - xmlparseobject_CAST
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int xmlparse_buffer_size_setter(PyObject *op, PyObject *v, void *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1507,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1509
    functionName: xmlparse_buffer_used_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - xmlparseobject_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_buffer_used_getter(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1514,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1516
    functionName: xmlparse_namespace_prefixes_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - xmlparseobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_namespace_prefixes_getter(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1521,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1523,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1526,1
    - Dst: XML_SetReturnNSTriplet
      Src: /src/cpython/Modules/pyexpat.c:1531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1533
    functionName: xmlparse_namespace_prefixes_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - xmlparseobject_CAST
    - PyErr_SetString
    - PyObject_IsTrue
    - XML_SetReturnNSTriplet
    linkageType: ''
    returnType: int
    signature: int xmlparse_namespace_prefixes_setter(PyObject *op, PyObject *v, void
      *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1538,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1540
    functionName: xmlparse_ordered_attributes_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - xmlparseobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_ordered_attributes_getter(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1545,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1547,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1556
    functionName: xmlparse_ordered_attributes_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - xmlparseobject_CAST
    - PyErr_SetString
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int xmlparse_ordered_attributes_setter(PyObject *op, PyObject *v, void
      *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1561,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1563
    functionName: xmlparse_specified_attributes_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - xmlparseobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_specified_attributes_getter(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1568,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1570,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1579
    functionName: xmlparse_specified_attributes_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - xmlparseobject_CAST
    - PyErr_SetString
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int xmlparse_specified_attributes_setter(PyObject *op, PyObject *v,
      void *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1588
    functionName: XMLPARSE_GETTER_DEF
    functionSourceFile: /src/cpython/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: 1591
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1591
    functionName: XMLPARSE_GETTER_SETTER_DEF
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XMLPARSE_GETTER_SETTER_DEF(name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/pyexpat.c:1655,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1656,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:1666,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/pyexpat.c:1671,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1672,1
    - Dst: pyexpat_get_state
      Src: /src/cpython/Modules/pyexpat.c:1676,1
    - Dst: newxmlparseobject
      Src: /src/cpython/Modules/pyexpat.c:1677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1679,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: 1682
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1682
    functionName: pyexpat_ParserCreate_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - PyErr_SetString
    - newxmlparseobject
    - PyDict_New
    - pyexpat_get_state
    - PyDict_Check
    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: conv_string_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:1697,1
    - Dst: XML_ErrorString
      Src: /src/cpython/Modules/pyexpat.c:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - code
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1693
    functionDepth: 2
    functionLinenumber: 1693
    functionLinenumberEnd: 1698
    functionName: pyexpat_ErrorString_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_ErrorString
    - conv_string_to_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_ErrorString_impl(PyObject *module, long code)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1722,1
    - Dst: PyDescr_NewGetSet
      Src: /src/cpython/Modules/pyexpat.c:1730,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/pyexpat.c:1734,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Modules/pyexpat.c:1735,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - pyexpat_state*
    assertStmts:
    - condition: (state->xml_parse_type->tp_version_tag == 0)
      pos:
        line_end: 1721
        line_start: 1721
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1742
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1742
    functionName: init_handler_descrs
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDescr_NewGetSet
    - PyDict_SetDefaultRef
    - PyDescr_NAME
    - assert
    linkageType: ''
    returnType: int
    signature: int init_handler_descrs(pyexpat_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/cpython/Modules/pyexpat.c:1747,1
    - Dst: PyModule_New
      Src: /src/cpython/Modules/pyexpat.c:1749,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/pyexpat.c:1754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1756,1
    - Dst: _PyImport_SetModule
      Src: /src/cpython/Modules/pyexpat.c:1760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1765,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:1768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - mod
    - fullname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1744
    functionDepth: 1
    functionLinenumber: 1744
    functionLinenumberEnd: 1773
    functionName: add_submodule
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyImport_SetModule
    - PyModule_Add
    - strrchr
    - PyUnicode_FromString
    - PyModule_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_submodule(PyObject *mod, const char *fullname)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XML_ErrorString
      Src: /src/cpython/Modules/pyexpat.c:1862,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:1867,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1871,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/pyexpat.c:1876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1877,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/pyexpat.c:1881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1883,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/pyexpat.c:1887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1889,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - errors_module
    - codes_dict
    - rev_codes_dict
    - error_index
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1844
    functionDepth: 1
    functionLinenumber: 1844
    functionLinenumberEnd: 1895
    functionName: add_error
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - Py_DECREF
    - PyDict_SetItem
    - XML_ErrorString
    - PyDict_SetItemString
    - PyLong_FromLong
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: "int add_error(PyObject *errors_module, PyObject *codes_dict,\n          PyObject
      *rev_codes_dict, size_t error_index)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: add_submodule
      Src: /src/cpython/Modules/pyexpat.c:1901,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:1906,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:1910,1
    - Dst: add_error
      Src: /src/cpython/Modules/pyexpat.c:1921,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:1926,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:1932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1933,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:1937,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:1944,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:1945,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1897
    functionDepth: 2
    functionLinenumber: 1897
    functionLinenumberEnd: 1947
    functionName: add_errors_module
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - Py_XDECREF
    - Py_DECREF
    - PyDict_New
    - PyModule_Add
    - add_submodule
    - add_error
    linkageType: ''
    returnType: int
    signature: int add_errors_module(PyObject *mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_submodule
      Src: /src/cpython/Modules/pyexpat.c:1952,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:1963,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1969,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1970,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1971,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1972,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1973,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1974,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1976,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1977,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1978,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:1979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1949
    functionDepth: 2
    functionLinenumber: 1949
    functionLinenumberEnd: 1982
    functionName: add_model_module
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - add_submodule
    - MYCONST
    linkageType: ''
    returnType: int
    signature: int add_model_module(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1962
    functionName: MYCONST
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MYCONST(c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/pyexpat.c:1988,1
    - Dst: XML_GetFeatureList
      Src: /src/cpython/Modules/pyexpat.c:1993,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:1995,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/pyexpat.c:2000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2001,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2009,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2011
    functionName: add_features
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_BuildValue
    - Py_DECREF
    - PyList_Append
    - XML_GetFeatureList
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int add_features(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/pyexpat.c:2017,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/pyexpat.c:2019,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:2023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2014
    functionDepth: 1
    functionLinenumber: 2014
    functionLinenumberEnd: 2024
    functionName: pyexpat_capsule_destructor
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - PyMem_Free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void pyexpat_capsule_destructor(PyObject *capsule)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_get_state
      Src: /src/cpython/Modules/pyexpat.c:2030,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/pyexpat.c:2031,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/pyexpat.c:2035,1
    - Dst: init_handler_descrs
      Src: /src/cpython/Modules/pyexpat.c:2042,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/pyexpat.c:2045,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/pyexpat.c:2053,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/pyexpat.c:2057,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/pyexpat.c:2061,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:2066,1
    - Dst: XML_ExpatVersion
      Src: /src/cpython/Modules/pyexpat.c:2067,1
    - Dst: XML_ExpatVersionInfo
      Src: /src/cpython/Modules/pyexpat.c:2071,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:2072,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2076,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:2084,1
    - Dst: add_errors_module
      Src: /src/cpython/Modules/pyexpat.c:2088,1
    - Dst: add_model_module
      Src: /src/cpython/Modules/pyexpat.c:2092,1
    - Dst: add_features
      Src: /src/cpython/Modules/pyexpat.c:2097,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2108,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2109,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2110,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:2113,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:2115,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/pyexpat.c:2154,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:2157,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2161,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 86
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2027
    functionDepth: 3
    functionLinenumber: 2027
    functionLinenumberEnd: 2166
    functionName: pyexpat_exec
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - add_model_module
    - PyType_FromModuleAndSpec
    - PyErr_NewException
    - add_errors_module
    - PyMem_Free
    - XML_ExpatVersionInfo
    - PyModule_AddStringConstant
    - PyModule_AddObjectRef
    - PyCapsule_New
    - pyexpat_get_state
    - PyUnicode_InternFromString
    - Py_BuildValue
    - XML_ExpatVersion
    - init_handler_descrs
    - PyModule_Add
    - PyErr_NoMemory
    - PyMem_Malloc
    - add_features
    - MYCONST
    linkageType: ''
    returnType: int
    signature: int pyexpat_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2102
    functionDepth: 0
    functionLinenumber: 2102
    functionLinenumberEnd: 2107
    functionName: MYCONST
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MYCONST(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_get_state
      Src: /src/cpython/Modules/pyexpat.c:2171,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:2172,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:2173,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2168
    functionDepth: 2
    functionLinenumber: 2168
    functionLinenumberEnd: 2176
    functionName: pyexpat_traverse
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - pyexpat_get_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int pyexpat_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_get_state
      Src: /src/cpython/Modules/pyexpat.c:2181,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2182,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2183,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2178
    functionDepth: 2
    functionLinenumber: 2178
    functionLinenumberEnd: 2186
    functionName: pyexpat_clear
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - pyexpat_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int pyexpat_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_clear
      Src: /src/cpython/Modules/pyexpat.c:2191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2188
    functionDepth: 3
    functionLinenumber: 2188
    functionLinenumberEnd: 2192
    functionName: pyexpat_free
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - pyexpat_clear
    linkageType: ''
    returnType: void
    signature: void pyexpat_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/pyexpat.c:2216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2213
    functionDepth: 1
    functionLinenumber: 2213
    functionLinenumberEnd: 2217
    functionName: PyInit_pyexpat
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_pyexpat(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2227,1
    - Dst: CALL_XML_HANDLER_SETTER
      Src: /src/cpython/Modules/pyexpat.c:2228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - initial
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2219
    functionDepth: 1
    functionLinenumber: 2219
    functionLinenumberEnd: 2231
    functionName: clear_handlers
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 4
    functionsReached:
    - CALL_XML_HANDLER_SETTER
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void clear_handlers(xmlparseobject *self, int initial)
  - 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: 2277
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2277
    functionName: SETTER_WRAPPER
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETTER_WRAPPER(NAME, 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: PyScannerObject_CAST
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyScannerObject_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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: PyEncoderObject_CAST
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyEncoderObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: S_CHAR
    functionSourceFile: /src/cpython/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: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: IS_WHITESPACE
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WHITESPACE(c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Modules/_json.c:133,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Modules/_json.c:139,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: 149
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 149
    functionName: ascii_escape_unichar
    functionSourceFile: /src/cpython/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: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:159,1
    - Dst: S_CHAR
      Src: /src/cpython/Modules/_json.c:161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - input
    - kind
    - input_chars
    argTypes:
    - void*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 181
    functionName: ascii_escape_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_READ
    - S_CHAR
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t ascii_escape_size(const void *input, int kind, Py_ssize_t
      input_chars)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/cpython/Modules/_json.c:191,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_json.c:195,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:199,1
    - Dst: S_CHAR
      Src: /src/cpython/Modules/_json.c:200,1
    - Dst: ascii_escape_unichar
      Src: /src/cpython/Modules/_json.c:204,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:209,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Modules/_json.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - input
    - kind
    - input_chars
    - output_size
    argTypes:
    - void*
    - int
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(rval, 1))
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 212
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 212
    functionName: ascii_escape_unicode_and_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_CheckConsistency
    - ascii_escape_unichar
    - PyUnicode_READ
    - S_CHAR
    - PyUnicode_New
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_escape_unicode_and_size(const void *input, int kind, Py_ssize_t input_chars,
      Py_ssize_t output_size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:218,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:219,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:220,1
    - Dst: ascii_escape_size
      Src: /src/cpython/Modules/_json.c:222,1
    - Dst: ascii_escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pystr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 228
    functionName: ascii_escape_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - ascii_escape_size
    - ascii_escape_unicode_and_size
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_escape_unicode(PyObject *pystr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:237,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:238,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:239,1
    - Dst: ascii_escape_size
      Src: /src/cpython/Modules/_json.c:241,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:248,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:251,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:254,1
    - Dst: ascii_escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:257,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - writer
    - pystr
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 263
    functionName: write_escaped_ascii
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - ascii_escape_size
    - PyUnicodeWriter_WriteChar
    - ascii_escape_unicode_and_size
    - PyUnicodeWriter_WriteStr
    - _steal_accumulate
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int write_escaped_ascii(PyUnicodeWriter *writer, PyObject *pystr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:273,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - input
    - kind
    - input_chars
    argTypes:
    - void*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 294
    functionName: escape_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - PyUnicode_READ
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t escape_size(const void *input, int kind, Py_ssize_t input_chars)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/cpython/Modules/_json.c:303,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:307,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_json.c:339,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Modules/_json.c:342,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Modules/_json.c:345,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:346,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:352,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Modules/_json.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - input
    - kind
    - maxchar
    - input_chars
    - output_size
    argTypes:
    - void*
    - int
    - Py_UCS4
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/cpython/Modules/_json.c
    - condition: (_PyUnicode_CheckConsistency(rval, 1))
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 355
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 355
    functionName: escape_unicode_and_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_CheckConsistency
    - PyUnicode_2BYTE_DATA
    - PyUnicode_New
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      escape_unicode_and_size(const void *input, int kind, Py_UCS4 maxchar, Py_ssize_t
      input_chars, Py_ssize_t output_size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:361,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:362,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:363,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Modules/_json.c:364,1
    - Dst: escape_size
      Src: /src/cpython/Modules/_json.c:366,1
    - Dst: escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pystr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 372
    functionName: escape_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - escape_size
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_DATA
    - escape_unicode_and_size
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      escape_unicode(PyObject *pystr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:377,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:378,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:379,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Modules/_json.c:380,1
    - Dst: escape_size
      Src: /src/cpython/Modules/_json.c:382,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:389,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:392,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:395,1
    - Dst: escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:398,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - writer
    - pystr
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 404
    functionName: write_escaped_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - escape_size
    - PyUnicodeWriter_WriteChar
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicodeWriter_WriteStr
    - _steal_accumulate
    - PyUnicode_DATA
    - escape_unicode_and_size
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int write_escaped_unicode(PyUnicodeWriter *writer, PyObject *pystr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_json.c:410,1
    - Dst: PyImport_ImportModuleAttr
      Src: /src/cpython/Modules/_json.c:412,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_json.c:412,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_json.c:412,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_json.c:418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:419,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_json.c:421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - msg
    - s
    - end
    argTypes:
    - char*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 424
    functionName: raise_errmsg
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - Py_DECREF
    - _Py_DECLARE_STR
    - _Py_ID
    - PyImport_ImportModuleAttr
    - _Py_STR
    - PyErr_SetObject
    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/cpython/Modules/_json.c:429,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_json.c:431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: raise_stop_iteration
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyErr_SetObject
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void raise_stop_iteration(Py_ssize_t idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_json.c:447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:449,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_json.c:452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:455,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_json.c:458,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_json.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - rval
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 461
    functionName: _build_rval_index_tuple
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _build_rval_index_tuple(PyObject *rval, Py_ssize_t idx)'
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:483,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:484,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:485,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:488,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:498,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:503,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_json.c:513,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:522,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_json.c:525,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_json.c:533,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:543,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:546,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:562,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:571,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:576,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:589,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_json.c:594,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:595,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:596,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:601,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:614,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Modules/_json.c:618,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Modules/_json.c:619,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:624,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_json.c:629,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_json.c:635,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 198
    argCount: 4
    argNames:
    - pystr
    - end
    - strict
    - next_end_ptr
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 637
    functionName: scanstring_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicodeWriter_WriteSubstring
    - Py_UNICODE_IS_LOW_SURROGATE
    - PyUnicodeWriter_Finish
    - PyErr_SetString
    - PyUnicodeWriter_Create
    - PyUnicode_READ
    - Py_UNICODE_JOIN_SURROGATES
    - PyUnicodeWriter_WriteChar
    - raise_errmsg
    - PyUnicodeWriter_Discard
    - Py_UNICODE_IS_HIGH_SURROGATE
    - PyUnicode_DATA
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/_json.c:660,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:663,1
    - Dst: scanstring_unicode
      Src: /src/cpython/Modules/_json.c:664,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:667,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:669,1
    - Dst: _build_rval_index_tuple
      Src: /src/cpython/Modules/_json.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 673
    functionName: py_scanstring
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _build_rval_index_tuple
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - scanstring_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_scanstring(PyObject* Py_UNUSED(self), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:687,1
    - Dst: ascii_escape_unicode
      Src: /src/cpython/Modules/_json.c:688,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:691,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - pystr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 697
    functionName: py_encode_basestring_ascii
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - ascii_escape_unicode
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring_ascii(PyObject* Py_UNUSED(self), PyObject *pystr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:712,1
    - Dst: escape_unicode
      Src: /src/cpython/Modules/_json.c:713,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:716,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - pystr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 3
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: py_encode_basestring
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - escape_unicode
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring(PyObject* Py_UNUSED(self), PyObject *pystr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:727,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_json.c:729,1
    - Dst: scanner_clear
      Src: /src/cpython/Modules/_json.c:730,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_json.c:731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 733
    functionName: scanner_dealloc
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - scanner_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void scanner_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyScannerObject_CAST
      Src: /src/cpython/Modules/_json.c:738,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:739,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:739,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:740,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:741,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:742,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:743,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 746
    functionName: scanner_traverse
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - PyScannerObject_CAST
    linkageType: ''
    returnType: int
    signature: int scanner_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyScannerObject_CAST
      Src: /src/cpython/Modules/_json.c:751,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:752,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:753,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:754,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:755,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 758
    functionName: scanner_clear
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - PyScannerObject_CAST
    linkageType: ''
    returnType: int
    signature: int scanner_clear(PyObject *op)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:780,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:781,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:782,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_json.c:785,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_json.c:787,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:792,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:792,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:795,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:800,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:801,1
    - Dst: scanstring_unicode
      Src: /src/cpython/Modules/_json.c:804,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/_json.c:807,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_json.c:810,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:814,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:814,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:815,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:816,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:820,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:820,1
    - Dst: scan_once_unicode
      Src: /src/cpython/Modules/_json.c:823,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_json.c:828,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:831,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:832,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:837,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:840,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:842,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:843,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:848,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:848,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:851,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:853,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:854,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:861,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:861,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:863,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:864,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:874,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:880,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:881,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:886,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:887,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:888,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 100
    argCount: 5
    argNames:
    - s
    - memo
    - pystr
    - idx
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 760
    functionDepth: 3
    functionLinenumber: 760
    functionLinenumberEnd: 890
    functionName: _parse_object_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_SETREF
    - PyObject_CallOneArg
    - Py_CLEAR
    - PyUnicode_KIND
    - PyList_Append
    - PyUnicode_READ
    - raise_errmsg
    - PyTuple_Pack
    - Py_DECREF
    - PyDict_SetDefaultRef
    - scan_once_unicode
    - PyUnicode_GET_LENGTH
    - PyDict_SetItem
    - IS_WHITESPACE
    - PyDict_New
    - PyUnicode_DATA
    - scanstring_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _parse_object_unicode(PyScannerObject *s, PyObject *memo, PyObject *pystr, Py_ssize_t
      idx, Py_ssize_t *next_idx_ptr)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_json.c:909,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:913,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:914,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:915,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:918,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:918,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:921,1
    - Dst: scan_once_unicode
      Src: /src/cpython/Modules/_json.c:925,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:929,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:932,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:936,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:936,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:939,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:941,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:942,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:949,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:949,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:951,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:952,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:959,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:960,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:967,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 5
    argNames:
    - s
    - memo
    - pystr
    - idx
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 969
    functionName: _parse_array_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyUnicode_KIND
    - Py_XDECREF
    - Py_DECREF
    - Py_CLEAR
    - PyList_Append
    - PyUnicode_READ
    - IS_WHITESPACE
    - raise_errmsg
    - scan_once_unicode
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _parse_array_unicode(PyScannerObject *s, PyObject *memo, PyObject *pystr, Py_ssize_t
      idx, Py_ssize_t *next_idx_ptr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_json.c:985,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:990,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:992,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: 995
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 995
    functionName: _parse_constant
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_InternFromString
    - PyObject_CallOneArg
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _parse_constant(PyScannerObject *s, const char *constant, Py_ssize_t idx, Py_ssize_t
      *next_idx_ptr)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:1017,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:1018,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:1019,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1022,1
    - Dst: raise_stop_iteration
      Src: /src/cpython/Modules/_json.c:1025,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1031,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1031,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1033,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1033,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1036,1
    - Dst: raise_stop_iteration
      Src: /src/cpython/Modules/_json.c:1041,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1046,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1046,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1046,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1049,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1049,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1053,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1053,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1058,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1058,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1061,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1061,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1064,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1064,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_json.c:1081,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:1086,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_json.c:1094,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_json.c:1097,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1099,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Modules/_json.c:1102,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_json.c:1104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1106,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 66
    argCount: 4
    argNames:
    - s
    - pystr
    - start
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1109
    functionName: _match_number_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyFloat_FromString
    - Py_DECREF
    - PyUnicode_FromKindAndData
    - PyUnicode_READ
    - PyBytes_FromStringAndSize
    - PyObject_CallOneArg
    - PyBytes_AS_STRING
    - PyLong_FromString
    - raise_stop_iteration
    - PyUnicode_DATA
    - 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: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:1126,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:1127,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:1128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1131,1
    - Dst: raise_stop_iteration
      Src: /src/cpython/Modules/_json.c:1135,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1139,1
    - Dst: scanstring_unicode
      Src: /src/cpython/Modules/_json.c:1142,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1145,1
    - Dst: _parse_object_unicode
      Src: /src/cpython/Modules/_json.c:1148,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1149,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1153,1
    - Dst: _parse_array_unicode
      Src: /src/cpython/Modules/_json.c:1156,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1157,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1161,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1161,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1161,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1168,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1168,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1168,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1175,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1176,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1177,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1178,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1185,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1186,1
    - Dst: _parse_constant
      Src: /src/cpython/Modules/_json.c:1187,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1192,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1193,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1194,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1195,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1196,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1197,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1198,1
    - Dst: _parse_constant
      Src: /src/cpython/Modules/_json.c:1199,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1204,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1205,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1206,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1207,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1208,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1209,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1210,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1211,1
    - Dst: _parse_constant
      Src: /src/cpython/Modules/_json.c:1212,1
    - Dst: _match_number_unicode
      Src: /src/cpython/Modules/_json.c:1217,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 62
    argCount: 5
    argNames:
    - s
    - memo
    - pystr
    - idx
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1111
    functionDepth: 4
    functionLinenumber: 1111
    functionLinenumberEnd: 1218
    functionName: scan_once_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - _parse_array_unicode
    - _match_number_unicode
    - PyErr_SetString
    - PyUnicode_READ
    - _parse_object_unicode
    - _Py_EnterRecursiveCall
    - _Py_LeaveRecursiveCall
    - raise_stop_iteration
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - _parse_constant
    - scanstring_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scan_once_unicode(PyScannerObject *s, PyObject *memo, PyObject *pystr, Py_ssize_t
      idx, Py_ssize_t *next_idx_ptr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_json.c:1229,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:1232,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1233,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1235,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_json.c:1239,1
    - Dst: scan_once_unicode
      Src: /src/cpython/Modules/_json.c:1243,1
    - Dst: PyScannerObject_CAST
      Src: /src/cpython/Modules/_json.c:1243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1245,1
    - Dst: _build_rval_index_tuple
      Src: /src/cpython/Modules/_json.c:1248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1220
    functionDepth: 5
    functionLinenumber: 1220
    functionLinenumberEnd: 1249
    functionName: scanner_call
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _build_rval_index_tuple
    - PyScannerObject_CAST
    - PyArg_ParseTupleAndKeywords
    - PyDict_New
    - PyErr_Format
    - PyUnicode_Check
    - scan_once_unicode
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scanner_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_json.c:1259,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_json.c:1262,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1268,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_json.c:1271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1272,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1275,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1278,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1281,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1284,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1294,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1296
    functionName: scanner_new
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_GetAttrString
    - PyArg_ParseTupleAndKeywords
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scanner_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_json.c:1329,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_json.c:1335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1336,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1338,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_json.c:1342,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1346,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1347,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1348,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1349,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1350,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1351,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_json.c:1357,1
    - Dst: PyCFunction_GetFunction
      Src: /src/cpython/Modules/_json.c:1358,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1368
    functionName: encoder_new
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    - PyCFunction_GetFunction
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/_json.c:1384,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_json.c:1386,1
    - Dst: PySequence_Repeat
      Src: /src/cpython/Modules/_json.c:1387,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_json.c:1392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1394,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_json.c:1397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - indent_level
    argTypes:
    - PyEncoderObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1399
    functionName: create_indent_cache
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - PyList_New
    - Py_DECREF
    - PyUnicode_AppendAndDel
    - PyList_SET_ITEM
    - PySequence_Repeat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_indent_cache(PyEncoderObject *s, Py_ssize_t indent_level)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:1408,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1408,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:1409,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1410,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_json.c:1411,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_json.c:1415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1417,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:1421,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:1422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - s
    - indent_level
    - indent_cache
    argTypes:
    - PyEncoderObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (indent_level * 2 == PyList_GET_SIZE(indent_cache) + 1)
      pos:
        line_end: 1407
        line_start: 1407
        source_file: /src/cpython/Modules/_json.c
    - condition: (indent_level > 0)
      pos:
        line_end: 1408
        line_start: 1408
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1431
      start: 1404
    functionDepth: 1
    functionLinenumber: 1404
    functionLinenumberEnd: 1431
    functionName: update_indent_cache
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyUnicode_Concat
    - PyList_Append
    - PyList_GET_SIZE
    - assert
    linkageType: ''
    returnType: int
    signature: "int update_indent_cache(PyEncoderObject *s,\n                    Py_ssize_t
      indent_level, PyObject *indent_cache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:1437,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1438,1
    - Dst: update_indent_cache
      Src: /src/cpython/Modules/_json.c:1439,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:1443,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1443,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - indent_level
    - indent_cache
    argTypes:
    - PyEncoderObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (indent_level > 0)
      pos:
        line_end: 1436
        line_start: 1436
        source_file: /src/cpython/Modules/_json.c
    - condition: (indent_level * 2 < PyList_GET_SIZE(indent_cache))
      pos:
        line_end: 1442
        line_start: 1442
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1445
      start: 1433
    functionDepth: 2
    functionLinenumber: 1433
    functionLinenumberEnd: 1445
    functionName: get_item_separator
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - PyList_GET_ITEM
    - update_indent_cache
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_item_separator(PyEncoderObject *s,\n                   Py_ssize_t
      indent_level, PyObject *indent_cache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1451,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - writer
    - indent_level
    - indent_cache
    argTypes:
    - PyUnicodeWriter*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1453
    functionName: write_newline_indent
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: "int write_newline_indent(PyUnicodeWriter *writer,\n                     Py_ssize_t
      indent_level, PyObject *indent_cache)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyEncoderObject_CAST
      Src: /src/cpython/Modules/_json.c:1463,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_json.c:1465,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_json.c:1469,1
    - Dst: create_indent_cache
      Src: /src/cpython/Modules/_json.c:1476,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_json.c:1478,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1482,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_json.c:1483,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1484,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1487,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_json.c:1489,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_json.c:1493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1496
    functionName: encoder_call
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyEncoderObject_CAST
    - PyArg_ParseTupleAndKeywords
    - encoder_listencode_obj
    - create_indent_cache
    - PyUnicodeWriter_Discard
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoder_call(PyObject *op, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_json.c:1503,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_json.c:1506,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_json.c:1509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1515
    functionName: _encoded_const
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _encoded_const(PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_json.c:1521,1
    - Dst: isfinite
      Src: /src/cpython/Modules/_json.c:1522,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1524,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_json.c:1532,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_json.c:1535,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_json.c:1538,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_json.c:1541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - obj
    argTypes:
    - PyEncoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1542
    functionName: encoder_encode_float
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - tp_repr
    - isfinite
    - PyFloat_AS_DOUBLE
    - PyErr_Format
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoder_encode_float(PyEncoderObject *s, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyEncoderObject*::fast_encode
      Src: /src/cpython/Modules/_json.c:1551,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:1553,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:1557,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1558,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1561,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:1564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - writer
    - obj
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1565
    functionName: encoder_write_string
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _steal_accumulate
    - Py_DECREF
    - PyEncoderObject*::fast_encode
    - PyObject_CallOneArg
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int encoder_write_string(PyEncoderObject *s, PyUnicodeWriter *writer,
      PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - stolen
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1567
    functionDepth: 1
    functionLinenumber: 1567
    functionLinenumberEnd: 1574
    functionName: _steal_accumulate
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int _steal_accumulate(PyUnicodeWriter *writer, PyObject *stolen)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1586,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1589,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1592,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:1594,1
    - Dst: encoder_write_string
      Src: /src/cpython/Modules/_json.c:1595,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_json.c:1597,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_json.c:1598,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Modules/_json.c:1600,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_json.c:1602,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:1605,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_json.c:1607,1
    - Dst: encoder_encode_float
      Src: /src/cpython/Modules/_json.c:1608,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:1611,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_json.c:1613,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_json.c:1613,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1614,1
    - Dst: encoder_listencode_list
      Src: /src/cpython/Modules/_json.c:1616,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1617,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_json.c:1620,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1621,1
    - Dst: encoder_listencode_dict
      Src: /src/cpython/Modules/_json.c:1623,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1624,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_json.c:1631,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_json.c:1634,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1638,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:1641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1642,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:1646,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1648,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1653,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1654,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1657,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1660,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_json.c:1662,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1663,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_json.c:1667,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1668,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1671,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 5
    argNames:
    - s
    - writer
    - obj
    - indent_level
    - indent_cache
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1576
    functionDepth: 2
    functionLinenumber: 1576
    functionLinenumberEnd: 1675
    functionName: encoder_listencode_obj
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - encoder_listencode_list
    - Py_XDECREF
    - encoder_write_string
    - PyErr_SetString
    - PyDict_Contains
    - PyDict_DelItem
    - PyList_Check
    - PyObject_CallOneArg
    - PyLong_CheckExact
    - encoder_listencode_dict
    - PyUnicode_Check
    - _Py_LeaveRecursiveCall
    - PyDict_Check
    - PyUnicodeWriter_WriteASCII
    - Py_DECREF
    - PyTuple_Check
    - PyLong_Check
    - encoder_listencode_obj
    - encoder_encode_float
    - _PyErr_FormatNote
    - PyFloat_Check
    - PyLong_FromVoidPtr
    - PyDict_SetItem
    - tp_repr
    - _Py_EnterRecursiveCall
    - _steal_accumulate
    - PyUnicodeWriter_WriteRepr
    linkageType: ''
    returnType: int
    signature: "int encoder_listencode_obj(PyEncoderObject *s, PyUnicodeWriter *writer,\n
      \                      PyObject *obj,\n                       Py_ssize_t indent_level,
      PyObject *indent_cache)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:1686,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1687,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_json.c:1689,1
    - Dst: encoder_encode_float
      Src: /src/cpython/Modules/_json.c:1690,1
    - Dst: _encoded_const
      Src: /src/cpython/Modules/_json.c:1695,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_json.c:1697,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_json.c:1698,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1704,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1706,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1718,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1725,1
    - Dst: encoder_write_string
      Src: /src/cpython/Modules/_json.c:1730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1731,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1736,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1739,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_json.c:1740,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 9
    argNames:
    - s
    - writer
    - first
    - dct
    - key
    - value
    - indent_level
    - indent_cache
    - item_separator
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - bool*
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1677
    functionDepth: 3
    functionLinenumber: 1677
    functionLinenumberEnd: 1744
    functionName: encoder_encode_key_value
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - encoder_write_string
    - Py_DECREF
    - encoder_encode_float
    - PyLong_Check
    - tp_repr
    - _encoded_const
    - encoder_listencode_obj
    - Py_NewRef
    - _PyErr_FormatNote
    - PyUnicodeWriter_WriteStr
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - write_newline_indent
    linkageType: ''
    returnType: int
    signature: "int encoder_encode_key_value(PyEncoderObject *s, PyUnicodeWriter *writer,
      bool *first,\n                         PyObject *dct, PyObject *key, PyObject
      *value,\n                         Py_ssize_t indent_level, PyObject *indent_cache,\n
      \                        PyObject *item_separator)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1757,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1759,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_json.c:1764,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_json.c:1767,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1770,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:1773,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1778,1
    - Dst: get_item_separator
      Src: /src/cpython/Modules/_json.c:1785,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_json.c:1790,1
    - Dst: PyMapping_Items
      Src: /src/cpython/Modules/_json.c:1791,1
    - Dst: PyList_Sort
      Src: /src/cpython/Modules/_json.c:1792,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1795,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1796,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_json.c:1798,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1798,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1799,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1803,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1804,1
    - Dst: encoder_encode_key_value
      Src: /src/cpython/Modules/_json.c:1805,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1810,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_json.c:1814,1
    - Dst: encoder_encode_key_value
      Src: /src/cpython/Modules/_json.c:1815,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_json.c:1823,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1825,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1829,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1834,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1840,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1841,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 80
    argCount: 5
    argNames:
    - s
    - writer
    - dct
    - indent_level
    - indent_cache
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1746
    functionDepth: 4
    functionLinenumber: 1746
    functionLinenumberEnd: 1843
    functionName: encoder_listencode_dict
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyDict_Contains
    - PyDict_DelItem
    - get_item_separator
    - encoder_encode_key_value
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - PyDict_CheckExact
    - PyMapping_Items
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - PyUnicodeWriter_WriteASCII
    - write_newline_indent
    - PyDict_GET_SIZE
    - PyTuple_Check
    - PyUnicodeWriter_WriteChar
    - PyLong_FromVoidPtr
    - PyDict_SetItem
    - PyList_Sort
    - PyList_GET_ITEM
    - PyDict_Next
    linkageType: ''
    returnType: int
    signature: "int encoder_listencode_dict(PyEncoderObject *s, PyUnicodeWriter *writer,\n
      \                       PyObject *dct,\n                       Py_ssize_t indent_level,
      PyObject *indent_cache)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_json.c:1855,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1859,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1860,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_json.c:1865,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_json.c:1868,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1871,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:1874,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1879,1
    - Dst: get_item_separator
      Src: /src/cpython/Modules/_json.c:1886,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1888,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1893,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1894,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1896,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1899,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_json.c:1900,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_json.c:1905,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1907,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1912,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1920,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1925,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 5
    argNames:
    - s
    - writer
    - seq
    - indent_level
    - indent_cache
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1845
    functionDepth: 3
    functionLinenumber: 1845
    functionLinenumberEnd: 1927
    functionName: encoder_listencode_list
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PySequence_Fast_GET_SIZE
    - PyDict_SetItem
    - Py_CLEAR
    - PyErr_SetString
    - PyDict_Contains
    - encoder_listencode_obj
    - PyDict_DelItem
    - PySequence_Fast
    - PyUnicodeWriter_WriteChar
    - get_item_separator
    - PySequence_Fast_GET_ITEM
    - PyUnicodeWriter_WriteStr
    - _PyErr_FormatNote
    - PyUnicodeWriter_WriteASCII
    - write_newline_indent
    linkageType: ''
    returnType: int
    signature: "int encoder_listencode_list(PyEncoderObject *s, PyUnicodeWriter *writer,\n
      \                       PyObject *seq,\n                        Py_ssize_t indent_level,
      PyObject *indent_cache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1932,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_json.c:1934,1
    - Dst: encoder_clear
      Src: /src/cpython/Modules/_json.c:1935,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_json.c:1936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1938
    functionName: encoder_dealloc
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - encoder_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void encoder_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEncoderObject_CAST
      Src: /src/cpython/Modules/_json.c:1943,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:1944,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1944,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:1945,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:1946,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:1947,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:1948,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:1949,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1952
    functionName: encoder_traverse
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyEncoderObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int encoder_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEncoderObject_CAST
      Src: /src/cpython/Modules/_json.c:1957,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1959,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1960,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1961,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1962,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1963,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1966
    functionName: encoder_clear
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - PyEncoderObject_CAST
    linkageType: ''
    returnType: int
    signature: int encoder_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_json.c:2011,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_json.c:2012,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_json.c:2016,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_json.c:2017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2008
    functionDepth: 1
    functionLinenumber: 2008
    functionLinenumberEnd: 2022
    functionName: _json_exec
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyType_FromSpec
    linkageType: ''
    returnType: int
    signature: int _json_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_json.c:2042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2043
    functionName: PyInit__json
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__json(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_ssl.h:45,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/cpython/Modules/_ssl.h
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: get_ssl_state
    functionSourceFile: /src/cpython/Modules/_ssl.h
    functionUses: 15
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: void
    signature: void get_ssl_state(PyObject *module)
  - 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: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: get_state_type
    functionSourceFile: /src/cpython/Modules/_ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_state_type(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: get_state_ctx
    functionSourceFile: /src/cpython/Modules/_ssl.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_state_ctx(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: get_state_sock
    functionSourceFile: /src/cpython/Modules/_ssl.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_state_sock(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: get_state_obj
    functionSourceFile: /src/cpython/Modules/_ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_state_obj(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: get_state_mbio
    functionSourceFile: /src/cpython/Modules/_ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_state_mbio(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: get_state_cert
    functionSourceFile: /src/cpython/Modules/_ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_state_cert(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_cursesmodule.c:172,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: get_cursesmodule_state
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: cursesmodule_state
    signature: 'cursesmodule_state *

      get_cursesmodule_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_cursesmodule.c:180,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: get_cursesmodule_state_by_cls
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: cursesmodule_state
    signature: 'cursesmodule_state *

      get_cursesmodule_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state_by_cls
      Src: /src/cpython/Modules/_cursesmodule.c:188,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - win
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: get_cursesmodule_state_by_win
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state_by_cls
    - Py_TYPE
    linkageType: ''
    returnType: cursesmodule_state
    signature: 'cursesmodule_state *

      get_cursesmodule_state_by_win(PyCursesWindowObject *win)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: _PyCursesWindowObject_CAST
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCursesWindowObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:222,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_cursesmodule.c:222,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:224,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:227,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:231,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - state
    - curses_funcname
    - python_funcname
    - return_value
    - default_message
    argTypes:
    - cursesmodule_state*
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Modules/_cursesmodule.c
    - condition: (python_funcname != NULL)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: _curses_format_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void _curses_format_error(cursesmodule_state *state,\n                     const
      char *curses_funcname,\n                     const char *python_funcname,\n
      \                    const char *return_value,\n                     const char
      *default_message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_format_error
      Src: /src/cpython/Modules/_cursesmodule.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - curses_funcname
    - python_funcname
    argTypes:
    - cursesmodule_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: _curses_set_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _curses_format_error
    linkageType: ''
    returnType: void
    signature: "void _curses_set_error(cursesmodule_state *state,\n                  const
      char *curses_funcname,\n                  const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_format_error
      Src: /src/cpython/Modules/_cursesmodule.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - curses_funcname
    - python_funcname
    argTypes:
    - cursesmodule_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: _curses_set_null_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _curses_format_error
    linkageType: ''
    returnType: void
    signature: "void _curses_set_null_error(cursesmodule_state *state,\n                       const
      char *curses_funcname,\n                       const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:275,1
    - Dst: _curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - curses_funcname
    - python_funcname
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: curses_set_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached:
    - get_cursesmodule_state
    - _curses_set_error
    linkageType: ''
    returnType: void
    signature: "void curses_set_error(PyObject *module,\n                 const char
      *curses_funcname,\n                 const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:285,1
    - Dst: _curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - curses_funcname
    - python_funcname
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: curses_set_null_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached:
    - get_cursesmodule_state
    - _curses_set_null_error
    linkageType: ''
    returnType: void
    signature: "void curses_set_null_error(PyObject *module,\n                      const
      char *curses_funcname,\n                      const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:295,1
    - Dst: _curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - win
    - curses_funcname
    - python_funcname
    argTypes:
    - PyCursesWindowObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: curses_window_set_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state_by_win
    - _curses_set_error
    linkageType: ''
    returnType: void
    signature: "void curses_window_set_error(PyCursesWindowObject *win,\n                        const
      char *curses_funcname,\n                        const char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:305,1
    - Dst: _curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - win
    - curses_funcname
    - python_funcname
    argTypes:
    - PyCursesWindowObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 307
    functionName: curses_window_set_null_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state_by_win
    - _curses_set_null_error
    linkageType: ''
    returnType: void
    signature: "void curses_window_set_null_error(PyCursesWindowObject *win,\n                             const
      char *curses_funcname,\n                             const char *python_funcname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_cursesmodule.c:328,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:331,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:333,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_cursesmodule.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - called
    - funcname
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: _PyCursesCheckFunction
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCursesCheckFunction(int called, const char *funcname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:351,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - called
    - funcname
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: _PyCursesStatefulCheckFunction
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int _PyCursesStatefulCheckFunction(PyObject *module,\n                               int
      called, const char *funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MODULE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 365
    functionName: PyCursesStatefulSetupTermCalled
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCursesStatefulSetupTermCalled(MODULE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MODULE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: PyCursesStatefulInitialised
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCursesStatefulInitialised(MODULE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MODULE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 385
    functionName: PyCursesStatefulInitialisedColor
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCursesStatefulInitialisedColor(MODULE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - module
    - code
    - curses_funcname
    - python_funcname
    argTypes:
    - PyObject*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: curses_check_err
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_set_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncurses_check_err(PyObject *module, int code,\n                 const
      char *curses_funcname,\n                 const char *python_funcname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - win
    - code
    - curses_funcname
    - python_funcname
    argTypes:
    - PyCursesWindowObject*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: curses_window_check_err
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_window_set_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncurses_window_check_err(PyCursesWindowObject *win, int
      code,\n                        const char *curses_funcname,\n                        const
      char *python_funcname)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_cursesmodule.c:434,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:435,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:436,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:439,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_cursesmodule.c:442,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_cursesmodule.c:444,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_cursesmodule.c:445,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:446,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_cursesmodule.c:449,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_cursesmodule.c:452,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_cursesmodule.c:460,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:463,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:467,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_cursesmodule.c:472,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_cursesmodule.c:474,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:479,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:481,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:490,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 3
    argNames:
    - win
    - obj
    - ch
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - chtype*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 493
    functionName: PyCurses_ConvertToChtype
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_AsString
    - PyUnicode_AsEncodedString
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyLong_CheckExact
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int PyCurses_ConvertToChtype(PyCursesWindowObject *win, PyObject *obj,
      chtype *ch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_cursesmodule.c:519,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_cursesmodule.c:521,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:522,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_cursesmodule.c:525,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:531,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_cursesmodule.c:534,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:535,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:536,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:539,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_cursesmodule.c:542,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_cursesmodule.c:544,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_cursesmodule.c:546,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:548,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:556,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - win
    - obj
    - ch
    - wch
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - chtype*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 567
    functionName: PyCurses_ConvertToCchar_t
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyUnicode_AsWideChar
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_AsString
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyLong_CheckExact
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyCurses_ConvertToChtype
    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/cpython/Modules/_cursesmodule.c:580,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:582,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_cursesmodule.c:584,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:589,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_cursesmodule.c:590,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:594,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:595,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_cursesmodule.c:601,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_cursesmodule.c:602,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:605,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:611,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - win
    - obj
    - bytes
    - wstr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - PyObject**
    - wchar_t**
    assertStmts:
    - condition: (wstr != NULL)
      pos:
        line_end: 581
        line_start: 581
        source_file: /src/cpython/Modules/_cursesmodule.c
    - condition: (wstr == NULL)
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 614
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 614
    functionName: PyCurses_ConvertToString
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyBytes_Check
    - PyUnicode_AsEncodedString
    - Py_NewRef
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - Py_CLEAR
    - PyBytes_AsStringAndSize
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: "int PyCurses_ConvertToString(PyCursesWindowObject *win, PyObject *obj,\n
      \                        PyObject **bytes, wchar_t **wstr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_cursesmodule.c:622,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_cursesmodule.c:623,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 638
    functionName: color_allow_default_converter
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int color_allow_default_converter(PyObject *arg, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: color_allow_default_converter
      Src: /src/cpython/Modules/_cursesmodule.c:643,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 652
    functionName: color_converter
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - color_allow_default_converter
    linkageType: ''
    returnType: int
    signature: int color_converter(PyObject *arg, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_cursesmodule.c:674,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_cursesmodule.c:675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:680,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:687,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:694,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 701
    functionName: pair_converter
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int pair_converter(PyObject *arg, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_cursesmodule.c:716,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_cursesmodule.c:717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:721,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:726,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 733
    functionName: component_converter
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsLongAndOverflow
    linkageType: ''
    returnType: int
    signature: int component_converter(PyObject *arg, void *ptr)
  - 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: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: Window_NoArgNoReturnFunction
    functionSourceFile: /src/cpython/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: 773
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: Window_NoArgTrueFalseFunction
    functionSourceFile: /src/cpython/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: 782
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: Window_NoArgNoReturnVoidFunction
    functionSourceFile: /src/cpython/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: 792
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 792
    functionName: Window_NoArg2TupleReturnFunction
    functionSourceFile: /src/cpython/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: 805
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 805
    functionName: Window_OneArgNoReturnVoidFunction
    functionSourceFile: /src/cpython/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: 818
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 818
    functionName: Window_OneArgNoReturnFunction
    functionSourceFile: /src/cpython/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: 831
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 831
    functionName: Window_TwoArgNoReturnFunction
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_TwoArgNoReturnFunction(X, TYPE, PARSESTR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleOutputCP
      Src: /src/cpython/Modules/_cursesmodule.c:893,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_cursesmodule.c:895,1
    - Dst: nl_langinfo
      Src: /src/cpython/Modules/_cursesmodule.c:899,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_cursesmodule.c:909,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_cursesmodule.c:915,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:917,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_cursesmodule.c:918,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_cursesmodule.c:922,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_cursesmodule.c:923,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - state
    - win
    - encoding
    - orig
    argTypes:
    - cursesmodule_state*
    - WINDOW*
    - char*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 925
    functionName: PyCursesWindow_New
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - GetConsoleOutputCP
    - Py_DECREF
    - PyOS_snprintf
    - PyObject_GC_Track
    - Py_XINCREF
    - nl_langinfo
    - PyObject_GC_New
    - _PyMem_Strdup
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCursesWindow_New(cursesmodule_state *state,\n                   WINDOW
      *win, const char *encoding,\n                   PyCursesWindowObject *orig)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:930,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_cursesmodule.c:931,1
    - Dst: delwin
      Src: /src/cpython/Modules/_cursesmodule.c:934,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:935,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_cursesmodule.c:936,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:940,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:942,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_cursesmodule.c:943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 927
    functionDepth: 4
    functionLinenumber: 927
    functionLinenumberEnd: 945
    functionName: PyCursesWindow_dealloc
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - curses_window_set_error
    - Py_DECREF
    - PyObject_GC_UnTrack
    - delwin
    - PyErr_FormatUnraisable
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void PyCursesWindow_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:950,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:950,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 954
    functionName: PyCursesWindow_traverse
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PyCursesWindow_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToCchar_t
      Src: /src/cpython/Modules/_cursesmodule.c:1002,1
    - Dst: setcchar
      Src: /src/cpython/Modules/_cursesmodule.c:1005,1
    - Dst: PAIR_NUMBER
      Src: /src/cpython/Modules/_cursesmodule.c:1005,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1007,1
    - Dst: mvwadd_wch
      Src: /src/cpython/Modules/_cursesmodule.c:1011,1
    - Dst: wadd_wch
      Src: /src/cpython/Modules/_cursesmodule.c:1015,1
    - Dst: PyCurses_ConvertToCchar_t
      Src: /src/cpython/Modules/_cursesmodule.c:1021,1
    - Dst: mvwaddch
      Src: /src/cpython/Modules/_cursesmodule.c:1025,1
    - Dst: waddch
      Src: /src/cpython/Modules/_cursesmodule.c:1029,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1036,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    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: 1037
      start: 985
    functionDepth: 5
    functionLinenumber: 985
    functionLinenumberEnd: 1037
    functionName: _curses_window_addch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_window_set_error
    - setcchar
    - wadd_wch
    - waddch
    - mvwaddch
    - mvwadd_wch
    - PyCurses_ConvertToCchar_t
    - curses_window_check_err
    - PAIR_NUMBER
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STRTYPE
    - ','
    - WSTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1046
    functionName: curses_release_wstr
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curses_release_wstr(STRTYPE, WSTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1053,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - attr
    - funcname
    argTypes:
    - PyCursesWindowObject*
    - long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1050
    functionDepth: 4
    functionLinenumber: 1050
    functionLinenumberEnd: 1058
    functionName: curses_wattrset
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wattrset
    - curses_window_set_error
    linkageType: ''
    returnType: int
    signature: int curses_wattrset(PyCursesWindowObject *self, long attr, const char
      *funcname)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:1104,1
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:1106,1
    - Dst: getattrs
      Src: /src/cpython/Modules/_cursesmodule.c:1112,1
    - Dst: curses_wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1113,1
    - Dst: curses_release_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:1114,1
    - Dst: mvwaddwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1121,1
    - Dst: waddwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1125,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:1128,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:1133,1
    - Dst: mvwaddstr
      Src: /src/cpython/Modules/_cursesmodule.c:1135,1
    - Dst: waddstr
      Src: /src/cpython/Modules/_cursesmodule.c:1139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:1142,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1145,1
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1149,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    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: 1153
      start: 1087
    functionDepth: 5
    functionLinenumber: 1087
    functionLinenumberEnd: 1153
    functionName: _curses_window_addstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getattrs
    - mvwaddwstr
    - curses_window_set_error
    - mvwaddstr
    - waddwstr
    - Py_DECREF
    - waddstr
    - PyCurses_ConvertToString
    - curses_release_wstr
    - curses_window_check_err
    - curses_wattrset
    - wattrset
    - PyBytes_AS_STRING
    - PyMem_Free
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:1202,1
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:1204,1
    - Dst: getattrs
      Src: /src/cpython/Modules/_cursesmodule.c:1210,1
    - Dst: curses_wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1211,1
    - Dst: curses_release_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:1212,1
    - Dst: mvwaddnwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1219,1
    - Dst: waddnwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1223,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:1226,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:1231,1
    - Dst: mvwaddnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1233,1
    - Dst: waddnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:1240,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1243,1
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1247,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    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: 1251
      start: 1185
    functionDepth: 5
    functionLinenumber: 1185
    functionLinenumberEnd: 1251
    functionName: _curses_window_addnstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getattrs
    - curses_window_set_error
    - mvwaddnstr
    - Py_DECREF
    - mvwaddnwstr
    - PyCurses_ConvertToString
    - curses_release_wstr
    - waddnwstr
    - curses_wattrset
    - waddnstr
    - wattrset
    - curses_window_check_err
    - PyBytes_AS_STRING
    - PyMem_Free
    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/cpython/Modules/_cursesmodule.c:1271,1
    - Dst: wbkgd
      Src: /src/cpython/Modules/_cursesmodule.c:1274,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1265
    functionDepth: 5
    functionLinenumber: 1265
    functionLinenumberEnd: 1276
    functionName: _curses_window_bkgd_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wbkgd
    - PyCurses_ConvertToChtype
    - curses_window_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_bkgd_impl(PyCursesWindowObject *self, PyObject *ch, long attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wattroff
      Src: /src/cpython/Modules/_cursesmodule.c:1291,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1287
    functionDepth: 5
    functionLinenumber: 1287
    functionLinenumberEnd: 1293
    functionName: _curses_window_attroff_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_window_check_err
    - wattroff
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attroff_impl(PyCursesWindowObject *self, long attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wattron
      Src: /src/cpython/Modules/_cursesmodule.c:1308,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1304
    functionDepth: 5
    functionLinenumber: 1304
    functionLinenumberEnd: 1310
    functionName: _curses_window_attron_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wattron
    - curses_window_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attron_impl(PyCursesWindowObject *self, long attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1325,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1321
    functionDepth: 5
    functionLinenumber: 1321
    functionLinenumberEnd: 1327
    functionName: _curses_window_attrset_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wattrset
    - curses_window_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attrset_impl(PyCursesWindowObject *self, long attr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:1348,1
    - Dst: wbkgdset
      Src: /src/cpython/Modules/_cursesmodule.c:1351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1341
    functionDepth: 2
    functionLinenumber: 1341
    functionLinenumberEnd: 1353
    functionName: _curses_window_bkgdset_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - 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/cpython/Modules/_cursesmodule.c:1403,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1404,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1405,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1406,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1407,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1408,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1409,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1410,1
    - Dst: wborder
      Src: /src/cpython/Modules/_cursesmodule.c:1414,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1417,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: 1418
      start: 1385
    functionDepth: 5
    functionLinenumber: 1385
    functionLinenumberEnd: 1418
    functionName: _curses_window_border_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - CONVERTTOCHTYPE
    - wborder
    - curses_window_check_err
    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: 1402
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1402
    functionName: CONVERTTOCHTYPE
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERTTOCHTYPE(obj, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:1444,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:1447,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1451,1
    - Dst: box
      Src: /src/cpython/Modules/_cursesmodule.c:1451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - self
    - group_right_1
    - verch
    - horch
    argTypes:
    - PyCursesWindowObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1437
    functionDepth: 5
    functionLinenumber: 1437
    functionLinenumberEnd: 1452
    functionName: _curses_window_box_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - box
    - PyCurses_ConvertToChtype
    - curses_window_check_err
    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/cpython/Modules/_cursesmodule.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - y
    - x
    argTypes:
    - WINDOW*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1463
    functionName: py_mvwdelch
    functionSourceFile: /src/cpython/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: 1469
      start: 1468
    functionDepth: 0
    functionLinenumber: 1468
    functionLinenumberEnd: 1469
    functionName: py_is_pad
    functionSourceFile: /src/cpython/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: 1472
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1472
    functionName: py_is_pad
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: py_is_pad(win)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesWindowObject_CAST
      Src: /src/cpython/Modules/_cursesmodule.c:1500,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_cursesmodule.c:1511,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1513,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1518,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1523,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1529,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:1535,1
    - Dst: PAIR_NUMBER
      Src: /src/cpython/Modules/_cursesmodule.c:1540,1
    - Dst: mvwchgat
      Src: /src/cpython/Modules/_cursesmodule.c:1544,1
    - Dst: getyx
      Src: /src/cpython/Modules/_cursesmodule.c:1547,1
    - Dst: wchgat
      Src: /src/cpython/Modules/_cursesmodule.c:1548,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1552,1
    - Dst: touchline
      Src: /src/cpython/Modules/_cursesmodule.c:1555,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1556,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1497
    functionDepth: 5
    functionLinenumber: 1497
    functionLinenumberEnd: 1557
    functionName: PyCursesWindow_ChgAt
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwchgat
    - touchline
    - getyx
    - curses_window_set_error
    - wchgat
    - PyArg_ParseTuple
    - PyErr_SetString
    - curses_window_check_err
    - _PyCursesWindowObject_CAST
    - PyTuple_Size
    - PAIR_NUMBER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_ChgAt(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wdelch
      Src: /src/cpython/Modules/_cursesmodule.c:1582,1
    - Dst: py_mvwdelch
      Src: /src/cpython/Modules/_cursesmodule.c:1586,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - group_right_1
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1574
    functionDepth: 5
    functionLinenumber: 1574
    functionLinenumberEnd: 1590
    functionName: _curses_window_delch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - py_mvwdelch
    - wdelch
    - curses_window_check_err
    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/cpython/Modules/_cursesmodule.c:1622,1
    - Dst: curses_window_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:1625,1
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:1629,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:1630,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: 1631
      start: 1615
    functionDepth: 4
    functionLinenumber: 1615
    functionLinenumberEnd: 1631
    functionName: _curses_window_derwin_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state_by_win
    - curses_window_set_null_error
    - derwin
    - PyCursesWindow_New
    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/cpython/Modules/_cursesmodule.c:1653,1
    - Dst: py_is_pad
      Src: /src/cpython/Modules/_cursesmodule.c:1659,1
    - Dst: pechochar
      Src: /src/cpython/Modules/_cursesmodule.c:1660,1
    - Dst: wechochar
      Src: /src/cpython/Modules/_cursesmodule.c:1666,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1646
    functionDepth: 5
    functionLinenumber: 1646
    functionLinenumberEnd: 1670
    functionName: _curses_window_echochar_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - pechochar
    - py_is_pad
    - wechochar
    - curses_window_check_err
    - PyCurses_ConvertToChtype
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_echochar_impl(PyCursesWindowObject *self,
      PyObject *ch,\n                             long attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:1690,1
    - Dst: wenclose
      Src: /src/cpython/Modules/_cursesmodule.c:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1691
    functionName: _curses_window_enclose_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - wenclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_enclose_impl(PyCursesWindowObject *self, int y, int x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getbkgd
      Src: /src/cpython/Modules/_cursesmodule.c:1704,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1706,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:1709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1700
    functionDepth: 4
    functionLinenumber: 1700
    functionLinenumberEnd: 1710
    functionName: _curses_window_getbkgd_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_window_set_error
    - getbkgd
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_getbkgd_impl(PyCursesWindowObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:1717,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_cursesmodule.c:1717,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_cursesmodule.c:1718,1
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:1721,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:1722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - curses_funcname
    - python_funcname
    argTypes:
    - PyCursesWindowObject*
    - char*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 1725
      start: 1712
    functionDepth: 3
    functionLinenumber: 1712
    functionLinenumberEnd: 1725
    functionName: curses_check_signals_on_input_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - get_cursesmodule_state_by_win
    - PyErr_CheckSignals
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncurses_check_signals_on_input_error(PyCursesWindowObject
      *self,\n                                    const char *curses_funcname,\n                                    const
      char *python_funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wgetch
      Src: /src/cpython/Modules/_cursesmodule.c:1755,1
    - Dst: mvwgetch
      Src: /src/cpython/Modules/_cursesmodule.c:1758,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: 1759
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1759
    functionName: _curses_window_getch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wgetch
    - mvwgetch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_getch_impl(PyCursesWindowObject *self,
      int group_right_1,\n                          int y, int x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wgetch
      Src: /src/cpython/Modules/_cursesmodule.c:1803,1
    - Dst: mvwgetch
      Src: /src/cpython/Modules/_cursesmodule.c:1806,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: 1807
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1807
    functionName: _curses_window_getkey_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_cursesmodule.c:1858,1
    - Dst: mvwget_wch
      Src: /src/cpython/Modules/_cursesmodule.c:1861,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: 1862
      start: 1848
    functionDepth: 0
    functionLinenumber: 1848
    functionLinenumberEnd: 1862
    functionName: _curses_window_get_wch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwget_wch
    - wget_wch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_get_wch_impl(PyCursesWindowObject *self,
      int group_right_1,\n                            int y, int x)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:1889,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1896,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1901,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1905,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:1910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 6
    argNames:
    - args
    - y
    - x
    - n
    - use_xy
    - qualname
    argTypes:
    - PyObject*
    - int*
    - int*
    - unsigned int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1884
    functionDepth: 1
    functionLinenumber: 1884
    functionLinenumberEnd: 1915
    functionName: curses_clinic_parse_optional_xy_n
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: "int curses_clinic_parse_optional_xy_n(PyObject *args,\n                                  int
      *y, int *x, unsigned int *n, int *use_xy,\n                                  const
      char *qualname)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesWindowObject_CAST
      Src: /src/cpython/Modules/_cursesmodule.c:1931,1
    - Dst: curses_clinic_parse_optional_xy_n
      Src: /src/cpython/Modules/_cursesmodule.c:1937,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_cursesmodule.c:1943,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:1944,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:1948,1
    - Dst: wmove
      Src: /src/cpython/Modules/_cursesmodule.c:1953,1
    - Dst: wgetnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1955,1
    - Dst: mvwgetnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1957,1
    - Dst: wgetnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:1968,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_cursesmodule.c:1969,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_cursesmodule.c:1971,1
    - Dst: strlen
      Src: /src/cpython/Modules/_cursesmodule.c:1971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1928
    functionDepth: 2
    functionLinenumber: 1928
    functionLinenumberEnd: 1973
    functionName: PyCursesWindow_getstr
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - wgetnstr
    - curses_clinic_parse_optional_xy_n
    - Py_DECREF
    - strlen
    - Py_GetConstant
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _PyCursesWindowObject_CAST
    - mvwgetnstr
    - wmove
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_getstr(PyObject *op, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:2007,1
    - Dst: wmove
      Src: /src/cpython/Modules/_cursesmodule.c:2010,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2011,1
    - Dst: whline
      Src: /src/cpython/Modules/_cursesmodule.c:2015,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    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: 2017
      start: 1999
    functionDepth: 5
    functionLinenumber: 1999
    functionLinenumberEnd: 2017
    functionName: _curses_window_hline_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_window_set_error
    - curses_window_check_err
    - whline
    - wmove
    - PyCurses_ConvertToChtype
    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/cpython/Modules/_cursesmodule.c:2054,1
    - Dst: winsch
      Src: /src/cpython/Modules/_cursesmodule.c:2059,1
    - Dst: mvwinsch
      Src: /src/cpython/Modules/_cursesmodule.c:2063,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    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: 2068
      start: 2045
    functionDepth: 5
    functionLinenumber: 2045
    functionLinenumberEnd: 2068
    functionName: _curses_window_insch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwinsch
    - curses_window_check_err
    - PyCurses_ConvertToChtype
    - winsch
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: winch
      Src: /src/cpython/Modules/_cursesmodule.c:2096,1
    - Dst: mvwinch
      Src: /src/cpython/Modules/_cursesmodule.c:2100,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2104,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_cursesmodule.c:2107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - group_right_1
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2087
    functionDepth: 4
    functionLinenumber: 2087
    functionLinenumberEnd: 2108
    functionName: _curses_window_inch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwinch
    - curses_window_set_error
    - winch
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_inch_impl(PyCursesWindowObject *self, int
      group_right_1,\n                         int y, int x)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesWindowObject_CAST
      Src: /src/cpython/Modules/_cursesmodule.c:2129,1
    - Dst: curses_clinic_parse_optional_xy_n
      Src: /src/cpython/Modules/_cursesmodule.c:2135,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_cursesmodule.c:2141,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:2142,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:2146,1
    - Dst: mvwinnstr
      Src: /src/cpython/Modules/_cursesmodule.c:2149,1
    - Dst: winnstr
      Src: /src/cpython/Modules/_cursesmodule.c:2152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2156,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_cursesmodule.c:2157,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_cursesmodule.c:2159,1
    - Dst: strlen
      Src: /src/cpython/Modules/_cursesmodule.c:2159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2126
    functionDepth: 2
    functionLinenumber: 2126
    functionLinenumberEnd: 2161
    functionName: PyCursesWindow_instr
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - winnstr
    - Py_DECREF
    - curses_clinic_parse_optional_xy_n
    - strlen
    - Py_GetConstant
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - mvwinnstr
    - _PyCursesWindowObject_CAST
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_instr(PyObject *op, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:2208,1
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:2210,1
    - Dst: getattrs
      Src: /src/cpython/Modules/_cursesmodule.c:2216,1
    - Dst: curses_wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:2217,1
    - Dst: curses_release_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:2218,1
    - Dst: mvwins_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:2225,1
    - Dst: wins_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:2229,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:2232,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:2237,1
    - Dst: mvwinsstr
      Src: /src/cpython/Modules/_cursesmodule.c:2239,1
    - Dst: winsstr
      Src: /src/cpython/Modules/_cursesmodule.c:2243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2246,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2249,1
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:2253,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    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: 2257
      start: 2191
    functionDepth: 5
    functionLinenumber: 2191
    functionLinenumberEnd: 2257
    functionName: _curses_window_insstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getattrs
    - mvwinsstr
    - curses_window_set_error
    - Py_DECREF
    - winsstr
    - PyCurses_ConvertToString
    - curses_release_wstr
    - curses_window_check_err
    - curses_wattrset
    - wins_wstr
    - PyMem_Free
    - wattrset
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:2309,1
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:2311,1
    - Dst: getattrs
      Src: /src/cpython/Modules/_cursesmodule.c:2317,1
    - Dst: curses_wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:2318,1
    - Dst: curses_release_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:2319,1
    - Dst: mvwins_nwstr
      Src: /src/cpython/Modules/_cursesmodule.c:2326,1
    - Dst: wins_nwstr
      Src: /src/cpython/Modules/_cursesmodule.c:2330,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:2333,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:2338,1
    - Dst: mvwinsnstr
      Src: /src/cpython/Modules/_cursesmodule.c:2340,1
    - Dst: winsnstr
      Src: /src/cpython/Modules/_cursesmodule.c:2344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2347,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2350,1
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:2354,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    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: 2358
      start: 2292
    functionDepth: 5
    functionLinenumber: 2292
    functionLinenumberEnd: 2358
    functionName: _curses_window_insnstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getattrs
    - curses_window_set_error
    - wins_nwstr
    - Py_DECREF
    - PyCurses_ConvertToString
    - curses_release_wstr
    - curses_window_check_err
    - curses_wattrset
    - wattrset
    - mvwins_nwstr
    - winsnstr
    - PyBytes_AS_STRING
    - PyMem_Free
    - mvwinsnstr
    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/cpython/Modules/_cursesmodule.c:2378,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2380,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:2383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - line
    argTypes:
    - PyCursesWindowObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2373
    functionDepth: 4
    functionLinenumber: 2373
    functionLinenumberEnd: 2384
    functionName: _curses_window_is_linetouched_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - is_linetouched
    - curses_window_set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_is_linetouched_impl(PyCursesWindowObject *self, int line)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: py_is_pad
      Src: /src/cpython/Modules/_cursesmodule.c:2434,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2436,1
    - Dst: pnoutrefresh
      Src: /src/cpython/Modules/_cursesmodule.c:2442,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2449,1
    - Dst: wnoutrefresh
      Src: /src/cpython/Modules/_cursesmodule.c:2455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2426
    functionDepth: 1
    functionLinenumber: 2426
    functionLinenumberEnd: 2458
    functionName: _curses_window_noutrefresh_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wnoutrefresh
    - PyErr_SetString
    - pnoutrefresh
    - py_is_pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_noutrefresh_impl(PyCursesWindowObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copywin
      Src: /src/cpython/Modules/_cursesmodule.c:2498,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2500,1
    - Dst: overlay
      Src: /src/cpython/Modules/_cursesmodule.c:2503,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2504,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: 2506
      start: 2488
    functionDepth: 5
    functionLinenumber: 2488
    functionLinenumberEnd: 2506
    functionName: _curses_window_overlay_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - overlay
    - copywin
    - curses_window_check_err
    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/cpython/Modules/_cursesmodule.c:2547,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2549,1
    - Dst: overwrite
      Src: /src/cpython/Modules/_cursesmodule.c:2552,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2553,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: 2555
      start: 2536
    functionDepth: 5
    functionLinenumber: 2536
    functionLinenumberEnd: 2555
    functionName: _curses_window_overwrite_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - copywin
    - overwrite
    - curses_window_check_err
    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/cpython/Modules/_cursesmodule.c:2577,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_cursesmodule.c:2579,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/_cursesmodule.c:2580,1
    - Dst: fileno
      Src: /src/cpython/Modules/_cursesmodule.c:2580,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2582,1
    - Dst: putwin
      Src: /src/cpython/Modules/_cursesmodule.c:2582,1
    - Dst: fseek
      Src: /src/cpython/Modules/_cursesmodule.c:2585,1
    - Dst: fread
      Src: /src/cpython/Modules/_cursesmodule.c:2588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2592,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_cursesmodule.c:2593,1
    - Dst: fclose
      Src: /src/cpython/Modules/_cursesmodule.c:2599,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2601
      start: 2568
    functionDepth: 5
    functionLinenumber: 2568
    functionLinenumberEnd: 2601
    functionName: _curses_window_putwin_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - fread
    - Py_DECREF
    - tmpfile
    - PyObject_CallMethod
    - curses_window_check_err
    - fseek
    - PyErr_SetFromErrno
    - putwin
    - fileno
    - _Py_set_inheritable
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_putwin_impl(PyCursesWindowObject *self, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wredrawln
      Src: /src/cpython/Modules/_cursesmodule.c:2621,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - beg
    - num
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2617
    functionDepth: 5
    functionLinenumber: 2617
    functionLinenumberEnd: 2623
    functionName: _curses_window_redrawln_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wredrawln
    - curses_window_check_err
    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/cpython/Modules/_cursesmodule.c:2663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2665,1
    - Dst: prefresh
      Src: /src/cpython/Modules/_cursesmodule.c:2670,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2677,1
    - Dst: wrefresh
      Src: /src/cpython/Modules/_cursesmodule.c:2682,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: 2685
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2685
    functionName: _curses_window_refresh_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - prefresh
    - PyErr_SetString
    - py_is_pad
    - wrefresh
    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: wsetscrreg
      Src: /src/cpython/Modules/_cursesmodule.c:2706,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - top
    - bottom
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2701
    functionDepth: 5
    functionLinenumber: 2701
    functionLinenumberEnd: 2708
    functionName: _curses_window_setscrreg_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wsetscrreg
    - curses_window_check_err
    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/cpython/Modules/_cursesmodule.c:2742,1
    - Dst: subpad
      Src: /src/cpython/Modules/_cursesmodule.c:2743,1
    - Dst: subwin
      Src: /src/cpython/Modules/_cursesmodule.c:2749,1
    - Dst: curses_window_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:2754,1
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:2758,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:2759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    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: 2760
      start: 2732
    functionDepth: 4
    functionLinenumber: 2732
    functionLinenumberEnd: 2760
    functionName: _curses_window_subwin_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_window_set_null_error
    - py_is_pad
    - get_cursesmodule_state_by_win
    - PyCursesWindow_New
    - subwin
    - subpad
    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: scroll
      Src: /src/cpython/Modules/_cursesmodule.c:2785,1
    - Dst: wscrl
      Src: /src/cpython/Modules/_cursesmodule.c:2789,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - group_right_1
    - lines
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2777
    functionDepth: 5
    functionLinenumber: 2777
    functionLinenumberEnd: 2793
    functionName: _curses_window_scroll_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - scroll
    - wscrl
    - curses_window_check_err
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_scroll_impl(PyCursesWindowObject *self,
      int group_right_1,\n                           int lines)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: touchline
      Src: /src/cpython/Modules/_cursesmodule.c:2820,1
    - Dst: wtouchln
      Src: /src/cpython/Modules/_cursesmodule.c:2824,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - start
    - count
    - group_right_1
    - changed
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2812
    functionDepth: 5
    functionLinenumber: 2812
    functionLinenumberEnd: 2828
    functionName: _curses_window_touchline_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - touchline
    - wtouchln
    - curses_window_check_err
    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/cpython/Modules/_cursesmodule.c:2862,1
    - Dst: wmove
      Src: /src/cpython/Modules/_cursesmodule.c:2865,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2866,1
    - Dst: wvline
      Src: /src/cpython/Modules/_cursesmodule.c:2870,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    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: 2872
      start: 2854
    functionDepth: 5
    functionLinenumber: 2854
    functionLinenumberEnd: 2872
    functionName: _curses_window_vline_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wvline
    - curses_window_set_error
    - curses_window_check_err
    - wmove
    - PyCurses_ConvertToChtype
    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: _PyCursesWindowObject_CAST
      Src: /src/cpython/Modules/_cursesmodule.c:2877,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:2878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2874
    functionDepth: 1
    functionLinenumber: 2874
    functionLinenumberEnd: 2879
    functionName: PyCursesWindow_get_encoding
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyCursesWindowObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_get_encoding(PyObject *op, void *closure)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesWindowObject_CAST
      Src: /src/cpython/Modules/_cursesmodule.c:2884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2891,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_cursesmodule.c:2896,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2897,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_cursesmodule.c:2901,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_cursesmodule.c:2904,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:2904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2905,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_cursesmodule.c:2907,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:2910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2881
    functionDepth: 1
    functionLinenumber: 2881
    functionLinenumberEnd: 2913
    functionName: PyCursesWindow_set_encoding
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyUnicode_AsASCIIString
    - PyMem_Free
    - PyBytes_AS_STRING
    - _PyCursesWindowObject_CAST
    - PyUnicode_Check
    - _PyMem_Strdup
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int PyCursesWindow_set_encoding(PyObject *op, PyObject *value, void
      *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2916
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3061
    functionDepth: 0
    functionLinenumber: 3061
    functionLinenumberEnd: 3066
    functionName: NoArgNoReturnFunctionBody
    functionSourceFile: /src/cpython/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: 3082
      start: 3067
    functionDepth: 0
    functionLinenumber: 3067
    functionLinenumberEnd: 3082
    functionName: NoArgOrFlagNoReturnFunctionBody
    functionSourceFile: /src/cpython/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: 3093
      start: 3083
    functionDepth: 0
    functionLinenumber: 3083
    functionLinenumberEnd: 3093
    functionName: NoArgReturnIntFunctionBody
    functionSourceFile: /src/cpython/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: 3104
      start: 3094
    functionDepth: 0
    functionLinenumber: 3094
    functionLinenumberEnd: 3104
    functionName: NoArgReturnStringFunctionBody
    functionSourceFile: /src/cpython/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: 3110
      start: 3105
    functionDepth: 0
    functionLinenumber: 3105
    functionLinenumberEnd: 3110
    functionName: NoArgTrueFalseFunctionBody
    functionSourceFile: /src/cpython/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: 3117
      start: 3111
    functionDepth: 0
    functionLinenumber: 3111
    functionLinenumberEnd: 3117
    functionName: NoArgNoReturnVoidFunctionBody
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NoArgNoReturnVoidFunctionBody(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filter
      Src: /src/cpython/Modules/_cursesmodule.c:3134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3136
      start: 3128
    functionDepth: 0
    functionLinenumber: 3128
    functionLinenumberEnd: 3136
    functionName: _curses_filter_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - filter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_filter_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3214,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:3215,1
    - Dst: _COLOR_CONTENT_FUNC
      Src: /src/cpython/Modules/_cursesmodule.c:3217,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_cursesmodule.c:3218,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:3219,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:3223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - color_number
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3208
    functionDepth: 4
    functionLinenumber: 3208
    functionLinenumberEnd: 3224
    functionName: _curses_color_content_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - Py_BuildValue
    - PyCursesStatefulInitialisedColor
    - _COLOR_CONTENT_FUNC
    - PyCursesStatefulInitialised
    - curses_set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_content_impl(PyObject *module, int color_number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3243,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:3244,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3246,1
    - Dst: COLOR_PAIR
      Src: /src/cpython/Modules/_cursesmodule.c:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - pair_number
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3239
    functionDepth: 1
    functionLinenumber: 3239
    functionLinenumberEnd: 3247
    functionName: _curses_color_pair_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialisedColor
    - PyCursesStatefulInitialised
    - COLOR_PAIR
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_pair_impl(PyObject *module, int pair_number)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3270,1
    - Dst: curs_set
      Src: /src/cpython/Modules/_cursesmodule.c:3272,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:3274,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - visibility
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3279
      start: 3264
    functionDepth: 4
    functionLinenumber: 3264
    functionLinenumberEnd: 3279
    functionName: _curses_curs_set_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_set_error
    - curs_set
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_curs_set_impl(PyObject *module, int visibility)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3325,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3327,1
    - Dst: delay_output
      Src: /src/cpython/Modules/_cursesmodule.c:3327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3321
    functionDepth: 5
    functionLinenumber: 3321
    functionLinenumberEnd: 3328
    functionName: _curses_delay_output_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_check_err
    - delay_output
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_delay_output_impl(PyObject *module, int ms)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3381,1
    - Dst: erasechar
      Src: /src/cpython/Modules/_cursesmodule.c:3383,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:3385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3386
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3386
    functionName: _curses_erasechar_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - PyBytes_FromStringAndSize
    - erasechar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_erasechar_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3432,1
    - Dst: getsyx
      Src: /src/cpython/Modules/_cursesmodule.c:3434,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:3436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3425
    functionDepth: 1
    functionLinenumber: 3425
    functionLinenumberEnd: 3437
    functionName: _curses_getsyx_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - Py_BuildValue
    - getsyx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getsyx_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3457,1
    - Dst: getmouse
      Src: /src/cpython/Modules/_cursesmodule.c:3459,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:3461,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:3464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3450
    functionDepth: 4
    functionLinenumber: 3450
    functionLinenumberEnd: 3468
    functionName: _curses_getmouse_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - getmouse
    - Py_BuildValue
    - curses_set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getmouse_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3492,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3499,1
    - Dst: ungetmouse
      Src: /src/cpython/Modules/_cursesmodule.c:3499,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: 3500
      start: 3485
    functionDepth: 5
    functionLinenumber: 3485
    functionLinenumberEnd: 3500
    functionName: _curses_ungetmouse_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - ungetmouse
    - PyCursesStatefulInitialised
    - curses_check_err
    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: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3525,1
    - Dst: tmpfile
      Src: /src/cpython/Modules/_cursesmodule.c:3527,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_cursesmodule.c:3529,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/_cursesmodule.c:3531,1
    - Dst: fileno
      Src: /src/cpython/Modules/_cursesmodule.c:3531,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_cursesmodule.c:3534,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_cursesmodule.c:3537,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:3538,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:3540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3541,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:3544,1
    - Dst: fwrite
      Src: /src/cpython/Modules/_cursesmodule.c:3545,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:3545,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_cursesmodule.c:3546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3550,1
    - Dst: fseek
      Src: /src/cpython/Modules/_cursesmodule.c:3552,1
    - Dst: getwin
      Src: /src/cpython/Modules/_cursesmodule.c:3553,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:3555,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3558,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:3559,1
    - Dst: fclose
      Src: /src/cpython/Modules/_cursesmodule.c:3562,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - module
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3515
    functionDepth: 4
    functionLinenumber: 3515
    functionLinenumberEnd: 3564
    functionName: _curses_getwin
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getwin
    - PyBytes_Check
    - fseek
    - PyBytes_GET_SIZE
    - curses_set_null_error
    - fwrite
    - PyErr_Format
    - PyCursesStatefulInitialised
    - Py_DECREF
    - tmpfile
    - PyErr_SetFromErrno
    - PyCursesWindow_New
    - PyBytes_AS_STRING
    - Py_TYPE
    - _Py_set_inheritable
    - get_cursesmodule_state
    - PyObject_CallMethod
    - fileno
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getwin(PyObject *module, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3582,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3584,1
    - Dst: halfdelay
      Src: /src/cpython/Modules/_cursesmodule.c:3584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - tenths
    argTypes:
    - PyObject*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3585
      start: 3578
    functionDepth: 5
    functionLinenumber: 3578
    functionLinenumberEnd: 3585
    functionName: _curses_halfdelay_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - halfdelay
    - PyCursesStatefulInitialised
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_halfdelay_impl(PyObject *module, unsigned char tenths)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3635,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3637,1
    - Dst: has_key
      Src: /src/cpython/Modules/_cursesmodule.c:3637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3631
    functionDepth: 1
    functionLinenumber: 3631
    functionLinenumberEnd: 3638
    functionName: _curses_has_key_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyCursesStatefulInitialised
    - has_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_key_impl(PyObject *module, int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3666,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:3667,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3669,1
    - Dst: _CURSES_INIT_COLOR_FUNC
      Src: /src/cpython/Modules/_cursesmodule.c:3670,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_cursesmodule.c:3671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - module
    - color_number
    - r
    - g
    - b
    argTypes:
    - PyObject*
    - int
    - short
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3673
      start: 3661
    functionDepth: 5
    functionLinenumber: 3661
    functionLinenumberEnd: 3673
    functionName: _curses_init_color_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - PyCursesStatefulInitialisedColor
    - curses_check_err
    - PyCursesStatefulInitialised
    - _CURSES_INIT_COLOR_FUNC
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_init_color_impl(PyObject *module, int color_number,
      short r, short g,\n                        short b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3696,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:3697,1
    - Dst: _CURSES_INIT_PAIR_FUNC
      Src: /src/cpython/Modules/_cursesmodule.c:3699,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:3701,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_cursesmodule.c:3706,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:3707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - module
    - pair_number
    - fg
    - bg
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3713
      start: 3692
    functionDepth: 4
    functionLinenumber: 3692
    functionLinenumberEnd: 3713
    functionName: _curses_init_pair_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - PyCursesStatefulInitialisedColor
    - PyErr_Format
    - PyCursesStatefulInitialised
    - curses_set_error
    - _CURSES_INIT_PAIR_FUNC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_init_pair_impl(PyObject *module, int pair_number, int fg, int bg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3730,1
    - Dst: wrefresh
      Src: /src/cpython/Modules/_cursesmodule.c:3731,1
    - Dst: _curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:3733,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:3736,1
    - Dst: initscr
      Src: /src/cpython/Modules/_cursesmodule.c:3739,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:3742,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:3748,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3768,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3769,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3770,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3771,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3772,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3773,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3774,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3775,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3776,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3777,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3778,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3784,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3785,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3786,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3787,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3788,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3789,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3790,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3791,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3792,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3793,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3794,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3795,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3796,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3797,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3799,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3800,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3801,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3802,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3803,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3804,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3805,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3806,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3807,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3808,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3809,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3813,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3816,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3819,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3822,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3825,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3828,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3831,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3834,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3835,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3838,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:3839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 67
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3845
      start: 3723
    functionDepth: 4
    functionLinenumber: 3723
    functionLinenumberEnd: 3845
    functionName: _curses_initscr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - PyModule_GetDict
    - PyCursesWindow_New
    - curses_set_null_error
    - SetDictInt
    - _curses_set_null_error
    - initscr
    - wrefresh
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_initscr_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3766
      start: 3754
    functionDepth: 0
    functionLinenumber: 3754
    functionLinenumberEnd: 3766
    functionName: SetDictInt
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDictInt(NAME, VALUE)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Modules/_cursesmodule.c:3869,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3874,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:3875,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3876,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_cursesmodule.c:3880,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3881,1
    - Dst: setupterm
      Src: /src/cpython/Modules/_cursesmodule.c:3887,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3896,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:3897,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - module
    - term
    - fd
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3904
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3904
    functionName: _curses_setupterm_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySys_GetOptionalAttrString
    - Py_DECREF
    - get_cursesmodule_state
    - PyErr_SetString
    - setupterm
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_setupterm_impl(PyObject *module, const char *term, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3919
    functionDepth: 0
    functionLinenumber: 3919
    functionLinenumberEnd: 3924
    functionName: _curses_get_escdelay_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_get_escdelay_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:3943,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3947,1
    - Dst: set_escdelay
      Src: /src/cpython/Modules/_cursesmodule.c:3947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3948
      start: 3938
    functionDepth: 5
    functionLinenumber: 3938
    functionLinenumberEnd: 3948
    functionName: _curses_set_escdelay_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - set_escdelay
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_set_escdelay_impl(PyObject *module, int ms)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3964
    functionName: _curses_get_tabsize_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_get_tabsize_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:3982,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3986,1
    - Dst: set_tabsize
      Src: /src/cpython/Modules/_cursesmodule.c:3986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - size
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3977
    functionDepth: 5
    functionLinenumber: 3977
    functionLinenumberEnd: 3987
    functionName: _curses_set_tabsize_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - set_tabsize
    - PyErr_SetString
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_set_tabsize_impl(PyObject *module, int size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4002,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4004,1
    - Dst: intrflush
      Src: /src/cpython/Modules/_cursesmodule.c:4004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4005
      start: 3998
    functionDepth: 5
    functionLinenumber: 3998
    functionLinenumberEnd: 4005
    functionName: _curses_intrflush_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - intrflush
    - PyCursesStatefulInitialised
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_intrflush_impl(PyObject *module, int flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4036,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4038,1
    - Dst: is_term_resized
      Src: /src/cpython/Modules/_cursesmodule.c:4038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4032
    functionDepth: 1
    functionLinenumber: 4032
    functionLinenumberEnd: 4039
    functionName: _curses_is_term_resized_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyCursesStatefulInitialised
    - is_term_resized
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_is_term_resized_impl(PyObject *module, int nlines, int ncols)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4058,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:4061,1
    - Dst: keyname
      Src: /src/cpython/Modules/_cursesmodule.c:4064,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4067
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4067
    functionName: _curses_keyname_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyCursesStatefulInitialised
    - PyBytes_FromString
    - keyname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_keyname_impl(PyObject *module, int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: killchar
      Src: /src/cpython/Modules/_cursesmodule.c:4081,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:4083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4084
      start: 4075
    functionDepth: 1
    functionLinenumber: 4075
    functionLinenumberEnd: 4084
    functionName: _curses_killchar_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - killchar
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_killchar_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4117,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4119,1
    - Dst: meta
      Src: /src/cpython/Modules/_cursesmodule.c:4119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - 'yes'
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4120
      start: 4113
    functionDepth: 5
    functionLinenumber: 4113
    functionLinenumberEnd: 4120
    functionName: _curses_meta_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - meta
    - PyCursesStatefulInitialised
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_meta_impl(PyObject *module, int yes)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4141,1
    - Dst: mouseinterval
      Src: /src/cpython/Modules/_cursesmodule.c:4142,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:4144,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - interval
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4137
    functionDepth: 4
    functionLinenumber: 4137
    functionLinenumberEnd: 4148
    functionName: _curses_mouseinterval_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyCursesStatefulInitialised
    - curses_set_error
    - mouseinterval
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mouseinterval_impl(PyObject *module, int interval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4171,1
    - Dst: mousemask
      Src: /src/cpython/Modules/_cursesmodule.c:4172,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:4173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - newmask
    argTypes:
    - PyObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4175
      start: 4165
    functionDepth: 1
    functionLinenumber: 4165
    functionLinenumberEnd: 4175
    functionName: _curses_mousemask_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mousemask
    - PyCursesStatefulInitialised
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mousemask_impl(PyObject *module, unsigned long newmask)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesStatefulCheckFunction
      Src: /src/cpython/Modules/_cursesmodule.c:4192,1
    - Dst: napms
      Src: /src/cpython/Modules/_cursesmodule.c:4197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4198
      start: 4188
    functionDepth: 3
    functionLinenumber: 4188
    functionLinenumberEnd: 4198
    functionName: _curses_napms_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyCursesStatefulCheckFunction
    - napms
    linkageType: ''
    returnType: int
    signature: int _curses_napms_impl(PyObject *module, int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4219,1
    - Dst: newpad
      Src: /src/cpython/Modules/_cursesmodule.c:4221,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4224,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:4228,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:4229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4230
      start: 4213
    functionDepth: 4
    functionLinenumber: 4213
    functionLinenumberEnd: 4230
    functionName: _curses_newpad_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - newpad
    - get_cursesmodule_state
    - PyCursesWindow_New
    - curses_set_null_error
    - PyCursesStatefulInitialised
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_newpad_impl(PyObject *module, int nlines, int ncols)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4260,1
    - Dst: newwin
      Src: /src/cpython/Modules/_cursesmodule.c:4262,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4264,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:4268,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:4269,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: 4270
      start: 4253
    functionDepth: 4
    functionLinenumber: 4253
    functionLinenumberEnd: 4270
    functionName: _curses_newwin_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - newwin
    - PyCursesWindow_New
    - curses_set_null_error
    - PyCursesStatefulInitialised
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4373,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:4374,1
    - Dst: _CURSES_PAIR_CONTENT_FUNC
      Src: /src/cpython/Modules/_cursesmodule.c:4376,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:4378,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_cursesmodule.c:4383,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:4384,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:4389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - pair_number
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4367
    functionDepth: 4
    functionLinenumber: 4367
    functionLinenumberEnd: 4390
    functionName: _curses_pair_content_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - Py_BuildValue
    - PyCursesStatefulInitialisedColor
    - PyErr_Format
    - _CURSES_PAIR_CONTENT_FUNC
    - curses_set_error
    - PyCursesStatefulInitialised
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_content_impl(PyObject *module, int pair_number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4407,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:4408,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4410,1
    - Dst: PAIR_NUMBER
      Src: /src/cpython/Modules/_cursesmodule.c:4410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - attr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4403
    functionDepth: 1
    functionLinenumber: 4403
    functionLinenumberEnd: 4411
    functionName: _curses_pair_number_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialisedColor
    - PyCursesStatefulInitialised
    - PAIR_NUMBER
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_number_impl(PyObject *module, int attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4428,1
    - Dst: putp
      Src: /src/cpython/Modules/_cursesmodule.c:4428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4429
      start: 4424
    functionDepth: 5
    functionLinenumber: 4424
    functionLinenumberEnd: 4429
    functionName: _curses_putp_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_check_err
    - putp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_putp_impl(PyObject *module, const char *string)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4448,1
    - Dst: qiflush
      Src: /src/cpython/Modules/_cursesmodule.c:4451,1
    - Dst: noqiflush
      Src: /src/cpython/Modules/_cursesmodule.c:4454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4444
    functionDepth: 1
    functionLinenumber: 4444
    functionLinenumberEnd: 4457
    functionName: _curses_qiflush_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - noqiflush
    - qiflush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_qiflush_impl(PyObject *module, int flag)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_cursesmodule.c:4467,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:4471,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:4475,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4480,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4484,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4490,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4492,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4496,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4499,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4503,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4507,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4508,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - private_module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4510
      start: 4462
    functionDepth: 1
    functionLinenumber: 4462
    functionLinenumberEnd: 4510
    functionName: update_lines_cols
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyImport_ImportModule
    - PyModule_GetDict
    - PyDict_SetItemString
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int update_lines_cols(PyObject *private_module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_lines_cols
      Src: /src/cpython/Modules/_cursesmodule.c:4521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4525
      start: 4517
    functionDepth: 2
    functionLinenumber: 4517
    functionLinenumberEnd: 4525
    functionName: _curses_update_lines_cols_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - update_lines_cols
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_update_lines_cols_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4606,1
    - Dst: resizeterm
      Src: /src/cpython/Modules/_cursesmodule.c:4608,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4609,1
    - Dst: update_lines_cols
      Src: /src/cpython/Modules/_cursesmodule.c:4612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4617
      start: 4599
    functionDepth: 5
    functionLinenumber: 4599
    functionLinenumberEnd: 4617
    functionName: _curses_resizeterm_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - resizeterm
    - Py_DECREF
    - update_lines_cols
    - curses_check_err
    - PyCursesStatefulInitialised
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resizeterm_impl(PyObject *module, short nlines, short ncols)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4648,1
    - Dst: resize_term
      Src: /src/cpython/Modules/_cursesmodule.c:4650,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4651,1
    - Dst: update_lines_cols
      Src: /src/cpython/Modules/_cursesmodule.c:4654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4659
      start: 4641
    functionDepth: 5
    functionLinenumber: 4641
    functionLinenumberEnd: 4659
    functionName: _curses_resize_term_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - update_lines_cols
    - resize_term
    - curses_check_err
    - PyCursesStatefulInitialised
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resize_term_impl(PyObject *module, short nlines, short ncols)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4692,1
    - Dst: setsyx
      Src: /src/cpython/Modules/_cursesmodule.c:4694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - y
    - x
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4697
      start: 4688
    functionDepth: 1
    functionLinenumber: 4688
    functionLinenumberEnd: 4697
    functionName: _curses_setsyx_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - setsyx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_setsyx_impl(PyObject *module, int y, int x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4717,1
    - Dst: start_color
      Src: /src/cpython/Modules/_cursesmodule.c:4719,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:4720,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:4726,1
    - Dst: DICT_ADD_INT_VALUE
      Src: /src/cpython/Modules/_cursesmodule.c:4743,1
    - Dst: DICT_ADD_INT_VALUE
      Src: /src/cpython/Modules/_cursesmodule.c:4744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4748
      start: 4713
    functionDepth: 4
    functionLinenumber: 4713
    functionLinenumberEnd: 4748
    functionName: _curses_start_color_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetDict
    - DICT_ADD_INT_VALUE
    - PyCursesStatefulInitialised
    - curses_set_error
    - start_color
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_start_color_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4742
      start: 4730
    functionDepth: 0
    functionLinenumber: 4730
    functionLinenumberEnd: 4742
    functionName: DICT_ADD_INT_VALUE
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DICT_ADD_INT_VALUE(NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulSetupTermCalled
      Src: /src/cpython/Modules/_cursesmodule.c:4790,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4792,1
    - Dst: tigetflag
      Src: /src/cpython/Modules/_cursesmodule.c:4792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4793
      start: 4786
    functionDepth: 1
    functionLinenumber: 4786
    functionLinenumberEnd: 4793
    functionName: _curses_tigetflag_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulSetupTermCalled
    - tigetflag
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetflag_impl(PyObject *module, const char *capname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulSetupTermCalled
      Src: /src/cpython/Modules/_cursesmodule.c:4812,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4814,1
    - Dst: tigetnum
      Src: /src/cpython/Modules/_cursesmodule.c:4814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4815
      start: 4808
    functionDepth: 1
    functionLinenumber: 4808
    functionLinenumberEnd: 4815
    functionName: _curses_tigetnum_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - tigetnum
    - PyCursesStatefulSetupTermCalled
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetnum_impl(PyObject *module, const char *capname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulSetupTermCalled
      Src: /src/cpython/Modules/_cursesmodule.c:4834,1
    - Dst: tigetstr
      Src: /src/cpython/Modules/_cursesmodule.c:4836,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4841
      start: 4830
    functionDepth: 1
    functionLinenumber: 4830
    functionLinenumberEnd: 4841
    functionName: _curses_tigetstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulSetupTermCalled
    - PyBytes_FromString
    - tigetstr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetstr_impl(PyObject *module, const char *capname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulSetupTermCalled
      Src: /src/cpython/Modules/_cursesmodule.c:4869,1
    - Dst: tparm
      Src: /src/cpython/Modules/_cursesmodule.c:4871,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4873,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4877,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: 4878
      start: 4862
    functionDepth: 4
    functionLinenumber: 4862
    functionLinenumberEnd: 4878
    functionName: _curses_tparm_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - tparm
    - PyCursesStatefulSetupTermCalled
    - curses_set_null_error
    - PyBytes_FromString
    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: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4897,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4899,1
    - Dst: typeahead
      Src: /src/cpython/Modules/_cursesmodule.c:4899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4900
      start: 4893
    functionDepth: 5
    functionLinenumber: 4893
    functionLinenumberEnd: 4900
    functionName: _curses_typeahead_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - typeahead
    - PyCursesStatefulInitialised
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_typeahead_impl(PyObject *module, int fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4921,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:4923,1
    - Dst: unctrl
      Src: /src/cpython/Modules/_cursesmodule.c:4926,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4928,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4932
      start: 4915
    functionDepth: 4
    functionLinenumber: 4915
    functionLinenumberEnd: 4932
    functionName: _curses_unctrl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - unctrl
    - curses_set_null_error
    - PyCursesStatefulInitialised
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_unctrl(PyObject *module, PyObject *ch)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4949,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:4951,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4954,1
    - Dst: ungetch
      Src: /src/cpython/Modules/_cursesmodule.c:4954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4955
      start: 4943
    functionDepth: 5
    functionLinenumber: 4943
    functionLinenumberEnd: 4955
    functionName: _curses_ungetch
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_check_err
    - PyCurses_ConvertToChtype
    - ungetch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_ungetch(PyObject *module, PyObject *ch)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_cursesmodule.c:4968,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_cursesmodule.c:4970,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:4971,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_cursesmodule.c:4974,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_cursesmodule.c:4980,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_cursesmodule.c:4983,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:4985,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:4991,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:4998,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:5000,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - obj
    - wch
    argTypes:
    - PyObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5003
      start: 4964
    functionDepth: 1
    functionLinenumber: 4964
    functionLinenumberEnd: 5003
    functionName: PyCurses_ConvertToWchar_t
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyUnicode_AsWideChar
    - PyErr_SetString
    - Py_TYPE
    - PyLong_CheckExact
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int PyCurses_ConvertToWchar_t(PyObject *obj,\n                          wchar_t
      *wch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:5020,1
    - Dst: PyCurses_ConvertToWchar_t
      Src: /src/cpython/Modules/_cursesmodule.c:5022,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:5024,1
    - Dst: unget_wch
      Src: /src/cpython/Modules/_cursesmodule.c:5024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5025
      start: 5014
    functionDepth: 5
    functionLinenumber: 5014
    functionLinenumberEnd: 5025
    functionName: _curses_unget_wch
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToWchar_t
    - PyCursesStatefulInitialised
    - curses_check_err
    - unget_wch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_unget_wch(PyObject *module, PyObject *ch)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: use_env
      Src: /src/cpython/Modules/_cursesmodule.c:5052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5054
      start: 5048
    functionDepth: 0
    functionLinenumber: 5048
    functionLinenumberEnd: 5054
    functionName: _curses_use_env_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - use_env
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_env_impl(PyObject *module, int flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:5070,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:5071,1
    - Dst: use_default_colors
      Src: /src/cpython/Modules/_cursesmodule.c:5073,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:5074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5075
      start: 5064
    functionDepth: 5
    functionLinenumber: 5064
    functionLinenumberEnd: 5075
    functionName: _curses_use_default_colors_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialisedColor
    - PyCursesStatefulInitialised
    - curses_check_err
    - use_default_colors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_default_colors_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:5097,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:5098,1
    - Dst: assume_default_colors
      Src: /src/cpython/Modules/_cursesmodule.c:5100,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:5101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - fg
    - bg
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5102
      start: 5091
    functionDepth: 5
    functionLinenumber: 5091
    functionLinenumberEnd: 5102
    functionName: _curses_assume_default_colors_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialisedColor
    - curses_check_err
    - PyCursesStatefulInitialised
    - assume_default_colors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_assume_default_colors_impl(PyObject *module, int fg, int bg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_cursesmodule.c:5130,1
    - Dst: curses_version
      Src: /src/cpython/Modules/_cursesmodule.c:5134,1
    - Dst: sscanf
      Src: /src/cpython/Modules/_cursesmodule.c:5136,1
    - Dst: SET_VERSION_COMPONENT
      Src: /src/cpython/Modules/_cursesmodule.c:5152,1
    - Dst: SET_VERSION_COMPONENT
      Src: /src/cpython/Modules/_cursesmodule.c:5153,1
    - Dst: SET_VERSION_COMPONENT
      Src: /src/cpython/Modules/_cursesmodule.c:5154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5157
      start: 5127
    functionDepth: 1
    functionLinenumber: 5127
    functionLinenumberEnd: 5157
    functionName: make_ncurses_version
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - SET_VERSION_COMPONENT
    - curses_version
    - PyStructSequence_New
    - sscanf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_ncurses_version(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - INDEX
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5151
      start: 5142
    functionDepth: 0
    functionLinenumber: 5142
    functionLinenumberEnd: 5151
    functionName: SET_VERSION_COMPONENT
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_VERSION_COMPONENT(INDEX, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:5174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5175
      start: 5170
    functionDepth: 1
    functionLinenumber: 5170
    functionLinenumberEnd: 5175
    functionName: _curses_has_extended_color_support_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_extended_color_support_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesCheckFunction
      Src: /src/cpython/Modules/_cursesmodule.c:5273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5274
      start: 5270
    functionDepth: 2
    functionLinenumber: 5270
    functionLinenumberEnd: 5274
    functionName: curses_capi_setupterm_called
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyCursesCheckFunction
    linkageType: ''
    returnType: int
    signature: int curses_capi_setupterm_called(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesCheckFunction
      Src: /src/cpython/Modules/_cursesmodule.c:5279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5280
      start: 5276
    functionDepth: 2
    functionLinenumber: 5276
    functionLinenumberEnd: 5280
    functionName: curses_capi_initscr_called
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyCursesCheckFunction
    linkageType: ''
    returnType: int
    signature: int curses_capi_initscr_called(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesCheckFunction
      Src: /src/cpython/Modules/_cursesmodule.c:5285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5282
    functionDepth: 2
    functionLinenumber: 5282
    functionLinenumberEnd: 5286
    functionName: curses_capi_start_color_called
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyCursesCheckFunction
    linkageType: ''
    returnType: int
    signature: int curses_capi_start_color_called(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:5291,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_cursesmodule.c:5292,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_cursesmodule.c:5294,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_cursesmodule.c:5297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - cursesmodule_state*
    assertStmts:
    - condition: (state->window_type != NULL)
      pos:
        line_end: 5290
        line_start: 5290
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5302
      start: 5288
    functionDepth: 1
    functionLinenumber: 5288
    functionLinenumberEnd: 5302
    functionName: curses_capi_new
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMem_Calloc
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      curses_capi_new(cursesmodule_state *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:5307,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5311,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:5312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capi
    argTypes:
    - void*
    assertStmts:
    - condition: (capi != NULL)
      pos:
        line_end: 5306
        line_start: 5306
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5313
      start: 5304
    functionDepth: 1
    functionLinenumber: 5304
    functionLinenumberEnd: 5313
    functionName: curses_capi_free
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void curses_capi_free(void *capi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_cursesmodule.c:5320,1
    - Dst: curses_capi_free
      Src: /src/cpython/Modules/_cursesmodule.c:5321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5322
      start: 5317
    functionDepth: 2
    functionLinenumber: 5317
    functionLinenumberEnd: 5322
    functionName: curses_capi_capsule_destructor
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_GetPointer
    - curses_capi_free
    linkageType: ''
    returnType: void
    signature: void curses_capi_capsule_destructor(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_cursesmodule.c:5327,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:5328,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:5329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (capi_ptr != NULL)
      pos:
        line_end: 5327
        line_start: 5327
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5331
      start: 5324
    functionDepth: 1
    functionLinenumber: 5324
    functionLinenumberEnd: 5331
    functionName: curses_capi_capsule_traverse
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_VISIT
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: int
    signature: int curses_capi_capsule_traverse(PyObject *op, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_cursesmodule.c:5336,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:5337,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (capi_ptr != NULL)
      pos:
        line_end: 5336
        line_start: 5336
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5340
      start: 5333
    functionDepth: 1
    functionLinenumber: 5333
    functionLinenumberEnd: 5340
    functionName: curses_capi_capsule_clear
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_CLEAR
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: int
    signature: int curses_capi_capsule_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_cursesmodule.c:5345,1
    - Dst: _PyCapsule_SetTraverse
      Src: /src/cpython/Modules/_cursesmodule.c:5350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - capi
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5358
      start: 5342
    functionDepth: 1
    functionLinenumber: 5342
    functionLinenumberEnd: 5358
    functionName: curses_capi_capsule_new
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyCapsule_SetTraverse
    - PyCapsule_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      curses_capi_capsule_new(void *capi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:5365,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:5366,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:5367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5369
      start: 5362
    functionDepth: 2
    functionLinenumber: 5362
    functionLinenumberEnd: 5369
    functionName: cursesmodule_traverse
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cursesmodule_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:5374,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5375,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5371
    functionDepth: 2
    functionLinenumber: 5371
    functionLinenumberEnd: 5378
    functionName: cursesmodule_clear
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int cursesmodule_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cursesmodule_clear
      Src: /src/cpython/Modules/_cursesmodule.c:5383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5385
      start: 5380
    functionDepth: 3
    functionLinenumber: 5380
    functionLinenumberEnd: 5385
    functionName: cursesmodule_free
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - cursesmodule_clear
    linkageType: ''
    returnType: void
    signature: void cursesmodule_free(void *mod)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:5391,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:5397,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_cursesmodule.c:5399,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_cursesmodule.c:5404,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:5409,1
    - Dst: curses_capi_new
      Src: /src/cpython/Modules/_cursesmodule.c:5415,1
    - Dst: curses_capi_capsule_new
      Src: /src/cpython/Modules/_cursesmodule.c:5420,1
    - Dst: curses_capi_free
      Src: /src/cpython/Modules/_cursesmodule.c:5422,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5426,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_cursesmodule.c:5432,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5436,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:5442,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5448,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5451,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5452,1
    - Dst: _PyStructSequence_NewType
      Src: /src/cpython/Modules/_cursesmodule.c:5460,1
    - Dst: make_ncurses_version
      Src: /src/cpython/Modules/_cursesmodule.c:5465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5466,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5470,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5471,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5490,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5491,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5495,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5496,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5497,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5498,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5499,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5500,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5501,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5502,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5503,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5504,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5505,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5506,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5507,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5511,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5514,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5517,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5520,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5523,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5526,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5531,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5534,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5535,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5536,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5537,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5538,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5539,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5540,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5541,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5545,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5546,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5547,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5548,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5549,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5551,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5552,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5553,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5554,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5555,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5557,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5558,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5559,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5560,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5561,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5563,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5564,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5565,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5566,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5567,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5570,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5571,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5572,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5573,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5574,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5577,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5578,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5579,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5581,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5582,1
    - Dst: keyname
      Src: /src/cpython/Modules/_cursesmodule.c:5586,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_cursesmodule.c:5587,1
    - Dst: strncmp
      Src: /src/cpython/Modules/_cursesmodule.c:5590,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_cursesmodule.c:5591,1
    - Dst: strlen
      Src: /src/cpython/Modules/_cursesmodule.c:5591,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_cursesmodule.c:5593,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:5606,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:5608,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5612,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:5613,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5619,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5622,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5623,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 154
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5626
      start: 5387
    functionDepth: 2
    functionLinenumber: 5387
    functionLinenumberEnd: 5626
    functionName: cursesmodule_exec
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyErr_SetString
    - curses_capi_capsule_new
    - PyType_FromModuleAndSpec
    - PyErr_NewException
    - SetDictInt
    - make_ncurses_version
    - PyLong_FromLong
    - Py_CLEAR
    - PyMem_Free
    - strncmp
    - strcmp
    - PyModule_GetDict
    - curses_capi_free
    - Py_DECREF
    - _PyStructSequence_NewType
    - curses_capi_new
    - PyDict_SetItemString
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyModule_AddType
    - get_cursesmodule_state
    - keyname
    - PyBytes_FromString
    linkageType: ''
    returnType: int
    signature: int cursesmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5477
    functionDepth: 0
    functionLinenumber: 5477
    functionLinenumberEnd: 5489
    functionName: SetDictInt
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDictInt(NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_cursesmodule.c:5651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5652
      start: 5648
    functionDepth: 1
    functionLinenumber: 5648
    functionLinenumberEnd: 5652
    functionName: PyInit__curses
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__curses(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/cpython/Modules/mmapmodule.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: my_getpagesize
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: int my_getpagesize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/cpython/Modules/mmapmodule.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: my_getallocationgranularity
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: int my_getallocationgranularity (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/cpython/Modules/mmapmodule.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: my_getpagesize
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: int
    signature: int my_getpagesize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: mmap_object_CAST
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mmap_object_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/mmapmodule.c:134,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mmapmodule.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: mmap_object_traverse
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int mmap_object_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:141,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mmapmodule.c:142,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/mmapmodule.c:143,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:148,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:150,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:152,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mmapmodule.c:155,1
    - Dst: close
      Src: /src/cpython/Modules/mmapmodule.c:161,1
    - Dst: munmap
      Src: /src/cpython/Modules/mmapmodule.c:163,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/mmapmodule.c:168,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/mmapmodule.c:170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 172
    functionName: mmap_object_dealloc
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - close
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - UnmapViewOfFile
    - munmap
    - CloseHandle
    - Py_TYPE
    - PyMem_Free
    - mmap_object_CAST
    linkageType: ''
    returnType: void
    signature: void mmap_object_dealloc(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:177,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:179,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:199,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:202,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:205,1
    - Dst: close
      Src: /src/cpython/Modules/mmapmodule.c:217,1
    - Dst: munmap
      Src: /src/cpython/Modules/mmapmodule.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 225
    functionName: mmap_close_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - close
    - PyErr_SetString
    - UnmapViewOfFile
    - munmap
    - CloseHandle
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_close_method(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: CHECK_VALID
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VALID(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - err
    - ','
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: CHECK_VALID_OR_RELEASE
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VALID_OR_RELEASE(err, buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: CHECK_VALID
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VALID(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - err
    - ','
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: CHECK_VALID_OR_RELEASE
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VALID_OR_RELEASE(err, buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptrs
    - record
    argTypes:
    - EXCEPTION_POINTERS*
    - EXCEPTION_RECORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: filter_page_exception
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD filter_page_exception(EXCEPTION_POINTERS *ptrs, EXCEPTION_RECORD
      *record)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - self
    - ptrs
    - record
    argTypes:
    - mmap_object*
    - EXCEPTION_POINTERS*
    - EXCEPTION_RECORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 293
    functionName: filter_page_exception_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: "DWORD filter_page_exception_method(mmap_object *self, EXCEPTION_POINTERS
      *ptrs,\n                             EXCEPTION_RECORD *record)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:299,1
    - Dst: LsaNtStatusToWinError
      Src: /src/cpython/Modules/mmapmodule.c:299,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:303,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - status
    argTypes:
    - ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: _PyErr_SetFromNTSTATUS
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - LsaNtStatusToWinError
    - PyErr_SetFromWindowsErr
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetFromNTSTATUS(ULONG status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sourcecode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 333
    functionName: HANDLE_INVALID_MEM
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_INVALID_MEM(sourcecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sourcecode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: HANDLE_INVALID_MEM
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_INVALID_MEM(sourcecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - self
    - ','
    - sourcecode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 360
    functionName: HANDLE_INVALID_MEM_METHOD
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_INVALID_MEM_METHOD(self, sourcecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - self
    - ','
    - sourcecode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: HANDLE_INVALID_MEM_METHOD
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_INVALID_MEM_METHOD(self, sourcecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - count
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: safe_memcpy
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int safe_memcpy(void *dest, const void *src, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_INVALID_MEM
      Src: /src/cpython/Modules/mmapmodule.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: safe_byte_copy
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - HANDLE_INVALID_MEM
    linkageType: ''
    returnType: int
    signature: int safe_byte_copy(char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_INVALID_MEM
      Src: /src/cpython/Modules/mmapmodule.c:388,1
    - Dst: memchr
      Src: /src/cpython/Modules/mmapmodule.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - ptr
    - ch
    - count
    argTypes:
    - char**
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 392
    functionName: safe_memchr
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - memchr
    - HANDLE_INVALID_MEM
    linkageType: ''
    returnType: int
    signature: int safe_memchr(char **out, const void *ptr, int ch, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - count
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 401
    functionName: safe_memmove
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int safe_memmove(void *dest, const void *src, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - dest
    - src
    - start
    - step
    - slicelen
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: safe_copy_from_slice
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int safe_copy_from_slice(char *dest, const char *src, Py_ssize_t start,\n
      \                    Py_ssize_t step, Py_ssize_t slicelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - dest
    - src
    - start
    - step
    - slicelen
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: safe_copy_to_slice
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int safe_copy_to_slice(char *dest, const char *src, Py_ssize_t start,\n
      \                  Py_ssize_t step, Py_ssize_t slicelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_INVALID_MEM_METHOD
      Src: /src/cpython/Modules/mmapmodule.c:437,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/mmapmodule.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - out
    - self
    - haystack
    - len_haystack
    - needle
    - len_needle
    - offset
    argTypes:
    - Py_ssize_t*
    - mmap_object*
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: _safe_PyBytes_Find
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - HANDLE_INVALID_MEM_METHOD
    - _PyBytes_Find
    linkageType: ''
    returnType: int
    signature: "int _safe_PyBytes_Find(Py_ssize_t *out, mmap_object *self, const char
      *haystack,\n                   Py_ssize_t len_haystack, const char *needle,\n
      \                  Py_ssize_t len_needle, Py_ssize_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_INVALID_MEM_METHOD
      Src: /src/cpython/Modules/mmapmodule.c:449,1
    - Dst: _PyBytes_ReverseFind
      Src: /src/cpython/Modules/mmapmodule.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - out
    - self
    - haystack
    - len_haystack
    - needle
    - len_needle
    - offset
    argTypes:
    - Py_ssize_t*
    - mmap_object*
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 454
    functionName: _safe_PyBytes_ReverseFind
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - HANDLE_INVALID_MEM_METHOD
    - _PyBytes_ReverseFind
    linkageType: ''
    returnType: int
    signature: "int _safe_PyBytes_ReverseFind(Py_ssize_t *out, mmap_object *self,\n
      \                         const char *haystack, Py_ssize_t len_haystack,\n                          const
      char *needle, Py_ssize_t len_needle,\n                          Py_ssize_t offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:460,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:464,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:468,1
    - Dst: safe_memcpy
      Src: /src/cpython/Modules/mmapmodule.c:472,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/mmapmodule.c:472,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mmapmodule.c:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - start
    - num_bytes
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 477
    functionName: _safe_PyBytes_FromStringAndSize
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - safe_byte_copy
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - Py_CLEAR
    - safe_memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _safe_PyBytes_FromStringAndSize(char *start, size_t num_bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:482,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:483,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:485,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:489,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 494
    functionName: mmap_read_byte_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyErr_SetString
    - PyLong_FromLong
    - safe_byte_copy
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_read_byte_method(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:501,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:503,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/mmapmodule.c:507,1
    - Dst: safe_memchr
      Src: /src/cpython/Modules/mmapmodule.c:510,1
    - Dst: _safe_PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 524
    functionName: mmap_read_line_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - Py_GetConstant
    - safe_memchr
    - _safe_PyBytes_FromStringAndSize
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_read_line_method(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:530,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:532,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:533,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:535,1
    - Dst: _safe_PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 548
    functionName: mmap_read_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - _safe_PyBytes_FromStringAndSize
    - mmap_object_CAST
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_read_method(PyObject *op, PyObject *args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:559,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:560,1
    - Dst: CHECK_VALID_OR_RELEASE
      Src: /src/cpython/Modules/mmapmodule.c:581,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:583,1
    - Dst: assert
      Src: /src/cpython/Modules/mmapmodule.c:586,1
    - Dst: _safe_PyBytes_ReverseFind
      Src: /src/cpython/Modules/mmapmodule.c:587,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:594,1
    - Dst: assert
      Src: /src/cpython/Modules/mmapmodule.c:598,1
    - Dst: _safe_PyBytes_Find
      Src: /src/cpython/Modules/mmapmodule.c:599,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:606,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:609,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - self
    - args
    - reverse
    argTypes:
    - mmap_object*
    - PyObject*
    - int
    assertStmts:
    - condition: (0 <= start && start <= end && end <= self->size)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/cpython/Modules/mmapmodule.c
    - condition: (0 <= start && start <= end && end <= self->size)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/cpython/Modules/mmapmodule.c
    constantsTouched: []
    func_position:
      end: 612
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 612
    functionName: mmap_gfind
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - _safe_PyBytes_Find
    - PyArg_ParseTuple
    - PyLong_FromSsize_t
    - _safe_PyBytes_ReverseFind
    - CHECK_VALID_OR_RELEASE
    - PyBuffer_Release
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_gfind(mmap_object *self,\n           PyObject *args,\n
      \          int reverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:617,1
    - Dst: mmap_gfind
      Src: /src/cpython/Modules/mmapmodule.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: mmap_find_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_object_CAST
    - mmap_gfind
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_find_method(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:624,1
    - Dst: mmap_gfind
      Src: /src/cpython/Modules/mmapmodule.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: mmap_rfind_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_object_CAST
    - mmap_gfind
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_rfind_method(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 635
    functionName: is_writable
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int is_writable(mmap_object *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:641,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:647,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 658
    functionName: is_resizeable
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int is_resizeable(mmap_object *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:665,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:667,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:668,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:671,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:672,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:677,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:678,1
    - Dst: CHECK_VALID_OR_RELEASE
      Src: /src/cpython/Modules/mmapmodule.c:682,1
    - Dst: safe_memcpy
      Src: /src/cpython/Modules/mmapmodule.c:684,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:689,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:691,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 693
    functionName: mmap_write_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyLong_FromSsize_t
    - CHECK_VALID_OR_RELEASE
    - PyBuffer_Release
    - is_writable
    - safe_memcpy
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_write_method(PyObject *op, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:699,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:701,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:702,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:705,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:710,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 719
    functionName: mmap_write_byte_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyArg_ParseTuple
    - PyErr_SetString
    - is_writable
    - safe_byte_copy
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_write_byte_method(PyObject *op, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:724,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:725,1
    - Dst: GetFileSize
      Src: /src/cpython/Modules/mmapmodule.c:731,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:735,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:737,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:740,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/mmapmodule.c:742,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:744,1
    - Dst: _Py_fstat
      Src: /src/cpython/Modules/mmapmodule.c:751,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/mmapmodule.c:754,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:756,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 760
    functionName: mmap_size_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyLong_FromSsize_t
    - _Py_fstat
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyLong_FromLong
    - PyLong_FromLongLong
    - mmap_object_CAST
    - GetFileSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_size_method(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:775,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:776,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:777,1
    - Dst: is_resizeable
      Src: /src/cpython/Modules/mmapmodule.c:778,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:782,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:794,1
    - Dst: OpenFileMappingW
      Src: /src/cpython/Modules/mmapmodule.c:797,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:800,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:809,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:810,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:810,1
    - Dst: SetFilePointerEx
      Src: /src/cpython/Modules/mmapmodule.c:814,1
    - Dst: SetEndOfFile
      Src: /src/cpython/Modules/mmapmodule.c:816,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:818,1
    - Dst: CreateFileMappingW
      Src: /src/cpython/Modules/mmapmodule.c:826,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:834,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:841,1
    - Dst: MapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:845,1
    - Dst: memcpy
      Src: /src/cpython/Modules/mmapmodule.c:853,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:855,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:856,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:862,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:863,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:869,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:886,1
    - Dst: ftruncate
      Src: /src/cpython/Modules/mmapmodule.c:892,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:893,1
    - Dst: mremap
      Src: /src/cpython/Modules/mmapmodule.c:898,1
    - Dst: mremap
      Src: /src/cpython/Modules/mmapmodule.c:901,1
    - Dst: mremap
      Src: /src/cpython/Modules/mmapmodule.c:903,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:908,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 917
    functionName: mmap_resize_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mremap
    - CHECK_VALID
    - MapViewOfFile
    - PyArg_ParseTuple
    - PyErr_SetString
    - GetLastError
    - PyErr_SetFromWindowsErr
    - SetEndOfFile
    - ftruncate
    - UnmapViewOfFile
    - OpenFileMappingW
    - SetFilePointerEx
    - PyErr_SetFromErrno
    - memcpy
    - is_resizeable
    - CloseHandle
    - CreateFileMappingW
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_resize_method(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:922,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:923,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/mmapmodule.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 925
    functionName: mmap_tell_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyLong_FromSize_t
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_tell_method(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:931,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:933,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:934,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:937,1
    - Dst: FlushViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:945,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:946,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:946,1
    - Dst: msync
      Src: /src/cpython/Modules/mmapmodule.c:952,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:953,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:958,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 961
    functionName: mmap_flush_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - FlushViewOfFile
    - CHECK_VALID
    - PyArg_ParseTuple
    - PyErr_SetString
    - msync
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_SetFromErrno
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_flush_method(PyObject *op, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:967,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:969,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:970,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:989,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:995,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:999,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 1001
    functionName: mmap_seek_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyLong_FromSsize_t
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_seek_method(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1007
    functionName: mmap_seekable_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_seekable_method(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1013,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1014,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:1015,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:1016,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1025,1
    - Dst: safe_memmove
      Src: /src/cpython/Modules/mmapmodule.c:1026,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1032,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1036
    functionName: mmap_move_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - safe_memmove
    - PyArg_ParseTuple
    - PyErr_SetString
    - is_writable
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_move_method(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1041,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:1043,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1047
    functionName: mmap_closed_get
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_closed_get(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1052,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1053,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/mmapmodule.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1056
    functionName: mmap__enter__method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - CHECK_VALID
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap__enter__method(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_close_method
      Src: /src/cpython/Modules/mmapmodule.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1062
    functionName: mmap__exit__method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_close_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap__exit__method(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1113,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/mmapmodule.c:1114,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mmapmodule.c:1114,1
    - Dst: wcslen
      Src: /src/cpython/Modules/mmapmodule.c:1116,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/mmapmodule.c:1118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1119
    functionName: mmap__sizeof__method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - wcslen
    - PyLong_FromSize_t
    - Py_TYPE
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap__sizeof__method(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1127,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1129,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:1131,1
    - Dst: VirtualProtect
      Src: /src/cpython/Modules/mmapmodule.c:1135,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:1138,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:1138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1143
    functionName: mmap_protect_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyArg_ParseTuple
    - VirtualProtect
    - GetLastError
    - PyErr_SetFromWindowsErr
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_protect_method(PyObject *op, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1152,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1154,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/mmapmodule.c:1157,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1162,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1170,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1178,1
    - Dst: madvise
      Src: /src/cpython/Modules/mmapmodule.c:1179,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:1180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1185
    functionName: mmap_madvise_method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyErr_SetFromErrno
    - madvise
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_madvise_method(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1234,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1235,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/mmapmodule.c:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1241
    functionName: mmap_buffer_getbuf
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyBuffer_FillInfo
    - mmap_object_CAST
    linkageType: ''
    returnType: int
    signature: int mmap_buffer_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1248
    functionName: mmap_buffer_releasebuf
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_object_CAST
    linkageType: ''
    returnType: void
    signature: void mmap_buffer_releasebuf(PyObject *op, Py_buffer *Py_UNUSED(view))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1253,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1256
    functionName: mmap_length
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - mmap_object_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t mmap_length(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1261,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1262,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1264,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1269,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:1272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1258
    functionDepth: 2
    functionLinenumber: 1258
    functionLinenumberEnd: 1273
    functionName: mmap_item
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - safe_byte_copy
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_item(PyObject *op, Py_ssize_t i)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1278,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1279,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/mmapmodule.c:1280,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:1281,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:1282,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1287,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1291,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1294,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:1297,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/mmapmodule.c:1297,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/mmapmodule.c:1299,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/mmapmodule.c:1302,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/mmapmodule.c:1305,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1307,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/mmapmodule.c:1309,1
    - Dst: _safe_PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:1311,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/mmapmodule.c:1313,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/mmapmodule.c:1317,1
    - Dst: safe_copy_to_slice
      Src: /src/cpython/Modules/mmapmodule.c:1319,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:1325,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mmapmodule.c:1327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1332,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1275
    functionDepth: 3
    functionLinenumber: 1275
    functionLinenumberEnd: 1336
    functionName: mmap_subscript
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_CHARMASK
    - PyLong_FromLong
    - PyMem_Free
    - PyErr_Occurred
    - Py_GetConstant
    - PySlice_Unpack
    - PySlice_AdjustIndices
    - safe_copy_to_slice
    - PyBytes_FromStringAndSize
    - PyIndex_Check
    - PyErr_NoMemory
    - safe_byte_copy
    - PyMem_Malloc
    - CHECK_VALID
    - _safe_PyBytes_FromStringAndSize
    - PyNumber_AsSsize_t
    - PySlice_Check
    - mmap_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_subscript(PyObject *op, PyObject *item)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1342,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1344,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1346,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1350,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/mmapmodule.c:1354,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/mmapmodule.c:1354,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1355,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:1359,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/mmapmodule.c:1361,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1363,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - op
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1338
    functionDepth: 2
    functionLinenumber: 1338
    functionLinenumberEnd: 1367
    functionName: mmap_ass_item
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_AsString
    - is_writable
    - PyBytes_Size
    - safe_byte_copy
    - mmap_object_CAST
    linkageType: ''
    returnType: int
    signature: int mmap_ass_item(PyObject *op, Py_ssize_t i, PyObject *v)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1372,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1373,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:1375,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/mmapmodule.c:1378,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:1379,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:1382,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1387,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1392,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/mmapmodule.c:1396,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1397,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:1401,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:1402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1405,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1410,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1413,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/mmapmodule.c:1418,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/mmapmodule.c:1422,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/mmapmodule.c:1425,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1427,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/mmapmodule.c:1431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1434,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:1436,1
    - Dst: CHECK_VALID_OR_RELEASE
      Src: /src/cpython/Modules/mmapmodule.c:1440,1
    - Dst: safe_memcpy
      Src: /src/cpython/Modules/mmapmodule.c:1445,1
    - Dst: safe_copy_from_slice
      Src: /src/cpython/Modules/mmapmodule.c:1450,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:1456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1460,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1464
    functionName: mmap_ass_subscript
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PySlice_AdjustIndices
    - PyErr_Occurred
    - PySlice_Check
    - PyErr_SetString
    - safe_memcpy
    - safe_copy_from_slice
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - CHECK_VALID_OR_RELEASE
    - PyObject_GetBuffer
    - PyBuffer_Release
    - is_writable
    - PyIndex_Check
    - safe_byte_copy
    - mmap_object_CAST
    linkageType: ''
    returnType: int
    signature: int mmap_ass_subscript(PyObject *op, PyObject *item, PyObject *value)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/mmapmodule.c:1551,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1558,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1563,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:1570,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:1598,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/mmapmodule.c:1602,1
    - Dst: fcntl
      Src: /src/cpython/Modules/mmapmodule.c:1611,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Modules/mmapmodule.c:1616,1
    - Dst: S_ISREG
      Src: /src/cpython/Modules/mmapmodule.c:1620,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1623,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1628,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1633,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1639,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/mmapmodule.c:1644,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/mmapmodule.c:1671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1673,1
    - Dst: _Py_dup
      Src: /src/cpython/Modules/mmapmodule.c:1679,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1681,1
    - Dst: mmap
      Src: /src/cpython/Modules/mmapmodule.c:1690,1
    - Dst: close
      Src: /src/cpython/Modules/mmapmodule.c:1695,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1700,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:1702,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 110
    argCount: 3
    argNames:
    - type
    - args
    - kwdict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1707
    functionName: new_mmap_object
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - mmap
    - fcntl
    - close
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - _Py_fstat_noraise
    - PyErr_SetFromErrno
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - PySys_Audit
    - S_ISREG
    - _Py_open
    - _Py_dup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/mmapmodule.c:1737,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/mmapmodule.c:1743,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:1762,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1767,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1772,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/mmapmodule.c:1788,1
    - Dst: lseek
      Src: /src/cpython/Modules/mmapmodule.c:1793,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/mmapmodule.c:1796,1
    - Dst: DuplicateHandle
      Src: /src/cpython/Modules/mmapmodule.c:1810,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/mmapmodule.c:1811,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/mmapmodule.c:1813,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:1818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1819,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:1820,1
    - Dst: GetFileSize
      Src: /src/cpython/Modules/mmapmodule.c:1825,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:1829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1830,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:1831,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1838,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1842,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1844,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1850,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/mmapmodule.c:1870,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/mmapmodule.c:1871,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1872,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:1873,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mmapmodule.c:1875,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/mmapmodule.c:1877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1879,1
    - Dst: CreateFileMappingW
      Src: /src/cpython/Modules/mmapmodule.c:1891,1
    - Dst: MapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:1898,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:1906,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:1907,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:1911,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1912,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:1913,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 117
    argCount: 3
    argNames:
    - type
    - args
    - kwdict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1915
    functionName: new_mmap_object
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _Py_get_osfhandle
    - GetLastError
    - PyErr_SetFromWindowsErr
    - Py_IsNone
    - PyTypeObject*::tp_alloc
    - PyUnicode_AsWideCharString
    - GetFileSize
    - lseek
    - PyErr_Format
    - PyUnicode_Check
    - PySys_Audit
    - CloseHandle
    - CreateFileMappingW
    - Py_DECREF
    - PyArg_ParseTupleAndKeywords
    - GetCurrentProcess
    - Py_TYPE
    - MapViewOfFile
    - DuplicateHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/mmapmodule.c:1921,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/mmapmodule.c:1925,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/mmapmodule.c:1930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1931,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1944,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1947,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1950,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1954,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1957,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1960,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1963,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/mmapmodule.c:1966,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1969,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1972,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1977,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1980,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1983,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1986,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1989,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1992,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1995,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:1998,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2001,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2004,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2007,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2010,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2013,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2016,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/mmapmodule.c:2018,1
    - Dst: my_getpagesize
      Src: /src/cpython/Modules/mmapmodule.c:2018,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/mmapmodule.c:2022,1
    - Dst: my_getallocationgranularity
      Src: /src/cpython/Modules/mmapmodule.c:2022,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2026,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2027,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2028,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2029,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2034,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2037,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2040,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2043,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2046,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2051,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2054,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2057,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2060,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2063,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2066,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2069,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2072,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2075,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2078,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2081,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2084,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2089,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2092,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2095,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2098,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2101,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2106,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 72
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 1918
    functionDepth: 1
    functionLinenumber: 1918
    functionLinenumberEnd: 2113
    functionName: mmap_exec
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - PyModule_AddObjectRef
    - ADD_INT_MACRO
    - my_getallocationgranularity
    - PyModule_AddIntConstant
    - PyType_FromModuleAndSpec
    - my_getpagesize
    linkageType: ''
    returnType: int
    signature: int mmap_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - constant
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1936
    functionDepth: 0
    functionLinenumber: 1936
    functionLinenumberEnd: 1942
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(module, constant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/mmapmodule.c:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2133
    functionName: PyInit_mmap
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: HANDLE_TO_PYNUM
    functionSourceFile: /src/cpython/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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: PYNUM_TO_HANDLE
    functionSourceFile: /src/cpython/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: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: HANDLE_TO_PYNUM
    functionSourceFile: /src/cpython/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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PYNUM_TO_HANDLE
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYNUM_TO_HANDLE(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_winapi.c:122,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: winapi_get_state
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: WinApiState
    signature: 'WinApiState *

      winapi_get_state(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: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: OverlappedObject_CAST
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OverlappedObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/_winapi.c:157,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:158,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:159,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:160,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: overlapped_traverse
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - OverlappedObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int overlapped_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:168,1
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/_winapi.c:169,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_winapi.c:171,1
    - Dst: CancelIoEx
      Src: /src/cpython/Modules/_winapi.c:173,1
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/_winapi.c:174,1
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Modules/_winapi.c:178,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_winapi.c:178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:181,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_winapi.c:184,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:194,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/_winapi.c:195,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:200,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/_winapi.c:201,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_winapi.c:203,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_winapi.c:204,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:205,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_winapi.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 208
    functionName: overlapped_dealloc
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - SetLastError
    - GetOverlappedResult
    - _Py_IsInterpreterFinalizing
    - PyErr_SetString
    - GetLastError
    - _PyInterpreterState_GET
    - PyErr_FormatUnraisable
    - OverlappedObject_CAST
    - CancelIoEx
    - Py_TYPE
    - PyTypeObject*::tp_free
    - PyBuffer_Release
    - CloseHandle
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void overlapped_dealloc(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/_winapi.c:284,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:288,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:300,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:303,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_winapi.c:303,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:304,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_winapi.c:305,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:308,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: 302
        line_start: 302
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 309
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 309
    functionName: _winapi_Overlapped_GetOverlappedResult_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyBytes_CheckExact
    - GetOverlappedResult
    - _PyBytes_Resize
    - GetLastError
    - PyBytes_GET_SIZE
    - PyErr_SetExcFromWindowsErr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_GetOverlappedResult_impl(OverlappedObject *self, int wait)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:321,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_winapi.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 328
    functionName: _winapi_Overlapped_getbuffer_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_getbuffer_impl(OverlappedObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CancelIoEx
      Src: /src/cpython/Modules/_winapi.c:342,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:347,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 351
    functionName: _winapi_Overlapped_cancel_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CancelIoEx
    - PyErr_SetExcFromWindowsErr
    - GetLastError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_cancel_impl(OverlappedObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winapi_get_state
      Src: /src/cpython/Modules/_winapi.c:387,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_winapi.c:388,1
    - Dst: memset
      Src: /src/cpython/Modules/_winapi.c:396,1
    - Dst: memset
      Src: /src/cpython/Modules/_winapi.c:397,1
    - Dst: CreateEvent
      Src: /src/cpython/Modules/_winapi.c:399,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_winapi.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 403
    functionName: new_overlapped
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreateEvent
    - memset
    - PyObject_GC_Track
    - winapi_get_state
    - PyObject_GC_New
    linkageType: ''
    returnType: OverlappedObject
    signature: 'OverlappedObject *

      new_overlapped(PyObject *module, HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:424,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: _winapi_CloseHandle_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CloseHandle_impl(PyObject *module, HANDLE handle)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: new_overlapped
      Src: /src/cpython/Modules/_winapi.c:449,1
    - Dst: ConnectNamedPipe
      Src: /src/cpython/Modules/_winapi.c:455,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:460,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:462,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:468,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:469,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:474,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: 461
        line_start: 461
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 477
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 477
    functionName: _winapi_ConnectNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - SetEvent
    - GetLastError
    - new_overlapped
    - PyErr_SetFromWindowsErr
    - ConnectNamedPipe
    - assert
    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/cpython/Modules/_winapi.c:460,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:462,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:468,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (success == 0)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 472
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 472
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - SetEvent
    - GetLastError
    - PyErr_SetFromWindowsErr
    - assert
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (overlapped)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:497,1
    - Dst: CreateEventW
      Src: /src/cpython/Modules/_winapi.c:502,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - module
    - security_attributes
    - manual_reset
    - initial_state
    - name
    argTypes:
    - PyObject*
    - LPSECURITY_ATTRIBUTES
    - BOOL
    - BOOL
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 510
    functionName: _winapi_CreateEventW_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - CreateEventW
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_CreateEventW_impl(PyObject *module,\n                          LPSECURITY_ATTRIBUTES
      security_attributes,\n                          BOOL manual_reset, BOOL initial_state,\n
      \                         LPCWSTR name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:535,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/_winapi.c:542,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - module
    - file_name
    - desired_access
    - share_mode
    - security_attributes
    - creation_disposition
    - flags_and_attributes
    - template_file
    argTypes:
    - PyObject*
    - LPCWSTR
    - DWORD
    - DWORD
    - LPSECURITY_ATTRIBUTES
    - DWORD
    - DWORD
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 553
    functionName: _winapi_CreateFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - CreateFileW
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_CreateFile_impl(PyObject *module, LPCWSTR 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/cpython/Modules/_winapi.c:577,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:583,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/cpython/Modules/_winapi.c:584,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:585,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: 590
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 590
    functionName: _winapi_CreateFileMapping_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - PyUnicode_FromWideChar
    - CreateFileMappingW
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:625,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/_winapi.c:627,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:628,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:630,1
    - Dst: OpenProcessToken
      Src: /src/cpython/Modules/_winapi.c:636,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/_winapi.c:636,1
    - Dst: LookupPrivilegeValue
      Src: /src/cpython/Modules/_winapi.c:641,1
    - Dst: AdjustTokenPrivileges
      Src: /src/cpython/Modules/_winapi.c:647,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/_winapi.c:652,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/_winapi.c:656,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_winapi.c:687,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/_winapi.c:702,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/_winapi.c:703,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/_winapi.c:709,1
    - Dst: CreateDirectoryW
      Src: /src/cpython/Modules/_winapi.c:714,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/_winapi.c:717,1
    - Dst: DeviceIoControl
      Src: /src/cpython/Modules/_winapi.c:724,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:729,1
    - Dst: AdjustTokenPrivileges
      Src: /src/cpython/Modules/_winapi.c:732,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:737,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:739,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_winapi.c:740,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:743,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 3
    argNames:
    - module
    - src_path
    - dst_path
    argTypes:
    - PyObject*
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 746
    functionName: _winapi_CreateJunction_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - wcsncmp
    - OpenProcessToken
    - CreateFileW
    - PyMem_RawFree
    - AdjustTokenPrivileges
    - GetFullPathNameW
    - LookupPrivilegeValue
    - GetLastError
    - PyErr_SetFromWindowsErr
    - CloseHandle
    - GetCurrentProcess
    - CreateDirectoryW
    - PySys_Audit
    - wcscpy
    - DeviceIoControl
    - GetFileAttributesW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_CreateJunction_impl(PyObject *module, LPCWSTR
      src_path,\n                            LPCWSTR dst_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:764,1
    - Dst: CreateMutexW
      Src: /src/cpython/Modules/_winapi.c:769,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - module
    - security_attributes
    - initial_owner
    - name
    argTypes:
    - PyObject*
    - LPSECURITY_ATTRIBUTES
    - BOOL
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 777
    functionName: _winapi_CreateMutexW_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreateMutexW
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_CreateMutexW_impl(PyObject *module,\n                          LPSECURITY_ATTRIBUTES
      security_attributes,\n                          BOOL initial_owner, LPCWSTR
      name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:803,1
    - Dst: CreateNamedPipeW
      Src: /src/cpython/Modules/_winapi.c:809,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:816,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*
    - LPCWSTR
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - LPSECURITY_ATTRIBUTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 819
    functionName: _winapi_CreateNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreateNamedPipeW
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_CreateNamedPipe_impl(PyObject *module, LPCWSTR 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/cpython/Modules/_winapi.c:842,1
    - Dst: CreatePipe
      Src: /src/cpython/Modules/_winapi.c:847,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:851,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:851,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:853,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:854,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pipe_attrs
    - size
    argTypes:
    - PyObject*
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 855
    functionName: _winapi_CreatePipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreatePipe
    - Py_BuildValue
    - GetLastError
    - PyErr_SetFromWindowsErr
    - HANDLE_TO_PYNUM
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreatePipe_impl(PyObject *module, PyObject *pipe_attrs, DWORD size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_winapi.c:865,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:867,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_winapi.c:870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 873
    functionName: getulong
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyLong_AsUnsignedLong
    - PyObject_GetAttrString
    - Py_DECREF
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getulong(PyObject* obj, const char* name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_winapi.c:881,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:883,1
    - Dst: PYNUM_TO_HANDLE
      Src: /src/cpython/Modules/_winapi.c:889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 892
    functionName: gethandle
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_LCMapStringEx_impl
      Src: /src/cpython/Modules/_winapi.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: sortenvironmentkey
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - _winapi_LCMapStringEx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sortenvironmentkey(PyObject *module, PyObject *item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/_winapi.c:908,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:914,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_winapi.c:918,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_winapi.c:918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 927
    functionName: sort_environment_keys
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyCFunction_New
    - PyObject_VectorcallMethod
    - Py_BuildValue
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int sort_environment_keys(PyObject *keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_winapi.c:932,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_winapi.c:936,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:938,1
    - Dst: CompareStringOrdinal
      Src: /src/cpython/Modules/_winapi.c:941,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:942,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - str1
    - str2
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 945
    functionName: compare_string_ordinal
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CompareStringOrdinal
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: int compare_string_ordinal(PyObject *str1, PyObject *str2, int *result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_winapi.c:950,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:959,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:960,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:963,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_winapi.c:964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:965,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:971,1
    - Dst: compare_string_ordinal
      Src: /src/cpython/Modules/_winapi.c:973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:974,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_winapi.c:980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:981,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 987
    functionName: dedup_environment_keys
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_Append
    - PyList_GET_SIZE
    - compare_string_ordinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dedup_environment_keys(PyObject *keys)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Keys
      Src: /src/cpython/Modules/_winapi.c:992,1
    - Dst: sort_environment_keys
      Src: /src/cpython/Modules/_winapi.c:997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:998,1
    - Dst: dedup_environment_keys
      Src: /src/cpython/Modules/_winapi.c:1002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1003,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_winapi.c:1008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1010,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1014,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1015,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_winapi.c:1016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1019,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_winapi.c:1023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1032,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - environment
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 989
    functionDepth: 3
    functionLinenumber: 989
    functionLinenumberEnd: 1035
    functionName: normalize_environment
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - sort_environment_keys
    - dedup_environment_keys
    - PyMapping_Keys
    - PyList_GET_SIZE
    - PyObject_GetItem
    - PyObject_SetItem
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      normalize_environment(PyObject *environment)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/_winapi.c:1047,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1048,1
    - Dst: normalize_environment
      Src: /src/cpython/Modules/_winapi.c:1053,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Modules/_winapi.c:1058,1
    - Dst: PyMapping_Values
      Src: /src/cpython/Modules/_winapi.c:1062,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1067,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_winapi.c:1072,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_winapi.c:1074,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1079,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1080,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1087,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1088,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_winapi.c:1091,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_winapi.c:1091,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1092,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_winapi.c:1096,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_winapi.c:1096,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_winapi.c:1097,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_winapi.c:1097,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1099,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_winapi.c:1104,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_winapi.c:1105,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_winapi.c:1105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1107,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_winapi.c:1111,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1112,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1114,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_winapi.c:1119,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1120,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1122,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_winapi.c:1128,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_winapi.c:1130,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1137,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1138,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_winapi.c:1139,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1140,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_winapi.c:1143,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1144,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1150,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1154,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1155,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1156,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 93
    argCount: 1
    argNames:
    - environment
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (1 <= size && size < end - p)
      pos:
        line_end: 1139
        line_start: 1139
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (0 <= size && size < end - p)
      pos:
        line_end: 1143
        line_start: 1143
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (size > 0)
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (p == end)
      pos:
        line_end: 1149
        line_start: 1149
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (size > 1)
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 1158
      start: 1037
    functionDepth: 4
    functionLinenumber: 1037
    functionLinenumberEnd: 1158
    functionName: getenvironment
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMapping_Values
    - PyMem_Calloc
    - PyList_GET_ITEM
    - PyUnicode_AsWideChar
    - PyErr_SetString
    - PyMapping_Keys
    - PyList_GET_SIZE
    - PyUnicode_FindChar
    - PyMem_NEW
    - normalize_environment
    - PyUnicode_Check
    - PyMapping_Check
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      getenvironment(PyObject* environment)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetItemString
      Src: /src/cpython/Modules/_winapi.c:1168,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:1170,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_winapi.c:1178,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1182,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1189,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1193,1
    - Dst: PYNUM_TO_HANDLE
      Src: /src/cpython/Modules/_winapi.c:1194,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1194,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:1195,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1203,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1204,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - mapping
    - name
    - size
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1206
    functionName: gethandlelist
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - PySequence_Fast
    - PyMapping_GetItemString
    - PySequence_Fast_GET_ITEM
    - PYNUM_TO_HANDLE
    - PyErr_Clear
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: LPHANDLE
    signature: LPHANDLE gethandlelist(PyObject *mapping, const char *name, Py_ssize_t
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteProcThreadAttributeList
      Src: /src/cpython/Modules/_winapi.c:1217,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1218,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1221,1
    - Dst: memset
      Src: /src/cpython/Modules/_winapi.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - attribute_list
    argTypes:
    - AttributeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1224
    functionName: freeattributelist
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - memset
    - PyMem_Free
    - DeleteProcThreadAttributeList
    linkageType: ''
    returnType: void
    signature: void freeattributelist(AttributeList *attribute_list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_winapi.c:1237,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:1239,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/_winapi.c:1248,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:1250,1
    - Dst: gethandlelist
      Src: /src/cpython/Modules/_winapi.c:1254,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:1255,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/cpython/Modules/_winapi.c:1264,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1265,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1267,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1267,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1271,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/cpython/Modules/_winapi.c:1277,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1283,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1286,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1290,1
    - Dst: UpdateProcThreadAttribute
      Src: /src/cpython/Modules/_winapi.c:1295,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1305,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1311,1
    - Dst: freeattributelist
      Src: /src/cpython/Modules/_winapi.c:1314,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - obj
    - name
    - attribute_list
    argTypes:
    - PyObject*
    - char*
    - AttributeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1317
    functionName: getattributelist
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - UpdateProcThreadAttribute
    - Py_DECREF
    - PyObject_GetAttrString
    - freeattributelist
    - PyErr_Occurred
    - gethandlelist
    - PyErr_Clear
    - GetLastError
    - PyErr_SetFromWindowsErr
    - InitializeProcThreadAttributeList
    - PyErr_Format
    - PyMapping_Check
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int getattributelist(PyObject *obj, const char *name, AttributeList
      *attribute_list)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:1359,1
    - Dst: ZeroMemory
      Src: /src/cpython/Modules/_winapi.c:1364,1
    - Dst: getulong
      Src: /src/cpython/Modules/_winapi.c:1368,1
    - Dst: getulong
      Src: /src/cpython/Modules/_winapi.c:1369,1
    - Dst: gethandle
      Src: /src/cpython/Modules/_winapi.c:1370,1
    - Dst: gethandle
      Src: /src/cpython/Modules/_winapi.c:1371,1
    - Dst: gethandle
      Src: /src/cpython/Modules/_winapi.c:1372,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:1373,1
    - Dst: getenvironment
      Src: /src/cpython/Modules/_winapi.c:1377,1
    - Dst: getattributelist
      Src: /src/cpython/Modules/_winapi.c:1383,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_winapi.c:1387,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_winapi.c:1388,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:1394,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:1396,1
    - Dst: CreateProcessW
      Src: /src/cpython/Modules/_winapi.c:1402,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1416,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1416,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:1420,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:1421,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:1422,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1427,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1428,1
    - Dst: freeattributelist
      Src: /src/cpython/Modules/_winapi.c:1429,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*
    - wchar_t*
    - PyObject*
    - PyObject*
    - PyObject*
    - BOOL
    - DWORD
    - PyObject*
    - wchar_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1342
    functionDepth: 5
    functionLinenumber: 1342
    functionLinenumberEnd: 1432
    functionName: _winapi_CreateProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - ZeroMemory
    - Py_BuildValue
    - gethandle
    - freeattributelist
    - PyErr_Occurred
    - getenvironment
    - GetLastError
    - PyErr_SetFromWindowsErr
    - HANDLE_TO_PYNUM
    - Py_TYPE
    - getulong
    - PyErr_Format
    - PyUnicode_Check
    - CreateProcessW
    - PySys_Audit
    - PyUnicode_AsWideCharString
    - PyMem_Free
    - getattributelist
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_CreateProcess_impl(PyObject *module, const wchar_t
      *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
      wchar_t *current_directory,\n                           PyObject *startup_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DuplicateHandle
      Src: /src/cpython/Modules/_winapi.c:1464,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1476,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1476,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: 1481
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1481
    functionName: _winapi_DuplicateHandle_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - DuplicateHandle
    - GetLastError
    - 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/cpython/Modules/_winapi.c:1497,1
    - Dst: _CrtSetReportMode
      Src: /src/cpython/Modules/_winapi.c:1500,1
    - Dst: ExitProcess
      Src: /src/cpython/Modules/_winapi.c:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ExitCode
    argTypes:
    - PyObject*
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1506
    functionName: _winapi_ExitProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - SetErrorMode
    - _CrtSetReportMode
    - ExitProcess
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ExitProcess_impl(PyObject *module, UINT ExitCode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/_winapi.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1519
    functionName: _winapi_GetCurrentProcess_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_winapi.c:1537,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1540,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - process
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1545
    functionName: _winapi_GetExitCodeProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - GetExitCodeProcess
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetExitCodeProcess_impl(PyObject *module, HANDLE process)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1556
    functionName: _winapi_GetLastError_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetLastError_impl(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetLongPathNameW
      Src: /src/cpython/Modules/_winapi.c:1581,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1584,1
    - Dst: GetLongPathNameW
      Src: /src/cpython/Modules/_winapi.c:1587,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1590,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1592,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1596
    functionName: _winapi_GetLongPathName_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetLongPathNameW
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetLongPathName_impl(PyObject *module, LPCWSTR path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1584,1
    - Dst: GetLongPathNameW
      Src: /src/cpython/Modules/_winapi.c:1587,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1590,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1592,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1595
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetLongPathNameW
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (cchBuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1591
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (cchBuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileNameW
      Src: /src/cpython/Modules/_winapi.c:1629,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1634,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1634,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - module_handle
    argTypes:
    - PyObject*
    - HMODULE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1637
    functionName: _winapi_GetModuleFileName_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetModuleFileNameW
    - PyUnicode_FromWideChar
    - GetLastError
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetModuleFileName_impl(PyObject *module, HMODULE module_handle)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetShortPathNameW
      Src: /src/cpython/Modules/_winapi.c:1662,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1665,1
    - Dst: GetShortPathNameW
      Src: /src/cpython/Modules/_winapi.c:1668,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1671,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1673,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1677
    functionName: _winapi_GetShortPathName_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetShortPathNameW
    - PyErr_SetFromWindowsErr
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetShortPathName_impl(PyObject *module, LPCWSTR path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1665,1
    - Dst: GetShortPathNameW
      Src: /src/cpython/Modules/_winapi.c:1668,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1671,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1673,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1676
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyUnicode_FromWideChar
    - PyMem_Malloc
    - PyMem_Free
    - GetShortPathNameW
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (cchBuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1672
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (cchBuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/cpython/Modules/_winapi.c:1704,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1708,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - std_handle
    argTypes:
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1697
    functionDepth: 1
    functionLinenumber: 1697
    functionLinenumberEnd: 1711
    functionName: _winapi_GetStdHandle_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_winapi.c:1754,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1759,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: 1762
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1762
    functionName: _winapi_MapViewOfFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - MapViewOfFile
    - PyErr_SetFromWindowsErr
    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: UnmapViewOfFile
      Src: /src/cpython/Modules/_winapi.c:1778,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - address
    argTypes:
    - PyObject*
    - LPCVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1786
    functionName: _winapi_UnmapViewOfFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - UnmapViewOfFile
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_UnmapViewOfFile_impl(PyObject *module, LPCVOID address)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:1803,1
    - Dst: OpenEventW
      Src: /src/cpython/Modules/_winapi.c:1808,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - module
    - desired_access
    - inherit_handle
    - name
    argTypes:
    - PyObject*
    - DWORD
    - BOOL
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1816
    functionName: _winapi_OpenEventW_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - OpenEventW
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_OpenEventW_impl(PyObject *module, DWORD desired_access,\n
      \                       BOOL inherit_handle, LPCWSTR name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:1834,1
    - Dst: OpenMutexW
      Src: /src/cpython/Modules/_winapi.c:1839,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - module
    - desired_access
    - inherit_handle
    - name
    argTypes:
    - PyObject*
    - DWORD
    - BOOL
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1847
    functionName: _winapi_OpenMutexW_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - OpenMutexW
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_OpenMutexW_impl(PyObject *module, DWORD desired_access,\n
      \                       BOOL inherit_handle, LPCWSTR name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileMappingW
      Src: /src/cpython/Modules/_winapi.c:1866,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1870,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/cpython/Modules/_winapi.c:1871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1872,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: 1877
      start: 1858
    functionDepth: 1
    functionLinenumber: 1858
    functionLinenumberEnd: 1877
    functionName: _winapi_OpenFileMapping_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - OpenFileMappingW
    - PyUnicode_FromWideChar
    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/cpython/Modules/_winapi.c:1895,1
    - Dst: OpenProcess
      Src: /src/cpython/Modules/_winapi.c:1901,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1904,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1904,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: 1909
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1909
    functionName: _winapi_OpenProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - OpenProcess
    - GetLastError
    - 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/cpython/Modules/_winapi.c:1928,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_winapi.c:1933,1
    - Dst: PeekNamedPipe
      Src: /src/cpython/Modules/_winapi.c:1937,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_winapi.c:1937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1941,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1942,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_winapi.c:1944,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:1946,1
    - Dst: PeekNamedPipe
      Src: /src/cpython/Modules/_winapi.c:1950,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1953,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:1955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - module
    - handle
    - size
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1957
    functionName: _winapi_PeekNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PeekNamedPipe
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - _PyBytes_Resize
    - PyErr_SetExcFromWindowsErr
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:1975,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_winapi.c:1979,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1984,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1985,1
    - Dst: LCMapStringEx
      Src: /src/cpython/Modules/_winapi.c:1989,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1992,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1993,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1994,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_winapi.c:1997,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1999,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_winapi.c:2000,1
    - Dst: LCMapStringEx
      Src: /src/cpython/Modules/_winapi.c:2003,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2006,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2007,1
    - Dst: PyMem_DEL
      Src: /src/cpython/Modules/_winapi.c:2008,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2009,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2012,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:2013,1
    - Dst: PyMem_DEL
      Src: /src/cpython/Modules/_winapi.c:2014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - module
    - locale
    - flags
    - src
    argTypes:
    - PyObject*
    - LPCWSTR
    - DWORD
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 2017
    functionName: _winapi_LCMapStringEx_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - PyUnicode_FromWideChar
    - LCMapStringEx
    - PyErr_Format
    - PyMem_DEL
    - PyMem_NEW
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_LCMapStringEx_impl(PyObject *module, LPCWSTR locale,
      DWORD flags,\n                           PyObject *src)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_winapi.c:2038,1
    - Dst: new_overlapped
      Src: /src/cpython/Modules/_winapi.c:2042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2044,1
    - Dst: ReadFile
      Src: /src/cpython/Modules/_winapi.c:2052,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_winapi.c:2052,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2063,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2064,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2071,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2072,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_winapi.c:2074,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2076,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: 2077
      start: 2027
    functionDepth: 3
    functionLinenumber: 2027
    functionLinenumberEnd: 2077
    functionName: _winapi_ReadFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - ReadFile
    - PyBytes_FromStringAndSize
    - GetLastError
    - new_overlapped
    - _PyBytes_Resize
    - PyErr_SetExcFromWindowsErr
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_ReadFile_impl(PyObject *module, HANDLE handle,
      DWORD size,\n                      int use_overlapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseMutex
      Src: /src/cpython/Modules/_winapi.c:2092,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2093,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - module
    - mutex
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2100
    functionName: _winapi_ReleaseMutex_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - ReleaseMutex
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ReleaseMutex_impl(PyObject *module, HANDLE mutex)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2098
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResetEvent
      Src: /src/cpython/Modules/_winapi.c:2115,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2116,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - module
    - event
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2123
    functionName: _winapi_ResetEvent_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetFromWindowsErr
    - ResetEvent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ResetEvent_impl(PyObject *module, HANDLE event)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2121
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:2138,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2139,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - module
    - event
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2146
    functionName: _winapi_SetEvent_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - SetEvent
    - GetLastError
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_SetEvent_impl(PyObject *module, HANDLE event)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2141
    functionDepth: 1
    functionLinenumber: 2141
    functionLinenumberEnd: 2144
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_winapi.c:2172,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:2173,1
    - Dst: SetNamedPipeHandleState
      Src: /src/cpython/Modules/_winapi.c:2180,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2184,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: 2187
      start: 2158
    functionDepth: 1
    functionLinenumber: 2158
    functionLinenumberEnd: 2187
    functionName: _winapi_SetNamedPipeHandleState_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - SetNamedPipeHandleState
    - PyLong_AsUnsignedLongMask
    - 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/cpython/Modules/_winapi.c:2207,1
    - Dst: TerminateProcess
      Src: /src/cpython/Modules/_winapi.c:2212,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2215,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - handle
    - exit_code
    argTypes:
    - PyObject*
    - HANDLE
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2200
    functionDepth: 1
    functionLinenumber: 2200
    functionLinenumberEnd: 2218
    functionName: _winapi_TerminateProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - GetLastError
    - TerminateProcess
    - PyErr_SetFromWindowsErr
    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/cpython/Modules/_winapi.c:2236,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - address
    argTypes:
    - PyObject*
    - LPCVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2244
    functionName: _winapi_VirtualQuerySize_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - VirtualQuery
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: size_t
    signature: size_t _winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitNamedPipeW
      Src: /src/cpython/Modules/_winapi.c:2261,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - name
    - timeout
    argTypes:
    - PyObject*
    - LPCWSTR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2268
    functionName: _winapi_WaitNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - WaitNamedPipeW
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WaitNamedPipe_impl(PyObject *module, LPCWSTR name, DWORD timeout)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2284,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2291,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:2292,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:2296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - param
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2280
    functionDepth: 0
    functionLinenumber: 2280
    functionLinenumberEnd: 2300
    functionName: _batched_WaitForMultipleObjects_thread
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - SetEvent
    - GetLastError
    - WaitForMultipleObjects
    linkageType: ''
    returnType: DWORD
    signature: DWORD _batched_WaitForMultipleObjects_thread(LPVOID param)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_winapi.c:2341,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2342,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:2344,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_winapi.c:2347,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_winapi.c:2352,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_winapi.c:2352,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/_winapi.c:2358,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/_winapi.c:2359,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:2360,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2364,1
    - Dst: CreateEventW
      Src: /src/cpython/Modules/_winapi.c:2371,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2373,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:2380,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_winapi.c:2387,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_winapi.c:2388,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_winapi.c:2393,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_winapi.c:2394,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:2395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2398,1
    - Dst: GetTickCount64
      Src: /src/cpython/Modules/_winapi.c:2416,1
    - Dst: GetTickCount64
      Src: /src/cpython/Modules/_winapi.c:2422,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2430,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2434,1
    - Dst: WaitForSingleObject
      Src: /src/cpython/Modules/_winapi.c:2440,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2444,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2449,1
    - Dst: CreateThread
      Src: /src/cpython/Modules/_winapi.c:2457,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2466,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2474,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:2479,1
    - Dst: ResumeThread
      Src: /src/cpython/Modules/_winapi.c:2487,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2492,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2495,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:2502,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2508,1
    - Dst: GetExitCodeThread
      Src: /src/cpython/Modules/_winapi.c:2512,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2513,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2516,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2519,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_winapi.c:2528,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2531,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_winapi.c:2534,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_winapi.c:2536,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_winapi.c:2541,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_winapi.c:2542,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:2543,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_winapi.c:2544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2547,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2554,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2562,1
    - Dst: TerminateThread
      Src: /src/cpython/Modules/_winapi.c:2566,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2567,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2569,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 175
    argCount: 4
    argNames:
    - module
    - handle_seq
    - wait_all
    - milliseconds
    argTypes:
    - PyObject*
    - PyObject*
    - BOOL
    - DWORD
    assertStmts:
    - condition: (sigint_event != NULL)
      pos:
        line_end: 2359
        line_start: 2359
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 2572
      start: 2325
    functionDepth: 1
    functionLinenumber: 2325
    functionLinenumberEnd: 2572
    functionName: _winapi_BatchedWaitForMultipleObjects_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - GetExitCodeThread
    - PySequence_Check
    - CreateEventW
    - CreateThread
    - PyErr_SetString
    - GetLastError
    - Py_CLEAR
    - PyMem_Free
    - PySequence_GetItem
    - WaitForSingleObject
    - TerminateThread
    - PyList_Append
    - PyErr_Format
    - Py_SAFE_DOWNCAST
    - _PyOS_IsMainThread
    - PyErr_SetExcFromWindowsErr
    - CloseHandle
    - PyArg_Parse
    - GetTickCount64
    - ResumeThread
    - Py_DECREF
    - SetEvent
    - PySequence_Length
    - Py_NewRef
    - WaitForMultipleObjects
    - PyErr_SetFromErrno
    - Py_TYPE
    - PyMem_Malloc
    - PyLong_FromSsize_t
    - _PyOS_SigintEvent
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_BatchedWaitForMultipleObjects_impl(PyObject *module,\n
      \                                          PyObject *handle_seq,\n                                           BOOL
      wait_all, DWORD milliseconds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2471
    functionDepth: 1
    functionLinenumber: 2471
    functionLinenumberEnd: 2476
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_winapi.c:2593,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2594,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:2596,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_winapi.c:2599,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2603,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_winapi.c:2610,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_winapi.c:2613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2618,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/_winapi.c:2622,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/_winapi.c:2623,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:2624,1
    - Dst: ResetEvent
      Src: /src/cpython/Modules/_winapi.c:2630,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2631,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2636,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_winapi.c:2639,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_winapi.c:2642,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: 2623
        line_start: 2623
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 2643
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2643
    functionName: _winapi_WaitForMultipleObjects_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - PyArg_Parse
    - _PyOS_SigintEvent
    - Py_DECREF
    - PySequence_Check
    - ResetEvent
    - PyLong_FromLong
    - PySequence_Length
    - WaitForMultipleObjects
    - PyErr_SetFromErrno
    - PyErr_Format
    - _PyOS_IsMainThread
    - PyErr_SetExcFromWindowsErr
    - Py_TYPE
    - assert
    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/cpython/Modules/_winapi.c:2667,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2671,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - handle
    - milliseconds
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2676
    functionName: _winapi_WaitForSingleObject_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    - GetLastError
    - 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/cpython/Modules/_winapi.c:2698,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_winapi.c:2706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:2707,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_winapi.c:2712,1
    - Dst: WriteFile
      Src: /src/cpython/Modules/_winapi.c:2713,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2724,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2725,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2728,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_winapi.c:2731,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2733,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2734,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: 2735
      start: 2686
    functionDepth: 3
    functionLinenumber: 2686
    functionLinenumberEnd: 2735
    functionName: _winapi_WriteFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - Py_XDECREF
    - Py_MIN
    - Py_BuildValue
    - Py_DECREF
    - WriteFile
    - GetLastError
    - new_overlapped
    - PyBuffer_Release
    - PyErr_SetExcFromWindowsErr
    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/cpython/Modules/_winapi.c:2747,1
    - Dst: GetACP
      Src: /src/cpython/Modules/_winapi.c:2747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2748
    functionName: _winapi_GetACP_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetACP
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetACP_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_winapi.c:2760,1
    - Dst: GetOEMCP
      Src: /src/cpython/Modules/_winapi.c:2760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2761
    functionName: _winapi_GetOEMCP_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - GetOEMCP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetOEMCP_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFileType
      Src: /src/cpython/Modules/_winapi.c:2776,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2779,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2769
    functionDepth: 1
    functionLinenumber: 2769
    functionLinenumberEnd: 2785
    functionName: _winapi_GetFileType_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetFileType
    - GetLastError
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetFileType_impl(PyObject *module, HANDLE handle)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Modules/_winapi.c:2815,1
    - Dst: RegEnumKeyExW
      Src: /src/cpython/Modules/_winapi.c:2824,1
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Modules/_winapi.c:2829,1
    - Dst: RegQueryValueExW
      Src: /src/cpython/Modules/_winapi.c:2837,1
    - Dst: RegCloseKey
      Src: /src/cpython/Modules/_winapi.c:2839,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_winapi.c:2856,1
    - Dst: RegCloseKey
      Src: /src/cpython/Modules/_winapi.c:2861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2864,1
    - Dst: RegCloseKey
      Src: /src/cpython/Modules/_winapi.c:2871,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2876,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_winapi.c:2881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2887,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 2
    argNames:
    - module
    - on_type_read
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2799
    functionDepth: 1
    functionLinenumber: 2799
    functionLinenumberEnd: 2893
    functionName: _winapi__mimetypes_read_windows_registry_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - RegCloseKey
    - Py_DECREF
    - PyErr_SetFromWindowsErr
    - RegOpenKeyExW
    - RegEnumKeyExW
    - RegQueryValueExW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi__mimetypes_read_windows_registry_impl(PyObject
      *module,\n                                              PyObject *on_type_read)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NeedCurrentDirectoryForExePathW
      Src: /src/cpython/Modules/_winapi.c:2911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - exe_name
    argTypes:
    - PyObject*
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2918
      start: 2902
    functionDepth: 0
    functionLinenumber: 2902
    functionLinenumberEnd: 2918
    functionName: _winapi_NeedCurrentDirectoryForExePath_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - NeedCurrentDirectoryForExePathW
    linkageType: ''
    returnType: int
    signature: "int _winapi_NeedCurrentDirectoryForExePath_impl(PyObject *module,\n
      \                                           LPCWSTR exe_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:2947,1
    - Dst: CopyFile2
      Src: /src/cpython/Modules/_winapi.c:2962,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_winapi.c:2969,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2971,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - module
    - existing_file_name
    - new_file_name
    - flags
    - progress_routine
    argTypes:
    - PyObject*
    - LPCWSTR
    - LPCWSTR
    - DWORD
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2938
    functionDepth: 1
    functionLinenumber: 2938
    functionLinenumberEnd: 2978
    functionName: _winapi_CopyFile2_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - FAILED
    - CopyFile2
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_CopyFile2_impl(PyObject *module, LPCWSTR existing_file_name,\n
      \                      LPCWSTR new_file_name, DWORD flags,\n                       PyObject
      *progress_routine)"
  - 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: 3043
      start: 3031
    functionDepth: 0
    functionLinenumber: 3031
    functionLinenumberEnd: 3043
    functionName: WINAPI_CONSTANT
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINAPI_CONSTANT(fmt, con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winapi_get_state
      Src: /src/cpython/Modules/_winapi.c:3046,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_winapi.c:3048,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_winapi.c:3053,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_winapi.c:3057,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3060,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3061,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3062,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3063,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3064,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3065,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3066,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3067,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3068,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3069,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3070,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3071,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3072,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3073,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3074,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3075,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3076,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3077,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3078,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3079,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3080,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3081,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3082,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3083,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3084,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3085,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3086,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3087,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3088,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3089,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3090,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3091,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3092,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3093,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3094,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3095,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3096,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3097,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3098,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3099,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3100,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3101,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3102,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3103,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3104,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3105,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3106,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3107,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3108,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3109,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3110,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3111,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3112,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3113,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3114,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3115,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3116,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3117,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3118,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3119,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3120,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3121,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3122,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3123,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3124,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3125,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3126,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3127,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3128,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3129,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3130,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3131,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3132,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3133,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3134,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3135,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3136,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3137,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3138,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3139,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3140,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3141,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3142,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3143,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3144,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3145,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3146,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3147,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3148,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3150,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3151,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3152,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3153,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3154,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3155,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3157,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3158,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3159,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3160,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3162,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3163,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3164,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3165,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3166,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3168,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3169,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3170,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3171,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3173,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3174,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3175,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3176,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3177,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3178,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3179,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3180,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3181,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3182,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3184,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3185,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3186,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3187,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3188,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3189,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3190,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3191,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3192,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3197,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3202,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3204,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3205,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3206,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3207,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3208,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3209,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3211,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3212,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3213,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3214,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3215,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 150
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3044
    functionDepth: 2
    functionLinenumber: 3044
    functionLinenumberEnd: 3220
    functionName: winapi_exec
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - WINAPI_CONSTANT
    - PyType_FromModuleAndSpec
    - PyModule_GetDict
    - winapi_get_state
    linkageType: ''
    returnType: int
    signature: int winapi_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winapi_get_state
      Src: /src/cpython/Modules/_winapi.c:3232,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:3233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3235
      start: 3229
    functionDepth: 2
    functionLinenumber: 3229
    functionLinenumberEnd: 3235
    functionName: winapi_traverse
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - winapi_get_state
    linkageType: ''
    returnType: int
    signature: int winapi_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winapi_get_state
      Src: /src/cpython/Modules/_winapi.c:3240,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_winapi.c:3241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3237
    functionDepth: 2
    functionLinenumber: 3237
    functionLinenumberEnd: 3243
    functionName: winapi_clear
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - winapi_get_state
    linkageType: ''
    returnType: int
    signature: int winapi_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winapi_clear
      Src: /src/cpython/Modules/_winapi.c:3248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3245
    functionDepth: 3
    functionLinenumber: 3245
    functionLinenumberEnd: 3249
    functionName: winapi_free
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - winapi_clear
    linkageType: ''
    returnType: void
    signature: void winapi_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_winapi.c:3265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3262
    functionDepth: 1
    functionLinenumber: 3262
    functionLinenumberEnd: 3266
    functionName: PyInit__winapi
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__winapi(void)
  - 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: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: _SHA256object_CAST
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _SHA256object_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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: _SHA512object_CAST
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _SHA512object_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/sha2module.c:72,1
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: sha2_get_state
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: sha2_state
    signature: 'sha2_state *

      sha2_get_state(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_copy_256
      Src: /src/cpython/Modules/sha2module.c:94,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - SHA256object*
    - SHA256object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: SHA256copy
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Hacl_Hash_SHA2_copy_256
    linkageType: ''
    returnType: int
    signature: int SHA256copy(SHA256object *src, SHA256object *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_copy_512
      Src: /src/cpython/Modules/sha2module.c:106,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - SHA512object*
    - SHA512object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: SHA512copy
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Hacl_Hash_SHA2_copy_512
    linkageType: ''
    returnType: int
    signature: int SHA512copy(SHA512object *src, SHA512object *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha2module.c:117,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:121,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: newSHA224object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: SHA256object
    signature: 'SHA256object *

      newSHA224object(sha2_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha2module.c:130,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:134,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: newSHA256object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: SHA256object
    signature: 'SHA256object *

      newSHA256object(sha2_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha2module.c:143,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:147,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: newSHA384object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: SHA512object
    signature: 'SHA512object *

      newSHA384object(sha2_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha2module.c:156,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:160,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: newSHA512object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: SHA512object
    signature: 'SHA512object *

      newSHA512object(sha2_state *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:171,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha2module.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: SHA2_traverse
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int SHA2_traverse(PyObject *ptr, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA256object_CAST
      Src: /src/cpython/Modules/sha2module.c:178,1
    - Dst: Hacl_Hash_SHA2_free_256
      Src: /src/cpython/Modules/sha2module.c:180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha2module.c:183,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha2module.c:184,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/sha2module.c:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: SHA256_dealloc
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - _SHA256object_CAST
    - Hacl_Hash_SHA2_free_256
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SHA256_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA512object_CAST
      Src: /src/cpython/Modules/sha2module.c:192,1
    - Dst: Hacl_Hash_SHA2_free_512
      Src: /src/cpython/Modules/sha2module.c:194,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha2module.c:197,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha2module.c:198,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/sha2module.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: SHA512_dealloc
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _SHA512object_CAST
    - Py_DECREF
    - PyObject_GC_UnTrack
    - Hacl_Hash_SHA2_free_512
    - PyObject_GC_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SHA512_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_update_256
      Src: /src/cpython/Modules/sha2module.c:216,1
    - Dst: Hacl_Hash_SHA2_update_256
      Src: /src/cpython/Modules/sha2module.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - Hacl_Hash_SHA2_state_t_256*
    - uint8_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 223
    functionName: update_256
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA2_update_256
    linkageType: ''
    returnType: void
    signature: void update_256(Hacl_Hash_SHA2_state_t_256 *state, uint8_t *buf, Py_ssize_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_update_512
      Src: /src/cpython/Modules/sha2module.c:235,1
    - Dst: Hacl_Hash_SHA2_update_512
      Src: /src/cpython/Modules/sha2module.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - Hacl_Hash_SHA2_state_t_512*
    - uint8_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: update_512
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA2_update_512
    linkageType: ''
    returnType: void
    signature: void update_512(Hacl_Hash_SHA2_state_t_512 *state, uint8_t *buf, Py_ssize_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha2module.c:261,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/sha2module.c:262,1
    - Dst: newSHA256object
      Src: /src/cpython/Modules/sha2module.c:263,1
    - Dst: newSHA224object
      Src: /src/cpython/Modules/sha2module.c:268,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:273,1
    - Dst: SHA256copy
      Src: /src/cpython/Modules/sha2module.c:274,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA256object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 281
    functionName: SHA256Type_copy_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - SHA256copy
    - Py_DECREF
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - _PyType_GetModuleState
    - Py_IS_TYPE
    - newSHA224object
    - newSHA256object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_copy_impl(SHA256object *self, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha2module.c:297,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/sha2module.c:299,1
    - Dst: newSHA512object
      Src: /src/cpython/Modules/sha2module.c:300,1
    - Dst: newSHA384object
      Src: /src/cpython/Modules/sha2module.c:305,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:310,1
    - Dst: SHA512copy
      Src: /src/cpython/Modules/sha2module.c:311,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA512object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 318
    functionName: SHA512Type_copy_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - newSHA512object
    - _PyType_GetModuleState
    - Py_IS_TYPE
    - newSHA384object
    - SHA512copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_copy_impl(SHA512object *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:331,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:332,1
    - Dst: Hacl_Hash_SHA2_digest_256
      Src: /src/cpython/Modules/sha2module.c:335,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:336,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA256object*
    assertStmts:
    - condition: (self->digestsize <= SHA256_DIGESTSIZE)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: SHA256Type_digest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - PyBytes_FromStringAndSize
    - Hacl_Hash_SHA2_digest_256
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_digest_impl(SHA256object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:351,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:352,1
    - Dst: Hacl_Hash_SHA2_digest_512
      Src: /src/cpython/Modules/sha2module.c:355,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:356,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA512object*
    assertStmts:
    - condition: (self->digestsize <= SHA512_DIGESTSIZE)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: SHA512Type_digest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_digest_512
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - PyBytes_FromStringAndSize
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_digest_impl(SHA512object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:371,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:372,1
    - Dst: Hacl_Hash_SHA2_digest_256
      Src: /src/cpython/Modules/sha2module.c:373,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:374,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha2module.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA256object*
    assertStmts:
    - condition: (self->digestsize <= SHA256_DIGESTSIZE)
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: SHA256Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    - Hacl_Hash_SHA2_digest_256
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_hexdigest_impl(SHA256object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:389,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:390,1
    - Dst: Hacl_Hash_SHA2_digest_512
      Src: /src/cpython/Modules/sha2module.c:391,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:392,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha2module.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA512object*
    assertStmts:
    - condition: (self->digestsize <= SHA512_DIGESTSIZE)
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: SHA512Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_digest_512
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_hexdigest_impl(SHA512object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:410,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha2module.c:411,1
    - Dst: update_256
      Src: /src/cpython/Modules/sha2module.c:413,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHA256object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 417
    functionName: SHA256Type_update_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - update_256
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_update_impl(SHA256object *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:433,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha2module.c:434,1
    - Dst: update_512
      Src: /src/cpython/Modules/sha2module.c:436,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHA512object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 440
    functionName: SHA512Type_update_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - update_512
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_update_impl(SHA512object *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha2module.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: SHA256_get_block_size
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha2module.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: SHA512_get_block_size
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SHA256object_CAST
      Src: /src/cpython/Modules/sha2module.c:473,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha2module.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: SHA256_get_digest_size
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _SHA256object_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256_get_digest_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SHA512object_CAST
      Src: /src/cpython/Modules/sha2module.c:480,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha2module.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 482
    functionName: SHA512_get_digest_size
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _SHA512object_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512_get_digest_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA256object_CAST
      Src: /src/cpython/Modules/sha2module.c:487,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:489,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 492
    functionName: SHA256_get_name
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _SHA256object_CAST
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256_get_name(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA512object_CAST
      Src: /src/cpython/Modules/sha2module.c:497,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:499,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: SHA512_get_name
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - _SHA512object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512_get_name(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/sha2module.c:588,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:593,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:596,1
    - Dst: newSHA256object::newSHA256object
      Src: /src/cpython/Modules/sha2module.c:599,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:601,1
    - Dst: Hacl_Hash_SHA2_malloc_256
      Src: /src/cpython/Modules/sha2module.c:606,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:609,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:612,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:614,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:619,1
    - Dst: update_256
      Src: /src/cpython/Modules/sha2module.c:621,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:621,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:623,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string_obj
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 627
    functionName: _sha2_sha256_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - state::state
    - update_256
    - Hacl_Hash_SHA2_malloc_256
    - GET_BUFFER_VIEW_OR_ERROUT
    - newSHA256object::newSHA256object
    - _Py_hashlib_data_argument
    - PyBuffer_Release
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyErr_NoMemory
    - sha2_get_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sha2_sha256_impl(PyObject *module, PyObject *data, int
      usedforsecurity,\n                  PyObject *string_obj)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/sha2module.c:647,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:652,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:655,1
    - Dst: newSHA224object::newSHA224object
      Src: /src/cpython/Modules/sha2module.c:657,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:659,1
    - Dst: Hacl_Hash_SHA2_malloc_224
      Src: /src/cpython/Modules/sha2module.c:664,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:667,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:670,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:672,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:677,1
    - Dst: update_256
      Src: /src/cpython/Modules/sha2module.c:679,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:679,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string_obj
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 685
    functionName: _sha2_sha224_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - state::state
    - update_256
    - newSHA224object::newSHA224object
    - GET_BUFFER_VIEW_OR_ERROUT
    - _Py_hashlib_data_argument
    - PyBuffer_Release
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyErr_NoMemory
    - sha2_get_state
    - Hacl_Hash_SHA2_malloc_224
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sha2_sha224_impl(PyObject *module, PyObject *data, int
      usedforsecurity,\n                  PyObject *string_obj)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/sha2module.c:706,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:710,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:713,1
    - Dst: newSHA512object::newSHA512object
      Src: /src/cpython/Modules/sha2module.c:716,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:718,1
    - Dst: Hacl_Hash_SHA2_malloc_512
      Src: /src/cpython/Modules/sha2module.c:723,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:726,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:729,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:731,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:736,1
    - Dst: update_512
      Src: /src/cpython/Modules/sha2module.c:738,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:738,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:740,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string_obj
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 744
    functionName: _sha2_sha512_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - update_512
    - Hacl_Hash_SHA2_malloc_512
    - state::state
    - GET_BUFFER_VIEW_OR_ERROUT
    - newSHA512object::newSHA512object
    - _Py_hashlib_data_argument
    - PyBuffer_Release
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyErr_NoMemory
    - sha2_get_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sha2_sha512_impl(PyObject *module, PyObject *data, int
      usedforsecurity,\n                  PyObject *string_obj)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/sha2module.c:765,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:769,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:772,1
    - Dst: newSHA384object::newSHA384object
      Src: /src/cpython/Modules/sha2module.c:775,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:777,1
    - Dst: Hacl_Hash_SHA2_malloc_384
      Src: /src/cpython/Modules/sha2module.c:782,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:785,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:788,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:790,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:795,1
    - Dst: update_512
      Src: /src/cpython/Modules/sha2module.c:797,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:797,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:799,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string_obj
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 803
    functionName: _sha2_sha384_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - update_512
    - newSHA384object::newSHA384object
    - state::state
    - Hacl_Hash_SHA2_malloc_384
    - GET_BUFFER_VIEW_OR_ERROUT
    - _Py_hashlib_data_argument
    - PyBuffer_Release
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyErr_NoMemory
    - sha2_get_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sha2_sha384_impl(PyObject *module, PyObject *data, int
      usedforsecurity,\n                  PyObject *string_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:818,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:819,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:820,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:821,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 824
    functionName: _sha2_traverse
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - sha2_get_state
    linkageType: ''
    returnType: int
    signature: int _sha2_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:829,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:830,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:831,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:832,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 835
    functionName: _sha2_clear
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - sha2_get_state
    linkageType: ''
    returnType: int
    signature: int _sha2_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha2_clear
      Src: /src/cpython/Modules/sha2module.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 841
    functionName: _sha2_free
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _sha2_clear
    linkageType: ''
    returnType: void
    signature: void _sha2_free(void *module)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:846,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:848,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:853,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:858,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:863,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:869,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:872,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:875,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:878,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/sha2module.c:882,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 890
    functionName: sha2_exec
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyModule_AddIntConstant
    - PyType_FromModuleAndSpec
    - sha2_get_state
    linkageType: ''
    returnType: int
    signature: int sha2_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/sha2module.c:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 914
    functionName: PyInit__sha2
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sha2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_generate_time_safe
      Src: /src/cpython/Modules/_uuidmodule.c:35,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_uuidmodule.c:36,1
    - Dst: uuid_create
      Src: /src/cpython/Modules/_uuidmodule.c:39,1
    - Dst: uuid_enc_be
      Src: /src/cpython/Modules/_uuidmodule.c:42,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_uuidmodule.c:43,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_uuidmodule.c:45,1
    - Dst: uuid_generate_time
      Src: /src/cpython/Modules/_uuidmodule.c:48,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_uuidmodule.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(context)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 51
    functionName: py_uuid_generate_time_safe
    functionSourceFile: /src/cpython/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - uuid_generate_time
    - uuid_generate_time_safe
    - Py_BuildValue
    - uuid_enc_be
    - uuid_create
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_uuid_generate_time_safe(PyObject *Py_UNUSED(context),\n
      \                          PyObject *Py_UNUSED(ignored))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UuidCreateSequential
      Src: /src/cpython/Modules/_uuidmodule.c:63,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_uuidmodule.c:75,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_uuidmodule.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(context)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 79
    functionName: py_UuidCreate
    functionSourceFile: /src/cpython/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - UuidCreateSequential
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_UuidCreate(PyObject *Py_UNUSED(context),\n              PyObject
      *Py_UNUSED(ignored))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_uuidmodule.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: switch
    functionSourceFile: /src/cpython/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UuidCreateSequential
      Src: /src/cpython/Modules/_uuidmodule.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: py_windows_has_stable_node
    functionSourceFile: /src/cpython/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - UuidCreateSequential
    linkageType: ''
    returnType: int
    signature: int py_windows_has_stable_node(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_uuidmodule.c:104,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_uuidmodule.c:106,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_uuidmodule.c:108,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_uuidmodule.c:110,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_uuidmodule.c:114,1
    - Dst: py_windows_has_stable_node
      Src: /src/cpython/Modules/_uuidmodule.c:114,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_uuidmodule.c:116,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_uuidmodule.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (sizeof(uuid_t) == 16)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/cpython/Modules/_uuidmodule.c
    constantsTouched: []
    func_position:
      end: 123
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 123
    functionName: uuid_exec
    functionSourceFile: /src/cpython/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - py_windows_has_stable_node
    - assert
    - ADD_INT
    linkageType: ''
    returnType: int
    signature: int uuid_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/_uuidmodule.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_uuidmodule.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: PyInit__uuid
    functionSourceFile: /src/cpython/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__uuid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: LOCAL
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 1
    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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: LOCAL
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 1
    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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: JOIN_GET
    functionSourceFile: /src/cpython/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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: JOIN_SET
    functionSourceFile: /src/cpython/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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: JOIN_OBJ
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN_OBJ(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:64,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - new_joined_ptr
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: _set_joined_ptr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - JOIN_OBJ
    linkageType: ''
    returnType: void
    signature: void _set_joined_ptr(PyObject **p, PyObject *new_joined_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: _clear_joined_ptr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _set_joined_ptr
    linkageType: ''
    returnType: void
    signature: void _clear_joined_ptr(PyObject **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_elementtree.c:113,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: get_elementtree_state
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: elementtreestate
    signature: 'elementtreestate *

      get_elementtree_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_elementtree.c:121,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: get_elementtree_state_by_cls
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: elementtreestate
    signature: 'elementtreestate *

      get_elementtree_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_elementtree.c:129,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:130,1
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: get_elementtree_state_by_type
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - assert
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: elementtreestate
    signature: 'elementtreestate *

      get_elementtree_state_by_type(PyTypeObject *tp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:137,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:138,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:139,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:140,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:141,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:142,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:145,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:146,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:147,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:148,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:149,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:150,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:151,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:152,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:155,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:156,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:157,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:158,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: elementtree_clear
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int elementtree_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:168,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:169,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:170,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:171,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:172,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:173,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:176,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:177,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:178,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:179,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 182
    functionName: elementtree_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int elementtree_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementtree_clear
      Src: /src/cpython/Modules/_elementtree.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: elementtree_free
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - elementtree_clear
    linkageType: ''
    returnType: void
    signature: void elementtree_free(void *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_elementtree.c:199,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_elementtree.c:202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: list_join
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - Py_DECREF
    - PyUnicode_Join
    linkageType: ''
    returnType: void
    signature: void list_join(PyObject* list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:212,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: is_empty_dict
    functionSourceFile: /src/cpython/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: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: _Element_CAST
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Element_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: Element_CheckExact
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Element_CheckExact(st, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: Element_Check
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Element_Check(st, op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_elementtree.c:271,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:273,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - attrib
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: create_extra
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Py_XNewRef
    - PyMem_Malloc
    linkageType: ''
    returnType: void
    signature: void create_extra(ElementObject* self, PyObject* attrib)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:297,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_elementtree.c:300,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_elementtree.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - extra
    argTypes:
    - ElementObjectExtra*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 304
    functionName: dealloc_extra
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void dealloc_extra(ElementObjectExtra *extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dealloc_extra
      Src: /src/cpython/Modules/_elementtree.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 320
    functionName: clear_extra
    functionSourceFile: /src/cpython/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/cpython/Modules/_elementtree.c:330,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:334,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:335,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:336,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_elementtree.c:339,1
    - Dst: is_empty_dict
      Src: /src/cpython/Modules/_elementtree.c:341,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - st
    - tag
    - attrib
    argTypes:
    - elementtreestate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 349
    functionName: create_new_element
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - create_extra
    - Py_NewRef
    - PyObject_GC_Track
    - is_empty_dict
    - PyObject_GC_New
    linkageType: ''
    returnType: void
    signature: void create_new_element(elementtreestate *st, PyObject *tag, PyObject
      *attrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_elementtree.c:354,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:356,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:357,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: element_new
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/_elementtree.c:377,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_elementtree.c:385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:386,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:388,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:391,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_elementtree.c:391,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:394,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_elementtree.c:397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - kwds
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 402
    functionName: get_attrib_from_keywords
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_PopString
    - PyDict_Copy
    - Py_SETREF
    - PyDict_New
    - PyErr_Format
    - PyDict_Update
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_attrib_from_keywords(PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_elementtree.c:419,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_elementtree.c:424,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_elementtree.c:428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:429,1
    - Dst: get_attrib_from_keywords
      Src: /src/cpython/Modules/_elementtree.c:435,1
    - Dst: is_empty_dict
      Src: /src/cpython/Modules/_elementtree.c:442,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:444,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:450,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:453,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:453,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:455,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:455,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:456,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 459
    functionName: element_init
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyArg_ParseTuple
    - PyDict_Copy
    - create_extra
    - get_attrib_from_keywords
    - Py_NewRef
    - _set_joined_ptr
    - Py_XSETREF
    - 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/cpython/Modules/_elementtree.c:467,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:472,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_elementtree.c:494,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_elementtree.c:500,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_elementtree.c:505,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:515,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - self
    - extra
    argTypes:
    - ElementObject*
    - Py_ssize_t
    assertStmts:
    - condition: (extra >= 0)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 517
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 517
    functionName: element_resize
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - memcpy
    - create_extra
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: void
    signature: void element_resize(ElementObject* self, Py_ssize_t extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:522,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - element
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 525
    functionName: raise_type_error
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void raise_type_error(PyObject *element)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:532,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:533,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:537,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - st
    - self
    - element
    argTypes:
    - elementtreestate*
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 545
    functionName: element_add_subelement
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - element_resize
    - raise_type_error
    - Element_Check
    linkageType: ''
    returnType: void
    signature: "void element_add_subelement(elementtreestate *st, ElementObject *self,\n
      \                      PyObject *element)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 561
    functionName: element_get_attrib
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    linkageType: ''
    returnType: void
    signature: void element_get_attrib(ElementObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:570,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:571,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:572,1
    - Dst: list_join
      Src: /src/cpython/Modules/_elementtree.c:573,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 582
    functionName: element_get_text
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - JOIN_OBJ
    - list_join
    - Py_SETREF
    - JOIN_GET
    linkageType: ''
    returnType: void
    signature: void element_get_text(ElementObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:591,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:592,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:593,1
    - Dst: list_join
      Src: /src/cpython/Modules/_elementtree.c:594,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 603
    functionName: element_get_tail
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - JOIN_OBJ
    - list_join
    - Py_SETREF
    - JOIN_GET
    linkageType: ''
    returnType: void
    signature: void element_get_tail(ElementObject* self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:610,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_elementtree.c:614,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_elementtree.c:622,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_elementtree.c:625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:626,1
    - Dst: get_attrib_from_keywords
      Src: /src/cpython/Modules/_elementtree.c:631,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:638,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:639,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:644,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 649
    functionName: subelement
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 1
    functionsReached:
    - get_elementtree_state
    - Py_XDECREF
    - create_new_element
    - Py_DECREF
    - PyArg_ParseTuple
    - PyDict_Copy
    - get_attrib_from_keywords
    - element_add_subelement
    - PyDict_Update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subelement(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:654,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:655,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:655,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:656,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:657,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:657,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:658,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:658,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:662,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 668
    functionName: element_gc_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - JOIN_OBJ
    - _Element_CAST
    linkageType: ''
    returnType: int
    signature: int element_gc_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:673,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:674,1
    - Dst: _clear_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:675,1
    - Dst: _clear_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:676,1
    - Dst: clear_extra
      Src: /src/cpython/Modules/_elementtree.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 683
    functionName: element_gc_clear
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - clear_extra
    - _clear_joined_ptr
    - Py_CLEAR
    - _Element_CAST
    linkageType: ''
    returnType: int
    signature: int element_gc_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:688,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:689,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:692,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_elementtree.c:694,1
    - Dst: element_gc_clear
      Src: /src/cpython/Modules/_elementtree.c:698,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 685
    functionDepth: 4
    functionLinenumber: 685
    functionLinenumberEnd: 702
    functionName: element_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_gc_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - _Element_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void element_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:720,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - cls
    - subelement
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 715
    functionDepth: 4
    functionLinenumber: 715
    functionLinenumberEnd: 725
    functionName: _elementtree_Element_append_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_add_subelement
    - get_elementtree_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_append_impl(ElementObject *self,
      PyTypeObject *cls,\n                                 PyObject *subelement)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_extra
      Src: /src/cpython/Modules/_elementtree.c:736,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:738,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:738,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:739,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 742
    functionName: _elementtree_Element_clear_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - clear_extra
    - _set_joined_ptr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_clear_impl(ElementObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:758,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:760,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:765,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:765,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:766,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:768,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:768,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:769,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:771,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:774,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:779,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ElementObject*
    - PyTypeObject*
    assertStmts:
    - condition: (!element->extra || !element->extra->length)
      pos:
        line_end: 770
        line_start: 770
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!element->extra->length)
      pos:
        line_end: 781
        line_start: 781
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 787
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 787
    functionName: _elementtree_Element___copy___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_elementtree_state_by_cls
    - create_new_element
    - JOIN_OBJ
    - Py_DECREF
    - element_resize
    - Py_NewRef
    - _set_joined_ptr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___copy___impl(ElementObject *self, PyTypeObject *cls)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:812,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:813,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:816,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:821,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:823,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:832,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:833,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:838,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:838,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:841,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:841,1
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:841,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:843,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:843,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:846,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:846,1
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:846,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:848,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:851,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:852,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:857,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:858,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:861,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:871,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:879,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_elementtree.c:887,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:901,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 73
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts:
    - condition: (!element->extra || !element->extra->length)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!element->extra->length)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!element->extra->length)
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 903
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 903
    functionName: _elementtree_Element___deepcopy___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - create_new_element
    - Py_DECREF
    - JOIN_OBJ
    - PyDict_SetItem
    - get_elementtree_state_by_type
    - element_resize
    - PyLong_FromSsize_t
    - Element_Check
    - JOIN_GET
    - _set_joined_ptr
    - JOIN_SET
    - raise_type_error
    - deepcopy
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:911,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:912,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_elementtree.c:915,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:916,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_elementtree.c:920,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:921,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:921,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_elementtree.c:927,1
    - Dst: Element_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:931,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:935,1
    - Dst: _elementtree_Element___deepcopy___impl
      Src: /src/cpython/Modules/_elementtree.c:936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:938,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:945,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:950,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:952,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:953,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - st
    - object
    - memo
    argTypes:
    - elementtreestate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 955
    functionName: deepcopy
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyDict_CheckExact
    - PyUnicode_CheckExact
    - PyErr_SetString
    - PyDict_Copy
    - PyObject_Vectorcall
    - PyDict_Next
    - _elementtree_Element___deepcopy___impl
    - Py_NewRef
    - Element_CheckExact
    - Py_REFCNT
    linkageType: ''
    returnType: void
    signature: void deepcopy(elementtreestate *st, PyObject *object, PyObject *memo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_elementtree.c:967,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 975
    functionName: _elementtree_Element___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: size_t
    signature: size_t _elementtree_Element___sizeof___impl(ElementObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1003,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1006,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1007,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1008,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1012,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:1015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1017,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_elementtree.c:1022,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1026,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1027,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1028
    functionName: _elementtree_Element___getstate___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_BuildValue
    - Py_DECREF
    - JOIN_OBJ
    - PyList_GET_SIZE
    - PyList_SET_ITEM
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___getstate___impl(ElementObject *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1043,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:1047,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1047,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:1049,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:1049,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1050,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1050,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:1051,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:1053,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:1053,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1054,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1054,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:1055,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_elementtree.c:1064,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1065,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1068,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1075,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1076,1
    - Dst: clear_extra
      Src: /src/cpython/Modules/_elementtree.c:1077,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1081,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1082,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1084,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1091,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1092,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:1093,1
    - Dst: dealloc_extra
      Src: /src/cpython/Modules/_elementtree.c:1095,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1098,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1101,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1105,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:1111,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:1111,1
    - Dst: dealloc_extra
      Src: /src/cpython/Modules/_elementtree.c:1112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 7
    argNames:
    - st
    - self
    - tag
    - attrib
    - text
    - tail
    - children
    argTypes:
    - elementtreestate*
    - ElementObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!self->extra || !self->extra->length)
      pos:
        line_end: 1075
        line_start: 1075
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (self->extra->allocated >= nchildren)
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (self->extra->attrib == NULL)
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!self->extra->length)
      pos:
        line_end: 1100
        line_start: 1100
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (self->extra)
      pos:
        line_end: 1080
        line_start: 1080
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1115
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1115
    functionName: element_setstate_from_attributes
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_INCREF
    - clear_extra
    - PyList_GET_ITEM
    - JOIN_OBJ
    - PyErr_SetString
    - PyList_GET_SIZE
    - element_resize
    - PyList_Check
    - Py_NewRef
    - Element_Check
    - _set_joined_ptr
    - JOIN_SET
    - Py_XSETREF
    - raise_type_error
    - dealloc_extra
    - Py_XNewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nelement_setstate_from_attributes(elementtreestate *st,\n
      \                                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/cpython/Modules/_elementtree.c:1132,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_elementtree.c:1136,1
    - Dst: element_setstate_from_attributes
      Src: /src/cpython/Modules/_elementtree.c:1138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - st
    - self
    - state
    argTypes:
    - elementtreestate*
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1121
    functionDepth: 4
    functionLinenumber: 1121
    functionLinenumberEnd: 1145
    functionName: element_setstate_from_Python
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyArg_ParseTupleAndKeywords
    - element_setstate_from_attributes
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nelement_setstate_from_Python(elementtreestate *st, ElementObject
      *self,\n                             PyObject *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:1161,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:1162,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1168,1
    - Dst: element_setstate_from_Python
      Src: /src/cpython/Modules/_elementtree.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - cls
    - state
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1156
    functionDepth: 5
    functionLinenumber: 1156
    functionLinenumberEnd: 1171
    functionName: _elementtree_Element___setstate___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_setstate_from_Python
    - get_elementtree_state_by_cls
    - PyDict_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element___setstate___impl(ElementObject *self,\n
      \                                      PyTypeObject *cls, PyObject *state)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_elementtree.c:1184,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:1185,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_elementtree.c:1186,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_elementtree.c:1187,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1188,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1189,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1190,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1191,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1196,1
    - Dst: PATHCHAR
      Src: /src/cpython/Modules/_elementtree.c:1201,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_elementtree.c:1206,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:1207,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1208,1
    - Dst: PATHCHAR
      Src: /src/cpython/Modules/_elementtree.c:1219,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 30
    argCount: 1
    argNames:
    - tag
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1174
    functionDepth: 1
    functionLinenumber: 1174
    functionLinenumberEnd: 1226
    functionName: checkpath
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyBytes_Check
    - PyBytes_AS_STRING
    - PATHCHAR
    - PyBytes_GET_SIZE
    - PyUnicode_Check
    - PyUnicode_DATA
    - 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: 1183
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1183
    functionName: PATHCHAR
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATHCHAR(ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_elementtree.c:1245,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1250,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1251,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1252,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1252,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:1253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cls
    - elements
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1237
    functionDepth: 4
    functionLinenumber: 1237
    functionLinenumberEnd: 1264
    functionName: _elementtree_Element_extend_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state_by_cls
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - PySequence_Fast
    - Py_NewRef
    - element_add_subelement
    - PySequence_Fast_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_extend_impl(ElementObject *self,
      PyTypeObject *cls,\n                                 PyObject *elements)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1281,1
    - Dst: checkpath
      Src: /src/cpython/Modules/_elementtree.c:1283,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1284,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1291,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1291,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1292,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1293,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - self
    - cls
    - path
    - namespaces
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Element_Check(st, item))
      pos:
        line_end: 1290
        line_start: 1290
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1306
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1306
    functionName: _elementtree_Element_find_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_elementtree_state_by_cls
    - Py_DECREF
    - Element_Check
    - PyObject_CallMethodObjArgs
    - Py_NewRef
    - checkpath
    - PyObject_RichCompareBool
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_find_impl(ElementObject *self, PyTypeObject
      *cls,\n                               PyObject *path, PyObject *namespaces)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1325,1
    - Dst: checkpath
      Src: /src/cpython/Modules/_elementtree.c:1327,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1328,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1335,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1335,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1336,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1337,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1339,1
    - Dst: element_get_text
      Src: /src/cpython/Modules/_elementtree.c:1341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1342,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_elementtree.c:1344,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_elementtree.c:1346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1349,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - path
    - default_value
    - namespaces
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Element_Check(st, item))
      pos:
        line_end: 1334
        line_start: 1334
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1356
      start: 1319
    functionDepth: 3
    functionLinenumber: 1319
    functionLinenumberEnd: 1356
    functionName: _elementtree_Element_findtext_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_elementtree_state_by_cls
    - Py_DECREF
    - Py_GetConstant
    - Element_Check
    - PyObject_CallMethodObjArgs
    - Py_NewRef
    - checkpath
    - PyObject_RichCompareBool
    - element_get_text
    - Py_XINCREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_findtext_impl(ElementObject *self,
      PyTypeObject *cls,\n                                   PyObject *path, PyObject
      *default_value,\n                                   PyObject *namespaces)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1373,1
    - Dst: checkpath
      Src: /src/cpython/Modules/_elementtree.c:1375,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1376,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1381,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1388,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1388,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1389,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1390,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1392,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_elementtree.c:1393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1398,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - self
    - cls
    - path
    - namespaces
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Element_Check(st, item))
      pos:
        line_end: 1387
        line_start: 1387
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1402
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1402
    functionName: _elementtree_Element_findall_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_INCREF
    - get_elementtree_state_by_cls
    - Py_DECREF
    - PyList_Append
    - Element_Check
    - PyObject_CallMethodObjArgs
    - Py_NewRef
    - checkpath
    - PyObject_RichCompareBool
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_findall_impl(ElementObject *self,
      PyTypeObject *cls,\n                                  PyObject *path, PyObject
      *namespaces)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1420,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cls
    - path
    - namespaces
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1414
    functionDepth: 2
    functionLinenumber: 1414
    functionLinenumberEnd: 1424
    functionName: _elementtree_Element_iterfind_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - get_elementtree_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_iterfind_impl(ElementObject *self,
      PyTypeObject *cls,\n                                   PyObject *path, PyObject
      *namespaces)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1440,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:1441,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_elementtree.c:1441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1442,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:1443,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1449
    functionName: _elementtree_Element_get_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyErr_Occurred
    - Py_NewRef
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_get_impl(ElementObject *self, PyObject
      *key,\n                              PyObject *default_value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_elementtree.c:1470,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:1471,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_elementtree.c:1471,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_elementtree.c:1474,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1475,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:1475,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1479,1
    - Dst: create_elementiter
      Src: /src/cpython/Modules/_elementtree.c:1480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - self
    - cls
    - tag
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1465
    functionDepth: 2
    functionLinenumber: 1465
    functionLinenumberEnd: 1481
    functionName: _elementtree_Element_iter_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state_by_cls
    - create_elementiter
    - PyBytes_Check
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_iter_impl(ElementObject *self, PyTypeObject
      *cls,\n                               PyObject *tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1496,1
    - Dst: create_elementiter
      Src: /src/cpython/Modules/_elementtree.c:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ElementObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1492
    functionDepth: 2
    functionLinenumber: 1492
    functionLinenumberEnd: 1498
    functionName: _elementtree_Element_itertext_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state_by_cls
    - create_elementiter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_itertext_impl(ElementObject *self, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1504,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1507,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1515
    functionName: element_getitem
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - _Element_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_getitem(PyObject *op, Py_ssize_t index)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1520,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_elementtree.c:1521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1532
    functionName: element_bool
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    - _Element_CAST
    linkageType: ''
    returnType: int
    signature: int element_bool(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:1551,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1563,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - self
    - index
    - subelement
    argTypes:
    - ElementObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1543
    functionDepth: 3
    functionLinenumber: 1543
    functionLinenumberEnd: 1574
    functionName: _elementtree_Element_insert_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - element_resize
    - create_extra
    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/cpython/Modules/_elementtree.c:1586,1
    - Dst: PyDict_Items
      Src: /src/cpython/Modules/_elementtree.c:1588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1589
    functionName: _elementtree_Element_items_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_elementtree.c:1601,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Modules/_elementtree.c:1603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1604
    functionName: _elementtree_Element_keys_impl
    functionSourceFile: /src/cpython/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:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1614
    functionName: element_length
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t element_length(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_elementtree.c:1633,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1637,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:1638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cls
    - tag
    - attrib
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1626
    functionDepth: 3
    functionLinenumber: 1626
    functionLinenumberEnd: 1643
    functionName: _elementtree_Element_makeelement_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state_by_cls
    - PyDict_Copy
    - create_new_element
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_makeelement_impl(ElementObject *self,
      PyTypeObject *cls,\n                                      PyObject *tag, PyObject
      *attrib)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1670,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1672,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1701,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - self
    - subelement
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1703
    functionName: _elementtree_Element_remove_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - PyObject_RichCompareBool
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_remove_impl(ElementObject *self, PyObject *subelement)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1709,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_elementtree.c:1711,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_elementtree.c:1713,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_elementtree.c:1716,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_elementtree.c:1717,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:1721,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:1723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1705
    functionDepth: 1
    functionLinenumber: 1705
    functionLinenumberEnd: 1725
    functionName: element_repr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - _Element_CAST
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_repr(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:1744,1
    - Dst: element_get_attrib
      Src: /src/cpython/Modules/_elementtree.c:1748,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:1752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1756
    functionName: _elementtree_Element_set_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_get_attrib
    - create_extra
    - PyDict_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_set_impl(ElementObject *self, PyObject
      *key,\n                              PyObject *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1761,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1766,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:1775,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:1776,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1777,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:1778,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1788,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - op
    - index
    - item
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1758
    functionDepth: 3
    functionLinenumber: 1758
    functionLinenumberEnd: 1791
    functionName: element_setitem
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_elementtree_state_by_type
    - PyErr_SetString
    - _Element_CAST
    - Element_Check
    - Py_NewRef
    - raise_type_error
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int element_setitem(PyObject *op, Py_ssize_t index, PyObject* item)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1796,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_elementtree.c:1798,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_elementtree.c:1799,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:1801,1
    - Dst: element_getitem
      Src: /src/cpython/Modules/_elementtree.c:1806,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_elementtree.c:1808,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1814,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_elementtree.c:1816,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_elementtree.c:1819,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1823,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1825,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1831,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1832,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1839,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1843
    functionName: element_subscr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PySlice_AdjustIndices
    - PyErr_Occurred
    - PySlice_Check
    - PyErr_SetString
    - PyList_SET_ITEM
    - _Element_CAST
    - element_getitem
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - Py_NewRef
    - PyIndex_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_subscr(PyObject *op, PyObject *item)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1848,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_elementtree.c:1850,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_elementtree.c:1851,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:1853,1
    - Dst: element_setitem
      Src: /src/cpython/Modules/_elementtree.c:1858,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_elementtree.c:1860,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:1868,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_elementtree.c:1872,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_elementtree.c:1875,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1895,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1900,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1920,1
    - Dst: memmove
      Src: /src/cpython/Modules/_elementtree.c:1922,1
    - Dst: memmove
      Src: /src/cpython/Modules/_elementtree.c:1931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1940,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_elementtree.c:1945,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1953,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:1954,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1965,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:1970,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:1971,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1973,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1974,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:1975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1976,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1987,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1992,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2008,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2014,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2017,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:2022,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 96
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((size_t)slicelen <= SIZE_MAX / sizeof(PyObject *))
      pos:
        line_end: 1894
        line_start: 1894
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 2026
      start: 1845
    functionDepth: 4
    functionLinenumber: 1845
    functionLinenumberEnd: 2026
    functionName: element_ass_subscr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - _Element_CAST
    - Element_Check
    - PyErr_Occurred
    - get_elementtree_state_by_type
    - PySlice_Unpack
    - raise_type_error
    - PyErr_Format
    - create_extra
    - PySlice_AdjustIndices
    - Py_DECREF
    - element_resize
    - Py_NewRef
    - PySequence_Fast_GET_ITEM
    - PyIndex_Check
    - Py_TYPE
    - PySequence_Fast_GET_SIZE
    - memmove
    - PyList_SET_ITEM
    - PyNumber_AsSsize_t
    - element_setitem
    - PySequence_Fast
    - PySlice_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int element_ass_subscr(PyObject *op, PyObject *item, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2031,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2034
    functionName: element_tag_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _Element_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_tag_getter(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2039,1
    - Dst: element_get_text
      Src: /src/cpython/Modules/_elementtree.c:2040,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2036
    functionDepth: 3
    functionLinenumber: 2036
    functionLinenumberEnd: 2042
    functionName: element_text_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - element_get_text
    - _Element_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_text_getter(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2047,1
    - Dst: element_get_tail
      Src: /src/cpython/Modules/_elementtree.c:2048,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:2049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2044
    functionDepth: 3
    functionLinenumber: 2044
    functionLinenumberEnd: 2050
    functionName: element_tail_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - element_get_tail
    - _Element_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_tail_getter(PyObject *op, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2056,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:2058,1
    - Dst: element_get_attrib
      Src: /src/cpython/Modules/_elementtree.c:2061,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:2062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2052
    functionDepth: 2
    functionLinenumber: 2052
    functionLinenumberEnd: 2063
    functionName: element_attrib_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - element_get_attrib
    - create_extra
    - _Element_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_attrib_getter(PyObject *op, 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: 2073
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2073
    functionName: _VALIDATE_ATTR_VALUE
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _VALIDATE_ATTR_VALUE(V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/cpython/Modules/_elementtree.c:2077,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2078,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2079,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2081
    functionName: element_tag_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - Py_NewRef
    - _VALIDATE_ATTR_VALUE
    - _Element_CAST
    linkageType: ''
    returnType: int
    signature: int element_tag_setter(PyObject *op, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/cpython/Modules/_elementtree.c:2086,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2087,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:2088,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2083
    functionDepth: 2
    functionLinenumber: 2083
    functionLinenumberEnd: 2090
    functionName: element_text_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _VALIDATE_ATTR_VALUE
    - _set_joined_ptr
    - _Element_CAST
    linkageType: ''
    returnType: int
    signature: int element_text_setter(PyObject *op, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/cpython/Modules/_elementtree.c:2095,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2096,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:2097,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2092
    functionDepth: 2
    functionLinenumber: 2092
    functionLinenumberEnd: 2099
    functionName: element_tail_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _VALIDATE_ATTR_VALUE
    - _set_joined_ptr
    - _Element_CAST
    linkageType: ''
    returnType: int
    signature: int element_tail_setter(PyObject *op, PyObject *value, void *closure)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/cpython/Modules/_elementtree.c:2104,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_elementtree.c:2105,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:2106,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2108,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2111,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:2113,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2116,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2101
    functionDepth: 2
    functionLinenumber: 2101
    functionLinenumberEnd: 2118
    functionName: element_attrib_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_extra
    - _Element_CAST
    - Py_NewRef
    - Py_XSETREF
    - PyErr_Format
    - PyDict_Check
    - _VALIDATE_ATTR_VALUE
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int element_attrib_setter(PyObject *op, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2146
    functionName: _ElementIter_CAST
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ElementIter_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2151,1
    - Dst: _ElementIter_CAST
      Src: /src/cpython/Modules/_elementtree.c:2152,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:2156,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2158,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_elementtree.c:2159,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2161,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2162,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:2164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2166
    functionName: elementiter_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - _ElementIter_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void elementiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ElementIter_CAST
      Src: /src/cpython/Modules/_elementtree.c:2171,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2174,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2176,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2177,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2178,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2180
    functionName: elementiter_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _ElementIter_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int elementiter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Resize
      Src: /src/cpython/Modules/_elementtree.c:2192,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - it
    - parent
    argTypes:
    - ElementIterObject*
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2184
    functionDepth: 1
    functionLinenumber: 2184
    functionLinenumberEnd: 2202
    functionName: parent_stack_push_new
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMem_Resize
    linkageType: ''
    returnType: int
    signature: int parent_stack_push_new(ElementIterObject *it, ElementObject *parent)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _ElementIter_CAST
      Src: /src/cpython/Modules/_elementtree.c:2207,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_elementtree.c:2230,1
    - Dst: element_get_tail
      Src: /src/cpython/Modules/_elementtree.c:2253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2256,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2261,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:2262,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:2263,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:2263,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2265,1
    - Dst: parent_stack_push_new
      Src: /src/cpython/Modules/_elementtree.c:2269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2270,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:2271,1
    - Dst: element_get_text
      Src: /src/cpython/Modules/_elementtree.c:2275,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:2282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2297,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:2300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2301,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_elementtree.c:2302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2305,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Element_Check(st, extra->children[child_index]))
      pos:
        line_end: 2262
        line_start: 2262
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 2312
      start: 2204
    functionDepth: 3
    functionLinenumber: 2204
    functionLinenumberEnd: 2312
    functionName: elementiter_next
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_IsTrue
    - Py_DECREF
    - get_elementtree_state_by_type
    - element_get_tail
    - Element_Check
    - Py_NewRef
    - PyErr_SetNone
    - element_get_text
    - _ElementIter_CAST
    - PyObject_RichCompareBool
    - parent_stack_push_new
    - Py_TYPE
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      elementiter_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_elementtree.c:2340,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2344,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2346,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_elementtree.c:2348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2350,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:2351,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_elementtree.c:2357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - st
    - self
    - tag
    - gettext
    argTypes:
    - elementtreestate*
    - ElementObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2360
    functionName: create_elementiter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - Py_NewRef
    - PyObject_GC_Track
    - PyMem_New
    - PyObject_GC_New
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncreate_elementiter(elementtreestate *st, ElementObject
      *self, PyObject *tag,\n                   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: 2400
      start: 2399
    functionDepth: 0
    functionLinenumber: 2399
    functionLinenumberEnd: 2400
    functionName: _TreeBuilder_CAST
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TreeBuilder_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2400
    functionDepth: 0
    functionLinenumber: 2400
    functionLinenumberEnd: 2401
    functionName: TreeBuilder_CheckExact
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TreeBuilder_CheckExact(st, op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_elementtree.c:2408,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2411,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2412,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:2417,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2421,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:2431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2405
    functionDepth: 3
    functionLinenumber: 2405
    functionLinenumberEnd: 2434
    functionName: treebuilder_new
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - get_elementtree_state_by_type
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2457,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2457,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2459,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2467,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2467,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2470,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2479,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2479,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    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: 2487
      start: 2448
    functionDepth: 1
    functionLinenumber: 2448
    functionLinenumberEnd: 2487
    functionName: _elementtree_TreeBuilder___init___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_CLEAR
    - Py_XSETREF
    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: _TreeBuilder_CAST
      Src: /src/cpython/Modules/_elementtree.c:2492,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2493,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2493,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2494,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2495,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2496,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2497,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2498,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2499,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2500,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2501,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2502,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2503,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2504,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2505,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2506,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2507,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2508,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2489
    functionDepth: 1
    functionLinenumber: 2489
    functionLinenumberEnd: 2511
    functionName: treebuilder_gc_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _TreeBuilder_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int treebuilder_gc_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _TreeBuilder_CAST
      Src: /src/cpython/Modules/_elementtree.c:2516,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2517,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2518,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2519,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2520,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2521,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2522,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2523,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2524,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2525,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2526,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2527,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2528,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2529,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2530,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2531,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2534
    functionName: treebuilder_gc_clear
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _TreeBuilder_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int treebuilder_gc_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2539,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:2540,1
    - Dst: treebuilder_gc_clear
      Src: /src/cpython/Modules/_elementtree.c:2541,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:2542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2536
    functionDepth: 2
    functionLinenumber: 2536
    functionLinenumberEnd: 2544
    functionName: treebuilder_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - treebuilder_gc_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void treebuilder_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:2566,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_elementtree.c:2569,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:2570,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2571,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_elementtree.c:2574,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:2575,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2576,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_elementtree.c:2580,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2585,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2587,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2587,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2590,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2592,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - comment_factory
    - pi_factory
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2561
    functionDepth: 2
    functionLinenumber: 2561
    functionLinenumberEnd: 2596
    functionName: _elementtree__set_factories_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - Py_CLEAR
    - PyCallable_Check
    - Py_NewRef
    - Py_XSETREF
    - PyErr_Format
    - PyTuple_Pack
    - 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/cpython/Modules/_elementtree.c:2604,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:2605,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:2607,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2609,1
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:2612,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_elementtree.c:2613,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2616,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_elementtree.c:2625,1
    - Dst: list_join
      Src: /src/cpython/Modules/_elementtree.c:2628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2630,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_elementtree.c:2634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2641,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_elementtree.c:2644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2645,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2648,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - st
    - element
    - data
    - dest
    - name
    argTypes:
    - elementtreestate*
    - PyObject*
    - PyObject**
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2598
    functionDepth: 2
    functionLinenumber: 2598
    functionLinenumberEnd: 2651
    functionName: treebuilder_extend_element_text_or_tail
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_DECREF
    - JOIN_OBJ
    - PyList_SetSlice
    - PyNumber_Add
    - list_join
    - PyObject_GetAttr
    - PyObject_SetAttr
    - JOIN_GET
    - JOIN_SET
    - Element_CheckExact
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int treebuilder_extend_element_text_or_tail(elementtreestate *st,
      PyObject *element,\n                                        PyObject **data,
      PyObject **dest,\n                                        PyObject *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_extend_element_text_or_tail
      Src: /src/cpython/Modules/_elementtree.c:2662,1
    - Dst: treebuilder_extend_element_text_or_tail
      Src: /src/cpython/Modules/_elementtree.c:2668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2654
    functionDepth: 3
    functionLinenumber: 2654
    functionLinenumberEnd: 2672
    functionName: treebuilder_flush_data
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_extend_element_text_or_tail
    linkageType: ''
    returnType: void
    signature: void treebuilder_flush_data(TreeBuilderObject* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Element_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2678,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2680,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_elementtree.c:2684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - st
    - element
    - child
    argTypes:
    - elementtreestate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2674
    functionDepth: 4
    functionLinenumber: 2674
    functionLinenumberEnd: 2690
    functionName: treebuilder_add_subelement
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_add_subelement
    - PyObject_CallMethodOneArg
    - Py_DECREF
    - Element_CheckExact
    linkageType: ''
    returnType: int
    signature: "int treebuilder_add_subelement(elementtreestate *st, PyObject *element,\n
      \                          PyObject *child)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_elementtree.c:2698,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:2701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - action
    - node
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2708
    functionName: treebuilder_append_event
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - PyObject_CallOneArg
    - Py_DECREF
    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/cpython/Modules/_elementtree.c:2721,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:2726,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:2729,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:2732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2734,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:2737,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2745,1
    - Dst: treebuilder_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2748,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:2753,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2759,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:2762,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/_elementtree.c:2763,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:2765,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_elementtree.c:2767,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2772,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2772,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2773,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2773,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2781,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 3
    argNames:
    - self
    - tag
    - attrib
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2714
    functionDepth: 5
    functionLinenumber: 2714
    functionLinenumberEnd: 2783
    functionName: treebuilder_handle_start
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - create_new_element
    - Py_DECREF
    - PyList_SetItem
    - treebuilder_add_subelement
    - PyList_Append
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyObject_CallFunctionObjArgs
    - treebuilder_flush_data
    - Py_NewRef
    - Py_SETREF
    - PyDict_New
    - Py_CLEAR
    - treebuilder_append_event
    linkageType: ''
    returnType: void
    signature: "void treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag,\n
      \                        PyObject* attrib)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2794,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2797,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_elementtree.c:2797,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2798,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:2798,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:2802,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_elementtree.c:2803,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:2805,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:2805,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2806,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_elementtree.c:2807,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:2810,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2813,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2813,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2814,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2814,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2815,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2786
    functionDepth: 1
    functionLinenumber: 2786
    functionLinenumberEnd: 2820
    functionName: treebuilder_handle_data
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyList_New
    - PyList_Append
    - _PyBytes_Resize
    - PyList_SET_ITEM
    - Py_NewRef
    - Py_SETREF
    - PyBytes_GET_SIZE
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    - Py_REFCNT
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_data(TreeBuilderObject* self, PyObject* data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_flush_data
      Src: /src/cpython/Modules/_elementtree.c:2827,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:2832,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2840,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2841,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2843,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2844,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2846,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2823
    functionDepth: 4
    functionLinenumber: 2823
    functionLinenumberEnd: 2850
    functionName: treebuilder_handle_end
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyErr_SetString
    - treebuilder_flush_data
    - Py_NewRef
    - Py_XSETREF
    - treebuilder_append_event
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_end(TreeBuilderObject* self, PyObject* tag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_flush_data
      Src: /src/cpython/Modules/_elementtree.c:2858,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:2863,1
    - Dst: treebuilder_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2869,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2872,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2872,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2875,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2886,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2853
    functionDepth: 5
    functionLinenumber: 2853
    functionLinenumberEnd: 2888
    functionName: treebuilder_handle_comment
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - treebuilder_flush_data
    - Py_NewRef
    - PyObject_CallOneArg
    - Py_XSETREF
    - treebuilder_add_subelement
    - treebuilder_append_event
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_comment(TreeBuilderObject* self, PyObject*
      text)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_flush_data
      Src: /src/cpython/Modules/_elementtree.c:2896,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:2902,1
    - Dst: treebuilder_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2909,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2912,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2912,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_elementtree.c:2915,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2929,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - self
    - target
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2891
    functionDepth: 5
    functionLinenumber: 2891
    functionLinenumberEnd: 2931
    functionName: treebuilder_handle_pi
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Vectorcall
    - treebuilder_flush_data
    - Py_NewRef
    - Py_XSETREF
    - PyTuple_Pack
    - treebuilder_add_subelement
    - treebuilder_append_event
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_pi(TreeBuilderObject* self, PyObject* target,
      PyObject* text)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_elementtree.c:2939,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2945,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - prefix
    - uri
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2934
    functionDepth: 2
    functionLinenumber: 2934
    functionLinenumberEnd: 2952
    functionName: treebuilder_handle_start_ns
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - Py_DECREF
    - treebuilder_append_event
    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/cpython/Modules/_elementtree.c:2958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2964
      start: 2955
    functionDepth: 2
    functionLinenumber: 2955
    functionLinenumberEnd: 2964
    functionName: treebuilder_handle_end_ns
    functionSourceFile: /src/cpython/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/cpython/Modules/_elementtree.c:2981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2977
    functionDepth: 2
    functionLinenumber: 2977
    functionLinenumberEnd: 2982
    functionName: _elementtree_TreeBuilder_data_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_data
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_data_impl(TreeBuilderObject *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_end
      Src: /src/cpython/Modules/_elementtree.c:2996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2997
      start: 2992
    functionDepth: 5
    functionLinenumber: 2992
    functionLinenumberEnd: 2997
    functionName: _elementtree_TreeBuilder_end_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_end_impl(TreeBuilderObject *self, PyObject *tag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_comment
      Src: /src/cpython/Modules/_elementtree.c:3012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 3007
    functionDepth: 6
    functionLinenumber: 3007
    functionLinenumberEnd: 3013
    functionName: _elementtree_TreeBuilder_comment_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_comment
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_TreeBuilder_comment_impl(TreeBuilderObject
      *self,\n                                      PyObject *text)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_pi
      Src: /src/cpython/Modules/_elementtree.c:3029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - target
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 3024
    functionDepth: 6
    functionLinenumber: 3024
    functionLinenumberEnd: 3030
    functionName: _elementtree_TreeBuilder_pi_impl
    functionSourceFile: /src/cpython/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_NewRef
      Src: /src/cpython/Modules/_elementtree.c:3044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 3033
    functionDepth: 0
    functionLinenumber: 3033
    functionLinenumberEnd: 3045
    functionName: treebuilder_done
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void treebuilder_done(TreeBuilderObject* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_done
      Src: /src/cpython/Modules/_elementtree.c:3056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3052
    functionDepth: 1
    functionLinenumber: 3052
    functionLinenumberEnd: 3057
    functionName: _elementtree_TreeBuilder_close_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_elementtree.c:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - tag
    - attrs
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3068
    functionDepth: 6
    functionLinenumber: 3068
    functionLinenumberEnd: 3074
    functionName: _elementtree_TreeBuilder_start_impl
    functionSourceFile: /src/cpython/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: 5
    argNames:
    - (
    - st
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3079
    functionDepth: 0
    functionLinenumber: 3079
    functionLinenumberEnd: 3080
    functionName: EXPAT
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT(st, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3110
    functionDepth: 0
    functionLinenumber: 3110
    functionLinenumberEnd: 3111
    functionName: XMLParserObject_CAST
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XMLParserObject_CAST(op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3120,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_elementtree.c:3125,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:3129,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_elementtree.c:3129,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3131,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_elementtree.c:3145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3147,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:3150,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_elementtree.c:3152,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:3156,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:3160,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3164,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:3169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3171,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - string
    argTypes:
    - XMLParserObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3115
    functionDepth: 1
    functionLinenumber: 3115
    functionLinenumberEnd: 3178
    functionName: makeuniversal
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyDict_SetItem
    - strlen
    - PyErr_Occurred
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyUnicode_DecodeUTF8
    - Py_XNewRef
    - memcpy
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void makeuniversal(XMLParserObject* self, const char* string)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_elementtree.c:3190,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3191,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3197,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_elementtree.c:3202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3204,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3212,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_elementtree.c:3214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3216,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3224,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_elementtree.c:3226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - st
    - error_code
    - line
    - column
    - message
    argTypes:
    - elementtreestate*
    - enum XML_Error
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3228
      start: 3184
    functionDepth: 1
    functionLinenumber: 3184
    functionLinenumberEnd: 3228
    functionName: expat_set_error
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyErr_SetObject
    - PyObject_SetAttrString
    - PyObject_CallOneArg
    - PyLong_FromLong
    - EXPAT
    linkageType: ''
    returnType: void
    signature: "void expat_set_error(elementtreestate *st, enum XML_Error error_code,\n
      \               Py_ssize_t line, Py_ssize_t column, const char *message)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3236,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3244,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3247,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_elementtree.c:3251,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3255,1
    - Dst: treebuilder_handle_data
      Src: /src/cpython/Modules/_elementtree.c:3256,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3260,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3263,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3264,1
    - Dst: strncat
      Src: /src/cpython/Modules/_elementtree.c:3267,1
    - Dst: expat_set_error
      Src: /src/cpython/Modules/_elementtree.c:3268,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3271,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - op
    - data_in
    - data_len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3233
    functionDepth: 2
    functionLinenumber: 3233
    functionLinenumberEnd: 3278
    functionName: expat_default_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_GetItemWithError
    - strncat
    - Py_DECREF
    - PyErr_Occurred
    - TreeBuilder_CheckExact
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - expat_set_error
    - PyObject_CallOneArg
    - EXPAT
    - treebuilder_handle_data
    linkageType: ''
    returnType: void
    signature: void expat_default_handler(void *op, const XML_Char *data_in, int data_len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3284,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3290,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3294,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3302,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3309,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3312,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3316,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:3319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3324,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3334,1
    - Dst: treebuilder_handle_start
      Src: /src/cpython/Modules/_elementtree.c:3336,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3343,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:3347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3352,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3353,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3355,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 3
    argNames:
    - op
    - tag_in
    - attrib_in
    argTypes:
    - void*
    - XML_Char*
    - XML_Char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3280
    functionDepth: 6
    functionLinenumber: 3280
    functionLinenumberEnd: 3356
    functionName: expat_start_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_start
    - makeuniversal
    - Py_XDECREF
    - Py_DECREF
    - PyDict_SetItem
    - strlen
    - PyErr_Occurred
    - TreeBuilder_CheckExact
    - PyObject_CallFunctionObjArgs
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - PyDict_New
    linkageType: ''
    returnType: void
    signature: "void expat_start_handler(void *op, const XML_Char *tag_in,\n                    const
      XML_Char **attrib_in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3362,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3366,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3369,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3374,1
    - Dst: treebuilder_handle_data
      Src: /src/cpython/Modules/_elementtree.c:3376,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3382,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - op
    - data_in
    - data_len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3358
    functionDepth: 2
    functionLinenumber: 3358
    functionLinenumberEnd: 3385
    functionName: expat_data_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - TreeBuilder_CheckExact
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - PyObject_CallOneArg
    - treebuilder_handle_data
    linkageType: ''
    returnType: void
    signature: "void expat_data_handler(void *op, const XML_Char *data_in,\n                   int
      data_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3390,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3394,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3398,1
    - Dst: treebuilder_handle_end
      Src: /src/cpython/Modules/_elementtree.c:3401,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3405,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3408,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - op
    - tag_in
    argTypes:
    - void*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3387
    functionDepth: 5
    functionLinenumber: 3387
    functionLinenumberEnd: 3413
    functionName: expat_end_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - makeuniversal
    - Py_DECREF
    - PyErr_Occurred
    - TreeBuilder_CheckExact
    - XMLParserObject_CAST
    - PyObject_CallOneArg
    - treebuilder_handle_end
    linkageType: ''
    returnType: void
    signature: void expat_end_handler(void *op, const XML_Char *tag_in)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3419,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3424,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3433,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3438,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3438,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3441,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3443,1
    - Dst: treebuilder_handle_start_ns
      Src: /src/cpython/Modules/_elementtree.c:3447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3449,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3452,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3452,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3455,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3457,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:3462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3464,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3467,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - op
    - prefix_in
    - uri_in
    argTypes:
    - void*
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3415
    functionDepth: 3
    functionLinenumber: 3415
    functionLinenumberEnd: 3468
    functionName: expat_start_ns_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_start_ns
    - Py_XDECREF
    - Py_DECREF
    - strlen
    - PyErr_Occurred
    - TreeBuilder_CheckExact
    - PyObject_Vectorcall
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    linkageType: ''
    returnType: void
    signature: "void expat_start_ns_handler(void *op, const XML_Char *prefix_in,\n
      \                      const XML_Char *uri_in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3473,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3477,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3484,1
    - Dst: treebuilder_handle_end_ns
      Src: /src/cpython/Modules/_elementtree.c:3489,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3492,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3492,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3497,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3500,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - op
    - prefix_in
    argTypes:
    - void*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3470
    functionDepth: 3
    functionLinenumber: 3470
    functionLinenumberEnd: 3501
    functionName: expat_end_ns_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - strlen
    - PyErr_Occurred
    - TreeBuilder_CheckExact
    - treebuilder_handle_end_ns
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - PyObject_CallOneArg
    linkageType: ''
    returnType: void
    signature: void expat_end_ns_handler(void *op, const XML_Char *prefix_in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3506,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3510,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3514,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3518,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3518,1
    - Dst: treebuilder_handle_comment
      Src: /src/cpython/Modules/_elementtree.c:3522,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3524,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3526,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3526,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3530,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - op
    - comment_in
    argTypes:
    - void*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3503
    functionDepth: 6
    functionLinenumber: 3503
    functionLinenumberEnd: 3534
    functionName: expat_comment_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - strlen
    - PyErr_Occurred
    - TreeBuilder_CheckExact
    - treebuilder_handle_comment
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - PyObject_CallOneArg
    linkageType: ''
    returnType: void
    signature: void expat_comment_handler(void *op, const XML_Char *comment_in)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3543,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3547,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3550,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:3561,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3568,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:3572,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:3578,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3581,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_elementtree.c:3583,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_elementtree.c:3584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3592,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - op
    - doctype_name
    - sysid
    - pubid
    - has_internal_subset
    argTypes:
    - void*
    - XML_Char*
    - XML_Char*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3536
    functionDepth: 2
    functionLinenumber: 3536
    functionLinenumberEnd: 3593
    functionName: expat_start_doctype_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - makeuniversal
    - Py_DECREF
    - PyObject_HasAttrWithError
    - PyErr_Occurred
    - PyObject_CallFunctionObjArgs
    - Py_NewRef
    - XMLParserObject_CAST
    - PyErr_WarnEx
    linkageType: ''
    returnType: void
    signature: "void expat_start_doctype_handler(void *op,\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: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3599,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3604,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3608,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3613,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3613,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3616,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3616,1
    - Dst: treebuilder_handle_pi
      Src: /src/cpython/Modules/_elementtree.c:3619,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3622,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3625,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3625,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3628,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3628,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:3633,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3636,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3642,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - op
    - target_in
    - data_in
    argTypes:
    - void*
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3595
    functionDepth: 6
    functionLinenumber: 3595
    functionLinenumberEnd: 3644
    functionName: expat_pi_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - strlen
    - PyErr_Occurred
    - treebuilder_handle_pi
    - TreeBuilder_CheckExact
    - PyObject_Vectorcall
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    linkageType: ''
    returnType: void
    signature: "void expat_pi_handler(void *op, const XML_Char *target_in,\n                 const
      XML_Char *data_in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_elementtree.c:3651,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_elementtree.c:3659,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:3660,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:3661,1
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:3663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (self->elementtree_module != NULL)
      pos:
        line_end: 3659
        line_start: 3659
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 3666
      start: 3648
    functionDepth: 2
    functionLinenumber: 3648
    functionLinenumberEnd: 3666
    functionName: xmlparser_new
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - Py_INCREF
    - PyType_GetModuleByDef
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparser_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_elementtree.c:3672,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_elementtree.c:3675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3678
      start: 3668
    functionDepth: 1
    functionLinenumber: 3668
    functionLinenumberEnd: 3678
    functionName: ignore_attribute_error
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int ignore_attribute_error(PyObject *value)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3694,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3698,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3700,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3704,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3706,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3707,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:3708,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3712,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3713,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:3718,1
    - Dst: treebuilder_new
      Src: /src/cpython/Modules/_elementtree.c:3720,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3722,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3723,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3729,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3730,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3733,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3734,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3737,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3738,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3741,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3742,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3745,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3746,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3749,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3750,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3753,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3754,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3757,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3758,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3761,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3762,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3767,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3769,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3774,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3779,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3783,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3788,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3793,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3797,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3801,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3803,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 3
    argNames:
    - self
    - target
    - encoding
    argTypes:
    - XMLParserObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3807
      start: 3689
    functionDepth: 4
    functionLinenumber: 3689
    functionLinenumberEnd: 3807
    functionName: _elementtree_XMLParser___init___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - treebuilder_new
    - PyObject_GetAttrString
    - PyDict_New
    - ignore_attribute_error
    - EXPAT
    - Py_CLEAR
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: "int _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject
      *target,\n                                     const char *encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3812,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3813,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:3813,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3814,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3815,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3816,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3817,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3818,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3819,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3820,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3821,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3822,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3824,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3825,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3809
    functionDepth: 1
    functionLinenumber: 3809
    functionLinenumberEnd: 3829
    functionName: xmlparser_gc_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - XMLParserObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int xmlparser_gc_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XMLParserObject_CAST
      Src: /src/cpython/Modules/_elementtree.c:3834,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3839,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3842,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3843,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3844,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3845,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3846,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3847,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3848,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3849,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3850,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3851,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3853,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3854,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3858
      start: 3831
    functionDepth: 1
    functionLinenumber: 3831
    functionLinenumberEnd: 3858
    functionName: xmlparser_gc_clear
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - EXPAT
    - XMLParserObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int xmlparser_gc_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:3863,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:3864,1
    - Dst: xmlparser_gc_clear
      Src: /src/cpython/Modules/_elementtree.c:3865,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:3866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3868
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3868
    functionName: xmlparser_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - xmlparser_gc_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void xmlparser_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:3874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3871
    functionDepth: 1
    functionLinenumber: 3871
    functionLinenumberEnd: 3879
    functionName: _check_xmlparser
    functionSourceFile: /src/cpython/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/cpython/Modules/_elementtree.c:3887,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3887,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3888,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3890,1
    - Dst: expat_set_error
      Src: /src/cpython/Modules/_elementtree.c:3894,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3896,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3897,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - st
    - self
    - data
    - data_len
    - final
    argTypes:
    - elementtreestate*
    - XMLParserObject*
    - char*
    - int
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3886
        line_start: 3886
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 3905
      start: 3882
    functionDepth: 2
    functionLinenumber: 3882
    functionLinenumberEnd: 3905
    functionName: expat_parse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - expat_set_error
    - assert
    - EXPAT
    linkageType: ''
    returnType: void
    signature: "void expat_parse(elementtreestate *st, XMLParserObject *self, const
      char *data,\n            int data_len, int final)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/cpython/Modules/_elementtree.c:3920,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:3924,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3929,1
    - Dst: treebuilder_done
      Src: /src/cpython/Modules/_elementtree.c:3930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3933,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_elementtree.c:3934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3912
    functionDepth: 3
    functionLinenumber: 3912
    functionLinenumberEnd: 3939
    functionName: _elementtree_XMLParser_close_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - Py_DECREF
    - TreeBuilder_CheckExact
    - expat_parse
    - treebuilder_done
    - _check_xmlparser
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_close_impl(XMLParserObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/cpython/Modules/_elementtree.c:3950,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3956,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3966,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:3968,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3946
    functionDepth: 3
    functionLinenumber: 3946
    functionLinenumberEnd: 3973
    functionName: _elementtree_XMLParser_flush_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - EXPAT
    - expat_parse
    - _check_xmlparser
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_flush_impl(XMLParserObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/cpython/Modules/_elementtree.c:3989,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_elementtree.c:3993,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_elementtree.c:3995,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:3999,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4003,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4005,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_elementtree.c:4010,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_elementtree.c:4013,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4014,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4017,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_elementtree.c:4018,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - XMLParserObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 3983
    functionDepth: 3
    functionLinenumber: 3983
    functionLinenumberEnd: 4021
    functionName: _elementtree_XMLParser_feed_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - expat_parse
    - PyObject_GetBuffer
    - PyBuffer_Release
    - EXPAT
    - PyUnicode_Check
    - _check_xmlparser
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_feed_impl(XMLParserObject *self, PyObject *data)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/cpython/Modules/_elementtree.c:4042,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:4045,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_elementtree.c:4053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4057,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4061,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:4063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4064,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_elementtree.c:4067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4071,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4076,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4077,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4081,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4084,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4087,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:4088,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4101,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4103,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4106,1
    - Dst: treebuilder_done
      Src: /src/cpython/Modules/_elementtree.c:4107,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - XMLParserObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4031
    functionDepth: 3
    functionLinenumber: 4031
    functionLinenumberEnd: 4111
    functionName: _elementtree_XMLParser__parse_whole_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunction
    - PyObject_GetAttrString
    - PyUnicode_CheckExact
    - PyErr_SetString
    - TreeBuilder_CheckExact
    - PyUnicode_AsEncodedString
    - expat_parse
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - treebuilder_done
    - PyBytes_CheckExact
    - PyUnicode_GET_LENGTH
    - _check_xmlparser
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_XMLParser__parse_whole_impl(XMLParserObject
      *self,\n                                         PyObject *file)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/cpython/Modules/_elementtree.c:4133,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4137,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4138,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:4148,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4151,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4154,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4155,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4156,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4157,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4158,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4159,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_elementtree.c:4163,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_elementtree.c:4167,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4172,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:4173,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_elementtree.c:4175,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_elementtree.c:4176,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_elementtree.c:4177,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:4178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4181,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:4182,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4186,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4187,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4187,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4188,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4189,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4189,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4190,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4191,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4191,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4192,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4197,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4198,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4198,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4199,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4204,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4205,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4205,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4206,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4210,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4211,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4211,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4212,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4217,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:4218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4223,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 3
    argNames:
    - self
    - events_queue
    - events_to_report
    argTypes:
    - XMLParserObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4225
      start: 4122
    functionDepth: 2
    functionLinenumber: 4122
    functionLinenumberEnd: 4225
    functionName: _elementtree_XMLParser__setevents_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBytes_Check
    - Py_CLEAR
    - TreeBuilder_CheckExact
    - strcmp
    - PyErr_Format
    - PyUnicode_Check
    - Py_DECREF
    - Py_NewRef
    - PySequence_Fast_GET_ITEM
    - EXPAT
    - PyBytes_AS_STRING
    - PySequence_Fast_GET_SIZE
    - PyObject_GetAttrString
    - PySequence_Fast
    - PyUnicode_AsUTF8
    - Py_XSETREF
    - PyUnicode_FromString
    - _check_xmlparser
    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/cpython/Modules/_elementtree.c:4236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4239
      start: 4233
    functionDepth: 1
    functionLinenumber: 4233
    functionLinenumberEnd: 4239
    functionName: xmlparser_version_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparser_version_getter(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4246
    functionDepth: 0
    functionLinenumber: 4246
    functionLinenumberEnd: 4247
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - module
    - ','
    - type
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4406
    functionDepth: 0
    functionLinenumber: 4406
    functionLinenumberEnd: 4416
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(module, type, spec)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:4420,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4423,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4424,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4425,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4426,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_elementtree.c:4428,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:4433,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:4433,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_elementtree.c:4434,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_elementtree.c:4438,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_elementtree.c:4440,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4444,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4449,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4457,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4461,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4465,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4469,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4473,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4477,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4481,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4485,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_elementtree.c:4489,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_elementtree.c:4492,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:4502,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_elementtree.c:4503,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 85
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4432
        line_start: 4432
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 4512
      start: 4417
    functionDepth: 2
    functionLinenumber: 4417
    functionLinenumberEnd: 4512
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - PyModule_AddType
    - PyImport_ImportModuleAttrString
    - CREATE_TYPE
    - PyUnicode_InternFromString
    - PyErr_Occurred
    - PyErr_SetString
    - PyModule_AddObjectRef
    - PyImport_ImportModule
    - strcmp
    - PyErr_NewException
    - PyCapsule_GetPointer
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_elementtree.c:4535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4536
      start: 4532
    functionDepth: 1
    functionLinenumber: 4532
    functionLinenumberEnd: 4536
    functionName: PyInit__elementtree
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__elementtree(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testlimitedcapi.c:24,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testlimitedcapi.c:29,1
    - Dst: _PyTestLimitedCAPI_Init_Abstract
      Src: /src/cpython/Modules/_testlimitedcapi.c:32,1
    - Dst: _PyTestLimitedCAPI_Init_ByteArray
      Src: /src/cpython/Modules/_testlimitedcapi.c:35,1
    - Dst: _PyTestLimitedCAPI_Init_Bytes
      Src: /src/cpython/Modules/_testlimitedcapi.c:38,1
    - Dst: _PyTestLimitedCAPI_Init_Codec
      Src: /src/cpython/Modules/_testlimitedcapi.c:41,1
    - Dst: _PyTestLimitedCAPI_Init_Complex
      Src: /src/cpython/Modules/_testlimitedcapi.c:44,1
    - Dst: _PyTestLimitedCAPI_Init_Dict
      Src: /src/cpython/Modules/_testlimitedcapi.c:47,1
    - Dst: _PyTestLimitedCAPI_Init_Eval
      Src: /src/cpython/Modules/_testlimitedcapi.c:50,1
    - Dst: _PyTestLimitedCAPI_Init_Float
      Src: /src/cpython/Modules/_testlimitedcapi.c:53,1
    - Dst: _PyTestLimitedCAPI_Init_HeaptypeRelative
      Src: /src/cpython/Modules/_testlimitedcapi.c:56,1
    - Dst: _PyTestLimitedCAPI_Init_Import
      Src: /src/cpython/Modules/_testlimitedcapi.c:59,1
    - Dst: _PyTestLimitedCAPI_Init_List
      Src: /src/cpython/Modules/_testlimitedcapi.c:62,1
    - Dst: _PyTestLimitedCAPI_Init_Long
      Src: /src/cpython/Modules/_testlimitedcapi.c:65,1
    - Dst: _PyTestLimitedCAPI_Init_Object
      Src: /src/cpython/Modules/_testlimitedcapi.c:68,1
    - Dst: _PyTestLimitedCAPI_Init_PyOS
      Src: /src/cpython/Modules/_testlimitedcapi.c:71,1
    - Dst: _PyTestLimitedCAPI_Init_Set
      Src: /src/cpython/Modules/_testlimitedcapi.c:74,1
    - Dst: _PyTestLimitedCAPI_Init_Sys
      Src: /src/cpython/Modules/_testlimitedcapi.c:77,1
    - Dst: _PyTestLimitedCAPI_Init_Tuple
      Src: /src/cpython/Modules/_testlimitedcapi.c:80,1
    - Dst: _PyTestLimitedCAPI_Init_Unicode
      Src: /src/cpython/Modules/_testlimitedcapi.c:83,1
    - Dst: _PyTestLimitedCAPI_Init_VectorcallLimited
      Src: /src/cpython/Modules/_testlimitedcapi.c:86,1
    - Dst: _PyTestLimitedCAPI_Init_Version
      Src: /src/cpython/Modules/_testlimitedcapi.c:89,1
    - Dst: _PyTestLimitedCAPI_Init_File
      Src: /src/cpython/Modules/_testlimitedcapi.c:92,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 96
    functionName: PyInit__testlimitedcapi
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi.c
    functionUses: 0
    functionsReached:
    - _PyTestLimitedCAPI_Init_Eval
    - _PyTestLimitedCAPI_Init_Abstract
    - _PyTestLimitedCAPI_Init_VectorcallLimited
    - _PyTestLimitedCAPI_Init_Unicode
    - _PyTestLimitedCAPI_Init_Tuple
    - _PyTestLimitedCAPI_Init_Bytes
    - _PyTestLimitedCAPI_Init_Codec
    - _PyTestLimitedCAPI_Init_Import
    - _PyTestLimitedCAPI_Init_Sys
    - _PyTestLimitedCAPI_Init_Complex
    - PyUnstable_Module_SetGIL
    - _PyTestLimitedCAPI_Init_ByteArray
    - _PyTestLimitedCAPI_Init_PyOS
    - PyModule_Create
    - _PyTestLimitedCAPI_Init_File
    - _PyTestLimitedCAPI_Init_HeaptypeRelative
    - _PyTestLimitedCAPI_Init_Object
    - _PyTestLimitedCAPI_Init_Dict
    - _PyTestLimitedCAPI_Init_Long
    - _PyTestLimitedCAPI_Init_Version
    - _PyTestLimitedCAPI_Init_List
    - _PyTestLimitedCAPI_Init_Set
    - _PyTestLimitedCAPI_Init_Float
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testlimitedcapi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 8
    functionName: GET_WEAKREFS_LISTPTR
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WEAKREFS_LISTPTR(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GetWeakrefCount
      Src: /src/cpython/Modules/_weakref.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: _weakref_getweakrefcount_impl
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_GetWeakrefCount
    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/cpython/Modules/_weakref.c:36,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_weakref.c:37,1
    - Dst: _PyWeakref_IS_DEAD
      Src: /src/cpython/Modules/_weakref.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: is_dead_weakref
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_IS_DEAD
    - PyErr_SetString
    - PyWeakref_Check
    linkageType: ''
    returnType: int
    signature: int is_dead_weakref(PyObject *value, void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_DelItemIf
      Src: /src/cpython/Modules/_weakref.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - dct
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: _weakref__remove_dead_weakref_impl
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - _PyDict_DelItemIf
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_weakref__remove_dead_weakref_impl(PyObject *module, PyObject
      *dct,\n                                   PyObject *key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Modules/_weakref.c:78,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_weakref.c:78,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_weakref.c:79,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_weakref.c:82,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Modules/_weakref.c:87,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Modules/_weakref.c:88,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Modules/_weakref.c:91,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_weakref.c:92,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Modules/_weakref.c:93,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_weakref.c:94,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_weakref.c:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_weakref.c:102,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Modules/_weakref.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 109
    functionName: _weakref_getweakrefs
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - UNLOCK_WEAKREFS
    - Py_DECREF
    - GET_WEAKREFS_LISTPTR
    - PyList_Append
    - LOCK_WEAKREFS
    - _Py_TryIncref
    - Py_TYPE
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _weakref_getweakrefs(PyObject *module, PyObject *object)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_NewProxy
      Src: /src/cpython/Modules/_weakref.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - object
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: _weakref_proxy_impl
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyWeakref_NewProxy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _weakref_proxy_impl(PyObject *module, PyObject *object, PyObject *callback)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_weakref.c:145,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_weakref.c:148,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_weakref.c:152,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_weakref.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: weakref_exec
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int weakref_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_weakref.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: PyInit__weakref
    functionSourceFile: /src/cpython/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__weakref(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Modules/signalmodule.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: get_handler
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: void
    signature: void get_handler(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_ptr
      Src: /src/cpython/Modules/signalmodule.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - func
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: set_handler
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ptr
    linkageType: ''
    returnType: void
    signature: void set_handler(int i, PyObject* func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/signalmodule.c:145,1
    - Dst: assert
      Src: /src/cpython/Modules/signalmodule.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/cpython/Modules/signalmodule.c
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: get_signal_state
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _signal_module_state
    signature: '_signal_module_state *

      get_signal_state(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/signalmodule.c:158,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/signalmodule.c:158,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/signalmodule.c:159,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/signalmodule.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - func
    - dfl_ign_handler
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_CheckExact(dfl_ign_handler))
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Modules/signalmodule.c
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: compare_handler
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyLong_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: int compare_handler(PyObject *func, PyObject *dfl_ign_handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/signalmodule.c:178,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/signalmodule.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - tv
    argTypes:
    - PyObject*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 182
    functionName: timeval_from_double
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsTimeval
    - _PyTime_FromSecondsObject
    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: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: double_from_timeval
    functionSourceFile: /src/cpython/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/cpython/Modules/signalmodule.c:198,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/signalmodule.c:202,1
    - Dst: double_from_timeval
      Src: /src/cpython/Modules/signalmodule.c:202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:203,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:207,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/signalmodule.c:209,1
    - Dst: double_from_timeval
      Src: /src/cpython/Modules/signalmodule.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:210,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - iv
    argTypes:
    - struct itimerval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: itimer_retval
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - double_from_timeval
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itimer_retval(struct itimerval *iv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/signalmodule.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - signalnum
    - frame
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: signal_default_int_handler_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_default_int_handler_impl(PyObject *module, int
      signalnum,\n                                PyObject *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/signalmodule.c:246,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:247,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/signalmodule.c:248,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/signalmodule.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: report_wakeup_write_error
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - PyErr_SetFromErrno
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int report_wakeup_write_error(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/signalmodule.c:261,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/signalmodule.c:265,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/signalmodule.c:266,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/signalmodule.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: report_wakeup_send_error
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - PyErr_SetExcFromWindowsErr
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int report_wakeup_send_error(void* data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:276,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:280,1
    - Dst: _PyEval_SignalReceived
      Src: /src/cpython/Modules/signalmodule.c:282,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Modules/signalmodule.c:305,1
    - Dst: send
      Src: /src/cpython/Modules/signalmodule.c:309,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/signalmodule.c:312,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/signalmodule.c:318,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/signalmodule.c:330,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/signalmodule.c:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - sig_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 346
    functionName: trip_signal
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_AddPendingCall
    - send
    - GetLastError
    - _PyEval_SignalReceived
    - _Py_atomic_store_int
    - _Py_write_noraise
    - _PyInterpreterState_Main
    linkageType: ''
    returnType: void
    signature: void trip_signal(int sig_num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trip_signal
      Src: /src/cpython/Modules/signalmodule.c:353,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:366,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/signalmodule.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sig_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 379
    functionName: signal_handler
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - trip_signal
    - PyOS_setsig
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void signal_handler(int sig_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/cpython/Modules/signalmodule.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - seconds
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: signal_alarm_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/signalmodule.c:416,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: signal_pause_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - pause
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pause_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raise
      Src: /src/cpython/Modules/signalmodule.c:445,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:450,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 460
    functionName: signal_raise_signal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - raise
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_raise_signal_impl(PyObject *module, int signalnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: Py_END_ALLOW_THREADS
    functionSourceFile: /src/cpython/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: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:484,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:502,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:507,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:508,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:509,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:515,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/signalmodule.c:519,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:521,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:523,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:526,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Modules/signalmodule.c:533,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:536,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:537,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:541,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:542,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/signalmodule.c:542,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 3
    argNames:
    - module
    - signalnum
    - handler
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 550
    functionName: signal_signal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_ThreadCanHandleSignals
    - get_signal_state
    - get_handler
    - PyErr_SetString
    - PyOS_setsig
    - PyCallable_Check
    - _PyThreadState_GET
    - Py_NewRef
    - compare_handler
    - PyErr_SetFromErrno
    - set_handler
    - _PyErr_CheckSignalsTstate
    - _PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_signal_impl(PyObject *module, int signalnum, PyObject *handler)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:574,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:578,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/signalmodule.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 585
    functionName: signal_getsignal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_handler
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getsignal_impl(PyObject *module, int signalnum)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:608,1
    - Dst: strsignal
      Src: /src/cpython/Modules/signalmodule.c:657,1
    - Dst: strstr
      Src: /src/cpython/Modules/signalmodule.c:659,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/signalmodule.c:663,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 664
    functionName: signal_strsignal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - strsignal
    - PyErr_SetString
    - strstr
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_strsignal_impl(PyObject *module, int signalnum)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSocket_t
      Src: /src/cpython/Modules/signalmodule.c:742,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:743,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/signalmodule.c:746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:747,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:752,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:753,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:754,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/signalmodule.c:764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:767,1
    - Dst: getsockopt
      Src: /src/cpython/Modules/signalmodule.c:770,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/signalmodule.c:774,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/signalmodule.c:776,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:782,1
    - Dst: _Py_fstat
      Src: /src/cpython/Modules/signalmodule.c:786,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/signalmodule.c:801,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/signalmodule.c:806,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:808,1
    - Dst: _Py_fstat
      Src: /src/cpython/Modules/signalmodule.c:813,1
    - Dst: _Py_get_blocking
      Src: /src/cpython/Modules/signalmodule.c:816,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/signalmodule.c:820,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:831,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - module
    - fdobj
    - warn_on_full_buffer
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 833
    functionName: signal_set_wakeup_fd_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_ThreadCanHandleSignals
    - PyLong_FromSocket_t
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyErr_Format
    - _Py_fstat
    - PyImport_ImportModule
    - _PyThreadState_GET
    - WSAGetLastError
    - _Py_get_blocking
    - PyLong_FromLong
    - Py_SAFE_DOWNCAST
    - _PyErr_SetString
    - PyErr_SetExcFromWindowsErr
    - getsockopt
    - PyLong_AsSocket_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_set_wakeup_fd_impl(PyObject *module, PyObject *fdobj,\n
      \                         int warn_on_full_buffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 847
    functionName: PySignal_SetWakeupFd
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PySignal_SetWakeupFd(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:873,1
    - Dst: timeval_from_double
      Src: /src/cpython/Modules/signalmodule.c:876,1
    - Dst: it_value::it_value
      Src: /src/cpython/Modules/signalmodule.c:876,1
    - Dst: timeval_from_double
      Src: /src/cpython/Modules/signalmodule.c:879,1
    - Dst: it_interval::it_interval
      Src: /src/cpython/Modules/signalmodule.c:879,1
    - Dst: setitimer
      Src: /src/cpython/Modules/signalmodule.c:885,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:886,1
    - Dst: itimer_retval
      Src: /src/cpython/Modules/signalmodule.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - which
    - seconds
    - interval
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 891
    functionName: signal_setitimer_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - get_signal_state
    - it_value::it_value
    - itimer_retval
    - setitimer
    - it_interval::it_interval
    - PyErr_SetFromErrno
    - timeval_from_double
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_setitimer_impl(PyObject *module, int which, PyObject
      *seconds,\n                      PyObject *interval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:909,1
    - Dst: getitimer
      Src: /src/cpython/Modules/signalmodule.c:912,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:913,1
    - Dst: itimer_retval
      Src: /src/cpython/Modules/signalmodule.c:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - which
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 918
    functionName: signal_getitimer_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - itimer_retval
    - getitimer
    - get_signal_state
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getitimer_impl(PyObject *module, int which)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Modules/signalmodule.c:930,1
    - Dst: sigismember
      Src: /src/cpython/Modules/signalmodule.c:935,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:945,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/signalmodule.c:948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:953,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mask
    argTypes:
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 956
    functionName: sigset_to_set
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySet_Add
    - sigismember
    - PyLong_FromLong
    - PySet_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sigset_to_set(sigset_t mask)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/signalmodule.c:978,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:981,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:986,1
    - Dst: sigset_to_set
      Src: /src/cpython/Modules/signalmodule.c:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - how
    - mask
    argTypes:
    - PyObject*
    - int
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 971
    functionDepth: 2
    functionLinenumber: 971
    functionLinenumberEnd: 990
    functionName: signal_pthread_sigmask_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - pthread_sigmask
    - PyErr_CheckSignals
    - sigset_to_set
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pthread_sigmask_impl(PyObject *module, int how, sigset_t mask)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigpending
      Src: /src/cpython/Modules/signalmodule.c:1012,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1014,1
    - Dst: sigset_to_set
      Src: /src/cpython/Modules/signalmodule.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1006
    functionDepth: 2
    functionLinenumber: 1006
    functionLinenumberEnd: 1016
    functionName: signal_sigpending_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - sigset_to_set
    - PyErr_SetFromErrno
    - sigpending
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigpending_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigwait
      Src: /src/cpython/Modules/signalmodule.c:1043,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1047,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - sigset
    argTypes:
    - PyObject*
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1051
    functionName: signal_sigwait_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - sigwait
    - PyErr_SetFromErrno
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigwait_impl(PyObject *module, sigset_t sigset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: if
    functionSourceFile: /src/cpython/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/cpython/Modules/signalmodule.c:1073,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/signalmodule.c:1076,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/signalmodule.c:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1083,1
    - Dst: sigemptyset
      Src: /src/cpython/Modules/signalmodule.c:1087,1
    - Dst: sigfillset
      Src: /src/cpython/Modules/signalmodule.c:1087,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1088,1
    - Dst: sigset_to_set
      Src: /src/cpython/Modules/signalmodule.c:1090,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1092
    functionName: signal_valid_signals_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - sigfillset
    - sigset_to_set
    - PyErr_SetFromErrno
    - PySet_New
    - sigemptyset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_valid_signals_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/signalmodule.c:1127,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1131,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1131,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1132,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1132,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1134,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1134,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1135,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1135,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1136,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1136,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1137,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1137,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1139,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1139,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1140,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/signalmodule.c:1140,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1141,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/signalmodule.c:1141,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1142,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1143,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1146,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1146,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1148,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1148,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:1150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - state
    - si
    argTypes:
    - _signal_module_state*
    - siginfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1156
    functionName: fill_siginfo
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_FromPid
    - _PyLong_FromUid
    - PyStructSequence_SET_ITEM
    - PyLong_FromLong
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fill_siginfo(_signal_module_state *state, siginfo_t *si)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigwaitinfo
      Src: /src/cpython/Modules/signalmodule.c:1183,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:1186,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1188,1
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1190,1
    - Dst: fill_siginfo
      Src: /src/cpython/Modules/signalmodule.c:1191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - module
    - sigset
    argTypes:
    - PyObject*
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1192
    functionName: signal_sigwaitinfo_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - get_signal_state
    - fill_siginfo
    - sigwaitinfo
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/signalmodule.c:1216,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:1221,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/signalmodule.c:1225,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/signalmodule.c:1230,1
    - Dst: sigtimedwait
      Src: /src/cpython/Modules/signalmodule.c:1236,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1246,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:1250,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/signalmodule.c:1253,1
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1259,1
    - Dst: fill_siginfo
      Src: /src/cpython/Modules/signalmodule.c:1260,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - module
    - sigset
    - timeout_obj
    argTypes:
    - PyObject*
    - sigset_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1261
    functionName: signal_sigtimedwait_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyDeadline_Init
    - get_signal_state
    - sigtimedwait
    - PyErr_SetString
    - fill_siginfo
    - _PyDeadline_Get
    - PyErr_CheckSignals
    - _PyTime_AsTimespec
    - PyErr_SetFromErrno
    - _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/cpython/Modules/signalmodule.c:1286,1
    - Dst: pthread_kill
      Src: /src/cpython/Modules/signalmodule.c:1290,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1293,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - module
    - thread_id
    - signalnum
    argTypes:
    - PyObject*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1302
    functionName: signal_pthread_kill_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - pthread_kill
    - PySys_Audit
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_pthread_kill_impl(PyObject *module, unsigned long
      thread_id,\n                         int signalnum)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:1329,1
    - Dst: syscall
      Src: /src/cpython/Modules/signalmodule.c:1332,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - module
    - pidfd
    - signalnum
    - siginfo
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1337
    functionName: signal_pidfd_send_signal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_SetFromErrno
    - syscall
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_pidfd_send_signal_impl(PyObject *module, int pidfd,
      int signalnum,\n                              PyObject *siginfo, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/signalmodule.c:1411,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1422,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1425,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1428,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1433,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1436,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1439,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1442,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1445,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1448,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1451,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1454,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1457,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1460,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1463,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1466,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1469,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1472,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1475,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1478,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1481,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1484,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1487,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1490,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1493,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1496,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1499,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1502,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1505,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1508,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1511,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1514,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1517,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1520,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1523,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1526,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1529,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1532,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1535,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1538,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1541,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1544,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1547,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1552,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1555,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1558,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1563,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1572
    functionName: signal_add_constants
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - ADD_INT_MACRO
    linkageType: ''
    returnType: int
    signature: int signal_add_constants(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1419
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(macro)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_getsig
      Src: /src/cpython/Modules/signalmodule.c:1580,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1593,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:1594,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/signalmodule.c:1594,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/signalmodule.c:1595,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1599,1
    - Dst: PyMapping_GetItemString
      Src: /src/cpython/Modules/signalmodule.c:1601,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:1607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1608,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1609,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - state
    - mod_dict
    argTypes:
    - signal_state_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1612
    functionName: signal_get_set_handlers
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_getsig
    - Py_XDECREF
    - Py_DECREF
    - get_handler
    - PyOS_setsig
    - Py_NewRef
    - PyMapping_GetItemString
    - set_handler
    linkageType: ''
    returnType: int
    signature: int signal_get_set_handlers(signal_state_t *state, PyObject *mod_dict)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/signalmodule.c:1618,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:1618,1
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1621,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/signalmodule.c:1629,1
    - Dst: signal_add_constants
      Src: /src/cpython/Modules/signalmodule.c:1636,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/signalmodule.c:1641,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/signalmodule.c:1642,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/signalmodule.c:1645,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/signalmodule.c:1649,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/signalmodule.c:1655,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/signalmodule.c:1661,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:1666,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/signalmodule.c:1667,1
    - Dst: signal_get_set_handlers
      Src: /src/cpython/Modules/signalmodule.c:1668,1
    - Dst: assert
      Src: /src/cpython/Modules/signalmodule.c:1673,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:1673,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1617
        line_start: 1617
        source_file: /src/cpython/Modules/signalmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1672
        line_start: 1672
        source_file: /src/cpython/Modules/signalmodule.c
    constantsTouched: []
    func_position:
      end: 1675
      start: 1615
    functionDepth: 2
    functionLinenumber: 1615
    functionLinenumberEnd: 1675
    functionName: signal_module_exec
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - signal_add_constants
    - _Py_IsMainInterpreter
    - get_signal_state
    - PyErr_Occurred
    - signal_get_set_handlers
    - _PyThreadState_GET
    - PyStructSequence_NewType
    - PyErr_NewException
    - PyModule_GetDict
    - PyDict_SetItemString
    - assert
    linkageType: ''
    returnType: int
    signature: int signal_module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1682,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/signalmodule.c:1683,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/signalmodule.c:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1679
    functionDepth: 2
    functionLinenumber: 1679
    functionLinenumberEnd: 1686
    functionName: _signal_module_traverse
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - get_signal_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _signal_module_traverse(PyObject *module, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1691,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1692,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1695
    functionName: _signal_module_clear
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - get_signal_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _signal_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _signal_module_clear
      Src: /src/cpython/Modules/signalmodule.c:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1701
    functionName: _signal_module_free
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _signal_module_clear
    linkageType: ''
    returnType: void
    signature: void _signal_module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/signalmodule.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1731
    functionName: PyInit__signal
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__signal(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1741,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1742,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:1743,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1746,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1747,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1749,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/signalmodule.c:1751,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/signalmodule.c:1756,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1761,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1763
    functionName: _PySignal_Fini
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_atomic_store_int_relaxed
    - get_handler
    - PyOS_setsig
    - compare_handler
    - set_handler
    - CloseHandle
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PySignal_Fini(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:1770,1
    - Dst: _Py_eval_breaker_bit_is_set
      Src: /src/cpython/Modules/signalmodule.c:1778,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Modules/signalmodule.c:1779,1
    - Dst: _Py_RunGC
      Src: /src/cpython/Modules/signalmodule.c:1780,1
    - Dst: _PyRunRemoteDebugger
      Src: /src/cpython/Modules/signalmodule.c:1784,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:1787,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Modules/signalmodule.c:1791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1767
    functionDepth: 1
    functionLinenumber: 1767
    functionLinenumberEnd: 1792
    functionName: PyErr_CheckSignals
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 58
    functionsReached:
    - _Py_ThreadCanHandleSignals
    - _Py_eval_breaker_bit_is_set
    - _Py_unset_eval_breaker_bit
    - _PyThreadState_GET
    - _PyRunRemoteDebugger
    - _Py_RunGC
    - _PyErr_CheckSignalsTstate
    linkageType: ''
    returnType: int
    signature: int PyErr_CheckSignals(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CHECK_EMSCRIPTEN_SIGNALS
      Src: /src/cpython/Modules/signalmodule.c:1799,1
    - Dst: _Py_atomic_load_int
      Src: /src/cpython/Modules/signalmodule.c:1800,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:1818,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Modules/signalmodule.c:1820,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1823,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1826,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1834,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1836,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1837,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/signalmodule.c:1846,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/signalmodule.c:1849,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/signalmodule.c:1855,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Modules/signalmodule.c:1858,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/signalmodule.c:1860,1
    - Dst: _PyObject_Call
      Src: /src/cpython/Modules/signalmodule.c:1865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1866,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:1873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1877,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1796
    functionDepth: 2
    functionLinenumber: 1796
    functionLinenumberEnd: 1881
    functionName: _PyErr_CheckSignalsTstate
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 2
    functionsReached:
    - _PyObject_Call
    - Py_BuildValue
    - Py_DECREF
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_load_int
    - _Py_atomic_store_int_relaxed
    - get_handler
    - _PyThreadState_GetFrame
    - _Py_CHECK_EMSCRIPTEN_SIGNALS
    - PyErr_FormatUnraisable
    - _Py_atomic_store_int
    - compare_handler
    - PyErr_Format
    - _PyFrame_GetFrameObject
    linkageType: ''
    returnType: int
    signature: int _PyErr_CheckSignalsTstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:1888,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Modules/signalmodule.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1885
    functionDepth: 3
    functionLinenumber: 1885
    functionLinenumberEnd: 1890
    functionName: _PyErr_CheckSignals
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_CheckSignalsTstate
    linkageType: ''
    returnType: int
    signature: int _PyErr_CheckSignals(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1905,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1906,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1907,1
    - Dst: trip_signal
      Src: /src/cpython/Modules/signalmodule.c:1908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1897
    functionDepth: 2
    functionLinenumber: 1897
    functionLinenumberEnd: 1911
    functionName: PyErr_SetInterruptEx
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 1
    functionsReached:
    - get_handler
    - compare_handler
    - trip_signal
    linkageType: ''
    returnType: int
    signature: int PyErr_SetInterruptEx(int signum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetInterruptEx
      Src: /src/cpython/Modules/signalmodule.c:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1913
    functionDepth: 3
    functionLinenumber: 1913
    functionLinenumberEnd: 1917
    functionName: PyErr_SetInterrupt
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetInterruptEx
    linkageType: ''
    returnType: void
    signature: void PyErr_SetInterrupt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1923,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1926,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1929,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/signalmodule.c:1933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1940
    functionName: signal_install_handlers
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - Py_DECREF
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int signal_install_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1955,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1958,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1951
    functionDepth: 1
    functionLinenumber: 1951
    functionLinenumberEnd: 1963
    functionName: _Py_RestoreSignals
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 1
    functionsReached:
    - PyOS_setsig
    linkageType: ''
    returnType: void
    signature: void _Py_RestoreSignals(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/signalmodule.c:1971,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/signalmodule.c:1976,1
    - Dst: CreateEvent
      Src: /src/cpython/Modules/signalmodule.c:1983,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/signalmodule.c:1985,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1991,1
    - Dst: signal_install_handlers
      Src: /src/cpython/Modules/signalmodule.c:1995,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - install_signal_handlers
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1966
    functionDepth: 2
    functionLinenumber: 1966
    functionLinenumberEnd: 2001
    functionName: _PySignal_Init
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - CreateEvent
    - _Py_atomic_store_int_relaxed
    - signal_install_handlers
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int _PySignal_Init(int install_signal_handlers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Modules/signalmodule.c:2008,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:2009,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:2013,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:2017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2019
    functionName: _PyOS_InterruptOccurred
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_ThreadCanHandleSignals
    - _Py_EnsureTstateNotNULL
    - _Py_atomic_store_int_relaxed
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: int
    signature: int _PyOS_InterruptOccurred(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:2026,1
    - Dst: _PyOS_InterruptOccurred
      Src: /src/cpython/Modules/signalmodule.c:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2023
    functionDepth: 2
    functionLinenumber: 2023
    functionLinenumberEnd: 2028
    functionName: PyOS_InterruptOccurred
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _PyOS_InterruptOccurred
    linkageType: ''
    returnType: int
    signature: int PyOS_InterruptOccurred(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int
      Src: /src/cpython/Modules/signalmodule.c:2035,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:2039,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:2041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2043
    functionName: _clear_pending_signals
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int
    - _Py_atomic_store_int
    - _Py_atomic_store_int_relaxed
    linkageType: ''
    returnType: void
    signature: void _clear_pending_signals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _clear_pending_signals
      Src: /src/cpython/Modules/signalmodule.c:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2052
    functionName: _PySignal_AfterFork
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 1
    functionsReached:
    - _clear_pending_signals
    linkageType: ''
    returnType: void
    signature: void _PySignal_AfterFork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/signalmodule.c:2059,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2061
    functionName: _PyOS_IsMainThread
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 3
    functionsReached:
    - _Py_ThreadCanHandleSignals
    - _PyInterpreterState_GET
    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: 2073
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2073
    functionName: _PyOS_SigintEvent
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *_PyOS_SigintEvent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/blake2module.c:86,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: blake2_get_state
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: Blake2State
    signature: 'Blake2State *

      blake2_get_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/blake2module.c:95,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: blake2_get_state_from_type
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: Blake2State
    signature: 'Blake2State *

      blake2_get_state_from_type(PyTypeObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2_get_state
      Src: /src/cpython/Modules/blake2module.c:108,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/blake2module.c:109,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/blake2module.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: _blake2_traverse
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2_get_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _blake2_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2_get_state
      Src: /src/cpython/Modules/blake2module.c:117,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/blake2module.c:118,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/blake2module.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: _blake2_clear
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _blake2_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_clear
      Src: /src/cpython/Modules/blake2module.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: _blake2_free
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - _blake2_clear
    linkageType: ''
    returnType: void
    signature: void _blake2_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid_count
      Src: /src/cpython/Modules/blake2module.c:137,1
    - Dst: __cpuid_count
      Src: /src/cpython/Modules/blake2module.c:138,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/blake2module.c:141,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/blake2module.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - Blake2State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 203
    functionName: blake2module_init_cpu_features
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - __cpuidex
    - __cpuid_count
    linkageType: ''
    returnType: void
    signature: void blake2module_init_cpu_features(Blake2State *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: blake2_get_state
      Src: /src/cpython/Modules/blake2module.c:208,1
    - Dst: blake2module_init_cpu_features
      Src: /src/cpython/Modules/blake2module.c:209,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:231,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/blake2module.c:233,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/blake2module.c:239,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:244,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:245,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:246,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:247,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:249,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:250,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:251,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:252,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/blake2module.c:255,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/blake2module.c:261,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:266,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:267,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:268,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/blake2module.c:269,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:271,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:272,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:273,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 279
    functionName: blake2_exec
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - blake2module_init_cpu_features
    - ADD_INT
    - PyType_FromModuleAndSpec
    - ADD_INT_CONST
    - blake2_get_state
    linkageType: ''
    returnType: int
    signature: int blake2_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DICT
    - ','
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(DICT, NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: ADD_INT_CONST
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_CONST(NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/blake2module.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: PyInit__blake2
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__blake2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - impl
    argTypes:
    - blake2_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: is_blake2b
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_blake2b(blake2_impl impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - impl
    argTypes:
    - blake2_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: is_blake2s
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_blake2s(blake2_impl impl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blake2_get_state_from_type
      Src: /src/cpython/Modules/blake2module.c:336,1
    - Dst: strcmp
      Src: /src/cpython/Modules/blake2module.c:338,1
    - Dst: strcmp
      Src: /src/cpython/Modules/blake2module.c:345,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 353
    functionName: type_to_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2_get_state_from_type
    - strcmp
    - Py_UNREACHABLE
    linkageType: ''
    returnType: blake2_impl
    signature: blake2_impl type_to_impl(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 366
    functionName: union
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASHLIB_OBJECT_HEAD
    signature: HASHLIB_OBJECT_HEAD union
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: _Blake2Object_CAST
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Blake2Object_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/blake2module.c:388,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/blake2module.c:392,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/blake2module.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: new_Blake2Object
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: Blake2Object
    signature: 'Blake2Object *

      new_Blake2Object(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - UPDATE_FUNC
    - ','
    - STATE
    - ','
    - BUF
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: HACL_UPDATE_LOOP
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HACL_UPDATE_LOOP(UPDATE_FUNC, STATE, BUF, LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - UPDATE_FUNC
    - ','
    - STATE
    - ','
    - BUF
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: HACL_UPDATE
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HACL_UPDATE(UPDATE_FUNC, STATE, BUF, LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: BLAKE2_IMPLNAME
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_IMPLNAME(SELF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SELF
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: GET_BLAKE2_CONST
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BLAKE2_CONST(SELF, NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: MAX_OUT_BYTES
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_OUT_BYTES(SELF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: MAX_SALT_LENGTH
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_SALT_LENGTH(SELF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: MAX_KEY_BYTES
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_KEY_BYTES(SELF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: MAX_PERSONAL_BYTES
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_PERSONAL_BYTES(SELF)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MAX_OUT_BYTES
      Src: /src/cpython/Modules/blake2module.c:478,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/blake2module.c:479,1
    - Dst: BLAKE2_IMPLNAME
      Src: /src/cpython/Modules/blake2module.c:482,1
    - Dst: MAX_OUT_BYTES
      Src: /src/cpython/Modules/blake2module.c:482,1
    - Dst: CHECK_LENGTH
      Src: /src/cpython/Modules/blake2module.c:498,1
    - Dst: MAX_KEY_BYTES
      Src: /src/cpython/Modules/blake2module.c:498,1
    - Dst: CHECK_LENGTH
      Src: /src/cpython/Modules/blake2module.c:502,1
    - Dst: MAX_SALT_LENGTH
      Src: /src/cpython/Modules/blake2module.c:502,1
    - Dst: CHECK_LENGTH
      Src: /src/cpython/Modules/blake2module.c:506,1
    - Dst: MAX_PERSONAL_BYTES
      Src: /src/cpython/Modules/blake2module.c:506,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:519,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:520,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:521,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:522,1
    - Dst: MAX_OUT_BYTES
      Src: /src/cpython/Modules/blake2module.c:522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/blake2module.c:526,1
    - Dst: is_blake2s
      Src: /src/cpython/Modules/blake2module.c:529,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/blake2module.c:531,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 11
    argNames:
    - self
    - digest_size
    - key
    - salt
    - person
    - fanout
    - depth
    - leaf_size
    - node_offset
    - node_depth
    - inner_size
    argTypes:
    - Blake2Object*
    - int
    - Py_buffer*
    - Py_buffer*
    - Py_buffer*
    - int
    - int
    - unsigned long
    - unsigned long long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 537
    functionName: py_blake2_validate_params
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - MAX_PERSONAL_BYTES
    - MAX_SALT_LENGTH
    - MAX_KEY_BYTES
    - CHECK_LENGTH
    - PyErr_SetString
    - CHECK_TREE
    - is_blake2s
    - PyErr_Format
    - MAX_OUT_BYTES
    - BLAKE2_IMPLNAME
    linkageType: ''
    returnType: int
    signature: "int py_blake2_validate_params(Blake2Object *self,\n                          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)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - ','
    - MAX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 496
    functionName: CHECK_LENGTH
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_LENGTH(NAME, VALUE, MAX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - NAME
    - ','
    - VALUE
    - ','
    - MIN
    - ','
    - MAX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 518
    functionName: CHECK_TREE
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TREE(NAME, VALUE, MIN, MAX)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: new_Blake2Object
      Src: /src/cpython/Modules/blake2module.c:549,1
    - Dst: type_to_impl
      Src: /src/cpython/Modules/blake2module.c:554,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:575,1
    - Dst: py_blake2_validate_params
      Src: /src/cpython/Modules/blake2module.c:580,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:594,1
    - Dst: memcpy
      Src: /src/cpython/Modules/blake2module.c:595,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:598,1
    - Dst: memcpy
      Src: /src/cpython/Modules/blake2module.c:599,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:628,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:633,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:637,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:640,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:643,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/blake2module.c:650,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/blake2module.c:653,1
    - Dst: blake2_update_unlocked
      Src: /src/cpython/Modules/blake2module.c:655,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/blake2module.c:657,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/blake2module.c:662,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 14
    argNames:
    - type
    - data
    - digest_size
    - key
    - salt
    - person
    - fanout
    - depth
    - leaf_size
    - node_offset
    - node_depth
    - inner_size
    - last_node
    - usedforsecurity
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    - Py_buffer*
    - Py_buffer*
    - Py_buffer*
    - int
    - int
    - unsigned long
    - unsigned long long
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (salt->buf != NULL)
      pos:
        line_end: 593
        line_start: 593
        source_file: /src/cpython/Modules/blake2module.c
    - condition: (person->buf != NULL)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 664
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 664
    functionName: py_blake2_new
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - new_Blake2Object
    - Py_XDECREF
    - Py_UNREACHABLE
    - type_to_impl
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - blake2_update_unlocked
    - BLAKE2_MALLOC
    - GET_BUFFER_VIEW_OR_ERROR
    - PyBuffer_Release
    - memcpy
    - py_blake2_validate_params
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_blake2_new(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,
      int usedforsecurity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - STATE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 624
    functionName: BLAKE2_MALLOC
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_MALLOC(TYPE, STATE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/blake2module.c:698,1
    - Dst: py_blake2_new
      Src: /src/cpython/Modules/blake2module.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 15
    argNames:
    - type
    - data_obj
    - digest_size
    - key
    - salt
    - person
    - fanout
    - depth
    - leaf_size
    - node_offset
    - node_depth
    - inner_size
    - last_node
    - usedforsecurity
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    - Py_buffer*
    - Py_buffer*
    - Py_buffer*
    - int
    - int
    - unsigned long
    - unsigned long long
    - int
    - int
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 688
    functionDepth: 4
    functionLinenumber: 688
    functionLinenumberEnd: 704
    functionName: py_blake2b_new_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - _Py_hashlib_data_argument
    - py_blake2_new
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_blake2b_new_impl(PyTypeObject *type, PyObject *data_obj,
      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, int usedforsecurity,\n                    PyObject
      *string)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashlib_data_argument
      Src: /src/cpython/Modules/blake2module.c:738,1
    - Dst: py_blake2_new
      Src: /src/cpython/Modules/blake2module.c:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 15
    argNames:
    - type
    - data_obj
    - digest_size
    - key
    - salt
    - person
    - fanout
    - depth
    - leaf_size
    - node_offset
    - node_depth
    - inner_size
    - last_node
    - usedforsecurity
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    - Py_buffer*
    - Py_buffer*
    - Py_buffer*
    - int
    - int
    - unsigned long
    - unsigned long long
    - int
    - int
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 744
    functionName: py_blake2s_new_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - _Py_hashlib_data_argument
    - py_blake2_new
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_blake2s_new_impl(PyTypeObject *type, PyObject *data_obj,
      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, int usedforsecurity,\n                    PyObject
      *string)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:749,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:761,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:766,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:770,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:773,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:776,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/blake2module.c:783,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - cpy
    argTypes:
    - Blake2Object*
    - Blake2Object*
    assertStmts:
    - condition: (cpy != NULL)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 785
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 785
    functionName: blake2_blake2b_copy_unlocked
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - BLAKE2_COPY
    - Py_UNREACHABLE
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int blake2_blake2b_copy_unlocked(Blake2Object *self, Blake2Object *cpy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - STATE_ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 757
    functionName: BLAKE2_COPY
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_COPY(TYPE, STATE_ATTR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_Blake2Object
      Src: /src/cpython/Modules/blake2module.c:802,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/blake2module.c:806,1
    - Dst: blake2_blake2b_copy_unlocked
      Src: /src/cpython/Modules/blake2module.c:807,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/blake2module.c:808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/blake2module.c:810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - Blake2Object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 814
    functionName: _blake2_blake2b_copy_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - new_Blake2Object
    - Py_DECREF
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - blake2_blake2b_copy_unlocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_copy_impl(Blake2Object *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/blake2module.c:830,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/blake2module.c:831,1
    - Dst: blake2_update_unlocked
      Src: /src/cpython/Modules/blake2module.c:833,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/blake2module.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - Blake2Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 837
    functionName: _blake2_blake2b_update_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - GET_BUFFER_VIEW_OR_ERROUT
    - blake2_update_unlocked
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_update_impl(Blake2Object *self, PyObject *data)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_Simd256_digest
      Src: /src/cpython/Modules/blake2module.c:845,1
    - Dst: Hacl_Hash_Blake2s_Simd128_digest
      Src: /src/cpython/Modules/blake2module.c:850,1
    - Dst: Hacl_Hash_Blake2b_digest
      Src: /src/cpython/Modules/blake2module.c:854,1
    - Dst: Hacl_Hash_Blake2s_digest
      Src: /src/cpython/Modules/blake2module.c:856,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - digest
    argTypes:
    - Blake2Object*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 860
    functionName: blake2_blake2b_compute_digest
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_digest
    - Hacl_Hash_Blake2b_Simd256_digest
    - Hacl_Hash_Blake2s_Simd128_digest
    - Hacl_Hash_Blake2s_digest
    - Py_UNREACHABLE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t blake2_blake2b_compute_digest(Blake2Object *self, uint8_t *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/blake2module.c:873,1
    - Dst: blake2_blake2b_compute_digest
      Src: /src/cpython/Modules/blake2module.c:874,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/blake2module.c:875,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/blake2module.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - Blake2Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: _blake2_blake2b_digest_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2_blake2b_compute_digest
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_digest_impl(Blake2Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/blake2module.c:890,1
    - Dst: blake2_blake2b_compute_digest
      Src: /src/cpython/Modules/blake2module.c:891,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/blake2module.c:892,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/blake2module.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - Blake2Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 894
    functionName: _blake2_blake2b_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2_blake2b_compute_digest
    - _Py_strhex
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_hexdigest_impl(Blake2Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Blake2Object_CAST
      Src: /src/cpython/Modules/blake2module.c:909,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/blake2module.c:910,1
    - Dst: BLAKE2_IMPLNAME
      Src: /src/cpython/Modules/blake2module.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 911
    functionName: py_blake2b_get_name
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - _Blake2Object_CAST
    - PyUnicode_FromString
    - BLAKE2_IMPLNAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_get_name(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Blake2Object_CAST
      Src: /src/cpython/Modules/blake2module.c:917,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/blake2module.c:918,1
    - Dst: GET_BLAKE2_CONST
      Src: /src/cpython/Modules/blake2module.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 919
    functionName: py_blake2b_get_block_size
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - GET_BLAKE2_CONST
    - _Blake2Object_CAST
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_get_block_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_Simd256_info
      Src: /src/cpython/Modules/blake2module.c:928,1
    - Dst: Hacl_Hash_Blake2s_Simd128_info
      Src: /src/cpython/Modules/blake2module.c:932,1
    - Dst: Hacl_Hash_Blake2b_info
      Src: /src/cpython/Modules/blake2module.c:935,1
    - Dst: Hacl_Hash_Blake2s_info
      Src: /src/cpython/Modules/blake2module.c:937,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - Blake2Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 941
    functionName: hacl_get_blake2_info
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_info
    - Hacl_Hash_Blake2s_Simd128_info
    - Hacl_Hash_Blake2b_Simd256_info
    - Hacl_Hash_Blake2b_info
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index hacl_get_blake2_info(Blake2Object *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Blake2Object_CAST
      Src: /src/cpython/Modules/blake2module.c:947,1
    - Dst: hacl_get_blake2_info
      Src: /src/cpython/Modules/blake2module.c:948,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/blake2module.c:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 950
    functionName: py_blake2b_get_digest_size
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - _Blake2Object_CAST
    - hacl_get_blake2_info
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_get_digest_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2_FREE
      Src: /src/cpython/Modules/blake2module.c:980,1
    - Dst: BLAKE2_FREE
      Src: /src/cpython/Modules/blake2module.c:985,1
    - Dst: BLAKE2_FREE
      Src: /src/cpython/Modules/blake2module.c:989,1
    - Dst: BLAKE2_FREE
      Src: /src/cpython/Modules/blake2module.c:992,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 999
    functionName: py_blake2_clear
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - BLAKE2_FREE
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int py_blake2_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - STATE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 976
    functionName: BLAKE2_FREE
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_FREE(TYPE, STATE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/blake2module.c:1004,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/blake2module.c:1005,1
    - Dst: py_blake2_clear
      Src: /src/cpython/Modules/blake2module.c:1006,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/blake2module.c:1007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/blake2module.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1009
    functionName: py_blake2_dealloc
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - py_blake2_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void py_blake2_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/blake2module.c:1014,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/blake2module.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1016
    functionName: py_blake2_traverse
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int py_blake2_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log1p
      Src: /src/cpython/Modules/_math.h:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 23
    functionName: _Py_log1p
    functionSourceFile: /src/cpython/Modules/_math.h
    functionUses: 0
    functionsReached:
    - log1p
    linkageType: ''
    returnType: double
    signature: double _Py_log1p(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/cpython/Modules/_ssl/misc.c:13,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/misc.c:15,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl/misc.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - bio
    argTypes:
    - _sslmodulestate*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 19
    functionName: _PySSL_BytesFromBIO
    functionSourceFile: /src/cpython/Modules/_ssl/misc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - BIO_get_mem_data
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSL_BytesFromBIO(_sslmodulestate *state, BIO *bio)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/cpython/Modules/_ssl/misc.c:28,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/misc.c:30,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_ssl/misc.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - state
    - bio
    - error
    argTypes:
    - _sslmodulestate*
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: _PySSL_UnicodeFromBIO
    functionSourceFile: /src/cpython/Modules/_ssl/misc.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - PyErr_SetString
    - BIO_get_mem_data
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSL_UnicodeFromBIO(_sslmodulestate *state, BIO *bio, const char *error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ssl/debughelpers.c:20,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl/debughelpers.c:22,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/debughelpers.c:23,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl/debughelpers.c:23,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl/debughelpers.c:23,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl/debughelpers.c:25,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:31,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:33,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:35,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/debughelpers.c:36,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_ssl/debughelpers.c:70,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl/debughelpers.c:77,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl/debughelpers.c:79,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl/debughelpers.c:81,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl/debughelpers.c:83,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    assertStmts:
    - condition: (Py_IS_TYPE(ssl_obj, get_state_sock(ssl_obj)->PySSLSocket_Type))
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/cpython/Modules/_ssl/debughelpers.c
    - condition: (ssl_socket != NULL)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Modules/_ssl/debughelpers.c
    constantsTouched: []
    func_position:
      end: 84
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 84
    functionName: _PySSL_msg_callback
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - PyGILState_Ensure
    - Py_XDECREF
    - PyObject_CallFunction
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyGILState_Release
    - PyWeakref_GetRef
    - Py_NewRef
    - Py_IS_TYPE
    - get_state_sock
    - assert
    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: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl/debughelpers.c:90,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: _PySSLContext_get_msg_callback
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySSLContext_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSLContext_get_msg_callback(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl/debughelpers.c:102,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl/debughelpers.c:103,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:105,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl/debughelpers.c:108,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:109,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/debughelpers.c:110,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:114,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - op
    - arg
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: _PySSLContext_set_msg_callback
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyCallable_Check
    - PySSLContext_CAST
    - Py_NewRef
    - SSL_CTX_set_msg_callback
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int _PySSLContext_set_msg_callback(PyObject *op, PyObject *arg,\n
      \                              void *Py_UNUSED(closure))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ssl/debughelpers.c:127,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl/debughelpers.c:129,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/debughelpers.c:130,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl/debughelpers.c:130,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl/debughelpers.c:130,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl/debughelpers.c:131,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/debughelpers.c:132,1
    - Dst: BIO_printf
      Src: /src/cpython/Modules/_ssl/debughelpers.c:145,1
    - Dst: BIO_flush
      Src: /src/cpython/Modules/_ssl/debughelpers.c:147,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_ssl/debughelpers.c:148,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_ssl/debughelpers.c:154,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl/debughelpers.c:156,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl/debughelpers.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts:
    - condition: (Py_IS_TYPE(ssl_obj, get_state_sock(ssl_obj)->PySSLSocket_Type))
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Modules/_ssl/debughelpers.c
    - condition: (lock != NULL)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Modules/_ssl/debughelpers.c
    constantsTouched: []
    func_position:
      end: 159
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 159
    functionName: _PySSL_keylog_callback
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - PyGILState_Ensure
    - BIO_printf
    - PyErr_GetRaisedException
    - PyGILState_Release
    - BIO_flush
    - PyErr_SetFromErrnoWithFilenameObject
    - PyThread_release_lock
    - Py_IS_TYPE
    - get_state_sock
    - assert
    linkageType: ''
    returnType: void
    signature: void _PySSL_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl/debughelpers.c:164,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: _PySSLContext_get_keylog_filename
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySSLContext_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSLContext_get_keylog_filename(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySSLContext_CAST
      Src: /src/cpython/Modules/_ssl/debughelpers.c:176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/debughelpers.c:180,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:186,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl/debughelpers.c:187,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_ssl/debughelpers.c:203,1
    - Dst: BIO_new_fp
      Src: /src/cpython/Modules/_ssl/debughelpers.c:207,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/debughelpers.c:209,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl/debughelpers.c:209,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:213,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl/debughelpers.c:216,1
    - Dst: BIO_tell
      Src: /src/cpython/Modules/_ssl/debughelpers.c:217,1
    - Dst: BIO_puts
      Src: /src/cpython/Modules/_ssl/debughelpers.c:218,1
    - Dst: BIO_flush
      Src: /src/cpython/Modules/_ssl/debughelpers.c:220,1
    - Dst: PySSL_END_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl/debughelpers.c:222,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - op
    - arg
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 225
    functionName: _PySSLContext_set_keylog_filename
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_keylog_callback
    - get_state_ctx
    - BIO_tell
    - BIO_puts
    - PyErr_SetString
    - PySSL_END_ALLOW_THREADS
    - PySSLContext_CAST
    - Py_NewRef
    - Py_fopen
    - PySSL_BEGIN_ALLOW_THREADS
    - BIO_new_fp
    - Py_CLEAR
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: "int _PySSLContext_set_keylog_filename(PyObject *op, PyObject *arg,\n
      \                                 void *Py_UNUSED(closure))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/cert.c:22,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/cert.c:23,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ssl/cert.c:25,1
    - Dst: X509_up_ref
      Src: /src/cpython/Modules/_ssl/cert.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - cert
    - upref
    argTypes:
    - PyTypeObject*
    - X509*
    - int
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/cpython/Modules/_ssl/cert.c
    - condition: (cert != NULL)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/cpython/Modules/_ssl/cert.c
    constantsTouched: []
    func_position:
      end: 36
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 36
    functionName: newCertificate
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - assert
    - X509_up_ref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newCertificate(PyTypeObject *type, X509 *cert, int upref)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newCertificate
      Src: /src/cpython/Modules/_ssl/cert.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - cert
    - upref
    argTypes:
    - _sslmodulestate*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: _PySSL_CertificateFromX509
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 1
    functionsReached:
    - newCertificate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSL_CertificateFromX509(_sslmodulestate *state, X509 *cert, int upref)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/cpython/Modules/_ssl/cert.c:50,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl/cert.c:51,1
    - Dst: sk_X509_value
      Src: /src/cpython/Modules/_ssl/cert.c:56,1
    - Dst: _PySSL_CertificateFromX509
      Src: /src/cpython/Modules/_ssl/cert.c:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl/cert.c:59,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/_ssl/cert.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - state
    - stack
    - upref
    argTypes:
    - _sslmodulestate*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: _PySSL_CertificateFromX509Stack
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - _PySSL_CertificateFromX509
    - Py_DECREF
    - PyList_SetItem
    - sk_X509_value
    - sk_X509_num
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSL_CertificateFromX509Stack(_sslmodulestate *state, STACK_OF(X509) *stack,
      int upref)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_state_cert
      Src: /src/cpython/Modules/_ssl/cert.c:80,1
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl/cert.c:82,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl/cert.c:82,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/cert.c:84,1
    - Dst: PEM_write_bio_X509
      Src: /src/cpython/Modules/_ssl/cert.c:90,1
    - Dst: PEM_write_bio_X509_AUX
      Src: /src/cpython/Modules/_ssl/cert.c:93,1
    - Dst: i2d_X509_bio
      Src: /src/cpython/Modules/_ssl/cert.c:96,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/cert.c:99,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl/cert.c:100,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl/cert.c:104,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl/cert.c:105,1
    - Dst: _PySSL_BytesFromBIO
      Src: /src/cpython/Modules/_ssl/cert.c:109,1
    - Dst: _PySSL_UnicodeFromBIO
      Src: /src/cpython/Modules/_ssl/cert.c:111,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl/cert.c:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PySSLCertificate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 115
    functionName: _ssl_Certificate_public_bytes_impl
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - _PySSL_BytesFromBIO
    - i2d_X509_bio
    - PyErr_SetString
    - get_state_cert
    - BIO_new
    - PEM_write_bio_X509_AUX
    - BIO_s_mem
    - _setSSLError
    - PEM_write_bio_X509
    - _PySSL_UnicodeFromBIO
    - BIO_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_Certificate_public_bytes_impl(PySSLCertificate *self, int format)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decode_certificate
      Src: /src/cpython/Modules/_ssl/cert.c:127,1
    - Dst: get_state_cert
      Src: /src/cpython/Modules/_ssl/cert.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 8
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: _ssl_Certificate_get_info_impl
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - _decode_certificate
    - get_state_cert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_Certificate_get_info_impl(PySSLCertificate *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl/cert.c:136,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl/cert.c:136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/cert.c:138,1
    - Dst: X509_NAME_print_ex
      Src: /src/cpython/Modules/_ssl/cert.c:142,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl/cert.c:143,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl/cert.c:144,1
    - Dst: _PySSL_UnicodeFromBIO
      Src: /src/cpython/Modules/_ssl/cert.c:147,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl/cert.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - state
    - name
    - indent
    - flags
    argTypes:
    - _sslmodulestate*
    - X509_NAME*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: _x509name_print
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - BIO_new
    - _setSSLError
    - BIO_s_mem
    - X509_NAME_print_ex
    - _PySSL_UnicodeFromBIO
    - BIO_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned
      long flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: PySSLCertificate_CAST
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLCertificate_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySSLCertificate_CAST
      Src: /src/cpython/Modules/_ssl/cert.c:162,1
    - Dst: _x509name_print
      Src: /src/cpython/Modules/_ssl/cert.c:165,1
    - Dst: get_state_cert
      Src: /src/cpython/Modules/_ssl/cert.c:166,1
    - Dst: X509_get_subject_name
      Src: /src/cpython/Modules/_ssl/cert.c:167,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl/cert.c:173,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl/cert.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: certificate_repr
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _x509name_print
    - PyUnicode_FromFormat
    - get_state_cert
    - X509_get_subject_name
    - PySSLCertificate_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      certificate_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySSLCertificate_CAST
      Src: /src/cpython/Modules/_ssl/cert.c:184,1
    - Dst: X509_subject_name_hash
      Src: /src/cpython/Modules/_ssl/cert.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: certificate_hash
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - X509_subject_name_hash
    - PySSLCertificate_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t certificate_hash(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySSLCertificate_CAST
      Src: /src/cpython/Modules/_ssl/cert.c:201,1
    - Dst: get_state_cert
      Src: /src/cpython/Modules/_ssl/cert.c:202,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:204,1
    - Dst: X509_cmp
      Src: /src/cpython/Modules/_ssl/cert.c:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - lhs
    - rhs
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 217
    functionName: certificate_richcompare
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - get_state_cert
    - Py_TYPE
    - PySSLCertificate_CAST
    - X509_cmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      certificate_richcompare(PyObject *lhs, PyObject *rhs, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLCertificate_CAST
      Src: /src/cpython/Modules/_ssl/cert.c:222,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:223,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl/cert.c:224,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl/cert.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: certificate_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PySSLCertificate_CAST
    - X509_free
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void certificate_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_ssl/clinic/cert.c.h:35,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ssl/clinic/cert.c.h:37,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ssl/clinic/cert.c.h:54,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ssl/clinic/cert.c.h:57,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_ssl/clinic/cert.c.h:65,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl/clinic/cert.c.h:66,1
    - Dst: _ssl_Certificate_public_bytes_impl
      Src: /src/cpython/Modules/_ssl/clinic/cert.c.h:70,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 74
    functionName: _ssl_Certificate_public_bytes
    functionSourceFile: /src/cpython/Modules/_ssl/clinic/cert.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _ssl_Certificate_public_bytes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_Certificate_public_bytes(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl_Certificate_get_info_impl
      Src: /src/cpython/Modules/_ssl/clinic/cert.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: 9
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: _ssl_Certificate_get_info
    functionSourceFile: /src/cpython/Modules/_ssl/clinic/cert.c.h
    functionUses: 0
    functionsReached:
    - _ssl_Certificate_get_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_Certificate_get_info(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_io/_iomodule.h:172,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/_iomodule.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/cpython/Modules/_io/_iomodule.h
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: get_io_state
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.h
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _PyIO_State
    signature: '_PyIO_State *

      get_io_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_io/_iomodule.h:180,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/_iomodule.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Modules/_io/_iomodule.h
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: get_io_state_by_cls
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.h
    functionUses: 0
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: _PyIO_State
    signature: '_PyIO_State *

      get_io_state_by_cls(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_io/_iomodule.h:188,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/_iomodule.h:189,1
    - Dst: get_io_state
      Src: /src/cpython/Modules/_io/_iomodule.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/cpython/Modules/_io/_iomodule.h
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: find_io_state_by_def
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.h
    functionUses: 0
    functionsReached:
    - assert
    - get_io_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: _PyIO_State
    signature: '_PyIO_State *

      find_io_state_by_def(PyTypeObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleMode
      Src: /src/cpython/Modules/_io/winconsoleio.c:58,1
    - Dst: GetNumberOfConsoleInputEvents
      Src: /src/cpython/Modules/_io/winconsoleio.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: _get_console_type
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - GetNumberOfConsoleInputEvents
    - GetConsoleMode
    linkageType: ''
    returnType: char
    signature: char _get_console_type(HANDLE handle)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:68,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/winconsoleio.c:69,1
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Modules/_io/winconsoleio.c:71,1
    - Dst: _get_console_type
      Src: /src/cpython/Modules/_io/winconsoleio.c:74,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/_io/winconsoleio.c:80,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/winconsoleio.c:81,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_io/winconsoleio.c:84,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:85,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/winconsoleio.c:87,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/_io/winconsoleio.c:92,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/_io/winconsoleio.c:94,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/_io/winconsoleio.c:96,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:100,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/_io/winconsoleio.c:107,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_io/winconsoleio.c:109,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/_io/winconsoleio.c:111,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:115,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/_io/winconsoleio.c:124,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/_io/winconsoleio.c:126,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/_io/winconsoleio.c:128,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:134,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - path_or_fd
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 136
    functionName: _PyIO_get_console_type
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - _wcsicmp
    - _Py_get_osfhandle_noraise
    - PyUnicode_FSDecoder
    - PyLong_AsLong
    - PyMem_New
    - _get_console_type
    - PyErr_Clear
    - Py_CLEAR
    - PyMem_Free
    - GetFullPathNameW
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: char
    signature: char _PyIO_get_console_type(PyObject *path_or_fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 161
    functionName: _find_last_utf8_boundary
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD _find_last_utf8_boundary(const unsigned char *buf, DWORD len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _find_last_utf8_boundary
      Src: /src/cpython/Modules/_io/winconsoleio.c:179,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Modules/_io/winconsoleio.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - s
    - len
    - n
    argTypes:
    - unsigned char*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 202
    functionName: _wchar_to_utf8_count
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - _find_last_utf8_boundary
    linkageType: ''
    returnType: DWORD
    signature: DWORD _wchar_to_utf8_count(const unsigned char *s, DWORD len, DWORD
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: winconsoleio_CAST
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winconsoleio_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: _PyWindowsConsoleIO_closed
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyWindowsConsoleIO_closed(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: internal_close
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int internal_close(winconsoleio *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/winconsoleio.c:268,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/winconsoleio.c:269,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/winconsoleio.c:270,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/winconsoleio.c:276,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/winconsoleio.c:278,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/winconsoleio.c:280,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - winconsoleio*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 286
    functionName: _io__WindowsConsoleIO_close_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - internal_close
    - get_io_state_by_cls
    - PyErr_GetRaisedException
    - _Py_ID
    - PyObject_CallMethodOneArg
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_close_impl(winconsoleio *self, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/winconsoleio.c:293,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/cpython/Modules/_io/winconsoleio.c
    constantsTouched: []
    func_position:
      end: 307
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 307
    functionName: winconsoleio_new
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winconsoleio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/winconsoleio.c:338,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/winconsoleio.c:338,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/winconsoleio.c:339,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_io/winconsoleio.c:339,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/winconsoleio.c:344,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/_io/winconsoleio.c:351,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_io/winconsoleio.c:352,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/winconsoleio.c:358,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/winconsoleio.c:360,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:361,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/winconsoleio.c:365,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/_io/winconsoleio.c:372,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_io/winconsoleio.c:376,1
    - Dst: _PyIO_get_console_type
      Src: /src/cpython/Modules/_io/winconsoleio.c:377,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:378,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/winconsoleio.c:408,1
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Modules/_io/winconsoleio.c:418,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:425,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/_io/winconsoleio.c:438,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/_io/winconsoleio.c:441,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/cpython/Modules/_io/winconsoleio.c:446,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:446,1
    - Dst: _Py_open_osfhandle_noraise
      Src: /src/cpython/Modules/_io/winconsoleio.c:451,1
    - Dst: _Py_open_osfhandle_noraise
      Src: /src/cpython/Modules/_io/winconsoleio.c:453,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_io/winconsoleio.c:455,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_io/winconsoleio.c:456,1
    - Dst: _get_console_type
      Src: /src/cpython/Modules/_io/winconsoleio.c:462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:465,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:470,1
    - Dst: memset
      Src: /src/cpython/Modules/_io/winconsoleio.c:476,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/winconsoleio.c:478,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/winconsoleio.c:478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:484,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/winconsoleio.c:488,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:492,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 126
    argCount: 5
    argNames:
    - self
    - nameobj
    - mode
    - closefd
    - opener
    argTypes:
    - winconsoleio*
    - PyObject*
    - char*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, state->PyWindowsConsoleIO_Type))
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Modules/_io/winconsoleio.c
    constantsTouched: []
    func_position:
      end: 494
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 494
    functionName: _io__WindowsConsoleIO___init___impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - PyLong_AsInt
    - PyErr_SetString
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - GetLastError
    - Py_CLEAR
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - PyObject_TypeCheck
    - PyErr_Occurred
    - _PyIO_get_console_type
    - PyErr_SetFromErrnoWithFilenameObject
    - find_io_state_by_def
    - PyErr_Format
    - PyErr_Clear
    - CloseHandle
    - _Py_open_osfhandle_noraise
    - PyUnicode_FSDecoder
    - _Py_ID
    - PyObject_SetAttr
    - PyBool_Check
    - _get_console_type
    - Py_TYPE
    - PyErr_WarnEx
    - _Py_get_osfhandle_noraise
    - internal_close
    - memset
    - assert
    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: winconsoleio_CAST
      Src: /src/cpython/Modules/_io/winconsoleio.c:499,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/winconsoleio.c:500,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/winconsoleio.c:500,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/winconsoleio.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 503
    functionName: winconsoleio_traverse
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - winconsoleio_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int winconsoleio_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winconsoleio_CAST
      Src: /src/cpython/Modules/_io/winconsoleio.c:508,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 511
    functionName: winconsoleio_clear
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - winconsoleio_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int winconsoleio_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winconsoleio_CAST
      Src: /src/cpython/Modules/_io/winconsoleio.c:516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/winconsoleio.c:517,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/winconsoleio.c:519,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/winconsoleio.c:521,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/winconsoleio.c:522,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:523,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/winconsoleio.c:524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/winconsoleio.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 526
    functionName: winconsoleio_dealloc
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - FT_CLEAR_WEAKREFS
    - winconsoleio_CAST
    - _PyObject_GC_UNTRACK
    - _PyIOBase_finalize
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void winconsoleio_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 533
    functionName: err_closed
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 10
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_closed(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/winconsoleio.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - action
    argTypes:
    - _PyIO_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: err_mode
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_mode(_PyIO_State *state, const char *action)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/winconsoleio.c:554,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: _io__WindowsConsoleIO_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - err_closed
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_fileno_impl(winconsoleio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/winconsoleio.c:569,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 571
    functionName: _io__WindowsConsoleIO_readable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/winconsoleio.c:584,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 586
    functionName: _io__WindowsConsoleIO_writable_impl
    functionSourceFile: /src/cpython/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: 596
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 596
    functionName: _buflen
    functionSourceFile: /src/cpython/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: 611
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 611
    functionName: _copyfrombuf
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD _copyfrombuf(winconsoleio *self, char *buf, DWORD len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:617,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:619,1
    - Dst: min
      Src: /src/cpython/Modules/_io/winconsoleio.c:630,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:631,1
    - Dst: ReadConsoleW
      Src: /src/cpython/Modules/_io/winconsoleio.c:632,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:635,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:638,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:642,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/_io/winconsoleio.c:646,1
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Modules/_io/winconsoleio.c:647,1
    - Dst: ResetEvent
      Src: /src/cpython/Modules/_io/winconsoleio.c:649,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_io/winconsoleio.c:651,1
    - Dst: GetStringTypeW
      Src: /src/cpython/Modules/_io/winconsoleio.c:670,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:675,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:679,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/winconsoleio.c:696,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:701,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:702,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:704,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:715,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 3
    argNames:
    - handle
    - maxlen
    - readlen
    argTypes:
    - HANDLE
    - DWORD
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 717
    functionName: read_console_w
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - min
    - ReadConsoleW
    - SetLastError
    - GetStringTypeW
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_CheckSignals
    - PyMem_Free
    - WaitForSingleObjectEx
    - ResetEvent
    - _PyOS_SigintEvent
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      read_console_w(HANDLE handle, DWORD maxlen, DWORD *readlen)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/winconsoleio.c:724,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/winconsoleio.c:728,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/winconsoleio.c:734,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/_io/winconsoleio.c:738,1
    - Dst: _copyfrombuf
      Src: /src/cpython/Modules/_io/winconsoleio.c:753,1
    - Dst: read_console_w
      Src: /src/cpython/Modules/_io/winconsoleio.c:763,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:767,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:776,1
    - Dst: _copyfrombuf
      Src: /src/cpython/Modules/_io/winconsoleio.c:779,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:781,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - state
    - self
    - buf
    - len
    argTypes:
    - _PyIO_State*
    - winconsoleio*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 783
    functionName: readinto
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - read_console_w
    - WideCharToMultiByte
    - err_closed
    - err_mode
    - _Py_get_osfhandle
    - _copyfrombuf
    - PyErr_Format
    - PyMem_Free
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t readinto(_PyIO_State *state, winconsoleio *self, char *buf,
      Py_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/winconsoleio.c:830,1
    - Dst: readinto
      Src: /src/cpython/Modules/_io/winconsoleio.c:831,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/winconsoleio.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - cls
    - buffer
    argTypes:
    - winconsoleio*
    - PyTypeObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 825
    functionDepth: 4
    functionLinenumber: 825
    functionLinenumberEnd: 836
    functionName: _io__WindowsConsoleIO_readinto_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - readinto
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__WindowsConsoleIO_readinto_impl(winconsoleio *self,
      PyTypeObject *cls,\n                                    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: 854
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 854
    functionName: new_buffersize
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD new_buffersize(winconsoleio *self, DWORD currentsize)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/winconsoleio.c:875,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/_io/winconsoleio.c:877,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:883,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:885,1
    - Dst: new_buffersize
      Src: /src/cpython/Modules/_io/winconsoleio.c:893,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:897,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:900,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:905,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:908,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:909,1
    - Dst: read_console_w
      Src: /src/cpython/Modules/_io/winconsoleio.c:915,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:918,1
    - Dst: wcsncpy_s
      Src: /src/cpython/Modules/_io/winconsoleio.c:923,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:925,1
    - Dst: _buflen
      Src: /src/cpython/Modules/_io/winconsoleio.c:934,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:936,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/winconsoleio.c:937,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:942,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:947,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:948,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/winconsoleio.c:949,1
    - Dst: _buflen
      Src: /src/cpython/Modules/_io/winconsoleio.c:955,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/winconsoleio.c:956,1
    - Dst: _copyfrombuf
      Src: /src/cpython/Modules/_io/winconsoleio.c:957,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/winconsoleio.c:957,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:961,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/winconsoleio.c:962,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:966,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:967,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:968,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/winconsoleio.c:969,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:976,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/winconsoleio.c:977,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/winconsoleio.c:978,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:979,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 984
    functionName: _io__WindowsConsoleIO_readall_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - read_console_w
    - new_buffersize
    - PyErr_SetString
    - _Py_get_osfhandle
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyBytes_GET_SIZE
    - Py_CLEAR
    - PyMem_Free
    - wcsncpy_s
    - _buflen
    - PyMem_Realloc
    - WideCharToMultiByte
    - err_closed
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _copyfrombuf
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readall_impl(winconsoleio *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/winconsoleio.c:1008,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/winconsoleio.c:1010,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/winconsoleio.c:1011,1
    - Dst: _io__WindowsConsoleIO_readall_impl
      Src: /src/cpython/Modules/_io/winconsoleio.c:1015,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/winconsoleio.c:1017,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/winconsoleio.c:1021,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/winconsoleio.c:1025,1
    - Dst: readinto
      Src: /src/cpython/Modules/_io/winconsoleio.c:1026,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/winconsoleio.c:1026,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/winconsoleio.c:1027,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:1029,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/winconsoleio.c:1033,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/winconsoleio.c:1034,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:1035,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - cls
    - size
    argTypes:
    - winconsoleio*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 999
    functionDepth: 4
    functionLinenumber: 999
    functionLinenumberEnd: 1041
    functionName: _io__WindowsConsoleIO_read_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - err_closed
    - err_mode
    - Py_CLEAR
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - readinto
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - _io__WindowsConsoleIO_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__WindowsConsoleIO_read_impl(winconsoleio *self, PyTypeObject
      *cls,\n                                Py_ssize_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: winconsoleio_CAST
      Src: /src/cpython/Modules/_io/winconsoleio.c:1146,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/winconsoleio.c:1147,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/winconsoleio.c:1150,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/winconsoleio.c:1154,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/winconsoleio.c:1159,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:1164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1166
    functionName: winconsoleio_repr
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyErr_SetString
    - winconsoleio_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winconsoleio_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/winconsoleio.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1182
    functionName: _io__WindowsConsoleIO_isatty_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_isatty_impl(winconsoleio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1185
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winconsoleio_CAST
      Src: /src/cpython/Modules/_io/winconsoleio.c:1207,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1209
    functionName: get_closed
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - winconsoleio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closed(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winconsoleio_CAST
      Src: /src/cpython/Modules/_io/winconsoleio.c:1214,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1216
    functionName: get_closefd
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - winconsoleio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closefd(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winconsoleio_CAST
      Src: /src/cpython/Modules/_io/winconsoleio.c:1221,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/winconsoleio.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1223
    functionName: get_mode
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - winconsoleio_CAST
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mode(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_io/_iomodule.c:215,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/_iomodule.c:218,1
    - Dst: PyOS_FSPath
      Src: /src/cpython/Modules/_io/_iomodule.c:220,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/_iomodule.c:227,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/_iomodule.c:228,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/_iomodule.c:229,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/_iomodule.c:234,1
    - Dst: strchr
      Src: /src/cpython/Modules/_io/_iomodule.c:264,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/_iomodule.c:266,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/_iomodule.c:282,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/_iomodule.c:288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/_iomodule.c:294,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/_iomodule.c:300,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/_iomodule.c:306,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_io/_iomodule.c:312,1
    - Dst: get_io_state
      Src: /src/cpython/Modules/_io/_iomodule.c:321,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Modules/_io/_iomodule.c:325,1
    - Dst: _PyIO_get_console_type
      Src: /src/cpython/Modules/_io/_iomodule.c:326,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/_iomodule.c:331,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/_iomodule.c:341,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/_iomodule.c:343,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/_iomodule.c:349,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/_iomodule.c:349,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/_iomodule.c:352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:353,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/_iomodule.c:367,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/_iomodule.c:367,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/_iomodule.c:370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:371,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/_iomodule.c:372,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_io/_iomodule.c:374,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_io/_iomodule.c:374,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/_iomodule.c:377,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/_iomodule.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:390,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/_iomodule.c:408,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/_iomodule.c:413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:423,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/_iomodule.c:428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:436,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/_iomodule.c:438,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/_iomodule.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:440,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/_iomodule.c:445,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/_iomodule.c:446,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/_iomodule.c:446,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/_iomodule.c:447,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:449,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:451,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:452,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 194
    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: 454
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 454
    functionName: _io_open_impl
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_ChainExceptions1
    - Py_MAX
    - strlen
    - _Py_GetConfig
    - PyErr_SetString
    - PyBytes_Check
    - Py_SETREF
    - strchr
    - PyObject_CallFunction
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyIO_get_console_type
    - PyErr_Format
    - PyUnicode_Check
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - PyOS_FSPath
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - PyNumber_Check
    - PyObject_SetAttr
    - PyErr_WarnEx
    - Py_MIN
    - PyObject_IsTrue
    - PyObject_GetAttr
    - get_io_state
    - PyUnicode_FromString
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_io/_iomodule.c:481,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Modules/_io/_iomodule.c:482,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_io/_iomodule.c:483,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_io/_iomodule.c:490,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/_iomodule.c:491,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/_iomodule.c:494,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/_iomodule.c:497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - encoding
    - stacklevel
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 498
    functionName: _io_text_encoding_impl
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - _Py_DECLARE_STR
    - _Py_ID
    - _Py_STR
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetConfig
    - Py_NewRef
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_text_encoding_impl(PyObject *module, PyObject *encoding, int stacklevel)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_OpenCodeObject
      Src: /src/cpython/Modules/_io/_iomodule.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: _io_open_code_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/_iomodule.c:530,1
    - Dst: PyLong_AsOff_t
      Src: /src/cpython/Modules/_io/_iomodule.c:535,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/_iomodule.c:536,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_io/_iomodule.c:540,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/_iomodule.c:543,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/_iomodule.c:548,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/_iomodule.c:548,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/_io/_iomodule.c:549,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/_iomodule.c:556,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:562,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - item
    - err
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 547
        line_start: 547
        source_file: /src/cpython/Modules/_io/_iomodule.c
    constantsTouched: []
    func_position:
      end: 564
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 564
    functionName: PyNumber_AsOff_t
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyLong_IsNegative
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - PyErr_GivenExceptionMatches
    - PyLong_Check
    - PyErr_Format
    - PyErr_Clear
    - Py_TYPE
    - PyLong_AsOff_t
    linkageType: ''
    returnType: Py_off_t
    signature: Py_off_t PyNumber_AsOff_t(PyObject *item, PyObject *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state
      Src: /src/cpython/Modules/_io/_iomodule.c:568,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:569,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:571,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:572,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:573,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:574,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:575,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:576,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:577,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:578,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:579,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:580,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:581,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:582,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:583,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:584,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 589
    functionName: iomodule_traverse
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - get_io_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int iomodule_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state
      Src: /src/cpython/Modules/_io/_iomodule.c:594,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:595,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:597,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:598,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:599,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:600,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:601,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:602,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:603,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:604,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:605,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:606,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:607,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:609,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:610,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 615
    functionName: iomodule_clear
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_io_state
    linkageType: ''
    returnType: int
    signature: int iomodule_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iomodule_clear
      Src: /src/cpython/Modules/_io/_iomodule.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: iomodule_free
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - iomodule_clear
    linkageType: ''
    returnType: void
    signature: void iomodule_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 629
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - module
    - ','
    - type
    - ','
    - spec
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 650
    functionName: ADD_TYPE
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(module, type, spec, base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state
      Src: /src/cpython/Modules/_io/_iomodule.c:654,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_io/_iomodule.c:657,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/_iomodule.c:661,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_io/_iomodule.c:666,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/_iomodule.c:667,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_io/_iomodule.c:671,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_io/_iomodule.c:678,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:684,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:685,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:686,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:689,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:691,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:693,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:697,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:698,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:700,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:702,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:704,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:708,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:711,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:716,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 722
    functionName: iomodule_exec
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - ADD_TYPE
    - PyObject_CallFunction
    - _Py_ID
    - PyModule_AddObjectRef
    - PyObject_SetAttrString
    - get_io_state
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int iomodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_io/_iomodule.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 747
    functionName: PyInit__io
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__io(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:57,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:58,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/bufferedio.c:59,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/bufferedio.c:63,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:64,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:65,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:69,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:71,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:75,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:78,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bufferedio.c:78,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:80,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - buffer
    - readinto1
    argTypes:
    - PyObject*
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 83
    functionName: _bufferediobase_readinto_generic
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethod
    - _Py_ID
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - memcpy
    - PyBytes_AS_STRING
    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/cpython/Modules/_io/bufferedio.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: _io__BufferedIOBase_readinto_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bufferedio.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: _io__BufferedIOBase_readinto1_impl
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - message
    argTypes:
    - _PyIO_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: bufferediobase_unsupported
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferediobase_unsupported(_PyIO_State *state, const char *message)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/bufferedio.c:136,1
    - Dst: bufferediobase_unsupported
      Src: /src/cpython/Modules/_io/bufferedio.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: _io__BufferedIOBase_detach_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_detach_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/bufferedio.c:170,1
    - Dst: bufferediobase_unsupported
      Src: /src/cpython/Modules/_io/bufferedio.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED
    argTypes:
    - PyObject*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: _io__BufferedIOBase_read_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__BufferedIOBase_read_impl(PyObject *self, PyTypeObject
      *cls,\n                              int Py_UNUSED(size))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/bufferedio.c:193,1
    - Dst: bufferediobase_unsupported
      Src: /src/cpython/Modules/_io/bufferedio.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED
    argTypes:
    - PyObject*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: _io__BufferedIOBase_read1_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__BufferedIOBase_read1_impl(PyObject *self, PyTypeObject
      *cls,\n                               int Py_UNUSED(size))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/bufferedio.c:218,1
    - Dst: bufferediobase_unsupported
      Src: /src/cpython/Modules/_io/bufferedio.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED(b)
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: _io__BufferedIOBase_write_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__BufferedIOBase_write_impl(PyObject *self, PyTypeObject
      *cls,\n                               PyObject *Py_UNUSED(b))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: buffered_CAST
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: buffered_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_io/bufferedio.c:299,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:300,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_io/bufferedio.c:304,1
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Modules/_io/bufferedio.c:305,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_io/bufferedio.c:308,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/cpython/Modules/_io/bufferedio.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 317
    functionName: _enter_buffered_busy
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_IsInterpreterFinalizing
    - _PyInterpreterState_GET
    - PyThread_acquire_lock_timed
    - PyThread_acquire_lock
    - 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: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: ENTER_BUFFERED
    functionSourceFile: /src/cpython/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: 339
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: LEAVE_BUFFERED
    functionSourceFile: /src/cpython/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: 351
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 351
    functionName: CHECK_INITIALIZED
    functionSourceFile: /src/cpython/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: 363
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: CHECK_INITIALIZED_INT
    functionSourceFile: /src/cpython/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: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: IS_CLOSED
    functionSourceFile: /src/cpython/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: 376
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: CHECK_CLOSED
    functionSourceFile: /src/cpython/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: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: VALID_READ_BUFFER
    functionSourceFile: /src/cpython/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: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: VALID_WRITE_BUFFER
    functionSourceFile: /src/cpython/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: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: ADJUST_POSITION
    functionSourceFile: /src/cpython/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: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: READAHEAD
    functionSourceFile: /src/cpython/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: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: RAW_OFFSET
    functionSourceFile: /src/cpython/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: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: RAW_TELL
    functionSourceFile: /src/cpython/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: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: MINUS_LAST_BLOCK
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MINUS_LAST_BLOCK(self, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffered_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:409,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:411,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: buffered_clear
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - buffered_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int buffered_clear(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: buffered_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:419,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:420,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/bufferedio.c:422,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/bufferedio.c:424,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/bufferedio.c:426,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/bufferedio.c:428,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_io/bufferedio.c:432,1
    - Dst: buffered_clear
      Src: /src/cpython/Modules/_io/bufferedio.c:435,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bufferedio.c:436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 438
    functionName: buffered_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - buffered_clear
    - FT_CLEAR_WEAKREFS
    - _PyObject_GC_UNTRACK
    - _PyIOBase_finalize
    - PyTypeObject*::tp_free
    - PyThread_free_lock
    - buffered_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void buffered_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:449,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:449,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: _io__Buffered___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered___sizeof___impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffered_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:459,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:460,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:460,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:461,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 464
    functionName: buffered_traverse
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - buffered_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int buffered_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/bufferedio.c:483,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:485,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - source
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 490
    functionName: _io__Buffered__dealloc_warn_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - PyErr_Clear
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered__dealloc_warn_impl(buffered *self, PyObject *source)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:508,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:509,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: _io__Buffered_simple_flush_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_simple_flush_impl(buffered *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED_INT
      Src: /src/cpython/Modules/_io/bufferedio.c:517,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:518,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:518,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/bufferedio.c:521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 524
    functionName: buffered_closed
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - _Py_ID
    - PyObject_GetAttr
    - CHECK_INITIALIZED_INT
    linkageType: ''
    returnType: int
    signature: int buffered_closed(buffered *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:536,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:537,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: _io__Buffered_closed_get_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_closed_get_impl(buffered *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:552,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:553,1
    - Dst: buffered_closed
      Src: /src/cpython/Modules/_io/bufferedio.c:557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bufferedio.c:561,1
    - Dst: _io__Buffered__dealloc_warn_impl
      Src: /src/cpython/Modules/_io/bufferedio.c:566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:568,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:570,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:573,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/bufferedio.c:574,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:575,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:580,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:583,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:583,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/bufferedio.c:586,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/bufferedio.c:591,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:592,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:599,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 601
    functionName: _io__Buffered_close_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - ENTER_BUFFERED
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - buffered_closed
    - PyErr_GetRaisedException
    - _Py_ID
    - _io__Buffered__dealloc_warn_impl
    - Py_NewRef
    - PyObject_CallMethodNoArgs
    - PyMem_Free
    - _PyFile_Flush
    - PyErr_Clear
    - Py_CLEAR
    - LEAVE_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_close_impl(buffered *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:613,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/bufferedio.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 622
    functionName: _io__Buffered_detach_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _PyFile_Flush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_detach_impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:635,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:636,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: _io__Buffered_seekable_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_seekable_impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:648,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:649,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: _io__Buffered_readable_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readable_impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:661,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:662,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 663
    functionName: _io__Buffered_writable_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_writable_impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:676,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:677,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 678
    functionName: _io__Buffered_name_get_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_name_get_impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:690,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:691,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: _io__Buffered_mode_get_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_mode_get_impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:705,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:706,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 707
    functionName: _io__Buffered_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_fileno_impl(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:718,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:719,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: _io__Buffered_isatty_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_isatty_impl(buffered *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:751,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/bufferedio.c:752,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_io/bufferedio.c:755,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - msg
    - written
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 757
    functionName: _set_BlockingIOError
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_Clear
    - PyObject_CallFunction
    - PyErr_SetObject
    linkageType: ''
    returnType: void
    signature: void _set_BlockingIOError(const char *msg, Py_ssize_t written)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:764,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_io/bufferedio.c:765,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:766,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 773
    functionName: _buffered_check_blocking_error
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_GivenExceptionMatches
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: Py_ssize_t
    signature: 'Py_ssize_t *

      _buffered_check_blocking_error(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:780,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:780,1
    - Dst: PyNumber_AsOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:784,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:786,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 794
    functionName: _buffered_raw_tell
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - 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/cpython/Modules/_io/bufferedio.c:802,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/bufferedio.c:805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:807,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:810,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:813,1
    - Dst: PyNumber_AsOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:817,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:819,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:820,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - target
    - whence
    argTypes:
    - buffered*
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 827
    functionName: _buffered_raw_seek
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromOff_t
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - PyObject_CallMethodObjArgs
    - PyNumber_AsOff_t
    - PyLong_FromLong
    - PyErr_Format
    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/cpython/Modules/_io/bufferedio.c:834,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/bufferedio.c:839,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/bufferedio.c:840,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/bufferedio.c:842,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_io/bufferedio.c:846,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_io/bufferedio.c:847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:849,1
    - Dst: _buffered_raw_tell
      Src: /src/cpython/Modules/_io/bufferedio.c:861,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:862,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 864
    functionName: _buffered_init
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyThread_allocate_lock
    - PyErr_SetString
    - _buffered_raw_tell
    - PyMem_Free
    - PyThread_free_lock
    - PyErr_Clear
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int _buffered_init(buffered *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/bufferedio.c:873,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:876,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:878,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:880,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:881,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_io/bufferedio.c:881,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_io/bufferedio.c:883,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:886,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:891,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (env_err != NULL)
      pos:
        line_end: 877
        line_start: 877
        source_file: /src/cpython/Modules/_io/bufferedio.c
    - condition: (PyLong_CheckExact(env_err->myerrno))
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/cpython/Modules/_io/bufferedio.c
    - condition: (EINTR > 0 && EINTR < INT_MAX)
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 893
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 893
    functionName: _PyIO_trap_eintr
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyErr_GetRaisedException
    - PyErr_ExceptionMatches
    - PyLong_CheckExact
    - PyErr_Clear
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int _PyIO_trap_eintr(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:907,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:913,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:913,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 919
    functionName: buffered_flush_and_rewind_unlocked
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _bufferedwriter_flush_unlocked
    - _bufferedreader_reset_buf
    - RAW_OFFSET
    - _buffered_raw_seek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_flush_and_rewind_unlocked(buffered *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:932,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:933,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:935,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:937,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 941
    functionName: _io__Buffered_flush_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - ENTER_BUFFERED
    - buffered_flush_and_rewind_unlocked
    - CHECK_CLOSED
    - LEAVE_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_flush_impl(buffered *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:957,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:958,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:960,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:964,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:967,1
    - Dst: _bufferedreader_peek_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:969,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 951
    functionDepth: 4
    functionLinenumber: 951
    functionLinenumberEnd: 974
    functionName: _io__Buffered_peek_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - ENTER_BUFFERED
    - buffered_flush_and_rewind_unlocked
    - _bufferedreader_peek_unlocked
    - CHECK_CLOSED
    - Py_CLEAR
    - LEAVE_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_peek_impl(buffered *self, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:989,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:991,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:996,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1000,1
    - Dst: _bufferedreader_read_all
      Src: /src/cpython/Modules/_io/bufferedio.c:1002,1
    - Dst: _bufferedreader_read_fast
      Src: /src/cpython/Modules/_io/bufferedio.c:1005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1008,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1009,1
    - Dst: _bufferedreader_read_generic
      Src: /src/cpython/Modules/_io/bufferedio.c:1011,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1014,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 1016
    functionName: _io__Buffered_read_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - ENTER_BUFFERED
    - Py_DECREF
    - _bufferedreader_read_generic
    - PyErr_SetString
    - _bufferedreader_read_fast
    - _bufferedreader_read_all
    - CHECK_CLOSED
    - LEAVE_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read_impl(buffered *self, Py_ssize_t n)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1032,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1037,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1040,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1045,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1045,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_io/bufferedio.c:1047,1
    - Dst: _bufferedreader_read_fast
      Src: /src/cpython/Modules/_io/bufferedio.c:1048,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:1049,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1052,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1056,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1061,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1067,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1069,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1070,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bufferedio.c:1070,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1073,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/bufferedio.c:1079,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts:
    - condition: (res != Py_None)
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 1081
      start: 1025
    functionDepth: 4
    functionLinenumber: 1025
    functionLinenumberEnd: 1081
    functionName: _io__Buffered_read1_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_MIN
    - ENTER_BUFFERED
    - buffered_flush_and_rewind_unlocked
    - Py_DECREF
    - _bufferedreader_read_fast
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - READAHEAD
    - _bufferedreader_raw_read
    - CHECK_CLOSED
    - Py_SAFE_DOWNCAST
    - PyBytes_AS_STRING
    - LEAVE_BUFFERED
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read1_impl(buffered *self, Py_ssize_t n)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1089,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1090,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1092,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1092,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1095,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1097,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1099,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1104,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1108,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1111,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1114,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1123,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1130,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1134,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bufferedio.c:1147,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1158,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1161,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 3
    argNames:
    - self
    - buffer
    - readinto1
    argTypes:
    - buffered*
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1083
    functionDepth: 4
    functionLinenumber: 1083
    functionLinenumberEnd: 1163
    functionName: _buffered_readinto_generic
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - ENTER_BUFFERED
    - _bufferedreader_fill_buffer
    - buffered_flush_and_rewind_unlocked
    - PyLong_FromSsize_t
    - memcpy
    - _bufferedreader_reset_buf
    - Py_NewRef
    - READAHEAD
    - _bufferedreader_raw_read
    - CHECK_CLOSED
    - Py_SAFE_DOWNCAST
    - Py_CLEAR
    - LEAVE_BUFFERED
    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/cpython/Modules/_io/bufferedio.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1172
    functionDepth: 5
    functionLinenumber: 1172
    functionLinenumberEnd: 1177
    functionName: _io__Buffered_readinto_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bufferedio.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1186
    functionDepth: 5
    functionLinenumber: 1186
    functionLinenumberEnd: 1191
    functionName: _io__Buffered_readinto1_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bufferedio.c:1202,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1207,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1207,1
    - Dst: memchr
      Src: /src/cpython/Modules/_io/bufferedio.c:1211,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1213,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1219,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1225,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/bufferedio.c:1229,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1233,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1236,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1240,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1249,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1253,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1254,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1266,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1273,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1280,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1281,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1284,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1289,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1290,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1293,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_io/bufferedio.c:1293,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_io/bufferedio.c:1293,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1296,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1298,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 104
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1300
    functionName: _buffered_readline
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - ENTER_BUFFERED
    - PyList_New
    - _bufferedreader_fill_buffer
    - buffered_flush_and_rewind_unlocked
    - Py_DECREF
    - Py_XDECREF
    - PyList_Append
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - _Py_SINGLETON
    - PyBytes_Join
    - memchr
    - READAHEAD
    - Py_XSETREF
    - CHECK_CLOSED
    - Py_SAFE_DOWNCAST
    - Py_CLEAR
    - LEAVE_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _buffered_readline(buffered *self, Py_ssize_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1313,1
    - Dst: _buffered_readline
      Src: /src/cpython/Modules/_io/bufferedio.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1309
    functionDepth: 5
    functionLinenumber: 1309
    functionLinenumberEnd: 1315
    functionName: _io__Buffered_readline_impl
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1329,1
    - Dst: _buffered_raw_tell
      Src: /src/cpython/Modules/_io/bufferedio.c:1330,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:1333,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1323
    functionDepth: 3
    functionLinenumber: 1323
    functionLinenumberEnd: 1340
    functionName: _io__Buffered_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyLong_FromOff_t
    - _buffered_raw_tell
    - RAW_OFFSET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_tell_impl(buffered *self)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1357,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1370,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1375,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:1377,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1377,1
    - Dst: _PyIOBase_check_seekable
      Src: /src/cpython/Modules/_io/bufferedio.c:1378,1
    - Dst: PyNumber_AsOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1382,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:1383,1
    - Dst: RAW_TELL
      Src: /src/cpython/Modules/_io/bufferedio.c:1398,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1399,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:1403,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1411,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1413,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1418,1
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1423,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1426,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:1431,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:1432,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1436,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1438,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1441,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 3
    argNames:
    - self
    - targetobj
    - whence
    argTypes:
    - buffered*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1350
    functionDepth: 3
    functionLinenumber: 1350
    functionLinenumberEnd: 1443
    functionName: _io__Buffered_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyLong_FromOff_t
    - ENTER_BUFFERED
    - RAW_TELL
    - Py_CLEAR
    - _bufferedwriter_flush_unlocked
    - PyErr_Occurred
    - _bufferedreader_reset_buf
    - find_io_state_by_def
    - PyNumber_AsOff_t
    - RAW_OFFSET
    - _buffered_raw_seek
    - PyErr_Format
    - CHECK_CLOSED
    - READAHEAD
    - _PyIOBase_check_seekable
    - Py_TYPE
    - LEAVE_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_seek_impl(buffered *self, PyObject *targetobj, int whence)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1459,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1460,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/bufferedio.c:1462,1
    - Dst: bufferediobase_unsupported
      Src: /src/cpython/Modules/_io/bufferedio.c:1463,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1465,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1468,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1472,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/bufferedio.c:1474,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1474,1
    - Dst: _buffered_raw_tell
      Src: /src/cpython/Modules/_io/bufferedio.c:1478,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:1479,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - cls
    - pos
    argTypes:
    - buffered*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1453
    functionDepth: 4
    functionLinenumber: 1453
    functionLinenumberEnd: 1484
    functionName: _io__Buffered_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - ENTER_BUFFERED
    - buffered_flush_and_rewind_unlocked
    - get_io_state_by_cls
    - _Py_ID
    - _buffered_raw_tell
    - bufferediobase_unsupported
    - CHECK_CLOSED
    - PyObject_CallMethodOneArg
    - PyErr_Clear
    - Py_CLEAR
    - LEAVE_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_truncate_impl(buffered *self, PyTypeObject *cls, PyObject *pos)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: buffered_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1489,1
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1493,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:1495,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1495,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1496,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1497,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1498,1
    - Dst: _buffered_readline
      Src: /src/cpython/Modules/_io/bufferedio.c:1501,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:1504,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1505,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/bufferedio.c:1506,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1507,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1510,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1486
    functionDepth: 5
    functionLinenumber: 1486
    functionLinenumberEnd: 1525
    functionName: buffered_iternext
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - find_io_state_by_def
    - Py_IS_TYPE
    - PyBytes_Check
    - _buffered_readline
    - PyBytes_GET_SIZE
    - PyErr_Format
    - buffered_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_iternext(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: buffered_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1530,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:1533,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1533,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/bufferedio.c:1534,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:1538,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/bufferedio.c:1541,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1541,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/bufferedio.c:1544,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/bufferedio.c:1547,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1548,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/bufferedio.c:1549,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1552,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1527
    functionDepth: 1
    functionLinenumber: 1527
    functionLinenumberEnd: 1559
    functionName: buffered_repr
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_ReprEnter
    - PyObject_GetOptionalAttr
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - _Py_ID
    - PyErr_ExceptionMatches
    - buffered_CAST
    - PyErr_Format
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1568
    functionName: _bufferedreader_reset_buf
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _bufferedreader_reset_buf(buffered *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:1586,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1586,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/bufferedio.c:1587,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1591,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bufferedio.c:1591,1
    - Dst: _buffered_init
      Src: /src/cpython/Modules/_io/bufferedio.c:1596,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1598,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1601,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1602,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: 1607
      start: 1578
    functionDepth: 4
    functionLinenumber: 1578
    functionLinenumberEnd: 1607
    functionName: _io_BufferedReader___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyIOBase_check_readable
    - _bufferedreader_reset_buf
    - find_io_state_by_def
    - Py_NewRef
    - Py_IS_TYPE
    - _buffered_init
    - Py_XSETREF
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: "int _io_BufferedReader___init___impl(buffered *self, PyObject *raw,\n
      \                                Py_ssize_t buffer_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_io/bufferedio.c:1616,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1618,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/bufferedio.c:1627,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1627,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/bufferedio.c:1628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1634,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1638,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:1640,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Modules/_io/bufferedio.c:1641,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1649,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - start
    - len
    argTypes:
    - buffered*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1609
    functionDepth: 2
    functionLinenumber: 1609
    functionLinenumberEnd: 1657
    functionName: _bufferedreader_raw_read
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - _PyIO_trap_eintr
    - Py_DECREF
    - _PyErr_FormatFromCause
    - PyErr_Occurred
    - _Py_ID
    - PyNumber_AsSsize_t
    - PyMemoryView_FromBuffer
    - PyErr_Format
    - PyObject_CallMethodOneArg
    - PyBuffer_FillInfo
    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/cpython/Modules/_io/bufferedio.c:1663,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1664,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1659
    functionDepth: 3
    functionLinenumber: 1659
    functionLinenumberEnd: 1674
    functionName: _bufferedreader_fill_buffer
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - VALID_READ_BUFFER
    - Py_SAFE_DOWNCAST
    - _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/cpython/Modules/_io/bufferedio.c:1683,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1683,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1685,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1693,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1696,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1698,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:1700,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1700,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:1704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1705,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/bufferedio.c:1708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:1709,1
    - Dst: PyBytes_Concat
      Src: /src/cpython/Modules/_io/bufferedio.c:1716,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/bufferedio.c:1723,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1729,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1731,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:1735,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1735,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/bufferedio.c:1738,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:1739,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1742,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_io/bufferedio.c:1748,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_io/bufferedio.c:1748,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1753,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1755,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1759,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1760,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1761,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1762,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1676
    functionDepth: 4
    functionLinenumber: 1676
    functionLinenumberEnd: 1764
    functionName: _bufferedreader_read_all
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyBytes_Concat
    - buffered_flush_and_rewind_unlocked
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - READAHEAD
    - Py_CLEAR
    - PyList_Append
    - PyBytes_Join
    - Py_SAFE_DOWNCAST
    - Py_DECREF
    - _Py_ID
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - PyObject_CallMethodNoArgs
    - _PyObject_CallNoArgs
    - PyObject_GetOptionalAttr
    - _Py_SINGLETON
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedreader_read_all(buffered *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1773,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1773,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1782
    functionName: _bufferedreader_read_fast
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bufferedio.c:1794,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1794,1
    - Dst: _bufferedreader_read_fast
      Src: /src/cpython/Modules/_io/bufferedio.c:1796,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1798,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bufferedio.c:1801,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1805,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1815,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1817,1
    - Dst: MINUS_LAST_BLOCK
      Src: /src/cpython/Modules/_io/bufferedio.c:1821,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1824,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/bufferedio.c:1830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1834,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:1840,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1848,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/bufferedio.c:1854,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1858,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1862,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1868,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1880,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: 1839
        line_start: 1839
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 1882
      start: 1787
    functionDepth: 4
    functionLinenumber: 1787
    functionLinenumberEnd: 1882
    functionName: _bufferedreader_read_generic
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - _bufferedreader_fill_buffer
    - Py_XDECREF
    - buffered_flush_and_rewind_unlocked
    - Py_DECREF
    - _bufferedreader_read_fast
    - MINUS_LAST_BLOCK
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - _PyBytes_Resize
    - READAHEAD
    - _bufferedreader_raw_read
    - memcpy
    - Py_SAFE_DOWNCAST
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedreader_read_generic(buffered *self, Py_ssize_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1889,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1889,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1897,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1901,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1902,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1884
    functionDepth: 4
    functionLinenumber: 1884
    functionLinenumberEnd: 1909
    functionName: _bufferedreader_peek_unlocked
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - _bufferedreader_fill_buffer
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - READAHEAD
    - Py_SAFE_DOWNCAST
    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: 1920
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1920
    functionName: _bufferedwriter_reset_buf
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _bufferedwriter_reset_buf(buffered *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:1942,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1942,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/bufferedio.c:1943,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1947,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1948,1
    - Dst: _buffered_init
      Src: /src/cpython/Modules/_io/bufferedio.c:1953,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1955,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1959,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - raw
    - buffer_size
    argTypes:
    - buffered*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1934
    functionDepth: 4
    functionLinenumber: 1934
    functionLinenumberEnd: 1965
    functionName: _io_BufferedWriter___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyIOBase_check_writable
    - find_io_state_by_def
    - Py_IS_TYPE
    - _buffered_init
    - _bufferedwriter_reset_buf
    - Py_XSETREF
    - Py_TYPE
    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/cpython/Modules/_io/bufferedio.c:1975,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1977,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/bufferedio.c:1987,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1987,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/bufferedio.c:1989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1997,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:2001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2002,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:2004,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - start
    - len
    argTypes:
    - buffered*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1967
    functionDepth: 2
    functionLinenumber: 1967
    functionLinenumberEnd: 2012
    functionName: _bufferedwriter_raw_write
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyIO_trap_eintr
    - Py_DECREF
    - _Py_ID
    - PyNumber_AsSsize_t
    - PyMemoryView_FromBuffer
    - PyErr_Format
    - PyObject_CallMethodOneArg
    - PyBuffer_FillInfo
    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/cpython/Modules/_io/bufferedio.c:2019,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:2022,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:2024,1
    - Dst: _bufferedwriter_raw_write
      Src: /src/cpython/Modules/_io/bufferedio.c:2031,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2033,1
    - Dst: _set_BlockingIOError
      Src: /src/cpython/Modules/_io/bufferedio.c:2039,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_io/bufferedio.c:2048,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2063,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2014
    functionDepth: 3
    functionLinenumber: 2014
    functionLinenumberEnd: 2068
    functionName: _bufferedwriter_flush_unlocked
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - VALID_WRITE_BUFFER
    - _bufferedwriter_raw_write
    - RAW_OFFSET
    - _buffered_raw_seek
    - PyErr_CheckSignals
    - _bufferedwriter_reset_buf
    - Py_SAFE_DOWNCAST
    - _set_BlockingIOError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedwriter_flush_unlocked(buffered *self)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:2085,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:2087,1
    - Dst: IS_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:2092,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:2093,1
    - Dst: VALID_READ_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2098,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2098,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2102,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2104,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2105,1
    - Dst: ADJUST_POSITION
      Src: /src/cpython/Modules/_io/bufferedio.c:2108,1
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:2116,1
    - Dst: _buffered_check_blocking_error
      Src: /src/cpython/Modules/_io/bufferedio.c:2118,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2122,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:2124,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2124,1
    - Dst: memmove
      Src: /src/cpython/Modules/_io/bufferedio.c:2125,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2126,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2132,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:2136,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2137,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2144,1
    - Dst: _set_BlockingIOError
      Src: /src/cpython/Modules/_io/bufferedio.c:2150,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2154,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:2162,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:2164,1
    - Dst: _bufferedwriter_raw_write
      Src: /src/cpython/Modules/_io/bufferedio.c:2173,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2181,1
    - Dst: ADJUST_POSITION
      Src: /src/cpython/Modules/_io/bufferedio.c:2184,1
    - Dst: _set_BlockingIOError
      Src: /src/cpython/Modules/_io/bufferedio.c:2187,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:2191,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_io/bufferedio.c:2199,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2203,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2205,1
    - Dst: ADJUST_POSITION
      Src: /src/cpython/Modules/_io/bufferedio.c:2211,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:2215,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:2218,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 108
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts:
    - condition: (VALID_WRITE_BUFFER(self))
      pos:
        line_end: 2123
        line_start: 2123
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 2220
      start: 2077
    functionDepth: 4
    functionLinenumber: 2077
    functionLinenumberEnd: 2220
    functionName: _io_BufferedWriter_write_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_CheckSignals
    - ADJUST_POSITION
    - VALID_READ_BUFFER
    - IS_CLOSED
    - Py_CLEAR
    - _bufferedwriter_raw_write
    - RAW_OFFSET
    - _buffered_raw_seek
    - Py_SAFE_DOWNCAST
    - PyErr_Clear
    - _set_BlockingIOError
    - ENTER_BUFFERED
    - _bufferedwriter_flush_unlocked
    - _bufferedreader_reset_buf
    - memcpy
    - CHECK_INITIALIZED
    - VALID_WRITE_BUFFER
    - _buffered_check_blocking_error
    - PyLong_FromSsize_t
    - memmove
    - LEAVE_BUFFERED
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BufferedWriter_write_impl(buffered *self, Py_buffer *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2240
    functionName: rwpair_CAST
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rwpair_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:2264,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2264,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/bufferedio.c:2265,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/bufferedio.c:2268,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/bufferedio.c:2272,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/bufferedio.c:2278,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - reader
    - writer
    - buffer_size
    argTypes:
    - rwpair*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2259
    functionDepth: 3
    functionLinenumber: 2259
    functionLinenumberEnd: 2287
    functionName: _io_BufferedRWPair___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - Py_CLEAR
    - _PyIOBase_check_writable
    - _PyIOBase_check_readable
    - find_io_state_by_def
    - Py_TYPE
    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: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2292,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2293,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2293,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2294,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2295,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2289
    functionDepth: 1
    functionLinenumber: 2289
    functionLinenumberEnd: 2298
    functionName: bufferedrwpair_traverse
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - rwpair_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bufferedrwpair_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2303,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2304,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2305,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2300
    functionDepth: 1
    functionLinenumber: 2300
    functionLinenumberEnd: 2308
    functionName: bufferedrwpair_clear
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - rwpair_CAST
    linkageType: ''
    returnType: int
    signature: int bufferedrwpair_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2313,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2314,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/bufferedio.c:2315,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/bufferedio.c:2316,1
    - Dst: bufferedrwpair_clear
      Src: /src/cpython/Modules/_io/bufferedio.c:2317,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bufferedio.c:2318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2310
    functionDepth: 2
    functionLinenumber: 2310
    functionLinenumberEnd: 2320
    functionName: bufferedrwpair_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - FT_CLEAR_WEAKREFS
    - _PyObject_GC_UNTRACK
    - PyTypeObject*::tp_free
    - bufferedrwpair_clear
    - Py_TYPE
    - rwpair_CAST
    linkageType: ''
    returnType: void
    signature: void bufferedrwpair_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:2327,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:2332,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_io/bufferedio.c:2334,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_io/bufferedio.c:2338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - name
    - args
    argTypes:
    - buffered*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2322
    functionDepth: 1
    functionLinenumber: 2322
    functionLinenumberEnd: 2341
    functionName: _forward_call
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyErr_SetObject
    - PyObject_GetAttr
    - PyObject_CallObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _forward_call(buffered *self, PyObject *name, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2346,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2347,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2343
    functionDepth: 2
    functionLinenumber: 2343
    functionLinenumberEnd: 2348
    functionName: bufferedrwpair_read
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_read(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2353,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2354,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2350
    functionDepth: 2
    functionLinenumber: 2350
    functionLinenumberEnd: 2355
    functionName: bufferedrwpair_peek
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_peek(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2360,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2361,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2357
    functionDepth: 2
    functionLinenumber: 2357
    functionLinenumberEnd: 2362
    functionName: bufferedrwpair_read1
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_read1(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2367,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2368,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2364
    functionDepth: 2
    functionLinenumber: 2364
    functionLinenumberEnd: 2369
    functionName: bufferedrwpair_readinto
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_readinto(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2374,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2375,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2371
    functionDepth: 2
    functionLinenumber: 2371
    functionLinenumberEnd: 2376
    functionName: bufferedrwpair_readinto1
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_readinto1(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2381,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2382,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2378
    functionDepth: 2
    functionLinenumber: 2378
    functionLinenumberEnd: 2383
    functionName: bufferedrwpair_write
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_write(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2388,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2389,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2385
    functionDepth: 2
    functionLinenumber: 2385
    functionLinenumberEnd: 2390
    functionName: bufferedrwpair_flush
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_flush(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2395,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2396,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2392
    functionDepth: 2
    functionLinenumber: 2392
    functionLinenumberEnd: 2397
    functionName: bufferedrwpair_readable
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_readable(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2402,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2403,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2399
    functionDepth: 2
    functionLinenumber: 2399
    functionLinenumberEnd: 2404
    functionName: bufferedrwpair_writable
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_writable(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2409,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2411,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2411,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:2413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2416,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2418,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2418,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/bufferedio.c:2420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2406
    functionDepth: 2
    functionLinenumber: 2406
    functionLinenumberEnd: 2424
    functionName: bufferedrwpair_close
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - _forward_call
    - Py_CLEAR
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_close(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2429,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2430,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2436,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2438,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2426
    functionDepth: 2
    functionLinenumber: 2426
    functionLinenumberEnd: 2439
    functionName: bufferedrwpair_isatty
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _forward_call
    - Py_DECREF
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_isatty(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rwpair_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2444,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:2446,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:2450,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2441
    functionDepth: 1
    functionLinenumber: 2441
    functionLinenumberEnd: 2451
    functionName: bufferedrwpair_closed_get
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyErr_SetString
    - _Py_ID
    - rwpair_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_closed_get(PyObject *op, void *Py_UNUSED(dummy))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:2478,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2478,1
    - Dst: _PyIOBase_check_seekable
      Src: /src/cpython/Modules/_io/bufferedio.c:2479,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/bufferedio.c:2482,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/bufferedio.c:2485,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2489,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2490,1
    - Dst: _buffered_init
      Src: /src/cpython/Modules/_io/bufferedio.c:2495,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2497,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2498,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2501,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - raw
    - buffer_size
    argTypes:
    - buffered*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2470
    functionDepth: 4
    functionLinenumber: 2470
    functionLinenumberEnd: 2506
    functionName: _io_BufferedRandom___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyIOBase_check_writable
    - _PyIOBase_check_readable
    - _bufferedreader_reset_buf
    - find_io_state_by_def
    - Py_IS_TYPE
    - _buffered_init
    - _bufferedwriter_reset_buf
    - Py_XSETREF
    - _PyIOBase_check_seekable
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: "int _io_BufferedRandom___init___impl(buffered *self, PyObject *raw,\n
      \                                Py_ssize_t buffer_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2508
    functionDepth: 0
    functionLinenumber: 2508
    functionLinenumberEnd: 2509
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - 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: iobase_CAST
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iobase_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_io/iobase.c:83,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: iobase_is_closed
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_HasAttrWithError
    linkageType: ''
    returnType: int
    signature: int iobase_is_closed(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/iobase.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - message
    argTypes:
    - _PyIO_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: iobase_unsupported
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 5
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_unsupported(_PyIO_State *state, const char *message)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/iobase.c:122,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cls
    - Py_UNUSED
    - Py_UNUSED
    argTypes:
    - PyObject*
    - PyTypeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: _io__IOBase_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_unsupported
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__IOBase_seek_impl(PyObject *self, PyTypeObject *cls,\n
      \                     int Py_UNUSED(offset), int Py_UNUSED(whence))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/iobase.c:136,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: _io__IOBase_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_tell_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/iobase.c:156,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED(size)
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: _io__IOBase_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_unsupported
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__IOBase_truncate_impl(PyObject *self, PyTypeObject
      *cls,\n                          PyObject *Py_UNUSED(size))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobase_is_closed
      Src: /src/cpython/Modules/_io/iobase.c:175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/iobase.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 184
    functionName: _io__IOBase_flush_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - iobase_is_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_flush_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iobase_is_closed
      Src: /src/cpython/Modules/_io/iobase.c:189,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/iobase.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: iobase_closed_get
    functionSourceFile: /src/cpython/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_GetOptionalAttr
      Src: /src/cpython/Modules/_io/iobase.c:203,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:203,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/iobase.c:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/iobase.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: iobase_check_closed
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int iobase_check_closed(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/cpython/Modules/_io/iobase.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: _PyIOBase_check_closed
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_check_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_closed(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/iobase.c:230,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:230,1
    - Dst: _PyIOBase_check_seekable
      Src: /src/cpython/Modules/_io/iobase.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: iobase_check_seekable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - _PyIOBase_check_seekable
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_check_seekable(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/iobase.c:237,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:237,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/iobase.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: iobase_check_readable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - _PyIOBase_check_readable
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_check_readable(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/iobase.c:244,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:244,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/iobase.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: iobase_check_writable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - Py_TYPE
    - _PyIOBase_check_writable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_check_writable(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/iobase.c:251,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_io/iobase.c:252,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: _PyIOBase_cannot_pickle
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyType_Name
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_cannot_pickle(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iobase_is_closed
      Src: /src/cpython/Modules/_io/iobase.c:272,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/iobase.c:281,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/iobase.c:282,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/iobase.c:283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:283,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/iobase.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 290
    functionName: _io__IOBase_close_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - iobase_is_closed
    - PyErr_GetRaisedException
    - _Py_ID
    - PyObject_SetAttr
    - _PyFile_Flush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_close_impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/iobase.c:301,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/iobase.c:305,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:305,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/iobase.c:306,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/iobase.c:310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:311,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/iobase.c:313,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/iobase.c:318,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:318,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/iobase.c:319,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:320,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:320,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_io/iobase.c:322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:326,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/iobase.c:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 332
    functionName: iobase_finalize
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyErr_GetRaisedException
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyErr_FormatUnraisable
    - PyObject_SetAttr
    - PyErr_Clear
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void iobase_finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_io/iobase.c:341,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/_io/iobase.c:343,1
    - Dst: PyObject_CallFinalizer
      Src: /src/cpython/Modules/_io/iobase.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: _PyIOBase_finalize
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 2
    functionsReached:
    - PyObject_CallFinalizer
    - PyObject_CallFinalizerFromDealloc
    - Py_REFCNT
    linkageType: ''
    returnType: int
    signature: int _PyIOBase_finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobase_CAST
      Src: /src/cpython/Modules/_io/iobase.c:353,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/iobase.c:354,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:354,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/iobase.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: iobase_traverse
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int iobase_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobase_CAST
      Src: /src/cpython/Modules/_io/iobase.c:362,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: iobase_clear
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int iobase_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobase_CAST
      Src: /src/cpython/Modules/_io/iobase.c:377,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/iobase.c:378,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_io/iobase.c:381,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:381,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/iobase.c:382,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:382,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:386,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/iobase.c:387,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/iobase.c:388,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:389,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/iobase.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 392
    functionName: iobase_dealloc
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - Py_CLEAR
    - FT_CLEAR_WEAKREFS
    - _PyIOBase_finalize
    - _PyObject_GC_UNTRACK
    - PyTypeObject*::tp_free
    - iobase_CAST
    - Py_TYPE
    - _PyType_HasFeature
    linkageType: ''
    returnType: void
    signature: void iobase_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: _io__IOBase_seekable_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_seekable_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:415,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:415,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:419,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - self
    - args
    argTypes:
    - _PyIO_State*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 427
    functionName: _PyIOBase_check_seekable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 3
    functionsReached:
    - iobase_unsupported
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_seekable(_PyIO_State *state, 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: 442
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: _io__IOBase_readable_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readable_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:448,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:448,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:452,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - self
    - args
    argTypes:
    - _PyIO_State*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 460
    functionName: _PyIOBase_check_readable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 4
    functionsReached:
    - iobase_unsupported
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_readable(_PyIO_State *state, 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: 475
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: _io__IOBase_writable_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_writable_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:481,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:481,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:485,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - self
    - args
    argTypes:
    - _PyIO_State*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 493
    functionName: _PyIOBase_check_writable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 4
    functionsReached:
    - iobase_unsupported
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_writable(_PyIO_State *state, PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/cpython/Modules/_io/iobase.c:500,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/iobase.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: iobase_enter
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - iobase_check_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_enter(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:509,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: iobase_exit
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_exit(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/iobase.c:530,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: _io__IOBase_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_unsupported
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_fileno_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/cpython/Modules/_io/iobase.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: _io__IOBase_isatty_impl
    functionSourceFile: /src/cpython/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_GetOptionalAttr
      Src: /src/cpython/Modules/_io/iobase.c:576,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:576,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_io/iobase.c:580,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:582,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:586,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_io/iobase.c:591,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_io/iobase.c:591,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:595,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/iobase.c:600,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/iobase.c:601,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:604,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:607,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:609,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:612,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:628,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/iobase.c:631,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:631,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:635,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/iobase.c:640,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/iobase.c:641,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:644,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:648,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:652,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Modules/_io/iobase.c:653,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:654,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/iobase.c:657,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:657,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:658,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:660,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:662,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:662,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/iobase.c:666,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:666,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:667,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:668,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:669,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:673,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 82
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 675
    functionName: _io__IOBase_readline_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyBytes_Check
    - PyObject_CallOneArg
    - PyBytes_GET_SIZE
    - _PyIO_trap_eintr
    - PyErr_Format
    - Py_DECREF
    - _PyObject_CallMethod
    - _Py_ID
    - PyByteArray_AS_STRING
    - PyBytes_FromStringAndSize
    - memcpy
    - PyByteArray_GET_SIZE
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyObject_GetOptionalAttr
    - _PyLong_GetOne
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    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/cpython/Modules/_io/iobase.c:680,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/iobase.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 684
    functionName: iobase_iter
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - iobase_check_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_iter(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:689,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:689,1
    - Dst: PyObject_Size
      Src: /src/cpython/Modules/_io/iobase.c:694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 701
    functionName: iobase_iternext
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_Size
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_iternext(PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/iobase.c:722,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/iobase.c:730,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:735,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_io/iobase.c:739,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_io/iobase.c:746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/iobase.c:748,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/iobase.c:755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:756,1
    - Dst: PyObject_Size
      Src: /src/cpython/Modules/_io/iobase.c:759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:769,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:774,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - self
    - hint
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 776
    functionName: _io__IOBase_readlines_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - _Py_ID
    - PyList_Append
    - PyIter_Next
    - PyObject_CallMethodObjArgs
    - PyObject_Size
    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/cpython/Modules/_io/iobase.c:795,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_io/iobase.c:798,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_io/iobase.c:803,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/iobase.c:805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:806,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/iobase.c:815,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:815,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:824,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 826
    functionName: _io__IOBase_writelines
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyIO_trap_eintr
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - _Py_ID
    - iobase_check_closed
    - PyIter_Next
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_writelines(PyObject *self, PyObject *lines)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 829
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:927,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:927,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_io/iobase.c:932,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/iobase.c:936,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:938,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/iobase.c:942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:943,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/iobase.c:944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:945,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/iobase.c:949,1
    - Dst: PyByteArray_AsString
      Src: /src/cpython/Modules/_io/iobase.c:949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 952
    functionName: _io__RawIOBase_read_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - PyBytes_FromStringAndSize
    - PyObject_CallMethodNoArgs
    - PyObject_CallMethodObjArgs
    - PyNumber_AsSsize_t
    - PyByteArray_AsString
    - PyByteArray_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/iobase.c:966,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/iobase.c:973,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:973,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:981,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:986,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:989,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/iobase.c:992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:994,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/iobase.c:995,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:1000,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/iobase.c:1003,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:1004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:1006,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_io/iobase.c:1010,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_io/iobase.c:1010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:1011,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 1013
    functionName: _io__RawIOBase_readall_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyIO_trap_eintr
    - Py_DECREF
    - _PyObject_CallMethod
    - PyList_Append
    - _Py_ID
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyBytes_Check
    - _Py_SINGLETON
    - PyBytes_Join
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__RawIOBase_readall_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_io/iobase.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1020
    functionName: rawiobase_readinto
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/iobase.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1027
    functionName: rawiobase_write
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rawiobase_write(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - message
    argTypes:
    - _PyIO_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: _unsupported
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 11
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _unsupported(_PyIO_State *state, const char *message)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/textio.c:70,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: _io__TextIOBase_detach_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_detach_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/textio.c:91,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED
    argTypes:
    - PyObject*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: _io__TextIOBase_read_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__TextIOBase_read_impl(PyObject *self, PyTypeObject
      *cls,\n                          int Py_UNUSED(size))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/textio.c:112,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED
    argTypes:
    - PyObject*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: _io__TextIOBase_readline_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__TextIOBase_readline_impl(PyObject *self, PyTypeObject
      *cls,\n                              int Py_UNUSED(size))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/textio.c:133,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED(s)
    argTypes:
    - PyObject*
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: _io__TextIOBase_write_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    - get_io_state_by_cls
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io__TextIOBase_write_impl(PyObject *self, PyTypeObject
      *cls,\n                           const char *Py_UNUSED(s))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _io__TextIOBase_encoding_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_encoding_get_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: _io__TextIOBase_newlines_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_newlines_get_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: _io__TextIOBase_errors_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_errors_get_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: nldecoder_object_CAST
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nldecoder_object_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:255,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:258,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:261,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:262,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - self
    - decoder
    - translate
    - errors
    argTypes:
    - nldecoder_object*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 268
    functionName: _io_IncrementalNewlineDecoder___init___impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _Py_ID
    - Py_XSETREF
    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: nldecoder_object_CAST
      Src: /src/cpython/Modules/_io/textio.c:273,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:274,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:275,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: incrementalnewlinedecoder_traverse
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - nldecoder_object_CAST
    linkageType: ''
    returnType: int
    signature: int incrementalnewlinedecoder_traverse(PyObject *op, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nldecoder_object_CAST
      Src: /src/cpython/Modules/_io/textio.c:283,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:284,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: incrementalnewlinedecoder_clear
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - nldecoder_object_CAST
    linkageType: ''
    returnType: int
    signature: int incrementalnewlinedecoder_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nldecoder_object_CAST
      Src: /src/cpython/Modules/_io/textio.c:292,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:293,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/textio.c:294,1
    - Dst: incrementalnewlinedecoder_clear
      Src: /src/cpython/Modules/_io/textio.c:295,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/textio.c:296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: incrementalnewlinedecoder_dealloc
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - incrementalnewlinedecoder_clear
    - PyTypeObject*::tp_free
    - nldecoder_object_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void incrementalnewlinedecoder_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:305,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:306,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - decoded
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 313
    functionName: check_decoded
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_DECREF
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_decoded(PyObject *decoded)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: CHECK_INITIALIZED_DECODER
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INITIALIZED_DECODER(self)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: nldecoder_object_CAST
      Src: /src/cpython/Modules/_io/textio.c:333,1
    - Dst: CHECK_INITIALIZED_DECODER
      Src: /src/cpython/Modules/_io/textio.c:335,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/textio.c:339,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:340,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:343,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:346,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:349,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Modules/_io/textio.c:356,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Modules/_io/textio.c:357,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:360,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:361,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/_io/textio.c:362,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:363,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:363,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/textio.c:364,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_io/textio.c:374,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:376,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/textio.c:379,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:393,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:394,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:395,1
    - Dst: memchr
      Src: /src/cpython/Modules/_io/textio.c:404,1
    - Dst: memchr
      Src: /src/cpython/Modules/_io/textio.c:412,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:420,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:422,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:443,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:445,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:449,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:466,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:467,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/textio.c:475,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/textio.c:477,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:484,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/_io/textio.c:485,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/_io/textio.c:487,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:492,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/_io/textio.c:498,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/_io/textio.c:503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:505,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_io/textio.c:506,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/textio.c:507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:517,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 125
    argCount: 3
    argNames:
    - myself
    - input
    - final
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 519
    functionName: _PyIncrementalNewlineDecoder_decode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - PyUnicode_FromKindAndData
    - PyMem_Free
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_READ_CHAR
    - PyUnicode_Substring
    - Py_DECREF
    - _Py_ID
    - nldecoder_object_CAST
    - Py_NewRef
    - check_decoded
    - memcpy
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - PyMem_Malloc
    - CHECK_INITIALIZED_DECODER
    - PyObject_CallMethodObjArgs
    - PyUnicode_WRITE
    - memchr
    - PyUnicode_New
    - PyUnicode_DATA
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyIncrementalNewlineDecoder_decode(PyObject *myself,\n
      \                                   PyObject *input, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/cpython/Modules/_io/textio.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - nldecoder_object*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 533
    functionName: _io_IncrementalNewlineDecoder_decode_impl
    functionSourceFile: /src/cpython/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: CHECK_INITIALIZED_DECODER
      Src: /src/cpython/Modules/_io/textio.c:546,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:549,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:550,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:553,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:556,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:562,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:566,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_io/textio.c:569,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - nldecoder_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 576
    functionName: _io_IncrementalNewlineDecoder_getstate_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_BuildValue
    - Py_DECREF
    - PyArg_ParseTuple
    - PyTuple_Check
    - Py_GetConstant
    - PyErr_SetString
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED_DECODER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_getstate_impl(nldecoder_object *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED_DECODER
      Src: /src/cpython/Modules/_io/textio.c:592,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:594,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:595,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:598,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:608,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - nldecoder_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 614
    functionName: _io_IncrementalNewlineDecoder_setstate_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethod
    - PyArg_ParseTuple
    - PyTuple_Check
    - PyErr_SetString
    - _Py_ID
    - CHECK_INITIALIZED_DECODER
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io_IncrementalNewlineDecoder_setstate_impl(nldecoder_object
      *self,\n                                            PyObject *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED_DECODER
      Src: /src/cpython/Modules/_io/textio.c:624,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:629,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - nldecoder_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 632
    functionName: _io_IncrementalNewlineDecoder_reset_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    - CHECK_INITIALIZED_DECODER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_reset_impl(nldecoder_object *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nldecoder_object_CAST
      Src: /src/cpython/Modules/_io/textio.c:637,1
    - Dst: CHECK_INITIALIZED_DECODER
      Src: /src/cpython/Modules/_io/textio.c:638,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/textio.c:642,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/textio.c:644,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/textio.c:646,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:648,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:650,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:652,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 659
    functionName: incrementalnewlinedecoder_newlines_get
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_FromString
    - CHECK_INITIALIZED_DECODER
    - nldecoder_object_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      incrementalnewlinedecoder_newlines_get(PyObject *op, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 727
    functionName: textio_CAST
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: textio_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:737,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_io/textio.c:738,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 739
    functionName: ascii_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_AsASCIIString
    - textio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_encode(PyObject *op, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:744,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_io/textio.c:745,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: utf16be_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeUTF16
    - PyUnicode_AsUTF8
    - textio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf16be_encode(PyObject *op, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:751,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_io/textio.c:752,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: utf16le_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeUTF16
    - PyUnicode_AsUTF8
    - textio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf16le_encode(PyObject *op, PyObject *text)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:758,1
    - Dst: utf16be_encode
      Src: /src/cpython/Modules/_io/textio.c:762,1
    - Dst: utf16le_encode
      Src: /src/cpython/Modules/_io/textio.c:764,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_io/textio.c:767,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 768
    functionName: utf16_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - utf16le_encode
    - utf16be_encode
    - PyUnicode_AsUTF8
    - _PyUnicode_EncodeUTF16
    - textio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf16_encode(PyObject *op, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:773,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_io/textio.c:774,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: utf32be_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - textio_CAST
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf32be_encode(PyObject *op, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:780,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_io/textio.c:781,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 782
    functionName: utf32le_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - textio_CAST
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf32le_encode(PyObject *op, PyObject *text)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:787,1
    - Dst: utf32be_encode
      Src: /src/cpython/Modules/_io/textio.c:791,1
    - Dst: utf32le_encode
      Src: /src/cpython/Modules/_io/textio.c:793,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_io/textio.c:796,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 797
    functionName: utf32_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - utf32le_encode
    - utf32be_encode
    - PyUnicode_AsUTF8
    - _PyUnicode_EncodeUTF32
    - textio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf32_encode(PyObject *op, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:802,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_io/textio.c:803,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 804
    functionName: utf8_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - textio_CAST
    - _PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf8_encode(PyObject *op, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:809,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_io/textio.c:810,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 811
    functionName: latin1_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsLatin1String
    - PyUnicode_AsUTF8
    - textio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      latin1_encode(PyObject *op, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - encodefunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: is_asciicompat_encoding
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/textio.c:847,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - newline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 852
    functionName: validate_newline
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/textio.c:862,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:873,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:873,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_io/textio.c:874,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_io/textio.c:875,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:886,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: 872
        line_start: 872
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 888
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 888
    functionName: set_newline
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_XDECREF
    - PyUnicode_FromString
    - strcmp
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: int
    signature: int set_newline(textio *self, const char *newline)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:897,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:897,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:901,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:902,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:909,1
    - Dst: _PyCodecInfo_GetIncrementalDecoder
      Src: /src/cpython/Modules/_io/textio.c:910,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_io/textio.c:916,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:921,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - codec_info
    - errors
    argTypes:
    - textio*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 925
    functionName: _textiowrapper_set_decoder
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - _Py_ID
    - PyObject_CallFunctionObjArgs
    - PyObject_CallMethodNoArgs
    - _PyCodecInfo_GetIncrementalDecoder
    - Py_XSETREF
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int _textiowrapper_set_decoder(textio *self, PyObject *codec_info,\n
      \                          const char *errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:933,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/cpython/Modules/_io/textio.c:934,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/textio.c:936,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:936,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - decoder
    - bytes
    - eof
    argTypes:
    - _PyIO_State*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 944
    functionName: _textiowrapper_decode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyIncrementalNewlineDecoder_decode
    - PyObject_CallMethodObjArgs
    - Py_IS_TYPE
    - check_decoded
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_textiowrapper_decode(_PyIO_State *state, PyObject *decoder,
      PyObject *bytes,\n                      int eof)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:953,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:953,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:958,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:965,1
    - Dst: _PyCodecInfo_GetIncrementalEncoder
      Src: /src/cpython/Modules/_io/textio.c:967,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:972,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:972,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:975,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_io/textio.c:978,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:985,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - codec_info
    - errors
    argTypes:
    - textio*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 988
    functionName: _textiowrapper_set_encoder
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - _PyUnicode_EqualToASCIIString
    - PyObject_CallMethodNoArgs
    - PyUnicode_Check
    - _PyCodecInfo_GetIncrementalEncoder
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int _textiowrapper_set_encoder(textio *self, PyObject *codec_info,\n
      \                          const char *errors)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:999,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1000,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:1005,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:1005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1006,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1013,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1014,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:1014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1018,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1022
    functionName: _textiowrapper_fix_encoder_state
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyObject_RichCompareBool
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_fix_encoder_state(textio *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1027,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_io/textio.c:1029,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Modules/_io/textio.c:1032,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Modules/_io/textio.c:1045,1
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Modules/_io/textio.c:1049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - errors
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (errors != NULL && errors != Py_None)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1055
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1055
    functionName: io_check_errors
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCodec_LookupError
    - _PyUnicode_AsUTF8NoNUL
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetConfig
    - assert
    linkageType: ''
    returnType: int
    signature: int io_check_errors(PyObject *errors)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_io/textio.c:1113,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Modules/_io/textio.c:1114,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_io/textio.c:1115,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1123,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1125,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1131,1
    - Dst: io_check_errors
      Src: /src/cpython/Modules/_io/textio.c:1134,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Modules/_io/textio.c:1137,1
    - Dst: validate_newline
      Src: /src/cpython/Modules/_io/textio.c:1142,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1146,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1147,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1148,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1149,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1150,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1151,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1152,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1153,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1154,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1155,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_io/textio.c:1162,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:1163,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_io/textio.c:1165,1
    - Dst: _Py_GetLocaleEncodingObject
      Src: /src/cpython/Modules/_io/textio.c:1166,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1170,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1170,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1174,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/textio.c:1179,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:1184,1
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/cpython/Modules/_io/textio.c:1190,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1192,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1200,1
    - Dst: set_newline
      Src: /src/cpython/Modules/_io/textio.c:1204,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1208,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/textio.c:1211,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1211,1
    - Dst: _textiowrapper_set_decoder
      Src: /src/cpython/Modules/_io/textio.c:1213,1
    - Dst: _textiowrapper_set_encoder
      Src: /src/cpython/Modules/_io/textio.c:1217,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1221,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1223,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1224,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1225,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:1227,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1227,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1234,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:1238,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1238,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:1241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1242,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_io/textio.c:1247,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1247,1
    - Dst: _textiowrapper_fix_encoder_state
      Src: /src/cpython/Modules/_io/textio.c:1254,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1262,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 128
    argCount: 7
    argNames:
    - self
    - buffer
    - encoding
    - errors
    - newline
    - line_buffering
    - write_through
    argTypes:
    - textio*
    - PyObject*
    - char*
    - PyObject*
    - char*
    - int
    - int
    assertStmts:
    - condition: (PyUnicode_Check(self->encoding))
      pos:
        line_end: 1169
        line_start: 1169
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1264
      start: 1098
    functionDepth: 3
    functionLinenumber: 1098
    functionLinenumberEnd: 1264
    functionName: _io_TextIOWrapper___init___impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - validate_newline
    - set_newline
    - Py_CLEAR
    - _textiowrapper_set_encoder
    - _PyUnicode_AsUTF8NoNUL
    - find_io_state_by_def
    - Py_IS_TYPE
    - strcmp
    - PyErr_Format
    - PyUnicode_Check
    - Py_DECREF
    - _Py_GetLocaleEncodingObject
    - _PyCodec_LookupTextEncoding
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - _textiowrapper_set_decoder
    - io_check_errors
    - Py_TYPE
    - PyErr_WarnEx
    - PyObject_IsTrue
    - PyObject_HasAttrWithError
    - _Py_DECLARE_STR
    - PyObject_GetOptionalAttr
    - _Py_STR
    - _PyInterpreterState_GET
    - _textiowrapper_fix_encoder_state
    - _PyInterpreterState_GetConfig
    - PyUnicode_AsUTF8
    - PyUnicode_FromString
    - assert
    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/cpython/Modules/_io/textio.c:1277,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/textio.c:1278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - default_value
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1282
    functionName: convert_optional_bool
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: int convert_optional_bool(PyObject *obj, int default_value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1298,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_io/textio.c:1301,1
    - Dst: _Py_GetLocaleEncodingObject
      Src: /src/cpython/Modules/_io/textio.c:1302,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1307,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1310,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1313,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1318,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1324,1
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/cpython/Modules/_io/textio.c:1329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1332,1
    - Dst: _textiowrapper_set_decoder
      Src: /src/cpython/Modules/_io/textio.c:1335,1
    - Dst: _textiowrapper_set_encoder
      Src: /src/cpython/Modules/_io/textio.c:1336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1342,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/textio.c:1344,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/textio.c:1345,1
    - Dst: _textiowrapper_fix_encoder_state
      Src: /src/cpython/Modules/_io/textio.c:1347,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - self
    - encoding
    - errors
    - newline_changed
    argTypes:
    - textio*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1348
    functionName: textiowrapper_change_encoding
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - _Py_GetLocaleEncodingObject
    - _PyCodec_LookupTextEncoding
    - _Py_ID
    - _textiowrapper_set_encoder
    - _textiowrapper_fix_encoder_state
    - Py_SETREF
    - PyUnicode_AsUTF8
    - _textiowrapper_set_decoder
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: int
    signature: "int textiowrapper_change_encoding(textio *self, PyObject *encoding,\n
      \                             PyObject *errors, int newline_changed)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1377,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1378,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1380,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1383,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1384,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1386,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1390,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1392,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1394,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:1400,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1408,1
    - Dst: validate_newline
      Src: /src/cpython/Modules/_io/textio.c:1409,1
    - Dst: convert_optional_bool
      Src: /src/cpython/Modules/_io/textio.c:1414,1
    - Dst: convert_optional_bool
      Src: /src/cpython/Modules/_io/textio.c:1419,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:1425,1
    - Dst: set_newline
      Src: /src/cpython/Modules/_io/textio.c:1430,1
    - Dst: textiowrapper_change_encoding
      Src: /src/cpython/Modules/_io/textio.c:1434,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    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: 1442
      start: 1366
    functionDepth: 3
    functionLinenumber: 1366
    functionLinenumberEnd: 1442
    functionName: _io_TextIOWrapper_reconfigure_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyFile_Flush
    - validate_newline
    - _unsupported
    - PyUnicode_AsUTF8
    - textiowrapper_change_encoding
    - PyErr_Format
    - PyUnicode_Check
    - set_newline
    - Py_TYPE
    - convert_optional_bool
    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: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:1447,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1449,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1450,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1451,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1452,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1453,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1454,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1455,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1456,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1457,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1458,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1462
    functionName: textiowrapper_clear
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - textio_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int textiowrapper_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:1467,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1468,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/textio.c:1470,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/textio.c:1473,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/textio.c:1474,1
    - Dst: textiowrapper_clear
      Src: /src/cpython/Modules/_io/textio.c:1475,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/textio.c:1476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1464
    functionDepth: 2
    functionLinenumber: 1464
    functionLinenumberEnd: 1478
    functionName: textiowrapper_dealloc
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - textio_CAST
    - FT_CLEAR_WEAKREFS
    - _PyObject_GC_UNTRACK
    - _PyIOBase_finalize
    - textiowrapper_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void textiowrapper_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:1483,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1484,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1484,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1485,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1486,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1487,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1488,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1489,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1490,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1491,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1492,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1493,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1494,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1498
    functionName: textiowrapper_traverse
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - textio_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int textiowrapper_traverse(PyObject *op, 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: 1529
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1529
    functionName: CHECK_CLOSED
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 8
    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: 1536
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1536
    functionName: CHECK_INITIALIZED
    functionSourceFile: /src/cpython/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: 1544
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1544
    functionName: CHECK_ATTACHED
    functionSourceFile: /src/cpython/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: 1555
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1555
    functionName: CHECK_ATTACHED_INT
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ATTACHED_INT(self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:1567,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:1568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1575
    functionName: _io_TextIOWrapper_detach_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyFile_Flush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_detach_impl(textio *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/textio.c:1582,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1590,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1591,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1593,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1594,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_io/textio.c:1594,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1595,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1595,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/textio.c:1596,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:1597,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1597,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1603,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_io/textio.c:1603,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/textio.c:1604,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_io/textio.c:1609,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:1612,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_io/textio.c:1613,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1616,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1617,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_io/textio.c:1617,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:1618,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1619,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1622,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1622,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_io/textio.c:1623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1624,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:1628,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1636,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1640,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1640,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/textio.c:1641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1647,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts:
    - condition: (PyUnicode_GET_LENGTH(pending) == self->pending_bytes_count)
      pos:
        line_end: 1594
        line_start: 1594
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyUnicode_IS_ASCII(obj))
      pos:
        line_end: 1616
        line_start: 1616
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyUnicode_IS_ASCII(pending))
      pos:
        line_end: 1593
        line_start: 1593
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyList_Check(pending))
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (pos == self->pending_bytes_count)
      pos:
        line_end: 1630
        line_start: 1630
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyBytes_Check(obj))
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1649
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1649
    functionName: _textiowrapper_writeflush
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - PyBytes_Check
    - PyUnicode_IS_ASCII
    - _PyIO_trap_eintr
    - PyList_GET_SIZE
    - PyBytes_AsStringAndSize
    - PyUnicode_Check
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_DECREF
    - _Py_ID
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyBytes_AsString
    - memcpy
    - PyUnicode_GET_LENGTH
    - PyList_GET_ITEM
    - PyUnicode_DATA
    - PyObject_CallMethodOneArg
    - assert
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_writeflush(textio *self)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:1668,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:1669,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:1672,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1675,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1677,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_io/textio.c:1680,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1680,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:1684,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1686,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_io/textio.c:1696,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1696,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_io/textio.c:1701,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1703,1
    - Dst: is_asciicompat_encoding
      Src: /src/cpython/Modules/_io/textio.c:1704,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1705,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1713,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1716,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1719,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1720,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1723,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1729,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:1732,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:1746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1747,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1754,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_io/textio.c:1757,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:1758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1760,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1765,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_io/textio.c:1765,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_io/textio.c:1766,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_io/textio.c:1767,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:1771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1775,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:1781,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:1786,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:1792,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1793,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:1797,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1800,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/textio.c:1803,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 93
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts:
    - condition: (self->pending_bytes_count == 0)
      pos:
        line_end: 1753
        line_start: 1753
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (!PyList_CheckExact(self->pending_bytes))
      pos:
        line_end: 1764
        line_start: 1764
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1804
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1804
    functionName: _io_TextIOWrapper_write_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyBytes_Check
    - PyUnicode_IS_ASCII
    - PyBytes_GET_SIZE
    - _textiowrapper_writeflush
    - _PyFile_Flush
    - CHECK_CLOSED
    - textiowrapper_set_decoded_chars
    - Py_CLEAR
    - Py_INCREF
    - is_asciicompat_encoding
    - PyList_Append
    - PyUnicode_FindChar
    - PyErr_Format
    - PyList_CheckExact
    - Py_DECREF
    - _PyObject_CallMethod
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - Py_TYPE
    - PyUnicode_GET_LENGTH
    - _unsupported
    - PyLong_FromSsize_t
    - PyList_SET_ITEM
    - CHECK_ATTACHED
    - PyObject_CallMethodOneArg
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_write_impl(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:1811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1813
    functionName: textiowrapper_set_decoded_chars
    functionSourceFile: /src/cpython/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: Py_GetConstant
      Src: /src/cpython/Modules/_io/textio.c:1822,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1824,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1827,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:1833,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts:
    - condition: (avail >= 0)
      pos:
        line_end: 1826
        line_start: 1826
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1845
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1845
    functionName: textiowrapper_get_decoded_chars
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - Py_NewRef
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_get_decoded_chars(textio *self, Py_ssize_t n)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:1867,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:1875,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1876,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:1882,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:1883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1885,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:1888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1891,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1895,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1896,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1899,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1900,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1903,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1905,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_io/textio.c:1910,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/textio.c:1912,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_io/textio.c:1912,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1916,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1917,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1919,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/textio.c:1923,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1924,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1927,1
    - Dst: _textiowrapper_decode
      Src: /src/cpython/Modules/_io/textio.c:1934,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/textio.c:1936,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:1940,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1941,1
    - Dst: PyBytes_Concat
      Src: /src/cpython/Modules/_io/textio.c:1954,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:1959,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:1964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1966,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1971,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1972,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1973,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 2
    argNames:
    - self
    - size_hint
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1849
    functionDepth: 4
    functionLinenumber: 1849
    functionLinenumberEnd: 1975
    functionName: textiowrapper_read_chunk
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyBytes_Concat
    - Py_MAX
    - PyErr_SetString
    - PyBytes_Check
    - textiowrapper_set_decoded_chars
    - Py_INCREF
    - PyErr_Format
    - Py_BuildValue
    - Py_DECREF
    - PyTuple_Check
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - _textiowrapper_decode
    - PyObject_GetBuffer
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - PyArg_ParseTuple
    - _unsupported
    - PyLong_FromSsize_t
    - PyBuffer_Release
    - Py_XSETREF
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: int
    signature: int textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:1990,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:1991,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:1994,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:1997,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2002,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2008,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2009,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:2014,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/cpython/Modules/_io/textio.c:2015,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/textio.c:2018,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2020,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:2021,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2027,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_io/textio.c:2031,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2036,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2037,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2045,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2048,1
    - Dst: textiowrapper_read_chunk
      Src: /src/cpython/Modules/_io/textio.c:2052,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/textio.c:2056,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:2064,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2068,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2071,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2072,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2075,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2078,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_io/textio.c:2080,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:2081,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_io/textio.c:2081,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:2081,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2084,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2089,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2090,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 1984
    functionDepth: 5
    functionLinenumber: 1984
    functionLinenumberEnd: 2092
    functionName: _io_TextIOWrapper_read_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyUnicode_Join
    - PyErr_SetString
    - PyUnicode_AppendAndDel
    - _PyIncrementalNewlineDecoder_decode
    - _textiowrapper_writeflush
    - CHECK_CLOSED
    - textiowrapper_set_decoded_chars
    - Py_CLEAR
    - _PyIO_trap_eintr
    - PyList_Append
    - Py_IS_TYPE
    - textiowrapper_read_chunk
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - check_decoded
    - PyUnicode_GET_LENGTH
    - _Py_DECLARE_STR
    - _unsupported
    - textiowrapper_get_decoded_chars
    - _Py_STR
    - PyObject_CallMethodObjArgs
    - CHECK_ATTACHED
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2102,1
    - Dst: memchr
      Src: /src/cpython/Modules/_io/textio.c:2103,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2106,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2108,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: 2101
        line_start: 2101
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2114
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2114
    functionName: find_control_char
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - memchr
    - assert
    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/cpython/Modules/_io/textio.c:2125,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2142,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2148,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2153,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2162,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_io/textio.c:2163,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2165,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:2165,1
    - Dst: find_control_char
      Src: /src/cpython/Modules/_io/textio.c:2167,1
    - Dst: find_control_char
      Src: /src/cpython/Modules/_io/textio.c:2181,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2185,1
    - Dst: find_control_char
      Src: /src/cpython/Modules/_io/textio.c:2192,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: 2164
        line_start: 2164
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2200
      start: 2116
    functionDepth: 2
    functionLinenumber: 2116
    functionLinenumberEnd: 2200
    functionName: _PyIO_find_line_ending
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - find_control_char
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    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: 30
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:2209,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:2211,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2225,1
    - Dst: textiowrapper_read_chunk
      Src: /src/cpython/Modules/_io/textio.c:2226,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/textio.c:2230,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2240,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2241,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:2247,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2252,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_io/textio.c:2253,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2255,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2256,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:2261,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2262,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:2263,1
    - Dst: _PyIO_find_line_ending
      Src: /src/cpython/Modules/_io/textio.c:2265,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:2290,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:2294,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2298,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2302,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:2307,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2311,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2313,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2319,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:2320,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2321,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:2329,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2333,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2335,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2341,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_io/textio.c:2343,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:2343,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2346,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:2349,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2355,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2356,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2357,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 127
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts:
    - condition: (self->decoded_chars_used == 0)
      pos:
        line_end: 2251
        line_start: 2251
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2359
      start: 2202
    functionDepth: 5
    functionLinenumber: 2202
    functionLinenumberEnd: 2359
    functionName: _textiowrapper_readline
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyUnicode_Join
    - PyUnicode_Concat
    - _textiowrapper_writeflush
    - CHECK_CLOSED
    - textiowrapper_set_decoded_chars
    - Py_CLEAR
    - PyUnicode_KIND
    - _PyIO_trap_eintr
    - PyList_Append
    - PyUnicode_Substring
    - textiowrapper_read_chunk
    - Py_DECREF
    - Py_NewRef
    - _PyIO_find_line_ending
    - PyUnicode_GET_LENGTH
    - _Py_STR
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _textiowrapper_readline(textio *self, Py_ssize_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:2372,1
    - Dst: _textiowrapper_readline
      Src: /src/cpython/Modules/_io/textio.c:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2368
    functionDepth: 6
    functionLinenumber: 2368
    functionLinenumberEnd: 2374
    functionName: _io_TextIOWrapper_readline_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _textiowrapper_readline
    - CHECK_ATTACHED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readline_impl(textio *self, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Long
      Src: /src/cpython/Modules/_io/textio.c:2422,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_io/textio.c:2426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2431,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2433,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2434,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2435,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2436,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - cookie
    - cookieObj
    argTypes:
    - cookie_type*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2440
    functionName: textiowrapper_parse_cookie
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _PyLong_AsByteArray
    - PyNumber_Long
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int textiowrapper_parse_cookie(cookie_type *cookie, PyObject *cookieObj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2447,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2448,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2449,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2450,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2451,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_io/textio.c:2453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2442
    functionDepth: 1
    functionLinenumber: 2442
    functionLinenumberEnd: 2455
    functionName: textiowrapper_build_cookie
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _PyLong_FromByteArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_build_cookie(cookie_type *cookie)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2468,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2468,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2471,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - cookie
    argTypes:
    - textio*
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2479
    functionName: _textiowrapper_decoder_setstate
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - Py_DECREF
    - _PyObject_CallMethod
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_decoder_setstate(textio *self, cookie_type *cookie)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2486,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2486,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2490,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2490,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:2491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - start_of_stream
    argTypes:
    - textio*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2498
    functionName: _textiowrapper_encoder_reset
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_encoder_reset(textio *self, int start_of_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _textiowrapper_encoder_reset
      Src: /src/cpython/Modules/_io/textio.c:2504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cookie
    argTypes:
    - textio*
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2500
    functionDepth: 2
    functionLinenumber: 2500
    functionLinenumberEnd: 2506
    functionName: _textiowrapper_encoder_setstate
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/textio.c:2542,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:2543,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:2545,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2548,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:2552,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2557,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2569,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2570,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2570,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2577,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2582,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2586,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2590,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2591,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2593,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2596,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2599,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2599,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2600,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2605,1
    - Dst: _textiowrapper_encoder_reset
      Src: /src/cpython/Modules/_io/textio.c:2606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2607,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2617,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2623,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2628,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2633,1
    - Dst: textiowrapper_parse_cookie
      Src: /src/cpython/Modules/_io/textio.c:2640,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/textio.c:2644,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2647,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2651,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2653,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2654,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2658,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2664,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2664,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:2671,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2672,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:2675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2676,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:2680,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:2684,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/textio.c:2686,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2686,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:2689,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2692,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_io/textio.c:2695,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2696,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:2702,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:2705,1
    - Dst: _textiowrapper_encoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2710,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2715,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 147
    argCount: 3
    argNames:
    - self
    - cookieObj
    - whence
    argTypes:
    - textio*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2532
    functionDepth: 3
    functionLinenumber: 2532
    functionLinenumberEnd: 2718
    functionName: _io_TextIOWrapper_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromOff_t
    - Py_XDECREF
    - PyErr_SetString
    - PyBytes_Check
    - _PyFile_Flush
    - CHECK_CLOSED
    - textiowrapper_set_decoded_chars
    - Py_CLEAR
    - Py_INCREF
    - _PyLong_GetZero
    - textiowrapper_parse_cookie
    - PyObject_RichCompareBool
    - PyErr_Format
    - Py_BuildValue
    - Py_DECREF
    - _PyObject_CallMethod
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - check_decoded
    - _textiowrapper_encoder_setstate
    - Py_TYPE
    - _textiowrapper_decoder_setstate
    - _unsupported
    - PyObject_CallMethodObjArgs
    - _textiowrapper_encoder_reset
    - CHECK_ATTACHED
    - Py_XSETREF
    - PyUnicode_GetLength
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:2745,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:2746,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2749,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2753,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:2758,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2760,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2764,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2764,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2769,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_io/textio.c:2769,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_io/textio.c:2774,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/textio.c:2776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2778,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/textio.c:2779,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2783,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:2783,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:2784,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2787,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:2787,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:2789,1
    - Dst: textiowrapper_build_cookie
      Src: /src/cpython/Modules/_io/textio.c:2794,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2800,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2801,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2848,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:2848,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/textio.c:2849,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2852,1
    - Dst: DECODER_DECODE
      Src: /src/cpython/Modules/_io/textio.c:2854,1
    - Dst: DECODER_GETSTATE
      Src: /src/cpython/Modules/_io/textio.c:2856,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2875,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/textio.c:2881,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/textio.c:2892,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:2893,1
    - Dst: DECODER_DECODE
      Src: /src/cpython/Modules/_io/textio.c:2898,1
    - Dst: DECODER_GETSTATE
      Src: /src/cpython/Modules/_io/textio.c:2902,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2918,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2919,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:2920,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2923,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2927,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2934,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2939,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/textio.c:2942,1
    - Dst: textiowrapper_build_cookie
      Src: /src/cpython/Modules/_io/textio.c:2943,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/textio.c:2947,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2948,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2949,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/textio.c:2950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2951,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2952,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 132
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts:
    - condition: (PyTuple_Check(self->snapshot))
      pos:
        line_end: 2782
        line_start: 2782
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (skip_back <= PyBytes_GET_SIZE(next_input))
      pos:
        line_end: 2847
        line_start: 2847
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (self->decoded_chars == NULL || PyUnicode_GetLength(self->decoded_chars)
        == 0)
      pos:
        line_end: 2768
        line_start: 2768
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyBytes_Check(next_input))
      pos:
        line_end: 2786
        line_start: 2786
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2955
      start: 2730
    functionDepth: 3
    functionLinenumber: 2730
    functionLinenumberEnd: 2955
    functionName: _io_TextIOWrapper_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_ChainExceptions1
    - PyErr_SetString
    - DECODER_DECODE
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - _textiowrapper_writeflush
    - _PyFile_Flush
    - CHECK_CLOSED
    - PyLong_AsLong
    - PyErr_Occurred
    - textiowrapper_build_cookie
    - Py_SAFE_DOWNCAST
    - DECODER_GETSTATE
    - Py_DECREF
    - _PyObject_CallMethod
    - PyErr_GetRaisedException
    - PyTuple_Check
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - check_decoded
    - PyBytes_AS_STRING
    - PyUnicode_GET_LENGTH
    - _textiowrapper_decoder_setstate
    - PyLong_AsLongLong
    - PyArg_ParseTuple
    - _unsupported
    - CHECK_ATTACHED
    - PyUnicode_GetLength
    - PyObject_CallMethodOneArg
    - assert
    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: 2834
      start: 2805
    functionDepth: 0
    functionLinenumber: 2805
    functionLinenumberEnd: 2834
    functionName: DECODER_GETSTATE
    functionSourceFile: /src/cpython/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: 2843
      start: 2835
    functionDepth: 0
    functionLinenumber: 2835
    functionLinenumberEnd: 2843
    functionName: DECODER_DECODE
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/textio.c:2968,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2970,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2974,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2975
    functionName: _io_TextIOWrapper_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - _Py_ID
    - CHECK_ATTACHED
    - _PyFile_Flush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_truncate_impl(textio *self, PyObject *pos)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:2982,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:2983,1
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/textio.c:2985,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:2987,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/textio.c:2991,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2994,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:3000,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3000,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/textio.c:3001,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/textio.c:3005,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:3008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3009,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_io/textio.c:3012,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:3016,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3016,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:3020,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3021,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_io/textio.c:3024,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:3028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3030,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/textio.c:3032,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:3037,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/textio.c:3039,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 2977
    functionDepth: 1
    functionLinenumber: 2977
    functionLinenumberEnd: 3042
    functionName: textiowrapper_repr
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_XDECREF
    - Py_DECREF
    - Py_ReprEnter
    - PyObject_GetOptionalAttr
    - Py_ReprLeave
    - textio_CAST
    - PyUnicode_FromFormat
    - _Py_ID
    - PyUnicode_AppendAndDel
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3056,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3057,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3052
    functionDepth: 1
    functionLinenumber: 3052
    functionLinenumberEnd: 3058
    functionName: _io_TextIOWrapper_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - CHECK_ATTACHED
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_fileno_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3069,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3065
    functionDepth: 1
    functionLinenumber: 3065
    functionLinenumberEnd: 3071
    functionName: _io_TextIOWrapper_seekable_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - CHECK_ATTACHED
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seekable_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3082,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3083,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3078
    functionDepth: 1
    functionLinenumber: 3078
    functionLinenumberEnd: 3084
    functionName: _io_TextIOWrapper_readable_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - CHECK_ATTACHED
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readable_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3095,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3096,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3091
    functionDepth: 1
    functionLinenumber: 3091
    functionLinenumberEnd: 3097
    functionName: _io_TextIOWrapper_writable_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - CHECK_ATTACHED
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_writable_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3108,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3109,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3104
    functionDepth: 1
    functionLinenumber: 3104
    functionLinenumberEnd: 3110
    functionName: _io_TextIOWrapper_isatty_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - CHECK_ATTACHED
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_isatty_impl(textio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3121,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:3122,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:3124,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3126,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3127
      start: 3117
    functionDepth: 3
    functionLinenumber: 3117
    functionLinenumberEnd: 3127
    functionName: _io_TextIOWrapper_flush_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - CHECK_ATTACHED
    - _textiowrapper_writeflush
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_flush_impl(textio *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3140,1
    - Dst: _io_TextIOWrapper_closed_get_impl
      Src: /src/cpython/Modules/_io/textio.c:3142,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:3145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3146,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:3156,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3159,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/textio.c:3162,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:3165,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/textio.c:3166,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3169,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3169,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/textio.c:3171,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:3172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3176
      start: 3134
    functionDepth: 1
    functionLinenumber: 3134
    functionLinenumberEnd: 3176
    functionName: _io_TextIOWrapper_close_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Clear
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - CHECK_ATTACHED
    - _PyFile_Flush
    - PyObject_CallMethodOneArg
    - _io_TextIOWrapper_closed_get_impl
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_close_impl(textio *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/textio.c:3181,1
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:3183,1
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3185,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:3188,1
    - Dst: _textiowrapper_readline
      Src: /src/cpython/Modules/_io/textio.c:3190,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3193,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3193,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:3194,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:3195,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:3197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3198,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:3206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3208,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:3209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3215
      start: 3178
    functionDepth: 6
    functionLinenumber: 3178
    functionLinenumberEnd: 3215
    functionName: textiowrapper_iternext_lock_held
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - textio_CAST
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_IS_TYPE
    - Py_TYPE
    - CHECK_ATTACHED
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - _textiowrapper_readline
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_iternext_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/textio.c:3221,1
    - Dst: textiowrapper_iternext_lock_held
      Src: /src/cpython/Modules/_io/textio.c:3222,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/textio.c:3223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3217
    functionDepth: 7
    functionLinenumber: 3217
    functionLinenumberEnd: 3225
    functionName: textiowrapper_iternext
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - textiowrapper_iternext_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3237,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/textio.c:3238,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3233
    functionDepth: 1
    functionLinenumber: 3233
    functionLinenumberEnd: 3239
    functionName: _io_TextIOWrapper_name_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - _Py_ID
    - CHECK_ATTACHED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_name_get_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3251,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/textio.c:3252,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3247
    functionDepth: 1
    functionLinenumber: 3247
    functionLinenumberEnd: 3253
    functionName: _io_TextIOWrapper_closed_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 1
    functionsReached:
    - PyObject_GetAttr
    - _Py_ID
    - CHECK_ATTACHED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_closed_get_impl(textio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3266,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:3268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3261
    functionDepth: 1
    functionLinenumber: 3261
    functionLinenumberEnd: 3273
    functionName: _io_TextIOWrapper_newlines_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - CHECK_ATTACHED
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_newlines_get_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/textio.c:3285,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:3286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3281
    functionDepth: 0
    functionLinenumber: 3281
    functionLinenumberEnd: 3287
    functionName: _io_TextIOWrapper_errors_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_errors_get_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3299,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/textio.c:3300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3295
    functionDepth: 1
    functionLinenumber: 3295
    functionLinenumberEnd: 3301
    functionName: _io_TextIOWrapper__CHUNK_SIZE_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - CHECK_ATTACHED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper__CHUNK_SIZE_get_impl(textio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED_INT
      Src: /src/cpython/Modules/_io/textio.c:3314,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:3316,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/textio.c:3319,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/textio.c:3320,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:3323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3309
    functionDepth: 1
    functionLinenumber: 3309
    functionLinenumberEnd: 3329
    functionName: _io_TextIOWrapper__CHUNK_SIZE_set_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - CHECK_ATTACHED_INT
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _io_TextIOWrapper__CHUNK_SIZE_set_impl(textio *self, PyObject *value)
  - 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: bytesio_CAST
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bytesio_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: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: bytesiobuf_CAST
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bytesiobuf_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: check_closed
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 5
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_closed(bytesio *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:56,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: check_exports
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: int
    signature: int check_exports(bytesio *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: CHECK_CLOSED
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 14
    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: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: CHECK_EXPORTS
    functionSourceFile: /src/cpython/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: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: SHARED_BUF
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_BUF(self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:83,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:88,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:89,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:100,1
    - Dst: memchr
      Src: /src/cpython/Modules/_io/bytesio.c:101,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:107,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts:
    - condition: (self->pos >= 0)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (self->buf != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (len >= 0)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (self->pos < PY_SSIZE_T_MAX - len)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 111
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 111
    functionName: scan_eol_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - memchr
    - PyBytes_AS_STRING
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t scan_eol_lock_held(bytesio *self, Py_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:119,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:122,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:122,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:123,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:123,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:124,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:125,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bytesio.c:128,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:128,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:128,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/bytesio.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - size_t
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_SSIZE_RELAXED(self->exports) == 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (SHARED_BUF(self))
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (size >= (size_t)self->string_size)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: unshare_buffer_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBytes_FromStringAndSize
    - SHARED_BUF
    - Py_SETREF
    - memcpy
    - PyBytes_AS_STRING
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int unshare_buffer_lock_held(bytesio *self, size_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:140,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:142,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:143,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:143,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:147,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:171,1
    - Dst: unshare_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:172,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/bytesio.c:176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:183,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - size_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (FT_ATOMIC_LOAD_SSIZE_RELAXED(self->exports) == 0)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 186
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 186
    functionName: resize_buffer_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PyBytes_Resize
    - SHARED_BUF
    - unshare_buffer_lock_held
    - PyBytes_GET_SIZE
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int resize_buffer_lock_held(bytesio *self, size_t size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:195,1
    - Dst: check_closed
      Src: /src/cpython/Modules/_io/bytesio.c:197,1
    - Dst: check_exports
      Src: /src/cpython/Modules/_io/bytesio.c:200,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/bytesio.c:205,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:213,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:215,1
    - Dst: resize_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:216,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:221,1
    - Dst: unshare_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:222,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_io/bytesio.c:222,1
    - Dst: memset
      Src: /src/cpython/Modules/_io/bytesio.c:237,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:237,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bytesio.c:243,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:243,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/bytesio.c:252,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts:
    - condition: (self->pos >= 0)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 254
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 254
    functionName: write_bytes_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - resize_buffer_lock_held
    - Py_MAX
    - check_closed
    - memset
    - SHARED_BUF
    - unshare_buffer_lock_held
    - PyObject_GetBuffer
    - check_exports
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - memcpy
    - PyBytes_AS_STRING
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE write_bytes_lock_held(bytesio *self, PyObject *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:260,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:261,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: bytesio_get_closed
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesio_CAST
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_get_closed(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: _io_BytesIO_readable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bytesio.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: _io_BytesIO_writable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bytesio.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: _io_BytesIO_seekable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bytesio.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: _io_BytesIO_flush_impl
    functionSourceFile: /src/cpython/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: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/bytesio.c:346,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:351,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/bytesio.c:353,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:356,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_io/bytesio.c:357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - bytesio*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 360
    functionName: _io_BytesIO_getbuffer_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - get_io_state_by_cls
    - PyMemoryView_FromObject
    - Py_NewRef
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getbuffer_impl(bytesio *self, PyTypeObject *cls)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:373,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:374,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:375,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:375,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:378,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:379,1
    - Dst: unshare_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:380,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/bytesio.c:384,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:388,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 389
    functionName: _io_BytesIO_getvalue_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBytes_FromStringAndSize
    - SHARED_BUF
    - _PyBytes_Resize
    - Py_NewRef
    - unshare_buffer_lock_held
    - PyBytes_GET_SIZE
    - CHECK_CLOSED
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getvalue_impl(bytesio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: _io_BytesIO_isatty_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bytesio.c:419,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: _io_BytesIO_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_tell_impl(bytesio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:426,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:430,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:431,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:433,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:434,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:436,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:439,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts:
    - condition: (size <= self->string_size)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (self->buf != NULL)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: read_bytes_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_bytes_lock_held(bytesio *self, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:462,1
    - Dst: read_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 473
    functionName: _io_BytesIO_read_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - read_bytes_lock_held
    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/cpython/Modules/_io/bytesio.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 493
    functionName: _io_BytesIO_read1_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/bytesio.c:514,1
    - Dst: scan_eol_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:516,1
    - Dst: read_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 519
    functionName: _io_BytesIO_readline_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - scan_eol_lock_held
    - read_bytes_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readline_impl(bytesio *self, Py_ssize_t size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:542,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/bytesio.c:544,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:545,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:546,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:555,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/bytesio.c:560,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:564,1
    - Dst: scan_eol_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:565,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:567,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bytesio.c:570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:583,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 585
    functionName: _io_BytesIO_readlines_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyErr_Occurred
    - PyList_Append
    - PyLong_Check
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - PyErr_Format
    - CHECK_CLOSED
    - scan_eol_lock_held
    - Py_TYPE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readlines_impl(bytesio *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:605,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:616,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:617,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bytesio.c:618,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:618,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:621,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: 615
        line_start: 615
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (len >= 0)
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 622
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 622
    functionName: _io_BytesIO_readinto_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - memcpy
    - CHECK_CLOSED
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readinto_impl(bytesio *self, Py_buffer *buffer)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:640,1
    - Dst: CHECK_EXPORTS
      Src: /src/cpython/Modules/_io/bytesio.c:641,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/bytesio.c:649,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:650,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:654,1
    - Dst: resize_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:662,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 667
    functionName: _io_BytesIO_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - resize_buffer_lock_held
    - CHECK_EXPORTS
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyErr_Format
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_truncate_impl(bytesio *self, PyObject *size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:672,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:675,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:677,1
    - Dst: scan_eol_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:679,1
    - Dst: read_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 685
    functionName: bytesio_iternext_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesio_CAST
    - CHECK_CLOSED
    - scan_eol_lock_held
    - read_bytes_lock_held
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_iternext_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:691,1
    - Dst: bytesio_iternext_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:692,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 695
    functionName: bytesio_iternext
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytesio_iternext_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_iternext(PyObject *op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:717,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:720,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:730,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:738,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:745,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:754,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - bytesio*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 755
    functionName: _io_BytesIO_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_seek_impl(bytesio *self, Py_ssize_t pos, int whence)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:772,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: _io_BytesIO_write_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - write_bytes_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_write_impl(bytesio *self, PyObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:795,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_io/bytesio.c:797,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_io/bytesio.c:801,1
    - Dst: write_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:809,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 789
    functionDepth: 4
    functionLinenumber: 789
    functionLinenumberEnd: 816
    functionName: _io_BytesIO_writelines_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyIter_Next
    - write_bytes_lock_held
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_writelines_impl(bytesio *self, PyObject *lines)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_EXPORTS
      Src: /src/cpython/Modules/_io/bytesio.c:829,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 832
    functionName: _io_BytesIO_close_impl
    functionSourceFile: /src/cpython/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: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:852,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:854,1
    - Dst: _io_BytesIO_getvalue_impl
      Src: /src/cpython/Modules/_io/bytesio.c:855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:862,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_io/bytesio.c:865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:867,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/bytesio.c:872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 875
    functionName: bytesio_getstate_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - bytesio_CAST
    - PyDict_Copy
    - Py_NewRef
    - _io_BytesIO_getvalue_impl
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n bytesio_getstate_lock_held(PyObject *op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:881,1
    - Dst: bytesio_getstate_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:882,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 877
    functionDepth: 4
    functionLinenumber: 877
    functionLinenumberEnd: 885
    functionName: bytesio_getstate
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytesio_getstate_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_getstate(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:890,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:896,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:898,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/bytesio.c:903,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:903,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:904,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:906,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:906,1
    - Dst: CHECK_EXPORTS
      Src: /src/cpython/Modules/_io/bytesio.c:909,1
    - Dst: _io_BytesIO_write_impl
      Src: /src/cpython/Modules/_io/bytesio.c:917,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/bytesio.c:917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:920,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/bytesio.c:925,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/bytesio.c:926,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:927,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:929,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:932,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:933,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:936,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/bytesio.c:943,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_io/bytesio.c:945,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:948,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_io/bytesio.c:954,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:958,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 963
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 963
    functionName: bytesio_setstate_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - CHECK_EXPORTS
    - Py_DECREF
    - PyLong_AsSsize_t
    - bytesio_CAST
    - PyTuple_Check
    - _io_BytesIO_write_impl
    - PyLong_Check
    - PyErr_Occurred
    - PyErr_SetString
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyDict_Update
    - PyDict_Check
    - Py_TYPE
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_setstate_lock_held(PyObject *op, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:969,1
    - Dst: bytesio_setstate_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:970,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 965
    functionDepth: 6
    functionLinenumber: 965
    functionLinenumberEnd: 973
    functionName: bytesio_setstate
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytesio_setstate_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_setstate(PyObject *op, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:978,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:979,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/bytesio.c:980,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:981,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:982,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_io/bytesio.c:984,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:986,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:987,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/bytesio.c:988,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bytesio.c:989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 991
    functionName: bytesio_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - bytesio_CAST
    - PyErr_Print
    - PyErr_SetString
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_CLEAR_WEAKREFS
    - _PyObject_GC_UNTRACK
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bytesio_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:998,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/bytesio.c:999,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:1006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:1008,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/bytesio.c:1009,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: 997
        line_start: 997
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 1013
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1013
    functionName: bytesio_new
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:1031,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:1032,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_io/bytesio.c:1037,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bytesio.c:1038,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:1038,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1039,1
    - Dst: _io_BytesIO_write_impl
      Src: /src/cpython/Modules/_io/bytesio.c:1043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:1046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - initvalue
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1023
    functionDepth: 5
    functionLinenumber: 1023
    functionLinenumberEnd: 1052
    functionName: _io_BytesIO___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _io_BytesIO_write_impl
    - PyErr_SetString
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_NewRef
    - PyBytes_GET_SIZE
    - Py_XSETREF
    - PyBytes_CheckExact
    linkageType: ''
    returnType: int
    signature: int _io_BytesIO___init___impl(bytesio *self, PyObject *initvalue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:1057,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1059,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1060,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1060,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:1061,1
    - Dst: _PySys_GetSizeOf
      Src: /src/cpython/Modules/_io/bytesio.c:1062,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_io/bytesio.c:1068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1069
    functionName: bytesio_sizeof_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesio_CAST
    - SHARED_BUF
    - _PyObject_SIZE
    - PyLong_FromSize_t
    - _PySys_GetSizeOf
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_sizeof_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:1075,1
    - Dst: bytesio_sizeof_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:1076,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1079
    functionName: bytesio_sizeof
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytesio_sizeof_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_sizeof(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1084,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1085,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1085,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1086,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1089
    functionName: bytesio_traverse
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesio_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bytesio_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1094,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:1095,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:1096,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1100
    functionName: bytesio_clear
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesio_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int bytesio_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1104
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bytesiobuf_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1176,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1177,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:1179,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:1181,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:1181,1
    - Dst: unshare_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:1182,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_io/bytesio.c:1187,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:1188,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1192
    functionName: bytesiobuf_getbuffer_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_ADD_SSIZE
    - bytesio_CAST
    - bytesiobuf_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - SHARED_BUF
    - unshare_buffer_lock_held
    - PyBuffer_FillInfo
    - PyBytes_AS_STRING
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int bytesiobuf_getbuffer_lock_held(PyObject *op, Py_buffer *view, int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:1198,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:1204,1
    - Dst: bytesiobuf_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1204,1
    - Dst: bytesiobuf_getbuffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:1205,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1208
    functionName: bytesiobuf_getbuffer
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_SetString
    - bytesiobuf_CAST
    - bytesiobuf_getbuffer_lock_held
    linkageType: ''
    returnType: int
    signature: int bytesiobuf_getbuffer(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytesiobuf_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1213,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1214,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1216
    functionName: bytesiobuf_releasebuffer
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesio_CAST
    - FT_ATOMIC_ADD_SSIZE
    - bytesiobuf_CAST
    linkageType: ''
    returnType: void
    signature: void bytesiobuf_releasebuffer(PyObject *op, Py_buffer *Py_UNUSED(view))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytesiobuf_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1221,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1222,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1222,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1225
    functionName: bytesiobuf_traverse
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesiobuf_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bytesiobuf_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytesiobuf_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1230,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1231,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_io/bytesio.c:1233,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:1234,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bytesio.c:1235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1237
    functionName: bytesiobuf_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - bytesiobuf_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bytesiobuf_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: PyFileIO_Check
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFileIO_Check(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: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: PyFileIO_CAST
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFileIO_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: _PyFileIO_closed
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    linkageType: ''
    returnType: int
    signature: int _PyFileIO_closed(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:104,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:106,1
    - Dst: PyErr_ResourceWarning
      Src: /src/cpython/Modules/_io/fileio.c:107,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/fileio.c:109,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_io/fileio.c:110,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - op
    - source
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: fileio_dealloc_warn
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyErr_ResourceWarning
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    - PyErr_ExceptionMatches
    - PyFileIO_CAST
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_dealloc_warn(PyObject *op, PyObject *source)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/cpython/Modules/_io/fileio.c:131,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:137,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: internal_close
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 8
    functionsReached:
    - PyErr_SetFromErrno
    - PyMem_Free
    - close
    linkageType: ''
    returnType: int
    signature: int internal_close(fileio *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:165,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/fileio.c:166,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:167,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:175,1
    - Dst: fileio_dealloc_warn
      Src: /src/cpython/Modules/_io/fileio.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:180,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:183,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/fileio.c:186,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/fileio.c:188,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - fileio*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 194
    functionName: _io_FileIO_close_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - get_io_state_by_cls
    - PyErr_GetRaisedException
    - fileio_dealloc_warn
    - internal_close
    - _Py_ID
    - PyObject_CallMethodOneArg
    - PyErr_Clear
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_close_impl(fileio *self, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:199,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/fileio.c:201,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: 198
        line_start: 198
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 216
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 216
    functionName: fileio_new
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 119
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/fileio.c:270,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:270,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:271,1
    - Dst: PyFileIO_Check
      Src: /src/cpython/Modules/_io/fileio.c:271,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/fileio.c:276,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/_io/fileio.c:284,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_io/fileio.c:285,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/fileio.c:291,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:294,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:298,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/_io/fileio.c:303,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_io/fileio.c:306,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_io/fileio.c:310,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/fileio.c:313,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:323,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:363,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_io/fileio.c:389,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:400,1
    - Dst: _wopen
      Src: /src/cpython/Modules/_io/fileio.c:410,1
    - Dst: open
      Src: /src/cpython/Modules/_io/fileio.c:412,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_io/fileio.c:416,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_io/fileio.c:422,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/fileio.c:434,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/fileio.c:437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:438,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:439,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/fileio.c:444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:445,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:447,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:450,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/_io/fileio.c:459,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:464,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_io/fileio.c:465,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/fileio.c:467,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Modules/_io/fileio.c:471,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/fileio.c:478,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/fileio.c:479,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:482,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:487,1
    - Dst: S_ISDIR
      Src: /src/cpython/Modules/_io/fileio.c:495,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_io/fileio.c:497,1
    - Dst: _setmode
      Src: /src/cpython/Modules/_io/fileio.c:505,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/fileio.c:508,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:508,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:518,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:528,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/fileio.c:529,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/fileio.c:530,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:532,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:539,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:546,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:547,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:547,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:548,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:555,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:556,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:563,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/fileio.c:565,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/fileio.c:569,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:571,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/fileio.c:574,1
    - Dst: fileio_clear
      Src: /src/cpython/Modules/_io/fileio.c:575,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:577,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/fileio.c:578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:579,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:585,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:592,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:607,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:608,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:622,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:623,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:637,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:638,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:652,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:655,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:656,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:661,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:664,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:684,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:686,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:687,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:690,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:696,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:702,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:713,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:748,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:784,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:786,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/fileio.c:798,1
    - Dst: new_buffersize
      Src: /src/cpython/Modules/_io/fileio.c:804,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:809,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/fileio.c:813,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/fileio.c:814,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:819,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/fileio.c:820,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:833,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/fileio.c:839,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/fileio.c:840,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:874,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:876,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:877,1
    - Dst: _io_FileIO_readall_impl
      Src: /src/cpython/Modules/_io/fileio.c:881,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/fileio.c:887,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/fileio.c:890,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:896,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:898,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/fileio.c:905,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:906,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:935,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:937,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:938,1
    - Dst: _Py_write
      Src: /src/cpython/Modules/_io/fileio.c:941,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:947,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:953,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_io/fileio.c:985,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/fileio.c:987,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:989,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:996,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:998,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:1011,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_io/fileio.c:1016,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1018,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1045,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1047,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1063,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1065,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1091,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:1093,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:1094,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1099,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/fileio.c:1104,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_io/fileio.c:1108,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/fileio.c:1110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:1112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1113,1
    - Dst: _chsize_s
      Src: /src/cpython/Modules/_io/fileio.c:1121,1
    - Dst: ftruncate
      Src: /src/cpython/Modules/_io/fileio.c:1123,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:1129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1130,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:1138,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1174,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:1175,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1178,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/fileio.c:1182,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:1182,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1187,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1189,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/fileio.c:1192,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1195,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1197,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/fileio.c:1198,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:1201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1204,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1222,1
    - Dst: isatty
      Src: /src/cpython/Modules/_io/fileio.c:1225,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1242,1
    - Dst: S_ISCHR
      Src: /src/cpython/Modules/_io/fileio.c:1243,1
    - Dst: _io_FileIO_isatty_impl
      Src: /src/cpython/Modules/_io/fileio.c:1246,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1276,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1277,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1283,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1284,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1290,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/fileio.c:1291,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1291,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1298,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1300,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1303,1
    CyclomaticComplexity: 157
    EdgeCount: 157
    ICount: 519
    argCount: 5
    argNames:
    - self
    - nameobj
    - mode
    - closefd
    - opener
    argTypes:
    - fileio*
    - PyObject*
    - char*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyFileIO_Check(state, self))
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Modules/_io/fileio.c
    - condition: (self->seekable >= 0)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/cpython/Modules/_io/fileio.c
    - condition: (currentsize <= PY_SSIZE_T_MAX)
      pos:
        line_end: 712
        line_start: 712
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 1342
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 1342
    functionName: _io_FileIO___init___impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_mode
    - _io_FileIO_readall_impl
    - PyMem_New
    - PyBool_FromLong
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_INCREF
    - Py_ReprLeave
    - PyErr_Occurred
    - _PyObject_GC_UNTRACK
    - PyErr_Clear
    - Py_DECREF
    - _Py_ID
    - S_ISCHR
    - _PyIOBase_finalize
    - PyObject_SetAttr
    - PyFileIO_Check
    - PyErr_WarnEx
    - PyObject_GetOptionalAttr
    - PyLong_FromSsize_t
    - _Py_fstat_noraise
    - S_ISDIR
    - _chsize_s
    - new_buffersize
    - _Py_write
    - _Py_read
    - PyLong_FromLong
    - lseek
    - mode_string
    - PyLong_AsLong
    - PyUnicode_FromFormat
    - PyTypeObject*::tp_free
    - PyErr_Format
    - PyUnicode_FSDecoder
    - PyErr_GetRaisedException
    - err_closed
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyLong_AsLongLong
    - _wopen
    - PyLong_AsInt
    - PyErr_SetString
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_CheckSignals
    - PyBytes_GET_SIZE
    - Py_CLEAR
    - open
    - _lseeki64
    - PyErr_SetFromErrnoWithFilenameObject
    - isatty
    - PySys_Audit
    - PyLong_FromLongLong
    - PyBytes_FromStringAndSize
    - PyBool_Check
    - portable_lseek
    - internal_close
    - PyUnicode_FromString
    - assert
    - _PyErr_ChainExceptions1
    - get_io_state_by_cls
    - _io_FileIO_isatty_impl
    - PyObject_CallFunction
    - FT_CLEAR_WEAKREFS
    - find_io_state_by_def
    - fileio_clear
    - PyLong_Check
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    - _setmode
    - PyErr_NoMemory
    - _Py_set_inheritable
    - Py_ReprEnter
    - Py_VISIT
    - ftruncate
    - PyFileIO_CAST
    linkageType: ''
    returnType: int
    signature: "int _io_FileIO___init___impl(fileio *self, PyObject *nameobj, const
      char *mode,\n                         int closefd, PyObject *opener)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:546,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:547,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:547,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: fileio_traverse
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - PyFileIO_CAST
    linkageType: ''
    returnType: int
    signature: int fileio_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:555,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 558
    functionName: fileio_clear
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - PyFileIO_CAST
    linkageType: ''
    returnType: int
    signature: int fileio_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:563,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/fileio.c:565,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/fileio.c:569,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:571,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/fileio.c:574,1
    - Dst: fileio_clear
      Src: /src/cpython/Modules/_io/fileio.c:575,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:577,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/fileio.c:578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 580
    functionName: fileio_dealloc
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - FT_CLEAR_WEAKREFS
    - _PyObject_GC_UNTRACK
    - _PyIOBase_finalize
    - fileio_clear
    - PyTypeObject*::tp_free
    - PyFileIO_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void fileio_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: err_closed
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 18
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_closed(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - action
    argTypes:
    - _PyIO_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: err_mode
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 3
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_mode(_PyIO_State *state, const char *action)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:607,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: _io_FileIO_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_closed
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_fileno_impl(fileio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:622,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: _io_FileIO_readable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/fileio.c:637,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 639
    functionName: _io_FileIO_writable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/fileio.c:652,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:655,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:656,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:661,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts:
    - condition: (self->seekable >= 0)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 665
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 665
    functionName: _io_FileIO_seekable_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - portable_lseek
    - Py_DECREF
    - err_closed
    - PyBool_FromLong
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seekable_impl(fileio *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:684,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:686,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:687,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:690,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:696,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cls
    - buffer
    argTypes:
    - fileio*
    - PyTypeObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 703
    functionName: _io_FileIO_readinto_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - err_closed
    - err_mode
    - PyLong_FromSsize_t
    - _Py_read
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readinto_impl(fileio *self, PyTypeObject *cls, Py_buffer *buffer)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:713,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: 712
        line_start: 712
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 722
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 722
    functionName: new_buffersize
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t new_buffersize(fileio *self, size_t currentsize)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:748,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:784,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:786,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/fileio.c:798,1
    - Dst: new_buffersize
      Src: /src/cpython/Modules/_io/fileio.c:804,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:809,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/fileio.c:813,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/fileio.c:814,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:819,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/fileio.c:820,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:833,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/fileio.c:839,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/fileio.c:840,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 844
    functionName: _io_FileIO_readall_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 1
    functionsReached:
    - lseek
    - _lseeki64
    - new_buffersize
    - Py_DECREF
    - err_closed
    - PyErr_SetString
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyBytes_GET_SIZE
    - _Py_read
    - PyErr_Clear
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readall_impl(fileio *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:874,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:876,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:877,1
    - Dst: _io_FileIO_readall_impl
      Src: /src/cpython/Modules/_io/fileio.c:881,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/fileio.c:887,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/fileio.c:890,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:896,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:898,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/fileio.c:905,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:906,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - self
    - cls
    - size
    argTypes:
    - fileio*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 912
    functionName: _io_FileIO_read_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_io_state_by_cls
    - err_closed
    - err_mode
    - Py_CLEAR
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _io_FileIO_readall_impl
    - _Py_read
    - PyErr_Clear
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_read_impl(fileio *self, PyTypeObject *cls, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:935,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:937,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:938,1
    - Dst: _Py_write
      Src: /src/cpython/Modules/_io/fileio.c:941,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:947,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cls
    - b
    argTypes:
    - fileio*
    - PyTypeObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 954
    functionName: _io_FileIO_write_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - err_closed
    - err_mode
    - _Py_write
    - PyLong_FromSsize_t
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_write_impl(fileio *self, PyTypeObject *cls, Py_buffer *b)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_io/fileio.c:985,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/fileio.c:987,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:989,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:996,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:998,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:1011,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_io/fileio.c:1016,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1018,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - self
    - posobj
    - whence
    - suppress_pipe_error
    argTypes:
    - fileio*
    - PyObject*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 1020
    functionName: portable_lseek
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 2
    functionsReached:
    - lseek
    - _lseeki64
    - PyLong_AsLongLong
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - PyLong_FromLong
    - PyLong_FromLongLong
    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/cpython/Modules/_io/fileio.c:1045,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - fileio*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1048
    functionName: _io_FileIO_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - portable_lseek
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1063,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1066
    functionName: _io_FileIO_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - portable_lseek
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_tell_impl(fileio *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1091,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:1093,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:1094,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1099,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/fileio.c:1104,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_io/fileio.c:1108,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/fileio.c:1110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:1112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1113,1
    - Dst: _chsize_s
      Src: /src/cpython/Modules/_io/fileio.c:1121,1
    - Dst: ftruncate
      Src: /src/cpython/Modules/_io/fileio.c:1123,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:1129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1130,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:1138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - self
    - cls
    - posobj
    argTypes:
    - fileio*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1143
    functionName: _io_FileIO_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - portable_lseek
    - _chsize_s
    - Py_DECREF
    - get_io_state_by_cls
    - err_closed
    - err_mode
    - PyLong_AsLongLong
    - PyLong_AsLong
    - PyErr_Occurred
    - ftruncate
    - PyErr_SetFromErrno
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_truncate_impl(fileio *self, PyTypeObject *cls, PyObject *posobj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1169
    functionName: mode_string
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      mode_string(fileio *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1174,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:1175,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1178,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/fileio.c:1182,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:1182,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1187,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1189,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/fileio.c:1192,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1195,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1197,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/fileio.c:1198,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:1201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1207
    functionName: fileio_repr
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - mode_string
    - Py_DECREF
    - Py_ReprEnter
    - PyObject_GetOptionalAttr
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - _Py_ID
    - PyFileIO_CAST
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1222,1
    - Dst: isatty
      Src: /src/cpython/Modules/_io/fileio.c:1225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1229
    functionName: _io_FileIO_isatty_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 1
    functionsReached:
    - isatty
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_isatty_impl(fileio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1242,1
    - Dst: S_ISCHR
      Src: /src/cpython/Modules/_io/fileio.c:1243,1
    - Dst: _io_FileIO_isatty_impl
      Src: /src/cpython/Modules/_io/fileio.c:1246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1247
    functionName: _io_FileIO_isatty_open_only
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - _io_FileIO_isatty_impl
    - S_ISCHR
    - PyFileIO_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_isatty_open_only(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1276,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1278
    functionName: fileio_get_closed
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyFileIO_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_get_closed(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1283,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1285
    functionName: fileio_get_closefd
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyFileIO_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_get_closefd(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1290,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/fileio.c:1291,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1292
    functionName: fileio_get_mode
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - mode_string
    - PyUnicode_FromString
    - PyFileIO_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_get_mode(PyObject *op, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1298,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1300,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1304
    functionName: fileio_get_blksize
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFileIO_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_get_blksize(PyObject *op, void *closure)'
  - 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: stringio_CAST
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stringio_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: CHECK_INITIALIZED
    functionSourceFile: /src/cpython/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: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: CHECK_CLOSED
    functionSourceFile: /src/cpython/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: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: ENSURE_REALIZED
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_REALIZED(self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:88,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_io/stringio.c:116,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/stringio.c:118,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/stringio.c:127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - stringio*
    - size_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 130
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 130
    functionName: resize_buffer
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyErr_SetString
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int resize_buffer(stringio *self, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_io/stringio.c:135,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_io/stringio.c:141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:143,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_io/stringio.c:146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: make_intermediate
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - Py_DECREF
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_intermediate(stringio *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:162,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_io/stringio.c:165,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/stringio.c:173,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:175,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/cpython/Modules/_io/stringio.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts:
    - condition: (self->state == STATE_ACCUMULATING)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 185
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 185
    functionName: realize
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicodeWriter_Finish
    - resize_buffer
    - PyUnicode_AsUCS4
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int realize(stringio *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:195,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:196,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/cpython/Modules/_io/stringio.c:199,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/stringio.c:203,1
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Modules/_io/stringio.c:206,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_io/stringio.c:207,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/stringio.c:208,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:213,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:213,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/stringio.c:214,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:215,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/stringio.c:221,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_io/stringio.c:228,1
    - Dst: realize
      Src: /src/cpython/Modules/_io/stringio.c:232,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:237,1
    - Dst: memset
      Src: /src/cpython/Modules/_io/stringio.c:251,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/cpython/Modules/_io/stringio.c:257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:269,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/stringio.c:273,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - stringio*
    - PyObject*
    assertStmts:
    - condition: (self->pos >= 0)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/cpython/Modules/_io/stringio.c
    - condition: (PyUnicode_Check(decoded))
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Modules/_io/stringio.c
    - condition: (self->buf != NULL)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/cpython/Modules/_io/stringio.c
    - condition: (len >= 0)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 275
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 275
    functionName: write_str
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - realize
    - Py_XDECREF
    - PyUnicode_Replace
    - _Py_LATIN1_CHR
    - Py_DECREF
    - PyErr_SetString
    - resize_buffer
    - memset
    - _PyIncrementalNewlineDecoder_decode
    - Py_NewRef
    - Py_SETREF
    - PyUnicodeWriter_WriteStr
    - PyUnicode_Check
    - PyUnicode_AsUCS4
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t write_str(stringio *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:288,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:289,1
    - Dst: make_intermediate
      Src: /src/cpython/Modules/_io/stringio.c:291,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_io/stringio.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: _io_StringIO_getvalue_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - PyUnicode_FromKindAndData
    - make_intermediate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_getvalue_impl(stringio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:307,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:308,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: _io_StringIO_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_tell_impl(stringio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:331,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:332,1
    - Dst: make_intermediate
      Src: /src/cpython/Modules/_io/stringio.c:344,1
    - Dst: ENSURE_REALIZED
      Src: /src/cpython/Modules/_io/stringio.c:349,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_io/stringio.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - stringio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 353
    functionName: _io_StringIO_read_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - ENSURE_REALIZED
    - CHECK_CLOSED
    - PyUnicode_FromKindAndData
    - make_intermediate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_read_impl(stringio *self, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_io/stringio.c:364,1
    - Dst: _PyIO_find_line_ending
      Src: /src/cpython/Modules/_io/stringio.c:373,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_io/stringio.c:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - stringio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 383
    functionName: _stringio_readline
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_FromKindAndData
    - _PyIO_find_line_ending
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _stringio_readline(stringio *self, Py_ssize_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:400,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:401,1
    - Dst: ENSURE_REALIZED
      Src: /src/cpython/Modules/_io/stringio.c:402,1
    - Dst: _stringio_readline
      Src: /src/cpython/Modules/_io/stringio.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - stringio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: _io_StringIO_readline_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - _stringio_readline
    - ENSURE_REALIZED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_readline_impl(stringio *self, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stringio_CAST
      Src: /src/cpython/Modules/_io/stringio.c:411,1
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:413,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:414,1
    - Dst: ENSURE_REALIZED
      Src: /src/cpython/Modules/_io/stringio.c:415,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:417,1
    - Dst: _stringio_readline
      Src: /src/cpython/Modules/_io/stringio.c:419,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/stringio.c:423,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/stringio.c:423,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:424,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:425,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:428,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/stringio.c:436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 407
    functionDepth: 4
    functionLinenumber: 407
    functionLinenumberEnd: 443
    functionName: stringio_iternext
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_DECREF
    - _Py_ID
    - stringio_CAST
    - PyObject_CallMethodNoArgs
    - Py_IS_TYPE
    - ENSURE_REALIZED
    - PyErr_Format
    - CHECK_CLOSED
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - _stringio_readline
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_iternext(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:462,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:463,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/stringio.c:470,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/stringio.c:471,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:475,1
    - Dst: ENSURE_REALIZED
      Src: /src/cpython/Modules/_io/stringio.c:482,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:483,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 489
    functionName: _io_StringIO_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - resize_buffer
    - ENSURE_REALIZED
    - PyErr_Format
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_truncate_impl(stringio *self, PyObject *pos)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:511,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:512,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:515,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:520,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/stringio.c:525,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:542,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - stringio*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 543
    functionName: _io_StringIO_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyErr_Format
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_seek_impl(stringio *self, Py_ssize_t pos, int whence)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:563,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:564,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:565,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:566,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:569,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/stringio.c:570,1
    - Dst: write_str
      Src: /src/cpython/Modules/_io/stringio.c:572,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 576
    functionName: _io_StringIO_write_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyLong_FromSsize_t
    - write_str
    - PyErr_Format
    - CHECK_CLOSED
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_write_impl(stringio *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:596,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_io/stringio.c:598,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:600,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:601,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 604
    functionName: _io_StringIO_close_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Discard
    - resize_buffer
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_close_impl(stringio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringio_CAST
      Src: /src/cpython/Modules/_io/stringio.c:609,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/stringio.c:610,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:610,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/stringio.c:611,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/stringio.c:612,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/stringio.c:613,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/stringio.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: stringio_traverse
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - stringio_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int stringio_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringio_CAST
      Src: /src/cpython/Modules/_io/stringio.c:621,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:622,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:623,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:624,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 627
    functionName: stringio_clear
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - stringio_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int stringio_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stringio_CAST
      Src: /src/cpython/Modules/_io/stringio.c:632,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:633,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/stringio.c:634,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/stringio.c:637,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_io/stringio.c:640,1
    - Dst: stringio_clear
      Src: /src/cpython/Modules/_io/stringio.c:641,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/stringio.c:642,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/stringio.c:643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 645
    functionName: stringio_dealloc
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - FT_CLEAR_WEAKREFS
    - stringio_CAST
    - _PyObject_GC_UNTRACK
    - PyTypeObject*::tp_free
    - PyUnicodeWriter_Discard
    - stringio_clear
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void stringio_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:652,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/stringio.c:653,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/stringio.c:660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:662,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/stringio.c:663,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: 651
        line_start: 651
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 667
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 667
    functionName: stringio_new
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:694,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:695,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:697,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/stringio.c:700,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:709,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:713,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:714,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:716,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_io/stringio.c:722,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:724,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:725,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:726,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:728,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/stringio.c:732,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/stringio.c:745,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/stringio.c:748,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:748,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_io/stringio.c:750,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_io/stringio.c:761,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:767,1
    - Dst: write_str
      Src: /src/cpython/Modules/_io/stringio.c:771,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:776,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_io/stringio.c:778,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 68
    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: 728
        line_start: 727
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 789
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 789
    functionName: _io_StringIO___init___impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Discard
    - Py_CLEAR
    - PyUnicode_GetLength
    - PyUnicodeWriter_Create
    - resize_buffer
    - PyObject_CallFunctionObjArgs
    - Py_NewRef
    - find_io_state_by_def
    - PyUnicode_AsUTF8
    - write_str
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - PyUnicode_FromString
    - assert
    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/cpython/Modules/_io/stringio.c:804,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 807
    functionName: _io_StringIO_readable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/stringio.c:820,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 823
    functionName: _io_StringIO_writable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/stringio.c:836,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 839
    functionName: _io_StringIO_seekable_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/stringio.c:863,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/stringio.c:870,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_io/stringio.c:873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:875,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/stringio.c:880,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:883,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 885
    functionName: _io_StringIO___getstate___impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyDict_Copy
    - Py_NewRef
    - _io_StringIO_getvalue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO___getstate___impl(stringio *self)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:904,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:905,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/stringio.c:910,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/stringio.c:910,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:911,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:913,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:913,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_io/stringio.c:918,1
    - Dst: _io_StringIO___init__
      Src: /src/cpython/Modules/_io/stringio.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:925,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/stringio.c:934,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:935,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/_io/stringio.c:936,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/stringio.c:939,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:941,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/stringio.c:942,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/stringio.c:945,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/stringio.c:946,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:950,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/stringio.c:958,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/stringio.c:959,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:960,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:962,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:965,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/stringio.c:966,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/stringio.c:969,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/stringio.c:976,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_io/stringio.c:978,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:979,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:981,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_io/stringio.c:987,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/stringio.c:991,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - stringio*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Modules/_io/stringio.c
    - condition: (item == Py_None)
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 996
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 996
    functionName: _io_StringIO___setstate___impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - _io_StringIO___init__
    - PyErr_SetString
    - resize_buffer
    - CHECK_CLOSED
    - PyDict_Update
    - PyTuple_GetSlice
    - PyMem_Free
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_Check
    - Py_DECREF
    - PyTuple_Check
    - PyLong_Check
    - PyUnicode_AsUCS4Copy
    - Py_NewRef
    - memcpy
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - PyLong_AsSsize_t
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO___setstate___impl(stringio *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:1008,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/stringio.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1010
    functionName: _io_StringIO_closed_get_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_closed_get_impl(stringio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:1022,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1025
    functionName: _io_StringIO_line_buffering_get_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_line_buffering_get_impl(stringio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/stringio.c:1037,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:1038,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/stringio.c:1042,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/stringio.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1043
    functionName: _io_StringIO_newlines_get_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - _Py_ID
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_newlines_get_impl(stringio *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:59,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:64,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:65,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:71,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:72,1
    - Dst: _io__IOBase_seek_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:76,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 80
    functionName: _io__IOBase_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io__IOBase_seek_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_seek(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_tell_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.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: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: _io__IOBase_tell
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:136,1
    - Dst: _io__IOBase_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 150
    functionName: _io__IOBase_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_truncate_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_truncate(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_flush_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: _io__IOBase_flush
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/clinic/iobase.c.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: _io__IOBase_close
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/clinic/iobase.c.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: _io__IOBase_seekable
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/clinic/iobase.c.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: _io__IOBase_readable
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/clinic/iobase.c.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: _io__IOBase_writable
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:270,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:271,1
    - Dst: _io__IOBase_fileno_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: _io__IOBase_fileno
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _io__IOBase_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_fileno(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_isatty_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: _io__IOBase_isatty
    functionSourceFile: /src/cpython/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/cpython/Modules/_io/clinic/iobase.c.h:321,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:327,1
    - Dst: _io__IOBase_readline_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 335
    functionName: _io__IOBase_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - _io__IOBase_readline_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/_io/clinic/iobase.c.h:359,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:365,1
    - Dst: _io__IOBase_readlines_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 373
    functionName: _io__IOBase_readlines
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - _PyArg_CheckPositional
    - _io__IOBase_readlines_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:404,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:412,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:415,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:417,1
    - Dst: _io__RawIOBase_read_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:423,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 427
    functionName: _io__RawIOBase_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__RawIOBase_read_impl
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    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/cpython/Modules/_io/clinic/iobase.c.h:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: _io__RawIOBase_readall
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:30,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:31,1
    - Dst: _io__TextIOBase_detach_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: _io__TextIOBase_detach
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io__TextIOBase_detach_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_detach(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:73,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:81,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:82,1
    - Dst: _io__TextIOBase_read_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 90
    functionName: _io__TextIOBase_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io__TextIOBase_read_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_read(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:128,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:136,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:137,1
    - Dst: _io__TextIOBase_readline_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:141,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 145
    functionName: _io__TextIOBase_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io__TextIOBase_readline_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_readline(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:183,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:188,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:189,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:193,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:198,1
    - Dst: _io__TextIOBase_write_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:201,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 205
    functionName: _io__TextIOBase_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - _io__TextIOBase_write_impl
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_write(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__TextIOBase_encoding_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: _io__TextIOBase_encoding_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io__TextIOBase_encoding_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_encoding_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__TextIOBase_newlines_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: _io__TextIOBase_newlines_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io__TextIOBase_newlines_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_newlines_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__TextIOBase_errors_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: _io__TextIOBase_errors_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io__TextIOBase_errors_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__TextIOBase_errors_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:324,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:326,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:326,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:326,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:344,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:345,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:350,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:350,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:356,1
    - Dst: _io_IncrementalNewlineDecoder___init___impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 369
    functionName: _io_IncrementalNewlineDecoder___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _io_IncrementalNewlineDecoder___init___impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int _io_IncrementalNewlineDecoder___init__(PyObject *self, PyObject
      *args, PyObject *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:396,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:398,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:398,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:415,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:419,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:428,1
    - Dst: _io_IncrementalNewlineDecoder_decode_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:433,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 437
    functionName: _io_IncrementalNewlineDecoder_decode
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _io_IncrementalNewlineDecoder_decode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_decode(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_IncrementalNewlineDecoder_getstate_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: _io_IncrementalNewlineDecoder_getstate
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_IncrementalNewlineDecoder_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_getstate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_IncrementalNewlineDecoder_setstate_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: _io_IncrementalNewlineDecoder_setstate
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_IncrementalNewlineDecoder_setstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_setstate(PyObject *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_IncrementalNewlineDecoder_reset_impl
      Src: /src/cpython/Modules/_io/clinic/textio.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: 2
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: _io_IncrementalNewlineDecoder_reset
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_IncrementalNewlineDecoder_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_reset(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:548,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:550,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:550,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:550,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:550,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:550,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:550,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:568,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:569,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:577,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:577,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:590,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:592,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:596,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:597,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:602,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:619,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:621,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:625,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:626,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:631,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:639,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:647,1
    - Dst: _io_TextIOWrapper___init___impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:652,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 90
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 656
    functionName: _io_TextIOWrapper___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - _io_TextIOWrapper___init___impl
    linkageType: ''
    returnType: int
    signature: int _io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:689,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:691,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:691,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:691,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:691,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:691,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:708,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:715,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:749,1
    - Dst: _io_TextIOWrapper_reconfigure_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:750,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:751,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 676
    functionDepth: 4
    functionLinenumber: 676
    functionLinenumberEnd: 755
    functionName: _io_TextIOWrapper_reconfigure
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _io_TextIOWrapper_reconfigure_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_reconfigure(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:773,1
    - Dst: _io_TextIOWrapper_detach_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:774,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 778
    functionName: _io_TextIOWrapper_detach
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_detach_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_detach(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:797,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:798,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:802,1
    - Dst: _io_TextIOWrapper_write_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:803,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 791
    functionDepth: 4
    functionLinenumber: 791
    functionLinenumberEnd: 808
    functionName: _io_TextIOWrapper_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_write_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_write(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:827,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:833,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:837,1
    - Dst: _io_TextIOWrapper_read_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:838,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 821
    functionDepth: 6
    functionLinenumber: 821
    functionLinenumberEnd: 843
    functionName: _io_TextIOWrapper_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_read_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:862,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:870,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:873,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:875,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:881,1
    - Dst: _io_TextIOWrapper_readline_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:882,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:883,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 856
    functionDepth: 7
    functionLinenumber: 856
    functionLinenumberEnd: 887
    functionName: _io_TextIOWrapper_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _io_TextIOWrapper_readline_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readline(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:925,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:932,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:933,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:937,1
    - Dst: _io_TextIOWrapper_seek_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:938,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:939,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 943
    functionName: _io_TextIOWrapper_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _io_TextIOWrapper_seek_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:965,1
    - Dst: _io_TextIOWrapper_tell_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:966,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 960
    functionDepth: 4
    functionLinenumber: 960
    functionLinenumberEnd: 970
    functionName: _io_TextIOWrapper_tell
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_tell_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:989,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:997,1
    - Dst: _io_TextIOWrapper_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:998,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1003
    functionName: _io_TextIOWrapper_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_truncate_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_truncate(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1021,1
    - Dst: _io_TextIOWrapper_fileno_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1022,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1026
    functionName: _io_TextIOWrapper_fileno
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1044,1
    - Dst: _io_TextIOWrapper_seekable_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1045,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1049
    functionName: _io_TextIOWrapper_seekable
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1067,1
    - Dst: _io_TextIOWrapper_readable_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1068,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1062
    functionDepth: 2
    functionLinenumber: 1062
    functionLinenumberEnd: 1072
    functionName: _io_TextIOWrapper_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1090,1
    - Dst: _io_TextIOWrapper_writable_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1091,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1085
    functionDepth: 2
    functionLinenumber: 1085
    functionLinenumberEnd: 1095
    functionName: _io_TextIOWrapper_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_writable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1113,1
    - Dst: _io_TextIOWrapper_isatty_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1114,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1108
    functionDepth: 2
    functionLinenumber: 1108
    functionLinenumberEnd: 1118
    functionName: _io_TextIOWrapper_isatty
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1136,1
    - Dst: _io_TextIOWrapper_flush_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1137,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1131
    functionDepth: 4
    functionLinenumber: 1131
    functionLinenumberEnd: 1141
    functionName: _io_TextIOWrapper_flush
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_flush_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1159,1
    - Dst: _io_TextIOWrapper_close_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1160,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1164
    functionName: _io_TextIOWrapper_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1184,1
    - Dst: _io_TextIOWrapper_name_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1185,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1189
    functionName: _io_TextIOWrapper_name_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_name_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_name_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1209,1
    - Dst: _io_TextIOWrapper_closed_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1210,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1214
    functionName: _io_TextIOWrapper_closed_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_closed_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_closed_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1234,1
    - Dst: _io_TextIOWrapper_newlines_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1235,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1239
    functionName: _io_TextIOWrapper_newlines_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_newlines_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_newlines_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1259,1
    - Dst: _io_TextIOWrapper_errors_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1260,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1264
    functionName: _io_TextIOWrapper_errors_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_errors_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_errors_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1284,1
    - Dst: _io_TextIOWrapper__CHUNK_SIZE_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1285,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1279
    functionDepth: 2
    functionLinenumber: 1279
    functionLinenumberEnd: 1289
    functionName: _io_TextIOWrapper__CHUNK_SIZE_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper__CHUNK_SIZE_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper__CHUNK_SIZE_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1309,1
    - Dst: _io_TextIOWrapper__CHUNK_SIZE_set_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1310,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1304
    functionDepth: 2
    functionLinenumber: 1304
    functionLinenumberEnd: 1314
    functionName: _io_TextIOWrapper__CHUNK_SIZE_set
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper__CHUNK_SIZE_set_impl
    linkageType: ''
    returnType: int
    signature: int _io_TextIOWrapper__CHUNK_SIZE_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:151,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:153,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:170,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:180,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:190,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:191,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:195,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:200,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:208,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:209,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:220,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:222,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:226,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:227,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:232,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:243,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:245,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:250,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:255,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:266,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:268,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:272,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:273,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:278,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:286,1
    - Dst: _io_open_impl
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:296,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 136
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 300
    functionName: _io_open
    functionSourceFile: /src/cpython/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyLong_AsInt
    - _Py_ID
    - PyErr_SetString
    - PyErr_Occurred
    - _io_open_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_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_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:331,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:338,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:339,1
    - Dst: _io_text_encoding_impl
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 347
    functionName: _io_text_encoding
    functionSourceFile: /src/cpython/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io_text_encoding_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_text_encoding(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:379,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:398,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:403,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:404,1
    - Dst: _io_open_code_impl
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 412
    functionName: _io_open_code
    functionSourceFile: /src/cpython/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - _io_open_code_impl
    - PyVarObject_HEAD_INIT
    - 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: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:30,1
    - Dst: _io_BytesIO_readable_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:31,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: _io_BytesIO_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:54,1
    - Dst: _io_BytesIO_writable_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:55,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: _io_BytesIO_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_writable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:78,1
    - Dst: _io_BytesIO_seekable_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:79,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: _io_BytesIO_seekable
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:102,1
    - Dst: _io_BytesIO_flush_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:103,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: _io_BytesIO_flush
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:126,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:127,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:130,1
    - Dst: _io_BytesIO_getbuffer_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:131,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: _io_BytesIO_getbuffer
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _io_BytesIO_getbuffer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getbuffer(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:155,1
    - Dst: _io_BytesIO_getvalue_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:156,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 160
    functionName: _io_BytesIO_getvalue
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_getvalue_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getvalue(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:181,1
    - Dst: _io_BytesIO_isatty_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:182,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: _io_BytesIO_isatty
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:205,1
    - Dst: _io_BytesIO_tell_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:206,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: _io_BytesIO_tell
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:233,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:239,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:243,1
    - Dst: _io_BytesIO_read_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:244,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 249
    functionName: _io_BytesIO_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_read_impl
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:272,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:278,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:282,1
    - Dst: _io_BytesIO_read1_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:283,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 288
    functionName: _io_BytesIO_read1
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_read1_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_read1(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:312,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:318,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:322,1
    - Dst: _io_BytesIO_readline_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:323,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 328
    functionName: _io_BytesIO_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_BytesIO_readline_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readline(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:352,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:360,1
    - Dst: _io_BytesIO_readlines_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:361,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 366
    functionName: _io_BytesIO_readlines
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - _io_BytesIO_readlines_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:389,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:390,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:393,1
    - Dst: _io_BytesIO_readinto_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:394,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:395,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 404
    functionName: _io_BytesIO_readinto
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_readinto_impl
    - Py_END_CRITICAL_SECTION
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readinto(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:427,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:435,1
    - Dst: _io_BytesIO_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:436,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 441
    functionName: _io_BytesIO_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - _io_BytesIO_truncate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_truncate(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:468,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:473,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:476,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:478,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:486,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:487,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:491,1
    - Dst: _io_BytesIO_seek_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:492,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:493,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 497
    functionName: _io_BytesIO_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyLong_AsInt
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _io_BytesIO_seek_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:518,1
    - Dst: _io_BytesIO_write_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:519,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 513
    functionDepth: 5
    functionLinenumber: 513
    functionLinenumberEnd: 523
    functionName: _io_BytesIO_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_write_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_write(PyObject *self, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:546,1
    - Dst: _io_BytesIO_writelines_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:547,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 541
    functionDepth: 5
    functionLinenumber: 541
    functionLinenumberEnd: 551
    functionName: _io_BytesIO_writelines
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_writelines_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_writelines(PyObject *self, PyObject *lines)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:570,1
    - Dst: _io_BytesIO_close_impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:571,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 575
    functionName: _io_BytesIO_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_close_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:599,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:601,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:619,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:620,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:623,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:623,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:633,1
    - Dst: _io_BytesIO___init___impl
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:634,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bytesio.c.h:635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 586
    functionDepth: 6
    functionLinenumber: 586
    functionLinenumberEnd: 639
    functionName: _io_BytesIO___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - Py_END_CRITICAL_SECTION
    - _Py_ID
    - _io_BytesIO___init___impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:30,1
    - Dst: _io_StringIO_getvalue_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:31,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: _io_StringIO_getvalue
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_getvalue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_getvalue(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:54,1
    - Dst: _io_StringIO_tell_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:55,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: _io_StringIO_tell
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:82,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:88,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:92,1
    - Dst: _io_StringIO_read_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:93,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 98
    functionName: _io_StringIO_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_read_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:120,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:126,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:130,1
    - Dst: _io_StringIO_readline_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:131,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: _io_StringIO_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_readline_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_readline(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:160,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:168,1
    - Dst: _io_StringIO_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:169,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: _io_StringIO_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - _io_StringIO_truncate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_truncate(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:201,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:206,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:211,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:219,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:220,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:224,1
    - Dst: _io_StringIO_seek_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:225,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 230
    functionName: _io_StringIO_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyLong_AsInt
    - _PyNumber_Index
    - PyErr_Occurred
    - _io_StringIO_seek_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:252,1
    - Dst: _io_StringIO_write_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:253,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: _io_StringIO_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_write_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_write(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:281,1
    - Dst: _io_StringIO_close_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:282,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: _io_StringIO_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:314,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:316,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:316,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:334,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:335,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:339,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:339,1
    - Dst: _io_StringIO___init___impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 359
    functionName: _io_StringIO___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _io_StringIO___init___impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int _io_StringIO___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:378,1
    - Dst: _io_StringIO_readable_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:379,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: _io_StringIO_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_readable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:402,1
    - Dst: _io_StringIO_writable_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:403,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: _io_StringIO_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_writable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:426,1
    - Dst: _io_StringIO_seekable_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:427,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 431
    functionName: _io_StringIO_seekable
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:449,1
    - Dst: _io_StringIO___getstate___impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:450,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: _io_StringIO___getstate__
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO___getstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO___getstate__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:472,1
    - Dst: _io_StringIO___setstate___impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:473,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 477
    functionName: _io_StringIO___setstate__
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO___setstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO___setstate__(PyObject *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:497,1
    - Dst: _io_StringIO_closed_get_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:498,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 502
    functionName: _io_StringIO_closed_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_closed_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_closed_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:522,1
    - Dst: _io_StringIO_line_buffering_get_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:523,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 527
    functionName: _io_StringIO_line_buffering_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_line_buffering_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_line_buffering_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:547,1
    - Dst: _io_StringIO_newlines_get_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:548,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 552
    functionName: _io_StringIO_newlines_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io_StringIO_newlines_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_newlines_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:30,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:31,1
    - Dst: _io_FileIO_close_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: _io_FileIO_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _io_FileIO_close_impl
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_close(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:72,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:74,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:74,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:74,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:74,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:92,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:93,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:99,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:99,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:109,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:110,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:114,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:118,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:119,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:127,1
    - Dst: _io_FileIO___init___impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:137,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 141
    functionName: _io_FileIO___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _io_FileIO___init___impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_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/cpython/Modules/_io/clinic/fileio.c.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: _io_FileIO_fileno
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_readable_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: _io_FileIO_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_writable_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: _io_FileIO_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_writable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_seekable_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: _io_FileIO_seekable
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:247,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:252,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:253,1
    - Dst: _io_FileIO_readinto_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:256,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 265
    functionName: _io_FileIO_readinto
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    - _io_FileIO_readinto_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readinto(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_readall_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: _io_FileIO_readall
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readall(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:332,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:340,1
    - Dst: _io_FileIO_read_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 348
    functionName: _io_FileIO_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - _io_FileIO_read_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_read(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:386,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:391,1
    - Dst: _io_FileIO_write_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:394,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 403
    functionName: _io_FileIO_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_write_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_write(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:432,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:439,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:440,1
    - Dst: _io_FileIO_seek_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 448
    functionName: _io_FileIO_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _io_FileIO_seek_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_tell_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: _io_FileIO_tell
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:507,1
    - Dst: _io_FileIO_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 521
    functionName: _io_FileIO_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_truncate_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_truncate(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_isatty_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: _io_FileIO_isatty
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:30,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:31,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:34,1
    - Dst: _io__BufferedIOBase_readinto_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:35,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:36,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 45
    functionName: _io__BufferedIOBase_readinto
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__BufferedIOBase_readinto_impl
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_readinto(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:64,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:65,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:68,1
    - Dst: _io__BufferedIOBase_readinto1_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:69,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:70,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: _io__BufferedIOBase_readinto1
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__BufferedIOBase_readinto1_impl
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_readinto1(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:99,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:100,1
    - Dst: _io__BufferedIOBase_detach_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: _io__BufferedIOBase_detach
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _io__BufferedIOBase_detach_impl
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_detach(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:154,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:162,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:163,1
    - Dst: _io__BufferedIOBase_read_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 171
    functionName: _io__BufferedIOBase_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io__BufferedIOBase_read_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_read(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:209,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:217,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:218,1
    - Dst: _io__BufferedIOBase_read1_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 226
    functionName: _io__BufferedIOBase_read1
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io__BufferedIOBase_read1_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_read1(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:267,1
    - Dst: _io__BufferedIOBase_write_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 277
    functionName: _io__BufferedIOBase_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io__BufferedIOBase_write_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_write(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:295,1
    - Dst: _io__Buffered___sizeof___impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:296,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: _io__Buffered___sizeof__
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered___sizeof___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__Buffered__dealloc_warn_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - source
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: _io__Buffered__dealloc_warn
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io__Buffered__dealloc_warn_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered__dealloc_warn(PyObject *self, PyObject *source)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:339,1
    - Dst: _io__Buffered_simple_flush_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:340,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 344
    functionName: _io__Buffered_simple_flush
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_simple_flush_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_simple_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:364,1
    - Dst: _io__Buffered_closed_get_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:365,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: _io__Buffered_closed_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_closed_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_closed_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:387,1
    - Dst: _io__Buffered_close_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:388,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: _io__Buffered_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:410,1
    - Dst: _io__Buffered_detach_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:411,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: _io__Buffered_detach
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_detach_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_detach(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:433,1
    - Dst: _io__Buffered_seekable_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:434,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 438
    functionName: _io__Buffered_seekable
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:456,1
    - Dst: _io__Buffered_readable_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:457,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 461
    functionName: _io__Buffered_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:479,1
    - Dst: _io__Buffered_writable_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:480,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 484
    functionName: _io__Buffered_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_writable_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_writable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:504,1
    - Dst: _io__Buffered_name_get_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:505,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: _io__Buffered_name_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_name_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_name_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:529,1
    - Dst: _io__Buffered_mode_get_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:530,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: _io__Buffered_mode_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_mode_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_mode_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:552,1
    - Dst: _io__Buffered_fileno_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:553,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 557
    functionName: _io__Buffered_fileno
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_fileno_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:575,1
    - Dst: _io__Buffered_isatty_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:576,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 580
    functionName: _io__Buffered_isatty
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:598,1
    - Dst: _io__Buffered_flush_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:599,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 593
    functionDepth: 5
    functionLinenumber: 593
    functionLinenumberEnd: 603
    functionName: _io__Buffered_flush
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:622,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:630,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:633,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:635,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:641,1
    - Dst: _io__Buffered_peek_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:642,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:643,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 647
    functionName: _io__Buffered_peek
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _io__Buffered_peek_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_peek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:666,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:672,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:676,1
    - Dst: _io__Buffered_read_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:677,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 682
    functionName: _io__Buffered_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_read_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:701,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:709,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:712,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:714,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:720,1
    - Dst: _io__Buffered_read1_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:721,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:722,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 695
    functionDepth: 5
    functionLinenumber: 695
    functionLinenumberEnd: 726
    functionName: _io__Buffered_read1
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_read1_impl
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read1(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:745,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:746,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:749,1
    - Dst: _io__Buffered_readinto_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:750,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:751,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 739
    functionDepth: 6
    functionLinenumber: 739
    functionLinenumberEnd: 760
    functionName: _io__Buffered_readinto
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_readinto_impl
    - Py_END_CRITICAL_SECTION
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readinto(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:779,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:780,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:783,1
    - Dst: _io__Buffered_readinto1_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:784,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:785,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 773
    functionDepth: 6
    functionLinenumber: 773
    functionLinenumberEnd: 794
    functionName: _io__Buffered_readinto1
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    - _io__Buffered_readinto1_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readinto1(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:813,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:819,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:823,1
    - Dst: _io__Buffered_readline_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:824,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:825,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 807
    functionDepth: 6
    functionLinenumber: 807
    functionLinenumberEnd: 829
    functionName: _io__Buffered_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_readline_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readline(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:847,1
    - Dst: _io__Buffered_tell_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:848,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 852
    functionName: _io__Buffered_tell
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:872,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:879,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:880,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:884,1
    - Dst: _io__Buffered_seek_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:885,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:886,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 865
    functionDepth: 4
    functionLinenumber: 865
    functionLinenumberEnd: 890
    functionName: _io__Buffered_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_seek_impl
    - PyErr_Occurred
    - PyLong_AsInt
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:923,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:933,1
    - Dst: _io__Buffered_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:934,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 903
    functionDepth: 5
    functionLinenumber: 903
    functionLinenumberEnd: 939
    functionName: _io__Buffered_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _io__Buffered_truncate_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_truncate(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:964,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:966,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:966,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:984,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:985,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:989,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:989,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1000,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1003,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1005,1
    - Dst: _io_BufferedReader___init___impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1011,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 951
    functionDepth: 5
    functionLinenumber: 951
    functionLinenumberEnd: 1015
    functionName: _io_BufferedReader___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _io_BufferedReader___init___impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _io_BufferedReader___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1044,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1046,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1046,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1064,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1065,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1069,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1069,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1080,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1083,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1085,1
    - Dst: _io_BufferedWriter___init___impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1091,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1031
    functionDepth: 5
    functionLinenumber: 1031
    functionLinenumberEnd: 1095
    functionName: _io_BufferedWriter___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _io_BufferedWriter___init___impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _io_BufferedWriter___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1114,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1117,1
    - Dst: _io_BufferedWriter_write_impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1118,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1119,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1108
    functionDepth: 5
    functionLinenumber: 1108
    functionLinenumberEnd: 1128
    functionName: _io_BufferedWriter_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_GetBuffer
    - PyBuffer_Release
    - _io_BufferedWriter_write_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BufferedWriter_write(PyObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1152,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1157,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1158,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1159,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1162,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1162,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1165,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1166,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1167,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1172,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1172,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1175,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1177,1
    - Dst: _io_BufferedRWPair___init___impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1148
    functionDepth: 4
    functionLinenumber: 1148
    functionLinenumberEnd: 1187
    functionName: _io_BufferedRWPair___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - clinic_state
    - Py_IS_TYPE
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _io_BufferedRWPair___init___impl
    - Py_TYPE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _io_BufferedRWPair___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1216,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1218,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1218,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1236,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1237,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1241,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1241,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1252,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1255,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1257,1
    - Dst: _io_BufferedRandom___init___impl
      Src: /src/cpython/Modules/_io/clinic/bufferedio.c.h:1263,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1203
    functionDepth: 5
    functionLinenumber: 1203
    functionLinenumberEnd: 1267
    functionName: _io_BufferedRandom___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _io_BufferedRandom___init___impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:32,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:33,1
    - Dst: _io__WindowsConsoleIO_close_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: _io__WindowsConsoleIO_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _io__WindowsConsoleIO_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_close(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:71,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:73,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:73,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:73,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:73,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:91,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:92,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:98,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:98,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:108,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:109,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:113,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:117,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:118,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:126,1
    - Dst: _io__WindowsConsoleIO___init___impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:136,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 140
    functionName: _io__WindowsConsoleIO___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _io__WindowsConsoleIO___init___impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_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/cpython/Modules/_io/clinic/winconsoleio.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: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: _io__WindowsConsoleIO_fileno
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_readable_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: _io__WindowsConsoleIO_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_writable_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: _io__WindowsConsoleIO_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_writable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:245,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:250,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:251,1
    - Dst: _io__WindowsConsoleIO_readinto_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:254,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 263
    functionName: _io__WindowsConsoleIO_readinto
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _io__WindowsConsoleIO_readinto_impl
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readinto(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_readall_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: _io__WindowsConsoleIO_readall
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readall(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:330,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:338,1
    - Dst: _io__WindowsConsoleIO_read_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 310
    functionDepth: 5
    functionLinenumber: 310
    functionLinenumberEnd: 346
    functionName: _io__WindowsConsoleIO_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - _io__WindowsConsoleIO_read_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_read(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:388,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:393,1
    - Dst: _io__WindowsConsoleIO_write_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:396,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 405
    functionName: _io__WindowsConsoleIO_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _io__WindowsConsoleIO_write_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_write(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_isatty_impl
      Src: /src/cpython/Modules/_io/clinic/winconsoleio.c.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: _io__WindowsConsoleIO_isatty
    functionSourceFile: /src/cpython/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_xxtestfuzz/_xxtestfuzz.c:10,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/cpython/Modules/_xxtestfuzz/_xxtestfuzz.c:13,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/_xxtestfuzz.c:14,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_xxtestfuzz/_xxtestfuzz.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 24
    functionName: _fuzz_run
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/_xxtestfuzz.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_Format
    - LLVMFuzzerTestOneInput
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _fuzz_run(PyObject* self, PyObject* args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_xxtestfuzz/_xxtestfuzz.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: PyInit__xxtestfuzz
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/_xxtestfuzz.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__xxtestfuzz(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:23,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:25,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:26,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:26,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:27,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:30,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: fuzz_builtin_float
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromString
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - PyBytes_FromStringAndSize
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int fuzz_builtin_float(const char* data, size_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_HashBuffer
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:47,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:59,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:61,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:62,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:66,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:67,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:68,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:70,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:71,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 74
    functionName: fuzz_builtin_int
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - PyErr_Clear
    - Py_HashBuffer
    - PyErr_ExceptionMatches
    - PyLong_FromUnicodeObject
    linkageType: ''
    returnType: int
    signature: int fuzz_builtin_int(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:78,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:79,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:80,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: fuzz_builtin_unicode
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - PyUnicode_FromStringAndSize
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int fuzz_builtin_unicode(const char* data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:92,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:96,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: init_struct_unpack
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int init_struct_unpack(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:107,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:115,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:121,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:125,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:128,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:129,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:133,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:134,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:138,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:139,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 146
    functionName: fuzz_struct_unpack
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyObject_CallFunctionObjArgs
    - PyErr_ExceptionMatches
    - memchr
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int fuzz_struct_unpack(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:155,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: init_json_loads
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int init_json_loads(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:170,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:174,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:178,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:181,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:183,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:188,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 191
    functionName: fuzz_json_loads
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyErr_ExceptionMatches
    - PyObject_CallOneArg
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int fuzz_json_loads(const char* data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:201,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:205,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:210,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:214,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 220
    functionName: init_sre_compile
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int init_sre_compile(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:237,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:243,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:248,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:252,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:253,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:257,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:258,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:259,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:260,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:262,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:265,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:270,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:271,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 273
    functionName: fuzz_sre_compile
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyObject_CallFunctionObjArgs
    - PyErr_ExceptionMatches
    - PyLong_FromUnsignedLong
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int fuzz_sre_compile(const char* data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:288,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:292,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:295,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 310
    functionName: init_sre_match
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyObject_CallMethod
    - PyMem_RawMalloc
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int init_sre_match(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:322,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:328,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:330,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 336
    functionName: fuzz_sre_match
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetAttrString
    - PyBytes_FromStringAndSize
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int fuzz_sre_match(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:344,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:348,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: init_csv_reader
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int init_csv_reader(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:358,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:362,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:365,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:372,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:376,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:381,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:387,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:388,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:392,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 394
    functionName: fuzz_csv_reader
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallMethod
    - PyIter_Next
    - PyErr_ExceptionMatches
    - memchr
    - PyErr_Clear
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int fuzz_csv_reader(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:400,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: init_ast_literal_eval
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int init_ast_literal_eval(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:414,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:418,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:421,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:425,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:427,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:428,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:429,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:430,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:431,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:433,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:437,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 439
    functionName: fuzz_ast_literal_eval
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_ExceptionMatches
    - PyObject_CallOneArg
    - memchr
    - PyErr_Clear
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int fuzz_ast_literal_eval(const char* data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:446,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:451,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:457,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 468
    functionName: init_elementtree_parsewhole
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int init_elementtree_parsewhole(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:475,1
    - Dst: assert
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:477,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:477,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:478,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:479,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:482,1
    - Dst: assert
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:484,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:484,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:485,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:486,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:489,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    constantsTouched: []
    func_position:
      end: 501
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 501
    functionName: fuzz_elementtree_parsewhole
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - abort
    - PyObject_CallFunction
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_Print
    - PyObject_CallMethod
    - PyObject_CallObject
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: int fuzz_elementtree_parsewhole(const char* data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:535,1
    - Dst: Py_CompileStringExFlags
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:550,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:555,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:555,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:556,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:557,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 565
    functionName: fuzz_pycompile
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - abort
    - Py_DECREF
    - Py_CompileStringExFlags
    - PyErr_Occurred
    - PyErr_Print
    - PyErr_ExceptionMatches
    - memcpy
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int fuzz_pycompile(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:570,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:573,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 578
    functionName: _run_fuzz
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_Print
    - abort
    - fuzzer
    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: 581
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 581
    functionName: __lsan_is_turned_off
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __lsan_is_turned_off(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:586,1
    - Dst: PyConfig_SetBytesString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:592,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:593,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:597,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:598,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:601,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:606,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 608
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_ExitStatusException
    - PyConfig_Clear
    - PyConfig_InitPythonConfig
    - PyConfig_SetBytesString
    - PyStatus_Exception
    - Py_InitializeFromConfig
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:618,1
    - Dst: Py_IsInitialized
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:618,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:623,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:626,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:629,1
    - Dst: init_struct_unpack
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:633,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:634,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:635,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:639,1
    - Dst: init_json_loads
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:643,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:644,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:645,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:650,1
    - Dst: init_sre_compile
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:654,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:655,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:656,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:662,1
    - Dst: init_sre_match
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:667,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:668,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:669,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:674,1
    - Dst: init_csv_reader
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:678,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:679,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:680,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:685,1
    - Dst: init_ast_literal_eval
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:689,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:690,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:691,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:696,1
    - Dst: init_elementtree_parsewhole
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:700,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:701,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:702,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:707,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:710,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Py_IsInitialized())
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    constantsTouched: []
    func_position:
      end: 713
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 713
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 1
    functionsReached:
    - init_ast_literal_eval
    - abort
    - init_json_loads
    - _run_fuzz
    - PyErr_Print
    - init_elementtree_parsewhole
    - init_sre_compile
    - Py_IsInitialized
    - init_csv_reader
    - init_sre_match
    - init_struct_unpack
    - assert
    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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: ZstdDecompressor_CAST
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZstdDecompressor_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:60,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/decompressor.c:60,1
    - Dst: ZSTD_createDDict
      Src: /src/cpython/Modules/_zstd/decompressor.c:66,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/decompressor.c:71,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:71,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/decompressor.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts:
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: _get_DDict
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDDict
    - PyErr_SetString
    - PyMutex_IsLocked
    - PyType_GetModuleState
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: ZSTD_DDict
    signature: 'ZSTD_DDict *

      _get_DDict(ZstdDict *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/decompressor.c:86,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:86,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_zstd/decompressor.c:91,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/decompressor.c:92,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_zstd/decompressor.c:100,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/decompressor.c:103,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:109,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:110,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/decompressor.c:111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:112,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/decompressor.c:113,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/decompressor.c:117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:118,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/decompressor.c:119,1
    - Dst: ZSTD_DCtx_setParameter
      Src: /src/cpython/Modules/_zstd/decompressor.c:124,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/decompressor.c:127,1
    - Dst: set_parameter_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - options
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 133
    functionName: _zstd_set_d_parameters
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - set_parameter_error
    - Py_INCREF
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - ZSTD_DCtx_setParameter
    - PyType_GetModuleState
    - PyDict_Next
    - PyErr_Format
    - PyDict_Check
    - Py_TYPE
    - ZSTD_isError
    linkageType: ''
    returnType: int
    signature: int _zstd_set_d_parameters(ZstdDecompressor *self, PyObject *options)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _get_DDict
      Src: /src/cpython/Modules/_zstd/decompressor.c:142,1
    - Dst: ZSTD_DCtx_refDDict
      Src: /src/cpython/Modules/_zstd/decompressor.c:147,1
    - Dst: ZSTD_DCtx_loadDictionary
      Src: /src/cpython/Modules/_zstd/decompressor.c:151,1
    - Dst: ZSTD_DCtx_refPrefix
      Src: /src/cpython/Modules/_zstd/decompressor.c:156,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_zstd/decompressor.c:160,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/decompressor.c:164,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - zd
    - mod_state
    - type
    argTypes:
    - ZstdDecompressor*
    - ZstdDict*
    - _zstd_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 169
    functionName: _zstd_load_impl
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - _get_DDict
    - ZSTD_DCtx_loadDictionary
    - set_zstd_error
    - ZSTD_DCtx_refPrefix
    - ZSTD_DCtx_refDDict
    - Py_UNREACHABLE
    - ZSTD_isError
    linkageType: ''
    returnType: int
    signature: "int _zstd_load_impl(ZstdDecompressor *self, ZstdDict *zd,\n                _zstd_state
      *mod_state, int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/decompressor.c:175,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:175,1
    - Dst: _Py_parse_zstd_dict
      Src: /src/cpython/Modules/_zstd/decompressor.c:178,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/decompressor.c:183,1
    - Dst: _zstd_load_impl
      Src: /src/cpython/Modules/_zstd/decompressor.c:184,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/decompressor.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - dict
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: _zstd_load_d_dict
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - _zstd_load_impl
    - _Py_parse_zstd_dict
    - PyType_GetModuleState
    - PyMutex_Lock
    - PyMutex_Unlock
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _zstd_load_d_dict(ZstdDecompressor *self, PyObject *dict)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_zstd/decompressor.c:223,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:226,1
    - Dst: ZSTD_decompressStream
      Src: /src/cpython/Modules/_zstd/decompressor.c:231,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/decompressor.c:236,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:236,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:237,1
    - Dst: _OutputBuffer_ReachedMaxLength
      Src: /src/cpython/Modules/_zstd/decompressor.c:254,1
    - Dst: _OutputBuffer_Grow
      Src: /src/cpython/Modules/_zstd/decompressor.c:259,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:262,1
    - Dst: _OutputBuffer_Finish
      Src: /src/cpython/Modules/_zstd/decompressor.c:272,1
    - Dst: _OutputBuffer_OnError
      Src: /src/cpython/Modules/_zstd/decompressor.c:278,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - self
    - in
    - max_length
    argTypes:
    - ZstdDecompressor*
    - ZSTD_inBuffer*
    - Py_ssize_t
    assertStmts:
    - condition: (out.pos == 0)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (out.pos == 0)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 280
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 280
    functionName: decompress_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - _OutputBuffer_OnError
    - set_zstd_error
    - _OutputBuffer_InitAndGrow
    - _OutputBuffer_Grow
    - PyType_GetModuleState
    - _OutputBuffer_Finish
    - ZSTD_decompressStream
    - Py_TYPE
    - _OutputBuffer_ReachedMaxLength
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndecompress_lock_held(ZstdDecompressor *self, ZSTD_inBuffer
      *in,\n                     Py_ssize_t max_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/decompressor.c:236,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:236,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: if
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyType_GetModuleState
    - set_zstd_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zstd_ret))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:285,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/decompressor.c:285,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:291,1
    - Dst: ZSTD_DCtx_reset
      Src: /src/cpython/Modules/_zstd/decompressor.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressor*
    assertStmts:
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 299
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 299
    functionName: decompressor_reset_session_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_reset
    - PyMutex_IsLocked
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: void
    signature: void decompressor_reset_session_lock_held(ZstdDecompressor *self)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:305,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/decompressor.c:305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/decompressor.c:312,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:314,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:329,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:343,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:347,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:352,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zstd/decompressor.c:359,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/decompressor.c:361,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/decompressor.c:366,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/decompressor.c:371,1
    - Dst: memmove
      Src: /src/cpython/Modules/_zstd/decompressor.c:382,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/decompressor.c:392,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:399,1
    - Dst: decompress_lock_held
      Src: /src/cpython/Modules/_zstd/decompressor.c:402,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_zstd/decompressor.c:409,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/decompressor.c:433,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zstd/decompressor.c:440,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/decompressor.c:442,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/decompressor.c:449,1
    - Dst: decompressor_reset_session_lock_held
      Src: /src/cpython/Modules/_zstd/decompressor.c:463,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:465,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 95
    argCount: 3
    argNames:
    - self
    - data
    - max_length
    argTypes:
    - ZstdDecompressor*
    - Py_buffer*
    - Py_ssize_t
    assertStmts:
    - condition: (self->in_begin < self->in_end)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (self->input_buffer_size >= used_now)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (self->in_end > self->in_begin)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (ret == NULL)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (self->input_buffer_size >= self->in_end)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (in.pos == 0)
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 467
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 467
    functionName: stream_decompress_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - decompress_lock_held
    - Py_CLEAR
    - Py_SIZE
    - PyErr_SetString
    - memmove
    - decompressor_reset_session_lock_held
    - PyMem_Free
    - memcpy
    - PyMutex_IsLocked
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstream_decompress_lock_held(ZstdDecompressor *self, Py_buffer
      *data,\n                            Py_ssize_t max_length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_zstd/decompressor.c:490,1
    - Dst: ZSTD_createDCtx
      Src: /src/cpython/Modules/_zstd/decompressor.c:508,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/decompressor.c:510,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:510,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/decompressor.c:512,1
    - Dst: _zstd_load_d_dict
      Src: /src/cpython/Modules/_zstd/decompressor.c:520,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:523,1
    - Dst: _zstd_set_d_parameters
      Src: /src/cpython/Modules/_zstd/decompressor.c:529,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_zstd/decompressor.c:535,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:540,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - type
    - zstd_dict
    - options
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 542
    functionName: _zstd_ZstdDecompressor_new_impl
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - _zstd_set_d_parameters
    - Py_INCREF
    - Py_XDECREF
    - _zstd_load_d_dict
    - PyErr_SetString
    - PyType_GetModuleState
    - PyObject_GC_Track
    - ZSTD_createDCtx
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_ZstdDecompressor_new_impl(PyTypeObject *type, PyObject
      *zstd_dict,\n                                PyObject *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDecompressor_CAST
      Src: /src/cpython/Modules/_zstd/decompressor.c:547,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_zstd/decompressor.c:549,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_zstd/decompressor.c:553,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:556,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/decompressor.c:556,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:559,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/decompressor.c:562,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:565,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:567,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_zstd/decompressor.c:568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 570
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 570
    functionName: ZstdDecompressor_dealloc
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - ZstdDecompressor_CAST
    - PyObject_GC_Del
    - Py_TYPE
    - ZSTD_freeDCtx
    - PyMutex_IsLocked
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void ZstdDecompressor_dealloc(PyObject *ob)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/decompressor.c:589,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/decompressor.c:592,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_zstd/decompressor.c:593,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_zstd/decompressor.c:597,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:601,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:605,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/decompressor.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 611
    functionName: _zstd_ZstdDecompressor_unused_data_get_impl
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_GetConstant
    - PyBytes_FromStringAndSize
    - PyMutex_Lock
    - PyMutex_Unlock
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDecompressor_unused_data_get_impl(ZstdDecompressor *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/decompressor.c:649,1
    - Dst: stream_decompress_lock_held
      Src: /src/cpython/Modules/_zstd/decompressor.c:650,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/decompressor.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - data
    - max_length
    argTypes:
    - ZstdDecompressor*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 653
    functionName: _zstd_ZstdDecompressor_decompress_impl
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - stream_decompress_lock_held
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_ZstdDecompressor_decompress_impl(ZstdDecompressor
      *self,\n                                       Py_buffer *data,\n                                       Py_ssize_t
      max_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDecompressor_CAST
      Src: /src/cpython/Modules/_zstd/decompressor.c:686,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/decompressor.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ob
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 689
    functionName: ZstdDecompressor_traverse
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - ZstdDecompressor_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ZstdDecompressor_traverse(PyObject *ob, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDecompressor_CAST
      Src: /src/cpython/Modules/_zstd/decompressor.c:694,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:695,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 698
    functionName: ZstdDecompressor_clear
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - ZstdDecompressor_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ZstdDecompressor_clear(PyObject *ob)
  - 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: ZstdCompressor_CAST
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZstdCompressor_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_zstd/compressor.c:69,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/compressor.c:72,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_zstd/compressor.c:74,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/compressor.c:75,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/compressor.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - size
    - p
    argTypes:
    - PyObject*
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 92
    functionName: zstd_contentsize_converter
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsUnsignedLongLong
    - PyErr_Format
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int zstd_contentsize_converter(PyObject *size, unsigned long long *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_minCLevel
      Src: /src/cpython/Modules/_zstd/compressor.c:100,1
    - Dst: ZSTD_maxCLevel
      Src: /src/cpython/Modules/_zstd/compressor.c:101,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/compressor.c:103,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/cpython/Modules/_zstd/compressor.c:113,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/compressor.c:117,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:118,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:118,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - level
    argTypes:
    - ZstdCompressor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: _zstd_set_c_level
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - set_zstd_error
    - PyType_GetModuleState
    - ZSTD_maxCLevel
    - ZSTD_minCLevel
    - PyErr_Format
    - ZSTD_isError
    - Py_TYPE
    - ZSTD_CCtx_setParameter
    linkageType: ''
    returnType: int
    signature: int _zstd_set_c_level(ZstdCompressor *self, int level)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:128,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_zstd/compressor.c:133,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/compressor.c:134,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_zstd/compressor.c:142,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:144,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:145,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/compressor.c:151,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/compressor.c:152,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/compressor.c:153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/compressor.c:154,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/compressor.c:155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/compressor.c:156,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/compressor.c:160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/compressor.c:161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/compressor.c:162,1
    - Dst: _zstd_set_c_level
      Src: /src/cpython/Modules/_zstd/compressor.c:167,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/cpython/Modules/_zstd/compressor.c:185,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/compressor.c:188,1
    - Dst: set_parameter_error
      Src: /src/cpython/Modules/_zstd/compressor.c:189,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - self
    - options
    argTypes:
    - ZstdCompressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 194
    functionName: _zstd_set_c_parameters
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - set_parameter_error
    - Py_INCREF
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - PyType_GetModuleState
    - PyDict_Next
    - _zstd_set_c_level
    - PyErr_Format
    - ZSTD_isError
    - PyDict_Check
    - Py_TYPE
    - ZSTD_CCtx_setParameter
    linkageType: ''
    returnType: int
    signature: int _zstd_set_c_parameters(ZstdCompressor *self, PyObject *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_zstd/compressor.c:199,1
    - Dst: ZSTD_freeCDict
      Src: /src/cpython/Modules/_zstd/compressor.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: capsule_free_cdict
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeCDict
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void capsule_free_cdict(PyObject *capsule)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/compressor.c:206,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/compressor.c:206,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_zstd/compressor.c:214,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_zstd/compressor.c:220,1
    - Dst: ZSTD_createCDict
      Src: /src/cpython/Modules/_zstd/compressor.c:227,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:232,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:232,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:234,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_zstd/compressor.c:242,1
    - Dst: ZSTD_freeCDict
      Src: /src/cpython/Modules/_zstd/compressor.c:244,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_zstd/compressor.c:249,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_zstd/compressor.c:256,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zstd/compressor.c:263,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zstd/compressor.c:264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - self
    - compressionLevel
    argTypes:
    - ZstdDict*
    - int
    assertStmts:
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/cpython/Modules/_zstd/compressor.c
    constantsTouched: []
    func_position:
      end: 266
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 266
    functionName: _get_CDict
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_SetItem
    - PyErr_SetString
    - PyType_GetModuleState
    - ZSTD_createCDict
    - ZSTD_freeCDict
    - Py_TYPE
    - PyCapsule_New
    - PyCapsule_GetPointer
    - PyLong_FromLong
    - PyDict_GetItemRef
    - PyMutex_IsLocked
    - assert
    linkageType: ''
    returnType: ZSTD_CDict
    signature: 'ZSTD_CDict *

      _get_CDict(ZstdDict *self, int compressionLevel)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _get_CDict
      Src: /src/cpython/Modules/_zstd/compressor.c:275,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/cpython/Modules/_zstd/compressor.c:281,1
    - Dst: ZSTD_CCtx_loadDictionary
      Src: /src/cpython/Modules/_zstd/compressor.c:286,1
    - Dst: ZSTD_CCtx_refPrefix
      Src: /src/cpython/Modules/_zstd/compressor.c:291,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_zstd/compressor.c:295,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/compressor.c:299,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - zd
    - mod_state
    - type
    argTypes:
    - ZstdCompressor*
    - ZstdDict*
    - _zstd_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 304
    functionName: _zstd_load_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 1
    functionsReached:
    - ZSTD_CCtx_refCDict
    - ZSTD_CCtx_loadDictionary
    - set_zstd_error
    - ZSTD_CCtx_refPrefix
    - _get_CDict
    - Py_UNREACHABLE
    - ZSTD_isError
    linkageType: ''
    returnType: int
    signature: "int _zstd_load_impl(ZstdCompressor *self, ZstdDict *zd,\n                _zstd_state
      *mod_state, int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:309,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:309,1
    - Dst: _Py_parse_zstd_dict
      Src: /src/cpython/Modules/_zstd/compressor.c:312,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/compressor.c:317,1
    - Dst: _zstd_load_impl
      Src: /src/cpython/Modules/_zstd/compressor.c:318,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - dict
    argTypes:
    - ZstdCompressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: _zstd_load_c_dict
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - _zstd_load_impl
    - _Py_parse_zstd_dict
    - PyType_GetModuleState
    - PyMutex_Lock
    - PyMutex_Unlock
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _zstd_load_c_dict(ZstdCompressor *self, PyObject *dict)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_zstd/compressor.c:344,1
    - Dst: ZSTD_createCCtx
      Src: /src/cpython/Modules/_zstd/compressor.c:354,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:356,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:356,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:358,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:368,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_zstd/compressor.c:375,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:376,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/compressor.c:380,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/compressor.c:381,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_zstd/compressor.c:382,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/compressor.c:383,1
    - Dst: ZSTD_minCLevel
      Src: /src/cpython/Modules/_zstd/compressor.c:385,1
    - Dst: ZSTD_maxCLevel
      Src: /src/cpython/Modules/_zstd/compressor.c:385,1
    - Dst: _zstd_set_c_level
      Src: /src/cpython/Modules/_zstd/compressor.c:389,1
    - Dst: _zstd_set_c_parameters
      Src: /src/cpython/Modules/_zstd/compressor.c:396,1
    - Dst: _zstd_load_c_dict
      Src: /src/cpython/Modules/_zstd/compressor.c:403,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/compressor.c:406,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_zstd/compressor.c:411,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zstd/compressor.c:416,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 4
    argNames:
    - type
    - level
    - options
    - zstd_dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 418
    functionName: _zstd_ZstdCompressor_new_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - _zstd_set_c_parameters
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyType_GetModuleState
    - _zstd_load_c_dict
    - PyErr_ExceptionMatches
    - ZSTD_maxCLevel
    - _zstd_set_c_level
    - PyObject_GC_Track
    - ZSTD_minCLevel
    - PyErr_Format
    - PyObject_GC_New
    - Py_TYPE
    - ZSTD_createCCtx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_ZstdCompressor_new_impl(PyTypeObject *type, PyObject
      *level,\n                              PyObject *options, PyObject *zstd_dict)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZstdCompressor_CAST
      Src: /src/cpython/Modules/_zstd/compressor.c:423,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_zstd/compressor.c:425,1
    - Dst: ZSTD_freeCCtx
      Src: /src/cpython/Modules/_zstd/compressor.c:429,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/compressor.c:432,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/compressor.c:432,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/compressor.c:435,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:437,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_zstd/compressor.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/compressor.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Modules/_zstd/compressor.c
    constantsTouched: []
    func_position:
      end: 440
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 440
    functionName: ZstdCompressor_dealloc
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - ZSTD_freeCCtx
    - Py_TYPE
    - ZstdCompressor_CAST
    - PyMutex_IsLocked
    - assert
    linkageType: ''
    returnType: void
    signature: void ZstdCompressor_dealloc(PyObject *ob)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/compressor.c:446,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/compressor.c:446,1
    - Dst: ZSTD_compressBound
      Src: /src/cpython/Modules/_zstd/compressor.c:466,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/compressor.c:468,1
    - Dst: _OutputBuffer_InitWithSize
      Src: /src/cpython/Modules/_zstd/compressor.c:472,1
    - Dst: ZSTD_compressStream2
      Src: /src/cpython/Modules/_zstd/compressor.c:481,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:486,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:486,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:487,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/compressor.c:497,1
    - Dst: _OutputBuffer_Grow
      Src: /src/cpython/Modules/_zstd/compressor.c:499,1
    - Dst: _OutputBuffer_Finish
      Src: /src/cpython/Modules/_zstd/compressor.c:506,1
    - Dst: _OutputBuffer_OnError
      Src: /src/cpython/Modules/_zstd/compressor.c:512,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - self
    - data
    - end_directive
    argTypes:
    - ZstdCompressor*
    - Py_buffer*
    - ZSTD_EndDirective
    assertStmts:
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/cpython/Modules/_zstd/compressor.c
    - condition: (out.pos == out.size)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/cpython/Modules/_zstd/compressor.c
    constantsTouched: []
    func_position:
      end: 514
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 514
    functionName: compress_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 2
    functionsReached:
    - _OutputBuffer_InitWithSize
    - _OutputBuffer_OnError
    - set_zstd_error
    - _OutputBuffer_Grow
    - PyType_GetModuleState
    - ZSTD_compressStream2
    - Py_TYPE
    - _OutputBuffer_Finish
    - ZSTD_compressBound
    - PyMutex_IsLocked
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncompress_lock_held(ZstdCompressor *self, Py_buffer *data,\n
      \                  ZSTD_EndDirective end_directive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:486,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:486,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: if
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyType_GetModuleState
    - set_zstd_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zstd_ret))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ZSTD_inBuffer*
    - ZSTD_outBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: mt_continue_should_break
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mt_continue_should_break(ZSTD_inBuffer *in, ZSTD_outBuffer *out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/compressor.c:527,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/compressor.c:527,1
    - Dst: _OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_zstd/compressor.c:539,1
    - Dst: ZSTD_compressStream2
      Src: /src/cpython/Modules/_zstd/compressor.c:547,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/compressor.c:551,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:556,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:556,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:557,1
    - Dst: _OutputBuffer_Grow
      Src: /src/cpython/Modules/_zstd/compressor.c:563,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/compressor.c:569,1
    - Dst: mt_continue_should_break
      Src: /src/cpython/Modules/_zstd/compressor.c:569,1
    - Dst: _OutputBuffer_Finish
      Src: /src/cpython/Modules/_zstd/compressor.c:575,1
    - Dst: _OutputBuffer_OnError
      Src: /src/cpython/Modules/_zstd/compressor.c:581,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - ZstdCompressor*
    - Py_buffer*
    assertStmts:
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 526
        line_start: 526
        source_file: /src/cpython/Modules/_zstd/compressor.c
    - condition: (mt_continue_should_break(&in, &out))
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/cpython/Modules/_zstd/compressor.c
    constantsTouched: []
    func_position:
      end: 583
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 583
    functionName: compress_mt_continue_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - _OutputBuffer_OnError
    - set_zstd_error
    - mt_continue_should_break
    - _OutputBuffer_InitAndGrow
    - _OutputBuffer_Grow
    - PyType_GetModuleState
    - ZSTD_compressStream2
    - Py_TYPE
    - _OutputBuffer_Finish
    - PyMutex_IsLocked
    - assert
    - ZSTD_isError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress_mt_continue_lock_held(ZstdCompressor *self, Py_buffer *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressStream2
      Src: /src/cpython/Modules/_zstd/compressor.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: do
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressStream2
    linkageType: ''
    returnType: Py_BEGIN_ALLOW_THREADS
    signature: Py_BEGIN_ALLOW_THREADS do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:556,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:556,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: if
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyType_GetModuleState
    - set_zstd_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zstd_ret))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:613,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/compressor.c:621,1
    - Dst: compress_mt_continue_lock_held
      Src: /src/cpython/Modules/_zstd/compressor.c:625,1
    - Dst: compress_lock_held
      Src: /src/cpython/Modules/_zstd/compressor.c:628,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/cpython/Modules/_zstd/compressor.c:638,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:640,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - data
    - mode
    argTypes:
    - ZstdCompressor*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 643
    functionName: _zstd_ZstdCompressor_compress_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - compress_lock_held
    - ZSTD_CCtx_reset
    - PyErr_SetString
    - PyMutex_Lock
    - compress_mt_continue_lock_held
    - PyMutex_Unlock
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_ZstdCompressor_compress_impl(ZstdCompressor *self,
      Py_buffer *data,\n                                   int mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:668,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/compressor.c:676,1
    - Dst: compress_lock_held
      Src: /src/cpython/Modules/_zstd/compressor.c:678,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/cpython/Modules/_zstd/compressor.c:687,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - mode
    argTypes:
    - ZstdCompressor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 692
    functionName: _zstd_ZstdCompressor_flush_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - compress_lock_held
    - ZSTD_CCtx_reset
    - PyErr_SetString
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdCompressor_flush_impl(ZstdCompressor *self, int mode)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/compressor.c:720,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/compressor.c:723,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:727,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:730,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/cpython/Modules/_zstd/compressor.c:735,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:736,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/compressor.c:737,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:738,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:738,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - ZstdCompressor*
    - unsigned long long
    assertStmts:
    - condition: (size != ZSTD_CONTENTSIZE_ERROR)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/cpython/Modules/_zstd/compressor.c
    constantsTouched: []
    func_position:
      end: 744
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 744
    functionName: _zstd_ZstdCompressor_set_pledged_input_size_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_setPledgedSrcSize
    - set_zstd_error
    - PyErr_SetString
    - PyType_GetModuleState
    - PyMutex_Lock
    - PyMutex_Unlock
    - Py_TYPE
    - assert
    - ZSTD_isError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_ZstdCompressor_set_pledged_input_size_impl(ZstdCompressor
      *self,\n                                                 unsigned long long
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdCompressor_CAST
      Src: /src/cpython/Modules/_zstd/compressor.c:768,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/compressor.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ob
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: ZstdCompressor_traverse
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - ZstdCompressor_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ZstdCompressor_traverse(PyObject *ob, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdCompressor_CAST
      Src: /src/cpython/Modules/_zstd/compressor.c:776,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/compressor.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 779
    functionName: ZstdCompressor_clear
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - ZstdCompressor_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ZstdCompressor_clear(PyObject *ob)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:30,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:35,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:35,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:36,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:36,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:37,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:37,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:39,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:39,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:40,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:48,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:53,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - state
    - dict
    - ptype
    argTypes:
    - _zstd_state*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 56
    functionName: _Py_parse_zstd_dict
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    linkageType: ''
    returnType: ZstdDict
    signature: 'ZstdDict *

      _Py_parse_zstd_dict(const _zstd_state *state, PyObject *dict, int *ptype)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:63,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:63,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:106,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:108,1
    - Dst: ZSTD_getErrorName
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - state
    - type
    - zstd_ret
    argTypes:
    - _zstd_state*
    - error_type
    - size_t
    assertStmts:
    - condition: (ZSTD_isError(zstd_ret))
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Modules/_zstd/_zstdmodule.c
    constantsTouched: []
    func_position:
      end: 109
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 109
    functionName: set_zstd_error
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 10
    functionsReached:
    - assert
    - PyErr_Format
    - ZSTD_getErrorName
    - Py_UNREACHABLE
    - ZSTD_isError
    linkageType: ''
    returnType: void
    signature: void set_zstd_error(const _zstd_state *state, error_type type, size_t
      zstd_ret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:156,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:161,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:176,1
    - Dst: ZSTD_cParam_getBounds
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:183,1
    - Dst: ZSTD_dParam_getBounds
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:186,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:188,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:189,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - is_compress
    - key_v
    - value_v
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 199
    functionName: set_parameter_error
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 2
    functionsReached:
    - PyOS_snprintf
    - ZSTD_cParam_getBounds
    - PyErr_Format
    - Py_ARRAY_LENGTH
    - ZSTD_dParam_getBounds
    - ZSTD_isError
    linkageType: ''
    returnType: void
    signature: void set_parameter_error(int is_compress, int key_v, int value_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:204,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/cpython/Modules/_zstd/_zstdmodule.c
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: get_zstd_state
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: _zstd_state
    signature: '_zstd_state *

      get_zstd_state(PyObject *module)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:217,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:219,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:227,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:231,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:233,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:233,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:235,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:236,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - samples_bytes
    - samples_sizes
    - chunk_sizes
    argTypes:
    - PyBytesObject*
    - PyObject*
    - size_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: calculate_samples_stats
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyLong_AsSize_t
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyBytes_GET_SIZE
    - PyMem_New
    - PyErr_Format
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t calculate_samples_stats(PyBytesObject *samples_bytes, PyObject
      *samples_sizes,\n                    size_t **chunk_sizes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:284,1
    - Dst: calculate_samples_stats
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:290,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:297,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:303,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:304,1
    - Dst: ZDICT_trainFromBuffer
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:306,1
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:313,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:314,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:319,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:326,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:329,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - module
    - samples_bytes
    - samples_sizes
    - dict_size
    argTypes:
    - PyObject*
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 331
    functionName: _zstd_train_dict_impl
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - set_zstd_error
    - PyErr_SetString
    - calculate_samples_stats
    - PyBytes_FromStringAndSize
    - get_zstd_state
    - _PyBytes_Resize
    - ZDICT_trainFromBuffer
    - PyBytes_AS_STRING
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_train_dict_impl(PyObject *module, PyBytesObject
      *samples_bytes,\n                      PyObject *samples_sizes, Py_ssize_t dict_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:313,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: if
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - get_zstd_state
    - set_zstd_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZDICT_isError(zstd_ret))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:366,1
    - Dst: calculate_samples_stats
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:372,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:379,1
    - Dst: ZDICT_finalizeDictionary
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:395,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:396,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:397,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:398,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:399,1
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:405,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:406,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:411,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:418,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:421,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 6
    argNames:
    - module
    - custom_dict_bytes
    - samples_bytes
    - samples_sizes
    - dict_size
    - compression_level
    argTypes:
    - PyObject*
    - PyBytesObject*
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 423
    functionName: _zstd_finalize_dict_impl
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - set_zstd_error
    - Py_SIZE
    - PyErr_SetString
    - calculate_samples_stats
    - PyBytes_FromStringAndSize
    - get_zstd_state
    - _PyBytes_Resize
    - ZDICT_finalizeDictionary
    - PyBytes_AS_STRING
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_finalize_dict_impl(PyObject *module, PyBytesObject
      *custom_dict_bytes,\n                         PyBytesObject *samples_bytes,\n
      \                        PyObject *samples_sizes, Py_ssize_t dict_size,\n                         int
      compression_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:405,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: if
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - get_zstd_state
    - set_zstd_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZDICT_isError(zstd_ret))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cParam_getBounds
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:443,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:444,1
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:445,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:446,1
    - Dst: ZSTD_dParam_getBounds
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:451,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:452,1
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:453,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:454,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - module
    - parameter
    - is_compress
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 460
    functionName: _zstd_get_param_bounds_impl
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - set_zstd_error
    - get_zstd_state
    - ZSTD_cParam_getBounds
    - ZSTD_dParam_getBounds
    - ZSTD_isError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_get_param_bounds_impl(PyObject *module, int parameter, int is_compress)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_findFrameCompressedSize
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:479,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:481,1
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:482,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:483,1
    - Dst: ZSTD_getErrorName
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:488,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - frame_buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: _zstd_get_frame_size_impl
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - ZSTD_findFrameCompressedSize
    - get_zstd_state
    - PyLong_FromSize_t
    - PyErr_Format
    - ZSTD_getErrorName
    - ZSTD_isError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_get_frame_size_impl(PyObject *module, Py_buffer *frame_buffer)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameContentSize
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:512,1
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:519,1
    - Dst: ZSTD_getDictID_fromFrame
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:528,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:532,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - frame_buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 535
    functionName: _zstd_get_frame_info_impl
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - get_zstd_state
    - PyErr_SetString
    - ZSTD_getDictID_fromFrame
    - ZSTD_getFrameContentSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_get_frame_info_impl(PyObject *module, Py_buffer *frame_buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:554,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:556,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:557,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:558,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module
    - c_parameter_type
    - d_parameter_type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 562
    functionName: _zstd_set_parameter_types_impl
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_zstd_state
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_set_parameter_types_impl(PyObject *module, PyObject
      *c_parameter_type,\n                               PyObject *d_parameter_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:604,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:611,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:612,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:613,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:614,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:621,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:626,1
    - Dst: ZSTD_versionNumber
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:627,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:631,1
    - Dst: ZSTD_versionString
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:632,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:637,1
    - Dst: ZSTD_defaultCLevel
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:638,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:642,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:645,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:646,1
    - Dst: ZSTD_DStreamOutSize
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:646,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:651,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:652,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:653,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:654,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:655,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:656,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:657,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:658,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:660,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:661,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:662,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:663,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:664,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:666,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:667,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:668,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:670,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:671,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:672,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:675,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:678,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:679,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:680,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:681,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:682,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:683,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:684,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:685,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:686,1
    - Dst: ADD_INT_CONST_TO_TYPE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:689,1
    - Dst: ADD_INT_CONST_TO_TYPE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:691,1
    - Dst: ADD_INT_CONST_TO_TYPE
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:693,1
    - Dst: PyType_Freeze
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:697,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 704
    functionName: _zstd_exec
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyModule_AddStringConstant
    - ADD_TYPE
    - ADD_INT_CONST_TO_TYPE
    - PyType_Freeze
    - get_zstd_state
    - ADD_INT_MACRO
    - ZSTD_defaultCLevel
    - PyModule_AddIntConstant
    - PyLong_FromSize_t
    - PyModule_Add
    - ZSTD_DStreamOutSize
    - ZSTD_versionString
    - PyErr_NewExceptionWithDoc
    - ZSTD_versionNumber
    linkageType: ''
    returnType: int
    signature: int _zstd_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - SPEC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: ADD_TYPE
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(TYPE, SPEC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MACRO
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(MACRO)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - NAME
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 603
    functionName: ADD_INT_CONST_TO_TYPE
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_CONST_TO_TYPE(TYPE, NAME, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:709,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:711,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:712,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:714,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:716,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:718,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 721
    functionName: _zstd_traverse
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - get_zstd_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _zstd_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zstd_state
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:726,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:728,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:729,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:731,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:733,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:735,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 738
    functionName: _zstd_clear
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - get_zstd_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _zstd_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zstd_clear
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 744
    functionName: _zstd_free
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - _zstd_clear
    linkageType: ''
    returnType: void
    signature: void _zstd_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_zstd/_zstdmodule.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 769
    functionName: PyInit__zstd
    functionSourceFile: /src/cpython/Modules/_zstd/_zstdmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__zstd(void)
  - 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: ZstdDict_CAST
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZstdDict_CAST(op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/zstddict.c:51,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_zstd/zstddict.c:57,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_zstd/zstddict.c:68,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zstd/zstddict.c:73,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/zstddict.c:75,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/zstddict.c:78,1
    - Dst: ZSTD_getDictID_fromDict
      Src: /src/cpython/Modules/_zstd/zstddict.c:82,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/zstddict.c:86,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_zstd/zstddict.c:90,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zstd/zstddict.c:95,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - type
    - dict_content
    - is_raw
    argTypes:
    - PyTypeObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 97
    functionName: _zstd_ZstdDict_new_impl
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - ZSTD_getDictID_fromDict
    - Py_XDECREF
    - PyErr_SetString
    - PyObject_GC_Track
    - PyDict_New
    - memcpy
    - PyObject_GC_New
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_zstd_ZstdDict_new_impl(PyTypeObject *type, Py_buffer
      *dict_content,\n                        int is_raw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDict_CAST
      Src: /src/cpython/Modules/_zstd/zstddict.c:102,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_zstd/zstddict.c:104,1
    - Dst: ZSTD_freeDDict
      Src: /src/cpython/Modules/_zstd/zstddict.c:108,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/zstddict.c:111,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/zstddict.c:111,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/zstddict.c:114,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/zstddict.c:115,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/zstddict.c:117,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_zstd/zstddict.c:118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/zstddict.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/cpython/Modules/_zstd/zstddict.c
    constantsTouched: []
    func_position:
      end: 120
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 120
    functionName: ZstdDict_dealloc
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    - ZstdDict_CAST
    - ZSTD_freeDDict
    - PyMutex_IsLocked
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void ZstdDict_dealloc(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDict_CAST
      Src: /src/cpython/Modules/_zstd/zstddict.c:132,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_zstd/zstddict.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: ZstdDict_repr
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - ZstdDict_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ZstdDict_repr(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_zstd/zstddict.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: _zstd_ZstdDict_dict_content_get_impl
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_dict_content_get_impl(ZstdDict *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zstd/zstddict.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: _zstd_ZstdDict_as_digested_dict_get_impl
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_as_digested_dict_get_impl(ZstdDict *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zstd/zstddict.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: _zstd_ZstdDict_as_undigested_dict_get_impl
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_as_undigested_dict_get_impl(ZstdDict *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zstd/zstddict.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: _zstd_ZstdDict_as_prefix_get_impl
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_as_prefix_get_impl(ZstdDict *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDict_CAST
      Src: /src/cpython/Modules/_zstd/zstddict.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: ZstdDict_length
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - ZstdDict_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t ZstdDict_length(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDict_CAST
      Src: /src/cpython/Modules/_zstd/zstddict.c:245,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/zstddict.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ob
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: ZstdDict_traverse
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - ZstdDict_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ZstdDict_traverse(PyObject *ob, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDict_CAST
      Src: /src/cpython/Modules/_zstd/zstddict.c:253,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/zstddict.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: ZstdDict_clear
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - ZstdDict_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ZstdDict_clear(PyObject *ob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/buffer.h:20,1
    - Dst: _BlocksOutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_zstd/buffer.h:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buffer
    - ob
    - max_length
    argTypes:
    - _BlocksOutputBuffer*
    - ZSTD_outBuffer*
    - Py_ssize_t
    assertStmts:
    - condition: (buffer->list == NULL)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/cpython/Modules/_zstd/buffer.h
    constantsTouched: []
    func_position:
      end: 30
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 30
    functionName: _OutputBuffer_InitAndGrow
    functionSourceFile: /src/cpython/Modules/_zstd/buffer.h
    functionUses: 2
    functionsReached:
    - _BlocksOutputBuffer_InitAndGrow
    - assert
    linkageType: ''
    returnType: int
    signature: "int _OutputBuffer_InitAndGrow(_BlocksOutputBuffer *buffer, ZSTD_outBuffer
      *ob,\n                        Py_ssize_t max_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/buffer.h:43,1
    - Dst: _BlocksOutputBuffer_InitWithSize
      Src: /src/cpython/Modules/_zstd/buffer.h:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buffer
    - ob
    - max_length
    - init_size
    argTypes:
    - _BlocksOutputBuffer*
    - ZSTD_outBuffer*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (buffer->list == NULL)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Modules/_zstd/buffer.h
    constantsTouched: []
    func_position:
      end: 63
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 63
    functionName: _OutputBuffer_InitWithSize
    functionSourceFile: /src/cpython/Modules/_zstd/buffer.h
    functionUses: 1
    functionsReached:
    - _BlocksOutputBuffer_InitWithSize
    - assert
    linkageType: ''
    returnType: int
    signature: "int _OutputBuffer_InitWithSize(_BlocksOutputBuffer *buffer, ZSTD_outBuffer
      *ob,\n                            Py_ssize_t max_length, Py_ssize_t init_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/buffer.h:71,1
    - Dst: _BlocksOutputBuffer_Grow
      Src: /src/cpython/Modules/_zstd/buffer.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buffer
    - ob
    argTypes:
    - _BlocksOutputBuffer*
    - ZSTD_outBuffer*
    assertStmts:
    - condition: (ob->pos == ob->size)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/cpython/Modules/_zstd/buffer.h
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: _OutputBuffer_Grow
    functionSourceFile: /src/cpython/Modules/_zstd/buffer.h
    functionUses: 3
    functionsReached:
    - _BlocksOutputBuffer_Grow
    - assert
    linkageType: ''
    returnType: int
    signature: int _OutputBuffer_Grow(_BlocksOutputBuffer *buffer, ZSTD_outBuffer
      *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_Finish
      Src: /src/cpython/Modules/_zstd/buffer.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - ob
    argTypes:
    - _BlocksOutputBuffer*
    - ZSTD_outBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: _OutputBuffer_Finish
    functionSourceFile: /src/cpython/Modules/_zstd/buffer.h
    functionUses: 3
    functionsReached:
    - _BlocksOutputBuffer_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _OutputBuffer_Finish(_BlocksOutputBuffer *buffer, ZSTD_outBuffer *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BlocksOutputBuffer_OnError
      Src: /src/cpython/Modules/_zstd/buffer.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - _BlocksOutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: _OutputBuffer_OnError
    functionSourceFile: /src/cpython/Modules/_zstd/buffer.h
    functionUses: 3
    functionsReached:
    - _BlocksOutputBuffer_OnError
    linkageType: ''
    returnType: void
    signature: void _OutputBuffer_OnError(_BlocksOutputBuffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/buffer.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - ob
    argTypes:
    - _BlocksOutputBuffer*
    - ZSTD_outBuffer*
    assertStmts:
    - condition: (ob->pos == ob->size)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/cpython/Modules/_zstd/buffer.h
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: _OutputBuffer_ReachedMaxLength
    functionSourceFile: /src/cpython/Modules/_zstd/buffer.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _OutputBuffer_ReachedMaxLength(_BlocksOutputBuffer *buffer, ZSTD_outBuffer
      *ob)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:40,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:43,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:44,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:48,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:49,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:55,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:58,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:60,1
    - Dst: _zstd_train_dict_impl
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:65,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: _zstd_train_dict
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyTuple_Check
    - PyErr_Occurred
    - _zstd_train_dict_impl
    - PyBytes_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_train_dict(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:108,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:111,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:112,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:116,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:117,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:121,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:122,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:128,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:133,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:139,1
    - Dst: _zstd_finalize_dict_impl
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:142,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 146
    functionName: _zstd_finalize_dict
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsInt
    - _PyNumber_Index
    - PyTuple_Check
    - PyErr_Occurred
    - PyBytes_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _zstd_finalize_dict_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_finalize_dict(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:178,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:180,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:180,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:200,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:206,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:209,1
    - Dst: _zstd_get_param_bounds_impl
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 217
    functionName: _zstd_get_param_bounds
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _zstd_get_param_bounds_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_get_param_bounds(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:248,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:250,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:269,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:274,1
    - Dst: _zstd_get_frame_size_impl
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:277,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 286
    functionName: _zstd_get_frame_size
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _zstd_get_frame_size_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_get_frame_size(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:316,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:318,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:337,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:342,1
    - Dst: _zstd_get_frame_info_impl
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:345,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 354
    functionName: _zstd_get_frame_info
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - _zstd_get_frame_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_get_frame_info(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:387,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:389,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:389,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:409,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:414,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:415,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:419,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:420,1
    - Dst: _zstd_set_parameter_types_impl
      Src: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h:424,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 428
    functionName: _zstd_set_parameter_types
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/_zstdmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - _zstd_set_parameter_types_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_set_parameter_types(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:43,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:45,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:45,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:63,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:64,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:68,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:68,1
    - Dst: _zstd_ZstdDecompressor_new_impl
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:84,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 88
    functionName: _zstd_ZstdDecompressor_new
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/decompressor.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _zstd_ZstdDecompressor_new_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDecompressor_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zstd_ZstdDecompressor_unused_data_get_impl
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: _zstd_ZstdDecompressor_unused_data_get
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/decompressor.c.h
    functionUses: 0
    functionsReached:
    - _zstd_ZstdDecompressor_unused_data_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDecompressor_unused_data_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:166,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:168,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:168,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:185,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:189,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:194,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:202,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:207,1
    - Dst: _zstd_ZstdDecompressor_decompress_impl
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:213,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:218,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 222
    functionName: _zstd_ZstdDecompressor_decompress
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/decompressor.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - _zstd_ZstdDecompressor_decompress_impl
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDecompressor_decompress(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:46,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:46,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:46,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:64,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:65,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:70,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:70,1
    - Dst: _zstd_ZstdCompressor_new_impl
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:92,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 96
    functionName: _zstd_ZstdCompressor_new
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/compressor.c.h
    functionUses: 0
    functionsReached:
    - _zstd_ZstdCompressor_new_impl
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdCompressor_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:132,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:134,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:134,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:151,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:155,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:160,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:167,1
    - Dst: _zstd_ZstdCompressor_compress_impl
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:171,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 180
    functionName: _zstd_ZstdCompressor_compress
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/compressor.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _zstd_ZstdCompressor_compress_impl
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdCompressor_compress(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:215,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:217,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:234,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:237,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:245,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:246,1
    - Dst: _zstd_ZstdCompressor_flush_impl
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 254
    functionName: _zstd_ZstdCompressor_flush
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/compressor.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _zstd_ZstdCompressor_flush_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdCompressor_flush(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zstd_contentsize_converter
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:286,1
    - Dst: _zstd_ZstdCompressor_set_pledged_input_size_impl
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: _zstd_ZstdCompressor_set_pledged_input_size
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/compressor.c.h
    functionUses: 0
    functionsReached:
    - zstd_contentsize_converter
    - _zstd_ZstdCompressor_set_pledged_input_size_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdCompressor_set_pledged_input_size(PyObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:46,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:64,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:65,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:69,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:69,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:74,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:80,1
    - Dst: _zstd_ZstdDict_new_impl
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:85,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:90,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 94
    functionName: _zstd_ZstdDict_new
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/zstddict.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - _zstd_ZstdDict_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zstd_ZstdDict_dict_content_get_impl
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: _zstd_ZstdDict_dict_content_get
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/zstddict.c.h
    functionUses: 0
    functionsReached:
    - _zstd_ZstdDict_dict_content_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_dict_content_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zstd_ZstdDict_as_digested_dict_get_impl
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: _zstd_ZstdDict_as_digested_dict_get
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/zstddict.c.h
    functionUses: 0
    functionsReached:
    - _zstd_ZstdDict_as_digested_dict_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_as_digested_dict_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zstd_ZstdDict_as_undigested_dict_get_impl
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: _zstd_ZstdDict_as_undigested_dict_get
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/zstddict.c.h
    functionUses: 0
    functionsReached:
    - _zstd_ZstdDict_as_undigested_dict_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_as_undigested_dict_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zstd_ZstdDict_as_prefix_get_impl
      Src: /src/cpython/Modules/_zstd/clinic/zstddict.c.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: _zstd_ZstdDict_as_prefix_get
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/zstddict.c.h
    functionUses: 0
    functionsReached:
    - _zstd_ZstdDict_as_prefix_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _zstd_ZstdDict_as_prefix_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:26,1
    - Dst: usleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: pysleep
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 1
    functionsReached:
    - usleep
    - Sleep
    linkageType: ''
    returnType: void
    signature: void pysleep(int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:38,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:39,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:40,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (m._bits == 0)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m._bits == 1)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: test_lock_basic
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_basic(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:57,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:59,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:63,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:65,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:66,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (m->_bits == 1 || m->_bits == 3)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m->_bits == 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 69
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 69
    functionName: lock_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - PyMutex_Lock
    - _Py_atomic_store_int
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void lock_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:76,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:78,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:79,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:81,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:87,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:88,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:89,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:94,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:96,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:97,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (test_data.m._bits == 1)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (v == 1 || v == 3)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.m._bits == 3)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.m._bits == 0)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 101
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 101
    functionName: test_lock_two_threads
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - _Py_atomic_load_uint8_relaxed
    - PyThread_start_new_thread
    - pysleep
    - memset
    - PyMutex_Lock
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_two_threads(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:123,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:125,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: counter_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - _PyEvent_Notify
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void counter_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:135,1
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:138,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:142,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:146,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (test_data.counter == COUNTER_THREADS * COUNTER_ITERS)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: test_lock_counter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - memset
    - PyThread_start_new_thread
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_counter(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:162,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:164,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:167,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: slow_counter_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - _PyEvent_Notify
    - pysleep
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void slow_counter_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:178,1
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:181,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:185,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:189,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (test_data.counter == COUNTER_THREADS * SLOW_COUNTER_ITERS)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 194
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 194
    functionName: test_lock_counter_slow
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - memset
    - PyThread_start_new_thread
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_counter_slow(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:223,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:225,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:230,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:233,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:238,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:244,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 246
    functionName: thread_benchmark_locks
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_add_ssize
    - PyThread_release_lock
    - PyMutex_Lock
    - PyThread_acquire_lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void thread_benchmark_locks(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:275,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:279,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:281,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:285,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:287,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:291,1
    - Dst: PyTime_PerfCounter
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:297,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:303,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:307,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:308,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:312,1
    - Dst: PyTime_PerfCounter
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:316,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:323,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:327,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:330,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:332,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:335,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:336,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:337,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 5
    argNames:
    - module
    - num_threads
    - use_pymutex
    - critical_section_length
    - time_ms
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    - int
    - int
    assertStmts:
    - condition: (end != start)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 339
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 339
    functionName: _testinternalcapi_benchmark_locks_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyTime_PerfCounter
    - PyMem_Calloc
    - PyEvent_Wait
    - Py_BuildValue
    - PyThread_start_new_thread
    - Py_XDECREF
    - PyThread_allocate_lock
    - PyLong_FromSsize_t
    - pysleep
    - memset
    - PyList_SET_ITEM
    - PyMem_Free
    - _Py_atomic_store_int
    - PyThread_free_lock
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testinternalcapi_benchmark_locks_impl(PyObject *module,\n
      \                                      Py_ssize_t num_threads,\n                                       int
      use_pymutex,\n                                       int critical_section_length,\n
      \                                      int time_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _testinternalcapi_benchmark_locks_impl
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: test_lock_benchmark
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _testinternalcapi_benchmark_locks_impl
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_benchmark(PyObject *module, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (*counter == 5)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 365
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 365
    functionName: init_maybe_fail
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int init_maybe_fail(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:373,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:375,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:378,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (res == 0)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (res == -1)
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (counter == 5)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 383
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 383
    functionName: test_lock_once
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyOnceFlag_CallOnce
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_once(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRWMutex_RLock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:400,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:401,1
    - Dst: _PyRWMutex_RUnlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:402,1
    - Dst: _PyRWMutex_RLock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:404,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:405,1
    - Dst: _PyRWMutex_RUnlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:406,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:408,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 411
    functionName: rdlock_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - _PyEvent_Notify
    - _Py_atomic_add_ssize
    - _PyRWMutex_RUnlock
    - _PyRWMutex_RLock
    linkageType: ''
    returnType: void
    signature: void rdlock_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRWMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:418,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:419,1
    - Dst: _PyRWMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:420,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:422,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 425
    functionName: wrlock_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - PyEvent_Wait
    - _PyRWMutex_Unlock
    - _Py_atomic_add_ssize
    - _PyRWMutex_Lock
    linkageType: ''
    returnType: void
    signature: void wrlock_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:434,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 438
    functionName: wait_until
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uintptr
    - pysleep
    linkageType: ''
    returnType: void
    signature: void wait_until(uintptr_t *ptr, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRWMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:445,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:446,1
    - Dst: _PyRWMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:448,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:449,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:452,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:453,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:456,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:457,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:460,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:461,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:462,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:465,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:466,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:467,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:470,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:471,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:472,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:475,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:476,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:477,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (test_data.rw.bits == 0)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 8)
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 10)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 3)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 8)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 1)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 0)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 481
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 481
    functionName: test_lock_rwlock
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - wait_until
    - _PyEvent_Notify
    - PyEvent_Wait
    - _PyRWMutex_Unlock
    - PyThread_start_new_thread
    - _PyRWMutex_Lock
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_rwlock(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:487,1
    - Dst: _PyRecursiveMutex_IsLockedByCurrentThread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:487,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:489,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:490,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:490,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:491,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:491,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:492,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:494,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:495,1
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:496,1
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:498,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:499,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:500,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:500,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyRecursiveMutex_IsLockedByCurrentThread(&m))
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.thread == PyThread_get_thread_ident_ex())
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (PyMutex_IsLocked(&m.mutex))
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.level == 0)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.level == 1)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.thread == 0)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.level == 0)
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (!PyMutex_IsLocked(&m.mutex))
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 504
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 504
    functionName: test_lock_recursive
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyRecursiveMutex_Unlock
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - PyThread_get_thread_ident_ex
    - PyMutex_IsLocked
    - _PyRecursiveMutex_Lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_recursive(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: _PyTestInternalCapi_Init_Lock
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestInternalCapi_Init_Lock(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 23
    functionName: _PY_CR_FUNC2
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PY_CR_FUNC2(suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: _PY_RC_FUNC2
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PY_RC_FUNC2(suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testinternalcapi/complex.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: _PyTestInternalCapi_Init_Complex
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/complex.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestInternalCapi_Init_Complex(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/set.c:12,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testinternalcapi/set.c:15,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testinternalcapi/set.c:16,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testinternalcapi/set.c:17,1
    - Dst: _PySet_Update
      Src: /src/cpython/Modules/_testinternalcapi/set.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 18
    functionName: set_update
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/set.c
    functionUses: 0
    functionsReached:
    - _PySet_Update
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_update(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/set.c:27,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testinternalcapi/set.c:30,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/set.c:31,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Modules/_testinternalcapi/set.c:32,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/set.c:33,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/set.c:35,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/set.c:36,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/set.c:39,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/set.c:40,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/set.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (item == UNINITIALIZED_PTR)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/cpython/Modules/_testinternalcapi/set.c
    - condition: (hash == (Py_hash_t)UNINITIALIZED_SIZE)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Modules/_testinternalcapi/set.c
    - condition: (rc == 0)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/cpython/Modules/_testinternalcapi/set.c
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: set_next_entry
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/set.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_BuildValue
    - Py_DECREF
    - NULLABLE
    - PyArg_ParseTuple
    - _PySet_NextEntryRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_next_entry(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testinternalcapi/set.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: _PyTestInternalCapi_Init_Set
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/set.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestInternalCapi_Init_Set(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:24,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:25,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:27,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:28,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:32,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:33,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:33,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:34,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:34,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:34,1
    - Dst: assert_gil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:35,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:35,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:36,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:37,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:37,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:39,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:39,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:40,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:40,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:41,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:42,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:42,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:43,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:43,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:44,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:45,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:45,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:46,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:46,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:49,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:49,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:50,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:51,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:51,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:52,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:53,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:53,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:55,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (d1 != NULL)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (d2 != NULL)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: test_critical_sections
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - assert_nogil
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyThreadState_GET
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - PyDict_New
    - _PyCriticalSection_IsActive
    - PyMutex_IsLocked
    - assert_gil
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:63,1
    - Dst: lock_unlock_object
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:65,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - recurse_depth
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: lock_unlock_object
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - lock_unlock_object
    linkageType: ''
    returnType: void
    signature: void lock_unlock_object(PyObject *obj, int recurse_depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:73,1
    - Dst: lock_unlock_two_objects
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:75,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - recurse_depth
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: lock_unlock_two_objects
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - lock_unlock_two_objects
    linkageType: ''
    returnType: void
    signature: void lock_unlock_two_objects(PyObject *a, PyObject *b, int recurse_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:86,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:87,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:88,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:89,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:92,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:92,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:93,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:94,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:94,1
    - Dst: lock_unlock_object
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:95,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:96,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:96,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:97,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:98,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:98,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:101,1
    - Dst: lock_unlock_two_objects
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:102,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:103,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:103,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:104,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:104,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (b != NULL)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 110
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 110
    functionName: test_critical_sections_nest
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - assert_nogil
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - lock_unlock_object
    - PyDict_New
    - lock_unlock_two_objects
    - PyMutex_IsLocked
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections_nest(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:117,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:118,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:120,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:121,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:121,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:125,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:129,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:129,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: test_critical_sections_suspend
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - assert_nogil
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyDict_New
    - PyMutex_IsLocked
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections_suspend(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:150,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:153,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:154,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:156,1
    - Dst: lock_unlock_object
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:157,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:158,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:160,1
    - Dst: lock_unlock_object
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:161,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:162,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:164,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:170,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:171,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 175
    functionName: thread_critical_sections
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyGILState_Ensure
    - _PyEvent_Notify
    - Py_END_CRITICAL_SECTION
    - PyGILState_Release
    - Py_BEGIN_CRITICAL_SECTION2
    - _Py_atomic_add_ssize
    - Py_END_CRITICAL_SECTION2
    - lock_unlock_object
    linkageType: ''
    returnType: void
    signature: void thread_critical_sections(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:182,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:183,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:184,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:187,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:188,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:189,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:192,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (test_data.obj2 != NULL)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (test_data.obj1 != NULL)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (test_data.obj3 != NULL)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: test_critical_sections_threads
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - Py_DECREF
    - PyThread_start_new_thread
    - PyDict_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections_threads(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:206,1
    - Dst: usleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: pysleep
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 5
    functionsReached:
    - usleep
    - Sleep
    linkageType: ''
    returnType: void
    signature: void pysleep(int ms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:225,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:227,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:229,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:233,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:237,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:240,1
    - Dst: PyGC_Collect
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:241,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:242,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:245,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:246,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:247,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:248,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:252,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:253,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:254,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:255,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:258,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:259,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 263
    functionName: thread_gc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEvent_Notify
    - PyGILState_Ensure
    - PyEvent_Wait
    - PyGC_Collect
    - Py_END_CRITICAL_SECTION
    - PyGILState_Release
    - _Py_atomic_add_ssize
    - pysleep
    linkageType: ''
    returnType: void
    signature: void thread_gc(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:271,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:275,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:278,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (test_data.obj != NULL)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 283
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 283
    functionName: test_critical_sections_gc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - Py_DECREF
    - PyThread_start_new_thread
    - PyDict_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections_gc(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: _PyTestInternalCapi_Init_CriticalSection
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestInternalCapi_Init_CriticalSection(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:16,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:19,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: test_pytime_fromseconds
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsLong
    - _PyTime_FromSeconds
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_fromseconds(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - round
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: check_time_rounding
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.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/cpython/Modules/_testinternalcapi/pytime.c:42,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:45,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:49,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: test_pytime_fromsecondsobject
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsLong
    - _PyTime_FromSecondsObject
    - check_time_rounding
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_fromsecondsobject(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:60,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:63,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:67,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:71,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:75,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: test_PyTime_AsTimeval
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    - _PyTime_FromLong
    - PyLong_FromLongLong
    - _PyTime_AsTimeval
    - check_time_rounding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsTimeval(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:87,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:90,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:94,1
    - Dst: _PyTime_AsTimeval_clamp
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:98,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:100,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: test_PyTime_AsTimeval_clamp
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _PyTime_AsTimeval_clamp
    - PyArg_ParseTuple
    - _PyTime_FromLong
    - PyLong_FromLongLong
    - check_time_rounding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsTimeval_clamp(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:112,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:116,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:120,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:123,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: test_PyTime_AsTimespec
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    - _PyTime_FromLong
    - _PyLong_FromTime_t
    - _PyTime_AsTimespec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsTimespec(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:130,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:134,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:138,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:139,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: test_PyTime_AsTimespec_clamp
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    - _PyTime_FromLong
    - _PyLong_FromTime_t
    - _PyTime_AsTimespec_clamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsTimespec_clamp(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:148,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:152,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:155,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:158,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: test_PyTime_AsMilliseconds
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsMilliseconds
    - PyArg_ParseTuple
    - _PyTime_FromLong
    - _PyTime_AsLong
    - check_time_rounding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsMilliseconds(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:167,1
    - Dst: _PyTime_FromLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:171,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:174,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:177,1
    - Dst: _PyTime_AsLong
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 179
    functionName: test_PyTime_AsMicroseconds
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyTime_FromLong
    - _PyTime_AsMicroseconds
    - _PyTime_AsLong
    - check_time_rounding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsMicroseconds(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:187,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:190,1
    - Dst: _PyTime_ObjectToTime_t
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:193,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 197
    functionName: test_pytime_object_to_time_t
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromTime_t
    - _PyTime_ObjectToTime_t
    - check_time_rounding
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_time_t(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:206,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:209,1
    - Dst: _PyTime_ObjectToTimeval
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:212,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:215,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: test_pytime_object_to_timeval
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    - _PyTime_ObjectToTimeval
    - _PyLong_FromTime_t
    - check_time_rounding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_timeval(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:225,1
    - Dst: check_time_rounding
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:228,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:231,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:234,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 235
    functionName: test_pytime_object_to_timespec
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _PyTime_ObjectToTimespec
    - PyArg_ParseTuple
    - _PyLong_FromTime_t
    - check_time_rounding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_timespec(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testinternalcapi/pytime.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: _PyTestInternalCapi_Init_PyTime
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/pytime.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestInternalCapi_Init_PyTime(PyObject *m)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:33,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:38,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:40,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:41,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:43,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:51,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:58,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:59,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:65,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:66,1
    - Dst: _testinternalcapi_benchmark_locks_impl
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:70,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 74
    functionName: _testinternalcapi_benchmark_locks
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyLong_AsInt
    - _PyNumber_Index
    - PyErr_Occurred
    - _testinternalcapi_benchmark_locks_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_benchmark_locks(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_ctypes/cfield.c:28,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/cfield.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: pymem_destructor
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void pymem_destructor(PyObject *ptr)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:78,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:82,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/cfield.c:88,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/cfield.c:90,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:94,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:99,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:120,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:121,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:127,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:137,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/cfield.c:142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:144,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:145,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/cfield.c:151,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:153,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:154,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:161,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:170,1
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:178,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ctypes/cfield.c:178,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/_ctypes/cfield.c:182,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:186,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_ctypes/cfield.c:186,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:188,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:201,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/cfield.c:203,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/cfield.c:209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:213,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:217,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:218,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:222,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:223,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/cfield.c:232,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 126
    argCount: 9
    argNames:
    - type
    - name
    - proto
    - byte_size
    - byte_offset
    - index
    - _internal_use
    - bit_size_obj
    - bit_offset_obj
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(self->name))
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 234
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 234
    functionName: PyCField_new_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - get_module_state_by_class
    - _CFieldObject_CAST
    - assert
    - PyErr_Occurred
    - PyUnicode_CheckExact
    - PyCArrayTypeObject_Check
    - PyErr_SetString
    - _ctypes_get_fielddesc
    - Py_NewRef
    - PyStgInfo_FromType
    - PyUnicode_FromObject
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCField_new_impl(PyTypeObject *type, PyObject *name,
      PyObject *proto,\n                  Py_ssize_t byte_size, Py_ssize_t byte_offset,\n
      \                 Py_ssize_t index, int _internal_use,\n                  PyObject
      *bit_size_obj, PyObject *bit_offset_obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - field
    argTypes:
    - CFieldObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: _pack_legacy_size
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _pack_legacy_size(CFieldObject *field)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:251,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/cfield.c:252,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:252,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:253,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:254,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:258,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:261,1
    - Dst: PyCData_set
      Src: /src/cpython/Modules/_ctypes/cfield.c:265,1
    - Dst: _pack_legacy_size
      Src: /src/cpython/Modules/_ctypes/cfield.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - op
    - inst
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 267
    functionName: PyCField_set_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - CDataObject_Check
    - _pack_legacy_size
    - PyErr_SetString
    - _CFieldObject_CAST
    - PyCData_set
    - Py_TYPE
    - _CDataObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCField_set_lock_held(PyObject *op, PyObject *inst, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/cfield.c:273,1
    - Dst: PyCField_set_lock_held
      Src: /src/cpython/Modules/_ctypes/cfield.c:274,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/cfield.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - inst
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: PyCField_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyCField_set_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int PyCField_set(PyObject *op, PyObject *inst, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:283,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:285,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/cfield.c:287,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:287,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:289,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:293,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/cfield.c:295,1
    - Dst: PyCData_get
      Src: /src/cpython/Modules/_ctypes/cfield.c:296,1
    - Dst: _pack_legacy_size
      Src: /src/cpython/Modules/_ctypes/cfield.c:297,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/cfield.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - op
    - inst
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 301
    functionName: PyCField_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - get_module_state_by_class
    - Py_END_CRITICAL_SECTION
    - CDataObject_Check
    - PyCData_get
    - _pack_legacy_size
    - PyErr_SetString
    - Py_NewRef
    - _CFieldObject_CAST
    - Py_TYPE
    - _CDataObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_get(PyObject *op, PyObject *inst, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:306,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/cfield.c:307,1
    - Dst: _pack_legacy_size
      Src: /src/cpython/Modules/_ctypes/cfield.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: PyCField_get_legacy_size
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _pack_legacy_size
    - _CFieldObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_get_legacy_size(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:313,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/cfield.c:315,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/cfield.c:318,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/cfield.c:327,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/cfield.c:331,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_ctypes/cfield.c:335,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/cfield.c:337,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/cfield.c:338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 340
    functionName: PyCField_get_bit_size
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _CFieldObject_CAST
    - PyLong_FromSsize_t
    - PyNumber_Multiply
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_get_bit_size(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ctypes/cfield.c:345,1
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: PyCField_is_bitfield
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _CFieldObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_is_bitfield(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ctypes/cfield.c:351,1
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: PyCField_is_anonymous
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _CFieldObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_is_anonymous(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:408,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/cfield.c:409,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:409,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/cfield.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 412
    functionName: PyCField_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - _CFieldObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCField_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:417,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/cfield.c:418,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/cfield.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 421
    functionName: PyCField_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _CFieldObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCField_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:426,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/cfield.c:427,1
    - Dst: PyCField_clear
      Src: /src/cpython/Modules/_ctypes/cfield.c:428,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/cfield.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: PyCField_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyCField_clear
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void PyCField_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _CFieldObject_CAST
      Src: /src/cpython/Modules/_ctypes/cfield.c:436,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/cfield.c:441,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/cfield.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 456
    functionName: PyCField_repr
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _CFieldObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: LOW_BIT
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t LOW_BIT(Py_ssize_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitsize
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: NUM_BITS
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t NUM_BITS(Py_ssize_t bitsize)
  - 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: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: BIT_MASK
    functionSourceFile: /src/cpython/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: 506
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: GET_BITFIELD
    functionSourceFile: /src/cpython/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: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: SET
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(type, x, v, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 529
    functionName: _RET
    functionSourceFile: /src/cpython/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: 531
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 531
    functionName: _RET
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _RET(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TAG
    - ','
    - CTYPE
    - ','
    - NBITS
    - ','
    - PYAPI_FROMFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 579
    functionName: FIXINT_GETSET
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXINT_GETSET(TAG, CTYPE, NBITS, PYAPI_FROMFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - TAG
    - ','
    - CTYPE
    - ','
    - NBITS
    - ','
    - PYAPI_FROMFUNC
    - ','
    - PY_SWAPFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 612
    functionName: FIXINT_GETSET_SW
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXINT_GETSET_SW(TAG, CTYPE, NBITS, PYAPI_FROMFUNC, PY_SWAPFUNC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:672,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:672,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_ctypes/cfield.c:673,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:678,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(short int)))
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 683
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 683
    functionName: v_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyObject_IsTrue
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      v_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:688,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:688,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ctypes/cfield.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(short int)))
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 690
    functionName: v_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      v_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:696,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:696,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_ctypes/cfield.c:697,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:702,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(bool)))
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 707
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 707
    functionName: bool_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyObject_IsTrue
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:712,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:712,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ctypes/cfield.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(bool)))
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: bool_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:720,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:720,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:723,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:724,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:726,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(long double)))
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 728
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 728
    functionName: g_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_AsDouble
    - PyErr_Occurred
    - NUM_BITS
    - memcpy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      g_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:733,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:733,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:735,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(long double)))
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 737
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 737
    functionName: g_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_FromDouble
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      g_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:743,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:743,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:747,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:749,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(double)))
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 751
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 751
    functionName: d_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_AsDouble
    - PyErr_Occurred
    - NUM_BITS
    - memcpy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:756,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:756,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:758,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(double)))
      pos:
        line_end: 755
        line_start: 755
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 760
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 760
    functionName: d_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_FromDouble
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:774,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:774,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_ctypes/cfield.c:775,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:777,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:781,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(double)))
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 783
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 783
    functionName: D_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - NUM_BITS
    - memcpy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      D_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:788,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:788,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:791,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(double)))
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 793
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 793
    functionName: D_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyComplex_FromDoubles
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      D_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:799,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:799,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_ctypes/cfield.c:800,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:802,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:806,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(float)))
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 808
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 808
    functionName: F_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - NUM_BITS
    - memcpy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      F_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:813,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:813,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:816,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(float)))
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 818
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 818
    functionName: F_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyComplex_FromDoubles
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      F_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:824,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:824,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_ctypes/cfield.c:825,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:827,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:831,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(long double)))
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 833
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 833
    functionName: G_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - NUM_BITS
    - memcpy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      G_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:838,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:838,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:841,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(long double)))
      pos:
        line_end: 837
        line_start: 837
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 843
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 843
    functionName: G_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyComplex_FromDoubles
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      G_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:850,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:850,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:854,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:857,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:860,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:863,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(double)))
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 864
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 864
    functionName: d_set_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_AsDouble
    - PyErr_Occurred
    - NUM_BITS
    - PyFloat_Pack8
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:869,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:869,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:871,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:871,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:873,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(double)))
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 875
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 875
    functionName: d_get_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - PyFloat_FromDouble
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:881,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:881,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:884,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:885,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:887,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(float)))
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 889
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 889
    functionName: f_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_AsDouble
    - PyErr_Occurred
    - NUM_BITS
    - memcpy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:894,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:894,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:896,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(float)))
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 898
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 898
    functionName: f_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_FromDouble
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:903,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:903,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:906,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:907,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:910,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:913,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(float)))
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 917
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 917
    functionName: f_set_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_AsDouble
    - PyErr_Occurred
    - NUM_BITS
    - PyFloat_Pack4
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:922,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:922,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:924,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:924,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:926,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(float)))
      pos:
        line_end: 921
        line_start: 921
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 928
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 928
    functionName: f_get_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyFloat_Unpack4
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:944,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:944,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:947,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:949,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(PyObject *)))
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 954
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 954
    functionName: O_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - Py_NewRef
    - NUM_BITS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      O_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:959,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:959,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(PyObject *)))
      pos:
        line_end: 958
        line_start: 958
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 963
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 963
    functionName: O_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      O_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:970,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:970,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:971,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:972,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:973,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:976,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/cfield.c:979,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:980,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:982,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:983,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:984,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:987,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_ctypes/cfield.c:990,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:991,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:993,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_ctypes/cfield.c:995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:996,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1000,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1004,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1006,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(char)))
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1011
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 1011
    functionName: c_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyByteArray_Check
    - PyBytes_AS_STRING
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1017,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1017,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/cfield.c:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(char)))
      pos:
        line_end: 1016
        line_start: 1016
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1019
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1019
    functionName: c_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1025,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1025,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1028,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1029,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1035,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_ctypes/cfield.c:1037,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1038,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_ctypes/cfield.c:1040,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1043,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1052,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(wchar_t)))
      pos:
        line_end: 1024
        line_start: 1024
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1053
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1053
    functionName: u_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyUnicode_AsWideChar
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      u_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1059,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1059,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(wchar_t)))
      pos:
        line_end: 1058
        line_start: 1058
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1061
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1061
    functionName: u_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      u_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1085
    functionName: U_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      U_get(void *ptr, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1093,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1094,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1096,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1100,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1107,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1109,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1114,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ptr
    - value
    - length
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 1106
        line_start: 1106
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1119
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1119
    functionName: U_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideChar
    - Py_NewRef
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - 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/cpython/Modules/_ctypes/cfield.c:1135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1136
    functionName: s_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 1
    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/cpython/Modules/_ctypes/cfield.c:1144,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1145,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1147,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/cfield.c:1151,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1153,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1161,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:1167,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ptr
    - value
    - length
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1170
    functionName: s_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 3
    functionsReached:
    - _RET
    - strlen
    - PyBytes_Check
    - Py_TYPE
    - PyErr_Format
    - memcpy
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_set(void *ptr, PyObject *value, Py_ssize_t length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1178,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1180,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1181,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1182,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1183,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1185,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1187,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1189,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1191,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1195
    functionName: z_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyLong_Check
    - Py_NewRef
    - PyBytes_Check
    - PyBytes_AsString
    - Py_TYPE
    - PyErr_Format
    - PyLong_AsUnsignedLongLongMask
    - 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/cpython/Modules/_ctypes/cfield.c:1202,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1207
    functionName: z_get
    functionSourceFile: /src/cpython/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_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1219,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1221,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1223,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1225,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1229,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1230,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1232,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1238,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_ctypes/cfield.c:1241,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/cfield.c:1243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1248
    functionName: Z_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Py_NewRef
    - Py_TYPE
    - PyCapsule_New
    - PyErr_Format
    - PyUnicode_Check
    - PyLong_AsUnsignedLongLongMask
    - PyLong_AsUnsignedLongMask
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Z_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1260
    functionName: Z_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Z_get(void *ptr, Py_ssize_t size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1273,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1276,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1283,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1288,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/cfield.c:1289,1
    - Dst: SysAllocStringLen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1292,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/cfield.c:1293,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1299,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1306
    functionName: X_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - SysAllocStringLen
    - PyErr_SetString
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - PyMem_Free
    - SysFreeString
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      X_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1315,1
    - Dst: SysStringLen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1322
    functionName: X_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - SysStringLen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      X_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1329,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1329,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1333,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1336,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1337,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1343,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1348,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:1351,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(void *)))
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1356
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1356
    functionName: P_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - NUM_BITS
    - PyLong_AsUnsignedLongLongMask
    - PyLong_AsUnsignedLongMask
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      P_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1361,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1361,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/cfield.c:1365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == sizeof(void *)))
      pos:
        line_end: 1360
        line_start: 1360
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1366
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1366
    functionName: P_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - assert
    - NUM_BITS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      P_get(void *ptr, Py_ssize_t size)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1440,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1448,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1449,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1450,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1451,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1452,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1453,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1454,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1455,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - nbytes
    - is_signed
    argTypes:
    - Py_ssize_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1436
    functionDepth: 1
    functionLinenumber: 1436
    functionLinenumberEnd: 1464
    functionName: _ctypes_fixint_fielddesc
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _PACK
    - Py_UNREACHABLE
    linkageType: ''
    returnType: struct fielddesc
    signature: 'struct fielddesc *

      _ctypes_fixint_fielddesc(Py_ssize_t nbytes, bool is_signed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NBYTES
    - ','
    - SGN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1440
    functionName: _PACK
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PACK(NBYTES, SGN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C_TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1482
    functionName: FIXINT_FIELDDESC_FOR
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXINT_FIELDDESC_FOR(C_TYPE)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1551,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1554,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1557,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1560,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1563,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1566,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1569,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1572,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1575,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1577,1
    - Dst: TABLE_ENTRY_SW
      Src: /src/cpython/Modules/_ctypes/cfield.c:1601,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1604,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1605,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1606,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1609,1
    - Dst: TABLE_ENTRY_SW
      Src: /src/cpython/Modules/_ctypes/cfield.c:1610,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1611,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1614,1
    - Dst: _ctypes_fixint_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:1614,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1616,1
    - Dst: _ctypes_fixint_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:1616,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1618,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1619,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1620,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1621,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1622,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1624,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1626,1
    - Dst: _ctypes_fixint_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:1635,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1650,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sizeof(formattable.simple_type_chars) == 26)
      pos:
        line_end: 1649
        line_start: 1649
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1680
      start: 1486
    functionDepth: 2
    functionLinenumber: 1486
    functionLinenumberEnd: 1680
    functionName: _ctypes_init_fielddesc
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - TABLE_ENTRY
    - FIXINT_FIELDDESC_FOR
    - _ctypes_fixint_fielddesc
    - TABLE_ENTRY_SW
    - assert
    linkageType: ''
    returnType: void
    signature: void _ctypes_init_fielddesc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SYMBOL
    - ','
    - FFI_TYPE
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1592
    functionName: _TABLE_ENTRY
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TABLE_ENTRY(SYMBOL, FFI_TYPE, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYMBOL
    - ','
    - FFI_TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1596
    functionName: TABLE_ENTRY
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_ENTRY(SYMBOL, FFI_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYMBOL
    - ','
    - FFI_TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1601
    functionName: TABLE_ENTRY_SW
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_ENTRY_SW(SYMBOL, FFI_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1682
    functionDepth: 0
    functionLinenumber: 1682
    functionLinenumberEnd: 1687
    functionName: _ctypes_get_simple_type_chars
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _Py_COMP_DIAG_POP
    signature: '_Py_COMP_DIAG_POP *

      _ctypes_get_simple_type_chars(void)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1730,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1731,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1732,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 91
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts:
    - condition: (result->pffi_type)
      pos:
        line_end: 1729
        line_start: 1729
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    - condition: (result->getfunc)
      pos:
        line_end: 1731
        line_start: 1731
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    - condition: (result->setfunc)
      pos:
        line_end: 1730
        line_start: 1730
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1734
      start: 1689
    functionDepth: 0
    functionLinenumber: 1689
    functionLinenumberEnd: 1734
    functionName: _ctypes_get_fielddesc
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 1
    functionsReached:
    - assert
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: EXPORT
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPORT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:47,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: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: _testfunc_cbk_reg_int
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:54,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: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: _testfunc_cbk_reg_double
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: _testfunc_cbk_large_struct
    functionSourceFile: /src/cpython/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: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: _testfunc_large_struct_update_value
    functionSourceFile: /src/cpython/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: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: _testfunc_reg_struct_update_value
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: _testfunc_array_in_struct2
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_array_in_struct2(Test2 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test3A
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: _testfunc_array_in_struct3A
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_array_in_struct3A(Test3A in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: _testfunc_array_in_struct3B_set_defaults
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _TESTFUNC_ARRAY_IN_STRUCT_IMPL
    signature: _TESTFUNC_ARRAY_IN_STRUCT_IMPL _testfunc_array_in_struct3B_set_defaults(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: _testfunc_array_in_struct3C_set_defaults
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _TESTFUNC_ARRAY_IN_STRUCT_IMPL
    signature: _TESTFUNC_ARRAY_IN_STRUCT_IMPL _testfunc_array_in_struct3C_set_defaults(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: _testfunc_array_in_struct3D_set_defaults
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _TESTFUNC_ARRAY_IN_STRUCT_IMPL
    signature: _TESTFUNC_ARRAY_IN_STRUCT_IMPL _testfunc_array_in_struct3D_set_defaults(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:281,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:288,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:292,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:299,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:303,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:307,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:311,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:315,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:319,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:323,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:331,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:338,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:342,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:346,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:354,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:358,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:375,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:391,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:398,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:404,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:414,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:415,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:422,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:423,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:430,1
    - Dst: va_start
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:438,1
    - Dst: vprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:439,1
    - Dst: va_end
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:440,1
    - Dst: strtok
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:446,1
    - Dst: strchr
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:451,1
    - Dst: sqrt
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:457,1
    - Dst: csqrt
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:463,1
    - Dst: csqrtf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:468,1
    - Dst: csqrtl
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:473,1
    - Dst: qsort
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:479,1
    - Dst: malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:541,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:541,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:544,1
    - Dst: free
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:550,1
    - Dst: wcslen
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:556,1
    - Dst: malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:557,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:560,1
    - Dst: wcslen
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:566,1
    - Dst: c
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:583,1
    - Dst: s
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:584,1
    - Dst: lpVtbl::AddRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:596,1
    - Dst: lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:597,1
    - Dst: func
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:623,1
    - Dst: func
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:635,1
    - Dst: f
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:693,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:705,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:706,1
    - Dst: Xalloc
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:707,1
    - Dst: Xfree
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:708,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:709,1
    - Dst: EXPORT
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:716,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 159
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test3E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 719
    functionName: _testfunc_array_in_struct3E
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - strlen
    - func
    - vprintf
    - EXPORT
    - malloc
    - csqrt
    - Xfree
    - csqrtl
    - free
    - strchr
    - csqrtf
    - lpVtbl::Release
    - lpVtbl::AddRef
    - qsort
    - f
    - sqrt
    - printf
    - wcslen
    - va_start
    - memcpy
    - memset
    - Xalloc
    - c
    - s
    - strtok
    - strcpy
    - va_end
    linkageType: ''
    returnType: void
    signature: void _testfunc_array_in_struct3E(Test3E in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: _testfunc_array_in_struct3E_set_defaults
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _TESTFUNC_ARRAY_IN_STRUCT_IMPL
    signature: _TESTFUNC_ARRAY_IN_STRUCT_IMPL _testfunc_array_in_struct3E_set_defaults(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 290
    functionName: _testfunc_union_by_value1
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test5
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: _testfunc_union_by_value2
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: _testfunc_union_by_reference1
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: _testfunc_union_by_reference2
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test5*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: _testfunc_union_by_reference3
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test6
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: _testfunc_bitfield_by_value1
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: _testfunc_bitfield_by_reference1
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: _testfunc_bitfield_by_reference2
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_bitfield_by_reference2(Test7 *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - in
    - pos
    argTypes:
    - Test9*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 385
    functionName: _testfunc_bitfield_by_reference3
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_bitfield_by_reference3(Test9 *in, long pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: _testfunc_bitfield_by_value2
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: testfunc_array
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:414,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: testfunc_Ddd
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:422,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - long double
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: testfunc_DDD
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: testfunc_iii
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:438,1
    - Dst: vprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:439,1
    - Dst: va_end
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 442
    functionName: myprintf
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void myprintf(char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strtok
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - token
    - delim
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: my_strtok
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: my_strchr
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: my_sqrt
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: void
    signature: void my_sqrt(double a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csqrt
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - complex
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: my_csqrt
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - csqrt
    linkageType: ''
    returnType: void
    signature: void my_csqrt(double complex a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csqrtf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - complex
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: my_csqrtf
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - csqrtf
    linkageType: ''
    returnType: void
    signature: void my_csqrtf(float complex a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csqrtl
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - complex
    argTypes:
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: my_csqrtl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - csqrtl
    linkageType: ''
    returnType: void
    signature: void my_csqrtl(long double complex a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - num
    - width
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 480
    functionName: my_qsort
    functionSourceFile: /src/cpython/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: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: _testfunc_ai8
    functionSourceFile: /src/cpython/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: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: _testfunc_v
    functionSourceFile: /src/cpython/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: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: _testfunc_i_bhilfd
    functionSourceFile: /src/cpython/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: 506
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 506
    functionName: _testfunc_f_bhilfd
    functionSourceFile: /src/cpython/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: 514
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: _testfunc_d_bhilfd
    functionSourceFile: /src/cpython/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: 522
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: _testfunc_D_bhilfD
    functionSourceFile: /src/cpython/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: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: _testfunc_p_p
    functionSourceFile: /src/cpython/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: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: _testfunc_c_p_p
    functionSourceFile: /src/cpython/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: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: get_strchr
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_strchr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:541,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:541,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: my_strdup
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - strcpy
    - malloc
    - strlen
    linkageType: ''
    returnType: void
    signature: void my_strdup(char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: my_free
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:556,1
    - Dst: malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:557,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 562
    functionName: my_wcsdup
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - wcslen
    - malloc
    linkageType: ''
    returnType: void
    signature: void my_wcsdup(wchar_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: my_wcslen
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:583,1
    - Dst: FUNCS*::s
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FUNCS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 586
    functionName: _testfunc_callfuncp
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - FUNCS*::c
    - FUNCS*::s
    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: 591
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 591
    functionName: _testfunc_deref_pointer
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:596,1
    - Dst: IUnknown*::lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - piunk
    argTypes:
    - IUnknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: _testfunc_piunk
    functionSourceFile: /src/cpython/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: 606
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: _testfunc_callback_with_pointer
    functionSourceFile: /src/cpython/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: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: _testfunc_q_bhilfdq
    functionSourceFile: /src/cpython/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: 617
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 617
    functionName: _testfunc_q_bhilfd
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 627
    functionName: _testfunc_callback_i_if
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 639
    functionName: _testfunc_callback_q_qf
    functionSourceFile: /src/cpython/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: 665
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: getSPAMANDEGGS
    functionSourceFile: /src/cpython/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: 679
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 679
    functionName: _testfunc_byval
    functionSourceFile: /src/cpython/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: 686
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: get_an_integer
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - nstep
    argTypes:
    - double
    - double
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 695
    functionName: integrate
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:705,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:706,1
    - Dst: Xalloc
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:707,1
    - Dst: Xfree
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:708,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - (*Xalloc)(int)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 710
    functionName: _xxx_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - Xfree
    - Xalloc
    - printf
    linkageType: ''
    returnType: void
    signature: void _xxx_init(void *(*Xalloc)(int), void (*Xfree)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SysAllocString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbstr
    argTypes:
    - BSTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: GetString
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 739
    functionName: py_func_si
    functionSourceFile: /src/cpython/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: 743
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 743
    functionName: _py_func_si
    functionSourceFile: /src/cpython/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: 748
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: py_func
    functionSourceFile: /src/cpython/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: 752
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 752
    functionName: _py_func
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _py_func(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 2
    argNames:
    - bits
    - name
    argTypes:
    - struct BITS*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 793
    functionName: unpack_bitfields
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unpack_bitfields(struct BITS *bits, char name)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 2
    argNames:
    - bits
    - name
    argTypes:
    - struct BITS_msvc*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 837
    functionName: unpack_bitfields_msvc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unpack_bitfields_msvc(struct BITS_msvc *bits, char name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - noargs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 843
    functionName: get_last_tf_arg_s
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *get_last_tf_arg_s(PyObject *self, PyObject *noargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - noargs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: get_last_tf_arg_u
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *get_last_tf_arg_u(PyObject *self, PyObject *noargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 853
    functionName: get_last_tfrsuv_arg
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_last_tfrsuv_arg(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 867
    functionName: tf_b
    functionSourceFile: /src/cpython/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: 868
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 868
    functionName: tf_B
    functionSourceFile: /src/cpython/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: 869
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 869
    functionName: tf_h
    functionSourceFile: /src/cpython/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: 870
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 870
    functionName: tf_H
    functionSourceFile: /src/cpython/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: 871
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 871
    functionName: tf_i
    functionSourceFile: /src/cpython/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: 872
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 872
    functionName: tf_I
    functionSourceFile: /src/cpython/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: 873
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 873
    functionName: tf_l
    functionSourceFile: /src/cpython/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: 874
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 874
    functionName: tf_L
    functionSourceFile: /src/cpython/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: 875
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 875
    functionName: tf_q
    functionSourceFile: /src/cpython/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: 876
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 876
    functionName: tf_Q
    functionSourceFile: /src/cpython/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: 877
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 877
    functionName: tf_f
    functionSourceFile: /src/cpython/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: 878
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 878
    functionName: tf_d
    functionSourceFile: /src/cpython/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: 879
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 879
    functionName: tf_D
    functionSourceFile: /src/cpython/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: 882
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 882
    functionName: s_tf_b
    functionSourceFile: /src/cpython/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: 883
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 883
    functionName: s_tf_B
    functionSourceFile: /src/cpython/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: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: s_tf_h
    functionSourceFile: /src/cpython/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: 885
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 885
    functionName: s_tf_H
    functionSourceFile: /src/cpython/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: 886
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 886
    functionName: s_tf_i
    functionSourceFile: /src/cpython/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: 887
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 887
    functionName: s_tf_I
    functionSourceFile: /src/cpython/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: 888
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 888
    functionName: s_tf_l
    functionSourceFile: /src/cpython/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: 889
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 889
    functionName: s_tf_L
    functionSourceFile: /src/cpython/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: 890
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 890
    functionName: s_tf_q
    functionSourceFile: /src/cpython/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: 891
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 891
    functionName: s_tf_Q
    functionSourceFile: /src/cpython/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: 892
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 892
    functionName: s_tf_f
    functionSourceFile: /src/cpython/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: 893
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 893
    functionName: s_tf_d
    functionSourceFile: /src/cpython/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: 894
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 894
    functionName: s_tf_D
    functionSourceFile: /src/cpython/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: 898
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 898
    functionName: tf_bb
    functionSourceFile: /src/cpython/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: 899
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 899
    functionName: tf_bB
    functionSourceFile: /src/cpython/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: 900
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 900
    functionName: tf_bh
    functionSourceFile: /src/cpython/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: 901
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 901
    functionName: tf_bH
    functionSourceFile: /src/cpython/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: 902
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 902
    functionName: tf_bi
    functionSourceFile: /src/cpython/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: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: tf_bI
    functionSourceFile: /src/cpython/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: 904
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 904
    functionName: tf_bl
    functionSourceFile: /src/cpython/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: 905
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 905
    functionName: tf_bL
    functionSourceFile: /src/cpython/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: 906
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 906
    functionName: tf_bq
    functionSourceFile: /src/cpython/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: 907
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 907
    functionName: tf_bQ
    functionSourceFile: /src/cpython/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: 908
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 908
    functionName: tf_bf
    functionSourceFile: /src/cpython/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: 909
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 909
    functionName: tf_bd
    functionSourceFile: /src/cpython/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: 910
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 910
    functionName: tf_bD
    functionSourceFile: /src/cpython/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: 911
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 911
    functionName: tv_i
    functionSourceFile: /src/cpython/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: 914
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 914
    functionName: s_tf_bb
    functionSourceFile: /src/cpython/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: 915
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 915
    functionName: s_tf_bB
    functionSourceFile: /src/cpython/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: 916
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 916
    functionName: s_tf_bh
    functionSourceFile: /src/cpython/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: 917
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 917
    functionName: s_tf_bH
    functionSourceFile: /src/cpython/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: 918
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 918
    functionName: s_tf_bi
    functionSourceFile: /src/cpython/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: 919
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 919
    functionName: s_tf_bI
    functionSourceFile: /src/cpython/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: 920
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 920
    functionName: s_tf_bl
    functionSourceFile: /src/cpython/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: 921
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 921
    functionName: s_tf_bL
    functionSourceFile: /src/cpython/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: 922
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 922
    functionName: s_tf_bq
    functionSourceFile: /src/cpython/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: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    functionName: s_tf_bQ
    functionSourceFile: /src/cpython/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: 924
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 924
    functionName: s_tf_bf
    functionSourceFile: /src/cpython/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: 925
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 925
    functionName: s_tf_bd
    functionSourceFile: /src/cpython/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: 926
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 926
    functionName: s_tf_bD
    functionSourceFile: /src/cpython/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: 927
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 927
    functionName: s_tv_i
    functionSourceFile: /src/cpython/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: 959
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 959
    functionName: PointInRect
    functionSourceFile: /src/cpython/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: 1002
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 1002
    functionName: ReturnRect
    functionSourceFile: /src/cpython/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: 1014
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1014
    functionName: ret_2h_func
    functionSourceFile: /src/cpython/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: 1031
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1031
    functionName: ret_8i_func
    functionSourceFile: /src/cpython/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: 1042
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1042
    functionName: GetRectangle
    functionSourceFile: /src/cpython/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: 1048
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: TwoOutArgs
    functionSourceFile: /src/cpython/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: 1141
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1141
    functionName: TestSize1
    functionSourceFile: /src/cpython/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: 1148
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1148
    functionName: TestSize2
    functionSourceFile: /src/cpython/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: 1156
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1156
    functionName: TestSize3
    functionSourceFile: /src/cpython/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: 1165
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1165
    functionName: TestSize4
    functionSourceFile: /src/cpython/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: 1175
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1175
    functionName: TestSize5
    functionSourceFile: /src/cpython/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: 1186
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1186
    functionName: TestSize6
    functionSourceFile: /src/cpython/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: 1198
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1198
    functionName: TestSize7
    functionSourceFile: /src/cpython/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: 1211
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1211
    functionName: TestSize8
    functionSourceFile: /src/cpython/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: 1225
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1225
    functionName: TestSize9
    functionSourceFile: /src/cpython/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: 1240
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1240
    functionName: TestSize10
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize10()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_2h_func
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inp
    argTypes:
    - S2H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1245
    functionName: s_ret_2h_func
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1246
    functionName: (S8I inp)
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes_test.c:1258,1
    - Dst: IUnknown*::lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - punk
    argTypes:
    - IUnknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1263
    functionName: KeepObject
    functionSourceFile: /src/cpython/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: callback
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - callback
    - a
    - b
    argTypes:
    - _test_i38748_funcType
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1276
    functionName: _test_i38748_runCallback
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - callback
    linkageType: ''
    returnType: void
    signature: void _test_i38748_runCallback(_test_i38748_funcType callback, int a,
      int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1284
    functionName: _testfunc_pylist_append
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    linkageType: ''
    returnType: void
    signature: void _testfunc_pylist_append(PyObject *list, PyObject *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1308
    functionName: PyInit__ctypes_test
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ctypes_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_ctypes/callproc.c:107,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/callproc.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: pymem_destructor
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void pymem_destructor(PyObject *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_ctypes/callproc.c:150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:153,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:157,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:158,1
    - Dst: PyCapsule_IsValid
      Src: /src/cpython/Modules/_ctypes/callproc.c:162,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:165,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_ctypes/callproc.c:170,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_ctypes/callproc.c:173,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/callproc.c:175,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/callproc.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:179,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_ctypes/callproc.c:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - st
    - pspace
    argTypes:
    - ctypes_state*
    - int**
    assertStmts:
    - condition: (st->error_object_name != NULL)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    constantsTouched: []
    func_position:
      end: 185
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 185
    functionName: _ctypes_get_errobj
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GetDict
    - PyMem_Calloc
    - Py_DECREF
    - PyDict_SetItem
    - PyErr_SetString
    - PyMem_Free
    - PyCapsule_New
    - PyCapsule_GetPointer
    - PyDict_GetItemRef
    - PyCapsule_IsValid
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_get_errobj(ctypes_state *st, int **pspace)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:191,1
    - Dst: _ctypes_get_errobj
      Src: /src/cpython/Modules/_ctypes/callproc.c:192,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - index
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: get_error_internal
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _ctypes_get_errobj
    - get_module_state
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_error_internal(PyObject *self, PyObject *args, int index)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:209,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:212,1
    - Dst: _ctypes_get_errobj
      Src: /src/cpython/Modules/_ctypes/callproc.c:213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:218,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - index
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: set_error_internal
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - _ctypes_get_errobj
    - Py_DECREF
    - get_module_state
    - 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/cpython/Modules/_ctypes/callproc.c:225,1
    - Dst: get_error_internal
      Src: /src/cpython/Modules/_ctypes/callproc.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: get_errno
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - get_error_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_errno(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:234,1
    - Dst: set_error_internal
      Src: /src/cpython/Modules/_ctypes/callproc.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: set_errno
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - set_error_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_errno(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:245,1
    - Dst: get_error_internal
      Src: /src/cpython/Modules/_ctypes/callproc.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: get_last_error
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - get_error_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_last_error(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:254,1
    - Dst: set_error_internal
      Src: /src/cpython/Modules/_ctypes/callproc.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: set_last_error
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - set_error_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_last_error(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageW
      Src: /src/cpython/Modules/_ctypes/callproc.c:264,1
    - Dst: MAKELANGID
      Src: /src/cpython/Modules/_ctypes/callproc.c:269,1
    - Dst: iswspace
      Src: /src/cpython/Modules/_ctypes/callproc.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - code
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 279
    functionName: FormatError
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - MAKELANGID
    - iswspace
    - FormatMessageW
    linkageType: ''
    returnType: WCHAR
    signature: WCHAR *FormatError(DWORD code)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:284,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:299,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:310,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:320,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:335,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:344,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:351,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:358,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:365,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:373,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:387,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:395,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:409,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:417,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:424,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ctypes/callproc.c:429,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - code
    - pr
    argTypes:
    - DWORD
    - EXCEPTION_RECORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 432
    functionName: SetException
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetString
    - PyErr_SetFromWindowsErr
    - PyErr_Format
    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: 445
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: HandleException
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/callproc.c:452,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_ctypes/callproc.c:454,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ctypes/callproc.c:455,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 457
    functionName: check_hresult
    functionSourceFile: /src/cpython/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_GC_New
      Src: /src/cpython/Modules/_ctypes/callproc.c:467,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/callproc.c:473,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_ctypes/callproc.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - ctypes_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 476
    functionName: PyCArgObject_new
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyObject_GC_New
    - memset
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCArgObject_new(ctypes_state *st)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCArgObject_CAST
      Src: /src/cpython/Modules/_ctypes/callproc.c:481,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/callproc.c:482,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/callproc.c:482,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/callproc.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 485
    functionName: PyCArg_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyCArgObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PyCArg_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCArgObject_CAST
      Src: /src/cpython/Modules/_ctypes/callproc.c:490,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/callproc.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 493
    functionName: PyCArg_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - _PyCArgObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PyCArg_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/callproc.c:498,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/callproc.c:499,1
    - Dst: PyCArg_clear
      Src: /src/cpython/Modules/_ctypes/callproc.c:500,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/callproc.c:501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 503
    functionName: PyCArg_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyCArg_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyCArg_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_IsPrintable
      Src: /src/cpython/Modules/_ctypes/callproc.c:508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: is_literal_char
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_IsPrintable
    linkageType: ''
    returnType: int
    signature: int is_literal_char(unsigned char c)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _PyCArgObject_CAST
      Src: /src/cpython/Modules/_ctypes/callproc.c:514,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:518,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:522,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:526,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:530,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:535,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/callproc.c:539,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:544,1
    - Dst: is_literal_char
      Src: /src/cpython/Modules/_ctypes/callproc.c:548,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:549,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:553,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:564,1
    - Dst: is_literal_char
      Src: /src/cpython/Modules/_ctypes/callproc.c:569,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:570,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 578
    functionName: PyCArg_repr
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - _PyCArgObject_CAST
    - PyFloat_FromDouble
    - is_literal_char
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCArg_repr(PyObject *op)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:664,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:669,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:671,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:673,1
    - Dst: StgInfo*::paramfunc
      Src: /src/cpython/Modules/_ctypes/callproc.c:674,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:675,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/callproc.c:679,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/callproc.c:684,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:687,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/callproc.c:688,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:699,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:701,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:702,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ctypes/callproc.c:703,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:704,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:705,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:706,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:714,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_ctypes/callproc.c:716,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:717,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:721,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/callproc.c:723,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_ctypes/callproc.c:726,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/callproc.c:728,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/callproc.c:736,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/callproc.c:736,1
    - Dst: ConvParam
      Src: /src/cpython/Modules/_ctypes/callproc.c:746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:747,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:750,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/callproc.c:752,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 4
    argNames:
    - st
    - obj
    - index
    - pa
    argTypes:
    - ctypes_state*
    - PyObject*
    - Py_ssize_t
    - struct argument*
    assertStmts:
    - condition: (info->paramfunc)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    - condition: (info)
      pos:
        line_end: 668
        line_start: 668
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    constantsTouched: []
    func_position:
      end: 755
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 755
    functionName: ConvParam
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyErr_SetString
    - PyLong_AsUnsignedLong
    - PyBytes_Check
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_AsLong
    - PyErr_Occurred
    - PyStgInfo_FromObject
    - PyCapsule_New
    - PyErr_Format
    - PyUnicode_Check
    - Py_SAFE_DOWNCAST
    - PyErr_Clear
    - ConvParam
    - Py_DECREF
    - _Py_ID
    - PyLong_Check
    - Py_NewRef
    - PyBytes_AsString
    - memcpy
    - StgInfo*::paramfunc
    - PyCArg_CheckExact
    - PyObject_GetOptionalAttr
    - assert
    linkageType: ''
    returnType: int
    signature: "int ConvParam(ctypes_state *st,\n                     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: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: can_return_struct_as_int
    functionSourceFile: /src/cpython/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: 776
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: can_return_struct_as_sint64
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int can_return_struct_as_sint64(size_t s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/callproc.c:788,1
    - Dst: can_return_struct_as_int
      Src: /src/cpython/Modules/_ctypes/callproc.c:800,1
    - Dst: can_return_struct_as_sint64
      Src: /src/cpython/Modules/_ctypes/callproc.c:802,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - st
    - obj
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 807
    functionName: _ctypes_get_ffi_type
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - can_return_struct_as_int
    - can_return_struct_as_sint64
    - PyStgInfo_FromType
    linkageType: ''
    returnType: ffi_type
    signature: ffi_type *_ctypes_get_ffi_type(ctypes_state *st, PyObject *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:997,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/callproc.c:1004,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_ctypes/callproc.c:1008,1
    - Dst: _ctypes_simple_instance
      Src: /src/cpython/Modules/_ctypes/callproc.c:1011,1
    - Dst: StgInfo*::getfunc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1012,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1018,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1019,1
    - Dst: PyCData_FromBaseObj
      Src: /src/cpython/Modules/_ctypes/callproc.c:1023,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_ctypes/callproc.c:1028,1
    - Dst: _PyTraceback_Add
      Src: /src/cpython/Modules/_ctypes/callproc.c:1030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1031,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - st
    - restype
    - result
    - checker
    argTypes:
    - ctypes_state*
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1033
    functionName: GetResult
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - StgInfo*::getfunc
    - Py_XDECREF
    - PyObject_CallFunction
    - Py_DECREF
    - _ctypes_simple_instance
    - _PyTraceback_Add
    - PyCData_FromBaseObj
    - _ctypes_get_fielddesc
    - PyStgInfo_FromType
    - PyObject_CallOneArg
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *GetResult(ctypes_state *st,\n                           PyObject
      *restype, void *result, PyObject *checker)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Modules/_ctypes/callproc.c:1043,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Modules/_ctypes/callproc.c:1044,1
    - Dst: va_end
      Src: /src/cpython/Modules/_ctypes/callproc.c:1045,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:1050,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:1050,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ctypes/callproc.c:1051,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:1052,1
    - Dst: PyType_GetName
      Src: /src/cpython/Modules/_ctypes/callproc.c:1053,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/callproc.c:1053,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1055,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1056,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1056,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ctypes/callproc.c:1062,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_ctypes/callproc.c:1065,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1067,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ctypes/callproc.c:1070,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1071,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1071,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:1076,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1078,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1079,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - exc_class
    - fmt
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 1051
        line_start: 1051
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1049
        line_start: 1049
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    constantsTouched: []
    func_position:
      end: 1080
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1080
    functionName: _ctypes_extend_error
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - PyErr_GetRaisedException
    - PyType_GetName
    - PyErr_Occurred
    - PyUnicode_AppendAndDel
    - PyErr_SetObject
    - va_start
    - PyUnicode_FromFormatV
    - PyErr_Clear
    - Py_TYPE
    - PyUnicode_FromString
    - assert
    - 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/cpython/Modules/_ctypes/callproc.c:1103,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_ctypes/callproc.c:1104,1
    - Dst: ISupportErrorInfo*::lpVtbl::InterfaceSupportsErrorInfo
      Src: /src/cpython/Modules/_ctypes/callproc.c:1107,1
    - Dst: ISupportErrorInfo*::lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/callproc.c:1108,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_ctypes/callproc.c:1109,1
    - Dst: GetErrorInfo
      Src: /src/cpython/Modules/_ctypes/callproc.c:1112,1
    - Dst: IErrorInfo*::lpVtbl::GetDescription
      Src: /src/cpython/Modules/_ctypes/callproc.c:1116,1
    - Dst: IErrorInfo*::lpVtbl::GetGUID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1117,1
    - Dst: IErrorInfo*::lpVtbl::GetHelpContext
      Src: /src/cpython/Modules/_ctypes/callproc.c:1118,1
    - Dst: IErrorInfo*::lpVtbl::GetHelpFile
      Src: /src/cpython/Modules/_ctypes/callproc.c:1119,1
    - Dst: IErrorInfo*::lpVtbl::GetSource
      Src: /src/cpython/Modules/_ctypes/callproc.c:1120,1
    - Dst: IErrorInfo*::lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/callproc.c:1122,1
    - Dst: ProgIDFromCLSID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1128,1
    - Dst: FormatError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1130,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ctypes/callproc.c:1131,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:1138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1139,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/_ctypes/callproc.c:1141,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1144,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1146,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - st
    - errcode
    - riid
    - pIunk
    argTypes:
    - ctypes_state*
    - HRESULT
    - GUID*
    - IUnknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1151
    functionName: GetComError
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - ISupportErrorInfo*::lpVtbl::InterfaceSupportsErrorInfo
    - IErrorInfo*::lpVtbl::GetGUID
    - IUnknown*::lpVtbl::QueryInterface
    - IErrorInfo*::lpVtbl::GetHelpFile
    - IErrorInfo*::lpVtbl::Release
    - Py_BuildValue
    - FormatError
    - Py_DECREF
    - LocalFree
    - ProgIDFromCLSID
    - PyErr_SetObject
    - IErrorInfo*::lpVtbl::GetHelpContext
    - ISupportErrorInfo*::lpVtbl::Release
    - IErrorInfo*::lpVtbl::GetDescription
    - GetErrorInfo
    - FAILED
    - IErrorInfo*::lpVtbl::GetSource
    - SysFreeString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GetComError(ctypes_state *st, 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: 1158
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1158
    functionName: POW2
    functionSourceFile: /src/cpython/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: 1159
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1159
    functionName: IS_PASS_BY_REF
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PASS_BY_REF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1364
    functionName: _parse_voidp
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: int
    signature: int _parse_voidp(PyObject *obj, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1378,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1381,1
    - Dst: FormatError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1382,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/callproc.c:1384,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/_ctypes/callproc.c:1385,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1390
    functionName: format_error
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 4
    functionsReached:
    - LocalFree
    - FormatError
    - PyArg_ParseTuple
    - GetLastError
    - PyUnicode_FromWideChar
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *format_error(PyObject *self, PyObject *args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1406,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1409,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1413,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Modules/_ctypes/callproc.c:1421,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1422,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1427,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1434,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1437,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:1439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1441
    functionName: load_library
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - PyArg_ParseTuple
    - PyLong_FromLong
    - GetLastError
    - PyErr_SetFromWindowsErr
    - LoadLibraryExW
    - PyErr_Format
    - PySys_Audit
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *load_library(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1452,1
    - Dst: FreeLibrary
      Src: /src/cpython/Modules/_ctypes/callproc.c:1456,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1457,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1464
    functionName: free_library
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetLastError
    - FreeLibrary
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *free_library(PyObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1475,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1479,1
    - Dst: ConvParam
      Src: /src/cpython/Modules/_ctypes/callproc.c:1480,1
    - Dst: ConvParam
      Src: /src/cpython/Modules/_ctypes/callproc.c:1480,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:1487,1
    - Dst: IUnknown*::lpVtbl::AddRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:1490,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:1492,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1495,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1496,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1469
    functionDepth: 2
    functionLinenumber: 1469
    functionLinenumberEnd: 1498
    functionName: copy_com_pointer
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - IUnknown*::lpVtbl::AddRef
    - get_module_state
    - PyArg_ParseTuple
    - PyLong_FromLong
    - ConvParam
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      copy_com_pointer(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/cpython/Modules/_ctypes/callproc.c:1515,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/callproc.c:1517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1519
    functionName: load_dyld_shared_cache_contains_path
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - dlopen
    - dlsym
    linkageType: ''
    returnType: void
    signature: void load_dyld_shared_cache_contains_path(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/cpython/Modules/_ctypes/callproc.c:1523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1525
    functionName: unload_dyld_shared_cache_contains_path
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: void
    signature: void unload_dyld_shared_cache_contains_path(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1538,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ctypes/callproc.c:1544,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/callproc.c:1546,1
    - Dst: _dyld_shared_cache_contains_path
      Src: /src/cpython/Modules/_ctypes/callproc.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1549,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1562
    functionName: py_dyld_shared_cache_contains_path
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyUnicode_FSConverter
    - _dyld_shared_cache_contains_path
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_dyld_shared_cache_contains_path(PyObject *self, PyObject
      *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1576,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ctypes/callproc.c:1580,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/callproc.c:1582,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1587,1
    - Dst: dlopen
      Src: /src/cpython/Modules/_ctypes/callproc.c:1590,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1591,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1593,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1595,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1598,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1602
    functionName: py_dl_open
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - PyArg_ParseTuple
    - dlerror
    - PyErr_SetString
    - PyUnicode_FSConverter
    - dlopen
    - _PyErr_SetLocaleString
    - PySys_Audit
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_dl_open(PyObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1608,1
    - Dst: dlclose
      Src: /src/cpython/Modules/_ctypes/callproc.c:1610,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1611,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1613,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1620
    functionName: py_dl_close
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - dlerror
    - PyErr_SetString
    - _PyErr_SetLocaleString
    - dlclose
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_dl_close(PyObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1628,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1631,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1644,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/callproc.c:1646,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1648,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1651,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1653,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1660
    functionName: py_dl_sym
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - PyArg_ParseTuple
    - dlerror
    - dlsym
    - _PyErr_SetLocaleString
    - PyErr_Format
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_dl_sym(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1675,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1681,1
    - Dst: _ctypes_callproc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1668
    functionDepth: 1
    functionLinenumber: 1668
    functionLinenumberEnd: 1694
    functionName: call_function
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - _ctypes_callproc
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_function(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1708,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1714,1
    - Dst: _ctypes_callproc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1727
    functionName: call_cdeclfunction
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - _ctypes_callproc
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_cdeclfunction(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1745,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/callproc.c:1748,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1752,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:1755,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:1757,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1758,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:1759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1741
    functionDepth: 1
    functionLinenumber: 1741
    functionLinenumberEnd: 1765
    functionName: _ctypes_sizeof
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - get_module_state
    - CDataObject_Check
    - PyLong_FromSsize_t
    - PyErr_SetString
    - PyStgInfo_FromType
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_sizeof(PyObject *module, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1775,1
    - Dst: PyStgInfo_FromAny
      Src: /src/cpython/Modules/_ctypes/callproc.c:1777,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1781,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1786
    functionName: align_func
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyStgInfo_FromAny
    - get_module_state
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      align_func(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1804,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/callproc.c:1806,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:1812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - obj
    - offset
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1800
    functionDepth: 2
    functionLinenumber: 1800
    functionLinenumberEnd: 1815
    functionName: _ctypes_byref_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_module_state
    - PyCArgObject_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_byref_impl(PyObject *module, PyObject *obj, Py_ssize_t offset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1830,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1826
    functionDepth: 1
    functionLinenumber: 1826
    functionLinenumberEnd: 1834
    functionName: _ctypes_addressof_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_addressof_impl(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1836
    functionDepth: 1
    functionLinenumber: 1836
    functionLinenumberEnd: 1842
    functionName: converter
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 16
    functionsReached:
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: int
    signature: int converter(PyObject *obj, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1848,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1851,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1844
    functionDepth: 1
    functionLinenumber: 1844
    functionLinenumberEnd: 1855
    functionName: My_PyObj_FromPtr
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      My_PyObj_FromPtr(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1860,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1863
    functionName: My_Py_INCREF
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/callproc.c:1868,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1871
    functionName: My_Py_DECREF
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      My_Py_DECREF(PyObject *self, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1886,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:1888,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1893,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1898,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1904,1
    - Dst: _CDataObject_HasExternalBuffer
      Src: /src/cpython/Modules/_ctypes/callproc.c:1913,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1916,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/callproc.c:1918,1
    - Dst: memmove
      Src: /src/cpython/Modules/_ctypes/callproc.c:1919,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1923,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/callproc.c:1925,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - module
    - obj
    - size
    argTypes:
    - PyObject*
    - CDataObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1931
    functionName: _ctypes_resize_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyMem_Calloc
    - get_module_state
    - _CDataObject_HasExternalBuffer
    - PyErr_SetString
    - memmove
    - PyStgInfo_FromObject
    - PyErr_Format
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_resize_impl(PyObject *module, CDataObject *obj, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1938,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_ctypes/callproc.c:1940,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1940,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1944,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1944,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_ctypes/callproc.c:1949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1959,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1933
    functionDepth: 1
    functionLinenumber: 1933
    functionLinenumberEnd: 1961
    functionName: unpickle
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - _Py_ID
    - PyObject_GetAttr
    - PyObject_Call
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpickle(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1969,1
    - Dst: PyStgInfo_FromAny
      Src: /src/cpython/Modules/_ctypes/callproc.c:1971,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1975,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/callproc.c:1979,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/callproc.c:1983,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1983,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:1985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1986,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ctypes/callproc.c:1989,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1963
    functionDepth: 1
    functionLinenumber: 1963
    functionLinenumberEnd: 1990
    functionName: buffer_info
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - get_module_state
    - Py_DECREF
    - Py_BuildValue
    - PyErr_Occurred
    - PyErr_SetString
    - PyStgInfo_FromAny
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffer_info(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:52,1
    - Dst: sysconf
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:58,1
    - Dst: getpagesize
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:60,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:70,1
    - Dst: mmap
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:77,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 97
    functionName: more_core
    functionSourceFile: /src/cpython/Modules/_ctypes/malloc_closure.c
    functionUses: 0
    functionsReached:
    - mmap
    - VirtualAlloc
    - GetSystemInfo
    - printf
    - getpagesize
    - sysconf
    linkageType: ''
    returnType: void
    signature: void more_core(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ctype_free_stginfo_members
      Src: /src/cpython/Modules/_ctypes/stgdict.c:28,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/stgdict.c:30,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:36,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:37,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:38,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:39,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:40,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:41,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/stgdict.c:45,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/stgdict.c:45,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/stgdict.c:47,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/stgdict.c:50,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/stgdict.c:53,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/stgdict.c:55,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/stgdict.c:58,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/stgdict.c:65,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/stgdict.c:67,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/stgdict.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - dst_info
    - src_info
    argTypes:
    - StgInfo*
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 74
    functionName: PyCStgInfo_clone
    functionSourceFile: /src/cpython/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    - ctype_free_stginfo_members
    - memcpy
    - Py_XINCREF
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int PyCStgInfo_clone(StgInfo *dst_info, StgInfo *src_info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:88,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_ctypes/stgdict.c:91,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:92,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/stgdict.c:96,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:96,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:98,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/stgdict.c:99,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/stgdict.c:104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:105,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:110,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:116,1
    - Dst: MakeFields
      Src: /src/cpython/Modules/_ctypes/stgdict.c:120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:125,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ctypes/stgdict.c:130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:133,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:136,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:136,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/stgdict.c:142,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/stgdict.c:145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:148,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:157,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 4
    argNames:
    - type
    - descr
    - index
    - offset
    argTypes:
    - PyObject*
    - CFieldObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (Py_IS_TYPE(new_descr, cfield_tp))
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    constantsTouched: []
    func_position:
      end: 159
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 159
    functionName: MakeFields
    functionSourceFile: /src/cpython/Modules/_ctypes/stgdict.c
    functionUses: 1
    functionsReached:
    - get_module_state_by_class
    - Py_DECREF
    - PyObject_GetAttrString
    - PySequence_Fast_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    - MakeFields
    - PySequence_Fast
    - PyObject_GetAttr
    - Py_IS_TYPE
    - Py_NewRef
    - PyObject_SetAttr
    - PySequence_Fast_GET_ITEM
    - Py_XNewRef
    - PyTypeObject*::tp_alloc
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: "int MakeFields(PyObject *type, CFieldObject *descr,\n           Py_ssize_t
      index, Py_ssize_t offset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:170,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/stgdict.c:170,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_ctypes/stgdict.c:176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:177,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/stgdict.c:181,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:181,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:183,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/stgdict.c:184,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:187,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:190,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/stgdict.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:196,1
    - Dst: MakeFields
      Src: /src/cpython/Modules/_ctypes/stgdict.c:202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 214
    functionName: MakeAnonFields
    functionSourceFile: /src/cpython/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PySequence_Fast_GET_SIZE
    - _Py_ID
    - MakeFields
    - PySequence_Fast
    - PyObject_GetAttr
    - Py_IS_TYPE
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int MakeAnonFields(PyObject *type)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/stgdict.c:247,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:247,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/stgdict.c:249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:253,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/stgdict.c:259,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/stgdict.c:263,1
    - Dst: stginfo_get_dict_final
      Src: /src/cpython/Modules/_ctypes/stgdict.c:266,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:267,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:272,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_ctypes/stgdict.c:276,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/stgdict.c:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/stgdict.c:279,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_ctypes/stgdict.c:283,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/stgdict.c:295,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/stgdict.c:296,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:302,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/stgdict.c:302,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/stgdict.c:306,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/stgdict.c:307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/stgdict.c:309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:310,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:316,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/stgdict.c:316,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/stgdict.c:320,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/stgdict.c:321,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/stgdict.c:323,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:324,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:330,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/stgdict.c:330,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_ctypes/stgdict.c:335,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/stgdict.c:342,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/stgdict.c:345,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/stgdict.c:347,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/stgdict.c:350,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:352,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/stgdict.c:352,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_ctypes/stgdict.c:356,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/stgdict.c:360,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/stgdict.c:361,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:363,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/stgdict.c:366,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_ctypes/stgdict.c:372,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/stgdict.c:374,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/stgdict.c:377,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/stgdict.c:380,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_ctypes/stgdict.c:387,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/stgdict.c:389,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/stgdict.c:392,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/stgdict.c:398,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:399,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_ctypes/stgdict.c:400,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:400,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/stgdict.c:401,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/stgdict.c:409,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/stgdict.c:415,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/stgdict.c:420,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:423,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/stgdict.c:424,1
    - Dst: stginfo_set_dict_final_lock_held
      Src: /src/cpython/Modules/_ctypes/stgdict.c:429,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/stgdict.c:430,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/stgdict.c:431,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/stgdict.c:436,1
    - Dst: _replace_array_elements
      Src: /src/cpython/Modules/_ctypes/stgdict.c:457,1
    - Dst: stginfo_get_dict_final
      Src: /src/cpython/Modules/_ctypes/stgdict.c:464,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/stgdict.c:465,1
    - Dst: stginfo_set_dict_final_lock_held
      Src: /src/cpython/Modules/_ctypes/stgdict.c:469,1
    - Dst: MakeAnonFields
      Src: /src/cpython/Modules/_ctypes/stgdict.c:471,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:473,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:474,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:475,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:476,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/stgdict.c:480,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/stgdict.c:481,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 186
    argCount: 3
    argNames:
    - type
    - fields
    - isStruct
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (prop_obj)
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (info)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    constantsTouched: []
    func_position:
      end: 483
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 483
    functionName: PyCStructUnionType_update_stginfo
    functionSourceFile: /src/cpython/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - stginfo_set_dict_final_lock_held
    - PyMem_New
    - MakeAnonFields
    - Py_CLEAR
    - PyMem_Free
    - PyImport_ImportModuleAttrString
    - get_module_state_by_def
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - STGINFO_UNLOCK
    - PyTuple_GET_ITEM
    - PyErr_Format
    - Py_SAFE_DOWNCAST
    - PyTuple_Pack
    - PyType_IsSubtype
    - PyUnicode_AsUTF8AndSize
    - _Py_ID
    - PyObject_Vectorcall
    - PySequence_Tuple
    - PyObject_SetAttr
    - PyStgInfo_FromType
    - STGINFO_LOCK
    - memcpy
    - Py_TYPE
    - PyErr_NoMemory
    - PyLong_AsSsize_t
    - PyMem_Malloc
    - PyCArrayTypeObject_Check
    - memset
    - stginfo_get_dict_final
    - _replace_array_elements
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCStructUnionType_update_stginfo(PyObject *type, PyObject *fields,
      int isStruct)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:566,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/stgdict.c:570,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:571,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:572,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_ctypes/stgdict.c:572,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:572,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/stgdict.c:576,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:579,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/stgdict.c:581,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/stgdict.c:590,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/stgdict.c:594,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/stgdict.c:619,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/stgdict.c:622,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/stgdict.c:637,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/stgdict.c:640,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/stgdict.c:648,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:649,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:650,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_ctypes/stgdict.c:650,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/stgdict.c:650,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/stgdict.c:654,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:657,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:659,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/stgdict.c:660,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/stgdict.c:667,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/stgdict.c:671,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:684,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:688,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/stgdict.c:698,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/stgdict.c:699,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/stgdict.c:705,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 87
    argCount: 5
    argNames:
    - st
    - layout_fields
    - ffi_ofs
    - baseinfo
    - stginfo
    argTypes:
    - ctypes_state*
    - PyObject*
    - Py_ssize_t
    - StgInfo*
    - StgInfo*
    assertStmts:
    - condition: (PyType_IsSubtype(Py_TYPE(prop_obj), st->PyCField_Type))
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (info)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (prop_obj)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (dummy_index < (num_ffi_type_pointers))
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (stginfo->ffi_type_pointer.elements)
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (PyType_IsSubtype(Py_TYPE(prop_obj), st->PyCField_Type))
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (prop_obj)
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (element_index < (ffi_ofs + len))
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (dummy_index < (num_ffi_type_pointers))
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (info)
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    constantsTouched: []
    func_position:
      end: 707
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 707
    functionName: _replace_array_elements
    functionSourceFile: /src/cpython/Modules/_ctypes/stgdict.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyType_IsSubtype
    - PyCArrayTypeObject_Check
    - memset
    - PyMem_Free
    - PyStgInfo_FromType
    - PyTuple_GET_ITEM
    - PyErr_Format
    - memcpy
    - Py_TYPE
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: "int _replace_array_elements(ctypes_state *st, PyObject *layout_fields,\n
      \                       Py_ssize_t ffi_ofs, StgInfo *baseinfo, StgInfo *stginfo)"
  - 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: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 17
    functionName: APPEND
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND(ITEM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - TARGET
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: SET_AND_APPEND
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AND_APPEND(TYPE, TARGET, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - TARGET
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: TEST_FIELD
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FIELD(TYPE, TARGET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: GCC_ATTR
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCC_ATTR(X)
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:45,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:46,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:49,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:54,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:60,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:61,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:61,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:62,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:62,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:63,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:63,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:68,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:74,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:75,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:75,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:76,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:76,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:77,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:77,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:82,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:88,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:89,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:89,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:90,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:90,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:91,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:91,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:96,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:104,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:105,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:105,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:106,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:106,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:107,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:107,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:114,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:122,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:123,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:123,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:124,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:124,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:125,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:125,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:132,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:145,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:146,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:146,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:147,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:147,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:148,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:148,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:160,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:173,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:174,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:174,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:175,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:175,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:176,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:176,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:188,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:208,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:209,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:209,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:210,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:210,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:211,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:211,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:224,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:235,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:236,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:236,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:237,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:237,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:238,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:238,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:242,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:242,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:243,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:243,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:249,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:260,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:261,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:261,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:262,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:262,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:263,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:263,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:267,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:267,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:268,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:268,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:274,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:285,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:286,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:286,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:287,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:287,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:288,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:288,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:292,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:292,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:293,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:293,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:299,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:310,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:311,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:311,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:312,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:312,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:313,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:313,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:317,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:317,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:318,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:318,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:324,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:332,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:333,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:333,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:334,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:334,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:335,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:335,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:342,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:350,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:351,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:351,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:352,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:352,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:353,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:353,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:360,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:369,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:370,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:370,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:371,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:371,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:372,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:372,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:380,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:394,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:395,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:395,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:396,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:396,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:397,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:397,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:410,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:433,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:434,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:434,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:435,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:435,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:436,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:436,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:446,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:447,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:448,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:449,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:450,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:451,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:452,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:454,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:454,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:455,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:455,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:461,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:477,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:478,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:478,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:479,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:479,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:480,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:480,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:491,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:491,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:492,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:492,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:498,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:521,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:522,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:522,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:523,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:523,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:524,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:524,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:534,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:535,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:536,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:537,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:538,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:539,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:540,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:542,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:542,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:543,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:543,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:549,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:559,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:560,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:560,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:561,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:561,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:562,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:562,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:567,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:567,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:568,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:568,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:574,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:584,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:585,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:585,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:586,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:586,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:587,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:587,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:592,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:592,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:593,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:593,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:599,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:609,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:610,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:610,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:611,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:611,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:612,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:612,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:617,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:617,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:618,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:618,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:624,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:634,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:635,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:635,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:636,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:636,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:637,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:637,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:642,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:642,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:643,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:643,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:649,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:660,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:661,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:661,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:662,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:662,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:663,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:663,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:669,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:669,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:670,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:670,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:676,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:686,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:687,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:687,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:688,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:688,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:689,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:689,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:694,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:694,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:695,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:695,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:701,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:711,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:712,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:712,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:713,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:713,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:714,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:714,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:719,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:719,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:720,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:720,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:726,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:736,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:737,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:737,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:738,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:738,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:739,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:739,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:744,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:744,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:745,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:745,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:751,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:762,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:763,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:763,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:764,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:764,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:765,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:765,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:771,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:771,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:772,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:772,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:778,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:788,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:789,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:789,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:790,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:790,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:791,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:791,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:796,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:796,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:797,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:797,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:803,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:813,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:814,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:814,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:815,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:815,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:816,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:816,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:821,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:821,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:822,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:822,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:828,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:838,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:839,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:839,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:840,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:840,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:841,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:841,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:846,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:846,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:847,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:847,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:853,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:864,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:865,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:865,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:866,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:866,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:867,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:867,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:873,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:873,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:874,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:874,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:880,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:890,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:891,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:891,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:892,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:892,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:893,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:893,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:898,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:898,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:899,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:899,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:905,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:915,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:916,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:916,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:917,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:917,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:918,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:918,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:923,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:923,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:924,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:924,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:930,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:940,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:941,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:941,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:942,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:942,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:943,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:943,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:948,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:948,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:949,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:949,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:955,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:966,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:967,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:967,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:968,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:968,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:969,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:969,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:975,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:975,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:976,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:976,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:982,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:992,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:993,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:993,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:994,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:994,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:995,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:995,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1000,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1000,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1001,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1001,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1007,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1017,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1018,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1018,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1019,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1019,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1020,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1020,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1025,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1025,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1026,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1026,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1032,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1042,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1043,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1043,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1044,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1044,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1045,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1045,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1050,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1050,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1051,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1051,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1057,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1068,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1069,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1069,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1070,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1070,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1071,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1071,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1077,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1077,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1078,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1078,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1084,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1094,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1095,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1095,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1096,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1096,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1097,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1097,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1102,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1102,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1103,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1103,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1109,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1119,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1120,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1120,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1121,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1121,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1122,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1122,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1127,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1127,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1128,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1128,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1134,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1144,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1145,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1145,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1146,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1146,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1147,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1147,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1152,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1152,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1153,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1153,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1159,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1170,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1171,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1171,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1172,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1172,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1173,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1173,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1179,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1179,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1180,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1180,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1186,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1196,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1197,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1197,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1198,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1198,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1199,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1199,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1204,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1204,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1205,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1205,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1211,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1221,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1222,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1222,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1223,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1223,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1224,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1224,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1229,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1229,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1230,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1230,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1236,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1246,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1247,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1247,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1248,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1248,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1249,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1249,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1254,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1254,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1255,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1255,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1261,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1272,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1273,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1273,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1274,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1274,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1275,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1275,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1281,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1281,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1282,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1282,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1288,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1298,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1299,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1299,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1300,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1300,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1301,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1301,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1306,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1306,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1307,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1307,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1313,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1323,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1324,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1324,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1325,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1325,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1326,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1326,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1331,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1331,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1332,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1332,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1338,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1348,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1349,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1349,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1350,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1350,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1351,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1351,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1356,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1356,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1357,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1357,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1363,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1374,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1375,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1375,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1376,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1376,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1377,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1377,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1383,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1383,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1384,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1384,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1390,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1400,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1401,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1401,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1402,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1402,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1403,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1403,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1408,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1408,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1409,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1409,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1415,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1424,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1425,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1425,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1426,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1426,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1427,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1427,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1431,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1431,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1432,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1432,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1438,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1447,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1448,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1448,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1449,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1449,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1450,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1450,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1454,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1454,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1455,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1455,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1461,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1470,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1471,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1471,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1472,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1472,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1473,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1473,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1477,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1477,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1478,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1478,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1484,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1497,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1498,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1498,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1499,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1499,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1500,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1500,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1501,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1502,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1504,1
    - Dst: TEST_FIELD
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1505,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1508,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1508,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1509,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1509,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1515,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1524,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1525,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1525,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1526,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1526,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1527,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1527,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1531,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1531,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1532,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1532,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1538,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1547,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1548,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1548,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1549,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1549,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1550,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1550,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1554,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1554,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1555,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1555,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1561,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1571,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1572,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1572,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1573,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1573,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1574,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1574,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1579,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1579,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1580,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1580,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1586,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1596,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1597,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1597,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1598,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1598,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1599,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1599,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1604,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1604,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1605,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1605,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1611,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1621,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1622,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1622,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1623,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1623,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1624,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1624,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1629,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1629,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1630,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1630,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1636,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1645,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1646,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1646,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1647,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1647,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1648,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1648,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1652,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1652,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1653,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1653,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1659,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1668,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1669,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1669,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1670,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1670,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1671,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1671,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1675,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1675,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1676,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1676,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1682,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1691,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1692,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1692,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1693,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1693,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1694,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1694,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1698,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1698,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1699,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1699,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1705,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1724,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1725,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1725,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1726,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1726,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1727,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1727,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1739,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1739,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1740,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1740,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1746,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1763,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1764,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1764,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1765,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1765,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1766,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1766,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1776,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1776,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1777,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1777,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1783,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1806,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1807,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1807,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1808,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1808,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1809,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1809,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1821,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1821,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1822,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1822,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1828,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1847,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1848,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1848,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1849,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1849,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1850,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1850,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1862,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1862,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1863,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1863,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1869,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1879,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1880,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1880,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1881,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1881,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1882,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1882,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1887,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1887,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1888,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1888,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1894,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1906,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1907,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1907,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1908,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1908,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1909,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1909,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1914,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1914,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1915,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1915,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1921,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1933,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1934,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1934,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1935,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1935,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1936,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1936,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1941,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1941,1
    - Dst: APPEND
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1942,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1948,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h:1949,1
    CyclomaticComplexity: 135
    EdgeCount: 135
    ICount: 949
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 1951
    functionName: get_generated_test_data
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyUnicode_CompareWithASCIIString
    - PyErr_SetString
    - memset
    - TEST_FIELD
    - Py_NewRef
    - APPEND
    - PyLong_FromLong
    - PyUnicode_Check
    - PyErr_Format
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n        get_generated_test_data(PyObject *self, PyObject
      *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: (ms_struct)
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR (ms_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: (ms_struct)
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR (ms_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: (ms_struct)
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR (ms_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: (ms_struct)
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR (ms_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 475
    functionName: IntBits_MSVC
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR IntBits_MSVC
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 519
    functionName: (ms_struct)
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR (ms_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1721
    functionName: Example_gh_84039_bad
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR Example_gh_84039_bad
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1760
    functionName: Example_gh_84039_good_a
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR Example_gh_84039_good_a
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1803
    functionName: Example_gh_84039_good
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR Example_gh_84039_good
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1790
    functionDepth: 0
    functionLinenumber: 1790
    functionLinenumberEnd: 1799
    functionName: (ms_struct)
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR (ms_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1844
    functionName: Example_gh_73939
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR Example_gh_73939
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1903
    functionName: Example_gh_86098_pack
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes_test_generated.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct GCC_ATTR
    signature: struct GCC_ATTR Example_gh_86098_pack
  - 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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: max
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 5
    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: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: min
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_ctypes/ctypes.h:113,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/ctypes.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/cpython/Modules/_ctypes/ctypes.h
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 80
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: ctypes_state
    signature: 'ctypes_state *

      get_module_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_ctypes/ctypes.h:121,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/ctypes.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_ctypes/ctypes.h
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: get_module_state_by_class
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 4
    functionsReached:
    - assert
    - _PyType_GetModuleState
    linkageType: ''
    returnType: ctypes_state
    signature: 'ctypes_state *

      get_module_state_by_class(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_ctypes/ctypes.h:129,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/ctypes.h:130,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/ctypes.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Modules/_ctypes/ctypes.h
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: get_module_state_by_def
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 2
    functionsReached:
    - assert
    - get_module_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: ctypes_state
    signature: 'ctypes_state *

      get_module_state_by_def(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: _PyCArgObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCArgObject_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: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: _CDataObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CDataObject_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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: _CThunkObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CThunkObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: CThunk_CheckExact
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CThunk_CheckExact(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: _PyCFuncPtrObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCFuncPtrObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: CDataObject_CheckExact
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDataObject_CheckExact(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: CDataObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDataObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: _CDataObject_HasExternalBuffer
    functionSourceFile: /src/cpython/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: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: PyCSimpleTypeObject_CheckExact
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCSimpleTypeObject_CheckExact(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: PyCSimpleTypeObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCSimpleTypeObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: PyCArrayTypeObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCArrayTypeObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: ArrayObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ArrayObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: PointerObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PointerObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: PyCPointerTypeObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCPointerTypeObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: PyCFuncPtrObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFuncPtrObject_Check(st,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: PyCFuncPtrTypeObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFuncPtrTypeObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: PyCStructTypeObject_Check
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCStructTypeObject_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: _CFieldObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CFieldObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stginfo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    functionName: STGINFO_LOCK
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STGINFO_LOCK(stginfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    functionName: STGINFO_UNLOCK
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STGINFO_UNLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Modules/_ctypes/ctypes.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: stginfo_get_dict_final
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_LOAD_UINT8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t stginfo_get_dict_final(StgInfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED
      Src: /src/cpython/Modules/_ctypes/ctypes.h:446,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Modules/_ctypes/ctypes.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: stginfo_set_dict_final_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED
    - FT_ATOMIC_STORE_UINT8
    linkageType: ''
    returnType: void
    signature: void stginfo_set_dict_final_lock_held(StgInfo *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stginfo_get_dict_final
      Src: /src/cpython/Modules/_ctypes/ctypes.h:456,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/ctypes.h:459,1
    - Dst: stginfo_set_dict_final_lock_held
      Src: /src/cpython/Modules/_ctypes/ctypes.h:460,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/ctypes.h:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: stginfo_set_dict_final
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - stginfo_set_dict_final_lock_held
    - STGINFO_UNLOCK
    - stginfo_get_dict_final
    - STGINFO_LOCK
    linkageType: ''
    returnType: void
    signature: void stginfo_set_dict_final(StgInfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: _PyCArgObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCArgObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    functionName: PyCArg_CheckExact
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCArg_CheckExact(st, v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/ctypes.h:576,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_ctypes/ctypes.h:580,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/ctypes.h:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - state
    - type
    - result
    argTypes:
    - ctypes_state*
    - PyTypeObject*
    - StgInfo**
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/cpython/Modules/_ctypes/ctypes.h
    constantsTouched: []
    func_position:
      end: 588
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 588
    functionName: _stginfo_from_type
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - assert
    - PyObject_GetTypeData
    linkageType: ''
    returnType: int
    signature: int _stginfo_from_type(ctypes_state *state, PyTypeObject *type, StgInfo
      **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _stginfo_from_type
      Src: /src/cpython/Modules/_ctypes/ctypes.h:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - type
    - result
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: PyStgInfo_FromType
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 6
    functionsReached:
    - _stginfo_from_type
    linkageType: ''
    returnType: int
    signature: int PyStgInfo_FromType(ctypes_state *state, PyObject *type, StgInfo
      **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _stginfo_from_type
      Src: /src/cpython/Modules/_ctypes/ctypes.h:599,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/ctypes.h:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - obj
    - result
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: PyStgInfo_FromObject
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 2
    functionsReached:
    - _stginfo_from_type
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyStgInfo_FromObject(ctypes_state *state, PyObject *obj, StgInfo
      **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/ctypes.h:605,1
    - Dst: _stginfo_from_type
      Src: /src/cpython/Modules/_ctypes/ctypes.h:606,1
    - Dst: _stginfo_from_type
      Src: /src/cpython/Modules/_ctypes/ctypes.h:608,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/ctypes.h:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - obj
    - result
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: PyStgInfo_FromAny
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 2
    functionsReached:
    - PyType_Check
    - _stginfo_from_type
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyStgInfo_FromAny(ctypes_state *state, PyObject *obj, StgInfo **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_ctypes/ctypes.h:619,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/ctypes.h:619,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/ctypes.h:623,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_ctypes/ctypes.h:627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/ctypes.h:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 630
    functionName: _PyStgInfo_FromType_NoState
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_GetBaseByToken
    - PyErr_Format
    - PyObject_GetTypeData
    - Py_TYPE
    linkageType: ''
    returnType: StgInfo
    signature: 'StgInfo *

      _PyStgInfo_FromType_NoState(PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/ctypes.h:636,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/ctypes.h:637,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_ctypes/ctypes.h:642,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/ctypes.h:644,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_ctypes/ctypes.h:649,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/ctypes.h:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - type
    argTypes:
    - ctypes_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 658
    functionName: PyStgInfo_Init
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - Py_NewRef
    - PyType_GetModule
    - PyObject_GetTypeData
    - PyErr_Format
    linkageType: ''
    returnType: StgInfo
    signature: 'StgInfo *

      PyStgInfo_Init(ctypes_state *state, PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: IS_INTRESOURCE
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_INTRESOURCE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: clinic_state_sub
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: _DictRemoverObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DictRemoverObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DictRemoverObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:157,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:158,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:158,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:159,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - myself
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: _DictRemover_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _DictRemoverObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _DictRemover_traverse(PyObject *myself, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DictRemoverObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:167,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:168,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: _DictRemover_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _DictRemoverObject_CAST
    linkageType: ''
    returnType: int
    signature: int _DictRemover_clear(PyObject *myself)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:176,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:177,1
    - Dst: _DictRemover_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:178,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: _DictRemover_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - _DictRemover_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _DictRemover_dealloc(PyObject *myself)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _DictRemoverObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:186,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:188,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:189,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:192,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - myself
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: _DictRemover_call
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - Py_CLEAR
    - _DictRemoverObject_CAST
    - PyDict_DelItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _DictRemover_call(PyObject *myself, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:225,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:230,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:231,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:232,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:233,1
    - Dst: PyWeakref_NewProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:236,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - st
    - dict
    - key
    - item
    argTypes:
    - ctypes_state*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (remover->dict == NULL)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (remover->key == NULL)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 243
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 243
    functionName: PyDict_SetItemProxy
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PyDict_SetItem
    - Py_NewRef
    - PyWeakref_NewProxy
    - assert
    linkageType: ''
    returnType: int
    signature: int PyDict_SetItemProxy(ctypes_state *st, PyObject *dict, PyObject
      *key, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:248,1
    - Dst: PyWeakref_CheckProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:250,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dict
    - key
    - presult
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: _PyDict_GetItemProxy
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyWeakref_CheckProxy
    - PyDict_GetItemRef
    - PyWeakref_GetRef
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PyDict_GetItemProxy(PyObject *dict, PyObject *key, PyObject **presult)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:313,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:315,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 2
    argNames:
    - code
    - big_endian
    argTypes:
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 323
    functionName: _ctypes_alloc_format_string_for_type
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      _ctypes_alloc_format_string_for_type(char code, int big_endian)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:338,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:338,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:341,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:343,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:344,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:346,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:350,1
    - Dst: strcat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - prefix
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 355
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 355
    functionName: _ctypes_alloc_format_string
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - strcat
    - strcpy
    - strlen
    - PyErr_Occurred
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      _ctypes_alloc_format_string(const char *prefix, const char *suffix)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:375,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:376,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:378,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:383,1
    - Dst: strcat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:386,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:389,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:391,1
    - Dst: strcat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:393,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:396,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:397,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: 399
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 399
    functionName: _ctypes_alloc_format_string_with_shape
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - strcat
    - _ctypes_alloc_format_string
    - strlen
    - sprintf
    - PyErr_NoMemory
    - PyMem_Free
    - strcpy
    - PyMem_Malloc
    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: []
    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: _StructParamObject_CAST
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _StructParamObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _StructParamObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:417,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:418,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:418,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - myself
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 421
    functionName: StructParam_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _StructParamObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int StructParam_traverse(PyObject *myself, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _StructParamObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:426,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: StructParam_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _StructParamObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int StructParam_clear(PyObject *myself)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _StructParamObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:434,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:435,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:436,1
    - Dst: StructParam_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:437,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:438,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 441
    functionName: StructParam_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - _StructParamObject_CAST
    - StructParam_clear
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void StructParam_dealloc(PyObject *myself)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStgInfo_FromType_NoState
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:470,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:472,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:476,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:477,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:478,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:479,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:480,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:481,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:482,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:484,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:484,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 486
    functionName: CType_Type_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyErr_FormatUnraisable
    - tp_traverse
    - _PyStgInfo_FromType_NoState
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int CType_Type_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:491,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:492,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:493,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:494,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:495,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:496,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:497,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 499
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 499
    functionName: ctype_clear_stginfo
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: void
    signature: void ctype_clear_stginfo(StgInfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:504,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:506,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:508,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:510,1
    - Dst: ctype_clear_stginfo
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 513
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 513
    functionName: ctype_free_stginfo_members
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyMem_Free
    - assert
    - ctype_clear_stginfo
    linkageType: ''
    returnType: void
    signature: void ctype_free_stginfo_members(StgInfo *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStgInfo_FromType_NoState
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:518,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:520,1
    - Dst: ctype_clear_stginfo
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:524,1
    - Dst: tp_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 527
    functionName: CType_Type_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - _PyStgInfo_FromType_NoState
    - tp_clear
    - ctype_clear_stginfo
    linkageType: ''
    returnType: int
    signature: int CType_Type_clear(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStgInfo_FromType_NoState
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:532,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:534,1
    - Dst: ctype_free_stginfo_members
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:538,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:541,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 544
    functionName: CType_Type_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - tp_dealloc
    - Py_DECREF
    - ctype_free_stginfo_members
    - PyErr_FormatUnraisable
    - _PyStgInfo_FromType_NoState
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void CType_Type_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:558,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:559,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:559,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:561,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:563,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:568,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 577
    functionName: _ctypes_CType_Type___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - strlen
    - Py_SIZE
    - PyLong_FromSsize_t
    - PyStgInfo_FromType
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CType_Type___sizeof___impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:589,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:589,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:591,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:595,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:599,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:600,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:601,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 610
    functionName: _ctypes_CType_Type___pointer_type___get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - STGINFO_UNLOCK
    - PyStgInfo_FromType
    - Py_XNewRef
    - STGINFO_LOCK
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CType_Type___pointer_type___get_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:622,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:622,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:624,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:628,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:631,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:632,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:632,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 635
    functionName: _ctypes_CType_Type___pointer_type___set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - STGINFO_UNLOCK
    - PyStgInfo_FromType
    - Py_XSETREF
    - STGINFO_LOCK
    - Py_XNewRef
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _ctypes_CType_Type___pointer_type___set_impl(PyObject *self, PyObject
      *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:681,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:687,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:691,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:697,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:705,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:708,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:713,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:719,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:722,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 730
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 730
    functionName: StructUnionType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyCArgObject_new
    - Py_NewRef
    - PyStgInfo_FromObject
    - memcpy
    - PyMem_Free
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      StructUnionType_paramfunc(ctypes_state *st, CDataObject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetDict
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:738,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:744,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:750,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:754,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:754,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:757,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:763,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:769,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:770,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:773,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:775,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:779,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:784,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:792,1
    - Dst: PyCStgInfo_clone
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:794,1
    - Dst: stginfo_set_dict_final_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:796,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:798,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 4
    argNames:
    - self
    - args
    - kwds
    - isStruct
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 802
    functionName: StructUnionType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - Py_DECREF
    - Py_CLEAR
    - PyStgInfo_Init
    - _Py_ID
    - PyDict_Contains
    - STGINFO_UNLOCK
    - PyObject_SetAttr
    - stginfo_set_dict_final_lock_held
    - Py_TYPE
    - PyStgInfo_FromType
    - STGINFO_LOCK
    - PyDict_GetItemRef
    - PyCStgInfo_clone
    - PyType_GetDict
    - _ctypes_alloc_format_string
    linkageType: ''
    returnType: int
    signature: int StructUnionType_init(PyObject *self, PyObject *args, PyObject *kwds,
      int isStruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StructUnionType_init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 804
    functionDepth: 4
    functionLinenumber: 804
    functionLinenumberEnd: 808
    functionName: PyCStructType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - StructUnionType_init
    linkageType: ''
    returnType: int
    signature: int PyCStructType_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StructUnionType_init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 814
    functionName: UnionType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 2
    functionsReached:
    - StructUnionType_init
    linkageType: ''
    returnType: int
    signature: int UnionType_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:841,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:842,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:846,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:847,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:849,1
    - Dst: PyCData_AtAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 851
    functionName: CDataType_from_address_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyLong_AsVoidPtr
    - PyCData_AtAddress
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nCDataType_from_address_impl(PyObject *type, PyTypeObject
      *cls,\n                            PyObject *value)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:879,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:881,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:885,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:889,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:893,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:898,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:902,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:910,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:912,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:921,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:925,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:927,1
    - Dst: PyCData_AtAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:933,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:938,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - type
    - cls
    - obj
    - offset
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 943
    functionName: CDataType_from_buffer_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - Py_DECREF
    - PyBuffer_IsContiguous
    - PyMemoryView_FromObject
    - PyErr_SetString
    - PyCData_AtAddress
    - PyStgInfo_FromType
    - PyErr_Format
    - PySys_Audit
    - PyMemoryView_GET_BUFFER
    - KeepRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nCDataType_from_buffer_impl(PyObject *type, PyTypeObject
      *cls, PyObject *obj,\n                           Py_ssize_t offset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:973,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:975,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:979,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:984,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:990,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:996,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1001,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1003,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1003,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1004,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - type
    - cls
    - buffer
    - offset
    argTypes:
    - PyObject*
    - PyTypeObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyObject_IsUniquelyReferenced(result))
      pos:
        line_end: 1002
        line_start: 1002
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1007
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 1007
    functionName: CDataType_from_buffer_copy_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - PyErr_SetString
    - memcpy
    - generic_pycdata_new
    - PyStgInfo_FromType
    - PyErr_Format
    - _PyObject_IsUniquelyReferenced
    - PySys_Audit
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nCDataType_from_buffer_copy_impl(PyObject *type, PyTypeObject
      *cls,\n                                Py_buffer *buffer, Py_ssize_t offset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1032,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1036,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1042,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1046,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1047,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1048,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1056,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1068,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1070,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1074,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1074,1
    - Dst: PyCData_AtAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1075,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1079,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1081,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1086,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - type
    - cls
    - dll
    - name
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1088
    functionName: CDataType_in_dll_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - get_module_state_by_def
    - PyErr_Occurred
    - dlerror
    - PyErr_SetString
    - PyLong_Check
    - PyLong_AsVoidPtr
    - PyCData_AtAddress
    - GetProcAddress
    - dlsym
    - _PyErr_SetLocaleString
    - PyErr_Format
    - PySys_Audit
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nCDataType_in_dll_impl(PyObject *type, PyTypeObject *cls,
      PyObject *dll,\n                      const char *name)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1106,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1110,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1112,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1113,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1118,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1124,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1131,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1132,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1138,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1138,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1143,1
    - Dst: CDataType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1147,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1148,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1151,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1156
    functionName: CDataType_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyCArg_CheckExact
    - get_module_state_by_class
    - Py_DECREF
    - CDataType_from_param_impl
    - PyObject_GetOptionalAttr
    - _Py_ID
    - Py_NewRef
    - _Py_EnterRecursiveCall
    - PyStgInfo_FromType
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_param_impl(PyObject *type, PyTypeObject *cls, PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1171,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1174,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1174,1
    - Dst: PyCArrayType_from_ctype
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1176
    functionName: CType_Type_repeat
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - get_module_state_by_def
    - PyCArrayType_from_ctype
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CType_Type_repeat(PyObject *self, Py_ssize_t length)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1182,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1183,1
    - Dst: PyCStructUnionType_update_stginfo
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1185,1
    - Dst: tp_setattro
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - self
    - key
    - value
    - is_struct
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 4
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: _structunion_setattro
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    - PyCStructUnionType_update_stginfo
    - tp_setattro
    linkageType: ''
    returnType: int
    signature: int _structunion_setattro(PyObject *self, PyObject *key, PyObject *value,
      int is_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _structunion_setattro
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1193
    functionDepth: 5
    functionLinenumber: 1193
    functionLinenumberEnd: 1197
    functionName: PyCStructType_setattro
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _structunion_setattro
    linkageType: ''
    returnType: int
    signature: int PyCStructType_setattro(PyObject *self, PyObject *key, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _structunion_setattro
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1199
    functionDepth: 5
    functionLinenumber: 1199
    functionLinenumberEnd: 1203
    functionName: UnionType_setattro
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _structunion_setattro
    linkageType: ''
    returnType: int
    signature: int UnionType_setattro(PyObject *self, PyObject *key, PyObject *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1260,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1261,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1266,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1270,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1273,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1273,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1274,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1276,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1276,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - st
    - self
    - stginfo
    - proto
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1257
    functionDepth: 3
    functionLinenumber: 1257
    functionLinenumberEnd: 1280
    functionName: PyCPointerType_SetProto
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - STGINFO_UNLOCK
    - STGINFO_LOCK
    - Py_NewRef
    - PyStgInfo_FromType
    - Py_XSETREF
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyCPointerType_SetProto(ctypes_state *st, PyObject *self, StgInfo
      *stginfo, PyObject *proto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1285,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1288,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1297
    functionName: PyCPointerType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyCArgObject_new
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCPointerType_paramfunc(ctypes_state *st, CDataObject *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1305,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1314,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1314,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1315,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1320,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1326,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1326,1
    - Dst: PyCPointerType_SetProto
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1332,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1337,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1341,1
    - Dst: _ctypes_alloc_format_string_with_shape
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1350,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (iteminfo)
      pos:
        line_end: 1340
        line_start: 1340
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1362
      start: 1299
    functionDepth: 4
    functionLinenumber: 1299
    functionLinenumberEnd: 1362
    functionName: PyCPointerType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - Py_DECREF
    - PyDict_GetItemRef
    - PyStgInfo_Init
    - _Py_ID
    - _ctypes_alloc_format_string_with_shape
    - _ctypes_get_fielddesc
    - PyCPointerType_SetProto
    - PyStgInfo_FromType
    - PyTuple_GetItem
    - Py_TYPE
    - _ctypes_alloc_format_string
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCPointerType_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1378,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1384,1
    - Dst: PyCPointerType_SetProto
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1389,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1392,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cls
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1373
    functionDepth: 4
    functionLinenumber: 1373
    functionLinenumberEnd: 1396
    functionName: PyCPointerType_set_type_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - PyErr_SetString
    - _Py_ID
    - PyObject_SetAttr
    - PyCPointerType_SetProto
    - PyStgInfo_FromType
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCPointerType_set_type_impl(PyTypeObject *self, PyTypeObject
      *cls,\n                             PyObject *type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1418,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1421,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1423,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1427,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1435,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1436,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1438,1
    - Dst: _byref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1439,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1446,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1446,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1451,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1454,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1455,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1460,1
    - Dst: CDataType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1463,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (typeinfo->proto)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (v)
      pos:
        line_end: 1453
        line_start: 1453
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1464
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1464
    functionName: PyCPointerType_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - Py_INCREF
    - get_module_state_by_class
    - PyObject_IsSubclass
    - CDataType_from_param_impl
    - PyErr_SetString
    - Py_NewRef
    - PointerObject_Check
    - PyStgInfo_FromType
    - _byref
    - ArrayObject_Check
    - PyStgInfo_FromObject
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCPointerType_from_param_impl(PyObject *type, PyTypeObject
      *cls,\n                               PyObject *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1519,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1527,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1532,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1534,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - CDataObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1539
    functionName: _ctypes_PyCArrayType_Type_raw_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int _ctypes_PyCArrayType_Type_raw_set_impl(CDataObject *self, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1547
    functionDepth: 1
    functionLinenumber: 1547
    functionLinenumberEnd: 1552
    functionName: _ctypes_PyCArrayType_Type_raw_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCArrayType_Type_raw_get_impl(CDataObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1572
    functionName: _ctypes_PyCArrayType_Type_value_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCArrayType_Type_value_get_impl(CDataObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1588,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1593,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1594,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1596,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1599,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1600,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1604,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1608,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - CDataObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1615
    functionName: _ctypes_PyCArrayType_Type_value_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - PyErr_Format
    - memcpy
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _ctypes_PyCArrayType_Type_value_set_impl(CDataObject *self, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1626,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1629,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1636
    functionName: WCharArray_get_value_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - PyUnicode_FromWideChar
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      WCharArray_get_value_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1642,1
    - Dst: WCharArray_get_value_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1643,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1638
    functionDepth: 2
    functionLinenumber: 1638
    functionLinenumberEnd: 1646
    functionName: WCharArray_get_value
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - WCharArray_get_value_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      WCharArray_get_value(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1651,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1655,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1659,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1660,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1662,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1667,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1673,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1675,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1679,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - op
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 1672
        line_start: 1672
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1681
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1681
    functionName: WCharArray_set_value_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideChar
    - PyErr_SetString
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - _CDataObject_CAST
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int WCharArray_set_value_lock_held(PyObject *op, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1687,1
    - Dst: WCharArray_set_value_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1688,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1691
    functionName: WCharArray_set_value
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - WCharArray_set_value_lock_held
    linkageType: ''
    returnType: int
    signature: int WCharArray_set_value(PyObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDescr_NewGetSet
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1712,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - type
    - gsp
    argTypes:
    - PyTypeObject*
    - PyGetSetDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1722
    functionName: add_getset
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyDescr_NewGetSet
    - PyDict_SetItemString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int add_getset(PyTypeObject *type, PyGetSetDef *gsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1727,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1728,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1724
    functionDepth: 2
    functionLinenumber: 1724
    functionLinenumberEnd: 1736
    functionName: PyCArrayType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyCArgObject_new
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCArrayType_paramfunc(ctypes_state *st, CDataObject *self)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1749,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1749,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1753,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1760,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1766,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1767,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1773,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1774,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1775,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1776,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1782,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1782,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1786,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1791,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1791,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1792,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1798,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1802,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1807,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1808,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1812,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1814,1
    - Dst: memmove
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1819,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1825,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1849,1
    - Dst: add_getset
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1850,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1853,1
    - Dst: add_getset
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1854,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1860,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (iteminfo->format)
      pos:
        line_end: 1806
        line_start: 1806
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1862
      start: 1738
    functionDepth: 3
    functionLinenumber: 1738
    functionLinenumberEnd: 1862
    functionName: PyCArrayType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyLong_IsNegative
    - PyErr_SetString
    - get_module_state_by_def
    - PyErr_Occurred
    - add_getset
    - _ctypes_alloc_format_string
    - Py_DECREF
    - PyStgInfo_Init
    - _Py_ID
    - PyLong_Check
    - PyErr_ExceptionMatches
    - PyStgInfo_FromType
    - Py_TYPE
    - PyErr_NoMemory
    - PyLong_AsSsize_t
    - PyMem_Malloc
    - PyObject_GetOptionalAttr
    - memmove
    - _ctypes_get_fielddesc
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCArrayType_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1928,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1929,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1931,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1933,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1940,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1945,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1949,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1951,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1951,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1954,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1957,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1960,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1964,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1965,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1968,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1972,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1975,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1976,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1980,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1980,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1985,1
    - Dst: c_wchar_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1989,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1990,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1993,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1995,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (it)
      pos:
        line_end: 1956
        line_start: 1956
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1997
      start: 1919
    functionDepth: 3
    functionLinenumber: 1919
    functionLinenumberEnd: 1997
    functionName: c_wchar_p_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyCArgObject_new
    - PyStgInfo_FromObject
    - c_wchar_p_from_param_impl
    - PyErr_Format
    - PyUnicode_Check
    - _Py_LeaveRecursiveCall
    - PyObject_IsInstance
    - Py_DECREF
    - _Py_ID
    - Py_NewRef
    - PointerObject_Check
    - PyStgInfo_FromType
    - Py_TYPE
    - PyCArg_CheckExact
    - get_module_state_by_class
    - struct fielddesc*::setfunc
    - PyObject_GetOptionalAttr
    - _ctypes_get_fielddesc
    - _Py_EnterRecursiveCall
    - ArrayObject_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_wchar_p_from_param_impl(PyObject *type, PyTypeObject *cls, PyObject *value)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2017,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2018,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2020,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2022,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2029,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2034,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2038,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2040,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2040,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2043,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2046,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2049,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2053,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2054,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2057,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2061,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2064,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2065,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2069,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2069,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2074,1
    - Dst: c_char_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2078,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2079,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2082,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2084,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (it)
      pos:
        line_end: 2045
        line_start: 2045
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2086
      start: 2008
    functionDepth: 3
    functionLinenumber: 2008
    functionLinenumberEnd: 2086
    functionName: c_char_p_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyBytes_Check
    - c_char_p_from_param_impl
    - PyCArgObject_new
    - PyStgInfo_FromObject
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - PyObject_IsInstance
    - Py_DECREF
    - _Py_ID
    - Py_NewRef
    - PointerObject_Check
    - PyStgInfo_FromType
    - Py_TYPE
    - PyCArg_CheckExact
    - get_module_state_by_class
    - struct fielddesc*::setfunc
    - PyObject_GetOptionalAttr
    - _ctypes_get_fielddesc
    - _Py_EnterRecursiveCall
    - ArrayObject_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_char_p_from_param_impl(PyObject *type, PyTypeObject *cls, PyObject *value)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2108,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2112,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2114,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2116,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2123,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2130,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2132,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2134,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2141,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2147,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2149,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2151,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2158,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2164,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2169,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2172,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2172,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2174,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2177,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2181,1
    - Dst: PyCFuncPtrObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2185,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2189,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2194,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2202,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2206,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2208,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2212,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2215,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2220,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2222,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2223,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2224,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2229,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2229,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2234,1
    - Dst: c_void_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2238,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2239,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2242,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2244,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 103
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2097
    functionDepth: 3
    functionLinenumber: 2097
    functionLinenumberEnd: 2246
    functionName: c_void_p_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyBytes_Check
    - Py_BEGIN_CRITICAL_SECTION
    - Py_INCREF
    - PyCArgObject_new
    - c_void_p_from_param_impl
    - PyStgInfo_FromObject
    - PyErr_Format
    - PyUnicode_Check
    - _Py_LeaveRecursiveCall
    - _CDataObject_CAST
    - PyCFuncPtrObject_Check
    - PyObject_IsInstance
    - Py_DECREF
    - CDataObject_Check
    - _Py_ID
    - PyLong_Check
    - Py_NewRef
    - PointerObject_Check
    - Py_TYPE
    - PyCArg_CheckExact
    - get_module_state_by_class
    - struct fielddesc*::setfunc
    - PyObject_GetOptionalAttr
    - _ctypes_get_fielddesc
    - _Py_EnterRecursiveCall
    - PyUnicode_AsUTF8
    - ArrayObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_void_p_from_param_impl(PyObject *type, PyTypeObject *cls, PyObject *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2257,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2262,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2262,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2266,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2269,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2273,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2274,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2275,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2276,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2277,1
    - Dst: tp_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2283,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2289,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 6
    argNames:
    - st
    - type
    - args
    - kwds
    - proto
    - fmt
    argTypes:
    - ctypes_state*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - struct fielddesc*
    assertStmts:
    - condition: (st->swapped_suffix != NULL)
      pos:
        line_end: 2265
        line_start: 2265
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2303
      start: 2252
    functionDepth: 2
    functionLinenumber: 2252
    functionLinenumberEnd: 2303
    functionName: CreateSwappedType
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyUnicode_Concat
    - PyStgInfo_Init
    - PyTuple_SET_ITEM
    - Py_NewRef
    - tp_new
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *CreateSwappedType(ctypes_state *st, PyTypeObject *type,\n
      \                                  PyObject *args, PyObject *kwds,\n                                   PyObject
      *proto, struct fielddesc *fmt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2308,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2314,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2317,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2318,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2319,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2321,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2322,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2324,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2330,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 2316
        line_start: 2316
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (fmt)
      pos:
        line_end: 2318
        line_start: 2318
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (fd)
      pos:
        line_end: 2321
        line_start: 2321
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2333
      start: 2305
    functionDepth: 3
    functionLinenumber: 2305
    functionLinenumberEnd: 2333
    functionName: PyCSimpleType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCArgObject_new
    - _ctypes_get_fielddesc
    - Py_NewRef
    - PyUnicode_AsUTF8
    - PyStgInfo_FromObject
    - memcpy
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCSimpleType_paramfunc(ctypes_state *st, CDataObject *self)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2345,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2348,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2352,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2355,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2358,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2359,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2363,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2368,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2373,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2375,1
    - Dst: _ctypes_get_simple_type_chars
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2379,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2383,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2383,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2384,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2397,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2398,1
    - Dst: _ctypes_alloc_format_string_for_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2407,1
    - Dst: _ctypes_alloc_format_string_for_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2412,1
    - Dst: PyDescr_NewClassMethod
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2458,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2464,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2467,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2470,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2477,1
    - Dst: CreateSwappedType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2482,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2489,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2492,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2494,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2495,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2496,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2497,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2499,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2501,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2502,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2503,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2504,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2508,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2509,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 129
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (sw_info)
      pos:
        line_end: 2491
        line_start: 2491
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2515
      start: 2336
    functionDepth: 3
    functionLinenumber: 2336
    functionLinenumberEnd: 2515
    functionName: PyCSimpleType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyObject_SetAttrString
    - _ctypes_alloc_format_string_for_type
    - get_module_state_by_def
    - PyErr_Occurred
    - _ctypes_get_simple_type_chars
    - PyUnicode_InternInPlace
    - PyDescr_NewClassMethod
    - PyErr_Format
    - PyUnicode_Check
    - _ctypes_alloc_format_string
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - PyStgInfo_Init
    - _Py_ID
    - PyStgInfo_FromType
    - memcpy
    - CreateSwappedType
    - Py_TYPE
    - PyMem_Malloc
    - PyDict_SetItem
    - PyObject_GetOptionalAttr
    - tp_init
    - _ctypes_get_fielddesc
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCSimpleType_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2546,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2550,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2553,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2555,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2559,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2565,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2566,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2568,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2569,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2571,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2577,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2581,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2583,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2583,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2584,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2589,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2590,1
    - Dst: PyCSimpleType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2594,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2595,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2596,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2600,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2603,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (fd)
      pos:
        line_end: 2568
        line_start: 2568
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (fmt)
      pos:
        line_end: 2565
        line_start: 2565
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2606
      start: 2533
    functionDepth: 3
    functionLinenumber: 2533
    functionLinenumberEnd: 2606
    functionName: PyCSimpleType_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyCArgObject_new
    - _Py_LeaveRecursiveCall
    - PyErr_SetRaisedException
    - PyObject_IsInstance
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - Py_NewRef
    - PyStgInfo_FromType
    - get_module_state_by_class
    - struct fielddesc*::setfunc
    - PyObject_GetOptionalAttr
    - _ctypes_get_fielddesc
    - _Py_EnterRecursiveCall
    - PyUnicode_AsUTF8
    - PyCSimpleType_from_param_impl
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCSimpleType_from_param_impl(PyObject *type, PyTypeObject
      *cls,\n                              PyObject *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2642,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2644,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2651,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2652,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2660,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2671,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2725,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2727,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2728,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2729,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2735,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - st
    - ob
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2636
    functionDepth: 1
    functionLinenumber: 2636
    functionLinenumberEnd: 2739
    functionName: converters_from_argtypes
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyErr_Occurred
    - PySequence_Tuple
    - PyErr_SetString
    - _Py_ID
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      converters_from_argtypes(ctypes_state *st, PyObject *ob)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2747,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2754,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2757,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2758,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2760,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2763,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2764,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2767,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2767,1
    - Dst: converters_from_argtypes
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2773,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2780,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2780,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2786,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2789,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2790,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2792,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2796,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2796,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - st
    - attrdict
    - stginfo
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2741
    functionDepth: 3
    functionLinenumber: 2741
    functionLinenumberEnd: 2817
    functionName: make_funcptrtype_dict
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - PyLong_Check
    - PyErr_SetString
    - converters_from_argtypes
    - PyCallable_Check
    - _ctypes_get_fielddesc
    - PyStgInfo_FromType
    - PyDict_GetItemRef
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: int
    signature: int make_funcptrtype_dict(ctypes_state *st, PyObject *attrdict, StgInfo
      *stginfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2822,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2825,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2819
    functionDepth: 2
    functionLinenumber: 2819
    functionLinenumberEnd: 2834
    functionName: PyCFuncPtrType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyCArgObject_new
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCFuncPtrType_paramfunc(ctypes_state *st, CDataObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetDict
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2839,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2844,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2844,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2847,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2861,1
    - Dst: make_funcptrtype_dict
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2836
    functionDepth: 4
    functionLinenumber: 2836
    functionLinenumberEnd: 2873
    functionName: PyCFuncPtrType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - Py_DECREF
    - PyStgInfo_Init
    - make_funcptrtype_dict
    - Py_TYPE
    - _ctypes_alloc_format_string
    - PyType_GetDict
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtrType_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2901,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2906,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2912,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2918
      start: 2894
    functionDepth: 1
    functionLinenumber: 2894
    functionLinenumberEnd: 2918
    functionName: PyCData_GetContainer
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: CDataObject
    signature: 'CDataObject *

      PyCData_GetContainer(CDataObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCData_GetContainer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - target
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2920
    functionDepth: 2
    functionLinenumber: 2920
    functionLinenumberEnd: 2928
    functionName: GetKeepedObjects
    functionSourceFile: /src/cpython/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/cpython/Modules/_ctypes/_ctypes.c:2937,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2938,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2938,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2943,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2947,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2947,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - target
    - index
    argTypes:
    - CDataObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2930
    functionDepth: 1
    functionLinenumber: 2930
    functionLinenumberEnd: 2951
    functionName: unique_key
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - Py_BUILD_ASSERT
    - PyErr_SetString
    - sprintf
    - Py_SAFE_DOWNCAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unique_key(CDataObject *target, Py_ssize_t index)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2963,1
    - Dst: PyCData_GetContainer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2968,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2971,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2972,1
    - Dst: unique_key
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2977,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2982,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - target
    - index
    - keep
    argTypes:
    - CDataObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2953
    functionDepth: 2
    functionLinenumber: 2953
    functionLinenumberEnd: 2984
    functionName: KeepRef_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItem
    - PyDict_CheckExact
    - unique_key
    - Py_XSETREF
    - PyCData_GetContainer
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int KeepRef_lock_held(CDataObject *target, Py_ssize_t index, PyObject
      *keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3008,1
    - Dst: KeepRef_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3009,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - index
    - keep
    argTypes:
    - CDataObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 3004
    functionDepth: 3
    functionLinenumber: 3004
    functionLinenumberEnd: 3012
    functionName: KeepRef
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - KeepRef_lock_held
    linkageType: ''
    returnType: int
    signature: int KeepRef(CDataObject *target, Py_ssize_t index, PyObject *keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3028,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3029,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3030,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3031,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3025
    functionDepth: 1
    functionLinenumber: 3025
    functionLinenumberEnd: 3034
    functionName: PyCData_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _CDataObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PyCData_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3039,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3040,1
    - Dst: _CDataObject_HasExternalBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3042,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3043,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3036
    functionDepth: 1
    functionLinenumber: 3036
    functionLinenumberEnd: 3047
    functionName: PyCData_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _CDataObject_CAST
    - Py_CLEAR
    - _CDataObject_HasExternalBuffer
    linkageType: ''
    returnType: int
    signature: int PyCData_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3052,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3053,1
    - Dst: PyCData_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3054,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3049
    functionDepth: 2
    functionLinenumber: 3049
    functionLinenumberEnd: 3057
    functionName: PyCData_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyCData_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyCData_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3076,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3081,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3084,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3086,1
    - Dst: PyCData_item_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - st
    - type
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts:
    - condition: (elem_type)
      pos:
        line_end: 3085
        line_start: 3085
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (stg_info)
      pos:
        line_end: 3083
        line_start: 3083
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3092
      start: 3073
    functionDepth: 3
    functionLinenumber: 3073
    functionLinenumberEnd: 3092
    functionName: PyCData_item_type
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyCData_item_type
    - assert
    - PyCArrayTypeObject_Check
    - PyStgInfo_FromType
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCData_item_type(ctypes_state *st, PyObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3097,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3099,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3099,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3099,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3101,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3104,1
    - Dst: PyCData_item_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3106,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3106,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3114,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3117,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - myself
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3103
        line_start: 3103
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (item_info)
      pos:
        line_end: 3116
        line_start: 3116
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3132
      start: 3094
    functionDepth: 4
    functionLinenumber: 3094
    functionLinenumberEnd: 3132
    functionName: PyCData_NewGetBuffer
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state_by_def
    - Py_NewRef
    - PyStgInfo_FromObject
    - PyStgInfo_FromType
    - PyCData_item_type
    - Py_TYPE
    - _CDataObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCData_NewGetBuffer(PyObject *myself, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3137
    functionDepth: 1
    functionLinenumber: 3137
    functionLinenumberEnd: 3142
    functionName: PyCData_nohash
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyCData_nohash(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3157,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3159,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3161,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3167,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3171,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3176,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3177,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - myself
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3163
        line_start: 3163
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3179
      start: 3153
    functionDepth: 3
    functionLinenumber: 3153
    functionLinenumberEnd: 3179
    functionName: _ctypes_PyCData___reduce___impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - Py_BuildValue
    - PyObject_GetAttrString
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyStgInfo_FromObject
    - Py_TYPE
    - _CDataObject_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCData___reduce___impl(PyObject *myself, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3196,1
    - Dst: memmove
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3201,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3202,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3206,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3207,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3209,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3210,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - myself
    - dict
    - data
    - data_length
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3191
    functionDepth: 1
    functionLinenumber: 3191
    functionLinenumberEnd: 3218
    functionName: _ctypes_PyCData___setstate___impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - memmove
    - Py_TYPE
    - PyErr_Format
    - PyDict_Update
    - PyDict_Check
    - _CDataObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ctypes_PyCData___setstate___impl(PyObject *myself, PyObject
      *dict,\n                                  const char *data, Py_ssize_t data_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3226
    functionDepth: 0
    functionLinenumber: 3226
    functionLinenumberEnd: 3231
    functionName: _ctypes_PyCData___ctypes_from_outparam___impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCData___ctypes_from_outparam___impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3267,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3267,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3268,1
    - Dst: stginfo_get_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3268,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3284,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3286,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - obj
    - info
    argTypes:
    - CDataObject*
    - StgInfo*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 3266
        line_start: 3266
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (stginfo_get_dict_final(info) == 1)
      pos:
        line_end: 3267
        line_start: 3267
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3294
      start: 3260
    functionDepth: 2
    functionLinenumber: 3260
    functionLinenumberEnd: 3294
    functionName: PyCData_MallocBuffer
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - memset
    - stginfo_get_dict_final
    - Py_REFCNT
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int PyCData_MallocBuffer(CDataObject *obj, StgInfo *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3302,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3302,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3309,1
    - Dst: stginfo_set_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3314,1
    - Dst: tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3315,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3319,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3319,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3323,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3323,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3326,1
    - Dst: PyCData_MallocBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3330,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - st
    - type
    - base
    - index
    - adr
    argTypes:
    - ctypes_state*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 3301
        line_start: 3301
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(st, cmem))
      pos:
        line_end: 3318
        line_start: 3318
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(st, base))
      pos:
        line_end: 3322
        line_start: 3322
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3337
      start: 3296
    functionDepth: 3
    functionLinenumber: 3296
    functionLinenumberEnd: 3337
    functionName: PyCData_FromBaseObj
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - CDataObject_Check
    - PyErr_SetString
    - Py_NewRef
    - PyStgInfo_FromType
    - PyCData_MallocBuffer
    - tp_alloc
    - memcpy
    - stginfo_set_dict_final
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCData_FromBaseObj(ctypes_state *st,\n                    PyObject
      *type, PyObject *base, Py_ssize_t index, char *adr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3347,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3351,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3351,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3354,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3358,1
    - Dst: stginfo_set_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3363,1
    - Dst: tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3365,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3369,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - st
    - type
    - buf
    argTypes:
    - ctypes_state*
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 3350
        line_start: 3350
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(st, pd))
      pos:
        line_end: 3368
        line_start: 3368
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3374
      start: 3342
    functionDepth: 3
    functionLinenumber: 3342
    functionLinenumberEnd: 3374
    functionName: PyCData_AtAddress
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - PyType_Check
    - stginfo_set_dict_final
    - CDataObject_Check
    - PyErr_SetString
    - PyStgInfo_FromType
    - tp_alloc
    - PySys_Audit
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCData_AtAddress(ctypes_state *st, PyObject *type, void *buf)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCSimpleTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - obj
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3389
      start: 3381
    functionDepth: 1
    functionLinenumber: 3381
    functionLinenumberEnd: 3389
    functionName: _ctypes_simple_instance
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyCSimpleTypeObject_Check
    linkageType: ''
    returnType: int
    signature: int _ctypes_simple_instance(ctypes_state *st, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3397,1
    - Dst: getfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3398,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3399,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3402,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3404,1
    - Dst: _ctypes_simple_instance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3407,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3409,1
    - Dst: StgInfo*::getfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3410,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3411,1
    - Dst: PyCData_FromBaseObj
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3414,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - st
    - type
    - getfunc
    - src
    - index
    - size
    - adr
    argTypes:
    - ctypes_state*
    - PyObject*
    - GETFUNC
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (type)
      pos:
        line_end: 3401
        line_start: 3401
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3415
      start: 3391
    functionDepth: 4
    functionLinenumber: 3391
    functionLinenumberEnd: 3415
    functionName: PyCData_get
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - getfunc
    - StgInfo*::getfunc
    - Py_END_CRITICAL_SECTION
    - _ctypes_simple_instance
    - PyCData_FromBaseObj
    - PyStgInfo_FromType
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCData_get(ctypes_state *st, PyObject *type, GETFUNC
      getfunc, PyObject *src,\n          Py_ssize_t index, Py_ssize_t size, char *adr)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3425,1
    - Dst: setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3431,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3434,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3436,1
    - Dst: StgInfo*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3441,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3448,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3448,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3449,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3452,1
    - Dst: _ctypes_extend_error
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3454,1
    - Dst: _PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3460,1
    - Dst: PyCPointerTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3462,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3466,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3469,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3475,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3479,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3480,1
    - Dst: GetKeepedObjects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3481,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3482,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3486,1
    - Dst: PyCPointerTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3489,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3490,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3494,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3497,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3498,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3501,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3504,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3506,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3510,1
    - Dst: GetKeepedObjects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3513,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3514,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3526,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3528,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3530,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 7
    argNames:
    - st
    - dst
    - type
    - setfunc
    - value
    - size
    - ptr
    argTypes:
    - ctypes_state*
    - CDataObject*
    - PyObject*
    - SETFUNC
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (p1)
      pos:
        line_end: 3496
        line_start: 3496
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (PyType_Check(type))
      pos:
        line_end: 3447
        line_start: 3447
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (p2)
      pos:
        line_end: 3500
        line_start: 3500
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3533
      start: 3420
    functionDepth: 3
    functionLinenumber: 3420
    functionLinenumberEnd: 3533
    functionName: _PyCData_set
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - StgInfo*::setfunc
    - PyObject_CallObject
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_extend_error
    - PyStgInfo_FromObject
    - _PyCData_set
    - PyErr_Format
    - PyTuple_Pack
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyType_Check
    - PyCPointerTypeObject_Check
    - PyObject_IsInstance
    - Py_DECREF
    - CDataObject_Check
    - PyTuple_Check
    - Py_NewRef
    - PyStgInfo_FromType
    - memcpy
    - Py_TYPE
    - ArrayObject_Check
    - GetKeepedObjects
    - setfunc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCData_set(ctypes_state *st,\n           CDataObject
      *dst, PyObject *type, SETFUNC setfunc, PyObject *value,\n           Py_ssize_t
      size, char *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3544,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3549,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3550,1
    - Dst: _PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3555,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - st
    - dst
    - type
    - setfunc
    - value
    - index
    - size
    - ptr
    argTypes:
    - ctypes_state*
    - PyObject*
    - PyObject*
    - SETFUNC
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3539
    functionDepth: 4
    functionLinenumber: 3539
    functionLinenumberEnd: 3564
    functionName: PyCData_set
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - CDataObject_Check
    - PyErr_SetString
    - _PyCData_set
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - KeepRef
    linkageType: ''
    returnType: int
    signature: "int PyCData_set(ctypes_state *st,\n          PyObject *dst, PyObject
      *type, SETFUNC setfunc, PyObject *value,\n          Py_ssize_t index, Py_ssize_t
      size, char *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3571,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3571,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3568
    functionDepth: 1
    functionLinenumber: 3568
    functionLinenumberEnd: 3573
    functionName: GenericPyCData_new
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - generic_pycdata_new
    - Py_TYPE
    - get_module_state_by_def
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GenericPyCData_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3582,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3586,1
    - Dst: stginfo_set_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3591,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3593,1
    - Dst: PyCData_MallocBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - st
    - type
    - args
    - kwds
    argTypes:
    - ctypes_state*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3575
    functionDepth: 3
    functionLinenumber: 3575
    functionLinenumberEnd: 3607
    functionName: generic_pycdata_new
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyCData_MallocBuffer
    - PyTypeObject*::tp_alloc
    - stginfo_set_dict_final
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ngeneric_pycdata_new(ctypes_state *st,\n                    PyTypeObject
      *type, PyObject *args, PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_ptr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3618,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3619,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - field
    - value
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3623
      start: 3613
    functionDepth: 1
    functionLinenumber: 3613
    functionLinenumberEnd: 3623
    functionName: atomic_xsetref
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_XSETREF
    - _Py_atomic_store_ptr
    linkageType: ''
    returnType: void
    signature: void atomic_xsetref(PyObject **field, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3634,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3638,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3641,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3642,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3643,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - field
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3648
      start: 3630
    functionDepth: 1
    functionLinenumber: 3630
    functionLinenumberEnd: 3648
    functionName: atomic_xgetref
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_XNewRef
    - _Py_TryIncrefCompare
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atomic_xgetref(PyObject *obj, PyObject **field)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3662,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3663,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3667,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3658
    functionDepth: 2
    functionLinenumber: 3658
    functionLinenumberEnd: 3670
    functionName: _ctypes_CFuncPtr_errcheck_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyErr_SetString
    - PyCallable_Check
    - atomic_xsetref
    linkageType: ''
    returnType: int
    signature: int _ctypes_CFuncPtr_errcheck_set_impl(PyCFuncPtrObject *self, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3688
      start: 3680
    functionDepth: 0
    functionLinenumber: 3680
    functionLinenumberEnd: 3688
    functionName: _ctypes_CFuncPtr_errcheck_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CFuncPtr_errcheck_get_impl(PyCFuncPtrObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3702,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3703,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3706,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3706,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3706,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3708,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3711,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3712,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3716,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3716,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3719,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3720,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3723
      start: 3696
    functionDepth: 3
    functionLinenumber: 3696
    functionLinenumberEnd: 3723
    functionName: _ctypes_CFuncPtr_restype_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_module_state_by_def
    - atomic_xsetref
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - _Py_ID
    - PyCallable_Check
    - PyStgInfo_FromType
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _ctypes_CFuncPtr_restype_set_impl(PyCFuncPtrObject *self, PyObject
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3738,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3740,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3740,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3740,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3742,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3745,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3744
        line_start: 3744
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3751
      start: 3733
    functionDepth: 3
    functionLinenumber: 3733
    functionLinenumberEnd: 3751
    functionName: _ctypes_CFuncPtr_restype_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - Py_NewRef
    - PyStgInfo_FromObject
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CFuncPtr_restype_get_impl(PyCFuncPtrObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3766,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3767,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3769,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3769,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3769,1
    - Dst: converters_from_argtypes
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3770,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3773,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3774,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3759
    functionDepth: 2
    functionLinenumber: 3759
    functionLinenumberEnd: 3778
    functionName: _ctypes_CFuncPtr_argtypes_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_module_state_by_def
    - atomic_xsetref
    - converters_from_argtypes
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _ctypes_CFuncPtr_argtypes_set_impl(PyCFuncPtrObject *self, PyObject
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3793,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3795,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3797,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3800,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3799
        line_start: 3799
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3806
      start: 3788
    functionDepth: 3
    functionLinenumber: 3788
    functionLinenumberEnd: 3806
    functionName: _ctypes_CFuncPtr_argtypes_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - Py_NewRef
    - PyStgInfo_FromObject
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CFuncPtr_argtypes_get_impl(PyCFuncPtrObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3824,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3832,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3840,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3840,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3842,1
    - Dst: alloca
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3853,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3853,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3857,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3859,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - name
    - type
    argTypes:
    - void*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3866
      start: 3816
    functionDepth: 3
    functionLinenumber: 3816
    functionLinenumberEnd: 3866
    functionName: FindAddress
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - strlen
    - sprintf
    - GetProcAddress
    - PyStgInfo_FromType
    - alloca
    - Py_TYPE
    linkageType: ''
    returnType: PPROC
    signature: PPROC FindAddress(void *handle, const char *name, PyObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCPointerTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3873,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3876,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3880,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3885,1
    - Dst: strchr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3887,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3887,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3891,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3893,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3894,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - st
    - arg
    - index
    argTypes:
    - ctypes_state*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3870
    functionDepth: 3
    functionLinenumber: 3870
    functionLinenumberEnd: 3898
    functionName: _check_outarg_type
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyCPointerTypeObject_Check
    - PyCArrayTypeObject_Check
    - PyUnicode_AsUTF8
    - PyStgInfo_FromType
    - PyErr_Format
    - PyUnicode_Check
    - Py_SAFE_DOWNCAST
    - Py_TYPE
    - strchr
    linkageType: ''
    returnType: int
    signature: int _check_outarg_type(ctypes_state *st, PyObject *arg, Py_ssize_t
      index)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3908,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3912,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3921,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3922,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3927,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3928,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3929,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3935,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3940,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3941,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3943,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3947,1
    - Dst: _check_outarg_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3955,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3959,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - st
    - type
    - paramflags
    argTypes:
    - ctypes_state*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3901
    functionDepth: 4
    functionLinenumber: 3901
    functionLinenumberEnd: 3966
    functionName: _validate_paramflags
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyTuple_Check
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - _check_outarg_type
    linkageType: ''
    returnType: int
    signature: int _validate_paramflags(ctypes_state *st, PyTypeObject *type, PyObject
      *paramflags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3973,1
    - Dst: MAKEINTRESOURCEA
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3977,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3977,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3981,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3982,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3985,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3986,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3992
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 3992
    functionName: _get_name
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - PyErr_SetString
    - PyLong_Check
    - MAKEINTRESOURCEA
    - PyBytes_Check
    - PyUnicode_AsUTF8
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: int
    signature: int _get_name(PyObject *obj, void *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4007,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4012,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4020,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4028,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4033,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4040,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4043,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4047,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4052,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4055,1
    - Dst: FindAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4061,1
    - Dst: IS_INTRESOURCE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4063,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4064,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4071,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4084,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4086,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4090,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4093,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4098,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4103,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4103,1
    - Dst: _validate_paramflags
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4105,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4111,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4115,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4121,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4123,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4127,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4129
      start: 3995
    functionDepth: 5
    functionLinenumber: 3995
    functionLinenumberEnd: 4129
    functionName: PyCFuncPtr_FromDll
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - generic_pycdata_new
    - _PyErr_SetLocaleString
    - KeepRef
    - Py_INCREF
    - get_module_state_by_def
    - PyErr_Occurred
    - Py_XNewRef
    - PyErr_Format
    - PySys_Audit
    - Py_DECREF
    - PySequence_Tuple
    - PyLong_Check
    - PyLong_AsVoidPtr
    - Py_NewRef
    - dlsym
    - Py_TYPE
    - PyObject_GetAttrString
    - PyArg_ParseTuple
    - dlerror
    - FindAddress
    - IS_INTRESOURCE
    - _validate_paramflags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_FromDll(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4142,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4147,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4147,1
    - Dst: _validate_paramflags
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4148,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4151,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4157
      start: 4132
    functionDepth: 5
    functionLinenumber: 4132
    functionLinenumberEnd: 4157
    functionName: PyCFuncPtr_FromVtblIndex
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - PyArg_ParseTuple
    - generic_pycdata_new
    - _validate_paramflags
    - Py_XNewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_FromVtblIndex(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4180,1
    - Dst: GenericPyCData_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4181,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4183,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4183,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4183,1
    - Dst: PyCFuncPtr_FromDll
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4184,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4187,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4187,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4187,1
    - Dst: PyCFuncPtr_FromVtblIndex
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4188,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4191,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4192,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4192,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4194,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4194,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4195,1
    - Dst: GenericPyCData_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4197,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4204,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4207,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4228,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4228,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4235,1
    - Dst: _ctypes_alloc_callback
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4241,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4251,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4255,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4260,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4262,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4173
    functionDepth: 6
    functionLinenumber: 4173
    functionLinenumberEnd: 4266
    functionName: PyCFuncPtr_new
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - generic_pycdata_new
    - GenericPyCData_new
    - KeepRef
    - Py_INCREF
    - PyTuple_GET_SIZE
    - get_module_state_by_def
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - Py_DECREF
    - PyTuple_Check
    - PyLong_Check
    - PyCallable_Check
    - PyLong_AsVoidPtr
    - Py_NewRef
    - PyStgInfo_FromType
    - _ctypes_alloc_callback
    - Py_TYPE
    - PyCFuncPtr_FromDll
    - PyCFuncPtr_FromVtblIndex
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4277,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4278,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - st
    - obj
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4294
      start: 4272
    functionDepth: 2
    functionLinenumber: 4272
    functionLinenumberEnd: 4294
    functionName: _byref
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - PyCArgObject_new
    - CDataObject_Check
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _byref(ctypes_state *st, PyObject *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4301,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4302,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4304,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4307,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4316,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4320,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - pindex
    - name
    - defval
    - inargs
    - kwds
    argTypes:
    - int*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4326
      start: 4296
    functionDepth: 1
    functionLinenumber: 4296
    functionLinenumberEnd: 4326
    functionName: _get_arg
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyDict_GetItemRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_arg(int *pindex, PyObject *name, PyObject *defval, PyObject *inargs, PyObject
      *kwds)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4365,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4368,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4368,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4370,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4373,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4374,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4385,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4394,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4395,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4395,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4396,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4397,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4404,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4406,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4407,1
    - Dst: _get_arg
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4416,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4419,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4433,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4434,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4439,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4441,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4447,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4451,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4452,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4458,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4459,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4463,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4475,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4480,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4491,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4491,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4507,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 93
    argCount: 8
    argNames:
    - st
    - self
    - argtypes
    - inargs
    - kwds
    - poutmask
    - pinoutmask
    - pnumretvals
    argTypes:
    - ctypes_state*
    - PyCFuncPtrObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int*
    - int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4509
      start: 4346
    functionDepth: 3
    functionLinenumber: 4346
    functionLinenumberEnd: 4509
    functionName: _build_callargs
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyObject_CallNoArgs
    - PyDict_GET_SIZE
    - PyLong_AsUnsignedLongMask
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyCArrayTypeObject_Check
    - Py_NewRef
    - _get_arg
    - PyStgInfo_FromType
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_build_callargs(ctypes_state *st, 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/cpython/Modules/_ctypes/_ctypes.c:4530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4533,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4540,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4549,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4552,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4555,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4559,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4560,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4562,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4572,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 5
    argNames:
    - result
    - callargs
    - outmask
    - inoutmask
    - numretvals
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4574
      start: 4519
    functionDepth: 1
    functionLinenumber: 4519
    functionLinenumberEnd: 4574
    functionName: _build_result
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_build_result(PyObject *result, PyObject *callargs,\n
      \             int outmask, int inoutmask, unsigned int numretvals)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFuncPtrObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4586,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4592,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4592,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4592,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4594,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4597,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4599,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4601,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4603,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4605,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4607,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4609,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4611,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4613,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4616,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4623,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4625,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4629,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4637,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4643,1
    - Dst: _build_callargs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4650,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4658,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4658,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4660,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4668,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4677,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4678,1
    - Dst: _ctypes_callproc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4687,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4717,1
    - Dst: _build_result
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4719,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4721,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4723,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4725,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 3
    argNames:
    - op
    - inargs
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 4596
        line_start: 4596
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4727
      start: 4576
    functionDepth: 4
    functionLinenumber: 4576
    functionLinenumberEnd: 4727
    functionName: PyCFuncPtr_call
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - get_module_state_by_def
    - PyTuple_GET_SIZE
    - PyObject_CallFunctionObjArgs
    - PyStgInfo_FromObject
    - _build_callargs
    - Py_XNewRef
    - PyErr_Format
    - Py_SAFE_DOWNCAST
    - _build_result
    - assert
    - Py_DECREF
    - CDataObject_Check
    - _ctypes_callproc
    - Py_TYPE
    - atomic_xgetref
    - PyTuple_GetItem
    - _PyCFuncPtrObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_call(PyObject *op, PyObject *inargs, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFuncPtrObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4732,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4733,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4734,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4735,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4736,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4737,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4738,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4739,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4740,1
    - Dst: PyCData_traverse
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4742
      start: 4729
    functionDepth: 2
    functionLinenumber: 4729
    functionLinenumberEnd: 4742
    functionName: PyCFuncPtr_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_traverse
    - Py_VISIT
    - _PyCFuncPtrObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFuncPtrObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4747,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4748,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4749,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4750,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4751,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4752,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4753,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4754,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4755,1
    - Dst: PyCData_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4757
      start: 4744
    functionDepth: 2
    functionLinenumber: 4744
    functionLinenumberEnd: 4757
    functionName: PyCFuncPtr_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_clear
    - Py_CLEAR
    - _PyCFuncPtrObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4762,1
    - Dst: PyCFuncPtr_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4763,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4764,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4767
      start: 4759
    functionDepth: 3
    functionLinenumber: 4759
    functionLinenumberEnd: 4767
    functionName: PyCFuncPtr_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyCFuncPtr_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyCFuncPtr_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFuncPtrObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4772,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4775,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4777,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4780,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4769
    functionDepth: 1
    functionLinenumber: 4769
    functionLinenumberEnd: 4783
    functionName: PyCFuncPtr_repr
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - _PyCFuncPtrObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFuncPtrObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4794
      start: 4785
    functionDepth: 1
    functionLinenumber: 4785
    functionLinenumberEnd: 4794
    functionName: PyCFuncPtr_bool
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyCFuncPtrObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_bool(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4838,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4838,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4840,1
    - Dst: _init_pos_args
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4844,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4852,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4855,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4857,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4858,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4860,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4860,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4861,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4863,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4870,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4872,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4879,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4882,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4884,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4892,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4899,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - self
    - type
    - args
    - kwds
    - index
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (info)
      pos:
        line_end: 4854
        line_start: 4854
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (attrdict)
      pos:
        line_end: 4857
        line_start: 4857
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4904
      start: 4830
    functionDepth: 3
    functionLinenumber: 4830
    functionLinenumberEnd: 4904
    functionName: _init_pos_args
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - _init_pos_args
    - PySequence_GetItem
    - PyDict_GetItemWithError
    - get_module_state_by_def
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - PyType_GetDict
    - _Py_ID
    - PyDict_Contains
    - PyObject_SetAttr
    - PyStgInfo_FromType
    - PyTuple_GET_ITEM
    - PyErr_Format
    - Py_TYPE
    - assert
    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/cpython/Modules/_ctypes/_ctypes.c:4912,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4913,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4917,1
    - Dst: _init_pos_args
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4918,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4918,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4922,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4923,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4932,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4933,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4938
      start: 4906
    functionDepth: 4
    functionLinenumber: 4906
    functionLinenumberEnd: 4938
    functionName: Struct_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _init_pos_args
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyErr_SetString
    - PyDict_Next
    - PyObject_SetAttr
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Struct_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4981,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4982,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4986,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4989,1
    - Dst: PySequence_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4994
      start: 4975
    functionDepth: 1
    functionLinenumber: 4975
    functionLinenumberEnd: 4994
    functionName: Array_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PySequence_SetItem
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int Array_init(PyObject *self, PyObject *args, PyObject *kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4999,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5001,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5005,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5010,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5010,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5010,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5012,1
    - Dst: PyCData_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5024
      start: 4996
    functionDepth: 5
    functionLinenumber: 4996
    functionLinenumberEnd: 5024
    functionName: Array_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - PyCData_get
    - PyErr_SetString
    - PyStgInfo_FromObject
    - Py_TYPE
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Array_item_lock_held(PyObject *myself, Py_ssize_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5030,1
    - Dst: Array_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5031,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5034
      start: 5026
    functionDepth: 6
    functionLinenumber: 5026
    functionLinenumberEnd: 5034
    functionName: Array_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Array_item_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Array_item(PyObject *myself, Py_ssize_t index)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5039,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5041,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5043,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5044,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5046,1
    - Dst: Array_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5050,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5052,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5058,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5061,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5063,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5063,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5063,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5065,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5068,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5071,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5074,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5077,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5082,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5085,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5089,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5092,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5099,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5100,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5103,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5108,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5111,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5116,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5118,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5127,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5128,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5132,1
    - Dst: Array_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5140,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5148,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (iteminfo)
      pos:
        line_end: 5073
        line_start: 5073
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (stginfo)
      pos:
        line_end: 5067
        line_start: 5067
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5152
      start: 5036
    functionDepth: 6
    functionLinenumber: 5036
    functionLinenumberEnd: 5152
    functionName: Array_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyErr_SetString
    - PyMem_New
    - PyMem_Free
    - get_module_state_by_def
    - PyErr_Occurred
    - Array_item_lock_held
    - Py_GetConstant
    - PySlice_Unpack
    - PyStgInfo_FromObject
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PySlice_AdjustIndices
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyStgInfo_FromType
    - PyUnicode_FromWideChar
    - PyIndex_Check
    - Py_TYPE
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyList_SET_ITEM
    - PyNumber_AsSsize_t
    - _ctypes_get_fielddesc
    - PySlice_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Array_subscript_lock_held(PyObject *myself, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5159,1
    - Dst: Array_subscript_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5160,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5163
      start: 5155
    functionDepth: 7
    functionLinenumber: 5155
    functionLinenumberEnd: 5163
    functionName: Array_subscript
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Array_subscript_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Array_subscript(PyObject *myself, PyObject *item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5168,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5175,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5180,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5182,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5185,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5188,1
    - Dst: PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - myself
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5184
        line_start: 5184
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5198
      start: 5165
    functionDepth: 5
    functionLinenumber: 5165
    functionLinenumberEnd: 5198
    functionName: Array_ass_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state_by_def
    - PyErr_SetString
    - PyStgInfo_FromObject
    - PyCData_set
    - Py_TYPE
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int Array_ass_item_lock_held(PyObject *myself, Py_ssize_t index, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5204,1
    - Dst: Array_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5205,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - myself
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5208
      start: 5200
    functionDepth: 6
    functionLinenumber: 5200
    functionLinenumberEnd: 5208
    functionName: Array_ass_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Array_ass_item_lock_held
    linkageType: ''
    returnType: int
    signature: int Array_ass_item(PyObject *myself, Py_ssize_t index, PyObject *value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5217,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5222,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5223,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5225,1
    - Dst: Array_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5229,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5231,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5235,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5238,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5243,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5245,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5250,1
    - Dst: Array_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5255,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5262,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - myself
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5266
      start: 5211
    functionDepth: 6
    functionLinenumber: 5211
    functionLinenumberEnd: 5266
    functionName: Array_ass_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Array_ass_item_lock_held
    - PySlice_AdjustIndices
    - Py_DECREF
    - PyErr_Occurred
    - PySlice_Check
    - PyErr_SetString
    - PySequence_Length
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - PyIndex_Check
    - _CDataObject_CAST
    linkageType: ''
    returnType: int
    signature: int Array_ass_subscript_lock_held(PyObject *myself, PyObject *item,
      PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5272,1
    - Dst: Array_ass_subscript_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5273,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - myself
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5276
      start: 5268
    functionDepth: 7
    functionLinenumber: 5268
    functionLinenumberEnd: 5276
    functionName: Array_ass_subscript
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Array_ass_subscript_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int Array_ass_subscript(PyObject *myself, PyObject *item, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5284
      start: 5279
    functionDepth: 1
    functionLinenumber: 5279
    functionLinenumberEnd: 5284
    functionName: Array_length
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t Array_length(PyObject *myself)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5331,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5332,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5336,1
    - Dst: _PyDict_GetItemProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5343,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5347,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5350,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5354,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5357,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5370,1
    - Dst: PyDict_SetItemProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - st
    - itemtype
    - length
    argTypes:
    - ctypes_state*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (st->array_cache != NULL)
      pos:
        line_end: 5330
        line_start: 5330
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5380
      start: 5324
    functionDepth: 2
    functionLinenumber: 5324
    functionLinenumberEnd: 5380
    functionName: PyCArrayType_from_ctype
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - PyObject_CallFunction
    - sprintf
    - PyLong_FromSsize_t
    - PyErr_SetString
    - PyDict_SetItemProxy
    - _PyDict_GetItemProxy
    - PyTuple_Pack
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCArrayType_from_ctype(ctypes_state *st, PyObject *itemtype, Py_ssize_t length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5406,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5411,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5413,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5416,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5417,1
    - Dst: StgInfo*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5419,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - CDataObject*
    - PyObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 5415
        line_start: 5415
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (info->setfunc)
      pos:
        line_end: 5416
        line_start: 5416
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5425
      start: 5399
    functionDepth: 4
    functionLinenumber: 5399
    functionLinenumberEnd: 5425
    functionName: _ctypes_Simple_value_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - StgInfo*::setfunc
    - PyErr_SetString
    - PyStgInfo_FromObject
    - Py_TYPE
    - assert
    - KeepRef
    linkageType: ''
    returnType: int
    signature: int _ctypes_Simple_value_set_impl(CDataObject *self, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5432,1
    - Dst: _ctypes_Simple_value_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5437
      start: 5428
    functionDepth: 1
    functionLinenumber: 5428
    functionLinenumberEnd: 5437
    functionName: Simple_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_Simple_value_set
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: int Simple_init(PyObject *self, PyObject *args, PyObject *kw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5450,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5450,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5450,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5452,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5455,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5456,1
    - Dst: StgInfo*::getfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 5454
        line_start: 5454
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (info->getfunc)
      pos:
        line_end: 5455
        line_start: 5455
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5460
      start: 5446
    functionDepth: 3
    functionLinenumber: 5446
    functionLinenumberEnd: 5460
    functionName: _ctypes_Simple_value_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - StgInfo*::getfunc
    - get_module_state_by_def
    - PyStgInfo_FromObject
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_Simple_value_get_impl(CDataObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5479,1
    - Dst: _ctypes_simple_instance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5480,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5480,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5481,1
    - Dst: _ctypes_Simple_value_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5485
      start: 5475
    functionDepth: 2
    functionLinenumber: 5475
    functionLinenumberEnd: 5485
    functionName: Simple_from_outparm_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - _ctypes_simple_instance
    - _ctypes_Simple_value_get
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Simple_from_outparm_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5496,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5497,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5498,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5501
      start: 5492
    functionDepth: 1
    functionLinenumber: 5492
    functionLinenumberEnd: 5501
    functionName: Simple_bool
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _CDataObject_CAST
    - memcmp
    linkageType: ''
    returnType: int
    signature: int Simple_bool(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5508,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5508,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5508,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5510,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5511,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5512,1
    - Dst: _ctypes_Simple_value_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5515,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5519,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5523
      start: 5504
    functionDepth: 1
    functionLinenumber: 5504
    functionLinenumberEnd: 5523
    functionName: Simple_repr
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_module_state_by_def
    - PyUnicode_FromFormat
    - _ctypes_Simple_value_get
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Simple_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5552,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5553,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5560,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5565,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5565,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5565,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5567,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5570,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5573,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5576,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5579,1
    - Dst: PyCData_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5569
        line_start: 5569
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5572
        line_start: 5572
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (iteminfo)
      pos:
        line_end: 5578
        line_start: 5578
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5587
      start: 5549
    functionDepth: 5
    functionLinenumber: 5549
    functionLinenumberEnd: 5587
    functionName: Pointer_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state_by_def
    - PyCData_get
    - PyErr_SetString
    - PyStgInfo_FromObject
    - PyStgInfo_FromType
    - Py_TYPE
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_item_lock_held(PyObject *myself, Py_ssize_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5593,1
    - Dst: Pointer_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5594,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5597
      start: 5589
    functionDepth: 6
    functionLinenumber: 5589
    functionLinenumberEnd: 5597
    functionName: Pointer_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Pointer_item_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_item(PyObject *self, Py_ssize_t index)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5602,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5603,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5616,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5621,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5621,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5621,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5623,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5626,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5629,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5632,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5635,1
    - Dst: PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - myself
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5625
        line_start: 5625
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5628
        line_start: 5628
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (iteminfo)
      pos:
        line_end: 5634
        line_start: 5634
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5643
      start: 5599
    functionDepth: 5
    functionLinenumber: 5599
    functionLinenumberEnd: 5643
    functionName: Pointer_ass_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state_by_def
    - PyErr_SetString
    - PyStgInfo_FromObject
    - PyStgInfo_FromType
    - PyCData_set
    - Py_TYPE
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int Pointer_ass_item_lock_held(PyObject *myself, Py_ssize_t index,
      PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5649,1
    - Dst: Pointer_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5650,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5653
      start: 5645
    functionDepth: 6
    functionLinenumber: 5645
    functionLinenumberEnd: 5653
    functionName: Pointer_ass_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Pointer_ass_item_lock_held
    linkageType: ''
    returnType: int
    signature: int Pointer_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5658,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5659,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5661,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5666,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5666,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5666,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5668,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5671,1
    - Dst: PyCData_FromBaseObj
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5670
        line_start: 5670
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5674
      start: 5655
    functionDepth: 4
    functionLinenumber: 5655
    functionLinenumberEnd: 5674
    functionName: Pointer_get_contents_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state_by_def
    - PyErr_SetString
    - PyCData_FromBaseObj
    - PyStgInfo_FromObject
    - Py_TYPE
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_get_contents_lock_held(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5680,1
    - Dst: Pointer_get_contents_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5681,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5676
    functionDepth: 5
    functionLinenumber: 5676
    functionLinenumberEnd: 5684
    functionName: Pointer_get_contents
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Pointer_get_contents_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_get_contents(PyObject *self, void *closure)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5689,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5692,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5695,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5699,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5699,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5699,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5701,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5704,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5705,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5706,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5707,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5711,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5714,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5727,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5728,1
    - Dst: GetKeepedObjects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5731,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5735,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5736,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5703
        line_start: 5703
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (stginfo->proto)
      pos:
        line_end: 5704
        line_start: 5704
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5737
      start: 5686
    functionDepth: 4
    functionLinenumber: 5686
    functionLinenumberEnd: 5737
    functionName: Pointer_set_contents_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - Py_INCREF
    - assert
    - get_module_state_by_def
    - CDataObject_Check
    - PyErr_SetString
    - KeepRef
    - PyStgInfo_FromObject
    - PyErr_Format
    - GetKeepedObjects
    - Py_TYPE
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int Pointer_set_contents_lock_held(PyObject *op, PyObject *value, void
      *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5743,1
    - Dst: Pointer_set_contents_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5744,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5747
      start: 5739
    functionDepth: 5
    functionLinenumber: 5739
    functionLinenumberEnd: 5747
    functionName: Pointer_set_contents
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Pointer_set_contents_lock_held
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: int
    signature: int Pointer_set_contents(PyObject *op, PyObject *value, void *closure)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5759,1
    - Dst: Pointer_set_contents
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5764
      start: 5755
    functionDepth: 6
    functionLinenumber: 5755
    functionLinenumberEnd: 5764
    functionName: Pointer_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    - Pointer_set_contents
    linkageType: ''
    returnType: int
    signature: int Pointer_init(PyObject *self, PyObject *args, PyObject *kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5769,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5769,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5771,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5775,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5780
      start: 5766
    functionDepth: 4
    functionLinenumber: 5766
    functionLinenumberEnd: 5780
    functionName: Pointer_new
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - PyErr_SetString
    - generic_pycdata_new
    - PyStgInfo_FromType
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5786,1
    - Dst: Pointer_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5790,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - myself
    - np
    - len
    - start
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5798
      start: 5782
    functionDepth: 6
    functionLinenumber: 5782
    functionLinenumberEnd: 5798
    functionName: copy_pointer_to_list_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - Pointer_item_lock_held
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: "int copy_pointer_to_list_lock_held(PyObject *myself, PyObject *np,
      Py_ssize_t len,\n                               Py_ssize_t start, Py_ssize_t
      step)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5803,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5804,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5806,1
    - Dst: Pointer_item
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5808,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5810,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5825,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5827,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5830,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5837,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5845,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5851,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5857,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5867,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5867,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5867,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5869,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5872,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5874,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5876,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5879,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5880,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5884,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5887,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5889,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5891,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5894,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5896,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5897,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5902,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5903,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5904,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5907,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5911,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5914,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5916,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5918,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5921,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5923,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5924,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5929,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5930,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5931,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5935,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5940,1
    - Dst: copy_pointer_to_list_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5941,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5944,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5951,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 108
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5871
        line_start: 5871
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5873
        line_start: 5873
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (iteminfo)
      pos:
        line_end: 5878
        line_start: 5878
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5955
      start: 5800
    functionDepth: 7
    functionLinenumber: 5800
    functionLinenumberEnd: 5955
    functionName: Pointer_subscript
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_END_CRITICAL_SECTION
    - PyErr_SetString
    - PyMem_New
    - PyMem_Free
    - Py_BEGIN_CRITICAL_SECTION
    - Pointer_item
    - get_module_state_by_def
    - PyErr_Occurred
    - Py_GetConstant
    - PyStgInfo_FromObject
    - _CDataObject_CAST
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyStgInfo_FromType
    - PyUnicode_FromWideChar
    - PyIndex_Check
    - Py_TYPE
    - PyErr_NoMemory
    - PyMem_Malloc
    - copy_pointer_to_list_lock_held
    - PyNumber_AsSsize_t
    - _ctypes_get_fielddesc
    - PySlice_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_subscript(PyObject *myself, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5961,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5962,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5965
      start: 5957
    functionDepth: 1
    functionLinenumber: 5957
    functionLinenumberEnd: 5965
    functionName: Pointer_bool
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _CDataObject_CAST
    linkageType: ''
    returnType: int
    signature: int Pointer_bool(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6006,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6006,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6009,1
    - Dst: PySequence_GetSlice
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6012,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6012,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6016,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6020,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6023,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6026,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6029,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6030,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6033
      start: 5999
    functionDepth: 1
    functionLinenumber: 5999
    functionLinenumberEnd: 6033
    functionName: comerror_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PySequence_GetSlice
    - PyArg_ParseTuple
    - PyObject_SetAttrString
    - Py_SETREF
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int comerror_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6039
      start: 6035
    functionDepth: 0
    functionLinenumber: 6035
    functionLinenumberEnd: 6039
    functionName: comerror_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - tp_clear
    linkageType: ''
    returnType: int
    signature: int comerror_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6044,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6044,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6046
      start: 6041
    functionDepth: 1
    functionLinenumber: 6041
    functionLinenumberEnd: 6046
    functionName: comerror_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int comerror_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6051,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6052,1
    - Dst: comerror_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6053,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6056
      start: 6048
    functionDepth: 1
    functionLinenumber: 6048
    functionLinenumberEnd: 6056
    functionName: comerror_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - comerror_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void comerror_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6080,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6084,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6084,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6086
      start: 6077
    functionDepth: 1
    functionLinenumber: 6077
    functionLinenumberEnd: 6086
    functionName: string_at
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyBytes_FromStringAndSize
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      string_at(const char *ptr, int size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyCPointerTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6091,1
    - Dst: PyCFuncPtrTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6094,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6098,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6102,1
    - Dst: strchr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6103,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6103,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6108,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6110,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - st
    - arg
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6114
      start: 6088
    functionDepth: 3
    functionLinenumber: 6088
    functionLinenumberEnd: 6114
    functionName: cast_check_pointertype
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyCPointerTypeObject_Check
    - PyCFuncPtrTypeObject_Check
    - PyUnicode_AsUTF8
    - PyStgInfo_FromType
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - strchr
    linkageType: ''
    returnType: int
    signature: int cast_check_pointertype(ctypes_state *st, PyObject *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6119,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6120,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6120,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6122,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6126,1
    - Dst: cast_check_pointertype
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6129,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6132,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6142,1
    - Dst: PyCData_GetContainer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6154,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6155,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6159,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6160,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6163,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6167,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6177,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - ptr
    - src
    - ctype
    argTypes:
    - void*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6179
      start: 6116
    functionDepth: 4
    functionLinenumber: 6116
    functionLinenumberEnd: 6179
    functionName: cast_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - cast_check_pointertype
    - _PyObject_CallNoArgs
    - PyLong_FromVoidPtr
    - get_module_state
    - Py_DECREF
    - PyType_GetModuleByDef
    - CDataObject_Check
    - PyDict_CheckExact
    - PyDict_SetItem
    - PyErr_SetString
    - PyDict_New
    - Py_XNewRef
    - PyCData_GetContainer
    - memcpy
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cast_lock_held(void *ptr, PyObject *src, PyObject *ctype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6185,1
    - Dst: cast_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6186,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - src
    - ctype
    argTypes:
    - void*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6181
    functionDepth: 5
    functionLinenumber: 6181
    functionLinenumberEnd: 6189
    functionName: cast
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - cast_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cast(void *ptr, PyObject *src, PyObject *ctype)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6195,1
    - Dst: wcslen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6199,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6201
      start: 6191
    functionDepth: 1
    functionLinenumber: 6191
    functionLinenumberEnd: 6201
    functionName: wstring_at
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyUnicode_FromWideChar
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wstring_at(const wchar_t *ptr, int size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6206,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6211,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - size
    - readonly
    argTypes:
    - void*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6218
      start: 6203
    functionDepth: 1
    functionLinenumber: 6203
    functionLinenumberEnd: 6218
    functionName: memoryview_at
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyMemoryView_FromMemory
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_at(void *ptr, Py_ssize_t size, int readonly)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6243,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6249,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6250,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6251,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6254,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6261,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6263,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6265,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6267,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6269,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6271,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6279,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6281,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6283,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6285,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6287,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6289,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6297,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6304,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6305,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6315
      start: 6220
    functionDepth: 1
    functionLinenumber: 6220
    functionLinenumberEnd: 6315
    functionName: _ctypes_add_types
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - CREATE_TYPE
    - MOD_ADD_TYPE
    linkageType: ''
    returnType: int
    signature: int _ctypes_add_types(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6227
      start: 6223
    functionDepth: 0
    functionLinenumber: 6223
    functionLinenumberEnd: 6227
    functionName: TYPE_READY
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_READY(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TP
    - ','
    - SPEC
    - ','
    - META
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6235
      start: 6227
    functionDepth: 0
    functionLinenumber: 6227
    functionLinenumberEnd: 6235
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(TP, SPEC, META, BASE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TP
    - ','
    - SPEC
    - ','
    - META
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6236
    functionDepth: 0
    functionLinenumber: 6236
    functionLinenumberEnd: 6242
    functionName: MOD_ADD_TYPE
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_ADD_TYPE(TP, SPEC, META, BASE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6328,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6331,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6331,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6332,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6332,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6333,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6333,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6335,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6335,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6336,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6336,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6337,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6337,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6338,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6338,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6339,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6339,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6341,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6341,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6342,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6342,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6343,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6343,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6344,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6344,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6345,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6345,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6346,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6346,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6358,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6358,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6359,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6359,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6360,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6360,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6361,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6361,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6362,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6365
      start: 6318
    functionDepth: 1
    functionLinenumber: 6318
    functionLinenumberEnd: 6365
    functionName: _ctypes_add_objects
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - get_module_state
    - PyLong_FromSsize_t
    - Py_NewRef
    - PyLong_FromLong
    - MOD_ADD
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _ctypes_add_objects(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6327
      start: 6321
    functionDepth: 0
    functionLinenumber: 6321
    functionLinenumberEnd: 6327
    functionName: MOD_ADD
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_ADD(name, expr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_ffi_closure_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6376,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6378,1
    - Dst: Py_ffi_closure_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6381,1
    - Dst: _ctypes_init_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6383,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6385,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6386,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6391,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6396,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6402,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6404,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6410,1
    - Dst: _ctypes_add_types
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6415,1
    - Dst: _ctypes_add_objects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6419,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6423
      start: 6368
    functionDepth: 3
    functionLinenumber: 6368
    functionLinenumberEnd: 6423
    functionName: _ctypes_mod_exec
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_ffi_closure_free
    - PyUnicode_InternFromString
    - get_module_state
    - PyObject_GetAttrString
    - _ctypes_add_types
    - _ctypes_add_objects
    - Py_ffi_closure_alloc
    - PyErr_NoMemory
    - PyErr_NewException
    - PyDict_New
    - _ctypes_init_fielddesc
    linkageType: ''
    returnType: int
    signature: int _ctypes_mod_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6428,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6429,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6430,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6431,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6432,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6433,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6435,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6436,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6437,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6438,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6439,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6440,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6441,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6442,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6443,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6444,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6445,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6446,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6447,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6448,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6449,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6450,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6451,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6452,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6454,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6458
      start: 6426
    functionDepth: 1
    functionLinenumber: 6426
    functionLinenumberEnd: 6458
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6462,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6463,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6464,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6465,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6466,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6467,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6469,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6470,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6471,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6472,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6473,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6474,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6475,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6476,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6477,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6478,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6479,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6480,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6481,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6482,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6483,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6484,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6485,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6486,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6488,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6492
      start: 6460
    functionDepth: 1
    functionLinenumber: 6460
    functionLinenumberEnd: 6492
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 20
    functionsReached:
    - get_module_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6498
      start: 6494
    functionDepth: 0
    functionLinenumber: 6494
    functionLinenumberEnd: 6498
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - module_clear
    linkageType: ''
    returnType: void
    signature: void module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6523
      start: 6519
    functionDepth: 1
    functionLinenumber: 6519
    functionLinenumberEnd: 6523
    functionName: PyInit__ctypes
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ctypes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/callbacks.c:23,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/callbacks.c:23,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/callbacks.c:24,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/callbacks.c:25,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/callbacks.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - myself
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: CThunkObject_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int CThunkObject_traverse(PyObject *myself, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/callbacks.c:34,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/callbacks.c:35,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/callbacks.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: CThunkObject_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int CThunkObject_clear(PyObject *myself)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/callbacks.c:44,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/callbacks.c:45,1
    - Dst: CThunkObject_clear
      Src: /src/cpython/Modules/_ctypes/callbacks.c:46,1
    - Dst: Py_ffi_closure_free
      Src: /src/cpython/Modules/_ctypes/callbacks.c:48,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_ctypes/callbacks.c:50,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: CThunkObject_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - Py_ffi_closure_free
    - Py_DECREF
    - PyObject_GC_UnTrack
    - CThunkObject_clear
    - PyObject_GC_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void CThunkObject_dealloc(PyObject *myself)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_ctypes/callbacks.c:88,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_ctypes/callbacks.c:92,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/callbacks.c:92,1
    - Dst: IUnknown*::lpVtbl::AddRef
      Src: /src/cpython/Modules/_ctypes/callbacks.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - cnv
    - obj
    argTypes:
    - PyObject*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: TryAddRef
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyDict_Contains
    - _PyType_GetDict
    - IUnknown*::lpVtbl::AddRef
    linkageType: ''
    returnType: int
    signature: int TryAddRef(PyObject *cnv, CDataObject *obj)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callbacks.c:125,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/callbacks.c:125,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/callbacks.c:126,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callbacks.c:127,1
    - Dst: alloca
      Src: /src/cpython/Modules/_ctypes/callbacks.c:128,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Modules/_ctypes/callbacks.c:129,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/callbacks.c:134,1
    - Dst: _ctypes_simple_instance
      Src: /src/cpython/Modules/_ctypes/callbacks.c:138,1
    - Dst: StgInfo*::getfunc
      Src: /src/cpython/Modules/_ctypes/callbacks.c:139,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/callbacks.c:152,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/callbacks.c:156,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callbacks.c:157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:159,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/callbacks.c:162,1
    - Dst: TryAddRef
      Src: /src/cpython/Modules/_ctypes/callbacks.c:165,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callbacks.c:170,1
    - Dst: _ctypes_get_errobj
      Src: /src/cpython/Modules/_ctypes/callbacks.c:179,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/callbacks.c:181,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callbacks.c:195,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/_ctypes/callbacks.c:196,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_ctypes/callbacks.c:201,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/callbacks.c:203,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callbacks.c:211,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/_ctypes/callbacks.c:212,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:220,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callbacks.c:223,1
    - Dst: setfunc
      Src: /src/cpython/Modules/_ctypes/callbacks.c:242,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/callbacks.c:246,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/callbacks.c:251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:254,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_ctypes/callbacks.c:256,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/callbacks.c:259,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:271,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/callbacks.c:276,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 98
    argCount: 8
    argNames:
    - st
    - mem
    - restype
    - setfunc
    - callable
    - converters
    - flags
    - pArgs
    argTypes:
    - ctypes_state*
    - void*
    - ffi_type*
    - SETFUNC
    - PyObject*
    - PyObject*
    - int
    - void**
    assertStmts:
    - condition: (PyTuple_Check(converters))
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Modules/_ctypes/callbacks.c
    - condition: (nargs <= CTYPES_MAX_ARGCOUNT)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/cpython/Modules/_ctypes/callbacks.c
    - condition: (setfunc)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/cpython/Modules/_ctypes/callbacks.c
    constantsTouched: []
    func_position:
      end: 281
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 281
    functionName: _CallPythonObject
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - SetLastError
    - GetLastError
    - PyErr_FormatUnraisable
    - TryAddRef
    - PyTuple_GET_SIZE
    - PyErr_Format
    - _ctypes_get_errobj
    - Py_DECREF
    - CDataObject_Check
    - PySequence_Fast_ITEMS
    - PyTuple_Check
    - PyObject_Vectorcall
    - PyStgInfo_FromType
    - memcpy
    - PyErr_WarnEx
    - StgInfo*::getfunc
    - _PyObject_CallNoArgs
    - _ctypes_simple_instance
    - _ctypes_get_fielddesc
    - alloca
    - setfunc
    - assert
    linkageType: ''
    returnType: void
    signature: "void _CallPythonObject(ctypes_state *st,\n                              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:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ctypes/callbacks.c:288,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/callbacks.c:291,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/callbacks.c:291,1
    - Dst: _CallPythonObject
      Src: /src/cpython/Modules/_ctypes/callbacks.c:293,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ctypes/callbacks.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cif
    - resp
    - args
    - userdata
    argTypes:
    - ffi_cif*
    - void*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 303
    functionName: closure_fcn
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - get_module_state_by_class
    - PyGILState_Release
    - _CallPythonObject
    - Py_TYPE
    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/cpython/Modules/_ctypes/callbacks.c:310,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/callbacks.c:317,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_ctypes/callbacks.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - st
    - nargs
    argTypes:
    - ctypes_state*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 329
    functionName: CThunkObject_new
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - memset
    - PyObject_GC_NewVar
    linkageType: ''
    returnType: CThunkObject
    signature: CThunkObject * CThunkObject_new(ctypes_state *st, Py_ssize_t nargs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callbacks.c:342,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/callbacks.c:342,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/callbacks.c:343,1
    - Dst: CThunkObject_new
      Src: /src/cpython/Modules/_ctypes/callbacks.c:344,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callbacks.c:348,1
    - Dst: CThunk_CheckExact
      Src: /src/cpython/Modules/_ctypes/callbacks.c:348,1
    - Dst: Py_ffi_closure_alloc
      Src: /src/cpython/Modules/_ctypes/callbacks.c:350,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/callbacks.c:352,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Modules/_ctypes/callbacks.c:357,1
    - Dst: _ctypes_get_ffi_type
      Src: /src/cpython/Modules/_ctypes/callbacks.c:360,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callbacks.c:364,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/callbacks.c:370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callbacks.c:375,1
    - Dst: ffi_prep_cif
      Src: /src/cpython/Modules/_ctypes/callbacks.c:388,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/callbacks.c:389,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callbacks.c:393,1
    - Dst: ffi_prep_closure_loc
      Src: /src/cpython/Modules/_ctypes/callbacks.c:410,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callbacks.c:417,1
    - Dst: ffi_prep_closure
      Src: /src/cpython/Modules/_ctypes/callbacks.c:438,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callbacks.c:444,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callbacks.c:449,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callbacks.c:450,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:454,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 5
    argNames:
    - st
    - callable
    - converters
    - restype
    - flags
    argTypes:
    - ctypes_state*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyTuple_Check(converters))
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Modules/_ctypes/callbacks.c
    - condition: (CThunk_CheckExact(st, (PyObject *)p))
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/cpython/Modules/_ctypes/callbacks.c
    constantsTouched: []
    func_position:
      end: 456
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 456
    functionName: _ctypes_alloc_callback
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PySequence_Fast_ITEMS
    - PyTuple_Check
    - PyErr_SetString
    - _ctypes_get_ffi_type
    - CThunkObject_new
    - Py_ffi_closure_alloc
    - Py_NewRef
    - CThunk_CheckExact
    - PyStgInfo_FromType
    - ffi_prep_cif
    - ffi_prep_closure_loc
    - ffi_prep_closure
    - PyErr_Format
    - Py_SAFE_DOWNCAST
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: CThunkObject
    signature: "CThunkObject *_ctypes_alloc_callback(ctypes_state *st,\n                                    PyObject
      *callable,\n                                    PyObject *converters,\n                                    PyObject
      *restype,\n                                    int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsInitialized
      Src: /src/cpython/Modules/_ctypes/callbacks.c:462,1
    - Dst: Py_Initialize
      Src: /src/cpython/Modules/_ctypes/callbacks.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: LoadPython
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - Py_IsInitialized
    - Py_Initialize
    linkageType: ''
    returnType: void
    signature: void LoadPython(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_ctypes/callbacks.c:474,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callbacks.c:481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:483,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callbacks.c:486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:489,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callbacks.c:492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:496,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ctypes/callbacks.c:499,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:508,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ctypes/callbacks.c:513,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callbacks.c:514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:518,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/callbacks.c:522,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - rclsid
    - riid
    - ppv
    argTypes:
    - REFCLSID
    - REFIID
    - LPVOID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 525
    functionName: Call_GetClassObject
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyLong_FromVoidPtr
    - PyLong_AsLong
    - PyErr_Occurred
    - PyObject_CallFunctionObjArgs
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: long
    signature: long Call_GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadPython
      Src: /src/cpython/Modules/_ctypes/callbacks.c:534,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ctypes/callbacks.c:535,1
    - Dst: Call_GetClassObject
      Src: /src/cpython/Modules/_ctypes/callbacks.c:536,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ctypes/callbacks.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rclsid
    - riid
    - ppv
    argTypes:
    - REFCLSID
    - REFIID
    - LPVOID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 539
    functionName: DllGetClassObject
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - LoadPython
    - Call_GetClassObject
    - PyGILState_Release
    linkageType: ''
    returnType: STDAPI
    signature: "STDAPI DllGetClassObject(REFCLSID rclsid,\n                         REFIID
      riid,\n                         LPVOID *ppv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_ctypes/callbacks.c:543,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/callbacks.c:549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:550,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ctypes/callbacks.c:555,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callbacks.c:556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callbacks.c:560,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/callbacks.c:564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 567
    functionName: Call_CanUnloadNow
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: long
    signature: long Call_CanUnloadNow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ctypes/callbacks.c:576,1
    - Dst: Call_CanUnloadNow
      Src: /src/cpython/Modules/_ctypes/callbacks.c:577,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ctypes/callbacks.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: DllCanUnloadNow
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyGILState_Release
    - PyGILState_Ensure
    - Call_CanUnloadNow
    linkageType: ''
    returnType: STDAPI
    signature: STDAPI DllCanUnloadNow(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DisableThreadLibraryCalls
      Src: /src/cpython/Modules/_ctypes/callbacks.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpvRes
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: DllMain
    functionSourceFile: /src/cpython/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - DisableThreadLibraryCalls
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvRes)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:31,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:33,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:51,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:52,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:62,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:62,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:67,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:68,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:75,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:77,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:78,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:80,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:87,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:89,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:90,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:92,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:99,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:104,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:109,1
    - Dst: PyCField_new_impl
      Src: /src/cpython/Modules/_ctypes/clinic/cfield.c.h:124,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 128
    functionName: PyCField_new
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/cfield.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyCField_new_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:37,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:40,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:40,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:41,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:41,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:50,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:52,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:53,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:55,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:61,1
    - Dst: _ctypes_byref_impl
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:62,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:63,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: _ctypes_byref
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/callproc.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_TypeCheck
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - clinic_state
    - _ctypes_byref_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_byref(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:87,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:87,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:88,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:88,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:92,1
    - Dst: _ctypes_addressof_impl
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:93,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: _ctypes_addressof
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/callproc.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_TypeCheck
    - clinic_state
    - _PyArg_BadArgument
    - _ctypes_addressof_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_addressof(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:118,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:121,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:121,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:122,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:122,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:128,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:133,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:138,1
    - Dst: _ctypes_resize_impl
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:139,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/callproc.c.h:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: _ctypes_resize
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/callproc.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_TypeCheck
    - Py_DECREF
    - _ctypes_resize_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - clinic_state
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_resize(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:27,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:28,1
    - Dst: _ctypes_CType_Type___sizeof___impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: _ctypes_CType_Type___sizeof__
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _ctypes_CType_Type___sizeof___impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CType_Type___sizeof__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ctypes_CType_Type___pointer_type___get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: _ctypes_CType_Type___pointer_type___get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _ctypes_CType_Type___pointer_type___get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CType_Type___pointer_type___get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ctypes_CType_Type___pointer_type___set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: _ctypes_CType_Type___pointer_type___set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _ctypes_CType_Type___pointer_type___set_impl
    linkageType: ''
    returnType: int
    signature: int _ctypes_CType_Type___pointer_type___set(PyObject *self, PyObject
      *value, void *Py_UNUSED(context))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:111,1
    - Dst: CDataType_from_address_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 121
    functionName: CDataType_from_address
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - CDataType_from_address_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_address(PyObject *type, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:159,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:170,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:175,1
    - Dst: CDataType_from_buffer_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 185
    functionName: CDataType_from_buffer
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CDataType_from_buffer_impl
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_buffer(PyObject *type, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:223,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:228,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:236,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:241,1
    - Dst: CDataType_from_buffer_copy_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:247,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:252,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 256
    functionName: CDataType_from_buffer_copy
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyBuffer_Release
    - CDataType_from_buffer_copy_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_buffer_copy(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:294,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:300,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:301,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:305,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:310,1
    - Dst: CDataType_in_dll_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:313,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 317
    functionName: CDataType_in_dll
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - CDataType_in_dll_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_in_dll(PyObject *type, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:351,1
    - Dst: CDataType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 361
    functionName: CDataType_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - CDataType_from_param_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:395,1
    - Dst: PyCPointerType_set_type_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 375
    functionDepth: 5
    functionLinenumber: 375
    functionLinenumberEnd: 405
    functionName: PyCPointerType_set_type
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - PyCPointerType_set_type_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCPointerType_set_type(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:440,1
    - Dst: PyCPointerType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 450
    functionName: PyCPointerType_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - PyCPointerType_from_param_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCPointerType_from_param(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:470,1
    - Dst: _ctypes_PyCArrayType_Type_raw_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:471,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 475
    functionName: _ctypes_PyCArrayType_Type_raw_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_PyCArrayType_Type_raw_set_impl
    linkageType: ''
    returnType: int
    signature: int _ctypes_PyCArrayType_Type_raw_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:495,1
    - Dst: _ctypes_PyCArrayType_Type_raw_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:496,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 500
    functionName: _ctypes_PyCArrayType_Type_raw_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_PyCArrayType_Type_raw_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCArrayType_Type_raw_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:520,1
    - Dst: _ctypes_PyCArrayType_Type_value_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:521,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: _ctypes_PyCArrayType_Type_value_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_PyCArrayType_Type_value_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCArrayType_Type_value_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:545,1
    - Dst: _ctypes_PyCArrayType_Type_value_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:546,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 550
    functionName: _ctypes_PyCArrayType_Type_value_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_PyCArrayType_Type_value_set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _ctypes_PyCArrayType_Type_value_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:583,1
    - Dst: c_wchar_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 593
    functionName: c_wchar_p_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - c_wchar_p_from_param_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_wchar_p_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:626,1
    - Dst: c_char_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 606
    functionDepth: 4
    functionLinenumber: 606
    functionLinenumberEnd: 636
    functionName: c_char_p_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - c_char_p_from_param_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_char_p_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:669,1
    - Dst: c_void_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 679
    functionName: c_void_p_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - c_void_p_from_param_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_void_p_from_param(PyObject *type, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:714,1
    - Dst: PyCSimpleType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 694
    functionDepth: 4
    functionLinenumber: 694
    functionLinenumberEnd: 724
    functionName: PyCSimpleType_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - PyCSimpleType_from_param_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCSimpleType_from_param(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:742,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:743,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:746,1
    - Dst: _ctypes_PyCData___reduce___impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:747,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - myself
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 737
    functionDepth: 4
    functionLinenumber: 737
    functionLinenumberEnd: 752
    functionName: _ctypes_PyCData___reduce__
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _ctypes_PyCData___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCData___reduce__(PyObject *myself, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:774,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:778,1
    - Dst: _ctypes_PyCData___setstate___impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:779,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - myself
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 784
    functionName: _ctypes_PyCData___setstate__
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_ParseStack
    - Py_END_CRITICAL_SECTION
    - _ctypes_PyCData___setstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCData___setstate__(PyObject *myself, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ctypes_PyCData___ctypes_from_outparam___impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: _ctypes_PyCData___ctypes_from_outparam__
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _ctypes_PyCData___ctypes_from_outparam___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_PyCData___ctypes_from_outparam__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:822,1
    - Dst: _ctypes_CFuncPtr_errcheck_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:823,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 827
    functionName: _ctypes_CFuncPtr_errcheck_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_CFuncPtr_errcheck_set_impl
    linkageType: ''
    returnType: int
    signature: int _ctypes_CFuncPtr_errcheck_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:854,1
    - Dst: _ctypes_CFuncPtr_errcheck_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:855,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 859
    functionName: _ctypes_CFuncPtr_errcheck_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_CFuncPtr_errcheck_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CFuncPtr_errcheck_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:879,1
    - Dst: _ctypes_CFuncPtr_restype_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:880,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 884
    functionName: _ctypes_CFuncPtr_restype_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_CFuncPtr_restype_set_impl
    linkageType: ''
    returnType: int
    signature: int _ctypes_CFuncPtr_restype_set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:911,1
    - Dst: _ctypes_CFuncPtr_restype_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:912,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 916
    functionName: _ctypes_CFuncPtr_restype_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_CFuncPtr_restype_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CFuncPtr_restype_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:936,1
    - Dst: _ctypes_CFuncPtr_argtypes_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:937,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 941
    functionName: _ctypes_CFuncPtr_argtypes_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_CFuncPtr_argtypes_set_impl
    linkageType: ''
    returnType: int
    signature: int _ctypes_CFuncPtr_argtypes_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:968,1
    - Dst: _ctypes_CFuncPtr_argtypes_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:969,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 963
    functionDepth: 4
    functionLinenumber: 963
    functionLinenumberEnd: 973
    functionName: _ctypes_CFuncPtr_argtypes_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ctypes_CFuncPtr_argtypes_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CFuncPtr_argtypes_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:993,1
    - Dst: _ctypes_Simple_value_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:994,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 988
    functionDepth: 5
    functionLinenumber: 988
    functionLinenumberEnd: 998
    functionName: _ctypes_Simple_value_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_Simple_value_set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _ctypes_Simple_value_set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1018,1
    - Dst: _ctypes_Simple_value_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1019,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1013
    functionDepth: 4
    functionLinenumber: 1013
    functionLinenumberEnd: 1023
    functionName: _ctypes_Simple_value_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_Simple_value_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_Simple_value_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1040,1
    - Dst: Simple_from_outparm_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1036
    functionDepth: 3
    functionLinenumber: 1036
    functionLinenumberEnd: 1044
    functionName: Simple_from_outparm
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Simple_from_outparm_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Simple_from_outparm(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 2
    functionsReached:
    - ns
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(XmlGetUtf8InternalEncoding)(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:47,1
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:49,1
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:52,1
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 2
    functionsReached:
    - ns
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(XmlGetUtf16InternalEncoding)(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initScan
      Src: /src/cpython/Modules/expat/xmltok_ns.c:67,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 3
    functionsReached:
    - initScan
    - NS
    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/cpython/Modules/expat/xmltok_ns.c:74,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 4
    functionsReached:
    - initScan
    - NS
    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/cpython/Modules/expat/xmltok_ns.c:81,1
    - Dst: SET_INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok_ns.c:84,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:85,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - encPtr
    - name
    argTypes:
    - INIT_ENCODING*
    - ENCODING**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 5
    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/cpython/Modules/expat/xmltok_ns.c:99,1
    - Dst: streqci
      Src: /src/cpython/Modules/expat/xmltok_ns.c:103,1
    - Dst: getEncodingIndex
      Src: /src/cpython/Modules/expat/xmltok_ns.c:105,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - enc
    - ptr
    - end
    argTypes:
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 6
    functionsReached:
    - NS
    - streqci
    - getEncodingIndex
    - XmlUtf8Convert
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doParseXmlDecl
      Src: /src/cpython/Modules/expat/xmltok_ns.c:117,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:117,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: 120
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 7
    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: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: XmlTokenRole
    functionSourceFile: /src/cpython/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: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: UCS2_GET_NAMING
    functionSourceFile: /src/cpython/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: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: UTF8_GET_NAMING2
    functionSourceFile: /src/cpython/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: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: UTF8_GET_NAMING3
    functionSourceFile: /src/cpython/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: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: UTF8_INVALID2
    functionSourceFile: /src/cpython/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: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: UTF8_INVALID3
    functionSourceFile: /src/cpython/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: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: UTF8_INVALID4
    functionSourceFile: /src/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_INVALID4(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmltok.c:136,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmltok.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: PTRFASTCALL::isNever
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:143,1
    - Dst: UTF8_GET_NAMING2
      Src: /src/cpython/Modules/expat/xmltok.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: PTRFASTCALL::utf8_isName2
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:149,1
    - Dst: UTF8_GET_NAMING3
      Src: /src/cpython/Modules/expat/xmltok.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: PTRFASTCALL::utf8_isName3
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:157,1
    - Dst: UTF8_GET_NAMING2
      Src: /src/cpython/Modules/expat/xmltok.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: PTRFASTCALL::utf8_isNmstrt2
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:163,1
    - Dst: UTF8_GET_NAMING3
      Src: /src/cpython/Modules/expat/xmltok.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: PTRFASTCALL::utf8_isNmstrt3
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:171,1
    - Dst: UTF8_INVALID2
      Src: /src/cpython/Modules/expat/xmltok.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: PTRFASTCALL::utf8_isInvalid2
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:177,1
    - Dst: UTF8_INVALID3
      Src: /src/cpython/Modules/expat/xmltok.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: PTRFASTCALL::utf8_isInvalid3
    functionSourceFile: /src/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - UTF8_INVALID3
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isInvalid3(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmltok.c:183,1
    - Dst: UTF8_INVALID4
      Src: /src/cpython/Modules/expat/xmltok.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: PTRFASTCALL::utf8_isInvalid4
    functionSourceFile: /src/cpython/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: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: AS_NORMAL_ENCODING
    functionSourceFile: /src/cpython/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: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: STANDARD_VTABLE
    functionSourceFile: /src/cpython/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: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: NORMAL_VTABLE
    functionSourceFile: /src/cpython/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:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: MINBPC
    functionSourceFile: /src/cpython/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: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: MINBPC
    functionSourceFile: /src/cpython/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: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: SB_BYTE_TYPE
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: PTRFASTCALL::sb_byteType
    functionSourceFile: /src/cpython/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: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: BYTE_TYPE
    functionSourceFile: /src/cpython/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: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: BYTE_TYPE
    functionSourceFile: /src/cpython/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: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: BYTE_TO_ASCII
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: PTRFASTCALL::sb_byteToAscii
    functionSourceFile: /src/cpython/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: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: BYTE_TO_ASCII
    functionSourceFile: /src/cpython/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: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: IS_NAME_CHAR
    functionSourceFile: /src/cpython/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: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: IS_NMSTRT_CHAR
    functionSourceFile: /src/cpython/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: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: IS_INVALID_CHAR
    functionSourceFile: /src/cpython/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: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: IS_INVALID_CHAR
    functionSourceFile: /src/cpython/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: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/cpython/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: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/cpython/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: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/cpython/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: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/cpython/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: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: CHAR_MATCHES
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enc
    - p
    - c
    argTypes:
    - ENCODING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: sb_charMatches
    functionSourceFile: /src/cpython/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: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: CHAR_MATCHES
    functionSourceFile: /src/cpython/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: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok.c
    functionUses: 0
    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: 364
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 364
    functionName: _INTERNAL_trim_to_complete_utf8_characters
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:375,1
    - Dst: _INTERNAL_trim_to_complete_utf8_characters
      Src: /src/cpython/Modules/expat/xmltok.c:384,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmltok.c:392,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: 403
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 403
    functionName: utf8_toUtf8
    functionSourceFile: /src/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - memcpy
    - UNUSED_P
    - _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:
    - Dst: SB_BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok.c:412,1
    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: 459
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 459
    functionName: utf8_toUtf16
    functionSourceFile: /src/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - SB_BYTE_TYPE
    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/cpython/Modules/expat/xmltok.c:506,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: 524
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 524
    functionName: latin1_toUtf8
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:529,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: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: latin1_toUtf16
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:564,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: 572
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 572
    functionName: ascii_toUtf8
    functionSourceFile: /src/cpython/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: 620
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 620
    functionName: PTRFASTCALL::unicode_byte_type
    functionSourceFile: /src/cpython/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: 628
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: DEFINE_UTF16_TO_UTF8
    functionSourceFile: /src/cpython/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: 706
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 706
    functionName: DEFINE_UTF16_TO_UTF16
    functionSourceFile: /src/cpython/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: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 721
    functionName: GET_LO
    functionSourceFile: /src/cpython/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: 722
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 722
    functionName: GET_HI
    functionSourceFile: /src/cpython/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: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 730
    functionName: GET_LO
    functionSourceFile: /src/cpython/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: 731
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 731
    functionName: GET_HI
    functionSourceFile: /src/cpython/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: 740
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 740
    functionName: LITTLE2_BYTE_TYPE
    functionSourceFile: /src/cpython/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: 741
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: LITTLE2_BYTE_TO_ASCII
    functionSourceFile: /src/cpython/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: 742
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 742
    functionName: LITTLE2_CHAR_MATCHES
    functionSourceFile: /src/cpython/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: 744
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 744
    functionName: LITTLE2_IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/cpython/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: 746
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 746
    functionName: LITTLE2_IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: PTRFASTCALL::little2_byteType
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:756,1
    - Dst: LITTLE2_BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 758
    functionName: PTRFASTCALL::little2_byteToAscii
    functionSourceFile: /src/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - LITTLE2_BYTE_TO_ASCII
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      little2_byteToAscii(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmltok.c:762,1
    - Dst: LITTLE2_CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enc
    - p
    - c
    argTypes:
    - ENCODING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 764
    functionName: little2_charMatches
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:768,1
    - Dst: LITTLE2_IS_NAME_CHAR_MINBPC
      Src: /src/cpython/Modules/expat/xmltok.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 770
    functionName: PTRFASTCALL::little2_isNameMin
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok.c:774,1
    - Dst: LITTLE2_IS_NMSTRT_CHAR_MINBPC
      Src: /src/cpython/Modules/expat/xmltok.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 776
    functionName: PTRFASTCALL::little2_isNmstrtMin
    functionSourceFile: /src/cpython/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: 785
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 785
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok.c
    functionUses: 0
    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: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    functionName: MINBPC
    functionSourceFile: /src/cpython/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: 788
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 788
    functionName: BYTE_TYPE
    functionSourceFile: /src/cpython/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: 789
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 789
    functionName: BYTE_TO_ASCII
    functionSourceFile: /src/cpython/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: 790
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 790
    functionName: CHAR_MATCHES
    functionSourceFile: /src/cpython/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: 791
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 791
    functionName: IS_NAME_CHAR
    functionSourceFile: /src/cpython/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: 792
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 792
    functionName: IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/cpython/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: 793
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 793
    functionName: IS_NMSTRT_CHAR
    functionSourceFile: /src/cpython/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: 794
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 794
    functionName: IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/cpython/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: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 873
    functionName: BIG2_BYTE_TYPE
    functionSourceFile: /src/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c:889,1
    - Dst: BIG2_BYTE_TO_ASCII
      Src: /src/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c:895,1
    - Dst: BIG2_CHAR_MATCHES
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - BIG2_CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: int big2_charMatches(const ENCODING *enc, const char *p, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmltok.c:901,1
    - Dst: BIG2_IS_NAME_CHAR_MINBPC
      Src: /src/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c:907,1
    - Dst: BIG2_IS_NMSTRT_CHAR_MINBPC
      Src: /src/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    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/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 4
    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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c:1030,1
    - Dst: normal_updatePosition
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - normal_updatePosition
    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/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isSpace(int c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isSpace
      Src: /src/cpython/Modules/expat/xmltok.c:1070,1
    - Dst: toAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1070,1
    - Dst: isSpace
      Src: /src/cpython/Modules/expat/xmltok.c:1076,1
    - Dst: toAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1076,1
    - Dst: toAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1083,1
    - Dst: isSpace
      Src: /src/cpython/Modules/expat/xmltok.c:1092,1
    - Dst: isSpace
      Src: /src/cpython/Modules/expat/xmltok.c:1096,1
    - Dst: toAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1096,1
    - Dst: toAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1110,1
    - Dst: isSpace
      Src: /src/cpython/Modules/expat/xmltok.c:1111,1
    - Dst: toAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1113,1
    - Dst: toAscii
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - isSpace
    - toAscii
    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/cpython/Modules/expat/xmltok.c:1163,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1168,1
    - Dst: parsePseudoAttribute
      Src: /src/cpython/Modules/expat/xmltok.c:1178,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1191,1
    - Dst: toAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1192,1
    - Dst: encodingFinder
      Src: /src/cpython/Modules/expat/xmltok.c:1200,1
    - Dst: parsePseudoAttribute
      Src: /src/cpython/Modules/expat/xmltok.c:1201,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1208,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1213,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmltok.c:1216,1
    - Dst: isSpace
      Src: /src/cpython/Modules/expat/xmltok.c:1223,1
    - Dst: toAscii
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached:
    - isSpace
    - toAscii
    - parsePseudoAttribute
    - encodingFinder
    - XmlNameMatchesAscii
    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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XmlSizeOfUnknownEncoding(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/cpython/Modules/expat/xmltok.c:1326,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/cpython/Modules/expat/xmltok.c:1327,1
    - Dst: UCS2_GET_NAMING
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - struct unknown_encoding*::convert
    - UCS2_GET_NAMING
    - AS_UNKNOWN_ENCODING
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      unknown_isName(const ENCODING *enc, const char *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/cpython/Modules/expat/xmltok.c:1335,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/cpython/Modules/expat/xmltok.c:1336,1
    - Dst: UCS2_GET_NAMING
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - struct unknown_encoding*::convert
    - UCS2_GET_NAMING
    - AS_UNKNOWN_ENCODING
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      unknown_isNmstrt(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/cpython/Modules/expat/xmltok.c:1344,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/cpython/Modules/expat/xmltok.c:1345,1
    - Dst: checkCharRefNumber
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - struct unknown_encoding*::convert
    - checkCharRefNumber
    - AS_UNKNOWN_ENCODING
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      unknown_isInvalid(const ENCODING *enc, const char *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/cpython/Modules/expat/xmltok.c:1352,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/cpython/Modules/expat/xmltok.c:1362,1
    - Dst: XmlUtf8Encode
      Src: /src/cpython/Modules/expat/xmltok.c:1363,1
    - Dst: AS_NORMAL_ENCODING
      Src: /src/cpython/Modules/expat/xmltok.c:1367,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - AS_NORMAL_ENCODING
    - XmlUtf8Encode
    - AS_UNKNOWN_ENCODING
    - memcpy
    - struct unknown_encoding*::convert
    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/cpython/Modules/expat/xmltok.c:1382,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/cpython/Modules/expat/xmltok.c:1386,1
    - Dst: AS_NORMAL_ENCODING
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - struct unknown_encoding*::convert
    - AS_NORMAL_ENCODING
    - AS_UNKNOWN_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/cpython/Modules/expat/xmltok.c:1405,1
    - Dst: checkCharRefNumber
      Src: /src/cpython/Modules/expat/xmltok.c:1435,1
    - Dst: UCS2_GET_NAMING
      Src: /src/cpython/Modules/expat/xmltok.c:1444,1
    - Dst: UCS2_GET_NAMING
      Src: /src/cpython/Modules/expat/xmltok.c:1446,1
    - Dst: XmlUtf8Encode
      Src: /src/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - memcpy
    - UCS2_GET_NAMING
    - XmlUtf8Encode
    - checkCharRefNumber
    linkageType: ''
    returnType: ENCODING
    signature: "ENCODING *\nXmlInitUnknownEncoding(void *mem, int *table, CONVERTER
      convert,\n                       void *userData)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: streqci
      Src: /src/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c:1548,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1558,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1568,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1575,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1576,1
    - Dst: XmlTok
      Src: /src/cpython/Modules/expat/xmltok.c:1580,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1582,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1596,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1617,1
    - Dst: XmlTok
      Src: /src/cpython/Modules/expat/xmltok.c:1620,1
    - Dst: XmlTok
      Src: /src/cpython/Modules/expat/xmltok.c:1634,1
    - Dst: INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok.c:1639,1
    - Dst: XmlTok
      Src: /src/cpython/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/cpython/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/cpython/Modules/expat/xmltok.c
    functionUses: 7
    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/cpython/Modules/expat/xmltok.c
    functionUses: 55
    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/cpython/Modules/expat/xmltok.c
    functionUses: 7
    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/cpython/Modules/expat/xmltok.c
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ns(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XmlInitUnknownEncoding
      Src: /src/cpython/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/cpython/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:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: EXPAT_FMT_ULL
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_ULL(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: EXPAT_FMT_PTRDIFF_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_PTRDIFF_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: EXPAT_FMT_SIZE_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_SIZE_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: EXPAT_FMT_PTRDIFF_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_PTRDIFF_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: EXPAT_FMT_SIZE_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_SIZE_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: EXPAT_FMT_ULL
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_ULL(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: EXPAT_FMT_PTRDIFF_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_PTRDIFF_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: EXPAT_FMT_SIZE_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_SIZE_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: EXPAT_FMT_PTRDIFF_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_PTRDIFF_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: EXPAT_FMT_SIZE_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_SIZE_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: EXPAT_FMT_PTRDIFF_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_PTRDIFF_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: EXPAT_FMT_SIZE_T
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_SIZE_T(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: UNUSED_P
    functionSourceFile: /src/cpython/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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: IS_INVALID_CHAR
    functionSourceFile: /src/cpython/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: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: INVALID_LEAD_CASE
    functionSourceFile: /src/cpython/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: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: INVALID_CASES
    functionSourceFile: /src/cpython/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: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: CHECK_NAME_CASE
    functionSourceFile: /src/cpython/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: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: CHECK_NAME_CASES
    functionSourceFile: /src/cpython/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: 108
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: CHECK_NMSTRT_CASE
    functionSourceFile: /src/cpython/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: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: CHECK_NMSTRT_CASES
    functionSourceFile: /src/cpython/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: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 0
    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: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: HAS_CHARS
    functionSourceFile: /src/cpython/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: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: HAS_CHAR
    functionSourceFile: /src/cpython/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: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: REQUIRE_CHARS
    functionSourceFile: /src/cpython/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: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: REQUIRE_CHAR
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok_impl.c:147,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:148,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:152,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:153,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:154,1
    - Dst: INVALID_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:155,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:157,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:158,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:159,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:160,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:161,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:162,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:166,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 177
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    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/cpython/Modules/expat/xmltok_impl.c:184,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:185,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:187,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:187,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:189,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:193,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:199,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:200,1
    - Dst: REQUIRE_CHARS
      Src: /src/cpython/Modules/expat/xmltok_impl.c:202,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:204,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:204,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 228
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 1
    functionsReached:
    - BYTE_TYPE
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - REQUIRE_CHARS
    - PREFIX
    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/cpython/Modules/expat/xmltok_impl.c:234,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:236,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:238,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:247,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:248,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:257,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - tokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 271
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 1
    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/cpython/Modules/expat/xmltok_impl.c:280,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:281,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:282,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:287,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:288,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:289,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:293,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:297,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:298,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:299,1
    - Dst: INVALID_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:300,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:302,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:303,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:304,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:305,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:310,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:316,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:320,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:321,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:322,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:323,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 333
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 2
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - CHECK_NMSTRT_CASES
    - MINBPC
    - REQUIRE_CHAR
    - CHECK_NAME_CASES
    - HAS_CHAR
    - INVALID_CASES
    - PREFIX
    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/cpython/Modules/expat/xmltok_impl.c:341,1
    - Dst: REQUIRE_CHARS
      Src: /src/cpython/Modules/expat/xmltok_impl.c:343,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:344,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 2
    functionsReached:
    - UNUSED_P
    - CHAR_MATCHES
    - REQUIRE_CHARS
    - 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/cpython/Modules/expat/xmltok_impl.c:359,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:361,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:362,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:368,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:370,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:371,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:372,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:374,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:375,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:376,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:377,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:380,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:383,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:384,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:385,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:386,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:390,1
    - Dst: INVALID_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:392,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:394,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:397,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:398,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:407,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:408,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:409,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:420,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 426
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 2
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - LEAD_CASE
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    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: 407
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 407
    functionName: LEAD_CASE
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:433,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:434,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:435,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:440,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:441,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:442,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:446,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:446,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:446,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:447,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:453,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:465,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 477
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 2
    functionsReached:
    - BYTE_TYPE
    - CHECK_NMSTRT_CASES
    - MINBPC
    - REQUIRE_CHAR
    - CHECK_NAME_CASES
    - 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/cpython/Modules/expat/xmltok_impl.c:484,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:485,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:493,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:493,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:493,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:494,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 508
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 2
    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/cpython/Modules/expat/xmltok_impl.c:515,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:516,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:517,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:517,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:518,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:525,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:525,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:525,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:526,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 539
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 3
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - MINBPC
    - HAS_CHAR
    - PREFIX
    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/cpython/Modules/expat/xmltok_impl.c:546,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:547,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:548,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:550,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:550,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:555,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:556,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:557,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 567
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 4
    functionsReached:
    - BYTE_TYPE
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - PREFIX
    - CHECK_NAME_CASES
    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/cpython/Modules/expat/xmltok_impl.c:577,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:578,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:579,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:587,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:588,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:589,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:590,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:603,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:604,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:605,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:625,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:626,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:627,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:640,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:644,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:645,1
    - Dst: INVALID_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:649,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:651,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:651,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:663,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:667,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:668,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:669,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:684,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:685,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:686,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:687,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:694,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:698,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:699,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:700,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:704,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 136
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 720
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - PREFIX
    - CHECK_NAME_CASES
    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/cpython/Modules/expat/xmltok_impl.c:730,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:731,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:732,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:734,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:735,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:736,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:738,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:738,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:740,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:740,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:745,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:745,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:747,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:747,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:756,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:757,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:758,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:766,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:767,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:768,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:769,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:779,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:780,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:781,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:782,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:790,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:796,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:802,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:806,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:807,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:808,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:812,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 90
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 820
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 6
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - PREFIX
    - CHECK_NAME_CASES
    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/cpython/Modules/expat/xmltok_impl.c:827,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:829,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:830,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:836,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:838,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:838,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:840,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:840,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:842,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:843,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:845,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:846,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:850,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:853,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:854,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:856,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:858,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:859,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:861,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:862,1
    - Dst: INVALID_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:867,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:869,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:872,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:873,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:882,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:883,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:884,1
    - Dst: HAS_CHARS
      Src: /src/cpython/Modules/expat/xmltok_impl.c:887,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:888,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:888,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:889,1
    - Dst: HAS_CHARS
      Src: /src/cpython/Modules/expat/xmltok_impl.c:892,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:893,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:893,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:894,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:897,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:912,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 918
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 7
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - LEAD_CASE
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - HAS_CHARS
    - PREFIX
    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: 882
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 882
    functionName: LEAD_CASE
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:925,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:926,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:927,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:938,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:939,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:940,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 950
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 7
    functionsReached:
    - BYTE_TYPE
    - CHECK_NMSTRT_CASES
    - MINBPC
    - REQUIRE_CHAR
    - CHECK_NAME_CASES
    - 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/cpython/Modules/expat/xmltok_impl.c:955,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:956,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:957,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:962,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:963,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 980
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 7
    functionsReached:
    - BYTE_TYPE
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - CHECK_NAME_CASES
    - 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/cpython/Modules/expat/xmltok_impl.c:985,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:986,1
    - Dst: INVALID_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:988,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:991,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:994,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:997,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1009,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: 1014
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1014
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 7
    functionsReached:
    - HAS_CHAR
    - INVALID_CASES
    - BYTE_TYPE
    - 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/cpython/Modules/expat/xmltok_impl.c:1022,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1024,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1025,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1031,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1033,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1033,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1035,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1035,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1037,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1038,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1039,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1041,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1041,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1043,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1043,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1050,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1057,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1066,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1067,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1069,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1075,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1086,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1086,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1088,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1091,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1094,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1095,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1097,1
    - Dst: REQUIRE_CHARS
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1098,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1099,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1099,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1100,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1107,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1110,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1111,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1113,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1115,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1118,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1121,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1136,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1139,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1142,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1142,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1163,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1164,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1165,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1170,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1179,1
    - Dst: IS_NMSTRT_CHAR_MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1182,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1183,1
    - Dst: IS_NAME_CHAR_MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1187,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1188,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1197,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1198,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1199,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1213,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1216,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1218,1
    - Dst: CHECK_NAME_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1219,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1236,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1243,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1250,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 208
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1258
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 8
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - LEAD_CASE
    - IS_NMSTRT_CHAR_MINBPC
    - REQUIRE_CHAR
    - IS_NAME_CHAR_MINBPC
    - MINBPC
    - HAS_CHAR
    - REQUIRE_CHARS
    - PREFIX
    - CHECK_NAME_CASES
    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: 1163
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1163
    functionName: LEAD_CASE
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1266,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1275,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1276,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1281,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1282,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1283,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1287,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1287,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1296,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1303,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1304,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1306,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1307,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1315,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1321,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1327
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 9
    functionsReached:
    - BYTE_TYPE
    - LEAD_CASE
    - MINBPC
    - HAS_CHAR
    - PREFIX
    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: 1279
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1279
    functionName: LEAD_CASE
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1335,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1344,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1345,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1350,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1351,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1352,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1356,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1356,1
    - Dst: PREFIX
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1361,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1361,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1368,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1375,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1376,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1378,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1379,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1386,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1392
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - BYTE_TYPE
    - LEAD_CASE
    - MINBPC
    - HAS_CHAR
    - PREFIX
    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: 1348
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1348
    functionName: LEAD_CASE
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1400,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1402,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1403,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1407,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1408,1
    - Dst: INVALID_CASES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1409,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1411,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1412,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1413,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1414,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1415,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1416,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1418,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1423,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1424,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1425,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1426,1
    - Dst: REQUIRE_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1427,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1428,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1429,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1439,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1444
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    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/cpython/Modules/expat/xmltok_impl.c:1451,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1452,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1453,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1453,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1454,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1478,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1485,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1489,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - badPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1501
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - BYTE_TYPE
    - CHAR_MATCHES
    - BYTE_TO_ASCII
    - MINBPC
    - HAS_CHAR
    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/cpython/Modules/expat/xmltok_impl.c:1516,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1516,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1517,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1530,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1531,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1532,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1543,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1556,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1575,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1576,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1576,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1577,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1577,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 63
    argCount: 4
    argNames:
    - enc
    - ptr
    - attsMax
    - atts
    argTypes:
    - ENCODING*
    - char*
    - int
    - ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1599
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - BYTE_TO_ASCII
    - LEAD_CASE
    - BYTE_TYPE
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(getAtts)(const ENCODING *enc, const char *ptr, int attsMax,\n
      \               ATTRIBUTE *atts)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1605,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1606,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1607,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1608,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1608,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1609,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1610,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1648,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1648,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1649,1
    - Dst: checkCharRefNumber
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1656,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 2
    argNames:
    - enc
    - ptr
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1657
    functionName: PTRFASTCALL::PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - CHAR_MATCHES
    - BYTE_TO_ASCII
    - checkCharRefNumber
    - MINBPC
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      PREFIX(charRefNumber)(const ENCODING *enc, const char *ptr)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1662,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1663,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1665,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1665,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1666,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1675,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1676,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1677,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1678,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1679,1
    - Dst: BYTE_TO_ASCII
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1685,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1687,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1688,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1689,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1690,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1691,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1692,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1698,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1699,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1700,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1701,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1702,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1703,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - enc
    - ptr
    - end
    argTypes:
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1711
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 10
    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/cpython/Modules/expat/xmltok_impl.c:1716,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1717,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1718,1
    - Dst: CHAR_MATCHES
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - enc
    - ptr1
    - end1
    - ptr2
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1713
    functionDepth: 1
    functionLinenumber: 1713
    functionLinenumberEnd: 1730
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 10
    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/cpython/Modules/expat/xmltok_impl.c:1736,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1741,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1742,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1743,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - enc
    - ptr
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1732
    functionDepth: 1
    functionLinenumber: 1732
    functionLinenumberEnd: 1760
    functionName: PTRFASTCALL::PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached:
    - BYTE_TYPE
    - MINBPC
    - LEAD_CASE
    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: 1739
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1739
    functionName: LEAD_CASE
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1765,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - enc
    - ptr
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1775
    functionName: PTRFASTCALL::PREFIX
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmltok_impl.c:1780,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1781,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1787,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1788,1
    - Dst: LEAD_CASE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1789,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1794,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1798,1
    - Dst: HAS_CHAR
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1799,1
    - Dst: BYTE_TYPE
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1799,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1800,1
    - Dst: MINBPC
      Src: /src/cpython/Modules/expat/xmltok_impl.c:1804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - pos
    argTypes:
    - ENCODING*
    - char*
    - char*
    - POSITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1809
    functionName: PREFIX
    functionSourceFile: /src/cpython/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - HAS_CHAR
    - BYTE_TYPE
    - MINBPC
    - LEAD_CASE
    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: 1784
      start: 1782
    functionDepth: 0
    functionLinenumber: 1782
    functionLinenumberEnd: 1784
    functionName: LEAD_CASE
    functionSourceFile: /src/cpython/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: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: MIN_BYTES_PER_CHAR
    functionSourceFile: /src/cpython/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: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: setTopLevel
    functionSourceFile: /src/cpython/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: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: setTopLevel
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setTopLevel(state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:159,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:159,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:168,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: 169
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 169
    functionName: prolog0
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - MIN_BYTES_PER_CHAR
    - common
    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/cpython/Modules/expat/xmlrole.c:191,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:191,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:200,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: 201
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 201
    functionName: prolog1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - MIN_BYTES_PER_CHAR
    - common
    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/cpython/Modules/expat/xmlrole.c:206,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:207,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:208,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:220,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: 221
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: prolog2
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:226,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:227,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:228,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:237,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: 238
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 238
    functionName: doctype0
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:253,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:257,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:263,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: 264
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 264
    functionName: doctype1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:269,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:270,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:271,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:279,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: 280
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 280
    functionName: doctype2
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:285,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:286,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:287,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:295,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: 296
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: doctype3
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:301,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:302,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:303,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:314,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: 315
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 315
    functionName: doctype4
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:320,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:321,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:322,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:330,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: 331
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: doctype5
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:340,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:340,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:345,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:345,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:350,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:350,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:355,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:355,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:373,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: 374
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 374
    functionName: internalSubset
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - MIN_BYTES_PER_CHAR
    - common
    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/cpython/Modules/expat/xmlrole.c:384,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: 385
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: externalSubset0
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlrole.c:408,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:410,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: 411
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 411
    functionName: externalSubset1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 1
    functionsReached:
    - internalSubset
    - common
    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/cpython/Modules/expat/xmlrole.c:418,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:419,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:420,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:431,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: 432
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 432
    functionName: entity0
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:437,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:438,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:439,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:447,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: 448
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: entity1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:457,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:461,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:471,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: 472
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 472
    functionName: entity2
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:477,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:478,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:479,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:487,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: 488
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: entity3
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:493,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:494,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:495,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:503,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: 504
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 504
    functionName: entity4
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:513,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:516,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:522,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: 523
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 523
    functionName: entity5
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - setTopLevel
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:528,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:529,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:530,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:539,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: 540
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 540
    functionName: entity6
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:549,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:553,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:563,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: 564
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 564
    functionName: entity7
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:569,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:570,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:571,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:579,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: 580
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 580
    functionName: entity8
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:585,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:586,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:587,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:595,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: 596
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 596
    functionName: entity9
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:601,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:602,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:603,1
    - Dst: setTopLevel
      Src: /src/cpython/Modules/expat/xmlrole.c:608,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:611,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: 612
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 612
    functionName: entity10
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - setTopLevel
    - common
    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/cpython/Modules/expat/xmlrole.c:617,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:618,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:619,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:627,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: 628
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 628
    functionName: notation0
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:637,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:641,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:647,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: 648
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 648
    functionName: notation1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:653,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:654,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:655,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:663,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: 664
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 664
    functionName: notation2
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:669,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:670,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:671,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:680,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: 681
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 681
    functionName: notation3
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:686,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:687,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:688,1
    - Dst: setTopLevel
      Src: /src/cpython/Modules/expat/xmlrole.c:697,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:700,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: 701
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 701
    functionName: notation4
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - setTopLevel
    - common
    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/cpython/Modules/expat/xmlrole.c:706,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:707,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:708,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:717,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: 718
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 718
    functionName: attlist0
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:723,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:724,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:725,1
    - Dst: setTopLevel
      Src: /src/cpython/Modules/expat/xmlrole.c:730,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:737,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: 738
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 738
    functionName: attlist1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - setTopLevel
    - common
    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/cpython/Modules/expat/xmlrole.c:753,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:758,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:767,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: 768
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 768
    functionName: attlist2
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:773,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:774,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:775,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:785,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: 786
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 786
    functionName: attlist3
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:791,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:792,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:793,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:804,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: 805
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 805
    functionName: attlist4
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:810,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:811,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:812,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:820,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: 821
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: attlist5
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:826,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:827,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:828,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:836,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: 837
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 837
    functionName: attlist6
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:842,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:843,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:844,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:855,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: 856
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 856
    functionName: attlist7
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:866,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:866,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:871,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:871,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:876,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:876,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:886,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: 887
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 887
    functionName: attlist8
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - MIN_BYTES_PER_CHAR
    - common
    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/cpython/Modules/expat/xmlrole.c:892,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:893,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:894,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:902,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: 903
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 903
    functionName: attlist9
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:908,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:909,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:910,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:919,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: 920
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 920
    functionName: element0
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:929,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:934,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:945,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: 946
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 946
    functionName: element1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:955,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/cpython/Modules/expat/xmlrole.c:955,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:979,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: 980
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 980
    functionName: element2
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - MIN_BYTES_PER_CHAR
    - common
    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/cpython/Modules/expat/xmlrole.c:985,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:986,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:987,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1003,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: 1004
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1004
    functionName: element3
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:1009,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1010,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1011,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1020,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: 1021
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1021
    functionName: element4
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:1026,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1027,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1028,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1040,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: 1041
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1041
    functionName: element5
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:1046,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1047,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1048,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1069,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: 1070
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1070
    functionName: element6
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:1075,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1076,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1077,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1116,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: 1117
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1117
    functionName: element7
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:1128,1
    - Dst: XmlNameMatchesAscii
      Src: /src/cpython/Modules/expat/xmlrole.c:1132,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1138,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: 1139
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1139
    functionName: condSect0
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    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/cpython/Modules/expat/xmlrole.c:1144,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1145,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1146,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1155,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: 1156
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1156
    functionName: condSect1
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:1161,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1162,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1163,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1171,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: 1172
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1172
    functionName: condSect2
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - common
    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/cpython/Modules/expat/xmlrole.c:1179,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1180,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1181,1
    - Dst: setTopLevel
      Src: /src/cpython/Modules/expat/xmlrole.c:1186,1
    - Dst: common
      Src: /src/cpython/Modules/expat/xmlrole.c:1189,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: 1190
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1190
    functionName: declClose
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - setTopLevel
    - common
    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/cpython/Modules/expat/xmlrole.c:1215,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1216,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1217,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1218,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1219,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: 1221
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1221
    functionName: error
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 371
    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:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlrole.c:1230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - state
    - tok
    argTypes:
    - PROLOG_STATE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1234
    functionName: common
    functionSourceFile: /src/cpython/Modules/expat/xmlrole.c
    functionUses: 51
    functionsReached:
    - UNUSED_P
    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: 1244
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1244
    functionName: XmlPrologStateInit
    functionSourceFile: /src/cpython/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: 1253
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1253
    functionName: XmlPrologStateInitExternalEntity
    functionSourceFile: /src/cpython/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: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: SIP_ULL
    functionSourceFile: /src/cpython/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: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: SIP_ROTL
    functionSourceFile: /src/cpython/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: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: SIP_U32TO8_LE
    functionSourceFile: /src/cpython/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: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: SIP_U64TO8_LE
    functionSourceFile: /src/cpython/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: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: SIP_U8TO64_LE
    functionSourceFile: /src/cpython/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: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: sip_keyof
    functionSourceFile: /src/cpython/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sip_keyof(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIP_U8TO64_LE
      Src: /src/cpython/Modules/expat/siphash.h:148,1
    - Dst: SIP_U8TO64_LE
      Src: /src/cpython/Modules/expat/siphash.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - key
    - src
    argTypes:
    - struct sipkey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: sip_tokey
    functionSourceFile: /src/cpython/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: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: sip_binof
    functionSourceFile: /src/cpython/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sip_binof(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIP_U64TO8_LE
      Src: /src/cpython/Modules/expat/siphash.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - u64
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: sip_tobin
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/siphash.h:171,1
    - Dst: SIP_ROTL
      Src: /src/cpython/Modules/expat/siphash.h:173,1
    - Dst: SIP_ROTL
      Src: /src/cpython/Modules/expat/siphash.h:176,1
    - Dst: SIP_ROTL
      Src: /src/cpython/Modules/expat/siphash.h:180,1
    - Dst: SIP_ROTL
      Src: /src/cpython/Modules/expat/siphash.h:184,1
    - Dst: SIP_ROTL
      Src: /src/cpython/Modules/expat/siphash.h:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - H
    - rounds
    argTypes:
    - struct siphash*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: sip_round
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/siphash.h:192,1
    - Dst: SIP_ULL
      Src: /src/cpython/Modules/expat/siphash.h:193,1
    - Dst: SIP_ULL
      Src: /src/cpython/Modules/expat/siphash.h:194,1
    - Dst: SIP_ULL
      Src: /src/cpython/Modules/expat/siphash.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - H
    - key
    argTypes:
    - struct siphash*
    - struct sipkey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 201
    functionName: sip24_init
    functionSourceFile: /src/cpython/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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: sip_endof
    functionSourceFile: /src/cpython/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sip_endof(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sip_endof
      Src: /src/cpython/Modules/expat/siphash.h:211,1
    - Dst: sip_endof
      Src: /src/cpython/Modules/expat/siphash.h:214,1
    - Dst: SIP_U8TO64_LE
      Src: /src/cpython/Modules/expat/siphash.h:217,1
    - Dst: sip_round
      Src: /src/cpython/Modules/expat/siphash.h:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - H
    - src
    - len
    argTypes:
    - struct siphash*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: sip24_update
    functionSourceFile: /src/cpython/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - sip_endof
    - SIP_U8TO64_LE
    - sip_round
    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/cpython/Modules/expat/siphash.h:261,1
    - Dst: sip_round
      Src: /src/cpython/Modules/expat/siphash.h:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - H
    argTypes:
    - struct siphash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 267
    functionName: sip24_final
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/siphash.h:272,1
    - Dst: sip24_update
      Src: /src/cpython/Modules/expat/siphash.h:272,1
    - Dst: sip24_init
      Src: /src/cpython/Modules/expat/siphash.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - len
    - key
    argTypes:
    - void*
    - size_t
    - struct sipkey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: siphash24
    functionSourceFile: /src/cpython/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - sip24_final
    - sip24_update
    - sip24_init
    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/cpython/Modules/expat/siphash.h:361,1
    - Dst: siphash24
      Src: /src/cpython/Modules/expat/siphash.h:367,1
    - Dst: SIP_U8TO64_LE
      Src: /src/cpython/Modules/expat/siphash.h:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 372
    functionName: sip24_valid
    functionSourceFile: /src/cpython/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - sip_tokey
    - SIP_U8TO64_LE
    - siphash24
    linkageType: ''
    returnType: int
    signature: int sip24_valid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sip24_valid
      Src: /src/cpython/Modules/expat/siphash.h:380,1
    - Dst: puts
      Src: /src/cpython/Modules/expat/siphash.h:383,1
    - Dst: puts
      Src: /src/cpython/Modules/expat/siphash.h:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: main
    functionSourceFile: /src/cpython/Modules/expat/siphash.h
    functionUses: 6
    functionsReached:
    - sip24_valid
    - puts
    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: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: XmlTok
    functionSourceFile: /src/cpython/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: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: XmlPrologTok
    functionSourceFile: /src/cpython/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: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: XmlContentTok
    functionSourceFile: /src/cpython/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: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: XmlCdataSectionTok
    functionSourceFile: /src/cpython/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: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: XmlIgnoreSectionTok
    functionSourceFile: /src/cpython/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: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: XmlLiteralTok
    functionSourceFile: /src/cpython/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: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: XmlAttributeValueTok
    functionSourceFile: /src/cpython/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: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: XmlEntityValueTok
    functionSourceFile: /src/cpython/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: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: XmlNameMatchesAscii
    functionSourceFile: /src/cpython/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: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: XmlNameLength
    functionSourceFile: /src/cpython/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: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: XmlSkipS
    functionSourceFile: /src/cpython/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: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: XmlGetAttributes
    functionSourceFile: /src/cpython/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: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: XmlCharRefNumber
    functionSourceFile: /src/cpython/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: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: XmlPredefinedEntityName
    functionSourceFile: /src/cpython/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: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: XmlUpdatePosition
    functionSourceFile: /src/cpython/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: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: XmlIsPublicId
    functionSourceFile: /src/cpython/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: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: XmlUtf8Convert
    functionSourceFile: /src/cpython/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: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: XmlUtf16Convert
    functionSourceFile: /src/cpython/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: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: MUST_CONVERT
    functionSourceFile: /src/cpython/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: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: MUST_CONVERT
    functionSourceFile: /src/cpython/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: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: XML_T
    functionSourceFile: /src/cpython/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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: XML_L
    functionSourceFile: /src/cpython/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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: XML_T
    functionSourceFile: /src/cpython/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: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: XML_L
    functionSourceFile: /src/cpython/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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: XML_T
    functionSourceFile: /src/cpython/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: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: XML_L
    functionSourceFile: /src/cpython/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: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: ROUND_UP
    functionSourceFile: /src/cpython/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: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: EXPAT_SAFE_PTR_DIFF
    functionSourceFile: /src/cpython/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: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: EXPAT_MIN
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_MIN(a, b)
  - 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: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: SECOND_HASH
    functionSourceFile: /src/cpython/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: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: PROBE_STEP
    functionSourceFile: /src/cpython/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: 639
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 639
    functionName: poolStart
    functionSourceFile: /src/cpython/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: 640
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 640
    functionName: poolLength
    functionSourceFile: /src/cpython/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: 641
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 641
    functionName: poolChop
    functionSourceFile: /src/cpython/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: 642
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 642
    functionName: poolLastChar
    functionSourceFile: /src/cpython/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: 643
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 643
    functionName: poolDiscard
    functionSourceFile: /src/cpython/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: 644
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 644
    functionName: poolFinish
    functionSourceFile: /src/cpython/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: 648
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: poolAppendChar
    functionSourceFile: /src/cpython/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: 782
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 782
    functionName: MALLOC
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 11
    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: 783
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 783
    functionName: REALLOC
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    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: 784
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 784
    functionName: FREE
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE(parser, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserCreate_MM
      Src: /src/cpython/Modules/expat/xmlparse.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encodingName
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 788
    functionName: XML_ParserCreate
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encodingName
    - nsSep
    argTypes:
    - XML_Char*
    - XML_Char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: XML_ParserCreateNS
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:826,1
    - Dst: syscall
      Src: /src/cpython/Modules/expat/xmlparse.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 839
    functionName: writeRandomBytes_getrandom_nonblock
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:851,1
    - Dst: read
      Src: /src/cpython/Modules/expat/xmlparse.c:860,1
    - Dst: close
      Src: /src/cpython/Modules/expat/xmlparse.c:869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 871
    functionName: writeRandomBytes_dev_urandom
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - open
    - close
    - read
    linkageType: ''
    returnType: int
    signature: int writeRandomBytes_dev_urandom(void *target, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random
      Src: /src/cpython/Modules/expat/xmlparse.c:884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 893
    functionName: writeRandomBytes_arc4random
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 930
    functionName: writeRandomBytes_rand_s
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:940,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/expat/xmlparse.c:946,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gettimeofday_res == 0)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 957
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 957
    functionName: gather_time_entropy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - assert
    - GetSystemTimeAsFileTime
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gather_time_entropy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDebugLevel
      Src: /src/cpython/Modules/expat/xmlparse.c:963,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - label
    - entropy
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 968
    functionName: ENTROPY_DEBUG
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - getDebugLevel
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ENTROPY_DEBUG(const char *label, unsigned long entropy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/cpython/Modules/expat/xmlparse.c:977,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:978,1
    - Dst: writeRandomBytes_arc4random
      Src: /src/cpython/Modules/expat/xmlparse.c:980,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:981,1
    - Dst: writeRandomBytes_rand_s
      Src: /src/cpython/Modules/expat/xmlparse.c:985,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:986,1
    - Dst: writeRandomBytes_getrandom_nonblock
      Src: /src/cpython/Modules/expat/xmlparse.c:989,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:990,1
    - Dst: writeRandomBytes_dev_urandom
      Src: /src/cpython/Modules/expat/xmlparse.c:994,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:995,1
    - Dst: gather_time_entropy
      Src: /src/cpython/Modules/expat/xmlparse.c:1001,1
    - Dst: getpid
      Src: /src/cpython/Modules/expat/xmlparse.c:1001,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1005,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1007,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 1011
    functionName: generate_hash_secret_salt
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - writeRandomBytes_dev_urandom
    - ENTROPY_DEBUG
    - arc4random_buf
    - writeRandomBytes_rand_s
    - gather_time_entropy
    - writeRandomBytes_arc4random
    - writeRandomBytes_getrandom_nonblock
    - getpid
    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/cpython/Modules/expat/xmlparse.c:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1018
    functionName: get_hash_secret_salt
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites:
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:1023,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:1032,1
    - Dst: EXPAT_MIN
      Src: /src/cpython/Modules/expat/xmlparse.c:1034,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:1037,1
    - Dst: XML_Parser::m_processor
      Src: /src/cpython/Modules/expat/xmlparse.c:1057,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1083
    functionName: callProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - EXPAT_MIN
    - XML_Parser::m_processor
    - EXPAT_SAFE_PTR_DIFF
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error callProcessor(XML_Parser parser, const char *start,
      const char *end,\n              const char **endPtr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_hash_secret_salt
      Src: /src/cpython/Modules/expat/xmlparse.c:1089,1
    - Dst: setContext
      Src: /src/cpython/Modules/expat/xmlparse.c:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1085
    functionDepth: 3
    functionLinenumber: 1085
    functionLinenumberEnd: 1097
    functionName: startParsing
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - generate_hash_secret_salt
    - setContext
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool startParsing(XML_Parser parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parserCreate
      Src: /src/cpython/Modules/expat/xmlparse.c:1103,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: 1104
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1104
    functionName: XML_ParserCreate_MM
    functionSourceFile: /src/cpython/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: 13
    BranchProfiles: []
    Callsites:
    - Dst: XML_Memory_Handling_Suite*::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:1114,1
    - Dst: malloc
      Src: /src/cpython/Modules/expat/xmlparse.c:1123,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:1140,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1142,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:1146,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1149,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1150,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:1155,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1157,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1159,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1161,1
    - Dst: dtdCreate
      Src: /src/cpython/Modules/expat/xmlparse.c:1169,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1171,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1172,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1174,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1176,1
    - Dst: poolInit
      Src: /src/cpython/Modules/expat/xmlparse.c:1203,1
    - Dst: poolInit
      Src: /src/cpython/Modules/expat/xmlparse.c:1204,1
    - Dst: parserInit
      Src: /src/cpython/Modules/expat/xmlparse.c:1205,1
    - Dst: XML_ParserFree
      Src: /src/cpython/Modules/expat/xmlparse.c:1216,1
    - Dst: XmlGetInternalEncodingNS
      Src: /src/cpython/Modules/expat/xmlparse.c:1222,1
    - Dst: XmlGetInternalEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:1225,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 87
    argCount: 4
    argNames:
    - encodingName
    - memsuite
    - nameSep
    - dtd
    argTypes:
    - XML_Char*
    - XML_Memory_Handling_Suite*
    - XML_Char*
    - DTD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1229
    functionName: parserCreate
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - dtdCreate
    - parserInit
    - XmlGetInternalEncodingNS
    - poolInit
    - XML_Memory_Handling_Suite*::malloc_fcn
    - FREE
    - malloc
    - XmlGetInternalEncoding
    - MALLOC
    - XML_ParserFree
    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/cpython/Modules/expat/xmlparse.c:1234,1
    - Dst: copyString
      Src: /src/cpython/Modules/expat/xmlparse.c:1236,1
    - Dst: XmlInitEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:1239,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:1282,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:1310,1
    - Dst: getDebugLevel
      Src: /src/cpython/Modules/expat/xmlparse.c:1311,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:1317,1
    - Dst: getDebugLevel
      Src: /src/cpython/Modules/expat/xmlparse.c:1318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 79
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1320
    functionName: parserInit
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlPrologStateInit
    - XmlInitEncoding
    - copyString
    - memset
    - getDebugLevel
    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: 1331
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1331
    functionName: moveToFreeBindingList
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:1349,1
    - Dst: moveToFreeBindingList
      Src: /src/cpython/Modules/expat/xmlparse.c:1379,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1380,1
    - Dst: XML_Parser::m_unknownEncodingRelease
      Src: /src/cpython/Modules/expat/xmlparse.c:1382,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:1383,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:1384,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1385,1
    - Dst: parserInit
      Src: /src/cpython/Modules/expat/xmlparse.c:1387,1
    - Dst: dtdReset
      Src: /src/cpython/Modules/expat/xmlparse.c:1388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1390
    functionName: XML_ParserReset
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - parserInit
    - FREE
    - moveToFreeBindingList
    - XML_Parser::m_unknownEncodingRelease
    - dtdReset
    - poolClear
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool XML_ParserReset(XML_Parser parser, const XML_Char *encodingName)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1403
    functionName: parserBusy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool parserBusy(XML_Parser parser)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parserBusy
      Src: /src/cpython/Modules/expat/xmlparse.c:1413,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1417,1
    - Dst: copyString
      Src: /src/cpython/Modules/expat/xmlparse.c:1424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1429
    functionName: XML_SetEncoding
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - copyString
    - FREE
    - parserBusy
    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/cpython/Modules/expat/xmlparse.c:1533,1
    - Dst: parserCreate
      Src: /src/cpython/Modules/expat/xmlparse.c:1535,1
    - Dst: dtdCopy
      Src: /src/cpython/Modules/expat/xmlparse.c:1579,1
    - Dst: setContext
      Src: /src/cpython/Modules/expat/xmlparse.c:1580,1
    - Dst: XML_ParserFree
      Src: /src/cpython/Modules/expat/xmlparse.c:1581,1
    - Dst: XmlPrologStateInitExternalEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:1595,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 89
    argCount: 3
    argNames:
    - oldParser
    - context
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1431
    functionDepth: 2
    functionLinenumber: 1431
    functionLinenumberEnd: 1600
    functionName: XML_ExternalEntityParserCreate
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - dtdCopy
    - XML_ParserFree
    - XmlPrologStateInitExternalEntity
    - parserCreate
    - setContext
    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/cpython/Modules/expat/xmlparse.c:1609,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - bindings
    - parser
    argTypes:
    - BINDING*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1612
    functionName: destroyBindings
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void destroyBindings(BINDING *bindings, XML_Parser parser)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1632,1
    - Dst: destroyBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:1633,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1634,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1648,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1662,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1676,1
    - Dst: destroyBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:1678,1
    - Dst: destroyBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:1679,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:1680,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:1681,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1682,1
    - Dst: dtdDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:1691,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1693,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1695,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1697,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1698,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1699,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1700,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1701,1
    - Dst: XML_Parser::m_unknownEncodingRelease
      Src: /src/cpython/Modules/expat/xmlparse.c:1703,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1704,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1614
    functionDepth: 2
    functionLinenumber: 1614
    functionLinenumberEnd: 1705
    functionName: XML_ParserFree
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - FREE
    - XML_Parser::m_unknownEncodingRelease
    - dtdDestroy
    - poolDestroy
    - 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: 1711
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1711
    functionName: XML_UseParserAsHandlerArg
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_UseParserAsHandlerArg(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parserBusy
      Src: /src/cpython/Modules/expat/xmlparse.c:1719,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - useDTD
    argTypes:
    - XML_Parser
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1713
    functionDepth: 1
    functionLinenumber: 1713
    functionLinenumberEnd: 1727
    functionName: XML_UseForeignDTD
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - UNUSED_P
    - parserBusy
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parserBusy
      Src: /src/cpython/Modules/expat/xmlparse.c:1734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - do_nst
    argTypes:
    - XML_Parser
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1729
    functionDepth: 1
    functionLinenumber: 1729
    functionLinenumberEnd: 1737
    functionName: XML_SetReturnNSTriplet
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - parserBusy
    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: 1747
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1747
    functionName: XML_SetUserData
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:1754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - p
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1749
    functionDepth: 1
    functionLinenumber: 1749
    functionLinenumberEnd: 1761
    functionName: XML_SetBase
    functionSourceFile: /src/cpython/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: 1768
      start: 1763
    functionDepth: 0
    functionLinenumber: 1763
    functionLinenumberEnd: 1768
    functionName: XML_GetBase
    functionSourceFile: /src/cpython/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: 1775
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1775
    functionName: XML_GetSpecifiedAttributeCount
    functionSourceFile: /src/cpython/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: 1782
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1782
    functionName: XML_GetIdAttributeIndex
    functionSourceFile: /src/cpython/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: 1790
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1790
    functionName: XML_GetAttributeInfo
    functionSourceFile: /src/cpython/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: 1800
      start: 1793
    functionDepth: 0
    functionLinenumber: 1793
    functionLinenumberEnd: 1800
    functionName: XML_SetElementHandler
    functionSourceFile: /src/cpython/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: 1806
      start: 1802
    functionDepth: 0
    functionLinenumber: 1802
    functionLinenumberEnd: 1806
    functionName: XML_SetStartElementHandler
    functionSourceFile: /src/cpython/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: 1812
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1812
    functionName: XML_SetEndElementHandler
    functionSourceFile: /src/cpython/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: 1819
      start: 1814
    functionDepth: 0
    functionLinenumber: 1814
    functionLinenumberEnd: 1819
    functionName: XML_SetCharacterDataHandler
    functionSourceFile: /src/cpython/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: 1826
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1826
    functionName: XML_SetProcessingInstructionHandler
    functionSourceFile: /src/cpython/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: 1832
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1832
    functionName: XML_SetCommentHandler
    functionSourceFile: /src/cpython/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: 1842
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1842
    functionName: XML_SetCdataSectionHandler
    functionSourceFile: /src/cpython/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: 1849
      start: 1844
    functionDepth: 0
    functionLinenumber: 1844
    functionLinenumberEnd: 1849
    functionName: XML_SetStartCdataSectionHandler
    functionSourceFile: /src/cpython/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: 1856
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1856
    functionName: XML_SetEndCdataSectionHandler
    functionSourceFile: /src/cpython/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: 1864
      start: 1858
    functionDepth: 0
    functionLinenumber: 1858
    functionLinenumberEnd: 1864
    functionName: XML_SetDefaultHandler
    functionSourceFile: /src/cpython/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: 1872
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1872
    functionName: XML_SetDefaultHandlerExpand
    functionSourceFile: /src/cpython/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: 1881
      start: 1874
    functionDepth: 0
    functionLinenumber: 1874
    functionLinenumberEnd: 1881
    functionName: XML_SetDoctypeDeclHandler
    functionSourceFile: /src/cpython/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: 1888
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1888
    functionName: XML_SetStartDoctypeDeclHandler
    functionSourceFile: /src/cpython/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: 1894
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1894
    functionName: XML_SetEndDoctypeDeclHandler
    functionSourceFile: /src/cpython/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: 1901
      start: 1896
    functionDepth: 0
    functionLinenumber: 1896
    functionLinenumberEnd: 1901
    functionName: XML_SetUnparsedEntityDeclHandler
    functionSourceFile: /src/cpython/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: 1907
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1907
    functionName: XML_SetNotationDeclHandler
    functionSourceFile: /src/cpython/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: 1917
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1917
    functionName: XML_SetNamespaceDeclHandler
    functionSourceFile: /src/cpython/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: 1924
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1924
    functionName: XML_SetStartNamespaceDeclHandler
    functionSourceFile: /src/cpython/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: 1931
      start: 1926
    functionDepth: 0
    functionLinenumber: 1926
    functionLinenumberEnd: 1931
    functionName: XML_SetEndNamespaceDeclHandler
    functionSourceFile: /src/cpython/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: 1938
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1938
    functionName: XML_SetNotStandaloneHandler
    functionSourceFile: /src/cpython/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: 1945
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1945
    functionName: XML_SetExternalEntityRefHandler
    functionSourceFile: /src/cpython/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: 1955
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1955
    functionName: XML_SetExternalEntityRefHandlerArg
    functionSourceFile: /src/cpython/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: 1962
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1962
    functionName: XML_SetSkippedEntityHandler
    functionSourceFile: /src/cpython/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: 1971
      start: 1964
    functionDepth: 0
    functionLinenumber: 1964
    functionLinenumberEnd: 1971
    functionName: XML_SetUnknownEncodingHandler
    functionSourceFile: /src/cpython/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: 1977
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1977
    functionName: XML_SetElementDeclHandler
    functionSourceFile: /src/cpython/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: 1983
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 1983
    functionName: XML_SetAttlistDeclHandler
    functionSourceFile: /src/cpython/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: 1989
      start: 1985
    functionDepth: 0
    functionLinenumber: 1985
    functionLinenumberEnd: 1989
    functionName: XML_SetEntityDeclHandler
    functionSourceFile: /src/cpython/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: 1995
      start: 1991
    functionDepth: 0
    functionLinenumber: 1991
    functionLinenumberEnd: 1995
    functionName: XML_SetXmlDeclHandler
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetXmlDeclHandler(XML_Parser parser, XML_XmlDeclHandler handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parserBusy
      Src: /src/cpython/Modules/expat/xmlparse.c:2003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - parser
    - peParsing
    argTypes:
    - XML_Parser
    - enum XML_ParamEntityParsing
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1997
    functionDepth: 1
    functionLinenumber: 1997
    functionLinenumberEnd: 2011
    functionName: XML_SetParamEntityParsing
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - parserBusy
    linkageType: ''
    returnType: int
    signature: "int XML_SetParamEntityParsing(XML_Parser parser,\n                          enum
      XML_ParamEntityParsing peParsing)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XML_SetHashSalt
      Src: /src/cpython/Modules/expat/xmlparse.c:2018,1
    - Dst: parserBusy
      Src: /src/cpython/Modules/expat/xmlparse.c:2020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - hash_salt
    argTypes:
    - XML_Parser
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2024
    functionName: XML_SetHashSalt
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_SetHashSalt
    - parserBusy
    linkageType: ''
    returnType: int
    signature: int XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: startParsing
      Src: /src/cpython/Modules/expat/xmlparse.c:2041,1
    - Dst: callProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:2070,1
    - Dst: XmlUpdatePosition
      Src: /src/cpython/Modules/expat/xmlparse.c:2093,1
    - Dst: XML_GetBuffer
      Src: /src/cpython/Modules/expat/xmlparse.c:2101,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2116,1
    - Dst: XML_GetBuffer
      Src: /src/cpython/Modules/expat/xmlparse.c:2127,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:2131,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2132,1
    - Dst: XML_ParseBuffer
      Src: /src/cpython/Modules/expat/xmlparse.c:2134,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 80
    argCount: 4
    argNames:
    - parser
    - s
    - len
    - isFinal
    argTypes:
    - XML_Parser
    - char*
    - int
    - int
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 2130
        line_start: 2130
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2135
      start: 2026
    functionDepth: 4
    functionLinenumber: 2026
    functionLinenumberEnd: 2135
    functionName: XML_Parse
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - callProcessor
    - XmlUpdatePosition
    - XML_GetBuffer
    - startParsing
    - XML_ParseBuffer
    - memcpy
    - assert
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_Parse(XML_Parser parser, const char *s, int len,
      int isFinal)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: startParsing
      Src: /src/cpython/Modules/expat/xmlparse.c:2164,1
    - Dst: callProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:2180,1
    - Dst: XmlUpdatePosition
      Src: /src/cpython/Modules/expat/xmlparse.c:2202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 3
    argNames:
    - parser
    - len
    - isFinal
    argTypes:
    - XML_Parser
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2137
    functionDepth: 4
    functionLinenumber: 2137
    functionLinenumberEnd: 2206
    functionName: XML_ParseBuffer
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - callProcessor
    - startParsing
    - XmlUpdatePosition
    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/cpython/Modules/expat/xmlparse.c:2229,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2236,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2243,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2255,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2257,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2259,1
    - Dst: memmove
      Src: /src/cpython/Modules/expat/xmlparse.c:2263,1
    - Dst: memmove
      Src: /src/cpython/Modules/expat/xmlparse.c:2269,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2270,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2273,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2279,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:2290,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2298,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2299,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:2301,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2305,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2315,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2316,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:2317,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2320,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 2
    argNames:
    - parser
    - len
    argTypes:
    - XML_Parser
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2332
    functionName: XML_GetBuffer
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - EXPAT_SAFE_PTR_DIFF
    - memmove
    - FREE
    - MALLOC
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'void *XMLCALL

      XML_GetBuffer(XML_Parser parser, int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2337
    functionName: triggerReenter
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void triggerReenter(XML_Parser parser)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:2370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - parser
    - resumable
    argTypes:
    - XML_Parser
    - XML_Bool
    assertStmts:
    - condition: (0)
      pos:
        line_end: 2369
        line_start: 2369
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2373
      start: 2339
    functionDepth: 0
    functionLinenumber: 2339
    functionLinenumberEnd: 2373
    functionName: XML_StopParser
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_StopParser(XML_Parser parser, XML_Bool resumable)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: callProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:2387,1
    - Dst: XmlUpdatePosition
      Src: /src/cpython/Modules/expat/xmlparse.c:2409,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2375
    functionDepth: 2
    functionLinenumber: 2375
    functionLinenumberEnd: 2413
    functionName: XML_ResumeParser
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - callProcessor
    - XmlUpdatePosition
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_ResumeParser(XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:2419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - parser
    - status
    argTypes:
    - XML_Parser
    - XML_ParsingStatus*
    assertStmts:
    - condition: (status != NULL)
      pos:
        line_end: 2418
        line_start: 2418
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2421
      start: 2415
    functionDepth: 0
    functionLinenumber: 2415
    functionLinenumberEnd: 2421
    functionName: XML_GetParsingStatus
    functionSourceFile: /src/cpython/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: 2428
      start: 2423
    functionDepth: 0
    functionLinenumber: 2423
    functionLinenumberEnd: 2428
    functionName: XML_GetErrorCode
    functionSourceFile: /src/cpython/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: 2438
      start: 2430
    functionDepth: 0
    functionLinenumber: 2430
    functionLinenumberEnd: 2438
    functionName: XML_GetCurrentByteIndex
    functionSourceFile: /src/cpython/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: 2447
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2447
    functionName: XML_GetCurrentByteCount
    functionSourceFile: /src/cpython/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: 2467
      start: 2449
    functionDepth: 0
    functionLinenumber: 2449
    functionLinenumberEnd: 2467
    functionName: XML_GetInputContext
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2479
    functionName: XML_GetCurrentLineNumber
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2491
    functionName: XML_GetCurrentColumnNumber
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - model
    argTypes:
    - XML_Parser
    - XML_Content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2493
    functionDepth: 1
    functionLinenumber: 2493
    functionLinenumberEnd: 2497
    functionName: XML_FreeContentModel
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parser
    - size
    argTypes:
    - XML_Parser
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2504
    functionName: XML_MemMalloc
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parser
    - ptr
    - size
    argTypes:
    - XML_Parser
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2506
    functionDepth: 1
    functionLinenumber: 2506
    functionLinenumberEnd: 2511
    functionName: XML_MemRealloc
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - ptr
    argTypes:
    - XML_Parser
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2517
    functionName: XML_MemFree
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2525,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:2529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2532
    functionName: XML_DefaultCurrent
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - reportDefault
    linkageType: ''
    returnType: void
    signature: void XML_DefaultCurrent(XML_Parser parser)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2540,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2542,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2544,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2546,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2548,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2550,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2552,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2554,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2556,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2558,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2560,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2562,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2564,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2566,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2568,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2570,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2572,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2574,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2576,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2578,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2580,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2582,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2584,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2586,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2588,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2590,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2593,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2596,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2598,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2600,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2602,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2604,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2606,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2608,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2610,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2612,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2614,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2617,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2620,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2622,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2626,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2629,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2633,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 94
    argCount: 1
    argNames:
    - code
    argTypes:
    - enum XML_Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2640
    functionName: XML_ErrorString
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    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/cpython/Modules/expat/xmlparse.c:2655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2642
    functionDepth: 1
    functionLinenumber: 2642
    functionLinenumberEnd: 2659
    functionName: XML_ExpatVersion
    functionSourceFile: /src/cpython/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: 2653
      start: 2652
    functionDepth: 0
    functionLinenumber: 2652
    functionLinenumberEnd: 2653
    functionName: V1
    functionSourceFile: /src/cpython/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: 2654
      start: 2653
    functionDepth: 0
    functionLinenumber: 2653
    functionLinenumberEnd: 2654
    functionName: V2
    functionSourceFile: /src/cpython/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: 2670
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2670
    functionName: XML_ExpatVersionInfo
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:2675,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2677,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2680,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2683,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2686,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2689,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2693,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2696,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2699,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2702,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2708,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2712,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2672
    functionDepth: 1
    functionLinenumber: 2672
    functionLinenumberEnd: 2720
    functionName: XML_GetFeatureList
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_L
    linkageType: ''
    returnType: XML_Feature
    signature: 'XML_Feature *XMLCALL

      XML_GetFeatureList(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/cpython/Modules/expat/xmlparse.c:2727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - maximumAmplificationFactor
    argTypes:
    - XML_Parser
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2723
    functionDepth: 0
    functionLinenumber: 2723
    functionLinenumberEnd: 2733
    functionName: XML_SetBillionLaughsAttackProtectionMaximumAmplification
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - isnan
    linkageType: ''
    returnType: XML_Bool
    signature: "XML_Bool XML_SetBillionLaughsAttackProtectionMaximumAmplification(\n
      \   XML_Parser parser, float maximumAmplificationFactor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - activationThresholdBytes
    argTypes:
    - XML_Parser
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2735
    functionDepth: 0
    functionLinenumber: 2735
    functionLinenumberEnd: 2743
    functionName: XML_SetBillionLaughsAttackProtectionActivationThreshold
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XML_Bool
    signature: "XML_Bool XML_SetBillionLaughsAttackProtectionActivationThreshold(\n
      \   XML_Parser parser, unsigned long long activationThresholdBytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - enabled
    argTypes:
    - XML_Parser
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2746
    functionDepth: 0
    functionLinenumber: 2746
    functionLinenumberEnd: 2753
    functionName: XML_SetReparseDeferralEnabled
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool
      enabled)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_UP
      Src: /src/cpython/Modules/expat/xmlparse.c:2778,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:2784,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2802,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2760
    functionDepth: 1
    functionLinenumber: 2760
    functionLinenumberEnd: 2807
    functionName: storeRawNames
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ROUND_UP
    - REALLOC
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool storeRawNames(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doContent
      Src: /src/cpython/Modules/expat/xmlparse.c:2812,1
    - Dst: storeRawNames
      Src: /src/cpython/Modules/expat/xmlparse.c:2817,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: 2821
      start: 2809
    functionDepth: 2
    functionLinenumber: 2809
    functionLinenumberEnd: 2821
    functionName: contentProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - storeRawNames
    - doContent
    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/cpython/Modules/expat/xmlparse.c:2826,1
    - Dst: externalEntityInitProcessor2
      Src: /src/cpython/Modules/expat/xmlparse.c:2830,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: 2831
      start: 2823
    functionDepth: 1
    functionLinenumber: 2823
    functionLinenumberEnd: 2831
    functionName: externalEntityInitProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - externalEntityInitProcessor2
    - initializeEncoding
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityInitProcessor(XML_Parser parser, const
      char *start,\n                            const char *end, const char **endPtr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XmlContentTok
      Src: /src/cpython/Modules/expat/xmlparse.c:2837,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:2841,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:2843,1
    - Dst: externalEntityInitProcessor3
      Src: /src/cpython/Modules/expat/xmlparse.c:2875,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2876
    functionName: externalEntityInitProcessor2
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingOnAbort
    - accountingDiffTolerated
    - externalEntityInitProcessor3
    - XmlContentTok
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityInitProcessor2(XML_Parser parser, const
      char *start,\n                             const char *end, const char **endPtr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XmlContentTok
      Src: /src/cpython/Modules/expat/xmlparse.c:2884,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:2894,1
    - Dst: externalEntityContentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:2927,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2878
    functionDepth: 1
    functionLinenumber: 2878
    functionLinenumberEnd: 2928
    functionName: externalEntityInitProcessor3
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - externalEntityContentProcessor
    - processXmlDecl
    - XmlContentTok
    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/cpython/Modules/expat/xmlparse.c:2934,1
    - Dst: storeRawNames
      Src: /src/cpython/Modules/expat/xmlparse.c:2938,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: 2942
      start: 2930
    functionDepth: 2
    functionLinenumber: 2930
    functionLinenumberEnd: 2942
    functionName: externalEntityContentProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - storeRawNames
    - doContent
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityContentProcessor(XML_Parser parser, const
      char *start,\n                               const char *end, const char **endPtr)"
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: XmlContentTok
      Src: /src/cpython/Modules/expat/xmlparse.c:2964,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:2970,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:2972,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:2986,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:2988,1
    - Dst: XmlPredefinedEntityName
      Src: /src/cpython/Modules/expat/xmlparse.c:3028,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:3035,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3040,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3042,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:3045,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:3049,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:3050,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3062,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3064,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3075,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3078,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:3081,1
    - Dst: getContext
      Src: /src/cpython/Modules/expat/xmlparse.c:3087,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3091,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:3095,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3097,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3110,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3113,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:3115,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3126,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:3136,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3146,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:3156,1
    - Dst: storeAtts
      Src: /src/cpython/Modules/expat/xmlparse.c:3158,1
    - Dst: XML_Parser::m_startElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3162,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3165,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:3166,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:3177,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3178,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3181,1
    - Dst: storeAtts
      Src: /src/cpython/Modules/expat/xmlparse.c:3182,1
    - Dst: freeBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:3185,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3188,1
    - Dst: XML_Parser::m_startElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3190,1
    - Dst: XML_Parser::m_endElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3197,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3201,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:3202,1
    - Dst: freeBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:3203,1
    - Dst: epilogProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:3212,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3223,1
    - Dst: memcmp
      Src: /src/cpython/Modules/expat/xmlparse.c:3225,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:3253,1
    - Dst: XML_Parser::m_endElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3255,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3257,1
    - Dst: XML_Parser::m_endNamespaceDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3261,1
    - Dst: epilogProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:3275,1
    - Dst: XmlCharRefNumber
      Src: /src/cpython/Modules/expat/xmlparse.c:3280,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3285,1
    - Dst: XmlEncode
      Src: /src/cpython/Modules/expat/xmlparse.c:3286,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3288,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3295,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3297,1
    - Dst: XML_Parser::m_startCdataSectionHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3302,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3317,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3321,1
    - Dst: doCdataSection
      Src: /src/cpython/Modules/expat/xmlparse.c:3323,1
    - Dst: MUST_CONVERT
      Src: /src/cpython/Modules/expat/xmlparse.c:3337,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:3339,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3340,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3344,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3348,1
    - Dst: MUST_CONVERT
      Src: /src/cpython/Modules/expat/xmlparse.c:3365,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:3368,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3371,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3379,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3382,1
    - Dst: reportProcessingInstruction
      Src: /src/cpython/Modules/expat/xmlparse.c:3385,1
    - Dst: reportComment
      Src: /src/cpython/Modules/expat/xmlparse.c:3389,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3401,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 355
    argCount: 8
    argNames:
    - parser
    - startTagLevel
    - enc
    - s
    - end
    - nextPtr
    - haveMore
    - account
    argTypes:
    - XML_Parser
    - int
    - ENCODING*
    - char*
    - char*
    - char**
    - XML_Bool
    - enum XML_Account
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3424
      start: 2944
    functionDepth: 1
    functionLinenumber: 2944
    functionLinenumberEnd: 3424
    functionName: doContent
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - accountingOnAbort
    - XmlCharRefNumber
    - freeBindings
    - memcmp
    - reportProcessingInstruction
    - XML_Parser::m_skippedEntityHandler
    - XML_Parser::m_startCdataSectionHandler
    - XML_Parser::m_endNamespaceDeclHandler
    - poolFinish
    - XmlNameLength
    - reportDefault
    - FREE
    - REALLOC
    - XML_Parser::m_endElementHandler
    - poolClear
    - charDataHandler
    - epilogProcessor
    - processEntity
    - getContext
    - XmlContentTok
    - XML_Parser::m_startElementHandler
    - doCdataSection
    - XmlPredefinedEntityName
    - poolStoreString
    - XmlEncode
    - reportComment
    - XML_Parser::m_externalEntityRefHandler
    - lookup
    - XML_Parser::m_characterDataHandler
    - XmlConvert
    - XML_T
    - accountingDiffTolerated
    - MALLOC
    - storeAtts
    - poolDiscard
    - MUST_CONVERT
    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, enum XML_Account account)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_endNamespaceDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - bindings
    argTypes:
    - XML_Parser
    - BINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3430
    functionDepth: 0
    functionLinenumber: 3430
    functionLinenumberEnd: 3446
    functionName: freeBindings
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_Parser::m_endNamespaceDeclHandler
    linkageType: ''
    returnType: void
    signature: void freeBindings(XML_Parser parser, BINDING *bindings)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:3477,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:3479,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:3482,1
    - Dst: setElementTypePrefix
      Src: /src/cpython/Modules/expat/xmlparse.c:3486,1
    - Dst: XmlGetAttributes
      Src: /src/cpython/Modules/expat/xmlparse.c:3492,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3525,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3544,1
    - Dst: XmlGetAttributes
      Src: /src/cpython/Modules/expat/xmlparse.c:3553,1
    - Dst: getAttributeId
      Src: /src/cpython/Modules/expat/xmlparse.c:3564,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3565,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3572,1
    - Dst: storeAttributeValue
      Src: /src/cpython/Modules/expat/xmlparse.c:3605,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:3610,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3611,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:3614,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3619,1
    - Dst: addBinding
      Src: /src/cpython/Modules/expat/xmlparse.c:3625,1
    - Dst: addBinding
      Src: /src/cpython/Modules/expat/xmlparse.c:3657,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3721,1
    - Dst: copy_salt_to_sipkey
      Src: /src/cpython/Modules/expat/xmlparse.c:3749,1
    - Dst: sip24_init
      Src: /src/cpython/Modules/expat/xmlparse.c:3750,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:3753,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:3777,1
    - Dst: sip24_update
      Src: /src/cpython/Modules/expat/xmlparse.c:3781,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:3783,1
    - Dst: sip24_update
      Src: /src/cpython/Modules/expat/xmlparse.c:3786,1
    - Dst: keylen
      Src: /src/cpython/Modules/expat/xmlparse.c:3786,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:3789,1
    - Dst: sip24_final
      Src: /src/cpython/Modules/expat/xmlparse.c:3793,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:3804,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:3813,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:3822,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:3828,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3829,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:3860,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3903,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:3907,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:3911,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:3916,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:3921,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 275
    argCount: 6
    argNames:
    - parser
    - enc
    - attStr
    - tagNamePtr
    - bindingsPtr
    - account
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - TAG_NAME*
    - BINDING**
    - enum XML_Account
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3458
    functionDepth: 3
    functionLinenumber: 3458
    functionLinenumberEnd: 3925
    functionName: storeAtts
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - PROBE_STEP
    - keylen
    - setElementTypePrefix
    - storeAttributeValue
    - poolAppendChar
    - poolFinish
    - XmlNameLength
    - REALLOC
    - FREE
    - sip24_update
    - poolCopyString
    - addBinding
    - poolStoreString
    - getAttributeId
    - poolStart
    - XmlGetAttributes
    - memcpy
    - lookup
    - sip24_final
    - XML_T
    - sip24_init
    - MALLOC
    - copy_salt_to_sipkey
    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,\n          enum
      XML_Account account)"
  - BBCount: 87
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 91
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - XML_Char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 3927
    functionDepth: 0
    functionLinenumber: 3927
    functionLinenumberEnd: 4036
    functionName: is_rfc3986_uri_char
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool is_rfc3986_uri_char(XML_Char candidate)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4073,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4076,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4077,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4078,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4080,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4080,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4081,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4084,1
    - Dst: is_rfc3986_uri_char
      Src: /src/cpython/Modules/expat/xmlparse.c:4115,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4149,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4158,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4177,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:4179,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:4185,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4192,1
    - Dst: XML_Parser::m_startNamespaceDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4200,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 73
    argCount: 5
    argNames:
    - parser
    - prefix
    - attId
    - uri
    - bindingsPtr
    argTypes:
    - XML_Parser
    - PREFIX*
    - ATTRIBUTE_ID*
    - XML_Char*
    - BINDING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4203
      start: 4041
    functionDepth: 1
    functionLinenumber: 4041
    functionLinenumberEnd: 4203
    functionName: addBinding
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - is_rfc3986_uri_char
    - XML_T
    - XML_Parser::m_startNamespaceDeclHandler
    - REALLOC
    - FREE
    - MALLOC
    - memcpy
    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/cpython/Modules/expat/xmlparse.c:4211,1
    - Dst: externalEntityContentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4219,1
    - Dst: contentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4222,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: 4226
      start: 4208
    functionDepth: 3
    functionLinenumber: 4208
    functionLinenumberEnd: 4226
    functionName: cdataSectionProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - externalEntityContentProcessor
    - contentProcessor
    - doCdataSection
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error cdataSectionProcessor(XML_Parser parser, const char
      *start, const char *end,\n                      const char **endPtr)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: XmlCdataSectionTok
      Src: /src/cpython/Modules/expat/xmlparse.c:4251,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4253,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4254,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:4258,1
    - Dst: XML_Parser::m_endCdataSectionHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4264,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4268,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4272,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4282,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4284,1
    - Dst: MUST_CONVERT
      Src: /src/cpython/Modules/expat/xmlparse.c:4289,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:4292,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4295,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4303,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4306,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 92
    argCount: 7
    argNames:
    - parser
    - enc
    - startPtr
    - end
    - nextPtr
    - haveMore
    - account
    argTypes:
    - XML_Parser
    - ENCODING*
    - char**
    - char*
    - char**
    - XML_Bool
    - enum XML_Account
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4231
    functionDepth: 1
    functionLinenumber: 4231
    functionLinenumberEnd: 4355
    functionName: doCdataSection
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_Parser::m_characterDataHandler
    - XmlConvert
    - accountingOnAbort
    - UNUSED_P
    - reportDefault
    - accountingDiffTolerated
    - XmlCdataSectionTok
    - charDataHandler
    - XML_Parser::m_endCdataSectionHandler
    - 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,\n               enum XML_Account account)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doIgnoreSection
      Src: /src/cpython/Modules/expat/xmlparse.c:4366,1
    - Dst: prologProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4372,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: 4375
      start: 4362
    functionDepth: 1
    functionLinenumber: 4362
    functionLinenumberEnd: 4375
    functionName: ignoreSectionProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - doIgnoreSection
    - prologProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error ignoreSectionProcessor(XML_Parser parser, const char
      *start, const char *end,\n                       const char **endPtr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: XmlIgnoreSectionTok
      Src: /src/cpython/Modules/expat/xmlparse.c:4410,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4412,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4414,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4422,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 6
    argNames:
    - parser
    - enc
    - startPtr
    - end
    - nextPtr
    - haveMore
    argTypes:
    - XML_Parser
    - ENCODING*
    - char**
    - char*
    - char**
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4458
      start: 4380
    functionDepth: 1
    functionLinenumber: 4380
    functionLinenumberEnd: 4458
    functionName: doIgnoreSection
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlIgnoreSectionTok
    - accountingDiffTolerated
    - reportDefault
    - accountingOnAbort
    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/cpython/Modules/expat/xmlparse.c:4489,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4490
      start: 4462
    functionDepth: 1
    functionLinenumber: 4462
    functionLinenumberEnd: 4490
    functionName: initializeEncoding
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - handleUnknownEncoding
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error initializeEncoding(XML_Parser parser)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4504,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4506,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4529,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:4531,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:4534,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4538,1
    - Dst: XML_Parser::m_xmlDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4543,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4546,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4564,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:4566,1
    - Dst: handleUnknownEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:4570,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:4571,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:4579,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 4
    argNames:
    - parser
    - isGeneralTextEntity
    - s
    - next
    argTypes:
    - XML_Parser
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4582
      start: 4492
    functionDepth: 1
    functionLinenumber: 4492
    functionLinenumberEnd: 4582
    functionName: processXmlDecl
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolFinish
    - XML_Parser::m_xmlDeclHandler
    - accountingOnAbort
    - XmlNameLength
    - reportDefault
    - poolStoreString
    - accountingDiffTolerated
    - handleUnknownEncoding
    - poolClear
    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/cpython/Modules/expat/xmlparse.c:4594,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4597,1
    - Dst: XmlSizeOfUnknownEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:4597,1
    - Dst: XML_Encoding::release
      Src: /src/cpython/Modules/expat/xmlparse.c:4600,1
    - Dst: XML_Encoding::release
      Src: /src/cpython/Modules/expat/xmlparse.c:4613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4616
      start: 4584
    functionDepth: 1
    functionLinenumber: 4584
    functionLinenumberEnd: 4616
    functionName: handleUnknownEncoding
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XmlSizeOfUnknownEncoding
    - MALLOC
    - XML_Encoding::release
    - XML_Parser::m_unknownEncodingHandler
    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/cpython/Modules/expat/xmlparse.c:4621,1
    - Dst: prologProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4625,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: 4626
      start: 4618
    functionDepth: 2
    functionLinenumber: 4618
    functionLinenumberEnd: 4626
    functionName: prologInitProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - prologProcessor
    - initializeEncoding
    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/cpython/Modules/expat/xmlparse.c:4633,1
    - Dst: entityValueInitProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4643,1
    - Dst: externalParEntProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4646,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: 4648
      start: 4630
    functionDepth: 2
    functionLinenumber: 4630
    functionLinenumberEnd: 4648
    functionName: externalParEntInitProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - externalParEntProcessor
    - entityValueInitProcessor
    - initializeEncoding
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalParEntInitProcessor(XML_Parser parser, const
      char *s, const char *end,\n                            const char **nextPtr)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:4659,1
    - Dst: storeEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:4682,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:4686,1
    - Dst: entityValueProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4699,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4711,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4713,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4650
    functionDepth: 2
    functionLinenumber: 4650
    functionLinenumberEnd: 4732
    functionName: entityValueInitProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - entityValueProcessor
    - accountingOnAbort
    - storeEntityValue
    - accountingDiffTolerated
    - processXmlDecl
    - XmlPrologTok
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error entityValueInitProcessor(XML_Parser parser, const char
      *s, const char *end,\n                         const char **nextPtr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:4740,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4764,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4766,1
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:4771,1
    - Dst: doProlog
      Src: /src/cpython/Modules/expat/xmlparse.c:4775,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4734
    functionDepth: 1
    functionLinenumber: 4734
    functionLinenumberEnd: 4778
    functionName: externalParEntProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingOnAbort
    - accountingDiffTolerated
    - doProlog
    - XmlPrologTok
    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/cpython/Modules/expat/xmlparse.c:4789,1
    - Dst: storeEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:4810,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: 4814
      start: 4780
    functionDepth: 1
    functionLinenumber: 4780
    functionLinenumberEnd: 4814
    functionName: entityValueProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - storeEntityValue
    - XmlPrologTok
    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/cpython/Modules/expat/xmlparse.c:4822,1
    - Dst: doProlog
      Src: /src/cpython/Modules/expat/xmlparse.c:4823,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: 4826
      start: 4818
    functionDepth: 1
    functionLinenumber: 4818
    functionLinenumberEnd: 4826
    functionName: prologProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - doProlog
    - XmlPrologTok
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error prologProcessor(XML_Parser parser, const char *s, const
      char *end,\n                const char **nextPtr)"
  - BBCount: 236
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:4859,1
    - Dst: XmlTokenRole
      Src: /src/cpython/Modules/expat/xmlparse.c:4911,1
    - Dst: XmlTokenRole
      Src: /src/cpython/Modules/expat/xmlparse.c:4925,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4935,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4936,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:4943,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4952,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:4955,1
    - Dst: XML_Parser::m_startDoctypeDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4963,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:4967,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:4973,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:4983,1
    - Dst: XmlIsPublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:4991,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4993,1
    - Dst: normalizePublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:4998,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:4999,1
    - Dst: XmlIsPublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5006,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5011,1
    - Dst: normalizePublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5015,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5017,1
    - Dst: XML_Parser::m_startDoctypeDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5032,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5035,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5048,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5061,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5067,1
    - Dst: XML_Parser::m_endDoctypeDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5081,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5095,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5101,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5107,1
    - Dst: contentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:5120,1
    - Dst: getElementType
      Src: /src/cpython/Modules/expat/xmlparse.c:5122,1
    - Dst: getAttributeId
      Src: /src/cpython/Modules/expat/xmlparse.c:5127,1
    - Dst: poolAppendString
      Src: /src/cpython/Modules/expat/xmlparse.c:5173,1
    - Dst: poolAppend
      Src: /src/cpython/Modules/expat/xmlparse.c:5175,1
    - Dst: defineAttribute
      Src: /src/cpython/Modules/expat/xmlparse.c:5184,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5190,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5191,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5192,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5194,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5194,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5195,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5195,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5198,1
    - Dst: XML_Parser::m_attlistDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5201,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5208,1
    - Dst: storeAttributeValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5214,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:5220,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5221,1
    - Dst: defineAttribute
      Src: /src/cpython/Modules/expat/xmlparse.c:5223,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5228,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5229,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5230,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5232,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5232,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5233,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5233,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5236,1
    - Dst: XML_Parser::m_attlistDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5239,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5243,1
    - Dst: callStoreEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5253,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:5257,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:5259,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5260,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5263,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5270,1
    - Dst: storeSelfEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5278,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5284,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5300,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5305,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5319,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5325,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5336,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5341,1
    - Dst: storeSelfEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5355,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5363,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5373,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5376,1
    - Dst: XML_Parser::m_unparsedEntityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5379,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5386,1
    - Dst: XmlPredefinedEntityName
      Src: /src/cpython/Modules/expat/xmlparse.c:5395,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5400,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5403,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5408,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5411,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5423,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5430,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5433,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5438,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5441,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5453,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5465,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5468,1
    - Dst: XmlIsPublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5473,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5477,1
    - Dst: normalizePublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5482,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5484,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5490,1
    - Dst: XML_Parser::m_notationDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5496,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5501,1
    - Dst: XML_Parser::m_notationDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5506,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5511,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:5528,1
    - Dst: doIgnoreSection
      Src: /src/cpython/Modules/expat/xmlparse.c:5530,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:5548,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:5568,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:5576,1
    - Dst: nextScaffoldPart
      Src: /src/cpython/Modules/expat/xmlparse.c:5585,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:5588,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5626,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5630,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5631,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5669,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:5680,1
    - Dst: entityTrackingOnOpen
      Src: /src/cpython/Modules/expat/xmlparse.c:5689,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5690,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:5693,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:5697,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5711,1
    - Dst: getElementType
      Src: /src/cpython/Modules/expat/xmlparse.c:5719,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:5734,1
    - Dst: XML_Parser::m_elementDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5744,1
    - Dst: nextScaffoldPart
      Src: /src/cpython/Modules/expat/xmlparse.c:5779,1
    - Dst: getElementType
      Src: /src/cpython/Modules/expat/xmlparse.c:5784,1
    - Dst: build_model
      Src: /src/cpython/Modules/expat/xmlparse.c:5823,1
    - Dst: XML_Parser::m_elementDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5827,1
    - Dst: reportProcessingInstruction
      Src: /src/cpython/Modules/expat/xmlparse.c:5838,1
    - Dst: reportComment
      Src: /src/cpython/Modules/expat/xmlparse.c:5843,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:5877,1
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:5893,1
    CyclomaticComplexity: 271
    EdgeCount: 271
    ICount: 766
    argCount: 10
    argNames:
    - parser
    - enc
    - s
    - end
    - tok
    - next
    - nextPtr
    - haveMore
    - allowClosingDoctype
    - account
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    - int
    - char*
    - char**
    - XML_Bool
    - XML_Bool
    - enum XML_Account
    assertStmts:
    - condition: (dtd->scaffIndex != NULL)
      pos:
        line_end: 5587
        line_start: 5587
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 5897
      start: 4828
    functionDepth: 3
    functionLinenumber: 4828
    functionLinenumberEnd: 5897
    functionName: doProlog
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_Parser::m_notStandaloneHandler
    - accountingOnAbort
    - poolDiscard
    - poolAppend
    - entityTrackingOnOpen
    - storeSelfEntityValue
    - doIgnoreSection
    - callStoreEntityValue
    - reportProcessingInstruction
    - XML_Parser::m_skippedEntityHandler
    - contentProcessor
    - XML_Parser::m_elementDeclHandler
    - poolAppendChar
    - storeAttributeValue
    - poolFinish
    - reportDefault
    - REALLOC
    - XML_Parser::m_attlistDeclHandler
    - normalizePublicId
    - entityTrackingOnClose
    - processEntity
    - assert
    - getElementType
    - defineAttribute
    - XML_Parser::m_entityDeclHandler
    - XmlPredefinedEntityName
    - poolStoreString
    - getAttributeId
    - poolStart
    - processXmlDecl
    - XmlTokenRole
    - reportComment
    - XML_Parser::m_endDoctypeDeclHandler
    - poolAppendString
    - XML_Parser::m_externalEntityRefHandler
    - lookup
    - XmlIsPublicId
    - poolLength
    - XmlPrologTok
    - XML_T
    - XML_Parser::m_unparsedEntityDeclHandler
    - UNUSED_P
    - build_model
    - XML_Parser::m_startDoctypeDeclHandler
    - accountingDiffTolerated
    - nextScaffoldPart
    - MALLOC
    - XML_Parser::m_notationDeclHandler
    - poolClear
    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, enum XML_Account
      account)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:5906,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:5908,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:5910,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:5919,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:5930,1
    - Dst: reportProcessingInstruction
      Src: /src/cpython/Modules/expat/xmlparse.c:5933,1
    - Dst: reportComment
      Src: /src/cpython/Modules/expat/xmlparse.c:5937,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5975
      start: 5899
    functionDepth: 1
    functionLinenumber: 5899
    functionLinenumberEnd: 5975
    functionName: epilogProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingOnAbort
    - reportDefault
    - accountingDiffTolerated
    - reportComment
    - reportProcessingInstruction
    - XmlPrologTok
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error epilogProcessor(XML_Parser parser, const char *s, const
      char *end,\n                const char **nextPtr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6003,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:6012,1
    - Dst: entityTrackingOnOpen
      Src: /src/cpython/Modules/expat/xmlparse.c:6019,1
    - Dst: triggerReenter
      Src: /src/cpython/Modules/expat/xmlparse.c:6034,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 4
    argNames:
    - parser
    - entity
    - betweenDecl
    - type
    argTypes:
    - XML_Parser
    - ENTITY*
    - XML_Bool
    - enum EntityType
    assertStmts:
    - condition: (0)
      pos:
        line_end: 6002
        line_start: 6002
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6037
      start: 5977
    functionDepth: 1
    functionLinenumber: 5977
    functionLinenumberEnd: 6037
    functionName: processEntity
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - triggerReenter
    - entityTrackingOnOpen
    - assert
    - MALLOC
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error processEntity(XML_Parser parser, ENTITY *entity, XML_Bool
      betweenDecl,\n              enum EntityType type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6042,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6043,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6044,1
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:6064,1
    - Dst: doProlog
      Src: /src/cpython/Modules/expat/xmlparse.c:6065,1
    - Dst: doContent
      Src: /src/cpython/Modules/expat/xmlparse.c:6069,1
    - Dst: triggerReenter
      Src: /src/cpython/Modules/expat/xmlparse.c:6090,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6096,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6102,1
    - Dst: triggerReenter
      Src: /src/cpython/Modules/expat/xmlparse.c:6113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts:
    - condition: (parser->m_openInternalEntities == openEntity)
      pos:
        line_end: 6101
        line_start: 6101
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6115
      start: 6039
    functionDepth: 4
    functionLinenumber: 6039
    functionLinenumberEnd: 6115
    functionName: internalEntityProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - assert
    - triggerReenter
    - UNUSED_P
    - entityTrackingOnClose
    - doProlog
    - doContent
    - XmlPrologTok
    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/cpython/Modules/expat/xmlparse.c:6120,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6121,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6122,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: 6124
      start: 6117
    functionDepth: 1
    functionLinenumber: 6117
    functionLinenumberEnd: 6124
    functionName: errorProcessor
    functionSourceFile: /src/cpython/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: 10
    BranchProfiles: []
    Callsites:
    - Dst: appendAttributeValue
      Src: /src/cpython/Modules/expat/xmlparse.c:6135,1
    - Dst: appendAttributeValue
      Src: /src/cpython/Modules/expat/xmlparse.c:6150,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6173,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6179,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6196,1
    - Dst: poolLastChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6196,1
    - Dst: poolChop
      Src: /src/cpython/Modules/expat/xmlparse.c:6197,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6198,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6198,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 7
    argNames:
    - parser
    - enc
    - isCdata
    - ptr
    - end
    - pool
    - account
    argTypes:
    - XML_Parser
    - ENCODING*
    - XML_Bool
    - char*
    - char*
    - STRING_POOL*
    - enum XML_Account
    assertStmts:
    - condition: (parser->m_openAttributeEntities == openEntity)
      pos:
        line_end: 6178
        line_start: 6178
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6201
      start: 6126
    functionDepth: 1
    functionLinenumber: 6126
    functionLinenumberEnd: 6201
    functionName: storeAttributeValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - poolAppendChar
    - assert
    - XML_T
    - poolLastChar
    - poolChop
    - poolLength
    - appendAttributeValue
    - entityTrackingOnClose
    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,\n                    enum XML_Account account)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6209,1
    - Dst: XmlAttributeValueTok
      Src: /src/cpython/Modules/expat/xmlparse.c:6215,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:6217,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:6218,1
    - Dst: XmlCharRefNumber
      Src: /src/cpython/Modules/expat/xmlparse.c:6239,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6246,1
    - Dst: poolLastChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6246,1
    - Dst: XmlEncode
      Src: /src/cpython/Modules/expat/xmlparse.c:6248,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6259,1
    - Dst: poolAppend
      Src: /src/cpython/Modules/expat/xmlparse.c:6264,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6272,1
    - Dst: poolLastChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6272,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6274,1
    - Dst: XmlPredefinedEntityName
      Src: /src/cpython/Modules/expat/xmlparse.c:6281,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:6288,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6292,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6296,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6301,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6302,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:6367,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 104
    argCount: 8
    argNames:
    - parser
    - enc
    - isCdata
    - ptr
    - end
    - pool
    - account
    - nextPtr
    argTypes:
    - XML_Parser
    - ENCODING*
    - XML_Bool
    - char*
    - char*
    - STRING_POOL*
    - enum XML_Account
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6203
    functionDepth: 2
    functionLinenumber: 6203
    functionLinenumberEnd: 6394
    functionName: appendAttributeValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolAppendChar
    - processEntity
    - accountingOnAbort
    - UNUSED_P
    - XmlAttributeValueTok
    - XmlCharRefNumber
    - poolAppend
    - poolDiscard
    - poolLastChar
    - XmlPredefinedEntityName
    - accountingDiffTolerated
    - poolStoreString
    - XmlEncode
    - lookup
    - poolLength
    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,\n                     enum XML_Account account, const char
      **nextPtr)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6408,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:6414,1
    - Dst: XmlEntityValueTok
      Src: /src/cpython/Modules/expat/xmlparse.c:6422,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:6424,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:6426,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6437,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6444,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6445,1
    - Dst: entityTrackingOnOpen
      Src: /src/cpython/Modules/expat/xmlparse.c:6466,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6467,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6470,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6475,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:6482,1
    - Dst: poolAppend
      Src: /src/cpython/Modules/expat/xmlparse.c:6498,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:6507,1
    - Dst: XmlCharRefNumber
      Src: /src/cpython/Modules/expat/xmlparse.c:6516,1
    - Dst: XmlEncode
      Src: /src/cpython/Modules/expat/xmlparse.c:6523,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:6534,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 137
    argCount: 6
    argNames:
    - parser
    - enc
    - entityTextPtr
    - entityTextEnd
    - account
    - nextPtr
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    - enum XML_Account
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6576
      start: 6397
    functionDepth: 2
    functionLinenumber: 6397
    functionLinenumberEnd: 6576
    functionName: storeEntityValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - processEntity
    - poolGrow
    - XML_Parser::m_externalEntityRefHandler
    - accountingOnAbort
    - UNUSED_P
    - poolDiscard
    - XmlCharRefNumber
    - poolAppend
    - entityTrackingOnOpen
    - entityTrackingOnClose
    - accountingDiffTolerated
    - poolStoreString
    - XmlEncode
    - XmlEntityValueTok
    - lookup
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error storeEntityValue(XML_Parser parser, const ENCODING
      *enc,\n                 const char *entityTextPtr, const char *entityTextEnd,\n
      \                enum XML_Account account, const char **nextPtr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: storeEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:6587,1
    - Dst: storeEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:6601,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6624,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6630,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - parser
    - enc
    - entityTextPtr
    - entityTextEnd
    - account
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    - enum XML_Account
    assertStmts:
    - condition: (parser->m_openValueEntities == openEntity)
      pos:
        line_end: 6629
        line_start: 6629
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6647
      start: 6578
    functionDepth: 3
    functionLinenumber: 6578
    functionLinenumberEnd: 6647
    functionName: callStoreEntityValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - assert
    - storeEntityValue
    - entityTrackingOnClose
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error callStoreEntityValue(XML_Parser parser, const ENCODING
      *enc,\n                     const char *entityTextPtr, const char *entityTextEnd,\n
      \                    enum XML_Account account)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poolAppendString
      Src: /src/cpython/Modules/expat/xmlparse.c:6659,1
    - Dst: poolAppendString
      Src: /src/cpython/Modules/expat/xmlparse.c:6660,1
    - Dst: poolAppendString
      Src: /src/cpython/Modules/expat/xmlparse.c:6661,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6662,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:6666,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6667,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:6668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - entity
    argTypes:
    - XML_Parser
    - ENTITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6671
      start: 6651
    functionDepth: 1
    functionLinenumber: 6651
    functionLinenumberEnd: 6671
    functionName: storeSelfEntityValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolFinish
    - poolDiscard
    - poolStart
    - poolAppendString
    - poolLength
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error storeSelfEntityValue(XML_Parser parser, ENTITY *entity)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6679,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6694
      start: 6675
    functionDepth: 1
    functionLinenumber: 6675
    functionLinenumberEnd: 6694
    functionName: normalizeLines
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:6704,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6708,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6709,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:6712,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6713,1
    - Dst: XmlSkipS
      Src: /src/cpython/Modules/expat/xmlparse.c:6713,1
    - Dst: normalizeLines
      Src: /src/cpython/Modules/expat/xmlparse.c:6717,1
    - Dst: XML_Parser::m_processingInstructionHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6718,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:6719,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: 6721
      start: 6696
    functionDepth: 2
    functionLinenumber: 6696
    functionLinenumberEnd: 6721
    functionName: reportProcessingInstruction
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - poolFinish
    - XmlNameLength
    - XmlSkipS
    - reportDefault
    - normalizeLines
    - poolStoreString
    - XML_Parser::m_processingInstructionHandler
    - poolClear
    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/cpython/Modules/expat/xmlparse.c:6729,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6732,1
    - Dst: normalizeLines
      Src: /src/cpython/Modules/expat/xmlparse.c:6737,1
    - Dst: XML_Parser::m_commentHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6738,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:6739,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: 6741
      start: 6723
    functionDepth: 2
    functionLinenumber: 6723
    functionLinenumberEnd: 6741
    functionName: reportComment
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - normalizeLines
    - reportDefault
    - poolStoreString
    - 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/cpython/Modules/expat/xmlparse.c:6746,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:6777,1
    - Dst: XML_Parser::m_defaultHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6779,1
    - Dst: XML_Parser::m_defaultHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6785,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: 6788
      start: 6743
    functionDepth: 1
    functionLinenumber: 6743
    functionLinenumberEnd: 6788
    functionName: reportDefault
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 9
    functionsReached:
    - XML_Parser::m_defaultHandler
    - XmlConvert
    - MUST_CONVERT
    linkageType: ''
    returnType: void
    signature: "void reportDefault(XML_Parser parser, const ENCODING *enc, const char
      *s,\n              const char *end)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:6807,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:6833,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    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: 6849
      start: 6790
    functionDepth: 1
    functionLinenumber: 6790
    functionLinenumberEnd: 6849
    functionName: defineAttribute
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:6856,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6860,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6863,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6863,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6865,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:6865,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:6869,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:6870,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6872,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - parser
    - elementType
    argTypes:
    - XML_Parser
    - ELEMENT_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6878
      start: 6851
    functionDepth: 1
    functionLinenumber: 6851
    functionLinenumberEnd: 6878
    functionName: setElementTypePrefix
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolAppendChar
    - poolFinish
    - XML_T
    - poolDiscard
    - poolStart
    - lookup
    linkageType: ''
    returnType: int
    signature: int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6886,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6886,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6888,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6893,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6898,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:6900,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6903,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6903,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6904,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6904,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6905,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6906,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6906,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6907,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6910,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6917,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6920,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6923,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6923,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6925,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:6926,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:6929,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:6930,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6932,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: 6939
      start: 6880
    functionDepth: 1
    functionLinenumber: 6880
    functionLinenumberEnd: 6939
    functionName: getAttributeId
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - poolAppendChar
    - poolFinish
    - XML_T
    - poolDiscard
    - poolStoreString
    - poolStart
    - lookup
    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/cpython/Modules/expat/xmlparse.c:6952,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6952,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6958,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:6985,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:6990,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7002,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7005,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7007,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7007,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7013,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7018,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7021,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7026,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7029,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7034,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7034,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7037
      start: 6943
    functionDepth: 1
    functionLinenumber: 6943
    functionLinenumberEnd: 7037
    functionName: getContext
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolAppendChar
    - XML_T
    - hashTableIterInit
    - hashTableIterNext
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *

      getContext(XML_Parser parser)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7048,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7049,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7051,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7051,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7053,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7054,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7057,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7060,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7061,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:7063,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7066,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7066,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7069,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7070,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7073,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7074,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7078,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7080,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7082,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7084,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7084,1
    - Dst: addBinding
      Src: /src/cpython/Modules/expat/xmlparse.c:7086,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7086,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7090,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7091,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7095,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 2
    argNames:
    - parser
    - context
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7101
      start: 7039
    functionDepth: 2
    functionLinenumber: 7039
    functionLinenumberEnd: 7101
    functionName: setContext
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - poolAppendChar
    - XML_T
    - poolCopyString
    - addBinding
    - poolStart
    - poolLength
    - lookup
    - poolDiscard
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool setContext(XML_Parser parser, const XML_Char *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - publicId
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7122
      start: 7103
    functionDepth: 1
    functionLinenumber: 7103
    functionLinenumberEnd: 7122
    functionName: normalizePublicId
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7126,1
    - Dst: poolInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7129,1
    - Dst: poolInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7130,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7131,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7132,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7133,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7134,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ms
    argTypes:
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7154
      start: 7124
    functionDepth: 1
    functionLinenumber: 7124
    functionLinenumberEnd: 7154
    functionName: dtdCreate
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7159,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7161,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7165,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7167,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7170,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7172,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7173,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7174,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7175,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7176,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7182,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - p
    - ms
    argTypes:
    - DTD*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7195
      start: 7156
    functionDepth: 1
    functionLinenumber: 7156
    functionLinenumberEnd: 7195
    functionName: dtdReset
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - hashTableClear
    - XML_Memory_Handling_Suite*::free_fcn
    - hashTableIterInit
    - poolClear
    linkageType: ''
    returnType: void
    signature: void dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7200,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7202,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7206,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7208,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7210,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7212,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7213,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7214,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7215,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7216,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7218,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7219,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7221,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: 7222
      start: 7197
    functionDepth: 1
    functionLinenumber: 7197
    functionLinenumberEnd: 7222
    functionName: dtdDestroy
    functionSourceFile: /src/cpython/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: 22
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7234,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7237,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7240,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7243,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7247,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7254,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7259,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7259,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7261,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7265,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7275,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7282,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7288,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7291,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7294,1
    - Dst: XML_Memory_Handling_Suite*::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7310,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7316,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7320,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7323,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7328,1
    - Dst: copyEntityTable
      Src: /src/cpython/Modules/expat/xmlparse.c:7337,1
    - Dst: copyEntityTable
      Src: /src/cpython/Modules/expat/xmlparse.c:7342,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 82
    argCount: 4
    argNames:
    - oldParser
    - newDtd
    - oldDtd
    - ms
    argTypes:
    - XML_Parser
    - DTD*
    - DTD*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7361
      start: 7227
    functionDepth: 1
    functionLinenumber: 7227
    functionLinenumberEnd: 7361
    functionName: dtdCopy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolAppendChar
    - hashTableIterNext
    - XML_T
    - poolCopyString
    - XML_Memory_Handling_Suite*::malloc_fcn
    - copyEntityTable
    - hashTableIterInit
    - lookup
    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/cpython/Modules/expat/xmlparse.c:7370,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7375,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7378,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7381,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7385,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7394,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7401,1
    - Dst: poolCopyStringN
      Src: /src/cpython/Modules/expat/xmlparse.c:7408,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7415,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: 7424
      start: 7363
    functionDepth: 1
    functionLinenumber: 7363
    functionLinenumberEnd: 7424
    functionName: copyEntityTable
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolCopyStringN
    - hashTableIterNext
    - poolCopyString
    - hashTableIterInit
    - lookup
    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: 7434
      start: 7428
    functionDepth: 0
    functionLinenumber: 7428
    functionLinenumberEnd: 7434
    functionName: keyeq
    functionSourceFile: /src/cpython/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: 7442
      start: 7436
    functionDepth: 0
    functionLinenumber: 7436
    functionLinenumberEnd: 7442
    functionName: keylen
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - key
    argTypes:
    - XML_Parser
    - struct sipkey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7448
      start: 7444
    functionDepth: 2
    functionLinenumber: 7444
    functionLinenumberEnd: 7448
    functionName: copy_salt_to_sipkey
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7455,1
    - Dst: sip24_init
      Src: /src/cpython/Modules/expat/xmlparse.c:7456,1
    - Dst: sip24_update
      Src: /src/cpython/Modules/expat/xmlparse.c:7457,1
    - Dst: keylen
      Src: /src/cpython/Modules/expat/xmlparse.c:7457,1
    - Dst: sip24_final
      Src: /src/cpython/Modules/expat/xmlparse.c:7458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - s
    argTypes:
    - XML_Parser
    - KEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7450
    functionDepth: 3
    functionLinenumber: 7450
    functionLinenumberEnd: 7459
    functionName: hash
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 7
    functionsReached:
    - sip24_final
    - keylen
    - sip24_init
    - sip24_update
    - copy_salt_to_sipkey
    linkageType: ''
    returnType: unsigned long FASTCALL
    signature: unsigned long FASTCALL hash(XML_Parser parser, KEY s)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HASH_TABLE*::mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7472,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:7477,1
    - Dst: hash
      Src: /src/cpython/Modules/expat/xmlparse.c:7478,1
    - Dst: hash
      Src: /src/cpython/Modules/expat/xmlparse.c:7480,1
    - Dst: keyeq
      Src: /src/cpython/Modules/expat/xmlparse.c:7485,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:7488,1
    - Dst: HASH_TABLE*::mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7512,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:7515,1
    - Dst: hash
      Src: /src/cpython/Modules/expat/xmlparse.c:7518,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:7523,1
    - Dst: HASH_TABLE*::mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7528,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:7536,1
    - Dst: HASH_TABLE*::mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7541,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:7544,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 4
    argNames:
    - parser
    - table
    - name
    - createSize
    argTypes:
    - XML_Parser
    - HASH_TABLE*
    - KEY
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7548
      start: 7461
    functionDepth: 1
    functionLinenumber: 7461
    functionLinenumberEnd: 7548
    functionName: lookup
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 24
    functionsReached:
    - PROBE_STEP
    - memset
    - HASH_TABLE*::mem::free_fcn
    - hash
    - keyeq
    - HASH_TABLE*::mem::malloc_fcn
    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/cpython/Modules/expat/xmlparse.c:7554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - table
    argTypes:
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7558
      start: 7550
    functionDepth: 0
    functionLinenumber: 7550
    functionLinenumberEnd: 7558
    functionName: hashTableClear
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7564,1
    - Dst: HASH_TABLE*::mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7566
      start: 7560
    functionDepth: 0
    functionLinenumber: 7560
    functionLinenumberEnd: 7566
    functionName: hashTableDestroy
    functionSourceFile: /src/cpython/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: 7575
      start: 7568
    functionDepth: 0
    functionLinenumber: 7568
    functionLinenumberEnd: 7575
    functionName: hashTableInit
    functionSourceFile: /src/cpython/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: 7581
      start: 7577
    functionDepth: 0
    functionLinenumber: 7577
    functionLinenumberEnd: 7581
    functionName: hashTableIterInit
    functionSourceFile: /src/cpython/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: 7591
      start: 7583
    functionDepth: 0
    functionLinenumber: 7583
    functionLinenumberEnd: 7591
    functionName: hashTableIterNext
    functionSourceFile: /src/cpython/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: 7601
      start: 7593
    functionDepth: 0
    functionLinenumber: 7593
    functionLinenumberEnd: 7601
    functionName: poolInit
    functionSourceFile: /src/cpython/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: 7620
      start: 7603
    functionDepth: 0
    functionLinenumber: 7603
    functionLinenumberEnd: 7620
    functionName: poolClear
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7627,1
    - Dst: STRING_POOL*::mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7622
    functionDepth: 0
    functionLinenumber: 7622
    functionLinenumberEnd: 7636
    functionName: poolDestroy
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7641,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:7644,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:7649,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: 7653
      start: 7638
    functionDepth: 1
    functionLinenumber: 7638
    functionLinenumberEnd: 7653
    functionName: poolAppend
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - poolGrow
    - XmlConvert
    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/cpython/Modules/expat/xmlparse.c:7658,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - STRING_POOL*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7664
      start: 7655
    functionDepth: 1
    functionLinenumber: 7655
    functionLinenumberEnd: 7664
    functionName: poolCopyString
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7668,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7683,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - s
    - n
    argTypes:
    - STRING_POOL*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7689
      start: 7666
    functionDepth: 1
    functionLinenumber: 7666
    functionLinenumberEnd: 7689
    functionName: poolCopyStringN
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - STRING_POOL*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7699
      start: 7691
    functionDepth: 1
    functionLinenumber: 7691
    functionLinenumberEnd: 7699
    functionName: poolAppendString
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    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/cpython/Modules/expat/xmlparse.c:7704,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:7706,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: 7710
      start: 7701
    functionDepth: 2
    functionLinenumber: 7701
    functionLinenumberEnd: 7710
    functionName: poolStoreString
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 9
    functionsReached:
    - poolGrow
    - poolAppend
    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: 7738
      start: 7712
    functionDepth: 0
    functionLinenumber: 7712
    functionLinenumberEnd: 7738
    functionName: poolBytesToAllocateFor
    functionSourceFile: /src/cpython/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/cpython/Modules/expat/xmlparse.c:7757,1
    - Dst: poolBytesToAllocateFor
      Src: /src/cpython/Modules/expat/xmlparse.c:7784,1
    - Dst: STRING_POOL*::mem::realloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7788,1
    - Dst: poolBytesToAllocateFor
      Src: /src/cpython/Modules/expat/xmlparse.c:7825,1
    - Dst: STRING_POOL*::mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:7829,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:7836,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7842
      start: 7740
    functionDepth: 1
    functionLinenumber: 7740
    functionLinenumberEnd: 7842
    functionName: poolGrow
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 4
    functionsReached:
    - memcpy
    - STRING_POOL*::mem::realloc_fcn
    - poolBytesToAllocateFor
    - STRING_POOL*::mem::malloc_fcn
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool poolGrow(STRING_POOL *pool)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7860,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7883,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7889,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7912
      start: 7844
    functionDepth: 1
    functionLinenumber: 7844
    functionLinenumberEnd: 7912
    functionName: nextScaffoldPart
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - REALLOC
    - MALLOC
    linkageType: ''
    returnType: int
    signature: int nextScaffoldPart(XML_Parser parser)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7944,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8039
      start: 7914
    functionDepth: 1
    functionLinenumber: 7914
    functionLinenumberEnd: 8039
    functionName: build_model
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - MALLOC
    linkageType: ''
    returnType: XML_Content
    signature: 'XML_Content *

      build_model(XML_Parser parser)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:8045,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:8050,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:8055,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:8057,1
    - Dst: setElementTypePrefix
      Src: /src/cpython/Modules/expat/xmlparse.c:8058,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: 8062
      start: 8041
    functionDepth: 3
    functionLinenumber: 8041
    functionLinenumberEnd: 8062
    functionName: getElementType
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolFinish
    - poolDiscard
    - poolStoreString
    - setElementTypePrefix
    - lookup
    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/cpython/Modules/expat/xmlparse.c:8077,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:8081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - memsuite
    argTypes:
    - XML_Char*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8083
      start: 8064
    functionDepth: 0
    functionLinenumber: 8064
    functionLinenumberEnd: 8083
    functionName: copyString
    functionSourceFile: /src/cpython/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:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rootParser
    argTypes:
    - XML_Parser
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8100
        line_start: 8100
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8103
      start: 8087
    functionDepth: 0
    functionLinenumber: 8087
    functionLinenumberEnd: 8103
    functionName: accountingGetCurrentAmplification
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: float
    signature: float accountingGetCurrentAmplification(XML_Parser rootParser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:8107,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8108,1
    - Dst: accountingGetCurrentAmplification
      Src: /src/cpython/Modules/expat/xmlparse.c:8115,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8116,1
    - Dst: EXPAT_FMT_ULL
      Src: /src/cpython/Modules/expat/xmlparse.c:8117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - originParser
    - epilog
    argTypes:
    - XML_Parser
    - char*
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8107
        line_start: 8107
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8122
      start: 8105
    functionDepth: 1
    functionLinenumber: 8105
    functionLinenumberEnd: 8122
    functionName: accountingReportStats
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - accountingGetCurrentAmplification
    - fprintf
    - getRootParserOf
    - assert
    - EXPAT_FMT_ULL
    linkageType: ''
    returnType: void
    signature: void accountingReportStats(XML_Parser originParser, const char *epilog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accountingReportStats
      Src: /src/cpython/Modules/expat/xmlparse.c:8126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - originParser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8127
      start: 8124
    functionDepth: 2
    functionLinenumber: 8124
    functionLinenumberEnd: 8127
    functionName: accountingOnAbort
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 11
    functionsReached:
    - accountingReportStats
    linkageType: ''
    returnType: void
    signature: void accountingOnAbort(XML_Parser originParser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8134,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8136,1
    - Dst: EXPAT_FMT_PTRDIFF_T
      Src: /src/cpython/Modules/expat/xmlparse.c:8137,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8151,1
    - Dst: unsignedCharToPrintable
      Src: /src/cpython/Modules/expat/xmlparse.c:8151,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8155,1
    - Dst: unsignedCharToPrintable
      Src: /src/cpython/Modules/expat/xmlparse.c:8155,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8157,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8160,1
    - Dst: unsignedCharToPrintable
      Src: /src/cpython/Modules/expat/xmlparse.c:8160,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - rootParser
    - levelsAwayFromRootParser
    - before
    - after
    - bytesMore
    - source_line
    - account
    argTypes:
    - XML_Parser
    - unsigned int
    - char*
    - char*
    - ptrdiff_t
    - int
    - enum XML_Account
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8133
        line_start: 8133
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8164
      start: 8129
    functionDepth: 1
    functionLinenumber: 8129
    functionLinenumberEnd: 8164
    functionName: accountingReportDiff
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - unsignedCharToPrintable
    - EXPAT_FMT_PTRDIFF_T
    - assert
    linkageType: ''
    returnType: void
    signature: "void accountingReportDiff(XML_Parser rootParser,\n                     unsigned
      int levelsAwayFromRootParser, const char *before,\n                     const
      char *after, ptrdiff_t bytesMore, int source_line,\n                     enum
      XML_Account account)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:8186,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8187,1
    - Dst: accountingGetCurrentAmplification
      Src: /src/cpython/Modules/expat/xmlparse.c:8206,1
    - Dst: accountingReportStats
      Src: /src/cpython/Modules/expat/xmlparse.c:8213,1
    - Dst: accountingReportDiff
      Src: /src/cpython/Modules/expat/xmlparse.c:8214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - originParser
    - tok
    - before
    - after
    - source_line
    - account
    argTypes:
    - XML_Parser
    - int
    - char*
    - char*
    - int
    - enum XML_Account
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8186
        line_start: 8186
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8219
      start: 8166
    functionDepth: 2
    functionLinenumber: 8166
    functionLinenumberEnd: 8219
    functionName: accountingDiffTolerated
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 11
    functionsReached:
    - accountingReportStats
    - accountingGetCurrentAmplification
    - getRootParserOf
    - accountingReportDiff
    - assert
    linkageType: ''
    returnType: XML_Bool
    signature: "XML_Bool accountingDiffTolerated(XML_Parser originParser, int tok,
      const char *before,\n                        const char *after, int source_line,\n
      \                       enum XML_Account account)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8226
      start: 8221
    functionDepth: 0
    functionLinenumber: 8221
    functionLinenumberEnd: 8226
    functionName: testingAccountingGetCountBytesDirect
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long testingAccountingGetCountBytesDirect(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: 8233
      start: 8228
    functionDepth: 0
    functionLinenumber: 8228
    functionLinenumberEnd: 8233
    functionName: testingAccountingGetCountBytesIndirect
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long testingAccountingGetCountBytesIndirect(XML_Parser
      parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8238,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rootParser
    - entity
    - action
    - sourceLine
    argTypes:
    - XML_Parser
    - ENTITY*
    - char*
    - int
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8237
        line_start: 8237
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8257
      start: 8235
    functionDepth: 0
    functionLinenumber: 8235
    functionLinenumberEnd: 8257
    functionName: entityTrackingReportStats
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: "void entityTrackingReportStats(XML_Parser rootParser, ENTITY *entity,\n
      \                         const char *action, int sourceLine)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:8261,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8262,1
    - Dst: entityTrackingReportStats
      Src: /src/cpython/Modules/expat/xmlparse.c:8271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - originParser
    - entity
    - sourceLine
    argTypes:
    - XML_Parser
    - ENTITY*
    - int
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8261
        line_start: 8261
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8272
      start: 8259
    functionDepth: 1
    functionLinenumber: 8259
    functionLinenumberEnd: 8272
    functionName: entityTrackingOnOpen
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - getRootParserOf
    - entityTrackingReportStats
    - assert
    linkageType: ''
    returnType: void
    signature: void entityTrackingOnOpen(XML_Parser originParser, ENTITY *entity,
      int sourceLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:8276,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8277,1
    - Dst: entityTrackingReportStats
      Src: /src/cpython/Modules/expat/xmlparse.c:8279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - originParser
    - entity
    - sourceLine
    argTypes:
    - XML_Parser
    - ENTITY*
    - int
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8276
        line_start: 8276
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8281
      start: 8274
    functionDepth: 1
    functionLinenumber: 8274
    functionLinenumberEnd: 8281
    functionName: entityTrackingOnClose
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 5
    functionsReached:
    - getRootParserOf
    - entityTrackingReportStats
    - assert
    linkageType: ''
    returnType: void
    signature: void entityTrackingOnClose(XML_Parser originParser, ENTITY *entity,
      int sourceLine)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - parser
    - outLevelDiff
    argTypes:
    - XML_Parser
    - unsigned int*
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8290
        line_start: 8290
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8296
      start: 8283
    functionDepth: 0
    functionLinenumber: 8283
    functionLinenumberEnd: 8296
    functionName: getRootParserOf
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: XML_Parser
    signature: XML_Parser getRootParserOf(XML_Parser parser, unsigned int *outLevelDiff)
  - BBCount: 258
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8815,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 519
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts:
    - condition: (0)
      pos:
        line_end: 8814
        line_start: 8814
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (0)
      pos:
        line_end: 8817
        line_start: 8817
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8820
      start: 8298
    functionDepth: 0
    functionLinenumber: 8298
    functionLinenumberEnd: 8820
    functionName: unsignedCharToPrintable
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      unsignedCharToPrintable(unsigned char c)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/cpython/Modules/expat/xmlparse.c:8826,1
    - Dst: strtoul
      Src: /src/cpython/Modules/expat/xmlparse.c:8834,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - variableName
    - defaultDebugLevel
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8841
      start: 8824
    functionDepth: 0
    functionLinenumber: 8824
    functionLinenumberEnd: 8841
    functionName: getDebugLevel
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - strtoul
    - getenv
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getDebugLevel(const char *variableName, unsigned long
      defaultDebugLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parser
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 684
    functionName: XML_GetUserData
    functionSourceFile: /src/cpython/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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: XML_ATTR_ALLOC_SIZE
    functionSourceFile: /src/cpython/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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: XMLPARSEAPI
    functionSourceFile: /src/cpython/Modules/expat/expat_external.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XMLPARSEAPI(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswalnum
      Src: /src/cpython/Modules/_sre/sre.c:62,1
    - Dst: btowc
      Src: /src/cpython/Modules/_sre/sre.c:62,1
    - Dst: isalnum
      Src: /src/cpython/Modules/_sre/sre.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: sre_isalnum
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - btowc
    - iswalnum
    - isalnum
    linkageType: ''
    returnType: int
    signature: int sre_isalnum(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: towlower
      Src: /src/cpython/Modules/_sre/sre.c:70,1
    - Dst: btowc
      Src: /src/cpython/Modules/_sre/sre.c:70,1
    - Dst: tolower
      Src: /src/cpython/Modules/_sre/sre.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: sre_tolower
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - towlower
    - btowc
    - tolower
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_tolower(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: towupper
      Src: /src/cpython/Modules/_sre/sre.c:78,1
    - Dst: btowc
      Src: /src/cpython/Modules/_sre/sre.c:78,1
    - Dst: toupper
      Src: /src/cpython/Modules/_sre/sre.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: sre_toupper
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - btowc
    - towupper
    - toupper
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_toupper(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: LOCAL
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    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: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: LOCAL
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: INIT_TRACE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_TRACE(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: TRACE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: TRACE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 16
    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: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: SRE_IS_DIGIT
    functionSourceFile: /src/cpython/Modules/_sre/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: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: SRE_IS_SPACE
    functionSourceFile: /src/cpython/Modules/_sre/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: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: SRE_IS_LINEBREAK
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    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: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: SRE_IS_WORD
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_IS_WORD(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/cpython/Modules/_sre/sre.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: sre_lower_ascii
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    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: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: SRE_LOC_IS_ALNUM
    functionSourceFile: /src/cpython/Modules/_sre/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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: SRE_LOC_IS_WORD
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_LOC_IS_WORD(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_tolower
      Src: /src/cpython/Modules/_sre/sre.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: sre_lower_locale
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_tolower
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_lower_locale(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_toupper
      Src: /src/cpython/Modules/_sre/sre.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: sre_upper_locale
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_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: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: SRE_UNI_IS_DIGIT
    functionSourceFile: /src/cpython/Modules/_sre/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: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: SRE_UNI_IS_SPACE
    functionSourceFile: /src/cpython/Modules/_sre/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: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: SRE_UNI_IS_LINEBREAK
    functionSourceFile: /src/cpython/Modules/_sre/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: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: SRE_UNI_IS_ALNUM
    functionSourceFile: /src/cpython/Modules/_sre/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: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: SRE_UNI_IS_WORD
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_UNI_IS_WORD(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_TOLOWER
      Src: /src/cpython/Modules/_sre/sre.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: sre_lower_unicode
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    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/cpython/Modules/_sre/sre.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: sre_upper_unicode
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    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/cpython/Modules/_sre/sre.c:188,1
    - Dst: SRE_IS_DIGIT
      Src: /src/cpython/Modules/_sre/sre.c:190,1
    - Dst: SRE_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:192,1
    - Dst: SRE_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:194,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:196,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:198,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:200,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:202,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:205,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:207,1
    - Dst: SRE_UNI_IS_DIGIT
      Src: /src/cpython/Modules/_sre/sre.c:210,1
    - Dst: SRE_UNI_IS_DIGIT
      Src: /src/cpython/Modules/_sre/sre.c:212,1
    - Dst: SRE_UNI_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:214,1
    - Dst: SRE_UNI_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:216,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:218,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:220,1
    - Dst: SRE_UNI_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:222,1
    - Dst: SRE_UNI_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 2
    argNames:
    - category
    - ch
    argTypes:
    - SRE_CODE
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 227
    functionName: sre_category
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - SRE_IS_WORD
    - SRE_IS_DIGIT
    - SRE_LOC_IS_WORD
    - SRE_UNI_IS_DIGIT
    - SRE_UNI_IS_SPACE
    - SRE_UNI_IS_WORD
    - SRE_IS_SPACE
    - SRE_IS_LINEBREAK
    - SRE_UNI_IS_LINEBREAK
    linkageType: ''
    returnType: void
    signature: void sre_category(SRE_CODE category, unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_locale
      Src: /src/cpython/Modules/_sre/sre.c:233,1
    - Dst: sre_upper_locale
      Src: /src/cpython/Modules/_sre/sre.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - pattern
    - ch
    argTypes:
    - SRE_CODE
    - SRE_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: char_loc_ignore
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_upper_locale
    - sre_lower_locale
    linkageType: ''
    returnType: void
    signature: void char_loc_ignore(SRE_CODE pattern, SRE_CODE ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: data_stack_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void data_stack_dealloc(SRE_STATE* state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre.c:253,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:260,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_sre/sre.c:261,1
    - Dst: data_stack_dealloc
      Src: /src/cpython/Modules/_sre/sre.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - state
    - size
    argTypes:
    - SRE_STATE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 270
    functionName: data_stack_grow
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - INIT_TRACE
    - data_stack_dealloc
    - PyMem_Realloc
    - TRACE
    linkageType: ''
    returnType: int
    signature: int data_stack_grow(SRE_STATE* state, Py_ssize_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_sre/sre.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 305
    functionName: repeat_pool_malloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    linkageType: ''
    returnType: SRE_REPEAT
    signature: 'SRE_REPEAT *

      repeat_pool_malloc(SRE_STATE *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - state
    - repeat
    argTypes:
    - SRE_STATE*
    - SRE_REPEAT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 327
    functionName: repeat_pool_free
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repeat_pool_free(SRE_STATE *state, SRE_REPEAT *repeat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:338,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: repeat_pool_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void repeat_pool_clear(SRE_STATE *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    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: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    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: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_sre/sre.c:387,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: get_sre_module_state
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: _sremodulestate
    signature: '_sremodulestate *

      get_sre_module_state(PyObject *m)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cls
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: get_sre_module_state_by_class
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_sre_module_state_by_class(cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: _PatternObject_CAST
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PatternObject_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: 402
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 402
    functionName: _MatchObject_CAST
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MatchObject_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: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: _TemplateObject_CAST
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TemplateObject_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: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    functionName: _ScannerObject_CAST
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ScannerObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: _sre_getcodesize_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _sre_getcodesize_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISALPHA
      Src: /src/cpython/Modules/_sre/sre.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: _sre_ascii_iscased_impl
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:453,1
    - Dst: sre_upper_unicode
      Src: /src/cpython/Modules/_sre/sre.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 454
    functionName: _sre_unicode_iscased_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_lower_unicode
    - sre_upper_unicode
    linkageType: ''
    returnType: int
    signature: int _sre_unicode_iscased_impl(PyObject *module, int character)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_ascii
      Src: /src/cpython/Modules/_sre/sre.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: _sre_ascii_tolower_impl
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: _sre_unicode_tolower_impl
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 498
    functionName: state_reset
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - data_stack_dealloc
    linkageType: ''
    returnType: void
    signature: void state_reset(SRE_STATE* state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:511,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:512,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_sre/sre.c:513,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_sre/sre.c:515,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sre/sre.c:519,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sre/sre.c:520,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:521,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:530,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    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: 536
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 536
    functionName: getstring
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyErr_SetString
    - PyObject_GetBuffer
    - Py_TYPE
    - PyBuffer_Release
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_DATA
    - 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/cpython/Modules/_sre/sre.c:548,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_sre/sre.c:550,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sre/sre.c:552,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:559,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:564,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:569,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:596,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:610,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:613,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 5
    argNames:
    - state
    - pattern
    - string
    - start
    - end
    argTypes:
    - SRE_STATE*
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 615
    functionName: state_init
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - memset
    - Py_NewRef
    - PyMem_Free
    - PyMem_New
    - PyBuffer_Release
    - PyErr_NoMemory
    - getstring
    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/cpython/Modules/_sre/sre.c:621,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sre/sre.c:622,1
    - Dst: data_stack_dealloc
      Src: /src/cpython/Modules/_sre/sre.c:623,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:625,1
    - Dst: repeat_pool_clear
      Src: /src/cpython/Modules/_sre/sre.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 629
    functionName: state_fini
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - repeat_pool_clear
    - Py_XDECREF
    - data_stack_dealloc
    - PyBuffer_Release
    - PyMem_Free
    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: 634
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 634
    functionName: STATE_OFFSET
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_OFFSET(state, member)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_sre/sre.c:640,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:641,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:642,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sre/sre.c:644,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_sre/sre.c:648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - isbytes
    - ptr
    - string
    - start
    - end
    argTypes:
    - int
    - void*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 650
    functionName: getslice
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyUnicode_Substring
    - Py_NewRef
    - PyBytes_GET_SIZE
    - PyBytes_CheckExact
    linkageType: ''
    returnType: void
    signature: "void getslice(int isbytes, const void *ptr,\n         PyObject* string,
      Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:667,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:668,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:672,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - state
    - index
    - string
    - empty
    argTypes:
    - SRE_STATE*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 680
    functionName: state_getslice
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - STATE_OFFSET
    - getslice
    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/cpython/Modules/_sre/sre.c:688,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sre/sre.c:694,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - status
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 706
    functionName: pattern_error
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_NoMemory
    linkageType: ''
    returnType: void
    signature: void pattern_error(Py_ssize_t status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:711,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:712,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:712,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:713,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:714,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:715,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 720
    functionName: pattern_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _PatternObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int pattern_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:725,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:726,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:727,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:728,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 733
    functionName: pattern_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _PatternObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int pattern_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:738,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:739,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_sre/sre.c:740,1
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:740,1
    - Dst: pattern_clear
      Src: /src/cpython/Modules/_sre/sre.c:741,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 744
    functionName: pattern_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - _PatternObject_CAST
    - FT_CLEAR_WEAKREFS
    - PyTypeObject*::tp_free
    - pattern_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pattern_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sre_ucs1_match
      Src: /src/cpython/Modules/_sre/sre.c:750,1
    - Dst: sre_ucs2_match
      Src: /src/cpython/Modules/_sre/sre.c:752,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:753,1
    - Dst: sre_ucs4_match
      Src: /src/cpython/Modules/_sre/sre.c:754,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: 752
        line_start: 752
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 755
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 755
    functionName: sre_match
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached:
    - sre_ucs1_match
    - assert
    - sre_ucs4_match
    - sre_ucs2_match
    linkageType: ''
    returnType: void
    signature: void sre_match(SRE_STATE* state, SRE_CODE* pattern)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sre_ucs1_search
      Src: /src/cpython/Modules/_sre/sre.c:761,1
    - Dst: sre_ucs2_search
      Src: /src/cpython/Modules/_sre/sre.c:763,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:764,1
    - Dst: sre_ucs4_search
      Src: /src/cpython/Modules/_sre/sre.c:765,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: 763
        line_start: 763
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 766
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 766
    functionName: sre_search
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_ucs2_search
    - sre_ucs4_search
    - assert
    - sre_ucs1_search
    linkageType: ''
    returnType: void
    signature: void sre_search(SRE_STATE* state, SRE_CODE* pattern)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:786,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:791,1
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre.c:794,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:797,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:797,1
    - Dst: sre_match
      Src: /src/cpython/Modules/_sre/sre.c:799,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:799,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:801,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:801,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:802,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:803,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:807,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - self
    - cls
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 810
    functionName: _sre_SRE_Pattern_match_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - PyErr_Occurred
    - state_fini
    - TRACE
    - sre_match
    - INIT_TRACE
    - pattern_new_match
    - state_init
    - get_sre_module_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_match_impl(PatternObject *self, PyTypeObject
      *cls,\n                            PyObject *string, Py_ssize_t pos,\n                            Py_ssize_t
      endpos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:830,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:835,1
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre.c:838,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:841,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:841,1
    - Dst: sre_match
      Src: /src/cpython/Modules/_sre/sre.c:844,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:844,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:846,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:846,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:847,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:848,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:852,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cls
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 855
    functionName: _sre_SRE_Pattern_fullmatch_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - PyErr_Occurred
    - state_fini
    - TRACE
    - sre_match
    - INIT_TRACE
    - pattern_new_match
    - state_init
    - get_sre_module_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyTypeObject
      *cls,\n                                PyObject *string, Py_ssize_t pos,\n                                Py_ssize_t
      endpos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:878,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:883,1
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre.c:886,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:887,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:887,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:889,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:889,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:891,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:891,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:893,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:894,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:898,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - cls
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 901
    functionName: _sre_SRE_Pattern_search_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - sre_search
    - PyErr_Occurred
    - state_fini
    - TRACE
    - INIT_TRACE
    - pattern_new_match
    - state_init
    - get_sre_module_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_search_impl(PatternObject *self, PyTypeObject
      *cls,\n                             PyObject *string, Py_ssize_t pos,\n                             Py_ssize_t
      endpos)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:923,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:926,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:928,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:936,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:940,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:940,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:941,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:947,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:954,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:955,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:956,1
    - Dst: state_getslice
      Src: /src/cpython/Modules/_sre/sre.c:962,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sre/sre.c:967,1
    - Dst: state_getslice
      Src: /src/cpython/Modules/_sre/sre.c:971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:973,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:976,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:982,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:994,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:995,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: 998
      start: 913
    functionDepth: 3
    functionLinenumber: 913
    functionLinenumberEnd: 998
    functionName: _sre_SRE_Pattern_findall_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - sre_search
    - PatternObject_GetCode
    - state_getslice
    - STATE_OFFSET
    - PyTuple_New
    - Py_DECREF
    - PyErr_Occurred
    - state_fini
    - PyTuple_SET_ITEM
    - PyList_Append
    - getslice
    - state_init
    - state_reset
    - pattern_error
    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: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:1021,1
    - Dst: pattern_scanner
      Src: /src/cpython/Modules/_sre/sre.c:1026,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_sre/sre.c:1030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1031,1
    - Dst: PyCallIter_New
      Src: /src/cpython/Modules/_sre/sre.c:1035,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1039
    functionName: _sre_SRE_Pattern_finditer_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - pattern_scanner
    - Py_DECREF
    - PyObject_GetAttrString
    - PyCallIter_New
    - get_sre_module_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyTypeObject
      *cls,\n                               PyObject *string, Py_ssize_t pos,\n                               Py_ssize_t
      endpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:1058,1
    - Dst: pattern_scanner
      Src: /src/cpython/Modules/_sre/sre.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - cls
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1061
    functionName: _sre_SRE_Pattern_scanner_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - pattern_scanner
    - get_sre_module_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyTypeObject
      *cls,\n                              PyObject *string, Py_ssize_t pos,\n                              Py_ssize_t
      endpos)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:1085,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:1087,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:1090,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1092,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:1101,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:1105,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:1105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1106,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:1112,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1117,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1118,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1119,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1124,1
    - Dst: state_getslice
      Src: /src/cpython/Modules/_sre/sre.c:1130,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1134,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1146,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1147,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1152,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1160,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1161,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: 1084
        line_start: 1084
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 1164
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1164
    functionName: _sre_SRE_Pattern_split_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - sre_search
    - PatternObject_GetCode
    - Py_DECREF
    - STATE_OFFSET
    - state_getslice
    - PyErr_Occurred
    - state_fini
    - PyList_Append
    - getslice
    - state_init
    - state_reset
    - assert
    - pattern_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject
      *string,\n                            Py_ssize_t maxsplit)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Modules/_sre/sre.c:1171,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_sre/sre.c:1173,1
    - Dst: _Py_atomic_compare_exchange_ptr
      Src: /src/cpython/Modules/_sre/sre.c:1179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1180,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sre/sre.c:1184,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sre/sre.c:1189,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sre/sre.c:1191,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:1194,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sre/sre.c:1194,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sre/sre.c:1195,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sre/sre.c:1198,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_sre/sre.c:1198,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sre/sre.c:1199,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sre/sre.c:1209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1210,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:1213,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sre/sre.c:1214,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:1216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1217,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - module_state
    - pattern
    argTypes:
    - _sremodulestate*
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1221
    functionName: compile_template
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyBytes_CheckExact
    - PyObject_CheckBuffer
    - PyUnicode_CheckExact
    - FT_ATOMIC_LOAD_PTR
    - _Py_atomic_compare_exchange_ptr
    - PyObject_Vectorcall
    - PyErr_ExceptionMatches
    - Py_XSETREF
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncompile_template(_sremodulestate *module_state,\n                 PatternObject
      *pattern, PyObject *template)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_sre/sre.c:1247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1249,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:1255,1
    - Dst: memchr
      Src: /src/cpython/Modules/_sre/sre.c:1258,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_sre/sre.c:1260,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sre/sre.c:1262,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:1266,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1268,1
    - Dst: compile_template
      Src: /src/cpython/Modules/_sre/sre.c:1272,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:1276,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:1276,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1277,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sre/sre.c:1278,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1279,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:1288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1289,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:1293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1295,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1296,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:1304,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:1308,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:1308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1309,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:1315,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1319,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1320,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1324,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1329,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:1337,1
    - Dst: expand_template
      Src: /src/cpython/Modules/_sre/sre.c:1341,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:1345,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sre/sre.c:1346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1348,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1353,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1359,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1372,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1377,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1384,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1389,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1393,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_sre/sre.c:1398,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_sre/sre.c:1400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1402,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_sre/sre.c:1408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1413,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1415,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 140
    argCount: 6
    argNames:
    - module_state
    - self
    - ptemplate
    - string
    - count
    - subn
    argTypes:
    - _sremodulestate*
    - PatternObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (Py_TYPE(filter) == module_state->Template_Type)
      pos:
        line_end: 1275
        line_start: 1275
        source_file: /src/cpython/Modules/_sre/sre.c
    - condition: (filter_type == CALLABLE)
      pos:
        line_end: 1344
        line_start: 1344
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 1418
      start: 1225
    functionDepth: 3
    functionLinenumber: 1225
    functionLinenumberEnd: 1418
    functionName: pattern_subx
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyUnicode_Join
    - Py_SETREF
    - PyObject_CallOneArg
    - PyErr_Occurred
    - PyList_Append
    - PyList_GET_SIZE
    - PyUnicode_FindChar
    - pattern_new_match
    - PyBytes_Join
    - PyErr_Clear
    - pattern_error
    - sre_search
    - PatternObject_GetCode
    - Py_DECREF
    - Py_BuildValue
    - Py_SIZE
    - state_fini
    - PyCallable_Check
    - Py_NewRef
    - state_init
    - state_reset
    - Py_TYPE
    - STATE_OFFSET
    - getslice
    - expand_template
    - memchr
    - PyBuffer_Release
    - compile_template
    - assert
    - getstring
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npattern_subx(_sremodulestate* module_state,\n             PatternObject*
      self,\n             PyObject* ptemplate,\n             PyObject* string,\n             Py_ssize_t
      count,\n             Py_ssize_t subn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:1438,1
    - Dst: pattern_subx
      Src: /src/cpython/Modules/_sre/sre.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - cls
    - repl
    - string
    - count
    argTypes:
    - PatternObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1433
    functionDepth: 4
    functionLinenumber: 1433
    functionLinenumberEnd: 1441
    functionName: _sre_SRE_Pattern_sub_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - get_sre_module_state_by_class
    - pattern_subx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_sub_impl(PatternObject *self, PyTypeObject
      *cls,\n                          PyObject *repl, PyObject *string, Py_ssize_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:1462,1
    - Dst: pattern_subx
      Src: /src/cpython/Modules/_sre/sre.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - cls
    - repl
    - string
    - count
    argTypes:
    - PatternObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1456
    functionDepth: 4
    functionLinenumber: 1456
    functionLinenumberEnd: 1465
    functionName: _sre_SRE_Pattern_subn_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - get_sre_module_state_by_class
    - pattern_subx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_subn_impl(PatternObject *self, PyTypeObject
      *cls,\n                           PyObject *repl, PyObject *string,\n                           Py_ssize_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1472
    functionDepth: 0
    functionLinenumber: 1472
    functionLinenumberEnd: 1477
    functionName: _sre_SRE_Pattern___copy___impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern___copy___impl(PatternObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - PatternObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1492
    functionName: _sre_SRE_Pattern___deepcopy___impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern___deepcopy___impl(PatternObject *self, PyObject *memo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sre/sre.c:1511,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sre/sre.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - count
    - exception
    argTypes:
    - PatternObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1514
    functionName: _sre_SRE_Pattern__fail_after_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern__fail_after_impl(PatternObject *self,
      int count,\n                                  PyObject *exception)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:1534,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:1546,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:1550,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sre/sre.c:1552,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1560,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:1565,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1573,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_sre/sre.c:1576,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sre/sre.c:1578,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_sre/sre.c:1581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1582,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:1585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1587,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:1590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1594,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1596
    functionName: pattern_repr
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyUnicode_Join
    - _PatternObject_CAST
    - PyList_Append
    - PyUnicode_FromFormat
    - PyList_Size
    - Py_ARRAY_LENGTH
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:1604,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_sre/sre.c:1606,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Modules/_sre/sre.c:1607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1608
    functionName: pattern_groupindex
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _PatternObject_CAST
    - PyDictProxy_New
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_groupindex(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state
      Src: /src/cpython/Modules/_sre/sre.c:1632,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1636,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Modules/_sre/sre.c:1638,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1653,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_sre/sre.c:1654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1655,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:1660,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:1665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1668,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:1680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1682,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:1686,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1689,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1695,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1696,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1697,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1698,1
    - Dst: _validate
      Src: /src/cpython/Modules/_sre/sre.c:1702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1703,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    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: 1708
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1708
    functionName: _sre_compile_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyLong_AsUnsignedLong
    - PyObject_GC_NewVar
    - _validate
    - get_sre_module_state
    - Py_NewRef
    - PyObject_GC_Track
    - PyBuffer_Release
    - getstring
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state
      Src: /src/cpython/Modules/_sre/sre.c:1730,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1732,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Modules/_sre/sre.c:1737,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1741,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1741,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:1743,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1743,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1744,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1746,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1750,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1755,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:1757,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:1757,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_sre/sre.c:1758,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1758,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sre/sre.c:1763,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:1765,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:1769,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sre/sre.c:1770,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - module
    - pattern
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1722
    functionDepth: 2
    functionLinenumber: 1722
    functionLinenumberEnd: 1772
    functionName: _sre_template_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_XDECREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyObject_GC_NewVar
    - get_sre_module_state
    - Py_NewRef
    - PyBytes_Check
    - PyObject_GC_Track
    - PyBytes_GET_SIZE
    - Py_XNewRef
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_template_impl(PyObject *module, PyObject *pattern, PyObject *template)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1805
    functionName: VTRACE
    functionSourceFile: /src/cpython/Modules/_sre/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: 1807
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1807
    functionName: VTRACE
    functionSourceFile: /src/cpython/Modules/_sre/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: 1838
      start: 1827
    functionDepth: 0
    functionLinenumber: 1827
    functionLinenumberEnd: 1838
    functionName: GET_SKIP_ADJ
    functionSourceFile: /src/cpython/Modules/_sre/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: 1924
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1924
    functionName: _validate_charset
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _validate_charset(SRE_CODE *code, SRE_CODE *end)
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:1935,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:1950,1
    - Dst: _validate_charset
      Src: /src/cpython/Modules/_sre/sre.c:2004,1
    - Dst: _validate_charset
      Src: /src/cpython/Modules/_sre/sre.c:2058,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2065,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2079,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2110,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2130,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2148,1
    - Dst: GET_SKIP_ADJ
      Src: /src/cpython/Modules/_sre/sre.c:2173,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2200,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2201,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2203,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2206,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2219,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2230,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2239,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 225
    argCount: 3
    argNames:
    - code
    - end
    - groups
    argTypes:
    - SRE_CODE*
    - SRE_CODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 2241
    functionName: _validate_inner
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached:
    - _validate_inner
    - VTRACE
    - _validate_charset
    - GET_SKIP_ADJ
    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/cpython/Modules/_sre/sre.c:2249,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: 2250
      start: 2243
    functionDepth: 2
    functionLinenumber: 2243
    functionLinenumberEnd: 2250
    functionName: _validate_outer
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:2255,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2257,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2252
    functionDepth: 3
    functionLinenumber: 2252
    functionLinenumberEnd: 2263
    functionName: _validate
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _validate_outer
    - VTRACE
    linkageType: ''
    returnType: int
    signature: int _validate(PatternObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2271,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2272,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2272,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2273,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2274,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2268
    functionDepth: 1
    functionLinenumber: 2268
    functionLinenumberEnd: 2277
    functionName: match_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int match_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2282,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2283,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2284,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2287
    functionName: match_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int match_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2292,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:2293,1
    - Dst: match_clear
      Src: /src/cpython/Modules/_sre/sre.c:2294,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:2295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2289
    functionDepth: 2
    functionLinenumber: 2289
    functionLinenumberEnd: 2297
    functionName: match_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - match_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void match_dealloc(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:2309,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2314,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:2317,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_sre/sre.c:2323,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_sre/sre.c:2324,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:2325,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:2327,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - self
    - index
    - def
    argTypes:
    - MatchObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (0 <= index && index < self->groups)
      pos:
        line_end: 2308
        line_start: 2308
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 2329
      start: 2299
    functionDepth: 2
    functionLinenumber: 2299
    functionLinenumberEnd: 2329
    functionName: match_getslice_by_index
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - getslice
    - Py_NewRef
    - PyBuffer_Release
    - assert
    - getstring
    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/cpython/Modules/_sre/sre.c:2340,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2341,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_sre/sre.c:2347,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sre/sre.c:2348,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2349,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:2355,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2356,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:2362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts:
    - condition: (i <= SRE_MAXGROUPS)
      pos:
        line_end: 2361
        line_start: 2361
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 2364
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2364
    functionName: match_getindex
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - assert
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyNumber_AsSsize_t
    - PyIndex_Check
    - PyLong_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/cpython/Modules/_sre/sre.c:2369,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:2375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - index
    - def
    argTypes:
    - MatchObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2366
    functionDepth: 3
    functionLinenumber: 2366
    functionLinenumberEnd: 2376
    functionName: match_getslice
    functionSourceFile: /src/cpython/Modules/_sre/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:2391,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2391,1
    - Dst: compile_template
      Src: /src/cpython/Modules/_sre/sre.c:2392,1
    - Dst: expand_template
      Src: /src/cpython/Modules/_sre/sre.c:2396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2387
    functionDepth: 2
    functionLinenumber: 2387
    functionLinenumberEnd: 2399
    functionName: _sre_SRE_Match_expand_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - expand_template
    - compile_template
    - Py_TYPE
    - get_sre_module_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2404,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:2408,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2412,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_sre/sre.c:2412,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2415,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2415,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sre/sre.c:2419,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2423,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2427,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2401
    functionDepth: 4
    functionLinenumber: 2401
    functionLinenumberEnd: 2435
    functionName: match_group
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - _PyLong_GetZero
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_SET_ITEM
    - match_getslice
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_group(PyObject *op, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2440,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2437
    functionDepth: 4
    functionLinenumber: 2437
    functionLinenumberEnd: 2442
    functionName: match_getitem
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - match_getslice
    - _MatchObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_getitem(PyObject *op, PyObject* name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sre/sre.c:2460,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:2466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2468,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2475
    functionName: _sre_SRE_Match_groups_impl
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:2497,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_sre/sre.c:2501,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Modules/_sre/sre.c:2502,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sre/sre.c:2504,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2507,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2508,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_sre/sre.c:2511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2513,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2515,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_sre/sre.c:2520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2487
    functionDepth: 4
    functionLinenumber: 2487
    functionLinenumberEnd: 2523
    functionName: _sre_SRE_Match_groupdict_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_INCREF
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - match_getslice
    - PyDict_New
    - _PyDict_SetItem_KnownHash
    - Py_CLEAR
    - _PyDict_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_getindex
      Src: /src/cpython/Modules/_sre/sre.c:2538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2534
    functionDepth: 2
    functionLinenumber: 2534
    functionLinenumberEnd: 2546
    functionName: _sre_SRE_Match_start_impl
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:2561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2557
    functionDepth: 2
    functionLinenumber: 2557
    functionLinenumberEnd: 2569
    functionName: _sre_SRE_Match_end_impl
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:2577,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2581,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2584,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2586,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - i1
    - i2
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2596
    functionName: _pair
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 2
    functionsReached:
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    - 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/cpython/Modules/_sre/sre.c:2611,1
    - Dst: _pair
      Src: /src/cpython/Modules/_sre/sre.c:2618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2607
    functionDepth: 2
    functionLinenumber: 2607
    functionLinenumberEnd: 2619
    functionName: _sre_SRE_Match_span_impl
    functionSourceFile: /src/cpython/Modules/_sre/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/cpython/Modules/_sre/sre.c:2628,1
    - Dst: _pair
      Src: /src/cpython/Modules/_sre/sre.c:2633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2635,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2638,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2621
    functionDepth: 2
    functionLinenumber: 2621
    functionLinenumberEnd: 2644
    functionName: match_regs
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - _pair
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_regs(MatchObject* self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2651
    functionDepth: 0
    functionLinenumber: 2651
    functionLinenumberEnd: 2656
    functionName: _sre_SRE_Match___copy___impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match___copy___impl(MatchObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2671
    functionName: _sre_SRE_Match___deepcopy___impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match___deepcopy___impl(MatchObject *self, PyObject *memo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2685,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2682
    functionDepth: 1
    functionLinenumber: 2682
    functionLinenumberEnd: 2689
    functionName: match_lastindex_get
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_lastindex_get(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2694,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:2697,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2691
    functionDepth: 1
    functionLinenumber: 2691
    functionLinenumberEnd: 2704
    functionName: match_lastgroup_get
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _MatchObject_CAST
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_lastgroup_get(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2709,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2711,1
    - Dst: match_regs
      Src: /src/cpython/Modules/_sre/sre.c:2713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2706
    functionDepth: 3
    functionLinenumber: 2706
    functionLinenumberEnd: 2714
    functionName: match_regs_get
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _MatchObject_CAST
    - match_regs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_regs_get(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2719,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:2721,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:2724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2716
    functionDepth: 3
    functionLinenumber: 2716
    functionLinenumberEnd: 2730
    functionName: match_repr
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - Py_DECREF
    - match_getslice_by_index
    - PyUnicode_FromFormat
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_repr(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Modules/_sre/sre.c:2750,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sre/sre.c:2756,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2782,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:2793,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:2804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - module_state
    - pattern
    - state
    - status
    argTypes:
    - _sremodulestate*
    - PatternObject*
    - SRE_STATE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2733
    functionDepth: 2
    functionLinenumber: 2733
    functionLinenumberEnd: 2806
    functionName: pattern_new_match
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 4
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyErr_SetString
    - PyObject_GC_NewVar
    - Py_NewRef
    - PyObject_GC_Track
    - pattern_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npattern_new_match(_sremodulestate* module_state,\n                  PatternObject*
      pattern,\n                  SRE_STATE* state,\n                  Py_ssize_t
      status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ScannerObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2815,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2816,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2816,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2812
    functionDepth: 1
    functionLinenumber: 2812
    functionLinenumberEnd: 2819
    functionName: scanner_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _ScannerObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int scanner_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ScannerObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2824,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2821
    functionDepth: 1
    functionLinenumber: 2821
    functionLinenumberEnd: 2827
    functionName: scanner_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - _ScannerObject_CAST
    linkageType: ''
    returnType: int
    signature: int scanner_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2832,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:2833,1
    - Dst: _ScannerObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2834,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:2835,1
    - Dst: scanner_clear
      Src: /src/cpython/Modules/_sre/sre.c:2836,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:2837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2829
    functionDepth: 3
    functionLinenumber: 2829
    functionLinenumberEnd: 2839
    functionName: scanner_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - state_fini
    - PyTypeObject*::tp_free
    - scanner_clear
    - _ScannerObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void scanner_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ScannerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2851
    functionName: scanner_begin
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int scanner_begin(ScannerObject* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:2856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - ScannerObject*
    assertStmts:
    - condition: (self->executing)
      pos:
        line_end: 2855
        line_start: 2855
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 2858
      start: 2853
    functionDepth: 0
    functionLinenumber: 2853
    functionLinenumberEnd: 2858
    functionName: scanner_end
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void scanner_end(ScannerObject* self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:2872,1
    - Dst: scanner_begin
      Src: /src/cpython/Modules/_sre/sre.c:2877,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2881,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:2885,1
    - Dst: sre_match
      Src: /src/cpython/Modules/_sre/sre.c:2889,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:2889,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:2890,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2891,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:2895,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2905,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ScannerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2868
    functionDepth: 3
    functionLinenumber: 2868
    functionLinenumberEnd: 2907
    functionName: _sre_SRE_Scanner_match_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - scanner_end
    - PatternObject_GetCode
    - PyErr_Occurred
    - sre_match
    - pattern_new_match
    - get_sre_module_state_by_class
    - state_reset
    - scanner_begin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_match_impl(ScannerObject *self, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:2922,1
    - Dst: scanner_begin
      Src: /src/cpython/Modules/_sre/sre.c:2927,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2931,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:2935,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:2939,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:2939,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:2940,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2941,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:2945,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ScannerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2918
    functionDepth: 3
    functionLinenumber: 2918
    functionLinenumberEnd: 2957
    functionName: _sre_SRE_Scanner_search_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - scanner_end
    - sre_search
    - PatternObject_GetCode
    - PyErr_Occurred
    - pattern_new_match
    - get_sre_module_state_by_class
    - state_reset
    - scanner_begin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_search_impl(ScannerObject *self, PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_sre/sre.c:2969,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:2976,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2977,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sre/sre.c:2981,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:2984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - module_state
    - self
    - string
    - pos
    - endpos
    argTypes:
    - _sremodulestate*
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2959
    functionDepth: 3
    functionLinenumber: 2959
    functionLinenumberEnd: 2986
    functionName: pattern_scanner
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyObject_GC_Track
    - state_init
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npattern_scanner(_sremodulestate *module_state,\n                PatternObject
      *self,\n                PyObject *string,\n                Py_ssize_t pos,\n
      \               Py_ssize_t endpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _TemplateObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2994,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2995,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2995,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2996,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:2997,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2991
    functionDepth: 1
    functionLinenumber: 2991
    functionLinenumberEnd: 3001
    functionName: template_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_TYPE
    - _TemplateObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int template_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _TemplateObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:3006,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3007,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:3008,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 3003
    functionDepth: 1
    functionLinenumber: 3003
    functionLinenumberEnd: 3012
    functionName: template_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_CLEAR
    - _TemplateObject_CAST
    linkageType: ''
    returnType: int
    signature: int template_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3017,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:3018,1
    - Dst: template_clear
      Src: /src/cpython/Modules/_sre/sre.c:3019,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:3020,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 3014
    functionDepth: 0
    functionLinenumber: 3014
    functionLinenumberEnd: 3022
    functionName: template_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - template_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void template_dealloc(PyObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:3027,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3028,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:3038,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:3039,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:3041,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:3045,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3048,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:3049,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:3052,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:3055,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3062,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3066,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:3070,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/cpython/Modules/_sre/sre.c:3071,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_sre/sre.c:3071,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:3074,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_sre/sre.c:3075,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_sre/sre.c:3075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3084,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - self
    - match
    argTypes:
    - TemplateObject*
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3024
    functionDepth: 3
    functionLinenumber: 3024
    functionLinenumberEnd: 3088
    functionName: expand_template
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_SET_SIZE
    - PyList_GET_ITEM
    - Py_DECREF
    - _PyUnicode_JoinArray
    - match_getslice_by_index
    - Py_SIZE
    - PyErr_SetString
    - _Py_STR
    - Py_NewRef
    - _Py_SINGLETON
    - PyBytes_Join
    - PyUnicode_Check
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      expand_template(TemplateObject *self, MatchObject *match)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:3094,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_sre/sre.c:3098,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Modules/_sre/sre.c:3103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3091
    functionDepth: 1
    functionLinenumber: 3091
    functionLinenumberEnd: 3114
    functionName: pattern_hash
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _PatternObject_CAST
    - PyObject_Hash
    - Py_HashBuffer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t pattern_hash(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3119,1
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:3120,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3128,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sre/sre.c:3135,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_sre/sre.c:3149,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_sre/sre.c:3153,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sre/sre.c:3162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - lefto
    - righto
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3163
      start: 3116
    functionDepth: 1
    functionLinenumber: 3116
    functionLinenumberEnd: 3163
    functionName: pattern_richcompare
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyObject_RichCompareBool
    - memcmp
    - PyBool_FromLong
    - Py_TYPE
    - get_sre_module_state_by_class
    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: 3192
      start: 3191
    functionDepth: 0
    functionLinenumber: 3191
    functionLinenumberEnd: 3192
    functionName: PAT_OFF
    functionSourceFile: /src/cpython/Modules/_sre/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: 3251
      start: 3250
    functionDepth: 0
    functionLinenumber: 3250
    functionLinenumberEnd: 3251
    functionName: MATCH_OFF
    functionSourceFile: /src/cpython/Modules/_sre/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: 3301
      start: 3300
    functionDepth: 0
    functionLinenumber: 3300
    functionLinenumberEnd: 3301
    functionName: SCAN_OFF
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCAN_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state
      Src: /src/cpython/Modules/_sre/sre.c:3353,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3355,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3356,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3357,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3358,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3350
    functionDepth: 2
    functionLinenumber: 3350
    functionLinenumberEnd: 3362
    functionName: sre_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - get_sre_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int sre_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state
      Src: /src/cpython/Modules/_sre/sre.c:3367,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3369,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3370,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3371,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3372,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3376
      start: 3364
    functionDepth: 2
    functionLinenumber: 3364
    functionLinenumberEnd: 3376
    functionName: sre_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - get_sre_module_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int sre_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_clear
      Src: /src/cpython/Modules/_sre/sre.c:3381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3378
    functionDepth: 3
    functionLinenumber: 3378
    functionLinenumberEnd: 3382
    functionName: sre_free
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_clear
    linkageType: ''
    returnType: void
    signature: void sre_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - type
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3384
    functionDepth: 0
    functionLinenumber: 3384
    functionLinenumberEnd: 3391
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(m, type, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - module
    - ','
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3392
    functionDepth: 0
    functionLinenumber: 3392
    functionLinenumberEnd: 3398
    functionName: ADD_ULONG_CONSTANT
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ULONG_CONSTANT(module, name, value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state
      Src: /src/cpython/Modules/_sre/sre.c:3405,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3406,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3407,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3408,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3409,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_sre/sre.c:3411,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_sre/sre.c:3415,1
    - Dst: ADD_ULONG_CONSTANT
      Src: /src/cpython/Modules/_sre/sre.c:3419,1
    - Dst: ADD_ULONG_CONSTANT
      Src: /src/cpython/Modules/_sre/sre.c:3420,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_sre/sre.c:3422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3399
    functionDepth: 2
    functionLinenumber: 3399
    functionLinenumberEnd: 3430
    functionName: sre_exec
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - ADD_ULONG_CONSTANT
    - CREATE_TYPE
    - get_sre_module_state
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int sre_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_sre/sre.c:3453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3450
    functionDepth: 1
    functionLinenumber: 3450
    functionLinenumberEnd: 3454
    functionName: PyInit__sre
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sre(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre_lib.h:30,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre_lib.h:34,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre_lib.h:39,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:46,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:48,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:53,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:55,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:60,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:62,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:67,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:69,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:74,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:76,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:81,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre_lib.h:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 3
    argNames:
    - state
    - ptr
    - at
    argTypes:
    - SRE_STATE*
    - SRE_CHAR*
    - SRE_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 89
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - SRE_IS_WORD
    - SRE_LOC_IS_WORD
    - SRE_UNI_IS_WORD
    - SRE_IS_LINEBREAK
    linkageType: ''
    returnType: void
    signature: void SRE(at)(SRE_STATE* state, const SRE_CHAR* ptr, SRE_CODE at)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sre_category
      Src: /src/cpython/Modules/_sre/sre_lib.h:113,1
    - Dst: sre_upper_unicode
      Src: /src/cpython/Modules/_sre/sre_lib.h:140,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: 176
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 176
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - sre_category
    - sre_upper_unicode
    linkageType: ''
    returnType: void
    signature: void SRE(charset)(SRE_STATE* state, const SRE_CODE* set, SRE_CODE ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_locale
      Src: /src/cpython/Modules/_sre/sre_lib.h:182,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:183,1
    - Dst: sre_upper_locale
      Src: /src/cpython/Modules/_sre/sre_lib.h:186,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:187,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: 188
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 1
    functionsReached:
    - sre_upper_locale
    - sre_lower_locale
    - SRE
    linkageType: ''
    returnType: void
    signature: void SRE(charset_loc_ignore)(SRE_STATE* state, const SRE_CODE* set,
      SRE_CODE ch)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:200,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:210,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:211,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:217,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre_lib.h:218,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:225,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:232,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:246,1
    - Dst: sre_lower_ascii
      Src: /src/cpython/Modules/_sre/sre_lib.h:247,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:254,1
    - Dst: sre_lower_unicode
      Src: /src/cpython/Modules/_sre/sre_lib.h:255,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:262,1
    - Dst: char_loc_ignore
      Src: /src/cpython/Modules/_sre/sre_lib.h:263,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:270,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:284,1
    - Dst: sre_lower_ascii
      Src: /src/cpython/Modules/_sre/sre_lib.h:285,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:292,1
    - Dst: sre_lower_unicode
      Src: /src/cpython/Modules/_sre/sre_lib.h:293,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:300,1
    - Dst: char_loc_ignore
      Src: /src/cpython/Modules/_sre/sre_lib.h:301,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:307,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:309,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:315,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:320,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 87
    argCount: 3
    argNames:
    - state
    - pattern
    - maxcount
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 323
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 2
    functionsReached:
    - SRE_IS_LINEBREAK
    - SRE
    - TRACE
    - INIT_TRACE
    - sre_lower_unicode
    - char_loc_ignore
    - sre_lower_ascii
    linkageType: ''
    returnType: void
    signature: void SRE(count)(SRE_STATE* state, const SRE_CODE* pattern, Py_ssize_t
      maxcount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: LASTMARK_SAVE
    functionSourceFile: /src/cpython/Modules/_sre/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: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: LASTMARK_RESTORE
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LASTMARK_RESTORE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: LAST_PTR_PUSH
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAST_PTR_PUSH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: LAST_PTR_POP
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAST_PTR_POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: RETURN_ERROR
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    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: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: RETURN_ON_ERROR
    functionSourceFile: /src/cpython/Modules/_sre/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: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: RETURN_ON_SUCCESS
    functionSourceFile: /src/cpython/Modules/_sre/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: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: RETURN_ON_FAILURE
    functionSourceFile: /src/cpython/Modules/_sre/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: 402
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 402
    functionName: DATA_STACK_ALLOC
    functionSourceFile: /src/cpython/Modules/_sre/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: 408
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: DATA_STACK_LOOKUP_AT
    functionSourceFile: /src/cpython/Modules/_sre/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: 422
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 422
    functionName: DATA_STACK_PUSH
    functionSourceFile: /src/cpython/Modules/_sre/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: 434
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: DATA_STACK_POP
    functionSourceFile: /src/cpython/Modules/_sre/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: 441
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: DATA_STACK_POP_DISCARD
    functionSourceFile: /src/cpython/Modules/_sre/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: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: DATA_PUSH
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 29
    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: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: DATA_POP
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 7
    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: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: DATA_POP_DISCARD
    functionSourceFile: /src/cpython/Modules/_sre/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: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: DATA_ALLOC
    functionSourceFile: /src/cpython/Modules/_sre/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: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: DATA_LOOKUP_AT
    functionSourceFile: /src/cpython/Modules/_sre/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:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: PTR_TO_INDEX
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_INDEX(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - lastmark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: MARK_TRACE
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_TRACE(label, lastmark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lastmark
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: MARK_PUSH
    functionSourceFile: /src/cpython/Modules/_sre/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: 483
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: MARK_POP
    functionSourceFile: /src/cpython/Modules/_sre/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: 489
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: MARK_POP_KEEP
    functionSourceFile: /src/cpython/Modules/_sre/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: 495
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: MARK_POP_DISCARD
    functionSourceFile: /src/cpython/Modules/_sre/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: 529
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: DO_JUMPX
    functionSourceFile: /src/cpython/Modules/_sre/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: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: DO_JUMP
    functionSourceFile: /src/cpython/Modules/_sre/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: 535
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 535
    functionName: DO_JUMP0
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_JUMP0(jumpvalue, jumplabel, nextpattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 586
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TARGET(OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 593
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TARGET(OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 668
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_MARK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:906,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 925
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - SRE
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_REPEAT_ONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1007,1
    - Dst: RETURN_ON_ERROR
      Src: /src/cpython/Modules/_sre/sre_lib.h:1008,1
    - Dst: DATA_LOOKUP_AT
      Src: /src/cpython/Modules/_sre/sre_lib.h:1009,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1016
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - RETURN_ON_ERROR
    - DATA_LOOKUP_AT
    - SRE
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_MIN_REPEAT_ONE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1080
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_POSSESSIVE_REPEAT_ONE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR
      Src: /src/cpython/Modules/_sre/sre_lib.h:1128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1129
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - RETURN_ERROR
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_REPEAT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DO_JUMP
      Src: /src/cpython/Modules/_sre/sre_lib.h:1168,1
    - Dst: RETURN_ON_ERROR
      Src: /src/cpython/Modules/_sre/sre_lib.h:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1177
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - RETURN_ON_ERROR
    - DO_JUMP
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_MAX_UNTIL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DO_JUMP
      Src: /src/cpython/Modules/_sre/sre_lib.h:1232,1
    - Dst: RETURN_ON_ERROR
      Src: /src/cpython/Modules/_sre/sre_lib.h:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1241
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - RETURN_ON_ERROR
    - DO_JUMP
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_MIN_UNTIL)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1460
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_GROUPREF)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_ascii
      Src: /src/cpython/Modules/_sre/sre_lib.h:1479,1
    - Dst: sre_lower_ascii
      Src: /src/cpython/Modules/_sre/sre_lib.h:1479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1464
    functionDepth: 2
    functionLinenumber: 1464
    functionLinenumberEnd: 1485
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - sre_lower_ascii
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_GROUPREF_IGNORE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_unicode
      Src: /src/cpython/Modules/_sre/sre_lib.h:1504,1
    - Dst: sre_lower_unicode
      Src: /src/cpython/Modules/_sre/sre_lib.h:1504,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1489
    functionDepth: 2
    functionLinenumber: 1489
    functionLinenumberEnd: 1510
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - sre_lower_unicode
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_GROUPREF_UNI_IGNORE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_locale
      Src: /src/cpython/Modules/_sre/sre_lib.h:1529,1
    - Dst: sre_lower_locale
      Src: /src/cpython/Modules/_sre/sre_lib.h:1529,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1535
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - sre_lower_locale
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_GROUPREF_LOC_IGNORE)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1539
    functionDepth: 0
    functionLinenumber: 1539
    functionLinenumberEnd: 1556
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_GROUPREF_EXISTS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LASTMARK_SAVE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1580,1
    - Dst: MARK_PUSH
      Src: /src/cpython/Modules/_sre/sre_lib.h:1582,1
    - Dst: DO_JUMP0
      Src: /src/cpython/Modules/_sre/sre_lib.h:1584,1
    - Dst: MARK_POP_DISCARD
      Src: /src/cpython/Modules/_sre/sre_lib.h:1587,1
    - Dst: RETURN_ON_ERROR
      Src: /src/cpython/Modules/_sre/sre_lib.h:1588,1
    - Dst: MARK_POP
      Src: /src/cpython/Modules/_sre/sre_lib.h:1592,1
    - Dst: LASTMARK_RESTORE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1594
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached:
    - RETURN_ON_ERROR
    - LASTMARK_RESTORE
    - MARK_POP
    - MARK_PUSH
    - DO_JUMP0
    - MARK_POP_DISCARD
    - LASTMARK_SAVE
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_ASSERT_NOT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1626
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TARGET(SRE_OP_RANGE_UNI_IGNORE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1690
    functionName: RESET_CAPTURE_GROUP
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET_CAPTURE_GROUP()
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1703,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1715,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1742,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1744,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1760,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1765,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/cpython/Modules/_sre/sre_lib.h:1769,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1806,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1811,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/cpython/Modules/_sre/sre_lib.h:1817,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1830,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1834,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1837,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/cpython/Modules/_sre/sre_lib.h:1841,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre_lib.h:1845,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1846,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1848,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/cpython/Modules/_sre/sre_lib.h:1859,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1860,1
    - Dst: SRE
      Src: /src/cpython/Modules/_sre/sre_lib.h:1862,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 126
    argCount: 2
    argNames:
    - state
    - pattern
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    assertStmts:
    - condition: (ptr <= end)
      pos:
        line_end: 1844
        line_start: 1844
        source_file: /src/cpython/Modules/_sre/sre_lib.h
    constantsTouched: []
    func_position:
      end: 1867
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1867
    functionName: SRE
    functionSourceFile: /src/cpython/Modules/_sre/sre_lib.h
    functionUses: 5
    functionsReached:
    - SRE
    - TRACE
    - INIT_TRACE
    - RESET_CAPTURE_GROUP
    - assert
    linkageType: ''
    returnType: void
    signature: void SRE(search)(SRE_STATE* state, SRE_CODE* pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: PatternObject_GetCode
    functionSourceFile: /src/cpython/Modules/_sre/sre.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PatternObject_GetCode(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sre_getcodesize_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:29,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:30,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: _sre_getcodesize
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _sre_getcodesize_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_getcodesize(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:57,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:58,1
    - Dst: _sre_ascii_iscased_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:61,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:62,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: _sre_ascii_iscased
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - _sre_ascii_iscased_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_ascii_iscased(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:89,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:90,1
    - Dst: _sre_unicode_iscased_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:93,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:94,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: _sre_unicode_iscased
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - _sre_unicode_iscased_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_unicode_iscased(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:121,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:122,1
    - Dst: _sre_ascii_tolower_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:125,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:126,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: _sre_ascii_tolower
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - _sre_ascii_tolower_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_ascii_tolower(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:154,1
    - Dst: _sre_unicode_tolower_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:158,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: _sre_unicode_tolower
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _sre_unicode_tolower_impl
    - PyLong_FromLong
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_unicode_tolower(PyObject *module, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:194,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:196,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:196,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:196,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:213,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:218,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:230,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:233,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:235,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:246,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:249,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:251,1
    - Dst: _sre_SRE_Pattern_match_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:257,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 261
    functionName: _sre_SRE_Pattern_match
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _sre_SRE_Pattern_match_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_match(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:290,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:292,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:309,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:314,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:326,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:329,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:331,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:342,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:345,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:347,1
    - Dst: _sre_SRE_Pattern_fullmatch_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:353,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 277
    functionDepth: 4
    functionLinenumber: 277
    functionLinenumberEnd: 357
    functionName: _sre_SRE_Pattern_fullmatch
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sre_SRE_Pattern_fullmatch_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_fullmatch(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:388,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:390,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:390,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:390,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:407,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:412,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:424,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:427,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:429,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:440,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:443,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:445,1
    - Dst: _sre_SRE_Pattern_search_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:451,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 455
    functionName: _sre_SRE_Pattern_search
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _sre_SRE_Pattern_search_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_search(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:483,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:485,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:485,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:485,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:502,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:507,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:519,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:522,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:524,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:535,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:538,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:540,1
    - Dst: _sre_SRE_Pattern_findall_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:546,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 550
    functionName: _sre_SRE_Pattern_findall
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sre_SRE_Pattern_findall_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_findall(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:581,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:583,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:583,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:583,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:600,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:605,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:617,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:620,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:622,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:633,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:636,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:638,1
    - Dst: _sre_SRE_Pattern_finditer_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:644,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 648
    functionName: _sre_SRE_Pattern_finditer
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sre_SRE_Pattern_finditer_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_finditer(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:676,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:678,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:678,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:678,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:695,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:700,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:712,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:715,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:717,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:728,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:731,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:733,1
    - Dst: _sre_SRE_Pattern_scanner_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:739,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 743
    functionName: _sre_SRE_Pattern_scanner
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _sre_SRE_Pattern_scanner_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_scanner(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:771,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:773,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:773,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:790,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:794,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:805,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:810,1
    - Dst: _sre_SRE_Pattern_split_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:816,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 820
    functionName: _sre_SRE_Pattern_split
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _sre_SRE_Pattern_split_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:848,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:850,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:850,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:850,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:867,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:872,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:884,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:887,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:889,1
    - Dst: _sre_SRE_Pattern_sub_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:895,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 835
    functionDepth: 5
    functionLinenumber: 835
    functionLinenumberEnd: 899
    functionName: _sre_SRE_Pattern_sub
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _sre_SRE_Pattern_sub_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_sub(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:928,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:930,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:930,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:930,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:947,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:952,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:964,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:967,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:969,1
    - Dst: _sre_SRE_Pattern_subn_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:975,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 915
    functionDepth: 5
    functionLinenumber: 915
    functionLinenumberEnd: 979
    functionName: _sre_SRE_Pattern_subn
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sre_SRE_Pattern_subn_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_subn(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Pattern___copy___impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: _sre_SRE_Pattern___copy__
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Pattern___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern___copy__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Pattern___deepcopy___impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1017
    functionName: _sre_SRE_Pattern___deepcopy__
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Pattern___deepcopy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern___deepcopy__(PyObject *self, PyObject *memo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1041,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1044,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1045,1
    - Dst: _sre_SRE_Pattern__fail_after_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1049,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1053
    functionName: _sre_SRE_Pattern__fail_after
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _sre_SRE_Pattern__fail_after_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern__fail_after(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1084,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1086,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1086,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1086,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1086,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1086,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1086,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1110,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1117,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1120,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1121,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1127,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1130,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1132,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1137,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1138,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1142,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1143,1
    - Dst: _sre_compile_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1147,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1151
    functionName: _sre_compile
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - _Py_ID
    - PyTuple_Check
    - PyList_Check
    - _sre_compile_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyDict_Check
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1177,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1181,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1182,1
    - Dst: _sre_template_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1170
    functionDepth: 3
    functionLinenumber: 1170
    functionLinenumberEnd: 1190
    functionName: _sre_template
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_template_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_template(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1217,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1219,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1238,1
    - Dst: _sre_SRE_Match_expand_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1204
    functionDepth: 3
    functionLinenumber: 1204
    functionLinenumberEnd: 1248
    functionName: _sre_SRE_Match_expand
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match_expand_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_expand(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1280,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1297,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1300,1
    - Dst: _sre_SRE_Match_groups_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1265
    functionDepth: 4
    functionLinenumber: 1265
    functionLinenumberEnd: 1314
    functionName: _sre_SRE_Match_groups
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match_groups_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groups(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1344,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1346,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1363,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1366,1
    - Dst: _sre_SRE_Match_groupdict_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1331
    functionDepth: 5
    functionLinenumber: 1331
    functionLinenumberEnd: 1380
    functionName: _sre_SRE_Match_groupdict
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sre_SRE_Match_groupdict_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groupdict(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1401,1
    - Dst: _sre_SRE_Match_start_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1409,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1410,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1394
    functionDepth: 3
    functionLinenumber: 1394
    functionLinenumberEnd: 1417
    functionName: _sre_SRE_Match_start
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    - _sre_SRE_Match_start_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_start(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1438,1
    - Dst: _sre_SRE_Match_end_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1446,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1447,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1454
    functionName: _sre_SRE_Match_end
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _sre_SRE_Match_end_impl
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_end(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1474,1
    - Dst: _sre_SRE_Match_span_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1486
    functionName: _sre_SRE_Match_span
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match_span_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_span(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Match___copy___impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1503
    functionName: _sre_SRE_Match___copy__
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match___copy__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Match___deepcopy___impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1524
    functionName: _sre_SRE_Match___deepcopy__
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match___deepcopy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match___deepcopy__(PyObject *self, PyObject *memo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1540,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1541,1
    - Dst: _sre_SRE_Scanner_match_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1537
    functionDepth: 4
    functionLinenumber: 1537
    functionLinenumberEnd: 1545
    functionName: _sre_SRE_Scanner_match
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _sre_SRE_Scanner_match_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_match(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1562,1
    - Dst: _sre_SRE_Scanner_search_impl
      Src: /src/cpython/Modules/_sre/clinic/sre.c.h:1565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1558
    functionDepth: 4
    functionLinenumber: 1558
    functionLinenumberEnd: 1566
    functionName: _sre_SRE_Scanner_search
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _sre_SRE_Scanner_search_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_search(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:52,1
    - Dst: sqlite3_stricmp
      Src: /src/cpython/Modules/_sqlite/connection.c:62,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts:
    - condition: (level != NULL)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: get_isolation_level
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      get_isolation_level(const char *level)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/connection.c:75,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:78,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Modules/_sqlite/connection.c:79,1
    - Dst: get_isolation_level
      Src: /src/cpython/Modules/_sqlite/connection.c:83,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - str_or_none
    - result
    argTypes:
    - PyObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 95
    functionName: isolation_level_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - get_isolation_level
    - PyErr_SetString
    - _PyUnicode_AsUTF8NoNUL
    - Py_IsNone
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int isolation_level_converter(PyObject *str_or_none, const char **result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_sqlite/connection.c:100,1
    - Dst: Py_IsFalse
      Src: /src/cpython/Modules/_sqlite/connection.c:104,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:108,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_sqlite/connection.c:109,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - val
    - result
    argTypes:
    - PyObject*
    - enum autocommit_mode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 119
    functionName: autocommit_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_IsFalse
    - Py_IsTrue
    - PyLong_AsLong
    - PyErr_SetString
    - PyLong_Check
    linkageType: ''
    returnType: int
    signature: int autocommit_converter(PyObject *val, enum autocommit_mode *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:125,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:128,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - result
    argTypes:
    - PyObject*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: sqlite3_int64_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _pysqlite_long_as_int64
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int sqlite3_int64_converter(PyObject *obj, sqlite3_int64 *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: _pysqlite_Connection_CAST
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pysqlite_Connection_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/connection.c:158,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:165,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - state
    - maxsize
    argTypes:
    - pysqlite_Connection*
    - pysqlite_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: new_statement_cache
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    - Py_DECREF
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_statement_cache(pysqlite_Connection *self, pysqlite_state
      *state,\n                    int maxsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/connection.c:182,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:184,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/connection.c:186,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/connection.c:187,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - sql
    argTypes:
    - pysqlite_Connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: connection_exec_stmt
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - strlen
    - sqlite3_prepare_v2
    - sqlite3_step
    - set_error_from_db
    - sqlite3_finalize
    linkageType: ''
    returnType: int
    signature: int connection_exec_stmt(pysqlite_Connection *self, const char *sql)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_sqlite/connection.c:238,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_sqlite/connection.c:243,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:250,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/connection.c:251,1
    - Dst: connection_close
      Src: /src/cpython/Modules/_sqlite/connection.c:252,1
    - Dst: sqlite3_open_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:261,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/connection.c:261,1
    - Dst: sqlite3_busy_timeout
      Src: /src/cpython/Modules/_sqlite/connection.c:265,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:271,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/connection.c:275,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:275,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:277,1
    - Dst: new_statement_cache
      Src: /src/cpython/Modules/_sqlite/connection.c:282,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/connection.c:288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:290,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/connection.c:294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:297,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_sqlite/connection.c:308,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:313,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:314,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_sqlite/connection.c:331,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:338,1
    - Dst: sqlite3_close
      Src: /src/cpython/Modules/_sqlite/connection.c:347,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:348,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 82
    argCount: 10
    argNames:
    - self
    - database
    - timeout
    - detect_types
    - isolation_level
    - check_same_thread
    - factory
    - cache_size
    - uri
    - autocommit
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - double
    - int
    - char*
    - int
    - PyObject*
    - int
    - int
    - enum autocommit_mode
    assertStmts:
    - condition: (rc == SQLITE_OK)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 350
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 350
    functionName: pysqlite_connection_init_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - sqlite3_close
    - connection_close
    - sqlite3_busy_timeout
    - PyTypeObject*::tp_clear
    - new_statement_cache
    - PySys_Audit
    - PyThread_get_thread_ident
    - Py_DECREF
    - Py_NewRef
    - PyUnicode_FSConverter
    - set_error_from_db
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyErr_NoMemory
    - sqlite3_open_v2
    - connection_exec_stmt
    - pysqlite_get_state_by_type
    - assert
    linkageType: ''
    returnType: int
    signature: "int pysqlite_connection_init_impl(pysqlite_Connection *self, PyObject
      *database,\n                              double timeout, int detect_types,\n
      \                             const char *isolation_level,\n                              int
      check_same_thread, PyObject *factory,\n                              int cache_size,
      int uri,\n                              enum autocommit_mode autocommit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: VISIT_CALLBACK_CONTEXT
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT_CALLBACK_CONTEXT(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:391,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:392,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:392,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:393,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:394,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:395,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:396,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:397,1
    - Dst: VISIT_CALLBACK_CONTEXT
      Src: /src/cpython/Modules/_sqlite/connection.c:398,1
    - Dst: VISIT_CALLBACK_CONTEXT
      Src: /src/cpython/Modules/_sqlite/connection.c:399,1
    - Dst: VISIT_CALLBACK_CONTEXT
      Src: /src/cpython/Modules/_sqlite/connection.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 403
    functionName: connection_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _pysqlite_Connection_CAST
    - VISIT_CALLBACK_CONTEXT
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int connection_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:409,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 412
    functionName: clear_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void clear_callback_context(callback_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:417,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:418,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:419,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:421,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:422,1
    - Dst: clear_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:423,1
    - Dst: clear_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:424,1
    - Dst: clear_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: connection_clear
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - clear_callback_context
    - _pysqlite_Connection_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int connection_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:432,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:433,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: free_callback_contexts
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - set_callback_context
    linkageType: ''
    returnType: void
    signature: void free_callback_contexts(pysqlite_Connection *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:442,1
    - Dst: sqlite3_trace_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:443,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:444,1
    - Dst: sqlite3_progress_handler
      Src: /src/cpython/Modules/_sqlite/connection.c:446,1
    - Dst: sqlite3_set_authorizer
      Src: /src/cpython/Modules/_sqlite/connection.c:448,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (rc == SQLITE_OK)
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (rc == SQLITE_OK)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: remove_callbacks
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_progress_handler
    - sqlite3_set_authorizer
    - sqlite3_trace_v2
    - assert
    linkageType: ''
    returnType: void
    signature: void remove_callbacks(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:461,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:463,1
    - Dst: sqlite3_close_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 479
    functionName: connection_close
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - connection_exec_stmt
    - sqlite3_get_autocommit
    - sqlite3_close_v2
    linkageType: ''
    returnType: int
    signature: int connection_close(pysqlite_Connection *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:485,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_sqlite/connection.c:489,1
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Modules/_sqlite/connection.c:490,1
    - Dst: remove_callbacks
      Src: /src/cpython/Modules/_sqlite/connection.c:492,1
    - Dst: PyErr_ResourceWarning
      Src: /src/cpython/Modules/_sqlite/connection.c:497,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:499,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/connection.c:500,1
    - Dst: connection_close
      Src: /src/cpython/Modules/_sqlite/connection.c:505,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/connection.c:507,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/connection.c:510,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:515,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 516
    functionName: connection_finalize
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - PyErr_ResourceWarning
    - PyErr_GetRaisedException
    - connection_close
    - _Py_IsInterpreterFinalizing
    - PyErr_FormatUnraisable
    - PyErr_ExceptionMatches
    - remove_callbacks
    - PyErr_Clear
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void connection_finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/_sqlite/connection.c:521,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:524,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/connection.c:525,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/connection.c:526,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/connection.c:527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 529
    functionName: connection_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_CallFinalizerFromDealloc
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void connection_dealloc(PyObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:545,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:545,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/connection.c:553,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_sqlite/connection.c:556,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:557,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:560,1
    - Dst: _pysqlite_drop_unused_cursor_references
      Src: /src/cpython/Modules/_sqlite/connection.c:564,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/connection.c:567,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/connection.c:568,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - factory
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 572
    functionName: pysqlite_connection_cursor_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - Py_INCREF
    - PyObject_TypeCheck
    - Py_DECREF
    - pysqlite_check_thread
    - _pysqlite_drop_unused_cursor_references
    - PyObject_CallOneArg
    - Py_XSETREF
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_cursor_impl(pysqlite_Connection *self, PyObject *factory)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:598,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:598,1
    - Dst: sqlite3_blob_open
      Src: /src/cpython/Modules/_sqlite/connection.c:606,1
    - Dst: set_error_from_code
      Src: /src/cpython/Modules/_sqlite/connection.c:610,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:614,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_sqlite/connection.c:618,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:623,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sqlite/connection.c:628,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:631,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/connection.c:635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:636,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:644,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 6
    argNames:
    - self
    - table
    - col
    - row
    - readonly
    - name
    argTypes:
    - pysqlite_Connection*
    - char*
    - char*
    - sqlite3_int64
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 646
    functionName: blobopen_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - Py_XDECREF
    - PyWeakref_NewRef
    - Py_DECREF
    - set_error_from_code
    - sqlite3_blob_open
    - PyList_Append
    - pysqlite_check_thread
    - Py_NewRef
    - PyObject_GC_Track
    - set_error_from_db
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nblobopen_impl(pysqlite_Connection *self, const char *table,
      const char *col,\n              sqlite3_int64 row, int readonly, const char
      *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:660,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:665,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/connection.c:666,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:667,1
    - Dst: pysqlite_close_all_blobs
      Src: /src/cpython/Modules/_sqlite/connection.c:672,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:673,1
    - Dst: connection_close
      Src: /src/cpython/Modules/_sqlite/connection.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 679
    functionName: pysqlite_connection_close_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - pysqlite_check_thread
    - PyErr_SetString
    - connection_close
    - pysqlite_close_all_blobs
    - pysqlite_get_state_by_type
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_close_impl(pysqlite_Connection *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/connection.c:689,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:689,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:690,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 702
    functionName: pysqlite_check_connection
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 2
    functionsReached:
    - pysqlite_get_state_by_type
    - PyErr_SetString
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int pysqlite_check_connection(pysqlite_Connection* con)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:716,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:716,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:721,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:722,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:728,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:731,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 736
    functionName: pysqlite_connection_commit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - connection_exec_stmt
    - pysqlite_check_thread
    - sqlite3_get_autocommit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_commit_impl(pysqlite_Connection *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:750,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:750,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:755,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:756,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:762,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:765,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 770
    functionName: pysqlite_connection_rollback_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - connection_exec_stmt
    - pysqlite_check_thread
    - sqlite3_get_autocommit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_rollback_impl(pysqlite_Connection *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_null
      Src: /src/cpython/Modules/_sqlite/connection.c:776,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:777,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:778,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:779,1
    - Dst: sqlite3_result_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:781,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:782,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/connection.c:783,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:784,1
    - Dst: sqlite3_result_double
      Src: /src/cpython/Modules/_sqlite/connection.c:787,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:788,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:790,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:795,1
    - Dst: sqlite3_result_text
      Src: /src/cpython/Modules/_sqlite/connection.c:799,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sqlite/connection.c:800,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/connection.c:802,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:806,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:808,1
    - Dst: sqlite3_result_blob
      Src: /src/cpython/Modules/_sqlite/connection.c:811,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:812,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:814,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:815,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:818,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - context
    - py_val
    argTypes:
    - sqlite3_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 822
    functionName: _pysqlite_set_result
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - sqlite3_user_data
    - sqlite3_result_int64
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_Format
    - PyUnicode_Check
    - sqlite3_result_blob
    - sqlite3_result_text
    - sqlite3_result_null
    - PyUnicode_AsUTF8AndSize
    - PyLong_Check
    - PyObject_GetBuffer
    - Py_TYPE
    - PyFloat_Check
    - sqlite3_result_double
    - PyObject_CheckBuffer
    - _pysqlite_long_as_int64
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int _pysqlite_set_result(sqlite3_context* context, PyObject* py_val)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/connection.c:833,1
    - Dst: sqlite3_value_type
      Src: /src/cpython/Modules/_sqlite/connection.c:840,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/connection.c:842,1
    - Dst: sqlite3_value_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:842,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_sqlite/connection.c:845,1
    - Dst: sqlite3_value_double
      Src: /src/cpython/Modules/_sqlite/connection.c:845,1
    - Dst: sqlite3_context_db_handle
      Src: /src/cpython/Modules/_sqlite/connection.c:848,1
    - Dst: sqlite3_value_text
      Src: /src/cpython/Modules/_sqlite/connection.c:849,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/connection.c:851,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:852,1
    - Dst: sqlite3_value_bytes
      Src: /src/cpython/Modules/_sqlite/connection.c:856,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:857,1
    - Dst: sqlite3_context_db_handle
      Src: /src/cpython/Modules/_sqlite/connection.c:861,1
    - Dst: sqlite3_value_blob
      Src: /src/cpython/Modules/_sqlite/connection.c:862,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/connection.c:864,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:865,1
    - Dst: sqlite3_value_bytes
      Src: /src/cpython/Modules/_sqlite/connection.c:869,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:870,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:875,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/connection.c:882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:888,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 890
    functionName: _pysqlite_build_py_params
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_text
    - PyTuple_New
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - sqlite3_errcode
    - sqlite3_value_blob
    - PyTuple_SET_ITEM
    - sqlite3_value_int64
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - Py_NewRef
    - sqlite3_value_double
    - sqlite3_value_bytes
    - PyLong_FromLongLong
    - PyFloat_FromDouble
    - sqlite3_context_db_handle
    - sqlite3_value_type
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pysqlite_build_py_params(sqlite3_context *context, int
      argc,\n                          sqlite3_value **argv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:895,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:896,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/connection.c:898,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/connection.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx->state != NULL)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 904
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 904
    functionName: print_or_clear_traceback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: void
    signature: void print_or_clear_traceback(callback_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:910,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:911,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/cpython/Modules/_sqlite/connection.c:912,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:914,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/cpython/Modules/_sqlite/connection.c:915,1
    - Dst: sqlite3_result_error
      Src: /src/cpython/Modules/_sqlite/connection.c:918,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:920,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - context
    - msg
    argTypes:
    - sqlite3_context*
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 909
        line_start: 909
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 922
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 922
    functionName: set_sqlite_error
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - sqlite3_user_data
    - PyErr_ExceptionMatches
    - print_or_clear_traceback
    - sqlite3_result_error_nomem
    - sqlite3_result_error
    - sqlite3_result_error_toobig
    - assert
    linkageType: ''
    returnType: void
    signature: void set_sqlite_error(sqlite3_context *context, const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:927,1
    - Dst: _pysqlite_build_py_params
      Src: /src/cpython/Modules/_sqlite/connection.c:933,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:935,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:936,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_sqlite/connection.c:937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:938,1
    - Dst: _pysqlite_set_result
      Src: /src/cpython/Modules/_sqlite/connection.c:943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:944,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:947,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 951
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 951
    functionName: func_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - Py_DECREF
    - _pysqlite_build_py_params
    - _pysqlite_set_result
    - PyGILState_Release
    - sqlite3_user_data
    - PyObject_CallObject
    - set_sqlite_error
    - assert
    linkageType: ''
    returnType: void
    signature: void func_callback(sqlite3_context *context, int argc, sqlite3_value
      **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:956,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:963,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:964,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:966,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:968,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:969,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:973,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:975,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_sqlite/connection.c:981,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:983,1
    - Dst: _pysqlite_build_py_params
      Src: /src/cpython/Modules/_sqlite/connection.c:988,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_sqlite/connection.c:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:994,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:997,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1002,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1003,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1005,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - context
    - argc
    - params
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 963
        line_start: 963
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1006
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 1006
    functionName: step_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - sqlite3_aggregate_context
    - PyObject_CallNoArgs
    - Py_DECREF
    - _pysqlite_build_py_params
    - Py_XDECREF
    - PyGILState_Release
    - sqlite3_user_data
    - PyObject_GetAttr
    - PyObject_CallObject
    - set_sqlite_error
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: void
    signature: void step_callback(sqlite3_context *context, int argc, sqlite3_value
      **params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1011,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1017,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:1030,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:1032,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1033,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1036,1
    - Dst: _pysqlite_set_result
      Src: /src/cpython/Modules/_sqlite/connection.c:1040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1041,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:1044,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/connection.c:1045,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1051,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:1056,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1060,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1061
      start: 1008
    functionDepth: 3
    functionLinenumber: 1008
    functionLinenumberEnd: 1061
    functionName: final_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - sqlite3_aggregate_context
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - PyErr_GetRaisedException
    - _pysqlite_set_result
    - PyGILState_Release
    - sqlite3_user_data
    - PyObject_CallMethodNoArgs
    - PyErr_ExceptionMatches
    - set_sqlite_error
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void final_callback(sqlite3_context *context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/connection.c:1072,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_sqlite/connection.c:1077,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_sqlite/connection.c:1078,1
    - Dst: _PyWeakref_IsDead
      Src: /src/cpython/Modules/_sqlite/connection.c:1079,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/connection.c:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1083,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1088,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1089
    functionName: _pysqlite_drop_unused_cursor_references
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - PyList_GetItem
    - Py_DECREF
    - PyList_Append
    - Py_SETREF
    - PyList_Size
    - _PyWeakref_IsDead
    linkageType: ''
    returnType: void
    signature: void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_sqlite/connection.c:1100,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_sqlite/connection.c:1102,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:1103,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:1104,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/connection.c:1105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cls
    - callable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1108
    functionName: create_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyType_GetModule
    - pysqlite_get_state
    - PyMem_Malloc
    linkageType: ''
    returnType: callback_context
    signature: 'callback_context *

      create_callback_context(PyTypeObject *cls, PyObject *callable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1113,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1114,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1115,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sqlite/connection.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1112
        line_start: 1112
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1117
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1117
    functionName: free_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void free_callback_context(callback_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1122,1
    - Dst: free_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx_pp
    - ctx
    argTypes:
    - callback_context**
    - callback_context*
    assertStmts:
    - condition: (ctx_pp != NULL)
      pos:
        line_end: 1121
        line_start: 1121
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1128
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1128
    functionName: set_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - free_callback_context
    - assert
    linkageType: ''
    returnType: void
    signature: void set_callback_context(callback_context **ctx_pp, callback_context
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1136,1
    - Dst: free_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1137,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1140
    functionName: destructor_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - free_callback_context
    - PyGILState_Release
    linkageType: ''
    returnType: void
    signature: void destructor_callback(void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_limit
      Src: /src/cpython/Modules/_sqlite/connection.c:1145,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1146,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - n
    - name
    argTypes:
    - pysqlite_Connection*
    - int
    - char*
    assertStmts:
    - condition: (limit >= 0)
      pos:
        line_end: 1145
        line_start: 1145
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1154
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1154
    functionName: check_num_params
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_limit
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_num_params(pysqlite_Connection *self, const int n, const
      char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1180,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1180,1
    - Dst: check_num_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1183,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1190,1
    - Dst: sqlite3_create_function_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1194,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - self
    - cls
    - name
    - narg
    - func
    - deterministic
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - char*
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1206
    functionName: pysqlite_connection_create_function_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - check_num_params
    - sqlite3_create_function_v2
    - pysqlite_check_thread
    - create_callback_context
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_create_function_impl(pysqlite_Connection
      *self,\n                                         PyTypeObject *cls, const char
      *name,\n                                         int narg, PyObject *func,\n
      \                                        int deterministic)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1219,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:1221,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1222,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1225,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1226,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1227,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_sqlite/connection.c:1229,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1231,1
    - Dst: _pysqlite_build_py_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1236,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1238,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_sqlite/connection.c:1244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1245,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1251,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1254,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - context
    - argc
    - params
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 1225
        line_start: 1225
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx != NULL)
      pos:
        line_end: 1221
        line_start: 1221
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (*cls != NULL)
      pos:
        line_end: 1226
        line_start: 1226
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1256
      start: 1216
    functionDepth: 3
    functionLinenumber: 1216
    functionLinenumberEnd: 1256
    functionName: inverse_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - sqlite3_aggregate_context
    - Py_XDECREF
    - Py_DECREF
    - _pysqlite_build_py_params
    - PyGILState_Release
    - sqlite3_user_data
    - PyObject_GetAttr
    - PyObject_CallObject
    - set_sqlite_error
    - assert
    linkageType: ''
    returnType: void
    signature: void inverse_callback(sqlite3_context *context, int argc, sqlite3_value
      **params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1267,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:1269,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1270,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1273,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1274,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1275,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1277,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:1279,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1280,1
    - Dst: _pysqlite_set_result
      Src: /src/cpython/Modules/_sqlite/connection.c:1285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1286,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1288,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1269
        line_start: 1269
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (cls != NULL)
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (*cls != NULL)
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1295
      start: 1264
    functionDepth: 3
    functionLinenumber: 1264
    functionLinenumberEnd: 1295
    functionName: value_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - sqlite3_aggregate_context
    - Py_DECREF
    - _pysqlite_set_result
    - PyGILState_Release
    - sqlite3_user_data
    - PyObject_CallMethodNoArgs
    - PyErr_ExceptionMatches
    - set_sqlite_error
    - assert
    linkageType: ''
    returnType: void
    signature: void value_callback(sqlite3_context *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/cpython/Modules/_sqlite/connection.c:1320,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1321,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1326,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1326,1
    - Dst: check_num_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1329,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/connection.c:1335,1
    - Dst: sqlite3_create_window_function
      Src: /src/cpython/Modules/_sqlite/connection.c:1336,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1340,1
    - Dst: sqlite3_create_window_function
      Src: /src/cpython/Modules/_sqlite/connection.c:1344,1
    - Dst: set_error_from_code
      Src: /src/cpython/Modules/_sqlite/connection.c:1356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - self
    - cls
    - name
    - num_params
    - aggregate_class
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1360
    functionName: create_window_function_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - check_num_params
    - sqlite3_create_window_function
    - set_error_from_code
    - pysqlite_check_thread
    - PyErr_SetString
    - sqlite3_libversion_number
    - create_callback_context
    - Py_IsNone
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncreate_window_function_impl(pysqlite_Connection *self,
      PyTypeObject *cls,\n                            const char *name, int num_params,\n
      \                           PyObject *aggregate_class)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1384,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1384,1
    - Dst: check_num_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1387,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1391,1
    - Dst: sqlite3_create_function_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1395,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cls
    - name
    - n_arg
    - aggregate_class
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1406
    functionName: pysqlite_connection_create_aggregate_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - check_num_params
    - sqlite3_create_function_v2
    - pysqlite_check_thread
    - create_callback_context
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_create_aggregate_impl(pysqlite_Connection
      *self,\n                                          PyTypeObject *cls,\n                                          const
      char *name, int n_arg,\n                                          PyObject *aggregate_class)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1413,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1418,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/connection.c:1420,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1424,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:1428,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/connection.c:1429,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1430,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1438,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - action
    - arg1
    - arg2
    - dbname
    - access_attempt_source
    argTypes:
    - void*
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1417
        line_start: 1417
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1443
      start: 1408
    functionDepth: 2
    functionLinenumber: 1408
    functionLinenumberEnd: 1443
    functionName: authorizer_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyObject_CallFunction
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyGILState_Release
    - PyLong_Check
    - print_or_clear_traceback
    - assert
    linkageType: ''
    returnType: int
    signature: "int authorizer_callback(void *ctx, int action, const char *arg1,\n
      \                   const char *arg2 , const char *dbname,\n                    const
      char *access_attempt_source)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1448,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1453,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1455,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/connection.c:1461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1462,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1465,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1452
        line_start: 1452
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1470
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1470
    functionName: progress_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyObject_CallNoArgs
    - PyObject_IsTrue
    - Py_DECREF
    - PyGILState_Release
    - print_or_clear_traceback
    - assert
    linkageType: ''
    returnType: int
    signature: int progress_callback(void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1485,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1487,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1489,1
    - Dst: sqlite3_expanded_sql
      Src: /src/cpython/Modules/_sqlite/connection.c:1492,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/connection.c:1494,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/connection.c:1495,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:1496,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1500,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1502,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/connection.c:1505,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/connection.c:1508,1
    - Dst: sqlite3_free
      Src: /src/cpython/Modules/_sqlite/connection.c:1509,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/connection.c:1513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1514,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1515,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1517,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1518,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - type
    - ctx
    - stmt
    - sql
    argTypes:
    - unsigned int
    - void*
    - void*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1488
        line_start: 1488
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx != NULL)
      pos:
        line_end: 1486
        line_start: 1486
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1524
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1524
    functionName: trace_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - sqlite3_expanded_sql
    - Py_XDECREF
    - Py_DECREF
    - sqlite3_errcode
    - sqlite3_db_handle
    - PyErr_Occurred
    - PyGILState_Release
    - PyErr_SetString
    - PyUnicode_FromString
    - sqlite3_free
    - PyObject_CallOneArg
    - print_or_clear_traceback
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int trace_callback(unsigned int type, void *ctx, void *stmt, void *sql)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1542,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1542,1
    - Dst: sqlite3_set_authorizer
      Src: /src/cpython/Modules/_sqlite/connection.c:1548,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1549,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1552,1
    - Dst: sqlite3_set_authorizer
      Src: /src/cpython/Modules/_sqlite/connection.c:1556,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1557,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1560,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - cls
    - callable
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1536
    functionDepth: 3
    functionLinenumber: 1536
    functionLinenumberEnd: 1566
    functionName: pysqlite_connection_set_authorizer_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - set_callback_context
    - sqlite3_set_authorizer
    - pysqlite_check_thread
    - create_callback_context
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_set_authorizer_impl(pysqlite_Connection
      *self,\n                                        PyTypeObject *cls,\n                                        PyObject
      *callable)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1593,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1593,1
    - Dst: sqlite3_progress_handler
      Src: /src/cpython/Modules/_sqlite/connection.c:1599,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1600,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1603,1
    - Dst: sqlite3_progress_handler
      Src: /src/cpython/Modules/_sqlite/connection.c:1607,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - cls
    - callable
    - n
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1587
    functionDepth: 3
    functionLinenumber: 1587
    functionLinenumberEnd: 1611
    functionName: pysqlite_connection_set_progress_handler_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - set_callback_context
    - pysqlite_check_thread
    - create_callback_context
    - sqlite3_progress_handler
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_set_progress_handler_impl(pysqlite_Connection
      *self,\n                                              PyTypeObject *cls,\n                                              PyObject
      *callable, int n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1629,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1629,1
    - Dst: sqlite3_trace_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1641,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1642,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1645,1
    - Dst: sqlite3_trace_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1649,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cls
    - callable
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1623
    functionDepth: 3
    functionLinenumber: 1623
    functionLinenumberEnd: 1654
    functionName: pysqlite_connection_set_trace_callback_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - set_callback_context
    - pysqlite_check_thread
    - sqlite3_trace_v2
    - create_callback_context
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_set_trace_callback_impl(pysqlite_Connection
      *self,\n                                            PyTypeObject *cls,\n                                            PyObject
      *callable)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_sqlite/connection.c:1673,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1678,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1678,1
    - Dst: sqlite3_enable_load_extension
      Src: /src/cpython/Modules/_sqlite/connection.c:1682,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - onoff
    argTypes:
    - pysqlite_Connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1666
    functionDepth: 2
    functionLinenumber: 1666
    functionLinenumberEnd: 1691
    functionName: pysqlite_connection_enable_load_extension_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    - sqlite3_enable_load_extension
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_enable_load_extension_impl(pysqlite_Connection
      *self,\n                                               int onoff)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_sqlite/connection.c:1713,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1717,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1717,1
    - Dst: sqlite3_load_extension
      Src: /src/cpython/Modules/_sqlite/connection.c:1721,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - extension_name
    - entrypoint
    argTypes:
    - pysqlite_Connection*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1704
    functionDepth: 2
    functionLinenumber: 1704
    functionLinenumberEnd: 1728
    functionName: pysqlite_connection_load_extension_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    - sqlite3_load_extension
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_load_extension_impl(pysqlite_Connection
      *self,\n                                        const char *extension_name,\n
      \                                       const char *entrypoint)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_sqlite/connection.c:1734,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:1735,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_sqlite/connection.c:1738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1731
    functionDepth: 1
    functionLinenumber: 1731
    functionLinenumberEnd: 1744
    functionName: pysqlite_check_thread
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 13
    functionsReached:
    - PyThread_get_thread_ident
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int pysqlite_check_thread(pysqlite_Connection* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:1749,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1750,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/connection.c:1754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1757
    functionName: pysqlite_connection_get_isolation_level
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - _pysqlite_Connection_CAST
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_get_isolation_level(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:1762,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1763,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/connection.c:1766,1
    - Dst: sqlite3_total_changes
      Src: /src/cpython/Modules/_sqlite/connection.c:1766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1759
    functionDepth: 2
    functionLinenumber: 1759
    functionLinenumberEnd: 1767
    functionName: pysqlite_connection_get_total_changes
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - _pysqlite_Connection_CAST
    - sqlite3_total_changes
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_get_total_changes(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:1772,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1773,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:1776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1769
    functionDepth: 2
    functionLinenumber: 1769
    functionLinenumberEnd: 1780
    functionName: pysqlite_connection_get_in_transaction
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - _pysqlite_Connection_CAST
    - sqlite3_get_autocommit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_get_in_transaction(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:1787,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1789,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/connection.c:1792,1
    - Dst: pysqlite_connection_commit_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:1796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1800,1
    - Dst: isolation_level_converter
      Src: /src/cpython/Modules/_sqlite/connection.c:1803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - op
    - isolation_level
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1782
    functionDepth: 3
    functionLinenumber: 1782
    functionLinenumberEnd: 1807
    functionName: pysqlite_connection_set_isolation_level
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - isolation_level_converter
    - pysqlite_connection_commit_impl
    - Py_DECREF
    - _pysqlite_Connection_CAST
    - PyErr_SetString
    - Py_IsNone
    linkageType: ''
    returnType: int
    signature: "int pysqlite_connection_set_isolation_level(PyObject *op,\n                                        PyObject
      *isolation_level,\n                                        void *Py_UNUSED(ignored))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:1814,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1816,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1816,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_sqlite/connection.c:1820,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_sqlite/connection.c:1823,1
    - Dst: pysqlite_statement_create
      Src: /src/cpython/Modules/_sqlite/connection.c:1826,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - op
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1809
    functionDepth: 2
    functionLinenumber: 1809
    functionLinenumberEnd: 1832
    functionName: pysqlite_connection_call
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - _PyArg_NoKeywords
    - PyArg_ParseTuple
    - pysqlite_statement_create
    - _pysqlite_Connection_CAST
    - pysqlite_check_thread
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_call(PyObject *op, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_cursor_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:1851,1
    - Dst: _pysqlite_query_execute
      Src: /src/cpython/Modules/_sqlite/connection.c:1856,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:1858,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - sql
    - parameters
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1844
    functionDepth: 2
    functionLinenumber: 1844
    functionLinenumberEnd: 1865
    functionName: pysqlite_connection_execute_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_connection_cursor_impl
    - Py_XDECREF
    - Py_CLEAR
    - _pysqlite_query_execute
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_execute_impl(pysqlite_Connection *self,
      PyObject *sql,\n                                 PyObject *parameters)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_cursor_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:1884,1
    - Dst: _pysqlite_query_execute
      Src: /src/cpython/Modules/_sqlite/connection.c:1889,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:1891,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - sql
    - parameters
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1877
    functionDepth: 2
    functionLinenumber: 1877
    functionLinenumberEnd: 1898
    functionName: pysqlite_connection_executemany_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_connection_cursor_impl
    - Py_XDECREF
    - Py_CLEAR
    - _pysqlite_query_execute
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_executemany_impl(pysqlite_Connection
      *self,\n                                     PyObject *sql, PyObject *parameters)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_cursor_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:1916,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1922,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:1924,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - script_obj
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1909
    functionDepth: 2
    functionLinenumber: 1909
    functionLinenumberEnd: 1931
    functionName: pysqlite_connection_executescript_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - pysqlite_connection_cursor_impl
    - Py_XDECREF
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_executescript_impl(pysqlite_Connection
      *self,\n                                       PyObject *script_obj)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1939,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1949,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:1953,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:1957,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1963,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:1966,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_sqlite/connection.c:1972,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1973,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/connection.c:1974,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1985,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1986,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1987,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1988,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 5
    argNames:
    - context
    - text1_length
    - text1_data
    - text2_length
    - text2_data
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1962
        line_start: 1962
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1990
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 1990
    functionName: collation_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyUnicode_FromStringAndSize
    - Py_XDECREF
    - PyLong_AsLongAndOverflow
    - PyGILState_Release
    - PyErr_Occurred
    - PyObject_Vectorcall
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: "int collation_callback(void *context, 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/cpython/Modules/_sqlite/connection.c:2004,1
    - Dst: sqlite3_interrupt
      Src: /src/cpython/Modules/_sqlite/connection.c:2008,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:2010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1998
    functionDepth: 2
    functionLinenumber: 1998
    functionLinenumberEnd: 2014
    functionName: pysqlite_connection_interrupt_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - Py_NewRef
    - sqlite3_interrupt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_interrupt_impl(pysqlite_Connection *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2035,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_sqlite/connection.c:2039,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:2041,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2042,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_sqlite/connection.c:2048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2050,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:2054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - filter
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2030
    functionDepth: 2
    functionLinenumber: 2030
    functionLinenumberEnd: 2058
    functionName: pysqlite_connection_iterdump_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - PyImport_ImportModuleAttrString
    - Py_BuildValue
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_iterdump_impl(pysqlite_Connection
      *self,\n                                  PyObject *filter)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2085,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2085,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2089,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2094,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:2098,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2099,1
    - Dst: sqlite3_backup_init
      Src: /src/cpython/Modules/_sqlite/connection.c:2110,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2114,1
    - Dst: sqlite3_backup_step
      Src: /src/cpython/Modules/_sqlite/connection.c:2120,1
    - Dst: sqlite3_backup_remaining
      Src: /src/cpython/Modules/_sqlite/connection.c:2124,1
    - Dst: sqlite3_backup_pagecount
      Src: /src/cpython/Modules/_sqlite/connection.c:2125,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/connection.c:2126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2135,1
    - Dst: sqlite3_backup_finish
      Src: /src/cpython/Modules/_sqlite/connection.c:2148,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2152,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 6
    argNames:
    - self
    - target
    - pages
    - progress
    - name
    - sleep
    argTypes:
    - pysqlite_Connection*
    - pysqlite_Connection*
    - int
    - PyObject*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2073
    functionDepth: 2
    functionLinenumber: 2073
    functionLinenumberEnd: 2157
    functionName: pysqlite_connection_backup_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - sqlite3_backup_finish
    - PyObject_CallFunction
    - Py_DECREF
    - sqlite3_backup_step
    - pysqlite_check_thread
    - PyErr_SetString
    - sqlite3_backup_remaining
    - PyCallable_Check
    - sqlite3_backup_pagecount
    - sqlite3_backup_init
    - set_error_from_db
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_backup_impl(pysqlite_Connection *self,\n
      \                               pysqlite_Connection *target, int pages,\n                                PyObject
      *progress, const char *name,\n                                double sleep)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2177,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2177,1
    - Dst: sqlite3_create_collation_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:2185,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:2189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2190,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:2193,1
    - Dst: sqlite3_create_collation_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:2197,1
    - Dst: free_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:2208,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - self
    - cls
    - name
    - callable
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2170
    functionDepth: 2
    functionLinenumber: 2170
    functionLinenumberEnd: 2215
    functionName: pysqlite_connection_create_collation_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    - create_callback_context
    - PyCallable_Check
    - free_callback_context
    - set_error_from_db
    - sqlite3_create_collation_v2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_create_collation_impl(pysqlite_Connection
      *self,\n                                          PyTypeObject *cls,\n                                          const
      char *name,\n                                          PyObject *callable)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2238,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2238,1
    - Dst: sqlite3_serialize
      Src: /src/cpython/Modules/_sqlite/connection.c:2250,1
    - Dst: sqlite3_serialize
      Src: /src/cpython/Modules/_sqlite/connection.c:2253,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:2258,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:2262,1
    - Dst: sqlite3_free
      Src: /src/cpython/Modules/_sqlite/connection.c:2264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - pysqlite_Connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2234
    functionDepth: 2
    functionLinenumber: 2234
    functionLinenumberEnd: 2267
    functionName: serialize_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyBytes_FromStringAndSize
    - sqlite3_free
    - PyErr_Format
    - sqlite3_serialize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      serialize_impl(pysqlite_Connection *self, const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2295,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2295,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2311,1
    - Dst: sqlite3_malloc64
      Src: /src/cpython/Modules/_sqlite/connection.c:2316,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:2318,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_sqlite/connection.c:2325,1
    - Dst: sqlite3_deserialize
      Src: /src/cpython/Modules/_sqlite/connection.c:2326,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - data
    - name
    argTypes:
    - pysqlite_Connection*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2290
    functionDepth: 2
    functionLinenumber: 2290
    functionLinenumberEnd: 2334
    functionName: deserialize_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - sqlite3_deserialize
    - pysqlite_check_thread
    - PyErr_SetString
    - set_error_from_db
    - sqlite3_malloc64
    - memcpy
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndeserialize_impl(pysqlite_Connection *self, Py_buffer
      *data,\n                 const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2350,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:2353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2346
    functionDepth: 2
    functionLinenumber: 2346
    functionLinenumberEnd: 2354
    functionName: pysqlite_connection_enter_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_enter_impl(pysqlite_Connection *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_commit_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:2379,1
    - Dst: pysqlite_connection_rollback_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:2382,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:2389,1
    - Dst: pysqlite_connection_rollback_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:2390,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/connection.c:2392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2395,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:2396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - exc_tb
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2369
    functionDepth: 3
    functionLinenumber: 2369
    functionLinenumberEnd: 2404
    functionName: pysqlite_connection_exit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - pysqlite_connection_commit_impl
    - PyErr_GetRaisedException
    - pysqlite_connection_rollback_impl
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connection_exit_impl(pysqlite_Connection *self,
      PyObject *exc_type,\n                              PyObject *exc_value, PyObject
      *exc_tb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2428,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2428,1
    - Dst: sqlite3_limit
      Src: /src/cpython/Modules/_sqlite/connection.c:2432,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2434,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/connection.c:2437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - category
    - limit
    argTypes:
    - pysqlite_Connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2424
    functionDepth: 2
    functionLinenumber: 2424
    functionLinenumberEnd: 2438
    functionName: setlimit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    - PyLong_FromLong
    - sqlite3_limit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setlimit_impl(pysqlite_Connection *self, int category, int limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setlimit_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - category
    argTypes:
    - pysqlite_Connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2450
    functionDepth: 3
    functionLinenumber: 2450
    functionLinenumberEnd: 2455
    functionName: getlimit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - setlimit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getlimit_impl(pysqlite_Connection *self, int category)'
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2457
    functionDepth: 0
    functionLinenumber: 2457
    functionLinenumberEnd: 2499
    functionName: is_int_config
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_int_config(const int op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2516,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2516,1
    - Dst: is_int_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2519,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:2520,1
    - Dst: sqlite3_db_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2524,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2526,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - op
    - enable
    argTypes:
    - pysqlite_Connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2512
    functionDepth: 2
    functionLinenumber: 2512
    functionLinenumberEnd: 2534
    functionName: setconfig_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    - set_error_from_db
    - PyErr_Format
    - is_int_config
    - sqlite3_db_config
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setconfig_impl(pysqlite_Connection *self, int op, int enable)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2550,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2550,1
    - Dst: is_int_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2553,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:2554,1
    - Dst: sqlite3_db_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2559,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - pysqlite_Connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2546
    functionDepth: 2
    functionLinenumber: 2546
    functionLinenumberEnd: 2565
    functionName: getconfig_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - set_error_from_db
    - PyErr_Format
    - is_int_config
    - sqlite3_db_config
    linkageType: ''
    returnType: int
    signature: int getconfig_impl(pysqlite_Connection *self, int op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:2570,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2571,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2571,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/connection.c:2580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2567
    functionDepth: 2
    functionLinenumber: 2567
    functionLinenumberEnd: 2581
    functionName: get_autocommit
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 4
    functionsReached:
    - pysqlite_check_connection
    - _pysqlite_Connection_CAST
    - pysqlite_check_thread
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_autocommit(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Connection_CAST
      Src: /src/cpython/Modules/_sqlite/connection.c:2586,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2587,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2587,1
    - Dst: autocommit_converter
      Src: /src/cpython/Modules/_sqlite/connection.c:2590,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:2594,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:2595,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:2601,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:2602,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - op
    - val
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2583
    functionDepth: 2
    functionLinenumber: 2583
    functionLinenumberEnd: 2608
    functionName: set_autocommit
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - _pysqlite_Connection_CAST
    - pysqlite_check_thread
    - autocommit_converter
    - connection_exec_stmt
    - sqlite3_get_autocommit
    linkageType: ''
    returnType: int
    signature: int set_autocommit(PyObject *op, PyObject *val, void *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/connection.c:2613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2610
    functionDepth: 1
    functionLinenumber: 2610
    functionLinenumberEnd: 2614
    functionName: get_sig
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_sig(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_sqlite/connection.c:2704,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/connection.c:2708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2701
    functionDepth: 1
    functionLinenumber: 2701
    functionLinenumberEnd: 2711
    functionName: pysqlite_connection_setup_types
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - pysqlite_get_state
    linkageType: ''
    returnType: int
    signature: int pysqlite_connection_setup_types(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - 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: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: _pysqlite_Cursor_CAST
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pysqlite_Cursor_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cur
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: check_cursor_locked
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_cursor_locked(pysqlite_Cursor *cur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:75,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:80,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:81,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - connection
    - cursor
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: register_cursor
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - PyWeakref_NewRef
    - Py_CLEAR
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int register_cursor(pysqlite_Connection *connection, PyObject *cursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:102,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:106,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:107,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:108,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:109,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:111,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:112,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:114,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:115,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:121,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:122,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:124,1
    - Dst: register_cursor
      Src: /src/cpython/Modules/_sqlite/cursor.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - self
    - connection
    argTypes:
    - pysqlite_Cursor*
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 135
    functionName: pysqlite_cursor_init_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - pysqlite_check_thread
    - register_cursor
    - check_cursor_locked
    - Py_XSETREF
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int pysqlite_cursor_init_impl(pysqlite_Cursor *self,\n                          pysqlite_Connection
      *connection)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Statement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: stmt_reset
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int stmt_reset(pysqlite_Statement *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Cursor_CAST
      Src: /src/cpython/Modules/_sqlite/cursor.c:154,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:155,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:155,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:156,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:157,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:158,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:159,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:160,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: cursor_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - _pysqlite_Cursor_CAST
    linkageType: ''
    returnType: int
    signature: int cursor_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Cursor_CAST
      Src: /src/cpython/Modules/_sqlite/cursor.c:168,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:169,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:170,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:171,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:172,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:173,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: cursor_clear
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - stmt_reset
    - Py_CLEAR
    - _pysqlite_Cursor_CAST
    linkageType: ''
    returnType: int
    signature: int cursor_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Cursor_CAST
      Src: /src/cpython/Modules/_sqlite/cursor.c:186,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:187,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/cursor.c:188,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_sqlite/cursor.c:189,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:190,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/cursor.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: cursor_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - _pysqlite_Cursor_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cursor_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:203,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_sqlite/cursor.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:208,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_sqlite/cursor.c:213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - state
    - keystr
    - keylen
    argTypes:
    - pysqlite_state*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 217
    functionName: _pysqlite_get_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pysqlite_get_converter(pysqlite_state *state, const char
      *keystr,\n                        Py_ssize_t keylen)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:231,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:231,1
    - Dst: sqlite3_column_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:236,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:240,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:242,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:243,1
    - Dst: _pysqlite_get_converter
      Src: /src/cpython/Modules/_sqlite/cursor.c:253,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:255,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:256,1
    - Dst: sqlite3_column_decltype
      Src: /src/cpython/Modules/_sqlite/cursor.c:265,1
    - Dst: if
      Src: /src/cpython/Modules/_sqlite/cursor.c:272,1
    - Dst: _pysqlite_get_converter
      Src: /src/cpython/Modules/_sqlite/cursor.c:274,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:276,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:277,1
    - Dst: if
      Src: /src/cpython/Modules/_sqlite/cursor.c:290,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:290,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:291,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:317,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:319,1
    - Dst: sqlite3_data_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:342,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:345,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:353,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:355,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:368,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:370,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:371,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:374,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:377,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:378,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/cursor.c:382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:383,1
    - Dst: sqlite3_column_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:387,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:390,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/cursor.c:392,1
    - Dst: sqlite3_column_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:392,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:394,1
    - Dst: sqlite3_column_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:394,1
    - Dst: sqlite3_column_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:396,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:397,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:398,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:402,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:404,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/cursor.c:405,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:406,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:407,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:409,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_sqlite/cursor.c:412,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_sqlite/cursor.c:414,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:414,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:418,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_sqlite/cursor.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:421,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:425,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:427,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/cursor.c:429,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:433,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:434,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:435,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:439,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:440,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:447,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:456,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:468,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:468,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:469,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:475,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:480,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/cursor.c:481,1
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:482,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:488,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:495,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:496,1
    - Dst: strcat
      Src: /src/cpython/Modules/_sqlite/cursor.c:498,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/cursor.c:499,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:501,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/cursor.c:502,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:507,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/cursor.c:520,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:529,1
    - Dst: sqlite3_bind_null
      Src: /src/cpython/Modules/_sqlite/cursor.c:545,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:549,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:551,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:553,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:555,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:557,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:559,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:561,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:570,1
    - Dst: sqlite3_bind_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:573,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:577,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:578,1
    - Dst: sqlite3_bind_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:582,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:587,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:591,1
    - Dst: sqlite3_bind_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:595,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:603,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:605,1
    - Dst: sqlite3_bind_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:608,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:609,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:613,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:615,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:631,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:631,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:632,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:632,1
    - Dst: sqlite3_bind_parameter_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:652,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:657,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:658,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:659,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:660,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_sqlite/cursor.c:662,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:677,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:685,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:686,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:687,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:688,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:689,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:690,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:692,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:698,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:705,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:712,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:715,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:716,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:717,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:718,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:729,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_sqlite/cursor.c:737,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:740,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:747,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:754,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:761,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:764,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:765,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:766,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:767,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:772,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 336
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts:
    - condition: (len <= 9)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (self->isolation_level != NULL)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 775
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 775
    functionName: pysqlite_build_row_cast_map
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_parameter_name
    - sqlite3_bind_parameter_count
    - sqlite3_column_type
    - PySequence_GetItem
    - sqlite3_bind_int64
    - PyErr_Occurred
    - PyList_Append
    - PySequence_Size
    - check_cursor_locked
    - sqlite3_column_text
    - PyTuple_GET_ITEM
    - PyMapping_GetOptionalItemString
    - sqlite3_column_blob
    - PyUnicode_Check
    - PyErr_Clear
    - PyList_CheckExact
    - Py_DECREF
    - PyUnicode_CheckExact
    - sqlite3_column_name
    - PyObject_CheckBuffer
    - PyTuple_SET_ITEM
    - Py_XSETREF
    - sqlite3_column_int64
    - PyLong_CheckExact
    - _pysqlite_get_converter
    - PyFloat_FromDouble
    - PyTuple_CheckExact
    - pysqlite_check_connection
    - PyList_GetItem
    - if
    - pysqlite_check_thread
    - PyErr_Format
    - PyByteArray_CheckExact
    - PyErr_GetRaisedException
    - sqlite3_bind_double
    - Py_TYPE
    - PyFloat_CheckExact
    - pysqlite_get_state_by_type
    - PyUnicode_Decode
    - sqlite3_column_decltype
    - strlen
    - sqlite3_db_handle
    - PyErr_SetString
    - Py_CLEAR
    - sqlite3_data_count
    - PyUnicode_FromStringAndSize
    - PyTuple_New
    - PyFloat_AsDouble
    - sqlite3_column_bytes
    - PyList_GET_SIZE
    - sqlite3_step
    - Py_XNewRef
    - PyLong_FromLongLong
    - bind_param
    - sqlite3_bind_text
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyErr_ExceptionMatches
    - PyFloat_Check
    - PyList_GET_ITEM
    - sqlite3_column_count
    - pysqlite_microprotocols_adapt
    - _pysqlite_long_as_int64
    - assert
    - PyList_New
    - sqlite3_bind_null
    - _PyErr_ChainExceptions1
    - PySequence_Check
    - sqlite3_errcode
    - PyObject_CallOneArg
    - PyObject_CallFunction
    - PyTuple_GET_SIZE
    - sqlite3_prepare_v2
    - PyOS_snprintf
    - sqlite3_column_double
    - PyErr_SetObject
    - PyDict_Check
    - sqlite3_bind_blob
    - PyUnicode_AsUTF8AndSize
    - PyObject_Vectorcall
    - PyLong_Check
    - set_error_from_db
    - PyObject_GetBuffer
    - need_adapt
    - PyErr_NoMemory
    - sqlite3_finalize
    - strcat
    - PyByteArray_FromStringAndSize
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int pysqlite_build_row_cast_map(pysqlite_Cursor* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:317,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - colname
    argTypes:
    - pysqlite_Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 320
    functionName: _pysqlite_build_column_name
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_build_column_name(pysqlite_Cursor *self, const char *colname)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_data_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:342,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:345,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:353,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:355,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:368,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:370,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:371,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:374,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:377,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:378,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/cursor.c:382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:383,1
    - Dst: sqlite3_column_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:387,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:390,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/cursor.c:392,1
    - Dst: sqlite3_column_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:392,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:394,1
    - Dst: sqlite3_column_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:394,1
    - Dst: sqlite3_column_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:396,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:397,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:398,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:402,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:404,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/cursor.c:405,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:406,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:407,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:409,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_sqlite/cursor.c:412,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_sqlite/cursor.c:414,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:414,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:418,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_sqlite/cursor.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:421,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:425,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:427,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/cursor.c:429,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:433,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:434,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:435,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:439,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:440,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:447,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 448
    functionName: _pysqlite_fetch_one_row
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - sqlite3_errcode
    - strlen
    - PyErr_SetString
    - PyUnicode_Decode
    - PyObject_CallOneArg
    - PyFloat_FromDouble
    - sqlite3_column_type
    - sqlite3_data_count
    - PyUnicode_FromStringAndSize
    - PyTuple_New
    - PyObject_CallFunction
    - sqlite3_column_bytes
    - PyList_GET_SIZE
    - PyOS_snprintf
    - sqlite3_column_double
    - PyErr_SetObject
    - sqlite3_column_text
    - sqlite3_column_blob
    - PyLong_FromLongLong
    - PyErr_Clear
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyErr_ExceptionMatches
    - sqlite3_column_name
    - PyErr_NoMemory
    - PyList_GET_ITEM
    - PyTuple_SET_ITEM
    - PyByteArray_FromStringAndSize
    - sqlite3_column_int64
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_fetch_one_row(pysqlite_Cursor* self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:468,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:468,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:469,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:475,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:480,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/cursor.c:481,1
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cur
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 483
    functionName: check_cursor
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    - check_cursor_locked
    - pysqlite_get_state_by_type
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int check_cursor(pysqlite_Cursor* cur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:488,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:495,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:496,1
    - Dst: strcat
      Src: /src/cpython/Modules/_sqlite/cursor.c:498,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/cursor.c:499,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:501,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/cursor.c:502,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts:
    - condition: (self->isolation_level != NULL)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (len <= 9)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 512
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 512
    functionName: begin_transaction
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - strcat
    - strlen
    - sqlite3_prepare_v2
    - sqlite3_step
    - set_error_from_db
    - sqlite3_finalize
    - assert
    linkageType: ''
    returnType: int
    signature: int begin_transaction(pysqlite_Connection *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/cursor.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - operation
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 521
    functionName: get_statement_from_cache
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_statement_from_cache(pysqlite_Cursor *self, PyObject *operation)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - statement
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 533
    functionName: stmt_step
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    linkageType: ''
    returnType: int
    signature: int stmt_step(sqlite3_stmt *statement)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_null
      Src: /src/cpython/Modules/_sqlite/cursor.c:545,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:549,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:551,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:553,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:555,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:557,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:559,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:561,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:570,1
    - Dst: sqlite3_bind_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:573,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:577,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:578,1
    - Dst: sqlite3_bind_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:582,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:587,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:591,1
    - Dst: sqlite3_bind_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:595,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:603,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:605,1
    - Dst: sqlite3_bind_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:608,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:609,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:613,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:615,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 4
    argNames:
    - state
    - self
    - pos
    - parameter
    argTypes:
    - pysqlite_state*
    - pysqlite_Statement*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 621
    functionName: bind_param
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 1
    functionsReached:
    - sqlite3_bind_null
    - PyErr_SetString
    - PyLong_CheckExact
    - PyFloat_AsDouble
    - sqlite3_bind_int64
    - PyErr_Occurred
    - PyErr_Format
    - PyUnicode_Check
    - sqlite3_bind_blob
    - sqlite3_bind_text
    - PyUnicode_AsUTF8AndSize
    - PyUnicode_CheckExact
    - PyLong_Check
    - sqlite3_bind_double
    - PyObject_GetBuffer
    - Py_TYPE
    - PyFloat_Check
    - PyFloat_CheckExact
    - PyObject_CheckBuffer
    - _pysqlite_long_as_int64
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: "int bind_param(pysqlite_state *state, pysqlite_Statement *self, int
      pos,\n           PyObject *parameter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:631,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:631,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:632,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - state
    - obj
    argTypes:
    - pysqlite_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 637
    functionName: need_adapt
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 1
    functionsReached:
    - PyFloat_CheckExact
    - PyUnicode_CheckExact
    - PyByteArray_CheckExact
    - PyLong_CheckExact
    linkageType: ''
    returnType: int
    signature: int need_adapt(pysqlite_state *state, PyObject *obj)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_parameter_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:652,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:655,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:657,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:658,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:659,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:660,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_sqlite/cursor.c:662,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:677,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:685,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:686,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:687,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:688,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:689,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:690,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:692,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:698,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:705,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:712,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:715,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:716,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:717,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:718,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:729,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_sqlite/cursor.c:737,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:740,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:747,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:754,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:761,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:764,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:765,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:766,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:767,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:772,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 3
    argNames:
    - state
    - self
    - parameters
    argTypes:
    - pysqlite_state*
    - pysqlite_Statement*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 774
    functionName: bind_parameters
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - PySequence_Check
    - sqlite3_bind_parameter_name
    - sqlite3_bind_parameter_count
    - sqlite3_db_handle
    - PyErr_SetString
    - PyTuple_CheckExact
    - PyList_GetItem
    - PySequence_GetItem
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PySequence_Size
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - PyErr_Format
    - PyMapping_GetOptionalItemString
    - PyDict_Check
    - bind_param
    - PyList_CheckExact
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_NewRef
    - PyErr_ExceptionMatches
    - set_error_from_db
    - need_adapt
    - pysqlite_microprotocols_adapt
    linkageType: ''
    returnType: void
    signature: "void bind_parameters(pysqlite_state *state, pysqlite_Statement *self,\n
      \               PyObject *parameters)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:729,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_sqlite/cursor.c:737,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:740,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:747,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:754,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:761,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:764,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:765,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:766,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 771
    functionName: if
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 2
    functionsReached:
    - need_adapt
    - pysqlite_microprotocols_adapt
    - Py_DECREF
    - sqlite3_bind_parameter_name
    - PyErr_GetRaisedException
    - sqlite3_db_handle
    - PyErr_Occurred
    - _PyErr_ChainExceptions1
    - PyErr_ExceptionMatches
    - set_error_from_db
    - PyMapping_GetOptionalItemString
    - PyErr_Format
    - bind_param
    linkageType: ''
    returnType: else
    signature: else if (PyDict_Check(parameters))
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor
      Src: /src/cpython/Modules/_sqlite/cursor.c:788,1
    - Dst: PyIter_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:795,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:797,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_sqlite/cursor.c:800,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:806,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:812,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:817,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:823,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_sqlite/cursor.c:825,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:832,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:833,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:837,1
    - Dst: get_statement_from_cache
      Src: /src/cpython/Modules/_sqlite/cursor.c:840,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:841,1
    - Dst: sqlite3_stmt_readonly
      Src: /src/cpython/Modules/_sqlite/cursor.c:847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:848,1
    - Dst: sqlite3_stmt_busy
      Src: /src/cpython/Modules/_sqlite/cursor.c:853,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:854,1
    - Dst: pysqlite_statement_create
      Src: /src/cpython/Modules/_sqlite/cursor.c:855,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:861,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/cursor.c:869,1
    - Dst: begin_transaction
      Src: /src/cpython/Modules/_sqlite/cursor.c:871,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:876,1
    - Dst: sqlite3_stmt_busy
      Src: /src/cpython/Modules/_sqlite/cursor.c:876,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_sqlite/cursor.c:878,1
    - Dst: bind_parameters
      Src: /src/cpython/Modules/_sqlite/cursor.c:883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:884,1
    - Dst: stmt_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:888,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:890,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_sqlite/cursor.c:893,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:895,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:898,1
    - Dst: pysqlite_build_row_cast_map
      Src: /src/cpython/Modules/_sqlite/cursor.c:902,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Modules/_sqlite/cursor.c:903,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:908,1
    - Dst: sqlite3_column_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:910,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:913,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:913,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:919,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:921,1
    - Dst: _pysqlite_build_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:924,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_sqlite/cursor.c:928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:931,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:935,1
    - Dst: sqlite3_changes
      Src: /src/cpython/Modules/_sqlite/cursor.c:941,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:943,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:945,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/cpython/Modules/_sqlite/cursor.c:952,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/cursor.c:955,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:960,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:961,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:962,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:966,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:968,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:969,1
    - Dst: sqlite3_stmt_busy
      Src: /src/cpython/Modules/_sqlite/cursor.c:974,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:975,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:977,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 156
    argCount: 4
    argNames:
    - self
    - multiple
    - operation
    - second_argument
    argTypes:
    - pysqlite_Cursor*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!sqlite3_stmt_busy(self->statement->st))
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (rc == SQLITE_ROW || rc == SQLITE_DONE)
      pos:
        line_end: 907
        line_start: 907
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 978
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 978
    functionName: _pysqlite_query_execute
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - sqlite3_stmt_readonly
    - pysqlite_statement_create
    - PyObject_GetIter
    - PyErr_SetString
    - PyIter_Next
    - Py_SETREF
    - PyIter_Check
    - stmt_reset
    - sqlite3_changes
    - Py_CLEAR
    - bind_parameters
    - stmt_step
    - Py_INCREF
    - PyTuple_New
    - PyList_Append
    - PyErr_Occurred
    - pysqlite_build_row_cast_map
    - sqlite3_get_autocommit
    - begin_transaction
    - PyErr_Clear
    - PyTuple_Pack
    - PyLong_FromLongLong
    - Py_DECREF
    - Py_NewRef
    - set_error_from_db
    - sqlite3_column_name
    - PyErr_NoMemory
    - sqlite3_last_insert_rowid
    - get_statement_from_cache
    - sqlite3_stmt_busy
    - _PyErr_FormatFromCause
    - sqlite3_column_count
    - PyErr_Print
    - PyTuple_SET_ITEM
    - _pysqlite_build_column_name
    - Py_XSETREF
    - check_cursor
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation,
      PyObject* second_argument)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_query_execute
      Src: /src/cpython/Modules/_sqlite/cursor.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sql
    - parameters
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 4
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: pysqlite_cursor_execute_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - _pysqlite_query_execute
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_cursor_execute_impl(pysqlite_Cursor *self, PyObject
      *sql,\n                             PyObject *parameters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_query_execute
      Src: /src/cpython/Modules/_sqlite/cursor.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sql
    - seq_of_parameters
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1008
    functionDepth: 4
    functionLinenumber: 1008
    functionLinenumberEnd: 1014
    functionName: pysqlite_cursor_executemany_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - _pysqlite_query_execute
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_cursor_executemany_impl(pysqlite_Cursor *self,
      PyObject *sql,\n                                 PyObject *seq_of_parameters)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor
      Src: /src/cpython/Modules/_sqlite/cursor.c:1030,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:1034,1
    - Dst: sqlite3_limit
      Src: /src/cpython/Modules/_sqlite/cursor.c:1035,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:1038,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/cursor.c:1046,1
    - Dst: sqlite3_exec
      Src: /src/cpython/Modules/_sqlite/cursor.c:1051,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/cursor.c:1065,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:1069,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/cursor.c:1071,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:1086,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:1089,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - sql_script
    argTypes:
    - pysqlite_Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1091
    functionName: pysqlite_cursor_executescript_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - strlen
    - sqlite3_prepare_v2
    - PyErr_SetString
    - sqlite3_step
    - sqlite3_limit
    - sqlite3_exec
    - sqlite3_finalize
    - Py_NewRef
    - set_error_from_db
    - sqlite3_get_autocommit
    - check_cursor
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_cursor_executescript_impl(pysqlite_Cursor *self,\n
      \                                  const char *sql_script)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Cursor_CAST
      Src: /src/cpython/Modules/_sqlite/cursor.c:1096,1
    - Dst: check_cursor
      Src: /src/cpython/Modules/_sqlite/cursor.c:1097,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:1106,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:1107,1
    - Dst: sqlite3_data_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:1107,1
    - Dst: _pysqlite_fetch_one_row
      Src: /src/cpython/Modules/_sqlite/cursor.c:1110,1
    - Dst: stmt_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:1115,1
    - Dst: sqlite3_changes
      Src: /src/cpython/Modules/_sqlite/cursor.c:1118,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:1120,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1121,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:1124,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:1125,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1127,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/cursor.c:1130,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/cursor.c:1133,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (sqlite3_data_count(stmt) != 0)
      pos:
        line_end: 1106
        line_start: 1106
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (stmt != NULL)
      pos:
        line_end: 1105
        line_start: 1105
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 1137
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1137
    functionName: pysqlite_cursor_iternext
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - stmt_reset
    - PyObject_Vectorcall
    - _pysqlite_Cursor_CAST
    - Py_SETREF
    - set_error_from_db
    - stmt_step
    - Py_IsNone
    - _pysqlite_fetch_one_row
    - sqlite3_changes
    - Py_CLEAR
    - check_cursor
    - assert
    - sqlite3_data_count
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_iternext(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_cursor_iternext
      Src: /src/cpython/Modules/_sqlite/cursor.c:1151,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1145
    functionDepth: 4
    functionLinenumber: 1145
    functionLinenumberEnd: 1157
    functionName: pysqlite_cursor_fetchone_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - pysqlite_cursor_iternext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_fetchone_impl(pysqlite_Cursor *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:1176,1
    - Dst: pysqlite_cursor_iternext
      Src: /src/cpython/Modules/_sqlite/cursor.c:1181,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:1182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1186,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:1193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - maxrows
    argTypes:
    - pysqlite_Cursor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1168
    functionDepth: 4
    functionLinenumber: 1168
    functionLinenumberEnd: 1199
    functionName: pysqlite_cursor_fetchmany_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_Append
    - PyErr_Occurred
    - pysqlite_cursor_iternext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_fetchmany_impl(pysqlite_Cursor *self, int maxrows)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:1214,1
    - Dst: pysqlite_cursor_iternext
      Src: /src/cpython/Modules/_sqlite/cursor.c:1219,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:1220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1224,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:1227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1207
    functionDepth: 4
    functionLinenumber: 1207
    functionLinenumberEnd: 1233
    functionName: pysqlite_cursor_fetchall_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_Append
    - PyErr_Occurred
    - pysqlite_cursor_iternext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_fetchall_impl(pysqlite_Cursor *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sizes
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1249
    functionName: pysqlite_cursor_setinputsizes_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_setinputsizes_impl(pysqlite_Cursor *self, PyObject *sizes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - size
    - column
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1267
    functionName: pysqlite_cursor_setoutputsize_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_cursor_setoutputsize_impl(pysqlite_Cursor *self,
      PyObject *size,\n                                   PyObject *column)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:1279,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:1284,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:1285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:1286,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:1290,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/cursor.c:1290,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:1295,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1302
    functionName: pysqlite_cursor_close_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - Py_CLEAR
    - pysqlite_check_thread
    - PyErr_SetString
    - check_cursor_locked
    - pysqlite_get_state_by_type
    - stmt_reset
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_close_impl(pysqlite_Cursor *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_sqlite/cursor.c:1356,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/cursor.c:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1363
    functionName: pysqlite_cursor_setup_types
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - pysqlite_get_state
    linkageType: ''
    returnType: int
    signature: int pysqlite_cursor_setup_types(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_sqlite/module.h:80,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/module.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/cpython/Modules/_sqlite/module.h
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: pysqlite_get_state
    functionSourceFile: /src/cpython/Modules/_sqlite/module.h
    functionUses: 3
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: pysqlite_state
    signature: 'pysqlite_state *

      pysqlite_get_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_sqlite/module.h:89,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/module.h:90,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/cpython/Modules/_sqlite/module.h
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: pysqlite_get_state_by_type
    functionSourceFile: /src/cpython/Modules/_sqlite/module.h
    functionUses: 6
    functionsReached:
    - assert
    - pysqlite_get_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: pysqlite_state
    signature: 'pysqlite_state *

      pysqlite_get_state_by_type(PyTypeObject *tp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - 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: _pysqlite_Row_CAST
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pysqlite_Row_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:46,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/row.c:47,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/row.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: row_clear
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - _pysqlite_Row_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int row_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:55,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/row.c:56,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/row.c:56,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/row.c:57,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/row.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: row_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _pysqlite_Row_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int row_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/row.c:65,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/row.c:66,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/row.c:67,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/row.c:68,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/row.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: pysqlite_row_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pysqlite_row_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/row.c:89,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_sqlite/row.c:91,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/row.c:95,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/row.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - type
    - cursor
    - data
    argTypes:
    - PyTypeObject*
    - pysqlite_Cursor*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_sqlite/row.c
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: pysqlite_row_new_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_row_new_impl(PyTypeObject *type, pysqlite_Cursor
      *cursor,\n                      PyObject *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:104,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_sqlite/row.c:105,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sqlite/row.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: pysqlite_row_item
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - _pysqlite_Row_CAST
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_row_item(PyObject *op, Py_ssize_t idx)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_sqlite/row.c:112,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/row.c:116,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/row.c:116,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_sqlite/row.c:119,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_sqlite/row.c:119,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_sqlite/row.c:123,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_sqlite/row.c:124,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_sqlite/row.c:127,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_sqlite/row.c:128,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Modules/_sqlite/row.c:130,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Modules/_sqlite/row.c:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 135
    functionName: equal_ignore_case
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyObject_RichCompareBool
    - Py_TOLOWER
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: int
    signature: int equal_ignore_case(PyObject *left, PyObject *right)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:141,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/row.c:143,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_sqlite/row.c:144,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/row.c:145,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/row.c:148,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_sqlite/row.c:150,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sqlite/row.c:151,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/row.c:152,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/row.c:153,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/row.c:154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/row.c:157,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/row.c:161,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/row.c:162,1
    - Dst: equal_ignore_case
      Src: /src/cpython/Modules/_sqlite/row.c:163,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_sqlite/row.c:169,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sqlite/row.c:170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/row.c:174,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_sqlite/row.c:177,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_sqlite/row.c:178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/row.c:181,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - op
    - idx
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: pysqlite_row_subscript
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PySlice_Check
    - PyErr_SetString
    - PyLong_Check
    - equal_ignore_case
    - PyObject_GetItem
    - PyNumber_AsSsize_t
    - Py_IsNone
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - PyErr_Format
    - PyUnicode_Check
    - PyTuple_GetItem
    - _pysqlite_Row_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_row_subscript(PyObject *op, PyObject *idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:189,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/row.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: pysqlite_row_length
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _pysqlite_Row_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t pysqlite_row_length(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/row.c:203,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/row.c:207,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/row.c:211,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/row.c:213,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/row.c:214,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/row.c:215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/row.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Row*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 222
    functionName: pysqlite_row_keys_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyList_Append
    - Py_IsNone
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_row_keys_impl(pysqlite_Row *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:227,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_sqlite/row.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: pysqlite_iter
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - _pysqlite_Row_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_iter(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:234,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_sqlite/row.c:235,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_sqlite/row.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pysqlite_row_hash
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _pysqlite_Row_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t pysqlite_row_hash(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Row_CAST
      Src: /src/cpython/Modules/_sqlite/row.c:244,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/row.c:245,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/row.c:245,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_sqlite/row.c:246,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_sqlite/row.c:248,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/_sqlite/row.c:253,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sqlite/row.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - op
    - opother
    - opid
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: pysqlite_row_richcompare
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyObject_RichCompare
    - PyObject_RichCompareBool
    - _pysqlite_Row_CAST
    - PyBool_FromLong
    - pysqlite_get_state_by_type
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_row_richcompare(PyObject *op, PyObject *opother, int opid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_sqlite/row.c:292,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/row.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: pysqlite_row_setup_types
    functionSourceFile: /src/cpython/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - pysqlite_get_state
    linkageType: ''
    returnType: int
    signature: int pysqlite_row_setup_types(PyObject *module)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/util.c:38,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/util.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - state
    - errorcode
    argTypes:
    - pysqlite_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: get_exception_class
    functionSourceFile: /src/cpython/Modules/_sqlite/util.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_exception_class(pysqlite_state *state, int errorcode)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/util.c:78,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/util.c:82,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/util.c:83,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/util.c:88,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_sqlite/util.c:92,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/util.c:93,1
    - Dst: pysqlite_error_name
      Src: /src/cpython/Modules/_sqlite/util.c:98,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/util.c:101,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_sqlite/util.c:104,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_sqlite/util.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/util.c:110,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_sqlite/util.c:115,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/util.c:118,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - type
    - errcode
    - errmsg
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 119
    functionName: raise_exception
    functionSourceFile: /src/cpython/Modules/_sqlite/util.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_InternFromString
    - Py_DECREF
    - PyObject_Vectorcall
    - PyErr_SetObject
    - PyObject_SetAttrString
    - pysqlite_error_name
    - PyLong_FromLong
    - PyUnicode_FromString
    linkageType: ''
    returnType: void
    signature: void raise_exception(PyObject *type, int errcode, const char *errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_exception_class
      Src: /src/cpython/Modules/_sqlite/util.c:124,1
    - Dst: sqlite3_errstr
      Src: /src/cpython/Modules/_sqlite/util.c:130,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/util.c:131,1
    - Dst: raise_exception
      Src: /src/cpython/Modules/_sqlite/util.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - code
    argTypes:
    - pysqlite_state*
    - int
    assertStmts:
    - condition: (errmsg != NULL)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/cpython/Modules/_sqlite/util.c
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: set_error_from_code
    functionSourceFile: /src/cpython/Modules/_sqlite/util.c
    functionUses: 2
    functionsReached:
    - raise_exception
    - get_exception_class
    - assert
    - sqlite3_errstr
    linkageType: ''
    returnType: void
    signature: void set_error_from_code(pysqlite_state *state, int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/util.c:141,1
    - Dst: get_exception_class
      Src: /src/cpython/Modules/_sqlite/util.c:142,1
    - Dst: sqlite3_extended_errcode
      Src: /src/cpython/Modules/_sqlite/util.c:149,1
    - Dst: sqlite3_errmsg
      Src: /src/cpython/Modules/_sqlite/util.c:151,1
    - Dst: raise_exception
      Src: /src/cpython/Modules/_sqlite/util.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - db
    argTypes:
    - pysqlite_state*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: set_error_from_db
    functionSourceFile: /src/cpython/Modules/_sqlite/util.c
    functionUses: 15
    functionsReached:
    - sqlite3_errmsg
    - sqlite3_errcode
    - get_exception_class
    - raise_exception
    - sqlite3_extended_errcode
    linkageType: ''
    returnType: void
    signature: void set_error_from_db(pysqlite_state *state, sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_sqlite/util.c:165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/util.c:166,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_sqlite/util.c:176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/util.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - py_val
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 185
    functionName: _pysqlite_long_as_int64
    functionSourceFile: /src/cpython/Modules/_sqlite/util.c
    functionUses: 4
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - PyErr_SetString
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: sqlite_int64
    signature: sqlite_int64 _pysqlite_long_as_int64(PyObject * py_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:61,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_sqlite/module.c:64,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/module.c:66,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/module.c:71,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/module.c:72,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_sqlite/module.c:73,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/module.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: pysqlite_connect
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - pysqlite_get_state
    - PyUnicode_EqualToUTF8
    - PyObject_Vectorcall
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_connect(PyObject *module, PyObject *const *args,
      Py_ssize_t nargsf,\n                 PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_complete
      Src: /src/cpython/Modules/_sqlite/module.c:95,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/module.c:96,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/module.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - statement
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: pysqlite_complete_statement_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - sqlite3_complete
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_complete_statement_impl(PyObject *module, const char *statement)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:123,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:127,1
    - Dst: pysqlite_microprotocols_add
      Src: /src/cpython/Modules/_sqlite/module.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - module
    - type
    - caster
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: pysqlite_register_adapter_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - pysqlite_microprotocols_add
    - pysqlite_get_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_register_adapter_impl(PyObject *module, PyTypeObject
      *type,\n                               PyObject *caster)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:156,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_sqlite/module.c:157,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_sqlite/module.c:162,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/module.c:166,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/module.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - orig_name
    - callable
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 170
    functionName: pysqlite_register_converter_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_SetItem
    - pysqlite_get_state
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_register_converter_impl(PyObject *module, PyObject
      *orig_name,\n                                 PyObject *callable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - enable
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: pysqlite_enable_callback_trace_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - pysqlite_get_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_enable_callback_trace_impl(PyObject *module, int enable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:207,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/module.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - obj
    - proto
    - alt
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: pysqlite_adapt_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - pysqlite_microprotocols_adapt
    - pysqlite_get_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_adapt_impl(PyObject *module, PyObject *obj, PyObject
      *proto,\n                    PyObject *alt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:213,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_sqlite/module.c:214,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_sqlite/module.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: converters_init
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - pysqlite_get_state
    - PyDict_New
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int converters_init(PyObject* module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:225,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_sqlite/module.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: load_functools_lru_cache
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - pysqlite_get_state
    linkageType: ''
    returnType: int
    signature: int load_functools_lru_cache(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_sqlite/module.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: add_error_constants
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int add_error_constants(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 406
    functionName: pysqlite_error_name
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      pysqlite_error_name(int rc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_keyword_count
      Src: /src/cpython/Modules/_sqlite/module.c:412,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/module.c:413,1
    - Dst: sqlite3_keyword_name
      Src: /src/cpython/Modules/_sqlite/module.c:420,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:422,1
    - Dst: set_error_from_code
      Src: /src/cpython/Modules/_sqlite/module.c:423,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/module.c:426,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/module.c:430,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_sqlite/module.c:432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/module.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 440
    functionName: add_keyword_tuple
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyTuple_New
    - pysqlite_get_state
    - Py_DECREF
    - set_error_from_code
    - PyTuple_SET_ITEM
    - PyModule_Add
    - sqlite3_keyword_count
    - sqlite3_keyword_name
    linkageType: ''
    returnType: int
    signature: int add_keyword_tuple(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:451,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:452,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:453,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:454,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:455,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:456,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:457,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:458,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:459,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:460,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:461,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:462,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:463,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:464,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:465,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:466,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:467,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:468,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:469,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:470,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:471,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:472,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:473,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:474,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:475,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:476,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:477,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:478,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:479,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:480,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:481,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:482,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:483,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:484,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:485,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:486,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:487,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:489,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:490,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:491,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:492,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:493,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:494,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:495,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:496,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:497,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:498,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:499,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:500,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:506,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:507,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:508,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:509,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:511,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:514,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:517,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:520,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:523,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:526,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:529,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:530,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:531,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:534,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:537,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_sqlite/module.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 67
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 542
    functionName: add_integer_constants
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - ADD_INT
    linkageType: ''
    returnType: int
    signature: int add_integer_constants(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ival
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: ADD_INT
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(ival)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_threadsafe
      Src: /src/cpython/Modules/_sqlite/module.c:550,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/module.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - pysqlite_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: get_threadsafety
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - sqlite3_threadsafe
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int get_threadsafety(pysqlite_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:569,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:572,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:573,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:574,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:575,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:576,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:577,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:578,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:579,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:580,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:581,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:584,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:585,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:586,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:587,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:588,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:589,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:592,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:593,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/module.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 597
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - pysqlite_get_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:602,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:605,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:606,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:607,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:609,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:610,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:611,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:612,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:613,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:614,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:617,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:618,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:619,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:620,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:621,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:622,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:625,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:626,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:627,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:630,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:631,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:632,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:633,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:634,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:635,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:636,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/module.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 640
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 21
    functionsReached:
    - pysqlite_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_sqlite/module.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 646
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - module_clear
    linkageType: ''
    returnType: void
    signature: void module_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 654
    functionName: ADD_TYPE
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(module, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - module
    - ','
    - state
    - ','
    - exc
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 663
    functionName: ADD_EXCEPTION
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_EXCEPTION(module, state, exc, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 672
    functionName: ADD_INTERNED
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INTERNED(state, string)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/cpython/Modules/_sqlite/module.c:676,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/module.c:677,1
    - Dst: sqlite3_initialize
      Src: /src/cpython/Modules/_sqlite/module.c:681,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/module.c:683,1
    - Dst: sqlite3_errstr
      Src: /src/cpython/Modules/_sqlite/module.c:683,1
    - Dst: pysqlite_row_setup_types
      Src: /src/cpython/Modules/_sqlite/module.c:687,1
    - Dst: pysqlite_cursor_setup_types
      Src: /src/cpython/Modules/_sqlite/module.c:688,1
    - Dst: pysqlite_connection_setup_types
      Src: /src/cpython/Modules/_sqlite/module.c:689,1
    - Dst: pysqlite_statement_setup_types
      Src: /src/cpython/Modules/_sqlite/module.c:690,1
    - Dst: pysqlite_prepare_protocol_setup_types
      Src: /src/cpython/Modules/_sqlite/module.c:691,1
    - Dst: pysqlite_blob_setup_types
      Src: /src/cpython/Modules/_sqlite/module.c:692,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/module.c:697,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_sqlite/module.c:698,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_sqlite/module.c:699,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_sqlite/module.c:700,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_sqlite/module.c:701,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_sqlite/module.c:702,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:705,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:706,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:709,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:710,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:713,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:714,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:715,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:716,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:717,1
    - Dst: ADD_EXCEPTION
      Src: /src/cpython/Modules/_sqlite/module.c:718,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:721,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:722,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:723,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:724,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:725,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:726,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:727,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/_sqlite/module.c:728,1
    - Dst: add_error_constants
      Src: /src/cpython/Modules/_sqlite/module.c:731,1
    - Dst: add_integer_constants
      Src: /src/cpython/Modules/_sqlite/module.c:736,1
    - Dst: add_keyword_tuple
      Src: /src/cpython/Modules/_sqlite/module.c:740,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_sqlite/module.c:744,1
    - Dst: sqlite3_libversion
      Src: /src/cpython/Modules/_sqlite/module.c:744,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_sqlite/module.c:748,1
    - Dst: get_threadsafety
      Src: /src/cpython/Modules/_sqlite/module.c:752,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_sqlite/module.c:756,1
    - Dst: pysqlite_microprotocols_init
      Src: /src/cpython/Modules/_sqlite/module.c:761,1
    - Dst: converters_init
      Src: /src/cpython/Modules/_sqlite/module.c:766,1
    - Dst: load_functools_lru_cache
      Src: /src/cpython/Modules/_sqlite/module.c:770,1
    - Dst: sqlite3_shutdown
      Src: /src/cpython/Modules/_sqlite/module.c:777,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 673
    functionDepth: 4
    functionLinenumber: 673
    functionLinenumberEnd: 779
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - ADD_TYPE
    - pysqlite_get_state
    - sqlite3_libversion
    - PyErr_SetString
    - pysqlite_cursor_setup_types
    - pysqlite_prepare_protocol_setup_types
    - PyModule_AddStringConstant
    - sqlite3_initialize
    - add_error_constants
    - pysqlite_row_setup_types
    - sqlite3_errstr
    - add_keyword_tuple
    - load_functools_lru_cache
    - add_integer_constants
    - pysqlite_blob_setup_types
    - sqlite3_libversion_number
    - pysqlite_statement_setup_types
    - pysqlite_connection_setup_types
    - get_threadsafety
    - pysqlite_microprotocols_init
    - sqlite3_shutdown
    - ADD_INTERNED
    - ADD_EXCEPTION
    - PyModule_AddIntConstant
    - converters_init
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_sqlite/module.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: PyInit__sqlite3
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: pysqlite_prepare_protocol_init
    functionSourceFile: /src/cpython/Modules/_sqlite/prepare_protocol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pysqlite_prepare_protocol_init(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:35,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: pysqlite_prepare_protocol_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/prepare_protocol.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int pysqlite_prepare_protocol_traverse(PyObject *self, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:42,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:43,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:44,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: pysqlite_prepare_protocol_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/prepare_protocol.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void pysqlite_prepare_protocol_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:69,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/prepare_protocol.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: pysqlite_prepare_protocol_setup_types
    functionSourceFile: /src/cpython/Modules/_sqlite/prepare_protocol.c
    functionUses: 1
    functionsReached:
    - PyType_FromModuleAndSpec
    - pysqlite_get_state
    linkageType: ''
    returnType: int
    signature: int pysqlite_prepare_protocol_setup_types(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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: _pysqlite_Statement_CAST
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pysqlite_Statement_CAST(op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/statement.c:37,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/statement.c:37,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/statement.c:39,1
    - Dst: sqlite3_limit
      Src: /src/cpython/Modules/_sqlite/statement.c:45,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:47,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/statement.c:51,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:52,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/statement.c:61,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/statement.c:65,1
    - Dst: lstrip_sql
      Src: /src/cpython/Modules/_sqlite/statement.c:69,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:70,1
    - Dst: lstrip_sql
      Src: /src/cpython/Modules/_sqlite/statement.c:78,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:80,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:81,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:82,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:83,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_sqlite/statement.c:86,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sqlite/statement.c:95,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/statement.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - connection
    - sql
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(sql))
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/cpython/Modules/_sqlite/statement.c
    constantsTouched: []
    func_position:
      end: 101
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 101
    functionName: pysqlite_statement_create
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 2
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - sqlite3_prepare_v2
    - PyErr_SetString
    - lstrip_sql
    - set_error_from_db
    - PyObject_GC_Track
    - PyOS_strnicmp
    - PyUnicode_Check
    - sqlite3_limit
    - PyObject_GC_New
    - sqlite3_finalize
    - assert
    linkageType: ''
    returnType: pysqlite_Statement
    signature: 'pysqlite_Statement *

      pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Statement_CAST
      Src: /src/cpython/Modules/_sqlite/statement.c:106,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/statement.c:107,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/statement.c:108,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/statement.c:115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/statement.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: stmt_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - _pysqlite_Statement_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void stmt_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/statement.c:122,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/statement.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: stmt_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int stmt_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - sql
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 182
    functionName: lstrip_sql
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      lstrip_sql(const char *sql)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_sqlite/statement.c:201,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/statement.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: pysqlite_statement_setup_types
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 1
    functionsReached:
    - PyType_FromModuleAndSpec
    - pysqlite_get_state
    linkageType: ''
    returnType: int
    signature: int pysqlite_statement_setup_types(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:39,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:40,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: pysqlite_microprotocols_init
    functionSourceFile: /src/cpython/Modules/_sqlite/microprotocols.c
    functionUses: 1
    functionsReached:
    - pysqlite_get_state
    - PyDict_New
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int pysqlite_microprotocols_init(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:58,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:59,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:60,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:65,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - state
    - type
    - proto
    - cast
    argTypes:
    - pysqlite_state*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Modules/_sqlite/microprotocols.c
    - condition: (proto != NULL)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/cpython/Modules/_sqlite/microprotocols.c
    constantsTouched: []
    func_position:
      end: 69
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 69
    functionName: pysqlite_microprotocols_add
    functionSourceFile: /src/cpython/Modules/_sqlite/microprotocols.c
    functionUses: 1
    functionsReached:
    - PyTuple_Pack
    - PyDict_SetItem
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int pysqlite_microprotocols_add(pysqlite_state *state, PyTypeObject
      *type,\n                            PyObject *proto, PyObject *cast)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:84,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:84,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:88,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:89,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:92,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:94,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:95,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:100,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:108,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:110,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:114,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:119,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:127,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:129,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:133,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/microprotocols.c:141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - state
    - obj
    - proto
    - alt
    argTypes:
    - pysqlite_state*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 143
    functionName: pysqlite_microprotocols_adapt
    functionSourceFile: /src/cpython/Modules/_sqlite/microprotocols.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - Py_NewRef
    - PyErr_ExceptionMatches
    - PyObject_CallOneArg
    - PyDict_GetItemRef
    - PyTuple_Pack
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_microprotocols_adapt(pysqlite_state *state, PyObject
      *obj,\n                              PyObject *proto, PyObject *alt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - 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: _pysqlite_Blob_CAST
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pysqlite_Blob_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: close_blob
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void close_blob(pysqlite_Blob *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Blob_CAST
      Src: /src/cpython/Modules/_sqlite/blob.c:37,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/blob.c:38,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/blob.c:38,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/blob.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: blob_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - _pysqlite_Blob_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int blob_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Blob_CAST
      Src: /src/cpython/Modules/_sqlite/blob.c:46,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/blob.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: blob_clear
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - _pysqlite_Blob_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int blob_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Blob_CAST
      Src: /src/cpython/Modules/_sqlite/blob.c:54,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/blob.c:55,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/blob.c:56,1
    - Dst: close_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:58,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_sqlite/blob.c:60,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/blob.c:61,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/blob.c:62,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: blob_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - close_blob
    - PyTypeObject*::tp_free
    - _pysqlite_Blob_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void blob_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/blob.c:70,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/blob.c:71,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: check_blob
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_blob(pysqlite_Blob *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/blob.c:94,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/blob.c:95,1
    - Dst: close_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: blob_close_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - close_blob
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_close_impl(pysqlite_Blob *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/blob.c:106,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/blob.c:107,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_sqlite/blob.c:109,1
    - Dst: close_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: pysqlite_close_all_blobs
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - close_blob
    - PyWeakref_GetRef
    linkageType: ''
    returnType: void
    signature: void pysqlite_close_all_blobs(pysqlite_Connection *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:120,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/blob.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - rc
    argTypes:
    - pysqlite_Blob*
    - int
    assertStmts:
    - condition: (self->connection != NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: blob_seterror
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - set_error_from_db
    - assert
    linkageType: ''
    returnType: void
    signature: void blob_seterror(pysqlite_Blob *self, int rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_blob_read
      Src: /src/cpython/Modules/_sqlite/blob.c:130,1
    - Dst: blob_seterror
      Src: /src/cpython/Modules/_sqlite/blob.c:134,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_sqlite/blob.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - pysqlite_Blob*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: read_single
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_read
    - PyLong_FromUnsignedLong
    - blob_seterror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_single(pysqlite_Blob *self, Py_ssize_t offset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:143,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:143,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:144,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:144,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/blob.c:146,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/blob.c:151,1
    - Dst: sqlite3_blob_read
      Src: /src/cpython/Modules/_sqlite/blob.c:154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:158,1
    - Dst: blob_seterror
      Src: /src/cpython/Modules/_sqlite/blob.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - length
    - offset
    argTypes:
    - pysqlite_Blob*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (length <= sqlite3_blob_bytes(self->blob))
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/cpython/Modules/_sqlite/blob.c
    - condition: (offset < sqlite3_blob_bytes(self->blob))
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 163
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 163
    functionName: read_multiple
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - blob_seterror
    - sqlite3_blob_read
    - PyBytes_AS_STRING
    - sqlite3_blob_bytes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_multiple(pysqlite_Blob *self, Py_ssize_t length, Py_ssize_t offset)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:185,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:191,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:197,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/blob.c:199,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - pysqlite_Blob*
    - int
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 208
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 208
    functionName: blob_read_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - check_blob
    - sqlite3_blob_bytes
    - PyBytes_FromStringAndSize
    - read_multiple
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_read_impl(pysqlite_Blob *self, int length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:217,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:221,1
    - Dst: sqlite3_blob_write
      Src: /src/cpython/Modules/_sqlite/blob.c:224,1
    - Dst: blob_seterror
      Src: /src/cpython/Modules/_sqlite/blob.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - len
    - offset
    argTypes:
    - pysqlite_Blob*
    - void*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (offset <= blob_len)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 232
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 232
    functionName: inner_write
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_bytes
    - PyErr_SetString
    - blob_seterror
    - sqlite3_blob_write
    - assert
    linkageType: ''
    returnType: int
    signature: "int inner_write(pysqlite_Blob *self, const void *buf, Py_ssize_t len,\n
      \           Py_ssize_t offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:252,1
    - Dst: inner_write
      Src: /src/cpython/Modules/_sqlite/blob.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - pysqlite_Blob*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: blob_write_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - check_blob
    - inner_write
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_write_impl(pysqlite_Blob *self, Py_buffer *data)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:284,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:320,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - self
    - offset
    - origin
    argTypes:
    - pysqlite_Blob*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 322
    functionName: blob_seek_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - check_blob
    - sqlite3_blob_bytes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_seek_impl(pysqlite_Blob *self, int offset, int origin)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:335,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/blob.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 339
    functionName: blob_tell_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - check_blob
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_tell_impl(pysqlite_Blob *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:352,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/blob.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: blob_enter_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - check_blob
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_enter_impl(pysqlite_Blob *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:375,1
    - Dst: close_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - type
    - val
    - tb
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 380
    functionName: blob_exit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - close_blob
    - check_blob
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nblob_exit_impl(pysqlite_Blob *self, PyObject *type, PyObject
      *val,\n               PyObject *tb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Blob_CAST
      Src: /src/cpython/Modules/_sqlite/blob.c:385,1
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:386,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: blob_length
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_bytes
    - _pysqlite_Blob_CAST
    - check_blob
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t blob_length(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_sqlite/blob.c:395,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/blob.c:396,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:399,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 408
    functionName: get_subscript_index
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - sqlite3_blob_bytes
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_subscript_index(pysqlite_Blob *self, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_subscript_index
      Src: /src/cpython/Modules/_sqlite/blob.c:413,1
    - Dst: read_single
      Src: /src/cpython/Modules/_sqlite/blob.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: subscript_index
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 1
    functionsReached:
    - get_subscript_index
    - read_single
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subscript_index(pysqlite_Blob *self, PyObject *item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_sqlite/blob.c:424,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:427,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_sqlite/blob.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - self
    - item
    - start
    - stop
    - step
    - slicelen
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 430
    functionName: get_slice_info
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PySlice_AdjustIndices
    - sqlite3_blob_bytes
    - PySlice_Unpack
    linkageType: ''
    returnType: int
    signature: "int get_slice_info(pysqlite_Blob *self, PyObject *item, Py_ssize_t
      *start,\n               Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_slice_info
      Src: /src/cpython/Modules/_sqlite/blob.c:436,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:441,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:443,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/blob.c:447,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/blob.c:449,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/blob.c:450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 432
    functionDepth: 5
    functionLinenumber: 432
    functionLinenumberEnd: 457
    functionName: subscript_slice
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_slice_info
    - PyBytes_FromStringAndSize
    - read_multiple
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subscript_slice(pysqlite_Blob *self, PyObject *item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Blob_CAST
      Src: /src/cpython/Modules/_sqlite/blob.c:462,1
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:463,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:467,1
    - Dst: subscript_index
      Src: /src/cpython/Modules/_sqlite/blob.c:468,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:470,1
    - Dst: subscript_slice
      Src: /src/cpython/Modules/_sqlite/blob.c:471,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 459
    functionDepth: 6
    functionLinenumber: 459
    functionLinenumberEnd: 476
    functionName: blob_subscript
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - check_blob
    - PySlice_Check
    - PyErr_SetString
    - subscript_slice
    - _pysqlite_Blob_CAST
    - PyIndex_Check
    - subscript_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_subscript(PyObject *op, PyObject *item)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:482,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:486,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/blob.c:487,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/blob.c:489,1
    - Dst: get_subscript_index
      Src: /src/cpython/Modules/_sqlite/blob.c:492,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_sqlite/blob.c:497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/blob.c:498,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/blob.c:499,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:503,1
    - Dst: inner_write
      Src: /src/cpython/Modules/_sqlite/blob.c:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 509
    functionName: ass_subscript_index
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - inner_write
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Format
    - get_subscript_index
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int ass_subscript_index(pysqlite_Blob *self, PyObject *item, PyObject
      *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:515,1
    - Dst: get_slice_info
      Src: /src/cpython/Modules/_sqlite/blob.c:521,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/blob.c:530,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:536,1
    - Dst: inner_write
      Src: /src/cpython/Modules/_sqlite/blob.c:540,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:543,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/blob.c:545,1
    - Dst: inner_write
      Src: /src/cpython/Modules/_sqlite/blob.c:549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:550,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/blob.c:553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 555
    functionName: ass_subscript_slice
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - get_slice_info
    - Py_DECREF
    - inner_write
    - PyErr_SetString
    - read_multiple
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int ass_subscript_slice(pysqlite_Blob *self, PyObject *item, PyObject
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Blob_CAST
      Src: /src/cpython/Modules/_sqlite/blob.c:560,1
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:561,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:565,1
    - Dst: ass_subscript_index
      Src: /src/cpython/Modules/_sqlite/blob.c:566,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:568,1
    - Dst: ass_subscript_slice
      Src: /src/cpython/Modules/_sqlite/blob.c:569,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 557
    functionDepth: 6
    functionLinenumber: 557
    functionLinenumberEnd: 574
    functionName: blob_ass_subscript
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - ass_subscript_slice
    - check_blob
    - PySlice_Check
    - PyErr_SetString
    - _pysqlite_Blob_CAST
    - PyIndex_Check
    - ass_subscript_index
    linkageType: ''
    returnType: int
    signature: int blob_ass_subscript(PyObject *op, PyObject *item, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_sqlite/blob.c:618,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/blob.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 625
    functionName: pysqlite_blob_setup_types
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 1
    functionsReached:
    - PyType_FromModuleAndSpec
    - pysqlite_get_state
    linkageType: ''
    returnType: int
    signature: int pysqlite_blob_setup_types(PyObject *mod)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:36,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:38,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:57,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:62,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:63,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:67,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:71,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:72,1
    - Dst: pysqlite_complete_statement_impl
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:75,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: 79
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 79
    functionName: pysqlite_complete_statement
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - pysqlite_complete_statement_impl
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_complete_statement(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:101,1
    - Dst: pysqlite_register_adapter_impl
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: pysqlite_register_adapter
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - pysqlite_register_adapter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_register_adapter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:132,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:135,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:136,1
    - Dst: pysqlite_register_converter_impl
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: pysqlite_register_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - pysqlite_register_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_register_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:166,1
    - Dst: pysqlite_enable_callback_trace_impl
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 173
    functionName: pysqlite_enable_callback_trace
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - pysqlite_enable_callback_trace_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_enable_callback_trace(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:193,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:196,1
    - Dst: pysqlite_adapt_impl
      Src: /src/cpython/Modules/_sqlite/clinic/module.c.h:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: pysqlite_adapt
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_adapt_impl
    - _PyArg_CheckPositional
    - clinic_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_adapt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:15,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:20,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:23,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:23,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:26,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:26,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:26,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:27,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:27,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:27,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:30,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:31,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:31,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:32,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:32,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:35,1
    - Dst: pysqlite_row_new_impl
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:36,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 40
    functionName: pysqlite_row_new
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/row.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - PyTuple_Check
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _PyArg_BadArgument
    - pysqlite_row_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_row_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_row_keys_impl
      Src: /src/cpython/Modules/_sqlite/clinic/row.c.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pysqlite_row_keys
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/row.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_row_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_row_keys(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:19,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:22,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:23,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:24,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:27,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:27,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:30,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:30,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:30,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:31,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:31,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:31,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:34,1
    - Dst: pysqlite_cursor_init_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:35,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: pysqlite_cursor_init
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - pysqlite_cursor_init_impl
    - clinic_state
    - Py_IS_TYPE
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _PyArg_BadArgument
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int pysqlite_cursor_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:61,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:64,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:65,1
    - Dst: pysqlite_cursor_execute_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: pysqlite_cursor_execute
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_CheckPositional
    - pysqlite_cursor_execute_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_execute(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:100,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:103,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:104,1
    - Dst: pysqlite_cursor_executemany_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: pysqlite_cursor_executemany
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - pysqlite_cursor_executemany_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_executemany(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:134,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:135,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:139,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:144,1
    - Dst: pysqlite_cursor_executescript_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 151
    functionName: pysqlite_cursor_executescript
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - pysqlite_cursor_executescript_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_executescript(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_cursor_fetchone_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: pysqlite_cursor_fetchone
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_fetchone_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_fetchone(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:201,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:218,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:221,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:229,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:230,1
    - Dst: pysqlite_cursor_fetchmany_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 238
    functionName: pysqlite_cursor_fetchmany
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - pysqlite_cursor_fetchmany_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_fetchmany(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_cursor_fetchall_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: pysqlite_cursor_fetchall
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_fetchall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_fetchall(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_cursor_setinputsizes_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - sizes
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: pysqlite_cursor_setinputsizes
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_setinputsizes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_setinputsizes(PyObject *self, PyObject *sizes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:300,1
    - Dst: pysqlite_cursor_setoutputsize_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: pysqlite_cursor_setoutputsize
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_setoutputsize_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_setoutputsize(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_cursor_close_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: pysqlite_cursor_close
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blob_close_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.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: 3
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: blob_close
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 0
    functionsReached:
    - blob_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:50,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:56,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:57,1
    - Dst: blob_read_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: blob_read
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - blob_read_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:88,1
    - Dst: blob_write_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:91,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: blob_write
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 1
    functionsReached:
    - blob_write_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_write(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:125,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:128,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:129,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:135,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:136,1
    - Dst: blob_seek_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:140,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: blob_seek
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - blob_seek_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blob_tell_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.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: 4
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: blob_tell
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 0
    functionsReached:
    - blob_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blob_enter_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: blob_enter
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 0
    functionsReached:
    - blob_enter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_enter(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:203,1
    - Dst: blob_exit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: blob_exit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 0
    functionsReached:
    - blob_exit_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blob_exit(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:32,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:34,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:52,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:53,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:59,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:64,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:64,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:74,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:75,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:79,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:80,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:89,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:90,1
    - Dst: isolation_level_converter
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:98,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:106,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:121,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:122,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:130,1
    - Dst: autocommit_converter
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:138,1
    - Dst: pysqlite_connection_init_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:142,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 97
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 146
    functionName: pysqlite_connection_init
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_init_impl
    - PyFloat_AsDouble
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - isolation_level_converter
    - clinic_state
    - autocommit_converter
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int pysqlite_connection_init(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:173,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:175,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:192,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:195,1
    - Dst: pysqlite_connection_cursor_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 209
    functionName: pysqlite_connection_cursor
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - pysqlite_connection_cursor_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_cursor(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:248,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:250,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:250,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:267,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:274,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:279,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:280,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:284,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:289,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:292,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:293,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:297,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:301,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:302,1
    - Dst: sqlite3_int64_converter
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:305,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:312,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:320,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:321,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:325,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:329,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:330,1
    - Dst: blobopen_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:334,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 338
    functionName: blobopen
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - blobopen_impl
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - sqlite3_int64_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      blobopen(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_close_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: pysqlite_connection_close
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_commit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: pysqlite_connection_commit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_commit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_commit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_rollback_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: pysqlite_connection_rollback
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_rollback_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_rollback(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:428,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:430,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:447,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:453,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:458,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:459,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:463,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:467,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:468,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:471,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:472,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:479,1
    - Dst: pysqlite_connection_create_function_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:484,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 488
    functionName: pysqlite_connection_create_function
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyLong_AsInt
    - _Py_ID
    - PyErr_SetString
    - PyErr_Occurred
    - pysqlite_connection_create_function_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_create_function(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:537,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:542,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:543,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:547,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:551,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:552,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:555,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:556,1
    - Dst: create_window_function_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:560,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 564
    functionName: create_window_function
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 1
    functionsReached:
    - create_window_function_impl
    - strlen
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_SetString
    - PyErr_Occurred
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_window_function(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:605,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:610,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:611,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:615,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:619,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:620,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:623,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:624,1
    - Dst: pysqlite_connection_create_aggregate_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 632
    functionName: pysqlite_connection_create_aggregate
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_SetString
    - PyErr_Occurred
    - _PyArg_BadArgument
    - pysqlite_connection_create_aggregate_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_create_aggregate(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:668,1
    - Dst: pysqlite_connection_set_authorizer_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 678
    functionName: pysqlite_connection_set_authorizer
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - pysqlite_connection_set_authorizer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_set_authorizer(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:717,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:719,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:739,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:745,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:746,1
    - Dst: pysqlite_connection_set_progress_handler_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 753
    functionName: pysqlite_connection_set_progress_handler
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - pysqlite_connection_set_progress_handler_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_set_progress_handler(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:789,1
    - Dst: pysqlite_connection_set_trace_callback_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 799
    functionName: pysqlite_connection_set_trace_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - pysqlite_connection_set_trace_callback_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_set_trace_callback(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:822,1
    - Dst: pysqlite_connection_enable_load_extension_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 830
    functionName: pysqlite_connection_enable_load_extension
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_enable_load_extension_impl
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_enable_load_extension(PyObject *self, PyObject *arg)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:863,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:865,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:882,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:886,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:891,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:892,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:896,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:900,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:901,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:910,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:912,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:916,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:917,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:922,1
    - Dst: pysqlite_connection_load_extension_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:926,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 930
    functionName: pysqlite_connection_load_extension
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - pysqlite_connection_load_extension_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_load_extension(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:954,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:957,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:958,1
    - Dst: pysqlite_connection_execute_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:967,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 947
    functionDepth: 3
    functionLinenumber: 947
    functionLinenumberEnd: 971
    functionName: pysqlite_connection_execute
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - pysqlite_connection_execute_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_execute(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:993,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:996,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:997,1
    - Dst: pysqlite_connection_executemany_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1002,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 1006
    functionName: pysqlite_connection_executemany
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - pysqlite_connection_executemany_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_executemany(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_executescript_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - script_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1021
    functionDepth: 3
    functionLinenumber: 1021
    functionLinenumberEnd: 1029
    functionName: pysqlite_connection_executescript
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_executescript_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_executescript(PyObject *self, PyObject *script_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_interrupt_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1047
    functionName: pysqlite_connection_interrupt
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_interrupt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_interrupt(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1078,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1080,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1097,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1100,1
    - Dst: pysqlite_connection_iterdump_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1065
    functionDepth: 3
    functionLinenumber: 1065
    functionLinenumberEnd: 1114
    functionName: pysqlite_connection_iterdump
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_iterdump_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_iterdump(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1145,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1147,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1147,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1147,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1147,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1147,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1164,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1171,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1176,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1176,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1177,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1177,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1186,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1200,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1201,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1205,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1210,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1217,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1218,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1222,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1223,1
    - Dst: pysqlite_connection_backup_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1228,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1232
    functionName: pysqlite_connection_backup
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyUnicode_AsUTF8AndSize
    - _Py_ID
    - strlen
    - PyErr_SetString
    - PyFloat_CheckExact
    - clinic_state
    - _PyArg_BadArgument
    - pysqlite_connection_backup_impl
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_backup(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1270,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1275,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1276,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1280,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1285,1
    - Dst: pysqlite_connection_create_collation_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1249
    functionDepth: 3
    functionLinenumber: 1249
    functionLinenumberEnd: 1293
    functionName: pysqlite_connection_create_collation
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - pysqlite_connection_create_collation_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_create_collation(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1330,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1332,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1349,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1352,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1360,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1361,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1365,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1369,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1370,1
    - Dst: serialize_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1374,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1317
    functionDepth: 3
    functionLinenumber: 1317
    functionLinenumberEnd: 1378
    functionName: serialize
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 2
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - serialize_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      serialize(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1422,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1424,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1441,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1445,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1450,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1452,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1456,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1461,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1468,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1469,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1473,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1477,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1478,1
    - Dst: deserialize_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1482,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1487,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1491
    functionName: deserialize
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - deserialize_impl
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyBuffer_FillInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deserialize(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_connection_enter_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1513
    functionName: pysqlite_connection_enter
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_enter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_enter(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1538,1
    - Dst: pysqlite_connection_exit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1530
    functionDepth: 4
    functionLinenumber: 1530
    functionLinenumberEnd: 1548
    functionName: pysqlite_connection_exit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - pysqlite_connection_exit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_exit(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1579,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1582,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1583,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1586,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1587,1
    - Dst: setlimit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1590,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1572
    functionDepth: 3
    functionLinenumber: 1572
    functionLinenumberEnd: 1594
    functionName: setlimit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - setlimit_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setlimit(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1617,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1618,1
    - Dst: getlimit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1611
    functionDepth: 4
    functionLinenumber: 1611
    functionLinenumberEnd: 1625
    functionName: getlimit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - getlimit_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getlimit(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1649,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1652,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1653,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1659,1
    - Dst: setconfig_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1664,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1642
    functionDepth: 3
    functionLinenumber: 1642
    functionLinenumberEnd: 1668
    functionName: setconfig
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyLong_AsInt
    - PyErr_Occurred
    - setconfig_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setconfig(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1692,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1693,1
    - Dst: getconfig_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1696,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1697,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1700,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1685
    functionDepth: 3
    functionLinenumber: 1685
    functionLinenumberEnd: 1704
    functionName: getconfig
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - getconfig_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getconfig(PyObject *self, PyObject *arg)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:48,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:53,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:53,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:60,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:64,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - Type
    - num
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 73
    functionName: _PyMp_SetError
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyErr_SetFromErrno
    - PyErr_Format
    - PyErr_SetExcFromWindowsErr
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMp_SetError(PyObject *Type, int num)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:91,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:95,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: _multiprocessing_closesocket_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - closesocket
    - WSAGetLastError
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_closesocket_impl(PyObject *module, HANDLE handle)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:115,1
    - Dst: recv
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:120,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:124,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:125,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:125,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - module
    - handle
    - size
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 129
    functionName: _multiprocessing_recv_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - recv
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - WSAGetLastError
    - PyErr_SetExcFromWindowsErr
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_recv_impl(PyObject *module, HANDLE handle, int size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:146,1
    - Dst: send
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:149,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:153,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:153,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - handle
    - buf
    argTypes:
    - PyObject*
    - HANDLE
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: _multiprocessing_send_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - send
    - WSAGetLastError
    - PyLong_FromLong
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_send_impl(PyObject *module, HANDLE handle, Py_buffer *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMp_sem_unlink
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: _multiprocessing_sem_unlink_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - _PyMp_sem_unlink
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_sem_unlink_impl(PyObject *module, const char *name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:200,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:207,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:219,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:222,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:232,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:237,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:258,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:261,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:264,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:267,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 275
    functionName: multiprocessing_exec
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - ADD_FLAG
    - Py_DECREF
    - PyType_FromModuleAndSpec
    - PyDict_SetItemString
    - PyDict_New
    - PyLong_FromLong
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int multiprocessing_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: ADD_FLAG
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FLAG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: PyInit__multiprocessing
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__multiprocessing(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:52,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:56,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:57,1
    - Dst: shm_open
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:62,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:64,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - module
    - path
    - flags
    - mode
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: _posixshmem_shm_open_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/posixshmem.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyErr_SetFromErrnoWithFilenameObject
    - PyErr_CheckSignals
    - shm_open
    linkageType: ''
    returnType: int
    signature: "int _posixshmem_shm_open_impl(PyObject *module, PyObject *path, int
      flags,\n                          int mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:97,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:102,1
    - Dst: shm_unlink
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:107,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:109,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 118
    functionName: _posixshmem_shm_unlink_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/posixshmem.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyErr_SetFromErrnoWithFilenameObject
    - PyErr_CheckSignals
    - shm_unlink
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _posixshmem_shm_unlink_impl(PyObject *module, PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_multiprocessing/posixshmem.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: PyInit__posixshmem
    functionSourceFile: /src/cpython/Modules/_multiprocessing/posixshmem.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__posixshmem(void)
  - 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: _SemLockObject_CAST
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _SemLockObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: ISMINE
    functionSourceFile: /src/cpython/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: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: SEM_CLEAR_ERROR
    functionSourceFile: /src/cpython/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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: SEM_GET_LAST_ERROR
    functionSourceFile: /src/cpython/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: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: SEM_CREATE
    functionSourceFile: /src/cpython/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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: SEM_CLOSE
    functionSourceFile: /src/cpython/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: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: SEM_GETVALUE
    functionSourceFile: /src/cpython/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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: SEM_UNLINK
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_UNLINK(name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:72,1
    - Dst: ReleaseSemaphore
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - value
    argTypes:
    - HANDLE
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: _GetSemaphoreValue
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - ReleaseSemaphore
    - WaitForSingleObjectEx
    linkageType: ''
    returnType: int
    signature: int _GetSemaphoreValue(HANDLE handle, int *value)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:111,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:112,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:118,1
    - Dst: ISMINE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:126,1
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:132,1
    - Dst: GetCurrentThreadId
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:133,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:141,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:142,1
    - Dst: assert
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:143,1
    - Dst: ResetEvent
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:153,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:154,1
    - Dst: GetCurrentThreadId
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:162,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:167,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:169,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 3
    argNames:
    - self
    - blocking
    - timeout_obj
    argTypes:
    - SemLockObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (sigint_event != NULL)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/cpython/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 176
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 176
    functionName: _multiprocessing_SemLock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - _PyOS_SigintEvent
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_SetFromWindowsErr
    - ISMINE
    - WaitForMultipleObjectsEx
    - WaitForSingleObjectEx
    - PyErr_SetFromErrno
    - ResetEvent
    - PyErr_Format
    - _PyOS_IsMainThread
    - GetCurrentThreadId
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multiprocessing_SemLock_acquire_impl(SemLockObject *self,
      int blocking,\n                                      PyObject *timeout_obj)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:162,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:167,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:169,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: switch
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadId
    - PyErr_SetFromErrno
    - PyErr_SetFromWindowsErr
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ISMINE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:190,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:191,1
    - Dst: assert
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:200,1
    - Dst: ReleaseSemaphore
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:203,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:204,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:205,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts:
    - condition: (self->count == 1)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/cpython/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 215
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 215
    functionName: _multiprocessing_SemLock_release_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - GetLastError
    - PyErr_SetFromWindowsErr
    - ISMINE
    - ReleaseSemaphore
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock_release_impl(SemLockObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: SEM_GET_LAST_ERROR
    functionSourceFile: /src/cpython/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: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: SEM_CREATE
    functionSourceFile: /src/cpython/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: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: SEM_CLOSE
    functionSourceFile: /src/cpython/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: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: SEM_GETVALUE
    functionSourceFile: /src/cpython/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: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: SEM_UNLINK
    functionSourceFile: /src/cpython/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: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: sem_unlink
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 1
    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: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: sem_timedwait
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sem_timedwait(sem,deadline)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sem_trywait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:257,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:263,1
    - Dst: select
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:287,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - sem
    - deadline
    - _save
    argTypes:
    - sem_t*
    - struct timespec*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 300
    functionName: sem_timedwait_save
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - select
    - PyErr_CheckSignals
    - sem_trywait
    - gettimeofday
    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: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: if
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Py_UNBLOCK_THREADS
    signature: Py_UNBLOCK_THREADS if (res)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ISMINE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:322,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:329,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:330,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:338,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:339,1
    - Dst: sem_trywait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:352,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:354,1
    - Dst: sem_wait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:362,1
    - Dst: sem_timedwait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:365,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:371,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:381,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:385,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 3
    argNames:
    - self
    - blocking
    - timeout_obj
    argTypes:
    - SemLockObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 388
    functionName: _multiprocessing_SemLock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - gettimeofday
    - sem_timedwait
    - ISMINE
    - PyErr_CheckSignals
    - sem_wait
    - PyErr_SetFromErrno
    - sem_trywait
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multiprocessing_SemLock_acquire_impl(SemLockObject *self,
      int blocking,\n                                      PyObject *timeout_obj)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ISMINE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:403,1
    - Dst: assert
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:412,1
    - Dst: sem_trywait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:418,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:420,1
    - Dst: sem_post
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:426,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:430,1
    - Dst: sem_getvalue
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:441,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:442,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:444,1
    - Dst: sem_post
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:451,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts:
    - condition: (self->count == 1)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 456
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 456
    functionName: _multiprocessing_SemLock_release_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - sem_post
    - PyErr_SetString
    - sem_getvalue
    - ISMINE
    - PyErr_SetFromErrno
    - sem_trywait
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock_release_impl(SemLockObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - type
    - handle
    - kind
    - maxvalue
    - name
    argTypes:
    - PyTypeObject*
    - SEM_HANDLE
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 478
    functionName: newsemlockobject
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnewsemlockobject(PyTypeObject *type, SEM_HANDLE handle,
      int kind, int maxvalue,\n                 char *name)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:502,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:507,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:507,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:509,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:511,1
    - Dst: SEM_CLEAR_ERROR
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:514,1
    - Dst: SEM_CREATE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:515,1
    - Dst: SEM_GET_LAST_ERROR
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:517,1
    - Dst: SEM_UNLINK
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:520,1
    - Dst: newsemlockobject
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:523,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:530,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:531,1
    - Dst: SEM_CLOSE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:534,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:535,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 6
    argNames:
    - type
    - kind
    - value
    - maxvalue
    - name
    - unlink
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 537
    functionName: _multiprocessing_SemLock_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - SEM_GET_LAST_ERROR
    - SEM_CREATE
    - strlen
    - SEM_CLEAR_ERROR
    - PyErr_Occurred
    - PyErr_SetString
    - SEM_UNLINK
    - PyErr_NoMemory
    - SEM_CLOSE
    - PyMem_Free
    - newsemlockobject
    - _PyMp_SetError
    - strcpy
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multiprocessing_SemLock_impl(PyTypeObject *type, int
      kind, int value,\n                              int maxvalue, const char *name,
      int unlink)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:560,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:560,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:562,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:563,1
    - Dst: sem_open
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:568,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:570,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:571,1
    - Dst: newsemlockobject
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - type
    - handle
    - kind
    - maxvalue
    - name
    argTypes:
    - PyTypeObject*
    - SEM_HANDLE
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 578
    functionName: _multiprocessing_SemLock__rebuild_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - strlen
    - sem_open
    - PyErr_NoMemory
    - PyMem_Free
    - newsemlockobject
    - PyErr_SetFromErrno
    - strcpy
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multiprocessing_SemLock__rebuild_impl(PyTypeObject *type,
      SEM_HANDLE handle,\n                                       int kind, int maxvalue,\n
      \                                      const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SemLockObject_CAST
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:583,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:584,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:585,1
    - Dst: SEM_CLOSE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:587,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:588,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: semlock_dealloc
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - _SemLockObject_CAST
    - Py_TYPE
    - PyMem_Free
    - SEM_CLOSE
    linkageType: ''
    returnType: void
    signature: void semlock_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 605
    functionName: _multiprocessing_SemLock__count_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__count_impl(SemLockObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:618,1
    - Dst: ISMINE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 619
    functionName: _multiprocessing_SemLock__is_mine_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - ISMINE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__is_mine_impl(SemLockObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:632,1
    - Dst: SEM_GETVALUE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:636,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:637,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 644
    functionName: _multiprocessing_SemLock__get_value_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetNone
    - _PyMp_SetError
    - SEM_GETVALUE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__get_value_impl(SemLockObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sem_trywait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:657,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:660,1
    - Dst: sem_post
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:662,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:663,1
    - Dst: SEM_GETVALUE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:668,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:669,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 672
    functionName: _multiprocessing_SemLock__is_zero_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - sem_post
    - PyBool_FromLong
    - _PyMp_SetError
    - sem_trywait
    - SEM_GETVALUE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__is_zero_impl(SemLockObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 686
    functionName: _multiprocessing_SemLock__after_fork_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__after_fork_impl(SemLockObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multiprocessing_SemLock_acquire_impl
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: _multiprocessing_SemLock___enter___impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - _multiprocessing_SemLock_acquire_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock___enter___impl(SemLockObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multiprocessing_SemLock_release_impl
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - exc_tb
    argTypes:
    - SemLockObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 721
    functionName: _multiprocessing_SemLock___exit___impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - _multiprocessing_SemLock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multiprocessing_SemLock___exit___impl(SemLockObject *self,\n
      \                                      PyObject *exc_type,\n                                       PyObject
      *exc_value, PyObject *exc_tb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:726,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 728
    functionName: semlock_traverse
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int semlock_traverse(PyObject *s, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEM_UNLINK
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:797,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 803
    functionName: _PyMp_sem_unlink
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 1
    functionsReached:
    - _PyMp_SetError
    - SEM_UNLINK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMp_sem_unlink(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:26,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:27,1
    - Dst: _multiprocessing_closesocket_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: _multiprocessing_closesocket
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _multiprocessing_closesocket_impl
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_closesocket(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:58,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:61,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:62,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:65,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:66,1
    - Dst: _multiprocessing_recv_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 73
    functionName: _multiprocessing_recv
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _PyArg_CheckPositional
    - _multiprocessing_recv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_recv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:97,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:100,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:101,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:104,1
    - Dst: _multiprocessing_send_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:107,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 116
    functionName: _multiprocessing_send
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - _multiprocessing_send_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_send(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:137,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:138,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:142,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:146,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:147,1
    - Dst: _multiprocessing_sem_unlink_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 154
    functionName: _multiprocessing_sem_unlink
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/multiprocessing.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _multiprocessing_sem_unlink_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_sem_unlink(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:40,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:42,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:42,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:59,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:63,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:72,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:82,1
    - Dst: _multiprocessing_SemLock_acquire_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:83,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 88
    functionName: _multiprocessing_SemLock_acquire
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _multiprocessing_SemLock_acquire_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock_acquire(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:111,1
    - Dst: _multiprocessing_SemLock_release_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:112,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    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: _multiprocessing_SemLock_release
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _multiprocessing_SemLock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock_release(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:148,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:150,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:150,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:167,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:171,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:180,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:190,1
    - Dst: _multiprocessing_SemLock_acquire_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:191,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:192,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 196
    functionName: _multiprocessing_SemLock_acquire
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _multiprocessing_SemLock_acquire_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock_acquire(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:219,1
    - Dst: _multiprocessing_SemLock_release_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:220,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: _multiprocessing_SemLock_release
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _multiprocessing_SemLock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock_release(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:247,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:249,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:267,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:274,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:274,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:279,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:280,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:283,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:284,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:287,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:288,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:291,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:292,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:296,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:300,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:301,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:304,1
    - Dst: _multiprocessing_SemLock_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:308,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 312
    functionName: _multiprocessing_SemLock
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyUnicode_AsUTF8AndSize
    - _Py_ID
    - strlen
    - PyErr_SetString
    - _multiprocessing_SemLock_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:340,1
    - Dst: _multiprocessing_SemLock__rebuild_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 348
    functionName: _multiprocessing_SemLock__rebuild
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _multiprocessing_SemLock__rebuild_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__rebuild(PyObject *type, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:371,1
    - Dst: _multiprocessing_SemLock__count_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:372,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: _multiprocessing_SemLock__count
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _multiprocessing_SemLock__count_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__count(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multiprocessing_SemLock__is_mine_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: _multiprocessing_SemLock__is_mine
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - _multiprocessing_SemLock__is_mine_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__is_mine(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multiprocessing_SemLock__get_value_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: _multiprocessing_SemLock__get_value
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - _multiprocessing_SemLock__get_value_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__get_value(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multiprocessing_SemLock__is_zero_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: _multiprocessing_SemLock__is_zero
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - _multiprocessing_SemLock__is_zero_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__is_zero(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multiprocessing_SemLock__after_fork_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: _multiprocessing_SemLock__after_fork
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - _multiprocessing_SemLock__after_fork_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock__after_fork(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:487,1
    - Dst: _multiprocessing_SemLock___enter___impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:488,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: _multiprocessing_SemLock___enter__
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _multiprocessing_SemLock___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock___enter__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:520,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:536,1
    - Dst: _multiprocessing_SemLock___exit___impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:537,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h:538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 542
    functionName: _multiprocessing_SemLock___exit__
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/semaphore.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - _multiprocessing_SemLock___exit___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_SemLock___exit__(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h:30,1
    - Dst: _posixshmem_shm_open_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h:33,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h:34,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: _posixshmem_shm_open
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _posixshmem_shm_open_impl
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _posixshmem_shm_open(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h:69,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h:70,1
    - Dst: _posixshmem_shm_unlink_impl
      Src: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: _posixshmem_shm_unlink
    functionSourceFile: /src/cpython/Modules/_multiprocessing/clinic/posixshmem.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _posixshmem_shm_unlink_impl
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _posixshmem_shm_unlink(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_clockid_converter
      Src: /src/cpython/Modules/clinic/timemodule.c.h:25,1
    - Dst: time_clock_gettime_impl
      Src: /src/cpython/Modules/clinic/timemodule.c.h:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: time_clock_gettime
    functionSourceFile: /src/cpython/Modules/clinic/timemodule.c.h
    functionUses: 0
    functionsReached:
    - time_clock_gettime_impl
    - time_clockid_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_gettime(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_clockid_converter
      Src: /src/cpython/Modules/clinic/timemodule.c.h:56,1
    - Dst: time_clock_gettime_ns_impl
      Src: /src/cpython/Modules/clinic/timemodule.c.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: time_clock_gettime_ns
    functionSourceFile: /src/cpython/Modules/clinic/timemodule.c.h
    functionUses: 0
    functionsReached:
    - time_clock_gettime_ns_impl
    - time_clockid_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_gettime_ns(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:33,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:36,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:37,1
    - Dst: signal_default_int_handler_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: signal_default_int_handler
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_default_int_handler_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_default_int_handler(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:68,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:69,1
    - Dst: signal_alarm_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:72,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:73,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: signal_alarm
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_alarm_impl
    - PyLong_FromLong
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_alarm(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal_pause_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: signal_pause
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:125,1
    - Dst: signal_raise_signal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: signal_raise_signal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_raise_signal_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_raise_signal(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:160,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:163,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:164,1
    - Dst: signal_signal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: signal_signal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_signal_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_signal(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:198,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:199,1
    - Dst: signal_getsignal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: signal_getsignal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_getsignal_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getsignal(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:230,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:231,1
    - Dst: signal_strsignal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: signal_strsignal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_strsignal_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_strsignal(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:264,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:267,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:268,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:271,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:272,1
    - Dst: signal_siginterrupt_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 279
    functionName: signal_siginterrupt
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - signal_siginterrupt_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_siginterrupt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:314,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:316,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:333,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:337,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:346,1
    - Dst: signal_set_wakeup_fd_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 355
    functionName: signal_set_wakeup_fd
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - signal_set_wakeup_fd_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_set_wakeup_fd(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:385,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:388,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:389,1
    - Dst: signal_setitimer_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:398,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 402
    functionName: signal_setitimer
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_setitimer_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_setitimer(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:426,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:427,1
    - Dst: signal_getitimer_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 434
    functionName: signal_getitimer
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_getitimer_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getitimer(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:459,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:462,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:463,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:466,1
    - Dst: signal_pthread_sigmask_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 473
    functionName: signal_pthread_sigmask
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_pthread_sigmask_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _Py_Sigset_Converter
    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/cpython/Modules/clinic/signalmodule.c.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: signal_sigpending
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/signalmodule.c.h:526,1
    - Dst: signal_sigwait_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: signal_sigwait
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/signalmodule.c.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: signal_valid_signals
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/signalmodule.c.h:584,1
    - Dst: signal_sigwaitinfo_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 591
    functionName: signal_sigwaitinfo
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/signalmodule.c.h:619,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:622,1
    - Dst: signal_sigtimedwait_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 630
    functionName: signal_sigtimedwait
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Sigset_Converter
    - signal_sigtimedwait_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigtimedwait(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:656,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:659,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:660,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:664,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:672,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:679,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:680,1
    - Dst: signal_pthread_kill_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:683,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 687
    functionName: signal_pthread_kill
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - PyErr_WarnEx
    - signal_pthread_kill_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pthread_kill(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:715,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:718,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:719,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:723,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:733,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:734,1
    - Dst: signal_pidfd_send_signal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:738,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 742
    functionName: signal_pidfd_send_signal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - signal_pidfd_send_signal_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:28,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:32,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:35,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:36,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:40,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:44,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:45,1
    - Dst: _symtable_symtable_impl
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: _symtable_symtable
    functionSourceFile: /src/cpython/Modules/clinic/symtablemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FSDecoder
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _symtable_symtable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:44,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:49,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:49,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:50,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:50,1
    - Dst: _elementtree_Element_append_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 58
    functionName: _elementtree_Element_append
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - clinic_state
    - _PyArg_BadArgument
    - _elementtree_Element_append_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_append(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_clear_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: _elementtree_Element_clear
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:91,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:92,1
    - Dst: _elementtree_Element___copy___impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: _elementtree_Element___copy__
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _elementtree_Element___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___copy__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:115,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:116,1
    - Dst: _elementtree_Element___deepcopy___impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: _elementtree_Element___deepcopy__
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - _PyArg_BadArgument
    - _elementtree_Element___deepcopy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___deepcopy__(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element___sizeof___impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:144,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: _elementtree_Element___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSize_t
    - _elementtree_Element___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element___getstate___impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: _elementtree_Element___getstate__
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element___getstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___getstate__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:202,1
    - Dst: _elementtree_Element___setstate___impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 212
    functionName: _elementtree_Element___setstate__
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element___setstate___impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___setstate__(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:246,1
    - Dst: _elementtree_Element_extend_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 226
    functionDepth: 5
    functionLinenumber: 226
    functionLinenumberEnd: 256
    functionName: _elementtree_Element_extend
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _elementtree_Element_extend_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_extend(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:285,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:285,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:302,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:306,1
    - Dst: _elementtree_Element_find_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 321
    functionName: _elementtree_Element_find
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _elementtree_Element_find_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_find(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:349,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:351,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:351,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:351,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:368,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:373,1
    - Dst: _elementtree_Element_findtext_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:390,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 394
    functionName: _elementtree_Element_findtext
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_findtext_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_findtext(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:421,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:423,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:423,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:440,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:444,1
    - Dst: _elementtree_Element_findall_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 459
    functionName: _elementtree_Element_findall
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _elementtree_Element_findall_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_findall(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:486,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:488,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:488,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:505,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:509,1
    - Dst: _elementtree_Element_iterfind_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 524
    functionName: _elementtree_Element_iterfind
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _elementtree_Element_iterfind_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_iterfind(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:551,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:553,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:553,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:570,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:574,1
    - Dst: _elementtree_Element_get_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 589
    functionName: _elementtree_Element_get
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _elementtree_Element_get_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_get(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:616,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:618,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:635,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:638,1
    - Dst: _elementtree_Element_iter_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:648,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 652
    functionName: _elementtree_Element_iter
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _elementtree_Element_iter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_iter(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:668,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:669,1
    - Dst: _elementtree_Element_itertext_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 673
    functionName: _elementtree_Element_itertext
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _elementtree_Element_itertext_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_itertext(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:694,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:699,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:702,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:704,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:709,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:709,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:710,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:710,1
    - Dst: _elementtree_Element_insert_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:714,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 687
    functionDepth: 4
    functionLinenumber: 687
    functionLinenumberEnd: 718
    functionName: _elementtree_Element_insert
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_TypeCheck
    - _PyNumber_Index
    - PyErr_Occurred
    - clinic_state
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _elementtree_Element_insert_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_insert(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_items_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: _elementtree_Element_items
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_items_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_items(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_keys_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: _elementtree_Element_keys
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_keys(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:787,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:793,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:794,1
    - Dst: _elementtree_Element_makeelement_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:798,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 766
    functionDepth: 4
    functionLinenumber: 766
    functionLinenumberEnd: 802
    functionName: _elementtree_Element_makeelement
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - _elementtree_Element_makeelement_impl
    - _PyArg_BadArgument
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_makeelement(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:821,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:821,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:822,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:822,1
    - Dst: _elementtree_Element_remove_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 830
    functionName: _elementtree_Element_remove
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_remove_impl
    - PyObject_TypeCheck
    - clinic_state
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_remove(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:851,1
    - Dst: _elementtree_Element_set_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 860
    functionName: _elementtree_Element_set
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _elementtree_Element_set_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_set(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:882,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:884,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:884,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:884,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:884,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:884,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:902,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:903,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:910,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:910,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:941,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:949,1
    - Dst: _elementtree_TreeBuilder___init___impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:954,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 958
    functionName: _elementtree_TreeBuilder___init__
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _elementtree_TreeBuilder___init___impl
    linkageType: ''
    returnType: int
    signature: int _elementtree_TreeBuilder___init__(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:982,1
    - Dst: _elementtree__set_factories_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 991
    functionName: _elementtree__set_factories
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree__set_factories_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree__set_factories(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_TreeBuilder_data_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1012
    functionName: _elementtree_TreeBuilder_data
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_TreeBuilder_data_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_data(PyObject *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_TreeBuilder_end_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1025
    functionDepth: 6
    functionLinenumber: 1025
    functionLinenumberEnd: 1033
    functionName: _elementtree_TreeBuilder_end
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_TreeBuilder_end_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_end(PyObject *self, PyObject *tag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_TreeBuilder_comment_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1047
    functionDepth: 7
    functionLinenumber: 1047
    functionLinenumberEnd: 1055
    functionName: _elementtree_TreeBuilder_comment
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_TreeBuilder_comment_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_comment(PyObject *self, PyObject *text)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1076,1
    - Dst: _elementtree_TreeBuilder_pi_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1085,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1069
    functionDepth: 7
    functionLinenumber: 1069
    functionLinenumberEnd: 1089
    functionName: _elementtree_TreeBuilder_pi
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_TreeBuilder_pi_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_pi(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_TreeBuilder_close_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1106
    functionName: _elementtree_TreeBuilder_close
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_TreeBuilder_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1127,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1131,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1132,1
    - Dst: _elementtree_TreeBuilder_start_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1120
    functionDepth: 7
    functionLinenumber: 1120
    functionLinenumberEnd: 1140
    functionName: _elementtree_TreeBuilder_start
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_TreeBuilder_start_impl
    - PyDict_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_start(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1159,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1161,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1161,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1179,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1180,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1184,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1184,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1201,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1203,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1207,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1208,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1213,1
    - Dst: _elementtree_XMLParser___init___impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1217,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1146
    functionDepth: 5
    functionLinenumber: 1146
    functionLinenumberEnd: 1221
    functionName: _elementtree_XMLParser___init__
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _elementtree_XMLParser___init___impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    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/cpython/Modules/clinic/_elementtree.c.h:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1234
    functionDepth: 4
    functionLinenumber: 1234
    functionLinenumberEnd: 1238
    functionName: _elementtree_XMLParser_close
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_XMLParser_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_XMLParser_flush_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1251
    functionDepth: 4
    functionLinenumber: 1251
    functionLinenumberEnd: 1255
    functionName: _elementtree_XMLParser_flush
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_XMLParser_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_XMLParser_feed_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1268
    functionDepth: 4
    functionLinenumber: 1268
    functionLinenumberEnd: 1276
    functionName: _elementtree_XMLParser_feed
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_XMLParser_feed_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_feed(PyObject *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_XMLParser__parse_whole_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1290
    functionDepth: 4
    functionLinenumber: 1290
    functionLinenumberEnd: 1298
    functionName: _elementtree_XMLParser__parse_whole
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_XMLParser__parse_whole_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser__parse_whole(PyObject *self, PyObject *file)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1320,1
    - Dst: _elementtree_XMLParser__setevents_impl
      Src: /src/cpython/Modules/clinic/_elementtree.c.h:1329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1333
    functionName: _elementtree_XMLParser__setevents
    functionSourceFile: /src/cpython/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_XMLParser__setevents_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser__setevents(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:46,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:46,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:63,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:67,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:76,1
    - Dst: _thread_lock_acquire_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:86,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 90
    functionName: _thread_lock_acquire
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _thread_lock_acquire_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_acquire(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:118,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:120,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:120,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:137,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:141,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:150,1
    - Dst: _thread_lock_acquire_lock_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:160,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 164
    functionName: _thread_lock_acquire_lock
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _thread_lock_acquire_lock_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_acquire_lock(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_release_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: _thread_lock_release
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_lock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_release(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_release_lock_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: _thread_lock_release_lock
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_lock_release_lock_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_release_lock(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock___enter___impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: _thread_lock___enter__
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_lock___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock___enter__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:245,1
    - Dst: _thread_lock___exit___impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 255
    functionName: _thread_lock___exit__
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_lock___exit___impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock___exit__(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_locked_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: _thread_lock_locked
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_lock_locked_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_locked(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock_locked_lock_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: _thread_lock_locked_lock
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_lock_locked_lock_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock_locked_lock(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_lock__at_fork_reinit_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: _thread_lock__at_fork_reinit
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_lock__at_fork_reinit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_lock__at_fork_reinit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:321,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:324,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:328,1
    - Dst: lock_new_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:331,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 335
    functionName: lock_new
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - lock_new_impl
    - clinic_state
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:376,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:378,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:378,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:395,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:399,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:408,1
    - Dst: _thread_RLock_acquire_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:418,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 422
    functionName: _thread_RLock_acquire
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _thread_RLock_acquire_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock_acquire(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock___enter___impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 4
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: _thread_RLock___enter__
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock___enter__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock_release_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: _thread_RLock_release
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock_release_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock_release(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:490,1
    - Dst: _thread_RLock___exit___impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 500
    functionName: _thread_RLock___exit__
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _thread_RLock___exit___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock___exit__(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock_locked_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: _thread_RLock_locked
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock_locked_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock_locked(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock__acquire_restore_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: _thread_RLock__acquire_restore
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock__acquire_restore_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__acquire_restore(PyObject *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock__release_save_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: _thread_RLock__release_save
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock__release_save_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__release_save(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock__recursion_count_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: _thread_RLock__recursion_count
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock__recursion_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__recursion_count(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock__is_owned_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: _thread_RLock__is_owned
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock__is_owned_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__is_owned(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:603,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:606,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:610,1
    - Dst: rlock_new_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:613,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 617
    functionName: rlock_new
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - rlock_new_impl
    - clinic_state
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread_RLock__at_fork_reinit_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: _thread_RLock__at_fork_reinit
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread_RLock__at_fork_reinit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock__at_fork_reinit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _thread__get_name_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: _thread__get_name
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _thread__get_name_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread__get_name(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:689,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:691,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:710,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:715,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:716,1
    - Dst: _thread_set_name_impl
      Src: /src/cpython/Modules/clinic/_threadmodule.c.h:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 724
    functionName: _thread_set_name
    functionSourceFile: /src/cpython/Modules/clinic/_threadmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - _thread_set_name_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_set_name(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pwdmodule.c.h:38,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pwdmodule.c.h:39,1
    - Dst: pwd_getpwnam_impl
      Src: /src/cpython/Modules/clinic/pwdmodule.c.h:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: pwd_getpwnam
    functionSourceFile: /src/cpython/Modules/clinic/pwdmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - pwd_getpwnam_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwnam(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pwd_getpwall_impl
      Src: /src/cpython/Modules/clinic/pwdmodule.c.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: pwd_getpwall
    functionSourceFile: /src/cpython/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: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:29,1
    - Dst: _ssl__SSLSocket_do_handshake_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:30,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: _ssl__SSLSocket_do_handshake
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_do_handshake_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_do_handshake(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/_ssl.c.h:53,1
    - Dst: _ssl__test_decode_cert_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 9
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: _ssl__test_decode_cert
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FSConverter
    - _ssl__test_decode_cert_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__test_decode_cert(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:88,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:94,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:99,1
    - Dst: _ssl__SSLSocket_getpeercert_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:100,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 9
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: _ssl__SSLSocket_getpeercert
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_getpeercert_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_getpeercert(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:123,1
    - Dst: _ssl__SSLSocket_get_verified_chain_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:124,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: _ssl__SSLSocket_get_verified_chain
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_get_verified_chain_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_get_verified_chain(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:146,1
    - Dst: _ssl__SSLSocket_get_unverified_chain_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:147,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: _ssl__SSLSocket_get_unverified_chain
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_get_unverified_chain_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_get_unverified_chain(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:169,1
    - Dst: _ssl__SSLSocket_shared_ciphers_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:170,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: _ssl__SSLSocket_shared_ciphers
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_shared_ciphers_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shared_ciphers(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:192,1
    - Dst: _ssl__SSLSocket_cipher_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:193,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: _ssl__SSLSocket_cipher
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_cipher_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_cipher(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:215,1
    - Dst: _ssl__SSLSocket_group_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:216,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: _ssl__SSLSocket_group
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_group_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_group(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:238,1
    - Dst: _ssl__SSLSocket_version_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:239,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: _ssl__SSLSocket_version
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_version_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_version(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:261,1
    - Dst: _ssl__SSLSocket_selected_alpn_protocol_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:262,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: _ssl__SSLSocket_selected_alpn_protocol
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_selected_alpn_protocol_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_selected_alpn_protocol(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_compression_impl
      Src: /src/cpython/Modules/clinic/_ssl.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: 2
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: _ssl__SSLSocket_compression
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_compression_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_compression(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:314,1
    - Dst: _ssl__SSLSocket_context_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:315,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 319
    functionName: _ssl__SSLSocket_context_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_context_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_context_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:339,1
    - Dst: _ssl__SSLSocket_context_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:340,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 344
    functionName: _ssl__SSLSocket_context_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_context_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLSocket_context_set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:371,1
    - Dst: _ssl__SSLSocket_server_side_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:372,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: _ssl__SSLSocket_server_side_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_server_side_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_server_side_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:403,1
    - Dst: _ssl__SSLSocket_server_hostname_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:404,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: _ssl__SSLSocket_server_hostname_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_server_hostname_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_server_hostname_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:437,1
    - Dst: _ssl__SSLSocket_owner_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:438,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: _ssl__SSLSocket_owner_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_owner_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_owner_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:462,1
    - Dst: _ssl__SSLSocket_owner_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:463,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 467
    functionName: _ssl__SSLSocket_owner_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_owner_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLSocket_owner_set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:486,1
    - Dst: _ssl__SSLSocket_uses_ktls_for_send_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:487,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 491
    functionName: _ssl__SSLSocket_uses_ktls_for_send
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_uses_ktls_for_send_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_uses_ktls_for_send(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:510,1
    - Dst: _ssl__SSLSocket_uses_ktls_for_recv_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:511,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 515
    functionName: _ssl__SSLSocket_uses_ktls_for_recv
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_uses_ktls_for_recv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_uses_ktls_for_recv(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:547,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:550,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:551,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/_ssl.c.h:554,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/_ssl.c.h:557,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:563,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:564,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:568,1
    - Dst: _ssl__SSLSocket_sendfile_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:569,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:570,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 574
    functionName: _ssl__SSLSocket_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyLong_Size_t_Converter
    - PyLong_AsInt
    - PyErr_Occurred
    - Py_off_t_converter
    - _PyArg_CheckPositional
    - _ssl__SSLSocket_sendfile_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_sendfile(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_ssl.c.h:598,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:601,1
    - Dst: _ssl__SSLSocket_write_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:602,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:603,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 592
    functionDepth: 4
    functionLinenumber: 592
    functionLinenumberEnd: 612
    functionName: _ssl__SSLSocket_write
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_write_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_write(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:631,1
    - Dst: _ssl__SSLSocket_pending_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:632,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 636
    functionName: _ssl__SSLSocket_pending
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_pending_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_pending(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:657,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_ssl.c.h:659,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_ssl.c.h:664,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:670,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:673,1
    - Dst: _ssl__SSLSocket_read_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:674,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:675,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:680,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 684
    functionName: _ssl__SSLSocket_read
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    - _ssl__SSLSocket_read_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_read(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:703,1
    - Dst: _ssl__SSLSocket_shutdown_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:704,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 4
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: _ssl__SSLSocket_shutdown
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_shutdown_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shutdown(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:740,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:742,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:759,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:762,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:770,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:771,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:775,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:779,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:780,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:784,1
    - Dst: _ssl__SSLSocket_get_channel_binding_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:785,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:786,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 790
    functionName: _ssl__SSLSocket_get_channel_binding
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - _ssl__SSLSocket_get_channel_binding_impl
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_get_channel_binding(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:809,1
    - Dst: _ssl__SSLSocket_verify_client_post_handshake_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:810,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 804
    functionDepth: 4
    functionLinenumber: 804
    functionLinenumberEnd: 814
    functionName: _ssl__SSLSocket_verify_client_post_handshake
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_verify_client_post_handshake_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_verify_client_post_handshake(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:841,1
    - Dst: _ssl__SSLSocket_session_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:842,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 846
    functionName: _ssl__SSLSocket_session_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_session_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_session_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:866,1
    - Dst: _ssl__SSLSocket_session_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:867,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 861
    functionDepth: 4
    functionLinenumber: 861
    functionLinenumberEnd: 871
    functionName: _ssl__SSLSocket_session_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_session_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLSocket_session_set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:898,1
    - Dst: _ssl__SSLSocket_session_reused_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:899,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 903
    functionName: _ssl__SSLSocket_session_reused_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_session_reused_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_session_reused_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_state_type
      Src: /src/cpython/Modules/clinic/_ssl.c.h:912,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:916,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:919,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:919,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:922,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_ssl.c.h:922,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:923,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:926,1
    - Dst: _ssl__SSLContext_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:927,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:928,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 932
    functionName: _ssl__SSLContext
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - get_state_type
    - _ssl__SSLContext_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:951,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:952,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:956,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:960,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:961,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:964,1
    - Dst: _ssl__SSLContext_set_ciphers_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:965,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 970
    functionName: _ssl__SSLContext_set_ciphers
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _ssl__SSLContext_set_ciphers_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ciphers(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:988,1
    - Dst: _ssl__SSLContext_get_ciphers_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:989,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 983
    functionDepth: 4
    functionLinenumber: 983
    functionLinenumberEnd: 993
    functionName: _ssl__SSLContext_get_ciphers
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_get_ciphers_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ciphers(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1012,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1013,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1017,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1021,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1022,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1025,1
    - Dst: _ssl__SSLContext_set_groups_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1026,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1027,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1031
    functionName: _ssl__SSLContext_set_groups
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - _ssl__SSLContext_set_groups_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_groups(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1057,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1059,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1076,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1079,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1087,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1092,1
    - Dst: _ssl__SSLContext_get_groups_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1093,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1094,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1044
    functionDepth: 4
    functionLinenumber: 1044
    functionLinenumberEnd: 1098
    functionName: _ssl__SSLContext_get_groups
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _ssl__SSLContext_get_groups_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_groups(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1118,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1121,1
    - Dst: _ssl__SSLContext__set_alpn_protocols_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1122,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1123,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1132
    functionName: _ssl__SSLContext__set_alpn_protocols
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_GetBuffer
    - PyBuffer_Release
    - _ssl__SSLContext__set_alpn_protocols_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__set_alpn_protocols(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1152,1
    - Dst: _ssl__SSLContext_verify_mode_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1153,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1157
    functionName: _ssl__SSLContext_verify_mode_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_verify_mode_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_verify_mode_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1177,1
    - Dst: _ssl__SSLContext_verify_mode_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1178,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1182
    functionName: _ssl__SSLContext_verify_mode_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_verify_mode_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_verify_mode_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1202,1
    - Dst: _ssl__SSLContext_verify_flags_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1203,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1207
    functionName: _ssl__SSLContext_verify_flags_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_verify_flags_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_verify_flags_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1227,1
    - Dst: _ssl__SSLContext_verify_flags_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1228,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1222
    functionDepth: 4
    functionLinenumber: 1222
    functionLinenumberEnd: 1232
    functionName: _ssl__SSLContext_verify_flags_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_verify_flags_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_verify_flags_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1252,1
    - Dst: _ssl__SSLContext_minimum_version_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1253,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1257
    functionName: _ssl__SSLContext_minimum_version_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_minimum_version_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_minimum_version_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1278,1
    - Dst: _ssl__SSLContext_minimum_version_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1279,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1273
    functionDepth: 3
    functionLinenumber: 1273
    functionLinenumberEnd: 1283
    functionName: _ssl__SSLContext_minimum_version_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_minimum_version_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_minimum_version_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1303,1
    - Dst: _ssl__SSLContext_maximum_version_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1304,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1308
    functionName: _ssl__SSLContext_maximum_version_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_maximum_version_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_maximum_version_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1329,1
    - Dst: _ssl__SSLContext_maximum_version_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1330,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1324
    functionDepth: 3
    functionLinenumber: 1324
    functionLinenumberEnd: 1334
    functionName: _ssl__SSLContext_maximum_version_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_maximum_version_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_maximum_version_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1361,1
    - Dst: _ssl__SSLContext_num_tickets_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1362,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1366
    functionName: _ssl__SSLContext_num_tickets_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_num_tickets_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_num_tickets_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1386,1
    - Dst: _ssl__SSLContext_num_tickets_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1387,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1381
    functionDepth: 2
    functionLinenumber: 1381
    functionLinenumberEnd: 1391
    functionName: _ssl__SSLContext_num_tickets_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_num_tickets_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_num_tickets_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1418,1
    - Dst: _ssl__SSLContext_security_level_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1419,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1423
    functionName: _ssl__SSLContext_security_level_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_security_level_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_security_level_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1443,1
    - Dst: _ssl__SSLContext_options_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1444,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1438
    functionDepth: 2
    functionLinenumber: 1438
    functionLinenumberEnd: 1448
    functionName: _ssl__SSLContext_options_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_options_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_options_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1468,1
    - Dst: _ssl__SSLContext_options_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1469,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1463
    functionDepth: 3
    functionLinenumber: 1463
    functionLinenumberEnd: 1473
    functionName: _ssl__SSLContext_options_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_options_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_options_set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1493,1
    - Dst: _ssl__SSLContext__host_flags_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1494,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1498
    functionName: _ssl__SSLContext__host_flags_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext__host_flags_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__host_flags_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1518,1
    - Dst: _ssl__SSLContext__host_flags_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1519,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1513
    functionDepth: 2
    functionLinenumber: 1513
    functionLinenumberEnd: 1523
    functionName: _ssl__SSLContext__host_flags_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext__host_flags_set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext__host_flags_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1543,1
    - Dst: _ssl__SSLContext_check_hostname_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1544,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1538
    functionDepth: 2
    functionLinenumber: 1538
    functionLinenumberEnd: 1548
    functionName: _ssl__SSLContext_check_hostname_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_check_hostname_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_check_hostname_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1568,1
    - Dst: _ssl__SSLContext_check_hostname_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1569,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1563
    functionDepth: 3
    functionLinenumber: 1563
    functionLinenumberEnd: 1573
    functionName: _ssl__SSLContext_check_hostname_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_check_hostname_set_impl
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_check_hostname_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1593,1
    - Dst: _ssl__SSLContext_protocol_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1594,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1598
    functionName: _ssl__SSLContext_protocol_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_protocol_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_protocol_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1625,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1627,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1627,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1627,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1644,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1649,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1666,1
    - Dst: _ssl__SSLContext_load_cert_chain_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1667,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1612
    functionDepth: 4
    functionLinenumber: 1612
    functionLinenumberEnd: 1672
    functionName: _ssl__SSLContext_load_cert_chain
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _ssl__SSLContext_load_cert_chain_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_load_cert_chain(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1701,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1703,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1703,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1703,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1720,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1725,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1747,1
    - Dst: _ssl__SSLContext_load_verify_locations_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1748,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1749,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1688
    functionDepth: 5
    functionLinenumber: 1688
    functionLinenumberEnd: 1753
    functionName: _ssl__SSLContext_load_verify_locations
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _ssl__SSLContext_load_verify_locations_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_load_verify_locations(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1771,1
    - Dst: _ssl__SSLContext_load_dh_params_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1772,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - filepath
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1766
    functionDepth: 4
    functionLinenumber: 1766
    functionLinenumberEnd: 1776
    functionName: _ssl__SSLContext_load_dh_params
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_load_dh_params_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_load_dh_params(PyObject *self, PyObject *filepath)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1805,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1807,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1807,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1807,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1807,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1807,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1824,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1831,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1836,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1836,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1837,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1837,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1841,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1866,1
    - Dst: _ssl__SSLContext__wrap_socket_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1867,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1868,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1792
    functionDepth: 6
    functionLinenumber: 1792
    functionLinenumberEnd: 1872
    functionName: _ssl__SSLContext__wrap_socket
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - _ssl__SSLContext__wrap_socket_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__wrap_socket(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1902,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1904,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1904,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1904,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1904,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1904,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1904,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1921,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1929,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1934,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1934,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1935,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1935,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1939,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1939,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1940,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1940,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1944,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1969,1
    - Dst: _ssl__SSLContext__wrap_bio_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1970,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1971,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1889
    functionDepth: 6
    functionLinenumber: 1889
    functionLinenumberEnd: 1975
    functionName: _ssl__SSLContext__wrap_bio
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - _ssl__SSLContext__wrap_bio_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__wrap_bio(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1993,1
    - Dst: _ssl__SSLContext_session_stats_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1994,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1988
    functionDepth: 2
    functionLinenumber: 1988
    functionLinenumberEnd: 1998
    functionName: _ssl__SSLContext_session_stats
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_session_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_session_stats(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2016,1
    - Dst: _ssl__SSLContext_set_default_verify_paths_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2017,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2011
    functionDepth: 4
    functionLinenumber: 2011
    functionLinenumberEnd: 2021
    functionName: _ssl__SSLContext_set_default_verify_paths
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_set_default_verify_paths_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_default_verify_paths(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2039,1
    - Dst: _ssl__SSLContext_set_ecdh_curve_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2040,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2034
    functionDepth: 4
    functionLinenumber: 2034
    functionLinenumberEnd: 2044
    functionName: _ssl__SSLContext_set_ecdh_curve
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_set_ecdh_curve_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ecdh_curve(PyObject *self, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2076,1
    - Dst: _ssl__SSLContext_sni_callback_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2077,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2071
    functionDepth: 1
    functionLinenumber: 2071
    functionLinenumberEnd: 2081
    functionName: _ssl__SSLContext_sni_callback_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_sni_callback_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_sni_callback_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2101,1
    - Dst: _ssl__SSLContext_sni_callback_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2102,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2096
    functionDepth: 2
    functionLinenumber: 2096
    functionLinenumberEnd: 2106
    functionName: _ssl__SSLContext_sni_callback_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_sni_callback_set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_sni_callback_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2131,1
    - Dst: _ssl__SSLContext_cert_store_stats_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2132,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2126
    functionDepth: 2
    functionLinenumber: 2126
    functionLinenumberEnd: 2136
    functionName: _ssl__SSLContext_cert_store_stats
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLContext_cert_store_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_cert_store_stats(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2169,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2171,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2188,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2191,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2199,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2204,1
    - Dst: _ssl__SSLContext_get_ca_certs_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2205,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2156
    functionDepth: 9
    functionLinenumber: 2156
    functionLinenumberEnd: 2210
    functionName: _ssl__SSLContext_get_ca_certs
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _ssl__SSLContext_get_ca_certs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ca_certs(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2237,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2239,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2258,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2264,1
    - Dst: _ssl__SSLContext_set_psk_client_callback_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2265,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2224
    functionDepth: 4
    functionLinenumber: 2224
    functionLinenumberEnd: 2270
    functionName: _ssl__SSLContext_set_psk_client_callback
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _ssl__SSLContext_set_psk_client_callback_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_psk_client_callback(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2298,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2300,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2300,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2317,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2321,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2333,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2335,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2340,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2345,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2349,1
    - Dst: _ssl__SSLContext_set_psk_server_callback_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2350,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2351,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2285
    functionDepth: 4
    functionLinenumber: 2285
    functionLinenumberEnd: 2355
    functionName: _ssl__SSLContext_set_psk_server_callback
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _ssl__SSLContext_set_psk_server_callback_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_psk_server_callback(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_state_type
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2364,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2367,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2371,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2374,1
    - Dst: _ssl_MemoryBIO_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2375,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2376,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2360
    functionDepth: 2
    functionLinenumber: 2360
    functionLinenumberEnd: 2380
    functionName: _ssl_MemoryBIO
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_NoKeywords
    - Py_END_CRITICAL_SECTION
    - _ssl_MemoryBIO_impl
    - get_state_type
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2407,1
    - Dst: _ssl_MemoryBIO_pending_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2408,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2402
    functionDepth: 2
    functionLinenumber: 2402
    functionLinenumberEnd: 2412
    functionName: _ssl_MemoryBIO_pending_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_MemoryBIO_pending_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_pending_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2439,1
    - Dst: _ssl_MemoryBIO_eof_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2440,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2434
    functionDepth: 2
    functionLinenumber: 2434
    functionLinenumberEnd: 2444
    functionName: _ssl_MemoryBIO_eof_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_MemoryBIO_eof_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_eof_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2469,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2475,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2476,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2480,1
    - Dst: _ssl_MemoryBIO_read_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2481,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2463
    functionDepth: 4
    functionLinenumber: 2463
    functionLinenumberEnd: 2486
    functionName: _ssl_MemoryBIO_read
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - _ssl_MemoryBIO_read_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2508,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2511,1
    - Dst: _ssl_MemoryBIO_write_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2512,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2513,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2502
    functionDepth: 4
    functionLinenumber: 2502
    functionLinenumberEnd: 2522
    functionName: _ssl_MemoryBIO_write
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_GetBuffer
    - PyBuffer_Release
    - _ssl_MemoryBIO_write_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_write(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2543,1
    - Dst: _ssl_MemoryBIO_write_eof_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2544,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2548
    functionName: _ssl_MemoryBIO_write_eof
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_MemoryBIO_write_eof_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_write_eof(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2575,1
    - Dst: _ssl_SSLSession_time_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2576,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2570
    functionDepth: 2
    functionLinenumber: 2570
    functionLinenumberEnd: 2580
    functionName: _ssl_SSLSession_time_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_SSLSession_time_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_time_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2607,1
    - Dst: _ssl_SSLSession_timeout_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2608,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2612
    functionName: _ssl_SSLSession_timeout_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_SSLSession_timeout_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_timeout_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2639,1
    - Dst: _ssl_SSLSession_ticket_lifetime_hint_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2640,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2634
    functionDepth: 1
    functionLinenumber: 2634
    functionLinenumberEnd: 2644
    functionName: _ssl_SSLSession_ticket_lifetime_hint_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_SSLSession_ticket_lifetime_hint_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_ticket_lifetime_hint_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2671,1
    - Dst: _ssl_SSLSession_id_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2672,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2666
    functionDepth: 2
    functionLinenumber: 2666
    functionLinenumberEnd: 2676
    functionName: _ssl_SSLSession_id_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_SSLSession_id_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_id_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2703,1
    - Dst: _ssl_SSLSession_has_ticket_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2704,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2698
    functionDepth: 1
    functionLinenumber: 2698
    functionLinenumberEnd: 2708
    functionName: _ssl_SSLSession_has_ticket_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _ssl_SSLSession_has_ticket_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_SSLSession_has_ticket_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2732,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2735,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2737,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2741,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2746,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2750,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2751,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2755,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2756,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2760,1
    - Dst: _ssl_RAND_add_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2761,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2762,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2767,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2725
    functionDepth: 2
    functionLinenumber: 2725
    functionLinenumberEnd: 2771
    functionName: _ssl_RAND_add
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyFloat_AsDouble
    - Py_END_CRITICAL_SECTION
    - PyUnicode_AsUTF8AndSize
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - PyFloat_AS_DOUBLE
    - PyUnicode_Check
    - PyBuffer_FillInfo
    - _ssl_RAND_add_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_add(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2791,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2792,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2795,1
    - Dst: _ssl_RAND_bytes_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2796,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2785
    functionDepth: 3
    functionLinenumber: 2785
    functionLinenumberEnd: 2801
    functionName: _ssl_RAND_bytes
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - _ssl_RAND_bytes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_bytes(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2823,1
    - Dst: _ssl_RAND_status_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2824,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2818
    functionDepth: 2
    functionLinenumber: 2818
    functionLinenumberEnd: 2828
    functionName: _ssl_RAND_status
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_RAND_status_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_status(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2849,1
    - Dst: _ssl_get_default_verify_paths_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2850,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2844
    functionDepth: 2
    functionLinenumber: 2844
    functionLinenumberEnd: 2854
    functionName: _ssl_get_default_verify_paths
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_get_default_verify_paths_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_get_default_verify_paths(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2884,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2886,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2886,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2903,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2907,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2912,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2913,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2917,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2921,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2922,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2928,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2933,1
    - Dst: _ssl_txt2obj_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2934,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2935,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: 2939
      start: 2871
    functionDepth: 6
    functionLinenumber: 2871
    functionLinenumberEnd: 2939
    functionName: _ssl_txt2obj
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - _ssl_txt2obj_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_txt2obj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2959,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2960,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2963,1
    - Dst: _ssl_nid2obj_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2964,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2969
      start: 2953
    functionDepth: 6
    functionLinenumber: 2953
    functionLinenumberEnd: 2969
    functionName: _ssl_nid2obj
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - _ssl_nid2obj_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_nid2obj(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3004,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3006,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3025,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3030,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3031,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3035,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3040,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3043,1
    - Dst: _ssl_enum_certificates_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3044,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3045,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 2991
    functionDepth: 3
    functionLinenumber: 2991
    functionLinenumberEnd: 3049
    functionName: _ssl_enum_certificates
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _ssl_enum_certificates_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_certificates(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3085,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3087,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3106,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3111,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3112,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3116,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3120,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3121,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3124,1
    - Dst: _ssl_enum_crls_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3125,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 3072
    functionDepth: 3
    functionLinenumber: 3072
    functionLinenumberEnd: 3130
    functionName: _ssl_enum_crls
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - _ssl_enum_crls_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:39,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_opcode.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:62,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:67,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:68,1
    - Dst: _opcode_stack_effect_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:82,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:83,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:86,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 90
    functionName: _opcode_stack_effect
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_stack_effect_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:117,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:119,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:139,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:144,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:145,1
    - Dst: _opcode_is_valid_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:148,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:149,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:152,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 156
    functionName: _opcode_is_valid
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _opcode_is_valid_impl
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_is_valid(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:183,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:185,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:205,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:210,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:211,1
    - Dst: _opcode_has_arg_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:214,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:215,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 222
    functionName: _opcode_has_arg
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_has_arg_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_has_arg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:251,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:271,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:276,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:277,1
    - Dst: _opcode_has_const_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:280,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:281,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:284,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 288
    functionName: _opcode_has_const
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - _opcode_has_const_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_has_const(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:315,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:317,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:337,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:342,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:343,1
    - Dst: _opcode_has_name_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:346,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:347,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:350,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 354
    functionName: _opcode_has_name
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_has_name_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_has_name(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:381,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:383,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:403,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:408,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:409,1
    - Dst: _opcode_has_jump_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:412,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:413,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 420
    functionName: _opcode_has_jump
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyBool_FromLong
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _opcode_has_jump_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_has_jump(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:452,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:454,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:474,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:479,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:480,1
    - Dst: _opcode_has_free_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:483,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:484,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 491
    functionName: _opcode_has_free
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _opcode_has_free_impl
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_has_free(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:518,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:520,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:540,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:545,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:546,1
    - Dst: _opcode_has_local_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:549,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:550,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:553,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 557
    functionName: _opcode_has_local
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_has_local_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_has_local(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:584,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:586,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:606,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:611,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:612,1
    - Dst: _opcode_has_exc_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:616,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_opcode.c.h:619,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 623
    functionName: _opcode_has_exc
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyBool_FromLong
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _opcode_has_exc_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_has_exc(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _opcode_get_specialization_stats_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: _opcode_get_specialization_stats
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_get_specialization_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_specialization_stats(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _opcode_get_nb_ops_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: _opcode_get_nb_ops
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_get_nb_ops_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_nb_ops(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _opcode_get_intrinsic1_descs_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 679
    functionName: _opcode_get_intrinsic1_descs
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_get_intrinsic1_descs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_intrinsic1_descs(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _opcode_get_intrinsic2_descs_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 697
    functionName: _opcode_get_intrinsic2_descs
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_get_intrinsic2_descs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_intrinsic2_descs(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _opcode_get_special_method_names_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 715
    functionName: _opcode_get_special_method_names
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _opcode_get_special_method_names_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_special_method_names(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_opcode.c.h:742,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:744,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_opcode.c.h:744,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_opcode.c.h:764,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_opcode.c.h:770,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_opcode.c.h:771,1
    - Dst: _opcode_get_executor_impl
      Src: /src/cpython/Modules/clinic/_opcode.c.h:774,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 778
    functionName: _opcode_get_executor
    functionSourceFile: /src/cpython/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _opcode_get_executor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_executor(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_Pickler_clear_memo_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: _pickle_Pickler_clear_memo
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_Pickler_clear_memo_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Pickler_clear_memo(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:67,1
    - Dst: _pickle_Pickler_dump_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 47
    functionDepth: 10
    functionLinenumber: 47
    functionLinenumberEnd: 77
    functionName: _pickle_Pickler_dump
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _pickle_Pickler_dump_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Pickler_dump(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_Pickler___sizeof___impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:97,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_pickle.c.h:98,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/clinic/_pickle.c.h:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: _pickle_Pickler___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_Pickler___sizeof___impl
    - PyErr_Occurred
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Pickler___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_pickle.c.h:160,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:162,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:180,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:181,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:187,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_pickle.c.h:187,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_pickle.c.h:203,1
    - Dst: _pickle_Pickler___init___impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:213,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 217
    functionName: _pickle_Pickler___init__
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _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/cpython/Modules/clinic/_pickle.c.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: _pickle_PicklerMemoProxy_clear
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_PicklerMemoProxy_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy_copy_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: _pickle_PicklerMemoProxy_copy
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_PicklerMemoProxy_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy___reduce___impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: _pickle_PicklerMemoProxy___reduce__
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_PicklerMemoProxy___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:305,1
    - Dst: _pickle_Unpickler_persistent_load_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 315
    functionName: _pickle_Unpickler_persistent_load
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _pickle_Unpickler_persistent_load_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler_persistent_load(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:336,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_pickle.c.h:337,1
    - Dst: _pickle_Unpickler_load_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: _pickle_Unpickler_load
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_Unpickler_load_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler_load(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:385,1
    - Dst: _pickle_Unpickler_find_class_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 396
    functionName: _pickle_Unpickler_find_class
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_Unpickler_find_class_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler_find_class(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_Unpickler___sizeof___impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:416,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_pickle.c.h:417,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/clinic/_pickle.c.h:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 424
    functionName: _pickle_Unpickler___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _pickle_Unpickler___sizeof___impl
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_pickle.c.h:470,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:472,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:472,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:472,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:472,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:472,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:490,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:491,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:498,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_pickle.c.h:498,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_pickle.c.h:508,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_pickle.c.h:517,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_pickle.c.h:518,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_pickle.c.h:522,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_pickle.c.h:526,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_pickle.c.h:527,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_pickle.c.h:535,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_pickle.c.h:536,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_pickle.c.h:540,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_pickle.c.h:544,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_pickle.c.h:545,1
    - Dst: _pickle_Unpickler___init___impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:554,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 558
    functionName: _pickle_Unpickler___init__
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _pickle_Unpickler___init___impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    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/cpython/Modules/clinic/_pickle.c.h:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: _pickle_UnpicklerMemoProxy_clear
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_UnpicklerMemoProxy_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy_copy_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: _pickle_UnpicklerMemoProxy_copy
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_UnpicklerMemoProxy_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy___reduce___impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: _pickle_UnpicklerMemoProxy___reduce__
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_UnpicklerMemoProxy___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_pickle.c.h:667,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:669,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:669,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:669,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:669,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:669,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:686,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:693,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_pickle.c.h:714,1
    - Dst: _pickle_dump_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:724,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 654
    functionDepth: 10
    functionLinenumber: 654
    functionLinenumberEnd: 728
    functionName: _pickle_dump
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_dump_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_pickle.c.h:774,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:776,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:776,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:776,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:776,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:793,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:799,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_pickle.c.h:819,1
    - Dst: _pickle_dumps_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:829,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 761
    functionDepth: 10
    functionLinenumber: 761
    functionLinenumberEnd: 833
    functionName: _pickle_dumps
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _pickle_dumps_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_pickle.c.h:885,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:887,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:887,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:887,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:887,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:887,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:904,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:911,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_pickle.c.h:921,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_pickle.c.h:930,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_pickle.c.h:931,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_pickle.c.h:935,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_pickle.c.h:939,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_pickle.c.h:940,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_pickle.c.h:948,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_pickle.c.h:949,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_pickle.c.h:953,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_pickle.c.h:957,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_pickle.c.h:958,1
    - Dst: _pickle_load_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:967,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 872
    functionDepth: 4
    functionLinenumber: 872
    functionLinenumberEnd: 971
    functionName: _pickle_load
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _pickle_load_impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1014,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1016,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1016,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1016,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1016,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1033,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1040,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1050,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1059,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1060,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1064,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1068,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1069,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1077,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1078,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1082,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1086,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1087,1
    - Dst: _pickle_loads_impl
      Src: /src/cpython/Modules/clinic/_pickle.c.h:1096,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1001
    functionDepth: 4
    functionLinenumber: 1001
    functionLinenumberEnd: 1100
    functionName: _pickle_loads
    functionSourceFile: /src/cpython/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - _pickle_loads_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:57,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:59,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:59,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:59,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:76,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:77,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:81,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:86,1
    - Dst: FSTATAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:93,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:100,1
    - Dst: os_stat_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:105,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:109,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 44
    functionDepth: 8
    functionLinenumber: 44
    functionLinenumberEnd: 112
    functionName: os_stat
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_stat_impl
    - FSTATAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_stat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:142,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:144,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:144,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:161,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:162,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:165,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:170,1
    - Dst: FSTATAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:176,1
    - Dst: os_lstat_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:180,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:184,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: 187
      start: 129
    functionDepth: 8
    functionLinenumber: 129
    functionLinenumberEnd: 187
    functionName: os_lstat
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_lstat_impl
    - FSTATAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:241,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:243,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:260,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:261,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:268,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:273,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:276,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:277,1
    - Dst: FACCESSAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:284,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:292,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:300,1
    - Dst: os_access_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:305,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:306,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:309,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:313,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 316
    functionName: os_access
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - FACCESSAT_DIR_FD_CONVERTER
    - os_access_impl
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_access(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:341,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:342,1
    - Dst: os_ttyname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 349
    functionName: os_ttyname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_ttyname_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ttyname(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_ctermid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: os_ctermid
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:404,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:406,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:423,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:425,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:430,1
    - Dst: os_chdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:433,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 391
    functionDepth: 5
    functionLinenumber: 391
    functionLinenumberEnd: 440
    functionName: os_chdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_chdir_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:472,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:474,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:493,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:498,1
    - Dst: os_fchdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 506
    functionName: os_fchdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_fchdir_impl
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:560,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:562,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:562,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:562,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:562,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:579,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:580,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:585,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:590,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:593,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:594,1
    - Dst: FCHMODAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:601,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:608,1
    - Dst: os_chmod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:613,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:617,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 620
    functionName: os_chmod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - os_chmod_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - FCHMODAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:659,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:661,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:661,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:681,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:686,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:687,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:690,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:691,1
    - Dst: os_fchmod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:694,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 698
    functionName: os_fchmod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - os_fchmod_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:732,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:734,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:734,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:751,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:754,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:759,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:762,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:763,1
    - Dst: os_lchmod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:766,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:770,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 719
    functionDepth: 5
    functionLinenumber: 719
    functionLinenumberEnd: 773
    functionName: os_lchmod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - os_lchmod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:811,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:813,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:813,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:813,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:830,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:831,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:835,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:840,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:843,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:844,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:848,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:856,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:866,1
    - Dst: os_chflags_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:871,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:875,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 798
    functionDepth: 5
    functionLinenumber: 798
    functionLinenumberEnd: 878
    functionName: os_chflags
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - os_chflags_impl
    - _Py_ID
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - PyIndex_Check
    - PATH_T_INITIALIZE_P
    - PyErr_WarnEx
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:912,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:914,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:914,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:931,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:934,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:939,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:942,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:943,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:947,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:955,1
    - Dst: os_lchflags_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:962,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:966,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: 969
      start: 899
    functionDepth: 5
    functionLinenumber: 899
    functionLinenumberEnd: 969
    functionName: os_lchflags
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - PyIndex_Check
    - PATH_T_INITIALIZE_P
    - PyErr_WarnEx
    - path_converter
    - os_lchflags_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1000,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1002,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1019,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1021,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1026,1
    - Dst: os_chroot_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1029,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1033,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 987
    functionDepth: 5
    functionLinenumber: 987
    functionLinenumberEnd: 1036
    functionName: os_chroot
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_chroot_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1067,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1069,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1088,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1093,1
    - Dst: os_fsync_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1097,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1054
    functionDepth: 4
    functionLinenumber: 1054
    functionLinenumberEnd: 1101
    functionName: os_fsync
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_fsync_impl
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    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/cpython/Modules/clinic/posixmodule.c.h:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1123
    functionName: os_sync
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1156,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1175,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1180,1
    - Dst: os_fdatasync_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1141
    functionDepth: 4
    functionLinenumber: 1141
    functionLinenumberEnd: 1188
    functionName: os_fdatasync
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fdatasync_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fdatasync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1246,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1246,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1246,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1246,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1246,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1263,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1264,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1270,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1275,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1278,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1281,1
    - Dst: FCHOWNAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1288,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1295,1
    - Dst: os_chown_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1300,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1304,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1231
    functionDepth: 5
    functionLinenumber: 1231
    functionLinenumberEnd: 1307
    functionName: os_chown
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - FCHOWNAT_DIR_FD_CONVERTER
    - _Py_ID
    - os_chown_impl
    - _Py_Uid_Converter
    - PyVarObject_HEAD_INIT
    - _Py_Gid_Converter
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1340,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1342,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1342,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1342,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1363,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1368,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1369,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1372,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1375,1
    - Dst: os_fchown_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1378,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1327
    functionDepth: 3
    functionLinenumber: 1327
    functionLinenumberEnd: 1382
    functionName: os_fchown
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - os_fchown_impl
    - _Py_ID
    - _Py_Uid_Converter
    - PyVarObject_HEAD_INIT
    - _Py_Gid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1416,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1418,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1418,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1418,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1435,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1439,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1444,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1447,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1450,1
    - Dst: os_lchown_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1453,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1457,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1403
    functionDepth: 5
    functionLinenumber: 1403
    functionLinenumberEnd: 1460
    functionName: os_lchown
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_lchown_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _Py_Uid_Converter
    - PyVarObject_HEAD_INIT
    - _Py_Gid_Converter
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    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/cpython/Modules/clinic/posixmodule.c.h:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1476
    functionDepth: 5
    functionLinenumber: 1476
    functionLinenumberEnd: 1480
    functionName: os_getcwd
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1494
    functionDepth: 5
    functionLinenumber: 1494
    functionLinenumberEnd: 1498
    functionName: os_getcwdb
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1539,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1541,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1541,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1541,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1541,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1541,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1558,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1559,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1560,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1565,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1570,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1573,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1580,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1588,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1595,1
    - Dst: os_link_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1600,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1604,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1606,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: 1609
      start: 1526
    functionDepth: 4
    functionLinenumber: 1526
    functionLinenumberEnd: 1609
    functionName: os_link
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - dir_fd_converter
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - os_link_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_link(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1649,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1651,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1668,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1669,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1671,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1679,1
    - Dst: os_listdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1683,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1687,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: 1690
      start: 1636
    functionDepth: 6
    functionLinenumber: 1636
    functionLinenumberEnd: 1690
    functionName: os_listdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_listdir_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_listdrives_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1708
    functionDepth: 2
    functionLinenumber: 1708
    functionLinenumberEnd: 1712
    functionName: os_listdrives
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_listdrives_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listdrives(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_listvolumes_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1736
    functionName: os_listvolumes
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_listvolumes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listvolumes(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1769,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1771,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1788,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1790,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1795,1
    - Dst: os_listmounts_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1798,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1802,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1756
    functionDepth: 3
    functionLinenumber: 1756
    functionLinenumberEnd: 1805
    functionName: os_listmounts
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - os_listmounts_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listmounts(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1836,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1838,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1855,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1857,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1862,1
    - Dst: os__path_isdevdrive_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1865,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1823
    functionDepth: 3
    functionLinenumber: 1823
    functionLinenumberEnd: 1872
    functionName: os__path_isdevdrive
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os__path_isdevdrive_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_isdevdrive(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1893,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1895,1
    - Dst: os__getfullpathname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1898,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1889
    functionDepth: 4
    functionLinenumber: 1889
    functionLinenumberEnd: 1905
    functionName: os__getfullpathname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - 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_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1927,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1929,1
    - Dst: os__getfinalpathname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1932,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1923
    functionDepth: 4
    functionLinenumber: 1923
    functionLinenumberEnd: 1939
    functionName: os__getfinalpathname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__getfinalpathname_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getfinalpathname(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1961,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1963,1
    - Dst: os__findfirstfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1966,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1957
    functionDepth: 5
    functionLinenumber: 1957
    functionLinenumberEnd: 1973
    functionName: os__findfirstfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__findfirstfile_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__findfirstfile(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2004,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2006,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2023,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2025,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2030,1
    - Dst: os__getvolumepathname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2033,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2037,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 1991
    functionDepth: 4
    functionLinenumber: 1991
    functionLinenumberEnd: 2040
    functionName: os__getvolumepathname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os__getvolumepathname_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getvolumepathname(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2062,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2064,1
    - Dst: os__path_splitroot_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2067,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2058
    functionDepth: 3
    functionLinenumber: 2058
    functionLinenumberEnd: 2074
    functionName: os__path_splitroot
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__path_splitroot_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_splitroot(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2105,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2107,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2124,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2127,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2132,1
    - Dst: os__path_exists_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2135,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2136,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2139,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2092
    functionDepth: 5
    functionLinenumber: 2092
    functionLinenumberEnd: 2146
    functionName: os__path_exists
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__path_exists_impl
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_exists(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2177,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2179,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2196,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2199,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2204,1
    - Dst: os__path_lexists_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2207,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2208,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2211,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2164
    functionDepth: 5
    functionLinenumber: 2164
    functionLinenumberEnd: 2218
    functionName: os__path_lexists
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - os__path_lexists_impl
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_lexists(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2240,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2243,1
    - Dst: os__path_isdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2246,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2247,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2250,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2236
    functionDepth: 5
    functionLinenumber: 2236
    functionLinenumberEnd: 2257
    functionName: os__path_isdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - PATH_T_INITIALIZE_P
    - os__path_isdir_impl
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_isdir(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2288,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2290,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2307,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2310,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2315,1
    - Dst: os__path_isfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2319,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2322,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2275
    functionDepth: 5
    functionLinenumber: 2275
    functionLinenumberEnd: 2329
    functionName: os__path_isfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__path_isfile_impl
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_isfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2360,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2362,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2379,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2382,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2387,1
    - Dst: os__path_islink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2390,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2391,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2394,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2398,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2347
    functionDepth: 5
    functionLinenumber: 2347
    functionLinenumberEnd: 2401
    functionName: os__path_islink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - os__path_islink_impl
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_islink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2432,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2434,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2451,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2454,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2459,1
    - Dst: os__path_isjunction_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2462,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2463,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2466,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2419
    functionDepth: 5
    functionLinenumber: 2419
    functionLinenumberEnd: 2473
    functionName: os__path_isjunction
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__path_isjunction_impl
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_isjunction(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2495,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2497,1
    - Dst: os__path_splitroot_ex_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2500,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2491
    functionDepth: 3
    functionLinenumber: 2491
    functionLinenumberEnd: 2507
    functionName: os__path_splitroot_ex
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__path_splitroot_ex_impl
    - PATH_T_INITIALIZE
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_splitroot_ex(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2534,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2536,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2553,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2555,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2560,1
    - Dst: os__path_normpath_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2563,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2521
    functionDepth: 3
    functionLinenumber: 2521
    functionLinenumberEnd: 2570
    functionName: os__path_normpath
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PATH_T_INITIALIZE
    - PyVarObject_HEAD_INIT
    - os__path_normpath_impl
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__path_normpath(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2605,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2607,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2607,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2607,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2624,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2625,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2629,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2634,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2641,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2642,1
    - Dst: MKDIRAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2653,1
    - Dst: os_mkdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2657,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2661,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2592
    functionDepth: 5
    functionLinenumber: 2592
    functionLinenumberEnd: 2664
    functionName: os_mkdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - os_mkdir_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - MKDIRAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2686,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2687,1
    - Dst: os_nice_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2680
    functionDepth: 3
    functionLinenumber: 2680
    functionLinenumberEnd: 2694
    functionName: os_nice
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_nice_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_nice(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2725,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2727,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2727,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2747,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2752,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2753,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2756,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2757,1
    - Dst: os_getpriority_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2712
    functionDepth: 3
    functionLinenumber: 2712
    functionLinenumberEnd: 2764
    functionName: os_getpriority
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_getpriority_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2795,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2797,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2797,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2797,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2818,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2823,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2824,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2827,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2828,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2831,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2832,1
    - Dst: os_setpriority_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2835,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2782
    functionDepth: 3
    functionLinenumber: 2782
    functionLinenumberEnd: 2839
    functionName: os_setpriority
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_setpriority_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2875,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2877,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2877,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2877,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2877,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2894,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2895,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2896,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2900,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2905,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2908,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2915,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2922,1
    - Dst: os_rename_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2926,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2930,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2932,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2862
    functionDepth: 5
    functionLinenumber: 2862
    functionLinenumberEnd: 2935
    functionName: os_rename
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - dir_fd_converter
    - os_rename_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_rename(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2969,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2971,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2971,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2971,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2971,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2988,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2989,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2990,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2994,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2999,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3002,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3009,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3016,1
    - Dst: os_replace_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3020,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3024,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3026,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 2956
    functionDepth: 5
    functionLinenumber: 2956
    functionLinenumberEnd: 3029
    functionName: os_replace
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - dir_fd_converter
    - PyVarObject_HEAD_INIT
    - os_replace_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_replace(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3061,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3063,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3063,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3080,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3081,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3084,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3089,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3095,1
    - Dst: os_rmdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3099,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3103,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: 3106
      start: 3048
    functionDepth: 5
    functionLinenumber: 3048
    functionLinenumberEnd: 3106
    functionName: os_rmdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - UNLINKAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_rmdir_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_rmdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3135,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3137,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3157,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3162,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3163,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3166,1
    - Dst: os_system_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3170,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3171,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3174,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3122
    functionDepth: 2
    functionLinenumber: 3122
    functionLinenumberEnd: 3181
    functionName: os_system
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - os_system_impl
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3212,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3214,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3234,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3239,1
    - Dst: os_system_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3242,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3243,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3246,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3199
    functionDepth: 2
    functionLinenumber: 3199
    functionLinenumberEnd: 3253
    functionName: os_system
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - PyUnicode_FSConverter
    - os_system_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3277,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3278,1
    - Dst: os_umask_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3285
      start: 3271
    functionDepth: 3
    functionLinenumber: 3271
    functionLinenumberEnd: 3285
    functionName: os_umask
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_umask_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_umask(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3319,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3321,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3321,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3338,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3339,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3342,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3347,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3353,1
    - Dst: os_unlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3357,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3361,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: 3364
      start: 3306
    functionDepth: 5
    functionLinenumber: 3306
    functionLinenumberEnd: 3364
    functionName: os_unlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - UNLINKAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_unlink_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3396,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3398,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3398,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3415,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3416,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3419,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3424,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3430,1
    - Dst: os_remove_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3434,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3438,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: 3441
      start: 3383
    functionDepth: 6
    functionLinenumber: 3383
    functionLinenumberEnd: 3441
    functionName: os_remove
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - UNLINKAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_remove_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    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/cpython/Modules/clinic/posixmodule.c.h:3463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3464
      start: 3460
    functionDepth: 3
    functionLinenumber: 3460
    functionLinenumberEnd: 3464
    functionName: os_uname
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3517,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3519,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3519,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3519,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3519,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3519,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3536,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3537,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3543,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3548,1
    - Dst: FUTIMENSAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3571,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3578,1
    - Dst: os_utime_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3583,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3587,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3504
    functionDepth: 5
    functionLinenumber: 3504
    functionLinenumberEnd: 3590
    functionName: os_utime
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - FUTIMENSAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - os_utime_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_utime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3617,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3619,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3638,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3643,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3644,1
    - Dst: os__exit_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3604
    functionDepth: 1
    functionLinenumber: 3604
    functionLinenumberEnd: 3651
    functionName: os__exit
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__exit_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    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_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3676,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3679,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3682,1
    - Dst: os_execv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3686,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3693
      start: 3672
    functionDepth: 4
    functionLinenumber: 3672
    functionLinenumberEnd: 3693
    functionName: os_execv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_execv_impl
    - _PyArg_CheckPositional
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3731,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3733,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3733,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3733,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3750,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3754,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3759,1
    - Dst: os_execve_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3764,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3771
      start: 3718
    functionDepth: 4
    functionLinenumber: 3718
    functionLinenumberEnd: 3771
    functionName: os_execve
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - os_execve_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execve(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3829,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3848,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3849,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3860,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3865,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3886,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3895,1
    - Dst: os_posix_spawn_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3917,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3921,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3816
    functionDepth: 5
    functionLinenumber: 3816
    functionLinenumberEnd: 3924
    functionName: os_posix_spawn
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - os_posix_spawn_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3982,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3984,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4001,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4002,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4013,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4018,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4039,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4048,1
    - Dst: os_posix_spawnp_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4070,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4074,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 3969
    functionDepth: 5
    functionLinenumber: 3969
    functionLinenumberEnd: 4077
    functionName: os_posix_spawnp
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - os_posix_spawnp_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4107,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4110,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4114,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4117,1
    - Dst: os_spawnv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4121,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4128
      start: 4102
    functionDepth: 3
    functionLinenumber: 4102
    functionLinenumberEnd: 4128
    functionName: os_spawnv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - os_spawnv_impl
    - _PyArg_CheckPositional
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_spawnv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4161,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4165,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4168,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4169,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4172,1
    - Dst: os_spawnve_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4177,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4184
      start: 4156
    functionDepth: 4
    functionLinenumber: 4156
    functionLinenumberEnd: 4184
    functionName: os_spawnve
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - os_spawnve_impl
    - _PyArg_CheckPositional
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_spawnve(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4228,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4230,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4230,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4230,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4247,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4252,1
    - Dst: os_register_at_fork_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4274,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: 4278
      start: 4215
    functionDepth: 3
    functionLinenumber: 4215
    functionLinenumberEnd: 4278
    functionName: os_register_at_fork
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_register_at_fork_impl
    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/cpython/Modules/clinic/posixmodule.c.h:4301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4302
      start: 4298
    functionDepth: 4
    functionLinenumber: 4298
    functionLinenumberEnd: 4302
    functionName: os_fork1
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4326
      start: 4322
    functionDepth: 4
    functionLinenumber: 4322
    functionLinenumberEnd: 4326
    functionName: os_fork
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4357,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4359,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4378,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4383,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4384,1
    - Dst: os_sched_get_priority_max_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4344
    functionDepth: 3
    functionLinenumber: 4344
    functionLinenumberEnd: 4391
    functionName: os_sched_get_priority_max
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_sched_get_priority_max_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_get_priority_max(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4422,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4424,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4443,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4448,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4449,1
    - Dst: os_sched_get_priority_min_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4409
    functionDepth: 3
    functionLinenumber: 4409
    functionLinenumberEnd: 4456
    functionName: os_sched_get_priority_min
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_sched_get_priority_min_impl
    - PyVarObject_HEAD_INIT
    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: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4482,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4483,1
    - Dst: os_sched_getscheduler_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4490
      start: 4476
    functionDepth: 3
    functionLinenumber: 4476
    functionLinenumberEnd: 4490
    functionName: os_sched_getscheduler
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_sched_getscheduler_impl
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getscheduler(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4521,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4523,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4541,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4544,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4544,1
    - Dst: os_sched_param_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4554
      start: 4508
    functionDepth: 2
    functionLinenumber: 4508
    functionLinenumberEnd: 4554
    functionName: os_sched_param
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - os_sched_param_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_param(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4584,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4587,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4588,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4591,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4592,1
    - Dst: os_sched_setscheduler_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4596,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4576
    functionDepth: 4
    functionLinenumber: 4576
    functionLinenumberEnd: 4600
    functionName: os_sched_setscheduler
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - os_sched_setscheduler_impl
    - _PyArg_CheckPositional
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setscheduler(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4627,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4628,1
    - Dst: os_sched_getparam_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4635
      start: 4621
    functionDepth: 3
    functionLinenumber: 4621
    functionLinenumberEnd: 4635
    functionName: os_sched_getparam
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_sched_getparam_impl
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getparam(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4663,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4666,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4667,1
    - Dst: os_sched_setparam_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4656
    functionDepth: 4
    functionLinenumber: 4656
    functionLinenumberEnd: 4675
    functionName: os_sched_setparam
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_sched_setparam_impl
    - _PyArg_CheckPositional
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setparam(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4702,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4703,1
    - Dst: os_sched_rr_get_interval_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4706,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4707,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4710,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4714
      start: 4695
    functionDepth: 3
    functionLinenumber: 4695
    functionLinenumberEnd: 4714
    functionName: os_sched_rr_get_interval
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_FromDouble
    - os_sched_rr_get_interval_impl
    - PyLong_AsPid
    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/cpython/Modules/clinic/posixmodule.c.h:4735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4736
      start: 4732
    functionDepth: 3
    functionLinenumber: 4732
    functionLinenumberEnd: 4736
    functionName: os_sched_yield
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4763,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4766,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4767,1
    - Dst: os_sched_setaffinity_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4771,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4756
    functionDepth: 3
    functionLinenumber: 4756
    functionLinenumberEnd: 4775
    functionName: os_sched_setaffinity
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_sched_setaffinity_impl
    - _PyArg_CheckPositional
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setaffinity(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4801,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4802,1
    - Dst: os_sched_getaffinity_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4809
      start: 4795
    functionDepth: 3
    functionLinenumber: 4795
    functionLinenumberEnd: 4809
    functionName: os_sched_getaffinity
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_sched_getaffinity_impl
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getaffinity(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4838,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4839,1
    - Dst: os_posix_openpt_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4842,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4843,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4846,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4831
    functionDepth: 3
    functionLinenumber: 4831
    functionLinenumberEnd: 4850
    functionName: os_posix_openpt
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - os_posix_openpt_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_openpt(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4879,1
    - Dst: os_grantpt_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4887
      start: 4873
    functionDepth: 3
    functionLinenumber: 4873
    functionLinenumberEnd: 4887
    functionName: os_grantpt
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - os_grantpt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_grantpt(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4916,1
    - Dst: os_unlockpt_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4924
      start: 4910
    functionDepth: 3
    functionLinenumber: 4910
    functionLinenumberEnd: 4924
    functionName: os_unlockpt
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_unlockpt_impl
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unlockpt(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4954,1
    - Dst: os_ptsname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4962
      start: 4948
    functionDepth: 4
    functionLinenumber: 4948
    functionLinenumberEnd: 4962
    functionName: os_ptsname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - os_ptsname_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ptsname(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_openpty_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4987
      start: 4983
    functionDepth: 3
    functionLinenumber: 4983
    functionLinenumberEnd: 4987
    functionName: os_openpty
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5015,1
    - Dst: os_login_tty_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5023
      start: 5009
    functionDepth: 3
    functionLinenumber: 5009
    functionLinenumberEnd: 5023
    functionName: os_login_tty
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_login_tty_impl
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_login_tty(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_forkpty_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5050
      start: 5046
    functionDepth: 4
    functionLinenumber: 5046
    functionLinenumberEnd: 5050
    functionName: os_forkpty
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5072
      start: 5068
    functionDepth: 2
    functionLinenumber: 5068
    functionLinenumberEnd: 5072
    functionName: os_getegid
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5094
      start: 5090
    functionDepth: 2
    functionLinenumber: 5090
    functionLinenumberEnd: 5094
    functionName: os_geteuid
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5116
      start: 5112
    functionDepth: 2
    functionLinenumber: 5112
    functionLinenumberEnd: 5116
    functionName: os_getgid
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5138
      start: 5134
    functionDepth: 1
    functionLinenumber: 5134
    functionLinenumberEnd: 5138
    functionName: os_getpid
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5168,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5171,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5172,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5176,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5180,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5181,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5184,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5185,1
    - Dst: os_getgrouplist_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5192
      start: 5161
    functionDepth: 2
    functionLinenumber: 5161
    functionLinenumberEnd: 5192
    functionName: os_getgrouplist
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - os_getgrouplist_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgrouplist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5222,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5225,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5226,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5230,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5234,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5235,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5238,1
    - Dst: os_getgrouplist_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5245
      start: 5215
    functionDepth: 2
    functionLinenumber: 5215
    functionLinenumberEnd: 5245
    functionName: os_getgrouplist
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - os_getgrouplist_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _Py_Gid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgrouplist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getgroups_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5267
      start: 5263
    functionDepth: 3
    functionLinenumber: 5263
    functionLinenumberEnd: 5267
    functionName: os_getgroups
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5296,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5299,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5302,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5303,1
    - Dst: os_initgroups_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5306,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5313
      start: 5289
    functionDepth: 2
    functionLinenumber: 5289
    functionLinenumberEnd: 5313
    functionName: os_initgroups
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - os_initgroups_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyUnicode_FSConverter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_initgroups(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5342,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5345,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5348,1
    - Dst: os_initgroups_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5351,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5358
      start: 5335
    functionDepth: 2
    functionLinenumber: 5335
    functionLinenumberEnd: 5358
    functionName: os_initgroups
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - os_initgroups_impl
    - PyUnicode_FSConverter
    - _PyArg_CheckPositional
    - _Py_Gid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_initgroups(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5389,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5391,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5410,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5415,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5416,1
    - Dst: os_getpgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5423
      start: 5376
    functionDepth: 3
    functionLinenumber: 5376
    functionLinenumberEnd: 5423
    functionName: os_getpgid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getpgid_impl
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - PyLong_AsPid
    - PyVarObject_HEAD_INIT
    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/cpython/Modules/clinic/posixmodule.c.h:5444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5445
      start: 5441
    functionDepth: 1
    functionLinenumber: 5441
    functionLinenumberEnd: 5445
    functionName: os_getpgrp
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5467
      start: 5463
    functionDepth: 3
    functionLinenumber: 5463
    functionLinenumberEnd: 5467
    functionName: os_setpgrp
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5492
      start: 5488
    functionDepth: 3
    functionLinenumber: 5488
    functionLinenumberEnd: 5492
    functionName: os_getppid
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5514
      start: 5510
    functionDepth: 3
    functionLinenumber: 5510
    functionLinenumberEnd: 5514
    functionName: os_getlogin
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5532
    functionDepth: 2
    functionLinenumber: 5532
    functionLinenumberEnd: 5536
    functionName: os_getuid
    functionSourceFile: /src/cpython/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: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5561,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5564,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5565,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5570,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5573,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5575,1
    - Dst: os_kill_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5580,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5584
      start: 5554
    functionDepth: 3
    functionLinenumber: 5554
    functionLinenumberEnd: 5584
    functionName: os_kill
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _PyNumber_Index
    - os_kill_impl
    - _PyArg_CheckPositional
    - PyLong_AsPid
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_kill(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5609,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5612,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5613,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5616,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5617,1
    - Dst: os_killpg_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5620,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5602
    functionDepth: 3
    functionLinenumber: 5602
    functionLinenumberEnd: 5624
    functionName: os_killpg
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_killpg_impl
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_killpg(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5648,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5649,1
    - Dst: os_plock_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5656
      start: 5642
    functionDepth: 3
    functionLinenumber: 5642
    functionLinenumberEnd: 5656
    functionName: os_plock
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_plock_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_plock(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5680,1
    - Dst: os_setuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5687
      start: 5674
    functionDepth: 3
    functionLinenumber: 5674
    functionLinenumberEnd: 5687
    functionName: os_setuid
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5711,1
    - Dst: os_seteuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5718
      start: 5705
    functionDepth: 3
    functionLinenumber: 5705
    functionLinenumberEnd: 5718
    functionName: os_seteuid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_seteuid_impl
    - _Py_Uid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_seteuid(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5742,1
    - Dst: os_setegid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5749
      start: 5736
    functionDepth: 3
    functionLinenumber: 5736
    functionLinenumberEnd: 5749
    functionName: os_setegid
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:5774,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5777,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5780,1
    - Dst: os_setreuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5787
      start: 5767
    functionDepth: 3
    functionLinenumber: 5767
    functionLinenumberEnd: 5787
    functionName: os_setreuid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setreuid_impl
    - _Py_Uid_Converter
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/posixmodule.c.h:5812,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5815,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5818,1
    - Dst: os_setregid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5825
      start: 5805
    functionDepth: 3
    functionLinenumber: 5805
    functionLinenumberEnd: 5825
    functionName: os_setregid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setregid_impl
    - _Py_Gid_Converter
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/posixmodule.c.h:5849,1
    - Dst: os_setgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5856
      start: 5843
    functionDepth: 3
    functionLinenumber: 5843
    functionLinenumberEnd: 5856
    functionName: os_setgid
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5903,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5905,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5924,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5929,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5930,1
    - Dst: os_wait3_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5937
      start: 5890
    functionDepth: 4
    functionLinenumber: 5890
    functionLinenumberEnd: 5937
    functionName: os_wait3
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_wait3_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait3(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5971,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5973,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5973,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5993,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5998,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5999,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6002,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6003,1
    - Dst: os_wait4_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6006,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6010
      start: 5958
    functionDepth: 4
    functionLinenumber: 5958
    functionLinenumberEnd: 6010
    functionName: os_wait4
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyLong_AsPid
    - PyVarObject_HEAD_INIT
    - os_wait4_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait4(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6047,1
    - Dst: idtype_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6050,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6053,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6054,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6057,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6058,1
    - Dst: os_waitid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6061,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6065
      start: 6039
    functionDepth: 3
    functionLinenumber: 6039
    functionLinenumberEnd: 6065
    functionName: os_waitid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - idtype_t_converter
    - _PyArg_CheckPositional
    - PyLong_AsPid
    - os_waitid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6095,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6098,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6099,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6103,1
    - Dst: os_waitpid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6110
      start: 6088
    functionDepth: 3
    functionLinenumber: 6088
    functionLinenumberEnd: 6110
    functionName: os_waitpid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - os_waitpid_impl
    - _PyArg_CheckPositional
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitpid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6140,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6144,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6148,1
    - Dst: os_waitpid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6155
      start: 6133
    functionDepth: 3
    functionLinenumber: 6133
    functionLinenumberEnd: 6155
    functionName: os_waitpid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - os_waitpid_impl
    - PyLong_AsVoidPtr
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/posixmodule.c.h:6179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6180
      start: 6176
    functionDepth: 3
    functionLinenumber: 6176
    functionLinenumberEnd: 6180
    functionName: os_wait
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6214,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6216,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6216,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6233,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6237,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6242,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6243,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6249,1
    - Dst: os_pidfd_open_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6253,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: 6257
      start: 6201
    functionDepth: 3
    functionLinenumber: 6201
    functionLinenumberEnd: 6257
    functionName: os_pidfd_open
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - _PyLong_UnsignedInt_Converter
    - os_pidfd_open_impl
    - PyLong_AsPid
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pidfd_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6293,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6295,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6295,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6312,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6316,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6321,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6328,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6329,1
    - Dst: os_setns_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6337
      start: 6280
    functionDepth: 3
    functionLinenumber: 6280
    functionLinenumberEnd: 6337
    functionName: os_setns
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setns_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setns(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6371,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6373,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6392,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6397,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6398,1
    - Dst: os_unshare_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6405
      start: 6358
    functionDepth: 3
    functionLinenumber: 6358
    functionLinenumberEnd: 6405
    functionName: os_unshare
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_unshare_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unshare(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6442,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6444,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6444,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6461,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6462,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6465,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6470,1
    - Dst: READLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6476,1
    - Dst: os_readlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6480,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6484,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: 6487
      start: 6429
    functionDepth: 5
    functionLinenumber: 6429
    functionLinenumberEnd: 6487
    functionName: os_readlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_readlink_impl
    - READLINKAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_readlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6529,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6531,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6531,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6531,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6531,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6548,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6549,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6550,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6554,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6559,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6562,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6569,1
    - Dst: SYMLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6581,1
    - Dst: os_symlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6585,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6589,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6591,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: 6594
      start: 6516
    functionDepth: 4
    functionLinenumber: 6516
    functionLinenumberEnd: 6594
    functionName: os_symlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - SYMLINKAT_DIR_FD_CONVERTER
    - os_symlink_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    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/cpython/Modules/clinic/posixmodule.c.h:6617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6618
      start: 6614
    functionDepth: 4
    functionLinenumber: 6614
    functionLinenumberEnd: 6618
    functionName: os_times
    functionSourceFile: /src/cpython/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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6663,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6665,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6682,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6686,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6691,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6692,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6698,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6699,1
    - Dst: os_timerfd_create_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6703,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6707
      start: 6650
    functionDepth: 2
    functionLinenumber: 6650
    functionLinenumberEnd: 6707
    functionName: os_timerfd_create
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_timerfd_create_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6748,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6750,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6750,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6750,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6767,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6773,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6778,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6786,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6787,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6795,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6796,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6800,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6801,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6809,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6810,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6815,1
    - Dst: os_timerfd_settime_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6820,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6824
      start: 6735
    functionDepth: 3
    functionLinenumber: 6735
    functionLinenumberEnd: 6824
    functionName: os_timerfd_settime
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyFloat_CheckExact
    - _Py_ID
    - os_timerfd_settime_impl
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_settime(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6865,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6867,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6884,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6890,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6895,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6903,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6904,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6912,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6913,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6920,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6921,1
    - Dst: os_timerfd_settime_ns_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6925,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6929
      start: 6852
    functionDepth: 3
    functionLinenumber: 6852
    functionLinenumberEnd: 6929
    functionName: os_timerfd_settime_ns
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyLong_AsLongLong
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_timerfd_settime_ns_impl
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_settime_ns(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6956,1
    - Dst: os_timerfd_gettime_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6964
      start: 6950
    functionDepth: 3
    functionLinenumber: 6950
    functionLinenumberEnd: 6964
    functionName: os_timerfd_gettime
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - os_timerfd_gettime_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_gettime(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6991,1
    - Dst: os_timerfd_gettime_ns_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6999
      start: 6985
    functionDepth: 3
    functionLinenumber: 6985
    functionLinenumberEnd: 6999
    functionName: os_timerfd_gettime_ns
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - os_timerfd_gettime_ns_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_timerfd_gettime_ns(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7023,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7024,1
    - Dst: os_getsid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7031
      start: 7017
    functionDepth: 3
    functionLinenumber: 7017
    functionLinenumberEnd: 7031
    functionName: os_getsid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_getsid_impl
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getsid(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_setsid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7053
      start: 7049
    functionDepth: 3
    functionLinenumber: 7049
    functionLinenumberEnd: 7053
    functionName: os_setsid
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7078,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7081,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7082,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7085,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7086,1
    - Dst: os_setpgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7089,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7093
      start: 7071
    functionDepth: 3
    functionLinenumber: 7071
    functionLinenumberEnd: 7093
    functionName: os_setpgid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_setpgid_impl
    - _PyArg_CheckPositional
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7117,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7118,1
    - Dst: os_tcgetpgrp_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7125
      start: 7111
    functionDepth: 3
    functionLinenumber: 7111
    functionLinenumberEnd: 7125
    functionName: os_tcgetpgrp
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_tcgetpgrp_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_tcgetpgrp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7150,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7154,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7158,1
    - Dst: os_tcsetpgrp_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7165
      start: 7143
    functionDepth: 3
    functionLinenumber: 7143
    functionLinenumberEnd: 7165
    functionName: os_tcsetpgrp
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_tcsetpgrp_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_tcsetpgrp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7199,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7201,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7201,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7201,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7201,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7218,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7219,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7225,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7230,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7233,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7234,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7241,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7242,1
    - Dst: OPENAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7253,1
    - Dst: os_open_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7258,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7261,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7265,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7268
      start: 7186
    functionDepth: 3
    functionLinenumber: 7186
    functionLinenumberEnd: 7268
    functionName: os_open
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - OPENAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - os_open_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7295,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7297,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7316,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7321,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7322,1
    - Dst: os_close_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7329
      start: 7282
    functionDepth: 3
    functionLinenumber: 7282
    functionLinenumberEnd: 7329
    functionName: os_close
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_close_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_close(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7350,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7353,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7354,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7357,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7358,1
    - Dst: os_closerange_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7365
      start: 7343
    functionDepth: 1
    functionLinenumber: 7343
    functionLinenumberEnd: 7365
    functionName: os_closerange
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_closerange_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_closerange(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7386,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7387,1
    - Dst: os_dup_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7390,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7391,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7398
      start: 7379
    functionDepth: 2
    functionLinenumber: 7379
    functionLinenumberEnd: 7398
    functionName: os_dup
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_dup_impl
    - PyLong_FromLong
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_dup(PyObject *module, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7427,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7429,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7429,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7429,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7446,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7452,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7457,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7458,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7461,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7462,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7468,1
    - Dst: os_dup2_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7473,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7474,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7477,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7481
      start: 7414
    functionDepth: 1
    functionLinenumber: 7414
    functionLinenumberEnd: 7481
    functionName: os_dup2
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - os_dup2_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7514,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7517,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7518,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7521,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7522,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7525,1
    - Dst: os_lockf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7528,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7532
      start: 7506
    functionDepth: 3
    functionLinenumber: 7506
    functionLinenumberEnd: 7532
    functionName: os_lockf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - Py_off_t_converter
    - _PyArg_CheckPositional
    - os_lockf_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7569,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7572,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7573,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7576,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7579,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7580,1
    - Dst: os_lseek_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7583,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7584,1
    - Dst: PyLong_FromPy_off_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7587,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7591
      start: 7560
    functionDepth: 3
    functionLinenumber: 7560
    functionLinenumberEnd: 7591
    functionName: os_lseek
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromPy_off_t
    - Py_off_t_converter
    - os_lseek_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lseek(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7612,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7616,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7621,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7624,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7626,1
    - Dst: os_read_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7631,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7635
      start: 7605
    functionDepth: 3
    functionLinenumber: 7605
    functionLinenumberEnd: 7635
    functionName: os_read
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - os_read_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7667,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7670,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7671,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7674,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7675,1
    - Dst: os_readinto_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7678,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7679,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7682,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7687,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7691
      start: 7659
    functionDepth: 2
    functionLinenumber: 7659
    functionLinenumberEnd: 7691
    functionName: os_readinto
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - os_readinto_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_readinto(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7723,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7726,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7727,1
    - Dst: os_readv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7731,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7732,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7735,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7739
      start: 7715
    functionDepth: 3
    functionLinenumber: 7715
    functionLinenumberEnd: 7739
    functionName: os_readv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_readv_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_readv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7768,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7771,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7772,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7777,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7780,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7782,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7787,1
    - Dst: os_pread_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7790,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7794
      start: 7760
    functionDepth: 3
    functionLinenumber: 7760
    functionLinenumberEnd: 7794
    functionName: os_pread
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_off_t_converter
    - _PyArg_CheckPositional
    - os_pread_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pread(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7837,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7840,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7841,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7845,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7851,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7852,1
    - Dst: os_preadv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7856,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7857,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7860,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7864
      start: 7827
    functionDepth: 3
    functionLinenumber: 7827
    functionLinenumberEnd: 7864
    functionName: os_preadv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - Py_off_t_converter
    - os_preadv_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_preadv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7888,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7891,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7892,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7895,1
    - Dst: os_write_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7898,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7899,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7902,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7907,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7911
      start: 7880
    functionDepth: 2
    functionLinenumber: 7880
    functionLinenumberEnd: 7911
    functionName: os_write
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_write_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7943,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7945,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7945,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7945,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7945,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7945,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7945,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7945,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7962,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7971,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7976,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7977,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7980,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7981,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7984,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7987,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8005,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8006,1
    - Dst: os_sendfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8010,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8014
      start: 7930
    functionDepth: 3
    functionLinenumber: 7930
    functionLinenumberEnd: 8014
    functionName: os_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - Py_off_t_converter
    - PyVarObject_HEAD_INIT
    - os_sendfile_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8048,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8050,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8050,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8050,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8050,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8050,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8050,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8050,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8067,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8076,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8081,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8082,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8085,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8086,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8089,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8094,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8097,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8099,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8120,1
    - Dst: os_sendfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8124,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8128
      start: 8035
    functionDepth: 3
    functionLinenumber: 8035
    functionLinenumberEnd: 8128
    functionName: os_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - _Py_ID
    - Py_off_t_converter
    - PyVarObject_HEAD_INIT
    - os_sendfile_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8160,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8162,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8184,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8190,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8194,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8200,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8205,1
    - Dst: os_sendfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8214
      start: 8147
    functionDepth: 3
    functionLinenumber: 8147
    functionLinenumberEnd: 8214
    functionName: os_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_sendfile_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8240,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8244,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8248,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8251,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8252,1
    - Dst: os__fcopyfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8255,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8259
      start: 8232
    functionDepth: 3
    functionLinenumber: 8232
    functionLinenumberEnd: 8259
    functionName: os__fcopyfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os__fcopyfile_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__fcopyfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8291,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8293,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8312,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8317,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8318,1
    - Dst: os_fstat_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8325
      start: 8278
    functionDepth: 5
    functionLinenumber: 8278
    functionLinenumberEnd: 8325
    functionName: os_fstat
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_fstat_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8349,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8350,1
    - Dst: os_isatty_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8353,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8354,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8361
      start: 8342
    functionDepth: 1
    functionLinenumber: 8342
    functionLinenumberEnd: 8361
    functionName: os_isatty
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - os_isatty_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_isatty(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_pipe_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8384
      start: 8380
    functionDepth: 0
    functionLinenumber: 8380
    functionLinenumberEnd: 8384
    functionName: os_pipe
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8414,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8415,1
    - Dst: os_pipe2_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8422
      start: 8408
    functionDepth: 3
    functionLinenumber: 8408
    functionLinenumberEnd: 8422
    functionName: os_pipe2
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_pipe2_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pipe2(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8451,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8454,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8455,1
    - Dst: os_writev_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8459,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8460,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8467
      start: 8443
    functionDepth: 3
    functionLinenumber: 8443
    functionLinenumberEnd: 8467
    functionName: os_writev
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - os_writev_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_writev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8498,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8501,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8502,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8505,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8508,1
    - Dst: os_pwrite_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8511,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8512,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8515,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8520,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8524
      start: 8489
    functionDepth: 3
    functionLinenumber: 8489
    functionLinenumberEnd: 8524
    functionName: os_pwrite
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - Py_off_t_converter
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - os_pwrite_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pwrite(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8568,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8571,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8572,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8576,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8582,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8583,1
    - Dst: os_pwritev_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8587,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8588,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8591,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8595
      start: 8558
    functionDepth: 3
    functionLinenumber: 8558
    functionLinenumberEnd: 8595
    functionName: os_pwritev
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - os_pwritev_impl
    - Py_off_t_converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pwritev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8642,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8644,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8644,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8644,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8644,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8644,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8661,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8668,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8673,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8674,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8677,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8678,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8683,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8686,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8688,1
    - Dst: os_copy_file_range_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8704,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8708
      start: 8629
    functionDepth: 3
    functionLinenumber: 8629
    functionLinenumberEnd: 8708
    functionName: os_copy_file_range
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_copy_file_range_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8759,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8761,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8761,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8761,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8761,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8761,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8761,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8778,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8786,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8791,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8792,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8795,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8796,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8801,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8804,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8806,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8826,1
    - Dst: os_splice_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8830,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8834
      start: 8746
    functionDepth: 3
    functionLinenumber: 8746
    functionLinenumberEnd: 8834
    functionName: os_splice
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_splice_impl
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - _Py_ID
    - _PyLong_UnsignedInt_Converter
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_splice(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8870,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8872,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8872,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8872,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8889,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8890,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8894,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8899,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8906,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8907,1
    - Dst: MKFIFOAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8918,1
    - Dst: os_mkfifo_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8922,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8926,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8929
      start: 8857
    functionDepth: 3
    functionLinenumber: 8857
    functionLinenumberEnd: 8929
    functionName: os_mkfifo
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_mkfifo_impl
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - MKFIFOAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8973,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8975,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8975,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8975,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8975,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8992,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8993,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8998,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9003,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9010,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9011,1
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9019,1
    - Dst: MKNODAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9030,1
    - Dst: os_mknod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9034,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9038,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9041
      start: 8960
    functionDepth: 3
    functionLinenumber: 8960
    functionLinenumberEnd: 9041
    functionName: os_mknod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Dev_Converter
    - PyTuple_GET_SIZE
    - os_mknod_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - MKNODAT_DIR_FD_CONVERTER
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9065,1
    - Dst: os_major_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9072
      start: 9059
    functionDepth: 2
    functionLinenumber: 9059
    functionLinenumberEnd: 9072
    functionName: os_major
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_major_impl
    - _Py_Dev_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_major(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9096,1
    - Dst: os_minor_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9103
      start: 9090
    functionDepth: 2
    functionLinenumber: 9090
    functionLinenumberEnd: 9103
    functionName: os_minor
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_minor_impl
    - _Py_Dev_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_minor(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9129,1
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9132,1
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9135,1
    - Dst: os_makedev_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9139,1
    - Dst: _PyLong_FromDev
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9146
      start: 9121
    functionDepth: 2
    functionLinenumber: 9121
    functionLinenumberEnd: 9146
    functionName: os_makedev
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Dev_Converter
    - _PyLong_FromDev
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_makedev_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_makedev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9171,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9174,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9175,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9178,1
    - Dst: os_ftruncate_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9185
      start: 9164
    functionDepth: 3
    functionLinenumber: 9164
    functionLinenumberEnd: 9185
    functionName: os_ftruncate
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_ftruncate_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - Py_off_t_converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ftruncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9219,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9221,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9221,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9238,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9241,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9246,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9249,1
    - Dst: os_truncate_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9252,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9259
      start: 9206
    functionDepth: 4
    functionLinenumber: 9206
    functionLinenumberEnd: 9259
    functionName: os_truncate
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_truncate_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - Py_off_t_converter
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_truncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9289,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9293,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9296,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9299,1
    - Dst: os_posix_fallocate_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9306
      start: 9281
    functionDepth: 3
    functionLinenumber: 9281
    functionLinenumberEnd: 9306
    functionName: os_posix_fallocate
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - Py_off_t_converter
    - os_posix_fallocate_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_fallocate(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9342,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9345,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9346,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9349,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9352,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9355,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9356,1
    - Dst: os_posix_fadvise_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9359,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9363
      start: 9333
    functionDepth: 3
    functionLinenumber: 9333
    functionLinenumberEnd: 9363
    functionName: os_posix_fadvise
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - Py_off_t_converter
    - _PyArg_CheckPositional
    - os_posix_fadvise_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_fadvise(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9388,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9391,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9392,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9396,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9397,1
    - Dst: os_putenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9405
      start: 9381
    functionDepth: 4
    functionLinenumber: 9381
    functionLinenumberEnd: 9405
    functionName: os_putenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - os_putenv_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    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/cpython/Modules/clinic/posixmodule.c.h:9430,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9433,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9436,1
    - Dst: os_putenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9439,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9443,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9448
      start: 9423
    functionDepth: 4
    functionLinenumber: 9423
    functionLinenumberEnd: 9448
    functionName: os_putenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FSConverter
    - os_putenv_impl
    - _PyArg_CheckPositional
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9472,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9473,1
    - Dst: os_unsetenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9481
      start: 9466
    functionDepth: 4
    functionLinenumber: 9466
    functionLinenumberEnd: 9481
    functionName: os_unsetenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - os_unsetenv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unsetenv(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9505,1
    - Dst: os_unsetenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9508,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9515
      start: 9499
    functionDepth: 4
    functionLinenumber: 9499
    functionLinenumberEnd: 9515
    functionName: os_unsetenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FSConverter
    - Py_XDECREF
    - os_unsetenv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unsetenv(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9537,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9538,1
    - Dst: os_strerror_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9545
      start: 9531
    functionDepth: 2
    functionLinenumber: 9531
    functionLinenumberEnd: 9545
    functionName: os_strerror
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_strerror_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_strerror(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9568,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9569,1
    - Dst: os_WCOREDUMP_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9572,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9573,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9580
      start: 9561
    functionDepth: 2
    functionLinenumber: 9561
    functionLinenumberEnd: 9580
    functionName: os_WCOREDUMP
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - os_WCOREDUMP_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WCOREDUMP(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9614,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9616,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9636,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9641,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9642,1
    - Dst: os_WIFCONTINUED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9645,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9646,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9649,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9653
      start: 9601
    functionDepth: 2
    functionLinenumber: 9601
    functionLinenumberEnd: 9653
    functionName: os_WIFCONTINUED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - os_WIFCONTINUED_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFCONTINUED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9684,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9686,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9706,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9711,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9712,1
    - Dst: os_WIFSTOPPED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9715,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9716,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9719,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9723
      start: 9671
    functionDepth: 2
    functionLinenumber: 9671
    functionLinenumberEnd: 9723
    functionName: os_WIFSTOPPED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_WIFSTOPPED_impl
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFSTOPPED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9756,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9776,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9781,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9782,1
    - Dst: os_WIFSIGNALED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9785,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9786,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9789,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9793
      start: 9741
    functionDepth: 2
    functionLinenumber: 9741
    functionLinenumberEnd: 9793
    functionName: os_WIFSIGNALED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - os_WIFSIGNALED_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFSIGNALED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9824,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9826,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9846,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9851,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9852,1
    - Dst: os_WIFEXITED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9856,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9859,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9863
      start: 9811
    functionDepth: 2
    functionLinenumber: 9811
    functionLinenumberEnd: 9863
    functionName: os_WIFEXITED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_WIFEXITED_impl
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFEXITED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9894,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9896,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9916,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9921,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9922,1
    - Dst: os_WEXITSTATUS_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9925,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9926,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9929,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9933
      start: 9881
    functionDepth: 2
    functionLinenumber: 9881
    functionLinenumberEnd: 9933
    functionName: os_WEXITSTATUS
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - os_WEXITSTATUS_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WEXITSTATUS(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9964,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9966,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9986,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9991,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9992,1
    - Dst: os_WTERMSIG_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9996,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10003
      start: 9951
    functionDepth: 2
    functionLinenumber: 9951
    functionLinenumberEnd: 10003
    functionName: os_WTERMSIG
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - os_WTERMSIG_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WTERMSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10034,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10036,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10056,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10061,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10062,1
    - Dst: os_WSTOPSIG_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10065,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10066,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10069,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10073
      start: 10021
    functionDepth: 2
    functionLinenumber: 10021
    functionLinenumberEnd: 10073
    functionName: os_WSTOPSIG
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - os_WSTOPSIG_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WSTOPSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10099,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10100,1
    - Dst: os_fstatvfs_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10107
      start: 10093
    functionDepth: 4
    functionLinenumber: 10093
    functionLinenumberEnd: 10107
    functionName: os_fstatvfs
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_fstatvfs_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstatvfs(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10142,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10144,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10161,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10163,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10168,1
    - Dst: os_statvfs_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10171,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10178
      start: 10129
    functionDepth: 5
    functionLinenumber: 10129
    functionLinenumberEnd: 10178
    functionName: os_statvfs
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - os_statvfs_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_statvfs(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10209,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10211,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10228,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10230,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10235,1
    - Dst: os__getdiskusage_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10238,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10245
      start: 10196
    functionDepth: 3
    functionLinenumber: 10196
    functionLinenumberEnd: 10245
    functionName: os__getdiskusage
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os__getdiskusage_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getdiskusage(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10273,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10276,1
    - Dst: conv_confname
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10280,1
    - Dst: os_fpathconf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10283,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10284,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10287,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10291
      start: 10265
    functionDepth: 3
    functionLinenumber: 10265
    functionLinenumberEnd: 10291
    functionName: os_fpathconf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - conv_confname
    - _PyArg_CheckPositional
    - PyLong_FromLong
    - PyObject_AsFileDescriptor
    - os_fpathconf_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fpathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10326,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10328,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10328,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10345,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10349,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10354,1
    - Dst: conv_confname
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10357,1
    - Dst: os_pathconf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10360,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10361,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10364,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10368,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10371
      start: 10313
    functionDepth: 5
    functionLinenumber: 10313
    functionLinenumberEnd: 10371
    functionName: os_pathconf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - os_pathconf_impl
    - PyErr_Occurred
    - PyLong_FromLong
    - _Py_ID
    - conv_confname
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conv_confname
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10395,1
    - Dst: os_confstr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10402
      start: 10389
    functionDepth: 3
    functionLinenumber: 10389
    functionLinenumberEnd: 10402
    functionName: os_confstr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_confstr_impl
    - conv_confname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_confstr(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conv_confname
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10427,1
    - Dst: os_sysconf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10430,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10431,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10438
      start: 10420
    functionDepth: 3
    functionLinenumber: 10420
    functionLinenumberEnd: 10438
    functionName: os_sysconf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_sysconf_impl
    - conv_confname
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sysconf(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_abort_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10461
      start: 10457
    functionDepth: 2
    functionLinenumber: 10457
    functionLinenumberEnd: 10461
    functionName: os_abort
    functionSourceFile: /src/cpython/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: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10518,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10520,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10537,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10538,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10541,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10544,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10549,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10556,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10557,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10560,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10569,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10570,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10573,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10582,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10589,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10590,1
    - Dst: os_startfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10594,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10598,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10600,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10602,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10604,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10607
      start: 10505
    functionDepth: 4
    functionLinenumber: 10505
    functionLinenumberEnd: 10607
    functionName: os_startfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - os_startfile_impl
    - PyMem_Free
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - PyUnicode_AsWideCharString
    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/cpython/Modules/clinic/posixmodule.c.h:10632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10633
      start: 10629
    functionDepth: 2
    functionLinenumber: 10629
    functionLinenumberEnd: 10633
    functionName: os_getloadavg
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10665,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10667,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10686,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10691,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10692,1
    - Dst: os_device_encoding_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10695,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10699
      start: 10652
    functionDepth: 2
    functionLinenumber: 10652
    functionLinenumberEnd: 10699
    functionName: os_device_encoding
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_device_encoding_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    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/cpython/Modules/clinic/posixmodule.c.h:10723,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10726,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10729,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10732,1
    - Dst: os_setresuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10735,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10739
      start: 10715
    functionDepth: 3
    functionLinenumber: 10715
    functionLinenumberEnd: 10739
    functionName: os_setresuid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setresuid_impl
    - _Py_Uid_Converter
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/posixmodule.c.h:10765,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10768,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10771,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10774,1
    - Dst: os_setresgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10777,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10781
      start: 10757
    functionDepth: 3
    functionLinenumber: 10757
    functionLinenumberEnd: 10781
    functionName: os_setresgid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Gid_Converter
    - _PyArg_CheckPositional
    - 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/cpython/Modules/clinic/posixmodule.c.h:10802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10803
      start: 10799
    functionDepth: 3
    functionLinenumber: 10799
    functionLinenumberEnd: 10803
    functionName: os_getresuid
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/posixmodule.c.h:10824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10825
      start: 10821
    functionDepth: 3
    functionLinenumber: 10821
    functionLinenumberEnd: 10825
    functionName: os_getresgid
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10862,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10864,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10864,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10864,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10881,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10882,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10883,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10886,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10891,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10894,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10900,1
    - Dst: os_getxattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10905,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10909,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10911,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: 10914
      start: 10849
    functionDepth: 5
    functionLinenumber: 10849
    functionLinenumberEnd: 10914
    functionName: os_getxattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - os_getxattr_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10952,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10954,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10954,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10954,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10954,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10954,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10971,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10972,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10973,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10978,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10983,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10986,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10989,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10996,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10997,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11008,1
    - Dst: os_setxattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11013,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11017,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11019,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11022,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: 11026
      start: 10939
    functionDepth: 5
    functionLinenumber: 10939
    functionLinenumberEnd: 11026
    functionName: os_setxattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - os_setxattr_impl
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11063,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11065,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11065,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11065,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11082,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11083,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11084,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11087,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11092,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11095,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11101,1
    - Dst: os_removexattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11106,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11110,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11112,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: 11115
      start: 11050
    functionDepth: 5
    functionLinenumber: 11050
    functionLinenumberEnd: 11115
    functionName: os_removexattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_removexattr_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_removexattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11152,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11171,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11172,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11175,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11184,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11195,1
    - Dst: os_listxattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11200,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11204,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: 11207
      start: 11139
    functionDepth: 5
    functionLinenumber: 11139
    functionLinenumberEnd: 11207
    functionName: os_listxattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - os_listxattr_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11231,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11234,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11236,1
    - Dst: os_urandom_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11245
      start: 11223
    functionDepth: 2
    functionLinenumber: 11223
    functionLinenumberEnd: 11245
    functionName: os_urandom
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - os_urandom_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_urandom(PyObject *module, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11273,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11275,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11275,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11292,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11296,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11301,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11308,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11316,1
    - Dst: os_memfd_create_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11324,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11328,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: 11331
      start: 11260
    functionDepth: 2
    functionLinenumber: 11260
    functionLinenumberEnd: 11331
    functionName: os_memfd_create
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyUnicode_FSConverter
    - os_memfd_create_impl
    - PyLong_AsNativeBytes
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11362,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11364,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11364,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11381,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11385,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11390,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11396,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11397,1
    - Dst: os_eventfd_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11401,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: 11405
      start: 11349
    functionDepth: 2
    functionLinenumber: 11349
    functionLinenumberEnd: 11405
    functionName: os_eventfd
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _PyLong_UnsignedInt_Converter
    - PyVarObject_HEAD_INIT
    - os_eventfd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_eventfd(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11436,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11438,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11457,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11462,1
    - Dst: os_eventfd_read_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11466,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11470
      start: 11423
    functionDepth: 2
    functionLinenumber: 11423
    functionLinenumberEnd: 11470
    functionName: os_eventfd_read
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - os_eventfd_read_impl
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_eventfd_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11501,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11503,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11503,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11523,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11528,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11532,1
    - Dst: os_eventfd_write_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11535,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11539
      start: 11488
    functionDepth: 2
    functionLinenumber: 11488
    functionLinenumberEnd: 11539
    functionName: os_eventfd_write
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyLong_UnsignedLongLong_Converter
    - os_eventfd_write_impl
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_eventfd_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11573,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11575,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11581,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11582,1
    - Dst: os_get_terminal_size_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11590
      start: 11569
    functionDepth: 3
    functionLinenumber: 11569
    functionLinenumberEnd: 11590
    functionName: os_get_terminal_size
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - os_get_terminal_size_impl
    - _PyArg_CheckPositional
    - fileno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_terminal_size(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_cpu_count_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11612
      start: 11608
    functionDepth: 2
    functionLinenumber: 11608
    functionLinenumberEnd: 11612
    functionName: os_cpu_count
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11633,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11634,1
    - Dst: os_get_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11637,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11638,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11626
    functionDepth: 2
    functionLinenumber: 11626
    functionLinenumberEnd: 11645
    functionName: os_get_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - os_get_inheritable_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_inheritable(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11666,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11669,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11670,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11673,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11674,1
    - Dst: os_set_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11677,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11681
      start: 11659
    functionDepth: 2
    functionLinenumber: 11659
    functionLinenumberEnd: 11681
    functionName: os_set_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_set_inheritable_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_inheritable(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11704,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11705,1
    - Dst: os_get_handle_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11708,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11709,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11716
      start: 11697
    functionDepth: 2
    functionLinenumber: 11697
    functionLinenumberEnd: 11716
    functionName: os_get_handle_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - os_get_handle_inheritable_impl
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_handle_inheritable(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11742,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11745,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11746,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11749,1
    - Dst: os_set_handle_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11753,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11757
      start: 11735
    functionDepth: 2
    functionLinenumber: 11735
    functionLinenumberEnd: 11757
    functionName: os_set_handle_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - os_set_handle_inheritable_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_handle_inheritable(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11782,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11783,1
    - Dst: os_get_blocking_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11786,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11787,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11794
      start: 11775
    functionDepth: 2
    functionLinenumber: 11775
    functionLinenumberEnd: 11794
    functionName: os_get_blocking
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - os_get_blocking_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_blocking(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11818,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11821,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11822,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11825,1
    - Dst: os_set_blocking_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11829,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11833
      start: 11811
    functionDepth: 2
    functionLinenumber: 11811
    functionLinenumberEnd: 11833
    functionName: os_set_blocking
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyLong_AsInt
    - PyErr_Occurred
    - os_set_blocking_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_blocking(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11853,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11854,1
    - Dst: os_DirEntry_is_symlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11857,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11858,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11865
      start: 11847
    functionDepth: 2
    functionLinenumber: 11847
    functionLinenumberEnd: 11865
    functionName: os_DirEntry_is_symlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - os_DirEntry_is_symlink_impl
    - PyErr_SetString
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_is_symlink(PyObject *self, PyTypeObject *defining_class, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: os_DirEntry_is_junction_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11885,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11886,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11893
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11893
    functionName: os_DirEntry_is_junction
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - os_DirEntry_is_junction_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_is_junction(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11921,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11923,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11940,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11943,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11951,1
    - Dst: os_DirEntry_stat_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11960
      start: 11908
    functionDepth: 6
    functionLinenumber: 11908
    functionLinenumberEnd: 11960
    functionName: os_DirEntry_stat
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - os_DirEntry_stat_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_stat(PyObject *self, PyTypeObject *defining_class, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11988,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11990,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12007,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12011,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12019,1
    - Dst: os_DirEntry_is_dir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12024,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12025,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12028,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12032
      start: 11975
    functionDepth: 8
    functionLinenumber: 11975
    functionLinenumberEnd: 12032
    functionName: os_DirEntry_is_dir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - os_DirEntry_is_dir_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_is_dir(PyObject *self, PyTypeObject *defining_class, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12060,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12062,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12079,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12083,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12091,1
    - Dst: os_DirEntry_is_file_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12096,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12097,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12100,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12104
      start: 12047
    functionDepth: 8
    functionLinenumber: 12047
    functionLinenumberEnd: 12104
    functionName: os_DirEntry_is_file
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    - os_DirEntry_is_file_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_is_file(PyObject *self, PyTypeObject *defining_class, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_DirEntry_inode_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12122
      start: 12118
    functionDepth: 4
    functionLinenumber: 12118
    functionLinenumberEnd: 12122
    functionName: os_DirEntry_inode
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_DirEntry_inode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_inode(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_DirEntry___fspath___impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12140
      start: 12136
    functionDepth: 1
    functionLinenumber: 12136
    functionLinenumberEnd: 12140
    functionName: os_DirEntry___fspath__
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_DirEntry___fspath___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry___fspath__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12173,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12175,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12192,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12193,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12195,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12203,1
    - Dst: os_scandir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12207,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12211,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: 12214
      start: 12160
    functionDepth: 5
    functionLinenumber: 12160
    functionLinenumberEnd: 12214
    functionName: os_scandir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_scandir_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_scandir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12245,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12247,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12266,1
    - Dst: os_fspath_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12276
      start: 12232
    functionDepth: 3
    functionLinenumber: 12232
    functionLinenumberEnd: 12276
    functionName: os_fspath
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - os_fspath_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fspath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12305,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12307,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12307,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12324,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12328,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12335,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12338,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12340,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12348,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12349,1
    - Dst: os_getrandom_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12353,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: 12357
      start: 12292
    functionDepth: 3
    functionLinenumber: 12292
    functionLinenumberEnd: 12357
    functionName: os_getrandom
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getrandom_impl
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getrandom(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12395,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12397,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12414,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12416,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12421,1
    - Dst: os__add_dll_directory_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12424,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12431
      start: 12382
    functionDepth: 3
    functionLinenumber: 12382
    functionLinenumberEnd: 12431
    functionName: os__add_dll_directory
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__add_dll_directory_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12466,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12468,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12487,1
    - Dst: os__remove_dll_directory_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12497
      start: 12453
    functionDepth: 3
    functionLinenumber: 12453
    functionLinenumberEnd: 12497
    functionName: os__remove_dll_directory
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__remove_dll_directory_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__remove_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12540,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12542,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12561,1
    - Dst: os_waitstatus_to_exitcode_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12571
      start: 12527
    functionDepth: 2
    functionLinenumber: 12527
    functionLinenumberEnd: 12571
    functionName: os_waitstatus_to_exitcode
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - os_waitstatus_to_exitcode_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os__supports_virtual_terminal_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12593
      start: 12589
    functionDepth: 2
    functionLinenumber: 12589
    functionLinenumberEnd: 12593
    functionName: os__supports_virtual_terminal
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__supports_virtual_terminal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__supports_virtual_terminal(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os__inputhook_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12613
      start: 12609
    functionDepth: 1
    functionLinenumber: 12609
    functionLinenumberEnd: 12613
    functionName: os__inputhook
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__inputhook_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__inputhook(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os__is_inputhook_installed_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12631
      start: 12627
    functionDepth: 2
    functionLinenumber: 12627
    functionLinenumberEnd: 12631
    functionName: os__is_inputhook_installed
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__is_inputhook_installed_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__is_inputhook_installed(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os__create_environ_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12649
      start: 12645
    functionDepth: 3
    functionLinenumber: 12645
    functionLinenumberEnd: 12649
    functionName: os__create_environ
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__create_environ_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__create_environ(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os__emscripten_debugger_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12669
      start: 12665
    functionDepth: 1
    functionLinenumber: 12665
    functionLinenumberEnd: 12669
    functionName: os__emscripten_debugger
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__emscripten_debugger_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__emscripten_debugger(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12700,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12702,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12721,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12726,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12727,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12731,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12735,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12736,1
    - Dst: os__emscripten_log_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12739,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: 12743
      start: 12687
    functionDepth: 1
    functionLinenumber: 12687
    functionLinenumberEnd: 12743
    functionName: os__emscripten_log
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - os__emscripten_log_impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__emscripten_log(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:29,1
    - Dst: binascii_a2b_uu_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:32,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: binascii_a2b_uu
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:67,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:69,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:86,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:90,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:95,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:101,1
    - Dst: binascii_b2a_uu_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:106,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 115
    functionName: binascii_b2a_uu
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - binascii_b2a_uu_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:146,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:148,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:165,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:169,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:174,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:180,1
    - Dst: binascii_a2b_base64_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:185,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 193
    functionName: binascii_a2b_base64
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - ascii_buffer_converter
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - binascii_a2b_base64_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:220,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:222,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:239,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:243,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:248,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:254,1
    - Dst: binascii_b2a_base64_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:259,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:264,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 268
    functionName: binascii_b2a_base64
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - binascii_b2a_base64_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/binascii.c.h:289,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:292,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/binascii.c.h:296,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/binascii.c.h:304,1
    - Dst: binascii_crc_hqx_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:311,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:316,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 320
    functionName: binascii_crc_hqx
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_crc_hqx_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - PyBuffer_Release
    - PyErr_WarnEx
    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/cpython/Modules/clinic/binascii.c.h:342,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:345,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/binascii.c.h:352,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/binascii.c.h:360,1
    - Dst: binascii_crc32_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:368,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/binascii.c.h:369,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/binascii.c.h:372,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:377,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 381
    functionName: binascii_crc32
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - binascii_crc32_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - PyLong_FromUnsignedLong
    - PyBuffer_Release
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:426,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:428,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:428,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:428,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:445,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:450,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:455,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/binascii.c.h:467,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/binascii.c.h:468,1
    - Dst: binascii_b2a_hex_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:472,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:477,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 481
    functionName: binascii_b2a_hex
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - binascii_b2a_hex_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:518,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:520,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:537,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:542,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:547,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/binascii.c.h:559,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/binascii.c.h:560,1
    - Dst: binascii_hexlify_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:564,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:569,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 573
    functionName: binascii_hexlify
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - binascii_hexlify_impl
    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/cpython/Modules/clinic/binascii.c.h:596,1
    - Dst: binascii_a2b_hex_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:599,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 607
    functionName: binascii_a2b_hex
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/binascii.c.h:629,1
    - Dst: binascii_unhexlify_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:632,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 623
    functionDepth: 4
    functionLinenumber: 623
    functionLinenumberEnd: 640
    functionName: binascii_unhexlify
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_unhexlify_impl
    - PyBuffer_Release
    - ascii_buffer_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_unhexlify(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:667,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:669,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:669,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:686,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:690,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:695,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:701,1
    - Dst: binascii_a2b_qp_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:706,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:711,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 714
    functionName: binascii_a2b_qp
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - binascii_a2b_qp_impl
    - ascii_buffer_converter
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:746,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:748,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:748,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:748,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:748,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:765,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:771,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:776,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:783,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:792,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:800,1
    - Dst: binascii_b2a_qp_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:805,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:810,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 814
    functionName: binascii_b2a_qp
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - binascii_b2a_qp_impl
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _csv_list_dialects_impl
      Src: /src/cpython/Modules/clinic/_csv.c.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: _csv_list_dialects
    functionSourceFile: /src/cpython/Modules/clinic/_csv.c.h
    functionUses: 0
    functionsReached:
    - _csv_list_dialects_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _csv_list_dialects(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_csv.c.h:54,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_csv.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_csv.c.h:75,1
    - Dst: _csv_unregister_dialect_impl
      Src: /src/cpython/Modules/clinic/_csv.c.h:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: _csv_unregister_dialect
    functionSourceFile: /src/cpython/Modules/clinic/_csv.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _csv_unregister_dialect_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _csv_unregister_dialect(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_csv.c.h:112,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_csv.c.h:114,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_csv.c.h:133,1
    - Dst: _csv_get_dialect_impl
      Src: /src/cpython/Modules/clinic/_csv.c.h:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 143
    functionName: _csv_get_dialect
    functionSourceFile: /src/cpython/Modules/clinic/_csv.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _csv_get_dialect_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _csv_get_dialect(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_csv.c.h:173,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_csv.c.h:175,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_csv.c.h:192,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_csv.c.h:195,1
    - Dst: _csv_field_size_limit_impl
      Src: /src/cpython/Modules/clinic/_csv.c.h:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 209
    functionName: _csv_field_size_limit
    functionSourceFile: /src/cpython/Modules/clinic/_csv.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _csv_field_size_limit_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _csv_field_size_limit(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:48,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:49,1
    - Dst: _lsprof_Profiler_getstats_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: _lsprof_Profiler_getstats
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _lsprof_Profiler_getstats_impl
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_getstats(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:74,1
    - Dst: _lsprof_Profiler__pystart_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: _lsprof_Profiler__pystart_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _lsprof_Profiler__pystart_callback_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler__pystart_callback(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:106,1
    - Dst: _lsprof_Profiler__pythrow_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: _lsprof_Profiler__pythrow_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _lsprof_Profiler__pythrow_callback_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler__pythrow_callback(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:140,1
    - Dst: _lsprof_Profiler__pyreturn_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: _lsprof_Profiler__pyreturn_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _lsprof_Profiler__pyreturn_callback_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler__pyreturn_callback(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:174,1
    - Dst: _lsprof_Profiler__ccall_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: _lsprof_Profiler__ccall_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _lsprof_Profiler__ccall_callback_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler__ccall_callback(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:211,1
    - Dst: _lsprof_Profiler__creturn_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 222
    functionName: _lsprof_Profiler__creturn_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _lsprof_Profiler__creturn_callback_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler__creturn_callback(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:257,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:259,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:259,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:276,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:280,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:289,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:297,1
    - Dst: _lsprof_Profiler_enable_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:302,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 306
    functionName: _lsprof_Profiler_enable
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _lsprof_Profiler_enable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_enable(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lsprof_Profiler_disable_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: _lsprof_Profiler_disable
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _lsprof_Profiler_disable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_disable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lsprof_Profiler_clear_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: _lsprof_Profiler_clear
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _lsprof_Profiler_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:372,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:374,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:374,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:374,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:374,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:392,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:393,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:399,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:399,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:414,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:415,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:419,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:420,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:429,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:437,1
    - Dst: profiler_init_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:442,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 446
    functionName: profiler_init
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - profiler_init_impl
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int profiler_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:36,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:40,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:43,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:47,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:48,1
    - Dst: fcntl_fcntl_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:56,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: fcntl_fcntl
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - fcntl_fcntl_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_Format
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_fcntl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:112,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:116,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:119,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:123,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:124,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:128,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:136,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:150,1
    - Dst: fcntl_ioctl_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:155,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 159
    functionName: fcntl_ioctl
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - fcntl_ioctl_impl
    - PyLong_AsNativeBytes
    - PyErr_Format
    - PyIndex_Check
    - PyObject_AsFileDescriptor
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_ioctl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:184,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:187,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:191,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:192,1
    - Dst: fcntl_flock_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: fcntl_flock
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - fcntl_flock_impl
    - PyErr_Format
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_flock(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:246,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:250,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:253,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:258,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:273,1
    - Dst: fcntl_lockf_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:277,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 281
    functionName: fcntl_lockf
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - fcntl_lockf_impl
    - PyErr_Format
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_struct.c.h:39,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:41,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_struct.c.h:59,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_struct.c.h:62,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_struct.c.h:62,1
    - Dst: Struct___init___impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 72
    functionName: Struct___init__
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - Struct___init___impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int Struct___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:97,1
    - Dst: Struct_unpack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:100,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: Struct_unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - PyObject_GetBuffer
    - Struct_unpack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_unpack(PyObject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_struct.c.h:144,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:146,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:146,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_struct.c.h:163,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_struct.c.h:167,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:172,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_struct.c.h:180,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:183,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:185,1
    - Dst: Struct_unpack_from_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:191,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 200
    functionName: Struct_unpack_from
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - Struct_unpack_from_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_unpack_from(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_iter_unpack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: Struct_iter_unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 1
    functionsReached:
    - Struct_iter_unpack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_iter_unpack(PyObject *self, PyObject *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _clearcache_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: _clearcache
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_struct.c.h:266,1
    - Dst: calcsize_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:269,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:270,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:273,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: calcsize
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - cache_struct_converter
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - calcsize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calcsize(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_struct.c.h:305,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:308,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:311,1
    - Dst: unpack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:314,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:318,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:321,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 4
    functionsReached:
    - Py_XDECREF
    - cache_struct_converter
    - unpack_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_struct.c.h:357,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:359,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:359,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_struct.c.h:376,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_struct.c.h:381,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:386,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:389,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_struct.c.h:397,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:400,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:402,1
    - Dst: unpack_from_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:408,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:412,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:415,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: 419
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 419
    functionName: unpack_from
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - cache_struct_converter
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - unpack_from_impl
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    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/cpython/Modules/clinic/_struct.c.h:446,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:449,1
    - Dst: iter_unpack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:453,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 460
    functionName: iter_unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyArg_CheckPositional
    - iter_unpack_impl
    - cache_struct_converter
    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/cpython/Modules/clinic/_tkinter.c.h:24,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:25,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:29,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:33,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:34,1
    - Dst: _tkinter_tkapp_eval_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:37,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 41
    functionName: _tkinter_tkapp_eval
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_eval_impl
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_eval(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:60,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:61,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:65,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:69,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:70,1
    - Dst: _tkinter_tkapp_evalfile_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: _tkinter_tkapp_evalfile
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_evalfile_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_evalfile(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:96,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:97,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:101,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:106,1
    - Dst: _tkinter_tkapp_record_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 113
    functionName: _tkinter_tkapp_record
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_record_impl
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_record(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:132,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:133,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:137,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:141,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:142,1
    - Dst: _tkinter_tkapp_adderrorinfo_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: _tkinter_tkapp_adderrorinfo
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - _tkinter_tkapp_adderrorinfo_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_adderrorinfo(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_getint_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: _tkinter_tkapp_getint
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_getint_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getint(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_getdouble_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: _tkinter_tkapp_getdouble
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_getdouble_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getdouble(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_getboolean_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: _tkinter_tkapp_getboolean
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_getboolean_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getboolean(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:231,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:232,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:236,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:240,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:241,1
    - Dst: _tkinter_tkapp_exprstring_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 248
    functionName: _tkinter_tkapp_exprstring
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _tkinter_tkapp_exprstring_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprstring(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:267,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:268,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:272,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:276,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:277,1
    - Dst: _tkinter_tkapp_exprlong_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: _tkinter_tkapp_exprlong
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _tkinter_tkapp_exprlong_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprlong(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:303,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:304,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:308,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:313,1
    - Dst: _tkinter_tkapp_exprdouble_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 320
    functionName: _tkinter_tkapp_exprdouble
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _tkinter_tkapp_exprdouble_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprdouble(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:339,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:340,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:344,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:349,1
    - Dst: _tkinter_tkapp_exprboolean_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 356
    functionName: _tkinter_tkapp_exprboolean
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - _tkinter_tkapp_exprboolean_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprboolean(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_splitlist_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 5
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: _tkinter_tkapp_splitlist
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_splitlist_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_splitlist(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:398,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:401,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:402,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:406,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:410,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:411,1
    - Dst: _tkinter_tkapp_createcommand_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:415,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 419
    functionName: _tkinter_tkapp_createcommand
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _tkinter_tkapp_createcommand_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_createcommand(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:438,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:439,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:443,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:447,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:448,1
    - Dst: _tkinter_tkapp_deletecommand_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 455
    functionName: _tkinter_tkapp_deletecommand
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_deletecommand_impl
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_deletecommand(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:479,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:483,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:484,1
    - Dst: _tkinter_tkapp_createfilehandler_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 492
    functionName: _tkinter_tkapp_createfilehandler
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tkinter_tkapp_createfilehandler_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_createfilehandler(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_deletefilehandler_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 517
    functionName: _tkinter_tkapp_deletefilehandler
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_deletefilehandler_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_deletefilehandler(PyObject *self, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tktimertoken_deletetimerhandler_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: _tkinter_tktimertoken_deletetimerhandler
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tktimertoken_deletetimerhandler_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tktimertoken_deletetimerhandler(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:557,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:560,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:561,1
    - Dst: _tkinter_tkapp_createtimerhandler_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 569
    functionName: _tkinter_tkapp_createtimerhandler
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tkinter_tkapp_createtimerhandler_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_createtimerhandler(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:588,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:594,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:595,1
    - Dst: _tkinter_tkapp_mainloop_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:599,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: _tkinter_tkapp_mainloop
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tkinter_tkapp_mainloop_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_mainloop(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:622,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:628,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:629,1
    - Dst: _tkinter_tkapp_dooneevent_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:633,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 637
    functionName: _tkinter_tkapp_dooneevent
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _tkinter_tkapp_dooneevent_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_dooneevent(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_quit_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: _tkinter_tkapp_quit
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_quit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_quit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_interpaddr_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: _tkinter_tkapp_interpaddr
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_interpaddr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_interpaddr(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_loadtk_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: _tkinter_tkapp_loadtk
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_loadtk_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_loadtk(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_settrace_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 710
    functionName: _tkinter_tkapp_settrace
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_settrace_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_settrace(PyObject *self, PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_gettrace_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: _tkinter_tkapp_gettrace
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_gettrace_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_gettrace(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_willdispatch_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: _tkinter_tkapp_willdispatch
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_willdispatch_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_willdispatch(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:792,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:801,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:803,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:807,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:808,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:813,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:819,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:820,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:824,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:828,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:829,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:835,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:836,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:840,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:844,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:845,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:851,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:858,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:859,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:865,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:872,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:882,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:884,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:888,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:889,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:894,1
    - Dst: _tkinter_create_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:898,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 131
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 902
    functionName: _tkinter_create
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - _tkinter_create_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:924,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:925,1
    - Dst: _tkinter_setbusywaitinterval_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 932
    functionName: _tkinter_setbusywaitinterval
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tkinter_setbusywaitinterval_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_setbusywaitinterval(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_getbusywaitinterval_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:952,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:953,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 960
    functionName: _tkinter_getbusywaitinterval
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tkinter_getbusywaitinterval_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_getbusywaitinterval(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:46,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:46,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:63,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:68,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:73,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:80,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:81,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:88,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:89,1
    - Dst: zlib_compress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:93,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:98,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 102
    functionName: zlib_compress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - zlib_compress_impl
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:137,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:139,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:139,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:156,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:161,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:166,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:174,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:183,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:186,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:188,1
    - Dst: zlib_decompress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:194,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:199,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 203
    functionName: zlib_decompress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyNumber_Index
    - _Py_ID
    - zlib_decompress_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:255,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:257,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:257,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:257,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:257,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:257,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:257,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:274,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:282,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:291,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:292,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:300,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:301,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:309,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:310,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:319,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:327,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:328,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:335,1
    - Dst: zlib_compressobj_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:339,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:344,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 78
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 348
    functionName: zlib_compressobj
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - zlib_compressobj_impl
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:381,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:383,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:383,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:400,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:404,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:413,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:414,1
    - Dst: zlib_decompressobj_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:423,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: 427
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 427
    functionName: zlib_decompressobj
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - zlib_decompressobj_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_decompressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:469,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:474,1
    - Dst: zlib_Compress_compress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:477,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 486
    functionName: zlib_Compress_compress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Compress_compress_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_compress(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:525,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:527,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:544,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:548,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:553,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:561,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:564,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:566,1
    - Dst: zlib_Decompress_decompress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:572,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:577,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 581
    functionName: zlib_Decompress_decompress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress_decompress_impl
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_decompress(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:621,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:629,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:630,1
    - Dst: zlib_Compress_flush_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 638
    functionName: zlib_Compress_flush
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - zlib_Compress_flush_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_flush(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:657,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:658,1
    - Dst: zlib_Compress_copy_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: zlib_Compress_copy
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Compress_copy_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:682,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:683,1
    - Dst: zlib_Compress___copy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 687
    functionName: zlib_Compress___copy__
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - zlib_Compress___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress___copy__(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:725,1
    - Dst: zlib_Compress___deepcopy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 705
    functionDepth: 4
    functionLinenumber: 705
    functionLinenumberEnd: 735
    functionName: zlib_Compress___deepcopy__
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - zlib_Compress___deepcopy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress___deepcopy__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:756,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:757,1
    - Dst: zlib_Decompress_copy_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: zlib_Decompress_copy
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - zlib_Decompress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:781,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:782,1
    - Dst: zlib_Decompress___copy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 778
    functionDepth: 4
    functionLinenumber: 778
    functionLinenumberEnd: 786
    functionName: zlib_Decompress___copy__
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress___copy___impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress___copy__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:824,1
    - Dst: zlib_Decompress___deepcopy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 804
    functionDepth: 4
    functionLinenumber: 804
    functionLinenumberEnd: 834
    functionName: zlib_Decompress___deepcopy__
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - zlib_Decompress___deepcopy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress___deepcopy__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:874,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:884,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:887,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:889,1
    - Dst: zlib_Decompress_flush_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:895,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 899
    functionName: zlib_Decompress_flush
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress_flush_impl
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_flush(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:941,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:943,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:943,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:960,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:964,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:969,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:977,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:979,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:980,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:982,1
    - Dst: zlib__ZlibDecompressor_decompress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:988,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:993,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 997
    functionName: zlib__ZlibDecompressor_decompress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - zlib__ZlibDecompressor_decompress_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib__ZlibDecompressor_decompress(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1029,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1031,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1031,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1049,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1050,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1054,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1054,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1063,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1064,1
    - Dst: zlib__ZlibDecompressor_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1073,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1016
    functionDepth: 4
    functionLinenumber: 1016
    functionLinenumberEnd: 1077
    functionName: zlib__ZlibDecompressor
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib__ZlibDecompressor_impl
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib__ZlibDecompressor(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1103,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1106,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1113,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1121,1
    - Dst: zlib_adler32_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1129,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1134,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1138
    functionName: zlib_adler32
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_adler32_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - PyBuffer_Release
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_adler32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1173,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1177,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1185,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1193,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1201,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1208,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1209,1
    - Dst: zlib_adler32_combine_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1213,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1214,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1217,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1221
    functionName: zlib_adler32_combine
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_Check
    - zlib_adler32_combine_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyLong_FromUnsignedLong
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_adler32_combine(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1248,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1251,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1258,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1266,1
    - Dst: zlib_crc32_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1274,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1275,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1278,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1283,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1287
    functionName: zlib_crc32
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_crc32_impl
    - PyErr_Occurred
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - PyLong_FromUnsignedLong
    - PyBuffer_Release
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1322,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1326,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1334,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1342,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1350,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1357,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1358,1
    - Dst: zlib_crc32_combine_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1362,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1363,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1366,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1370
    functionName: zlib_crc32_combine
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyLong_FromUnsignedLong
    - PyErr_WarnEx
    - zlib_crc32_combine_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_crc32_combine(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_winapi.c.h:29,1
    - Dst: _winapi_Overlapped_GetOverlappedResult_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: _winapi_Overlapped_GetOverlappedResult
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_Overlapped_GetOverlappedResult_impl
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_GetOverlappedResult(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_Overlapped_getbuffer_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: _winapi_Overlapped_getbuffer
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_Overlapped_getbuffer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_getbuffer(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_Overlapped_cancel_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: _winapi_Overlapped_cancel
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_Overlapped_cancel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_cancel(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/_winapi.c.h:91,1
    - Dst: _winapi_CloseHandle_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: _winapi_CloseHandle
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:125,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:127,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:127,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:146,1
    - Dst: _winapi_ConnectNamedPipe_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 154
    functionName: _winapi_ConnectNamedPipe
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyArg_ParseStackAndKeywords
    - _winapi_ConnectNamedPipe_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ConnectNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:184,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:186,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:186,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:186,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:186,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:208,1
    - Dst: _winapi_CreateEventW_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:213,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:219,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 226
    functionName: _winapi_CreateEventW
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - PyErr_Occurred
    - _Py_ID
    - _winapi_CreateEventW_impl
    - HANDLE_TO_PYNUM
    - PyVarObject_HEAD_INIT
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateEventW(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:258,1
    - Dst: _winapi_CreateFile_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:262,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:263,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:269,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 276
    functionName: _winapi_CreateFile
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    - _winapi_CreateFile_impl
    - PyMem_Free
    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/cpython/Modules/clinic/_winapi.c.h:305,1
    - Dst: _winapi_CreateFileMapping_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:309,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:310,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:316,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 323
    functionName: _winapi_CreateFileMapping
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    - _winapi_CreateFileMapping_impl
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_winapi.c.h:344,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_winapi.c.h:347,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_winapi.c.h:348,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/_winapi.c.h:351,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_winapi.c.h:355,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_winapi.c.h:356,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/_winapi.c.h:359,1
    - Dst: _winapi_CreateJunction_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:363,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:367,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 372
    functionName: _winapi_CreateJunction
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_CreateJunction_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateJunction(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:400,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:402,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:402,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:402,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:423,1
    - Dst: _winapi_CreateMutexW_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:427,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:428,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:434,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 441
    functionName: _winapi_CreateMutexW
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - PyErr_Occurred
    - _Py_ID
    - HANDLE_TO_PYNUM
    - _winapi_CreateMutexW_impl
    - PyMem_Free
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateMutexW(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:474,1
    - Dst: _winapi_CreateNamedPipe_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:478,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:479,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:485,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:489,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 492
    functionName: _winapi_CreateNamedPipe
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyErr_Occurred
    - _winapi_CreateNamedPipe_impl
    - HANDLE_TO_PYNUM
    - PyMem_Free
    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/cpython/Modules/clinic/_winapi.c.h:518,1
    - Dst: _winapi_CreatePipe_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 526
    functionName: _winapi_CreatePipe
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_CreatePipe_impl
    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/cpython/Modules/clinic/_winapi.c.h:571,1
    - Dst: _winapi_CreateProcess_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:575,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:579,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:581,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: 557
    functionDepth: 6
    functionLinenumber: 557
    functionLinenumberEnd: 584
    functionName: _winapi_CreateProcess
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyMem_Free
    - _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/cpython/Modules/clinic/_winapi.c.h:620,1
    - Dst: _winapi_DuplicateHandle_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:624,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:625,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:631,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 635
    functionName: _winapi_DuplicateHandle
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_ParseStack
    - HANDLE_TO_PYNUM
    - _winapi_DuplicateHandle_impl
    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/cpython/Modules/clinic/_winapi.c.h:654,1
    - Dst: _winapi_ExitProcess_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: _winapi_ExitProcess
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _winapi_ExitProcess_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ExitProcess(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetCurrentProcess_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:681,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:682,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 692
    functionName: _winapi_GetCurrentProcess
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    - _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/cpython/Modules/clinic/_winapi.c.h:713,1
    - Dst: _winapi_GetExitCodeProcess_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:716,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:717,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/_winapi.c.h:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 724
    functionName: _winapi_GetExitCodeProcess
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_Occurred
    - _winapi_GetExitCodeProcess_impl
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetExitCodeProcess(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetLastError_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:743,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:744,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/_winapi.c.h:747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 751
    functionName: _winapi_GetLastError
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    - _winapi_GetLastError_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetLastError(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:783,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:785,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:804,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_winapi.c.h:809,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_winapi.c.h:810,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/_winapi.c.h:813,1
    - Dst: _winapi_GetLongPathName_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:817,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:821,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: 824
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 824
    functionName: _winapi_GetLongPathName
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _winapi_GetLongPathName_impl
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetLongPathName(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/_winapi.c.h:851,1
    - Dst: _winapi_GetModuleFileName_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 858
    functionName: _winapi_GetModuleFileName
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _winapi_GetModuleFileName_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetModuleFileName(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:892,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:894,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:913,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_winapi.c.h:918,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_winapi.c.h:919,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/_winapi.c.h:922,1
    - Dst: _winapi_GetShortPathName_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:926,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:930,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: 933
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 933
    functionName: _winapi_GetShortPathName
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_GetShortPathName_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetShortPathName(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/_winapi.c.h:961,1
    - Dst: _winapi_GetStdHandle_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:964,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:965,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:971,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 975
    functionName: _winapi_GetStdHandle
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - HANDLE_TO_PYNUM
    - PyErr_Occurred
    - _winapi_GetStdHandle_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetStdHandle(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetVersion_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:996,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_winapi.c.h:999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 1003
    functionName: _winapi_GetVersion
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - _winapi_GetVersion_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetVersion(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1030,1
    - Dst: _winapi_MapViewOfFile_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1034,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1035,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1038,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1042
    functionName: _winapi_MapViewOfFile
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_ParseStack
    - _winapi_MapViewOfFile_impl
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_MapViewOfFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1061,1
    - Dst: _winapi_UnmapViewOfFile_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1068
    functionName: _winapi_UnmapViewOfFile
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _winapi_UnmapViewOfFile_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_UnmapViewOfFile(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1095,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1097,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1097,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1097,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1118,1
    - Dst: _winapi_OpenEventW_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1123,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1129,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1136
    functionName: _winapi_OpenEventW
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - PyErr_Occurred
    - _Py_ID
    - HANDLE_TO_PYNUM
    - PyMem_Free
    - PyVarObject_HEAD_INIT
    - _winapi_OpenEventW_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_OpenEventW(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1163,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1165,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1165,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1165,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1186,1
    - Dst: _winapi_OpenMutexW_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1190,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1191,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1197,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1150
    functionDepth: 2
    functionLinenumber: 1150
    functionLinenumberEnd: 1204
    functionName: _winapi_OpenMutexW
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - PyErr_Occurred
    - _Py_ID
    - HANDLE_TO_PYNUM
    - PyVarObject_HEAD_INIT
    - _winapi_OpenMutexW_impl
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_OpenMutexW(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1227,1
    - Dst: _winapi_OpenFileMapping_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1231,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1232,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1238,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1218
    functionDepth: 2
    functionLinenumber: 1218
    functionLinenumberEnd: 1245
    functionName: _winapi_OpenFileMapping
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    - _winapi_OpenFileMapping_impl
    - PyMem_Free
    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/cpython/Modules/clinic/_winapi.c.h:1268,1
    - Dst: _winapi_OpenProcess_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1273,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1283
    functionName: _winapi_OpenProcess
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_ParseStack
    - HANDLE_TO_PYNUM
    - _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/cpython/Modules/clinic/_winapi.c.h:1303,1
    - Dst: _winapi_PeekNamedPipe_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1311
    functionName: _winapi_PeekNamedPipe
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1338,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1340,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1340,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1340,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1360,1
    - Dst: _winapi_LCMapStringEx_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1364,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1325
    functionDepth: 2
    functionLinenumber: 1325
    functionLinenumberEnd: 1371
    functionName: _winapi_LCMapStringEx
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - _Py_ID
    - _winapi_LCMapStringEx_impl
    - PyVarObject_HEAD_INIT
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_LCMapStringEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1398,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1400,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1400,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1400,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1420,1
    - Dst: _winapi_ReadFile_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1428
    functionName: _winapi_ReadFile
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_ReadFile_impl
    - _Py_ID
    - _PyArg_ParseStackAndKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ReadFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1454,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1456,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1474,1
    - Dst: _winapi_ReleaseMutex_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1441
    functionDepth: 2
    functionLinenumber: 1441
    functionLinenumberEnd: 1482
    functionName: _winapi_ReleaseMutex
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_ReleaseMutex_impl
    - _Py_ID
    - _PyArg_ParseStackAndKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ReleaseMutex(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1508,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1510,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1528,1
    - Dst: _winapi_ResetEvent_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1536
    functionName: _winapi_ResetEvent
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyArg_ParseStackAndKeywords
    - _winapi_ResetEvent_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ResetEvent(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1562,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1564,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1582,1
    - Dst: _winapi_SetEvent_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1549
    functionDepth: 2
    functionLinenumber: 1549
    functionLinenumberEnd: 1590
    functionName: _winapi_SetEvent
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyArg_ParseStackAndKeywords
    - _winapi_SetEvent_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_SetEvent(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1616,1
    - Dst: _winapi_SetNamedPipeHandleState_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1607
    functionDepth: 2
    functionLinenumber: 1607
    functionLinenumberEnd: 1624
    functionName: _winapi_SetNamedPipeHandleState
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_winapi.c.h:1646,1
    - Dst: _winapi_TerminateProcess_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1639
    functionDepth: 2
    functionLinenumber: 1639
    functionLinenumberEnd: 1654
    functionName: _winapi_TerminateProcess
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_TerminateProcess_impl
    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/cpython/Modules/clinic/_winapi.c.h:1674,1
    - Dst: _winapi_VirtualQuerySize_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1677,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1678,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1667
    functionDepth: 2
    functionLinenumber: 1667
    functionLinenumberEnd: 1685
    functionName: _winapi_VirtualQuerySize
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_Occurred
    - _winapi_VirtualQuerySize_impl
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_VirtualQuerySize(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1705,1
    - Dst: _winapi_WaitNamedPipe_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1709,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1698
    functionDepth: 2
    functionLinenumber: 1698
    functionLinenumberEnd: 1716
    functionName: _winapi_WaitNamedPipe
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_WaitNamedPipe_impl
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WaitNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1759,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1761,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1761,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1761,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1781,1
    - Dst: _winapi_BatchedWaitForMultipleObjects_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1789
    functionName: _winapi_BatchedWaitForMultipleObjects
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyArg_ParseStackAndKeywords
    - _winapi_BatchedWaitForMultipleObjects_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_BatchedWaitForMultipleObjects(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1812,1
    - Dst: _winapi_WaitForMultipleObjects_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1820
    functionName: _winapi_WaitForMultipleObjects
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_winapi.c.h:1847,1
    - Dst: _winapi_WaitForSingleObject_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1851,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1852,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1855,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1839
    functionDepth: 2
    functionLinenumber: 1839
    functionLinenumberEnd: 1859
    functionName: _winapi_WaitForSingleObject
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_WaitForSingleObject_impl
    - _PyArg_ParseStack
    - PyErr_Occurred
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WaitForSingleObject(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1886,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1888,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1888,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1888,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1908,1
    - Dst: _winapi_WriteFile_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1873
    functionDepth: 4
    functionLinenumber: 1873
    functionLinenumberEnd: 1916
    functionName: _winapi_WriteFile
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyArg_ParseStackAndKeywords
    - _winapi_WriteFile_impl
    - PyVarObject_HEAD_INIT
    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/cpython/Modules/clinic/_winapi.c.h:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1930
    functionDepth: 1
    functionLinenumber: 1930
    functionLinenumberEnd: 1934
    functionName: _winapi_GetACP
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetOEMCP_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 1952
    functionName: _winapi_GetOEMCP
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_GetOEMCP_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetOEMCP(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1978,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1980,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:1999,1
    - Dst: _winapi_GetFileType_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2003,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2004,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2007,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 2011
    functionName: _winapi_GetFileType
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - _winapi_GetFileType_impl
    - PyErr_Occurred
    - _Py_ID
    - PyLong_FromUnsignedLong
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetFileType(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2042,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2044,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2063,1
    - Dst: _winapi__mimetypes_read_windows_registry_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2029
    functionDepth: 2
    functionLinenumber: 2029
    functionLinenumberEnd: 2073
    functionName: _winapi__mimetypes_read_windows_registry
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi__mimetypes_read_windows_registry_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi__mimetypes_read_windows_registry(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2094,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2095,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2098,1
    - Dst: _winapi_NeedCurrentDirectoryForExePath_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2103,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2106,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2087
    functionDepth: 1
    functionLinenumber: 2087
    functionLinenumberEnd: 2113
    functionName: _winapi_NeedCurrentDirectoryForExePath
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - _winapi_NeedCurrentDirectoryForExePath_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_NeedCurrentDirectoryForExePath(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2149,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2151,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2151,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2151,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2151,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2172,1
    - Dst: _winapi_CopyFile2_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2176,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2180,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2136
    functionDepth: 2
    functionLinenumber: 2136
    functionLinenumberEnd: 2185
    functionName: _winapi_CopyFile2
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyMem_Free
    - _winapi_CopyFile2_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CopyFile2(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:50,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:52,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:52,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:52,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:70,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:71,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:76,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:76,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:84,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:86,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:87,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:89,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:97,1
    - Dst: batched_new_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:102,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 106
    functionName: batched_new
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - Py_DECREF
    - _Py_ID
    - PyErr_Occurred
    - batched_new_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      batched_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:123,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:127,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:130,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:130,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:133,1
    - Dst: pairwise_new_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: pairwise_new
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - pairwise_new_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pairwise_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:169,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:171,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:171,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:189,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:190,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:194,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:194,1
    - Dst: itertools_groupby_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 209
    functionName: itertools_groupby
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - itertools_groupby_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_groupby(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:219,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:224,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:227,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:227,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:230,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:230,1
    - Dst: clinic_state_by_cls
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:230,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:231,1
    - Dst: clinic_state_by_cls
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:231,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:231,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:234,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:235,1
    - Dst: itertools__grouper_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: itertools__grouper
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _PyArg_BadArgument
    - clinic_state_by_cls
    - itertools__grouper_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools__grouper(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:256,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:262,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:265,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:265,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:268,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:269,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:269,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:270,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:270,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:273,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:274,1
    - Dst: itertools_teedataobject_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 279
    functionName: itertools_teedataobject
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - clinic_state
    - PyList_Check
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _PyArg_BadArgument
    - itertools_teedataobject_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_teedataobject(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:294,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:298,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:301,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:301,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:304,1
    - Dst: itertools__tee_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 309
    functionName: itertools__tee
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - itertools__tee_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools__tee(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:330,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:339,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:342,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:344,1
    - Dst: itertools_tee_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:350,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 354
    functionName: itertools_tee
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - itertools_tee_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_tee(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:369,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:373,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:376,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:376,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:379,1
    - Dst: itertools_cycle_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 384
    functionName: itertools_cycle
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - itertools_cycle_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_cycle(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:401,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:406,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:409,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:409,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:412,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:413,1
    - Dst: itertools_dropwhile_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 418
    functionName: itertools_dropwhile
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - clinic_state
    - itertools_dropwhile_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_dropwhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:433,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:438,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:441,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:441,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:444,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:445,1
    - Dst: itertools_takewhile_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:446,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 450
    functionName: itertools_takewhile
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - itertools_takewhile_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_takewhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:465,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:470,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:473,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:473,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:476,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:477,1
    - Dst: itertools_starmap_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 482
    functionName: itertools_starmap
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - clinic_state
    - itertools_starmap_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_starmap(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: itertools_chain_from_iterable_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: itertools_chain_from_iterable
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - itertools_chain_from_iterable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_chain_from_iterable(PyObject *type, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:531,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:533,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:533,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:551,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:555,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:555,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:563,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:566,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:568,1
    - Dst: itertools_combinations_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 577
    functionName: itertools_combinations
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - itertools_combinations_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:605,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:607,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:607,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:625,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:629,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:629,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:637,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:640,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:642,1
    - Dst: itertools_combinations_with_replacement_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:647,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 651
    functionName: itertools_combinations_with_replacement
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - itertools_combinations_with_replacement_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_combinations_with_replacement(PyTypeObject *type, PyObject *args,
      PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:678,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:680,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:680,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:698,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:699,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:703,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:703,1
    - Dst: itertools_permutations_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 718
    functionName: itertools_permutations
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _Py_ID
    - itertools_permutations_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_permutations(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:743,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:745,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:745,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:745,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:763,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:764,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:769,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:769,1
    - Dst: itertools_accumulate_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:790,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 794
    functionName: itertools_accumulate
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - itertools_accumulate_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:821,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:823,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:823,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:841,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:845,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:845,1
    - Dst: itertools_compress_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 856
    functionName: itertools_compress
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - itertools_compress_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_compress(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:873,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:878,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:881,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:881,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:884,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:885,1
    - Dst: itertools_filterfalse_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:886,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 890
    functionName: itertools_filterfalse
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - itertools_filterfalse_impl
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_filterfalse(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:922,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:924,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:924,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:942,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:943,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:947,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:947,1
    - Dst: itertools_count_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:963,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 967
    functionName: itertools_count
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - itertools_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:40,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:42,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:42,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:59,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:63,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:77,1
    - Dst: faulthandler_dump_traceback_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:82,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 86
    functionName: faulthandler_dump_traceback_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - faulthandler_dump_traceback_py_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_dump_traceback_py(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:113,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:115,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:132,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:135,1
    - Dst: faulthandler_dump_c_stack_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 149
    functionName: faulthandler_dump_c_stack_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - faulthandler_dump_c_stack_py_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_dump_c_stack_py(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:177,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:179,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:179,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:179,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:196,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:201,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:216,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:224,1
    - Dst: faulthandler_py_enable_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:229,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 233
    functionName: faulthandler_py_enable
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - faulthandler_py_enable_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_py_enable(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: faulthandler_disable_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler_disable_py_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_disable_py(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_is_enabled_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:271,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:272,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: faulthandler_is_enabled
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - faulthandler_is_enabled_impl
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_is_enabled(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:312,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:314,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:314,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:314,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:314,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:331,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:337,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:347,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:361,1
    - Dst: faulthandler_dump_traceback_later_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:366,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: 370
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 370
    functionName: faulthandler_dump_traceback_later
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - faulthandler_dump_traceback_later_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_dump_traceback_later(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_cancel_dump_traceback_later_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: faulthandler_cancel_dump_traceback_later_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler_cancel_dump_traceback_later_py_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_cancel_dump_traceback_later_py(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:422,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:424,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:424,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:424,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:424,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:441,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:447,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:452,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:453,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:466,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:474,1
    - Dst: faulthandler_register_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:479,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 483
    functionName: faulthandler_register_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - faulthandler_register_py_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_register_py(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:507,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:508,1
    - Dst: faulthandler_unregister_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 515
    functionName: faulthandler_unregister_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - faulthandler_unregister_py_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_unregister_py(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:537,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:543,1
    - Dst: faulthandler__sigsegv_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:548,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 552
    functionName: faulthandler__sigsegv
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler__sigsegv_impl
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__sigsegv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler__fatal_error_c_thread_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: faulthandler__fatal_error_c_thread
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler__fatal_error_c_thread_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__fatal_error_c_thread(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler__sigfpe_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: faulthandler__sigfpe
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler__sigfpe_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__sigfpe(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler__sigabrt_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 606
    functionName: faulthandler__sigabrt
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler__sigabrt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__sigabrt(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler__stack_overflow_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 626
    functionName: faulthandler__stack_overflow
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler__stack_overflow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__stack_overflow(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:652,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:655,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:661,1
    - Dst: faulthandler__raise_exception_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: faulthandler__raise_exception
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler__raise_exception_impl
    - _PyLong_UnsignedInt_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__raise_exception(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:30,1
    - Dst: termios_tcgetattr_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: termios_tcgetattr
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - termios_tcgetattr_impl
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcgetattr(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/termios.c.h:68,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:71,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/termios.c.h:75,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/termios.c.h:76,1
    - Dst: termios_tcsetattr_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: termios_tcsetattr
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_Format
    - PyObject_AsFileDescriptor
    - termios_tcsetattr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsetattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/termios.c.h:109,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:112,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/termios.c.h:116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/termios.c.h:117,1
    - Dst: termios_tcsendbreak_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: termios_tcsendbreak
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - termios_tcsendbreak_impl
    - PyErr_Format
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsendbreak(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:144,1
    - Dst: termios_tcdrain_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: termios_tcdrain
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - termios_tcdrain_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcdrain(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/termios.c.h:178,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:181,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/termios.c.h:185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/termios.c.h:186,1
    - Dst: termios_tcflush_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: termios_tcflush
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - termios_tcflush_impl
    - PyErr_Format
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcflush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/termios.c.h:219,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:222,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/termios.c.h:226,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/termios.c.h:227,1
    - Dst: termios_tcflow_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 234
    functionName: termios_tcflow
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - termios_tcflow_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_Format
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcflow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:256,1
    - Dst: termios_tcgetwinsize_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 264
    functionName: termios_tcgetwinsize
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - termios_tcgetwinsize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcgetwinsize(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/termios.c.h:289,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:292,1
    - Dst: termios_tcsetwinsize_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: termios_tcsetwinsize
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - termios_tcsetwinsize_impl
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsetwinsize(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:26,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:29,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:30,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:39,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:41,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:45,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:46,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:51,1
    - Dst: _locale_setlocale_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:55,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 59
    functionName: _locale_setlocale
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - PyLong_AsInt
    - PyErr_SetString
    - _locale_setlocale_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_setlocale(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _locale_localeconv_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: _locale_localeconv
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - _locale_localeconv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_localeconv(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:100,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:103,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:104,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:108,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:109,1
    - Dst: _locale_strcoll_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: _locale_strcoll
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _locale_strcoll_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_strcoll(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:141,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:142,1
    - Dst: _locale_strxfrm_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: _locale_strxfrm
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _locale_strxfrm_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_strxfrm(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _locale__getdefaultlocale_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: _locale__getdefaultlocale
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - _locale__getdefaultlocale_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale__getdefaultlocale(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:195,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:196,1
    - Dst: _locale_nl_langinfo_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: _locale_nl_langinfo
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _locale_nl_langinfo_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_nl_langinfo(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:229,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:230,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:234,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:238,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:239,1
    - Dst: _locale_gettext_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: _locale_gettext
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _locale_gettext_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_gettext(PyObject *module, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:273,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:279,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:281,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:286,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:291,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:294,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:295,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:299,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:304,1
    - Dst: _locale_dgettext_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:307,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 311
    functionName: _locale_dgettext
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _locale_dgettext_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_dgettext(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:338,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:344,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:346,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:350,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:351,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:356,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:359,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:360,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:364,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:368,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:369,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:372,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:373,1
    - Dst: _locale_dcgettext_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:376,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 380
    functionName: _locale_dcgettext
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - _locale_dcgettext_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_dcgettext(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:407,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:409,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:414,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:419,1
    - Dst: _locale_textdomain_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:422,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 426
    functionName: _locale_textdomain
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - _locale_textdomain_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_textdomain(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:452,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:455,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:456,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:460,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:464,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:465,1
    - Dst: _locale_bindtextdomain_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 473
    functionName: _locale_bindtextdomain
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _locale_bindtextdomain_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_bindtextdomain(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:499,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:502,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:503,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:507,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:511,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:512,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:518,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:520,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:524,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:525,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:530,1
    - Dst: _locale_bind_textdomain_codeset_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:533,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 537
    functionName: _locale_bind_textdomain_codeset
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _locale_bind_textdomain_codeset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_bind_textdomain_codeset(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _locale_getencoding_impl
      Src: /src/cpython/Modules/clinic/_localemodule.c.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 557
    functionName: _locale_getencoding
    functionSourceFile: /src/cpython/Modules/clinic/_localemodule.c.h
    functionUses: 0
    functionsReached:
    - _locale_getencoding_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_getencoding(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha1module.c.h:26,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/sha1module.c.h:27,1
    - Dst: SHA1Type_copy_impl
      Src: /src/cpython/Modules/clinic/sha1module.c.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: SHA1Type_copy
    functionSourceFile: /src/cpython/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - SHA1Type_copy_impl
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Type_digest_impl
      Src: /src/cpython/Modules/clinic/sha1module.c.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: SHA1Type_digest
    functionSourceFile: /src/cpython/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - SHA1Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Type_hexdigest_impl
      Src: /src/cpython/Modules/clinic/sha1module.c.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: SHA1Type_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - SHA1Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Type_update_impl
      Src: /src/cpython/Modules/clinic/sha1module.c.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: SHA1Type_update
    functionSourceFile: /src/cpython/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - SHA1Type_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_update(PyObject *self, PyObject *obj)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha1module.c.h:117,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha1module.c.h:119,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha1module.c.h:119,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha1module.c.h:119,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha1module.c.h:136,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha1module.c.h:141,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/sha1module.c.h:160,1
    - Dst: _sha1_sha1_impl
      Src: /src/cpython/Modules/clinic/sha1module.c.h:170,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: 174
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 174
    functionName: _sha1_sha1
    functionSourceFile: /src/cpython/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sha1_sha1_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/resource.c.h:26,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/resource.c.h:27,1
    - Dst: resource_getrusage_impl
      Src: /src/cpython/Modules/clinic/resource.c.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: resource_getrusage
    functionSourceFile: /src/cpython/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - resource_getrusage_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrusage(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/resource.c.h:55,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/resource.c.h:56,1
    - Dst: resource_getrlimit_impl
      Src: /src/cpython/Modules/clinic/resource.c.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: resource_getrlimit
    functionSourceFile: /src/cpython/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - resource_getrlimit_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrlimit(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/resource.c.h:83,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/resource.c.h:86,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/resource.c.h:87,1
    - Dst: resource_setrlimit_impl
      Src: /src/cpython/Modules/clinic/resource.c.h:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: resource_setrlimit
    functionSourceFile: /src/cpython/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - resource_setrlimit_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_setrlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/resource.c.h:119,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/resource.c.h:122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/resource.c.h:123,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/resource.c.h:126,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/resource.c.h:127,1
    - Dst: resource_prlimit_impl
      Src: /src/cpython/Modules/clinic/resource.c.h:135,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: resource_prlimit
    functionSourceFile: /src/cpython/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - resource_prlimit_impl
    - _PyArg_CheckPositional
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_prlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resource_getpagesize_impl
      Src: /src/cpython/Modules/clinic/resource.c.h:160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/resource.c.h:161,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/resource.c.h:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: resource_getpagesize
    functionSourceFile: /src/cpython/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - resource_getpagesize_impl
    - PyErr_Occurred
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getpagesize(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:80,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:85,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:89,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:90,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:96,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:97,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:100,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:101,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:104,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:105,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:108,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:109,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:112,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:113,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:117,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:121,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:125,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:128,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:132,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:136,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:137,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:144,1
    - Dst: subprocess_fork_exec_impl
      Src: /src/cpython/Modules/clinic/_posixsubprocess.c.h:148,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 88
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 152
    functionName: subprocess_fork_exec
    functionSourceFile: /src/cpython/Modules/clinic/_posixsubprocess.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyLong_AsInt
    - PyTuple_Check
    - PyErr_Occurred
    - subprocess_fork_exec_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subprocess_fork_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_bottom_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.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: 6
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: _curses_panel_panel_bottom
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_bottom_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_bottom(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_hide_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: _curses_panel_panel_hide
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_hide_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_hide(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_show_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.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: 6
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: _curses_panel_panel_show
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_show_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_show(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_top_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: _curses_panel_panel_top
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_top_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_top(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_above_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: _curses_panel_panel_above
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_above_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_above(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_below_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: _curses_panel_panel_below
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_below_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_below(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_hidden_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: _curses_panel_panel_hidden
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_hidden_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_hidden(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:154,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:158,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:162,1
    - Dst: _curses_panel_panel_move_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 169
    functionName: _curses_panel_panel_move
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_panel_panel_move_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_move(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_window_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: _curses_panel_panel_window
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_window_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_window(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:208,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:209,1
    - Dst: _curses_panel_panel_replace_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: _curses_panel_panel_replace
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_replace_impl
    - PyObject_TypeCheck
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_replace(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_set_userptr_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: _curses_panel_panel_set_userptr
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_set_userptr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_set_userptr(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_userptr_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 5
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: _curses_panel_panel_userptr
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_userptr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_userptr(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_bottom_panel_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: _curses_panel_bottom_panel
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_curses_panel.c.h:296,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:297,1
    - Dst: _curses_panel_new_panel_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: _curses_panel_new_panel
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _curses_panel_new_panel_impl
    - _PyArg_BadArgument
    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/cpython/Modules/clinic/_curses_panel.c.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: _curses_panel_top_panel
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_curses_panel.c.h:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: _curses_panel_update_panels
    functionSourceFile: /src/cpython/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: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:39,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:59,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:60,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:69,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:69,1
    - Dst: delta_new_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:115,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 119
    functionName: delta_new
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - delta_new_impl
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:143,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:145,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:145,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:145,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:163,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:168,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:168,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:174,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:177,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:178,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:181,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:182,1
    - Dst: datetime_date_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 189
    functionName: datetime_date
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 1
    functionsReached:
    - datetime_date_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_date_today_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: datetime_date_today
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_date_today_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_today(PyObject *type, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_date_fromtimestamp_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 7
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: datetime_date_fromtimestamp
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_date_fromtimestamp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromtimestamp(PyObject *type, PyObject *timestamp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:258,1
    - Dst: datetime_date_fromordinal_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 6
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: datetime_date_fromordinal
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - datetime_date_fromordinal_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromordinal(PyObject *type, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:285,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:286,1
    - Dst: datetime_date_fromisoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 294
    functionName: datetime_date_fromisoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - datetime_date_fromisoformat_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromisoformat(PyObject *type, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:324,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:326,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:326,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:326,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:347,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:352,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:353,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:356,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:357,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:360,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:361,1
    - Dst: datetime_date_fromisocalendar_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:364,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 311
    functionDepth: 6
    functionLinenumber: 311
    functionLinenumberEnd: 368
    functionName: datetime_date_fromisocalendar
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - datetime_date_fromisocalendar_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromisocalendar(PyObject *type, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:390,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:393,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:394,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:398,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:399,1
    - Dst: datetime_date_strptime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 407
    functionName: datetime_date_strptime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_CheckPositional
    - datetime_date_strptime_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_strptime(PyObject *type, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:436,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:438,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:457,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:462,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:463,1
    - Dst: datetime_date_strftime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 471
    functionName: datetime_date_strftime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - datetime_date_strftime_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_strftime(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:491,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:492,1
    - Dst: datetime_date___format___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 500
    functionName: datetime_date___format__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - datetime_date___format___impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date___format__(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:519,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:521,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:521,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:521,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:539,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:544,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:544,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:549,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:550,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:553,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:554,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:557,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:558,1
    - Dst: iso_calendar_date_new_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:561,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 565
    functionName: iso_calendar_date_new
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - iso_calendar_date_new_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iso_calendar_date_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:593,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:595,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:595,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:595,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:612,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:613,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:614,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:615,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:617,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:626,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:627,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:635,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:636,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:643,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:644,1
    - Dst: datetime_date_replace_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:648,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 580
    functionDepth: 6
    functionLinenumber: 580
    functionLinenumberEnd: 652
    functionName: datetime_date_replace
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - GET_DAY
    - datetime_date_replace_impl
    - GET_MONTH
    - PyVarObject_HEAD_INIT
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:676,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:678,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:678,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:696,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:697,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:701,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:701,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:706,1
    - Dst: DELTA_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:706,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:707,1
    - Dst: DELTA_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:707,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:714,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:715,1
    - Dst: timezone_new_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:720,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 724
    functionName: timezone_new
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyObject_TypeCheck
    - timezone_new_impl
    - _Py_ID
    - DELTA_TYPE
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:752,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:754,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:772,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:773,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:781,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:781,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:790,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:791,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:799,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:800,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:809,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:817,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:818,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:835,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:836,1
    - Dst: datetime_time_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:840,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 78
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 739
    functionDepth: 4
    functionLinenumber: 739
    functionLinenumberEnd: 844
    functionName: datetime_time
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - datetime_time_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:866,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:869,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:870,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:874,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:875,1
    - Dst: datetime_time_strptime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 883
    functionName: datetime_time_strptime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_CheckPositional
    - datetime_time_strptime_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_strptime(PyObject *type, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:917,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:919,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:936,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:939,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:947,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:948,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:952,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:956,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:957,1
    - Dst: datetime_time_isoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:961,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 904
    functionDepth: 5
    functionLinenumber: 904
    functionLinenumberEnd: 965
    functionName: datetime_time_isoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - datetime_time_isoformat_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_isoformat(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:994,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:996,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1015,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1020,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1021,1
    - Dst: datetime_time_strftime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1025,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 981
    functionDepth: 7
    functionLinenumber: 981
    functionLinenumberEnd: 1029
    functionName: datetime_time_strftime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - datetime_time_strftime_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_strftime(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1049,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1050,1
    - Dst: datetime_time___format___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1043
    functionDepth: 2
    functionLinenumber: 1043
    functionLinenumberEnd: 1058
    functionName: datetime_time___format__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - datetime_time___format___impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time___format__(PyObject *self, PyObject *arg)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1088,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1090,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1090,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1090,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1090,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1090,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1090,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1107,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1108,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1109,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1110,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1111,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1112,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1113,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1115,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1125,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1133,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1134,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1143,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1151,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1152,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1169,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1170,1
    - Dst: datetime_time_replace_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1174,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 78
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1075
    functionDepth: 4
    functionLinenumber: 1075
    functionLinenumberEnd: 1178
    functionName: datetime_time_replace
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - TIME_GET_MINUTE
    - TIME_GET_HOUR
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - HASTZINFO
    - _Py_ID
    - PyErr_Occurred
    - TIME_GET_FOLD
    - TIME_GET_SECOND
    - PyVarObject_HEAD_INIT
    - TIME_GET_MICROSECOND
    - datetime_time_replace_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1198,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1199,1
    - Dst: datetime_time_fromisoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1192
    functionDepth: 5
    functionLinenumber: 1192
    functionLinenumberEnd: 1207
    functionName: datetime_time_fromisoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - datetime_time_fromisoformat_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time_fromisoformat(PyObject *type, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1226,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1227,1
    - Dst: datetime_time___reduce_ex___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1220
    functionDepth: 3
    functionLinenumber: 1220
    functionLinenumberEnd: 1234
    functionName: datetime_time___reduce_ex__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - datetime_time___reduce_ex___impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time___reduce_ex__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_time___reduce___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1251
    functionName: datetime_time___reduce__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_time___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_time___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1281,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1283,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1301,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1302,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1313,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1313,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1319,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1322,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1323,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1326,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1327,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1334,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1335,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1343,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1344,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1352,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1353,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1361,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1362,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1379,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1380,1
    - Dst: datetime_datetime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1384,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 93
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1268
    functionDepth: 5
    functionLinenumber: 1268
    functionLinenumberEnd: 1388
    functionName: datetime_datetime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - datetime_datetime_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1420,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1422,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1439,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1442,1
    - Dst: datetime_datetime_now_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1407
    functionDepth: 6
    functionLinenumber: 1407
    functionLinenumberEnd: 1456
    functionName: datetime_datetime_now
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - datetime_datetime_now_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_now(PyObject *type, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_datetime_utcnow_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1470
    functionDepth: 6
    functionLinenumber: 1470
    functionLinenumberEnd: 1474
    functionName: datetime_datetime_utcnow
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime_utcnow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_utcnow(PyObject *type, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1505,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1507,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1507,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1524,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1528,1
    - Dst: datetime_datetime_fromtimestamp_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1492
    functionDepth: 6
    functionLinenumber: 1492
    functionLinenumberEnd: 1543
    functionName: datetime_datetime_fromtimestamp
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - datetime_datetime_fromtimestamp_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_fromtimestamp(PyObject *type, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_datetime_utcfromtimestamp_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1558
    functionDepth: 6
    functionLinenumber: 1558
    functionLinenumberEnd: 1566
    functionName: datetime_datetime_utcfromtimestamp
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime_utcfromtimestamp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_utcfromtimestamp(PyObject *type, PyObject *timestamp)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1588,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1591,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1592,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1596,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1597,1
    - Dst: datetime_datetime_strptime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1605
    functionName: datetime_datetime_strptime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - datetime_datetime_strptime_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_strptime(PyObject *type, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1633,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1635,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1635,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1635,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1652,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1657,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1662,1
    - Dst: DATE_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1662,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1663,1
    - Dst: DATE_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1663,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1667,1
    - Dst: TIME_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1667,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1668,1
    - Dst: TIME_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1668,1
    - Dst: datetime_datetime_combine_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1677,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1620
    functionDepth: 4
    functionLinenumber: 1620
    functionLinenumberEnd: 1681
    functionName: datetime_datetime_combine
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - _Py_ID
    - DATE_TYPE
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - TIME_TYPE
    - datetime_datetime_combine_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_combine(PyObject *type, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1701,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1702,1
    - Dst: datetime_datetime_fromisoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1695
    functionDepth: 6
    functionLinenumber: 1695
    functionLinenumberEnd: 1710
    functionName: datetime_datetime_fromisoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - datetime_datetime_fromisoformat_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_fromisoformat(PyObject *type, PyObject *arg)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1751,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1753,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1753,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1770,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1774,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1783,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1784,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1787,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1788,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1791,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1794,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1799,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1800,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1804,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1808,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1809,1
    - Dst: datetime_datetime_isoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1813,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1738
    functionDepth: 5
    functionLinenumber: 1738
    functionLinenumberEnd: 1817
    functionName: datetime_datetime_isoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - datetime_datetime_isoformat_impl
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_isoformat(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1849,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1851,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1868,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1869,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1870,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1871,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1872,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1873,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1874,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1875,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1876,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1877,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1879,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1888,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1889,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1897,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1898,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1906,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1907,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1915,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1916,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1924,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1925,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1933,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1934,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1942,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1943,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1960,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1961,1
    - Dst: datetime_datetime_replace_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1965,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 111
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1836
    functionDepth: 4
    functionLinenumber: 1836
    functionLinenumberEnd: 1969
    functionName: datetime_datetime_replace
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - DATE_GET_HOUR
    - DATE_GET_MICROSECOND
    - DATE_GET_FOLD
    - _PyArg_UnpackKeywords
    - HASTZINFO
    - _Py_ID
    - PyLong_AsInt
    - PyErr_Occurred
    - datetime_datetime_replace_impl
    - GET_DAY
    - GET_MONTH
    - PyVarObject_HEAD_INIT
    - GET_YEAR
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1997,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1999,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2016,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2019,1
    - Dst: datetime_datetime_astimezone_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2029,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 1984
    functionDepth: 11
    functionLinenumber: 1984
    functionLinenumberEnd: 2033
    functionName: datetime_datetime_astimezone
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime_astimezone_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_astimezone(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2052,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2053,1
    - Dst: datetime_datetime___reduce_ex___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2046
    functionDepth: 3
    functionLinenumber: 2046
    functionLinenumberEnd: 2060
    functionName: datetime_datetime___reduce_ex__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - datetime_datetime___reduce_ex___impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime___reduce_ex__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_datetime___reduce___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2073
    functionDepth: 3
    functionLinenumber: 2073
    functionLinenumberEnd: 2077
    functionName: datetime_datetime___reduce__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _weakref_getweakrefcount_impl
      Src: /src/cpython/Modules/clinic/_weakref.c.h:25,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_weakref.c.h:26,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_weakref.c.h:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: _weakref_getweakrefcount
    functionSourceFile: /src/cpython/Modules/clinic/_weakref.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _weakref_getweakrefcount_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _weakref_getweakrefcount(PyObject *module, PyObject *object)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_weakref.c.h:55,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_weakref.c.h:58,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_weakref.c.h:59,1
    - Dst: _weakref__remove_dead_weakref_impl
      Src: /src/cpython/Modules/clinic/_weakref.c.h:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: _weakref__remove_dead_weakref
    functionSourceFile: /src/cpython/Modules/clinic/_weakref.c.h
    functionUses: 0
    functionsReached:
    - _weakref__remove_dead_weakref_impl
    - PyDict_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _weakref__remove_dead_weakref(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_weakref.c.h:101,1
    - Dst: _weakref_proxy_impl
      Src: /src/cpython/Modules/clinic/_weakref.c.h:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: _weakref_proxy
    functionSourceFile: /src/cpython/Modules/clinic/_weakref.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _weakref_proxy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _weakref_proxy(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_empty_function_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: test_empty_function
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - test_empty_function_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_empty_function(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:49,1
    - Dst: objects_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 62
    functionName: objects_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - objects_converter_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      objects_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:81,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:82,1
    - Dst: bytes_object_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: bytes_object_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - _PyArg_BadArgument
    - bytes_object_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_object_converter(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:109,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:110,1
    - Dst: byte_array_object_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: byte_array_object_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyByteArray_Check
    - byte_array_object_converter_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      byte_array_object_converter(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:137,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:138,1
    - Dst: unicode_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: unicode_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - unicode_converter_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_converter(PyObject *module, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:167,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:173,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:180,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:187,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:188,1
    - Dst: bool_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:192,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 196
    functionName: bool_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - bool_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:218,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:224,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:231,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:238,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:245,1
    - Dst: bool_converter_c_default_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:250,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 254
    functionName: bool_converter_c_default
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    - bool_converter_c_default_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_converter_c_default(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:290,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:296,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:297,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:298,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:301,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:304,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:306,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:307,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:308,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:311,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:314,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:317,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:323,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:324,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:325,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:328,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:331,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:333,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:334,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:335,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:338,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:341,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:344,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:350,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:351,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:352,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:355,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:358,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:360,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:361,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:362,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:365,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:368,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:371,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:377,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:378,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:379,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:382,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:385,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:387,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:388,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:389,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:392,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:395,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:398,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:404,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:405,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:406,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:409,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:412,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:414,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:415,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:416,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:419,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:422,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:425,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:431,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:432,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:433,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:436,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:439,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:441,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:442,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:443,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:446,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:449,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:452,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:458,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:459,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:460,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:463,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:466,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:468,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:469,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:470,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:473,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:476,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:479,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:485,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:486,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:487,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:490,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:493,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:495,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:496,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:497,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:500,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:503,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:506,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:512,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:513,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:514,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:517,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:520,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:522,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:523,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:524,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:527,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:530,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:533,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:539,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:540,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:541,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:544,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:547,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:549,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:550,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:551,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:554,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:557,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:560,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:566,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:567,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:568,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:571,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:574,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:576,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:577,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:578,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:581,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:584,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:587,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:593,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:594,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:595,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:598,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:601,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:603,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:604,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:605,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:608,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:611,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:614,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:620,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:621,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:622,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:625,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:628,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:630,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:631,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:632,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:635,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:638,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:641,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:647,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:648,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:649,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:652,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:655,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:657,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:658,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:659,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:662,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:665,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:668,1
    - Dst: char_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:672,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 347
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 676
    functionName: char_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - _PyArg_CheckPositional
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyErr_Format
    - PyByteArray_Check
    - char_converter_impl
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      char_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:698,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:705,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:710,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:715,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:727,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:728,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:732,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:737,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:749,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:757,1
    - Dst: unsigned_char_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:765,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 769
    functionName: unsigned_char_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsNativeBytes
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - unsigned_char_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unsigned_char_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:788,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:795,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:796,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:800,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:805,1
    - Dst: short_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:814,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 818
    functionName: short_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - short_converter_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      short_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:840,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:846,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:852,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:859,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:867,1
    - Dst: unsigned_short_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:875,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 879
    functionName: unsigned_short_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_UnsignedShort_Converter
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - unsigned_short_converter_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unsigned_short_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:900,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:906,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:907,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:914,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:920,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:921,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:924,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:925,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:928,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:931,1
    - Dst: int_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:933,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 937
    functionName: int_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - int_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:959,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:965,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:971,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:978,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:986,1
    - Dst: unsigned_int_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:994,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 951
    functionDepth: 2
    functionLinenumber: 951
    functionLinenumberEnd: 998
    functionName: unsigned_int_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_UnsignedInt_Converter
    - unsigned_int_converter_impl
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unsigned_int_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1017,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1023,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1024,1
    - Dst: long_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1028,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1032
    functionName: long_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - long_converter_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1054,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1060,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1066,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1072,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1073,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1077,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1085,1
    - Dst: unsigned_long_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1093,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1097
    functionName: unsigned_long_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - unsigned_long_converter_impl
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unsigned_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1116,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1123,1
    - Dst: long_long_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1131
    functionName: long_long_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - long_long_converter_impl
    - _PyArg_CheckPositional
    - PyLong_AsLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1153,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1159,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1165,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1171,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1172,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1176,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1184,1
    - Dst: unsigned_long_long_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1192,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1145
    functionDepth: 2
    functionLinenumber: 1145
    functionLinenumberEnd: 1196
    functionName: unsigned_long_long_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_UnsignedLongLong_Converter
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - unsigned_long_long_converter_impl
    - PyIndex_Check
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unsigned_long_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1218,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1226,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1229,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1231,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1241,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1244,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1246,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1254,1
    - Dst: py_ssize_t_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1258,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1262
    functionName: py_ssize_t_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    - py_ssize_t_converter_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_ssize_t_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1284,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1290,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1296,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1302,1
    - Dst: slice_index_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1306,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1310
    functionName: slice_index_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyEval_SliceIndexNotNone
    - slice_index_converter_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_index_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1329,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1335,1
    - Dst: size_t_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1343
    functionName: size_t_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - size_t_converter_impl
    - _PyArg_CheckPositional
    - _PyLong_Size_t_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      size_t_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1362,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1368,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1369,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1373,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1374,1
    - Dst: float_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1379,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1383
    functionName: float_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - float_converter_impl
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1402,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1408,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1409,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1413,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1414,1
    - Dst: double_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1419,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1396
    functionDepth: 2
    functionLinenumber: 1396
    functionLinenumberEnd: 1423
    functionName: double_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - double_converter_impl
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1442,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1443,1
    - Dst: py_complex_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1436
    functionDepth: 2
    functionLinenumber: 1436
    functionLinenumberEnd: 1450
    functionName: py_complex_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - py_complex_converter_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_complex_converter(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1473,1
    - Dst: str_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1464
    functionDepth: 2
    functionLinenumber: 1464
    functionLinenumberEnd: 1481
    functionName: str_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - str_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      str_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1504,1
    - Dst: str_converter_encoding_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1508,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1510,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1512,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1518
    functionName: str_converter_encoding
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - str_converter_encoding_impl
    - PyMem_FREE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      str_converter_encoding(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1538,1
    - Dst: py_buffer_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1542,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1547,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1555
    functionName: py_buffer_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - py_buffer_converter_impl
    - _PyArg_ParseStack
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_buffer_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1581,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1583,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1583,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1603,1
    - Dst: keywords_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1568
    functionDepth: 3
    functionLinenumber: 1568
    functionLinenumberEnd: 1614
    functionName: keywords
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 2
    functionsReached:
    - keywords_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1640,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1642,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1642,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1662,1
    - Dst: keywords_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1627
    functionDepth: 3
    functionLinenumber: 1627
    functionLinenumberEnd: 1673
    functionName: keywords_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - keywords_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1699,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1701,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1701,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1701,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1718,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1723,1
    - Dst: keywords_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1740,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: 1744
      start: 1686
    functionDepth: 3
    functionLinenumber: 1686
    functionLinenumberEnd: 1744
    functionName: keywords_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - keywords_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1771,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1773,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1773,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1773,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1773,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1790,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1796,1
    - Dst: keywords_opt_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1823,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: 1827
      start: 1758
    functionDepth: 3
    functionLinenumber: 1758
    functionLinenumberEnd: 1827
    functionName: keywords_opt_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - keywords_opt_kwonly_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1854,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1856,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1856,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1856,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1873,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1878,1
    - Dst: keywords_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1895,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: 1899
      start: 1841
    functionDepth: 3
    functionLinenumber: 1841
    functionLinenumberEnd: 1899
    functionName: keywords_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - keywords_kwonly_opt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1925,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1927,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1947,1
    - Dst: posonly_keywords_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1912
    functionDepth: 3
    functionLinenumber: 1912
    functionLinenumberEnd: 1958
    functionName: posonly_keywords
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_keywords_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1984,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1986,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2006,1
    - Dst: posonly_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1971
    functionDepth: 3
    functionLinenumber: 1971
    functionLinenumberEnd: 2017
    functionName: posonly_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2044,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2046,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2046,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2067,1
    - Dst: posonly_keywords_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2031
    functionDepth: 3
    functionLinenumber: 2031
    functionLinenumberEnd: 2079
    functionName: posonly_keywords_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_keywords_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2106,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2108,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2108,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2108,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2125,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2131,1
    - Dst: posonly_keywords_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2093
    functionDepth: 3
    functionLinenumber: 2093
    functionLinenumberEnd: 2153
    functionName: posonly_keywords_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - posonly_keywords_opt_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2180,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2182,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2182,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2199,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2205,1
    - Dst: posonly_opt_keywords_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2167
    functionDepth: 3
    functionLinenumber: 2167
    functionLinenumberEnd: 2232
    functionName: posonly_opt_keywords_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - posonly_opt_keywords_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2259,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2261,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2261,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2261,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2278,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2284,1
    - Dst: posonly_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2302,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2246
    functionDepth: 3
    functionLinenumber: 2246
    functionLinenumberEnd: 2306
    functionName: posonly_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - posonly_kwonly_opt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2333,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2335,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2335,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2352,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2358,1
    - Dst: posonly_opt_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2381,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2320
    functionDepth: 3
    functionLinenumber: 2320
    functionLinenumberEnd: 2385
    functionName: posonly_opt_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - posonly_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2412,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2414,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2414,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2414,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2414,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2431,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2438,1
    - Dst: posonly_keywords_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2399
    functionDepth: 3
    functionLinenumber: 2399
    functionLinenumberEnd: 2461
    functionName: posonly_keywords_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - posonly_keywords_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2490,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2492,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2492,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2492,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2492,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2509,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2516,1
    - Dst: posonly_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2544,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 2548
    functionName: posonly_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - posonly_keywords_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2577,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2579,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2579,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2596,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2602,1
    - Dst: posonly_opt_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2629,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2564
    functionDepth: 3
    functionLinenumber: 2564
    functionLinenumberEnd: 2633
    functionName: posonly_opt_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - posonly_opt_keywords_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2659,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2661,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2680,1
    - Dst: keyword_only_parameter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2646
    functionDepth: 3
    functionLinenumber: 2646
    functionLinenumberEnd: 2690
    functionName: keyword_only_parameter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - keyword_only_parameter_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keyword_only_parameter(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2709,1
    - Dst: varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2713,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2703
    functionDepth: 1
    functionLinenumber: 2703
    functionLinenumberEnd: 2720
    functionName: varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 6
    functionsReached:
    - Py_XDECREF
    - varpos_impl
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2742,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2747,1
    - Dst: posonly_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2751,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2734
    functionDepth: 3
    functionLinenumber: 2734
    functionLinenumberEnd: 2758
    functionName: posonly_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - posonly_varpos_impl
    - _PyArg_CheckPositional
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2780,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2790,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2791,1
    - Dst: posonly_req_opt_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2795,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2772
    functionDepth: 3
    functionLinenumber: 2772
    functionLinenumberEnd: 2802
    functionName: posonly_req_opt_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - _PyTuple_FromArray
    - posonly_req_opt_varpos_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_req_opt_varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2829,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2831,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2853,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2861,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2862,1
    - Dst: posonly_poskw_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2866,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2816
    functionDepth: 3
    functionLinenumber: 2816
    functionLinenumberEnd: 2873
    functionName: posonly_poskw_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - _PyTuple_FromArray
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - posonly_poskw_varpos_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_poskw_varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2899,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2901,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2922,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2929,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2930,1
    - Dst: poskw_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2934,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2938,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2886
    functionDepth: 3
    functionLinenumber: 2886
    functionLinenumberEnd: 2941
    functionName: poskw_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - _PyTuple_FromArray
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - poskw_varpos_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      poskw_varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2968,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2970,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2970,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2988,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2988,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2993,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3002,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3008,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3009,1
    - Dst: poskw_varpos_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3013,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3017,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 2955
    functionDepth: 3
    functionLinenumber: 2955
    functionLinenumberEnd: 3020
    functionName: poskw_varpos_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - PyObject_IsTrue
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - poskw_varpos_kwonly_opt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      poskw_varpos_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3047,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3049,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3049,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3049,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3067,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3067,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3073,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3091,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3092,1
    - Dst: poskw_varpos_kwonly_opt2_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3096,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3100,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: 3103
      start: 3034
    functionDepth: 3
    functionLinenumber: 3034
    functionLinenumberEnd: 3103
    functionName: poskw_varpos_kwonly_opt2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _PyTuple_FromArray
    - poskw_varpos_kwonly_opt2_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      poskw_varpos_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3129,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3131,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3149,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3153,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3163,1
    - Dst: varpos_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3167,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3116
    functionDepth: 3
    functionLinenumber: 3116
    functionLinenumberEnd: 3174
    functionName: varpos_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - varpos_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      varpos_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3201,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3203,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3203,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3203,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3221,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3227,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3244,1
    - Dst: varpos_kwonly_req_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3248,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3252,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: 3255
      start: 3188
    functionDepth: 3
    functionLinenumber: 3188
    functionLinenumberEnd: 3255
    functionName: varpos_kwonly_req_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - varpos_kwonly_req_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      varpos_kwonly_req_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: varpos_array_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3281
      start: 3269
    functionDepth: 2
    functionLinenumber: 3269
    functionLinenumberEnd: 3281
    functionName: varpos_array
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - varpos_array_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      varpos_array(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3304,1
    - Dst: posonly_varpos_array_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3295
    functionDepth: 4
    functionLinenumber: 3295
    functionLinenumberEnd: 3315
    functionName: posonly_varpos_array
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_varpos_array_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_varpos_array(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3339,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3349,1
    - Dst: posonly_req_opt_varpos_array_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3330
    functionDepth: 4
    functionLinenumber: 3330
    functionLinenumberEnd: 3354
    functionName: posonly_req_opt_varpos_array
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_req_opt_varpos_array_impl
    - Py_MAX
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_req_opt_varpos_array(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3382,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3384,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3407,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3415,1
    - Dst: posonly_poskw_varpos_array_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3420
      start: 3369
    functionDepth: 4
    functionLinenumber: 3369
    functionLinenumberEnd: 3420
    functionName: posonly_poskw_varpos_array
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_MAX
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - posonly_poskw_varpos_array_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posonly_poskw_varpos_array(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3448,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3450,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3450,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3450,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3450,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3468,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3468,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3475,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3494,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3495,1
    - Dst: gh_32092_oob_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3499,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3503,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: 3506
      start: 3435
    functionDepth: 1
    functionLinenumber: 3435
    functionLinenumberEnd: 3506
    functionName: gh_32092_oob
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - gh_32092_oob_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_32092_oob(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3534,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3536,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3536,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3554,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3554,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3559,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3571,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3572,1
    - Dst: gh_32092_kw_pass_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3576,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3580,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3583
      start: 3521
    functionDepth: 1
    functionLinenumber: 3521
    functionLinenumberEnd: 3583
    functionName: gh_32092_kw_pass
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - gh_32092_kw_pass_impl
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_32092_kw_pass(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3603,1
    - Dst: gh_99233_refcount_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3607,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3597
    functionDepth: 1
    functionLinenumber: 3597
    functionLinenumberEnd: 3614
    functionName: gh_99233_refcount
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - gh_99233_refcount_impl
    - Py_XDECREF
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_99233_refcount(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3635,1
    - Dst: gh_99240_double_free_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3639,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3641,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3647
      start: 3628
    functionDepth: 1
    functionLinenumber: 3628
    functionLinenumberEnd: 3647
    functionName: gh_99240_double_free
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - gh_99240_double_free_impl
    - PyMem_FREE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_99240_double_free(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3676,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3678,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3678,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3696,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3696,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3701,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3710,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3716,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3717,1
    - Dst: null_or_tuple_for_varargs_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3721,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3725,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3663
    functionDepth: 3
    functionLinenumber: 3663
    functionLinenumberEnd: 3728
    functionName: null_or_tuple_for_varargs
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - PyObject_IsTrue
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - null_or_tuple_for_varargs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_or_tuple_for_varargs(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3756,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3775,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3780,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3781,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3785,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3789,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3790,1
    - Dst: clone_f1_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3793,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: 3797
      start: 3741
    functionDepth: 1
    functionLinenumber: 3741
    functionLinenumberEnd: 3797
    functionName: clone_f1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - clone_f1_impl
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_f1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3823,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3825,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3844,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3849,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3850,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3854,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3858,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3859,1
    - Dst: clone_f2_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3862,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: 3866
      start: 3810
    functionDepth: 1
    functionLinenumber: 3810
    functionLinenumberEnd: 3866
    functionName: clone_f2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - clone_f2_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_f2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3892,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3894,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3911,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3916,1
    - Dst: custom_converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3924,1
    - Dst: clone_with_conv_f1_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3928,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: 3932
      start: 3879
    functionDepth: 2
    functionLinenumber: 3879
    functionLinenumberEnd: 3932
    functionName: clone_with_conv_f1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - clone_with_conv_f1_impl
    - custom_converter
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_with_conv_f1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3958,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3960,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3977,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3982,1
    - Dst: custom_converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3990,1
    - Dst: clone_with_conv_f2_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3994,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: 3998
      start: 3945
    functionDepth: 2
    functionLinenumber: 3945
    functionLinenumberEnd: 3998
    functionName: clone_with_conv_f2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - custom_converter
    - PyVarObject_HEAD_INIT
    - clone_with_conv_f2_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_with_conv_f2(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4015,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4016,1
    - Dst: _testclinic_TestClass_get_defining_class_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 4012
    functionDepth: 1
    functionLinenumber: 4012
    functionLinenumberEnd: 4020
    functionName: _testclinic_TestClass_get_defining_class
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _testclinic_TestClass_get_defining_class_impl
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_get_defining_class(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4048,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4050,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4069,1
    - Dst: _testclinic_TestClass_get_defining_class_arg_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4035
    functionDepth: 2
    functionLinenumber: 4035
    functionLinenumberEnd: 4079
    functionName: _testclinic_TestClass_get_defining_class_arg
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _testclinic_TestClass_get_defining_class_arg_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_get_defining_class_arg(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4114,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4119,1
    - Dst: _testclinic_TestClass_defclass_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4123,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4130
      start: 4093
    functionDepth: 2
    functionLinenumber: 4093
    functionLinenumberEnd: 4130
    functionName: _testclinic_TestClass_defclass_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _testclinic_TestClass_defclass_varpos_impl
    - Py_XDECREF
    - _PyTuple_FromArray
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_defclass_varpos(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4169,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4176,1
    - Dst: _testclinic_TestClass_defclass_posonly_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4180,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4187
      start: 4146
    functionDepth: 3
    functionLinenumber: 4146
    functionLinenumberEnd: 4187
    functionName: _testclinic_TestClass_defclass_posonly_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _testclinic_TestClass_defclass_posonly_varpos_impl
    - _PyTuple_FromArray
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_defclass_posonly_varpos(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4207,1
    - Dst: _testclinic_TestClass_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4208,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4214
      start: 4201
    functionDepth: 1
    functionLinenumber: 4201
    functionLinenumberEnd: 4214
    functionName: _testclinic_TestClass_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_XDECREF
    - _testclinic_TestClass_varpos_no_fastcall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_varpos_no_fastcall(PyObject *type, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4238,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4238,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4241,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4242,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4243,1
    - Dst: _testclinic_TestClass_posonly_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4247,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4254
      start: 4230
    functionDepth: 3
    functionLinenumber: 4230
    functionLinenumberEnd: 4254
    functionName: _testclinic_TestClass_posonly_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _testclinic_TestClass_posonly_varpos_no_fastcall_impl
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_posonly_varpos_no_fastcall(PyObject *type, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4278,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4278,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4281,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4282,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4285,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4287,1
    - Dst: _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4291,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4270
    functionDepth: 3
    functionLinenumber: 4270
    functionLinenumberEnd: 4298
    functionName: _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall(PyObject *type, PyObject
      *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4327,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4329,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4347,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4352,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4352,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4359,1
    - Dst: _testclinic_TestClass_posonly_poskw_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4363,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4314
    functionDepth: 3
    functionLinenumber: 4314
    functionLinenumberEnd: 4370
    functionName: _testclinic_TestClass_posonly_poskw_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _testclinic_TestClass_posonly_poskw_varpos_no_fastcall_impl
    - PyVarObject_HEAD_INIT
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_posonly_poskw_varpos_no_fastcall(PyObject *type, PyObject
      *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4392,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4393,1
    - Dst: _testclinic_TestClass_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4385
    functionDepth: 2
    functionLinenumber: 4385
    functionLinenumberEnd: 4397
    functionName: _testclinic_TestClass_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _testclinic_TestClass_varpos_array_no_fastcall_impl
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_varpos_array_no_fastcall(PyObject *type, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4423,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4423,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4426,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4427,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4428,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4429,1
    - Dst: _testclinic_TestClass_posonly_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4414
    functionDepth: 4
    functionLinenumber: 4414
    functionLinenumberEnd: 4434
    functionName: _testclinic_TestClass_posonly_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - _testclinic_TestClass_posonly_varpos_array_no_fastcall_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_posonly_varpos_array_no_fastcall(PyObject *type, PyObject
      *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4460,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4460,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4463,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4464,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4467,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4469,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4469,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4469,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4470,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4470,1
    - Dst: _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4475
      start: 4451
    functionDepth: 4
    functionLinenumber: 4451
    functionLinenumberEnd: 4475
    functionName: _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall(PyObject *type,
      PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4505,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4507,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4525,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4531,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4531,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4538,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4538,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4538,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4539,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4539,1
    - Dst: _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4544
      start: 4492
    functionDepth: 4
    functionLinenumber: 4492
    functionLinenumberEnd: 4544
    functionName: _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _PyTuple_ITEMS
    - Py_MAX
    - PyVarObject_HEAD_INIT
    - _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall(PyObject *type,
      PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_abc.c.h:70,1
    - Dst: _abc__abc_register_impl
      Src: /src/cpython/Modules/clinic/_abc.c.h:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: _abc__abc_register
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_abc.c.h:101,1
    - Dst: _abc__abc_instancecheck_impl
      Src: /src/cpython/Modules/clinic/_abc.c.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: _abc__abc_instancecheck
    functionSourceFile: /src/cpython/Modules/clinic/_abc.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _abc__abc_instancecheck_impl
    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/cpython/Modules/clinic/_abc.c.h:132,1
    - Dst: _abc__abc_subclasscheck_impl
      Src: /src/cpython/Modules/clinic/_abc.c.h:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: _abc__abc_subclasscheck
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_abc.c.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: _abc_get_cache_token
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:30,1
    - Dst: deque_pop_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:31,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: deque_pop
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_pop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_pop(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:54,1
    - Dst: deque_popleft_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:55,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: deque_popleft
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_popleft_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_popleft(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:78,1
    - Dst: deque_append_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:79,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: deque_append
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_append_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_append(PyObject *deque, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:102,1
    - Dst: deque_appendleft_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:103,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: deque_appendleft
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_appendleft_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_appendleft(PyObject *deque, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:126,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:127,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: deque_extend
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_extend_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_extend(PyObject *deque, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:150,1
    - Dst: deque_extendleft_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:151,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: deque_extendleft
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_extendleft_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_extendleft(PyObject *deque, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:174,1
    - Dst: deque_copy_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:175,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: deque_copy
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_copy(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:198,1
    - Dst: deque___copy___impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:199,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: deque___copy__
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___copy__(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:222,1
    - Dst: deque_clearmethod_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:223,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 227
    functionName: deque_clearmethod
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_clearmethod_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_clearmethod(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:247,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:255,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:258,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:260,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:266,1
    - Dst: deque_rotate_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:267,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - deque
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 272
    functionName: deque_rotate
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - deque_rotate_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_rotate(PyObject *deque, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:291,1
    - Dst: deque_reverse_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:292,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: deque_reverse
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_reverse_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reverse(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:315,1
    - Dst: deque_count_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:316,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: deque_count
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_count_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_count(PyObject *deque, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:343,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:345,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:352,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:358,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:362,1
    - Dst: deque_index_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:363,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:364,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - deque
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: deque_index
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_index_impl
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - _PyArg_CheckPositional
    - _PyEval_SliceIndexNotNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_index(PyObject *deque, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:389,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:394,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:397,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:399,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:405,1
    - Dst: deque_insert_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:406,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - deque
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 382
    functionDepth: 6
    functionLinenumber: 382
    functionLinenumberEnd: 411
    functionName: deque_insert
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - deque_insert_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_insert(PyObject *deque, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:430,1
    - Dst: deque_remove_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:431,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 435
    functionName: deque_remove
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - deque_remove_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_remove(PyObject *deque, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque___reduce___impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: deque___reduce__
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - deque___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___reduce__(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:477,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:479,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:479,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:497,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:498,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:502,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:502,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:518,1
    - Dst: deque_init_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:519,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - deque
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 464
    functionDepth: 6
    functionLinenumber: 464
    functionLinenumberEnd: 524
    functionName: deque_init
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - deque_init_impl
    - Py_END_CRITICAL_SECTION
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int deque_init(PyObject *deque, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:543,1
    - Dst: deque___sizeof___impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:544,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 548
    functionName: deque___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque___sizeof___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___sizeof__(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque___reversed___impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 566
    functionName: deque___reversed__
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - deque___reversed___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___reversed__(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:588,1
    - Dst: _collections__count_elements_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 597
    functionName: _collections__count_elements
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - _collections__count_elements_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _collections__count_elements(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:606,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:611,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:614,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:614,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:619,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:619,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:622,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:624,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:629,1
    - Dst: tuplegetter_new_impl
      Src: /src/cpython/Modules/clinic/_collectionsmodule.c.h:630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 634
    functionName: tuplegetter_new
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - tuplegetter_new_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _socket_socket_close_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: _socket_socket_close
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_socket_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_socket_close(PyObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:54,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:57,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:63,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:64,1
    - Dst: _socket_socket_send_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:68,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:73,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - s
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 77
    functionName: _socket_socket_send
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_socket_send_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_socket_send(PyObject *s, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:103,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:106,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:112,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:113,1
    - Dst: _socket_socket_sendall_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:117,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - s
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: _socket_socket_sendall
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_socket_sendall_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_socket_sendall(PyObject *s, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:168,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:179,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:180,1
    - Dst: _socket_socket_sendmsg_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - s
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 192
    functionName: _socket_socket_sendmsg
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _socket_socket_sendmsg_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_socket_sendmsg(PyObject *s, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:213,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:215,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:215,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:215,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:215,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:233,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:234,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:240,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:240,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:249,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:250,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:258,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:259,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:267,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:268,1
    - Dst: sock_initobj_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:277,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 281
    functionName: sock_initobj
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - sock_initobj_impl
    linkageType: ''
    returnType: int
    signature: int sock_initobj(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UInt16_Converter
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:301,1
    - Dst: _socket_ntohs_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 308
    functionName: _socket_ntohs
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_UInt16_Converter
    - _socket_ntohs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_ntohs(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UInt32_Converter
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:328,1
    - Dst: _socket_ntohl_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: _socket_ntohl
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_ntohl_impl
    - _PyLong_UInt32_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_ntohl(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UInt16_Converter
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:355,1
    - Dst: _socket_htons_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: _socket_htons
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_UInt16_Converter
    - _socket_htons_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_htons(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UInt32_Converter
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:382,1
    - Dst: _socket_htonl_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 389
    functionName: _socket_htonl
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_htonl_impl
    - _PyLong_UInt32_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_htonl(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:409,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:410,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:414,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:418,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:419,1
    - Dst: _socket_inet_aton_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 426
    functionName: _socket_inet_aton
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _socket_inet_aton_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_inet_aton(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:448,1
    - Dst: _socket_inet_ntoa_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:451,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 460
    functionName: _socket_inet_ntoa
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _socket_inet_ntoa_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_inet_ntoa(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:484,1
    - Dst: _socket_if_nametoindex_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 491
    functionName: _socket_if_nametoindex
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_if_nametoindex_impl
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_if_nametoindex(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_NetIfindex_Converter
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:515,1
    - Dst: _socket_if_indextoname_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 522
    functionName: _socket_if_indextoname
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_if_indextoname_impl
    - _PyLong_NetIfindex_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_if_indextoname(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:27,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:30,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:31,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:34,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:35,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:38,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:39,1
    - Dst: _statistics__normal_dist_inv_cdf_impl
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:42,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:43,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/_statisticsmodule.c.h:46,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 50
    functionName: _statistics__normal_dist_inv_cdf
    functionSourceFile: /src/cpython/Modules/clinic/_statisticsmodule.c.h
    functionUses: 0
    functionsReached:
    - _statistics__normal_dist_inv_cdf_impl
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_Format
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _statistics__normal_dist_inv_cdf(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: simplequeue_get_state_by_type
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:25,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:28,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:32,1
    - Dst: simplequeue_new_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:35,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: simplequeue_new
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - simplequeue_new_impl
    - _PyArg_NoKeywords
    - simplequeue_get_state_by_type
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simplequeue_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:70,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:72,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:72,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:72,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:89,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:94,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:104,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:114,1
    - Dst: _queue_SimpleQueue_put_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:115,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: _queue_SimpleQueue_put
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _queue_SimpleQueue_put_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_put(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:150,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:152,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:171,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:177,1
    - Dst: _queue_SimpleQueue_put_nowait_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:178,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 183
    functionName: _queue_SimpleQueue_put_nowait
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _queue_SimpleQueue_put_nowait_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_put_nowait(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:219,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:221,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:221,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:238,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:242,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:251,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:261,1
    - Dst: _queue_SimpleQueue_get_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:262,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:263,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 267
    functionName: _queue_SimpleQueue_get
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _queue_SimpleQueue_get_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_get(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:290,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:291,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:294,1
    - Dst: _queue_SimpleQueue_get_nowait_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:295,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: _queue_SimpleQueue_get_nowait
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _queue_SimpleQueue_get_nowait_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_get_nowait(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:320,1
    - Dst: _queue_SimpleQueue_empty_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:321,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:322,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:323,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 330
    functionName: _queue_SimpleQueue_empty
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _queue_SimpleQueue_empty_impl
    - Py_END_CRITICAL_SECTION
    - PyErr_Occurred
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_empty(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:350,1
    - Dst: _queue_SimpleQueue_qsize_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:351,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:352,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:353,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 360
    functionName: _queue_SimpleQueue_qsize
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _queue_SimpleQueue_qsize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_qsize(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:45,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:47,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:65,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:66,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:69,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:69,1
    - Dst: _asyncio_Future___init___impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 83
    functionName: _asyncio_Future___init__
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _asyncio_Future___init___impl
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:106,1
    - Dst: _asyncio_Future_result_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:107,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: _asyncio_Future_result
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future_result_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_result(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:135,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:136,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:139,1
    - Dst: _asyncio_Future_exception_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:140,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: _asyncio_Future_exception
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _asyncio_Future_exception_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_exception(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:183,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:189,1
    - Dst: _asyncio_Future_set_result_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:190,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 195
    functionName: _asyncio_Future_set_result
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _asyncio_Future_set_result_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_set_result(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:233,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:239,1
    - Dst: _asyncio_Future_set_exception_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:240,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 245
    functionName: _asyncio_Future_set_exception
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _asyncio_Future_set_exception_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_set_exception(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:277,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:279,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:296,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:300,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:311,1
    - Dst: _asyncio_Future_add_done_callback_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:312,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 317
    functionName: _asyncio_Future_add_done_callback
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _asyncio_Future_add_done_callback_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_add_done_callback(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:354,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:360,1
    - Dst: _asyncio_Future_remove_done_callback_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:361,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 366
    functionName: _asyncio_Future_remove_done_callback
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future_remove_done_callback_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_remove_done_callback(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:398,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:400,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:417,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:420,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:430,1
    - Dst: _asyncio_Future_cancel_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:431,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 436
    functionName: _asyncio_Future_cancel
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future_cancel_impl
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_cancel(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:455,1
    - Dst: _asyncio_Future_cancelled_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:456,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 460
    functionName: _asyncio_Future_cancelled
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future_cancelled_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_cancelled(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:482,1
    - Dst: _asyncio_Future_done_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:483,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 487
    functionName: _asyncio_Future_done
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future_done_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_done(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:506,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:507,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:510,1
    - Dst: _asyncio_Future_get_loop_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:511,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 516
    functionName: _asyncio_Future_get_loop
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _asyncio_Future_get_loop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_get_loop(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:536,1
    - Dst: _asyncio_Future__asyncio_awaited_by_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:537,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: _asyncio_Future__asyncio_awaited_by_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__asyncio_awaited_by_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__asyncio_awaited_by_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:561,1
    - Dst: _asyncio_Future__asyncio_future_blocking_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:562,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 566
    functionName: _asyncio_Future__asyncio_future_blocking_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__asyncio_future_blocking_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__asyncio_future_blocking_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:587,1
    - Dst: _asyncio_Future__asyncio_future_blocking_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:588,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: _asyncio_Future__asyncio_future_blocking_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__asyncio_future_blocking_set_impl
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future__asyncio_future_blocking_set(PyObject *self, PyObject
      *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:612,1
    - Dst: _asyncio_Future__log_traceback_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:613,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 617
    functionName: _asyncio_Future__log_traceback_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__log_traceback_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__log_traceback_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:637,1
    - Dst: _asyncio_Future__log_traceback_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:638,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: _asyncio_Future__log_traceback_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__log_traceback_set_impl
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future__log_traceback_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:662,1
    - Dst: _asyncio_Future__loop_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:663,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 667
    functionName: _asyncio_Future__loop_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__loop_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__loop_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:687,1
    - Dst: _asyncio_Future__callbacks_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:688,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 692
    functionName: _asyncio_Future__callbacks_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__callbacks_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__callbacks_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:712,1
    - Dst: _asyncio_Future__result_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:713,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 717
    functionName: _asyncio_Future__result_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__result_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__result_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:737,1
    - Dst: _asyncio_Future__exception_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:738,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 732
    functionDepth: 4
    functionLinenumber: 732
    functionLinenumberEnd: 742
    functionName: _asyncio_Future__exception_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__exception_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__exception_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:762,1
    - Dst: _asyncio_Future__source_traceback_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:763,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 767
    functionName: _asyncio_Future__source_traceback_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__source_traceback_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__source_traceback_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:787,1
    - Dst: _asyncio_Future__cancel_message_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:788,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 792
    functionName: _asyncio_Future__cancel_message_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__cancel_message_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__cancel_message_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:812,1
    - Dst: _asyncio_Future__cancel_message_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:813,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 817
    functionName: _asyncio_Future__cancel_message_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__cancel_message_set_impl
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future__cancel_message_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:837,1
    - Dst: _asyncio_Future__state_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:838,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 832
    functionDepth: 4
    functionLinenumber: 832
    functionLinenumberEnd: 842
    functionName: _asyncio_Future__state_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__state_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__state_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:864,1
    - Dst: _asyncio_Future__make_cancelled_error_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:865,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 859
    functionDepth: 4
    functionLinenumber: 859
    functionLinenumberEnd: 869
    functionName: _asyncio_Future__make_cancelled_error
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future__make_cancelled_error_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__make_cancelled_error(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:895,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:897,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:897,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:897,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:897,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:897,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:915,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:916,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:923,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:923,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:950,1
    - Dst: _asyncio_Task___init___impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:955,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 959
    functionName: _asyncio_Task___init__
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _asyncio_Task___init___impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int _asyncio_Task___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:979,1
    - Dst: _asyncio_Task__log_destroy_pending_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:980,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 984
    functionName: _asyncio_Task__log_destroy_pending_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task__log_destroy_pending_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__log_destroy_pending_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1004,1
    - Dst: _asyncio_Task__log_destroy_pending_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1005,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1009
    functionName: _asyncio_Task__log_destroy_pending_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task__log_destroy_pending_set_impl
    linkageType: ''
    returnType: int
    signature: int _asyncio_Task__log_destroy_pending_set(PyObject *self, PyObject
      *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1029,1
    - Dst: _asyncio_Task__must_cancel_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1030,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1034
    functionName: _asyncio_Task__must_cancel_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task__must_cancel_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__must_cancel_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1054,1
    - Dst: _asyncio_Task__coro_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1055,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1059
    functionName: _asyncio_Task__coro_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task__coro_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__coro_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1079,1
    - Dst: _asyncio_Task__fut_waiter_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1080,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1084
    functionName: _asyncio_Task__fut_waiter_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task__fut_waiter_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__fut_waiter_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1106,1
    - Dst: _asyncio_Task__make_cancelled_error_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1107,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1101
    functionDepth: 5
    functionLinenumber: 1101
    functionLinenumberEnd: 1111
    functionName: _asyncio_Task__make_cancelled_error
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task__make_cancelled_error_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__make_cancelled_error(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1157,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1159,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1176,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1179,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1189,1
    - Dst: _asyncio_Task_cancel_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1190,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1144
    functionDepth: 2
    functionLinenumber: 1144
    functionLinenumberEnd: 1195
    functionName: _asyncio_Task_cancel
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _asyncio_Task_cancel_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_cancel(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1217,1
    - Dst: _asyncio_Task_cancelling_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1218,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1222
    functionName: _asyncio_Task_cancelling
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task_cancelling_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_cancelling(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1246,1
    - Dst: _asyncio_Task_uncancel_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1247,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1251
    functionName: _asyncio_Task_uncancel
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task_uncancel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_uncancel(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1297,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1299,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1316,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1319,1
    - Dst: _asyncio_Task_get_stack_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1284
    functionDepth: 3
    functionLinenumber: 1284
    functionLinenumberEnd: 1333
    functionName: _asyncio_Task_get_stack
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _asyncio_Task_get_stack_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_stack(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1367,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1369,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1369,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1386,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1390,1
    - Dst: _asyncio_Task_print_stack_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1354
    functionDepth: 3
    functionLinenumber: 1354
    functionLinenumberEnd: 1410
    functionName: _asyncio_Task_print_stack
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _asyncio_Task_print_stack_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_print_stack(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Task_set_result_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1431
    functionName: _asyncio_Task_set_result
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_set_result_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_result(PyObject *self, PyObject *result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Task_set_exception_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - exception
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1452
    functionName: _asyncio_Task_set_exception
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_set_exception_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_exception(PyObject *self, PyObject *exception)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1470,1
    - Dst: _asyncio_Task_get_coro_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1471,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1475
    functionName: _asyncio_Task_get_coro
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task_get_coro_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_coro(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Task_get_context_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1492
    functionName: _asyncio_Task_get_context
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_get_context_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_context(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1510,1
    - Dst: _asyncio_Task_get_name_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1511,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1515
    functionName: _asyncio_Task_get_name
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task_get_name_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_name(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1533,1
    - Dst: _asyncio_Task_set_name_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1534,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1538
    functionName: _asyncio_Task_set_name
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _asyncio_Task_set_name_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_name(PyObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio__get_running_loop_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1559
    functionName: _asyncio__get_running_loop
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_asynciomodule.c.h:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1592
    functionDepth: 3
    functionLinenumber: 1592
    functionLinenumberEnd: 1596
    functionName: _asyncio_get_event_loop
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_asynciomodule.c.h:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1612
    functionDepth: 2
    functionLinenumber: 1612
    functionLinenumberEnd: 1616
    functionName: _asyncio_get_running_loop
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1645,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1647,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1666,1
    - Dst: _asyncio__register_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1632
    functionDepth: 3
    functionLinenumber: 1632
    functionLinenumberEnd: 1676
    functionName: _asyncio__register_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__register_task_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__register_task(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1705,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1707,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1726,1
    - Dst: _asyncio__register_eager_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1692
    functionDepth: 3
    functionLinenumber: 1692
    functionLinenumberEnd: 1736
    functionName: _asyncio__register_eager_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _asyncio__register_eager_task_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__register_eager_task(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1765,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1767,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1786,1
    - Dst: _asyncio__unregister_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1752
    functionDepth: 4
    functionLinenumber: 1752
    functionLinenumberEnd: 1796
    functionName: _asyncio__unregister_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__unregister_task_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__unregister_task(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1825,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1827,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1846,1
    - Dst: _asyncio__unregister_eager_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1812
    functionDepth: 4
    functionLinenumber: 1812
    functionLinenumberEnd: 1856
    functionName: _asyncio__unregister_eager_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__unregister_eager_task_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__unregister_eager_task(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1887,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1889,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1889,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1909,1
    - Dst: _asyncio__enter_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1874
    functionDepth: 3
    functionLinenumber: 1874
    functionLinenumberEnd: 1920
    functionName: _asyncio__enter_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__enter_task_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__enter_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1951,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1953,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1953,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1973,1
    - Dst: _asyncio__leave_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1938
    functionDepth: 3
    functionLinenumber: 1938
    functionLinenumberEnd: 1984
    functionName: _asyncio__leave_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _asyncio__leave_task_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2014,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2016,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2016,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2036,1
    - Dst: _asyncio__swap_current_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2001
    functionDepth: 3
    functionLinenumber: 2001
    functionLinenumberEnd: 2047
    functionName: _asyncio__swap_current_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__swap_current_task_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__swap_current_task(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2074,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2076,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2093,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2096,1
    - Dst: _asyncio_current_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2061
    functionDepth: 3
    functionLinenumber: 2061
    functionLinenumberEnd: 2110
    functionName: _asyncio_current_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _asyncio_current_task_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_current_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2137,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2139,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2156,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2159,1
    - Dst: _asyncio_all_tasks_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2124
    functionDepth: 4
    functionLinenumber: 2124
    functionLinenumberEnd: 2173
    functionName: _asyncio_all_tasks
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _asyncio_all_tasks_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_all_tasks(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2195,1
    - Dst: _asyncio_future_add_to_awaited_by_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2188
    functionDepth: 3
    functionLinenumber: 2188
    functionLinenumberEnd: 2204
    functionName: _asyncio_future_add_to_awaited_by
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_future_add_to_awaited_by_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_future_add_to_awaited_by(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2225,1
    - Dst: _asyncio_future_discard_from_awaited_by_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2218
    functionDepth: 3
    functionLinenumber: 2218
    functionLinenumberEnd: 2234
    functionName: _asyncio_future_discard_from_awaited_by
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _asyncio_future_discard_from_awaited_by_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_future_discard_from_awaited_by(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:56,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:58,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:58,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:58,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:58,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:76,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:77,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:83,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:83,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:88,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:89,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:96,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:105,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:113,1
    - Dst: _remote_debugging_RemoteUnwinder___init___impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:118,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 122
    functionName: _remote_debugging_RemoteUnwinder___init__
    functionSourceFile: /src/cpython/Modules/clinic/_remote_debugging_module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _remote_debugging_RemoteUnwinder___init___impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int _remote_debugging_RemoteUnwinder___init__(PyObject *self, PyObject
      *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:170,1
    - Dst: _remote_debugging_RemoteUnwinder_get_stack_trace_impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:171,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 9
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: _remote_debugging_RemoteUnwinder_get_stack_trace
    functionSourceFile: /src/cpython/Modules/clinic/_remote_debugging_module.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_get_stack_trace_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_stack_trace(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:227,1
    - Dst: _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:228,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 10
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: _remote_debugging_RemoteUnwinder_get_all_awaited_by
    functionSourceFile: /src/cpython/Modules/clinic/_remote_debugging_module.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_all_awaited_by(PyObject *self, PyObject
      *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:285,1
    - Dst: _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:286,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: _remote_debugging_RemoteUnwinder_get_async_stack_trace
    functionSourceFile: /src/cpython/Modules/clinic/_remote_debugging_module.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_async_stack_trace(PyObject *self, PyObject
      *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:26,1
    - Dst: _random_Random_random_impl
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:27,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: _random_Random_random
    functionSourceFile: /src/cpython/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _random_Random_random_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_random(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:54,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:62,1
    - Dst: _random_Random_seed_impl
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:63,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: _random_Random_seed
    functionSourceFile: /src/cpython/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _random_Random_seed_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_seed(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:87,1
    - Dst: _random_Random_getstate_impl
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:88,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    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: _random_Random_getstate
    functionSourceFile: /src/cpython/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _random_Random_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getstate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:111,1
    - Dst: _random_Random_setstate_impl
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:112,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: _random_Random_setstate
    functionSourceFile: /src/cpython/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _random_Random_setstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_setstate(PyObject *self, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UInt64_Converter
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:136,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:139,1
    - Dst: _random_Random_getrandbits_impl
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:140,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: _random_Random_getrandbits
    functionSourceFile: /src/cpython/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _random_Random_getrandbits_impl
    - _PyLong_UInt64_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getrandbits(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_clear_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: array_array_clear
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array___copy___impl
      Src: /src/cpython/Modules/clinic/arraymodule.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: 4
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: array_array___copy__
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___copy__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array___deepcopy___impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: array_array___deepcopy__
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array___deepcopy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___deepcopy__(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_count_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: array_array_count
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_count(PyObject *self, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:114,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:121,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:127,1
    - Dst: array_array_index_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 135
    functionName: array_array_index
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - _PyEval_SliceIndexNotNone
    - array_array_index_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_index(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_remove_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: array_array_remove
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_remove_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_remove(PyObject *self, PyObject *v)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:179,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:187,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:190,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:192,1
    - Dst: array_array_pop_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 202
    functionName: array_array_pop
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - array_array_pop_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_pop(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:236,1
    - Dst: array_array_extend_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 246
    functionName: array_array_extend
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_extend_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_extend(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:267,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:272,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:275,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:277,1
    - Dst: array_array_insert_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: array_array_insert
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - array_array_insert_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_insert(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_buffer_info_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: array_array_buffer_info
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_buffer_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_buffer_info(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_append_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: array_array_append
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_append_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_append(PyObject *self, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_byteswap_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: array_array_byteswap
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_byteswap_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_byteswap(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_reverse_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: array_array_reverse
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_reverse_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_reverse(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:405,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:413,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:416,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:418,1
    - Dst: array_array_fromfile_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 427
    functionName: array_array_fromfile
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_fromfile_impl
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromfile(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:461,1
    - Dst: array_array_tofile_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 471
    functionName: array_array_tofile
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tofile_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tofile(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_fromlist_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 493
    functionName: array_array_fromlist
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_fromlist_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromlist(PyObject *self, PyObject *list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_tolist_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: array_array_tolist
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tolist_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tolist(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:531,1
    - Dst: array_array_frombytes_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:534,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 543
    functionName: array_array_frombytes
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 2
    functionsReached:
    - PyObject_GetBuffer
    - PyBuffer_Release
    - array_array_frombytes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_frombytes(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_tobytes_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: array_array_tobytes
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tobytes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tobytes(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:585,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:586,1
    - Dst: array_array_fromunicode_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 594
    functionName: array_array_fromunicode
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - array_array_fromunicode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromunicode(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_tounicode_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 616
    functionName: array_array_tounicode
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tounicode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tounicode(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array___sizeof___impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: array_array___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:661,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:665,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:666,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:669,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:670,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:673,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:676,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:677,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:678,1
    - Dst: array__array_reconstructor_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:682,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 686
    functionName: array__array_reconstructor
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - array__array_reconstructor_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array__array_reconstructor(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:721,1
    - Dst: array_array___reduce_ex___impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 731
    functionName: array_array___reduce_ex__
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array___reduce_ex___impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___reduce_ex__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:748,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:749,1
    - Dst: array_arrayiterator___reduce___impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 753
    functionName: array_arrayiterator___reduce__
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_arrayiterator___reduce___impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_arrayiterator___reduce__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_arrayiterator___setstate___impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 775
    functionName: array_arrayiterator___setstate__
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_arrayiterator___setstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_arrayiterator___setstate__(PyObject *self, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:36,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:38,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:57,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:62,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:63,1
    - Dst: _testinternalcapi_compiler_cleandoc_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 71
    functionName: _testinternalcapi_compiler_cleandoc
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - _testinternalcapi_compiler_cleandoc_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_compiler_cleandoc(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testinternalcapi_new_instruction_sequence_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: _testinternalcapi_new_instruction_sequence
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - _testinternalcapi_new_instruction_sequence_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_new_instruction_sequence(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:118,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:120,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:120,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:120,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:120,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:137,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:143,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:150,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:151,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:158,1
    - Dst: _testinternalcapi_compiler_codegen_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:162,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: 166
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 166
    functionName: _testinternalcapi_compiler_codegen
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _testinternalcapi_compiler_codegen_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_compiler_codegen(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:194,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:196,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:196,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:196,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:217,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:224,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:225,1
    - Dst: _testinternalcapi_optimize_cfg_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 232
    functionName: _testinternalcapi_optimize_cfg
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _testinternalcapi_optimize_cfg_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_optimize_cfg(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:262,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:264,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:264,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:264,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:285,1
    - Dst: _testinternalcapi_assemble_code_object_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 297
    functionName: _testinternalcapi_assemble_code_object
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - _testinternalcapi_assemble_code_object_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_assemble_code_object(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testinternalcapi_test_long_numbits_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: _testinternalcapi_test_long_numbits
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - _testinternalcapi_test_long_numbits_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testinternalcapi_test_long_numbits(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:341,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:343,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:360,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:363,1
    - Dst: gh_119213_getargs_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 377
    functionName: gh_119213_getargs
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - gh_119213_getargs_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_119213_getargs(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_next_dict_keys_version_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: get_next_dict_keys_version
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - get_next_dict_keys_version_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_next_dict_keys_version(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:35,1
    - Dst: _lzma_LZMACompressor_compress_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:38,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: _lzma_LZMACompressor_compress
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _lzma_LZMACompressor_compress_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_compress(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lzma_LZMACompressor_flush_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: _lzma_LZMACompressor_flush
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _lzma_LZMACompressor_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:110,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:112,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:112,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:129,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:133,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:138,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:146,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:149,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:151,1
    - Dst: _lzma_LZMADecompressor_decompress_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:157,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 166
    functionName: _lzma_LZMADecompressor_decompress
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _lzma_LZMADecompressor_decompress_impl
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMADecompressor_decompress(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:208,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:210,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:210,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:210,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:228,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:229,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:234,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:234,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:244,1
    - Dst: _lzma_LZMADecompressor_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 195
    functionDepth: 6
    functionLinenumber: 195
    functionLinenumberEnd: 263
    functionName: _lzma_LZMADecompressor
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _lzma_LZMADecompressor_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMADecompressor(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:285,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:286,1
    - Dst: _lzma_is_check_supported_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 293
    functionName: _lzma_is_check_supported
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _lzma_is_check_supported_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_is_check_supported(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:317,1
    - Dst: lzma_vli_converter
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:320,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:323,1
    - Dst: _lzma__decode_filter_properties_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:326,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 335
    functionName: _lzma__decode_filter_properties
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - _lzma__decode_filter_properties_impl
    - lzma_vli_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma__decode_filter_properties(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_empty_function_impl
      Src: /src/cpython/Modules/clinic/_testclinic_limited.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: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: test_empty_function
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_limited.c.h
    functionUses: 0
    functionsReached:
    - test_empty_function_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_empty_function(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:40,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:41,1
    - Dst: my_int_func_impl
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:44,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:45,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg_
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: my_int_func
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_limited.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - my_int_func_impl
    - PyLong_FromLong
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      my_int_func(PyObject *module, PyObject *arg_)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:74,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:77,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:78,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:81,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:82,1
    - Dst: my_int_sum_impl
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:85,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:86,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:89,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: my_int_sum
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_limited.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - PyErr_Format
    - my_int_sum_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      my_int_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:115,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:118,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:119,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:123,1
    - Dst: my_float_sum_impl
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:126,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:127,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:130,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: my_float_sum
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_limited.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - my_float_sum_impl
    - PyErr_Occurred
    - PyErr_Format
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      my_float_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:156,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:159,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:160,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:163,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:164,1
    - Dst: my_double_sum_impl
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:167,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:168,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:171,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 175
    functionName: my_double_sum
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_limited.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - my_double_sum_impl
    - PyErr_Format
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      my_double_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:196,1
    - Dst: get_file_descriptor_impl
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:200,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:201,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_testclinic_limited.c.h:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 208
    functionName: get_file_descriptor
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_limited.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyObject_AsFileDescriptor
    - get_file_descriptor_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_file_descriptor(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: math_gcd_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: math_gcd
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - math_gcd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_gcd(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: math_lcm_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: math_lcm
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - math_lcm_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_lcm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:107,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:110,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:111,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:115,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:116,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:120,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:121,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:125,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:126,1
    - Dst: math_fmax_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:130,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:131,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 138
    functionName: math_fmax
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - math_fmax_impl
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fmax(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:160,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:163,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:164,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:168,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:169,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:173,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:174,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:178,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:179,1
    - Dst: math_fmin_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:183,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:184,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 191
    functionName: math_fmin
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_fmin_impl
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fmin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:211,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:212,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:216,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:217,1
    - Dst: math_signbit_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: math_signbit
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_signbit_impl
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_signbit(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:288,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:289,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:293,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:294,1
    - Dst: math_frexp_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 302
    functionName: math_frexp
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - math_frexp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_frexp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:325,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:328,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:329,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:333,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:334,1
    - Dst: math_ldexp_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 343
    functionName: math_ldexp
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - math_ldexp_impl
    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/cpython/Modules/clinic/mathmodule.c.h:365,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:366,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:370,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:371,1
    - Dst: math_modf_impl
      Src: /src/cpython/Modules/clinic/mathmodule.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: 2
    functionLinenumber: 359
    functionLinenumberEnd: 379
    functionName: math_modf
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_modf_impl
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_modf(PyObject *module, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:421,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:424,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:425,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:429,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:430,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:434,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:435,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:439,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:440,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:444,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:445,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:449,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:450,1
    - Dst: math_fma_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:454,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 458
    functionName: math_fma
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_fma_impl
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fma(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:481,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:484,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:485,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:489,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:490,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:494,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:495,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:499,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:500,1
    - Dst: math_fmod_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 508
    functionName: math_fmod
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - math_fmod_impl
    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/cpython/Modules/clinic/mathmodule.c.h:535,1
    - Dst: math_dist_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 544
    functionName: math_dist
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: math_hypot_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 582
    functionName: math_hypot
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - math_hypot_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_hypot(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:610,1
    - Dst: math_sumprod_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 619
    functionName: math_sumprod
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - math_sumprod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_sumprod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:640,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:643,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:644,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:648,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:649,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:653,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:654,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:658,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:659,1
    - Dst: math_pow_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:663,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 667
    functionName: math_pow
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_pow_impl
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    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/cpython/Modules/clinic/mathmodule.c.h:687,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:688,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:692,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:693,1
    - Dst: math_degrees_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:697,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 701
    functionName: math_degrees
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_degrees_impl
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_degrees(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:721,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:722,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:726,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:727,1
    - Dst: math_radians_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 735
    functionName: math_radians
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_radians_impl
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_radians(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:755,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:756,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:760,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:761,1
    - Dst: math_isfinite_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 769
    functionName: math_isfinite
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - math_isfinite_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isfinite(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:789,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:790,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:794,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:795,1
    - Dst: math_isnormal_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 803
    functionName: math_isnormal
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - math_isnormal_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isnormal(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:823,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:824,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:828,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:829,1
    - Dst: math_issubnormal_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 837
    functionName: math_issubnormal
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - math_issubnormal_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_issubnormal(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:857,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:858,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:862,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:863,1
    - Dst: math_isnan_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 851
    functionDepth: 2
    functionLinenumber: 851
    functionLinenumberEnd: 871
    functionName: math_isnan
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_isnan_impl
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isnan(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:891,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:892,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:896,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:897,1
    - Dst: math_isinf_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 905
    functionName: math_isinf
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - math_isinf_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isinf(PyObject *module, PyObject *arg)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:949,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:951,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:951,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:951,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:951,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:968,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:975,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:980,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:981,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:985,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:986,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:990,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:991,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:996,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1004,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1005,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1009,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1010,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1018,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1019,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1023,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1024,1
    - Dst: math_isclose_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1029,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1030,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1033,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1037
    functionName: math_isclose
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - math_isclose_impl
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1072,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1089,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1093,1
    - Dst: math_prod_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1108
    functionName: math_prod
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - math_prod_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    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/cpython/Modules/clinic/mathmodule.c.h:1138,1
    - Dst: math_perm_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1131
    functionDepth: 5
    functionLinenumber: 1131
    functionLinenumberEnd: 1151
    functionName: math_perm
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - math_perm_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/mathmodule.c.h:1182,1
    - Dst: math_comb_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1191
    functionName: math_comb
    functionSourceFile: /src/cpython/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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1223,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1225,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1242,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1247,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1252,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1253,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1258,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1262,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1263,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1267,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1268,1
    - Dst: math_nextafter_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1277,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1281
    functionName: math_nextafter
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - math_nextafter_impl
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_nextafter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1302,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1303,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1308,1
    - Dst: math_ulp_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1312,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1313,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1320
    functionName: math_ulp
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - math_ulp_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_ulp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:53,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:54,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:58,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:62,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:63,1
    - Dst: _codecs_lookup_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: _codecs_lookup
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_lookup_impl
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_lookup(PyObject *module, PyObject *arg)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:104,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:106,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:106,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:106,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:123,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:128,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:138,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:139,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:143,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:148,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:155,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:156,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:160,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:165,1
    - Dst: _codecs_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:169,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 173
    functionName: _codecs_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_encode_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:207,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:209,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:209,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:209,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:226,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:231,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:241,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:242,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:246,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:250,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:251,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:258,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:259,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:263,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:267,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:268,1
    - Dst: _codecs_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:272,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 276
    functionName: _codecs_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_decode_impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:297,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:300,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:302,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:306,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:311,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:321,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:323,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:328,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:333,1
    - Dst: _codecs_escape_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:337,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:342,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 346
    functionName: _codecs_escape_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_escape_decode_impl
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - PyBuffer_FillInfo
    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/cpython/Modules/clinic/_codecsmodule.c.h:367,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:370,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:371,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:381,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:383,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:387,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:388,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:393,1
    - Dst: _codecs_escape_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:397,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 401
    functionName: _codecs_escape_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_escape_encode_impl
    - PyBytes_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:423,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:426,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:435,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:437,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:441,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:442,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:447,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:453,1
    - Dst: _codecs_utf_7_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:458,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:463,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 467
    functionName: _codecs_utf_7_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_utf_7_decode_impl
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_7_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:489,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:492,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:501,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:503,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:507,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:508,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:513,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:519,1
    - Dst: _codecs_utf_8_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:524,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:529,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 533
    functionName: _codecs_utf_8_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_utf_8_decode_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_8_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:555,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:558,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:567,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:569,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:574,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:579,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:585,1
    - Dst: _codecs_utf_16_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:590,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:595,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 599
    functionName: _codecs_utf_16_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _codecs_utf_16_decode_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:621,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:624,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:633,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:635,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:639,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:640,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:645,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:651,1
    - Dst: _codecs_utf_16_le_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:656,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:661,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 665
    functionName: _codecs_utf_16_le_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - _codecs_utf_16_le_decode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:687,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:690,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:699,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:701,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:705,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:706,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:711,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:717,1
    - Dst: _codecs_utf_16_be_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:722,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:727,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 731
    functionName: _codecs_utf_16_be_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _codecs_utf_16_be_decode_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:755,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:758,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:767,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:769,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:774,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:779,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:785,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:786,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:792,1
    - Dst: _codecs_utf_16_ex_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:797,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:802,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 806
    functionName: _codecs_utf_16_ex_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - _codecs_utf_16_ex_decode_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:828,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:831,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:840,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:842,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:846,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:847,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:852,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:858,1
    - Dst: _codecs_utf_32_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:863,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:868,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 872
    functionName: _codecs_utf_32_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _codecs_utf_32_decode_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:894,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:897,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:906,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:908,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:912,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:913,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:918,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:924,1
    - Dst: _codecs_utf_32_le_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:929,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:934,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 938
    functionName: _codecs_utf_32_le_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_utf_32_le_decode_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:960,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:963,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:972,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:974,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:978,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:979,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:984,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:990,1
    - Dst: _codecs_utf_32_be_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:995,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1000,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 1004
    functionName: _codecs_utf_32_be_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_utf_32_be_decode_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1028,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1031,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1040,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1042,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1046,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1047,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1052,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1058,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1059,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1065,1
    - Dst: _codecs_utf_32_ex_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1070,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1075,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1079
    functionName: _codecs_utf_32_ex_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - _codecs_utf_32_ex_decode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1101,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1104,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1106,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1110,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1115,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1125,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1127,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1131,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1132,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1137,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1143,1
    - Dst: _codecs_unicode_escape_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1148,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1153,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1157
    functionName: _codecs_unicode_escape_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - PyBuffer_FillInfo
    - _codecs_unicode_escape_decode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1179,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1182,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1184,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1188,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1193,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1203,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1205,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1210,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1215,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1221,1
    - Dst: _codecs_raw_unicode_escape_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1226,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1231,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1171
    functionDepth: 3
    functionLinenumber: 1171
    functionLinenumberEnd: 1235
    functionName: _codecs_raw_unicode_escape_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_raw_unicode_escape_decode_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - PyBuffer_FillInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1256,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1259,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1268,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1270,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1275,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1280,1
    - Dst: _codecs_latin_1_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1284,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1289,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1249
    functionDepth: 3
    functionLinenumber: 1249
    functionLinenumberEnd: 1293
    functionName: _codecs_latin_1_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - _codecs_latin_1_decode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_latin_1_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1314,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1317,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1326,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1328,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1332,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1333,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1338,1
    - Dst: _codecs_ascii_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1342,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1347,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1351
    functionName: _codecs_ascii_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_ascii_decode_impl
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_ascii_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1373,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1376,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1385,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1387,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1391,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1392,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1397,1
    - Dst: _codecs_charmap_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1405,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1410,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1414
    functionName: _codecs_charmap_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_charmap_decode_impl
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_charmap_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1438,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1441,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1450,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1452,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1457,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1462,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1468,1
    - Dst: _codecs_mbcs_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1473,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1478,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1430
    functionDepth: 3
    functionLinenumber: 1430
    functionLinenumberEnd: 1482
    functionName: _codecs_mbcs_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - _codecs_mbcs_decode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_mbcs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1508,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1511,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1520,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1522,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1526,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1527,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1532,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1538,1
    - Dst: _codecs_oem_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1543,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1548,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1500
    functionDepth: 3
    functionLinenumber: 1500
    functionLinenumberEnd: 1552
    functionName: _codecs_oem_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _codecs_oem_decode_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_oem_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1579,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1582,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1583,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1586,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1595,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1597,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1602,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1607,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1613,1
    - Dst: _codecs_code_page_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1618,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1623,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1627
    functionName: _codecs_code_page_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - strlen
    - PyLong_AsInt
    - PyErr_Occurred
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_code_page_decode_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_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/cpython/Modules/clinic/_codecsmodule.c.h:1650,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1653,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1655,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1659,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1664,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1674,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1676,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1680,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1681,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1686,1
    - Dst: _codecs_readbuffer_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1690,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1695,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1699
    functionName: _codecs_readbuffer_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_readbuffer_encode_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyUnicode_Check
    - PyBuffer_FillInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_readbuffer_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1720,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1723,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1724,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1734,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1736,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1741,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1746,1
    - Dst: _codecs_utf_7_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1750,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1754
    functionName: _codecs_utf_7_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_utf_7_encode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_7_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1775,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1778,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1779,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1789,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1791,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1795,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1796,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1801,1
    - Dst: _codecs_utf_8_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1805,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1768
    functionDepth: 3
    functionLinenumber: 1768
    functionLinenumberEnd: 1809
    functionName: _codecs_utf_8_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_utf_8_encode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_8_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1831,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1834,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1835,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1845,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1847,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1851,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1852,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1857,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1863,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1864,1
    - Dst: _codecs_utf_16_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1868,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1823
    functionDepth: 3
    functionLinenumber: 1823
    functionLinenumberEnd: 1872
    functionName: _codecs_utf_16_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - _codecs_utf_16_encode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1893,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1896,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1897,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1907,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1909,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1913,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1914,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1919,1
    - Dst: _codecs_utf_16_le_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1923,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1886
    functionDepth: 3
    functionLinenumber: 1886
    functionLinenumberEnd: 1927
    functionName: _codecs_utf_16_le_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_utf_16_le_encode_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1948,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1951,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1952,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1962,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1964,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1968,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1969,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1974,1
    - Dst: _codecs_utf_16_be_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1978,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1941
    functionDepth: 3
    functionLinenumber: 1941
    functionLinenumberEnd: 1982
    functionName: _codecs_utf_16_be_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_utf_16_be_encode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2004,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2007,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2008,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2018,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2020,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2024,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2025,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2030,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2036,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2037,1
    - Dst: _codecs_utf_32_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2041,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 1996
    functionDepth: 3
    functionLinenumber: 1996
    functionLinenumberEnd: 2045
    functionName: _codecs_utf_32_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _codecs_utf_32_encode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2066,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2069,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2070,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2080,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2082,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2086,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2087,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2092,1
    - Dst: _codecs_utf_32_le_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2096,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2059
    functionDepth: 3
    functionLinenumber: 2059
    functionLinenumberEnd: 2100
    functionName: _codecs_utf_32_le_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_utf_32_le_encode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2121,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2124,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2125,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2135,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2137,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2141,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2142,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2147,1
    - Dst: _codecs_utf_32_be_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2151,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2114
    functionDepth: 3
    functionLinenumber: 2114
    functionLinenumberEnd: 2155
    functionName: _codecs_utf_32_be_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_utf_32_be_encode_impl
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2176,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2179,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2180,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2190,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2192,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2196,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2197,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2202,1
    - Dst: _codecs_unicode_escape_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2206,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2169
    functionDepth: 3
    functionLinenumber: 2169
    functionLinenumberEnd: 2210
    functionName: _codecs_unicode_escape_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_unicode_escape_encode_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2231,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2234,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2235,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2245,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2247,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2252,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2257,1
    - Dst: _codecs_raw_unicode_escape_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2261,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2224
    functionDepth: 3
    functionLinenumber: 2224
    functionLinenumberEnd: 2265
    functionName: _codecs_raw_unicode_escape_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_raw_unicode_escape_encode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_raw_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2286,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2289,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2290,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2300,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2302,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2306,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2307,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2312,1
    - Dst: _codecs_latin_1_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2316,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2279
    functionDepth: 3
    functionLinenumber: 2279
    functionLinenumberEnd: 2320
    functionName: _codecs_latin_1_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_latin_1_encode_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_latin_1_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2341,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2344,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2345,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2355,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2357,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2361,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2362,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2367,1
    - Dst: _codecs_ascii_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2371,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2334
    functionDepth: 3
    functionLinenumber: 2334
    functionLinenumberEnd: 2375
    functionName: _codecs_ascii_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_ascii_encode_impl
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_ascii_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2397,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2400,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2401,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2411,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2413,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2417,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2418,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2423,1
    - Dst: _codecs_charmap_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2431,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2389
    functionDepth: 3
    functionLinenumber: 2389
    functionLinenumberEnd: 2435
    functionName: _codecs_charmap_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_charmap_encode_impl
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_charmap_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2454,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2455,1
    - Dst: _codecs_charmap_build_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2448
    functionDepth: 2
    functionLinenumber: 2448
    functionLinenumberEnd: 2463
    functionName: _codecs_charmap_build
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _codecs_charmap_build_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_charmap_build(PyObject *module, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2485,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2488,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2489,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2499,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2501,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2505,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2506,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2511,1
    - Dst: _codecs_mbcs_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2515,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2478
    functionDepth: 3
    functionLinenumber: 2478
    functionLinenumberEnd: 2519
    functionName: _codecs_mbcs_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - _codecs_mbcs_encode_impl
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_mbcs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2543,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2546,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2547,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2557,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2559,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2563,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2564,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2569,1
    - Dst: _codecs_oem_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2573,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2536
    functionDepth: 3
    functionLinenumber: 2536
    functionLinenumberEnd: 2577
    functionName: _codecs_oem_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _codecs_oem_encode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_oem_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2603,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2606,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2607,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2610,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2611,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2621,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2623,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2627,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2628,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2633,1
    - Dst: _codecs_code_page_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2637,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2595
    functionDepth: 3
    functionLinenumber: 2595
    functionLinenumberEnd: 2641
    functionName: _codecs_code_page_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyLong_AsInt
    - PyErr_Occurred
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _codecs_code_page_encode_impl
    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/cpython/Modules/clinic/_codecsmodule.c.h:2669,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2672,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2673,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2677,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2681,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2682,1
    - Dst: _codecs_register_error_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2686,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2662
    functionDepth: 2
    functionLinenumber: 2662
    functionLinenumberEnd: 2690
    functionName: _codecs_register_error
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _codecs_register_error_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_register_error(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2719,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2720,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2724,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2728,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2729,1
    - Dst: _codecs__unregister_error_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2732,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2733,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2736,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2712
    functionDepth: 2
    functionLinenumber: 2712
    functionLinenumberEnd: 2740
    functionName: _codecs__unregister_error
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - PyBool_FromLong
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _codecs__unregister_error_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs__unregister_error(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2763,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2764,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2768,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2772,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2773,1
    - Dst: _codecs_lookup_error_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2757
    functionDepth: 2
    functionLinenumber: 2757
    functionLinenumberEnd: 2780
    functionName: _codecs_lookup_error
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _codecs_lookup_error_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_lookup_error(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:56,1
    - Dst: select_select_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: select_select
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/selectmodule.c.h:100,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:103,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:110,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:114,1
    - Dst: select_poll_register_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:115,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 120
    functionName: select_poll_register
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyLong_UnsignedShort_Converter
    - _PyArg_CheckPositional
    - PyObject_AsFileDescriptor
    - select_poll_register_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_register(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:151,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:154,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:158,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:161,1
    - Dst: select_poll_modify_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:162,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: select_poll_modify
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - select_poll_modify_impl
    - _PyLong_UnsignedShort_Converter
    - _PyArg_CheckPositional
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_modify(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:191,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:195,1
    - Dst: select_poll_unregister_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:196,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: select_poll_unregister
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - select_poll_unregister_impl
    - PyObject_AsFileDescriptor
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_unregister(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:232,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:240,1
    - Dst: select_poll_poll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:241,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: select_poll_poll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - select_poll_poll_impl
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_poll(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:279,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:282,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:289,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:293,1
    - Dst: select_devpoll_register_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:294,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 299
    functionName: select_devpoll_register
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyLong_UnsignedShort_Converter
    - _PyArg_CheckPositional
    - PyObject_AsFileDescriptor
    - select_devpoll_register_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_register(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:332,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:335,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:342,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:346,1
    - Dst: select_devpoll_modify_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:347,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 352
    functionName: select_devpoll_modify
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - select_devpoll_modify_impl
    - _PyLong_UnsignedShort_Converter
    - _PyArg_CheckPositional
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_modify(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:376,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:380,1
    - Dst: select_devpoll_unregister_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:381,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 386
    functionName: select_devpoll_unregister
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_AsFileDescriptor
    - select_devpoll_unregister_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_unregister(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:417,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:425,1
    - Dst: select_devpoll_poll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:426,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: select_devpoll_poll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - select_devpoll_poll_impl
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_poll(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:456,1
    - Dst: select_devpoll_close_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:457,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 461
    functionName: select_devpoll_close
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - select_devpoll_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:484,1
    - Dst: select_devpoll_fileno_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:485,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: select_devpoll_fileno
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - select_devpoll_fileno_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_poll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: select_poll
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/selectmodule.c.h:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: select_devpoll
    functionSourceFile: /src/cpython/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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:576,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:578,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:578,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:596,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:597,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:601,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:601,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:610,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:611,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:618,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:619,1
    - Dst: select_epoll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:623,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 627
    functionName: select_epoll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_impl
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:652,1
    - Dst: select_epoll_close_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:653,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 657
    functionName: select_epoll_close
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - select_epoll_close_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_epoll_fileno_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 679
    functionName: select_epoll_fileno
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:703,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:704,1
    - Dst: select_epoll_fromfd_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 711
    functionName: select_epoll_fromfd
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - select_epoll_fromfd_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_fromfd(PyObject *type, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:751,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:753,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:753,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:770,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:774,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:779,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:787,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:795,1
    - Dst: select_epoll_register_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:803,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 738
    functionDepth: 4
    functionLinenumber: 738
    functionLinenumberEnd: 807
    functionName: select_epoll_register
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - select_epoll_register_impl
    - PyLong_AsNativeBytes
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_register(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:844,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:846,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:846,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:866,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:871,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:876,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:884,1
    - Dst: select_epoll_modify_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:891,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 831
    functionDepth: 4
    functionLinenumber: 831
    functionLinenumberEnd: 895
    functionName: select_epoll_modify
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyLong_AsNativeBytes
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    - PyErr_WarnEx
    - select_epoll_modify_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_modify(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:929,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:931,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:950,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:955,1
    - Dst: select_epoll_unregister_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:959,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 916
    functionDepth: 4
    functionLinenumber: 916
    functionLinenumberEnd: 963
    functionName: select_epoll_unregister
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_unregister_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_unregister(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1004,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1006,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1006,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1023,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1027,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1041,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1042,1
    - Dst: select_epoll_poll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1046,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 991
    functionDepth: 3
    functionLinenumber: 991
    functionLinenumberEnd: 1050
    functionName: select_epoll_poll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - select_epoll_poll_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_poll(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_epoll___enter___impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1067
    functionDepth: 3
    functionLinenumber: 1067
    functionLinenumberEnd: 1071
    functionName: select_epoll___enter__
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll___enter__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1097,1
    - Dst: select_epoll___exit___impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1117
    functionName: select_epoll___exit__
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_epoll___exit___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll___exit__(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1148,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1151,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1155,1
    - Dst: select_kqueue_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1144
    functionDepth: 6
    functionLinenumber: 1144
    functionLinenumberEnd: 1162
    functionName: select_kqueue
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _selectstate_by_type
    - _PyArg_NoKeywords
    - select_kqueue_impl
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1187,1
    - Dst: select_kqueue_close_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1188,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1182
    functionDepth: 5
    functionLinenumber: 1182
    functionLinenumberEnd: 1192
    functionName: select_kqueue_close
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - select_kqueue_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_kqueue_fileno_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1214
    functionName: select_kqueue_fileno
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_kqueue_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1238,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1239,1
    - Dst: select_kqueue_fromfd_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1232
    functionDepth: 6
    functionLinenumber: 1232
    functionLinenumberEnd: 1246
    functionName: select_kqueue_fromfd
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - select_kqueue_fromfd_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_fromfd(PyObject *type, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1282,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1286,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1287,1
    - Dst: select_kqueue_control_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1299
    functionName: select_kqueue_control
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - select_kqueue_control_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_control(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sysconfig_config_vars_impl
      Src: /src/cpython/Modules/clinic/_sysconfig.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: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _sysconfig_config_vars
    functionSourceFile: /src/cpython/Modules/clinic/_sysconfig.c.h
    functionUses: 0
    functionsReached:
    - _sysconfig_config_vars_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sysconfig_config_vars(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_is_tracing_impl
      Src: /src/cpython/Modules/clinic/_tracemalloc.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: 2
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: _tracemalloc_is_tracing
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_tracemalloc.c.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: _tracemalloc_clear_traces
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_tracemalloc.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: 2
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: _tracemalloc__get_traces
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_tracemalloc.c.h:100,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_tracemalloc.c.h:106,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tracemalloc.c.h:107,1
    - Dst: _tracemalloc_start_impl
      Src: /src/cpython/Modules/clinic/_tracemalloc.c.h:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: _tracemalloc_start
    functionSourceFile: /src/cpython/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tracemalloc_start_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    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/cpython/Modules/clinic/_tracemalloc.c.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: _tracemalloc_stop
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_tracemalloc.c.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: _tracemalloc_get_traceback_limit
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_tracemalloc.c.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: _tracemalloc_get_tracemalloc_memory
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_tracemalloc.c.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: _tracemalloc_get_traced_memory
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_reset_peak_impl
      Src: /src/cpython/Modules/clinic/_tracemalloc.c.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: _tracemalloc_reset_peak
    functionSourceFile: /src/cpython/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc_reset_peak_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:48,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:50,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:55,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:61,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:67,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:74,1
    - Dst: _curses_window_addch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:77,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 81
    functionName: _curses_window_addch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_addch_impl
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_addch(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:120,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:122,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:127,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:133,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:139,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:146,1
    - Dst: _curses_window_addstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:149,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 109
    functionDepth: 6
    functionLinenumber: 109
    functionLinenumberEnd: 153
    functionName: _curses_window_addstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_addstr_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_addstr(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:195,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:197,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:202,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:208,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:221,1
    - Dst: _curses_window_addnstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:224,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 228
    functionName: _curses_window_addnstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _curses_window_addnstr_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_addnstr(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:254,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:261,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:262,1
    - Dst: _curses_window_bkgd_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 270
    functionName: _curses_window_bkgd
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_window_bkgd_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_bkgd(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:290,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:291,1
    - Dst: _curses_window_attroff_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 6
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: _curses_window_attroff
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_window_attroff_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attroff(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:319,1
    - Dst: _curses_window_attron_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 6
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: _curses_window_attron
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_window_attron_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attron(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:346,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:347,1
    - Dst: _curses_window_attrset_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 354
    functionName: _curses_window_attrset
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_window_attrset_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attrset(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:381,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:388,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:389,1
    - Dst: _curses_window_bkgdset_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 397
    functionName: _curses_window_bkgdset
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_window_bkgdset_impl
    - _PyArg_CheckPositional
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_bkgdset(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:452,1
    - Dst: _curses_window_border_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:488,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 492
    functionName: _curses_window_border
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _curses_window_border_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_border(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:518,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:519,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:521,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:525,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:531,1
    - Dst: _curses_window_box_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 513
    functionDepth: 6
    functionLinenumber: 513
    functionLinenumberEnd: 538
    functionName: _curses_window_box
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    - _curses_window_box_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_box(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:564,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:568,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:574,1
    - Dst: _curses_window_delch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:577,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 556
    functionDepth: 6
    functionLinenumber: 556
    functionLinenumberEnd: 581
    functionName: _curses_window_delch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_delch_impl
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_delch(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:617,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:619,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:630,1
    - Dst: _curses_window_derwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:633,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 637
    functionName: _curses_window_derwin
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_derwin_impl
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_derwin(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:664,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:671,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:672,1
    - Dst: _curses_window_echochar_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:676,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 680
    functionName: _curses_window_echochar
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_window_echochar_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_echochar(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:708,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:711,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:712,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:715,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:716,1
    - Dst: _curses_window_enclose_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 723
    functionName: _curses_window_enclose
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_window_enclose_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_enclose(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_window_getbkgd_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 5
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: _curses_window_getbkgd
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_getbkgd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_getbkgd(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:773,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:777,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:783,1
    - Dst: _curses_window_getch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 790
    functionName: _curses_window_getch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_getch_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_getch(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:820,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:824,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:830,1
    - Dst: _curses_window_getkey_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:833,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 837
    functionName: _curses_window_getkey
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_getkey_impl
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_getkey(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:868,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:872,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:878,1
    - Dst: _curses_window_get_wch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:881,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 885
    functionName: _curses_window_get_wch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _curses_window_get_wch_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_get_wch(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:924,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:926,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:931,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:937,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:950,1
    - Dst: _curses_window_hline_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:953,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 912
    functionDepth: 6
    functionLinenumber: 912
    functionLinenumberEnd: 957
    functionName: _curses_window_hline
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_hline_impl
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_hline(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:994,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:996,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1001,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1007,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1013,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1020,1
    - Dst: _curses_window_insch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1023,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 983
    functionDepth: 6
    functionLinenumber: 983
    functionLinenumberEnd: 1027
    functionName: _curses_window_insch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_insch_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_insch(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1055,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1059,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1065,1
    - Dst: _curses_window_inch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1068,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1047
    functionDepth: 5
    functionLinenumber: 1047
    functionLinenumberEnd: 1072
    functionName: _curses_window_inch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _curses_window_inch_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_inch(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1112,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1114,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1119,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1125,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1131,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1138,1
    - Dst: _curses_window_insstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1101
    functionDepth: 6
    functionLinenumber: 1101
    functionLinenumberEnd: 1145
    functionName: _curses_window_insstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_insstr_impl
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_insstr(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1189,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1191,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1196,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1202,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1208,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1215,1
    - Dst: _curses_window_insnstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1218,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1177
    functionDepth: 6
    functionLinenumber: 1177
    functionLinenumberEnd: 1222
    functionName: _curses_window_insnstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_insnstr_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_insnstr(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1248,1
    - Dst: _curses_window_is_linetouched_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1241
    functionDepth: 5
    functionLinenumber: 1241
    functionLinenumberEnd: 1255
    functionName: _curses_window_is_linetouched
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_window_is_linetouched_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_is_linetouched(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1288,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1292,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1298,1
    - Dst: _curses_window_noutrefresh_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1305
    functionName: _curses_window_noutrefresh
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_noutrefresh_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_noutrefresh(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_window_noutrefresh_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1327
    functionDepth: 2
    functionLinenumber: 1327
    functionLinenumberEnd: 1331
    functionName: _curses_window_noutrefresh
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_noutrefresh_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_noutrefresh(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1370,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1372,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1372,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1377,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1377,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1383,1
    - Dst: _curses_window_overlay_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1386,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1357
    functionDepth: 6
    functionLinenumber: 1357
    functionLinenumberEnd: 1390
    functionName: _curses_window_overlay
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    - clinic_state
    - _curses_window_overlay_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_overlay(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1429,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1431,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1431,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1436,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1436,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1442,1
    - Dst: _curses_window_overwrite_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1445,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1416
    functionDepth: 6
    functionLinenumber: 1416
    functionLinenumberEnd: 1449
    functionName: _curses_window_overwrite
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    - clinic_state
    - _curses_window_overwrite_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_overwrite(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_window_putwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1465
    functionDepth: 6
    functionLinenumber: 1465
    functionLinenumberEnd: 1473
    functionName: _curses_window_putwin
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_putwin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_putwin(PyObject *self, PyObject *file)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1501,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1504,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1505,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1508,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1509,1
    - Dst: _curses_window_redrawln_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1494
    functionDepth: 6
    functionLinenumber: 1494
    functionLinenumberEnd: 1516
    functionName: _curses_window_redrawln
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_window_redrawln_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_redrawln(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1554,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1558,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1564,1
    - Dst: _curses_window_refresh_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1542
    functionDepth: 2
    functionLinenumber: 1542
    functionLinenumberEnd: 1571
    functionName: _curses_window_refresh
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_refresh_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_refresh(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1600,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1604,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1607,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1608,1
    - Dst: _curses_window_setscrreg_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1593
    functionDepth: 6
    functionLinenumber: 1593
    functionLinenumberEnd: 1615
    functionName: _curses_window_setscrreg
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_window_setscrreg_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_setscrreg(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1650,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1652,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1657,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1663,1
    - Dst: _curses_window_subwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1640
    functionDepth: 5
    functionLinenumber: 1640
    functionLinenumberEnd: 1670
    functionName: _curses_window_subwin
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _curses_window_subwin_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_subwin(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1695,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1699,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1705,1
    - Dst: _curses_window_scroll_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1708,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1688
    functionDepth: 6
    functionLinenumber: 1688
    functionLinenumberEnd: 1712
    functionName: _curses_window_scroll
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _curses_window_scroll_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_scroll(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1737,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1739,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1744,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1750,1
    - Dst: _curses_window_touchline_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1753,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1728
    functionDepth: 6
    functionLinenumber: 1728
    functionLinenumberEnd: 1757
    functionName: _curses_window_touchline
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _curses_window_touchline_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_touchline(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1794,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1796,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1801,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1807,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1813,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1820,1
    - Dst: _curses_window_vline_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1823,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1782
    functionDepth: 6
    functionLinenumber: 1782
    functionLinenumberEnd: 1827
    functionName: _curses_window_vline
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_vline_impl
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_vline(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_filter_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1842
    functionDepth: 1
    functionLinenumber: 1842
    functionLinenumberEnd: 1846
    functionName: _curses_filter
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1866
    functionName: _curses_baudrate
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1884
    functionName: _curses_beep
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:1901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1902
    functionName: _curses_can_change_color
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1931,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1937,1
    - Dst: _curses_cbreak_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1942,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1946
    functionName: _curses_cbreak
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_cbreak_impl
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_cbreak(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: color_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1972,1
    - Dst: _curses_color_content_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1966
    functionDepth: 5
    functionLinenumber: 1966
    functionLinenumberEnd: 1979
    functionName: _curses_color_content
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_color_content_impl
    - color_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_content(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2005,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2006,1
    - Dst: _curses_color_pair_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 1999
    functionDepth: 2
    functionLinenumber: 1999
    functionLinenumberEnd: 2013
    functionName: _curses_color_pair
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_color_pair_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_pair(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2041,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2042,1
    - Dst: _curses_curs_set_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2035
    functionDepth: 5
    functionLinenumber: 2035
    functionLinenumberEnd: 2049
    functionName: _curses_curs_set
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_curs_set_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_curs_set(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_def_prog_mode_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2067
    functionDepth: 0
    functionLinenumber: 2067
    functionLinenumberEnd: 2071
    functionName: _curses_def_prog_mode
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2093
    functionName: _curses_def_shell_mode
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2117,1
    - Dst: _curses_delay_output_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2110
    functionDepth: 6
    functionLinenumber: 2110
    functionLinenumberEnd: 2124
    functionName: _curses_delay_output
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_delay_output_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_delay_output(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_doupdate_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2138
    functionDepth: 0
    functionLinenumber: 2138
    functionLinenumberEnd: 2142
    functionName: _curses_doupdate
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2167,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2173,1
    - Dst: _curses_echo_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2182
    functionName: _curses_echo
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_echo_impl
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_cursesmodule.c.h:2199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2200
    functionName: _curses_endwin
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2214
    functionDepth: 2
    functionLinenumber: 2214
    functionLinenumberEnd: 2218
    functionName: _curses_erasechar
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2234
    functionDepth: 0
    functionLinenumber: 2234
    functionLinenumberEnd: 2238
    functionName: _curses_flash
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2255
    functionDepth: 0
    functionLinenumber: 2255
    functionLinenumberEnd: 2259
    functionName: _curses_flushinp
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2277
    functionDepth: 2
    functionLinenumber: 2277
    functionLinenumberEnd: 2281
    functionName: _curses_getsyx
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2302
    functionDepth: 5
    functionLinenumber: 2302
    functionLinenumberEnd: 2306
    functionName: _curses_getmouse
    functionSourceFile: /src/cpython/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: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2337,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2341,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2342,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2346,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2351,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2359,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2360,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2363,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2364,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2367,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2368,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2371,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2372,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2376,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2384,1
    - Dst: _curses_ungetmouse_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2391,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2327
    functionDepth: 6
    functionLinenumber: 2327
    functionLinenumberEnd: 2395
    functionName: _curses_ungetmouse
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_AsLong
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - _curses_ungetmouse_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_ungetmouse(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2435,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2436,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2440,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2445,1
    - Dst: _curses_halfdelay_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2428
    functionDepth: 6
    functionLinenumber: 2428
    functionLinenumberEnd: 2457
    functionName: _curses_halfdelay
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_halfdelay_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_halfdelay(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_has_colors_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2471
    functionDepth: 0
    functionLinenumber: 2471
    functionLinenumberEnd: 2475
    functionName: _curses_has_colors
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2489
    functionDepth: 0
    functionLinenumber: 2489
    functionLinenumberEnd: 2493
    functionName: _curses_has_ic
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:2510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2507
    functionDepth: 0
    functionLinenumber: 2507
    functionLinenumberEnd: 2511
    functionName: _curses_has_il
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2536,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2537,1
    - Dst: _curses_has_key_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2530
    functionDepth: 2
    functionLinenumber: 2530
    functionLinenumberEnd: 2544
    functionName: _curses_has_key
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_has_key_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_key(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2583,1
    - Dst: color_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2586,1
    - Dst: component_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2589,1
    - Dst: component_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2592,1
    - Dst: component_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2595,1
    - Dst: _curses_init_color_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2574
    functionDepth: 6
    functionLinenumber: 2574
    functionLinenumberEnd: 2602
    functionName: _curses_init_color
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_init_color_impl
    - component_converter
    - _PyArg_CheckPositional
    - color_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_init_color(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2634,1
    - Dst: pair_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2637,1
    - Dst: color_allow_default_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2640,1
    - Dst: color_allow_default_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2643,1
    - Dst: _curses_init_pair_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2646,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2626
    functionDepth: 5
    functionLinenumber: 2626
    functionLinenumberEnd: 2650
    functionName: _curses_init_pair
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - pair_converter
    - _PyArg_CheckPositional
    - _curses_init_pair_impl
    - color_allow_default_converter
    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/cpython/Modules/clinic/_cursesmodule.c.h:2669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2666
    functionDepth: 5
    functionLinenumber: 2666
    functionLinenumberEnd: 2670
    functionName: _curses_initscr
    functionSourceFile: /src/cpython/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: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2704,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2706,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2706,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2723,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2727,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2739,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2741,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2745,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2746,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2751,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2758,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2759,1
    - Dst: _curses_setupterm_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2763,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: 2767
      start: 2691
    functionDepth: 3
    functionLinenumber: 2691
    functionLinenumberEnd: 2767
    functionName: _curses_setupterm
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_setupterm_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyLong_AsInt
    - _Py_ID
    - PyErr_SetString
    - PyErr_Occurred
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_get_escdelay_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2787
    functionDepth: 1
    functionLinenumber: 2787
    functionLinenumberEnd: 2791
    functionName: _curses_get_escdelay
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_get_escdelay_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_get_escdelay(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2822,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2823,1
    - Dst: _curses_set_escdelay_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2816
    functionDepth: 6
    functionLinenumber: 2816
    functionLinenumberEnd: 2830
    functionName: _curses_set_escdelay
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_set_escdelay_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_set_escdelay(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_get_tabsize_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2855
    functionName: _curses_get_tabsize
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_get_tabsize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_get_tabsize(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2885,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2886,1
    - Dst: _curses_set_tabsize_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2879
    functionDepth: 6
    functionLinenumber: 2879
    functionLinenumberEnd: 2893
    functionName: _curses_set_tabsize
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_set_tabsize_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_set_tabsize(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2914,1
    - Dst: _curses_intrflush_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2908
    functionDepth: 6
    functionLinenumber: 2908
    functionLinenumberEnd: 2922
    functionName: _curses_intrflush
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _curses_intrflush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_intrflush(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_isendwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2936
    functionDepth: 0
    functionLinenumber: 2936
    functionLinenumberEnd: 2940
    functionName: _curses_isendwin
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2968,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2971,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2972,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2976,1
    - Dst: _curses_is_term_resized_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2979,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2961
    functionDepth: 2
    functionLinenumber: 2961
    functionLinenumberEnd: 2983
    functionName: _curses_is_term_resized
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_is_term_resized_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_is_term_resized(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3008,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3009,1
    - Dst: _curses_keyname_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 3002
    functionDepth: 2
    functionLinenumber: 3002
    functionLinenumberEnd: 3016
    functionName: _curses_keyname
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_keyname_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_keyname(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_killchar_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3030
    functionDepth: 2
    functionLinenumber: 3030
    functionLinenumberEnd: 3034
    functionName: _curses_killchar
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3051
    functionDepth: 0
    functionLinenumber: 3051
    functionLinenumberEnd: 3055
    functionName: _curses_longname
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3078,1
    - Dst: _curses_meta_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3072
    functionDepth: 6
    functionLinenumber: 3072
    functionLinenumberEnd: 3086
    functionName: _curses_meta
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _curses_meta_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_meta(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3115,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3116,1
    - Dst: _curses_mouseinterval_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3109
    functionDepth: 5
    functionLinenumber: 3109
    functionLinenumberEnd: 3123
    functionName: _curses_mouseinterval
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_mouseinterval_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mouseinterval(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3152,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3153,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3157,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3165,1
    - Dst: _curses_mousemask_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3176
      start: 3146
    functionDepth: 2
    functionLinenumber: 3146
    functionLinenumberEnd: 3176
    functionName: _curses_mousemask
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - _curses_mousemask_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mousemask(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3202,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3203,1
    - Dst: _curses_napms_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3206,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3207,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3214
      start: 3195
    functionDepth: 4
    functionLinenumber: 3195
    functionLinenumberEnd: 3214
    functionName: _curses_napms
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - _curses_napms_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_napms(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3240,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3244,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3248,1
    - Dst: _curses_newpad_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3251,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3233
    functionDepth: 5
    functionLinenumber: 3233
    functionLinenumberEnd: 3255
    functionName: _curses_newpad
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_newpad_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    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/cpython/Modules/clinic/_cursesmodule.c.h:3290,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3292,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3297,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3303,1
    - Dst: _curses_newwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3306,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3280
    functionDepth: 5
    functionLinenumber: 3280
    functionLinenumberEnd: 3310
    functionName: _curses_newwin
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_newwin_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_newwin(PyObject *module, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3336,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3342,1
    - Dst: _curses_nl_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3330
    functionDepth: 1
    functionLinenumber: 3330
    functionLinenumberEnd: 3351
    functionName: _curses_nl
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_nl_impl
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_cursesmodule.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: 0
    functionLinenumber: 3367
    functionLinenumberEnd: 3371
    functionName: _curses_nocbreak
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3391
    functionName: _curses_noecho
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3412
      start: 3408
    functionDepth: 0
    functionLinenumber: 3408
    functionLinenumberEnd: 3412
    functionName: _curses_nonl
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3429
    functionDepth: 0
    functionLinenumber: 3429
    functionLinenumberEnd: 3433
    functionName: _curses_noqiflush
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3453
      start: 3449
    functionDepth: 0
    functionLinenumber: 3449
    functionLinenumberEnd: 3453
    functionName: _curses_noraw
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: pair_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3476,1
    - Dst: _curses_pair_content_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3483
      start: 3470
    functionDepth: 5
    functionLinenumber: 3470
    functionLinenumberEnd: 3483
    functionName: _curses_pair_content
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - pair_converter
    - _curses_pair_content_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_content(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3505,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3506,1
    - Dst: _curses_pair_number_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3499
    functionDepth: 2
    functionLinenumber: 3499
    functionLinenumberEnd: 3513
    functionName: _curses_pair_number
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_pair_number_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_number(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3535,1
    - Dst: _curses_putp_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3542
      start: 3529
    functionDepth: 6
    functionLinenumber: 3529
    functionLinenumberEnd: 3542
    functionName: _curses_putp
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _curses_putp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_putp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3568,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3574,1
    - Dst: _curses_qiflush_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3583
      start: 3562
    functionDepth: 2
    functionLinenumber: 3562
    functionLinenumberEnd: 3583
    functionName: _curses_qiflush
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_qiflush_impl
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_qiflush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_update_lines_cols_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3598
    functionDepth: 3
    functionLinenumber: 3598
    functionLinenumberEnd: 3602
    functionName: _curses_update_lines_cols
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_update_lines_cols_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_update_lines_cols(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3631,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3637,1
    - Dst: _curses_raw_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3625
    functionDepth: 1
    functionLinenumber: 3625
    functionLinenumberEnd: 3646
    functionName: _curses_raw
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _curses_raw_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_cursesmodule.c.h:3663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3664
      start: 3660
    functionDepth: 0
    functionLinenumber: 3660
    functionLinenumberEnd: 3664
    functionName: _curses_reset_prog_mode
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3682
      start: 3678
    functionDepth: 0
    functionLinenumber: 3678
    functionLinenumberEnd: 3682
    functionName: _curses_reset_shell_mode
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3700
      start: 3696
    functionDepth: 0
    functionLinenumber: 3696
    functionLinenumberEnd: 3700
    functionName: _curses_resetty
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3731,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3735,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3736,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3745,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3754,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3755,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3764,1
    - Dst: _curses_resizeterm_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3772,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3776
      start: 3724
    functionDepth: 6
    functionLinenumber: 3724
    functionLinenumberEnd: 3776
    functionName: _curses_resizeterm
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_resizeterm_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resizeterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3812,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3816,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3821,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3826,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3835,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3836,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3840,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3845,1
    - Dst: _curses_resize_term_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3853,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3805
    functionDepth: 6
    functionLinenumber: 3805
    functionLinenumberEnd: 3857
    functionName: _curses_resize_term
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_resize_term_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_cursesmodule.c.h:3876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3877
      start: 3873
    functionDepth: 0
    functionLinenumber: 3873
    functionLinenumberEnd: 3877
    functionName: _curses_savetty
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3907,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3911,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3914,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3915,1
    - Dst: _curses_setsyx_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3918,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3900
    functionDepth: 2
    functionLinenumber: 3900
    functionLinenumberEnd: 3922
    functionName: _curses_setsyx
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_setsyx_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    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/cpython/Modules/clinic/_cursesmodule.c.h:3948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3945
    functionDepth: 5
    functionLinenumber: 3945
    functionLinenumberEnd: 3949
    functionName: _curses_start_color
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3963
    functionDepth: 0
    functionLinenumber: 3963
    functionLinenumberEnd: 3967
    functionName: _curses_termattrs
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:3984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3981
    functionDepth: 0
    functionLinenumber: 3981
    functionLinenumberEnd: 3985
    functionName: _curses_termname
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_cursesmodule.c.h:4011,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4012,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4016,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4020,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4021,1
    - Dst: _curses_tigetflag_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4024,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4028
      start: 4005
    functionDepth: 2
    functionLinenumber: 4005
    functionLinenumberEnd: 4028
    functionName: _curses_tigetflag
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tigetflag_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetflag(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4054,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4055,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4059,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4063,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4064,1
    - Dst: _curses_tigetnum_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4067,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4071
      start: 4048
    functionDepth: 2
    functionLinenumber: 4048
    functionLinenumberEnd: 4071
    functionName: _curses_tigetnum
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tigetnum_impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetnum(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4097,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4098,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4102,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4106,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4107,1
    - Dst: _curses_tigetstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4114
      start: 4091
    functionDepth: 2
    functionLinenumber: 4091
    functionLinenumberEnd: 4114
    functionName: _curses_tigetstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _curses_tigetstr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetstr(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4148,1
    - Dst: _curses_tparm_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4156
      start: 4133
    functionDepth: 5
    functionLinenumber: 4133
    functionLinenumberEnd: 4156
    functionName: _curses_tparm
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _curses_tparm_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tparm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4183,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4184,1
    - Dst: _curses_typeahead_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4191
      start: 4177
    functionDepth: 6
    functionLinenumber: 4177
    functionLinenumberEnd: 4191
    functionName: _curses_typeahead
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_typeahead_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_typeahead(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4258,1
    - Dst: _curses_use_env_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4252
    functionDepth: 1
    functionLinenumber: 4252
    functionLinenumberEnd: 4266
    functionName: _curses_use_env
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _curses_use_env_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_env(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_use_default_colors_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4288
      start: 4284
    functionDepth: 6
    functionLinenumber: 4284
    functionLinenumberEnd: 4288
    functionName: _curses_use_default_colors
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4318,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4321,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4322,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4325,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4326,1
    - Dst: _curses_assume_default_colors_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4333
      start: 4311
    functionDepth: 6
    functionLinenumber: 4311
    functionLinenumberEnd: 4333
    functionName: _curses_assume_default_colors
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_assume_default_colors_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_assume_default_colors(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_has_extended_color_support_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4352
    functionDepth: 2
    functionLinenumber: 4352
    functionLinenumberEnd: 4356
    functionName: _curses_has_extended_color_support
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_has_extended_color_support_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_extended_color_support(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha3module.c.h:35,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha3module.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha3module.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha3module.c.h:37,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha3module.c.h:55,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha3module.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha3module.c.h:61,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/sha3module.c.h:61,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/sha3module.c.h:80,1
    - Dst: py_sha3_new_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:90,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 94
    functionName: py_sha3_new
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - py_sha3_new_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha3module.c.h:111,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/sha3module.c.h:112,1
    - Dst: _sha3_sha3_224_copy_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: _sha3_sha3_224_copy
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _sha3_sha3_224_copy_impl
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha3_sha3_224_digest_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: _sha3_sha3_224_digest
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_sha3_224_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha3_sha3_224_hexdigest_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: _sha3_sha3_224_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_sha3_224_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha3_sha3_224_update_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: _sha3_sha3_224_update
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_sha3_224_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_update(PyObject *self, PyObject *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha3module.c.h:201,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha3module.c.h:203,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha3module.c.h:222,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/sha3module.c.h:229,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/sha3module.c.h:231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/sha3module.c.h:232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/sha3module.c.h:234,1
    - Dst: _sha3_shake_128_digest_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 243
    functionName: _sha3_shake_128_digest
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _sha3_shake_128_digest_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_digest(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha3module.c.h:270,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha3module.c.h:272,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha3module.c.h:291,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/sha3module.c.h:298,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/sha3module.c.h:300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/sha3module.c.h:301,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/sha3module.c.h:303,1
    - Dst: _sha3_shake_128_hexdigest_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 312
    functionName: _sha3_shake_128_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _sha3_shake_128_hexdigest_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_hexdigest(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/blake2module.c.h:42,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:44,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/blake2module.c.h:62,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/blake2module.c.h:63,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/blake2module.c.h:79,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/blake2module.c.h:79,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:98,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:99,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/blake2module.c.h:107,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/blake2module.c.h:115,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/blake2module.c.h:123,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:132,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:141,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/blake2module.c.h:149,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/blake2module.c.h:157,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:166,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:174,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:175,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/blake2module.c.h:183,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/blake2module.c.h:192,1
    - Dst: py_blake2b_new_impl
      Src: /src/cpython/Modules/clinic/blake2module.c.h:202,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/blake2module.c.h:207,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/blake2module.c.h:211,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/blake2module.c.h:215,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 166
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 219
    functionName: py_blake2b_new
    functionSourceFile: /src/cpython/Modules/clinic/blake2module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - py_blake2b_new_impl
    - _Py_ID
    - _PyLong_UnsignedLongLong_Converter
    - PyObject_GetBuffer
    - _PyLong_UnsignedLong_Converter
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/blake2module.c.h:251,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/blake2module.c.h:253,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/blake2module.c.h:271,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/blake2module.c.h:272,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/blake2module.c.h:288,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/blake2module.c.h:288,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:308,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/blake2module.c.h:316,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/blake2module.c.h:324,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/blake2module.c.h:332,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:340,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:341,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:349,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:350,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/blake2module.c.h:358,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/blake2module.c.h:366,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:374,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:375,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/blake2module.c.h:383,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/blake2module.c.h:384,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/blake2module.c.h:392,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/blake2module.c.h:401,1
    - Dst: py_blake2s_new_impl
      Src: /src/cpython/Modules/clinic/blake2module.c.h:411,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/blake2module.c.h:416,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/blake2module.c.h:420,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/blake2module.c.h:424,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 166
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 428
    functionName: py_blake2s_new
    functionSourceFile: /src/cpython/Modules/clinic/blake2module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - py_blake2s_new_impl
    - _Py_ID
    - _PyLong_UnsignedLongLong_Converter
    - PyObject_GetBuffer
    - _PyLong_UnsignedLong_Converter
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/blake2module.c.h:445,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/blake2module.c.h:446,1
    - Dst: _blake2_blake2b_copy_impl
      Src: /src/cpython/Modules/clinic/blake2module.c.h:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: _blake2_blake2b_copy
    functionSourceFile: /src/cpython/Modules/clinic/blake2module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _blake2_blake2b_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2b_update_impl
      Src: /src/cpython/Modules/clinic/blake2module.c.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 472
    functionName: _blake2_blake2b_update
    functionSourceFile: /src/cpython/Modules/clinic/blake2module.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2b_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_update(PyObject *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2b_digest_impl
      Src: /src/cpython/Modules/clinic/blake2module.c.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: _blake2_blake2b_digest
    functionSourceFile: /src/cpython/Modules/clinic/blake2module.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2b_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2b_hexdigest_impl
      Src: /src/cpython/Modules/clinic/blake2module.c.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: _blake2_blake2b_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/blake2module.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2b_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _operator_truth_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:26,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_operator.c.h:27,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_operator.c.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: _operator_truth
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - _operator_truth_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_truth(PyObject *module, PyObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_operator.c.h:55,1
    - Dst: _operator_add_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: _operator_add
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_add_impl
    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/cpython/Modules/clinic/_operator.c.h:85,1
    - Dst: _operator_sub_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: _operator_sub
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_sub_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:115,1
    - Dst: _operator_mul_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: _operator_mul
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:145,1
    - Dst: _operator_matmul_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: _operator_matmul
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_matmul_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:175,1
    - Dst: _operator_floordiv_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: _operator_floordiv
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_floordiv_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:205,1
    - Dst: _operator_truediv_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 214
    functionName: _operator_truediv
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:235,1
    - Dst: _operator_mod_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 244
    functionName: _operator_mod
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_mod_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:310,1
    - Dst: _operator_lshift_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 319
    functionName: _operator_lshift
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_lshift_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:340,1
    - Dst: _operator_rshift_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 349
    functionName: _operator_rshift
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_rshift_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:369,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_operator.c.h:370,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_operator.c.h:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 377
    functionName: _operator_not_
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_not__impl
    - PyBool_FromLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_not_(PyObject *module, PyObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_operator.c.h:398,1
    - Dst: _operator_and__impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 407
    functionName: _operator_and_
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:428,1
    - Dst: _operator_xor_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: _operator_xor
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_xor_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:458,1
    - Dst: _operator_or__impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: _operator_or_
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_or__impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:488,1
    - Dst: _operator_iadd_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 497
    functionName: _operator_iadd
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_iadd_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:518,1
    - Dst: _operator_isub_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 527
    functionName: _operator_isub
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_isub_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:548,1
    - Dst: _operator_imul_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 557
    functionName: _operator_imul
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_imul_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:578,1
    - Dst: _operator_imatmul_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 587
    functionName: _operator_imatmul
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_imatmul_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:608,1
    - Dst: _operator_ifloordiv_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 617
    functionName: _operator_ifloordiv
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_ifloordiv_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:638,1
    - Dst: _operator_itruediv_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 647
    functionName: _operator_itruediv
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_itruediv_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:668,1
    - Dst: _operator_imod_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 677
    functionName: _operator_imod
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_imod_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:698,1
    - Dst: _operator_ilshift_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 707
    functionName: _operator_ilshift
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:728,1
    - Dst: _operator_irshift_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 737
    functionName: _operator_irshift
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:758,1
    - Dst: _operator_iand_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 767
    functionName: _operator_iand
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_iand_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:788,1
    - Dst: _operator_ixor_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 797
    functionName: _operator_ixor
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_ixor_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:818,1
    - Dst: _operator_ior_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 827
    functionName: _operator_ior
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_ior_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:848,1
    - Dst: _operator_concat_impl
      Src: /src/cpython/Modules/clinic/_operator.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: 2
    functionLinenumber: 841
    functionLinenumberEnd: 857
    functionName: _operator_concat
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:878,1
    - Dst: _operator_iconcat_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 887
    functionName: _operator_iconcat
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_iconcat_impl
    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/cpython/Modules/clinic/_operator.c.h:909,1
    - Dst: _operator_contains_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:914,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_operator.c.h:915,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_operator.c.h:918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 922
    functionName: _operator_contains
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - _operator_contains_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:944,1
    - Dst: _operator_indexOf_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:949,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_operator.c.h:950,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_operator.c.h:953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 957
    functionName: _operator_indexOf
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    - _operator_indexOf_impl
    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/cpython/Modules/clinic/_operator.c.h:979,1
    - Dst: _operator_countOf_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_operator.c.h:985,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_operator.c.h:988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 971
    functionDepth: 2
    functionLinenumber: 971
    functionLinenumberEnd: 992
    functionName: _operator_countOf
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    - _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/cpython/Modules/clinic/_operator.c.h:1013,1
    - Dst: _operator_getitem_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1006
    functionDepth: 2
    functionLinenumber: 1006
    functionLinenumberEnd: 1022
    functionName: _operator_getitem
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_getitem_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:1045,1
    - Dst: _operator_setitem_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1055
    functionName: _operator_setitem
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:1076,1
    - Dst: _operator_delitem_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1085
    functionName: _operator_delitem
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_delitem_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:1106,1
    - Dst: _operator_eq_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1115
    functionName: _operator_eq
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_eq_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:1136,1
    - Dst: _operator_ne_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1145
    functionName: _operator_ne
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:1166,1
    - Dst: _operator_lt_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1175
    functionName: _operator_lt
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:1196,1
    - Dst: _operator_le_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1205
    functionName: _operator_le
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:1226,1
    - Dst: _operator_gt_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1219
    functionDepth: 2
    functionLinenumber: 1219
    functionLinenumberEnd: 1235
    functionName: _operator_gt
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:1256,1
    - Dst: _operator_ge_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1265
    functionName: _operator_ge
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/_operator.c.h:1286,1
    - Dst: _operator_pow_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1279
    functionDepth: 2
    functionLinenumber: 1279
    functionLinenumberEnd: 1295
    functionName: _operator_pow
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_pow_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:1316,1
    - Dst: _operator_ipow_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1325
    functionName: _operator_ipow
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_ipow_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:1355,1
    - Dst: _operator_is__impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1364
    functionName: _operator_is_
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_is__impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/_operator.c.h:1385,1
    - Dst: _operator_is_not_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1394
    functionName: _operator_is_not
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_is_not_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is_not(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_operator.c.h:1441,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_operator.c.h:1450,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_operator.c.h:1452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_operator.c.h:1453,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_operator.c.h:1455,1
    - Dst: _operator_length_hint_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1461,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_operator.c.h:1462,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_operator.c.h:1465,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1433
    functionDepth: 2
    functionLinenumber: 1433
    functionLinenumberEnd: 1469
    functionName: _operator_length_hint
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    - _operator_length_hint_impl
    - PyLong_AsSsize_t
    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/cpython/Modules/clinic/_operator.c.h:1500,1
    - Dst: _operator__compare_digest_impl
      Src: /src/cpython/Modules/clinic/_operator.c.h:1505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1509
    functionName: _operator__compare_digest
    functionSourceFile: /src/cpython/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator__compare_digest_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator__compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:25,1
    - Dst: readline_parse_and_bind_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:26,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: readline_parse_and_bind
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - readline_parse_and_bind_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_parse_and_bind(PyObject *module, PyObject *string)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:52,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:60,1
    - Dst: readline_read_init_file_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:61,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    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: readline_read_init_file
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - readline_read_init_file_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_read_init_file(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:88,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:96,1
    - Dst: readline_read_history_file_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:97,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: readline_read_history_file
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - readline_read_history_file_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_read_history_file(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:124,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:132,1
    - Dst: readline_write_history_file_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:133,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: readline_write_history_file
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_write_history_file_impl
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_write_history_file(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:164,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/readline.c.h:167,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:168,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:176,1
    - Dst: readline_append_history_file_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:177,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 182
    functionName: readline_append_history_file
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - readline_append_history_file_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_append_history_file(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/readline.c.h:206,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:207,1
    - Dst: readline_set_history_length_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 214
    functionName: readline_set_history_length
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - readline_set_history_length_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_history_length(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_get_history_length_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: readline_get_history_length
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_get_history_length_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_history_length(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:257,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:265,1
    - Dst: readline_set_completion_display_matches_hook_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:266,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 271
    functionName: readline_set_completion_display_matches_hook
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_set_completion_display_matches_hook_impl
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_completion_display_matches_hook(PyObject *module, PyObject *const
      *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:294,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:302,1
    - Dst: readline_set_startup_hook_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:303,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 308
    functionName: readline_set_startup_hook
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - readline_set_startup_hook_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_startup_hook(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:334,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:342,1
    - Dst: readline_set_pre_input_hook_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:343,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 348
    functionName: readline_set_pre_input_hook
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - readline_set_pre_input_hook_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_pre_input_hook(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_get_completion_type_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: readline_get_completion_type
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_get_completion_type_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_completion_type(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_get_begidx_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: readline_get_begidx
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_get_begidx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_begidx(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_get_endidx_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: readline_get_endidx
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_get_endidx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_endidx(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:423,1
    - Dst: readline_set_completer_delims_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:424,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 428
    functionName: readline_set_completer_delims
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_set_completer_delims_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_completer_delims(PyObject *module, PyObject *string)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/readline.c.h:448,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:449,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:452,1
    - Dst: readline_remove_history_item_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:453,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 458
    functionName: readline_remove_history_item
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - readline_remove_history_item_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_remove_history_item(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:482,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/readline.c.h:485,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:486,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/readline.c.h:489,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/readline.c.h:490,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:494,1
    - Dst: readline_replace_history_item_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:495,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 500
    functionName: readline_replace_history_item
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - readline_replace_history_item_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_replace_history_item(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:519,1
    - Dst: readline_add_history_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:520,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: readline_add_history
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - readline_add_history_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_add_history(PyObject *module, PyObject *string)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/readline.c.h:545,1
    - Dst: readline_set_auto_history_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 553
    functionName: readline_set_auto_history
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - readline_set_auto_history_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_auto_history(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:572,1
    - Dst: readline_get_completer_delims_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:573,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 577
    functionName: readline_get_completer_delims
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_get_completer_delims_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_completer_delims(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/readline.c.h:601,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:609,1
    - Dst: readline_set_completer_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:610,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 615
    functionName: readline_set_completer
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - readline_set_completer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_completer(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_get_completer_impl
      Src: /src/cpython/Modules/clinic/readline.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: readline_get_completer
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_get_completer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_completer(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/readline.c.h:653,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:654,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:657,1
    - Dst: readline_get_history_item_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:658,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 663
    functionName: readline_get_history_item
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - readline_get_history_item_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_history_item(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:682,1
    - Dst: readline_get_current_history_length_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:683,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: readline_get_current_history_length
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_get_current_history_length_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_current_history_length(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:706,1
    - Dst: readline_get_line_buffer_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:707,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 711
    functionName: readline_get_line_buffer
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - readline_get_line_buffer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_line_buffer(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:732,1
    - Dst: readline_clear_history_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:733,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 737
    functionName: readline_clear_history
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - readline_clear_history_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_clear_history(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:758,1
    - Dst: readline_insert_text_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:759,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 763
    functionName: readline_insert_text
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - readline_insert_text_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_insert_text(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:782,1
    - Dst: readline_redisplay_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:783,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 787
    functionName: readline_redisplay
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - readline_redisplay_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_redisplay(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:27,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:30,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:31,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:36,1
    - Dst: _heapq_heappush_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:37,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: _heapq_heappush
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyList_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _heapq_heappush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:62,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:63,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:67,1
    - Dst: _heapq_heappop_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:68,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: _heapq_heappop
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyList_Check
    - _heapq_heappop_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappop(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:102,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:105,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:106,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:111,1
    - Dst: _heapq_heapreplace_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:112,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 117
    functionName: _heapq_heapreplace
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyList_Check
    - _heapq_heapreplace_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapreplace(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:141,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:144,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:145,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:150,1
    - Dst: _heapq_heappushpop_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:151,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: _heapq_heappushpop
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _heapq_heappushpop_impl
    - PyList_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappushpop(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:176,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:177,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:181,1
    - Dst: _heapq_heapify_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:182,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 187
    functionName: _heapq_heapify
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _heapq_heapify_impl
    - PyList_Check
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapify(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:208,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:211,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:212,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:217,1
    - Dst: _heapq_heappush_max_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:218,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 223
    functionName: _heapq_heappush_max
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyList_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _heapq_heappush_max_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappush_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:243,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:244,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:248,1
    - Dst: _heapq_heappop_max_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:249,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 254
    functionName: _heapq_heappop_max
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyList_Check
    - _PyArg_BadArgument
    - _heapq_heappop_max_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappop_max(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:275,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:278,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:279,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:284,1
    - Dst: _heapq_heapreplace_max_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:285,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 290
    functionName: _heapq_heapreplace_max
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyList_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _heapq_heapreplace_max_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapreplace_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:310,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:311,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:315,1
    - Dst: _heapq_heapify_max_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:316,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: _heapq_heapify_max
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyList_Check
    - _PyArg_BadArgument
    - _heapq_heapify_max_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapify_max(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:345,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:348,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:349,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:354,1
    - Dst: _heapq_heappushpop_max_impl
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:355,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_heapqmodule.c.h:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 360
    functionName: _heapq_heappushpop_max
    functionSourceFile: /src/cpython/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _heapq_heappushpop_max_impl
    - PyList_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappushpop_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:30,1
    - Dst: pyexpat_xmlparser_SetReparseDeferralEnabled_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: pyexpat_xmlparser_SetReparseDeferralEnabled
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - pyexpat_xmlparser_SetReparseDeferralEnabled_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetReparseDeferralEnabled(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_xmlparser_GetReparseDeferralEnabled_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: pyexpat_xmlparser_GetReparseDeferralEnabled
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_GetReparseDeferralEnabled_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetReparseDeferralEnabled(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:94,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:103,1
    - Dst: pyexpat_xmlparser_Parse_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 112
    functionName: pyexpat_xmlparser_Parse
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - pyexpat_xmlparser_Parse_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_Parse(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:147,1
    - Dst: pyexpat_xmlparser_ParseFile_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 157
    functionName: pyexpat_xmlparser_ParseFile
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_ParseFile_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_ParseFile(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:177,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:178,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:182,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:187,1
    - Dst: pyexpat_xmlparser_SetBase_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 194
    functionName: pyexpat_xmlparser_SetBase
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - pyexpat_xmlparser_SetBase_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetBase(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_xmlparser_GetBase_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: pyexpat_xmlparser_GetBase
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_GetBase_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetBase(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_xmlparser_GetInputContext_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: pyexpat_xmlparser_GetInputContext
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_GetInputContext_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetInputContext(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:272,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:280,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:282,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:286,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:287,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:292,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:298,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:299,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:303,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:307,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:308,1
    - Dst: pyexpat_xmlparser_ExternalEntityParserCreate_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:312,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 316
    functionName: pyexpat_xmlparser_ExternalEntityParserCreate
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_ExternalEntityParserCreate_impl
    - strlen
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_ExternalEntityParserCreate(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:341,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:342,1
    - Dst: pyexpat_xmlparser_SetParamEntityParsing_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 349
    functionName: pyexpat_xmlparser_SetParamEntityParsing
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - pyexpat_xmlparser_SetParamEntityParsing_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetParamEntityParsing(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:390,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:398,1
    - Dst: pyexpat_xmlparser_UseForeignDTD_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:403,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 407
    functionName: pyexpat_xmlparser_UseForeignDTD
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_UseForeignDTD_impl
    - PyObject_IsTrue
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_UseForeignDTD(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:438,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:440,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:440,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:440,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:457,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:462,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:474,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:476,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:480,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:481,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:486,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:497,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:499,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:504,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:509,1
    - Dst: pyexpat_ParserCreate_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:518,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 522
    functionName: pyexpat_ParserCreate
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_ParserCreate_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_ParserCreate(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:542,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:543,1
    - Dst: pyexpat_ErrorString_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: pyexpat_ErrorString
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - pyexpat_ErrorString_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_ErrorString(PyObject *module, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:45,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:47,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:47,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:64,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:68,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:86,1
    - Dst: _interpreters_create_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:91,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 95
    functionName: _interpreters_create
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _interpreters_create_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:125,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:127,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:127,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:144,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:148,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:157,1
    - Dst: _interpreters_destroy_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 166
    functionName: _interpreters_destroy
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _interpreters_destroy_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_destroy(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:193,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:195,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:212,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:215,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:223,1
    - Dst: _interpreters_list_all_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:228,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: 232
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 232
    functionName: _interpreters_list_all
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _interpreters_list_all_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_list_all(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _interpreters_get_current_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: _interpreters_get_current
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpreters_get_current_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_get_current(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _interpreters_get_main_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: _interpreters_get_main
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpreters_get_main_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_get_main(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:298,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:298,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:298,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:315,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:320,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:326,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:327,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:334,1
    - Dst: _interpreters_set___main___attrs_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 343
    functionName: _interpreters_set___main___attrs
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - _interpreters_set___main___attrs_impl
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_set___main___attrs(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:384,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:386,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:386,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:386,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:386,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:403,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:409,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:420,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:421,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:433,1
    - Dst: _interpreters_exec_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:438,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 442
    functionName: _interpreters_exec
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _interpreters_exec_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:473,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:475,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:475,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:475,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:475,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:492,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:498,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:504,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:505,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:513,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:514,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:526,1
    - Dst: _interpreters_run_string_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:531,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: 535
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 535
    functionName: _interpreters_run_string
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _interpreters_run_string_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_run_string(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:568,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:570,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:570,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:570,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:570,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:587,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:593,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:604,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:605,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:617,1
    - Dst: _interpreters_run_func_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 555
    functionDepth: 4
    functionLinenumber: 555
    functionLinenumberEnd: 626
    functionName: _interpreters_run_func
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpreters_run_func_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_run_func(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:658,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:660,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:660,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:660,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:660,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:660,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:660,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:677,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:685,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:696,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:697,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:706,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:707,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:720,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:728,1
    - Dst: _interpreters_call_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:733,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 737
    functionName: _interpreters_call
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyTuple_Check
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyDict_Check
    - _interpreters_call_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_call(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:764,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:766,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:785,1
    - Dst: _interpreters_is_shareable_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 795
    functionName: _interpreters_is_shareable
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _interpreters_is_shareable_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_is_shareable(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:822,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:824,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:824,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:841,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:845,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:854,1
    - Dst: _interpreters_is_running_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:859,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 809
    functionDepth: 4
    functionLinenumber: 809
    functionLinenumberEnd: 863
    functionName: _interpreters_is_running
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _interpreters_is_running_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_is_running(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:890,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:892,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:892,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:909,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:913,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:922,1
    - Dst: _interpreters_get_config_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:927,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 877
    functionDepth: 4
    functionLinenumber: 877
    functionLinenumberEnd: 931
    functionName: _interpreters_get_config
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _interpreters_get_config_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_get_config(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:958,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:960,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:979,1
    - Dst: _interpreters_whence_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 989
    functionName: _interpreters_whence
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpreters_whence_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_whence(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1016,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1018,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1018,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1018,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1035,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1040,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1050,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1058,1
    - Dst: _interpreters_incref_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1063,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: 1067
      start: 1003
    functionDepth: 4
    functionLinenumber: 1003
    functionLinenumberEnd: 1067
    functionName: _interpreters_incref
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _interpreters_incref_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_incref(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1093,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1095,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1095,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1112,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1116,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1125,1
    - Dst: _interpreters_decref_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1080
    functionDepth: 4
    functionLinenumber: 1080
    functionLinenumberEnd: 1134
    functionName: _interpreters_decref
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _interpreters_decref_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_decref(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1164,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1166,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1183,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1186,1
    - Dst: _interpreters_capture_exception_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1200
    functionName: _interpreters_capture_exception
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _interpreters_capture_exception_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpreters_capture_exception(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:40,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:42,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:61,1
    - Dst: _functools_cmp_to_key_impl
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 71
    functionName: _functools_cmp_to_key
    functionSourceFile: /src/cpython/Modules/clinic/_functoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _functools_cmp_to_key_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _functools_cmp_to_key(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:106,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:108,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:125,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:130,1
    - Dst: _functools_reduce_impl
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 146
    functionName: _functools_reduce
    functionSourceFile: /src/cpython/Modules/clinic/_functoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _functools_reduce_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _functools_reduce(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:165,1
    - Dst: _functools__lru_cache_wrapper_cache_info_impl
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:166,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: _functools__lru_cache_wrapper_cache_info
    functionSourceFile: /src/cpython/Modules/clinic/_functoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _functools__lru_cache_wrapper_cache_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _functools__lru_cache_wrapper_cache_info(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:189,1
    - Dst: _functools__lru_cache_wrapper_cache_clear_impl
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:190,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: _functools__lru_cache_wrapper_cache_clear
    functionSourceFile: /src/cpython/Modules/clinic/_functoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _functools__lru_cache_wrapper_cache_clear_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _functools__lru_cache_wrapper_cache_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:39,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:39,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:39,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:61,1
    - Dst: _hmac_new_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:78,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: 82
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 82
    functionName: _hmac_new
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _hmac_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:99,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:100,1
    - Dst: _hmac_HMAC_copy_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: _hmac_HMAC_copy
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_HMAC_copy_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:133,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:152,1
    - Dst: _hmac_HMAC_update_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 162
    functionName: _hmac_HMAC_update
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _hmac_HMAC_update_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_update(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_HMAC_digest_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: _hmac_HMAC_digest
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_HMAC_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_HMAC_hexdigest_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: _hmac_HMAC_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_HMAC_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_HMAC_name_get_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: _hmac_HMAC_name_get
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_HMAC_name_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_name_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_HMAC_block_size_get_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: _hmac_HMAC_block_size_get
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_HMAC_block_size_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_block_size_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_HMAC_digest_size_get_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: _hmac_HMAC_digest_size_get
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_HMAC_digest_size_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_digest_size_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:289,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:291,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:291,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:291,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:312,1
    - Dst: _hmac_compute_digest_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 276
    functionDepth: 6
    functionLinenumber: 276
    functionLinenumberEnd: 324
    functionName: _hmac_compute_digest
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _hmac_compute_digest_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_digest(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:344,1
    - Dst: _hmac_compute_md5_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 353
    functionName: _hmac_compute_md5
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _hmac_compute_md5_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:373,1
    - Dst: _hmac_compute_sha1_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 382
    functionName: _hmac_compute_sha1
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_compute_sha1_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:402,1
    - Dst: _hmac_compute_sha2_224_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: _hmac_compute_sha2_224
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _hmac_compute_sha2_224_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_224(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:431,1
    - Dst: _hmac_compute_sha2_256_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 440
    functionName: _hmac_compute_sha2_256
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _hmac_compute_sha2_256_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:460,1
    - Dst: _hmac_compute_sha2_384_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 469
    functionName: _hmac_compute_sha2_384
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_compute_sha2_384_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_384(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:489,1
    - Dst: _hmac_compute_sha2_512_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 498
    functionName: _hmac_compute_sha2_512
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _hmac_compute_sha2_512_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha2_512(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:518,1
    - Dst: _hmac_compute_sha3_224_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 527
    functionName: _hmac_compute_sha3_224
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_compute_sha3_224_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:547,1
    - Dst: _hmac_compute_sha3_256_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 556
    functionName: _hmac_compute_sha3_256
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _hmac_compute_sha3_256_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:576,1
    - Dst: _hmac_compute_sha3_384_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 585
    functionName: _hmac_compute_sha3_384
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_compute_sha3_384_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:605,1
    - Dst: _hmac_compute_sha3_512_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.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: _hmac_compute_sha3_512
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_compute_sha3_512_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:634,1
    - Dst: _hmac_compute_blake2s_32_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: _hmac_compute_blake2s_32
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _hmac_compute_blake2s_32_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_blake2s_32(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:663,1
    - Dst: _hmac_compute_blake2b_32_impl
      Src: /src/cpython/Modules/clinic/hmacmodule.c.h:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 672
    functionName: _hmac_compute_blake2b_32
    functionSourceFile: /src/cpython/Modules/clinic/hmacmodule.c.h
    functionUses: 0
    functionsReached:
    - _hmac_compute_blake2b_32_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_compute_blake2b_32(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:31,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:34,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:35,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:38,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:39,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:42,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:45,1
    - Dst: unicodedata_UCD_decimal_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 55
    functionName: unicodedata_UCD_decimal
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - unicodedata_UCD_decimal_impl
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_decimal(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:80,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:83,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:84,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:87,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:88,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:91,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:94,1
    - Dst: unicodedata_UCD_digit_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 104
    functionName: unicodedata_UCD_digit
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_digit_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_digit(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:130,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:133,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:134,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:137,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:138,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:141,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:144,1
    - Dst: unicodedata_UCD_numeric_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 154
    functionName: unicodedata_UCD_numeric
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_numeric_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_numeric(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:174,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:175,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:178,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:179,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:182,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:185,1
    - Dst: unicodedata_UCD_category_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: unicodedata_UCD_category
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_category_impl
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_category(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:212,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:213,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:216,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:217,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:220,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:223,1
    - Dst: unicodedata_UCD_bidirectional_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: unicodedata_UCD_bidirectional
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_bidirectional_impl
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_bidirectional(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:251,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:252,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:255,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:256,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:259,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:262,1
    - Dst: unicodedata_UCD_combining_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:263,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:264,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 271
    functionName: unicodedata_UCD_combining
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_combining_impl
    - PyErr_Occurred
    - PyLong_FromLong
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_combining(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:295,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:296,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:299,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:300,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:303,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:306,1
    - Dst: unicodedata_UCD_mirrored_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:308,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:311,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 315
    functionName: unicodedata_UCD_mirrored
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - _PyArg_BadArgument
    - unicodedata_UCD_mirrored_impl
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_mirrored(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:335,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:336,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:339,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:340,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:343,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:346,1
    - Dst: unicodedata_UCD_east_asian_width_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 351
    functionName: unicodedata_UCD_east_asian_width
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_east_asian_width_impl
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_east_asian_width(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:373,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:374,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:377,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:378,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:381,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:384,1
    - Dst: unicodedata_UCD_decomposition_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 389
    functionName: unicodedata_UCD_decomposition
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_decomposition_impl
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_decomposition(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:413,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:416,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:417,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:421,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:422,1
    - Dst: unicodedata_UCD_is_normalized_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 430
    functionName: unicodedata_UCD_is_normalized
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - unicodedata_UCD_is_normalized_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_is_normalized(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:454,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:457,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:458,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:462,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:463,1
    - Dst: unicodedata_UCD_normalize_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 447
    functionDepth: 5
    functionLinenumber: 447
    functionLinenumberEnd: 471
    functionName: unicodedata_UCD_normalize
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - unicodedata_UCD_normalize_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_normalize(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:495,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:498,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:499,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:502,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:503,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:506,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:509,1
    - Dst: unicodedata_UCD_name_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 488
    functionDepth: 5
    functionLinenumber: 488
    functionLinenumberEnd: 519
    functionName: unicodedata_UCD_name
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - unicodedata_UCD_name_impl
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/clinic/unicodedata.c.h:544,1
    - Dst: unicodedata_UCD_lookup_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 537
    functionDepth: 5
    functionLinenumber: 537
    functionLinenumberEnd: 551
    functionName: unicodedata_UCD_lookup
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - unicodedata_UCD_lookup_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_lookup(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HASH_copy_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.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: 6
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: _hashlib_HASH_copy
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HASH_digest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.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: 7
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: _hashlib_HASH_digest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HASH_hexdigest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 7
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: _hashlib_HASH_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HASH_update_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: _hashlib_HASH_update
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HASH_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_update(PyObject *self, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:116,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:118,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:137,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:144,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:149,1
    - Dst: _hashlib_HASHXOF_digest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 158
    functionName: _hashlib_HASHXOF_digest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _hashlib_HASHXOF_digest_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASHXOF_digest(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:189,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:191,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:210,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:217,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:220,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:222,1
    - Dst: _hashlib_HASHXOF_hexdigest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 231
    functionName: _hashlib_HASHXOF_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HASHXOF_hexdigest_impl
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASHXOF_hexdigest(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:266,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:268,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:285,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:291,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:296,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:297,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:301,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:306,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:323,1
    - Dst: _hashlib_HASH_new_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:333,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: 337
      start: 253
    functionDepth: 8
    functionLinenumber: 253
    functionLinenumberEnd: 337
    functionName: _hashlib_HASH_new
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _hashlib_HASH_new_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASH_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:365,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:367,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:367,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:367,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:384,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:389,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:408,1
    - Dst: _hashlib_openssl_md5_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:418,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: 422
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 422
    functionName: _hashlib_openssl_md5
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_md5_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:450,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:452,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:452,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:452,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:469,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:474,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:493,1
    - Dst: _hashlib_openssl_sha1_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:503,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: 507
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 507
    functionName: _hashlib_openssl_sha1
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha1_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:536,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:538,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:538,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:538,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:555,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:560,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:579,1
    - Dst: _hashlib_openssl_sha224_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:589,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: 593
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 593
    functionName: _hashlib_openssl_sha224
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _hashlib_openssl_sha224_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:622,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:624,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:624,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:624,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:641,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:646,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:665,1
    - Dst: _hashlib_openssl_sha256_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:675,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: 679
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 679
    functionName: _hashlib_openssl_sha256
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_sha256_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:708,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:710,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:710,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:710,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:727,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:732,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:751,1
    - Dst: _hashlib_openssl_sha384_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:761,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: 765
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 765
    functionName: _hashlib_openssl_sha384
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_sha384_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:794,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:796,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:796,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:796,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:813,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:818,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:837,1
    - Dst: _hashlib_openssl_sha512_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:847,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: 851
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 851
    functionName: _hashlib_openssl_sha512
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_sha512_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:882,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:884,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:884,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:884,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:901,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:906,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:925,1
    - Dst: _hashlib_openssl_sha3_224_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:935,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: 939
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 939
    functionName: _hashlib_openssl_sha3_224
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_sha3_224_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:972,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:974,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:974,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:974,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:991,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:996,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1015,1
    - Dst: _hashlib_openssl_sha3_256_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1025,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: 1029
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 1029
    functionName: _hashlib_openssl_sha3_256
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_sha3_256_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1062,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1064,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1064,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1064,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1081,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1086,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1105,1
    - Dst: _hashlib_openssl_sha3_384_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1115,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: 1119
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1119
    functionName: _hashlib_openssl_sha3_384
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_sha3_384_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1152,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1171,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1176,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1195,1
    - Dst: _hashlib_openssl_sha3_512_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1205,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: 1209
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1209
    functionName: _hashlib_openssl_sha3_512
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_openssl_sha3_512_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1242,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1244,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1261,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1266,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1285,1
    - Dst: _hashlib_openssl_shake_128_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1295,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: 1299
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1299
    functionName: _hashlib_openssl_shake_128
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _hashlib_openssl_shake_128_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1332,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1334,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1334,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1334,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1351,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1356,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1375,1
    - Dst: _hashlib_openssl_shake_256_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1385,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: 1389
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1389
    functionName: _hashlib_openssl_shake_256
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_shake_256_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1421,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1423,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1423,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1423,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1423,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1423,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1440,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1447,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1452,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1453,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1457,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1461,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1462,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1465,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1468,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1471,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1472,1
    - Dst: pbkdf2_hmac_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1480,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1485,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1489,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: 1493
      start: 1408
    functionDepth: 7
    functionLinenumber: 1408
    functionLinenumberEnd: 1493
    functionName: pbkdf2_hmac
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyLong_AsLong
    - _Py_ID
    - PyErr_SetString
    - PyErr_Occurred
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - pbkdf2_hmac_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1522,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1524,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1524,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1524,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1524,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1524,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1524,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1524,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1541,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1550,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1555,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1558,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1561,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1564,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1567,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1574,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1575,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1582,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1583,1
    - Dst: _hashlib_scrypt_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1587,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1592,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1596,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1509
    functionDepth: 5
    functionLinenumber: 1509
    functionLinenumberEnd: 1600
    functionName: _hashlib_scrypt
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_scrypt_impl
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyLong_AsLong
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - _PyLong_UnsignedLong_Converter
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1628,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1630,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1630,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1630,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1651,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1656,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1659,1
    - Dst: _hashlib_hmac_singleshot_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1663,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1668,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1672,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: 1676
      start: 1615
    functionDepth: 8
    functionLinenumber: 1615
    functionLinenumberEnd: 1676
    functionName: _hashlib_hmac_singleshot
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _hashlib_hmac_singleshot_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_hmac_singleshot(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1704,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1706,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1706,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1706,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1723,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1728,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1733,1
    - Dst: _hashlib_hmac_new_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1747,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1752,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: 1756
      start: 1691
    functionDepth: 8
    functionLinenumber: 1691
    functionLinenumberEnd: 1756
    functionName: _hashlib_hmac_new
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyObject_GetBuffer
    - _hashlib_hmac_new_impl
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HMAC_copy_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1770
    functionDepth: 6
    functionLinenumber: 1770
    functionLinenumberEnd: 1774
    functionName: _hashlib_HMAC_copy
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HMAC_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1801,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1803,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1822,1
    - Dst: _hashlib_HMAC_update_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1788
    functionDepth: 6
    functionLinenumber: 1788
    functionLinenumberEnd: 1832
    functionName: _hashlib_HMAC_update
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _hashlib_HMAC_update_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_update(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HMAC_digest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1846
    functionDepth: 8
    functionLinenumber: 1846
    functionLinenumberEnd: 1850
    functionName: _hashlib_HMAC_digest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HMAC_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_HMAC_hexdigest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1867
    functionDepth: 8
    functionLinenumber: 1867
    functionLinenumberEnd: 1871
    functionName: _hashlib_HMAC_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_HMAC_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_get_fips_mode_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1898,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1899,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1892
    functionDepth: 5
    functionLinenumber: 1892
    functionLinenumberEnd: 1906
    functionName: _hashlib_get_fips_mode
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _hashlib_get_fips_mode_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_get_fips_mode(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1937,1
    - Dst: _hashlib_compare_digest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1930
    functionDepth: 2
    functionLinenumber: 1930
    functionLinenumberEnd: 1946
    functionName: _hashlib_compare_digest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_compare_digest_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/md5module.c.h:26,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/md5module.c.h:27,1
    - Dst: MD5Type_copy_impl
      Src: /src/cpython/Modules/clinic/md5module.c.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: MD5Type_copy
    functionSourceFile: /src/cpython/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - MD5Type_copy_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5Type_digest_impl
      Src: /src/cpython/Modules/clinic/md5module.c.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: MD5Type_digest
    functionSourceFile: /src/cpython/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - MD5Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5Type_hexdigest_impl
      Src: /src/cpython/Modules/clinic/md5module.c.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: MD5Type_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - MD5Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5Type_update_impl
      Src: /src/cpython/Modules/clinic/md5module.c.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: MD5Type_update
    functionSourceFile: /src/cpython/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - MD5Type_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_update(PyObject *self, PyObject *obj)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/md5module.c.h:117,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/md5module.c.h:119,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/md5module.c.h:119,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/md5module.c.h:119,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/md5module.c.h:136,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/md5module.c.h:141,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/md5module.c.h:160,1
    - Dst: _md5_md5_impl
      Src: /src/cpython/Modules/clinic/md5module.c.h:170,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: 174
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 174
    functionName: _md5_md5
    functionSourceFile: /src/cpython/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _md5_md5_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    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/cpython/Modules/clinic/gcmodule.c.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: gc_enable
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/gcmodule.c.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: gc_disable
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/gcmodule.c.h:67,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:68,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: gc_isenabled
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - gc_isenabled_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_isenabled(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:108,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:110,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:127,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:131,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:139,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:140,1
    - Dst: gc_collect_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:144,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:145,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 152
    functionName: gc_collect
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyLong_FromSsize_t
    - gc_collect_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_collect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:183,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:184,1
    - Dst: gc_set_debug_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 191
    functionName: gc_set_debug
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - gc_set_debug_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_set_debug(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_debug_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:211,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:212,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: gc_get_debug
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - gc_get_debug_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_debug(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:244,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:246,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:251,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:264,1
    - Dst: gc_set_threshold_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:267,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 271
    functionName: gc_set_threshold
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - gc_set_threshold_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_set_threshold(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_threshold_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: gc_get_threshold
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/gcmodule.c.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: gc_get_count
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:327,1
    - Dst: gc_get_referrers_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:331,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 338
    functionName: gc_get_referrers
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTuple_FromArray
    - gc_get_referrers_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_referrers(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:358,1
    - Dst: gc_get_referents_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:362,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 369
    functionName: gc_get_referents
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - gc_get_referents_impl
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_referents(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:402,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:404,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:421,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:424,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:432,1
    - Dst: gc_get_objects_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:436,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: 440
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 440
    functionName: gc_get_objects
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _Py_convert_optional_to_ssize_t
    - gc_get_objects_impl
    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/cpython/Modules/clinic/gcmodule.c.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: gc_get_stats
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_is_tracked_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:480,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:481,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: gc_is_tracked
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - gc_is_tracked_impl
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_is_tracked(PyObject *module, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_is_finalized_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:508,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:509,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: gc_is_finalized
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_is_finalized_impl
    - PyBool_FromLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_is_finalized(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_freeze_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: gc_freeze
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/gcmodule.c.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: gc_unfreeze
    functionSourceFile: /src/cpython/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/cpython/Modules/clinic/gcmodule.c.h:578,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:579,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 586
    functionName: gc_get_freeze_count
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - gc_get_freeze_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:40,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:59,1
    - Dst: grp_getgrgid_impl
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: grp_getgrgid
    functionSourceFile: /src/cpython/Modules/clinic/grpmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - grp_getgrgid_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:98,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:100,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:119,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:124,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:125,1
    - Dst: grp_getgrnam_impl
      Src: /src/cpython/Modules/clinic/grpmodule.c.h:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 133
    functionName: grp_getgrnam
    functionSourceFile: /src/cpython/Modules/clinic/grpmodule.c.h
    functionUses: 0
    functionsReached:
    - grp_getgrnam_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - 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/cpython/Modules/clinic/grpmodule.c.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: grp_getgrall
    functionSourceFile: /src/cpython/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: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:47,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:49,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:49,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:49,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:49,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:49,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:66,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:74,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:87,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:89,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:90,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:92,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:102,1
    - Dst: _bisect_bisect_right_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:115,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:116,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:119,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 123
    functionName: _bisect_bisect_right
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyLong_FromSsize_t
    - _bisect_bisect_right_impl
    - PyVarObject_HEAD_INIT
    - _Py_convert_optional_to_ssize_t
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:158,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:160,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:160,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:160,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:160,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:160,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:177,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:184,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:197,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:200,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:202,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:212,1
    - Dst: _bisect_insort_right_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:225,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: 229
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 229
    functionName: _bisect_insort_right
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _Py_convert_optional_to_ssize_t
    - PyLong_AsSsize_t
    - _bisect_insort_right_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:266,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:268,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:268,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:285,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:293,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:306,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:309,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:311,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:321,1
    - Dst: _bisect_bisect_left_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:334,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:335,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:338,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 342
    functionName: _bisect_bisect_left
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyLong_FromSsize_t
    - PyVarObject_HEAD_INIT
    - _Py_convert_optional_to_ssize_t
    - _bisect_bisect_left_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:377,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:379,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:379,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:379,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:379,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:379,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:396,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:403,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:416,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:419,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:421,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:431,1
    - Dst: _bisect_insort_left_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:444,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: 448
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 448
    functionName: _bisect_insort_left
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _bisect_insort_left_impl
    - PyVarObject_HEAD_INIT
    - _Py_convert_optional_to_ssize_t
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:30,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:31,1
    - Dst: cmath_acos_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:36,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:38,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:42,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 51
    functionName: cmath_acos
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    - cmath_acos_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_acos(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:72,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:73,1
    - Dst: cmath_acosh_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:78,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:80,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:84,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: cmath_acosh
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - cmath_acosh_impl
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_acosh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:114,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:115,1
    - Dst: cmath_asin_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:120,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:122,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:126,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: cmath_asin
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    - cmath_asin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_asin(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:156,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:157,1
    - Dst: cmath_asinh_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:162,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:168,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: cmath_asinh
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - cmath_asinh_impl
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_asinh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:198,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:199,1
    - Dst: cmath_atan_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:204,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:210,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 219
    functionName: cmath_atan
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    - cmath_atan_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_atan(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:240,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:241,1
    - Dst: cmath_atanh_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:246,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:248,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:252,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 261
    functionName: cmath_atanh
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_atanh_impl
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_atanh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:282,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:283,1
    - Dst: cmath_cos_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:290,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:294,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 303
    functionName: cmath_cos
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    - cmath_cos_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_cos(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:324,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:325,1
    - Dst: cmath_cosh_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:330,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:332,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:336,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 345
    functionName: cmath_cosh
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_cosh_impl
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_cosh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:366,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:367,1
    - Dst: cmath_exp_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:372,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:374,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:378,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 387
    functionName: cmath_exp
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - cmath_exp_impl
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_exp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:408,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:409,1
    - Dst: cmath_log10_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:414,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:416,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:420,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 429
    functionName: cmath_log10
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - cmath_log10_impl
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_log10(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:450,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:451,1
    - Dst: cmath_sin_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:462,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 471
    functionName: cmath_sin
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - cmath_sin_impl
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_sin(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:492,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:493,1
    - Dst: cmath_sinh_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:498,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:500,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:504,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 513
    functionName: cmath_sinh
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - cmath_sinh_impl
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_sinh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:534,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:535,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:540,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:542,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:546,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:550,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 555
    functionName: cmath_sqrt
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - cmath_sqrt_impl
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_sqrt(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:576,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:577,1
    - Dst: cmath_tan_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:582,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:584,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:588,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 597
    functionName: cmath_tan
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_tan_impl
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_tan(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:618,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:619,1
    - Dst: cmath_tanh_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:626,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:630,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 639
    functionName: cmath_tanh
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_tanh_impl
    - PyErr_Occurred
    - PyErr_SetString
    - PyComplex_AsCComplex
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_tanh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:662,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:666,1
    - Dst: cmath_log_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 678
    functionName: cmath_log
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - cmath_log_impl
    - _PyArg_CheckPositional
    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/cpython/Modules/clinic/cmathmodule.c.h:698,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:699,1
    - Dst: cmath_phase_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 706
    functionName: cmath_phase
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - cmath_phase_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_phase(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:728,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:729,1
    - Dst: cmath_polar_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 736
    functionName: cmath_polar
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - cmath_polar_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_polar(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:757,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:760,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:761,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:765,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:766,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:770,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:771,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:775,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:776,1
    - Dst: cmath_rect_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 750
    functionDepth: 3
    functionLinenumber: 750
    functionLinenumberEnd: 784
    functionName: cmath_rect
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - cmath_rect_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    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/cpython/Modules/clinic/cmathmodule.c.h:804,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:805,1
    - Dst: cmath_isfinite_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 812
    functionName: cmath_isfinite
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - cmath_isfinite_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isfinite(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:832,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:833,1
    - Dst: cmath_isnan_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 840
    functionName: cmath_isnan
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - cmath_isnan_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isnan(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:860,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:861,1
    - Dst: cmath_isinf_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 868
    functionName: cmath_isinf
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - cmath_isinf_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isinf(PyObject *module, PyObject *arg)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:911,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:913,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:913,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:913,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:913,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:930,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:937,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:942,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:943,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:946,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:947,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:954,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:955,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:959,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:960,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:968,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:969,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:973,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:974,1
    - Dst: cmath_isclose_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:980,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:983,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 987
    functionName: cmath_isclose
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyFloat_CheckExact
    - _Py_ID
    - cmath_isclose_impl
    - PyComplex_AsCComplex
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:52,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:54,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:72,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:73,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:77,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:85,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:85,1
    - Dst: depr_star_new_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 99
    functionName: depr_star_new
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_new_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:140,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:142,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:159,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:163,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:171,1
    - Dst: depr_star_new_clone_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 185
    functionName: depr_star_new_clone
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_new_clone_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_new_clone(PyObject *type, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:225,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:227,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:245,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:246,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:250,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:258,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:258,1
    - Dst: depr_star_init_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 272
    functionName: depr_star_init
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_init_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int depr_star_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:313,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:315,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:332,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:336,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:344,1
    - Dst: depr_star_init_clone_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:354,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 358
    functionName: depr_star_init_clone
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - depr_star_init_clone_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_init_clone(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:388,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:390,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:390,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:390,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:390,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:406,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:414,1
    - Dst: _PyArg_ParseTupleAndKeywordsFast
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:422,1
    - Dst: depr_star_init_noinline_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 430
    functionName: depr_star_init_noinline
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - depr_star_init_noinline_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseTupleAndKeywordsFast
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int depr_star_init_noinline(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:469,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:471,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:489,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:490,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:493,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:493,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:498,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:499,1
    - Dst: depr_kwd_new_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:512,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 516
    functionName: depr_kwd_new
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_kwd_new_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:555,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:557,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:575,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:576,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:579,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:579,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:584,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:585,1
    - Dst: depr_kwd_init_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:598,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 602
    functionName: depr_kwd_init
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_kwd_init_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int depr_kwd_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:632,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:634,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:634,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:634,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:650,1
    - Dst: _PyArg_ParseTupleAndKeywordsFast
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:657,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:661,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:661,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:661,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:662,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:665,1
    - Dst: depr_kwd_init_noinline_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:673,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 677
    functionName: depr_kwd_init_noinline
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - PyDict_Contains
    - depr_kwd_init_noinline_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseTupleAndKeywordsFast
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int depr_kwd_init_noinline(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:718,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:720,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:740,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:748,1
    - Dst: depr_star_pos0_len1_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 758
    functionName: depr_star_pos0_len1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_pos0_len1_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos0_len1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:799,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:801,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:801,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:822,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:830,1
    - Dst: depr_star_pos0_len2_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 841
    functionName: depr_star_pos0_len2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_pos0_len2_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos0_len2(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:883,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:885,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:885,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:885,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:885,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:908,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:916,1
    - Dst: depr_star_pos0_len3_with_kwd_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:925,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: 929
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 929
    functionName: depr_star_pos0_len3_with_kwd
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    - depr_star_pos0_len3_with_kwd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos0_len3_with_kwd(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:970,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:972,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:972,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:989,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:994,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1002,1
    - Dst: depr_star_pos1_len1_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1013,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 1017
    functionName: depr_star_pos1_len1_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_pos1_len1_opt_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos1_len1_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1058,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1060,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1060,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1081,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1089,1
    - Dst: depr_star_pos1_len1_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1096,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1100
    functionName: depr_star_pos1_len1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - depr_star_pos1_len1_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos1_len1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1142,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1144,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1144,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1144,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1144,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1167,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1175,1
    - Dst: depr_star_pos1_len2_with_kwd_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1184,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: 1188
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1188
    functionName: depr_star_pos1_len2_with_kwd
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_pos1_len2_with_kwd_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos1_len2_with_kwd(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1230,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1232,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1232,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1232,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1254,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1262,1
    - Dst: depr_star_pos2_len1_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1270,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: 1274
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1274
    functionName: depr_star_pos2_len1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_pos2_len1_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos2_len1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1316,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1318,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1318,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1318,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1318,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1341,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1349,1
    - Dst: depr_star_pos2_len2_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1358,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: 1362
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1362
    functionName: depr_star_pos2_len2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_pos2_len2_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos2_len2(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1404,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1406,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1406,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1406,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1406,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1406,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1430,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1438,1
    - Dst: depr_star_pos2_len2_with_kwd_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1448,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: 1452
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1452
    functionName: depr_star_pos2_len2_with_kwd
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_star_pos2_len2_with_kwd_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_pos2_len2_with_kwd(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1494,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1496,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1496,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1496,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1496,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1519,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1527,1
    - Dst: depr_star_noinline_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1531,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1535
    functionName: depr_star_noinline
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - _Py_LATIN1_CHR
    - depr_star_noinline_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_noinline(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1580,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1582,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1609,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1619,1
    - Dst: depr_star_multi_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1632,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1567
    functionDepth: 1
    functionLinenumber: 1567
    functionLinenumberEnd: 1636
    functionName: depr_star_multi
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - depr_star_multi_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_star_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1676,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1678,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1698,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1704,1
    - Dst: depr_kwd_required_1_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1718
    functionName: depr_kwd_required_1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - depr_kwd_required_1_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_required_1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1760,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1762,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1762,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1783,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1789,1
    - Dst: depr_kwd_required_2_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1800,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: 1804
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1804
    functionName: depr_kwd_required_2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_kwd_required_2_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_required_2(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1844,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1846,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1863,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1867,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1872,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1873,1
    - Dst: depr_kwd_optional_1_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1887,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1891
    functionName: depr_kwd_optional_1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_kwd_optional_1_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_optional_1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1933,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1935,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1935,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1952,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1957,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1962,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1963,1
    - Dst: depr_kwd_optional_2_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:1983,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1987
    functionName: depr_kwd_optional_2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - depr_kwd_optional_2_impl
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_optional_2(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2029,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2031,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2031,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2031,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2048,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2053,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2058,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2059,1
    - Dst: depr_kwd_optional_3_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2084,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2088
    functionName: depr_kwd_optional_3
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_kwd_optional_3_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_optional_3(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2130,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2132,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2132,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2149,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2159,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2160,1
    - Dst: depr_kwd_required_optional_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2175,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2179
    functionName: depr_kwd_required_optional
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_kwd_required_optional_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_required_optional(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2221,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2223,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2223,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2223,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2245,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2249,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2249,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2249,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2250,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2253,1
    - Dst: depr_kwd_noinline_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2261,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2265
    functionName: depr_kwd_noinline
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - PySequence_Contains
    - depr_kwd_noinline_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_noinline(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2310,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2312,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2312,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2312,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2312,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2312,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2312,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2312,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2338,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2344,1
    - Dst: depr_kwd_multi_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2362,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2297
    functionDepth: 1
    functionLinenumber: 2297
    functionLinenumberEnd: 2366
    functionName: depr_kwd_multi
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_kwd_multi_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_kwd_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2414,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2416,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2416,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2416,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2416,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2416,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2416,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2442,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2451,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2457,1
    - Dst: depr_multi_impl
      Src: /src/cpython/Modules/clinic/_testclinic_depr.c.h:2472,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2476
    functionName: depr_multi
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_depr.c.h
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - depr_multi_impl
    - PyVarObject_HEAD_INIT
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:39,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:41,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:41,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:58,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:63,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:72,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:73,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:82,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:83,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:90,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:91,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:95,1
    - Dst: syslog_openlog_impl
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:96,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:97,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: 101
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 101
    functionName: syslog_openlog
    functionSourceFile: /src/cpython/Modules/clinic/syslogmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsLong
    - PyErr_Occurred
    - _Py_ID
    - _PyArg_BadArgument
    - syslog_openlog_impl
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_openlog(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:122,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:124,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:129,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:135,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:138,1
    - Dst: syslog_syslog_impl
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:139,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 144
    functionName: syslog_syslog
    functionSourceFile: /src/cpython/Modules/clinic/syslogmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - syslog_syslog_impl
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_syslog(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:163,1
    - Dst: syslog_closelog_impl
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:164,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: syslog_closelog
    functionSourceFile: /src/cpython/Modules/clinic/syslogmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - syslog_closelog_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_closelog(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:190,1
    - Dst: syslog_setlogmask_impl
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:194,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 201
    functionName: syslog_setlogmask
    functionSourceFile: /src/cpython/Modules/clinic/syslogmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - syslog_setlogmask_impl
    - PyLong_FromLong
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_setlogmask(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:222,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:223,1
    - Dst: syslog_LOG_MASK_impl
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:226,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:227,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 234
    functionName: syslog_LOG_MASK
    functionSourceFile: /src/cpython/Modules/clinic/syslogmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - syslog_LOG_MASK_impl
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_LOG_MASK(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:255,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:256,1
    - Dst: syslog_LOG_UPTO_impl
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:259,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:260,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/syslogmodule.c.h:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 267
    functionName: syslog_LOG_UPTO
    functionSourceFile: /src/cpython/Modules/clinic/syslogmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - syslog_LOG_UPTO_impl
    - PyLong_FromLong
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_LOG_UPTO(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:30,1
    - Dst: _gdbm_gdbm_get_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: _gdbm_gdbm_get
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _gdbm_gdbm_get_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_get(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:65,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:74,1
    - Dst: _gdbm_gdbm_setdefault_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:75,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: _gdbm_gdbm_setdefault
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - _gdbm_gdbm_setdefault_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_setdefault(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:99,1
    - Dst: _gdbm_gdbm_close_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:100,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: _gdbm_gdbm_close
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _gdbm_gdbm_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:123,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:124,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:127,1
    - Dst: _gdbm_gdbm_keys_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:128,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: _gdbm_gdbm_keys
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _gdbm_gdbm_keys_impl
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_keys(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:156,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:157,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:160,1
    - Dst: _gdbm_gdbm_firstkey_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:161,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: _gdbm_gdbm_firstkey
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _gdbm_gdbm_firstkey_impl
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_firstkey(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:209,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:213,1
    - Dst: _gdbm_gdbm_nextkey_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:214,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 219
    functionName: _gdbm_gdbm_nextkey
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_ParseStackAndKeywords
    - _gdbm_gdbm_nextkey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_nextkey(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:245,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:248,1
    - Dst: _gdbm_gdbm_reorganize_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:249,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: _gdbm_gdbm_reorganize
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _gdbm_gdbm_reorganize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_reorganize(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:276,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:277,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:280,1
    - Dst: _gdbm_gdbm_sync_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:281,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 286
    functionName: _gdbm_gdbm_sync
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _gdbm_gdbm_sync_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_sync(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:306,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:309,1
    - Dst: _gdbm_gdbm_clear_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:310,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: _gdbm_gdbm_clear
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _gdbm_gdbm_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_clear(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:359,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:366,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:367,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:371,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:375,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:376,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:382,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:383,1
    - Dst: dbmopen_impl
      Src: /src/cpython/Modules/clinic/_gdbmmodule.c.h:387,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 391
    functionName: dbmopen
    functionSourceFile: /src/cpython/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - dbmopen_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha2module.c.h:26,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/sha2module.c.h:27,1
    - Dst: SHA256Type_copy_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: SHA256Type_copy
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - SHA256Type_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha2module.c.h:48,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/sha2module.c.h:49,1
    - Dst: SHA512Type_copy_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: SHA512Type_copy
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - SHA512Type_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_copy(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Type_digest_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: SHA256Type_digest
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - SHA256Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512Type_digest_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: SHA512Type_digest
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - SHA512Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_digest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Type_hexdigest_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: SHA256Type_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - SHA256Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512Type_hexdigest_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: SHA512Type_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - SHA512Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Type_update_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: SHA256Type_update
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - SHA256Type_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_update(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512Type_update_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: SHA512Type_update
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - SHA512Type_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_update(PyObject *self, PyObject *obj)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha2module.c.h:197,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:199,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha2module.c.h:216,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha2module.c.h:221,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/sha2module.c.h:240,1
    - Dst: _sha2_sha256_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:250,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: 254
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 254
    functionName: _sha2_sha256
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sha2_sha256_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha2_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha2module.c.h:282,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:284,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:284,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:284,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha2module.c.h:301,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha2module.c.h:306,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/sha2module.c.h:325,1
    - Dst: _sha2_sha224_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:335,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: 339
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 339
    functionName: _sha2_sha224
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sha2_sha224_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha2_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha2module.c.h:367,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:369,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:369,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:369,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha2module.c.h:386,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha2module.c.h:391,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/sha2module.c.h:410,1
    - Dst: _sha2_sha512_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:420,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: 424
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 424
    functionName: _sha2_sha512
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _sha2_sha512_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha2_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha2module.c.h:452,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:454,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:454,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha2module.c.h:454,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/sha2module.c.h:471,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha2module.c.h:476,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/sha2module.c.h:495,1
    - Dst: _sha2_sha384_impl
      Src: /src/cpython/Modules/clinic/sha2module.c.h:505,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: 509
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 509
    functionName: _sha2_sha384
    functionSourceFile: /src/cpython/Modules/clinic/sha2module.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _sha2_sha384_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha2_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:27,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:31,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:32,1
    - Dst: _suggestions__generate_suggestions_impl
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 40
    functionName: _suggestions__generate_suggestions
    functionSourceFile: /src/cpython/Modules/clinic/_suggestions.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _suggestions__generate_suggestions_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _suggestions__generate_suggestions(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:30,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:31,1
    - Dst: _testmultiphase_StateAccessType_get_defining_module_impl
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: _testmultiphase_StateAccessType_get_defining_module
    functionSourceFile: /src/cpython/Modules/clinic/_testmultiphase.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _testmultiphase_StateAccessType_get_defining_module_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testmultiphase_StateAccessType_get_defining_module(PyObject *self, PyTypeObject
      *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:53,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:54,1
    - Dst: _testmultiphase_StateAccessType_getmodulebydef_bad_def_impl
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: _testmultiphase_StateAccessType_getmodulebydef_bad_def
    functionSourceFile: /src/cpython/Modules/clinic/_testmultiphase.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _testmultiphase_StateAccessType_getmodulebydef_bad_def_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testmultiphase_StateAccessType_getmodulebydef_bad_def(PyObject *self, PyTypeObject
      *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:91,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:93,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:93,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:110,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:114,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:123,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:124,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:135,1
    - Dst: _testmultiphase_StateAccessType_increment_count_clinic_impl
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:140,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 144
    functionName: _testmultiphase_StateAccessType_increment_count_clinic
    functionSourceFile: /src/cpython/Modules/clinic/_testmultiphase.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _testmultiphase_StateAccessType_increment_count_clinic_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testmultiphase_StateAccessType_increment_count_clinic(PyObject *self, PyTypeObject
      *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:162,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:163,1
    - Dst: _testmultiphase_StateAccessType_get_count_impl
      Src: /src/cpython/Modules/clinic/_testmultiphase.c.h:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: _testmultiphase_StateAccessType_get_count
    functionSourceFile: /src/cpython/Modules/clinic/_testmultiphase.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _testmultiphase_StateAccessType_get_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testmultiphase_StateAccessType_get_count(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:35,1
    - Dst: _bz2_BZ2Compressor_compress_impl
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:38,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: _bz2_BZ2Compressor_compress
    functionSourceFile: /src/cpython/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _bz2_BZ2Compressor_compress_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_compress(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bz2_BZ2Compressor_flush_impl
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: _bz2_BZ2Compressor_flush
    functionSourceFile: /src/cpython/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _bz2_BZ2Compressor_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:89,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:93,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:96,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:96,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:99,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:102,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:103,1
    - Dst: _bz2_BZ2Compressor_impl
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 111
    functionName: _bz2_BZ2Compressor
    functionSourceFile: /src/cpython/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyLong_AsInt
    - PyErr_Occurred
    - clinic_state
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _bz2_BZ2Compressor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:152,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:171,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:175,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:180,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:188,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:191,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:193,1
    - Dst: _bz2_BZ2Decompressor_decompress_impl
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:199,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:204,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 208
    functionName: _bz2_BZ2Decompressor_decompress
    functionSourceFile: /src/cpython/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _bz2_BZ2Decompressor_decompress_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Decompressor_decompress(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:225,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:228,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:232,1
    - Dst: _bz2_BZ2Decompressor_impl
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: _bz2_BZ2Decompressor
    functionSourceFile: /src/cpython/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _bz2_BZ2Decompressor_impl
    - _PyArg_NoKeywords
    - clinic_state
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Decompressor(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:36,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:54,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:57,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:57,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:63,1
    - Dst: zoneinfo_ZoneInfo_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:64,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 69
    functionName: zoneinfo_ZoneInfo
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - zoneinfo_ZoneInfo_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:97,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:99,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:116,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:120,1
    - Dst: zoneinfo_ZoneInfo_from_file_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 135
    functionName: zoneinfo_ZoneInfo_from_file
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - zoneinfo_ZoneInfo_from_file_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_from_file(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:163,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:165,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:184,1
    - Dst: zoneinfo_ZoneInfo_no_cache_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 194
    functionName: zoneinfo_ZoneInfo_no_cache
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - zoneinfo_ZoneInfo_no_cache_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_no_cache(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:222,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:224,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:241,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:244,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:254,1
    - Dst: zoneinfo_ZoneInfo_clear_cache_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:255,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 260
    functionName: zoneinfo_ZoneInfo_clear_cache
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - zoneinfo_ZoneInfo_clear_cache_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_clear_cache(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:295,1
    - Dst: zoneinfo_ZoneInfo_utcoffset_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 305
    functionName: zoneinfo_ZoneInfo_utcoffset
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - zoneinfo_ZoneInfo_utcoffset_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_utcoffset(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:339,1
    - Dst: zoneinfo_ZoneInfo_dst_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 349
    functionName: zoneinfo_ZoneInfo_dst
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - zoneinfo_ZoneInfo_dst_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_dst(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:384,1
    - Dst: zoneinfo_ZoneInfo_tzname_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 394
    functionName: zoneinfo_ZoneInfo_tzname
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - zoneinfo_ZoneInfo_tzname_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo_tzname(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:430,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:437,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:445,1
    - Dst: zoneinfo_ZoneInfo__unpickle_impl
      Src: /src/cpython/Modules/clinic/_zoneinfo.c.h:452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 456
    functionName: zoneinfo_ZoneInfo__unpickle
    functionSourceFile: /src/cpython/Modules/clinic/_zoneinfo.c.h
    functionUses: 0
    functionsReached:
    - zoneinfo_ZoneInfo__unpickle_impl
    - PyLong_AsNativeBytes
    - PyErr_WarnEx
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_ZoneInfo__unpickle(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:36,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:39,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:40,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:43,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:44,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:47,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:48,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:51,1
    - Dst: _overlapped_CreateIoCompletionPort_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:54,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 58
    functionName: _overlapped_CreateIoCompletionPort
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_CreateIoCompletionPort_impl
    - PyLong_AsVoidPtr
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_CreateIoCompletionPort(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:83,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:86,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:87,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:90,1
    - Dst: _overlapped_GetQueuedCompletionStatus_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 97
    functionName: _overlapped_GetQueuedCompletionStatus
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_GetQueuedCompletionStatus_impl
    - PyLong_AsVoidPtr
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_GetQueuedCompletionStatus(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:124,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:127,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:128,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:131,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:134,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:135,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:139,1
    - Dst: _overlapped_PostQueuedCompletionStatus_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:142,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: _overlapped_PostQueuedCompletionStatus
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _overlapped_PostQueuedCompletionStatus_impl
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_PostQueuedCompletionStatus(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:173,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:176,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:177,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:180,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:181,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:184,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:185,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:188,1
    - Dst: _overlapped_RegisterWaitWithQueue_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:191,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 195
    functionName: _overlapped_RegisterWaitWithQueue
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    - _overlapped_RegisterWaitWithQueue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_RegisterWaitWithQueue(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:215,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:216,1
    - Dst: _overlapped_UnregisterWait_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: _overlapped_UnregisterWait
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_UnregisterWait_impl
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_UnregisterWait(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:245,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:248,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:249,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:252,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:253,1
    - Dst: _overlapped_UnregisterWaitEx_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 260
    functionName: _overlapped_UnregisterWaitEx
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_UnregisterWaitEx_impl
    - _PyArg_CheckPositional
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_UnregisterWaitEx(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:288,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/overlapped.c.h:292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:293,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/overlapped.c.h:296,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:297,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:303,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/overlapped.c.h:304,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:310,1
    - Dst: _overlapped_CreateEvent_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:313,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/overlapped.c.h:317,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 320
    functionName: _overlapped_CreateEvent
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - _overlapped_CreateEvent_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_CreateEvent(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:340,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:341,1
    - Dst: _overlapped_SetEvent_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: _overlapped_SetEvent
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_SetEvent_impl
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_SetEvent(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:368,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:369,1
    - Dst: _overlapped_ResetEvent_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 376
    functionName: _overlapped_ResetEvent
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_ResetEvent_impl
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_ResetEvent(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:399,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:402,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:403,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/overlapped.c.h:406,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:407,1
    - Dst: _overlapped_BindLocal_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 414
    functionName: _overlapped_BindLocal
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _PyArg_CheckPositional
    - _overlapped_BindLocal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_BindLocal(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:434,1
    - Dst: _overlapped_FormatMessage_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 441
    functionName: _overlapped_FormatMessage
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_FormatMessage_impl
    - _PyLong_UnsignedLong_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_FormatMessage(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/overlapped.c.h:465,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/overlapped.c.h:467,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/overlapped.c.h:485,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/overlapped.c.h:486,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/overlapped.c.h:489,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/overlapped.c.h:489,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:498,1
    - Dst: _overlapped_Overlapped_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:502,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 506
    functionName: _overlapped_Overlapped
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - PyLong_AsVoidPtr
    - _overlapped_Overlapped_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _overlapped_Overlapped_cancel_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 524
    functionName: _overlapped_Overlapped_cancel
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_cancel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_cancel(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:547,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/overlapped.c.h:553,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:554,1
    - Dst: _overlapped_Overlapped_getresult_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:558,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 562
    functionName: _overlapped_Overlapped_getresult
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_Overlapped_getresult_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_getresult(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:584,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:587,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:588,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:591,1
    - Dst: _overlapped_Overlapped_ReadFile_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 598
    functionName: _overlapped_Overlapped_ReadFile
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_Overlapped_ReadFile_impl
    - PyLong_AsVoidPtr
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_ReadFile(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:620,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:623,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:624,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:627,1
    - Dst: _overlapped_Overlapped_ReadFileInto_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:630,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:635,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 613
    functionDepth: 4
    functionLinenumber: 613
    functionLinenumberEnd: 639
    functionName: _overlapped_Overlapped_ReadFileInto
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_ReadFileInto_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_ReadFileInto(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:662,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:666,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:669,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:675,1
    - Dst: _overlapped_Overlapped_WSARecv_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:679,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 683
    functionName: _overlapped_Overlapped_WSARecv
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _overlapped_Overlapped_WSARecv_impl
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_WSARecv(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:707,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:710,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:711,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:714,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:717,1
    - Dst: _overlapped_Overlapped_WSARecvInto_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:720,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:725,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 699
    functionDepth: 4
    functionLinenumber: 699
    functionLinenumberEnd: 729
    functionName: _overlapped_Overlapped_WSARecvInto
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_Overlapped_WSARecvInto_impl
    - PyLong_AsVoidPtr
    - PyObject_GetBuffer
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_WSARecvInto(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:751,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:754,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:755,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:758,1
    - Dst: _overlapped_Overlapped_WriteFile_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:761,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:766,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 744
    functionDepth: 3
    functionLinenumber: 744
    functionLinenumberEnd: 770
    functionName: _overlapped_Overlapped_WriteFile
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_WriteFile_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_WriteFile(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:793,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:796,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:797,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:800,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:803,1
    - Dst: _overlapped_Overlapped_WSASend_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:806,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:811,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 815
    functionName: _overlapped_Overlapped_WSASend
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_Overlapped_WSASend_impl
    - PyLong_AsVoidPtr
    - PyObject_GetBuffer
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_WSASend(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:838,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:841,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:842,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:845,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:846,1
    - Dst: _overlapped_Overlapped_AcceptEx_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:849,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 853
    functionName: _overlapped_Overlapped_AcceptEx
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_AsVoidPtr
    - _overlapped_Overlapped_AcceptEx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_AcceptEx(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:878,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:881,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:882,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:885,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:886,1
    - Dst: _overlapped_Overlapped_ConnectEx_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:890,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 871
    functionDepth: 4
    functionLinenumber: 871
    functionLinenumberEnd: 894
    functionName: _overlapped_Overlapped_ConnectEx
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_ConnectEx_impl
    - PyErr_Occurred
    - PyTuple_Check
    - PyLong_AsVoidPtr
    - _PyArg_BadArgument
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_ConnectEx(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:915,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:919,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:922,1
    - Dst: _overlapped_Overlapped_DisconnectEx_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:925,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 929
    functionName: _overlapped_Overlapped_DisconnectEx
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_DisconnectEx_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_DisconnectEx(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:960,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:963,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:964,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:967,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:968,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:971,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:974,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:977,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:980,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:983,1
    - Dst: _overlapped_Overlapped_TransmitFile_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:986,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 990
    functionName: _overlapped_Overlapped_TransmitFile
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_TransmitFile_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_TransmitFile(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1011,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1012,1
    - Dst: _overlapped_Overlapped_ConnectNamedPipe_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1005
    functionDepth: 3
    functionLinenumber: 1005
    functionLinenumberEnd: 1019
    functionName: _overlapped_Overlapped_ConnectNamedPipe
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _overlapped_Overlapped_ConnectNamedPipe_impl
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_ConnectNamedPipe(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1040,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1041,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1044,1
    - Dst: _overlapped_Overlapped_ConnectPipe_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1048,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1052,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1055
    functionName: _overlapped_Overlapped_ConnectPipe
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_ConnectPipe_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_ConnectPipe(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1077,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1080,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1081,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1084,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1085,1
    - Dst: _overlapped_WSAConnect_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1089,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1070
    functionDepth: 4
    functionLinenumber: 1070
    functionLinenumberEnd: 1093
    functionName: _overlapped_WSAConnect
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_Check
    - PyLong_AsVoidPtr
    - _PyArg_BadArgument
    - _PyArg_CheckPositional
    - _overlapped_WSAConnect_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_WSAConnect(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1118,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1121,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1122,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1125,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1128,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1131,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1132,1
    - Dst: _overlapped_Overlapped_WSASendTo_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1136,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1141,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1109
    functionDepth: 4
    functionLinenumber: 1109
    functionLinenumberEnd: 1145
    functionName: _overlapped_Overlapped_WSASendTo
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_Check
    - PyLong_AsVoidPtr
    - PyObject_GetBuffer
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _overlapped_Overlapped_WSASendTo_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_WSASendTo(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1169,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1172,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1173,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1176,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1182,1
    - Dst: _overlapped_Overlapped_WSARecvFrom_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1161
    functionDepth: 3
    functionLinenumber: 1161
    functionLinenumberEnd: 1190
    functionName: _overlapped_Overlapped_WSARecvFrom
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_WSARecvFrom_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_WSARecvFrom(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1215,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1218,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1219,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1222,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1225,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1231,1
    - Dst: _overlapped_Overlapped_WSARecvFromInto_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1235,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1240,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1244
    functionName: _overlapped_Overlapped_WSARecvFromInto
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _overlapped_Overlapped_WSARecvFromInto_impl
    - PyObject_GetBuffer
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_Overlapped_WSARecvFromInto(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:28,1
    - Dst: _dbm_dbm_close_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:29,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: _dbm_dbm_close
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _dbm_dbm_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:52,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:53,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:56,1
    - Dst: _dbm_dbm_keys_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:57,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: _dbm_dbm_keys
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _dbm_dbm_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_keys(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:98,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:102,1
    - Dst: _dbm_dbm_get_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:103,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 108
    functionName: _dbm_dbm_get
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_ParseStackAndKeywords
    - _dbm_dbm_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_get(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:146,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:150,1
    - Dst: _dbm_dbm_setdefault_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:151,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 156
    functionName: _dbm_dbm_setdefault
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_ParseStackAndKeywords
    - _dbm_dbm_setdefault_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_setdefault(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:176,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:179,1
    - Dst: _dbm_dbm_clear_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:180,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: _dbm_dbm_clear
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _dbm_dbm_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_clear(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:216,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:223,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:224,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:228,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:232,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:233,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:240,1
    - Dst: dbmopen_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:244,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 248
    functionName: dbmopen
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - dbmopen_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/_decimal/_decimal.c:127,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 87
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: decimal_state
    signature: 'decimal_state *

      get_module_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_decimal/_decimal.c:139,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:140,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: get_module_state_by_def
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 35
    functionsReached:
    - assert
    - get_module_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: decimal_state
    signature: 'decimal_state *

      get_module_state_by_def(PyTypeObject *tp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:148,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:148,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:149,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:149,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:150,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:150,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:152,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:153,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (base != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (state != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: find_state_left_or_right
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _PyType_GetModuleState
    - PyType_GetBaseByToken
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: decimal_state
    signature: 'decimal_state *

      find_state_left_or_right(PyObject *left, PyObject *right)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:163,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:163,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:164,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:164,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:165,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:165,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:166,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:167,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:167,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:170,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:171,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - left
    - right
    - modulus
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (base != NULL)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (state != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: find_state_ternary
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _PyType_GetModuleState
    - PyType_GetBaseByToken
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: decimal_state
    signature: 'decimal_state *

      find_state_ternary(PyObject *left, PyObject *right, PyObject *modulus)'
  - 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: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: BOUNDS_CHECK
    functionSourceFile: /src/cpython/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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: _PyDecObject_CAST
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyDecObject_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: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: _PyDecSignalDictObject_CAST
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyDecSignalDictObject_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: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: _PyDecContextObject_CAST
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyDecContextObject_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: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: _PyDecContextManagerObject_CAST
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyDecContextManagerObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: PyDec_CheckExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_CheckExact(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: PyDec_Check
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: PyDecSignalDict_Check
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDecSignalDict_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - st
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: PyDecContext_Check
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDecContext_Check(st, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: MPD
    functionSourceFile: /src/cpython/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: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: SdFlagAddr
    functionSourceFile: /src/cpython/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: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: SdFlags
    functionSourceFile: /src/cpython/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: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: CTX
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 2
    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: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: CtxCaps
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CtxCaps(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:252,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:252,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:252,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyType_GetBaseByToken(Py_TYPE(v), &context_spec, NULL) == 1)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (state != NULL)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: get_module_state_from_ctx
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyType_GetBaseByToken
    - assert
    linkageType: ''
    returnType: decimal_state
    signature: 'decimal_state *

      get_module_state_from_ctx(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: incr_true
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void incr_true(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: incr_false
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void incr_false(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:319,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:321,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 327
    functionName: dec_cond_map_init
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: DecCondMap
    signature: 'DecCondMap *

      dec_cond_map_init(DecCondMap *template, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: value_error_int
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: value_error_ptr
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: type_error_int
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: runtime_error_int
    functionSourceFile: /src/cpython/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: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: INTERNAL_ERROR_INT
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_ERROR_INT(funcname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: runtime_error_ptr
    functionSourceFile: /src/cpython/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: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: INTERNAL_ERROR_PTR
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_ERROR_PTR(funcname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(ctx)
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: dec_traphandler
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dec_traphandler(mpd_context_t *Py_UNUSED(ctx))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 428
    functionName: flags_as_exception
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - INTERNAL_ERROR_PTR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flags_as_exception(decimal_state *state, uint32_t flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - ex
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: exception_as_flag
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void exception_as_flag(decimal_state *state, PyObject *ex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:451,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_decimal/_decimal.c:458,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_decimal/_decimal.c:465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:474,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 476
    functionName: flags_as_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flags_as_list(decimal_state *state, uint32_t flags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:484,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_decimal/_decimal.c:491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 499
    functionName: signals_as_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signals_as_list(decimal_state *state, uint32_t flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:508,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:508,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:510,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:513,1
    - Dst: exception_as_flag
      Src: /src/cpython/Modules/_decimal/_decimal.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - state
    - list
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(list))
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 522
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 522
    functionName: list_as_flags
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - exception_as_flag
    - PyList_Check
    - PyList_Size
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t list_as_flags(decimal_state *state, PyObject *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:530,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 544
    functionName: flags_as_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyDict_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flags_as_dict(decimal_state *state, uint32_t flags)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:554,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:555,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:560,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:561,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_decimal/_decimal.c:567,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:569,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:572,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_decimal/_decimal.c:577,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - state
    - val
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 587
    functionName: dict_as_flags
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyErr_SetString
    - PyDict_Check
    - PyDict_Size
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_as_flags(decimal_state *state, PyObject *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:595,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:596,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: long_as_flags
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsLong
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t long_as_flags(PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:611,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:612,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:619,1
    - Dst: flags_as_exception
      Src: /src/cpython/Modules/_decimal/_decimal.c:623,1
    - Dst: flags_as_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:627,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - context
    - status
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 637
    functionName: dec_addstatus
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - flags_as_list
    - get_module_state_from_ctx
    - PyErr_SetObject
    - CTX
    - flags_as_exception
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int dec_addstatus(PyObject *context, uint32_t status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:643,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Modules/_decimal/_decimal.c:650,1
    - Dst: type_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - state
    - v
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 657
    functionName: getround
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_Compare
    - type_error_int
    linkageType: ''
    returnType: int
    signature: int getround(decimal_state *state, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - Py_UNUSED(args)
    - Py_UNUSED(kwds)
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 678
    functionName: signaldict_init
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlagAddr
    linkageType: ''
    returnType: int
    signature: "int signaldict_init(PyObject *self,\n                PyObject *Py_UNUSED(args),
      PyObject *Py_UNUSED(kwds))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:683,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: signaldict_len
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlagAddr
    - value_error_int
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t signaldict_len(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:692,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:693,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:695,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:695,1
    - Dst: tp_iter
      Src: /src/cpython/Modules/_decimal/_decimal.c:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 697
    functionName: signaldict_iter
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - value_error_ptr
    - tp_iter
    - SdFlagAddr
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_iter(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:703,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:704,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:706,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:706,1
    - Dst: exception_as_flag
      Src: /src/cpython/Modules/_decimal/_decimal.c:708,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:713,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:713,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 714
    functionName: signaldict_getitem
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - incr_true
    - exception_as_flag
    - value_error_ptr
    - SdFlags
    - incr_false
    - SdFlagAddr
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_getitem(PyObject *self, PyObject *key)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:722,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:723,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:727,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:730,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:730,1
    - Dst: exception_as_flag
      Src: /src/cpython/Modules/_decimal/_decimal.c:731,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_decimal/_decimal.c:736,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:742,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:745,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 749
    functionName: signaldict_setitem
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - get_module_state_by_def
    - exception_as_flag
    - SdFlags
    - value_error_int
    - SdFlagAddr
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int signaldict_setitem(PyObject *self, PyObject *key, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:754,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 756
    functionName: signaldict_traverse
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int signaldict_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:761,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:762,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:763,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 765
    functionName: signaldict_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void signaldict_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:775,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:776,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:779,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:781,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:784,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_decimal/_decimal.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (SIGNAL_MAP_LEN == 9)
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 793
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 793
    functionName: signaldict_repr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - PyUnicode_FromFormat
    - value_error_ptr
    - SdFlags
    - SdFlagAddr
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_repr(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:800,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:800,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:801,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:801,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:803,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:803,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:804,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:808,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:809,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:809,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:811,1
    - Dst: dict_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:812,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:816,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:823,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:828,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyDecSignalDict_Check(state, v))
      pos:
        line_end: 800
        line_start: 800
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 829
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 829
    functionName: signaldict_richcompare
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecSignalDict_Check
    - PyDict_Check
    - get_module_state_by_def
    - value_error_ptr
    - SdFlags
    - Py_NewRef
    - dict_as_flags
    - SdFlagAddr
    - PyErr_Clear
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:834,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:835,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:837,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:837,1
    - Dst: flags_as_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:838,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 839
    functionName: signaldict_copy
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - value_error_ptr
    - SdFlags
    - flags_as_dict
    - SdFlagAddr
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_copy(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 885
    functionName: Dec_CONTEXT_GET_SSIZE
    functionSourceFile: /src/cpython/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: 892
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 892
    functionName: Dec_CONTEXT_GET_ULONG
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:906,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:906,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:907,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 910
    functionName: context_getround
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - mpd_getround
    - get_module_state_from_ctx
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getround(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:915,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 916
    functionName: context_getcapitals
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CtxCaps
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getcapitals(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:922,1
    - Dst: mpd_getcr
      Src: /src/cpython/Modules/_decimal/_decimal.c:922,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 923
    functionName: context_getallcr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_getcr
    - CTX
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getallcr(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:939,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/_decimal.c:939,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 940
    functionName: _decimal_Context_Etiny_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    - PyLong_FromSsize_t
    - mpd_etiny
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_Etiny_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:955,1
    - Dst: mpd_etop
      Src: /src/cpython/Modules/_decimal/_decimal.c:955,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 956
    functionName: _decimal_Context_Etop_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    - PyLong_FromSsize_t
    - mpd_etop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_Etop_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:964,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:965,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:969,1
    - Dst: mpd_qsetprec
      Src: /src/cpython/Modules/_decimal/_decimal.c:970,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 976
    functionName: context_setprec
    functionSourceFile: /src/cpython/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 *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:985,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:989,1
    - Dst: mpd_qsetemin
      Src: /src/cpython/Modules/_decimal/_decimal.c:990,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 996
    functionName: context_setemin
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsetemin
    - PyErr_Occurred
    - value_error_int
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setemin(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:1004,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1005,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1009,1
    - Dst: mpd_qsetemax
      Src: /src/cpython/Modules/_decimal/_decimal.c:1010,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1016
    functionName: context_setemax
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_int
    - mpd_qsetemax
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setemax(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1022,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:1025,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1026,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1037
    functionName: context_unsafe_setprec
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_ptr
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_unsafe_setprec(PyObject *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1042,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:1045,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1046,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1057
    functionName: context_unsafe_setemin
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_ptr
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_unsafe_setemin(PyObject *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1062,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:1065,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1066,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1077
    functionName: context_unsafe_setemax
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_ptr
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_unsafe_setemax(PyObject *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1086,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:1087,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1092,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:1093,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1098
    functionName: context_setround
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsetround
    - getround
    - get_module_state_from_ctx
    - INTERNAL_ERROR_INT
    - CTX
    linkageType: ''
    returnType: int
    signature: int context_setround(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:1105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1106,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1111,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1117
    functionName: context_setcapitals
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_int
    - PyLong_AsSsize_t
    - CtxCaps
    linkageType: ''
    returnType: int
    signature: int context_setcapitals(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: long_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1126,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1131,1
    - Dst: mpd_qsettraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1132,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1137
    functionName: context_settraps
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - INTERNAL_ERROR_INT
    - CTX
    - mpd_qsettraps
    - long_as_flags
    linkageType: ''
    returnType: int
    signature: int context_settraps(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1145,1
    - Dst: list_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1146,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1151,1
    - Dst: mpd_qsettraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1152,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1157
    functionName: context_settraps_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_from_ctx
    - INTERNAL_ERROR_INT
    - CTX
    - list_as_flags
    - mpd_qsettraps
    linkageType: ''
    returnType: int
    signature: int context_settraps_list(PyObject *self, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1165,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1166,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1167,1
    - Dst: dict_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1170,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1176,1
    - Dst: mpd_qsettraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1177,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1182
    functionName: context_settraps_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecSignalDict_Check
    - SdFlags
    - get_module_state_from_ctx
    - dict_as_flags
    - CTX
    - INTERNAL_ERROR_INT
    - mpd_qsettraps
    linkageType: ''
    returnType: int
    signature: int context_settraps_dict(PyObject *self, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: long_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1191,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1196,1
    - Dst: mpd_qsetstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:1197,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1202
    functionName: context_setstatus
    functionSourceFile: /src/cpython/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 *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1210,1
    - Dst: list_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1212,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1217,1
    - Dst: mpd_qsetstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:1218,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1223
    functionName: context_setstatus_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_from_ctx
    - list_as_flags
    - CTX
    - INTERNAL_ERROR_INT
    - mpd_qsetstatus
    linkageType: ''
    returnType: int
    signature: int context_setstatus_list(PyObject *self, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1231,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1232,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1233,1
    - Dst: dict_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1236,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1242,1
    - Dst: mpd_qsetstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:1243,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1248
    functionName: context_setstatus_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecSignalDict_Check
    - SdFlags
    - get_module_state_from_ctx
    - dict_as_flags
    - CTX
    - INTERNAL_ERROR_INT
    - mpd_qsetstatus
    linkageType: ''
    returnType: int
    signature: int context_setstatus_dict(PyObject *self, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:1256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1257,1
    - Dst: BOUNDS_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1260,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1262,1
    - Dst: mpd_qsetclamp
      Src: /src/cpython/Modules/_decimal/_decimal.c:1263,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1268
    functionName: context_setclamp
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_int
    - BOUNDS_CHECK
    - CTX
    - PyLong_AsSsize_t
    - mpd_qsetclamp
    linkageType: ''
    returnType: int
    signature: int context_setclamp(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:1277,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1278,1
    - Dst: BOUNDS_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1281,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1283,1
    - Dst: mpd_qsetcr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1284,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1289
    functionName: context_setallcr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - mpd_qsetcr
    - value_error_int
    - BOUNDS_CHECK
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setallcr(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1297,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1298,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:1300,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1302,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:1304,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1309
    functionName: context_getattr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_CompareWithASCIIString
    - Py_NewRef
    - PyObject_GenericGetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getattr(PyObject *self, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1315,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1320,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1321,1
    - Dst: context_settraps_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1322,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1324,1
    - Dst: context_setstatus_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1325,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1330
    functionName: context_setattr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - PyUnicode_CompareWithASCIIString
    - PyErr_SetString
    - context_setstatus_dict
    - context_settraps_dict
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int context_setattr(PyObject *self, PyObject *name, PyObject *value)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: context_setprec
      Src: /src/cpython/Modules/_decimal/_decimal.c:1338,1
    - Dst: context_setround
      Src: /src/cpython/Modules/_decimal/_decimal.c:1341,1
    - Dst: context_setemin
      Src: /src/cpython/Modules/_decimal/_decimal.c:1344,1
    - Dst: context_setemax
      Src: /src/cpython/Modules/_decimal/_decimal.c:1347,1
    - Dst: context_setcapitals
      Src: /src/cpython/Modules/_decimal/_decimal.c:1350,1
    - Dst: context_setclamp
      Src: /src/cpython/Modules/_decimal/_decimal.c:1353,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1358,1
    - Dst: context_settraps_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:1359,1
    - Dst: context_settraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1363,1
    - Dst: context_settraps_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1367,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 9
    argNames:
    - self
    - prec
    - rounding
    - emin
    - emax
    - capitals
    - clamp
    - status
    - traps
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1332
    functionDepth: 4
    functionLinenumber: 1332
    functionLinenumberEnd: 1372
    functionName: context_setattrs
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_setround
    - context_setprec
    - PyList_Check
    - context_setemin
    - context_settraps_dict
    - context_setcapitals
    - context_settraps_list
    - context_settraps
    - context_setemax
    - context_setclamp
    linkageType: ''
    returnType: int
    signature: "int context_setattrs(PyObject *self, PyObject *prec, PyObject *rounding,\n
      \                PyObject *emin, PyObject *emax, PyObject *capitals,\n                 PyObject
      *clamp, PyObject *status, PyObject *traps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_settraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1362
    functionDepth: 3
    functionLinenumber: 1362
    functionLinenumberEnd: 1364
    functionName: if
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1380
    functionName: if
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 2
    functionsReached:
    - context_setstatus
    linkageType: ''
    returnType: else
    signature: else if (PyLong_Check(status))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1398
    functionName: context_clear_traps
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_clear_traps(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1405
    functionName: context_clear_flags
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_clear_flags(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:1423,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:1425,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:1428,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1438,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1443,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1447,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1450,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1456,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1457,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1459,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_decimal/_decimal.c:1464,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:1466,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_decimal/_decimal.c:1466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - type
    - Py_UNUSED(args)
    - Py_UNUSED(kwds)
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyObject_GC_IsTracked((PyObject *)self))
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 1468
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1468
    functionName: context_new
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - Py_DECREF
    - PyObject_CallObject
    - PyObject_GC_Track
    - CTX
    - CtxCaps
    - PyTypeObject*::tp_alloc
    - SdFlagAddr
    - PyObject_GC_New
    - PyObject_GC_IsTracked
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncontext_new(PyTypeObject *type,\n            PyObject
      *Py_UNUSED(args), PyObject *Py_UNUSED(kwds))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDecContextObject_CAST
      Src: /src/cpython/Modules/_decimal/_decimal.c:1473,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1474,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:1474,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1475,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1478
    functionName: context_traverse
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _PyDecContextObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int context_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDecContextObject_CAST
      Src: /src/cpython/Modules/_decimal/_decimal.c:1483,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1484,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1487
    functionName: context_clear
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 1
    functionsReached:
    - _PyDecContextObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int context_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:1492,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:1493,1
    - Dst: context_clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:1494,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:1495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1497
    functionName: context_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - context_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void context_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:1515,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1515,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_decimal/_decimal.c:1517,1
    - Dst: context_setattrs
      Src: /src/cpython/Modules/_decimal/_decimal.c:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 1514
        line_start: 1514
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 1530
      start: 1499
    functionDepth: 5
    functionLinenumber: 1499
    functionLinenumberEnd: 1530
    functionName: context_init
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyArg_ParseTupleAndKeywords
    - context_setattrs
    - assert
    linkageType: ''
    returnType: int
    signature: int context_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1541,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:1542,1
    - Dst: PyDecContext_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1542,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1544,1
    - Dst: mpd_lsnprint_signals
      Src: /src/cpython/Modules/_decimal/_decimal.c:1547,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1549,1
    - Dst: mpd_lsnprint_signals
      Src: /src/cpython/Modules/_decimal/_decimal.c:1552,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1554,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_decimal/_decimal.c:1557,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDecContext_Check(state, self))
      pos:
        line_end: 1541
        line_start: 1541
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 1562
      start: 1532
    functionDepth: 2
    functionLinenumber: 1532
    functionLinenumberEnd: 1562
    functionName: context_repr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecContext_Check
    - mpd_lsnprint_signals
    - PyUnicode_FromFormat
    - get_module_state_from_ctx
    - INTERNAL_ERROR_PTR
    - CTX
    - CtxCaps
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1573,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1575
    functionName: init_basic_context
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:1585,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1587
    functionName: init_extended_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    - CtxCaps
    linkageType: ''
    returnType: void
    signature: void init_extended_context(PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_ieee_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:1613,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1617,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1618,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1622,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:1627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - module
    - bits
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1632
    functionName: _decimal_IEEEContext_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyObject_CallObject
    - CTX
    - PyErr_Format
    - mpd_ieee_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_IEEEContext_impl(PyObject *module, Py_ssize_t bits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1639,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1640,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1645,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1645,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1646,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1647,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1634
    functionDepth: 2
    functionLinenumber: 1634
    functionLinenumberEnd: 1650
    functionName: context_copy
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - get_module_state_from_ctx
    - CTX
    - CtxCaps
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_copy(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1659,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1661,1
    - Dst: signals_as_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:1663,1
    - Dst: signals_as_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:1667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1669,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_decimal/_decimal.c:1673,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:1675,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1652
    functionDepth: 2
    functionLinenumber: 1652
    functionLinenumberEnd: 1683
    functionName: context_reduce
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - get_module_state_from_ctx
    - CTX
    - signals_as_list
    - CtxCaps
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_reduce(PyObject *self, PyObject *Py_UNUSED(dummy))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1703
    functionDepth: 0
    functionLinenumber: 1703
    functionLinenumberEnd: 1709
    functionName: CONTEXT_CHECK
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONTEXT_CHECK(state, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1719
    functionName: CONTEXT_CHECK_VA
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONTEXT_CHECK_VA(state, obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_decimal/_decimal.c:1737,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Modules/_decimal/_decimal.c:1740,1
    - Dst: _PyThreadState_GetDict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1743,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1745,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_decimal/_decimal.c:1751,1
    - Dst: CONTEXT_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1754,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1757,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1762,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1766,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:1768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1772,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1777,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:1778,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - modstate
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1734
    functionDepth: 3
    functionLinenumber: 1734
    functionLinenumberEnd: 1783
    functionName: current_context_from_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyDict_SetItem
    - Py_DECREF
    - _PyThreadState_GetDict
    - PyErr_Occurred
    - PyErr_SetString
    - _PyThreadState_GET
    - Py_NewRef
    - CTX
    - Py_XSETREF
    - context_copy
    - _Py_EnsureTstateNotNULL
    - CONTEXT_CHECK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      current_context_from_dict(decimal_state *modstate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_decimal/_decimal.c:1789,1
    - Dst: current_context_from_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - modstate
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1786
    functionDepth: 4
    functionLinenumber: 1786
    functionLinenumberEnd: 1795
    functionName: current_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - current_context_from_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      current_context(decimal_state *modstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STATE
    - ','
    - CTXOBJ
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1805
    functionName: CURRENT_CONTEXT
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_CONTEXT(STATE, CTXOBJ)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1811,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1813,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:1814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1815
    functionName: PyDec_GetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_module_state
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_GetCurrentContext(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1823,1
    - Dst: CONTEXT_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1824,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1826,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1828,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1838,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1842,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1845,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1848,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:1849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1854,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1818
    functionDepth: 3
    functionLinenumber: 1818
    functionLinenumberEnd: 1856
    functionName: PyDec_SetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GetDict
    - Py_INCREF
    - get_module_state
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_SetString
    - CTX
    - context_copy
    - Py_CLEAR
    - CONTEXT_CHECK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_SetCurrentContext(PyObject *self, PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1861,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1865,1
    - Dst: PyContextVar_Set
      Src: /src/cpython/Modules/_decimal/_decimal.c:1867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1858
    functionDepth: 3
    functionLinenumber: 1858
    functionLinenumberEnd: 1875
    functionName: init_current_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CTX
    - PyContextVar_Set
    - context_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      init_current_context(decimal_state *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_Get
      Src: /src/cpython/Modules/_decimal/_decimal.c:1881,1
    - Dst: init_current_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1877
    functionDepth: 4
    functionLinenumber: 1877
    functionLinenumberEnd: 1890
    functionName: current_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 1
    functionsReached:
    - PyContextVar_Get
    - init_current_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      current_context(decimal_state *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STATE
    - ','
    - CTXOBJ
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1893
    functionDepth: 0
    functionLinenumber: 1893
    functionLinenumberEnd: 1901
    functionName: CURRENT_CONTEXT
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_CONTEXT(STATE, CTXOBJ)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1906,1
    - Dst: current_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1903
    functionDepth: 5
    functionLinenumber: 1903
    functionLinenumberEnd: 1908
    functionName: PyDec_GetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - current_context
    - get_module_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_GetCurrentContext(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1914,1
    - Dst: CONTEXT_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1915,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1922,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1926,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1929,1
    - Dst: PyContextVar_Set
      Src: /src/cpython/Modules/_decimal/_decimal.c:1932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1911
    functionDepth: 3
    functionLinenumber: 1911
    functionLinenumberEnd: 1940
    functionName: PyDec_SetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_module_state
    - PyContextVar_Set
    - Py_DECREF
    - CTX
    - context_copy
    - CONTEXT_CHECK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_SetCurrentContext(PyObject *self, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_GetCurrentContext
      Src: /src/cpython/Modules/_decimal/_decimal.c:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1949
    functionDepth: 2
    functionLinenumber: 1949
    functionLinenumberEnd: 1954
    functionName: _decimal_getcontext_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_GetCurrentContext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_getcontext_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_SetCurrentContext
      Src: /src/cpython/Modules/_decimal/_decimal.c:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1965
    functionDepth: 4
    functionLinenumber: 1965
    functionLinenumberEnd: 1970
    functionName: _decimal_setcontext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_SetCurrentContext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_setcontext(PyObject *module, PyObject *context)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:2008,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2009,1
    - Dst: PyDecContext_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2013,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2014,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:2019,1
    - Dst: context_setattrs
      Src: /src/cpython/Modules/_decimal/_decimal.c:2024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2030,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2035,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2038,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2043,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_decimal/_decimal.c:2044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 10
    argNames:
    - module
    - local
    - prec
    - rounding
    - Emin
    - Emax
    - capitals
    - clamp
    - flags
    - traps
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 1999
    functionDepth: 5
    functionLinenumber: 1999
    functionLinenumberEnd: 2047
    functionName: _decimal_localcontext_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecContext_Check
    - context_setattrs
    - get_module_state
    - Py_DECREF
    - PyErr_SetString
    - Py_NewRef
    - PyObject_GC_Track
    - CURRENT_CONTEXT
    - context_copy
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_localcontext_impl(PyObject *module, PyObject
      *local, PyObject *prec,\n                           PyObject *rounding, PyObject
      *Emin,\n                           PyObject *Emax, PyObject *capitals,\n                           PyObject
      *clamp, PyObject *flags, PyObject *traps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDecContextManagerObject_CAST
      Src: /src/cpython/Modules/_decimal/_decimal.c:2052,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2053,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2053,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2054,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2057
    functionName: ctxmanager_traverse
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyDecContextManagerObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ctxmanager_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDecContextManagerObject_CAST
      Src: /src/cpython/Modules/_decimal/_decimal.c:2062,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:2063,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2059
    functionDepth: 1
    functionLinenumber: 2059
    functionLinenumberEnd: 2066
    functionName: ctxmanager_clear
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _PyDecContextManagerObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ctxmanager_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2071,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:2072,1
    - Dst: ctxmanager_clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:2073,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2068
    functionDepth: 2
    functionLinenumber: 2068
    functionLinenumberEnd: 2076
    functionName: ctxmanager_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - ctxmanager_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ctxmanager_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyDecContextManagerObject_CAST
      Src: /src/cpython/Modules/_decimal/_decimal.c:2082,1
    - Dst: PyDec_SetCurrentContext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2083,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:2083,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2087,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2078
    functionDepth: 4
    functionLinenumber: 2078
    functionLinenumberEnd: 2090
    functionName: ctxmanager_set_local
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_SetCurrentContext
    - Py_DECREF
    - Py_NewRef
    - _PyDecContextManagerObject_CAST
    - PyType_GetModule
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctxmanager_set_local(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyDecContextManagerObject_CAST
      Src: /src/cpython/Modules/_decimal/_decimal.c:2096,1
    - Dst: PyDec_SetCurrentContext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2097,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:2097,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2092
    functionDepth: 4
    functionLinenumber: 2092
    functionLinenumberEnd: 2104
    functionName: ctxmanager_restore_global
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_SetCurrentContext
    - Py_DECREF
    - _PyDecContextManagerObject_CAST
    - PyType_GetModule
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctxmanager_restore_global(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2141,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:2144,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2152,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2153,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2154,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2155,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2156,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2157,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_decimal/_decimal.c:2160,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2162,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_decimal/_decimal.c:2162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - state
    - type
    argTypes:
    - decimal_state*
    - PyTypeObject*
    assertStmts:
    - condition: (PyObject_GC_IsTracked((PyObject *)dec))
      pos:
        line_end: 2161
        line_start: 2161
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2164
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2164
    functionName: PyDecType_New
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyObject_GC_Track
    - PyTypeObject*::tp_alloc
    - PyObject_GC_New
    - PyObject_GC_IsTracked
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_New(decimal_state *state, PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2165
    functionDepth: 0
    functionLinenumber: 2165
    functionLinenumberEnd: 2166
    functionName: dec_alloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dec_alloc(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2170,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dec
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2167
    functionDepth: 1
    functionLinenumber: 2167
    functionLinenumberEnd: 2172
    functionName: dec_traverse
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dec_traverse(PyObject *dec, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2177,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:2178,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2179,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2179,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2182
    functionName: dec_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - mpd_del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dec_dealloc(PyObject *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_decimal/_decimal.c:2192,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - kind
    - data
    - pos
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2190
    functionDepth: 1
    functionLinenumber: 2190
    functionLinenumberEnd: 2194
    functionName: is_space
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    linkageType: ''
    returnType: void
    signature: void is_space(int kind, const void *data, Py_ssize_t pos)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_decimal/_decimal.c:2214,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_decimal/_decimal.c:2215,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_decimal/_decimal.c:2216,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:2218,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2220,1
    - Dst: is_space
      Src: /src/cpython/Modules/_decimal/_decimal.c:2226,1
    - Dst: is_space
      Src: /src/cpython/Modules/_decimal/_decimal.c:2229,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_decimal/_decimal.c:2235,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2243,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Modules/_decimal/_decimal.c:2247,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - u
    - strip_ws
    - ignore_underscores
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2204
    functionDepth: 2
    functionLinenumber: 2204
    functionLinenumberEnd: 2257
    functionName: numeric_as_ascii
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_TODECIMAL
    - is_space
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      numeric_as_ascii(PyObject *u, int strip_ws, int ignore_underscores)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2268,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2269,1
    - Dst: mpd_qset_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:2274,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2274,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2274,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - s
    - context
    argTypes:
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2261
    functionDepth: 3
    functionLinenumber: 2261
    functionLinenumberEnd: 2280
    functionName: PyDecType_FromCString
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - get_module_state_from_ctx
    - mpd_qset_string
    - CTX
    - dec_addstatus
    - PyDecType_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromCString(PyTypeObject *type, const char *s,\n
      \                     PyObject *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2293,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2294,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2299,1
    - Dst: mpd_qset_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:2301,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2301,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/_decimal.c:2304,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2304,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - s
    - context
    argTypes:
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2285
    functionDepth: 3
    functionLinenumber: 2285
    functionLinenumberEnd: 2313
    functionName: PyDecType_FromCStringExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - get_module_state_from_ctx
    - mpd_qset_string
    - mpd_maxcontext
    - dec_addstatus
    - PyDecType_New
    - mpd_seterror
    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/cpython/Modules/_decimal/_decimal.c:2323,1
    - Dst: PyDecType_FromCString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2328,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - u
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2316
    functionDepth: 4
    functionLinenumber: 2316
    functionLinenumberEnd: 2331
    functionName: PyDecType_FromUnicode
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromCString
    - PyMem_Free
    - numeric_as_ascii
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromUnicode(PyTypeObject *type, PyObject *u,\n
      \                     PyObject *context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: numeric_as_ascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:2343,1
    - Dst: PyDecType_FromCStringExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2348,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - u
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2336
    functionDepth: 4
    functionLinenumber: 2336
    functionLinenumberEnd: 2351
    functionName: PyDecType_FromUnicodeExactWS
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromCStringExact
    - PyMem_Free
    - numeric_as_ascii
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromUnicodeExactWS(PyTypeObject *type, PyObject
      *u,\n                             PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2359,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2360,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2365,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2366,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2367,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:2369,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2369,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2370,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/_decimal.c:2371,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2371,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: 2372
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2372
    functionName: _dec_settriple
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - mpd_set_flags
    - mpd_setdigits
    linkageType: ''
    returnType: void
    signature: void _dec_settriple(PyObject *dec, uint8_t sign, uint32_t v, mpd_ssize_t
      exp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2381,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2382,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2387,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2387,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2387,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - mpd_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2375
    functionDepth: 3
    functionLinenumber: 2375
    functionLinenumberEnd: 2393
    functionName: PyDecType_FromSsize
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - get_module_state_from_ctx
    - mpd_qset_ssize
    - CTX
    - dec_addstatus
    - PyDecType_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromSsize(PyTypeObject *type, mpd_ssize_t v, PyObject *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2403,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2404,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2409,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2411,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2411,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - mpd_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2396
    functionDepth: 3
    functionLinenumber: 2396
    functionLinenumberEnd: 2417
    functionName: PyDecType_FromSsizeExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - get_module_state_from_ctx
    - mpd_qset_ssize
    - mpd_maxcontext
    - dec_addstatus
    - 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/cpython/Modules/_decimal/_decimal.c:2425,1
    - Dst: PyLong_Export
      Src: /src/cpython/Modules/_decimal/_decimal.c:2433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2434,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_decimal/_decimal.c:2438,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2440,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2441,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2442,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2443,1
    - Dst: mpd_qimport_u32
      Src: /src/cpython/Modules/_decimal/_decimal.c:2450,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2450,1
    - Dst: mpd_qimport_u16
      Src: /src/cpython/Modules/_decimal/_decimal.c:2454,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2454,1
    - Dst: PyLong_FreeExport
      Src: /src/cpython/Modules/_decimal/_decimal.c:2457,1
    - Dst: mpd_qset_i64
      Src: /src/cpython/Modules/_decimal/_decimal.c:2460,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2460,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - state
    - type
    - v
    - ctx
    - status
    argTypes:
    - decimal_state*
    - PyTypeObject*
    - PyObject*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (layout->bits_per_digit < 32)
      pos:
        line_end: 2439
        line_start: 2439
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 2440
        line_start: 2440
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 2441
        line_start: 2441
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 2442
        line_start: 2442
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2463
      start: 2421
    functionDepth: 2
    functionLinenumber: 2421
    functionLinenumberEnd: 2463
    functionName: dec_from_long
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_i64
    - MPD
    - Py_DECREF
    - mpd_qimport_u32
    - PyLong_FreeExport
    - mpd_qimport_u16
    - PyLong_GetNativeLayout
    - PyLong_Export
    - PyDecType_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndec_from_long(decimal_state *state, PyTypeObject *type,
      PyObject *v,\n              const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2473,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2474,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2478,1
    - Dst: dec_from_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:2479,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2479,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2467
    functionDepth: 3
    functionLinenumber: 2467
    functionLinenumberEnd: 2490
    functionName: PyDecType_FromLong
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyLong_Check
    - get_module_state_from_ctx
    - dec_from_long
    - CTX
    - dec_addstatus
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromLong(PyTypeObject *type, PyObject *v, PyObject *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2502,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2503,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2507,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2508,1
    - Dst: dec_from_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:2509,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/_decimal.c:2516,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2516,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2494
    functionDepth: 3
    functionLinenumber: 2494
    functionLinenumberEnd: 2525
    functionName: PyDecType_FromLongExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - PyErr_SetString
    - PyLong_Check
    - get_module_state_from_ctx
    - dec_from_long
    - mpd_maxcontext
    - dec_addstatus
    - mpd_seterror
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromLongExact(PyTypeObject *type, PyObject *v,\n
      \                       PyObject *context)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2541,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2544,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_decimal/_decimal.c:2544,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2546,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2547,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2549,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2550,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_decimal/_decimal.c:2555,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2556,1
    - Dst: copysign
      Src: /src/cpython/Modules/_decimal/_decimal.c:2559,1
    - Dst: isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:2561,1
    - Dst: isinf
      Src: /src/cpython/Modules/_decimal/_decimal.c:2561,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2562,1
    - Dst: isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:2566,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:2569,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2569,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:2572,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2572,1
    - Dst: decimal_state*::_py_float_abs
      Src: /src/cpython/Modules/_decimal/_decimal.c:2578,1
    - Dst: decimal_state*::_py_float_as_integer_ratio
      Src: /src/cpython/Modules/_decimal/_decimal.c:2584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2585,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2589,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2590,1
    - Dst: decimal_state*::_py_long_bit_length
      Src: /src/cpython/Modules/_decimal/_decimal.c:2592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2594,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:2597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2598,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2600,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2606,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:2611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2613,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2614,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:2617,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2620,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2621,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2625,1
    - Dst: mpd_qset_uint
      Src: /src/cpython/Modules/_decimal/_decimal.c:2626,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2627,1
    - Dst: mpd_qpow
      Src: /src/cpython/Modules/_decimal/_decimal.c:2628,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2629,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2630,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2632,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/_decimal.c:2637,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2637,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2637,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2638,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2639,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2641,1
    - Dst: mpd_set_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:2645,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2645,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2646,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 87
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, state->PyDec_Type))
      pos:
        line_end: 2543
        line_start: 2543
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2649
      start: 2529
    functionDepth: 4
    functionLinenumber: 2529
    functionLinenumberEnd: 2649
    functionName: PyDecType_FromFloatExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - decimal_state*::_py_long_bit_length
    - PyErr_SetString
    - PyDecType_FromLongExact
    - dec_addstatus
    - mpd_qmul
    - PyFloat_AsDouble
    - PyErr_Occurred
    - get_module_state_from_ctx
    - decimal_state*::_py_float_as_integer_ratio
    - isinf
    - mpd_maxcontext
    - PyTuple_GET_ITEM
    - mpd_setspecial
    - MPD
    - Py_DECREF
    - PyType_IsSubtype
    - PyLong_Check
    - isnan
    - mpd_qpow
    - decimal_state*::_py_float_abs
    - mpd_del
    - PyErr_NoMemory
    - PyLong_AsSsize_t
    - PyFloat_Check
    - copysign
    - mpd_qset_uint
    - mpd_qset_ssize
    - mpd_qnew
    - mpd_set_sign
    - PyDecType_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromFloatExact(PyTypeObject *type, PyObject
      *v,\n                         PyObject *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2658,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2663,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2663,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2663,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2651
    functionDepth: 5
    functionLinenumber: 2651
    functionLinenumberEnd: 2670
    functionName: PyDecType_FromFloat
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - CTX
    - mpd_qfinalize
    - dec_addstatus
    - PyDecType_FromFloatExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromFloat(PyTypeObject *type, PyObject *v,\n
      \                   PyObject *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2679,1
    - Dst: PyDec_CheckExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2680,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2681,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2684,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:2689,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2689,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2689,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2673
    functionDepth: 3
    functionLinenumber: 2673
    functionLinenumberEnd: 2696
    functionName: PyDecType_FromDecimalExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - get_module_state_from_ctx
    - Py_NewRef
    - PyDec_CheckExact
    - dec_addstatus
    - mpd_qcopy
    - PyDecType_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromDecimalExact(PyTypeObject *type, PyObject *v, PyObject *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2701,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2702,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2704,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:2705,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - v
    - ex
    - mesg
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2698
    functionDepth: 1
    functionLinenumber: 2698
    functionLinenumberEnd: 2710
    functionName: sequence_as_tuple
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyErr_SetString
    - PyList_AsTuple
    - PyList_Check
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_as_tuple(PyObject *v, PyObject *ex, const char *mesg)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2726,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2726,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:2728,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2729,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2735,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2736,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2737,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:2741,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2742,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2746,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2754,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2755,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2757,1
    - Dst: strcat
      Src: /src/cpython/Modules/_decimal/_decimal.c:2758,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2761,1
    - Dst: strcat
      Src: /src/cpython/Modules/_decimal/_decimal.c:2762,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2764,1
    - Dst: strcat
      Src: /src/cpython/Modules/_decimal/_decimal.c:2765,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2768,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2776,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2777,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:2781,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2782,1
    - Dst: sequence_as_tuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:2788,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2788,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:2794,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:2797,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2799,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_decimal/_decimal.c:2803,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2805,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2816,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2818,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:2822,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2823,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2827,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_decimal/_decimal.c:2843,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2845,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2851,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2856,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2857,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 116
    argCount: 1
    argNames:
    - dectuple
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(dectuple))
      pos:
        line_end: 2725
        line_start: 2725
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2859
      start: 2713
    functionDepth: 2
    functionLinenumber: 2713
    functionLinenumberEnd: 2859
    functionName: dectuple_as_str
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - strcat
    - PyLong_AsSsize_t
    - sequence_as_tuple
    - PyLong_AsLong
    - PyTuple_Check
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PyUnicode_CompareWithASCIIString
    - PyMem_Free
    - snprintf
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PyUnicode_Check
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      dectuple_as_str(PyObject *dectuple)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sequence_as_tuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:2870,1
    - Dst: dectuple_as_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:2876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2877,1
    - Dst: PyDecType_FromCString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2882,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2862
    functionDepth: 4
    functionLinenumber: 2862
    functionLinenumberEnd: 2886
    functionName: PyDecType_FromSequence
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromCString
    - Py_DECREF
    - sequence_as_tuple
    - dectuple_as_str
    - 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/cpython/Modules/_decimal/_decimal.c:2897,1
    - Dst: dectuple_as_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:2903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2904,1
    - Dst: PyDecType_FromCStringExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2909,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2889
    functionDepth: 4
    functionLinenumber: 2889
    functionLinenumberEnd: 2913
    functionName: PyDecType_FromSequenceExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - sequence_as_tuple
    - PyDecType_FromCStringExact
    - dectuple_as_str
    - 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: 7
    argNames:
    - (
    - st
    - ','
    - str
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2917
    functionName: PyDec_FromCString
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromCString(st, str, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - str
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2917
    functionDepth: 0
    functionLinenumber: 2917
    functionLinenumberEnd: 2919
    functionName: PyDec_FromCStringExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromCStringExact(st, str, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - unicode
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2920
    functionDepth: 0
    functionLinenumber: 2920
    functionLinenumberEnd: 2922
    functionName: PyDec_FromUnicode
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromUnicode(st, unicode, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - unicode
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2922
    functionDepth: 0
    functionLinenumber: 2922
    functionLinenumberEnd: 2924
    functionName: PyDec_FromUnicodeExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromUnicodeExact(st, unicode, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - unicode
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2924
    functionDepth: 0
    functionLinenumber: 2924
    functionLinenumberEnd: 2926
    functionName: PyDec_FromUnicodeExactWS
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromUnicodeExactWS(st, unicode, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - v
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2927
    functionDepth: 0
    functionLinenumber: 2927
    functionLinenumberEnd: 2929
    functionName: PyDec_FromSsize
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSsize(st, v, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - v
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2929
    functionDepth: 0
    functionLinenumber: 2929
    functionLinenumberEnd: 2931
    functionName: PyDec_FromSsizeExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSsizeExact(st, v, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - pylong
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2932
    functionDepth: 0
    functionLinenumber: 2932
    functionLinenumberEnd: 2934
    functionName: PyDec_FromLong
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromLong(st, pylong, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - pylong
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2934
    functionDepth: 0
    functionLinenumber: 2934
    functionLinenumberEnd: 2936
    functionName: PyDec_FromLongExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromLongExact(st, pylong, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - pyfloat
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2937
    functionDepth: 0
    functionLinenumber: 2937
    functionLinenumberEnd: 2939
    functionName: PyDec_FromFloat
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromFloat(st, pyfloat, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - pyfloat
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2939
    functionDepth: 0
    functionLinenumber: 2939
    functionLinenumberEnd: 2941
    functionName: PyDec_FromFloatExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromFloatExact(st, pyfloat, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - sequence
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2944
      start: 2942
    functionDepth: 0
    functionLinenumber: 2942
    functionLinenumberEnd: 2944
    functionName: PyDec_FromSequence
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSequence(st, sequence, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - st
    - ','
    - sequence
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2944
    functionDepth: 0
    functionLinenumber: 2944
    functionLinenumberEnd: 2946
    functionName: PyDec_FromSequenceExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSequenceExact(st, sequence, context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:2976,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2977,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2978,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2980,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_decimal/_decimal.c:2981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - type
    - pyfloat
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2969
    functionDepth: 5
    functionLinenumber: 2969
    functionLinenumberEnd: 2985
    functionName: _decimal_Decimal_from_float_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - PyObject_CallFunctionObjArgs
    - Py_SETREF
    - CURRENT_CONTEXT
    - PyDecType_FromFloatExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_from_float_impl(PyTypeObject *type, PyObject *pyfloat)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:2993,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2994,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2995,1
    - Dst: PyDecType_FromDecimalExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2996,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2998,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2999,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3001,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3002,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3005,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3008,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 2993
        line_start: 2993
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 3013
      start: 2990
    functionDepth: 5
    functionLinenumber: 2990
    functionLinenumberEnd: 3013
    functionName: PyDecType_FromNumberExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - get_module_state_by_def
    - PyLong_Check
    - PyDec_Check
    - PyDecType_FromLongExact
    - dec_addstatus
    - PyErr_Format
    - PyDecType_FromFloatExact
    - Py_TYPE
    - PyDecType_FromDecimalExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromNumberExact(PyTypeObject *type, PyObject *v, PyObject *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:3039,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3040,1
    - Dst: PyDecType_FromNumberExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3041,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3043,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_decimal/_decimal.c:3044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - type
    - number
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3032
    functionDepth: 6
    functionLinenumber: 3032
    functionLinenumberEnd: 3048
    functionName: _decimal_Decimal_from_number_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - PyObject_CallFunctionObjArgs
    - Py_SETREF
    - PyDecType_FromNumberExact
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_from_number_impl(PyTypeObject *type, PyObject *number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3054,1
    - Dst: PyDec_FromFloat
      Src: /src/cpython/Modules/_decimal/_decimal.c:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3051
    functionDepth: 2
    functionLinenumber: 3051
    functionLinenumberEnd: 3056
    functionName: ctx_from_float
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_from_ctx
    - PyDec_FromFloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_from_float(PyObject *context, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3065,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3066,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3071,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3071,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3071,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3073,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/_decimal.c:3077,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3077,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3077,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3078,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3059
    functionDepth: 3
    functionLinenumber: 3059
    functionLinenumberEnd: 3084
    functionName: dec_apply
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - get_module_state_from_ctx
    - CTX
    - dec_addstatus
    - mpd_qcopy
    - mpd_qfinalize
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_apply(PyObject *v, PyObject *context)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3092,1
    - Dst: PyDecType_FromSsizeExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3094,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3096,1
    - Dst: PyDecType_FromDecimalExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3097,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3099,1
    - Dst: PyDecType_FromUnicodeExactWS
      Src: /src/cpython/Modules/_decimal/_decimal.c:3100,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3102,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3103,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3105,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3105,1
    - Dst: PyDecType_FromSequenceExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3106,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3108,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3109,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3112,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3115,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3120
      start: 3089
    functionDepth: 5
    functionLinenumber: 3089
    functionLinenumberEnd: 3120
    functionName: PyDecType_FromObjectExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - PyDecType_FromSequenceExact
    - PyTuple_Check
    - get_module_state_from_ctx
    - PyLong_Check
    - PyDec_Check
    - PyList_Check
    - PyDecType_FromSsizeExact
    - PyDecType_FromLongExact
    - dec_addstatus
    - PyErr_Format
    - PyUnicode_Check
    - PyDecType_FromUnicodeExactWS
    - PyDecType_FromFloatExact
    - Py_TYPE
    - PyDecType_FromDecimalExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromObjectExact(PyTypeObject *type, PyObject *v, PyObject *context)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3127,1
    - Dst: PyDec_FromSsize
      Src: /src/cpython/Modules/_decimal/_decimal.c:3129,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3131,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3132,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:3133,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3133,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3134,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3137,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3140,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:3144,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3144,1
    - Dst: dec_apply
      Src: /src/cpython/Modules/_decimal/_decimal.c:3147,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3149,1
    - Dst: PyDec_FromUnicode
      Src: /src/cpython/Modules/_decimal/_decimal.c:3150,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3152,1
    - Dst: PyDec_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:3153,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3155,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3155,1
    - Dst: PyDec_FromSequence
      Src: /src/cpython/Modules/_decimal/_decimal.c:3156,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3158,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3159,1
    - Dst: PyDec_FromFloat
      Src: /src/cpython/Modules/_decimal/_decimal.c:3162,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3165,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3167,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - v
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3124
    functionDepth: 4
    functionLinenumber: 3124
    functionLinenumberEnd: 3170
    functionName: PyDec_FromObject
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - dec_addstatus
    - get_module_state_from_ctx
    - PyDec_FromLong
    - PyDec_Check
    - CTX
    - PyDec_FromUnicode
    - PyErr_Format
    - PyUnicode_Check
    - mpd_setspecial
    - MPD
    - mpd_isnan
    - dec_apply
    - PyTuple_Check
    - PyLong_Check
    - PyDec_FromSequence
    - PyDec_FromSsize
    - PyDec_FromFloat
    - Py_TYPE
    - dec_alloc
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_FromObject(PyObject *v, PyObject *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:3191,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:3192,1
    - Dst: PyDecType_FromObjectExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - value
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3187
    functionDepth: 6
    functionLinenumber: 3187
    functionLinenumberEnd: 3195
    functionName: dec_new_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - PyDecType_FromObjectExact
    - CONTEXT_CHECK_VA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_new_impl(PyTypeObject *type, PyObject *value, PyObject *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:3202,1
    - Dst: PyDec_FromObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:3206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3197
    functionDepth: 5
    functionLinenumber: 3197
    functionLinenumberEnd: 3207
    functionName: ctx_create_decimal
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromObject
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_create_decimal(PyObject *context, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3222,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3223,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3224,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3227,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3228,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3236,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3238,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - type_err
    - conv
    - v
    - context
    argTypes:
    - int
    - PyObject**
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3220
    functionDepth: 2
    functionLinenumber: 3220
    functionLinenumberEnd: 3244
    functionName: convert_op
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromLongExact
    - get_module_state_from_ctx
    - PyLong_Check
    - PyDec_Check
    - Py_NewRef
    - PyErr_Format
    - Py_TYPE
    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: 3251
      start: 3247
    functionDepth: 0
    functionLinenumber: 3247
    functionLinenumberEnd: 3251
    functionName: CONVERT_OP
    functionSourceFile: /src/cpython/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: 3260
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3260
    functionName: CONVERT_BINOP
    functionSourceFile: /src/cpython/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: 3274
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3274
    functionName: CONVERT_TERNOP
    functionSourceFile: /src/cpython/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: 3280
      start: 3276
    functionDepth: 0
    functionLinenumber: 3276
    functionLinenumberEnd: 3280
    functionName: CONVERT_OP_RAISE
    functionSourceFile: /src/cpython/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: 3289
      start: 3281
    functionDepth: 0
    functionLinenumber: 3281
    functionLinenumberEnd: 3289
    functionName: CONVERT_BINOP_RAISE
    functionSourceFile: /src/cpython/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: 3303
      start: 3290
    functionDepth: 0
    functionLinenumber: 3290
    functionLinenumberEnd: 3303
    functionName: CONVERT_TERNOP_RAISE
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:3321,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3325,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3327,1
    - Dst: mpd_qncopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3332,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3334,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3335,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3340,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3341,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:3345,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/_decimal.c:3352,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3352,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3352,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3355,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3356,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 3
    argNames:
    - v
    - r
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3368
      start: 3309
    functionDepth: 2
    functionLinenumber: 3309
    functionLinenumberEnd: 3368
    functionName: multiply_by_denominator
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul
    - MPD
    - mpd_qncopy
    - PyDec_FromLongExact
    - PyObject_GetAttrString
    - Py_DECREF
    - get_module_state_from_ctx
    - PyErr_SetString
    - mpd_maxcontext
    - mpd_del
    - PyErr_NoMemory
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiply_by_denominator(PyObject *v, PyObject *r, PyObject *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3375,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3380,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - r
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3384
      start: 3370
    functionDepth: 2
    functionLinenumber: 3370
    functionLinenumberEnd: 3384
    functionName: numerator_as_decimal
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_from_ctx
    - PyDec_FromLongExact
    - PyObject_GetAttrString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      numerator_as_decimal(PyObject *r, PyObject *context)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3395,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3399,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3400,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3401,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3403,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3404,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3406,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3408,1
    - Dst: PyDec_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3413,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3416,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_decimal/_decimal.c:3417,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:3418,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_decimal/_decimal.c:3422,1
    - Dst: PyDec_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3429,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3433,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_decimal/_decimal.c:3437,1
    - Dst: numerator_as_decimal
      Src: /src/cpython/Modules/_decimal/_decimal.c:3442,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:3443,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3443,1
    - Dst: multiply_by_denominator
      Src: /src/cpython/Modules/_decimal/_decimal.c:3444,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:3446,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3451,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3459,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 6
    argNames:
    - vcmp
    - wcmp
    - v
    - w
    - op
    - context
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3462
      start: 3391
    functionDepth: 3
    functionLinenumber: 3391
    functionLinenumberEnd: 3462
    functionName: convert_op_cmp
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - PyComplex_Check
    - numerator_as_decimal
    - dec_addstatus
    - PyFloat_FromDouble
    - Py_CLEAR
    - multiply_by_denominator
    - Py_INCREF
    - PyErr_Occurred
    - get_module_state_from_ctx
    - PyDec_Check
    - CTX
    - PyObject_IsInstance
    - MPD
    - PyDec_FromLongExact
    - Py_DECREF
    - PyLong_Check
    - Py_NewRef
    - PyComplex_AsCComplex
    - PyDec_FromFloatExact
    - PyFloat_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: 3469
      start: 3464
    functionDepth: 0
    functionLinenumber: 3464
    functionLinenumberEnd: 3469
    functionName: CONVERT_BINOP_CMP
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:3479,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3484,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_decimal/_decimal.c:3484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3486
      start: 3474
    functionDepth: 1
    functionLinenumber: 3474
    functionLinenumberEnd: 3486
    functionName: unicode_fromascii
    functionSourceFile: /src/cpython/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: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:3497,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3497,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3498,1
    - Dst: mpd_to_sci_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:3499,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3499,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:3499,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3501,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:3505,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3508
      start: 3490
    functionDepth: 2
    functionLinenumber: 3490
    functionLinenumberEnd: 3508
    functionName: dec_str
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - mpd_free
    - unicode_fromascii
    - CURRENT_CONTEXT
    - CtxCaps
    - Py_TYPE
    - PyErr_NoMemory
    - mpd_to_sci_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_str(PyObject *dec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:3516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3516,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3517,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/_decimal.c:3518,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3518,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:3518,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3520,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_decimal/_decimal.c:3524,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3511
    functionDepth: 1
    functionLinenumber: 3511
    functionLinenumberEnd: 3527
    functionName: dec_repr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - mpd_free
    - PyUnicode_FromFormat
    - mpd_to_sci
    - CURRENT_CONTEXT
    - CtxCaps
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_repr(PyObject *dec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3533,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3535,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3542
      start: 3530
    functionDepth: 1
    functionLinenumber: 3530
    functionLinenumberEnd: 3542
    functionName: dec_strdup
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    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: 3551
      start: 3544
    functionDepth: 0
    functionLinenumber: 3544
    functionLinenumberEnd: 3551
    functionName: dec_replace_fillchar
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:3563,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3565,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_decimal/_decimal.c:3570,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_decimal/_decimal.c:3574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3577
      start: 3555
    functionDepth: 1
    functionLinenumber: 3555
    functionLinenumberEnd: 3577
    functionName: dotsep_as_utf8
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - mbstowcs
    - PyErr_SetString
    - PyUnicode_FromWideChar
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dotsep_as_utf8(const char *s)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3583,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_decimal/_decimal.c:3587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3588,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:3590,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_decimal/_decimal.c:3595,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_decimal/_decimal.c:3600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - dict
    - key
    - valueobj
    - valuestr
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3579
    functionDepth: 1
    functionLinenumber: 3579
    functionLinenumberEnd: 3602
    functionName: dict_get_item_string
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyErr_Occurred
    - PyBytes_AS_STRING
    - PyUnicode_FromString
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: int
    signature: int dict_get_item_string(PyObject *dict, const char *key, PyObject
      **valueobj, const char **valuestr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3617,1
    - Dst: dec_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:3623,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_decimal/_decimal.c:3628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3629,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_decimal/_decimal.c:3634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3635,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_decimal/_decimal.c:3637,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:3639,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3640,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - dec
    - context
    - fmt
    - state
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3609
    functionDepth: 3
    functionLinenumber: 3609
    functionLinenumberEnd: 3644
    functionName: pydec_format
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_str
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyErr_SetString
    - PyObject_CallMethod
    - PyErr_ExceptionMatches
    - PyObject_CallOneArg
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pydec_format(PyObject *dec, PyObject *context, PyObject *fmt, decimal_state
      *state)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:3675,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3675,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3676,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_decimal/_decimal.c:3677,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3683,1
    - Dst: dec_strdup
      Src: /src/cpython/Modules/_decimal/_decimal.c:3693,1
    - Dst: mpd_parse_fmt_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:3700,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:3700,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3702,1
    - Dst: pydec_format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3705,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3722,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3723,1
    - Dst: dict_get_item_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:3727,1
    - Dst: dict_get_item_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:3728,1
    - Dst: dict_get_item_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:3729,1
    - Dst: mpd_validate_lconv
      Src: /src/cpython/Modules/_decimal/_decimal.c:3733,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3734,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:3740,1
    - Dst: isascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:3741,1
    - Dst: dotsep_as_utf8
      Src: /src/cpython/Modules/_decimal/_decimal.c:3743,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_decimal/_decimal.c:3747,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:3749,1
    - Dst: isascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:3750,1
    - Dst: dotsep_as_utf8
      Src: /src/cpython/Modules/_decimal/_decimal.c:3752,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_decimal/_decimal.c:3756,1
    - Dst: mpd_qformat_spec
      Src: /src/cpython/Modules/_decimal/_decimal.c:3761,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3761,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3761,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3764,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3767,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:3772,1
    - Dst: dec_replace_fillchar
      Src: /src/cpython/Modules/_decimal/_decimal.c:3774,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_decimal/_decimal.c:3777,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3781,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3782,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3783,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3784,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3785,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 88
    argCount: 3
    argNames:
    - dec
    - fmtarg
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3787
      start: 3659
    functionDepth: 4
    functionLinenumber: 3659
    functionLinenumberEnd: 3787
    functionName: _decimal_Decimal___format___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - strlen
    - PyErr_SetString
    - PyMem_Free
    - get_module_state_by_def
    - PyUnicode_DecodeUTF8
    - CTX
    - CtxCaps
    - mpd_qformat_spec
    - PyDict_Check
    - MPD
    - PyUnicode_AsUTF8AndSize
    - mpd_free
    - dotsep_as_utf8
    - dec_replace_fillchar
    - isascii
    - dict_get_item_string
    - pydec_format
    - CURRENT_CONTEXT
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyErr_WarnEx
    - PyErr_NoMemory
    - mpd_parse_fmt_str
    - mpd_validate_lconv
    - dec_strdup
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal___format___impl(PyObject *dec, PyObject
      *fmtarg,\n                                 PyObject *override)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:3794,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3794,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:3795,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3795,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3796,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3800,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:3806,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3809,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3813,1
    - Dst: mpd_qround_to_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:3817,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3817,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3818,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3819,1
    - Dst: mpd_qget_i64
      Src: /src/cpython/Modules/_decimal/_decimal.c:3824,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3827,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_decimal/_decimal.c:3828,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3830,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/_decimal.c:3830,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_decimal/_decimal.c:3832,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3834,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3835,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3836,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3837,1
    - Dst: mpd_qexport_u32
      Src: /src/cpython/Modules/_decimal/_decimal.c:3850,1
    - Dst: mpd_qexport_u16
      Src: /src/cpython/Modules/_decimal/_decimal.c:3853,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3857,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3858,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3859,1
    - Dst: PyLongWriter_Create
      Src: /src/cpython/Modules/_decimal/_decimal.c:3864,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/_decimal.c:3864,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3866,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3868,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3871,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3872,1
    - Dst: PyLongWriter_Finish
      Src: /src/cpython/Modules/_decimal/_decimal.c:3873,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - dec
    - context
    - round
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (layout->bits_per_digit < 32)
      pos:
        line_end: 3833
        line_start: 3833
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 3835
        line_start: 3835
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 3836
        line_start: 3836
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (!mpd_iszero(x))
      pos:
        line_end: 3829
        line_start: 3829
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 3834
        line_start: 3834
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 3874
      start: 3791
    functionDepth: 3
    functionLinenumber: 3791
    functionLinenumberEnd: 3874
    functionName: dec_as_long
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - mpd_isspecial
    - mpd_qround_to_int
    - PyErr_SetString
    - mpd_qexport_u16
    - PyLong_GetNativeLayout
    - dec_addstatus
    - mpd_qget_i64
    - CTX
    - mpd_isnegative
    - mpd_qexport_u32
    - MPD
    - mpd_isnan
    - mpd_free
    - mpd_del
    - PyLongWriter_Create
    - memcpy
    - PyLongWriter_Finish
    - PyErr_NoMemory
    - mpd_qnew
    - mpd_iszero
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_as_long(PyObject *dec, PyObject *context, int round)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:3898,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3898,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:3899,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3899,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3900,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3904,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:3910,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3910,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3911,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3913,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3918,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3918,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3919,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3920,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/_decimal.c:3924,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3924,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3924,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3925,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:3928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3929,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:3934,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:3939,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3944,1
    - Dst: decimal_state*::_py_long_power
      Src: /src/cpython/Modules/_decimal/_decimal.c:3944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3945,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3951,1
    - Dst: decimal_state*::_py_long_multiply
      Src: /src/cpython/Modules/_decimal/_decimal.c:3951,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:3955,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3963,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3967,1
    - Dst: decimal_state*::_py_long_floor_divide
      Src: /src/cpython/Modules/_decimal/_decimal.c:3967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3969,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3972,1
    - Dst: decimal_state*::_py_long_floor_divide
      Src: /src/cpython/Modules/_decimal/_decimal.c:3972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3973,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:3979,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3983,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3984,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3985,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3885
    functionDepth: 4
    functionLinenumber: 3885
    functionLinenumberEnd: 3987
    functionName: _decimal_Decimal_as_integer_ratio_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - mpd_isspecial
    - PyErr_SetString
    - Py_SETREF
    - PyLong_FromLong
    - _PyLong_GCD
    - get_module_state_by_def
    - dec_as_long
    - mpd_qcopy
    - decimal_state*::_py_long_floor_divide
    - PyTuple_Pack
    - decimal_state*::_py_long_multiply
    - MPD
    - Py_DECREF
    - mpd_isnan
    - CURRENT_CONTEXT
    - Py_TYPE
    - PyErr_NoMemory
    - dec_alloc
    - PyLong_FromSsize_t
    - decimal_state*::_py_long_power
    - mpd_iszero
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_integer_ratio_impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:4011,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:4011,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:4012,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4014,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4016,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4020,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:4021,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4025,1
    - Dst: mpd_qround_to_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:4030,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4030,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4030,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4032,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 4002
    functionDepth: 3
    functionLinenumber: 4002
    functionLinenumberEnd: 4037
    functionName: _decimal_Decimal_to_integral_value_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - Py_DECREF
    - mpd_qsetround
    - CONTEXT_CHECK_VA
    - getround
    - mpd_qround_to_int
    - INTERNAL_ERROR_PTR
    - CTX
    - dec_addstatus
    - Py_TYPE
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_to_integral_value_impl(PyObject *self,
      PyObject *rounding,\n                                        PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_to_integral_value_impl
      Src: /src/cpython/Modules/_decimal/_decimal.c:4053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4054
      start: 4048
    functionDepth: 4
    functionLinenumber: 4048
    functionLinenumberEnd: 4054
    functionName: _decimal_Decimal_to_integral_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_to_integral_value_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_to_integral_impl(PyObject *self, PyObject
      *rounding,\n                                  PyObject *context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:4076,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:4076,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:4077,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4079,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4081,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4085,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:4086,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4090,1
    - Dst: mpd_qround_to_intx
      Src: /src/cpython/Modules/_decimal/_decimal.c:4095,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4095,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4095,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4097,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4102
      start: 4067
    functionDepth: 3
    functionLinenumber: 4067
    functionLinenumberEnd: 4102
    functionName: _decimal_Decimal_to_integral_exact_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - Py_DECREF
    - mpd_qsetround
    - CONTEXT_CHECK_VA
    - getround
    - mpd_qround_to_intx
    - INTERNAL_ERROR_PTR
    - CTX
    - dec_addstatus
    - Py_TYPE
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_to_integral_exact_impl(PyObject *self,
      PyObject *rounding,\n                                        PyObject *context)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4109,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4109,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4110,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4110,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4111,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/_decimal.c:4115,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4115,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4116,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4119,1
    - Dst: dec_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:4123,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4104
    functionDepth: 3
    functionLinenumber: 4104
    functionLinenumberEnd: 4134
    functionName: PyDec_AsFloat
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_issnan
    - MPD
    - dec_str
    - PyFloat_FromString
    - Py_DECREF
    - mpd_isnan
    - PyErr_SetString
    - mpd_isnegative
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_AsFloat(PyObject *dec)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:4152,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:4152,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4153,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:4159,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4160,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:4165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:4166,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4169,1
    - Dst: mpd_qquantize
      Src: /src/cpython/Modules/_decimal/_decimal.c:4175,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4175,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4175,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4175,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4177,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:4184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - ndigits
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4186
      start: 4145
    functionDepth: 4
    functionLinenumber: 4145
    functionLinenumberEnd: 4186
    functionName: _decimal_Decimal___round___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qquantize
    - MPD
    - get_module_state_by_def
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - dec_as_long
    - dec_alloc
    - CTX
    - dec_addstatus
    - CURRENT_CONTEXT
    - Py_TYPE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___round___impl(PyObject *self, PyObject *ndigits)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qncopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:4208,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4208,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:4210,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:4214,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:4214,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4214,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/_decimal.c:4219,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4220,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_decimal/_decimal.c:4225,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4231,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4232,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4232,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:4235,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4235,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:4247,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/_decimal.c:4248,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:4250,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:4254,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:4255,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:4261,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:4265,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:4269,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:4276,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:4276,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_decimal/_decimal.c:4277,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:4281,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:4282,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4283,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4284,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4285,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4287
      start: 4194
    functionDepth: 1
    functionLinenumber: 4194
    functionLinenumberEnd: 4287
    functionName: _decimal_Decimal_as_tuple_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - strlen
    - mpd_to_sci
    - mpd_isqnan
    - PyLong_FromLong
    - mpd_clear_flags
    - PyTuple_New
    - get_module_state_by_def
    - PyObject_CallFunctionObjArgs
    - PyLong_FromUnsignedLong
    - MPD
    - Py_BuildValue
    - mpd_isinfinite
    - mpd_isnan
    - mpd_free
    - mpd_del
    - mpd_sign
    - Py_TYPE
    - PyErr_NoMemory
    - mpd_qncopy
    - PyLong_FromSsize_t
    - PyTuple_SET_ITEM
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_tuple_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4317
      start: 4295
    functionDepth: 0
    functionLinenumber: 4295
    functionLinenumberEnd: 4317
    functionName: Dec_UnaryNumberMethod
    functionSourceFile: /src/cpython/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: 4348
      start: 4319
    functionDepth: 0
    functionLinenumber: 4319
    functionLinenumberEnd: 4348
    functionName: Dec_BinaryNumberMethod
    functionSourceFile: /src/cpython/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: 4356
      start: 4352
    functionDepth: 0
    functionLinenumber: 4352
    functionLinenumberEnd: 4356
    functionName: Dec_BoolFunc
    functionSourceFile: /src/cpython/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: 4367
      start: 4360
    functionDepth: 0
    functionLinenumber: 4360
    functionLinenumberEnd: 4367
    functionName: Dec_BoolFuncVA
    functionSourceFile: /src/cpython/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: 4391
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4391
    functionName: Dec_UnaryFuncVA
    functionSourceFile: /src/cpython/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: 4421
      start: 4395
    functionDepth: 0
    functionLinenumber: 4395
    functionLinenumberEnd: 4421
    functionName: Dec_BinaryFuncVA
    functionSourceFile: /src/cpython/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: 4449
      start: 4428
    functionDepth: 0
    functionLinenumber: 4428
    functionLinenumberEnd: 4449
    functionName: Dec_BinaryFuncVA_NO_CTX
    functionSourceFile: /src/cpython/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: 4481
      start: 4454
    functionDepth: 0
    functionLinenumber: 4454
    functionLinenumberEnd: 4481
    functionName: Dec_TernaryFuncVA
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_TernaryFuncVA(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:4502,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:4502,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4503,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:4504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4505
      start: 4498
    functionDepth: 4
    functionLinenumber: 4498
    functionLinenumberEnd: 4505
    functionName: nm_dec_as_long
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - Py_TYPE
    - get_module_state_by_def
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nm_dec_as_long(PyObject *dec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/_decimal.c:4510,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4511
      start: 4507
    functionDepth: 1
    functionLinenumber: 4507
    functionLinenumberEnd: 4511
    functionName: nm_nonzero
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - mpd_iszero
    linkageType: ''
    returnType: int
    signature: int nm_nonzero(PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_state_left_or_right
      Src: /src/cpython/Modules/_decimal/_decimal.c:4522,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4523,1
    - Dst: CONVERT_BINOP
      Src: /src/cpython/Modules/_decimal/_decimal.c:4524,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4529,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4534,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4536,1
    - Dst: mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:4540,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4540,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4540,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4540,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4540,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4542,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4545,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:4549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4513
    functionDepth: 3
    functionLinenumber: 4513
    functionLinenumberEnd: 4553
    functionName: nm_mpd_qdivmod
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - mpd_qdivmod
    - CONVERT_BINOP
    - find_state_left_or_right
    - CTX
    - dec_addstatus
    - CURRENT_CONTEXT
    - PyTuple_Pack
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nm_mpd_qdivmod(PyObject *v, PyObject *w)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_state_ternary
      Src: /src/cpython/Modules/_decimal/_decimal.c:4563,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4564,1
    - Dst: CONVERT_BINOP
      Src: /src/cpython/Modules/_decimal/_decimal.c:4565,1
    - Dst: convert_op
      Src: /src/cpython/Modules/_decimal/_decimal.c:4568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4570,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4578,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4579,1
    - Dst: mpd_qpow
      Src: /src/cpython/Modules/_decimal/_decimal.c:4584,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4584,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4584,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4584,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4585,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:4588,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4588,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4588,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4588,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4588,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4593,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4555
    functionDepth: 3
    functionLinenumber: 4555
    functionLinenumberEnd: 4600
    functionName: nm_mpd_qpow
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - MPD
    - Py_DECREF
    - find_state_ternary
    - CONVERT_BINOP
    - mpd_qpow
    - CTX
    - dec_addstatus
    - CURRENT_CONTEXT
    - mpd_qpowmod
    - convert_op
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nm_mpd_qpow(PyObject *base, PyObject *exp, PyObject *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:4991,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4991,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/_decimal.c:4995,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4995,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:4998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4999
      start: 4985
    functionDepth: 1
    functionLinenumber: 4985
    functionLinenumberEnd: 4999
    functionName: _decimal_Decimal_adjusted_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - mpd_isspecial
    - mpd_adjexp
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_adjusted_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:5014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5015
      start: 5010
    functionDepth: 0
    functionLinenumber: 5010
    functionLinenumberEnd: 5015
    functionName: _decimal_Decimal_canonical_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_canonical_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:5027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5028
      start: 5023
    functionDepth: 0
    functionLinenumber: 5023
    functionLinenumberEnd: 5028
    functionName: _decimal_Decimal_conjugate_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_conjugate_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5035,1
    - Dst: _dec_settriple
      Src: /src/cpython/Modules/_decimal/_decimal.c:5040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5042
      start: 5030
    functionDepth: 2
    functionLinenumber: 5030
    functionLinenumberEnd: 5042
    functionName: _dec_mpd_radix
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _dec_settriple
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dec_mpd_radix(decimal_state *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5057,1
    - Dst: _dec_mpd_radix
      Src: /src/cpython/Modules/_decimal/_decimal.c:5058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5059
      start: 5053
    functionDepth: 3
    functionLinenumber: 5053
    functionLinenumberEnd: 5059
    functionName: _decimal_Decimal_radix_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - get_module_state_by_def
    - _dec_mpd_radix
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_radix_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5077,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5077,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5078,1
    - Dst: mpd_qcopy_abs
      Src: /src/cpython/Modules/_decimal/_decimal.c:5082,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5082,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5084,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5090
      start: 5070
    functionDepth: 1
    functionLinenumber: 5070
    functionLinenumberEnd: 5090
    functionName: _decimal_Decimal_copy_abs_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qcopy_abs
    - MPD
    - get_module_state_by_def
    - Py_DECREF
    - Py_TYPE
    - PyErr_NoMemory
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_abs_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5108,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5108,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5109,1
    - Dst: mpd_qcopy_negate
      Src: /src/cpython/Modules/_decimal/_decimal.c:5113,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5113,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5115,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5121
      start: 5101
    functionDepth: 1
    functionLinenumber: 5101
    functionLinenumberEnd: 5121
    functionName: _decimal_Decimal_copy_negate_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - mpd_qcopy_negate
    - Py_DECREF
    - Py_TYPE
    - PyErr_NoMemory
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_negate_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5180,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5181,1
    - Dst: mpd_class
      Src: /src/cpython/Modules/_decimal/_decimal.c:5183,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5183,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:5183,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:5184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5185
      start: 5174
    functionDepth: 1
    functionLinenumber: 5174
    functionLinenumberEnd: 5185
    functionName: _decimal_Decimal_number_class_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - mpd_class
    - get_module_state_by_def
    - CONTEXT_CHECK_VA
    - CTX
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_number_class_impl(PyObject *self, PyObject *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5209,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5209,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5210,1
    - Dst: mpd_to_eng_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:5212,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5212,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:5212,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5214,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:5218,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:5219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5222
      start: 5201
    functionDepth: 2
    functionLinenumber: 5201
    functionLinenumberEnd: 5222
    functionName: _decimal_Decimal_to_eng_string_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - CONTEXT_CHECK_VA
    - mpd_free
    - mpd_to_eng_size
    - unicode_fromascii
    - CtxCaps
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_eng_string_impl(PyObject *self, PyObject *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5303,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5303,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5304,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5305,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5310,1
    - Dst: mpd_qcopy_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:5314,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5314,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5314,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5316,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:5317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - self
    - other
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5323
      start: 5294
    functionDepth: 3
    functionLinenumber: 5294
    functionLinenumberEnd: 5323
    functionName: _decimal_Decimal_copy_sign_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - Py_DECREF
    - CONTEXT_CHECK_VA
    - mpd_qcopy_sign
    - CONVERT_BINOP_RAISE
    - dec_addstatus
    - Py_TYPE
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_copy_sign_impl(PyObject *self, PyObject
      *other,\n                                PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5344,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5344,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5345,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5346,1
    - Dst: mpd_same_quantum
      Src: /src/cpython/Modules/_decimal/_decimal.c:5348,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5348,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5348,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:5348,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:5348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - other
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5353
      start: 5336
    functionDepth: 1
    functionLinenumber: 5336
    functionLinenumberEnd: 5353
    functionName: _decimal_Decimal_same_quantum_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - get_module_state_by_def
    - incr_true
    - Py_DECREF
    - CONTEXT_CHECK_VA
    - mpd_same_quantum
    - incr_false
    - CONVERT_BINOP_RAISE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_same_quantum_impl(PyObject *self, PyObject
      *other,\n                                   PyObject *context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5487,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5487,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5488,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:5490,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:5492,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:5496,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:5497,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5501,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5506,1
    - Dst: mpd_qquantize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5510,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5510,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5510,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5512,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:5513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - w
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5519
      start: 5477
    functionDepth: 3
    functionLinenumber: 5477
    functionLinenumberEnd: 5519
    functionName: _decimal_Decimal_quantize_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qquantize
    - MPD
    - get_module_state_by_def
    - Py_DECREF
    - mpd_qsetround
    - CONTEXT_CHECK_VA
    - getround
    - INTERNAL_ERROR_PTR
    - CTX
    - CONVERT_BINOP_RAISE
    - dec_addstatus
    - Py_TYPE
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_quantize_impl(PyObject *self, PyObject
      *w,\n                               PyObject *rounding, PyObject *context)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_state_left_or_right
      Src: /src/cpython/Modules/_decimal/_decimal.c:5531,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:5534,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:5534,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5536,1
    - Dst: CONVERT_BINOP_CMP
      Src: /src/cpython/Modules/_decimal/_decimal.c:5537,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5539,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5539,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5540,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5540,1
    - Dst: mpd_qcmp
      Src: /src/cpython/Modules/_decimal/_decimal.c:5542,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5542,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5544,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:5548,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:5554,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:5554,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:5578,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyDec_Check(state, v))
      pos:
        line_end: 5533
        line_start: 5533
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 5579
      start: 5522
    functionDepth: 3
    functionLinenumber: 5522
    functionLinenumberEnd: 5579
    functionName: dec_richcompare
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_issnan
    - MPD
    - mpd_qcmp
    - Py_DECREF
    - incr_true
    - CONVERT_BINOP_CMP
    - PyDec_Check
    - find_state_left_or_right
    - incr_false
    - dec_addstatus
    - CURRENT_CONTEXT
    - PyBool_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5593,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5593,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5594,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:5595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5596
      start: 5587
    functionDepth: 4
    functionLinenumber: 5587
    functionLinenumberEnd: 5596
    functionName: _decimal_Decimal___ceil___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - Py_TYPE
    - get_module_state_by_def
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___ceil___impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_AsFloat
      Src: /src/cpython/Modules/_decimal/_decimal.c:5611,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_decimal/_decimal.c:5616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5617,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:5618,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_decimal/_decimal.c:5622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5623
      start: 5604
    functionDepth: 4
    functionLinenumber: 5604
    functionLinenumberEnd: 5623
    functionName: _decimal_Decimal___complex___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - Py_DECREF
    - PyErr_Occurred
    - PyDec_AsFloat
    - PyComplex_FromDoubles
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___complex___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:5634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5635
      start: 5630
    functionDepth: 0
    functionLinenumber: 5630
    functionLinenumberEnd: 5635
    functionName: _decimal_Decimal___copy___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___copy___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:5649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5645
    functionDepth: 0
    functionLinenumber: 5645
    functionLinenumberEnd: 5650
    functionName: _decimal_Decimal___deepcopy__
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___deepcopy__(PyObject *self, PyObject *memo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5664,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5664,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5665,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:5666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5667
      start: 5658
    functionDepth: 4
    functionLinenumber: 5658
    functionLinenumberEnd: 5667
    functionName: _decimal_Decimal___floor___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - Py_TYPE
    - get_module_state_by_def
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___floor___impl(PyObject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:5704,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5704,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5705,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5705,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:5706,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5710,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5710,1
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Modules/_decimal/_decimal.c:5711,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:5714,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5714,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:5718,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:5719,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:5723,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5732,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5735,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:5736,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5740,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:5741,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:5745,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5745,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/_decimal.c:5749,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/_decimal.c:5755,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/_decimal.c:5756,1
    - Dst: mpd_qget_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5758,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/_decimal.c:5759,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:5767,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:5775,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:5776,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5780,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyDecObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5783
      start: 5670
    functionDepth: 1
    functionLinenumber: 5670
    functionLinenumberEnd: 5783
    functionName: _dec_hash
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_ssize
    - mpd_isspecial
    - PyErr_SetString
    - mpd_qsset_ssize
    - PyObject_GenericHash
    - mpd_issnan
    - mpd_qmul
    - mpd_maxcontext
    - mpd_qcopy
    - mpd_qpowmod
    - MPD
    - mpd_isnan
    - mpd_del
    - mpd_qrem
    - PyErr_NoMemory
    - mpd_ispositive
    - mpd_arith_sign
    - mpd_qnew
    - mpd_set_positive
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t _dec_hash(PyDecObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyDecObject_CAST
      Src: /src/cpython/Modules/_decimal/_decimal.c:5788,1
    - Dst: _dec_hash
      Src: /src/cpython/Modules/_decimal/_decimal.c:5790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5794
      start: 5785
    functionDepth: 2
    functionLinenumber: 5785
    functionLinenumberEnd: 5794
    functionName: dec_hash
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 1
    functionsReached:
    - _dec_hash
    - _PyDecObject_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t dec_hash(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dec_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:5808,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_decimal/_decimal.c:5813,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5817
      start: 5802
    functionDepth: 3
    functionLinenumber: 5802
    functionLinenumberEnd: 5817
    functionName: _decimal_Decimal___reduce___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_str
    - Py_TYPE
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___reduce___impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5831,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5831,1
    - Dst: mpd_isdynamic_data
      Src: /src/cpython/Modules/_decimal/_decimal.c:5832,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5832,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5833,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:5835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5836
      start: 5827
    functionDepth: 1
    functionLinenumber: 5827
    functionLinenumberEnd: 5836
    functionName: _decimal_Decimal___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - _PyObject_SIZE
    - PyLong_FromSize_t
    - mpd_isdynamic_data
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___sizeof___impl(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5850,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5850,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5851,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:5852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5853
      start: 5844
    functionDepth: 4
    functionLinenumber: 5844
    functionLinenumberEnd: 5853
    functionName: _decimal_Decimal___trunc___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - Py_TYPE
    - get_module_state_by_def
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___trunc___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:5859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5860
      start: 5856
    functionDepth: 0
    functionLinenumber: 5856
    functionLinenumberEnd: 5860
    functionName: dec_real
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_real(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:5867,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5867,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5868,1
    - Dst: _dec_settriple
      Src: /src/cpython/Modules/_decimal/_decimal.c:5873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5875
      start: 5862
    functionDepth: 2
    functionLinenumber: 5862
    functionLinenumberEnd: 5875
    functionName: dec_imag
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _dec_settriple
    - Py_TYPE
    - get_module_state_by_def
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_imag(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6032
    functionDepth: 0
    functionLinenumber: 6032
    functionLinenumberEnd: 6043
    functionName: DecCtx_BoolFunc
    functionSourceFile: /src/cpython/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: 6058
      start: 6047
    functionDepth: 0
    functionLinenumber: 6047
    functionLinenumberEnd: 6058
    functionName: DecCtx_BoolFunc_NO_CTX
    functionSourceFile: /src/cpython/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: 6084
      start: 6062
    functionDepth: 0
    functionLinenumber: 6062
    functionLinenumberEnd: 6084
    functionName: DecCtx_UnaryFunc
    functionSourceFile: /src/cpython/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: 6113
      start: 6088
    functionDepth: 0
    functionLinenumber: 6088
    functionLinenumberEnd: 6113
    functionName: DecCtx_BinaryFunc
    functionSourceFile: /src/cpython/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: 6139
      start: 6119
    functionDepth: 0
    functionLinenumber: 6119
    functionLinenumberEnd: 6139
    functionName: DecCtx_BinaryFunc_NO_CTX
    functionSourceFile: /src/cpython/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: 6170
      start: 6144
    functionDepth: 0
    functionLinenumber: 6144
    functionLinenumberEnd: 6170
    functionName: DecCtx_TernaryFunc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_TernaryFunc(MPDFUNC)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:6515,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6519,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6520,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6524,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6531,1
    - Dst: mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:6535,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6535,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6535,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6535,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6535,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:6535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6537,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:6538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6540,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:6544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6545,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6548
      start: 6506
    functionDepth: 3
    functionLinenumber: 6506
    functionLinenumberEnd: 6548
    functionName: ctx_mpd_qdivmod
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - mpd_qdivmod
    - PyArg_ParseTuple
    - get_module_state_from_ctx
    - CTX
    - CONVERT_BINOP_RAISE
    - dec_addstatus
    - PyTuple_Pack
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qdivmod(PyObject *context, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6586,1
    - Dst: convert_op
      Src: /src/cpython/Modules/_decimal/_decimal.c:6589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6591,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6596,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6600,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6601,1
    - Dst: mpd_qpow
      Src: /src/cpython/Modules/_decimal/_decimal.c:6606,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6606,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6606,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6606,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:6607,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:6610,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6610,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6610,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6610,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6610,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:6611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6615,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:6616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - context
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6622
      start: 6577
    functionDepth: 3
    functionLinenumber: 6577
    functionLinenumberEnd: 6622
    functionName: _decimal_Context_power_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - MPD
    - Py_DECREF
    - get_module_state_from_ctx
    - mpd_qpow
    - CTX
    - CONVERT_BINOP_RAISE
    - dec_addstatus
    - mpd_qpowmod
    - convert_op
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_power_impl(PyObject *context, PyObject
      *base, PyObject *exp,\n                            PyObject *mod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6658,1
    - Dst: _dec_mpd_radix
      Src: /src/cpython/Modules/_decimal/_decimal.c:6659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6660
      start: 6654
    functionDepth: 3
    functionLinenumber: 6654
    functionLinenumberEnd: 6660
    functionName: _decimal_Context_radix_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_from_ctx
    - _dec_mpd_radix
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_radix_impl(PyObject *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6770,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:6771,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:6772,1
    - Dst: mpd_iscanonical
      Src: /src/cpython/Modules/_decimal/_decimal.c:6777,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6777,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:6777,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:6777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6778
      start: 6767
    functionDepth: 2
    functionLinenumber: 6767
    functionLinenumberEnd: 6778
    functionName: ctx_iscanonical
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - incr_true
    - get_module_state_from_ctx
    - PyErr_SetString
    - PyDec_Check
    - incr_false
    - mpd_iscanonical
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_iscanonical(PyObject *context, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6786,1
    - Dst: dec_apply
      Src: /src/cpython/Modules/_decimal/_decimal.c:6788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6791
      start: 6781
    functionDepth: 4
    functionLinenumber: 6781
    functionLinenumberEnd: 6791
    functionName: PyDecContext_Apply
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_apply
    - Py_DECREF
    - CONVERT_OP_RAISE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecContext_Apply(PyObject *context, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6796,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:6797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:6798,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:6803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6804
      start: 6793
    functionDepth: 2
    functionLinenumber: 6793
    functionLinenumberEnd: 6804
    functionName: ctx_canonical
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_module_state_from_ctx
    - PyErr_SetString
    - PyDec_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_canonical(PyObject *context, PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6812,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6813,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6816,1
    - Dst: mpd_qcopy_abs
      Src: /src/cpython/Modules/_decimal/_decimal.c:6820,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6820,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6821,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:6822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6828
      start: 6806
    functionDepth: 3
    functionLinenumber: 6806
    functionLinenumberEnd: 6828
    functionName: ctx_mpd_qcopy_abs
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qcopy_abs
    - MPD
    - Py_DECREF
    - CONVERT_OP_RAISE
    - get_module_state_from_ctx
    - dec_addstatus
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qcopy_abs(PyObject *context, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6837
      start: 6830
    functionDepth: 1
    functionLinenumber: 6830
    functionLinenumberEnd: 6837
    functionName: ctx_copy_decimal
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/_decimal.c:6845,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6846,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6847,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6849,1
    - Dst: mpd_qcopy_negate
      Src: /src/cpython/Modules/_decimal/_decimal.c:6853,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6853,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6854,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:6855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6861
      start: 6839
    functionDepth: 3
    functionLinenumber: 6839
    functionLinenumberEnd: 6861
    functionName: ctx_mpd_qcopy_negate
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - mpd_qcopy_negate
    - CONVERT_OP_RAISE
    - get_module_state_from_ctx
    - dec_addstatus
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qcopy_negate(PyObject *context, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6891,1
    - Dst: mpd_class
      Src: /src/cpython/Modules/_decimal/_decimal.c:6893,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6893,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:6893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6894,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:6896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6897
      start: 6885
    functionDepth: 1
    functionLinenumber: 6885
    functionLinenumberEnd: 6897
    functionName: ctx_mpd_class
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - mpd_class
    - Py_DECREF
    - CONVERT_OP_RAISE
    - CTX
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_class(PyObject *context, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6907,1
    - Dst: mpd_to_sci_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:6909,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6909,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:6909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6910,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:6912,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:6916,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:6917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6920
      start: 6899
    functionDepth: 2
    functionLinenumber: 6899
    functionLinenumberEnd: 6920
    functionName: ctx_mpd_to_sci
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - CONVERT_OP_RAISE
    - mpd_free
    - unicode_fromascii
    - CtxCaps
    - PyErr_NoMemory
    - mpd_to_sci_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_to_sci(PyObject *context, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6930,1
    - Dst: mpd_to_eng_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:6932,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6932,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:6932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6933,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:6935,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:6939,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:6940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6943
      start: 6922
    functionDepth: 2
    functionLinenumber: 6922
    functionLinenumberEnd: 6943
    functionName: ctx_mpd_to_eng
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - CONVERT_OP_RAISE
    - mpd_free
    - mpd_to_eng_size
    - unicode_fromascii
    - CtxCaps
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_to_eng(PyObject *context, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:6984,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6988,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6989,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6993,1
    - Dst: mpd_qcopy_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:6997,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6997,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6997,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6999,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:7000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7006
      start: 6976
    functionDepth: 3
    functionLinenumber: 6976
    functionLinenumberEnd: 7006
    functionName: ctx_mpd_qcopy_sign
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - Py_DECREF
    - PyArg_ParseTuple
    - get_module_state_from_ctx
    - mpd_qcopy_sign
    - CONVERT_BINOP_RAISE
    - dec_addstatus
    - dec_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qcopy_sign(PyObject *context, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:7083,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7087,1
    - Dst: mpd_same_quantum
      Src: /src/cpython/Modules/_decimal/_decimal.c:7089,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7089,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7089,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:7089,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:7089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7094
      start: 7076
    functionDepth: 1
    functionLinenumber: 7076
    functionLinenumberEnd: 7094
    functionName: ctx_mpd_same_quantum
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - incr_true
    - Py_DECREF
    - PyArg_ParseTuple
    - mpd_same_quantum
    - incr_false
    - CONVERT_BINOP_RAISE
    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: 7281
      start: 7279
    functionDepth: 0
    functionLinenumber: 7279
    functionLinenumberEnd: 7281
    functionName: CHECK_INT
    functionSourceFile: /src/cpython/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: 7283
      start: 7281
    functionDepth: 0
    functionLinenumber: 7281
    functionLinenumberEnd: 7283
    functionName: ASSIGN_PTR
    functionSourceFile: /src/cpython/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: 7285
      start: 7283
    functionDepth: 0
    functionLinenumber: 7283
    functionLinenumberEnd: 7285
    functionName: CHECK_PTR
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PTR(expr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/_decimal/_decimal.c:7297,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:7306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7309
      start: 7287
    functionDepth: 1
    functionLinenumber: 7287
    functionLinenumberEnd: 7309
    functionName: cfunc_noargs
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_Format
    linkageType: ''
    returnType: PyCFunction
    signature: PyCFunction cfunc_noargs(PyTypeObject *t, const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpd_setminalloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:7337,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:7341,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7348,1
    - Dst: cfunc_noargs
      Src: /src/cpython/Modules/_decimal/_decimal.c:7349,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7350,1
    - Dst: cfunc_noargs
      Src: /src/cpython/Modules/_decimal/_decimal.c:7351,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7360,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7361,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7362,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7363,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7367,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7367,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7368,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7368,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7369,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7369,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7371,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7375,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:7375,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7376,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7376,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7378,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_decimal/_decimal.c:7378,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7380,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7382,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7382,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7384,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7385,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7388,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:7388,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7389,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_decimal/_decimal.c:7389,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7393,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7393,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7394,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7394,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7395,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7398,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:7398,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7399,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7399,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7402,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_decimal/_decimal.c:7403,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7409,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7410,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7411,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7417,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7417,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7418,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7418,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7419,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7419,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7422,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_decimal/_decimal.c:7422,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7425,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7425,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7428,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:7428,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7431,1
    - Dst: dec_cond_map_init
      Src: /src/cpython/Modules/_decimal/_decimal.c:7431,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7440,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7443,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7447,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7451,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7456,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7464,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_decimal/_decimal.c:7464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7465,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7468,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7468,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:7471,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7471,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7479,1
    - Dst: dec_cond_map_init
      Src: /src/cpython/Modules/_decimal/_decimal.c:7479,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7487,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7490,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7496,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_decimal/_decimal.c:7496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7497,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7499,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7499,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7504,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:7505,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7506,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7506,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7510,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7511,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7512,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7512,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7514,1
    - Dst: PyContextVar_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:7514,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7515,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7515,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7517,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7517,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7520,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:7521,1
    - Dst: init_basic_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:7522,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7523,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7523,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7527,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:7528,1
    - Dst: init_extended_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:7529,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7530,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7530,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7536,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_decimal/_decimal.c:7536,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:7537,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7542,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_decimal/_decimal.c:7542,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7548,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7548,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7549,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7549,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7553,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_decimal/_decimal.c:7553,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7554,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_decimal/_decimal.c:7554,1
    - Dst: mpd_version
      Src: /src/cpython/Modules/_decimal/_decimal.c:7554,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7559,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7560,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7562,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7563,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7564,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 129
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7567
      start: 7313
    functionDepth: 2
    functionLinenumber: 7313
    functionLinenumberEnd: 7567
    functionName: _decimal_exec
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_cond_map_init
    - PyImport_ImportModule
    - PyObject_CallObject
    - PyErr_NewException
    - Py_CLEAR
    - PyModule_AddStringConstant
    - PyTuple_New
    - CREATE_TYPE
    - PyObject_CallFunction
    - mpd_version
    - PyModule_AddObjectRef
    - cfunc_noargs
    - PyTuple_Pack
    - mpd_setminalloc
    - PyUnicode_InternFromString
    - get_module_state
    - Py_DECREF
    - CHECK_INT
    - Py_NewRef
    - PyDict_SetItemString
    - ASSIGN_PTR
    - init_extended_context
    - PyModule_Add
    - PyModule_AddType
    - init_basic_context
    - PyObject_GetAttrString
    - PyContextVar_New
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyObject_CallMethod
    - PyModule_AddIntConstant
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _decimal_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mod
    - ','
    - tp
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7359
      start: 7355
    functionDepth: 0
    functionLinenumber: 7355
    functionLinenumberEnd: 7359
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(mod, tp, spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:7572,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7573,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7574,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7575,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7576,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7577,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7578,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7579,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7582,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7583,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7585,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7588,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7589,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7590,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7591,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7592,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7596,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7605
      start: 7569
    functionDepth: 1
    functionLinenumber: 7569
    functionLinenumberEnd: 7605
    functionName: decimal_traverse
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int decimal_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:7610,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7611,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7612,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7613,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7614,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7615,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7616,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7617,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7620,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7621,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7623,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7626,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7627,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7628,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7629,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7630,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7635,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:7637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7644,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:7646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7650
      start: 7607
    functionDepth: 1
    functionLinenumber: 7607
    functionLinenumberEnd: 7650
    functionName: decimal_clear
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - get_module_state
    - Py_CLEAR
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int decimal_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decimal_clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:7655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7656
      start: 7652
    functionDepth: 2
    functionLinenumber: 7652
    functionLinenumberEnd: 7656
    functionName: decimal_free
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - decimal_clear
    linkageType: ''
    returnType: void
    signature: void decimal_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_decimal/_decimal.c:7680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7681
      start: 7677
    functionDepth: 1
    functionLinenumber: 7677
    functionLinenumberEnd: 7681
    functionName: PyInit__decimal
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__decimal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Context_Etiny_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: _decimal_Context_Etiny
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_Etiny_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_Etiny(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Context_Etop_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: _decimal_Context_Etop
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_Etop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_Etop(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:77,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:79,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:80,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:82,1
    - Dst: _decimal_IEEEContext_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 91
    functionName: _decimal_IEEEContext
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _decimal_IEEEContext_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_IEEEContext(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_getcontext_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: _decimal_getcontext
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_getcontext_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_getcontext(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:172,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:183,1
    - Dst: _decimal_localcontext_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:245,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 249
    functionName: _decimal_localcontext
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_localcontext_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_localcontext(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_from_float_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - pyfloat
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: _decimal_Decimal_from_float
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_from_float_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_from_float(PyObject *type, PyObject *pyfloat)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_from_number_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 304
    functionDepth: 7
    functionLinenumber: 304
    functionLinenumberEnd: 312
    functionName: _decimal_Decimal_from_number
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_from_number_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_from_number(PyObject *type, PyObject *number)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:341,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:343,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:343,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:361,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:362,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:366,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:366,1
    - Dst: dec_new_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:382,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 386
    functionName: dec_new
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - dec_new_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:408,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:411,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:412,1
    - Dst: _decimal_Decimal___format___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:421,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - dec
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 425
    functionName: _decimal_Decimal___format__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _decimal_Decimal___format___impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___format__(PyObject *dec, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_as_integer_ratio_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 5
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: _decimal_Decimal_as_integer_ratio
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_as_integer_ratio_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_integer_ratio(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:478,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:480,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:480,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:497,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:501,1
    - Dst: _decimal_Decimal_to_integral_value_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 521
    functionName: _decimal_Decimal_to_integral_value
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_to_integral_value_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_integral_value(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:552,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:554,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:554,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:571,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:575,1
    - Dst: _decimal_Decimal_to_integral_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:591,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 539
    functionDepth: 5
    functionLinenumber: 539
    functionLinenumberEnd: 595
    functionName: _decimal_Decimal_to_integral
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_to_integral_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_integral(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:628,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:630,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:630,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:647,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:651,1
    - Dst: _decimal_Decimal_to_integral_exact_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:667,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 671
    functionName: _decimal_Decimal_to_integral_exact
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_to_integral_exact_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_integral_exact(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:691,1
    - Dst: _decimal_Decimal___round___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 685
    functionDepth: 5
    functionLinenumber: 685
    functionLinenumberEnd: 703
    functionName: _decimal_Decimal___round__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___round___impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___round__(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_as_tuple_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 721
    functionName: _decimal_Decimal_as_tuple
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_as_tuple_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_tuple(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:751,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:753,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:770,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:773,1
    - Dst: _decimal_Decimal_exp_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:783,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 787
    functionName: _decimal_Decimal_exp
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_exp_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_exp(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:817,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:819,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:836,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:839,1
    - Dst: _decimal_Decimal_ln_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 853
    functionName: _decimal_Decimal_ln
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_ln_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_ln(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:883,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:885,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:902,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:905,1
    - Dst: _decimal_Decimal_log10_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 919
    functionName: _decimal_Decimal_log10
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_log10_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_log10(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:946,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:948,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:965,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:968,1
    - Dst: _decimal_Decimal_next_minus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 982
    functionName: _decimal_Decimal_next_minus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_next_minus_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_next_minus(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1009,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1011,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1028,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1031,1
    - Dst: _decimal_Decimal_next_plus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1045
    functionName: _decimal_Decimal_next_plus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_next_plus_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_next_plus(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1077,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1079,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1096,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1099,1
    - Dst: _decimal_Decimal_normalize_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1113
    functionName: _decimal_Decimal_normalize
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_normalize_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_normalize(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1142,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1144,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1161,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1164,1
    - Dst: _decimal_Decimal_sqrt_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1178
    functionName: _decimal_Decimal_sqrt
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_sqrt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_sqrt(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1213,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1215,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1215,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1232,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1236,1
    - Dst: _decimal_Decimal_compare_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1251
    functionName: _decimal_Decimal_compare
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_compare_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1279,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1281,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1281,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1298,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1302,1
    - Dst: _decimal_Decimal_compare_signal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1317
    functionName: _decimal_Decimal_compare_signal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _decimal_Decimal_compare_signal_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare_signal(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1347,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1349,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1349,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1366,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1370,1
    - Dst: _decimal_Decimal_max_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1385
    functionName: _decimal_Decimal_max
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_max_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_max(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1413,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1415,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1415,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1432,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1436,1
    - Dst: _decimal_Decimal_max_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1451
    functionName: _decimal_Decimal_max_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_max_mag_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_max_mag(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1481,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1483,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1483,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1500,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1504,1
    - Dst: _decimal_Decimal_min_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1519
    functionName: _decimal_Decimal_min
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_min_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_min(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1547,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1549,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1549,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1566,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1570,1
    - Dst: _decimal_Decimal_min_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1585
    functionName: _decimal_Decimal_min_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_min_mag_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_min_mag(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1618,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1620,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1620,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1637,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1641,1
    - Dst: _decimal_Decimal_next_toward_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1656
    functionName: _decimal_Decimal_next_toward
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_next_toward_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_next_toward(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1692,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1694,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1694,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1711,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1715,1
    - Dst: _decimal_Decimal_remainder_near_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1730
    functionName: _decimal_Decimal_remainder_near
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_remainder_near_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_remainder_near(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1764,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1766,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1766,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1766,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1783,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1788,1
    - Dst: _decimal_Decimal_fma_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1804
    functionName: _decimal_Decimal_fma
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_fma_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_fma(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_canonical_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1825
    functionName: _decimal_Decimal_is_canonical
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_canonical_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_canonical(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_finite_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1839
    functionDepth: 0
    functionLinenumber: 1839
    functionLinenumberEnd: 1843
    functionName: _decimal_Decimal_is_finite
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_finite_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_finite(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_infinite_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1861
    functionName: _decimal_Decimal_is_infinite
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_infinite_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_infinite(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_nan_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1875
    functionDepth: 0
    functionLinenumber: 1875
    functionLinenumberEnd: 1879
    functionName: _decimal_Decimal_is_nan
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_nan_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_nan(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_qnan_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1893
    functionDepth: 0
    functionLinenumber: 1893
    functionLinenumberEnd: 1897
    functionName: _decimal_Decimal_is_qnan
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_qnan_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_qnan(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_snan_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1911
    functionDepth: 0
    functionLinenumber: 1911
    functionLinenumberEnd: 1915
    functionName: _decimal_Decimal_is_snan
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_snan_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_snan(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_signed_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1931
    functionDepth: 0
    functionLinenumber: 1931
    functionLinenumberEnd: 1935
    functionName: _decimal_Decimal_is_signed
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_signed_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_signed(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_is_zero_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1953
    functionName: _decimal_Decimal_is_zero
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_zero_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_zero(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1982,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1984,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2001,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2004,1
    - Dst: _decimal_Decimal_is_normal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2014,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 2018
    functionName: _decimal_Decimal_is_normal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_is_normal_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_normal(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2048,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2050,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2067,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2070,1
    - Dst: _decimal_Decimal_is_subnormal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2080,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2084
    functionName: _decimal_Decimal_is_subnormal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_subnormal_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_subnormal(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_adjusted_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2098
    functionDepth: 2
    functionLinenumber: 2098
    functionLinenumberEnd: 2102
    functionName: _decimal_Decimal_adjusted
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_adjusted_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_adjusted(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_canonical_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2119
    functionDepth: 1
    functionLinenumber: 2119
    functionLinenumberEnd: 2123
    functionName: _decimal_Decimal_canonical
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_canonical_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_canonical(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_conjugate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2141
    functionName: _decimal_Decimal_conjugate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_conjugate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_conjugate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_radix_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2158
    functionDepth: 4
    functionLinenumber: 2158
    functionLinenumberEnd: 2162
    functionName: _decimal_Decimal_radix
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_radix_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_radix(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_copy_abs_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2179
    functionDepth: 2
    functionLinenumber: 2179
    functionLinenumberEnd: 2183
    functionName: _decimal_Decimal_copy_abs
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_copy_abs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_abs(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_copy_negate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2204
    functionName: _decimal_Decimal_copy_negate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_copy_negate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_negate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2231,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2233,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2250,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2253,1
    - Dst: _decimal_Decimal_logical_invert_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2218
    functionDepth: 1
    functionLinenumber: 2218
    functionLinenumberEnd: 2267
    functionName: _decimal_Decimal_logical_invert
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_logical_invert_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_invert(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2298,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2300,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2317,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2320,1
    - Dst: _decimal_Decimal_logb_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2334
    functionName: _decimal_Decimal_logb
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_logb_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logb(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2378,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2380,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2397,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2400,1
    - Dst: _decimal_Decimal_number_class_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2365
    functionDepth: 2
    functionLinenumber: 2365
    functionLinenumberEnd: 2414
    functionName: _decimal_Decimal_number_class
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_number_class_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_number_class(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2449,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2451,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2468,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2471,1
    - Dst: _decimal_Decimal_to_eng_string_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2436
    functionDepth: 3
    functionLinenumber: 2436
    functionLinenumberEnd: 2485
    functionName: _decimal_Decimal_to_eng_string
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_to_eng_string_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_eng_string(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2533,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2535,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2535,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2552,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2556,1
    - Dst: _decimal_Decimal_compare_total_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2571
    functionName: _decimal_Decimal_compare_total
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_compare_total_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare_total(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2607,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2609,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2609,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2626,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2630,1
    - Dst: _decimal_Decimal_compare_total_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2641,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2594
    functionDepth: 1
    functionLinenumber: 2594
    functionLinenumberEnd: 2645
    functionName: _decimal_Decimal_compare_total_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_compare_total_mag_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare_total_mag(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2683,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2685,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2685,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2702,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2706,1
    - Dst: _decimal_Decimal_copy_sign_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2670
    functionDepth: 4
    functionLinenumber: 2670
    functionLinenumberEnd: 2721
    functionName: _decimal_Decimal_copy_sign
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _decimal_Decimal_copy_sign_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_sign(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2756,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2756,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2773,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2777,1
    - Dst: _decimal_Decimal_same_quantum_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2788,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2741
    functionDepth: 2
    functionLinenumber: 2741
    functionLinenumberEnd: 2792
    functionName: _decimal_Decimal_same_quantum
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _decimal_Decimal_same_quantum_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_same_quantum(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2820,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2822,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2822,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2839,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2843,1
    - Dst: _decimal_Decimal_logical_and_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2858
    functionName: _decimal_Decimal_logical_and
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_logical_and_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_and(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2886,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2888,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2888,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2905,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2909,1
    - Dst: _decimal_Decimal_logical_or_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2924
    functionName: _decimal_Decimal_logical_or
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_logical_or_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_or(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2952,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2954,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2954,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2971,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2975,1
    - Dst: _decimal_Decimal_logical_xor_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2986,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2939
    functionDepth: 1
    functionLinenumber: 2939
    functionLinenumberEnd: 2990
    functionName: _decimal_Decimal_logical_xor
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_logical_xor_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_xor(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3025,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3027,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3027,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3044,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3048,1
    - Dst: _decimal_Decimal_rotate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3059,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3063
    functionName: _decimal_Decimal_rotate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_rotate_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_rotate(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3094,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3096,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3096,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3113,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3117,1
    - Dst: _decimal_Decimal_scaleb_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3081
    functionDepth: 1
    functionLinenumber: 3081
    functionLinenumberEnd: 3132
    functionName: _decimal_Decimal_scaleb
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_scaleb_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_scaleb(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3167,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3169,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3169,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3186,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3190,1
    - Dst: _decimal_Decimal_shift_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3154
    functionDepth: 1
    functionLinenumber: 3154
    functionLinenumberEnd: 3205
    functionName: _decimal_Decimal_shift
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _decimal_Decimal_shift_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_shift(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3254,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3256,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3256,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3256,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3273,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3278,1
    - Dst: _decimal_Decimal_quantize_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3241
    functionDepth: 4
    functionLinenumber: 3241
    functionLinenumberEnd: 3299
    functionName: _decimal_Decimal_quantize
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_quantize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_quantize(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___ceil___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3313
    functionDepth: 5
    functionLinenumber: 3313
    functionLinenumberEnd: 3317
    functionName: _decimal_Decimal___ceil__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___ceil___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___ceil__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___complex___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3335
      start: 3331
    functionDepth: 5
    functionLinenumber: 3331
    functionLinenumberEnd: 3335
    functionName: _decimal_Decimal___complex__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___complex___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___complex__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___copy___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3352
      start: 3348
    functionDepth: 1
    functionLinenumber: 3348
    functionLinenumberEnd: 3352
    functionName: _decimal_Decimal___copy__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___copy__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___floor___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3374
    functionDepth: 5
    functionLinenumber: 3374
    functionLinenumberEnd: 3378
    functionName: _decimal_Decimal___floor__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___floor___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___floor__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___reduce___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3392
    functionDepth: 4
    functionLinenumber: 3392
    functionLinenumberEnd: 3396
    functionName: _decimal_Decimal___reduce__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___sizeof___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3410
    functionDepth: 2
    functionLinenumber: 3410
    functionLinenumberEnd: 3414
    functionName: _decimal_Decimal___sizeof__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___sizeof__(PyObject *v, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___trunc___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3428
    functionDepth: 5
    functionLinenumber: 3428
    functionLinenumberEnd: 3432
    functionName: _decimal_Decimal___trunc__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___trunc___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___trunc__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3574,1
    - Dst: _decimal_Context_add_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3583
      start: 3567
    functionDepth: 0
    functionLinenumber: 3567
    functionLinenumberEnd: 3583
    functionName: _decimal_Context_add
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_add_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_add(PyObject *context, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3604,1
    - Dst: _decimal_Context_compare_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3613
      start: 3597
    functionDepth: 0
    functionLinenumber: 3597
    functionLinenumberEnd: 3613
    functionName: _decimal_Context_compare
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_compare_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3635,1
    - Dst: _decimal_Context_compare_signal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3628
    functionDepth: 0
    functionLinenumber: 3628
    functionLinenumberEnd: 3644
    functionName: _decimal_Context_compare_signal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_compare_signal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare_signal(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3665,1
    - Dst: _decimal_Context_divide_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3658
    functionDepth: 0
    functionLinenumber: 3658
    functionLinenumberEnd: 3674
    functionName: _decimal_Context_divide
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_divide_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_divide(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3695,1
    - Dst: _decimal_Context_divide_int_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3704
      start: 3688
    functionDepth: 0
    functionLinenumber: 3688
    functionLinenumberEnd: 3704
    functionName: _decimal_Context_divide_int
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_divide_int_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_divide_int(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3725,1
    - Dst: _decimal_Context_max_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3718
    functionDepth: 0
    functionLinenumber: 3718
    functionLinenumberEnd: 3734
    functionName: _decimal_Context_max
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_max_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_max(PyObject *context, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3755,1
    - Dst: _decimal_Context_max_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3764
      start: 3748
    functionDepth: 0
    functionLinenumber: 3748
    functionLinenumberEnd: 3764
    functionName: _decimal_Context_max_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_max_mag_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_max_mag(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3785,1
    - Dst: _decimal_Context_min_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3778
    functionDepth: 0
    functionLinenumber: 3778
    functionLinenumberEnd: 3794
    functionName: _decimal_Context_min
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_min_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_min(PyObject *context, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3815,1
    - Dst: _decimal_Context_min_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3824
      start: 3808
    functionDepth: 0
    functionLinenumber: 3808
    functionLinenumberEnd: 3824
    functionName: _decimal_Context_min_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_min_mag_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_min_mag(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3845,1
    - Dst: _decimal_Context_multiply_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3854
      start: 3838
    functionDepth: 0
    functionLinenumber: 3838
    functionLinenumberEnd: 3854
    functionName: _decimal_Context_multiply
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_multiply_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_multiply(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3876,1
    - Dst: _decimal_Context_next_toward_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3869
    functionDepth: 0
    functionLinenumber: 3869
    functionLinenumberEnd: 3885
    functionName: _decimal_Context_next_toward
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_next_toward_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_next_toward(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3906,1
    - Dst: _decimal_Context_quantize_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3915
    functionName: _decimal_Context_quantize
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_quantize_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_quantize(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3939,1
    - Dst: _decimal_Context_remainder_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3948
      start: 3932
    functionDepth: 0
    functionLinenumber: 3932
    functionLinenumberEnd: 3948
    functionName: _decimal_Context_remainder
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_remainder_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_remainder(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3973,1
    - Dst: _decimal_Context_remainder_near_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3982
      start: 3966
    functionDepth: 0
    functionLinenumber: 3966
    functionLinenumberEnd: 3982
    functionName: _decimal_Context_remainder_near
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_remainder_near_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_remainder_near(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4003,1
    - Dst: _decimal_Context_subtract_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3996
    functionDepth: 0
    functionLinenumber: 3996
    functionLinenumberEnd: 4012
    functionName: _decimal_Context_subtract
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_subtract_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_subtract(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4054,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4056,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4056,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4056,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4073,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4078,1
    - Dst: _decimal_Context_power_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4090,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - context
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4094
      start: 4041
    functionDepth: 4
    functionLinenumber: 4041
    functionLinenumberEnd: 4094
    functionName: _decimal_Context_power
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - _decimal_Context_power_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_power(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4117,1
    - Dst: _decimal_Context_fma_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4127
      start: 4109
    functionDepth: 0
    functionLinenumber: 4109
    functionLinenumberEnd: 4127
    functionName: _decimal_Context_fma
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_fma_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_fma(PyObject *context, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Context_radix_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4145
      start: 4141
    functionDepth: 4
    functionLinenumber: 4141
    functionLinenumberEnd: 4145
    functionName: _decimal_Context_radix
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_radix_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_radix(PyObject *context, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4266,1
    - Dst: _decimal_Context_compare_total_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4275
      start: 4259
    functionDepth: 0
    functionLinenumber: 4259
    functionLinenumberEnd: 4275
    functionName: _decimal_Context_compare_total
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_compare_total_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare_total(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4297,1
    - Dst: _decimal_Context_compare_total_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4306
      start: 4290
    functionDepth: 0
    functionLinenumber: 4290
    functionLinenumberEnd: 4306
    functionName: _decimal_Context_compare_total_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_compare_total_mag_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare_total_mag(PyObject *context, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4328,1
    - Dst: _decimal_Context_logical_and_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4337
      start: 4321
    functionDepth: 0
    functionLinenumber: 4321
    functionLinenumberEnd: 4337
    functionName: _decimal_Context_logical_and
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_logical_and_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logical_and(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4358,1
    - Dst: _decimal_Context_logical_or_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4367
      start: 4351
    functionDepth: 0
    functionLinenumber: 4351
    functionLinenumberEnd: 4367
    functionName: _decimal_Context_logical_or
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_logical_or_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logical_or(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4389,1
    - Dst: _decimal_Context_logical_xor_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4398
      start: 4382
    functionDepth: 0
    functionLinenumber: 4382
    functionLinenumberEnd: 4398
    functionName: _decimal_Context_logical_xor
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_logical_xor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logical_xor(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4419,1
    - Dst: _decimal_Context_rotate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4412
    functionDepth: 0
    functionLinenumber: 4412
    functionLinenumberEnd: 4428
    functionName: _decimal_Context_rotate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_rotate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_rotate(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4449,1
    - Dst: _decimal_Context_scaleb_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4458
      start: 4442
    functionDepth: 0
    functionLinenumber: 4442
    functionLinenumberEnd: 4458
    functionName: _decimal_Context_scaleb
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_scaleb_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_scaleb(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4479,1
    - Dst: _decimal_Context_shift_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4488
      start: 4472
    functionDepth: 0
    functionLinenumber: 4472
    functionLinenumberEnd: 4488
    functionName: _decimal_Context_shift
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_shift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_shift(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:40,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: err_exit
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void err_exit(const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:47,1
    - Dst: err_exit
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.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: new_mpd
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench.c
    functionUses: 0
    functionsReached:
    - mpd_qnew
    - err_exit
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      new_mpd(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:63,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:64,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:65,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:66,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:68,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:69,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:70,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:71,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:73,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:74,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:77,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:78,1
    - Dst: mpd_add
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:79,1
    - Dst: mpd_sub
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:81,1
    - Dst: mpd_add
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:82,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:84,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:85,1
    - Dst: mpd_copy
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:88,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:90,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:91,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:92,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:93,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 4
    argNames:
    - x0
    - y0
    - maxiter
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - long
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 95
    functionName: color_point
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench.c
    functionUses: 0
    functionsReached:
    - mpd_mul
    - mpd_copy
    - new_mpd
    - mpd_sub
    - mpd_set_u32
    - mpd_add
    - mpd_del
    linkageType: ''
    returnType: void
    signature: void color_point(mpd_t *x0, mpd_t *y0, long maxiter, mpd_context_t
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: err_exit
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:108,1
    - Dst: strtoul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:110,1
    - Dst: strtol
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:111,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:113,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:116,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:117,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:118,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:119,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:121,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:122,1
    - Dst: err_exit
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:123,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:126,1
    - Dst: color_point
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:127,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:128,1
    - Dst: mpd_print
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:130,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:131,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:133,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 137
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_print
    - new_mpd
    - err_exit
    - strtoul
    - mpd_set_string
    - color_point
    - mpd_init
    - mpd_del
    - fprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: ispower2
    functionSourceFile: /src/cpython/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: 70
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: mpd_bsr
    functionSourceFile: /src/cpython/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: 98
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 98
    functionName: mpd_bsf
    functionSourceFile: /src/cpython/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: 122
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: mpd_bsr
    functionSourceFile: /src/cpython/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: 144
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 144
    functionName: mpd_bsf
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/bits.h:158,1
    - Dst: _BitScanReverse
      Src: /src/cpython/Modules/_decimal/libmpdec/bits.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: mpd_bsr
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached:
    - _BitScanReverse
    - _BitScanReverse64
    linkageType: ''
    returnType: int
    signature: int mpd_bsr(mpd_size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward64
      Src: /src/cpython/Modules/_decimal/libmpdec/bits.h:175,1
    - Dst: _BitScanForward
      Src: /src/cpython/Modules/_decimal/libmpdec/bits.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: mpd_bsf
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached:
    - _BitScanForward
    - _BitScanForward64
    linkageType: ''
    returnType: int
    signature: int mpd_bsf(mpd_size_t a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:49,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - mpd_uint_t[]
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: _crt_mulP1P2_3
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - mpd_uint_t[]
    - mpd_uint_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: _crt_add3
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/crt.c:89,1
    - Dst: _mpd_div_words
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:92,1
    - Dst: _mpd_div_words
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:93,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: 96
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: _crt_div3
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/crt.c:156,1
    - Dst: ext_submod
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:157,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:158,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:160,1
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:164,1
    - Dst: dw_submod
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:165,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:166,1
    - Dst: _crt_mulP1P2_3
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:172,1
    - Dst: _crt_add3
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:173,1
    - Dst: _crt_add3
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:174,1
    - Dst: _crt_div3
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:176,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/crt.c:179,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: 178
        line_start: 178
        source_file: /src/cpython/Modules/_decimal/libmpdec/crt.c
    constantsTouched: []
    func_position:
      end: 180
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 180
    functionName: crt3
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/crt.c
    functionUses: 0
    functionsReached:
    - SETMODULUS
    - _mpd_mul_words
    - _crt_add3
    - _crt_div3
    - MULMOD
    - ext_submod
    - _crt_mulP1P2_3
    - dw_submod
    - assert
    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: 67
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: std_trans
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/transpose.c:88,1
    - Dst: mul_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:88,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:97,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:103,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:120,1
    - Dst: pointerswap
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:121,1
    - Dst: mulmod_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:123,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:128,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:129,1
    - Dst: pointerswap
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:130,1
    - Dst: mulmod_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:134,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:139,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:145,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: 87
        line_start: 87
        source_file: /src/cpython/Modules/_decimal/libmpdec/transpose.c
    constantsTouched: []
    func_position:
      end: 147
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 147
    functionName: swap_halfrows_pow2
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/transpose.c
    functionUses: 0
    functionsReached:
    - mpd_calloc
    - abort
    - pointerswap
    - mpd_free
    - memcpy
    - mul_size_t
    - mulmod_size_t
    - assert
    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: 169
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 169
    functionName: squaretrans
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/transpose.c:195,1
    - Dst: squaretrans
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:199,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:205,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:215,1
    - Dst: squaretrans
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:219,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:224,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:232,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 2
    argNames:
    - matrix
    - size
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 240
    functionName: squaretrans_pow2
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/transpose.c:249,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:251,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:251,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:252,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:252,1
    - Dst: squaretrans_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:255,1
    - Dst: mul_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:257,1
    - Dst: swap_halfrows_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:258,1
    - Dst: squaretrans_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:261,1
    - Dst: squaretrans_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:262,1
    - Dst: mul_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:264,1
    - Dst: squaretrans_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:265,1
    - Dst: squaretrans_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:266,1
    - Dst: swap_halfrows_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:267,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/transpose.c:272,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: 250
        line_start: 250
        source_file: /src/cpython/Modules/_decimal/libmpdec/transpose.c
    - condition: (ispower2(cols))
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/cpython/Modules/_decimal/libmpdec/transpose.c
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: transpose_pow2
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/transpose.c
    functionUses: 0
    functionsReached:
    - abort
    - swap_halfrows_pow2
    - squaretrans_pow2
    - mul_size_t
    - ispower2
    - 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: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: pointerswap
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/transpose.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pointerswap(mpd_uint_t **a, mpd_uint_t **b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qformat
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:43,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dec
    - fmt
    - ctx
    argTypes:
    - mpd_t*
    - char*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: mpd_format
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qformat
    linkageType: ''
    returnType: char
    signature: 'char *

      mpd_format(const mpd_t *dec, const char *fmt, mpd_context_t *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qimport_u16
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:53,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - result
    - srcdata
    - srclen
    - srcsign
    - base
    - ctx
    argTypes:
    - mpd_t*
    - uint16_t*
    - size_t
    - uint8_t
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: mpd_import_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qimport_u16
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: "void mpd_import_u16(mpd_t *result, const uint16_t *srcdata, size_t
      srclen,\n               uint8_t srcsign, uint32_t base, mpd_context_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qimport_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:62,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - result
    - srcdata
    - srclen
    - srcsign
    - base
    - ctx
    argTypes:
    - mpd_t*
    - uint32_t*
    - size_t
    - uint8_t
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: mpd_import_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qimport_u32
    linkageType: ''
    returnType: void
    signature: "void mpd_import_u32(mpd_t *result, const uint32_t *srcdata, size_t
      srclen,\n               uint8_t srcsign, uint32_t base, mpd_context_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qexport_u16
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:72,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - rdata
    - rlen
    - base
    - src
    - ctx
    argTypes:
    - uint16_t**
    - size_t
    - uint32_t
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: mpd_export_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qexport_u16
    linkageType: ''
    returnType: size_t
    signature: "size_t mpd_export_u16(uint16_t **rdata, size_t rlen, uint32_t base,
      const mpd_t *src,\n               mpd_context_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qexport_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:83,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - rdata
    - rlen
    - base
    - src
    - ctx
    argTypes:
    - uint32_t**
    - size_t
    - uint32_t
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: mpd_export_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qexport_u32
    linkageType: ''
    returnType: size_t
    signature: "size_t mpd_export_u32(uint32_t **rdata, size_t rlen, uint32_t base,
      const mpd_t *src,\n               mpd_context_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:92,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: mpd_finalize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qfinalize
    linkageType: ''
    returnType: void
    signature: void mpd_finalize(mpd_t *result, mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:100,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: mpd_check_nan
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qcheck_nan
    - mpd_addstatus_raise
    linkageType: ''
    returnType: int
    signature: int mpd_check_nan(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:111,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: mpd_check_nans
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qcheck_nans
    linkageType: ''
    returnType: int
    signature: int mpd_check_nans(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_string
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:122,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - s
    - ctx
    argTypes:
    - mpd_t*
    - char*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: mpd_set_string
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_string
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_set_string(mpd_t *result, const char *s, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmaxcoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:130,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: mpd_maxcoeff
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qmaxcoeff
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_maxcoeff(mpd_t *result, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:139,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: mpd_sset_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsset_ssize
    linkageType: ''
    returnType: void
    signature: void mpd_sset_ssize(mpd_t *result, mpd_ssize_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_i32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:147,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - int32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: mpd_sset_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsset_i32
    linkageType: ''
    returnType: void
    signature: void mpd_sset_i32(mpd_t *result, int32_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:156,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - int64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: mpd_sset_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsset_i64
    linkageType: ''
    returnType: void
    signature: void mpd_sset_i64(mpd_t *result, int64_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:166,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: mpd_sset_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsset_uint
    linkageType: ''
    returnType: void
    signature: void mpd_sset_uint(mpd_t *result, mpd_uint_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:174,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: mpd_sset_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsset_u32
    linkageType: ''
    returnType: void
    signature: void mpd_sset_u32(mpd_t *result, uint32_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:183,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: mpd_sset_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsset_u64
    linkageType: ''
    returnType: void
    signature: void mpd_sset_u64(mpd_t *result, uint64_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:193,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: mpd_set_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qset_ssize
    linkageType: ''
    returnType: void
    signature: void mpd_set_ssize(mpd_t *result, mpd_ssize_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_i32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:201,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - int32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: mpd_set_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qset_i32
    linkageType: ''
    returnType: void
    signature: void mpd_set_i32(mpd_t *result, int32_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:210,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - int64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: mpd_set_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_i64
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_set_i64(mpd_t *result, int64_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:220,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: mpd_set_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qset_uint
    linkageType: ''
    returnType: void
    signature: void mpd_set_uint(mpd_t *result, mpd_uint_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:228,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: mpd_set_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 1
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qset_u32
    linkageType: ''
    returnType: void
    signature: void mpd_set_u32(mpd_t *result, uint32_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:237,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: mpd_set_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qset_u64
    linkageType: ''
    returnType: void
    signature: void mpd_set_u64(mpd_t *result, uint64_t a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:249,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: mpd_get_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_ssize
    - mpd_addstatus_raise
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_get_ssize(const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_i32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:260,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: mpd_get_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qget_i32
    linkageType: ''
    returnType: int32_t
    signature: int32_t mpd_get_i32(const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:272,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: mpd_get_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qget_i64
    linkageType: ''
    returnType: int64_t
    signature: int64_t mpd_get_i64(const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:284,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: mpd_get_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_uint
    - mpd_addstatus_raise
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_get_uint(const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qabs_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:295,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: mpd_abs_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qabs_uint
    - mpd_addstatus_raise
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_abs_uint(const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:306,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 309
    functionName: mpd_get_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qget_u32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mpd_get_u32(const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:318,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: mpd_get_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qget_u64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mpd_get_u64(const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qand
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:328,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: mpd_and
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qand
    linkageType: ''
    returnType: void
    signature: void mpd_and(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:336,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: mpd_copy
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 1
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: void mpd_copy(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_copy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 345
    functionName: mpd_canonical
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_copy
    linkageType: ''
    returnType: void
    signature: void mpd_canonical(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcopy_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:351,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: mpd_copy_abs
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qcopy_abs
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_copy_abs(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcopy_negate
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:360,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: mpd_copy_negate
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qcopy_negate
    linkageType: ''
    returnType: void
    signature: void mpd_copy_negate(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcopy_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:369,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 372
    functionName: mpd_copy_sign
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qcopy_sign
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_copy_sign(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qinvert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:378,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: mpd_invert
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qinvert
    linkageType: ''
    returnType: void
    signature: void mpd_invert(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qlogb
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:386,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: mpd_logb
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qlogb
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_logb(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qor
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:394,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: mpd_or
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qor
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_or(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qrotate
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:402,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: mpd_rotate
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qrotate
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_rotate(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qscaleb
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:410,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: mpd_scaleb
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qscaleb
    linkageType: ''
    returnType: void
    signature: void mpd_scaleb(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:418,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - n
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: mpd_shiftl
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qshiftl
    linkageType: ''
    returnType: void
    signature: void mpd_shiftl(mpd_t *result, const mpd_t *a, mpd_ssize_t n, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:428,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - result
    - a
    - n
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: mpd_shiftr
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qshiftr
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_shiftr(mpd_t *result, const mpd_t *a, mpd_ssize_t n,
      mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qshiftn
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:437,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - n
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 439
    functionName: mpd_shiftn
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qshiftn
    linkageType: ''
    returnType: void
    signature: void mpd_shiftn(mpd_t *result, const mpd_t *a, mpd_ssize_t n, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qshift
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:445,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 447
    functionName: mpd_shift
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qshift
    linkageType: ''
    returnType: void
    signature: void mpd_shift(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qxor
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:453,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: mpd_xor
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qxor
    linkageType: ''
    returnType: void
    signature: void mpd_xor(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qabs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:461,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: mpd_abs
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qabs
    linkageType: ''
    returnType: void
    signature: void mpd_abs(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:470,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: mpd_cmp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qcmp
    linkageType: ''
    returnType: int
    signature: int mpd_cmp(const mpd_t *a, const mpd_t *b, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcompare
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:480,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 483
    functionName: mpd_compare
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qcompare
    linkageType: ''
    returnType: int
    signature: int mpd_compare(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcompare_signal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:490,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 493
    functionName: mpd_compare_signal
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qcompare_signal
    linkageType: ''
    returnType: int
    signature: int mpd_compare_signal(mpd_t *result, const mpd_t *a, const mpd_t *b,
      mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:499,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 501
    functionName: mpd_add
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 1
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qadd
    linkageType: ''
    returnType: void
    signature: void mpd_add(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:507,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 509
    functionName: mpd_sub
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 1
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsub
    linkageType: ''
    returnType: void
    signature: void mpd_sub(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:515,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: mpd_add_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qadd_ssize
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_add_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_i32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:523,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: mpd_add_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qadd_i32
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_add_i32(mpd_t *result, const mpd_t *a, int32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:532,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: mpd_add_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qadd_i64
    linkageType: ''
    returnType: void
    signature: void mpd_add_i64(mpd_t *result, const mpd_t *a, int64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:541,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: mpd_add_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qadd_uint
    linkageType: ''
    returnType: void
    signature: void mpd_add_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:549,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: mpd_add_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qadd_u32
    linkageType: ''
    returnType: void
    signature: void mpd_add_u32(mpd_t *result, const mpd_t *a, uint32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:558,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: mpd_add_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qadd_u64
    linkageType: ''
    returnType: void
    signature: void mpd_add_u64(mpd_t *result, const mpd_t *a, uint64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:567,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: mpd_sub_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsub_ssize
    linkageType: ''
    returnType: void
    signature: void mpd_sub_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_i32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:575,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 577
    functionName: mpd_sub_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsub_i32
    linkageType: ''
    returnType: void
    signature: void mpd_sub_i32(mpd_t *result, const mpd_t *a, int32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:584,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: mpd_sub_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsub_i64
    linkageType: ''
    returnType: void
    signature: void mpd_sub_i64(mpd_t *result, const mpd_t *a, int64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:593,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 595
    functionName: mpd_sub_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsub_uint
    linkageType: ''
    returnType: void
    signature: void mpd_sub_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:601,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 603
    functionName: mpd_sub_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsub_u32
    linkageType: ''
    returnType: void
    signature: void mpd_sub_u32(mpd_t *result, const mpd_t *a, uint32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:610,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: mpd_sub_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qsub_u64
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_sub_u64(mpd_t *result, const mpd_t *a, uint64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:619,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - q
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: mpd_div
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdiv
    linkageType: ''
    returnType: void
    signature: void mpd_div(mpd_t *q, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:627,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 629
    functionName: mpd_div_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdiv_ssize
    linkageType: ''
    returnType: void
    signature: void mpd_div_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_i32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:635,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: mpd_div_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdiv_i32
    linkageType: ''
    returnType: void
    signature: void mpd_div_i32(mpd_t *result, const mpd_t *a, int32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:644,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 646
    functionName: mpd_div_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdiv_i64
    linkageType: ''
    returnType: void
    signature: void mpd_div_i64(mpd_t *result, const mpd_t *a, int64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:653,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 655
    functionName: mpd_div_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdiv_uint
    linkageType: ''
    returnType: void
    signature: void mpd_div_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:661,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 663
    functionName: mpd_div_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qdiv_u32
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_div_u32(mpd_t *result, const mpd_t *a, uint32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:670,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 672
    functionName: mpd_div_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdiv_u64
    linkageType: ''
    returnType: void
    signature: void mpd_div_u64(mpd_t *result, const mpd_t *a, uint64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:679,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - q
    - r
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: mpd_divmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdivmod
    linkageType: ''
    returnType: void
    signature: void mpd_divmod(mpd_t *q, mpd_t *r, const mpd_t *a, const mpd_t *b,
      mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdivint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:687,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - q
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 689
    functionName: mpd_divint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qdivint
    linkageType: ''
    returnType: void
    signature: void mpd_divint(mpd_t *q, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:695,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 697
    functionName: mpd_exp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qexp
    linkageType: ''
    returnType: void
    signature: void mpd_exp(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qfma
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:704,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - result
    - a
    - b
    - c
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 706
    functionName: mpd_fma
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qfma
    linkageType: ''
    returnType: void
    signature: "void mpd_fma(mpd_t *result, const mpd_t *a, const mpd_t *b, const
      mpd_t *c,\n        mpd_context_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qln
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:712,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: mpd_ln
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qln
    linkageType: ''
    returnType: void
    signature: void mpd_ln(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qlog10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:720,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: mpd_log10
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qlog10
    linkageType: ''
    returnType: void
    signature: void mpd_log10(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmax
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:728,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: mpd_max
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qmax
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_max(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmax_mag
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:736,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 738
    functionName: mpd_max_mag
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qmax_mag
    linkageType: ''
    returnType: void
    signature: void mpd_max_mag(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmin
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:744,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 746
    functionName: mpd_min
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qmin
    linkageType: ''
    returnType: void
    signature: void mpd_min(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmin_mag
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:752,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 754
    functionName: mpd_min_mag
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qmin_mag
    linkageType: ''
    returnType: void
    signature: void mpd_min_mag(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qminus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:760,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 762
    functionName: mpd_minus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qminus
    linkageType: ''
    returnType: void
    signature: void mpd_minus(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:768,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 770
    functionName: mpd_mul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 1
    functionsReached:
    - mpd_qmul
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_mul(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:776,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 778
    functionName: mpd_mul_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qmul_ssize
    linkageType: ''
    returnType: void
    signature: void mpd_mul_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_i32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:784,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: mpd_mul_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qmul_i32
    linkageType: ''
    returnType: void
    signature: void mpd_mul_i32(mpd_t *result, const mpd_t *a, int32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:793,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 795
    functionName: mpd_mul_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qmul_i64
    linkageType: ''
    returnType: void
    signature: void mpd_mul_i64(mpd_t *result, const mpd_t *a, int64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:802,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 804
    functionName: mpd_mul_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul_uint
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_mul_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:810,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 812
    functionName: mpd_mul_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul_u32
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_mul_u32(mpd_t *result, const mpd_t *a, uint32_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:819,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 821
    functionName: mpd_mul_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qmul_u64
    linkageType: ''
    returnType: void
    signature: void mpd_mul_u64(mpd_t *result, const mpd_t *a, uint64_t b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnext_minus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:828,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 830
    functionName: mpd_next_minus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qnext_minus
    linkageType: ''
    returnType: void
    signature: void mpd_next_minus(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnext_plus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:836,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 838
    functionName: mpd_next_plus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qnext_plus
    linkageType: ''
    returnType: void
    signature: void mpd_next_plus(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnext_toward
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:844,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 846
    functionName: mpd_next_toward
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qnext_toward
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_next_toward(mpd_t *result, const mpd_t *a, const mpd_t *b,
      mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qplus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:852,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 854
    functionName: mpd_plus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qplus
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_plus(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qpow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:860,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - base
    - exp
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 862
    functionName: mpd_pow
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qpow
    linkageType: ''
    returnType: void
    signature: void mpd_pow(mpd_t *result, const mpd_t *base, const mpd_t *exp, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:869,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - result
    - base
    - exp
    - mod
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 871
    functionName: mpd_powmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qpowmod
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: "void mpd_powmod(mpd_t *result, const mpd_t *base, const mpd_t *exp,
      const mpd_t *mod,\n           mpd_context_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qquantize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:877,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 879
    functionName: mpd_quantize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qquantize
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_quantize(mpd_t *result, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qrescale
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:885,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - exp
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 887
    functionName: mpd_rescale
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qrescale
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_rescale(mpd_t *result, const mpd_t *a, mpd_ssize_t exp, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qreduce
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:893,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 895
    functionName: mpd_reduce
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qreduce
    linkageType: ''
    returnType: void
    signature: void mpd_reduce(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:901,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 903
    functionName: mpd_rem
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qrem
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_rem(mpd_t *r, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qrem_near
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:909,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - a
    - b
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 911
    functionName: mpd_rem_near
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qrem_near
    linkageType: ''
    returnType: void
    signature: void mpd_rem_near(mpd_t *r, const mpd_t *a, const mpd_t *b, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qround_to_intx
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:917,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 919
    functionName: mpd_round_to_intx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qround_to_intx
    linkageType: ''
    returnType: void
    signature: void mpd_round_to_intx(mpd_t *result, const mpd_t *a, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qround_to_int
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:925,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 927
    functionName: mpd_round_to_int
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_qround_to_int
    - mpd_addstatus_raise
    linkageType: ''
    returnType: void
    signature: void mpd_round_to_int(mpd_t *result, const mpd_t *a, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qtrunc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:933,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 935
    functionName: mpd_trunc
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qtrunc
    linkageType: ''
    returnType: void
    signature: void mpd_trunc(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qfloor
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:941,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 943
    functionName: mpd_floor
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qfloor
    linkageType: ''
    returnType: void
    signature: void mpd_floor(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qceil
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:949,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: mpd_ceil
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qceil
    linkageType: ''
    returnType: void
    signature: void mpd_ceil(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsqrt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:957,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 959
    functionName: mpd_sqrt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qsqrt
    linkageType: ''
    returnType: void
    signature: void mpd_sqrt(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qinvroot
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:965,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 967
    functionName: mpd_invroot
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpsignal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qinvroot
    linkageType: ''
    returnType: void
    signature: void mpd_invroot(mpd_t *result, const mpd_t *a, mpd_context_t *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:58,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:59,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:61,1
    - Dst: fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:76,1
    - Dst: fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:79,1
    - Dst: MULMOD2
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:87,1
    - Dst: inv_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:92,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:100,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:101,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: 109
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 109
    functionName: fnt_convolute
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/convolute.c
    functionUses: 0
    functionsReached:
    - MULMOD2C
    - SETMODULUS
    - POWMOD
    - fnt
    - inv_fnt
    - ispower2
    - MULMOD2
    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/cpython/Modules/_decimal/libmpdec/convolute.c:125,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:126,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:128,1
    - Dst: fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:143,1
    - Dst: MULMOD2
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:149,1
    - Dst: inv_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:154,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:162,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/convolute.c:163,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: 171
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 171
    functionName: fnt_autoconvolute
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/convolute.c
    functionUses: 0
    functionsReached:
    - MULMOD2C
    - SETMODULUS
    - POWMOD
    - fnt
    - inv_fnt
    - ispower2
    - MULMOD2
    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: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: _mpd_div_words
    functionSourceFile: /src/cpython/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: 101
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 101
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 127
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: nlz
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:141,1
    - Dst: nlz
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:143,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: 140
        line_start: 140
        source_file: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 202
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 202
    functionName: _mpd_div_words
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached:
    - nlz
    - assert
    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: 220
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 236
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 236
    functionName: _mpd_div_words
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:245,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: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: DIVMOD
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:260,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:266,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:267,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:268,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:269,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:274,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:275,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:276,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:277,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:278,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:285,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:286,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:287,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:288,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:289,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:294,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:295,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:296,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:297,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:298,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: 259
        line_start: 259
        source_file: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 302
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 302
    functionName: _mpd_divmod_pow10
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached:
    - DIVMOD
    - assert
    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: 317
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: _mpd_div_words
    functionSourceFile: /src/cpython/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: 359
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 359
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 384
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: nlz
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:398,1
    - Dst: nlz
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:400,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: 397
        line_start: 397
        source_file: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 459
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 459
    functionName: _mpd_div_words
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached:
    - nlz
    - assert
    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: 477
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 477
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 493
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 493
    functionName: _mpd_div_words
    functionSourceFile: /src/cpython/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: 510
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 510
    functionName: _mpd_mul_words
    functionSourceFile: /src/cpython/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: 528
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 528
    functionName: _mpd_div_words
    functionSourceFile: /src/cpython/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: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: DIVMOD
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:538,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:543,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:544,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:545,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:546,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:551,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:552,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:553,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:554,1
    - Dst: DIVMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:555,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: 537
        line_start: 537
        source_file: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 558
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 558
    functionName: _mpd_divmod_pow10
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached:
    - DIVMOD
    - assert
    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: 572
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 572
    functionName: _mpd_div_word
    functionSourceFile: /src/cpython/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: 579
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 579
    functionName: _mpd_idiv_word
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 600
    functionName: add_size_t
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: sub_size_t
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:620,1
    - Dst: mpd_err_fatal
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 625
    functionName: mul_size_t
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached:
    - mpd_err_fatal
    - _mpd_mul_words
    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: 636
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 636
    functionName: add_size_t_overflow
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - overflow
    argTypes:
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 646
    functionName: mul_size_t_overflow
    functionSourceFile: /src/cpython/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: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: mod_mpd_ssize_t
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/typearith.h:661,1
    - Dst: _mpd_div_words
      Src: /src/cpython/Modules/_decimal/libmpdec/typearith.h:662,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: 665
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 665
    functionName: mulmod_size_t
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached:
    - _mpd_div_words
    - _mpd_mul_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: mul_size_t_overflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:64,1
    - Dst: mpd_mallocfunc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:70,1
    - Dst: memset
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: mpd_callocfunc_em
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - memset
    - mpd_mallocfunc
    - mul_size_t_overflow
    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/cpython/Modules/_decimal/libmpdec/mpalloc.c:87,1
    - Dst: mpd_mallocfunc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: mpd_alloc
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    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/cpython/Modules/_decimal/libmpdec/mpalloc.c:101,1
    - Dst: mpd_callocfunc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: mpd_calloc
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpalloc.c:116,1
    - Dst: mpd_reallocfunc::mpd_reallocfunc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:122,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: 129
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: mpd_realloc
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    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/cpython/Modules/_decimal/libmpdec/mpalloc.c:137,1
    - Dst: add_size_t_overflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:142,1
    - Dst: mpd_mallocfunc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:147,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: 148
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: mpd_sh_alloc
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - add_size_t_overflow
    - mpd_mallocfunc
    - 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/cpython/Modules/_decimal/libmpdec/mpalloc.c:160,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:165,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - nwords
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 178
    functionName: mpd_qnew_size
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - mpd_alloc
    - mpd_free
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      mpd_qnew_size(mpd_ssize_t nwords)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnew_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: mpd_qnew
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.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/cpython/Modules/_decimal/libmpdec/mpalloc.c:195,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 5
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: mpd_new
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.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/cpython/Modules/_decimal/libmpdec/mpalloc.c:215,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:217,1
    - Dst: mpd_set_qnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:220,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:221,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:227,1
    - Dst: mpd_set_dynamic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:229,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: 214
        line_start: 214
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    constantsTouched: []
    func_position:
      end: 231
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 231
    functionName: mpd_switch_to_dyn
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - mpd_alloc
    - mpd_set_qnan
    - mpd_set_positive
    - mpd_set_dynamic_data
    - memcpy
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpalloc.c:244,1
    - Dst: mpd_set_qnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:247,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:248,1
    - Dst: mpd_set_dynamic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:255,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: 258
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 258
    functionName: mpd_switch_to_dyn_zero
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - mpd_calloc
    - mpd_set_qnan
    - mpd_set_dynamic_data
    - 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/cpython/Modules/_decimal/libmpdec/mpalloc.c:279,1
    - Dst: mpd_set_qnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:284,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:285,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: 292
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 292
    functionName: mpd_realloc_dyn
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - mpd_realloc
    - mpd_set_positive
    - mpd_set_qnan
    linkageType: ''
    returnType: int
    signature: int mpd_realloc_dyn(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:306,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:308,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:313,1
    - Dst: mpd_set_dynamic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - result
    - nwords
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    assertStmts:
    - condition: (nwords >= result->alloc)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    constantsTouched: []
    func_position:
      end: 318
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 318
    functionName: mpd_switch_to_dyn_cxx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mpd_alloc
    - mpd_set_dynamic_data
    - assert
    linkageType: ''
    returnType: int
    signature: int mpd_switch_to_dyn_cxx(mpd_t *result, mpd_ssize_t nwords)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_realloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - result
    - nwords
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 349
    functionName: mpd_realloc_dyn_cxx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpalloc.c
    functionUses: 0
    functionsReached:
    - mpd_realloc
    linkageType: ''
    returnType: int
    signature: int mpd_realloc_dyn_cxx(mpd_t *result, mpd_ssize_t nwords)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:40,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: err_exit
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench_full.c
    functionUses: 2
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void err_exit(const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:47,1
    - Dst: err_exit
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: new_mpd
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench_full.c
    functionUses: 2
    functionsReached:
    - mpd_qnew
    - err_exit
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      new_mpd(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:71,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:72,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:73,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:74,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:76,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:77,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:78,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:79,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:81,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:82,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:83,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:84,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:86,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:87,1
    - Dst: mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:89,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:90,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:91,1
    - Dst: mpd_add
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:92,1
    - Dst: mpd_sub
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:94,1
    - Dst: mpd_add
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:95,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:97,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:98,1
    - Dst: mpd_add
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:99,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:102,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:103,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:104,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:105,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:106,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:107,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 4
    argNames:
    - x0
    - y0
    - maxiter
    - ctx
    argTypes:
    - mpd_t*
    - mpd_t*
    - long
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 111
    functionName: color_point
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench_full.c
    functionUses: 1
    functionsReached:
    - mpd_mul
    - new_mpd
    - mpd_sub
    - mpd_set_u32
    - mpd_add
    - mpd_cmp
    - mpd_del
    linkageType: ''
    returnType: int
    signature: int color_point(const mpd_t *x0, const mpd_t *y0, const long maxiter,
      mpd_context_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:128,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:129,1
    - Dst: strtoll
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:131,1
    - Dst: strtol
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:132,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:134,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:137,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:138,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:139,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:140,1
    - Dst: new_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:141,1
    - Dst: mpd_set_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:143,1
    - Dst: mpd_sqrt
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:144,1
    - Dst: mpd_div_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:145,1
    - Dst: mpd_div_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:146,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:148,1
    - Dst: mpd_copy
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:149,1
    - Dst: mpd_copy
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:151,1
    - Dst: mpd_set_negative
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:152,1
    - Dst: color_point
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:154,1
    - Dst: mpd_add
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:155,1
    - Dst: mpd_sub
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:157,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:159,1
    - Dst: putchar
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:165,1
    - Dst: putchar
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:168,1
    - Dst: putchar
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:171,1
    - Dst: putchar
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:174,1
    - Dst: putchar
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:177,1
    - Dst: putchar
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:179,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:184,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:186,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:187,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:188,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:189,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/bench_full.c:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 193
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/bench_full.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_copy
    - new_mpd
    - mpd_sub
    - color_point
    - strtoll
    - mpd_set_u32
    - mpd_set_negative
    - printf
    - mpd_add
    - mpd_sqrt
    - putchar
    - mpd_init
    - mpd_del
    - mpd_div_u32
    - fprintf
    - exit
    - strtol
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:63,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:63,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:64,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:65,1
    - Dst: mpd_bsr
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:67,1
    - Dst: transpose_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:73,1
    - Dst: _mpd_init_fnt_params
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:78,1
    - Dst: fnt_dif2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:82,1
    - Dst: transpose_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:86,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:87,1
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:92,1
    - Dst: _mpd_getkernel
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:93,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:96,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:97,1
    - Dst: MULMOD2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:101,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:102,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:110,1
    - Dst: _mpd_init_fnt_params
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:111,1
    - Dst: fnt_dif2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:116,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:118,1
    - Dst: transpose_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:123,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: 62
        line_start: 62
        source_file: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    - condition: (n <= MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    - condition: (n >= 16)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    constantsTouched: []
    func_position:
      end: 129
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 129
    functionName: six_step_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    functionUses: 0
    functionsReached:
    - MULMOD2C
    - mpd_bsr
    - SETMODULUS
    - _mpd_getkernel
    - fnt_dif2
    - mpd_free
    - transpose_pow2
    - POWMOD
    - MULMOD
    - _mpd_init_fnt_params
    - ispower2
    - assert
    - MULMOD2
    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/cpython/Modules/_decimal/libmpdec/sixstep.c:148,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:148,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:149,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:150,1
    - Dst: mpd_bsr
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:152,1
    - Dst: transpose_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:160,1
    - Dst: _mpd_init_fnt_params
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:166,1
    - Dst: fnt_dif2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:170,1
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:174,1
    - Dst: _mpd_getkernel
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:175,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:178,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:179,1
    - Dst: MULMOD2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:183,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:184,1
    - Dst: transpose_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:191,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:192,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:198,1
    - Dst: _mpd_init_fnt_params
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:199,1
    - Dst: fnt_dif2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:204,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:206,1
    - Dst: transpose_pow2
      Src: /src/cpython/Modules/_decimal/libmpdec/sixstep.c:209,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: 147
        line_start: 147
        source_file: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    - condition: (n >= 16)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    - condition: (n <= MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    constantsTouched: []
    func_position:
      end: 214
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 214
    functionName: inv_six_step_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/sixstep.c
    functionUses: 0
    functionsReached:
    - MULMOD2C
    - mpd_bsr
    - SETMODULUS
    - _mpd_getkernel
    - fnt_dif2
    - POWMOD
    - transpose_pow2
    - mpd_free
    - MULMOD
    - _mpd_init_fnt_params
    - ispower2
    - assert
    - MULMOD2
    linkageType: ''
    returnType: int
    signature: int inv_six_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise
      Src: /src/cpython/Modules/_decimal/libmpdec/context.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: mpd_dflt_traphandler
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached:
    - raise
    linkageType: ''
    returnType: void
    signature: void mpd_dflt_traphandler(mpd_context_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_err_warn
      Src: /src/cpython/Modules/_decimal/libmpdec/context.c:56,1
    - Dst: mpd_err_fatal
      Src: /src/cpython/Modules/_decimal/libmpdec/context.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: mpd_setminalloc
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/context.c:72,1
    - Dst: mpd_qsetprec
      Src: /src/cpython/Modules/_decimal/libmpdec/context.c:74,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/context.c:75,1
    - Dst: mpd_setminalloc
      Src: /src/cpython/Modules/_decimal/libmpdec/context.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - prec
    argTypes:
    - mpd_context_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: mpd_init
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/context.c
    functionUses: 2
    functionsReached:
    - mpd_addstatus_raise
    - mpd_setminalloc
    - mpd_defaultcontext
    - 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: 98
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: mpd_maxcontext
    functionSourceFile: /src/cpython/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: 112
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: mpd_defaultcontext
    functionSourceFile: /src/cpython/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: 126
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: mpd_basiccontext
    functionSourceFile: /src/cpython/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: 146
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: mpd_ieee_context
    functionSourceFile: /src/cpython/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: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: mpd_getprec
    functionSourceFile: /src/cpython/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: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: mpd_getemax
    functionSourceFile: /src/cpython/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: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: mpd_getemin
    functionSourceFile: /src/cpython/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: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: mpd_getround
    functionSourceFile: /src/cpython/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: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: mpd_gettraps
    functionSourceFile: /src/cpython/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: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: mpd_getstatus
    functionSourceFile: /src/cpython/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: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: mpd_getclamp
    functionSourceFile: /src/cpython/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: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: mpd_getcr
    functionSourceFile: /src/cpython/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: 205
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: mpd_qsetprec
    functionSourceFile: /src/cpython/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: 215
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: mpd_qsetemax
    functionSourceFile: /src/cpython/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: 225
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: mpd_qsetemin
    functionSourceFile: /src/cpython/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: 235
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: mpd_qsetround
    functionSourceFile: /src/cpython/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
    - flags
    argTypes:
    - mpd_context_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: mpd_qsettraps
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/context.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsettraps(mpd_context_t *ctx, uint32_t flags)
  - 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: 255
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: mpd_qsetstatus
    functionSourceFile: /src/cpython/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: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: mpd_qsetclamp
    functionSourceFile: /src/cpython/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: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: mpd_qsetcr
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/context.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - mpd_context_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: mpd_addstatus_raise
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/context.c
    functionUses: 107
    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: 74
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: _mpd_strneq
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: strtoexp
    functionSourceFile: /src/cpython/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: 116
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: string_to_coeff
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:159,1
    - Dst: isdigit
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:163,1
    - Dst: isdigit
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:165,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 4
    argNames:
    - s
    - dpoint
    - exp
    - end
    argTypes:
    - char*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 179
    functionName: scan_dpoint_exp
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: scan_payload
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:209,1
    - Dst: mpd_set_negative
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:218,1
    - Dst: _mpd_strneq
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:223,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:225,1
    - Dst: scan_payload
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:229,1
    - Dst: _mpd_strneq
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:239,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:241,1
    - Dst: scan_payload
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:245,1
    - Dst: _mpd_strneq
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:254,1
    - Dst: _mpd_strneq
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:256,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:258,1
    - Dst: scan_dpoint_exp
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:265,1
    - Dst: strtoexp
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:272,1
    - Dst: _mpd_idiv_word
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:307,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:313,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:314,1
    - Dst: string_to_coeff
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:319,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:321,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:322,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:327,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: 328
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 328
    functionName: mpd_qset_string
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 3
    functionsReached:
    - mpd_setspecial
    - string_to_coeff
    - mpd_set_negative
    - mpd_set_flags
    - _mpd_idiv_word
    - _mpd_strneq
    - scan_dpoint_exp
    - mpd_qfinalize
    - mpd_setdigits
    - strtoexp
    - scan_payload
    - mpd_qresize
    - mpd_seterror
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_string(mpd_t *dec, const char *s, const mpd_context_t
      *ctx,\n                uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:336,1
    - Dst: mpd_qset_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:337,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dec
    - s
    - status
    argTypes:
    - mpd_t*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 344
    functionName: mpd_qset_string_exact
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_qset_string
    - mpd_maxcontext
    - mpd_seterror
    linkageType: ''
    returnType: void
    signature: void mpd_qset_string_exact(mpd_t *dec, const char *s, 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: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: EXTRACT_DIGIT
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:359,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:360,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:361,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:362,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:363,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:364,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:365,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:366,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:367,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:368,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:370,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:371,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:372,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:373,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:374,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:375,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:376,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:377,1
    - Dst: EXTRACT_DIGIT
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:378,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: 384
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 384
    functionName: word_to_string
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:401,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - x
    argTypes:
    - char*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 402
    functionName: exp_to_string
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - word_to_string
    - mpd_word_digits
    linkageType: ''
    returnType: char
    signature: 'char *

      exp_to_string(char *s, mpd_ssize_t x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_msword
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:412,1
    - Dst: word_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:413,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:413,1
    - Dst: word_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - dec
    argTypes:
    - char*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 422
    functionName: coeff_to_string
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - word_to_string
    - mpd_msword
    - mpd_word_digits
    linkageType: ''
    returnType: char
    signature: 'char *

      coeff_to_string(char *s, const mpd_t *dec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_msword
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:433,1
    - Dst: word_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:434,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:434,1
    - Dst: word_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - dot
    - dec
    argTypes:
    - char*
    - char*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 443
    functionName: coeff_to_string_dot
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - word_to_string
    - mpd_msword
    - mpd_word_digits
    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/cpython/Modules/_decimal/libmpdec/io.c:476,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:479,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:483,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:489,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:499,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:500,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:501,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:505,1
    - Dst: coeff_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:509,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:512,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:513,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:517,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:521,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:559,1
    - Dst: mod_mpd_ssize_t
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:563,1
    - Dst: mod_mpd_ssize_t
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:568,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:591,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:598,1
    - Dst: coeff_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:615,1
    - Dst: coeff_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:619,1
    - Dst: coeff_to_string_dot
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:626,1
    - Dst: exp_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:639,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:647,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:648,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: 520
        line_start: 520
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    - condition: (cp-decstring < MPD_SSIZE_MAX)
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    - condition: (cp < decstring+mem)
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 653
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 653
    functionName: _mpd_to_string
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - assert
    - abort
    - mpd_isnan
    - mpd_isinfinite
    - mpd_alloc
    - mod_mpd_ssize_t
    - mpd_isqnan
    - exp_to_string
    - mpd_iszero
    - mpd_isnegative
    - coeff_to_string_dot
    - strcpy
    - 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/cpython/Modules/_decimal/libmpdec/io.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dec
    - fmt
    argTypes:
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 655
    functionDepth: 4
    functionLinenumber: 655
    functionLinenumberEnd: 664
    functionName: mpd_to_sci
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dec
    - fmt
    argTypes:
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 666
    functionDepth: 4
    functionLinenumber: 666
    functionLinenumberEnd: 675
    functionName: mpd_to_eng
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - dec
    - fmt
    argTypes:
    - char**
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 677
    functionDepth: 4
    functionLinenumber: 677
    functionLinenumberEnd: 684
    functionName: mpd_to_sci_size
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - dec
    - fmt
    argTypes:
    - char**
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 693
    functionName: mpd_to_eng_size
    functionSourceFile: /src/cpython/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: 771
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 771
    functionName: _mpd_copy_utf8
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:785,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - spec
    argTypes:
    - mpd_spec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 794
    functionName: mpd_validate_lconv
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:814,1
    - Dst: isdigit
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:854,1
    - Dst: mpd_strtossize
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:859,1
    - Dst: isdigit
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:876,1
    - Dst: mpd_strtossize
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:880,1
    - Dst: localeconv
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:900,1
    - Dst: mpd_validate_lconv
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:904,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 83
    argCount: 3
    argNames:
    - spec
    - fmt
    - caps
    argTypes:
    - mpd_spec_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 915
    functionName: mpd_parse_fmt_str
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - mpd_validate_lconv
    - isdigit
    - mpd_strtossize
    - localeconv
    - _mpd_copy_utf8
    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: 938
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 938
    functionName: _mpd_bcopy
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:948,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: 950
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 950
    functionName: _mbstr_copy_char
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:960,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: 962
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 962
    functionName: _mbstr_copy_ascii
    functionSourceFile: /src/cpython/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: 977
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 977
    functionName: _mbstr_copy_pad
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/io.c:1007,1
    - Dst: _mbstr_copy_ascii
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1013,1
    - Dst: _mbstr_copy_char
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1016,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1016,1
    - Dst: _mbstr_copy_pad
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1029,1
    - Dst: _mbstr_copy_ascii
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1032,1
    - Dst: _mbstr_copy_char
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1064,1
    - Dst: _mbstr_copy_ascii
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1073,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: 1079
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1079
    functionName: _mpd_add_sep_dot
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - _mbstr_copy_pad
    - _mbstr_copy_char
    - strlen
    - _mbstr_copy_ascii
    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/cpython/Modules/_decimal/libmpdec/io.c:1116,1
    - Dst: isdigit
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1116,1
    - Dst: isdigit
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1118,1
    - Dst: _mpd_add_sep_dot
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1139,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1142,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1145,1
    - Dst: _mpd_add_sep_dot
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1150,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1153,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((unsigned char)*dp))
      pos:
        line_end: 1115
        line_start: 1115
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1155
      start: 1100
    functionDepth: 3
    functionLinenumber: 1100
    functionLinenumberEnd: 1155
    functionName: _mpd_apply_lconv
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - _mpd_add_sep_dot
    - mpd_free
    - isdigit
    - mpd_alloc
    - assert
    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/cpython/Modules/_decimal/libmpdec/io.c:1169,1
    - Dst: mpd_realloc
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1174,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1179,1
    - Dst: memmove
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1204,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: 1223
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1223
    functionName: _mpd_add_pad
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_realloc
    - memmove
    - strlen
    - 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/cpython/Modules/_decimal/libmpdec/io.c:1236,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1239,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1239,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1240,1
    - Dst: mpd_qrescale_fmt
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1244,1
    - Dst: mpd_qrescale_fmt
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1246,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: 1248
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1248
    functionName: _mpd_round
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_qrescale_fmt
    - mpd_iszero
    - mpd_qcopy
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/io.c:1273,1
    - Dst: tolower
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1274,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1284,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1292,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1292,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1305,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1312,1
    - Dst: _mpd_round
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1325,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1331,1
    - Dst: _mpd_round
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1335,1
    - Dst: mpd_qrescale
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1341,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1349,1
    - Dst: mpd_qrescale
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1350,1
    - Dst: _mpd_to_string
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1373,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1380,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1386,1
    - Dst: _mpd_apply_lconv
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1389,1
    - Dst: _mpd_add_pad
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1395,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1400,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1404,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 120
    argCount: 4
    argNames:
    - dec
    - spec
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_spec_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (strlen(spec->fill) == 1)
      pos:
        line_end: 1291
        line_start: 1291
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1406
      start: 1255
    functionDepth: 4
    functionLinenumber: 1255
    functionLinenumberEnd: 1406
    functionName: mpd_qformat_spec
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - isupper
    - mpd_isspecial
    - abort
    - strlen
    - _mpd_to_string
    - mpd_free
    - mpd_qrescale
    - tolower
    - _mpd_round
    - _mpd_add_pad
    - mpd_iszero
    - mpd_del
    - mpd_qcopy
    - _mpd_apply_lconv
    - assert
    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/cpython/Modules/_decimal/libmpdec/io.c:1414,1
    - Dst: mpd_qformat_spec
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1419,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: 1420
      start: 1408
    functionDepth: 5
    functionLinenumber: 1408
    functionLinenumberEnd: 1420
    functionName: mpd_qformat
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - mpd_qformat_spec
    - mpd_parse_fmt_str
    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/cpython/Modules/_decimal/libmpdec/io.c:1479,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1484,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: 1478
        line_start: 1478
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1495
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1495
    functionName: mpd_snprint_flags
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - snprintf
    - assert
    linkageType: ''
    returnType: int
    signature: int mpd_snprint_flags(char *dest, int nmemb, uint32_t flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1504,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1516,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: 1503
        line_start: 1503
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1531
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1531
    functionName: mpd_lsnprint_flags
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - snprintf
    - assert
    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/cpython/Modules/_decimal/libmpdec/io.c:1541,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1560,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: 1540
        line_start: 1540
        source_file: /src/cpython/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1575
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1575
    functionName: mpd_lsnprint_signals
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - snprintf
    - assert
    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/cpython/Modules/_decimal/libmpdec/io.c:1583,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1585,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1586,1
    - Dst: fputs
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - file
    - dec
    argTypes:
    - FILE*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1578
    functionDepth: 5
    functionLinenumber: 1578
    functionLinenumberEnd: 1591
    functionName: mpd_fprint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - fprintf
    - mpd_to_sci
    - fputs
    - 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/cpython/Modules/_decimal/libmpdec/io.c:1598,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1600,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1601,1
    - Dst: fputs
      Src: /src/cpython/Modules/_decimal/libmpdec/io.c:1604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1593
    functionDepth: 5
    functionLinenumber: 1593
    functionLinenumberEnd: 1606
    functionName: mpd_print
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - fputs
    - mpd_to_sci
    - printf
    - mpd_free
    linkageType: ''
    returnType: void
    signature: void mpd_print(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_bsf
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - mpd_uint_t[]
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: bitreverse_permute
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/difradix2.c:89,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:89,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:90,1
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:92,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:107,1
    - Dst: submod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:108,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:110,1
    - Dst: submod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:111,1
    - Dst: MULMOD2
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:113,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:134,1
    - Dst: submod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:135,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:137,1
    - Dst: submod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:138,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:156,1
    - Dst: submod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:157,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:159,1
    - Dst: submod
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:160,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:162,1
    - Dst: bitreverse_permute
      Src: /src/cpython/Modules/_decimal/libmpdec/difradix2.c:172,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: 88
        line_start: 88
        source_file: /src/cpython/Modules/_decimal/libmpdec/difradix2.c
    - condition: (n >= 4)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/cpython/Modules/_decimal/libmpdec/difradix2.c
    constantsTouched: []
    func_position:
      end: 173
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 173
    functionName: fnt_dif2
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/difradix2.c
    functionUses: 2
    functionsReached:
    - MULMOD2C
    - SETMODULUS
    - bitreverse_permute
    - submod
    - addmod
    - ispower2
    - assert
    - MULMOD2
    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/cpython/Modules/_decimal/libmpdec/numbertheory.c:58,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:64,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - n
    - sign
    - modnum
    argTypes:
    - mpd_uint_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: _mpd_getkernel
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c
    functionUses: 2
    functionsReached:
    - POWMOD
    - SETMODULUS
    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/cpython/Modules/_decimal/libmpdec/numbertheory.c:88,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:88,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:89,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:90,1
    - Dst: mpd_sh_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:93,1
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:98,1
    - Dst: _mpd_getkernel
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:99,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:109,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: 87
        line_start: 87
        source_file: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c
    - condition: (sign == -1 || sign == 1)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c
    - condition: (P1 <= modnum && modnum <= P3)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c
    constantsTouched: []
    func_position:
      end: 113
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 113
    functionName: _mpd_init_fnt_params
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c
    functionUses: 2
    functionsReached:
    - mpd_sh_alloc
    - SETMODULUS
    - _mpd_getkernel
    - MULMOD
    - ispower2
    - assert
    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/cpython/Modules/_decimal/libmpdec/numbertheory.c:126,1
    - Dst: _mpd_getkernel
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:127,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - w3table
    - sign
    - modnum
    argTypes:
    - mpd_uint_t[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: _mpd_init_w3table
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/numbertheory.c
    functionUses: 0
    functionsReached:
    - POWMOD
    - _mpd_getkernel
    - SETMODULUS
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MPD_UINT8_C
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPD_UINT8_C(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: MPD_UINT8_C
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPD_UINT8_C(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: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MPD_PRAGMA
    functionSourceFile: /src/cpython/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: 803
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 803
    functionName: mpd_err_fatal
    functionSourceFile: /src/cpython/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: 807
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: mpd_err_warn
    functionSourceFile: /src/cpython/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: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: MPD_NEW_STATIC
    functionSourceFile: /src/cpython/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: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: MPD_NEW_CONST
    functionSourceFile: /src/cpython/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: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: MPD_NEW_SHARED
    functionSourceFile: /src/cpython/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: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: mpd_version
    functionSourceFile: /src/cpython/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: 183
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: mpd_word_digits
    functionSourceFile: /src/cpython/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: 202
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: mpd_word_digits
    functionSourceFile: /src/cpython/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: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: mpd_ssize_t::mpd_adjexp
    functionSourceFile: /src/cpython/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: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: mpd_ssize_t::mpd_etiny
    functionSourceFile: /src/cpython/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: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: mpd_ssize_t::mpd_etop
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts:
    - condition: (dec->len > 0)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: mpd_msword
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: mpd_msd
    functionSourceFile: /src/cpython/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: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: mpd_lsd
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - digits
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: mpd_digits_to_size
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_idiv_word
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_digits_to_size(mpd_ssize_t digits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exp
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: mpd_exp_digits
    functionSourceFile: /src/cpython/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: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: mpd_iscanonical
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_iscanonical(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: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: mpd_isfinite
    functionSourceFile: /src/cpython/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: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: mpd_isinfinite
    functionSourceFile: /src/cpython/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: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: mpd_isnan
    functionSourceFile: /src/cpython/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: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: mpd_isnegative
    functionSourceFile: /src/cpython/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: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: mpd_ispositive
    functionSourceFile: /src/cpython/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: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: mpd_isqnan
    functionSourceFile: /src/cpython/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: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: mpd_issigned
    functionSourceFile: /src/cpython/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: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: mpd_issnan
    functionSourceFile: /src/cpython/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: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: mpd_isspecial
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:345,1
    - Dst: mpd_msword
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: mpd_iszero
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 6
    functionsReached:
    - mpd_isspecial
    - mpd_msword
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_iszero(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_msword
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: mpd_iszerocoeff
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:359,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:360,1
    - Dst: mpd_adjexp
      Src: /src/cpython/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: 2
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: mpd_isnormal
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_iszerocoeff
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:369,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:370,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dec
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: mpd_issubnormal
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_iszerocoeff
    - 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: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: mpd_isoddword
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: mpd_isoddcoeff
    functionSourceFile: /src/cpython/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: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: mpd_sign
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: mpd_arith_sign
    functionSourceFile: /src/cpython/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: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: mpd_radix
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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: 415
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: mpd_isdynamic
    functionSourceFile: /src/cpython/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: 422
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: mpd_isstatic
    functionSourceFile: /src/cpython/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: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: mpd_isdynamic_data
    functionSourceFile: /src/cpython/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: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: mpd_isstatic_data
    functionSourceFile: /src/cpython/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: 443
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: mpd_isshared_data
    functionSourceFile: /src/cpython/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: 450
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: mpd_isconst_data
    functionSourceFile: /src/cpython/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: 466
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: mpd_uint_zero
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:472,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:473,1
    - Dst: mpd_isdynamic
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:475,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: mpd_del
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 11
    functionsReached:
    - mpd_isdynamic
    - mpd_isdynamic_data
    - mpd_free
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_del(mpd_t *dec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:507,1
    - Dst: mpd_isconst_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:507,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:508,1
    - Dst: mpd_isshared_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:508,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:509,1
    - Dst: mpd_isstatic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:515,1
    - Dst: mpd_switch_to_dyn
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:517,1
    - Dst: mpd_realloc_dyn
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:522,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: 506
        line_start: 506
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_isshared_data(result))
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (MPD_MINALLOC <= result->alloc)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 523
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 523
    functionName: mpd_qresize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_realloc_dyn
    - mpd_switch_to_dyn
    - mpd_isconst_data
    - mpd_isstatic_data
    - mpd_isshared_data
    - assert
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_qresize(mpd_t *result, mpd_ssize_t nwords, uint32_t
      *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:529,1
    - Dst: mpd_isconst_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:529,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:530,1
    - Dst: mpd_isshared_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:530,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:531,1
    - Dst: mpd_isstatic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:537,1
    - Dst: mpd_switch_to_dyn_cxx
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:539,1
    - Dst: mpd_realloc_dyn_cxx
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - result
    - nwords
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    assertStmts:
    - condition: (!mpd_isconst_data(result))
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_isshared_data(result))
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (MPD_MINALLOC <= result->alloc)
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 545
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 545
    functionName: mpd_qresize_cxx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_realloc_dyn_cxx
    - mpd_isconst_data
    - mpd_switch_to_dyn_cxx
    - mpd_isstatic_data
    - mpd_isshared_data
    - assert
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_qresize_cxx(mpd_t *result, mpd_ssize_t nwords)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:552,1
    - Dst: mpd_isconst_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:552,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:553,1
    - Dst: mpd_isshared_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:553,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:554,1
    - Dst: mpd_isstatic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:558,1
    - Dst: mpd_switch_to_dyn_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:560,1
    - Dst: mpd_realloc_dyn
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:563,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:568,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: 551
        line_start: 551
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_isshared_data(result))
      pos:
        line_end: 552
        line_start: 552
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (MPD_MINALLOC <= result->alloc)
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 570
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 570
    functionName: mpd_qresize_zero
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_realloc_dyn
    - mpd_isconst_data
    - mpd_isstatic_data
    - mpd_switch_to_dyn_zero
    - mpd_uint_zero
    - mpd_isshared_data
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:581,1
    - Dst: mpd_isconst_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:581,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:582,1
    - Dst: mpd_isshared_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:582,1
    - Dst: mpd_isstatic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:584,1
    - Dst: mpd_realloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts:
    - condition: (!mpd_isconst_data(result))
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_isshared_data(result))
      pos:
        line_end: 581
        line_start: 581
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 592
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 592
    functionName: mpd_minalloc
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_realloc
    - mpd_isconst_data
    - mpd_isstatic_data
    - mpd_isshared_data
    - assert
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_minalloc(mpd_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:598,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:599,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: 603
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: mpd_resize
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:609,1
    - Dst: mpd_addstatus_raise
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:610,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: 614
      start: 605
    functionDepth: 5
    functionLinenumber: 605
    functionLinenumberEnd: 614
    functionName: mpd_resize_zero
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize_zero
    - mpd_addstatus_raise
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:625,1
    - Dst: mpd_msword
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 627
    functionName: mpd_setdigits
    functionSourceFile: /src/cpython/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: 635
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: mpd_set_sign
    functionSourceFile: /src/cpython/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: 645
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 645
    functionName: mpd_signcpy
    functionSourceFile: /src/cpython/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: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: mpd_set_infinity
    functionSourceFile: /src/cpython/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: 661
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 661
    functionName: mpd_set_qnan
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    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: 669
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 669
    functionName: mpd_set_snan
    functionSourceFile: /src/cpython/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: 676
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: mpd_set_negative
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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: 683
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 683
    functionName: mpd_set_positive
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    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: 690
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 690
    functionName: mpd_set_dynamic
    functionSourceFile: /src/cpython/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: 697
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 697
    functionName: mpd_set_static
    functionSourceFile: /src/cpython/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: 704
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 704
    functionName: mpd_set_dynamic_data
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    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: 712
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: mpd_set_static_data
    functionSourceFile: /src/cpython/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: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: mpd_set_shared_data
    functionSourceFile: /src/cpython/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: 728
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 728
    functionName: mpd_set_const_data
    functionSourceFile: /src/cpython/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: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mpd_clear_flags
    functionSourceFile: /src/cpython/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: 743
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: mpd_set_flags
    functionSourceFile: /src/cpython/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: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: mpd_copy_flags
    functionSourceFile: /src/cpython/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: 767
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 767
    functionName: mpd_workcontext
    functionSourceFile: /src/cpython/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: 779
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 779
    functionName: _mpd_negate
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 789
    functionName: mpd_zerocoeff
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:797,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:800,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: 814
      start: 792
    functionDepth: 5
    functionLinenumber: 792
    functionLinenumberEnd: 814
    functionName: mpd_qmaxcoeff
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_idiv_word
    - mpd_qresize
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:827,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:834,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:836,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:838,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:840,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:841,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - result
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 843
    functionName: _mpd_cap
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_sign
    - _mpd_idiv_word
    - mpd_iszero
    - _mpd_real_size
    - _settriple
    - mpd_setdigits
    - mpd_qresize
    linkageType: ''
    returnType: void
    signature: void _mpd_cap(mpd_t *result, const mpd_context_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpd_minalloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:859,1
    - Dst: _mpd_idiv_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:863,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:870,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:872,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:874,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - result
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 849
    functionDepth: 5
    functionLinenumber: 849
    functionLinenumberEnd: 881
    functionName: _mpd_fix_nan
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_minalloc
    - mpd_iszerocoeff
    - _mpd_idiv_word
    - _mpd_real_size
    - mpd_setdigits
    - mpd_qresize
    linkageType: ''
    returnType: void
    signature: void _mpd_fix_nan(mpd_t *result, const mpd_context_t *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:897,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:899,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:909,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: 896
        line_start: 896
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 914
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 914
    functionName: _mpd_get_msdigits
    functionSourceFile: /src/cpython/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: 930
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 930
    functionName: _mpd_real_size
    functionSourceFile: /src/cpython/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: 952
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 952
    functionName: mpd_trail_zeros
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:960,1
    - Dst: mpd_trail_zeros
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 966
    functionName: _mpd_isint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_trail_zeros
    - mpd_iszerocoeff
    linkageType: ''
    returnType: int
    signature: int _mpd_isint(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:972,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 976
    functionName: mpd_isinteger
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - _mpd_isint
    linkageType: ''
    returnType: int
    signature: int mpd_isinteger(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 990
    functionName: mpd_word_ispow10
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:996,1
    - Dst: mpd_msword
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:996,1
    - Dst: _mpd_isallzero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1003
    functionName: mpd_coeff_ispow10
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_msword
    - mpd_word_ispow10
    - _mpd_isallzero
    linkageType: ''
    returnType: int
    signature: int mpd_coeff_ispow10(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1017
    functionName: mpd_word_isallnine
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1023,1
    - Dst: mpd_msword
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1023,1
    - Dst: _mpd_isallnine
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1030
    functionName: mpd_coeff_isallnine
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_isallnine
    - mpd_msword
    - _mpd_isallnine
    linkageType: ''
    returnType: int
    signature: int mpd_coeff_isallnine(const mpd_t *dec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1037,1
    - Dst: mpd_isinteger
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1037,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1038,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1040,1
    - Dst: mpd_isoddword
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1042,1
    - Dst: mpd_isoddword
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts:
    - condition: (mpd_isinteger(dec))
      pos:
        line_end: 1036
        line_start: 1036
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 1045
      start: 1033
    functionDepth: 4
    functionLinenumber: 1033
    functionLinenumberEnd: 1045
    functionName: mpd_isodd
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isoddword
    - mpd_iszerocoeff
    - _mpd_div_word
    - mpd_isinteger
    - assert
    linkageType: ''
    returnType: int
    signature: int mpd_isodd(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isodd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1048
    functionDepth: 5
    functionLinenumber: 1048
    functionLinenumberEnd: 1052
    functionName: mpd_iseven
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1062,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1064,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1066,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: 1067
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1067
    functionName: _ssettriple
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_setdigits
    - mpd_set_flags
    - _mpd_div_word
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1073,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1074,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1076,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1078,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: 1079
      start: 1070
    functionDepth: 4
    functionLinenumber: 1070
    functionLinenumberEnd: 1079
    functionName: _settriple
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_setdigits
    - mpd_set_flags
    - mpd_minalloc
    - _mpd_div_word
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1085,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: 1089
      start: 1082
    functionDepth: 4
    functionLinenumber: 1082
    functionLinenumberEnd: 1089
    functionName: mpd_setspecial
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1095,1
    - Dst: mpd_set_qnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1096,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1097,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: 1100
      start: 1092
    functionDepth: 4
    functionLinenumber: 1092
    functionLinenumberEnd: 1100
    functionName: mpd_seterror
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 5
    functionsReached:
    - mpd_set_positive
    - mpd_set_qnan
    - mpd_minalloc
    linkageType: ''
    returnType: void
    signature: void mpd_seterror(mpd_t *result, uint32_t flags, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _ssettriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1123,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1124,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: 1125
      start: 1103
    functionDepth: 3
    functionLinenumber: 1103
    functionLinenumberEnd: 1125
    functionName: mpd_qsset_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1132,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1133,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: 1134
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1134
    functionName: mpd_qsset_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1141,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: 1142
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1142
    functionName: mpd_qsset_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1149,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: 1150
      start: 1145
    functionDepth: 4
    functionLinenumber: 1145
    functionLinenumberEnd: 1150
    functionName: mpd_qsset_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1158,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: 1159
      start: 1154
    functionDepth: 4
    functionLinenumber: 1154
    functionLinenumberEnd: 1159
    functionName: mpd_qsset_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1166,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: 1167
      start: 1162
    functionDepth: 4
    functionLinenumber: 1162
    functionLinenumberEnd: 1167
    functionName: mpd_qsset_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1175,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1176,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: 1177
      start: 1171
    functionDepth: 4
    functionLinenumber: 1171
    functionLinenumberEnd: 1177
    functionName: mpd_qset_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_qsset_ssize
    - mpd_minalloc
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1184,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1185,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: 1186
      start: 1180
    functionDepth: 5
    functionLinenumber: 1180
    functionLinenumberEnd: 1186
    functionName: mpd_qset_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qfinalize
    - _settriple
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1193,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: 1194
      start: 1189
    functionDepth: 5
    functionLinenumber: 1189
    functionLinenumberEnd: 1194
    functionName: mpd_qset_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1201,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: 1202
      start: 1197
    functionDepth: 6
    functionLinenumber: 1197
    functionLinenumberEnd: 1202
    functionName: mpd_qset_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1220,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1227,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1230,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: 1231
      start: 1206
    functionDepth: 5
    functionLinenumber: 1206
    functionLinenumberEnd: 1231
    functionName: _c32setu64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_set_flags
    - mpd_qresize
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1237,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1238,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: 1239
      start: 1233
    functionDepth: 6
    functionLinenumber: 1233
    functionLinenumberEnd: 1239
    functionName: _c32_qset_u64
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1261,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1262,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: 1263
      start: 1242
    functionDepth: 6
    functionLinenumber: 1242
    functionLinenumberEnd: 1263
    functionName: _c32_qset_i64
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1273,1
    - Dst: _c32_qset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1275,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: 1277
      start: 1268
    functionDepth: 7
    functionLinenumber: 1268
    functionLinenumberEnd: 1277
    functionName: mpd_qset_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1285,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1287,1
    - Dst: _c32_qset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1289,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - result
    - a
    - status
    argTypes:
    - mpd_t*
    - int64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1280
    functionDepth: 7
    functionLinenumber: 1280
    functionLinenumberEnd: 1297
    functionName: mpd_qset_i64_exact
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qset_ssize
    - _c32_qset_i64
    - mpd_seterror
    linkageType: ''
    returnType: void
    signature: void mpd_qset_i64_exact(mpd_t *result, int64_t a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1305,1
    - Dst: _c32_qset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1307,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: 1309
      start: 1300
    functionDepth: 7
    functionLinenumber: 1300
    functionLinenumberEnd: 1309
    functionName: mpd_qset_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1317,1
    - Dst: mpd_qset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1319,1
    - Dst: _c32_qset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1321,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - result
    - a
    - status
    argTypes:
    - mpd_t*
    - uint64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1312
    functionDepth: 7
    functionLinenumber: 1312
    functionLinenumberEnd: 1329
    functionName: mpd_qset_u64_exact
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _c32_qset_u64
    - mpd_maxcontext
    - mpd_qset_uint
    - mpd_seterror
    linkageType: ''
    returnType: void
    signature: void mpd_qset_u64_exact(mpd_t *result, uint64_t a, uint32_t *status)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1346,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1350,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1353,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1364,1
    - Dst: mpd_qsshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1373,1
    - Dst: _mpd_get_msdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1378,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1385,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: 1393
      start: 1339
    functionDepth: 3
    functionLinenumber: 1339
    functionLinenumberEnd: 1393
    functionName: _mpd_qget_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - _mpd_mul_words
    - _mpd_get_msdigits
    - mpd_qsshiftr
    - _mpd_isint
    - mpd_iszero
    - mpd_isnegative
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1402
    functionDepth: 4
    functionLinenumber: 1402
    functionLinenumberEnd: 1406
    functionName: mpd_qget_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1409
    functionDepth: 4
    functionLinenumber: 1409
    functionLinenumberEnd: 1413
    functionName: mpd_qabs_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1423,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1416
    functionDepth: 5
    functionLinenumber: 1416
    functionLinenumberEnd: 1439
    functionName: mpd_qget_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qabs_uint
    - mpd_isnegative
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1449,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1457,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1461,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1464,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1468,1
    - Dst: _mpd_cmp_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1473,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1478,1
    - Dst: mpd_qrescale
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1479,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1496,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: 1500
      start: 1446
    functionDepth: 3
    functionLinenumber: 1446
    functionLinenumberEnd: 1500
    functionName: _c32_qget_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - abort
    - _mpd_cmp_abs
    - mpd_qrescale
    - mpd_maxcontext
    - _mpd_isint
    - mpd_iszero
    - mpd_isnegative
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1508,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1502
    functionDepth: 4
    functionLinenumber: 1502
    functionLinenumberEnd: 1523
    functionName: _c32_qget_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _c32_qget_u64
    - mpd_isnegative
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1528
    functionDepth: 5
    functionLinenumber: 1528
    functionLinenumberEnd: 1532
    functionName: mpd_qget_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1535
    functionDepth: 6
    functionLinenumber: 1535
    functionLinenumberEnd: 1539
    functionName: mpd_qget_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1542
    functionDepth: 5
    functionLinenumber: 1542
    functionLinenumberEnd: 1558
    functionName: mpd_qget_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1561
    functionDepth: 6
    functionLinenumber: 1561
    functionLinenumberEnd: 1577
    functionName: mpd_qget_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1581
    functionDepth: 4
    functionLinenumber: 1581
    functionLinenumberEnd: 1588
    functionName: mpd_qget_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1591
    functionDepth: 5
    functionLinenumber: 1591
    functionLinenumberEnd: 1598
    functionName: mpd_qget_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1602
    functionDepth: 5
    functionLinenumber: 1602
    functionLinenumberEnd: 1606
    functionName: mpd_qget_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1609
    functionDepth: 6
    functionLinenumber: 1609
    functionLinenumberEnd: 1613
    functionName: mpd_qget_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1630,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1631,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1632,1
    - Dst: mpd_set_qnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1633,1
    - Dst: _mpd_fix_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1634,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: 1638
      start: 1626
    functionDepth: 6
    functionLinenumber: 1626
    functionLinenumberEnd: 1638
    functionName: mpd_qcheck_nan
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_issnan
    - mpd_isnan
    - mpd_set_qnan
    - _mpd_fix_nan
    - mpd_qcopy
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1651,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1655,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1658,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1661,1
    - Dst: mpd_set_qnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1662,1
    - Dst: _mpd_fix_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1663,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: 1667
      start: 1645
    functionDepth: 6
    functionLinenumber: 1645
    functionLinenumberEnd: 1667
    functionName: mpd_qcheck_nans
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_issnan
    - mpd_set_qnan
    - _mpd_fix_nan
    - mpd_isqnan
    - mpd_qcopy
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1680,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1684,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1688,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1691,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1694,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1697,1
    - Dst: mpd_set_qnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1698,1
    - Dst: _mpd_fix_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1699,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: 1703
      start: 1674
    functionDepth: 6
    functionLinenumber: 1674
    functionLinenumberEnd: 1703
    functionName: mpd_qcheck_3nans
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_issnan
    - mpd_set_qnan
    - _mpd_fix_nan
    - mpd_isqnan
    - mpd_qcopy
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1717,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1719,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1721,1
    - Dst: mpd_lsd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1727,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: 1733
      start: 1706
    functionDepth: 2
    functionLinenumber: 1706
    functionLinenumberEnd: 1733
    functionName: _mpd_rnd_incr
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1745,1
    - Dst: _mpd_baseincr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1755,1
    - Dst: _mpd_check_exp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1759,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1762,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1764,1
    - Dst: _mpd_check_exp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1767,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: 1770
      start: 1741
    functionDepth: 3
    functionLinenumber: 1741
    functionLinenumberEnd: 1770
    functionName: _mpd_apply_round
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_baseincr
    - mpd_qshiftr_inplace
    - _mpd_rnd_incr
    - _mpd_check_exp
    - mpd_setdigits
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1779,1
    - Dst: _mpd_baseincr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1780,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1782,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1788,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: 1790
      start: 1775
    functionDepth: 5
    functionLinenumber: 1775
    functionLinenumberEnd: 1790
    functionName: _mpd_apply_round_excess
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_baseincr
    - mpd_setdigits
    - mpd_qresize
    - _mpd_rnd_incr
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1801,1
    - Dst: _mpd_baseincr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1802,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1804,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1810,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1812,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: 1817
      start: 1797
    functionDepth: 5
    functionLinenumber: 1797
    functionLinenumberEnd: 1817
    functionName: _mpd_apply_round_fit
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_baseincr
    - _mpd_rnd_incr
    - mpd_setdigits
    - mpd_qresize
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1828,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1831,1
    - Dst: mpd_zerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1836,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1845,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1845,1
    - Dst: mpd_qmaxcoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1848,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1852,1
    - Dst: mpd_qmaxcoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1853,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1857,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1861,1
    - Dst: mpd_qmaxcoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1862,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1866,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1870,1
    - Dst: mpd_etop
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1876,1
    - Dst: mpd_etop
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1880,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1881,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1886,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1894,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1896,1
    - Dst: mpd_zerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1899,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1911,1
    - Dst: _mpd_apply_round_excess
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1914,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1918,1
    - Dst: mpd_zerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1919,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: 1928
      start: 1822
    functionDepth: 6
    functionLinenumber: 1822
    functionLinenumberEnd: 1928
    functionName: _mpd_check_exp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_setspecial
    - mpd_zerocoeff
    - mpd_qmaxcoeff
    - mpd_ispositive
    - abort
    - mpd_qshiftr_inplace
    - mpd_etiny
    - mpd_iszerocoeff
    - _mpd_apply_round_excess
    - mpd_etop
    - mpd_adjexp
    - mpd_sign
    - mpd_isnegative
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1938,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1938,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1939,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: 1942
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 1942
    functionName: mpd_check_underflow
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_etiny
    - mpd_iszero
    - mpd_adjexp
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1952,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1958,1
    - Dst: _mpd_apply_round
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1960,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: 1966
      start: 1945
    functionDepth: 4
    functionLinenumber: 1945
    functionLinenumberEnd: 1966
    functionName: _mpd_check_round
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1972,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1973,1
    - Dst: _mpd_fix_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1974,1
    - Dst: _mpd_check_exp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1979,1
    - Dst: _mpd_check_round
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1980,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: 1981
      start: 1969
    functionDepth: 7
    functionLinenumber: 1969
    functionLinenumberEnd: 1981
    functionName: mpd_qfinalize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 9
    functionsReached:
    - mpd_isspecial
    - mpd_isnan
    - _mpd_fix_nan
    - _mpd_check_round
    - _mpd_check_exp
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1989
    functionDepth: 1
    functionLinenumber: 1989
    functionLinenumberEnd: 2000
    functionName: _mpd_copy_shared
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2010,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2014,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2018,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: 2021
      start: 2005
    functionDepth: 5
    functionLinenumber: 2005
    functionLinenumberEnd: 2021
    functionName: mpd_qcopy
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 10
    functionsReached:
    - mpd_copy_flags
    - memcpy
    - mpd_qresize
    linkageType: ''
    returnType: int
    signature: int mpd_qcopy(mpd_t *result, const mpd_t *a, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qresize_cxx
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2029,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2033,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - result
    - a
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2024
    functionDepth: 5
    functionLinenumber: 2024
    functionLinenumberEnd: 2040
    functionName: mpd_qcopy_cxx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_copy_flags
    - memcpy
    - mpd_qresize_cxx
    linkageType: ''
    returnType: int
    signature: int mpd_qcopy_cxx(mpd_t *result, const mpd_t *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2051,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - result
    - a
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2057
    functionName: mpd_qcopy_static
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mpd_copy_flags
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2068,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2071,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2063
    functionDepth: 4
    functionLinenumber: 2063
    functionLinenumberEnd: 2078
    functionName: mpd_qncopy
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - memcpy
    - mpd_qnew_size
    - mpd_copy_flags
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      mpd_qncopy(const mpd_t *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2087,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2090,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: 2092
      start: 2084
    functionDepth: 6
    functionLinenumber: 2084
    functionLinenumberEnd: 2092
    functionName: mpd_qcopy_abs
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_set_positive
    - mpd_qcopy
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2101,1
    - Dst: _mpd_negate
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2104,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: 2106
      start: 2098
    functionDepth: 6
    functionLinenumber: 2098
    functionLinenumberEnd: 2106
    functionName: mpd_qcopy_negate
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - _mpd_negate
    - mpd_qcopy
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2115,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2117,1
    - Dst: mpd_set_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2120,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: 2122
      start: 2112
    functionDepth: 6
    functionLinenumber: 2112
    functionLinenumberEnd: 2122
    functionName: mpd_qcopy_sign
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    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: 2150
      start: 2143
    functionDepth: 0
    functionLinenumber: 2143
    functionLinenumberEnd: 2150
    functionName: CMP_EQUAL_OR_RETURN
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2169,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2171,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2178,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2180,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2184,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2186,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2190,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2194,1
    - Dst: _mpd_isallzero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2198,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: 2168
        line_start: 2168
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2199
      start: 2156
    functionDepth: 2
    functionLinenumber: 2156
    functionLinenumberEnd: 2199
    functionName: _mpd_basecmp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_isallzero
    - _mpd_divmod_pow10
    - _mpd_div_word
    - CMP_EQUAL_OR_RETURN
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2212,1
    - Dst: _mpd_basecmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2215,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2202
    functionDepth: 3
    functionLinenumber: 2202
    functionLinenumberEnd: 2228
    functionName: _mpd_cmp_same_adjexp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_basecmp
    - CMP_EQUAL_OR_RETURN
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2242,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2243,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2244,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2244,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2246,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2248,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2249,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2253,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2254,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2257,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2259,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2260,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2264,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2264,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2265,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2265,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2269,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2270,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2273,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2275,1
    - Dst: _mpd_cmp_same_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2279,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2231
    functionDepth: 4
    functionLinenumber: 2231
    functionLinenumberEnd: 2280
    functionName: _mpd_cmp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isinfinite
    - _mpd_cmp_same_adjexp
    - mpd_arith_sign
    - mpd_iszerocoeff
    - mpd_isnegative
    - mpd_sign
    - mpd_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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2294,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2295,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2300,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2305,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2306,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2311,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2316,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2317,1
    - Dst: _mpd_cmp_same_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2326,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2283
    functionDepth: 4
    functionLinenumber: 2283
    functionLinenumberEnd: 2327
    functionName: _mpd_cmp_abs
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_adjexp
    - _mpd_cmp_same_adjexp
    - mpd_iszerocoeff
    - mpd_isinfinite
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2333,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2333,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2334,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2334,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2340,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: 2341
      start: 2330
    functionDepth: 5
    functionLinenumber: 2330
    functionLinenumberEnd: 2341
    functionName: mpd_qcmp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isspecial
    - mpd_isnan
    - _mpd_cmp
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2354,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2354,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2355,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2360,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2361,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: 2363
      start: 2348
    functionDepth: 7
    functionLinenumber: 2348
    functionLinenumberEnd: 2363
    functionName: mpd_qcompare
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_qcheck_nans
    - _mpd_cmp
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2372,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2372,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2373,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2379,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2380,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: 2382
      start: 2366
    functionDepth: 7
    functionLinenumber: 2366
    functionLinenumberEnd: 2382
    functionName: mpd_qcompare_signal
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_qcheck_nans
    - _mpd_cmp
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2392,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2392,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2393,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2393,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2397,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2399,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2400,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2401,1
    - Dst: _mpd_copy_shared
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2404,1
    - Dst: _mpd_copy_shared
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2405,1
    - Dst: _mpd_cmp_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2408,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2419,1
    - Dst: _mpd_cmp_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2423,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2429,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2385
    functionDepth: 5
    functionLinenumber: 2385
    functionLinenumberEnd: 2430
    functionName: mpd_cmp_total
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isnan
    - _mpd_cmp_abs
    - mpd_arith_sign
    - mpd_isqnan
    - _mpd_copy_shared
    - mpd_sign
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2442,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2443,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: 2445
      start: 2437
    functionDepth: 6
    functionLinenumber: 2437
    functionLinenumberEnd: 2445
    functionName: mpd_compare_total
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_cmp_total
    - _settriple
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2453,1
    - Dst: _mpd_copy_shared
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2454,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2456,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2457,1
    - Dst: mpd_cmp_total
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2448
    functionDepth: 6
    functionLinenumber: 2448
    functionLinenumberEnd: 2460
    functionName: mpd_cmp_total_mag
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2472,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2473,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: 2475
      start: 2467
    functionDepth: 7
    functionLinenumber: 2467
    functionLinenumberEnd: 2475
    functionName: mpd_compare_total_mag
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2484,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2485,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2478
    functionDepth: 2
    functionLinenumber: 2478
    functionLinenumberEnd: 2495
    functionName: _mpd_cmp_numequal
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_arith_sign
    - mpd_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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2512,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2512,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2513,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2515,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2516,1
    - Dst: mpd_digits_to_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2519,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2520,1
    - Dst: _mpd_baseshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2524,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2526,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: 2511
        line_start: 2511
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2512
        line_start: 2512
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2532
      start: 2507
    functionDepth: 6
    functionLinenumber: 2507
    functionLinenumberEnd: 2532
    functionName: mpd_qshiftl
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_digits_to_size
    - mpd_qresize
    - mpd_isspecial
    - mpd_iszerocoeff
    - mpd_copy_flags
    - mpd_qcopy
    - _mpd_baseshiftl
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2544,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2544,1
    - Dst: _mpd_isallzero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2546,1
    - Dst: _mpd_isallzero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2550,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: 2554
      start: 2536
    functionDepth: 2
    functionLinenumber: 2536
    functionLinenumberEnd: 2554
    functionName: _mpd_get_rnd
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    - _mpd_divmod_pow10
    - _mpd_isallzero
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2567,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2567,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2568,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2570,1
    - Dst: mpd_qcopy_static
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2571,1
    - Dst: _mpd_get_rnd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2576,1
    - Dst: mpd_zerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2577,1
    - Dst: mpd_digits_to_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2581,1
    - Dst: _mpd_baseshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2582,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2586,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: 2566
        line_start: 2566
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2567
        line_start: 2567
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2590
      start: 2561
    functionDepth: 5
    functionLinenumber: 2561
    functionLinenumberEnd: 2590
    functionName: mpd_qsshiftr
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_digits_to_size
    - mpd_zerocoeff
    - mpd_isspecial
    - mpd_iszerocoeff
    - mpd_qcopy_static
    - _mpd_get_rnd
    - mpd_copy_flags
    - _mpd_baseshiftr
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2604,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2604,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2605,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2607,1
    - Dst: _mpd_get_rnd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2612,1
    - Dst: mpd_zerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2613,1
    - Dst: _mpd_baseshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2616,1
    - Dst: mpd_digits_to_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2618,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2620,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: 2603
        line_start: 2603
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2604
        line_start: 2604
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2625
      start: 2597
    functionDepth: 5
    functionLinenumber: 2597
    functionLinenumberEnd: 2625
    functionName: mpd_qshiftr_inplace
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_digits_to_size
    - mpd_zerocoeff
    - mpd_isspecial
    - mpd_qresize
    - mpd_iszerocoeff
    - _mpd_get_rnd
    - _mpd_baseshiftr
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2640,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2640,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2641,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2643,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2644,1
    - Dst: _mpd_get_rnd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2651,1
    - Dst: mpd_zerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2652,1
    - Dst: mpd_digits_to_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2656,1
    - Dst: _mpd_baseshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2658,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2660,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2663,1
    - Dst: _mpd_baseshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2666,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2671,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: 2639
        line_start: 2639
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2640
        line_start: 2640
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2675
      start: 2634
    functionDepth: 6
    functionLinenumber: 2634
    functionLinenumberEnd: 2675
    functionName: mpd_qshiftr
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_digits_to_size
    - mpd_zerocoeff
    - mpd_isspecial
    - mpd_qresize
    - mpd_iszerocoeff
    - _mpd_get_rnd
    - mpd_copy_flags
    - mpd_qcopy
    - _mpd_baseshiftr
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2692,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2692,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2693,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2693,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2695,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2702,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2728,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2761,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2763,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2764,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2765,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2766,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2770,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: 2771
      start: 2683
    functionDepth: 6
    functionLinenumber: 2683
    functionLinenumberEnd: 2771
    functionName: mpd_qand
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - _mpd_cap
    - mpd_word_digits
    - _mpd_real_size
    - mpd_isnegative
    - mpd_setdigits
    - mpd_clear_flags
    - mpd_qresize
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2777,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2778,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2783,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2784,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2786,1
    - Dst: mpd_isnormal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2788,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2794,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2796,1
    - Dst: mpd_isnormal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2798,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2774
    functionDepth: 3
    functionLinenumber: 2774
    functionLinenumberEnd: 2803
    functionName: mpd_class
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_ispositive
    - mpd_isinfinite
    - mpd_isnan
    - mpd_isnormal
    - mpd_isqnan
    - mpd_iszero
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2815,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2815,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2816,1
    - Dst: _mpd_idiv_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2821,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2823,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2841,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2843,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2844,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2845,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2846,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2850,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: 2851
      start: 2806
    functionDepth: 6
    functionLinenumber: 2806
    functionLinenumberEnd: 2851
    functionName: mpd_qinvert
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - _mpd_cap
    - _mpd_idiv_word
    - _mpd_real_size
    - mpd_isnegative
    - mpd_setdigits
    - mpd_clear_flags
    - mpd_qresize
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2858,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2859,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2862,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2864,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2865,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2869,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2869,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: 2871
      start: 2854
    functionDepth: 7
    functionLinenumber: 2854
    functionLinenumberEnd: 2871
    functionName: mpd_qlogb
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_setspecial
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_qset_ssize
    - mpd_iszerocoeff
    - mpd_adjexp
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2883,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2883,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2884,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2884,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2886,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2893,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2919,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2954,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2956,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2957,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2958,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2959,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2963,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: 2964
      start: 2874
    functionDepth: 6
    functionLinenumber: 2874
    functionLinenumberEnd: 2964
    functionName: mpd_qor
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - _mpd_cap
    - mpd_word_digits
    - _mpd_real_size
    - mpd_isnegative
    - mpd_setdigits
    - mpd_clear_flags
    - mpd_qresize
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2975,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2976,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2977,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2980,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2980,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2981,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2985,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2986,1
    - Dst: mpd_qget_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2990,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2992,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2996,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:2999,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3000,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3014,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3015,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3018,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3022,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3023,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3026,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3028,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3029,1
    - Dst: _mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3032,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3036,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3037,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3038,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: 3039
      start: 2970
    functionDepth: 7
    functionLinenumber: 2970
    functionLinenumberEnd: 3039
    functionName: mpd_qrotate
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qget_ssize
    - mpd_isspecial
    - _mpd_cap
    - mpd_isinfinite
    - mpd_qshiftl
    - mpd_qshiftr
    - mpd_del
    - mpd_qcheck_nans
    - MPD_NEW_STATIC
    - mpd_qcopy
    - _mpd_qadd
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3060,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3060,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3061,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3065,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3066,1
    - Dst: mpd_qabs_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3070,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3075,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3078,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3079,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3084,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3090,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3105,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3108,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: 3109
      start: 3046
    functionDepth: 8
    functionLinenumber: 3046
    functionLinenumberEnd: 3109
    functionName: mpd_qscaleb
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_isinfinite
    - mpd_arith_sign
    - mpd_qabs_uint
    - mpd_qfinalize
    - mpd_qcheck_nans
    - mpd_qcopy
    - mpd_isnegative
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3120,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3121,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3124,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3129,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3130,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3133,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3136,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3137,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3140,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: 3142
      start: 3116
    functionDepth: 7
    functionLinenumber: 3116
    functionLinenumberEnd: 3142
    functionName: mpd_qshiftn
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_qshiftl
    - mpd_qshiftr_inplace
    - mpd_seterror
    - mpd_qcopy
    - _mpd_cap
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3155,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3155,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3156,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3160,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3161,1
    - Dst: mpd_qget_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3165,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3167,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3171,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3174,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3175,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3180,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3181,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3184,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3187,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3188,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: 3190
      start: 3148
    functionDepth: 7
    functionLinenumber: 3148
    functionLinenumberEnd: 3190
    functionName: mpd_qshift
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qget_ssize
    - mpd_isspecial
    - _mpd_cap
    - mpd_isinfinite
    - mpd_qshiftl
    - mpd_qshiftr_inplace
    - mpd_qcheck_nans
    - mpd_qcopy
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3202,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3202,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3203,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3203,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3205,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3212,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3238,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3273,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3275,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3276,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3277,1
    - Dst: _mpd_cap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3278,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3282,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: 3283
      start: 3193
    functionDepth: 6
    functionLinenumber: 3193
    functionLinenumberEnd: 3283
    functionName: mpd_qxor
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - _mpd_cap
    - mpd_word_digits
    - _mpd_real_size
    - mpd_isnegative
    - mpd_setdigits
    - mpd_clear_flags
    - mpd_qresize
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3299,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3300,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3305,1
    - Dst: mpd_qminus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3306,1
    - Dst: mpd_qplus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3309,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: 3311
      start: 3295
    functionDepth: 7
    functionLinenumber: 3295
    functionLinenumberEnd: 3311
    functionName: mpd_qabs
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_qminus
    - mpd_qplus
    - mpd_isnegative
    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: 3319
      start: 3313
    functionDepth: 0
    functionLinenumber: 3313
    functionLinenumberEnd: 3319
    functionName: _mpd_ptrswap
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3326,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3327,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3327,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3328,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3331,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3331,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3335,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3335,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3336,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: 3334
        line_start: 3334
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 3337
      start: 3322
    functionDepth: 5
    functionLinenumber: 3322
    functionLinenumberEnd: 3337
    functionName: _mpd_qaddsub_inf
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_setspecial
    - mpd_isinfinite
    - mpd_sign
    - assert
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3345,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3346,1
    - Dst: _mpd_ptrswap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3357,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3361,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3364,1
    - Dst: mpd_copy_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3397,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3401,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3406,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3407,1
    - Dst: _mpd_ptrswap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3418,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3423,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3427,1
    - Dst: _mpd_baseadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3429,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3434,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3441,1
    - Dst: _mpd_ptrswap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3448,1
    - Dst: _mpd_basesub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3456,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3458,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3460,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3463,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3464,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3466,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3467,1
    - Dst: mpd_set_negative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3469,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3474,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3477,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: 3478
      start: 3340
    functionDepth: 7
    functionLinenumber: 3340
    functionLinenumberEnd: 3478
    functionName: _mpd_qaddsub
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_sign
    - _mpd_baseadd
    - _mpd_basesub
    - MPD_NEW_CONST
    - mpd_set_negative
    - mpd_iszerocoeff
    - mpd_set_flags
    - _mpd_ptrswap
    - mpd_copy_flags
    - mpd_setdigits
    - mpd_set_positive
    - mpd_seterror
    - _mpd_real_size
    - mpd_adjexp
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qresize
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3485,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3485,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: 3486
      start: 3481
    functionDepth: 8
    functionLinenumber: 3481
    functionLinenumberEnd: 3486
    functionName: _mpd_qadd
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3493,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3493,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: 3494
      start: 3489
    functionDepth: 8
    functionLinenumber: 3489
    functionLinenumberEnd: 3494
    functionName: _mpd_qsub
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3501,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3501,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3502,1
    - Dst: _mpd_qaddsub_inf
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3505,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3505,1
    - Dst: _mpd_qaddsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3509,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3509,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3510,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: 3511
      start: 3497
    functionDepth: 8
    functionLinenumber: 3497
    functionLinenumberEnd: 3511
    functionName: mpd_qadd
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isspecial
    - _mpd_qaddsub_inf
    - mpd_qfinalize
    - mpd_qcheck_nans
    - mpd_sign
    - _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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3520,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3523,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: 3525
      start: 3514
    functionDepth: 9
    functionLinenumber: 3514
    functionLinenumberEnd: 3525
    functionName: _mpd_qadd_exact
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qadd
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3532,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3532,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3533,1
    - Dst: _mpd_qaddsub_inf
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3536,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3536,1
    - Dst: _mpd_qaddsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3540,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3540,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3541,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: 3542
      start: 3528
    functionDepth: 8
    functionLinenumber: 3528
    functionLinenumberEnd: 3542
    functionName: mpd_qsub
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - _mpd_qaddsub_inf
    - mpd_qfinalize
    - mpd_qcheck_nans
    - mpd_sign
    - _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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3551,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3554,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: 3556
      start: 3545
    functionDepth: 9
    functionLinenumber: 3545
    functionLinenumberEnd: 3556
    functionName: _mpd_qsub_exact
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsub
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3564,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3566,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3567,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3568,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3569,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: 3570
      start: 3559
    functionDepth: 9
    functionLinenumber: 3559
    functionLinenumberEnd: 3570
    functionName: mpd_qadd_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qadd
    - mpd_maxcontext
    - mpd_qsset_ssize
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3578,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3580,1
    - Dst: mpd_qsset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3581,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3582,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3583,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: 3584
      start: 3573
    functionDepth: 9
    functionLinenumber: 3573
    functionLinenumberEnd: 3584
    functionName: mpd_qadd_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qadd
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsset_uint
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3592,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3594,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3595,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3596,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3597,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: 3598
      start: 3587
    functionDepth: 9
    functionLinenumber: 3587
    functionLinenumberEnd: 3598
    functionName: mpd_qsub_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_maxcontext
    - mpd_qsset_ssize
    - mpd_del
    - mpd_qsub
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3606,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3608,1
    - Dst: mpd_qsset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3609,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3610,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3611,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: 3612
      start: 3601
    functionDepth: 9
    functionLinenumber: 3601
    functionLinenumberEnd: 3612
    functionName: mpd_qsub_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_maxcontext
    - mpd_del
    - mpd_qsub
    - MPD_NEW_STATIC
    - mpd_qsset_uint
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3619,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: 3620
      start: 3615
    functionDepth: 10
    functionLinenumber: 3615
    functionLinenumberEnd: 3620
    functionName: mpd_qadd_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3627,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: 3628
      start: 3623
    functionDepth: 10
    functionLinenumber: 3623
    functionLinenumberEnd: 3628
    functionName: mpd_qadd_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3636,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: 3637
      start: 3632
    functionDepth: 10
    functionLinenumber: 3632
    functionLinenumberEnd: 3637
    functionName: mpd_qadd_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3644,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: 3645
      start: 3640
    functionDepth: 10
    functionLinenumber: 3640
    functionLinenumberEnd: 3645
    functionName: mpd_qadd_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3653,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3655,1
    - Dst: mpd_qset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3656,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3657,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3658,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: 3659
      start: 3648
    functionDepth: 9
    functionLinenumber: 3648
    functionLinenumberEnd: 3659
    functionName: mpd_qadd_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_i64
    - mpd_qadd
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3667,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3669,1
    - Dst: mpd_qset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3670,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3671,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3672,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: 3673
      start: 3662
    functionDepth: 9
    functionLinenumber: 3662
    functionLinenumberEnd: 3673
    functionName: mpd_qadd_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_u64
    - mpd_qadd
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3681,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: 3682
      start: 3677
    functionDepth: 10
    functionLinenumber: 3677
    functionLinenumberEnd: 3682
    functionName: mpd_qsub_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3689,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: 3690
      start: 3685
    functionDepth: 10
    functionLinenumber: 3685
    functionLinenumberEnd: 3690
    functionName: mpd_qsub_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3698,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: 3699
      start: 3694
    functionDepth: 10
    functionLinenumber: 3694
    functionLinenumberEnd: 3699
    functionName: mpd_qsub_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3706,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: 3707
      start: 3702
    functionDepth: 10
    functionLinenumber: 3702
    functionLinenumberEnd: 3707
    functionName: mpd_qsub_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3715,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3717,1
    - Dst: mpd_qset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3718,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3719,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3720,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: 3721
      start: 3710
    functionDepth: 9
    functionLinenumber: 3710
    functionLinenumberEnd: 3721
    functionName: mpd_qsub_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_i64
    - mpd_maxcontext
    - mpd_del
    - mpd_qsub
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3729,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3731,1
    - Dst: mpd_qset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3732,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3733,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3734,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: 3735
      start: 3724
    functionDepth: 9
    functionLinenumber: 3724
    functionLinenumberEnd: 3735
    functionName: mpd_qsub_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_u64
    - mpd_maxcontext
    - mpd_del
    - mpd_qsub
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3744,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3745,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3746,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3749,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3749,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3749,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3752,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3752,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3753,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3753,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3753,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3753,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: 3751
        line_start: 3751
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 3755
      start: 3740
    functionDepth: 5
    functionLinenumber: 3740
    functionLinenumberEnd: 3755
    functionName: _mpd_qdiv_inf
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_setspecial
    - mpd_isinfinite
    - mpd_etiny
    - _settriple
    - mpd_sign
    - assert
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3763,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3769,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3770,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3773,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3773,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3774,1
    - Dst: _mpd_qdiv_inf
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3777,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3780,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3781,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3782,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3785,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3790,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3792,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3793,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3801,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3802,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3809,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3810,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3819,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3820,1
    - Dst: _mpd_shortdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3827,1
    - Dst: _mpd_basedivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3830,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3833,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3839,1
    - Dst: _mpd_base_ndivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3840,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3841,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3841,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3842,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3843,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3846,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3847,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3851,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3853,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3854,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3856,1
    - Dst: mpd_lsd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3860,1
    - Dst: mpd_trail_zeros
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3866,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3868,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3876,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3877,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: 3878
      start: 3759
    functionDepth: 8
    functionLinenumber: 3759
    functionLinenumberEnd: 3878
    functionName: _mpd_qdiv
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_set_flags
    - _mpd_basedivmod
    - mpd_qfinalize
    - mpd_seterror
    - mpd_qshiftr_inplace
    - _mpd_real_size
    - _settriple
    - mpd_qresize
    - mpd_setspecial
    - _mpd_shortdiv
    - mpd_del
    - mpd_qcheck_nans
    - mpd_sign
    - mpd_setdigits
    - _mpd_base_ndivmod
    - mpd_lsd
    - mpd_iszerocoeff
    - mpd_trail_zeros
    - _mpd_qdiv_inf
    - MPD_NEW_STATIC
    - mpd_qshiftl
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3885,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3886,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3890,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3891,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3898,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3899,1
    - Dst: _mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3905,1
    - Dst: _mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3937,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3940,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3949,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    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: 3951
      start: 3881
    functionDepth: 9
    functionLinenumber: 3881
    functionLinenumberEnd: 3951
    functionName: mpd_qdiv
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - _mpd_qdiv
    - mpd_del
    - mpd_qcopy
    - MPD_NEW_STATIC
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3958,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3961,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3962,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3962,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3966,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3967,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3971,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3975,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3975,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3980,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3986,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:3990,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4009,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4017,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4027,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4034,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4040,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4042,1
    - Dst: _mpd_shortdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4045,1
    - Dst: _mpd_basedivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4050,1
    - Dst: _mpd_base_ndivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4058,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4059,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4059,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4066,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4068,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4070,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4071,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4078,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4080,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4082,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4083,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4087,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4091,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4092,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 117
    argCount: 6
    argNames:
    - q
    - r
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (b->data[0] != 0)
      pos:
        line_end: 4039
        line_start: 4039
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4094
      start: 3954
    functionDepth: 7
    functionLinenumber: 3954
    functionLinenumberEnd: 4094
    functionName: _mpd_qdivmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_set_flags
    - _mpd_basedivmod
    - _mpd_real_size
    - mpd_qcopy
    - _settriple
    - mpd_qresize
    - mpd_setspecial
    - _mpd_shortdiv
    - mpd_del
    - mpd_adjexp
    - mpd_sign
    - mpd_setdigits
    - _mpd_base_ndivmod
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    - _mpd_div_word
    - assert
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4101,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4101,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4103,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4103,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4104,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4105,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4108,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4109,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4110,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4113,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4115,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4119,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4120,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4121,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4124,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4125,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4129,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4131,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4132,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4133,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4134,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4138,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4139,1
    - Dst: _mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4145,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4146,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4147,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: 4148
      start: 4097
    functionDepth: 8
    functionLinenumber: 4097
    functionLinenumberEnd: 4148
    functionName: mpd_qdivmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_setspecial
    - mpd_isspecial
    - mpd_sign
    - abort
    - mpd_isinfinite
    - _mpd_qdivmod
    - mpd_iszerocoeff
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_qcheck_nans
    - _settriple
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4154,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4155,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4155,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4157,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4157,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4158,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4161,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4161,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4162,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4165,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4166,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4169,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4170,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4174,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4176,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4177,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4178,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4181,1
    - Dst: _mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4188,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4189,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4190,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: 4191
      start: 4150
    functionDepth: 8
    functionLinenumber: 4150
    functionLinenumberEnd: 4191
    functionName: mpd_qdivint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_setspecial
    - mpd_isspecial
    - mpd_sign
    - abort
    - mpd_isinfinite
    - _mpd_qdivmod
    - mpd_iszerocoeff
    - mpd_del
    - mpd_qcheck_nans
    - MPD_NEW_STATIC
    - _settriple
    - mpd_qfinalize
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4199,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4201,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4202,1
    - Dst: mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4203,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4204,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: 4205
      start: 4194
    functionDepth: 10
    functionLinenumber: 4194
    functionLinenumberEnd: 4205
    functionName: mpd_qdiv_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qdiv
    - mpd_maxcontext
    - mpd_qsset_ssize
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4213,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4215,1
    - Dst: mpd_qsset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4216,1
    - Dst: mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4217,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4218,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: 4219
      start: 4208
    functionDepth: 10
    functionLinenumber: 4208
    functionLinenumberEnd: 4219
    functionName: mpd_qdiv_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qdiv
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsset_uint
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4226,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: 4227
      start: 4222
    functionDepth: 11
    functionLinenumber: 4222
    functionLinenumberEnd: 4227
    functionName: mpd_qdiv_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4234,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: 4235
      start: 4230
    functionDepth: 11
    functionLinenumber: 4230
    functionLinenumberEnd: 4235
    functionName: mpd_qdiv_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4243,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: 4244
      start: 4239
    functionDepth: 11
    functionLinenumber: 4239
    functionLinenumberEnd: 4244
    functionName: mpd_qdiv_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4251,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: 4252
      start: 4247
    functionDepth: 11
    functionLinenumber: 4247
    functionLinenumberEnd: 4252
    functionName: mpd_qdiv_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4260,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4262,1
    - Dst: mpd_qset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4263,1
    - Dst: mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4264,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4265,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: 4266
      start: 4255
    functionDepth: 10
    functionLinenumber: 4255
    functionLinenumberEnd: 4266
    functionName: mpd_qdiv_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_i64
    - mpd_qdiv
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4274,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4276,1
    - Dst: mpd_qset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4277,1
    - Dst: mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4278,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4279,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: 4280
      start: 4269
    functionDepth: 10
    functionLinenumber: 4269
    functionLinenumberEnd: 4280
    functionName: mpd_qdiv_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_u64
    - mpd_qdiv
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4287,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4287,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4290,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: 4293
      start: 4284
    functionDepth: 7
    functionLinenumber: 4284
    functionLinenumberEnd: 4293
    functionName: _mpd_zeropad
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_iszero
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4300,1
    - Dst: MPD_NEW_SHARED
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4301,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4303,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4306,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4307,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: 4313
      start: 4296
    functionDepth: 5
    functionLinenumber: 4296
    functionLinenumberEnd: 4313
    functionName: _mpd_qexp_check_one
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - MPD_NEW_CONST
    - MPD_NEW_SHARED
    - mpd_set_positive
    - _settriple
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4324,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4325,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4325,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4326,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4326,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4326,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4341,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4341,1
    - Dst: ceil
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4353,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: 4323
        line_start: 4323
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_iszero(r))
      pos:
        line_end: 4324
        line_start: 4324
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (-p < mpd_adjexp(r) && mpd_adjexp(r) <= -1)
      pos:
        line_end: 4325
        line_start: 4325
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4355
      start: 4318
    functionDepth: 2
    functionLinenumber: 4318
    functionLinenumberEnd: 4355
    functionName: _mpd_get_exp_iterations
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - ceil
    - mpd_word_digits
    - mpd_iszero
    - mpd_adjexp
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4392,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4393,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4394,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4397,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4397,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4399,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4400,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4425,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4426,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4430,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4430,1
    - Dst: _mpd_qexp_check_one
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4438,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4442,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4447,1
    - Dst: _mpd_get_exp_iterations
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4459,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4461,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4465,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4469,1
    - Dst: mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4470,1
    - Dst: mpd_qfma
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4471,1
    - Dst: _mpd_qpow_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4475,1
    - Dst: _mpd_qpow_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4478,1
    - Dst: _mpd_qpow_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4482,1
    - Dst: _mpd_qpow_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4484,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4488,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4489,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: 4396
        line_start: 4396
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4492
      start: 4387
    functionDepth: 10
    functionLinenumber: 4387
    functionLinenumberEnd: 4492
    functionName: _mpd_qexp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - MPD_NEW_CONST
    - mpd_qdiv
    - mpd_qfma
    - mpd_seterror
    - _mpd_get_exp_iterations
    - mpd_maxcontext
    - _settriple
    - mpd_qcopy
    - mpd_setspecial
    - _mpd_qpow_uint
    - _mpd_qexp_check_one
    - mpd_del
    - mpd_setdigits
    - mpd_ispositive
    - mpd_etiny
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4501,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4502,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4505,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4506,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4509,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4513,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4514,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4522,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4523,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4524,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4525,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4531,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4532,1
    - Dst: _mpd_qexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4544,1
    - Dst: _ssettriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4552,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4568,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4569,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4570,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4570,1
    - Dst: mpd_qcmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4571,1
    - Dst: _mpd_zeropad
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4573,1
    - Dst: mpd_check_underflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4574,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4575,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4580,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4581,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4582,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4583,1
    - Dst: _mpd_qexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4586,1
    - Dst: _mpd_zeropad
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4587,1
    - Dst: mpd_check_underflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4588,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4589,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: 4591
      start: 4495
    functionDepth: 11
    functionLinenumber: 4495
    functionLinenumberEnd: 4591
    functionName: mpd_qexp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_setspecial
    - mpd_qadd
    - mpd_qcmp
    - mpd_check_underflow
    - mpd_iszerocoeff
    - _ssettriple
    - _mpd_qexp
    - _mpd_zeropad
    - _settriple
    - mpd_isnegative
    - MPD_NEW_STATIC
    - mpd_qcopy
    - mpd_qsub
    - mpd_qfinalize
    - mpd_del
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4602,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4603,1
    - Dst: _mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4609,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4611,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4614,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: 4616
      start: 4594
    functionDepth: 9
    functionLinenumber: 4594
    functionLinenumberEnd: 4616
    functionName: mpd_qfma
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qadd
    - mpd_qncopy
    - mpd_del
    - _mpd_qmul
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4637,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: 4636
        line_start: 4636
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4647
      start: 4630
    functionDepth: 0
    functionLinenumber: 4630
    functionLinenumberEnd: 4647
    functionName: ln_schedule_prec
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4716,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4717,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4723,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4728,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4730,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4735,1
    - Dst: _mpd_apply_round_excess
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4738,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4743,1
    - Dst: ln_schedule_prec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4746,1
    - Dst: _mpd_qexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4750,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4752,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4753,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4754,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4755,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4760,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4762,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: 4722
        line_start: 4722
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4763
      start: 4712
    functionDepth: 11
    functionLinenumber: 4712
    functionLinenumberEnd: 4763
    functionName: mpd_qln10
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul
    - mpd_qadd
    - mpd_isspecial
    - mpd_qshiftr
    - MPD_NEW_CONST
    - _mpd_apply_round_excess
    - mpd_maxcontext
    - _mpd_qexp
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsub
    - mpd_qfinalize
    - ln_schedule_prec
    - assert
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4853,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4854,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4855,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4862,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4862,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4862,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4868,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4869,1
    - Dst: _mpd_get_msdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4874,1
    - Dst: mpd_minalloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4883,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4884,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4888,1
    - Dst: mpd_set_negative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4903,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4906,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4907,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4922,1
    - Dst: _mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4925,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4927,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4935,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4935,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4937,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4937,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4942,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4950,1
    - Dst: ln_schedule_prec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4954,1
    - Dst: _mpd_qexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4958,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4963,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4965,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4968,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4971,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4972,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:4973,1
    - Dst: mpd_qln10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5002,1
    - Dst: mpd_qmul_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5003,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5004,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5009,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5010,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5011,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: 4861
        line_start: 4861
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5012
      start: 4847
    functionDepth: 12
    functionLinenumber: 4847
    functionLinenumberEnd: 5012
    functionName: _mpd_qln
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - _mpd_cmp
    - mpd_qln10
    - mpd_clear_flags
    - mpd_qmul_ssize
    - mpd_seterror
    - mpd_qmul
    - mpd_qshiftr
    - mpd_set_negative
    - mpd_maxcontext
    - mpd_qcopy
    - _settriple
    - mpd_qsub
    - _mpd_get_msdigits
    - _mpd_qexp
    - mpd_del
    - mpd_adjexp
    - mpd_setdigits
    - _mpd_qsub
    - mpd_qadd
    - mpd_minalloc
    - mpd_etiny
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    - ln_schedule_prec
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5022,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5023,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5026,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5027,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5030,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5033,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5034,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5037,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5038,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5041,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5042,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5066,1
    - Dst: mpd_exp_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5069,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5071,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5079,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5080,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5081,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5082,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5086,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5087,1
    - Dst: _mpd_qln
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5097,1
    - Dst: _ssettriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5098,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5102,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5103,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5104,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5104,1
    - Dst: mpd_qcmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5105,1
    - Dst: mpd_check_underflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5107,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5108,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5113,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5114,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5115,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5116,1
    - Dst: _mpd_qln
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5119,1
    - Dst: mpd_check_underflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5120,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5121,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: 5123
      start: 5015
    functionDepth: 13
    functionLinenumber: 5015
    functionLinenumberEnd: 5123
    functionName: mpd_qln
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isspecial
    - _mpd_cmp
    - mpd_qfinalize
    - _ssettriple
    - mpd_seterror
    - mpd_isnegative
    - mpd_check_underflow
    - _settriple
    - mpd_qcopy
    - mpd_qsub
    - mpd_setspecial
    - mpd_qcheck_nan
    - mpd_qcmp
    - mpd_exp_digits
    - mpd_del
    - mpd_adjexp
    - mpd_qadd
    - _mpd_qln
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5138,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5140,1
    - Dst: _mpd_qln
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5144,1
    - Dst: mpd_qln10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5146,1
    - Dst: _mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5153,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5155,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: 5156
      start: 5133
    functionDepth: 13
    functionLinenumber: 5133
    functionLinenumberEnd: 5156
    functionName: _mpd_qlog10
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qln
    - _mpd_qdiv
    - mpd_qln10
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5169,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5170,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5173,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5174,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5177,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5180,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5181,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5184,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5185,1
    - Dst: mpd_coeff_ispow10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5188,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5190,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5195,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5196,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5219,1
    - Dst: mpd_exp_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5221,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5223,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5228,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5229,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5230,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5231,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5235,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5236,1
    - Dst: _mpd_qlog10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5246,1
    - Dst: _ssettriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5247,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5251,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5252,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5253,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5253,1
    - Dst: mpd_qcmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5254,1
    - Dst: mpd_check_underflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5256,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5257,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5262,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5263,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5264,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5265,1
    - Dst: _mpd_qlog10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5268,1
    - Dst: mpd_check_underflow
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5269,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: 5271
      start: 5159
    functionDepth: 14
    functionLinenumber: 5159
    functionLinenumberEnd: 5271
    functionName: mpd_qlog10
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isspecial
    - mpd_qfinalize
    - _ssettriple
    - mpd_coeff_ispow10
    - mpd_seterror
    - _mpd_qlog10
    - mpd_isnegative
    - mpd_check_underflow
    - _settriple
    - mpd_qcopy
    - mpd_qsub
    - mpd_setspecial
    - mpd_qcheck_nan
    - mpd_qcmp
    - mpd_exp_digits
    - mpd_del
    - mpd_adjexp
    - mpd_qadd
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5284,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5284,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5285,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5287,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5287,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5288,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5290,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5294,1
    - Dst: _mpd_cmp_numequal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5296,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5300,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5303,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5307,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: 5308
      start: 5278
    functionDepth: 8
    functionLinenumber: 5278
    functionLinenumberEnd: 5308
    functionName: mpd_qmax
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_cmp
    - mpd_isnan
    - _mpd_cmp_numequal
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_qcheck_nans
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5320,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5320,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5321,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5323,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5323,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5324,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5326,1
    - Dst: _mpd_cmp_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5330,1
    - Dst: _mpd_cmp_numequal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5332,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5336,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5339,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5343,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: 5344
      start: 5314
    functionDepth: 8
    functionLinenumber: 5314
    functionLinenumberEnd: 5344
    functionName: mpd_qmax_mag
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isnan
    - _mpd_cmp_abs
    - _mpd_cmp_numequal
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_qcheck_nans
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5357,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5357,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5358,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5360,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5360,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5361,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5363,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5367,1
    - Dst: _mpd_cmp_numequal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5369,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5373,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5376,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5380,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: 5381
      start: 5351
    functionDepth: 8
    functionLinenumber: 5351
    functionLinenumberEnd: 5381
    functionName: mpd_qmin
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_cmp
    - mpd_isnan
    - _mpd_cmp_numequal
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_qcheck_nans
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5393,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5393,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5394,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5396,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5396,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5397,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5399,1
    - Dst: _mpd_cmp_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5403,1
    - Dst: _mpd_cmp_numequal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5405,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5409,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5412,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5416,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: 5417
      start: 5387
    functionDepth: 8
    functionLinenumber: 5387
    functionLinenumberEnd: 5417
    functionName: mpd_qmin_mag
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isnan
    - _mpd_cmp_abs
    - _mpd_cmp_numequal
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_qcheck_nans
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5425,1
    - Dst: add_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5426,1
    - Dst: mul_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - la
    - lb
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5432
      start: 5420
    functionDepth: 2
    functionLinenumber: 5420
    functionLinenumberEnd: 5432
    functionName: _kmul_resultsize
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5446,1
    - Dst: mul_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5446,1
    - Dst: _kmul_worksize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - lim
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5447
      start: 5435
    functionDepth: 2
    functionLinenumber: 5435
    functionLinenumberEnd: 5447
    functionName: _kmul_worksize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _kmul_worksize
    - add_size_t
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5466,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5467,1
    - Dst: _mpd_basemul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5470,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5482,1
    - Dst: _karatsuba_rec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5483,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5487,1
    - Dst: _karatsuba_rec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5488,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5490,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5493,1
    - Dst: _karatsuba_rec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5494,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5495,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5501,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5503,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5505,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5507,1
    - Dst: _karatsuba_rec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5509,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5512,1
    - Dst: _karatsuba_rec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5514,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5516,1
    - Dst: _mpd_basesubfrom
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5517,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5520,1
    - Dst: _karatsuba_rec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5522,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5523,1
    - Dst: _mpd_basesubfrom
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5524,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: 5465
        line_start: 5465
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (la <= MPD_KARATSUBA_BASECASE || w != NULL)
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5527
      start: 5460
    functionDepth: 1
    functionLinenumber: 5460
    functionLinenumberEnd: 5527
    functionName: _karatsuba_rec
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _karatsuba_rec
    - _mpd_basesubfrom
    - _mpd_basemul
    - _mpd_baseaddto
    - memcpy
    - mpd_uint_zero
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5542,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5543,1
    - Dst: _kmul_resultsize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5545,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5546,1
    - Dst: _kmul_worksize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5550,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5551,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5552,1
    - Dst: _karatsuba_rec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5556,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5559,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: 5541
        line_start: 5541
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ulen >= vlen)
      pos:
        line_end: 5542
        line_start: 5542
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5561
      start: 5534
    functionDepth: 3
    functionLinenumber: 5534
    functionLinenumberEnd: 5561
    functionName: _mpd_kmul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _karatsuba_rec
    - _kmul_resultsize
    - mpd_calloc
    - mpd_free
    - _kmul_worksize
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5575,1
    - Dst: mpd_bsr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - rsize
    argTypes:
    - mpd_size_t
    assertStmts:
    - condition: (rsize >= 4)
      pos:
        line_end: 5574
        line_start: 5574
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5599
      start: 5569
    functionDepth: 1
    functionLinenumber: 5569
    functionLinenumberEnd: 5599
    functionName: _mpd_get_transform_len
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_bsr
    - assert
    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: 5610
      start: 5603
    functionDepth: 0
    functionLinenumber: 5603
    functionLinenumberEnd: 5610
    functionName: _mpd_get_control87
    functionSourceFile: /src/cpython/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: 5616
      start: 5612
    functionDepth: 0
    functionLinenumber: 5612
    functionLinenumberEnd: 5616
    functionName: _mpd_set_control87
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5630,1
    - Dst: __control87_2
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5631,1
    - Dst: _mpd_get_control87
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5633,1
    - Dst: _mpd_set_control87
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5637
      start: 5619
    functionDepth: 1
    functionLinenumber: 5619
    functionLinenumberEnd: 5637
    functionName: mpd_set_fenv
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - __control87_2
    - _mpd_get_control87
    - _mpd_set_control87
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mpd_set_fenv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __control87_2
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5646,1
    - Dst: _mpd_set_control87
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cw
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5639
    functionDepth: 1
    functionLinenumber: 5639
    functionLinenumberEnd: 5650
    functionName: mpd_restore_fenv
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5667,1
    - Dst: add_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5670,1
    - Dst: _mpd_get_transform_len
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5671,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5675,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5678,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5681,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5685,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5686,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5687,1
    - Dst: fnt_autoconvolute
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5690,1
    - Dst: fnt_autoconvolute
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5691,1
    - Dst: fnt_autoconvolute
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5692,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5697,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5701,1
    - Dst: fnt_convolute
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5702,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5703,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5707,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5708,1
    - Dst: fnt_convolute
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5709,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5710,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5714,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5715,1
    - Dst: fnt_convolute
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5716,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5717,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5721,1
    - Dst: crt3
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5724,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5730,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5731,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5735,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: 5738
      start: 5657
    functionDepth: 3
    functionLinenumber: 5657
    functionLinenumberEnd: 5738
    functionName: _mpd_fntmul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_set_fenv
    - mpd_calloc
    - mpd_free
    - add_size_t
    - _mpd_get_transform_len
    - crt3
    - memcpy
    - mpd_uint_zero
    - fnt_autoconvolute
    - fnt_convolute
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5750,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5751,1
    - Dst: _mpd_basemul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5756,1
    - Dst: _mpd_fntmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5762,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5765,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5766,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5779,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5780,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5786,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5787,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5791,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5794,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5795,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5798,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5804,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5806,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5808,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5810,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5812,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5817,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5819,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5823,1
    - Dst: _mpd_basesubfrom
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5824,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5827,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5829,1
    - Dst: _mpd_baseaddto
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5832,1
    - Dst: _mpd_basesubfrom
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5833,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 >= lb && lb > 0)
      pos:
        line_end: 5749
        line_start: 5749
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (la <= 3*(MPD_MAXTRANSFORM_2N/2) || w != NULL)
      pos:
        line_end: 5750
        line_start: 5750
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5836
      start: 5744
    functionDepth: 4
    functionLinenumber: 5744
    functionLinenumberEnd: 5836
    functionName: _karatsuba_rec_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_fntmul
    - _mpd_basesubfrom
    - _karatsuba_rec_fnt
    - mpd_free
    - _mpd_basemul
    - _mpd_baseaddto
    - memcpy
    - mpd_uint_zero
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5851,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5852,1
    - Dst: _kmul_resultsize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5854,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5855,1
    - Dst: _kmul_worksize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5859,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5860,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5861,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5865,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5866,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5871,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: 5850
        line_start: 5850
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ulen >= vlen)
      pos:
        line_end: 5851
        line_start: 5851
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5873
      start: 5843
    functionDepth: 5
    functionLinenumber: 5843
    functionLinenumberEnd: 5873
    functionName: _mpd_kmul_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _kmul_resultsize
    - _karatsuba_rec_fnt
    - mpd_calloc
    - mpd_free
    - _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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5880,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5881,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5882,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5885,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5885,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5885,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5889,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5889,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5890,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5891,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5894,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5894,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5894,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: 5888
        line_start: 5888
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5896
      start: 5877
    functionDepth: 5
    functionLinenumber: 5877
    functionLinenumberEnd: 5896
    functionName: _mpd_qmul_inf
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_setspecial
    - mpd_isinfinite
    - mpd_iszero
    - mpd_sign
    - assert
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5912,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5912,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5913,1
    - Dst: _mpd_qmul_inf
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5916,1
    - Dst: _mpd_ptrswap
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5921,1
    - Dst: _mpd_singlemul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5927,1
    - Dst: _mpd_mul_2_le2
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5932,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5935,1
    - Dst: _mpd_shortmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5937,1
    - Dst: _mpd_basemul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5940,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5943,1
    - Dst: mpd_calloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5954,1
    - Dst: _mpd_shortmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5957,1
    - Dst: _mpd_basemul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5960,1
    - Dst: _mpd_kmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5965,1
    - Dst: _mpd_fntmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5968,1
    - Dst: _mpd_kmul_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5971,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5975,1
    - Dst: mpd_isdynamic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5979,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5980,1
    - Dst: mpd_set_dynamic_data
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5984,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5988,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5988,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5988,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5990,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5992,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:5993,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: 5994
      start: 5902
    functionDepth: 7
    functionLinenumber: 5902
    functionLinenumberEnd: 5994
    functionName: _mpd_qmul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_calloc
    - _mpd_kmul
    - mpd_set_flags
    - mpd_seterror
    - _mpd_basemul
    - _mpd_singlemul
    - _mpd_real_size
    - _mpd_mul_2_le2
    - mpd_qresize
    - mpd_free
    - mpd_qcheck_nans
    - mpd_sign
    - mpd_setdigits
    - mpd_isdynamic_data
    - mpd_uint_zero
    - _mpd_fntmul
    - _mpd_kmul_fnt
    - _mpd_qmul_inf
    - _mpd_ptrswap
    - mpd_set_dynamic_data
    - _mpd_shortmul
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6001,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6002,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: 6003
      start: 5997
    functionDepth: 8
    functionLinenumber: 5997
    functionLinenumberEnd: 6003
    functionName: mpd_qmul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 8
    functionsReached:
    - mpd_qfinalize
    - _mpd_qmul
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6012,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6015,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: 6017
      start: 6006
    functionDepth: 9
    functionLinenumber: 6006
    functionLinenumberEnd: 6017
    functionName: _mpd_qmul_exact
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6025,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6027,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6028,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6029,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6030,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: 6031
      start: 6020
    functionDepth: 9
    functionLinenumber: 6020
    functionLinenumberEnd: 6031
    functionName: mpd_qmul_ssize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qmul
    - mpd_maxcontext
    - mpd_qsset_ssize
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6039,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6041,1
    - Dst: mpd_qsset_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6042,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6043,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6044,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: 6045
      start: 6034
    functionDepth: 9
    functionLinenumber: 6034
    functionLinenumberEnd: 6045
    functionName: mpd_qmul_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qmul
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsset_uint
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6051,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: 6052
      start: 6047
    functionDepth: 10
    functionLinenumber: 6047
    functionLinenumberEnd: 6052
    functionName: mpd_qmul_i32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6058,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: 6059
      start: 6054
    functionDepth: 10
    functionLinenumber: 6054
    functionLinenumberEnd: 6059
    functionName: mpd_qmul_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6066,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: 6067
      start: 6062
    functionDepth: 10
    functionLinenumber: 6062
    functionLinenumberEnd: 6067
    functionName: mpd_qmul_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6073,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: 6074
      start: 6069
    functionDepth: 10
    functionLinenumber: 6069
    functionLinenumberEnd: 6074
    functionName: mpd_qmul_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6082,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6084,1
    - Dst: mpd_qset_i64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6085,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6086,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6087,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: 6088
      start: 6077
    functionDepth: 9
    functionLinenumber: 6077
    functionLinenumberEnd: 6088
    functionName: mpd_qmul_i64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qset_i64
    - mpd_qmul
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6096,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6098,1
    - Dst: mpd_qset_u64
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6099,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6100,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6101,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: 6102
      start: 6091
    functionDepth: 9
    functionLinenumber: 6091
    functionLinenumberEnd: 6102
    functionName: mpd_qmul_u64
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qmul
    - mpd_qset_u64
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6110,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6111,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6116,1
    - Dst: mpd_qcopy_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6117,1
    - Dst: mpd_qcopy_negate
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6120,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6123,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: 6124
      start: 6106
    functionDepth: 8
    functionLinenumber: 6106
    functionLinenumberEnd: 6124
    functionName: mpd_qminus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qcopy_abs
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_qcopy_negate
    - mpd_iszero
    - mpd_qfinalize
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6131,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6132,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6137,1
    - Dst: mpd_qcopy_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6138,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6141,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6144,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: 6145
      start: 6127
    functionDepth: 8
    functionLinenumber: 6127
    functionLinenumberEnd: 6145
    functionName: mpd_qplus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qcopy_abs
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_iszero
    - mpd_qfinalize
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6153,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6153,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6155,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6156,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6160,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6160,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6161,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6162,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6166,1
    - Dst: mpd_qmaxcoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6167,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6168,1
    - Dst: mpd_etop
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6171,1
    - Dst: mpd_workcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6176,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6179,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6183,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6190,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: 6159
        line_start: 6159
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 6192
      start: 6148
    functionDepth: 9
    functionLinenumber: 6148
    functionLinenumberEnd: 6192
    functionName: mpd_qnext_minus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_qmaxcoeff
    - mpd_isinfinite
    - mpd_isnan
    - MPD_NEW_CONST
    - mpd_etiny
    - mpd_workcontext
    - mpd_etop
    - mpd_qfinalize
    - mpd_isnegative
    - mpd_qcopy
    - mpd_qsub
    - mpd_clear_flags
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6200,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6200,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6202,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6203,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6207,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6207,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6208,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6209,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6212,1
    - Dst: mpd_qmaxcoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6213,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6214,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6217,1
    - Dst: mpd_etop
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6218,1
    - Dst: mpd_workcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6223,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6226,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6230,1
    - Dst: mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6237,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: 6206
        line_start: 6206
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 6239
      start: 6195
    functionDepth: 9
    functionLinenumber: 6195
    functionLinenumberEnd: 6239
    functionName: mpd_qnext_plus
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_ispositive
    - mpd_qmaxcoeff
    - mpd_qadd
    - mpd_isinfinite
    - mpd_isnan
    - MPD_NEW_CONST
    - mpd_etiny
    - mpd_set_flags
    - mpd_workcontext
    - mpd_etop
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_clear_flags
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6251,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6255,1
    - Dst: mpd_qcopy_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6257,1
    - Dst: mpd_qnext_plus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6262,1
    - Dst: mpd_qnext_minus
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6265,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6268,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6271,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6273,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: 6277
      start: 6245
    functionDepth: 10
    functionLinenumber: 6245
    functionLinenumberEnd: 6277
    functionName: mpd_qnext_toward
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_cmp
    - mpd_qnext_minus
    - mpd_isinfinite
    - mpd_qcopy_sign
    - mpd_qnext_plus
    - mpd_iszero
    - mpd_qcheck_nans
    - mpd_adjexp
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6297,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6301,1
    - Dst: mpd_bsr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6305,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6307,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6309,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6311,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6312,1
    - Dst: mpd_set_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6318,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: 6319
      start: 6289
    functionDepth: 9
    functionLinenumber: 6289
    functionLinenumberEnd: 6319
    functionName: _mpd_qpow_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_bsr
    - mpd_isspecial
    - mpd_qmul
    - mpd_iszerocoeff
    - mpd_qcopy
    - _settriple
    - mpd_set_sign
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6337,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6340,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6343,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6345,1
    - Dst: mpd_isodd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6346,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6347,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6349,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6350,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6354,1
    - Dst: mpd_qdivint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6355,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6356,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6356,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6357,1
    - Dst: mpd_set_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6361,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: 6362
      start: 6331
    functionDepth: 9
    functionLinenumber: 6331
    functionLinenumberEnd: 6362
    functionName: _mpd_qpow_mpd
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul
    - mpd_isodd
    - mpd_isspecial
    - mpd_qdivint
    - mpd_isnan
    - MPD_NEW_CONST
    - mpd_iszerocoeff
    - mpd_maxcontext
    - mpd_iszero
    - mpd_qcopy
    - mpd_set_sign
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6375,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6376,1
    - Dst: mpd_workcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6380,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6384,1
    - Dst: mpd_qdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6387,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6390,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6395,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6396,1
    - Dst: mpd_qabs_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6401,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6403,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6404,1
    - Dst: _mpd_qpow_mpd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6407,1
    - Dst: _mpd_qpow_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6410,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6413,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6415,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6419,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6420,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6421,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    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: 6422
      start: 6369
    functionDepth: 10
    functionLinenumber: 6369
    functionLinenumberEnd: 6422
    functionName: _mpd_qpow_int
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_setspecial
    - _mpd_qpow_uint
    - mpd_isinfinite
    - mpd_workcontext
    - mpd_qdiv
    - mpd_qabs_uint
    - mpd_del
    - mpd_isnegative
    - MPD_NEW_STATIC
    - mpd_qcopy
    - _mpd_qpow_mpd
    - _settriple
    - mpd_qfinalize
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6436,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6438,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6440,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: 6445
      start: 6429
    functionDepth: 7
    functionLinenumber: 6429
    functionLinenumberEnd: 6445
    functionName: _qcheck_pow_one_inf
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6463,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6464,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6465,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6466,1
    - Dst: mpd_qmul_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6470,1
    - Dst: mpd_qget_ssize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6476,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6483,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6490,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6494,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: 6498
      start: 6454
    functionDepth: 10
    functionLinenumber: 6454
    functionLinenumberEnd: 6498
    functionName: _qcheck_pow_one
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_ssize
    - mpd_ispositive
    - _mpd_cmp_abs
    - mpd_set_flags
    - _mpd_isint
    - _settriple
    - mpd_isnegative
    - mpd_qmul_ssize
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6568,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6571,1
    - Dst: mpd_exp_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6574,1
    - Dst: mpd_exp_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6578,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6581,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6582,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6583,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6584,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6587,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - x
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6594
      start: 6564
    functionDepth: 9
    functionLinenumber: 6564
    functionLinenumberEnd: 6594
    functionName: _lower_bound_zeta
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_exp_digits
    - mpd_maxcontext
    - mpd_del
    - mpd_qsub
    - mpd_adjexp
    - MPD_NEW_STATIC
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6607,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6611,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6613,1
    - Dst: _lower_bound_zeta
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6614,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6616,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6620,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6620,1
    - Dst: mpd_exp_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6623,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6625,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6626,1
    - Dst: mpd_exp_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6632,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6632,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6634,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6634,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6635,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: 6641
      start: 6602
    functionDepth: 10
    functionLinenumber: 6602
    functionLinenumberEnd: 6641
    functionName: _qcheck_pow_bounds
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _lower_bound_zeta
    - MPD_NEW_SHARED
    - mpd_etiny
    - mpd_exp_digits
    - mpd_set_positive
    - mpd_qfinalize
    - mpd_adjexp
    - mpd_sign
    - _settriple
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6666,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6668,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6669,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6673,1
    - Dst: mpd_qln
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6703,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6704,1
    - Dst: mpd_qexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6705,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6707,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: 6710
      start: 6661
    functionDepth: 14
    functionLinenumber: 6661
    functionLinenumberEnd: 6710
    functionName: _mpd_qpow_real
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul
    - mpd_maxcontext
    - mpd_del
    - mpd_qcopy
    - mpd_qln
    - MPD_NEW_STATIC
    - mpd_qexp
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6721,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6721,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6722,1
    - Dst: mpd_isinteger
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6726,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6728,1
    - Dst: mpd_isodd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6728,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6731,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6732,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6733,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6735,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6736,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6739,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6743,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6744,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6745,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6749,1
    - Dst: _qcheck_pow_one_inf
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6751,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6756,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6758,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6761,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6766,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6767,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6768,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6770,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6771,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6774,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6778,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6779,1
    - Dst: _qcheck_pow_one
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6782,1
    - Dst: _qcheck_pow_bounds
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6785,1
    - Dst: _mpd_qpow_int
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6790,1
    - Dst: _mpd_qpow_real
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6793,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6794,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6794,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6796,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6799,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6801,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6803,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: 6805
      start: 6713
    functionDepth: 15
    functionLinenumber: 6713
    functionLinenumberEnd: 6805
    functionName: mpd_qpow
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_isspecial
    - mpd_isodd
    - _mpd_cmp
    - mpd_qfinalize
    - _qcheck_pow_one
    - mpd_seterror
    - _qcheck_pow_bounds
    - _qcheck_pow_one_inf
    - mpd_isnegative
    - _settriple
    - mpd_isinteger
    - _mpd_qpow_int
    - mpd_setspecial
    - mpd_isinfinite
    - mpd_qcheck_nans
    - _mpd_qpow_real
    - mpd_arith_sign
    - mpd_iszero
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6817,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6820,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6824,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6825,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6827,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6828,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: 6831
      start: 6811
    functionDepth: 10
    functionLinenumber: 6811
    functionLinenumberEnd: 6831
    functionName: _mpd_qpowmod_uint
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qmul_exact
    - mpd_maxcontext
    - mpd_qcopy
    - mpd_qrem
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6840,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6841,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6842,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6843,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6844,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6852,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6852,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6852,1
    - Dst: mpd_qcheck_3nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6853,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6856,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6861,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6861,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6861,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6862,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6865,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6866,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6870,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6874,1
    - Dst: mpd_isodd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6874,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6875,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6876,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6877,1
    - Dst: _mpd_cmp_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6880,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6881,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6884,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6885,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6888,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6889,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6893,1
    - Dst: mpd_qrescale
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6895,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6897,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6901,1
    - Dst: mpd_qround_to_int
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6903,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6904,1
    - Dst: mpd_qround_to_int
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6908,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6913,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6914,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6915,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6916,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6917,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6918,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6919,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6920,1
    - Dst: _mpd_qpowmod_uint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6925,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6930,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6935,1
    - Dst: mpd_isfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6936,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6936,1
    - Dst: mpd_isodd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6937,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6938,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6939,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6941,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6942,1
    - Dst: mpd_qdivint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6943,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6945,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6945,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6946,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6946,1
    - Dst: mpd_set_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6951,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6955,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6956,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6957,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6958,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6962,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: 6964
      start: 6834
    functionDepth: 11
    functionLinenumber: 6834
    functionLinenumberEnd: 6964
    functionName: mpd_qpowmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_isspecial
    - mpd_isodd
    - _mpd_cmp_abs
    - MPD_NEW_CONST
    - mpd_qround_to_int
    - _mpd_isint
    - mpd_seterror
    - mpd_qdivint
    - mpd_maxcontext
    - mpd_isnegative
    - _settriple
    - mpd_qcopy
    - mpd_setspecial
    - mpd_qrescale
    - mpd_del
    - mpd_qrem
    - _mpd_qmul_exact
    - mpd_qcheck_3nans
    - mpd_iszerocoeff
    - _mpd_qpowmod_uint
    - mpd_set_positive
    - mpd_iszero
    - MPD_NEW_STATIC
    - mpd_set_sign
    - mpd_isfinite
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6975,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6975,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6976,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6979,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6979,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6980,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6983,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6987,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6988,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6992,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6993,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6993,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:6994,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7001,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7007,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7016,1
    - Dst: _mpd_apply_round_fit
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7021,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7030,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7031,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7031,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7032,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7037,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: 7038
      start: 6966
    functionDepth: 8
    functionLinenumber: 6966
    functionLinenumberEnd: 7038
    functionName: mpd_qquantize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_isspecial
    - mpd_sign
    - _mpd_apply_round_fit
    - mpd_isinfinite
    - mpd_qshiftl
    - mpd_qshiftr
    - mpd_etiny
    - mpd_iszero
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_qcheck_nans
    - _settriple
    - mpd_adjexp
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7045,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7047,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7048,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7051,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7055,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7058,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7059,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7062,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7063,1
    - Dst: mpd_trail_zeros
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7067,1
    - Dst: mpd_etop
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7068,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7073,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: 7075
      start: 7040
    functionDepth: 8
    functionLinenumber: 7040
    functionLinenumberEnd: 7075
    functionName: mpd_qreduce
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_qshiftr_inplace
    - mpd_trail_zeros
    - mpd_etop
    - mpd_iszero
    - mpd_qfinalize
    - mpd_qcopy
    - mpd_sign
    - _settriple
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7081,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7083,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7083,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7084,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7087,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7088,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7091,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7092,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7093,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7097,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7099,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7100,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7101,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7104,1
    - Dst: _mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7109,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7110,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7111,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: 7112
      start: 7077
    functionDepth: 8
    functionLinenumber: 7077
    functionLinenumberEnd: 7112
    functionName: mpd_qrem
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_isspecial
    - abort
    - mpd_isinfinite
    - _mpd_qdivmod
    - mpd_iszerocoeff
    - mpd_qfinalize
    - mpd_qcheck_nans
    - MPD_NEW_STATIC
    - mpd_qcopy
    - mpd_del
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7119,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7120,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7124,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7126,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7126,1
    - Dst: mpd_qcheck_nans
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7127,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7130,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7131,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7134,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7135,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7136,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7140,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7142,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7143,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7144,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7147,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7153,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7154,1
    - Dst: _mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7160,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7161,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7161,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7164,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7168,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7168,1
    - Dst: mpd_coeff_isallnine
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7171,1
    - Dst: mpd_isodd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7173,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7175,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7176,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7176,1
    - Dst: _mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7178,1
    - Dst: _mpd_qadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7182,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7186,1
    - Dst: _mpd_cmp_abs
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7190,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7195,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7198,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7204,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7205,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7206,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 5
    argNames:
    - r
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (r != NULL)
      pos:
        line_end: 7123
        line_start: 7123
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7207
      start: 7114
    functionDepth: 9
    functionLinenumber: 7114
    functionLinenumberEnd: 7207
    functionName: mpd_qrem_near
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_isodd
    - _mpd_cmp_abs
    - mpd_qfinalize
    - _mpd_qadd
    - mpd_seterror
    - mpd_maxcontext
    - mpd_qcopy
    - abort
    - mpd_isinfinite
    - _mpd_qdivmod
    - mpd_isnan
    - mpd_coeff_isallnine
    - mpd_del
    - mpd_qcheck_nans
    - mpd_sign
    - _mpd_qsub
    - mpd_adjexp
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7216,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7217,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7221,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7222,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7222,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7230,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7233,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7240,1
    - Dst: _mpd_apply_round_excess
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7245,1
    - Dst: mpd_issubnormal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7252,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: 7255
      start: 7209
    functionDepth: 7
    functionLinenumber: 7209
    functionLinenumberEnd: 7255
    functionName: _mpd_qrescale
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_sign
    - mpd_qshiftl
    - mpd_qshiftr
    - _mpd_apply_round_excess
    - mpd_issubnormal
    - mpd_iszero
    - _settriple
    - mpd_qcopy
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7270,1
    - Dst: _mpd_qrescale
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7274,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: 7275
      start: 7265
    functionDepth: 8
    functionLinenumber: 7265
    functionLinenumberEnd: 7275
    functionName: mpd_qrescale
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 5
    functionsReached:
    - _mpd_qrescale
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7290,1
    - Dst: _mpd_qrescale
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7294,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: 7295
      start: 7285
    functionDepth: 8
    functionLinenumber: 7285
    functionLinenumberEnd: 7295
    functionName: mpd_qrescale_fmt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_qrescale
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7305,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7306,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7309,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7313,1
    - Dst: mpd_iszerocoeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7316,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7317,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7317,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7321,1
    - Dst: _mpd_apply_round_excess
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7328,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: 7336
      start: 7299
    functionDepth: 7
    functionLinenumber: 7299
    functionLinenumberEnd: 7336
    functionName: _mpd_qround_to_integral
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_sign
    - mpd_qshiftr
    - _mpd_apply_round_excess
    - mpd_iszerocoeff
    - _settriple
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7342,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: 7343
      start: 7338
    functionDepth: 8
    functionLinenumber: 7338
    functionLinenumberEnd: 7343
    functionName: mpd_qround_to_intx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7349,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: 7350
      start: 7345
    functionDepth: 8
    functionLinenumber: 7345
    functionLinenumberEnd: 7350
    functionName: mpd_qround_to_int
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7356,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7357,1
    - Dst: _mpd_qround_to_integral
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7362
      start: 7352
    functionDepth: 8
    functionLinenumber: 7352
    functionLinenumberEnd: 7362
    functionName: mpd_qtrunc
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_qround_to_integral
    - mpd_isspecial
    - mpd_seterror
    linkageType: ''
    returnType: void
    signature: "void mpd_qtrunc(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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7370,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7371,1
    - Dst: _mpd_qround_to_integral
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7364
    functionDepth: 8
    functionLinenumber: 7364
    functionLinenumberEnd: 7378
    functionName: mpd_qfloor
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_qround_to_integral
    - mpd_isspecial
    - mpd_seterror
    linkageType: ''
    returnType: void
    signature: "void mpd_qfloor(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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7386,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7387,1
    - Dst: _mpd_qround_to_integral
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7394
      start: 7380
    functionDepth: 8
    functionLinenumber: 7380
    functionLinenumberEnd: 7394
    functionName: mpd_qceil
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_qround_to_integral
    - mpd_isspecial
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7399,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7399,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7400,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7400,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7401,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7405
      start: 7396
    functionDepth: 1
    functionLinenumber: 7396
    functionLinenumberEnd: 7405
    functionName: mpd_same_quantum
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7415,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: 7414
        line_start: 7414
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7425
      start: 7408
    functionDepth: 0
    functionLinenumber: 7408
    functionLinenumberEnd: 7425
    functionName: recpr_schedule_prec
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7442,1
    - Dst: _mpd_get_msdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7444,1
    - Dst: mpd_word_digits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7445,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7448,1
    - Dst: _mpd_shortdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7449,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7451,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7454,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: 7441
        line_start: 7441
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7455
      start: 7435
    functionDepth: 5
    functionLinenumber: 7435
    functionLinenumberEnd: 7455
    functionName: _mpd_qreciprocal_approx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - _mpd_shortdiv
    - _mpd_get_msdigits
    - mpd_word_digits
    - mpd_setdigits
    - mpd_clear_flags
    - mpd_qresize
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7470,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7471,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7472,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7473,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7476,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7479,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7482,1
    - Dst: _mpd_qreciprocal_approx
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7487,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7489,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7490,1
    - Dst: recpr_schedule_prec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7500,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7504,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7508,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7511,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7515,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7518,1
    - Dst: _mpd_qsub_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7522,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7525,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7527,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7530,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7531,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7532,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: 7478
        line_start: 7478
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7533
      start: 7463
    functionDepth: 10
    functionLinenumber: 7463
    functionLinenumberEnd: 7533
    functionName: _mpd_qreciprocal
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qmul_exact
    - mpd_qmul
    - mpd_isspecial
    - mpd_qshiftr
    - MPD_NEW_CONST
    - MPD_NEW_SHARED
    - mpd_set_flags
    - _mpd_qreciprocal_approx
    - mpd_maxcontext
    - recpr_schedule_prec
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_sign
    - mpd_qfinalize
    - _mpd_qsub_exact
    - mpd_clear_flags
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7559,1
    - Dst: _mpd_copy_shared
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7560,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7562,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7563,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7568,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7574,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7580,1
    - Dst: _mpd_qreciprocal
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7594,1
    - Dst: _mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7600,1
    - Dst: mpd_qtrunc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7604,1
    - Dst: _mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7612,1
    - Dst: _mpd_qsub_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7614,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7619,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7619,1
    - Dst: mpd_err_warn
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7624,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7630,1
    - Dst: _mpd_qadd_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7631,1
    - Dst: _mpd_qadd_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7632,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7635,1
    - Dst: _mpd_qsub_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7640,1
    - Dst: _mpd_qadd_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7641,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7646,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7649,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7652,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7655,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7663,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7664,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7665,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7666,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: 7667
      start: 7550
    functionDepth: 11
    functionLinenumber: 7550
    functionLinenumberEnd: 7667
    functionName: _mpd_base_ndivmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_setspecial
    - mpd_isspecial
    - _mpd_cmp
    - _mpd_qreciprocal
    - mpd_err_warn
    - mpd_qtrunc
    - mpd_maxcontext
    - mpd_qnew
    - mpd_set_positive
    - mpd_del
    - _mpd_copy_shared
    - mpd_qcopy
    - _mpd_qadd_exact
    - _mpd_qsub_exact
    - _mpd_qmul
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7689,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: 7688
        line_start: 7688
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7699
      start: 7682
    functionDepth: 0
    functionLinenumber: 7682
    functionLinenumberEnd: 7699
    functionName: invroot_schedule_prec
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7716,1
    - Dst: mpd_minalloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7745,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7746,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7750,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: 7715
        line_start: 7715
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7751
      start: 7709
    functionDepth: 4
    functionLinenumber: 7709
    functionLinenumberEnd: 7751
    functionName: _invroot_init_approx
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_clear_flags
    - mpd_minalloc
    - assert
    - mpd_setdigits
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7765,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7766,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7767,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7768,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7769,1
    - Dst: mpd_qncopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7782,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7783,1
    - Dst: _mpd_get_msdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7794,1
    - Dst: _mpd_get_msdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7804,1
    - Dst: _invroot_init_approx
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7812,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7814,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7815,1
    - Dst: invroot_schedule_prec
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7820,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7823,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7826,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7828,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7831,1
    - Dst: mpd_qsub
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7833,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7834,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7835,1
    - Dst: mpd_trail_zeros
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7840,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7844,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7849,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7850,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7851,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: 7854
      start: 7757
    functionDepth: 9
    functionLinenumber: 7757
    functionLinenumberEnd: 7854
    functionName: _mpd_qinvroot
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul
    - mpd_qncopy
    - mpd_qshiftr
    - MPD_NEW_CONST
    - MPD_NEW_SHARED
    - mpd_qshiftr_inplace
    - _mpd_get_msdigits
    - mpd_trail_zeros
    - _invroot_init_approx
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    - invroot_schedule_prec
    - mpd_qsub
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7862,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7863,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7866,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7867,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7871,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7871,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7875,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7876,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7876,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7880,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7881,1
    - Dst: _mpd_qinvroot
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7888,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7889,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: 7890
      start: 7856
    functionDepth: 10
    functionLinenumber: 7856
    functionLinenumberEnd: 7890
    functionName: mpd_qinvroot
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qcheck_nan
    - mpd_isspecial
    - mpd_setspecial
    - mpd_sign
    - mpd_etiny
    - _mpd_qinvroot
    - mpd_iszero
    - mpd_qfinalize
    - _settriple
    - mpd_isnegative
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7899,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7900,1
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7901,1
    - Dst: MPD_NEW_CONST
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7902,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7910,1
    - Dst: mpd_qcheck_nan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7911,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7914,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7915,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7918,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7921,1
    - Dst: _settriple
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7922,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7922,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7923,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7926,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7927,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7931,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7934,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7940,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7951,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7957,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7963,1
    - Dst: _mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7968,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7969,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7969,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7970,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7973,1
    - Dst: _mpd_qadd_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7976,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7977,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7978,1
    - Dst: _mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7981,1
    - Dst: _mpd_qmul_exact
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7985,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7986,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7987,1
    - Dst: _mpd_cmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7990,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7995,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:7998,1
    - Dst: mpd_lsd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8005,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8015,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8016,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8017,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8020,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8024,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: 8026
      start: 7894
    functionDepth: 10
    functionLinenumber: 7894
    functionLinenumberEnd: 8026
    functionName: _mpd_qsqrt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - _mpd_cmp
    - MPD_NEW_CONST
    - mpd_qfinalize
    - mpd_seterror
    - mpd_qshiftr_inplace
    - mpd_maxcontext
    - mpd_isnegative
    - _settriple
    - mpd_qcopy
    - mpd_qcheck_nan
    - mpd_setspecial
    - _mpd_qdivmod
    - mpd_del
    - mpd_sign
    - _mpd_qadd_exact
    - _mpd_qmul_exact
    - mpd_lsd
    - mpd_iszero
    - MPD_NEW_STATIC
    - mpd_qshiftl
    linkageType: ''
    returnType: void
    signature: "void _mpd_qsqrt(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n           uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8032,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8036,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8037,1
    - Dst: _mpd_qsqrt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8043,1
    - Dst: _mpd_qsqrt
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8064,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8067,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8076
      start: 8028
    functionDepth: 11
    functionLinenumber: 8028
    functionLinenumberEnd: 8076
    functionName: mpd_qsqrt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - _mpd_qsqrt
    - mpd_del
    - mpd_qcopy
    - MPD_NEW_STATIC
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8091,1
    - Dst: mpd_isinteger
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8091,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8092,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8094,1
    - Dst: log10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - a
    - base
    argTypes:
    - mpd_t*
    - uint32_t
    assertStmts:
    - condition: (mpd_isinteger(a))
      pos:
        line_end: 8090
        line_start: 8090
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (base >= 2)
      pos:
        line_end: 8091
        line_start: 8091
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8113
      start: 8084
    functionDepth: 4
    functionLinenumber: 8084
    functionLinenumberEnd: 8113
    functionName: mpd_sizeinbase
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isinteger
    - mpd_iszero
    - assert
    - 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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8122,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8123,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8130,1
    - Dst: log10
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - srclen
    - base
    argTypes:
    - size_t
    - uint32_t
    assertStmts:
    - condition: (srclen > 0)
      pos:
        line_end: 8121
        line_start: 8121
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: ((1ULL<<53) <= MPD_MAXIMPORT)
      pos:
        line_end: 8129
        line_start: 8129
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (base >= 2)
      pos:
        line_end: 8122
        line_start: 8122
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8138
      start: 8116
    functionDepth: 0
    functionLinenumber: 8116
    functionLinenumberEnd: 8138
    functionName: _mpd_importsize
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - log10
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - nmemb
    argTypes:
    - uint16_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8146
      start: 8140
    functionDepth: 3
    functionLinenumber: 8140
    functionLinenumberEnd: 8146
    functionName: mpd_resize_u16
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - nmemb
    argTypes:
    - uint32_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8154
      start: 8148
    functionDepth: 3
    functionLinenumber: 8148
    functionLinenumberEnd: 8154
    functionName: mpd_resize_u32
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8162,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8163,1
    - Dst: mpd_resize_u16
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8167,1
    - Dst: _mpd_shortdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8172,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8174,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: 8161
        line_start: 8161
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase <= (1U<<16))
      pos:
        line_end: 8162
        line_start: 8162
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8179
      start: 8156
    functionDepth: 4
    functionLinenumber: 8156
    functionLinenumberEnd: 8179
    functionName: _baseconv_to_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_resize_u16
    - _mpd_shortdiv
    - _mpd_real_size
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8189,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8190,1
    - Dst: _mpd_shortmul_c
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8194,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8197,1
    - Dst: _mpd_shortadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8204,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8207,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: 8188
        line_start: 8188
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ubase <= (1U<<16))
      pos:
        line_end: 8189
        line_start: 8189
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8217
      start: 8181
    functionDepth: 5
    functionLinenumber: 8181
    functionLinenumberEnd: 8217
    functionName: _coeff_from_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - _mpd_shortadd
    - _mpd_shortmul_c
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8226,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8227,1
    - Dst: mpd_resize_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8231,1
    - Dst: _mpd_shortdiv_b
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8236,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8238,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: 8225
        line_start: 8225
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase < ubase)
      pos:
        line_end: 8226
        line_start: 8226
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8243
      start: 8220
    functionDepth: 4
    functionLinenumber: 8220
    functionLinenumberEnd: 8243
    functionName: _baseconv_to_smaller
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_shortdiv_b
    - _mpd_real_size
    - mpd_resize_u32
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8252,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8257,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: 8259
      start: 8247
    functionDepth: 4
    functionLinenumber: 8247
    functionLinenumberEnd: 8259
    functionName: _copy_equal_base
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8269,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8270,1
    - Dst: _mpd_shortmul_b
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8274,1
    - Dst: mpd_resize_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8277,1
    - Dst: _mpd_shortadd_b
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8284,1
    - Dst: mpd_resize_u32
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8287,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: 8268
        line_start: 8268
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ubase < wbase)
      pos:
        line_end: 8269
        line_start: 8269
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8297
      start: 8262
    functionDepth: 4
    functionLinenumber: 8262
    functionLinenumberEnd: 8297
    functionName: _baseconv_to_larger
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_shortmul_b
    - _mpd_shortadd_b
    - mpd_resize_u32
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8307,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8308,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8312,1
    - Dst: _mpd_shortdiv_b
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8317,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8319,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: 8306
        line_start: 8306
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase < ubase)
      pos:
        line_end: 8307
        line_start: 8307
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8324
      start: 8300
    functionDepth: 5
    functionLinenumber: 8300
    functionLinenumberEnd: 8324
    functionName: _coeff_from_larger_base
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - _mpd_real_size
    - _mpd_shortdiv_b
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8336,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8337,1
    - Dst: _mpd_shortmul_b
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8341,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8344,1
    - Dst: _mpd_shortadd_b
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8351,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8354,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: 8335
        line_start: 8335
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase > ubase)
      pos:
        line_end: 8336
        line_start: 8336
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8364
      start: 8328
    functionDepth: 5
    functionLinenumber: 8328
    functionLinenumberEnd: 8364
    functionName: _coeff_from_smaller_base
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - _mpd_shortmul_b
    - _mpd_shortadd_b
    - assert
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8385,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8389,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8391,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8391,1
    - Dst: mpd_sizeinbase
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8397,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8402,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8409,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8415,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8420,1
    - Dst: _baseconv_to_u16
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8425,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8432,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8437,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: 8388
        line_start: 8388
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8443
      start: 8381
    functionDepth: 7
    functionLinenumber: 8381
    functionLinenumberEnd: 8443
    functionName: mpd_qexport_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isspecial
    - mpd_sizeinbase
    - mpd_qshiftr
    - mpd_free
    - mpd_alloc
    - _mpd_isint
    - mpd_iszero
    - mpd_del
    - MPD_NEW_STATIC
    - _baseconv_to_u16
    - assert
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8464,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8468,1
    - Dst: _mpd_isint
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8468,1
    - Dst: mpd_sizeinbase
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8474,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8479,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8486,1
    - Dst: mpd_qshiftl
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8492,1
    - Dst: mpd_qshiftr
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8497,1
    - Dst: _baseconv_to_smaller
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8503,1
    - Dst: _copy_equal_base
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8507,1
    - Dst: _baseconv_to_smaller
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8510,1
    - Dst: _baseconv_to_larger
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8514,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8525,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8530,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: 8536
      start: 8460
    functionDepth: 7
    functionLinenumber: 8460
    functionLinenumberEnd: 8536
    functionName: mpd_qexport_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isspecial
    - mpd_sizeinbase
    - mpd_qshiftr
    - mpd_free
    - mpd_alloc
    - _baseconv_to_smaller
    - _mpd_isint
    - mpd_iszero
    - _baseconv_to_larger
    - MPD_NEW_STATIC
    - mpd_del
    - _copy_equal_base
    - mpd_qshiftl
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8553,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8554,1
    - Dst: _mpd_importsize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8556,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8558,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8562,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8564,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8571,1
    - Dst: _coeff_from_u16
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8575,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8580,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8583,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8585,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8586,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8590,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: 8552
        line_start: 8552
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (srcbase <= (1U<<16))
      pos:
        line_end: 8553
        line_start: 8553
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8591
      start: 8543
    functionDepth: 8
    functionLinenumber: 8543
    functionLinenumberEnd: 8591
    functionName: mpd_qimport_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - assert
    - _coeff_from_u16
    - mpd_free
    - mpd_alloc
    - mpd_set_flags
    - mpd_qfinalize
    - mpd_setdigits
    - _mpd_importsize
    - mpd_qresize
    - mpd_seterror
    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/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8606,1
    - Dst: _mpd_importsize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8608,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8610,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8614,1
    - Dst: _coeff_from_smaller_base
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8619,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8624,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8627,1
    - Dst: _coeff_from_smaller_base
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8631,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8636,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8638,1
    - Dst: _coeff_from_larger_base
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8645,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8648,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8656,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8659,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8661,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8662,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: 8605
        line_start: 8605
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8663
      start: 8597
    functionDepth: 8
    functionLinenumber: 8597
    functionLinenumberEnd: 8663
    functionName: mpd_qimport_u32
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - assert
    - mpd_free
    - mpd_alloc
    - _coeff_from_larger_base
    - mpd_set_flags
    - _coeff_from_smaller_base
    - mpd_qfinalize
    - mpd_setdigits
    - memcpy
    - _mpd_importsize
    - mpd_qresize
    - mpd_seterror
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - data
    - hi
    - lo
    argTypes:
    - uint64_t[]
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8696
      start: 8671
    functionDepth: 0
    functionLinenumber: 8671
    functionLinenumberEnd: 8696
    functionName: _set_coeff
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t _set_coeff(uint64_t data[3], uint64_t hi, uint64_t lo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8705,1
    - Dst: _mpd_shortmul_c
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8709,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8712,1
    - Dst: _mpd_shortadd
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8716,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - w
    - wlen
    - u
    - ulen
    argTypes:
    - mpd_uint_t*
    - mpd_ssize_t
    - uint16_t*
    - size_t
    assertStmts:
    - condition: (wlen > 0 && ulen > 0)
      pos:
        line_end: 8704
        line_start: 8704
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8726
      start: 8698
    functionDepth: 1
    functionLinenumber: 8698
    functionLinenumberEnd: 8726
    functionName: _uint_from_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_shortadd
    - abort
    - _mpd_shortmul_c
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t _uint_from_u16(mpd_uint_t *w, mpd_ssize_t wlen, const uint16_t
      *u, size_t ulen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _uint_from_u16
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - data
    - len
    - hi
    - lo
    argTypes:
    - mpd_uint_t*
    - mpd_ssize_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8744
      start: 8728
    functionDepth: 2
    functionLinenumber: 8728
    functionLinenumberEnd: 8744
    functionName: _set_coeff
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _uint_from_u16
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t _set_coeff(mpd_uint_t *data, mpd_ssize_t len, uint64_t
      hi, uint64_t lo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _set_coeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8755,1
    - Dst: _set_coeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8757,1
    - Dst: mpd_qresize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8760,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - result
    - hi
    - lo
    - exp
    argTypes:
    - mpd_t*
    - uint64_t
    - uint64_t
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8773
      start: 8747
    functionDepth: 5
    functionLinenumber: 8747
    functionLinenumberEnd: 8773
    functionName: _set_uint128_coeff_exp
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _set_coeff
    - mpd_qresize
    - mpd_setdigits
    linkageType: ''
    returnType: int
    signature: int _set_uint128_coeff_exp(mpd_t *result, uint64_t hi, uint64_t lo,
      mpd_ssize_t exp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8809,1
    - Dst: _set_uint128_coeff_exp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8815,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8827,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8838,1
    - Dst: _set_uint128_coeff_exp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8847,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8852,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8865,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8869,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 3
    argNames:
    - result
    - triple
    - status
    argTypes:
    - mpd_t*
    - mpd_uint128_triple_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8871
      start: 8775
    functionDepth: 8
    functionLinenumber: 8775
    functionLinenumberEnd: 8871
    functionName: mpd_from_uint128_triple
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_setspecial
    - mpd_set_flags
    - _set_uint128_coeff_exp
    - mpd_qfinalize
    - mpd_seterror
    linkageType: ''
    returnType: int
    signature: int mpd_from_uint128_triple(mpd_t *result, const mpd_uint128_triple_t
      *triple, uint32_t *status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - hi
    - lo
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8898
      start: 8879
    functionDepth: 0
    functionLinenumber: 8879
    functionLinenumberEnd: 8898
    functionName: _get_coeff
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void _get_coeff(uint64_t *hi, uint64_t *lo, const mpd_t *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8906,1
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8910,1
    - Dst: _mpd_shortdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8912,1
    - Dst: _mpd_real_size
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - w
    - u
    - ulen
    argTypes:
    - uint16_t[]
    - mpd_uint_t*
    - mpd_ssize_t
    assertStmts:
    - condition: (ulen > 0)
      pos:
        line_end: 8905
        line_start: 8905
        source_file: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8919
      start: 8900
    functionDepth: 1
    functionLinenumber: 8900
    functionLinenumberEnd: 8919
    functionName: _uint_to_u16
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_shortdiv
    - abort
    - assert
    - _mpd_real_size
    linkageType: ''
    returnType: size_t
    signature: size_t _uint_to_u16(uint16_t w[8], mpd_uint_t *u, mpd_ssize_t ulen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8940,1
    - Dst: _uint_to_u16
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - hi
    - lo
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8954
      start: 8921
    functionDepth: 2
    functionLinenumber: 8921
    functionLinenumberEnd: 8954
    functionName: _get_coeff
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - abort
    - _uint_to_u16
    linkageType: ''
    returnType: void
    signature: void _get_coeff(uint64_t *hi, uint64_t *lo, const mpd_t *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8973,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8974,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8978,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8983,1
    - Dst: _mpd_copy_shared
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8987,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8988,1
    - Dst: mpd_qcmp
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8991,1
    - Dst: _get_coeff
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:8995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - hi
    - lo
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8997
      start: 8957
    functionDepth: 6
    functionLinenumber: 8957
    functionLinenumberEnd: 8997
    functionName: _coeff_as_uint128
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_qcmp
    - mpd_isinfinite
    - mpd_set_flags
    - mpd_isqnan
    - _get_coeff
    - mpd_iszero
    - _mpd_copy_shared
    linkageType: ''
    returnType: enum mpd_triple_class
    signature: enum mpd_triple_class _coeff_as_uint128(uint64_t *hi, uint64_t *lo,
      const mpd_t *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _coeff_as_uint128
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:9004,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c:9009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9015
      start: 8999
    functionDepth: 7
    functionLinenumber: 8999
    functionLinenumberEnd: 9015
    functionName: mpd_as_uint128_triple
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _coeff_as_uint128
    - mpd_isnegative
    linkageType: ''
    returnType: mpd_uint128_triple_t
    signature: mpd_uint128_triple_t mpd_as_uint128_triple(const mpd_t *a)
  - 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: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: addmod
    functionSourceFile: /src/cpython/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: 77
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: submod
    functionSourceFile: /src/cpython/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: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: ext_submod
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:107,1
    - Dst: _mpd_div_words
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:108,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: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: dw_reduce
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:123,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: 128
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: dw_submod
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:157,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: 259
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 259
    functionName: x64_mulmod
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:264,1
    - Dst: x64_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:265,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: 266
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: x64_mulmod2c
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:272,1
    - Dst: x64_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:273,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: 274
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: x64_mulmod2
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:283,1
    - Dst: x64_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:284,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: 289
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 289
    functionName: x64_powmod
    functionSourceFile: /src/cpython/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: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: std_mulmod
    functionSourceFile: /src/cpython/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: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: std_mulmod2c
    functionSourceFile: /src/cpython/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: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: std_mulmod2
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:329,1
    - Dst: _mpd_div_words
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:330,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: 332
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: std_mulmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - _mpd_div_words
    - _mpd_mul_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/cpython/Modules/_decimal/libmpdec/umodarith.h:337,1
    - Dst: std_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:338,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: 339
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: std_mulmod2c
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:345,1
    - Dst: std_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:346,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: 347
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: std_mulmod2
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:358,1
    - Dst: std_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:359,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: 364
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 364
    functionName: std_powmod
    functionSourceFile: /src/cpython/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: 425
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 425
    functionName: ppro_mulmod
    functionSourceFile: /src/cpython/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: 464
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 464
    functionName: ppro_mulmod2c
    functionSourceFile: /src/cpython/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: 511
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 511
    functionName: ppro_mulmod2
    functionSourceFile: /src/cpython/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: 578
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 578
    functionName: ppro_mulmod2c
    functionSourceFile: /src/cpython/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: 625
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 625
    functionName: ppro_mulmod2
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/umodarith.h:637,1
    - Dst: ppro_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/umodarith.h:638,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: 643
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: ppro_powmod
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/fnt.c:49,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:49,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:50,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:51,1
    - Dst: _mpd_init_fnt_params
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:53,1
    - Dst: fnt_dif2
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:56,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:58,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: 48
        line_start: 48
        source_file: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    - condition: (n >= 4)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: std_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    functionUses: 0
    functionsReached:
    - mpd_free
    - fnt_dif2
    - _mpd_init_fnt_params
    - ispower2
    - 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/cpython/Modules/_decimal/libmpdec/fnt.c:68,1
    - Dst: ispower2
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:68,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:69,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:70,1
    - Dst: _mpd_init_fnt_params
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:72,1
    - Dst: fnt_dif2
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:75,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/fnt.c:77,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: 67
        line_start: 67
        source_file: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    - condition: (n >= 4)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: std_inv_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/fnt.c
    functionUses: 0
    functionsReached:
    - mpd_free
    - fnt_dif2
    - _mpd_init_fnt_params
    - ispower2
    - 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/cpython/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/cpython/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/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 78
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 78
    functionName: _mpd_baseadd
    functionSourceFile: /src/cpython/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/cpython/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/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 133
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 133
    functionName: _mpd_shortadd
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    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/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: _mpd_baseincr
    functionSourceFile: /src/cpython/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/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 186
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 186
    functionName: _mpd_basesub
    functionSourceFile: /src/cpython/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/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c:223,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:227,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: _mpd_shortmul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - _mpd_div_words_r
    - _mpd_mul_words
    - assert
    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/cpython/Modules/_decimal/libmpdec/basearith.c:249,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:255,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 265
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 265
    functionName: _mpd_basemul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 3
    functionsReached:
    - _mpd_div_words_r
    - _mpd_mul_words
    - assert
    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/cpython/Modules/_decimal/libmpdec/basearith.c:278,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:282,1
    - Dst: _mpd_div_words
      Src: /src/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: _mpd_shortdiv
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 5
    functionsReached:
    - _mpd_div_words
    - _mpd_mul_words
    - assert
    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/cpython/Modules/_decimal/libmpdec/basearith.c:317,1
    - Dst: sub_size_t
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:318,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:324,1
    - Dst: mpd_alloc
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:329,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:330,1
    - Dst: _mpd_shortmul
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:335,1
    - Dst: _mpd_shortmul
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:336,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:340,1
    - Dst: _mpd_shortdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:343,1
    - Dst: _mpd_singlemul
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:348,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:365,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:370,1
    - Dst: _mpd_baseadd
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:382,1
    - Dst: _mpd_shortdiv
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:388,1
    - Dst: _mpd_isallzero
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:393,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:397,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:398,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    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/cpython/Modules/_decimal/libmpdec/basearith.c
    - condition: (2 <= j+n && j+n <= nplusm)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 400
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 400
    functionName: _mpd_basedivmod
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - _mpd_div_words_r
    - _mpd_baseadd
    - _mpd_mul_words
    - sub_size_t
    - mpd_free
    - mpd_alloc
    - _mpd_shortdiv
    - _mpd_singlemul
    - _mpd_isallzero
    - _mpd_shortmul
    - assert
    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/cpython/Modules/_decimal/libmpdec/basearith.c:439,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:441,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:448,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:454,1
    - Dst: mpd_uint_zero
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:467,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: 438
        line_start: 438
        source_file: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 468
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 468
    functionName: _mpd_baseshiftl
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - mpd_uint_zero
    - _mpd_divmod_pow10
    - assert
    - _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/cpython/Modules/_decimal/libmpdec/basearith.c:510,1
    - Dst: _mpd_div_word
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:512,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:519,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:520,1
    - Dst: _mpd_isallzero
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:523,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:527,1
    - Dst: _mpd_divmod_pow10
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:538,1
    - Dst: _mpd_isallzero
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:540,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: 509
        line_start: 509
        source_file: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 551
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 551
    functionName: _mpd_baseshiftr
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 3
    functionsReached:
    - _mpd_isallzero
    - _mpd_divmod_pow10
    - assert
    - _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/cpython/Modules/_decimal/libmpdec/basearith.c:569,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: 568
        line_start: 568
        source_file: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 584
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 584
    functionName: _mpd_shortadd_b
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.c:594,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:598,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:602,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: 593
        line_start: 593
        source_file: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 606
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 606
    functionName: _mpd_shortmul_c
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - _mpd_div_words_r
    - _mpd_mul_words
    - assert
    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/cpython/Modules/_decimal/libmpdec/basearith.c:617,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:621,1
    - Dst: _mpd_div_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:625,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: 616
        line_start: 616
        source_file: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 629
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 629
    functionName: _mpd_shortmul_b
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - _mpd_div_words
    - _mpd_mul_words
    - assert
    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/cpython/Modules/_decimal/libmpdec/basearith.c:643,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:647,1
    - Dst: _mpd_div_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.c:651,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: 642
        line_start: 642
        source_file: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 655
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 655
    functionName: _mpd_shortdiv_b
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - _mpd_div_words
    - _mpd_mul_words
    - assert
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:109,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:121,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: 139
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 139
    functionName: _mpd_div_words_r
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.h:144,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: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: _mpd_div_words_r
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/basearith.h:155,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:156,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: 157
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: _mpd_singlemul
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.h
    functionUses: 2
    functionsReached:
    - _mpd_div_words_r
    - _mpd_mul_words
    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/cpython/Modules/_decimal/libmpdec/basearith.h:165,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:166,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:168,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:171,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:174,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:177,1
    - Dst: _mpd_mul_words
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:179,1
    - Dst: _mpd_div_words_r
      Src: /src/cpython/Modules/_decimal/libmpdec/basearith.h:184,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: 185
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: _mpd_mul_2_le2
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/basearith.h
    functionUses: 1
    functionsReached:
    - _mpd_div_words_r
    - _mpd_mul_words
    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: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: _mpd_isallzero
    functionSourceFile: /src/cpython/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: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: _mpd_isallnine
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/fourstep.c:56,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:57,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:65,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:66,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:69,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:70,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:78,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:79,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:82,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:83,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: 88
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 88
    functionName: std_size3_ntt
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/fourstep.c:101,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:102,1
    - Dst: ppro_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:110,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:111,1
    - Dst: ppro_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:114,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:115,1
    - Dst: ppro_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:123,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:124,1
    - Dst: ppro_mulmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:127,1
    - Dst: addmod
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:128,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: 133
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 133
    functionName: ppro_size3_ntt
    functionSourceFile: /src/cpython/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/cpython/Modules/_decimal/libmpdec/fourstep.c:154,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:155,1
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:159,1
    - Dst: _mpd_init_w3table
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:160,1
    - Dst: SIZE3_NTT
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:163,1
    - Dst: _mpd_getkernel
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:167,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:170,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:171,1
    - Dst: MULMOD2
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:175,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:176,1
    - Dst: six_step_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:184,1
    - Dst: transpose_3xpow2
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:193,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: 153
        line_start: 153
        source_file: /src/cpython/Modules/_decimal/libmpdec/fourstep.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Modules/_decimal/libmpdec/fourstep.c
    constantsTouched: []
    func_position:
      end: 197
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 197
    functionName: four_step_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/fourstep.c
    functionUses: 0
    functionsReached:
    - MULMOD2C
    - SETMODULUS
    - _mpd_getkernel
    - transpose_3xpow2
    - POWMOD
    - _mpd_init_w3table
    - six_step_fnt
    - MULMOD
    - SIZE3_NTT
    - assert
    - MULMOD2
    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/cpython/Modules/_decimal/libmpdec/fourstep.c:216,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:217,1
    - Dst: transpose_3xpow2
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:224,1
    - Dst: inv_six_step_fnt
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:229,1
    - Dst: SETMODULUS
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:235,1
    - Dst: _mpd_getkernel
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:236,1
    - Dst: POWMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:239,1
    - Dst: MULMOD
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:240,1
    - Dst: MULMOD2
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:244,1
    - Dst: MULMOD2C
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:245,1
    - Dst: _mpd_init_w3table
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:252,1
    - Dst: SIZE3_NTT
      Src: /src/cpython/Modules/_decimal/libmpdec/fourstep.c:255,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: 215
        line_start: 215
        source_file: /src/cpython/Modules/_decimal/libmpdec/fourstep.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/cpython/Modules/_decimal/libmpdec/fourstep.c
    constantsTouched: []
    func_position:
      end: 259
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 259
    functionName: inv_four_step_fnt
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/fourstep.c
    functionUses: 0
    functionsReached:
    - MULMOD2C
    - SETMODULUS
    - _mpd_getkernel
    - transpose_3xpow2
    - POWMOD
    - inv_six_step_fnt
    - _mpd_init_w3table
    - MULMOD
    - SIZE3_NTT
    - assert
    - MULMOD2
    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/cpython/Modules/_decimal/libmpdec/io.h:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - s
    - end
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: mpd_strtossize
    functionSourceFile: /src/cpython/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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: MULMOD
    functionSourceFile: /src/cpython/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: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MULMOD2C
    functionSourceFile: /src/cpython/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: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: MULMOD2
    functionSourceFile: /src/cpython/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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: POWMOD
    functionSourceFile: /src/cpython/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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: SETMODULUS
    functionSourceFile: /src/cpython/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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: SIZE3_NTT
    functionSourceFile: /src/cpython/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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: MULMOD
    functionSourceFile: /src/cpython/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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MULMOD2C
    functionSourceFile: /src/cpython/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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MULMOD2
    functionSourceFile: /src/cpython/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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: POWMOD
    functionSourceFile: /src/cpython/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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: SETMODULUS
    functionSourceFile: /src/cpython/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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: SIZE3_NTT
    functionSourceFile: /src/cpython/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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: MULMOD
    functionSourceFile: /src/cpython/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: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: MULMOD2C
    functionSourceFile: /src/cpython/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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: MULMOD2
    functionSourceFile: /src/cpython/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: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: POWMOD
    functionSourceFile: /src/cpython/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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: SETMODULUS
    functionSourceFile: /src/cpython/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: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: SIZE3_NTT
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZE3_NTT(x0, x1, x2, w3table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:54,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:55,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:56,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:57,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:59,1
    - Dst: mpd_pow
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:60,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:61,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:62,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:65,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:66,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:67,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:69,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:70,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:71,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/pow.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_pow
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_init
    - mpd_del
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:54,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:55,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:56,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:57,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:59,1
    - Dst: mpd_shift
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:60,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:61,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:62,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:65,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:66,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:67,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:69,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:70,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:71,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/shift.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_init
    - mpd_shift
    - mpd_del
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:54,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:55,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:56,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:57,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:59,1
    - Dst: mpd_compare
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:60,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:61,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:62,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:65,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:66,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:67,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:69,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:70,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:71,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/compare.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_init
    - mpd_del
    - fprintf
    - mpd_compare
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:54,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:55,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:56,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:57,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:58,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:60,1
    - Dst: mpd_divmod
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:61,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:62,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:63,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:66,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:67,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:69,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:70,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:72,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:73,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:74,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:75,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:76,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 80
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/divmod.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_divmod
    - mpd_init
    - mpd_del
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:54,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:55,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:56,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:57,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:58,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:59,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:61,1
    - Dst: mpd_powmod
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:62,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:63,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:64,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:67,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:68,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:69,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:71,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:72,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:73,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:74,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/powmod.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_powmod
    - mpd_init
    - mpd_del
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:54,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:55,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:56,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:57,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:59,1
    - Dst: mpd_div
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:60,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:61,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:62,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:65,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:66,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:67,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:69,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:70,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:71,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/div.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/div.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_init
    - mpd_del
    - mpd_div
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:54,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:55,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:57,1
    - Dst: mpd_sqrt
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:58,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:59,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:60,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:63,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:64,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:65,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:67,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:68,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/sqrt.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_sqrt
    - mpd_init
    - mpd_del
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:46,1
    - Dst: exit
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:47,1
    - Dst: mpd_init
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:50,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:53,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:54,1
    - Dst: mpd_new
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:55,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:56,1
    - Dst: mpd_set_string
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:57,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:59,1
    - Dst: mpd_mul
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:60,1
    - Dst: clock
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:61,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:62,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:65,1
    - Dst: mpd_snprint_flags
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:66,1
    - Dst: printf
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:67,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:69,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:70,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:71,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/cpython/Modules/_decimal/libmpdec/examples/multiply.c
    functionUses: 6
    functionsReached:
    - clock
    - mpd_mul
    - mpd_free
    - mpd_set_string
    - mpd_to_sci
    - printf
    - mpd_snprint_flags
    - mpd_new
    - mpd_init
    - mpd_del
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:28,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:29,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:33,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:34,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:39,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:41,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:43,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:44,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:50,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:52,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:53,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:54,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:56,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:65,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:66,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:72,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:73,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - OUTBYTE1
    - TRYMAP_ENC
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(cp932)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:91,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:92,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:97,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:99,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:100,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:105,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:106,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:110,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:113,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:114,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:124,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:125,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:132,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(cp932)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:159,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:160,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_BMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:167,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:172,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:184,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:189,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:204,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:205,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:218,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:219,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:229,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:230,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:233,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE3
    - WRITEBYTE2
    - NEXT
    - WRITEBYTE1
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - find_pairencmap
    - EMULATE_JISX0213_2000_ENCODE_EMP
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_jis_2004)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:172,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:184,1
    - Dst: find_pairencmap
      Src: /src/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c:248,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:249,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:257,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:260,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:261,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:269,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:274,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:275,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:276,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:278,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:279,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:282,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:283,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:286,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:291,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:296,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:298,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:300,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:301,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:302,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:303,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:304,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:306,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:307,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:311,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:312,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    - OUTCHAR
    - OUTCHAR2
    - NEXT_IN
    - EMULATE_JISX0213_2000_DECODE_PLANE2
    - TRYMAP_DEC
    - REQUIRE_INBUF
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_jis_2004)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:278,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c:306,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c:311,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c:336,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:337,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:344,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:348,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:349,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:356,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:357,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:360,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:361,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:370,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:371,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:374,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE3
    - WRITEBYTE2
    - NEXT
    - WRITEBYTE1
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_jp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:389,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:390,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:398,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:401,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:402,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:410,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:414,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:415,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:416,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:424,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:430,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:433,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:434,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_jp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:457,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:473,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:475,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:476,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:480,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:483,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:500,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:501,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - OUTBYTE1
    - TRYMAP_ENC
    - NEXT
    - REQUIRE_OUTBUF
    - JISX0201_R_ENCODE
    - OUTBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(shift_jis)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_DECODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:515,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:518,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:524,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:537,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:538,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:542,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:543,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:544,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - OUTCHAR
    - NEXT_IN
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - JISX0201_R_DECODE
    linkageType: ''
    returnType: void
    signature: void DECODER(shift_jis)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:572,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:575,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:576,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:580,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_BMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:585,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:590,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:602,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:607,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:628,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:629,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:658,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:659,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - JISX0201_ENCODE
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - OUTBYTE2
    - find_pairencmap
    - EMULATE_JISX0213_2000_ENCODE_EMP
    linkageType: ''
    returnType: void
    signature: void ENCODER(shift_jis_2004)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:590,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:602,1
    - Dst: find_pairencmap
      Src: /src/cpython/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/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c:672,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:677,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:689,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:691,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:692,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:693,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:694,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:695,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:696,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:697,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:698,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:701,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:711,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:713,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:714,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:716,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:717,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:722,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    - OUTCHAR
    - OUTCHAR2
    - NEXT_IN
    - EMULATE_JISX0213_2000_DECODE_PLANE2
    - JISX0201_DECODE
    - TRYMAP_DEC
    - REQUIRE_INBUF
    linkageType: ''
    returnType: void
    signature: void DECODER(shift_jis_2004)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:716,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/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: 7
    argNames:
    - (
    - NAME
    - ','
    - N
    - ','
    - METH
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 752
    functionName: CODEC_CUSTOM
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC_CUSTOM(NAME, N, METH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - config
    - ','
    - assi
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - 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/cpython/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_ENCODE_BMP(config, assi, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - config
    - ','
    - assi
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - 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/cpython/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_ENCODE_EMP(config, assi, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - config
    - ','
    - assi
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - 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/cpython/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_DECODE_PLANE1(config, assi, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - config
    - ','
    - writer
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - 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/cpython/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_DECODE_PLANE2(config, writer, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - config
    - ','
    - assi
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
    functionSourceFile: /src/cpython/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR(config, assi, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: MultibyteCodec_Check
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MultibyteCodec_Check(state, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: ERROR_ISCUSTOM
    functionSourceFile: /src/cpython/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: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: ERROR_DECREF
    functionSourceFile: /src/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GBK_ENCODE(code, assi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:71,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:72,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:79,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:80,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:88,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:89,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(gb2312)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:103,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:104,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:108,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:109,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:110,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(gb2312)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:132,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:133,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:140,1
    - Dst: GBK_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:142,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:146,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:148,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:150,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - OUTBYTE1
    - GBK_ENCODE
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(gbk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:164,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:165,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:169,1
    - Dst: GBK_DECODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:171,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 5
    functionsReached:
    - GBK_DECODE
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(gbk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:193,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:194,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:200,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:202,1
    - Dst: OUTBYTE4
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:204,1
    - Dst: OUTBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:206,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:208,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:210,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:212,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:216,1
    - Dst: GBK_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:218,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:224,1
    - Dst: OUTBYTE4
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:236,1
    - Dst: OUTBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:238,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:240,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:242,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:244,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:253,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:255,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:257,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    constantsTouched: []
    func_position:
      end: 260
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 260
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - OUTBYTE1
    - GBK_ENCODE
    - OUTBYTE4
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE3
    - OUTBYTE2
    - assert
    linkageType: ''
    returnType: void
    signature: void ENCODER(gb18030)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:272,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:273,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:277,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:285,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:302,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:303,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:311,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:312,1
    - Dst: GBK_DECODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:319,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:320,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:321,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 5
    functionsReached:
    - OUTCHAR
    - NEXT_IN
    - TRYMAP_DEC
    - GBK_DECODE
    - REQUIRE_INBUF
    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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENCODER_INIT(hz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:345,1
    - Dst: NEXT_OUT
      Src: /src/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c:360,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:361,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:364,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:365,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:367,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:368,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:376,1
    - Dst: WRITEBYTE4
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:385,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:386,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:390,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE2
    - NEXT
    - WRITEBYTE1
    - NEXT_OUT
    - WRITEBYTE4
    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/cpython/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/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c:419,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:421,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:430,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:438,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:439,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:442,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:443,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_cn.c:444,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(hz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:21,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:23,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:30,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:32,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:37,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:38,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - NEXT
    - REQUIRE_OUTBUF
    - OUTBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(big5)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:52,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:53,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:57,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:58,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:59,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(big5)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:80,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:81,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:88,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:89,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:91,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:96,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:97,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(cp950)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:111,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:112,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:116,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:118,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:119,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:120,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_tw.c:121,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - 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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: ESCMARK
    functionSourceFile: /src/cpython/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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: IS_ESCEND
    functionSourceFile: /src/cpython/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: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: IS_ISO2022ESC
    functionSourceFile: /src/cpython/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: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: STATE_SETG
    functionSourceFile: /src/cpython/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: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: STATE_GETG
    functionSourceFile: /src/cpython/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: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: STATE_SETG0
    functionSourceFile: /src/cpython/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: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: STATE_SETG1
    functionSourceFile: /src/cpython/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: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: STATE_SETG2
    functionSourceFile: /src/cpython/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: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: STATE_SETG3
    functionSourceFile: /src/cpython/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: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: STATE_SETFLAG
    functionSourceFile: /src/cpython/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: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: STATE_GETFLAG
    functionSourceFile: /src/cpython/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: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: STATE_CLEARFLAG
    functionSourceFile: /src/cpython/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: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: STATE_CLEARFLAGS
    functionSourceFile: /src/cpython/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: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: CONFIG_ISSET
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_iso2022.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: CODEC_INIT
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_iso2022.c:161,1
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:162,1
    - Dst: STATE_SETG1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: ENCODER_INIT
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_SETG0
    - STATE_CLEARFLAGS
    - STATE_SETG1
    linkageType: ''
    returnType: void
    signature: void ENCODER_INIT(iso2022)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_GETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:169,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:170,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:171,1
    - Dst: STATE_CLEARFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:172,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:175,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:176,1
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: ENCODER_RESET
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_GETFLAG
    - WRITEBYTE3
    - STATE_CLEARFLAG
    - WRITEBYTE1
    - NEXT_OUT
    - STATE_SETG0
    linkageType: ''
    returnType: void
    signature: void ENCODER_RESET(iso2022)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:192,1
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:193,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:194,1
    - Dst: STATE_GETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:196,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:197,1
    - Dst: STATE_CLEARFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:198,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:199,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:201,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:202,1
    - Dst: struct iso2022_designation*::encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:212,1
    - Dst: struct iso2022_designation*::encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:225,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:237,1
    - Dst: STATE_GETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:241,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:242,1
    - Dst: STATE_CLEARFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:243,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:244,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:248,1
    - Dst: ESCMARK
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:248,1
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:249,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:250,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:253,1
    - Dst: ESCMARK
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:253,1
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:254,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:255,1
    - Dst: WRITEBYTE4
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:258,1
    - Dst: ESCMARK
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:259,1
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:260,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:261,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:268,1
    - Dst: ESCMARK
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:268,1
    - Dst: STATE_SETG1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:269,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:270,1
    - Dst: WRITEBYTE4
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:273,1
    - Dst: ESCMARK
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:273,1
    - Dst: STATE_SETG1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:274,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:275,1
    - Dst: STATE_GETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:278,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:279,1
    - Dst: STATE_SETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:280,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:281,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:290,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:291,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:294,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:295,1
    - Dst: NEXT_INCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:297,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dsg->width == 1 || dsg->width == 2)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 301
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 301
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - struct iso2022_designation*::encoder
    - STATE_SETFLAG
    - STATE_GETFLAG
    - STATE_SETG1
    - NEXT_INCHAR
    - WRITEBYTE3
    - WRITEBYTE2
    - NEXT
    - STATE_CLEARFLAG
    - WRITEBYTE1
    - ESCMARK
    - NEXT_OUT
    - STATE_SETG0
    - WRITEBYTE4
    - assert
    linkageType: ''
    returnType: void
    signature: void ENCODER(iso2022)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_CLEARFLAGS
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:305,1
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:306,1
    - Dst: STATE_SETG1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:307,1
    - Dst: STATE_SETG2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: DECODER_INIT
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_SETG0
    - STATE_SETG2
    - STATE_CLEARFLAGS
    - STATE_SETG1
    linkageType: ''
    returnType: void
    signature: void DECODER_INIT(iso2022)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_SETG0
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:314,1
    - Dst: STATE_CLEARFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: DECODER_RESET
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_iso2022.c:329,1
    - Dst: CONFIG_ISSET
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:333,1
    - Dst: CONFIG_ISSET
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:353,1
    - Dst: CONFIG_ISSET
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:372,1
    - Dst: STATE_SETG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:397,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 4
    argNames:
    - codec
    - state
    - inbuf
    - inleft
    argTypes:
    - MultibyteCodec*
    - MultibyteCodec_State*
    - unsigned char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 401
    functionName: iso2022processesc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IS_ESCEND
    - STATE_SETG
    - CONFIG_ISSET
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t iso2022processesc(const MultibyteCodec *codec, 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: 418
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 418
    functionName: ISO8859_7_DECODE
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_iso2022.c:428,1
    - Dst: ISO8859_7_DECODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:433,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - codec
    - state
    - inbuf
    - inleft
    - writer
    argTypes:
    - MultibyteCodec*
    - MultibyteCodec_State*
    - unsigned char**
    - Py_ssize_t*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 449
    functionName: iso2022processg2
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - OUTCHAR
    - ISO8859_7_DECODE
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t iso2022processg2(const MultibyteCodec *codec, MultibyteCodec_State
      *state,\n                 const unsigned char **inbuf, Py_ssize_t *inleft,\n
      \                _PyUnicodeWriter *writer)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: STATE_GETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:459,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:462,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:463,1
    - Dst: IS_ESCEND
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:464,1
    - Dst: STATE_CLEARFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:465,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:472,1
    - Dst: IS_ISO2022ESC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:473,1
    - Dst: iso2022processesc
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:474,1
    - Dst: CONFIG_ISSET
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:479,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:480,1
    - Dst: iso2022processg2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:481,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:487,1
    - Dst: STATE_SETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:488,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:489,1
    - Dst: CONFIG_ISSET
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:493,1
    - Dst: STATE_CLEARFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:495,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:496,1
    - Dst: CONFIG_ISSET
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:499,1
    - Dst: STATE_SETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:501,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:502,1
    - Dst: STATE_CLEARFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:505,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:506,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:507,1
    - Dst: STATE_GETFLAG
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:519,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:526,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:527,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:544,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:548,1
    - Dst: struct iso2022_designation*::decoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:549,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:554,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:557,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:560,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:562,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dsg->mark != '\0')
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 568
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 568
    functionName: DECODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 5
    functionsReached:
    - IS_ESCEND
    - OUTCHAR
    - STATE_SETFLAG
    - STATE_GETFLAG
    - IS_ISO2022ESC
    - iso2022processesc
    - OUTCHAR2
    - NEXT_IN
    - STATE_CLEARFLAG
    - iso2022processg2
    - struct iso2022_designation*::decoder
    - REQUIRE_INBUF
    - assert
    - CONFIG_ISSET
    linkageType: ''
    returnType: void
    signature: void DECODER(iso2022)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:576,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - codec
    argTypes:
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: ksx1001_init
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int ksx1001_init(const MultibyteCodec *codec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 592
    functionName: ksx1001_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 ksx1001_decoder(const MultibyteCodec *codec, const unsigned
      char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:599,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 607
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 607
    functionName: ksx1001_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC_ST
    - assert
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR ksx1001_encoder(const MultibyteCodec *codec, const Py_UCS4
      *data,\n                Py_ssize_t *length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:613,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - codec
    argTypes:
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 619
    functionName: jisx0208_init
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int jisx0208_init(const MultibyteCodec *codec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 631
    functionName: jisx0208_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0208_decoder(const MultibyteCodec *codec, const unsigned
      char *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:638,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 648
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 648
    functionName: jisx0208_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC_ST
    - assert
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0208_encoder(const MultibyteCodec *codec, const Py_UCS4
      *data,\n                 Py_ssize_t *length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:654,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - codec
    argTypes:
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 660
    functionName: jisx0212_init
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int jisx0212_init(const MultibyteCodec *codec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 670
    functionName: jisx0212_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0212_decoder(const MultibyteCodec *codec, const unsigned
      char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:677,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 685
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 685
    functionName: jisx0212_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC_ST
    - assert
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0212_encoder(const MultibyteCodec *codec, const Py_UCS4
      *data,\n                 Py_ssize_t *length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jisx0208_init
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:691,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:692,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:693,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:694,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:695,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:696,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:697,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:698,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 1
    argNames:
    - codec
    argTypes:
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 704
    functionName: jisx0213_init
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    - jisx0208_init
    linkageType: ''
    returnType: int
    signature: int jisx0213_init(const MultibyteCodec *codec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:711,1
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 725
    functionName: jisx0213_2000_1_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2000_1_decoder(const MultibyteCodec *codec, const
      unsigned char *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:731,1
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:732,1
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 739
    functionName: jisx0213_2000_2_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2000_2_decoder(const MultibyteCodec *codec, const
      unsigned char *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:748,1
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:750,1
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:752,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 759
    functionName: jisx0213_2004_1_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2004_1_decoder(const MultibyteCodec *codec, const
      unsigned char *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:765,1
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 772
    functionName: jisx0213_2004_2_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2004_2_decoder(const MultibyteCodec *codec, const
      unsigned char *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:784,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:785,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_BMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:791,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:792,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:796,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:805,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:813,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - codec
    - data
    - length
    - config
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 824
    functionName: jisx0213_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC_ST
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - find_pairencmap
    - EMULATE_JISX0213_2000_ENCODE_EMP
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0213_encoder(const MultibyteCodec *codec, const Py_UCS4
      *data,\n                 Py_ssize_t *length, const void *config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 837
    functionName: jisx0213_2000_1_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0213_2000_1_encoder(const MultibyteCodec *codec, const
      Py_UCS4 *data,\n                        Py_ssize_t *length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 861
    functionName: jisx0213_2000_1_encoder_paironly
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0213_2000_1_encoder_paironly(const MultibyteCodec *codec,\n
      \                                const Py_UCS4 *data, Py_ssize_t *length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 874
    functionName: jisx0213_2000_2_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0213_2000_2_encoder(const MultibyteCodec *codec, const
      Py_UCS4 *data,\n                        Py_ssize_t *length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 887
    functionName: jisx0213_2004_1_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0213_2004_1_encoder(const MultibyteCodec *codec, const
      Py_UCS4 *data,\n                        Py_ssize_t *length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 911
    functionName: jisx0213_2004_1_encoder_paironly
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0213_2004_1_encoder_paironly(const MultibyteCodec *codec,\n
      \                                const Py_UCS4 *data, Py_ssize_t *length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 924
    functionName: jisx0213_2004_2_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0213_2004_2_encoder(const MultibyteCodec *codec, const
      Py_UCS4 *data,\n                        Py_ssize_t *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_DECODE_CHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 934
    functionName: jisx0201_r_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_R_DECODE_CHAR
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0201_r_decoder(const MultibyteCodec *codec, const unsigned
      char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 945
    functionName: jisx0201_r_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_R_ENCODE
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0201_r_encoder(const MultibyteCodec *codec, const Py_UCS4
      *data,\n                   Py_ssize_t *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_K_DECODE_CHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 955
    functionName: jisx0201_k_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_K_DECODE_CHAR
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0201_k_decoder(const MultibyteCodec *codec, const unsigned
      char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_K_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 966
    functionName: jisx0201_k_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_K_ENCODE
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR jisx0201_k_encoder(const MultibyteCodec *codec, const Py_UCS4
      *data,\n                   Py_ssize_t *length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:972,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - codec
    argTypes:
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 978
    functionName: gb2312_init
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int gb2312_init(const MultibyteCodec *codec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 988
    functionName: gb2312_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC_ST
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 gb2312_decoder(const MultibyteCodec *codec, const unsigned
      char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:995,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 1003
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1003
    functionName: gb2312_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC_ST
    - assert
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR gb2312_encoder(const MultibyteCodec *codec, const Py_UCS4 *data,\n
      \              Py_ssize_t *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1010
    functionName: dummy_decoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 dummy_decoder(const MultibyteCodec *codec, const unsigned char
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - codec
    - data
    - length
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: dummy_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR dummy_encoder(const MultibyteCodec *codec, const Py_UCS4 *data,\n
      \             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: 1084
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1084
    functionName: CONFIGDEF
    functionSourceFile: /src/cpython/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: 1139
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1139
    functionName: ISO2022_CODEC
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISO2022_CODEC(variation)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:41,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:42,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:49,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:50,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:57,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:58,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:59,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:66,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:69,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:70,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:74,1
    - Dst: OUTBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:77,1
    - Dst: OUTBYTE4
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:78,1
    - Dst: NEXT_OUT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:79,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:81,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:82,1
    - Dst: OUTBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:83,1
    - Dst: OUTBYTE4
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:84,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_kr.c
    constantsTouched: []
    func_position:
      end: 90
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 90
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - OUTBYTE4
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE3
    - OUTBYTE2
    - NEXT_OUT
    - assert
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_kr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:114,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:115,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:119,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:126,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:152,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:153,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:155,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:156,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_kr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:179,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:180,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:187,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:188,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:193,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:195,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:197,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(cp949)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:211,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:212,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:216,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:217,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:218,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:219,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:220,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(cp949)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:269,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:270,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:277,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:288,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:292,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:301,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:302,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:303,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:312,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:313,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_kr.c
    constantsTouched: []
    func_position:
      end: 318
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 318
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE2
    - assert
    linkageType: ''
    returnType: void
    signature: void ENCODER(johab)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:368,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:369,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:373,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:396,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:398,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:403,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:411,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:417,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:422,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:439,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_kr.c:440,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(johab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: CODEC_INIT
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_hk.c:47,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:49,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:54,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:57,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:84,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:92,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:100,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:101,1
    - Dst: NEXT
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_hk.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE1
    - NEXT
    - REQUIRE_OUTBUF
    - TRYMAP_ENC_ST
    - OUTBYTE2
    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/cpython/Modules/cjkcodecs/_codecs_hk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BH2S(c1, c2)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:117,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:118,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:122,1
    - Dst: TRYMAP_DEC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:125,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:126,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:127,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:132,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:134,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:137,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:138,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:140,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:140,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:142,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:144,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:144,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:146,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:148,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:148,1
    - Dst: BH2S
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:150,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:156,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:157,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:160,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:161,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:167,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:168,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:169,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_hk.c:170,1
    - Dst: NEXT_IN
      Src: /src/cpython/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/cpython/Modules/cjkcodecs/_codecs_hk.c
    - condition: (0x40 <= INBYTE2 && INBYTE2 <= 0xfe)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_hk.c
    constantsTouched: []
    func_position:
      end: 178
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 178
    functionName: DECODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_hk.c
    functionUses: 5
    functionsReached:
    - OUTCHAR
    - OUTCHAR2
    - NEXT_IN
    - TRYMAP_DEC_ST
    - BH2S
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - assert
    linkageType: ''
    returnType: void
    signature: void DECODER(big5hkscs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:32,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 97
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      get_module_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:42,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:43,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: find_state_by_def
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - assert
    - get_module_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: module_state
    signature: 'module_state *

      find_state_by_def(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: clinic_get_state
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_get_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: _MultibyteCodec_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteCodec_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: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: _MultibyteCodecObject_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteCodecObject_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: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: _MultibyteStatefulCodecContext_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteStatefulCodecContext_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: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: _MultibyteStatefulEncoderContext_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteStatefulEncoderContext_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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: _MultibyteStatefulDecoderContext_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteStatefulDecoderContext_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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: _MultibyteIncrementalEncoderObject_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteIncrementalEncoderObject_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: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: _MultibyteIncrementalDecoderObject_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteIncrementalDecoderObject_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: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: _MultibyteStreamReaderObject_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteStreamReaderObject_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: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: _MultibyteStreamWriterObject_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteStreamWriterObject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:112,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:115,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:119,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - object
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: make_tuple
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - PyTuple_New
    - Py_DECREF
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_tuple(PyObject *object, Py_ssize_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:130,1
    - Dst: strcmp
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:132,1
    - Dst: strcmp
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:134,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - errors
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: internal_error_callback
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      internal_error_callback(const char *errors)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:146,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:146,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:147,1
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:150,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - errors
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(errors))
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: call_error_callback
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCodec_LookupError
    - PyUnicode_AsUTF8
    - PyObject_CallOneArg
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_error_callback(PyObject *errors, PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteStatefulCodecContext_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:163,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:172,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: codecctx_errors_get
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _MultibyteStatefulCodecContext_CAST
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codecctx_errors_get(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteStatefulCodecContext_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:183,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:186,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:190,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:194,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:198,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 205
    functionName: codecctx_errors_set
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - ERROR_DECREF
    - PyUnicode_AsUTF8
    - _MultibyteStatefulCodecContext_CAST
    - internal_error_callback
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int codecctx_errors_set(PyObject *op, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:220,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:221,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:225,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:229,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:232,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:233,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - esize
    argTypes:
    - MultibyteEncodeBuffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 237
    functionName: expand_encodebuffer
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    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: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: REQUIRE_ENCODEBUFFER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_ENCODEBUFFER(buf, s)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:267,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:278,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:291,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:294,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:295,1
    - Dst: MultibyteCodec*::encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:301,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:312,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:315,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:329,1
    - Dst: PyUnicodeEncodeError_SetStart
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:337,1
    - Dst: PyUnicodeEncodeError_SetEnd
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:338,1
    - Dst: PyUnicodeEncodeError_SetReason
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:339,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:343,1
    - Dst: call_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:347,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:351,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:351,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:352,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:352,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:352,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:353,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:354,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:360,1
    - Dst: multibytecodec_encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:363,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:370,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:373,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:373,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:374,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:376,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:377,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:377,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:381,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:381,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:382,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:394,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:398,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:399,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 105
    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: 372
        line_start: 372
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 401
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 401
    functionName: multibytecodec_encerror
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - MultibyteCodec*::encode
    - PyBytes_Check
    - multibytecodec_encode
    - PyBytes_GET_SIZE
    - PyUnicode_KIND
    - PyObject_CallFunction
    - PyCodec_StrictErrors
    - PyTuple_GET_SIZE
    - call_error_callback
    - PyErr_Occurred
    - REQUIRE_ENCODEBUFFER
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - Py_DECREF
    - PyTuple_Check
    - PyLong_Check
    - Py_NewRef
    - memcpy
    - PyBytes_AS_STRING
    - PyLong_AsSsize_t
    - PyUnicodeEncodeError_SetEnd
    - PyUnicode_FromOrdinal
    - PyUnicodeEncodeError_SetStart
    - PyUnicode_DATA
    - PyUnicodeEncodeError_SetReason
    - assert
    linkageType: ''
    returnType: int
    signature: "int multibytecodec_encerror(const 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/cpython/Modules/cjkcodecs/multibytecodec.c:427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:433,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:440,1
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:454,1
    - Dst: PyUnicodeDecodeError_SetStart
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:462,1
    - Dst: PyUnicodeDecodeError_SetEnd
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:463,1
    - Dst: PyUnicodeDecodeError_SetReason
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:464,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:468,1
    - Dst: call_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:472,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:476,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:476,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:477,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:477,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:478,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:479,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:485,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:488,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:488,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:489,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:492,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:499,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:503,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: 505
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 505
    functionName: multibytecodec_decerror
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyUnicodeDecodeError_SetReason
    - PyUnicodeDecodeError_SetEnd
    - PyCodec_StrictErrors
    - PyTuple_GET_SIZE
    - PyUnicodeDecodeError_Create
    - call_error_callback
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - Py_DECREF
    - PyTuple_Check
    - PyLong_Check
    - PyUnicodeDecodeError_SetStart
    - PyLong_AsSsize_t
    - _PyUnicodeWriter_WriteStr
    - _PyUnicodeWriter_WriteChar
    linkageType: ''
    returnType: int
    signature: "int multibytecodec_decerror(const MultibyteCodec *codec,\n                        MultibyteCodec_State
      *state,\n                        MultibyteDecodeBuffer *buf,\n                        PyObject
      *errors, Py_ssize_t e)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:519,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:522,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:529,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:530,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:533,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:537,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:540,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:541,1
    - Dst: MultibyteCodec*::encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:548,1
    - Dst: multibytecodec_encerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:554,1
    - Dst: MultibyteCodec*::encreset
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:565,1
    - Dst: multibytecodec_encerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:569,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:575,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:577,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:578,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:583,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:587,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:588,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    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: 590
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 590
    functionName: multibytecodec_encode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - Py_XDECREF
    - MultibyteCodec*::encreset
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - MultibyteCodec*::encode
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - multibytecodec_encerror
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmultibytecodec_encode(const MultibyteCodec *codec,\n                      MultibyteCodec_State
      *state,\n                      PyObject *text, Py_ssize_t *inpos_t,\n                      PyObject
      *errors, int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:617,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:620,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:623,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:626,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:631,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:633,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:635,1
    - Dst: MultibyteCodecObject*::codec::encinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:640,1
    - Dst: multibytecodec_encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:642,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:648,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:649,1
    - Dst: make_tuple
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:650,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:653,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:654,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - input
    - errors
    argTypes:
    - MultibyteCodecObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 656
    functionName: _multibytecodec_MultibyteCodec_encode_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteCodecObject*::codec::encinit
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - PyErr_SetString
    - ERROR_DECREF
    - make_tuple
    - multibytecodec_encode
    - internal_error_callback
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    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/cpython/Modules/cjkcodecs/multibytecodec.c:688,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:694,1
    - Dst: make_tuple
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:695,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:695,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:698,1
    - Dst: MultibyteCodecObject*::codec::decinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:705,1
    - Dst: MultibyteCodecObject*::codec::decode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:713,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:717,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:726,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:727,1
    - Dst: make_tuple
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:728,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:731,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:732,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:733,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - input
    - errors
    argTypes:
    - MultibyteCodecObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 736
    functionName: _multibytecodec_MultibyteCodec_decode_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - MultibyteCodecObject*::codec::decode
    - Py_GetConstant
    - ERROR_DECREF
    - make_tuple
    - MultibyteCodecObject*::codec::decinit
    - _PyUnicodeWriter_Finish
    - internal_error_callback
    - multibytecodec_decerror
    - _PyUnicodeWriter_Dealloc
    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: _MultibyteCodecObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:747,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 750
    functionName: multibytecodec_clear
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _MultibyteCodecObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int multibytecodec_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteCodecObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:755,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:756,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:756,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 759
    functionName: multibytecodec_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _MultibyteCodecObject_CAST
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int multibytecodec_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:764,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:765,1
    - Dst: multibytecodec_clear
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:766,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 769
    functionName: multibytecodec_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    - multibytecodec_clear
    linkageType: ''
    returnType: void
    signature: void multibytecodec_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 794
    functionName: STATEFUL_DCTX
    functionSourceFile: /src/cpython/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: 795
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 795
    functionName: STATEFUL_ECTX
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATEFUL_ECTX(o)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:805,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:808,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:811,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:814,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:822,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:824,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:825,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:828,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:834,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:837,1
    - Dst: multibytecodec_encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:839,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:844,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:848,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:853,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:861,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:872,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:876,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:877,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:878,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:879,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - unistr
    - final
    argTypes:
    - MultibyteStatefulEncoderContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 881
    functionName: encoder_encode_stateful
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - PyObject_CallFunction
    - PyUnicode_Append
    - PyErr_SetString
    - PyErr_SetObject
    - PyUnicode_Substring
    - Py_NewRef
    - multibytecodec_encode
    - Py_XSETREF
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nencoder_encode_stateful(MultibyteStatefulEncoderContext
      *ctx,\n                        PyObject *unistr, int final)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:893,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:901,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - MultibyteStatefulDecoderContext*
    - MultibyteDecodeBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 907
    functionName: decoder_append_pending
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_SetObject
    - Py_DECREF
    - PyUnicodeDecodeError_Create
    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: 917
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 917
    functionName: decoder_prepare_buffer
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/multibytecodec.c:929,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - MultibyteStatefulDecoderContext*
    - MultibyteDecodeBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 938
    functionName: decoder_feed_buffer
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/multibytecodec.c:954,1
    - Dst: STATEFUL_ECTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 948
    functionDepth: 5
    functionLinenumber: 948
    functionLinenumberEnd: 955
    functionName: _multibytecodec_MultibyteIncrementalEncoder_encode_impl
    functionSourceFile: /src/cpython/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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:977,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:982,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:986,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:992,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:996,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1002,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalEncoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 1009
    functionName: _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunction
    - _PyLong_FromByteArray
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetObject
    - memcpy
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_getstate_impl(MultibyteIncrementalEncoderObject
      *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1025,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1033,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1037,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1043,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1044,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1050,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - statelong
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1052
    functionName: _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - PyUnicode_DecodeUTF8
    - _PyLong_AsByteArray
    - Py_XSETREF
    - memcpy
    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/cpython/Modules/cjkcodecs/multibytecodec.c:1067,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalEncoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1074
    functionName: _multibytecodec_MultibyteIncrementalEncoder_reset_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteIncrementalEncoderObject*::codec::encreset
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_reset_impl(MultibyteIncrementalEncoderObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1091,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1095,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1099,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1103,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1104,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1105,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1111,1
    - Dst: MultibyteIncrementalEncoderObject*::codec::encinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1118,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1122,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1123,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1125
    functionName: mbiencoder_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - MultibyteCodec_Check
    - find_state_by_def
    - MultibyteIncrementalEncoderObject*::codec::encinit
    - internal_error_callback
    - PyTypeObject*::tp_alloc
    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: 1131
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1131
    functionName: mbiencoder_init
    functionSourceFile: /src/cpython/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: _MultibyteIncrementalEncoderObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1136,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1137,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1140
    functionName: mbiencoder_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_ISCUSTOM
    - _MultibyteIncrementalEncoderObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int mbiencoder_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteIncrementalEncoderObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1145,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1146,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1147,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1148,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1149,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1152
    functionName: mbiencoder_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - ERROR_DECREF
    - _MultibyteIncrementalEncoderObject_CAST
    - PyTypeObject*::tp_free
    - Py_TYPE
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void mbiencoder_dealloc(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1195,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1205,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1209,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1211,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1214,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1215,1
    - Dst: decoder_prepare_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1219,1
    - Dst: decoder_feed_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1222,1
    - Dst: STATEFUL_DCTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1222,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1226,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1229,1
    - Dst: decoder_append_pending
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1236,1
    - Dst: STATEFUL_DCTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1236,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1240,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1245,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1246,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1251,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1252,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1253,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1181
    functionDepth: 4
    functionLinenumber: 1181
    functionLinenumberEnd: 1255
    functionName: _multibytecodec_MultibyteIncrementalDecoder_decode_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - _PyUnicodeWriter_Dealloc
    - decoder_feed_buffer
    - STATEFUL_DCTX
    - decoder_append_pending
    - PyMem_Free
    - decoder_prepare_buffer
    - multibytecodec_decerror
    - _PyUnicodeWriter_Finish
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    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/cpython/Modules/cjkcodecs/multibytecodec.c:1268,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1279,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalDecoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1284
    functionName: _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyBytes_FromStringAndSize
    - _PyLong_FromByteArray
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_getstate_impl(MultibyteIncrementalDecoderObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1303,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1309,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1316,1
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1322,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1323,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1328,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1332,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1337,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1341
    functionName: _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicodeDecodeError_Create
    - PyArg_ParseTuple
    - PyErr_SetObject
    - PyBytes_AsString
    - _PyLong_AsByteArray
    - memcpy
    - PyBytes_Size
    - PyBytes_AS_STRING
    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/cpython/Modules/cjkcodecs/multibytecodec.c:1352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalDecoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1357
    functionName: _multibytecodec_MultibyteIncrementalDecoder_reset_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/multibytecodec.c:1374,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1378,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1382,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1386,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1387,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1388,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1394,1
    - Dst: MultibyteIncrementalDecoderObject*::codec::decinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1401,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1405,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1406,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1408
    functionName: mbidecoder_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - MultibyteIncrementalDecoderObject*::codec::decinit
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - MultibyteCodec_Check
    - find_state_by_def
    - internal_error_callback
    - PyTypeObject*::tp_alloc
    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: 1414
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1414
    functionName: mbidecoder_init
    functionSourceFile: /src/cpython/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: _MultibyteIncrementalDecoderObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1419,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1420,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1423
    functionName: mbidecoder_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _MultibyteIncrementalDecoderObject_CAST
    - ERROR_ISCUSTOM
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int mbidecoder_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteIncrementalDecoderObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1428,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1429,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1430,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1431,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1434
    functionName: mbidecoder_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - ERROR_DECREF
    - PyTypeObject*::tp_free
    - _MultibyteIncrementalDecoderObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbidecoder_dealloc(PyObject *op)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1464,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1466,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1474,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1477,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1482,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1483,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1486,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1490,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1496,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1497,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1500,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1501,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1504,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1505,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1506,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1507,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1508,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1509,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1513,1
    - Dst: decoder_prepare_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1514,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1514,1
    - Dst: decoder_feed_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1518,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1524,1
    - Dst: decoder_append_pending
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1530,1
    - Dst: STATEFUL_DCTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1530,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1535,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1543,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1547,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1548,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1552,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1553,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1554,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 3
    argNames:
    - self
    - method
    - sizehint
    argTypes:
    - MultibyteStreamReaderObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1455
    functionDepth: 4
    functionLinenumber: 1455
    functionLinenumberEnd: 1556
    functionName: mbstreamreader_iread
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - PyBytes_Check
    - Py_SETREF
    - PyBytes_GET_SIZE
    - decoder_feed_buffer
    - Py_GetConstant
    - PyErr_Format
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyBytes_FromStringAndSize
    - STATEFUL_DCTX
    - memcpy
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyErr_NoMemory
    - PyObject_CallMethod
    - decoder_append_pending
    - decoder_prepare_buffer
    - multibytecodec_decerror
    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/cpython/Modules/cjkcodecs/multibytecodec.c:1574,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1575,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1577,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1581,1
    - Dst: mbstreamreader_iread
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - sizeobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1565
    functionDepth: 5
    functionLinenumber: 1565
    functionLinenumberEnd: 1585
    functionName: _multibytecodec_MultibyteStreamReader_read_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - mbstreamreader_iread
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamReader_read_impl(MultibyteStreamReaderObject
      *self,\n                                                PyObject *sizeobj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1603,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1604,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1606,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1610,1
    - Dst: mbstreamreader_iread
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - sizeobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1594
    functionDepth: 5
    functionLinenumber: 1594
    functionLinenumberEnd: 1614
    functionName: _multibytecodec_MultibyteStreamReader_readline_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - mbstreamreader_iread
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamReader_readline_impl(MultibyteStreamReaderObject
      *self,\n                                                    PyObject *sizeobj)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1633,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1634,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1636,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1640,1
    - Dst: mbstreamreader_iread
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1643,1
    - Dst: PyUnicode_Splitlines
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1648,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - sizehintobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1623
    functionDepth: 5
    functionLinenumber: 1623
    functionLinenumberEnd: 1650
    functionName: _multibytecodec_MultibyteStreamReader_readlines_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - mbstreamreader_iread
    - PyUnicode_Splitlines
    - PyLong_AsSsize_t
    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/cpython/Modules/cjkcodecs/multibytecodec.c:1661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteStreamReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1666
    functionName: _multibytecodec_MultibyteStreamReader_reset_impl
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/multibytecodec.c:1690,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1694,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1698,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1702,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1703,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1704,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1709,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1711,1
    - Dst: MultibyteStreamReaderObject*::codec::decinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1718,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1723,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1725
    functionName: mbstreamreader_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetString
    - MultibyteStreamReaderObject*::codec::decinit
    - PyArg_ParseTupleAndKeywords
    - MultibyteCodec_Check
    - Py_NewRef
    - find_state_by_def
    - internal_error_callback
    - PyTypeObject*::tp_alloc
    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: 1731
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1731
    functionName: mbstreamreader_init
    functionSourceFile: /src/cpython/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: _MultibyteStreamReaderObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1736,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1737,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1738,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1741
    functionName: mbstreamreader_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - ERROR_ISCUSTOM
    - _MultibyteStreamReaderObject_CAST
    linkageType: ''
    returnType: int
    signature: int mbstreamreader_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteStreamReaderObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1746,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1747,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1748,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1749,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1750,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1753
    functionName: mbstreamreader_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - ERROR_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    - _MultibyteStreamReaderObject_CAST
    linkageType: ''
    returnType: void
    signature: void mbstreamreader_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encoder_encode_stateful
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1781,1
    - Dst: STATEFUL_ECTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1781,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - unistr
    - str_write
    argTypes:
    - MultibyteStreamWriterObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1775
    functionDepth: 5
    functionLinenumber: 1775
    functionLinenumberEnd: 1792
    functionName: mbstreamwriter_iwrite
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - STATEFUL_ECTX
    - encoder_encode_stateful
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int mbstreamwriter_iwrite(MultibyteStreamWriterObject *self,\n                      PyObject
      *unistr, PyObject *str_write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1808,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1809,1
    - Dst: mbstreamwriter_iwrite
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - cls
    - strobj
    argTypes:
    - MultibyteStreamWriterObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1808
        line_start: 1808
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 1814
      start: 1802
    functionDepth: 6
    functionLinenumber: 1802
    functionLinenumberEnd: 1814
    functionName: _multibytecodec_MultibyteStreamWriter_write_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - mbstreamwriter_iwrite
    - PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamWriter_write_impl(MultibyteStreamWriterObject
      *self,\n                                                 PyTypeObject *cls,\n
      \                                                PyObject *strobj)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1833,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1834,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1839,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1840,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1841,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1843,1
    - Dst: mbstreamwriter_iwrite
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1847,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1848,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - cls
    - lines
    argTypes:
    - MultibyteStreamWriterObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 1857
      start: 1824
    functionDepth: 6
    functionLinenumber: 1824
    functionLinenumberEnd: 1857
    functionName: _multibytecodec_MultibyteStreamWriter_writelines_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_DECREF
    - PySequence_Check
    - PyErr_Occurred
    - PyErr_SetString
    - PyType_GetModuleState
    - PySequence_Length
    - mbstreamwriter_iwrite
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamWriter_writelines_impl(MultibyteStreamWriterObject
      *self,\n                                                      PyTypeObject *cls,\n
      \                                                     PyObject *lines)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: multibytecodec_encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1877,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1884,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1888,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1888,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1890,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1891,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1893,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1902,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - MultibyteStreamWriterObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyBytes_Check(pwrt))
      pos:
        line_end: 1887
        line_start: 1887
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    - condition: (state != NULL)
      pos:
        line_end: 1890
        line_start: 1890
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 1905
      start: 1867
    functionDepth: 4
    functionLinenumber: 1867
    functionLinenumberEnd: 1905
    functionName: _multibytecodec_MultibyteStreamWriter_reset_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodOneArg
    - PyType_GetModuleState
    - PyBytes_Check
    - multibytecodec_encode
    - PyBytes_Size
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject
      *self,\n                                                 PyTypeObject *cls)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1914,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1918,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1922,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1926,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1927,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1928,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1933,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1935,1
    - Dst: MultibyteStreamWriterObject*::codec::encinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1942,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1946,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1947,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1907
    functionDepth: 2
    functionLinenumber: 1907
    functionLinenumberEnd: 1949
    functionName: mbstreamwriter_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - MultibyteCodec_Check
    - Py_NewRef
    - find_state_by_def
    - internal_error_callback
    - PyTypeObject*::tp_alloc
    - MultibyteStreamWriterObject*::codec::encinit
    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: 1955
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1955
    functionName: mbstreamwriter_init
    functionSourceFile: /src/cpython/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: _MultibyteStreamWriterObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1960,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1961,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1962,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1957
    functionDepth: 1
    functionLinenumber: 1957
    functionLinenumberEnd: 1965
    functionName: mbstreamwriter_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _MultibyteStreamWriterObject_CAST
    - ERROR_ISCUSTOM
    linkageType: ''
    returnType: int
    signature: int mbstreamwriter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteStreamWriterObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1970,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1971,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1972,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1973,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1974,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 1977
    functionName: mbstreamwriter_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _MultibyteStreamWriterObject_CAST
    - Py_DECREF
    - PyObject_GC_UnTrack
    - ERROR_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbstreamwriter_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_IsValid
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2027,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2028,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2032,1
    - Dst: MultibyteCodec*::codecinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2034,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2037,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2038,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2042,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2046
    functionName: _multibytecodec___create_codec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyErr_SetString
    - Py_NewRef
    - MultibyteCodec*::codecinit
    - PyObject_GC_Track
    - PyCapsule_GetPointer
    - PyObject_GC_New
    - PyCapsule_IsValid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec___create_codec(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2051,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2052,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2053,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2054,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2055,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2058
    functionName: _multibytecodec_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _multibytecodec_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2063,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2064,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2065,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2066,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2067,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2068,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2071
    functionName: _multibytecodec_clear
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int _multibytecodec_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_clear
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2073
    functionDepth: 2
    functionLinenumber: 2073
    functionLinenumberEnd: 2077
    functionName: _multibytecodec_free
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _multibytecodec_clear
    linkageType: ''
    returnType: void
    signature: void _multibytecodec_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - module
    - ','
    - type
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2086
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(module, type, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2093
    functionName: ADD_TYPE
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(module, type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2097,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2098,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2102,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2103,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2104,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2105,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2106,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2108,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2109,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2110,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2113
    functionName: _multibytecodec_exec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ADD_TYPE
    - PyUnicode_InternFromString
    - get_module_state
    - CREATE_TYPE
    linkageType: ''
    returnType: int
    signature: int _multibytecodec_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2141
    functionDepth: 1
    functionLinenumber: 2141
    functionLinenumberEnd: 2145
    functionName: PyInit__multibytecodec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__multibytecodec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:82,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 102
    functionsReached:
    - PyModule_GetState
    - assert
    linkageType: ''
    returnType: cjkcodecs_module_state
    signature: 'cjkcodecs_module_state *

      get_module_state(PyObject *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: CODEC_INIT
    functionSourceFile: /src/cpython/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: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: ENCODER_INIT
    functionSourceFile: /src/cpython/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: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: ENCODER
    functionSourceFile: /src/cpython/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: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ENCODER_RESET
    functionSourceFile: /src/cpython/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: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: DECODER_INIT
    functionSourceFile: /src/cpython/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: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: DECODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 5
    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: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: DECODER_RESET
    functionSourceFile: /src/cpython/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: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: NEXT_IN
    functionSourceFile: /src/cpython/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: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: NEXT_INCHAR
    functionSourceFile: /src/cpython/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: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: NEXT_OUT
    functionSourceFile: /src/cpython/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: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: NEXT
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 16
    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: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: REQUIRE_INBUF
    functionSourceFile: /src/cpython/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: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: REQUIRE_OUTBUF
    functionSourceFile: /src/cpython/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: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: OUTCHAR
    functionSourceFile: /src/cpython/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: 172
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: OUTCHAR2
    functionSourceFile: /src/cpython/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: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: OUTBYTEI
    functionSourceFile: /src/cpython/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: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: OUTBYTE1
    functionSourceFile: /src/cpython/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: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: OUTBYTE2
    functionSourceFile: /src/cpython/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: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: OUTBYTE3
    functionSourceFile: /src/cpython/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: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: OUTBYTE4
    functionSourceFile: /src/cpython/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: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: WRITEBYTE1
    functionSourceFile: /src/cpython/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: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: WRITEBYTE2
    functionSourceFile: /src/cpython/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: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: WRITEBYTE3
    functionSourceFile: /src/cpython/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: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: WRITEBYTE4
    functionSourceFile: /src/cpython/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: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: _TRYMAP_ENC
    functionSourceFile: /src/cpython/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: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: TRYMAP_ENC
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYMAP_ENC(charset, assi, uni)
  - 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: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: TRYMAP_ENC_ST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYMAP_ENC_ST(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: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: _TRYMAP_DEC
    functionSourceFile: /src/cpython/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: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: TRYMAP_DEC
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYMAP_DEC(charset, assi, c1, c2)
  - 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: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: TRYMAP_DEC_ST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYMAP_DEC_ST(charset, assi, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NUM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: BEGIN_MAPPINGS_LIST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_MAPPINGS_LIST(NUM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: MAPPING_ENCONLY
    functionSourceFile: /src/cpython/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: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: MAPPING_DECONLY
    functionSourceFile: /src/cpython/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: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: MAPPING_ENCDEC
    functionSourceFile: /src/cpython/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:
    - (
    - NUM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: BEGIN_CODECS_LIST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_CODECS_LIST(NUM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: _STATEFUL_METHODS
    functionSourceFile: /src/cpython/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: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: _STATELESS_METHODS
    functionSourceFile: /src/cpython/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: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: CODEC_STATEFUL
    functionSourceFile: /src/cpython/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: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: CODEC_STATELESS
    functionSourceFile: /src/cpython/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: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: CODEC_STATELESS_WINIT
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC_STATELESS_WINIT(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: getmultibytecodec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getmultibytecodec(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:309,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: destroy_codec_capsule
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_Free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void destroy_codec_capsule(PyObject *capsule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:316,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:318,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mod
    - codec
    argTypes:
    - PyObject*
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 324
    functionName: capsulate_codec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: codec_capsule
    signature: 'codec_capsule *

      capsulate_codec(PyObject *mod, const MultibyteCodec *codec)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getmultibytecodec
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:329,1
    - Dst: capsulate_codec
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:336,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:339,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:343,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - codec
    argTypes:
    - PyObject*
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 351
    functionName: _getcodec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - getmultibytecodec
    - PyObject_CallOneArg
    - PyCapsule_New
    - capsulate_codec
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _getcodec(PyObject *self, const MultibyteCodec *codec)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:356,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:357,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:361,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:366,1
    - Dst: strcmp
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:369,1
    - Dst: _getcodec
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - encoding
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 377
    functionName: getcodec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 1
    functionsReached:
    - get_module_state
    - PyErr_SetString
    - PyUnicode_AsUTF8
    - strcmp
    - _getcodec
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getcodec(PyObject *self, PyObject *encoding)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:386,1
    - Dst: add_mappings
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:387,1
    - Dst: add_codecs
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:390,1
    - Dst: strcpy
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:397,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:399,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 405
    functionName: register_maps
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyCapsule_New
    - add_mappings
    - PyModule_Add
    - add_codecs
    - strcpy
    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: 438
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 438
    functionName: find_pairencmap
    functionSourceFile: /src/cpython/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: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: IMPORT_MAP
    functionSourceFile: /src/cpython/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/cpython/Modules/cjkcodecs/cjkcodecs.h:452,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:456,1
    - Dst: PyCapsule_IsValid
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:459,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:460,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - modname
    - symbol
    - encmap
    - decmap
    argTypes:
    - char*
    - char*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 480
    functionName: importmap
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetString
    - PyImport_ImportModule
    - PyCapsule_GetPointer
    - PyCapsule_IsValid
    linkageType: ''
    returnType: int
    signature: "int importmap(const char *modname, const char *symbol,\n          const
      void **encmap, const void **decmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_maps
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: _cjk_exec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - register_maps
    linkageType: ''
    returnType: int
    signature: int _cjk_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:492,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:493,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/cjkcodecs.h:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: _cjk_free
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _cjk_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - loc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 524
    functionName: I_AM_A_MODULE_FOR
    functionSourceFile: /src/cpython/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I_AM_A_MODULE_FOR(loc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:43,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:45,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:45,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:62,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:66,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:78,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:80,1
    - Dst: strlen
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:84,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:85,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:90,1
    - Dst: _multibytecodec_MultibyteCodec_encode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:94,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 98
    functionName: _multibytecodec_MultibyteCodec_encode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _multibytecodec_MultibyteCodec_encode_impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteCodec_encode(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:132,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:134,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:134,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:151,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:155,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:160,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:169,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:171,1
    - Dst: strlen
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:176,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:181,1
    - Dst: _multibytecodec_MultibyteCodec_decode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:185,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:190,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 194
    functionName: _multibytecodec_MultibyteCodec_decode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _multibytecodec_MultibyteCodec_decode_impl
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteCodec_decode(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:222,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:224,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:224,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:241,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:245,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:254,1
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_encode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 209
    functionDepth: 6
    functionLinenumber: 209
    functionLinenumberEnd: 263
    functionName: _multibytecodec_MultibyteIncrementalEncoder_encode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _multibytecodec_MultibyteIncrementalEncoder_encode_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_encode(PyObject *self, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: _multibytecodec_MultibyteIncrementalEncoder_getstate
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_getstate(PyObject *self, PyObject
      *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:300,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:301,1
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: _multibytecodec_MultibyteIncrementalEncoder_setstate
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
    - PyLong_Check
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_setstate(PyObject *self, PyObject
      *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_reset_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: _multibytecodec_MultibyteIncrementalEncoder_reset
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalEncoder_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_reset(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:354,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:356,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:356,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:373,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:377,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:382,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:388,1
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_decode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:393,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 402
    functionName: _multibytecodec_MultibyteIncrementalDecoder_decode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _multibytecodec_MultibyteIncrementalDecoder_decode_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_decode(PyObject *self, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: _multibytecodec_MultibyteIncrementalDecoder_getstate
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_getstate(PyObject *self, PyObject
      *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:439,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:440,1
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 448
    functionName: _multibytecodec_MultibyteIncrementalDecoder_setstate
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_setstate(PyObject *self, PyObject
      *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_reset_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 465
    functionName: _multibytecodec_MultibyteIncrementalDecoder_reset
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalDecoder_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_reset(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:485,1
    - Dst: _multibytecodec_MultibyteStreamReader_read_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 479
    functionDepth: 6
    functionLinenumber: 479
    functionLinenumberEnd: 497
    functionName: _multibytecodec_MultibyteStreamReader_read
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _multibytecodec_MultibyteStreamReader_read_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_read(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:517,1
    - Dst: _multibytecodec_MultibyteStreamReader_readline_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 511
    functionDepth: 6
    functionLinenumber: 511
    functionLinenumberEnd: 529
    functionName: _multibytecodec_MultibyteStreamReader_readline
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _multibytecodec_MultibyteStreamReader_readline_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_readline(PyObject *self, PyObject *const
      *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:549,1
    - Dst: _multibytecodec_MultibyteStreamReader_readlines_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 561
    functionName: _multibytecodec_MultibyteStreamReader_readlines
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _multibytecodec_MultibyteStreamReader_readlines_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_readlines(PyObject *self, PyObject *const
      *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteStreamReader_reset_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 578
    functionName: _multibytecodec_MultibyteStreamReader_reset
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteStreamReader_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_reset(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:613,1
    - Dst: _multibytecodec_MultibyteStreamWriter_write_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 593
    functionDepth: 7
    functionLinenumber: 593
    functionLinenumberEnd: 623
    functionName: _multibytecodec_MultibyteStreamWriter_write
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteStreamWriter_write_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamWriter_write(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:658,1
    - Dst: _multibytecodec_MultibyteStreamWriter_writelines_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 638
    functionDepth: 7
    functionLinenumber: 638
    functionLinenumberEnd: 668
    functionName: _multibytecodec_MultibyteStreamWriter_writelines
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteStreamWriter_writelines_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamWriter_writelines(PyObject *self, PyTypeObject
      *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:685,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:686,1
    - Dst: _multibytecodec_MultibyteStreamWriter_reset_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 690
    functionName: _multibytecodec_MultibyteStreamWriter_reset
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _multibytecodec_MultibyteStreamWriter_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamWriter_reset(PyObject *self, PyTypeObject *cls,
      PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Hacl_Hash_MD5_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_init(uint32_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:64,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:78,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:92,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:106,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:120,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:134,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:148,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:162,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:176,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:190,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:204,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:218,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:232,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:246,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:260,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:274,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:288,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:302,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:316,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:330,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:344,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:358,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:372,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:386,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:400,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:414,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:428,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:442,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:456,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:470,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:484,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:498,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:512,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:526,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:540,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:554,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:568,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:582,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:596,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:610,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:624,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:638,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:652,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:666,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:680,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:694,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:708,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:722,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:736,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:750,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:764,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:778,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:792,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:806,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:820,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:834,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:848,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:862,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:876,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:890,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:904,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:918,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:932,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 69
    argCount: 2
    argNames:
    - abcd
    - x
    argTypes:
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 962
    functionName: update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 17
    functionsReached:
    - load32_le
    linkageType: ''
    returnType: void
    signature: void update(uint32_t *abcd, uint8_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - len
    - dst
    argTypes:
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 975
    functionName: pad
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 8
    functionsReached:
    - store64_le
    linkageType: ''
    returnType: void
    signature: void pad(uint64_t len, uint8_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:979,1
    - Dst: store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 980
    functionName: Hacl_Hash_MD5_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 0
    functionsReached:
    - store32_le
    - KRML_MAYBE_FOR4
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_finish(uint32_t *s, uint8_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - blocks
    - n_blocks
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 990
    functionName: Hacl_Hash_MD5_update_multi
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_update_multi(uint32_t *s, uint8_t *blocks, uint32_t
      n_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1000,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1008,1
    - Dst: pad
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1009,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - s
    - prev_len
    - input
    - input_len
    argTypes:
    - uint32_t*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1011
    functionName: Hacl_Hash_MD5_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_MD5_update_multi
    - pad
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_update_last(uint32_t *s, uint64_t prev_len, uint8_t
      *input, uint32_t input_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1035,1
    - Dst: Hacl_Hash_MD5_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1036,1
    - Dst: Hacl_Hash_MD5_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1038
    functionName: Hacl_Hash_MD5_hash_oneshot
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_MD5_finish
    - Hacl_Hash_MD5_update_multi
    - Hacl_Hash_MD5_update_last
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_hash_oneshot(uint8_t *output, uint8_t *input, uint32_t
      input_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1042,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1048,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1060,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1078,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1085,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1086,1
    - Dst: Hacl_Hash_MD5_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1089,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1094,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1095,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1099,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1104
    functionName: Hacl_Hash_MD5_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - Hacl_Hash_MD5_init
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_32
    signature: Hacl_Streaming_MD_state_32 *Hacl_Hash_MD5_malloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1115
    functionName: Hacl_Hash_MD5_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_MD5_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_reset(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1154,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1182,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1198,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1200,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1229,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1254,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1271,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1273,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1284
    functionName: Hacl_Hash_MD5_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Hacl_Hash_MD5_update_multi
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Hash_MD5_update(Hacl_Streaming_MD_state_32
      *state, uint8_t *chunk, uint32_t chunk_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1303,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1315,1
    - Dst: Hacl_Hash_MD5_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1317,1
    - Dst: Hacl_Hash_MD5_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - state
    - output
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1286
    functionDepth: 2
    functionLinenumber: 1286
    functionLinenumberEnd: 1319
    functionName: Hacl_Hash_MD5_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 2
    functionsReached:
    - memcpy
    - Hacl_Hash_MD5_finish
    - Hacl_Hash_MD5_update_multi
    - Hacl_Hash_MD5_update_last
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_digest(Hacl_Streaming_MD_state_32 *state, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1326,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1327,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1329
    functionName: Hacl_Hash_MD5_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_free(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1337,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1342,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1343,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1355,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1361,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1374,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1381,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1382,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1389,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1390,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1394,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1398,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1399
    functionName: Hacl_Hash_MD5_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_MALLOC
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_32
    signature: Hacl_Streaming_MD_state_32 *Hacl_Hash_MD5_copy(Hacl_Streaming_MD_state_32
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_hash_oneshot
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1401
    functionDepth: 3
    functionLinenumber: 1401
    functionLinenumberEnd: 1404
    functionName: Hacl_Hash_MD5_hash
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_MD5.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_MD5_hash_oneshot
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_MD5_hash(uint8_t *output, uint8_t *input, uint32_t input_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SecureZeroMemory
      Src: /src/cpython/Modules/_hacl/Lib_Memzero0.c:57,1
    - Dst: memset_s
      Src: /src/cpython/Modules/_hacl/Lib_Memzero0.c:59,1
    - Dst: explicit_bzero
      Src: /src/cpython/Modules/_hacl/Lib_Memzero0.c:61,1
    - Dst: explicit_memset
      Src: /src/cpython/Modules/_hacl/Lib_Memzero0.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - len
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: Lib_Memzero0_memzero0
    functionSourceFile: /src/cpython/Modules/_hacl/Lib_Memzero0.c
    functionUses: 0
    functionsReached:
    - explicit_bzero
    - explicit_memset
    - SecureZeroMemory
    - memset_s
    linkageType: ''
    returnType: void
    signature: void Lib_Memzero0_memzero0(void *dst, uint64_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:46,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:52,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:79,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:81,1
    - Dst: KRML_MAYBE_FOR10
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:88,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:152,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:159,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:168,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:176,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:186,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:195,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:203,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:213,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:220,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:229,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:237,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:247,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:256,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:264,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:308,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:315,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:324,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:332,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:342,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:351,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:359,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:369,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:376,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:385,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:393,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:403,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:412,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:420,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:464,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:471,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:478,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 160
    argCount: 6
    argNames:
    - wv
    - hash
    - flag
    - last_node
    - totlen
    - d
    argTypes:
    - uint32_t*
    - uint32_t*
    - bool
    - bool
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 492
    functionName: update_block
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR16
    - KRML_MAYBE_FOR10
    - KRML_MAYBE_FOR4
    - memcpy
    - load32_le
    linkageType: ''
    returnType: void
    signature: "void update_block(\n  uint32_t *wv,\n  uint32_t *hash,\n  bool flag,\n
      \ bool last_node,\n  uint64_t totlen,\n  uint8_t *d\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:525,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:531,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:535,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - hash
    - kk
    - nn
    argTypes:
    - uint32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 577
    functionName: Hacl_Hash_Blake2s_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR2
    - load32_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_init(uint32_t *hash, uint32_t kk, uint32_t nn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:583,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:586,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:590,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 593
    functionName: update_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - memcpy
    - update_block
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: void update_key(uint32_t *wv, uint32_t *hash, uint32_t kk, uint8_t
      *k, uint32_t ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:605,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    - nb
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 612
    functionName: Hacl_Hash_Blake2s_update_multi
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - update_block
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_update_multi(\n  uint32_t len,\n  uint32_t
      *wv,\n  uint32_t *hash,\n  uint64_t prev,\n  uint8_t *blocks,\n  uint32_t nb\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:627,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:629,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - len
    - wv
    - hash
    - last_node
    - prev
    - rem
    - d
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - bool
    - uint64_t
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 631
    functionName: Hacl_Hash_Blake2s_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - memcpy
    - update_block
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_update_last(\n  uint32_t len,\n  uint32_t *wv,\n
      \ uint32_t *hash,\n  bool last_node,\n  uint64_t prev,\n  uint32_t rem,\n  uint8_t
      *d\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:656,1
    - Dst: Hacl_Hash_Blake2s_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 658
    functionName: update_blocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_update_multi
    - Hacl_Hash_Blake2s_update_last
    linkageType: ''
    returnType: void
    signature: void update_blocks(uint32_t len, uint32_t *wv, uint32_t *hash, uint64_t
      prev, uint8_t *blocks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:666,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:669,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    - d
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 18
    functionsReached:
    - update_blocks
    - update_key
    linkageType: ''
    returnType: void
    signature: void update(uint32_t *wv, uint32_t *hash, uint32_t kk, uint8_t *k,
      uint32_t ll, uint8_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:684,1
    - Dst: store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:684,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:685,1
    - Dst: store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:685,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:687,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - nn
    - output
    - hash
    argTypes:
    - uint32_t
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 689
    functionName: Hacl_Hash_Blake2s_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - memcpy
    - store32_le
    - KRML_MAYBE_FOR4
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_finish(uint32_t nn, uint8_t *output, uint32_t
      *hash)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:701,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:707,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:720,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:723,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:749,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:777,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:786,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:787,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:788,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:803,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:804,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:828,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:834,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:838,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:844,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:885,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:886,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:890,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:894,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 78
    argCount: 2
    argNames:
    - kk
    - key
    argTypes:
    - Hacl_Hash_Blake2b_index
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 895
    functionName: malloc_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR2
    - memcpy
    - memset
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    - load32_le
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_state_t
    signature: Hacl_Hash_Blake2s_state_t *malloc_raw(Hacl_Hash_Blake2b_index kk, Hacl_Hash_Blake2b_params_and_key
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - last_node
    - k
    argTypes:
    - Hacl_Hash_Blake2b_blake2_params*
    - bool
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 923
    functionName: Hacl_Hash_Blake2s_malloc_with_params_and_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - malloc_raw
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_state_t
    signature: "Hacl_Hash_Blake2s_state_t *Hacl_Hash_Blake2s_malloc_with_params_and_key(\n
      \ Hacl_Hash_Blake2b_blake2_params *p,\n  bool last_node,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_malloc_with_params_and_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - kk
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 952
    functionName: Hacl_Hash_Blake2s_malloc_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_malloc_with_params_and_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_state_t
    signature: Hacl_Hash_Blake2s_state_t *Hacl_Hash_Blake2s_malloc_with_key(uint8_t
      *k, uint8_t kk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_malloc_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 962
    functionName: Hacl_Hash_Blake2s_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_malloc_with_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_state_t
    signature: Hacl_Hash_Blake2s_state_t *Hacl_Hash_Blake2s_malloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 972
    functionName: index_of_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index index_of_state(Hacl_Hash_Blake2s_state_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:984,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:997,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:998,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1022,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1028,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1032,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 2
    argNames:
    - state
    - key
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1087
    functionName: reset_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR2
    - memset
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - load32_le
    linkageType: ''
    returnType: void
    signature: void reset_raw(Hacl_Hash_Blake2s_state_t *state, Hacl_Hash_Blake2b_params_and_key
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1103,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1104,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - p
    - k
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    - Hacl_Hash_Blake2b_blake2_params*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1106
    functionName: Hacl_Hash_Blake2s_reset_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_reset_with_key_and_params(\n  Hacl_Hash_Blake2s_state_t
      *s,\n  Hacl_Hash_Blake2b_blake2_params *p,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1117,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - k
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1129
    functionName: Hacl_Hash_Blake2s_reset_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_reset_with_key(Hacl_Hash_Blake2s_state_t *s,
      uint8_t *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_reset_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1142
    functionName: Hacl_Hash_Blake2s_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_reset_with_key
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_reset(Hacl_Hash_Blake2s_state_t *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1181,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1214,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1234,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1236,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1265,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1295,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1316,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1318,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1329
    functionName: Hacl_Hash_Blake2s_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_Blake2s_update_multi
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Hash_Blake2s_update(Hacl_Hash_Blake2s_state_t
      *state, uint8_t *chunk, uint32_t chunk_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1376,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1393,1
    - Dst: Hacl_Hash_Blake2s_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1399,1
    - Dst: Hacl_Hash_Blake2s_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1408
    functionName: Hacl_Hash_Blake2s_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Hacl_Hash_Blake2s_update_multi
    - Hacl_Hash_Blake2s_finish
    - Hacl_Hash_Blake2s_update_last
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Hacl_Hash_Blake2s_digest(Hacl_Hash_Blake2s_state_t *s, uint8_t
      *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1418
    functionName: Hacl_Hash_Blake2s_info
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index Hacl_Hash_Blake2s_info(Hacl_Hash_Blake2s_state_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1430,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1431,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1432,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1434
    functionName: Hacl_Hash_Blake2s_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_free(Hacl_Hash_Blake2s_state_t *state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1449,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1454,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1455,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1468,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1471,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1497,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1505,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1518,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1527,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1528,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1529,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1536,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1537,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1541,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1545,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2s_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1546
    functionName: Hacl_Hash_Blake2s_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_MALLOC
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_state_t
    signature: Hacl_Hash_Blake2s_state_t *Hacl_Hash_Blake2s_copy(Hacl_Hash_Blake2s_state_t
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1570,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1571,1
    - Dst: Hacl_Hash_Blake2s_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1572,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1573,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - output
    - output_len
    - input
    - input_len
    - key
    - key_len
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1558
    functionDepth: 2
    functionLinenumber: 1558
    functionLinenumberEnd: 1575
    functionName: Hacl_Hash_Blake2s_hash_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_finish
    - update
    - Hacl_Hash_Blake2s_init
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_hash_with_key(\n  uint8_t *output,\n  uint32_t
      output_len,\n  uint8_t *input,\n  uint32_t input_len,\n  uint8_t *key,\n  uint32_t
      key_len\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1615,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1621,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1625,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1631,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1668,1
    - Dst: Hacl_Hash_Blake2s_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1669,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1670,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 5
    argNames:
    - output
    - input
    - input_len
    - params
    - key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - Hacl_Hash_Blake2b_blake2_params
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1672
    functionName: Hacl_Hash_Blake2s_hash_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR2
    - Hacl_Hash_Blake2s_finish
    - update
    - Lib_Memzero0_memzero
    - load32_le
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_hash_with_key_and_params(\n  uint8_t *output,\n
      \ uint8_t *input,\n  uint32_t input_len,\n  Hacl_Hash_Blake2b_blake2_params
      params,\n  uint8_t *key\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: Hacl_Hash_SHA2_sha256_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR8
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha256_init(uint32_t *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:48,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:50,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:52,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:54,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:56,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:58,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:60,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:62,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:64,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:66,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:68,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:70,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:72,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:74,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:76,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:78,1
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:80,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:82,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:86,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:129,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - b
    - hash
    argTypes:
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 148
    functionName: sha256_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR16
    - KRML_MAYBE_FOR8
    - load32_be
    - KRML_MAYBE_FOR4
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha256_update(uint8_t *b, uint32_t *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - len
    - b
    - st
    argTypes:
    - uint32_t
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: Hacl_Hash_SHA2_sha256_update_nblocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - sha256_update
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha256_update_nblocks(uint32_t len, uint8_t *b,
      uint32_t *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: store64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:177,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:179,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:181,1
    - Dst: sha256_update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:190,1
    - Dst: sha256_update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - totlen
    - len
    - b
    - hash
    argTypes:
    - uint64_t
    - uint32_t
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 196
    functionName: Hacl_Hash_SHA2_sha256_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - store64_be
    - sha256_update
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha256_update_last(uint64_t totlen, uint32_t len,
      uint8_t *b, uint32_t *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:201,1
    - Dst: store32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:201,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - h
    argTypes:
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Hacl_Hash_SHA2_sha256_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR8
    - store32_be
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha256_finish(uint32_t *st, uint8_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: Hacl_Hash_SHA2_sha224_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR8
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha224_init(uint32_t *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len
    - b
    - st
    argTypes:
    - uint32_t
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: Hacl_Hash_SHA2_sha224_update_nblocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha256_update_nblocks
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha224_update_nblocks(uint32_t len, uint8_t *b,
      uint32_t *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - totlen
    - len
    - b
    - st
    argTypes:
    - uint64_t
    - uint32_t
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: Hacl_Hash_SHA2_sha224_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha256_update_last
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha224_update_last(uint64_t totlen, uint32_t len,
      uint8_t *b, uint32_t *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:229,1
    - Dst: store32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:229,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - h
    argTypes:
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: Hacl_Hash_SHA2_sha224_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR8
    - store32_be
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha224_finish(uint32_t *st, uint8_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: Hacl_Hash_SHA2_sha512_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR8
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha512_init(uint64_t *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:248,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:250,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:252,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:254,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:256,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:258,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:260,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:262,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:264,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:266,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:268,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:270,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:272,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:274,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:276,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:278,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:280,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:282,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:286,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:329,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - b
    - hash
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 348
    functionName: sha512_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR16
    - KRML_MAYBE_FOR8
    - load64_be
    - KRML_MAYBE_FOR5
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha512_update(uint8_t *b, uint64_t *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - len
    - b
    - st
    argTypes:
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: Hacl_Hash_SHA2_sha512_update_nblocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - sha512_update
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha512_update_nblocks(uint32_t len, uint8_t *b,
      uint64_t *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_shift_left
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:381,1
    - Dst: store128_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:382,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:384,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:386,1
    - Dst: sha512_update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:395,1
    - Dst: sha512_update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - totlen
    - len
    - b
    - hash
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 401
    functionName: Hacl_Hash_SHA2_sha512_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FStar_UInt128_shift_left
    - sha512_update
    - store128_be
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA2_sha512_update_last(\n  FStar_UInt128_uint128 totlen,\n
      \ uint32_t len,\n  uint8_t *b,\n  uint64_t *hash\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:406,1
    - Dst: store64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:406,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - h
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: Hacl_Hash_SHA2_sha512_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR8
    - store64_be
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha512_finish(uint64_t *st, uint8_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: Hacl_Hash_SHA2_sha384_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR8
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha384_init(uint64_t *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len
    - b
    - st
    argTypes:
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: Hacl_Hash_SHA2_sha384_update_nblocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha512_update_nblocks
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha384_update_nblocks(uint32_t len, uint8_t *b,
      uint64_t *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha512_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - totlen
    - len
    - b
    - st
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: Hacl_Hash_SHA2_sha384_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha512_update_last
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA2_sha384_update_last(\n  FStar_UInt128_uint128 totlen,\n
      \ uint32_t len,\n  uint8_t *b,\n  uint64_t *st\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:440,1
    - Dst: store64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:440,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - h
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: Hacl_Hash_SHA2_sha384_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR8
    - store64_be
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_sha384_finish(uint64_t *st, uint8_t *h)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:450,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:456,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:468,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:486,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:493,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:494,1
    - Dst: Hacl_Hash_SHA2_sha256_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:497,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:502,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:503,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:507,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 512
    functionName: Hacl_Hash_SHA2_malloc_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA2_sha256_init
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_32
    signature: Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_malloc_256(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:526,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:531,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:532,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:544,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:550,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:563,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:570,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:571,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:578,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:579,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:583,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 588
    functionName: Hacl_Hash_SHA2_copy_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_MALLOC
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_32
    signature: Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_copy_256(Hacl_Streaming_MD_state_32
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha256_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 602
    functionName: Hacl_Hash_SHA2_reset_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha256_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_reset_256(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:638,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:666,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:682,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:684,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:713,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:738,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:755,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:757,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 768
    functionName: update_224_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA2_sha256_update_nblocks
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code update_224_256(Hacl_Streaming_MD_state_32
      *state, uint8_t *chunk, uint32_t chunk_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_224_256
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - input
    - input_len
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 777
    functionDepth: 4
    functionLinenumber: 777
    functionLinenumberEnd: 785
    functionName: Hacl_Hash_SHA2_update_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - update_224_256
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Hash_SHA2_update_256(\n  Hacl_Streaming_MD_state_32
      *state,\n  uint8_t *input,\n  uint32_t input_len\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:810,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:822,1
    - Dst: Hacl_Hash_SHA2_sha256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:824,1
    - Dst: Hacl_Hash_SHA2_sha256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - state
    - output
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 826
    functionName: Hacl_Hash_SHA2_digest_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 2
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - Hacl_Hash_SHA2_sha256_update_last
    - Hacl_Hash_SHA2_sha256_finish
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_digest_256(Hacl_Streaming_MD_state_32 *state, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:838,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:839,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 841
    functionName: Hacl_Hash_SHA2_free_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_free_256(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha256_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:851,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:854,1
    - Dst: Hacl_Hash_SHA2_sha256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:858,1
    - Dst: Hacl_Hash_SHA2_sha256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 860
    functionName: Hacl_Hash_SHA2_hash_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - Hacl_Hash_SHA2_sha256_init
    - Hacl_Hash_SHA2_sha256_finish
    - Hacl_Hash_SHA2_sha256_update_last
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_hash_256(uint8_t *output, uint8_t *input, uint32_t
      input_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:864,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:870,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:882,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:900,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:907,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:908,1
    - Dst: Hacl_Hash_SHA2_sha224_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:911,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:916,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:917,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:921,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:925,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 926
    functionName: Hacl_Hash_SHA2_malloc_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_CALLOC
    - Hacl_Hash_SHA2_sha224_init
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_32
    signature: Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA2_malloc_224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha224_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 937
    functionName: Hacl_Hash_SHA2_reset_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha224_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_reset_224(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_224_256
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - input
    - input_len
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 939
    functionDepth: 4
    functionLinenumber: 939
    functionLinenumberEnd: 947
    functionName: Hacl_Hash_SHA2_update_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - update_224_256
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Hash_SHA2_update_224(\n  Hacl_Streaming_MD_state_32
      *state,\n  uint8_t *input,\n  uint32_t input_len\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:971,1
    - Dst: Hacl_Hash_SHA2_sha224_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:983,1
    - Dst: Hacl_Hash_SHA2_sha224_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:985,1
    - Dst: Hacl_Hash_SHA2_sha224_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - state
    - output
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 954
    functionDepth: 4
    functionLinenumber: 954
    functionLinenumberEnd: 987
    functionName: Hacl_Hash_SHA2_digest_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA2_sha224_update_last
    - Hacl_Hash_SHA2_sha224_finish
    - Hacl_Hash_SHA2_sha224_update_nblocks
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_digest_224(Hacl_Streaming_MD_state_32 *state, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_free_256
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 992
    functionName: Hacl_Hash_SHA2_free_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_free_256
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_free_224(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha224_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1002,1
    - Dst: Hacl_Hash_SHA2_sha224_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1005,1
    - Dst: Hacl_Hash_SHA2_sha224_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1009,1
    - Dst: Hacl_Hash_SHA2_sha224_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 997
    functionDepth: 4
    functionLinenumber: 997
    functionLinenumberEnd: 1011
    functionName: Hacl_Hash_SHA2_hash_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha224_init
    - Hacl_Hash_SHA2_sha224_update_last
    - Hacl_Hash_SHA2_sha224_finish
    - Hacl_Hash_SHA2_sha224_update_nblocks
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_hash_224(uint8_t *output, uint8_t *input, uint32_t
      input_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1015,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1021,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1033,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1051,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1058,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1059,1
    - Dst: Hacl_Hash_SHA2_sha512_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1062,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1067,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1068,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1072,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1076,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1077
    functionName: Hacl_Hash_SHA2_malloc_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA2_sha512_init
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_64
    signature: Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_malloc_512(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1091,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1096,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1097,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1109,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1115,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1128,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1135,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1136,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1143,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1144,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1148,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1153
    functionName: Hacl_Hash_SHA2_copy_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_MALLOC
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_64
    signature: Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_copy_512(Hacl_Streaming_MD_state_64
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha512_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1164
    functionName: Hacl_Hash_SHA2_reset_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha512_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_reset_512(Hacl_Streaming_MD_state_64 *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1200,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1228,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1244,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1246,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1275,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1300,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1317,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1319,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Streaming_MD_state_64*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1166
    functionDepth: 3
    functionLinenumber: 1166
    functionLinenumberEnd: 1330
    functionName: update_384_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA2_sha512_update_nblocks
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code update_384_512(Hacl_Streaming_MD_state_64
      *state, uint8_t *chunk, uint32_t chunk_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_384_512
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - input
    - input_len
    argTypes:
    - Hacl_Streaming_MD_state_64*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1339
    functionDepth: 4
    functionLinenumber: 1339
    functionLinenumberEnd: 1347
    functionName: Hacl_Hash_SHA2_update_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - update_384_512
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Hash_SHA2_update_512(\n  Hacl_Streaming_MD_state_64
      *state,\n  uint8_t *input,\n  uint32_t input_len\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1372,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1384,1
    - Dst: Hacl_Hash_SHA2_sha512_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1386,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1386,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1386,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1387,1
    - Dst: Hacl_Hash_SHA2_sha512_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - state
    - output
    argTypes:
    - Hacl_Streaming_MD_state_64*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1392
    functionName: Hacl_Hash_SHA2_digest_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 2
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_add
    - Hacl_Hash_SHA2_sha512_update_last
    - Hacl_Hash_SHA2_sha512_update_nblocks
    - memcpy
    - Hacl_Hash_SHA2_sha512_finish
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_digest_512(Hacl_Streaming_MD_state_64 *state, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1404,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1405,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1407
    functionName: Hacl_Hash_SHA2_free_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_free_512(Hacl_Streaming_MD_state_64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha512_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1417,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1419,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1420,1
    - Dst: Hacl_Hash_SHA2_sha512_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1424,1
    - Dst: Hacl_Hash_SHA2_sha512_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1412
    functionDepth: 3
    functionLinenumber: 1412
    functionLinenumberEnd: 1426
    functionName: Hacl_Hash_SHA2_hash_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha512_update_last
    - Hacl_Hash_SHA2_sha512_update_nblocks
    - Hacl_Hash_SHA2_sha512_init
    - Hacl_Hash_SHA2_sha512_finish
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_hash_512(uint8_t *output, uint8_t *input, uint32_t
      input_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1430,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1436,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1448,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1466,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1473,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1474,1
    - Dst: Hacl_Hash_SHA2_sha384_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1477,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1482,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1483,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1487,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1491,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1428
    functionDepth: 2
    functionLinenumber: 1428
    functionLinenumberEnd: 1492
    functionName: Hacl_Hash_SHA2_malloc_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA2_sha384_init
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_64
    signature: Hacl_Streaming_MD_state_64 *Hacl_Hash_SHA2_malloc_384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha384_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1494
    functionDepth: 2
    functionLinenumber: 1494
    functionLinenumberEnd: 1503
    functionName: Hacl_Hash_SHA2_reset_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha384_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_reset_384(Hacl_Streaming_MD_state_64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_384_512
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - input
    - input_len
    argTypes:
    - Hacl_Streaming_MD_state_64*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1505
    functionDepth: 4
    functionLinenumber: 1505
    functionLinenumberEnd: 1513
    functionName: Hacl_Hash_SHA2_update_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - update_384_512
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Hash_SHA2_update_384(\n  Hacl_Streaming_MD_state_64
      *state,\n  uint8_t *input,\n  uint32_t input_len\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1537,1
    - Dst: Hacl_Hash_SHA2_sha384_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1549,1
    - Dst: Hacl_Hash_SHA2_sha384_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1551,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1551,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1551,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1552,1
    - Dst: Hacl_Hash_SHA2_sha384_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - state
    - output
    argTypes:
    - Hacl_Streaming_MD_state_64*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1520
    functionDepth: 4
    functionLinenumber: 1520
    functionLinenumberEnd: 1557
    functionName: Hacl_Hash_SHA2_digest_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_add
    - Hacl_Hash_SHA2_sha384_update_nblocks
    - Hacl_Hash_SHA2_sha384_finish
    - Hacl_Hash_SHA2_sha384_update_last
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_digest_384(Hacl_Streaming_MD_state_64 *state, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_free_512
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1562
    functionName: Hacl_Hash_SHA2_free_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_free_512
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_free_384(Hacl_Streaming_MD_state_64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA2_sha384_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1572,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1574,1
    - Dst: Hacl_Hash_SHA2_sha384_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1575,1
    - Dst: Hacl_Hash_SHA2_sha384_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1579,1
    - Dst: Hacl_Hash_SHA2_sha384_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1567
    functionDepth: 4
    functionLinenumber: 1567
    functionLinenumberEnd: 1581
    functionName: Hacl_Hash_SHA2_hash_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA2.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha384_update_nblocks
    - Hacl_Hash_SHA2_sha384_init
    - Hacl_Hash_SHA2_sha384_finish
    - Hacl_Hash_SHA2_sha384_update_last
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA2_hash_384(uint8_t *output, uint8_t *input, uint32_t
      input_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:45,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:51,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:74,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:75,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:75,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:78,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:80,1
    - Dst: KRML_MAYBE_FOR12
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:87,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:151,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:158,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:167,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:175,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:185,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:194,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:202,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:212,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:219,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:228,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:236,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:246,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:255,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:263,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:307,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:314,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:323,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:331,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:341,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:350,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:358,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:368,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:375,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:384,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:392,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:402,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:411,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:419,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:463,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:470,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:477,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 160
    argCount: 6
    argNames:
    - wv
    - hash
    - flag
    - last_node
    - totlen
    - d
    argTypes:
    - uint64_t*
    - uint64_t*
    - bool
    - bool
    - FStar_UInt128_uint128
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 491
    functionName: update_block
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 3
    functionsReached:
    - KRML_MAYBE_FOR16
    - FStar_UInt128_shift_right
    - FStar_UInt128_uint128_to_uint64
    - KRML_MAYBE_FOR4
    - load64_le
    - memcpy
    - KRML_MAYBE_FOR12
    linkageType: ''
    returnType: void
    signature: "void update_block(\n  uint64_t *wv,\n  uint64_t *hash,\n  bool flag,\n
      \ bool last_node,\n  FStar_UInt128_uint128 totlen,\n  uint8_t *d\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:526,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:532,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:536,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - hash
    - kk
    - nn
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 577
    functionName: Hacl_Hash_Blake2b_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - load64_le
    - KRML_MAYBE_FOR2
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_init(uint64_t *hash, uint32_t kk, uint32_t nn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:581,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:583,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:586,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:590,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 593
    functionName: update_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 1
    functionsReached:
    - memcpy
    - FStar_UInt128_uint64_to_uint128
    - update_block
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: void update_key(uint64_t *wv, uint64_t *hash, uint32_t kk, uint8_t
      *k, uint32_t ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:605,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:610,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:611,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    - nb
    argTypes:
    - uint32_t
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 615
    functionName: Hacl_Hash_Blake2b_update_multi
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_mod
    - FStar_UInt128_uint64_to_uint128
    - update_block
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_update_multi(\n  uint32_t len,\n  uint64_t
      *wv,\n  uint64_t *hash,\n  FStar_UInt128_uint128 prev,\n  uint8_t *blocks,\n
      \ uint32_t nb\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:630,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:632,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:632,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:633,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - len
    - wv
    - hash
    - last_node
    - prev
    - rem
    - d
    argTypes:
    - uint32_t
    - uint64_t*
    - uint64_t*
    - bool
    - FStar_UInt128_uint128
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 635
    functionName: Hacl_Hash_Blake2b_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_add_mod
    - Lib_Memzero0_memzero
    - memcpy
    - update_block
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_update_last(\n  uint32_t len,\n  uint64_t *wv,\n
      \ uint64_t *hash,\n  bool last_node,\n  FStar_UInt128_uint128 prev,\n  uint32_t
      rem,\n  uint8_t *d\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:666,1
    - Dst: Hacl_Hash_Blake2b_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    argTypes:
    - uint32_t
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 668
    functionName: update_blocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2b_update_last
    - Hacl_Hash_Blake2b_update_multi
    linkageType: ''
    returnType: void
    signature: "void update_blocks(\n  uint32_t len,\n  uint64_t *wv,\n  uint64_t
      *hash,\n  FStar_UInt128_uint128 prev,\n  uint8_t *blocks\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:673,1
    - Dst: update_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:676,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:679,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:684,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    - d
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 685
    functionName: update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 24
    functionsReached:
    - update_blocks
    - FStar_UInt128_uint64_to_uint128
    - update_key
    linkageType: ''
    returnType: void
    signature: void update(uint64_t *wv, uint64_t *hash, uint32_t kk, uint8_t *k,
      uint32_t ll, uint8_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:694,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:694,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:695,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:695,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:697,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - nn
    - output
    - hash
    argTypes:
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 699
    functionName: Hacl_Hash_Blake2b_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - memcpy
    - store64_le
    - KRML_MAYBE_FOR4
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_finish(uint32_t nn, uint8_t *output, uint64_t
      *hash)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:711,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:717,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:730,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:733,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:759,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:787,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:796,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:797,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:798,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:813,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:814,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:840,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:846,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:850,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:856,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:896,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:897,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:901,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:905,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 78
    argCount: 2
    argNames:
    - kk
    - key
    argTypes:
    - Hacl_Hash_Blake2b_index
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 906
    functionName: malloc_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR2
    - memcpy
    - memset
    - KRML_HOST_CALLOC
    - load64_le
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_state_t
    signature: Hacl_Hash_Blake2b_state_t *malloc_raw(Hacl_Hash_Blake2b_index kk, Hacl_Hash_Blake2b_params_and_key
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - last_node
    - k
    argTypes:
    - Hacl_Hash_Blake2b_blake2_params*
    - bool
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 934
    functionName: Hacl_Hash_Blake2b_malloc_with_params_and_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - malloc_raw
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_state_t
    signature: "Hacl_Hash_Blake2b_state_t *Hacl_Hash_Blake2b_malloc_with_params_and_key(\n
      \ Hacl_Hash_Blake2b_blake2_params *p,\n  bool last_node,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_malloc_with_params_and_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - kk
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 963
    functionName: Hacl_Hash_Blake2b_malloc_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_malloc_with_params_and_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_state_t
    signature: Hacl_Hash_Blake2b_state_t *Hacl_Hash_Blake2b_malloc_with_key(uint8_t
      *k, uint8_t kk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_malloc_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 973
    functionName: Hacl_Hash_Blake2b_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_malloc_with_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_state_t
    signature: Hacl_Hash_Blake2b_state_t *Hacl_Hash_Blake2b_malloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 983
    functionName: index_of_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index index_of_state(Hacl_Hash_Blake2b_state_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:995,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1008,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1009,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1035,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1041,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1045,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 2
    argNames:
    - state
    - key
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1099
    functionName: reset_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 2
    functionsReached:
    - KRML_MAYBE_FOR2
    - memset
    - load64_le
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    linkageType: ''
    returnType: void
    signature: void reset_raw(Hacl_Hash_Blake2b_state_t *state, Hacl_Hash_Blake2b_params_and_key
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1115,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1116,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - p
    - k
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    - Hacl_Hash_Blake2b_blake2_params*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1118
    functionName: Hacl_Hash_Blake2b_reset_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_reset_with_key_and_params(\n  Hacl_Hash_Blake2b_state_t
      *s,\n  Hacl_Hash_Blake2b_blake2_params *p,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1129,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - k
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1141
    functionName: Hacl_Hash_Blake2b_reset_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_reset_with_key(Hacl_Hash_Blake2b_state_t *s,
      uint8_t *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_reset_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1154
    functionName: Hacl_Hash_Blake2b_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_reset_with_key
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_reset(Hacl_Hash_Blake2b_state_t *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1193,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1226,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1229,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1251,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1254,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1258,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1287,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1317,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1320,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1343,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1346,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1350,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1361
    functionName: Hacl_Hash_Blake2b_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_Blake2b_update_multi
    - FStar_UInt128_uint64_to_uint128
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Hash_Blake2b_update(Hacl_Hash_Blake2b_state_t
      *state, uint8_t *chunk, uint32_t chunk_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1408,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1425,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1428,1
    - Dst: Hacl_Hash_Blake2b_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1436,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1440,1
    - Dst: Hacl_Hash_Blake2b_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1451
    functionName: Hacl_Hash_Blake2b_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2b_update_last
    - Hacl_Hash_Blake2b_finish
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - Hacl_Hash_Blake2b_update_multi
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Hacl_Hash_Blake2b_digest(Hacl_Hash_Blake2b_state_t *s, uint8_t
      *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1461
    functionName: Hacl_Hash_Blake2b_info
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index Hacl_Hash_Blake2b_info(Hacl_Hash_Blake2b_state_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1473,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1474,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1475,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1477
    functionName: Hacl_Hash_Blake2b_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_free(Hacl_Hash_Blake2b_state_t *state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1492,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1497,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1498,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1511,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1514,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1540,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1548,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1561,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1570,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1571,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1572,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1579,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1580,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1584,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2b_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1589
    functionName: Hacl_Hash_Blake2b_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_MALLOC
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_state_t
    signature: Hacl_Hash_Blake2b_state_t *Hacl_Hash_Blake2b_copy(Hacl_Hash_Blake2b_state_t
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1613,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1614,1
    - Dst: Hacl_Hash_Blake2b_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1615,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1616,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - output
    - output_len
    - input
    - input_len
    - key
    - key_len
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1618
    functionName: Hacl_Hash_Blake2b_hash_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_finish
    - Hacl_Hash_Blake2b_init
    - update
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_hash_with_key(\n  uint8_t *output,\n  uint32_t
      output_len,\n  uint8_t *input,\n  uint32_t input_len,\n  uint8_t *key,\n  uint32_t
      key_len\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1660,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1666,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1670,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1676,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1712,1
    - Dst: Hacl_Hash_Blake2b_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1713,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1714,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c:1715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 5
    argNames:
    - output
    - input
    - input_len
    - params
    - key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - Hacl_Hash_Blake2b_blake2_params
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1626
    functionDepth: 2
    functionLinenumber: 1626
    functionLinenumberEnd: 1716
    functionName: Hacl_Hash_Blake2b_hash_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR2
    - Hacl_Hash_Blake2b_finish
    - load64_le
    - update
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_hash_with_key_and_params(\n  uint8_t *output,\n
      \ uint8_t *input,\n  uint32_t input_len,\n  Hacl_Hash_Blake2b_blake2_params
      params,\n  uint8_t *key\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Lib_IntVector_Intrinsics_bit_mask64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_bit_mask64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Lib_IntVector_Intrinsics_ni_aes_enc
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_aes_enc(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Lib_IntVector_Intrinsics_ni_aes_enc_last
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_aes_enc_last(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Lib_IntVector_Intrinsics_ni_aes_keygen_assist
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_aes_keygen_assist(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Lib_IntVector_Intrinsics_ni_clmul
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_clmul(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_xor(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_8(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_16
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_16(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_24
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_24(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Lib_IntVector_Intrinsics_vec128_shuffle32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shuffle32(x0, x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Lib_IntVector_Intrinsics_vec128_shuffle64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shuffle64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Lib_IntVector_Intrinsics_vec128_load_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Lib_IntVector_Intrinsics_vec128_load32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Lib_IntVector_Intrinsics_vec128_load64_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Lib_IntVector_Intrinsics_vec128_store_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Lib_IntVector_Intrinsics_vec128_store32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Lib_IntVector_Intrinsics_vec128_store64_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Lib_IntVector_Intrinsics_vec128_insert8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert8(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Lib_IntVector_Intrinsics_vec128_extract8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract8(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: Lib_IntVector_Intrinsics_vec128_sub32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Lib_IntVector_Intrinsics_vec128_mul32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: Lib_IntVector_Intrinsics_vec128_smul32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Lib_IntVector_Intrinsics_vec128_load128
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load128(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: Lib_IntVector_Intrinsics_vec128_load64s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64s(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Lib_IntVector_Intrinsics_vec256_eq64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: Lib_IntVector_Intrinsics_vec256_eq32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: Lib_IntVector_Intrinsics_vec256_gt64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: Lib_IntVector_Intrinsics_vec256_gt32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Lib_IntVector_Intrinsics_vec256_xor
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_xor(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Lib_IntVector_Intrinsics_vec256_or
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: Lib_IntVector_Intrinsics_vec256_and
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: Lib_IntVector_Intrinsics_vec256_lognot
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: Lib_IntVector_Intrinsics_vec256_shift_left
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_left(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Lib_IntVector_Intrinsics_vec256_shift_right
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_right(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: Lib_IntVector_Intrinsics_vec256_shift_left64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: Lib_IntVector_Intrinsics_vec256_shift_right64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: Lib_IntVector_Intrinsics_vec256_shift_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Lib_IntVector_Intrinsics_vec256_shift_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32_8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32_8(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32_16
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32_16(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32_24
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32_24(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_8(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_16
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_16(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_24
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_24(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_32(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_40
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_40(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_48
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_48(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_56
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_56(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left64(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: Lib_IntVector_Intrinsics_vec256_shuffle64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shuffle64(x0,  x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - ','
    - x5
    - ','
    - x6
    - ','
    - x7
    - ','
    - x8
    - )
    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: 334
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: Lib_IntVector_Intrinsics_vec256_shuffle32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shuffle32(x0, x1, x2, x3, x4, x5, x6,
      x7, x8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: Lib_IntVector_Intrinsics_vec256_load32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: Lib_IntVector_Intrinsics_vec256_load64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: Lib_IntVector_Intrinsics_vec256_load32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: Lib_IntVector_Intrinsics_vec256_load64_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: Lib_IntVector_Intrinsics_vec256_store32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Lib_IntVector_Intrinsics_vec256_store64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: Lib_IntVector_Intrinsics_vec256_store32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store32_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Lib_IntVector_Intrinsics_vec256_store64_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store64_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Lib_IntVector_Intrinsics_vec256_insert8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_insert8(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: Lib_IntVector_Intrinsics_vec256_insert32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: Lib_IntVector_Intrinsics_vec256_insert64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Lib_IntVector_Intrinsics_vec256_extract8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_extract8(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Lib_IntVector_Intrinsics_vec256_extract32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: Lib_IntVector_Intrinsics_vec256_extract64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Lib_IntVector_Intrinsics_vec256_add64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: Lib_IntVector_Intrinsics_vec256_sub64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Lib_IntVector_Intrinsics_vec256_mul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: Lib_IntVector_Intrinsics_vec256_smul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: Lib_IntVector_Intrinsics_vec256_add32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: Lib_IntVector_Intrinsics_vec256_sub32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_sub32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: Lib_IntVector_Intrinsics_vec256_mul32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_mul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: Lib_IntVector_Intrinsics_vec256_smul32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_smul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    functionName: Lib_IntVector_Intrinsics_vec256_load64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64(x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    functionName: Lib_IntVector_Intrinsics_vec256_load64s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Lib_IntVector_Intrinsics_vec256_load32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - ','
    - x5
    - ','
    - x6
    - ','
    - x7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: Lib_IntVector_Intrinsics_vec256_load32s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32s(x0,x1,x2,x3,x4, x5, x6, x7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: Lib_IntVector_Intrinsics_vec256_load128
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load128(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: Lib_IntVector_Intrinsics_vec256_load128s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load128s(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_low32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_low32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 437
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_high32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_high32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_low64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_low64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_high64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_high64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_low128
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_low128(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_high128
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_high128(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 463
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_xor(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 475
    functionName: high32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: high32(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: low32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low32(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 497
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 506
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_16
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_16(x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32_16
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32_16(x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 541
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 547
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 550
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 559
    functionName: Lib_IntVector_Intrinsics_vec128_load32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 562
    functionName: Lib_IntVector_Intrinsics_vec128_load64_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 570
    functionName: Lib_IntVector_Intrinsics_vec128_store32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 573
    functionName: Lib_IntVector_Intrinsics_vec128_store64_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Lib_IntVector_Intrinsics_vec128_insert8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert8(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: Lib_IntVector_Intrinsics_vec128_extract8
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract8(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 588
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 591
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 609
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: Lib_IntVector_Intrinsics_vec128_sub32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: Lib_IntVector_Intrinsics_vec128_mul32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 618
    functionName: Lib_IntVector_Intrinsics_vec128_smul32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: Lib_IntVector_Intrinsics_vec128_load128
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load128(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 624
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 627
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_u32_u64
      Src: /src/cpython/Modules/_hacl/libintvector.h:630,1
    - Dst: vld1q_u64
      Src: /src/cpython/Modules/_hacl/libintvector.h:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: Lib_IntVector_Intrinsics_vec128_load64s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached:
    - vld1q_u64
    - vreinterpretq_u32_u64
    linkageType: ''
    returnType: Lib_IntVector_Intrinsics_vec128
    signature: Lib_IntVector_Intrinsics_vec128 Lib_IntVector_Intrinsics_vec128_load64s(uint64_t
      x1, uint64_t x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u32
      Src: /src/cpython/Modules/_hacl/libintvector.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - x2
    - x3
    - x4
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached:
    - vld1q_u32
    linkageType: ''
    returnType: Lib_IntVector_Intrinsics_vec128
    signature: Lib_IntVector_Intrinsics_vec128 Lib_IntVector_Intrinsics_vec128_load32s(uint32_t
      x1, uint32_t x2, uint32_t x3, uint32_t x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x1,x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x1,x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 676
    functionName: Lib_IntVector_Intrinsics_vec128_load32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_be(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 679
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_revb
      Src: /src/cpython/Modules/_hacl/libintvector.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - uint8_t*
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached:
    - vec_revb
    linkageType: ''
    returnType: void
    signature: void Lib_IntVector_Intrinsics_vec128_store32_le(const uint8_t *x0,
      vector128 x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - uint8_t*
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: Lib_IntVector_Intrinsics_vec128_store32_be
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lib_IntVector_Intrinsics_vec128_store32_be(const uint8_t *x0,
      vector128 x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_revb
      Src: /src/cpython/Modules/_hacl/libintvector.h:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - uint8_t*
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached:
    - vec_revb
    linkageType: ''
    returnType: void
    signature: void Lib_IntVector_Intrinsics_vec128_store64_le(const uint8_t *x0,
      vector128 x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 697
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 703
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 709
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 712
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 715
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 718
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 721
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 724
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 727
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 736
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 739
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 743
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 746
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 749
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 752
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 756
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 759
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 765
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 768
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 776
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 785
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_xor
      Src: /src/cpython/Modules/_hacl/libintvector.h:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - vector128
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 792
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached:
    - vec_xor
    linkageType: ''
    returnType: vector128
    signature: vector128 Lib_IntVector_Intrinsics_vec128_xor(vector128 x0, vector128
      x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 821
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 824
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 827
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 833
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0,x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 836
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 839
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 845
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 848
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 851
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 854
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 857
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 860
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 863
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 872
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 875
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 882
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 885
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 888
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 892
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 901
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 904
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 914
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 917
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/cpython/Modules/_hacl/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_xor(x0, x1)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:109,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - i
    argTypes:
    - Hacl_Agile_Hash_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 113
    functionName: alg_of_impl
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: Spec_Hash_Definitions_hash_alg
    signature: Spec_Hash_Definitions_hash_alg alg_of_impl(Hacl_Agile_Hash_impl i)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:173,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:177,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Agile_Hash_state_s
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 178
    functionName: impl_of_state_s
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: Hacl_Agile_Hash_impl
    signature: Hacl_Agile_Hash_impl impl_of_state_s(Hacl_Agile_Hash_state_s s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: impl_of_state_s
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Agile_Hash_state_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: impl_of_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - impl_of_state_s
    linkageType: ''
    returnType: Hacl_Agile_Hash_impl
    signature: Hacl_Agile_Hash_impl impl_of_state(Hacl_Agile_Hash_state_s *s)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:191,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:198,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:205,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:212,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:219,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:227,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:234,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:241,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:254,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:261,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:268,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:281,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:288,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:295,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:308,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:315,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:322,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:335,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:342,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:349,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:362,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:369,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:376,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:389,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:396,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:403,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:416,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:423,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:430,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:443,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:450,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:457,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:470,1
    - Dst: Hacl_Hash_Blake2s_Simd128_malloc_internal_state_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:479,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:485,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:498,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:503,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:507,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:513,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:520,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:533,1
    - Dst: Hacl_Hash_Blake2b_Simd256_malloc_internal_state_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:542,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:548,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:561,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:566,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:570,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:576,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:577,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 195
    argCount: 1
    argNames:
    - a
    argTypes:
    - Hacl_Agile_Hash_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 580
    functionName: malloc_
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_malloc_internal_state_with_key
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    - Hacl_Hash_Blake2b_Simd256_malloc_internal_state_with_key
    - KRML_ALIGNED_FREE
    linkageType: ''
    returnType: Hacl_Agile_Hash_state_s
    signature: Hacl_Agile_Hash_state_s *malloc_(Hacl_Agile_Hash_impl a)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:588,1
    - Dst: Hacl_Hash_SHA1_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:594,1
    - Dst: Hacl_Hash_SHA2_sha224_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:600,1
    - Dst: Hacl_Hash_SHA2_sha256_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:606,1
    - Dst: Hacl_Hash_SHA2_sha384_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:612,1
    - Dst: Hacl_Hash_SHA2_sha512_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:618,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:624,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:630,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:636,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:642,1
    - Dst: Hacl_Hash_Blake2s_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:648,1
    - Dst: Hacl_Hash_Blake2s_Simd128_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:655,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:658,1
    - Dst: Hacl_Hash_Blake2b_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:665,1
    - Dst: Hacl_Hash_Blake2b_Simd256_init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:672,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:675,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:679,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:683,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Agile_Hash_state_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 684
    functionName: init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 77
    functionsReached:
    - Hacl_Hash_SHA1_init
    - Hacl_Hash_SHA2_sha256_init
    - Hacl_Hash_SHA3_init_
    - Hacl_Hash_SHA2_sha384_init
    - Hacl_Hash_Blake2s_Simd128_init
    - Hacl_Hash_Blake2s_init
    - Hacl_Hash_SHA2_sha224_init
    - Hacl_Hash_Blake2b_init
    - Hacl_Hash_Blake2b_Simd256_init
    - KRML_HOST_EPRINTF
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_MD5_init
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA2_sha512_init
    linkageType: ''
    returnType: void
    signature: void init(Hacl_Agile_Hash_state_s *s)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:694,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:701,1
    - Dst: Hacl_Hash_SHA2_sha224_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:708,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:715,1
    - Dst: Hacl_Hash_SHA2_sha384_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:722,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:729,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:736,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:743,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:750,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:757,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:765,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi_no_inline
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:773,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:776,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:785,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:788,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi_no_inline
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:798,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:799,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:804,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:808,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:812,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 4
    argNames:
    - s
    - prevlen
    - blocks
    - len
    argTypes:
    - Hacl_Agile_Hash_state_s*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 813
    functionName: update_multi
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 11
    functionsReached:
    - Hacl_Hash_SHA2_sha224_update_nblocks
    - Hacl_Hash_Blake2s_Simd128_update_multi_no_inline
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA2_sha384_update_nblocks
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA3_update_multi_sha3
    - Hacl_Hash_SHA2_sha512_update_nblocks
    - Hacl_Hash_MD5_update_multi
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - Hacl_Hash_Blake2s_update_multi
    - Hacl_Hash_Blake2b_Simd256_update_multi_no_inline
    - KRML_HOST_EPRINTF
    - Hacl_Hash_SHA1_update_multi
    - KRML_HOST_EXIT
    - Hacl_Hash_Blake2b_update_multi
    linkageType: ''
    returnType: void
    signature: void update_multi(Hacl_Agile_Hash_state_s *s, uint64_t prevlen, uint8_t
      *blocks, uint32_t len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:822,1
    - Dst: Hacl_Hash_SHA1_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:828,1
    - Dst: Hacl_Hash_SHA2_sha224_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:834,1
    - Dst: Hacl_Hash_SHA2_sha256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:840,1
    - Dst: Hacl_Hash_SHA2_sha384_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:846,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:846,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:846,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:847,1
    - Dst: Hacl_Hash_SHA2_sha512_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:856,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:856,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:856,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:857,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:866,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:872,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:878,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:884,1
    - Dst: Hacl_Hash_Blake2s_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:891,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_last_no_inline
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:898,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:901,1
    - Dst: Hacl_Hash_Blake2b_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:909,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:913,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_last_no_inline
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:922,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:923,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:928,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:932,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:936,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 4
    argNames:
    - s
    - prev_len
    - last
    - last_len
    argTypes:
    - Hacl_Agile_Hash_state_s*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 815
    functionDepth: 4
    functionLinenumber: 815
    functionLinenumberEnd: 937
    functionName: update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 17
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_update_last_no_inline
    - Hacl_Hash_MD5_update_last
    - Hacl_Hash_SHA1_update_last
    - FStar_UInt128_add
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha512_update_last
    - Hacl_Hash_Blake2b_update_last
    - Hacl_Hash_Blake2s_update_last
    - Hacl_Hash_SHA2_sha224_update_last
    - Hacl_Hash_SHA2_sha384_update_last
    - KRML_HOST_EPRINTF
    - KRML_MAYBE_UNUSED_VAR
    - KRML_HOST_EXIT
    - Hacl_Hash_Blake2b_Simd256_update_last_no_inline
    - Hacl_Hash_SHA2_sha256_update_last
    - Hacl_Hash_SHA3_update_last_sha3
    linkageType: ''
    returnType: void
    signature: void update_last(Hacl_Agile_Hash_state_s *s, uint64_t prev_len, uint8_t
      *last, uint32_t last_len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:945,1
    - Dst: Hacl_Hash_SHA1_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:951,1
    - Dst: Hacl_Hash_SHA2_sha224_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:957,1
    - Dst: Hacl_Hash_SHA2_sha256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:963,1
    - Dst: Hacl_Hash_SHA2_sha384_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:969,1
    - Dst: Hacl_Hash_SHA2_sha512_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:975,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:984,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:987,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:989,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:998,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1001,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1003,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1012,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1015,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1017,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1026,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1029,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1031,1
    - Dst: Hacl_Hash_Blake2s_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1037,1
    - Dst: Hacl_Hash_Blake2s_Simd128_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1044,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1047,1
    - Dst: Hacl_Hash_Blake2b_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1054,1
    - Dst: Hacl_Hash_Blake2b_Simd256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1061,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1064,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1068,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1072,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 79
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - Hacl_Agile_Hash_state_s*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 939
    functionDepth: 2
    functionLinenumber: 939
    functionLinenumberEnd: 1073
    functionName: finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 18
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_finish
    - Hacl_Hash_Blake2s_finish
    - Hacl_Hash_Blake2b_finish
    - Hacl_Hash_Blake2b_Simd256_finish
    - Hacl_Hash_SHA1_finish
    - store64_le
    - Hacl_Hash_SHA2_sha384_finish
    - Hacl_Hash_MD5_finish
    - Hacl_Hash_SHA2_sha224_finish
    - KRML_HOST_EPRINTF
    - Hacl_Hash_SHA2_sha256_finish
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA2_sha512_finish
    linkageType: ''
    returnType: void
    signature: void finish(Hacl_Agile_Hash_state_s *s, uint8_t *dst)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1081,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1086,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1091,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1096,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1101,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1106,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1111,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1116,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1121,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1126,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1131,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1136,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1141,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1146,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1150,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1154,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1156,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Agile_Hash_state_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1157
    functionName: free_
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    - KRML_ALIGNED_FREE
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void free_(Hacl_Agile_Hash_state_s *s)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1173,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1175,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1189,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1191,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1205,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1207,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1221,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1223,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1237,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1239,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1253,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1255,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1269,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1271,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1285,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1287,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1301,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1303,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1317,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1319,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1333,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1335,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1341,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1352,1
    - Dst: Hacl_Hash_Blake2s_Simd128_copy_internal_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1355,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1372,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1374,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1380,1
    - Dst: KRML_EABORT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1391,1
    - Dst: Hacl_Hash_Blake2b_Simd256_copy_internal_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1394,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1400,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1404,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 133
    argCount: 2
    argNames:
    - s_src
    - s_dst
    argTypes:
    - Hacl_Agile_Hash_state_s*
    - Hacl_Agile_Hash_state_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1405
    functionName: copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 83
    functionsReached:
    - Hacl_Hash_Blake2b_Simd256_copy_internal_state
    - KRML_EABORT
    - KRML_HOST_EPRINTF
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - KRML_HOST_EXIT
    - Hacl_Hash_Blake2s_Simd128_copy_internal_state
    linkageType: ''
    returnType: void
    signature: void copy(Hacl_Agile_Hash_state_s *s_src, Hacl_Agile_Hash_state_s *s_dst)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_MD5_hash_oneshot
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1413,1
    - Dst: Hacl_Hash_SHA1_hash_oneshot
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1418,1
    - Dst: Hacl_Hash_SHA2_hash_224
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1423,1
    - Dst: Hacl_Hash_SHA2_hash_256
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1428,1
    - Dst: Hacl_Hash_SHA2_hash_384
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1433,1
    - Dst: Hacl_Hash_SHA2_hash_512
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1438,1
    - Dst: Hacl_Hash_SHA3_sha3_224
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1443,1
    - Dst: Hacl_Hash_SHA3_sha3_256
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1448,1
    - Dst: Hacl_Hash_SHA3_sha3_384
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1453,1
    - Dst: Hacl_Hash_SHA3_sha3_512
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1458,1
    - Dst: Hacl_Hash_Blake2s_hash_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1463,1
    - Dst: Hacl_Hash_Blake2s_Simd128_hash_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1469,1
    - Dst: Hacl_Hash_Blake2b_hash_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1475,1
    - Dst: Hacl_Hash_Blake2b_Simd256_hash_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1481,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1487,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1488,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 4
    argNames:
    - i
    - dst
    - input
    - input_len
    argTypes:
    - Hacl_Agile_Hash_impl
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1407
    functionDepth: 5
    functionLinenumber: 1407
    functionLinenumberEnd: 1491
    functionName: hash
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 9
    functionsReached:
    - Hacl_Hash_Blake2s_hash_with_key
    - Hacl_Hash_SHA3_sha3_512
    - Hacl_Hash_SHA2_hash_512
    - Hacl_Hash_SHA3_sha3_384
    - Hacl_Hash_SHA2_hash_384
    - Hacl_Hash_Blake2s_Simd128_hash_with_key
    - Hacl_Hash_SHA3_sha3_256
    - Hacl_Hash_Blake2b_hash_with_key
    - Hacl_Hash_Blake2b_Simd256_hash_with_key
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA2_hash_256
    - Hacl_Hash_SHA3_sha3_224
    - Hacl_Hash_SHA2_hash_224
    - Hacl_Hash_SHA1_hash_oneshot
    - Hacl_Hash_MD5_hash_oneshot
    linkageType: ''
    returnType: void
    signature: void hash(Hacl_Agile_Hash_impl i, uint8_t *dst, uint8_t *input, uint32_t
      input_len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1547,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1551
    functionName: hash_len
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 3
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_len(Spec_Hash_Definitions_hash_alg a)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1615,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1619
    functionName: block_len
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 3
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t block_len(Spec_Hash_Definitions_hash_alg a)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1683,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1687
    functionName: max_input_len64
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t max_input_len64(Spec_Hash_Definitions_hash_alg a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1693,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1693,1
    - Dst: hash_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1699,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1699,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1702,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1703,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1703,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1707,1
    - Dst: hash
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - impl
    - output
    - key
    - len
    argTypes:
    - Hacl_Agile_Hash_impl
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1713
    functionName: wrap_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_UNUSED_VAR
    - block_len
    - hash
    - hash_len
    - memcpy
    - alg_of_impl
    linkageType: ''
    returnType: void
    signature: void wrap_key(Hacl_Agile_Hash_impl impl, uint8_t *output, uint8_t *key,
      uint32_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1720,1
    - Dst: init
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1721,1
    - Dst: impl_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1722,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1723,1
    - Dst: wrap_key
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1726,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1728,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1731,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1733,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1739,1
    - Dst: update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1745,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - k
    - buf
    - s
    argTypes:
    - uint8_t*
    - uint8_t*
    - Hacl_Streaming_HMAC_Definitions_two_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1715
    functionDepth: 5
    functionLinenumber: 1715
    functionLinenumberEnd: 1746
    functionName: init0
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - wrap_key
    - update_multi
    - memset
    - impl_of_state
    - block_len
    - alg_of_impl
    - init
    linkageType: ''
    returnType: void
    signature: void init0(uint8_t *k, uint8_t *buf, Hacl_Streaming_HMAC_Definitions_two_state
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: impl_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1752,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1753,1
    - Dst: finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1754,1
    - Dst: update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1755,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1755,1
    - Dst: hash_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1755,1
    - Dst: finish
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_two_state
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1748
    functionDepth: 5
    functionLinenumber: 1748
    functionLinenumberEnd: 1757
    functionName: finish0
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - hash_len
    - block_len
    - finish
    - update_last
    - alg_of_impl
    - impl_of_state
    linkageType: ''
    returnType: void
    signature: void finish0(Hacl_Streaming_HMAC_Definitions_two_state s, uint8_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - s
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_index
    - Hacl_Streaming_HMAC_Definitions_two_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1759
    functionDepth: 1
    functionLinenumber: 1759
    functionLinenumberEnd: 1767
    functionName: Hacl_Streaming_HMAC_s1
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: Hacl_Agile_Hash_state_s
    signature: "Hacl_Agile_Hash_state_s *Hacl_Streaming_HMAC_s1(\n  Hacl_Streaming_HMAC_Definitions_index
      i,\n  Hacl_Streaming_HMAC_Definitions_two_state s\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - s
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_index
    - Hacl_Streaming_HMAC_Definitions_two_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1777
    functionName: Hacl_Streaming_HMAC_s2
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: Hacl_Agile_Hash_state_s
    signature: "Hacl_Agile_Hash_state_s *Hacl_Streaming_HMAC_s2(\n  Hacl_Streaming_HMAC_Definitions_index
      i,\n  Hacl_Streaming_HMAC_Definitions_two_state s\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: impl_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_two_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1786
    functionName: Hacl_Streaming_HMAC_index_of_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - impl_of_state
    linkageType: ''
    returnType: Hacl_Streaming_HMAC_Definitions_index
    signature: Hacl_Streaming_HMAC_Definitions_index Hacl_Streaming_HMAC_index_of_state(Hacl_Streaming_HMAC_Definitions_two_state
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1794
    functionName: __proj__Mkdtuple2__item___1__Hacl_Agile_Hash_impl_uint32_t
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Agile_Hash_impl
    signature: "Hacl_Agile_Hash_impl __proj__Mkdtuple2__item___1__Hacl_Agile_Hash_impl_uint32_t(\n
      \ Hacl_Streaming_HMAC_Definitions_index pair\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __proj__Mkdtuple2__item___1__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1800
    functionName: dfst__Hacl_Agile_Hash_impl_uint32_t
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - __proj__Mkdtuple2__item___1__Hacl_Agile_Hash_impl_uint32_t
    linkageType: ''
    returnType: Hacl_Agile_Hash_impl
    signature: Hacl_Agile_Hash_impl dfst__Hacl_Agile_Hash_impl_uint32_t(Hacl_Streaming_HMAC_Definitions_index
      t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1802
    functionDepth: 0
    functionLinenumber: 1802
    functionLinenumberEnd: 1808
    functionName: __proj__Mkdtuple2__item___2__Hacl_Agile_Hash_impl_uint32_t
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t __proj__Mkdtuple2__item___2__Hacl_Agile_Hash_impl_uint32_t(\n
      \ Hacl_Streaming_HMAC_Definitions_index pair\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __proj__Mkdtuple2__item___2__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - Hacl_Streaming_HMAC_Definitions_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 1813
    functionName: dsnd__Hacl_Agile_Hash_impl_uint32_t
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - __proj__Mkdtuple2__item___2__Hacl_Agile_Hash_impl_uint32_t
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dsnd__Hacl_Agile_Hash_impl_uint32_t(Hacl_Streaming_HMAC_Definitions_index
      t)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: KRML_CHECK_SIZE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1825,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1826,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1826,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1826,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1829,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1829,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1829,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1829,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1836,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1836,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1849,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1849,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1852,1
    - Dst: dsnd__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1866,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1873,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1893,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1893,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1893,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1897,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1908,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1909,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1910,1
    - Dst: init0
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1913,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1918,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1919,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1923,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1927,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1822
    functionDepth: 6
    functionLinenumber: 1822
    functionLinenumberEnd: 1928
    functionName: 'Hacl_Streaming_HMAC_agile_state

      *malloc_internal(Hacl_Streaming_HMAC_Definitions_index i, uint8_t *key)'
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_CHECK_SIZE
    - malloc_
    - dsnd__Hacl_Agile_Hash_impl_uint32_t
    - free_
    - KRML_HOST_CALLOC
    - KRML_HOST_FREE
    - KRML_HOST_EPRINTF
    - init0
    - block_len
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    - alg_of_impl
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    linkageType: ''
    returnType: KRML_MAYBE_UNUSED
    signature: 'KRML_MAYBE_UNUSED Hacl_Streaming_HMAC_agile_state

      *malloc_internal(Hacl_Streaming_HMAC_Definitions_index i, uint8_t *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - uu___
    argTypes:
    - Hacl_Agile_Hash_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1943
    functionName: is_blake2b_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MAYBE_UNUSED
    signature: KRML_MAYBE_UNUSED is_blake2b_256(Hacl_Agile_Hash_impl uu___)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - uu___
    argTypes:
    - Hacl_Agile_Hash_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1958
    functionName: is_blake2s_128
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MAYBE_UNUSED
    signature: KRML_MAYBE_UNUSED is_blake2s_128(Hacl_Agile_Hash_impl uu___)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1968,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1969,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1970,1
    - Dst: is_blake2b_256
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1972,1
    - Dst: is_blake2s_128
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1978,1
    - Dst: malloc_internal
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - impl
    - key
    - key_length
    - dst
    argTypes:
    - Hacl_Agile_Hash_impl
    - uint8_t*
    - uint32_t
    - Hacl_Streaming_HMAC_agile_state**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1960
    functionDepth: 1
    functionLinenumber: 1960
    functionLinenumberEnd: 1993
    functionName: Hacl_Streaming_HMAC_malloc_
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - malloc_internal
    - is_blake2s_128
    - is_blake2b_256
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Streaming_HMAC_malloc_(\n  Hacl_Agile_Hash_impl
      impl,\n  uint8_t *key,\n  uint32_t key_length,\n  Hacl_Streaming_HMAC_agile_state
      **dst\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1995
    functionDepth: 4
    functionLinenumber: 1995
    functionLinenumberEnd: 2000
    functionName: Hacl_Streaming_HMAC_get_impl
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_HMAC_index_of_state
    linkageType: ''
    returnType: Hacl_Streaming_HMAC_Definitions_index
    signature: Hacl_Streaming_HMAC_Definitions_index Hacl_Streaming_HMAC_get_impl(Hacl_Streaming_HMAC_agile_state
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2007,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2008,1
    - Dst: init0
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2009,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2015,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2015,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - state
    - key
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2002
    functionDepth: 6
    functionLinenumber: 2002
    functionLinenumberEnd: 2018
    functionName: reset_internal
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Streaming_HMAC_index_of_state
    - init0
    - block_len
    - alg_of_impl
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    linkageType: ''
    returnType: void
    signature: void reset_internal(Hacl_Streaming_HMAC_agile_state *state, uint8_t
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_get_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2027,1
    - Dst: reset_internal
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - key
    - key_length
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2020
    functionDepth: 7
    functionLinenumber: 2020
    functionLinenumberEnd: 2034
    functionName: Hacl_Streaming_HMAC_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_HMAC_get_impl
    - reset_internal
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Streaming_HMAC_reset(\n  Hacl_Streaming_HMAC_agile_state
      *state,\n  uint8_t *key,\n  uint32_t key_length\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2046,1
    - Dst: max_input_len64
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2050,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2050,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2050,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2058,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2058,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2058,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2062,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2062,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2062,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2068,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2068,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2068,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2070,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2070,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2070,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2079,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2079,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2079,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2083,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2083,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2083,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2089,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2089,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2089,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2092,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2112,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2112,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2112,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2116,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2116,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2116,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2122,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2122,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2122,1
    - Dst: update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2128,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2131,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2131,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2131,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2137,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2137,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2137,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2142,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2142,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2142,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2148,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2148,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2148,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2151,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2151,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2151,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2153,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2153,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2153,1
    - Dst: update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2158,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2160,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2172,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2172,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2172,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2182,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2182,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2182,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2187,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2187,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2187,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2193,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2193,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2193,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2196,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2213,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2213,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2213,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2217,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2217,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2217,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2223,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2223,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2223,1
    - Dst: update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2229,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2232,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2232,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2232,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2238,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2238,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2238,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2243,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2243,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2243,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2249,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2249,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2249,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2253,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2253,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2253,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2255,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2255,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2255,1
    - Dst: update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2260,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2262,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2036
    functionDepth: 5
    functionLinenumber: 2036
    functionLinenumberEnd: 2273
    functionName: Hacl_Streaming_HMAC_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - update_multi
    - max_input_len64
    - Hacl_Streaming_HMAC_index_of_state
    - block_len
    - memcpy
    - alg_of_impl
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Streaming_HMAC_update(\n  Hacl_Streaming_HMAC_agile_state
      *state,\n  uint8_t *chunk,\n  uint32_t chunk_len\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2290,1
    - Dst: Hacl_Streaming_HMAC_index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2292,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2300,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2300,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2300,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2304,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2304,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2304,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2310,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2310,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2310,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2313,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2313,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2326,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2326,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2329,1
    - Dst: dsnd__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2343,1
    - Dst: copy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2361,1
    - Dst: copy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2362,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2365,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2365,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2365,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2367,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2367,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2367,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2371,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2371,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2371,1
    - Dst: update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2376,1
    - Dst: update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2379,1
    - Dst: finish0
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2380,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2383,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - state
    - output
    - digest_length
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2283
    functionDepth: 6
    functionLinenumber: 2283
    functionLinenumberEnd: 2388
    functionName: Hacl_Streaming_HMAC_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - update_multi
    - finish0
    - malloc_
    - copy
    - KRML_MAYBE_UNUSED_VAR
    - dsnd__Hacl_Agile_Hash_impl_uint32_t
    - KRML_HOST_FREE
    - Hacl_Streaming_HMAC_index_of_state
    - KRML_HOST_EPRINTF
    - block_len
    - KRML_HOST_EXIT
    - update_last
    - alg_of_impl
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Streaming_HMAC_digest(\n  Hacl_Streaming_HMAC_agile_state
      *state,\n  uint8_t *output,\n  uint32_t digest_length\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2393,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2394,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2400,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2401,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2402,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2390
    functionDepth: 4
    functionLinenumber: 2390
    functionLinenumberEnd: 2404
    functionName: Hacl_Streaming_HMAC_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - free_
    - Hacl_Streaming_HMAC_index_of_state
    - KRML_HOST_FREE
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: void Hacl_Streaming_HMAC_free(Hacl_Streaming_HMAC_agile_state *state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_HMAC_index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2413,1
    - Dst: KRML_CHECK_SIZE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2414,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2415,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2415,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2415,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2418,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2418,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2418,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2418,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2424,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2426,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2426,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2426,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2427,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2427,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2440,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2440,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2443,1
    - Dst: dsnd__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2457,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2464,1
    - Dst: copy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2476,1
    - Dst: copy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2477,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2491,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2502,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2503,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2504,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2511,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2512,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2516,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2406
    functionDepth: 4
    functionLinenumber: 2406
    functionLinenumberEnd: 2521
    functionName: Hacl_Streaming_HMAC_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - KRML_CHECK_SIZE
    - malloc_
    - copy
    - dsnd__Hacl_Agile_Hash_impl_uint32_t
    - free_
    - KRML_HOST_CALLOC
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - Hacl_Streaming_HMAC_index_of_state
    - KRML_HOST_EPRINTF
    - block_len
    - memcpy
    - KRML_HOST_EXIT
    - alg_of_impl
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    linkageType: ''
    returnType: Hacl_Streaming_HMAC_agile_state
    signature: Hacl_Streaming_HMAC_agile_state *Hacl_Streaming_HMAC_copy(Hacl_Streaming_HMAC_agile_state
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - len
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: Lib_Memzero0_memzero
    functionSourceFile: /src/cpython/Modules/_hacl/lib_memzero0.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_Memzero0_memzero(dst, len, t, _ret_t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:47,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:53,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:77,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:77,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:78,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:78,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:81,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:83,1
    - Dst: KRML_MAYBE_FOR12
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:84,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:89,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:89,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:110,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:111,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:112,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:113,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:124,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:125,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:128,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:129,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:132,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:135,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:136,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:139,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:140,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:143,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:144,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:147,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:150,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:151,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:157,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:161,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:165,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:173,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:174,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:177,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:178,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:181,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:184,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:185,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:188,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:189,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:192,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:193,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:196,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:199,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:200,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:206,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:210,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:214,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:222,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:223,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:224,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 61
    argCount: 6
    argNames:
    - wv
    - hash
    - flag
    - last_node
    - totlen
    - d
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    - bool
    - bool
    - FStar_UInt128_uint128
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 226
    functionName: update_block
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 6
    functionsReached:
    - KRML_MAYBE_FOR16
    - FStar_UInt128_shift_right
    - FStar_UInt128_uint128_to_uint64
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_load64s
    - Lib_IntVector_Intrinsics_vec256_xor
    - Lib_IntVector_Intrinsics_vec256_add64
    - Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
    - KRML_POST_ALIGN
    - load64_le
    - Lib_IntVector_Intrinsics_vec256_rotate_right64
    - memcpy
    - KRML_MAYBE_FOR12
    linkageType: ''
    returnType: void
    signature: "void update_block(\n  Lib_IntVector_Intrinsics_vec256 *wv,\n  Lib_IntVector_Intrinsics_vec256
      *hash,\n  bool flag,\n  bool last_node,\n  FStar_UInt128_uint128 totlen,\n  uint8_t
      *d\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:252,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:253,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:256,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:262,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:266,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:272,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:299,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - hash
    - kk
    - nn
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 301
    functionName: Hacl_Hash_Blake2b_Simd256_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR2
    - Lib_IntVector_Intrinsics_vec256_load64s
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_Simd256_init(Lib_IntVector_Intrinsics_vec256
      *hash, uint32_t kk, uint32_t nn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:312,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:314,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:317,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:321,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: update_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 2
    functionsReached:
    - memcpy
    - FStar_UInt128_uint64_to_uint128
    - update_block
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void update_key(\n  Lib_IntVector_Intrinsics_vec256 *wv,\n  Lib_IntVector_Intrinsics_vec256
      *hash,\n  uint32_t kk,\n  uint8_t *k,\n  uint32_t ll\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:336,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:341,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:342,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    - nb
    argTypes:
    - uint32_t
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    - FStar_UInt128_uint128
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 346
    functionName: Hacl_Hash_Blake2b_Simd256_update_multi
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_mod
    - FStar_UInt128_uint64_to_uint128
    - update_block
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_update_multi(\n  uint32_t len,\n  Lib_IntVector_Intrinsics_vec256
      *wv,\n  Lib_IntVector_Intrinsics_vec256 *hash,\n  FStar_UInt128_uint128 prev,\n
      \ uint8_t *blocks,\n  uint32_t nb\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:361,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:363,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:363,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:364,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - len
    - wv
    - hash
    - last_node
    - prev
    - rem
    - d
    argTypes:
    - uint32_t
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    - bool
    - FStar_UInt128_uint128
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 366
    functionName: Hacl_Hash_Blake2b_Simd256_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_add_mod
    - Lib_Memzero0_memzero
    - memcpy
    - update_block
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_update_last(\n  uint32_t len,\n  Lib_IntVector_Intrinsics_vec256
      *wv,\n  Lib_IntVector_Intrinsics_vec256 *hash,\n  bool last_node,\n  FStar_UInt128_uint128
      prev,\n  uint32_t rem,\n  uint8_t *d\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:397,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    argTypes:
    - uint32_t
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    - FStar_UInt128_uint128
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 399
    functionName: update_blocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 2
    functionsReached:
    - Hacl_Hash_Blake2b_Simd256_update_last
    - Hacl_Hash_Blake2b_Simd256_update_multi
    linkageType: ''
    returnType: void
    signature: "void update_blocks(\n  uint32_t len,\n  Lib_IntVector_Intrinsics_vec256
      *wv,\n  Lib_IntVector_Intrinsics_vec256 *hash,\n  FStar_UInt128_uint128 prev,\n
      \ uint8_t *blocks\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:411,1
    - Dst: update_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:414,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:417,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:422,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    - d
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 423
    functionName: update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 26
    functionsReached:
    - update_blocks
    - FStar_UInt128_uint64_to_uint128
    - update_key
    linkageType: ''
    returnType: void
    signature: "void update(\n  Lib_IntVector_Intrinsics_vec256 *wv,\n  Lib_IntVector_Intrinsics_vec256
      *hash,\n  uint32_t kk,\n  uint8_t *k,\n  uint32_t ll,\n  uint8_t *d\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec256_store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:437,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:438,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:440,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - nn
    - output
    - hash
    argTypes:
    - uint32_t
    - uint8_t*
    - Lib_IntVector_Intrinsics_vec256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 442
    functionName: Hacl_Hash_Blake2b_Simd256_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Lib_IntVector_Intrinsics_vec256_store64_le
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_finish(\n  uint32_t nn,\n  uint8_t
      *output,\n  Lib_IntVector_Intrinsics_vec256 *hash\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:458,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:459,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:460,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - st
    - st32
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 462
    functionName: Hacl_Hash_Blake2b_Simd256_load_state256b_from_state32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec256_load64s
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_load_state256b_from_state32(\n  Lib_IntVector_Intrinsics_vec256
      *st,\n  uint64_t *st32\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec256_store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:479,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:480,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:486,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:491,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:492,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:498,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:503,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:504,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:510,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:515,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:516,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - st32
    - st
    argTypes:
    - uint64_t*
    - Lib_IntVector_Intrinsics_vec256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 526
    functionName: Hacl_Hash_Blake2b_Simd256_store_state256b_to_state32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - load64_le
    - Lib_IntVector_Intrinsics_vec256_store64_le
    - KRML_MAYBE_FOR4
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_store_state256b_to_state32(\n  uint64_t
      *st32,\n  Lib_IntVector_Intrinsics_vec256 *st\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:532,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 539
    functionName: Hacl_Hash_Blake2b_Simd256_malloc_internal_state_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - KRML_ALIGNED_MALLOC
    - memset
    linkageType: ''
    returnType: Lib_IntVector_Intrinsics_vec256
    signature: Lib_IntVector_Intrinsics_vec256 *Hacl_Hash_Blake2b_Simd256_malloc_internal_state_with_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:549,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:549,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - ev
    - blocks
    - n
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - FStar_UInt128_uint128
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 551
    functionName: Hacl_Hash_Blake2b_Simd256_update_multi_no_inline
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2b_Simd256_update_multi
    - KRML_POST_ALIGN
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_update_multi_no_inline(\n  Lib_IntVector_Intrinsics_vec256
      *s,\n  FStar_UInt128_uint128 ev,\n  uint8_t *blocks,\n  uint32_t n\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:561,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:561,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - prev
    - input
    - input_len
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - FStar_UInt128_uint128
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 563
    functionName: Hacl_Hash_Blake2b_Simd256_update_last_no_inline
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2b_Simd256_update_last
    - KRML_POST_ALIGN
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_update_last_no_inline(\n  Lib_IntVector_Intrinsics_vec256
      *s,\n  FStar_UInt128_uint128 prev,\n  uint8_t *input,\n  uint32_t input_len\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 572
    functionName: Hacl_Hash_Blake2b_Simd256_copy_internal_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_copy_internal_state(\n  Lib_IntVector_Intrinsics_vec256
      *src,\n  Lib_IntVector_Intrinsics_vec256 *dst\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:585,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:593,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:597,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:614,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:618,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:622,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:648,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:677,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:688,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:689,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:690,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:705,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:706,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:722,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:723,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:726,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:732,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:736,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:742,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:770,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:771,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:776,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:777,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:781,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:785,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 72
    argCount: 2
    argNames:
    - kk
    - key
    argTypes:
    - Hacl_Hash_Blake2b_index
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 786
    functionName: malloc_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 2
    functionsReached:
    - KRML_MAYBE_FOR2
    - Lib_IntVector_Intrinsics_vec256_load64s
    - memcpy
    - memset
    - KRML_HOST_CALLOC
    - load64_le
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    - KRML_ALIGNED_FREE
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_Simd256_state_t
    signature: Hacl_Hash_Blake2b_Simd256_state_t *malloc_raw(Hacl_Hash_Blake2b_index
      kk, Hacl_Hash_Blake2b_params_and_key key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - last_node
    - k
    argTypes:
    - Hacl_Hash_Blake2b_blake2_params*
    - bool
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 814
    functionName: Hacl_Hash_Blake2b_Simd256_malloc_with_params_and_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - malloc_raw
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_Simd256_state_t
    signature: "Hacl_Hash_Blake2b_Simd256_state_t *Hacl_Hash_Blake2b_Simd256_malloc_with_params_and_key(\n
      \ Hacl_Hash_Blake2b_blake2_params *p,\n  bool last_node,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_Simd256_malloc_with_params_and_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - kk
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 845
    functionName: Hacl_Hash_Blake2b_Simd256_malloc_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_Simd256_malloc_with_params_and_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_Simd256_state_t
    signature: Hacl_Hash_Blake2b_Simd256_state_t *Hacl_Hash_Blake2b_Simd256_malloc_with_key(uint8_t
      *k, uint8_t kk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_Simd256_malloc_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 2
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: Hacl_Hash_Blake2b_Simd256_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_Simd256_malloc_with_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_Simd256_state_t
    signature: Hacl_Hash_Blake2b_Simd256_state_t *Hacl_Hash_Blake2b_Simd256_malloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 865
    functionName: index_of_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index index_of_state(Hacl_Hash_Blake2b_Simd256_state_t
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:878,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:891,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:892,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:908,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:909,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:912,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:918,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:922,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:928,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:955,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - state
    - key
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 970
    functionName: reset_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 4
    functionsReached:
    - KRML_MAYBE_FOR2
    - Lib_IntVector_Intrinsics_vec256_load64s
    - memset
    - load64_le
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    linkageType: ''
    returnType: void
    signature: void reset_raw(Hacl_Hash_Blake2b_Simd256_state_t *state, Hacl_Hash_Blake2b_params_and_key
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:986,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:987,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - p
    - k
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    - Hacl_Hash_Blake2b_blake2_params*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 989
    functionName: Hacl_Hash_Blake2b_Simd256_reset_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_reset_with_key_and_params(\n  Hacl_Hash_Blake2b_Simd256_state_t
      *s,\n  Hacl_Hash_Blake2b_blake2_params *p,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1000,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - k
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1012
    functionName: Hacl_Hash_Blake2b_Simd256_reset_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_Simd256_reset_with_key(Hacl_Hash_Blake2b_Simd256_state_t
      *s, uint8_t *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2b_Simd256_reset_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1025
    functionName: Hacl_Hash_Blake2b_Simd256_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_Simd256_reset_with_key
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_Simd256_reset(Hacl_Hash_Blake2b_Simd256_state_t
      *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1068,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1101,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1104,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1126,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1129,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1133,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1162,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1192,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1195,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1218,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1221,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1225,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1236
    functionName: Hacl_Hash_Blake2b_Simd256_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_Blake2b_Simd256_update_multi
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Hash_Blake2b_Simd256_update(\n
      \ Hacl_Hash_Blake2b_Simd256_state_t *state,\n  uint8_t *chunk,\n  uint32_t chunk_len\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1271,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1271,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1272,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1272,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1283,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1300,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1303,1
    - Dst: Hacl_Hash_Blake2b_Simd256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1311,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1315,1
    - Dst: Hacl_Hash_Blake2b_Simd256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1326
    functionName: Hacl_Hash_Blake2b_Simd256_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_Blake2b_Simd256_finish
    - Hacl_Hash_Blake2b_Simd256_update_multi
    - KRML_POST_ALIGN
    - memcpy
    - Hacl_Hash_Blake2b_Simd256_update_last
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Hacl_Hash_Blake2b_Simd256_digest(Hacl_Hash_Blake2b_Simd256_state_t
      *s, uint8_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1336
    functionName: Hacl_Hash_Blake2b_Simd256_info
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index Hacl_Hash_Blake2b_Simd256_info(Hacl_Hash_Blake2b_Simd256_state_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1348,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1349,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1350,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1352
    functionName: Hacl_Hash_Blake2b_Simd256_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - KRML_ALIGNED_FREE
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2b_Simd256_free(Hacl_Hash_Blake2b_Simd256_state_t
      *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1368,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1373,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1376,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1380,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1397,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1401,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1405,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1431,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1439,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1453,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1464,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1465,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1466,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1473,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1474,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1478,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2b_Simd256_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1483
    functionName: Hacl_Hash_Blake2b_Simd256_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - memset
    - KRML_HOST_CALLOC
    - KRML_HOST_MALLOC
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    - KRML_ALIGNED_FREE
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_Simd256_state_t
    signature: Hacl_Hash_Blake2b_Simd256_state_t *Hacl_Hash_Blake2b_Simd256_copy(Hacl_Hash_Blake2b_Simd256_state_t
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1505,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1505,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1506,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1506,1
    - Dst: Hacl_Hash_Blake2b_Simd256_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1507,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1508,1
    - Dst: Hacl_Hash_Blake2b_Simd256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1509,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1510,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - output
    - output_len
    - input
    - input_len
    - key
    - key_len
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1512
    functionName: Hacl_Hash_Blake2b_Simd256_hash_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 1
    functionsReached:
    - KRML_PRE_ALIGN
    - KRML_POST_ALIGN
    - Hacl_Hash_Blake2b_Simd256_init
    - update
    - Lib_Memzero0_memzero
    - Hacl_Hash_Blake2b_Simd256_finish
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_hash_with_key(\n  uint8_t *output,\n
      \ uint32_t output_len,\n  uint8_t *input,\n  uint32_t input_len,\n  uint8_t
      *key,\n  uint32_t key_len\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1529,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1529,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1530,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1530,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1544,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1545,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1548,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1554,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1558,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1564,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1592,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1593,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1594,1
    - Dst: Hacl_Hash_Blake2b_Simd256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1595,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1596,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 5
    argNames:
    - output
    - input
    - input_len
    - params
    - key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - Hacl_Hash_Blake2b_blake2_params
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1598
    functionName: Hacl_Hash_Blake2b_Simd256_hash_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR2
    - Hacl_Hash_Blake2b_Simd256_finish
    - Lib_IntVector_Intrinsics_vec256_load64s
    - KRML_POST_ALIGN
    - load64_le
    - update
    - Lib_Memzero0_memzero
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2b_Simd256_hash_with_key_and_params(\n  uint8_t
      *output,\n  uint8_t *input,\n  uint32_t input_len,\n  Hacl_Hash_Blake2b_blake2_params
      params,\n  uint8_t *key\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:63,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:65,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:67,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:69,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:71,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:73,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:75,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:77,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:79,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:81,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:83,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:85,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:87,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:89,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:91,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:93,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:95,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:97,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:99,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:101,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:103,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:105,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:107,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:109,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:111,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:113,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:115,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:117,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:119,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:121,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:123,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:125,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:134,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:139,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:145,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 2
    argNames:
    - b
    - s
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 174
    functionName: absorb_inner_32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - load64_le
    - KRML_MAYBE_FOR5
    linkageType: ''
    returnType: void
    signature: void absorb_inner_32(uint8_t *b, uint64_t *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:206,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 210
    functionName: block_len
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 11
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t block_len(Spec_Hash_Definitions_hash_alg a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:234,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 238
    functionName: hash_len
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 5
    functionsReached:
    - KRML_HOST_EXIT
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_len(Spec_Hash_Definitions_hash_alg a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:242,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: Hacl_Hash_SHA3_init_
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - memset
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_init_(Spec_Hash_Definitions_hash_alg a, uint64_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:254,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:255,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:261,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:262,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:262,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:263,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:264,1
    - Dst: absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - a
    - s
    - blocks
    - n_blocks
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    - uint64_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 267
    functionName: Hacl_Hash_SHA3_update_multi_sha3
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - absorb_inner_32
    - KRML_MAYBE_UNUSED_VAR
    - block_len
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA3_update_multi_sha3(\n  Spec_Hash_Definitions_hash_alg
      a,\n  uint64_t *s,\n  uint8_t *blocks,\n  uint32_t n_blocks\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:286,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:293,1
    - Dst: absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:294,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:300,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:305,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:307,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:309,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:311,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:313,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:315,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:317,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:319,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:321,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:323,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:325,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:327,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:329,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:331,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:333,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:335,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:337,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:339,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:341,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:343,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:345,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:347,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:349,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:351,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:353,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:355,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:357,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:359,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:361,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:363,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:365,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:367,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:378,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:383,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:389,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:401,1
    - Dst: absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:423,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:431,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:436,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:438,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:440,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:442,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:444,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:446,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:448,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:450,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:452,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:454,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:456,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:458,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:460,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:462,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:464,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:466,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:468,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:470,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:472,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:474,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:476,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:478,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:480,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:482,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:484,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:486,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:488,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:490,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:492,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:494,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:496,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:498,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:509,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:514,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:520,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:532,1
    - Dst: absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:554,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 129
    argCount: 4
    argNames:
    - a
    - s
    - input
    - input_len
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    - uint64_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 555
    functionName: Hacl_Hash_SHA3_update_last_sha3
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR5
    - load64_le
    - block_len
    - memcpy
    - absorb_inner_32
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA3_update_last_sha3(\n  Spec_Hash_Definitions_hash_alg
      a,\n  uint64_t *s,\n  uint8_t *input,\n  uint32_t input_len\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:563,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:566,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:569,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:573,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:578,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:584,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:596,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:617,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:620,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - s
    - rateInBytes
    - outputByteLen
    - b
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 623
    functionName: squeeze
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 2
    functionsReached:
    - memcpy
    - store64_le
    - KRML_MAYBE_FOR5
    linkageType: ''
    returnType: void
    signature: void squeeze(uint64_t *s, uint32_t rateInBytes, uint32_t outputByteLen,
      uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: Hacl_Hash_SHA3_get_alg
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Spec_Hash_Definitions_hash_alg
    signature: Spec_Hash_Definitions_hash_alg Hacl_Hash_SHA3_get_alg(Hacl_Hash_SHA3_state_t
      *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_CHECK_SIZE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:647,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:647,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:648,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:648,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:654,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:673,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:691,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:699,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:700,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:705,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:710,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:711,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:715,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:719,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 720
    functionName: Hacl_Hash_SHA3_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - KRML_CHECK_SIZE
    - Hacl_Hash_SHA3_init_
    - block_len
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Hash_SHA3_state_t
    signature: Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_hash_alg
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:728,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:729,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 731
    functionName: Hacl_Hash_SHA3_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_free(Hacl_Hash_SHA3_state_t *state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_CHECK_SIZE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:740,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:740,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:741,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:741,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:746,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:746,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:747,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:766,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:775,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:788,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:796,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:797,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:804,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:805,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:809,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:813,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 814
    functionName: Hacl_Hash_SHA3_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - KRML_CHECK_SIZE
    - block_len
    - KRML_HOST_CALLOC
    - KRML_HOST_MALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Hash_SHA3_state_t
    signature: Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_copy(Hacl_Hash_SHA3_state_t
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:822,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 829
    functionName: Hacl_Hash_SHA3_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_init_
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_reset(Hacl_Hash_SHA3_state_t *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:843,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:845,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:849,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:851,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:858,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:860,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:864,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:867,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:879,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:881,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:885,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:891,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:891,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:891,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:894,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:896,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:900,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:902,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:903,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:909,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:909,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:911,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:923,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:931,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:933,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:937,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:940,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:955,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:957,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:961,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:967,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:967,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:967,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:972,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:976,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:980,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:982,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:983,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:989,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:989,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:991,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 1002
    functionName: Hacl_Hash_SHA3_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA3_update_multi_sha3
    - block_len
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Hash_SHA3_update(Hacl_Hash_SHA3_state_t
      *state, uint8_t *chunk, uint32_t chunk_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1017,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1019,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1023,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1031,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1033,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1035,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1039,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1045,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1045,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1048,1
    - Dst: squeeze
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1071,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1071,1
    - Dst: squeeze
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1074,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1074,1
    - Dst: hash_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1074,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - a
    - state
    - output
    - l
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    - Hacl_Hash_SHA3_state_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1075
    functionName: digest_
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - squeeze
    - hash_len
    - Hacl_Hash_SHA3_update_multi_sha3
    - block_len
    - memcpy
    - Hacl_Hash_SHA3_update_last_sha3
    linkageType: ''
    returnType: void
    signature: "void digest_(\n  Spec_Hash_Definitions_hash_alg a,\n  Hacl_Hash_SHA3_state_t
      *state,\n  uint8_t *output,\n  uint32_t l\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA3_get_alg
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1080,1
    - Dst: digest_
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1085,1
    - Dst: hash_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - state
    - output
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1077
    functionDepth: 4
    functionLinenumber: 1077
    functionLinenumberEnd: 1087
    functionName: Hacl_Hash_SHA3_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 2
    functionsReached:
    - Hacl_Hash_SHA3_get_alg
    - digest_
    - hash_len
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Hash_SHA3_digest(Hacl_Hash_SHA3_state_t
      *state, uint8_t *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA3_get_alg
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1092,1
    - Dst: digest_
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - s
    - dst
    - l
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1089
    functionDepth: 4
    functionLinenumber: 1089
    functionLinenumberEnd: 1103
    functionName: Hacl_Hash_SHA3_squeeze
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 2
    functionsReached:
    - Hacl_Hash_SHA3_get_alg
    - digest_
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Hash_SHA3_squeeze(Hacl_Hash_SHA3_state_t
      *s, uint8_t *dst, uint32_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA3_get_alg
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1107,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1109
    functionName: Hacl_Hash_SHA3_block_len
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 3
    functionsReached:
    - Hacl_Hash_SHA3_get_alg
    - block_len
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Hash_SHA3_block_len(Hacl_Hash_SHA3_state_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA3_get_alg
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1113,1
    - Dst: hash_len
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1115
    functionName: Hacl_Hash_SHA3_hash_len
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 3
    functionsReached:
    - Hacl_Hash_SHA3_get_alg
    - hash_len
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Hash_SHA3_hash_len(Hacl_Hash_SHA3_state_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA3_get_alg
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_SHA3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1121
    functionName: Hacl_Hash_SHA3_is_shake
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA3_get_alg
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Hash_SHA3_is_shake(Hacl_Hash_SHA3_state_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1125,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1128,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1130,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1132,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1134,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1136,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1138,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1140,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1142,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1144,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1146,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1148,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1150,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1152,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1154,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1156,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1158,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1160,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1162,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1164,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1166,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1168,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1170,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1172,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1174,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1176,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1178,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1180,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1182,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1184,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1186,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1188,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1190,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1199,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1204,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1210,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 3
    argNames:
    - rateInBytes
    - b
    - s
    argTypes:
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1239
    functionName: Hacl_Hash_SHA3_absorb_inner_32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - load64_le
    - KRML_MAYBE_FOR5
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_absorb_inner_32(uint32_t rateInBytes, uint8_t *b,
      uint64_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1259,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1260,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1267,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1272,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1274,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1276,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1278,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1280,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1282,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1284,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1286,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1288,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1290,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1292,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1294,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1296,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1298,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1300,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1302,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1304,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1306,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1308,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1310,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1312,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1314,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1316,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1318,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1320,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1322,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1324,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1326,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1328,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1330,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1332,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1334,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1344,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1349,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1352,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1355,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1359,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1364,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1370,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1382,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1403,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1406,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 4
    argNames:
    - output
    - outputByteLen
    - input
    - inputByteLen
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1241
    functionDepth: 2
    functionLinenumber: 1241
    functionLinenumberEnd: 1409
    functionName: Hacl_Hash_SHA3_shake128
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_absorb_inner_32
    - store64_le
    - KRML_MAYBE_FOR5
    - load64_le
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA3_shake128(\n  uint8_t *output,\n  uint32_t outputByteLen,\n
      \ uint8_t *input,\n  uint32_t inputByteLen\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1429,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1430,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1437,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1442,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1444,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1446,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1448,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1450,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1452,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1454,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1456,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1458,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1460,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1462,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1464,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1466,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1468,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1470,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1472,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1474,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1476,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1478,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1480,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1482,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1484,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1486,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1488,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1490,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1492,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1494,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1496,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1498,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1500,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1502,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1504,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1514,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1519,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1522,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1525,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1529,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1534,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1540,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1552,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1573,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1576,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1578,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 4
    argNames:
    - output
    - outputByteLen
    - input
    - inputByteLen
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1411
    functionDepth: 2
    functionLinenumber: 1411
    functionLinenumberEnd: 1579
    functionName: Hacl_Hash_SHA3_shake256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_absorb_inner_32
    - store64_le
    - KRML_MAYBE_FOR5
    - load64_le
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA3_shake256(\n  uint8_t *output,\n  uint32_t outputByteLen,\n
      \ uint8_t *input,\n  uint32_t inputByteLen\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1593,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1594,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1601,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1606,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1608,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1610,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1612,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1614,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1616,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1618,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1620,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1622,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1624,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1626,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1628,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1630,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1632,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1634,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1636,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1638,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1640,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1642,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1644,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1646,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1648,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1650,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1652,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1654,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1656,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1658,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1660,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1662,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1664,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1666,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1668,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1678,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1683,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1686,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1689,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1693,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1698,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1704,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1716,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1737,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1740,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1742,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 3
    argNames:
    - output
    - input
    - inputByteLen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1743
    functionName: Hacl_Hash_SHA3_sha3_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA3_absorb_inner_32
    - store64_le
    - KRML_MAYBE_FOR5
    - load64_le
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_sha3_224(uint8_t *output, uint8_t *input, uint32_t
      inputByteLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1757,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1758,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1765,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1770,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1772,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1774,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1776,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1778,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1780,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1782,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1784,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1786,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1788,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1790,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1792,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1794,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1796,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1798,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1800,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1802,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1804,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1806,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1808,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1810,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1812,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1814,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1816,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1818,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1820,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1822,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1824,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1826,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1828,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1830,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1832,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1842,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1847,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1850,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1853,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1857,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1862,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1868,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1880,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1901,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1904,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1906,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 3
    argNames:
    - output
    - input
    - inputByteLen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1907
    functionName: Hacl_Hash_SHA3_sha3_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA3_absorb_inner_32
    - store64_le
    - KRML_MAYBE_FOR5
    - load64_le
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_sha3_256(uint8_t *output, uint8_t *input, uint32_t
      inputByteLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1921,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1922,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1929,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1934,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1936,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1938,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1940,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1942,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1944,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1946,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1948,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1950,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1952,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1954,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1956,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1958,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1960,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1962,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1964,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1966,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1968,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1970,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1972,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1974,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1976,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1978,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1980,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1982,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1984,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1986,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1988,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1990,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1992,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1994,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:1996,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2006,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2011,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2014,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2017,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2021,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2026,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2032,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2044,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2065,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2068,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2070,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 3
    argNames:
    - output
    - input
    - inputByteLen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 1909
    functionDepth: 2
    functionLinenumber: 1909
    functionLinenumberEnd: 2071
    functionName: Hacl_Hash_SHA3_sha3_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA3_absorb_inner_32
    - store64_le
    - KRML_MAYBE_FOR5
    - load64_le
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_sha3_384(uint8_t *output, uint8_t *input, uint32_t
      inputByteLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2085,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2086,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2093,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2098,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2100,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2102,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2104,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2106,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2108,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2110,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2112,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2114,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2116,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2118,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2120,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2122,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2124,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2126,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2128,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2130,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2132,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2134,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2136,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2138,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2140,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2142,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2144,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2146,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2148,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2150,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2152,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2154,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2156,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2158,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2160,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2170,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2175,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2178,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2181,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2185,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2190,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2196,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2208,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2229,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2232,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 3
    argNames:
    - output
    - input
    - inputByteLen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2073
    functionDepth: 2
    functionLinenumber: 2073
    functionLinenumberEnd: 2235
    functionName: Hacl_Hash_SHA3_sha3_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA3_absorb_inner_32
    - store64_le
    - KRML_MAYBE_FOR5
    - load64_le
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_sha3_512(uint8_t *output, uint8_t *input, uint32_t
      inputByteLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2240
    functionDepth: 0
    functionLinenumber: 2240
    functionLinenumberEnd: 2244
    functionName: Hacl_Hash_SHA3_state_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_CALLOC
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t *Hacl_Hash_SHA3_state_malloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2249
    functionDepth: 0
    functionLinenumber: 2249
    functionLinenumberEnd: 2252
    functionName: Hacl_Hash_SHA3_state_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_state_free(uint64_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2274,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - input
    - inputByteLen
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2265
    functionDepth: 2
    functionLinenumber: 2265
    functionLinenumberEnd: 2277
    functionName: Hacl_Hash_SHA3_shake128_absorb_nblocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA3_absorb_inner_32
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_shake128_absorb_nblocks(uint64_t *state, uint8_t
      *input, uint32_t inputByteLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2302,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2307,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2309,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2311,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2313,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2315,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2317,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2319,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2321,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2323,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2325,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2327,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2329,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2331,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2333,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2335,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2337,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2339,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2341,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2343,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2345,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2347,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2349,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2351,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2353,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2355,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2357,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2359,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2361,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2363,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2365,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2367,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2369,1
    - Dst: Hacl_Hash_SHA3_absorb_inner_32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - state
    - input
    - inputByteLen
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2294
    functionDepth: 2
    functionLinenumber: 2294
    functionLinenumberEnd: 2380
    functionName: Hacl_Hash_SHA3_shake128_absorb_final
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA3_absorb_inner_32
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA3_shake128_absorb_final(uint64_t *state, uint8_t
      *input, uint32_t inputByteLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2404,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2407,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2410,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2414,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2420,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2426,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c:2438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - state
    - output
    - outputByteLen
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2393
    functionDepth: 1
    functionLinenumber: 2393
    functionLinenumberEnd: 2456
    functionName: Hacl_Hash_SHA3_shake128_squeeze_nblocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - store64_le
    - KRML_MAYBE_FOR5
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA3_shake128_squeeze_nblocks(\n  uint64_t *state,\n
      \ uint8_t *output,\n  uint32_t outputByteLen\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Hacl_Hash_SHA1_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR5
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_init(uint32_t *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: load32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:52,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - h
    - l
    argTypes:
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 124
    functionName: update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 28
    functionsReached:
    - load32_be
    linkageType: ''
    returnType: void
    signature: void update(uint32_t *h, uint8_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - len
    - dst
    argTypes:
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: pad
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 9
    functionsReached:
    - store64_be
    linkageType: ''
    returnType: void
    signature: void pad(uint64_t len, uint8_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR5
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:141,1
    - Dst: store32_be
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: Hacl_Hash_SHA1_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - store32_be
    - KRML_MAYBE_FOR5
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_finish(uint32_t *s, uint8_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - blocks
    - n_blocks
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: Hacl_Hash_SHA1_update_multi
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_update_multi(uint32_t *s, uint8_t *blocks, uint32_t
      n_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:162,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:170,1
    - Dst: pad
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:171,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - s
    - prev_len
    - input
    - input_len
    argTypes:
    - uint32_t*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 173
    functionName: Hacl_Hash_SHA1_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - memcpy
    - pad
    - Hacl_Hash_SHA1_update_multi
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_update_last(uint32_t *s, uint64_t prev_len, uint8_t
      *input, uint32_t input_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:197,1
    - Dst: Hacl_Hash_SHA1_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:198,1
    - Dst: Hacl_Hash_SHA1_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 200
    functionName: Hacl_Hash_SHA1_hash_oneshot
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA1_update_last
    - Hacl_Hash_SHA1_finish
    - Hacl_Hash_SHA1_update_multi
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_hash_oneshot(uint8_t *output, uint8_t *input, uint32_t
      input_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:204,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:210,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:222,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:240,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:247,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:248,1
    - Dst: Hacl_Hash_SHA1_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:251,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:256,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:257,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:261,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 266
    functionName: Hacl_Hash_SHA1_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_SHA1_init
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_32
    signature: Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA1_malloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA1_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: Hacl_Hash_SHA1_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA1_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_reset(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:316,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:344,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:360,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:362,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:391,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:416,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:433,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:435,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 446
    functionName: Hacl_Hash_SHA1_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA1_update_multi
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Hash_SHA1_update(Hacl_Streaming_MD_state_32
      *state, uint8_t *chunk, uint32_t chunk_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:465,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:477,1
    - Dst: Hacl_Hash_SHA1_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:479,1
    - Dst: Hacl_Hash_SHA1_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - state
    - output
    argTypes:
    - Hacl_Streaming_MD_state_32*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 481
    functionName: Hacl_Hash_SHA1_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 2
    functionsReached:
    - memcpy
    - Hacl_Hash_SHA1_update_last
    - Hacl_Hash_SHA1_finish
    - Hacl_Hash_SHA1_update_multi
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_digest(Hacl_Streaming_MD_state_32 *state, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:488,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:489,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 491
    functionName: Hacl_Hash_SHA1_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_free(Hacl_Streaming_MD_state_32 *state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:499,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:504,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:505,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:517,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:523,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:536,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:543,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:544,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:551,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:552,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:556,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:560,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_MD_state_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 561
    functionName: Hacl_Hash_SHA1_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_MALLOC
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: Hacl_Streaming_MD_state_32
    signature: Hacl_Streaming_MD_state_32 *Hacl_Hash_SHA1_copy(Hacl_Streaming_MD_state_32
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA1_hash_oneshot
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - output
    - input
    - input_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: Hacl_Hash_SHA1_hash
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_SHA1.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA1_hash_oneshot
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_SHA1_hash(uint8_t *output, uint8_t *input, uint32_t
      input_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:58,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:70,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:73,1
    - Dst: Hacl_Hash_MD5_hash_oneshot
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:77,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:80,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:88,1
    - Dst: Hacl_Hash_MD5_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:99,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:121,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:122,1
    - Dst: Hacl_Hash_MD5_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:123,1
    - Dst: Hacl_Hash_MD5_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:125,1
    - Dst: Hacl_Hash_MD5_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:127,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:146,1
    - Dst: Hacl_Hash_MD5_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:147,1
    - Dst: Hacl_Hash_MD5_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:148,1
    - Dst: Hacl_Hash_MD5_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 150
    functionName: Hacl_HMAC_compute_md5
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_MD5_update_last
    - memset
    - Hacl_Hash_MD5_finish
    - Hacl_Hash_MD5_update_multi
    - Hacl_Hash_MD5_init
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_MD5_hash_oneshot
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_md5(\n  uint8_t *dst,\n  uint8_t *key,\n  uint32_t
      key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:168,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:180,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:183,1
    - Dst: Hacl_Hash_SHA1_hash_oneshot
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:187,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:190,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:198,1
    - Dst: Hacl_Hash_SHA1_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:209,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:231,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:232,1
    - Dst: Hacl_Hash_SHA1_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:233,1
    - Dst: Hacl_Hash_SHA1_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:235,1
    - Dst: Hacl_Hash_SHA1_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:237,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:256,1
    - Dst: Hacl_Hash_SHA1_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:257,1
    - Dst: Hacl_Hash_SHA1_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:258,1
    - Dst: Hacl_Hash_SHA1_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:259,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 260
    functionName: Hacl_HMAC_compute_sha1
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA1_init
    - Hacl_Hash_SHA1_update_multi
    - Hacl_Hash_SHA1_update_last
    - Hacl_Hash_SHA1_finish
    - memset
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA1_hash_oneshot
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha1(\n  uint8_t *dst,\n  uint8_t *key,\n  uint32_t
      key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:278,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:290,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:293,1
    - Dst: Hacl_Hash_SHA2_hash_224
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:297,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:300,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:308,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:316,1
    - Dst: Hacl_Hash_SHA2_sha224_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:327,1
    - Dst: Hacl_Hash_SHA2_sha224_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:349,1
    - Dst: Hacl_Hash_SHA2_sha224_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:350,1
    - Dst: Hacl_Hash_SHA2_sha224_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:351,1
    - Dst: Hacl_Hash_SHA2_sha224_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:356,1
    - Dst: Hacl_Hash_SHA2_sha224_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:358,1
    - Dst: Hacl_Hash_SHA2_sha224_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:377,1
    - Dst: Hacl_Hash_SHA2_sha224_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:378,1
    - Dst: Hacl_Hash_SHA2_sha224_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:379,1
    - Dst: Hacl_Hash_SHA2_sha224_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 384
    functionName: Hacl_HMAC_compute_sha2_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha224_update_nblocks
    - KRML_MAYBE_FOR8
    - memset
    - Hacl_Hash_SHA2_sha224_update_last
    - Hacl_Hash_SHA2_sha224_finish
    - Hacl_Hash_SHA2_sha224_init
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA2_hash_224
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha2_224(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:402,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:414,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:417,1
    - Dst: Hacl_Hash_SHA2_hash_256
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:421,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:424,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:432,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:440,1
    - Dst: Hacl_Hash_SHA2_sha256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:451,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:473,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:474,1
    - Dst: Hacl_Hash_SHA2_sha256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:475,1
    - Dst: Hacl_Hash_SHA2_sha256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:480,1
    - Dst: Hacl_Hash_SHA2_sha256_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:482,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:501,1
    - Dst: Hacl_Hash_SHA2_sha256_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:502,1
    - Dst: Hacl_Hash_SHA2_sha256_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:503,1
    - Dst: Hacl_Hash_SHA2_sha256_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:507,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 508
    functionName: Hacl_HMAC_compute_sha2_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_sha256_init
    - KRML_MAYBE_FOR8
    - memset
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - Hacl_Hash_SHA2_sha256_finish
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA2_hash_256
    - Hacl_Hash_SHA2_sha256_update_last
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha2_256(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:526,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:538,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:541,1
    - Dst: Hacl_Hash_SHA2_hash_384
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:545,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:548,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:556,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:564,1
    - Dst: Hacl_Hash_SHA2_sha384_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:575,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:575,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:575,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:576,1
    - Dst: Hacl_Hash_SHA2_sha384_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:601,1
    - Dst: Hacl_Hash_SHA2_sha384_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:602,1
    - Dst: Hacl_Hash_SHA2_sha384_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:603,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:603,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:603,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:603,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:604,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:605,1
    - Dst: Hacl_Hash_SHA2_sha384_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:610,1
    - Dst: Hacl_Hash_SHA2_sha384_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:612,1
    - Dst: Hacl_Hash_SHA2_sha384_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:631,1
    - Dst: Hacl_Hash_SHA2_sha384_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:632,1
    - Dst: Hacl_Hash_SHA2_sha384_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:633,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:633,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:633,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:633,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:634,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:635,1
    - Dst: Hacl_Hash_SHA2_sha384_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:639,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 640
    functionName: Hacl_HMAC_compute_sha2_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha384_update_nblocks
    - Hacl_Hash_SHA2_sha384_init
    - KRML_MAYBE_FOR8
    - memset
    - Hacl_Hash_SHA2_hash_384
    - Hacl_Hash_SHA2_sha384_finish
    - Hacl_Hash_SHA2_sha384_update_last
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha2_384(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:658,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:670,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:673,1
    - Dst: Hacl_Hash_SHA2_hash_512
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:677,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:680,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:688,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:696,1
    - Dst: Hacl_Hash_SHA2_sha512_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:707,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:707,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:707,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:708,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:733,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:734,1
    - Dst: Hacl_Hash_SHA2_sha512_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:735,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:735,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:735,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:735,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:736,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:737,1
    - Dst: Hacl_Hash_SHA2_sha512_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:742,1
    - Dst: Hacl_Hash_SHA2_sha512_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:744,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:763,1
    - Dst: Hacl_Hash_SHA2_sha512_update_nblocks
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:764,1
    - Dst: Hacl_Hash_SHA2_sha512_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:765,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:765,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:765,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:765,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:766,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:767,1
    - Dst: Hacl_Hash_SHA2_sha512_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:771,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 772
    functionName: Hacl_HMAC_compute_sha2_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha512_update_last
    - KRML_MAYBE_FOR8
    - memset
    - Hacl_Hash_SHA2_sha512_update_nblocks
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA2_hash_512
    - Hacl_Hash_SHA2_sha512_init
    - Hacl_Hash_SHA2_sha512_finish
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha2_512(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:790,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:802,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:805,1
    - Dst: Hacl_Hash_SHA3_sha3_224
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:809,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:812,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:820,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:831,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:853,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:854,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:855,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:860,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:863,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:865,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:867,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:886,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:887,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:888,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:892,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:895,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:897,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 898
    functionName: Hacl_HMAC_compute_sha3_224
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_init_
    - memset
    - store64_le
    - Hacl_Hash_SHA3_update_multi_sha3
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA3_sha3_224
    - Hacl_Hash_SHA3_update_last_sha3
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha3_224(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:916,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:928,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:931,1
    - Dst: Hacl_Hash_SHA3_sha3_256
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:935,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:938,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:946,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:957,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:979,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:980,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:981,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:986,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:989,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:991,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:993,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1012,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1013,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1014,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1018,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1021,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1023,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 906
    functionDepth: 3
    functionLinenumber: 906
    functionLinenumberEnd: 1024
    functionName: Hacl_HMAC_compute_sha3_256
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_init_
    - memset
    - store64_le
    - Hacl_Hash_SHA3_sha3_256
    - Hacl_Hash_SHA3_update_multi_sha3
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA3_update_last_sha3
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha3_256(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1042,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1054,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1057,1
    - Dst: Hacl_Hash_SHA3_sha3_384
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1061,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1064,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1072,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1083,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1105,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1106,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1107,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1112,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1115,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1117,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1119,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1138,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1139,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1140,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1144,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1147,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1150
    functionName: Hacl_HMAC_compute_sha3_384
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_init_
    - Hacl_Hash_SHA3_sha3_384
    - memset
    - store64_le
    - Hacl_Hash_SHA3_update_multi_sha3
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA3_update_last_sha3
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha3_384(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1168,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1180,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1183,1
    - Dst: Hacl_Hash_SHA3_sha3_512
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1187,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1190,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1198,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1209,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1231,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1232,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1233,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1238,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1241,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1243,1
    - Dst: Hacl_Hash_SHA3_init_
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1245,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1264,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1265,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1266,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1270,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1273,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1275,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1276
    functionName: Hacl_HMAC_compute_sha3_512
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_init_
    - Hacl_Hash_SHA3_sha3_512
    - memset
    - store64_le
    - Hacl_Hash_SHA3_update_multi_sha3
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_SHA3_update_last_sha3
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_sha3_512(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1294,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1306,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1309,1
    - Dst: Hacl_Hash_Blake2s_hash_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1313,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1316,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1324,1
    - Dst: Hacl_Hash_Blake2s_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1332,1
    - Dst: Hacl_Hash_Blake2s_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1338,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1361,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1363,1
    - Dst: Hacl_Hash_Blake2s_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1370,1
    - Dst: Hacl_Hash_Blake2s_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1378,1
    - Dst: Hacl_Hash_Blake2s_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1380,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1400,1
    - Dst: Hacl_Hash_Blake2s_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1402,1
    - Dst: Hacl_Hash_Blake2s_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1409,1
    - Dst: Hacl_Hash_Blake2s_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1284
    functionDepth: 3
    functionLinenumber: 1284
    functionLinenumberEnd: 1417
    functionName: Hacl_HMAC_compute_blake2s_32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_hash_with_key
    - Hacl_Hash_Blake2s_finish
    - memset
    - Hacl_Hash_Blake2s_update_last
    - Hacl_Hash_Blake2s_init
    - Hacl_Hash_Blake2s_update_multi
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_blake2s_32(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1435,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1447,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1450,1
    - Dst: Hacl_Hash_Blake2b_hash_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1454,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1457,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1465,1
    - Dst: Hacl_Hash_Blake2b_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1473,1
    - Dst: Hacl_Hash_Blake2b_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1479,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1483,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1508,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1508,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1510,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1513,1
    - Dst: Hacl_Hash_Blake2b_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1517,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1521,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1521,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1522,1
    - Dst: Hacl_Hash_Blake2b_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1526,1
    - Dst: Hacl_Hash_Blake2b_init
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1528,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1548,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1548,1
    - Dst: Hacl_Hash_Blake2b_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1550,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1553,1
    - Dst: Hacl_Hash_Blake2b_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1557,1
    - Dst: FStar_UInt128_add
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1561,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1561,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1562,1
    - Dst: Hacl_Hash_Blake2b_finish
      Src: /src/cpython/Modules/_hacl/Hacl_HMAC.c:1565,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 5
    argNames:
    - dst
    - key
    - key_len
    - data
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1425
    functionDepth: 3
    functionLinenumber: 1425
    functionLinenumberEnd: 1566
    functionName: Hacl_HMAC_compute_blake2b_32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_HMAC.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2b_update_last
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_add
    - Hacl_Hash_Blake2b_finish
    - memset
    - Hacl_Hash_Blake2b_hash_with_key
    - Hacl_Hash_Blake2b_init
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Hacl_Hash_Blake2b_update_multi
    linkageType: ''
    returnType: void
    signature: "void Hacl_HMAC_compute_blake2b_32(\n  uint8_t *dst,\n  uint8_t *key,\n
      \ uint32_t key_len,\n  uint8_t *data,\n  uint32_t data_len\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR16
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:46,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:52,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:76,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:80,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:82,1
    - Dst: KRML_MAYBE_FOR10
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:83,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:88,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:88,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:109,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:110,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:111,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:112,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:123,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:124,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:127,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:128,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:131,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:134,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:135,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:138,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:139,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:142,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:143,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:146,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:149,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:150,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:156,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:160,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:164,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:172,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:173,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:176,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:177,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:180,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:183,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:184,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:187,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:188,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:191,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:192,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:195,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:198,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:199,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:205,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:209,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:213,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:221,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:222,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:223,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 61
    argCount: 6
    argNames:
    - wv
    - hash
    - flag
    - last_node
    - totlen
    - d
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    - bool
    - bool
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 225
    functionName: update_block
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 9
    functionsReached:
    - KRML_MAYBE_FOR16
    - Lib_IntVector_Intrinsics_vec128_rotate_right32
    - Lib_IntVector_Intrinsics_vec128_xor
    - KRML_PRE_ALIGN
    - KRML_MAYBE_FOR10
    - KRML_POST_ALIGN
    - Lib_IntVector_Intrinsics_vec128_add32
    - Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    - memcpy
    - Lib_IntVector_Intrinsics_vec128_load32s
    - load32_le
    linkageType: ''
    returnType: void
    signature: "void update_block(\n  Lib_IntVector_Intrinsics_vec128 *wv,\n  Lib_IntVector_Intrinsics_vec128
      *hash,\n  bool flag,\n  bool last_node,\n  uint64_t totlen,\n  uint8_t *d\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:251,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:252,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:253,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:259,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:263,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:269,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:297,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - hash
    - kk
    - nn
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 299
    functionName: Hacl_Hash_Blake2s_Simd128_init
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR2
    - Lib_IntVector_Intrinsics_vec128_load32s
    - load32_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_Simd128_init(Lib_IntVector_Intrinsics_vec128
      *hash, uint32_t kk, uint32_t nn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:312,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:315,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:319,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 322
    functionName: update_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 3
    functionsReached:
    - memcpy
    - update_block
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void update_key(\n  Lib_IntVector_Intrinsics_vec128 *wv,\n  Lib_IntVector_Intrinsics_vec128
      *hash,\n  uint32_t kk,\n  uint8_t *k,\n  uint32_t ll\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:334,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    - nb
    argTypes:
    - uint32_t
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 341
    functionName: Hacl_Hash_Blake2s_Simd128_update_multi
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - update_block
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_update_multi(\n  uint32_t len,\n  Lib_IntVector_Intrinsics_vec128
      *wv,\n  Lib_IntVector_Intrinsics_vec128 *hash,\n  uint64_t prev,\n  uint8_t
      *blocks,\n  uint32_t nb\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:356,1
    - Dst: update_block
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:358,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - len
    - wv
    - hash
    - last_node
    - prev
    - rem
    - d
    argTypes:
    - uint32_t
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    - bool
    - uint64_t
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 360
    functionName: Hacl_Hash_Blake2s_Simd128_update_last
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - update_block
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_update_last(\n  uint32_t len,\n  Lib_IntVector_Intrinsics_vec128
      *wv,\n  Lib_IntVector_Intrinsics_vec128 *hash,\n  bool last_node,\n  uint64_t
      prev,\n  uint32_t rem,\n  uint8_t *d\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:391,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - len
    - wv
    - hash
    - prev
    - blocks
    argTypes:
    - uint32_t
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 393
    functionName: update_blocks
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 3
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_update_multi
    - Hacl_Hash_Blake2s_Simd128_update_last
    linkageType: ''
    returnType: void
    signature: "void update_blocks(\n  uint32_t len,\n  Lib_IntVector_Intrinsics_vec128
      *wv,\n  Lib_IntVector_Intrinsics_vec128 *hash,\n  uint64_t prev,\n  uint8_t
      *blocks\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:408,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:411,1
    - Dst: update_blocks
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - wv
    - hash
    - kk
    - k
    - ll
    - d
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 417
    functionName: update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 29
    functionsReached:
    - update_blocks
    - update_key
    linkageType: ''
    returnType: void
    signature: "void update(\n  Lib_IntVector_Intrinsics_vec128 *wv,\n  Lib_IntVector_Intrinsics_vec128
      *hash,\n  uint32_t kk,\n  uint8_t *k,\n  uint32_t ll,\n  uint8_t *d\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:431,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:432,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:434,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - nn
    - output
    - hash
    argTypes:
    - uint32_t
    - uint8_t*
    - Lib_IntVector_Intrinsics_vec128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 436
    functionName: Hacl_Hash_Blake2s_Simd128_finish
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Lib_IntVector_Intrinsics_vec128_store32_le
    - Lib_Memzero0_memzero
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_finish(\n  uint32_t nn,\n  uint8_t
      *output,\n  Lib_IntVector_Intrinsics_vec128 *hash\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:453,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:454,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:460,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:465,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:466,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:472,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:477,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:478,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:484,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:489,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:490,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - st32
    - st
    argTypes:
    - uint32_t*
    - Lib_IntVector_Intrinsics_vec128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 500
    functionName: Hacl_Hash_Blake2s_Simd128_store_state128s_to_state32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_store32_le
    - KRML_MAYBE_FOR4
    - load32_le
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_store_state128s_to_state32(\n  uint32_t
      *st32,\n  Lib_IntVector_Intrinsics_vec128 *st\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:516,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:517,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:518,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - st
    - st32
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 520
    functionName: Hacl_Hash_Blake2s_Simd128_load_state128s_from_state32
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_load32s
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_load_state128s_from_state32(\n  Lib_IntVector_Intrinsics_vec128
      *st,\n  uint32_t *st32\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:526,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 533
    functionName: Hacl_Hash_Blake2s_Simd128_malloc_internal_state_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - KRML_ALIGNED_MALLOC
    - memset
    linkageType: ''
    returnType: Lib_IntVector_Intrinsics_vec128
    signature: Lib_IntVector_Intrinsics_vec128 *Hacl_Hash_Blake2s_Simd128_malloc_internal_state_with_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:543,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:543,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - ev
    - blocks
    - n
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 545
    functionName: Hacl_Hash_Blake2s_Simd128_update_multi_no_inline
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_update_multi
    - KRML_POST_ALIGN
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_update_multi_no_inline(\n  Lib_IntVector_Intrinsics_vec128
      *s,\n  uint64_t ev,\n  uint8_t *blocks,\n  uint32_t n\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:555,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:555,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - prev
    - input
    - input_len
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint64_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 557
    functionName: Hacl_Hash_Blake2s_Simd128_update_last_no_inline
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_update_last
    - KRML_POST_ALIGN
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_update_last_no_inline(\n  Lib_IntVector_Intrinsics_vec128
      *s,\n  uint64_t prev,\n  uint8_t *input,\n  uint32_t input_len\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 566
    functionName: Hacl_Hash_Blake2s_Simd128_copy_internal_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_copy_internal_state(\n  Lib_IntVector_Intrinsics_vec128
      *src,\n  Lib_IntVector_Intrinsics_vec128 *dst\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:579,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:587,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:591,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:608,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:612,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:616,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:642,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:671,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:682,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:683,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:684,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:699,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:700,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:716,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:717,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:718,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:724,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:728,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:734,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:763,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:764,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:769,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:770,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:774,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:778,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 72
    argCount: 2
    argNames:
    - kk
    - key
    argTypes:
    - Hacl_Hash_Blake2b_index
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 779
    functionName: malloc_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 3
    functionsReached:
    - KRML_MAYBE_FOR2
    - memcpy
    - memset
    - KRML_HOST_CALLOC
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - KRML_HOST_FREE
    - KRML_HOST_MALLOC
    - Lib_IntVector_Intrinsics_vec128_load32s
    - KRML_ALIGNED_FREE
    - load32_le
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_Simd128_state_t
    signature: Hacl_Hash_Blake2s_Simd128_state_t *malloc_raw(Hacl_Hash_Blake2b_index
      kk, Hacl_Hash_Blake2b_params_and_key key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - last_node
    - k
    argTypes:
    - Hacl_Hash_Blake2b_blake2_params*
    - bool
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 807
    functionName: Hacl_Hash_Blake2s_Simd128_malloc_with_params_and_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - malloc_raw
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_Simd128_state_t
    signature: "Hacl_Hash_Blake2s_Simd128_state_t *Hacl_Hash_Blake2s_Simd128_malloc_with_params_and_key(\n
      \ Hacl_Hash_Blake2b_blake2_params *p,\n  bool last_node,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_Simd128_malloc_with_params_and_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - kk
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 838
    functionName: Hacl_Hash_Blake2s_Simd128_malloc_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_malloc_with_params_and_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_Simd128_state_t
    signature: Hacl_Hash_Blake2s_Simd128_state_t *Hacl_Hash_Blake2s_Simd128_malloc_with_key(uint8_t
      *k, uint8_t kk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_Simd128_malloc_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: Hacl_Hash_Blake2s_Simd128_malloc
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_malloc_with_key
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_Simd128_state_t
    signature: Hacl_Hash_Blake2s_Simd128_state_t *Hacl_Hash_Blake2s_Simd128_malloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 858
    functionName: index_of_state
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index index_of_state(Hacl_Hash_Blake2s_Simd128_state_t
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:871,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:884,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:885,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:901,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:902,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:903,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:909,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:913,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:919,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:947,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - state
    - key
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    - Hacl_Hash_Blake2b_params_and_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 962
    functionName: reset_raw
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 6
    functionsReached:
    - KRML_MAYBE_FOR2
    - memset
    - KRML_MAYBE_UNUSED_VAR
    - memcpy
    - Lib_IntVector_Intrinsics_vec128_load32s
    - load32_le
    linkageType: ''
    returnType: void
    signature: void reset_raw(Hacl_Hash_Blake2s_Simd128_state_t *state, Hacl_Hash_Blake2b_params_and_key
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:978,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:979,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - p
    - k
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    - Hacl_Hash_Blake2b_blake2_params*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 981
    functionName: Hacl_Hash_Blake2s_Simd128_reset_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    - KRML_MAYBE_UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_reset_with_key_and_params(\n  Hacl_Hash_Blake2s_Simd128_state_t
      *s,\n  Hacl_Hash_Blake2b_blake2_params *p,\n  uint8_t *k\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_of_state
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:992,1
    - Dst: reset_raw
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - k
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1004
    functionName: Hacl_Hash_Blake2s_Simd128_reset_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - index_of_state
    - reset_raw
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_Simd128_reset_with_key(Hacl_Hash_Blake2s_Simd128_state_t
      *s, uint8_t *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_Blake2s_Simd128_reset_with_key
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    functionName: Hacl_Hash_Blake2s_Simd128_reset
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_reset_with_key
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_Simd128_reset(Hacl_Hash_Blake2s_Simd128_state_t
      *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1060,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1093,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1113,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1115,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1144,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1174,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1195,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1197,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - state
    - chunk
    - chunk_len
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1208
    functionName: Hacl_Hash_Blake2s_Simd128_update
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Hash_Blake2s_Simd128_update_multi
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: "Hacl_Streaming_Types_error_code Hacl_Hash_Blake2s_Simd128_update(\n
      \ Hacl_Hash_Blake2s_Simd128_state_t *state,\n  uint8_t *chunk,\n  uint32_t chunk_len\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1243,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1243,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1244,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1244,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1255,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_multi
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1272,1
    - Dst: Hacl_Hash_Blake2s_Simd128_update_last
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1278,1
    - Dst: Hacl_Hash_Blake2s_Simd128_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1287
    functionName: Hacl_Hash_Blake2s_Simd128_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_finish
    - KRML_POST_ALIGN
    - Hacl_Hash_Blake2s_Simd128_update_multi
    - Hacl_Hash_Blake2s_Simd128_update_last
    - memcpy
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Hacl_Hash_Blake2s_Simd128_digest(Hacl_Hash_Blake2s_Simd128_state_t
      *s, uint8_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1297
    functionName: Hacl_Hash_Blake2s_Simd128_info
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Hacl_Hash_Blake2b_index
    signature: Hacl_Hash_Blake2b_index Hacl_Hash_Blake2s_Simd128_info(Hacl_Hash_Blake2s_Simd128_state_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1309,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1310,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1311,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1313
    functionName: Hacl_Hash_Blake2s_Simd128_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - KRML_ALIGNED_FREE
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Hash_Blake2s_Simd128_free(Hacl_Hash_Blake2s_Simd128_state_t
      *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1329,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1334,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1337,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1341,1
    - Dst: KRML_ALIGNED_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1358,1
    - Dst: memset
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1362,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1366,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1392,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1400,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1414,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1425,1
    - Dst: KRML_ALIGNED_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1426,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1427,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1434,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1435,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1439,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1443,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Hash_Blake2s_Simd128_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1444
    functionName: Hacl_Hash_Blake2s_Simd128_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - memset
    - KRML_HOST_CALLOC
    - KRML_HOST_MALLOC
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_FREE
    - memcpy
    - KRML_HOST_EXIT
    - KRML_ALIGNED_FREE
    linkageType: ''
    returnType: Hacl_Hash_Blake2s_Simd128_state_t
    signature: Hacl_Hash_Blake2s_Simd128_state_t *Hacl_Hash_Blake2s_Simd128_copy(Hacl_Hash_Blake2s_Simd128_state_t
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1466,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1466,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1467,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1467,1
    - Dst: Hacl_Hash_Blake2s_Simd128_init
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1468,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1469,1
    - Dst: Hacl_Hash_Blake2s_Simd128_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1470,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1471,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - output
    - output_len
    - input
    - input_len
    - key
    - key_len
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1473
    functionName: Hacl_Hash_Blake2s_Simd128_hash_with_key
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 1
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_finish
    - Hacl_Hash_Blake2s_Simd128_init
    - KRML_POST_ALIGN
    - update
    - Lib_Memzero0_memzero
    - KRML_PRE_ALIGN
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_hash_with_key(\n  uint8_t *output,\n
      \ uint32_t output_len,\n  uint8_t *input,\n  uint32_t input_len,\n  uint8_t
      *key,\n  uint32_t key_len\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1490,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1490,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1491,1
    - Dst: KRML_POST_ALIGN
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1491,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1505,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1506,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1507,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1513,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1517,1
    - Dst: load32_le
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1523,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1552,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1553,1
    - Dst: update
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1554,1
    - Dst: Hacl_Hash_Blake2s_Simd128_finish
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1555,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1556,1
    - Dst: Lib_Memzero0_memzero
      Src: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 5
    argNames:
    - output
    - input
    - input_len
    - params
    - key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - Hacl_Hash_Blake2b_blake2_params
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1558
    functionName: Hacl_Hash_Blake2s_Simd128_hash_with_key_and_params
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_finish
    - KRML_MAYBE_FOR2
    - KRML_PRE_ALIGN
    - KRML_POST_ALIGN
    - update
    - Lib_Memzero0_memzero
    - Lib_IntVector_Intrinsics_vec128_load32s
    - load32_le
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_Blake2s_Simd128_hash_with_key_and_params(\n  uint8_t
      *output,\n  uint8_t *input,\n  uint32_t input_len,\n  Hacl_Hash_Blake2b_blake2_params
      params,\n  uint8_t *key\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: FStar_UInt64_eq_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt64_eq_mask(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: FStar_UInt64_gte_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt64_gte_mask(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: FStar_UInt32_eq_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt32_eq_mask(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: FStar_UInt32_gte_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt32_gte_mask(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: FStar_UInt16_eq_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt16_eq_mask(uint16_t a, uint16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: FStar_UInt16_gte_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt16_gte_mask(uint16_t a, uint16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: FStar_UInt8_eq_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt8_eq_mask(uint8_t a, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: FStar_UInt8_gte_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt8_gte_mask(uint8_t a, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: htole64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: le64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    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: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: htobe64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: be64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - 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: htole16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: le16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(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: htobe16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: be16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - 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: htole32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: le32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: htobe32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: be32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: htole64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: le64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: htobe64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: be64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: htole16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: le16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: htobe16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: be16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: htole32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: le32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(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: htobe32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: be32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - 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: htobe16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: htole16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - 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: be16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: le16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(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: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: htobe32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: htole32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: be32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: le32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - 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: htobe64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: htole64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(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: be64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - 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: le64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: htobe16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: htole16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: be16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: le16toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: htobe32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: htole32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: be32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: le32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: htobe64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: htole64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: be64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: le64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    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: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: htobe32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: be32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: htole32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: le32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: htobe64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: be64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: htole64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: le64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    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: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: htole32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(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: le32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: htobe32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(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: be32toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: htole64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - 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: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: le64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    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: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: htobe64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - 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: be64toh
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: load16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t load16(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: load32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load32(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: load64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load64(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - i
    argTypes:
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: store16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store16(uint8_t *b, uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - i
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: store32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store32(uint8_t *b, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - i
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: store64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store64(uint8_t *b, uint64_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: load16_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load16_le(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: store16_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store16_le(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: load16_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load16_be(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: store16_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store16_be(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: load32_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load32_le(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: store32_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store32_le(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: load32_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load32_be(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: store32_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store32_be(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: load64_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load64_le(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: store64_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store64_le(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: load64_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load64_be(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: store64_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/lowstar_endianness.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store64_be(b, i)
  - 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: HIGH64_OF
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIGH64_OF(x)
  - 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: LOW64_OF
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOW64_OF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOW64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:17,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:17,1
    - Dst: HIGH64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:18,1
    - Dst: load64_le
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: load128_le_
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - load64_le
    - LOW64_OF
    - HIGH64_OF
    linkageType: ''
    returnType: void
    signature: void load128_le_(uint8_t *b, uint128_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:22,1
    - Dst: LOW64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:22,1
    - Dst: store64_le
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:23,1
    - Dst: HIGH64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: store128_le_
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - LOW64_OF
    - store64_le
    - HIGH64_OF
    linkageType: ''
    returnType: void
    signature: void store128_le_(uint8_t *b, uint128_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HIGH64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:27,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:27,1
    - Dst: LOW64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:28,1
    - Dst: load64_be
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: load128_be_
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - LOW64_OF
    - load64_be
    - HIGH64_OF
    linkageType: ''
    returnType: void
    signature: void load128_be_(uint8_t *b, uint128_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_be
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:32,1
    - Dst: HIGH64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:32,1
    - Dst: store64_be
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:33,1
    - Dst: LOW64_OF
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: store128_be_
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - LOW64_OF
    - store64_be
    - HIGH64_OF
    linkageType: ''
    returnType: void
    signature: void store128_be_(uint8_t *b, uint128_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128_le_
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: load128_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - load128_le_
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t load128_le(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store128_le_
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: store128_le
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - store128_le_
    linkageType: ''
    returnType: void
    signature: void store128_le(uint8_t *b, uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128_be_
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: load128_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - load128_be_
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t load128_be(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store128_be_
      Src: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: store128_be
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h
    functionUses: 1
    functionsReached:
    - store128_be_
    linkageType: ''
    returnType: void
    signature: void store128_be(uint8_t *b, uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: FStar_UInt128_constant_time_carry
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_constant_time_carry(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_constant_time_carry
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: FStar_UInt128_carry
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_constant_time_carry
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_carry(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: FStar_UInt128_add
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 6
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: FStar_UInt128_add_underspec
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add_underspec(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: FStar_UInt128_add_mod
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 4
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add_mod(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: FStar_UInt128_sub
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: FStar_UInt128_sub_underspec
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_underspec(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: FStar_UInt128_sub_mod_impl
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_mod_impl(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_sub_mod_impl
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: FStar_UInt128_sub_mod
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_sub_mod_impl
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_mod(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: FStar_UInt128_logand
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logand(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: FStar_UInt128_logxor
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logxor(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: FStar_UInt128_logor
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logor(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: FStar_UInt128_lognot
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_lognot(FStar_UInt128_uint128 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: FStar_UInt128_add_u64_shift_left
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_left(uint64_t hi, uint64_t lo,
      uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_left
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: FStar_UInt128_add_u64_shift_left_respec
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_left
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_left_respec(uint64_t hi, uint64_t
      lo, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_left_respec
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: FStar_UInt128_shift_left_small
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_left_respec
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left_small(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: FStar_UInt128_shift_left_large
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left_large(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_shift_left_small
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:164,1
    - Dst: FStar_UInt128_shift_left_large
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: FStar_UInt128_shift_left
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_shift_left_large
    - FStar_UInt128_shift_left_small
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: FStar_UInt128_add_u64_shift_right
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_right(uint64_t hi, uint64_t lo,
      uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_right
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: FStar_UInt128_add_u64_shift_right_respec
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_right
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_right_respec(uint64_t hi, uint64_t
      lo, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_right_respec
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: FStar_UInt128_shift_right_small
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_right_respec
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right_small(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: FStar_UInt128_shift_right_large
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right_large(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_shift_right_small
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:213,1
    - Dst: FStar_UInt128_shift_right_large
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: FStar_UInt128_shift_right
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 2
    functionsReached:
    - FStar_UInt128_shift_right_large
    - FStar_UInt128_shift_right_small
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: FStar_UInt128_eq
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_eq(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: FStar_UInt128_gt
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gt(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: FStar_UInt128_lt
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lt(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: FStar_UInt128_gte
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gte(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: FStar_UInt128_lte
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lte(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:250,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:250,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:251,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: FStar_UInt128_eq_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_eq_mask(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_gte_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:260,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:260,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:261,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:261,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:263,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:263,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:264,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: FStar_UInt128_gte_mask
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_eq_mask
    - FStar_UInt64_gte_mask
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_gte_mask(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: FStar_UInt128_uint64_to_uint128
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: FStar_UInt128_uint128_to_uint64
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: FStar_UInt128_u64_mod_32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u64_mod_32(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hi
    - lo
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: FStar_UInt128_u32_combine
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u32_combine(uint64_t hi, uint64_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_u32_combine
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:297,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:298,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:299,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:299,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: FStar_UInt128_mul32
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_u64_mod_32
    - FStar_UInt128_u32_combine
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_mul32(uint64_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hi
    - lo
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: FStar_UInt128_u32_combine_
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u32_combine_(uint64_t hi, uint64_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_u32_combine_
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:316,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:316,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:317,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:317,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:318,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:318,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:319,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:319,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:319,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:322,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:323,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:323,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:326,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:327,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:327,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:328,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 331
    functionName: FStar_UInt128_mul_wide
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_u64_mod_32
    - FStar_UInt128_u32_combine_
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_mul_wide(uint64_t x, uint64_t y)
  - 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: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: RETURN_OR
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_OR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: KRML_HOST_EPRINTF
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_EPRINTF(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: KRML_HOST_EPRINTF
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_EPRINTF(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: KRML_HOST_IGNORE
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_IGNORE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: KRML_MAYBE_UNUSED_VAR
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_UNUSED_VAR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: KRML_ATTRIBUTE_TARGET
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ATTRIBUTE_TARGET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: KRML_PRE_ALIGN
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_PRE_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: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: KRML_POST_ALIGN
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_POST_ALIGN(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: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: KRML_ALIGNED_MALLOC
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_MALLOC(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: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: KRML_ALIGNED_MALLOC
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_MALLOC(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: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: KRML_ALIGNED_MALLOC
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_MALLOC(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: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: KRML_ALIGNED_FREE
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_FREE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: KRML_ALIGNED_FREE
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_FREE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: KRML_ALIGNED_FREE
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_FREE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/cpython/Modules/_hacl/include/krml/internal/target.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: krml_time
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached:
    - time
    linkageType: ''
    returnType: int32_t
    signature: int32_t krml_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: KRML_EABORT
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_EABORT(t, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size_elt
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 223
    functionName: KRML_CHECK_SIZE
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_CHECK_SIZE(size_elt, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - buf
    - ','
    - sz
    - ','
    - fmt
    - ','
    - arg
    - )
    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: KRML_HOST_SNPRINTF
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_SNPRINTF(buf, sz, fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - buf
    - ','
    - sz
    - ','
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: KRML_HOST_SNPRINTF
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_SNPRINTF(buf, sz, fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: KRML_DEPRECATED
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_DEPRECATED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: KRML_DEPRECATED
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_DEPRECATED(x)
  - 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: KRML_DEPRECATED
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_DEPRECATED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: KRML_LOOP1
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP1(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: KRML_LOOP2
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP2(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: KRML_LOOP3
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP3(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: KRML_LOOP4
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP4(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: KRML_LOOP5
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP5(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: KRML_LOOP6
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP6(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: KRML_LOOP7
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP7(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: KRML_LOOP8
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP8(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: KRML_LOOP9
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP9(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: KRML_LOOP10
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP10(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: KRML_LOOP11
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP11(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: KRML_LOOP12
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP12(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: KRML_LOOP13
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP13(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: KRML_LOOP14
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP14(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: KRML_LOOP15
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP15(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: KRML_LOOP16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP16(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: KRML_UNROLL_FOR
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_UNROLL_FOR(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: KRML_ACTUAL_FOR
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ACTUAL_FOR(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: KRML_MAYBE_FOR0
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR0(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: KRML_MAYBE_FOR1
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR1(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: KRML_MAYBE_FOR1
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR1(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: KRML_MAYBE_FOR2
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR2(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: KRML_MAYBE_FOR2
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR2(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: KRML_MAYBE_FOR3
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR3(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: KRML_MAYBE_FOR3
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR3(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: KRML_MAYBE_FOR4
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR4(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: KRML_MAYBE_FOR4
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR4(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: KRML_MAYBE_FOR5
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR5(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: KRML_MAYBE_FOR5
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR5(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: KRML_MAYBE_FOR6
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR6(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: KRML_MAYBE_FOR6
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR6(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: KRML_MAYBE_FOR7
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR7(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: KRML_MAYBE_FOR7
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR7(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: KRML_MAYBE_FOR8
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR8(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: KRML_MAYBE_FOR8
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR8(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: KRML_MAYBE_FOR9
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR9(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: KRML_MAYBE_FOR9
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR9(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: KRML_MAYBE_FOR10
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR10(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 391
    functionName: KRML_MAYBE_FOR10
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR10(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: KRML_MAYBE_FOR11
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR11(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: KRML_MAYBE_FOR11
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR11(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: KRML_MAYBE_FOR12
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR12(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: KRML_MAYBE_FOR12
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR12(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: KRML_MAYBE_FOR13
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR13(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: KRML_MAYBE_FOR13
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR13(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 413
    functionName: KRML_MAYBE_FOR14
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR14(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: KRML_MAYBE_FOR14
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR14(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 419
    functionName: KRML_MAYBE_FOR15
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR15(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 421
    functionName: KRML_MAYBE_FOR15
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR15(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: KRML_MAYBE_FOR16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR16(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: KRML_MAYBE_FOR16
    functionSourceFile: /src/cpython/Modules/_hacl/include/krml/internal/target.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR16(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_NewStdPrinter
      Src: /src/cpython/Modules/_testcapi/file.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: _testcapi_pyfile_newstdprinter_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/file.c
    functionUses: 0
    functionsReached:
    - PyFile_NewStdPrinter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyfile_newstdprinter_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/file.c:46,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapi/file.c:47,1
    - Dst: fread
      Src: /src/cpython/Modules/_testcapi/file.c:53,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapi/file.c:53,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_testcapi/file.c:54,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/file.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - module
    - path
    - mode
    - mode_length
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: _testcapi_py_fopen_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/file.c
    functionUses: 0
    functionsReached:
    - fread
    - NULLABLE
    - PyBytes_FromStringAndSize
    - Py_fclose
    - Py_fopen
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_py_fopen_impl(PyObject *module, PyObject *path,
      const char *mode,\n                        Py_ssize_t mode_length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapi/file.c:75,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/file.c:80,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_testcapi/file.c:82,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/file.c:83,1
    - Dst: Py_UniversalNewlineFgets
      Src: /src/cpython/Modules/_testcapi/file.c:86,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/file.c:88,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_testcapi/file.c:89,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testcapi/file.c:93,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/file.c:94,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_testcapi/file.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - module
    - file
    - size
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 98
    functionName: _testcapi_py_universalnewlinefgets_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/file.c
    functionUses: 0
    functionsReached:
    - Py_UniversalNewlineFgets
    - Py_fclose
    - Py_fopen
    - PyMem_Free
    - PyErr_NoMemory
    - PyBytes_FromString
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_py_universalnewlinefgets_impl(PyObject *module,
      PyObject *file,\n                                        int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/file.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: _PyTestCapi_Init_File
    functionSourceFile: /src/cpython/Modules/_testcapi/file.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_File(PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:26,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/long.c:26,1
    - Dst: PyUnstable_Long_IsCompact
      Src: /src/cpython/Modules/_testcapi/long.c:27,1
    - Dst: PyUnstable_Long_CompactValue
      Src: /src/cpython/Modules/_testcapi/long.c:30,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/long.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(arg))
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/cpython/Modules/_testcapi/long.c
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: _testcapi_call_long_compact_api
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnstable_Long_CompactValue
    - PyLong_Check
    - PyUnstable_Long_IsCompact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_call_long_compact_api(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/long.c:41,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/long.c:45,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/cpython/Modules/_testcapi/long.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: pylong_fromunicodeobject
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnicodeObject
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_fromunicodeobject(PyObject *module, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/long.c:56,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/long.c:60,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/long.c:61,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/long.c:65,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/long.c:66,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/_testcapi/long.c:69,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/long.c:70,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/long.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: pylong_asnativebytes
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyLong_AsNativeBytes
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asnativebytes(PyObject *module, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/long.c:80,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/long.c:84,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/long.c:85,1
    - Dst: PyLong_FromNativeBytes
      Src: /src/cpython/Modules/_testcapi/long.c:89,1
    - Dst: PyLong_FromUnsignedNativeBytes
      Src: /src/cpython/Modules/_testcapi/long.c:90,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/long.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: pylong_fromnativebytes
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyBuffer_Release
    - PyLong_FromUnsignedNativeBytes
    - PyLong_FromNativeBytes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_fromnativebytes(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/long.c:100,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Modules/_testcapi/long.c:101,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/long.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: pylong_getsign
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_GetSign
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_getsign(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/long.c:111,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/long.c:112,1
    - Dst: PyLong_IsPositive
      Src: /src/cpython/Modules/_testcapi/long.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: pylong_ispositive
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_IsPositive
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_ispositive(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/long.c:119,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/long.c:120,1
    - Dst: PyLong_IsNegative
      Src: /src/cpython/Modules/_testcapi/long.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: pylong_isnegative
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_IsNegative
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_isnegative(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/long.c:127,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/long.c:128,1
    - Dst: PyLong_IsZero
      Src: /src/cpython/Modules/_testcapi/long.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: pylong_iszero
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_IsZero
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_iszero(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/long.c:135,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/_testcapi/long.c:136,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/long.c:137,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/_testcapi/long.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: pylong_aspid
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromPid
    - NULLABLE
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_aspid(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/long.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - layout
    argTypes:
    - PyLongLayout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: layout_to_dict
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      layout_to_dict(const PyLongLayout *layout)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Export
      Src: /src/cpython/Modules/_testcapi/long.c:159,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:164,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:165,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:166,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testcapi/long.c:167,1
    - Dst: PyLong_FreeExport
      Src: /src/cpython/Modules/_testcapi/long.c:168,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:172,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_testcapi/long.c:172,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/long.c:175,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapi/long.c:180,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/long.c:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/long.c:186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/long.c:189,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:192,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/long.c:193,1
    - Dst: PyLong_FreeExport
      Src: /src/cpython/Modules/_testcapi/long.c:195,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:196,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/long.c:201,1
    - Dst: PyLong_FreeExport
      Src: /src/cpython/Modules/_testcapi/long.c:202,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (export_long.value == 0)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Modules/_testcapi/long.c
    - condition: (export_long._reserved == 0)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/cpython/Modules/_testcapi/long.c
    - condition: (export_long.ndigits == 0)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/cpython/Modules/_testcapi/long.c
    - condition: (export_long.negative == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Modules/_testcapi/long.c
    - condition: (export_long.digits == NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Modules/_testcapi/long.c
    - condition: (PyLong_GetNativeLayout()->digit_size == sizeof(digit))
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Modules/_testcapi/long.c
    constantsTouched: []
    func_position:
      end: 204
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 204
    functionName: pylong_export
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_FromInt64
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - PyList_Append
    - PyLong_FreeExport
    - PyLong_GetNativeLayout
    - PyLong_Export
    - PyLong_FromUnsignedLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_export(PyObject *module, PyObject *obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/long.c:213,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/long.c:216,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/long.c:218,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/long.c:220,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/long.c:224,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/long.c:226,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/long.c:227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/long.c:232,1
    - Dst: PyLongWriter_Create
      Src: /src/cpython/Modules/_testcapi/long.c:239,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:244,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_testcapi/long.c:244,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/long.c:245,1
    - Dst: PyLongWriter_Finish
      Src: /src/cpython/Modules/_testcapi/long.c:246,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/long.c:247,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/long.c:252,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_GetNativeLayout()->digit_size == sizeof(digit))
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Modules/_testcapi/long.c
    constantsTouched: []
    func_position:
      end: 254
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 254
    functionName: pylongwriter_create
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PyArg_ParseTuple
    - PyLong_AsLong
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyErr_SetString
    - memcpy
    - PyMem_Free
    - PyLong_GetNativeLayout
    - PyLongWriter_Create
    - PyLongWriter_Finish
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylongwriter_create(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_testcapi/long.c:260,1
    - Dst: layout_to_dict
      Src: /src/cpython/Modules/_testcapi/long.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: get_pylong_layout
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - layout_to_dict
    - PyLong_GetNativeLayout
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_pylong_layout(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/long.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: _PyTestCapi_Init_Long
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Long(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:10,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:11,1
    - Dst: PyFrame_GetLocals
      Src: /src/cpython/Modules/_testcapi/frame.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 15
    functionName: frame_getlocals
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetLocals
    - PyErr_SetString
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getlocals(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:21,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:22,1
    - Dst: PyFrame_GetGlobals
      Src: /src/cpython/Modules/_testcapi/frame.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: frame_getglobals
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFrame_GetGlobals
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getglobals(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:32,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:33,1
    - Dst: PyFrame_GetGenerator
      Src: /src/cpython/Modules/_testcapi/frame.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: frame_getgenerator
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFrame_GetGenerator
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getgenerator(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:43,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:44,1
    - Dst: PyFrame_GetBuiltins
      Src: /src/cpython/Modules/_testcapi/frame.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: frame_getbuiltins
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetBuiltins
    - PyErr_SetString
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getbuiltins(PyObject *self, PyObject *frame)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:54,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:55,1
    - Dst: PyFrame_GetLasti
      Src: /src/cpython/Modules/_testcapi/frame.c:58,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/frame.c:60,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/frame.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (lasti == -1)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Modules/_testcapi/frame.c
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: frame_getlasti
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetLasti
    - PyFrame_Check
    - PyErr_SetString
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getlasti(PyObject *self, PyObject *frame)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/frame.c:71,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:74,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:75,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapi/frame.c:78,1
    - Dst: PyFrame_New
      Src: /src/cpython/Modules/_testcapi/frame.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: frame_new
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyFrame_New
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_new(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/frame.c:88,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:91,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:92,1
    - Dst: PyFrame_GetVar
      Src: /src/cpython/Modules/_testcapi/frame.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: frame_getvar
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFrame_Check
    - PyFrame_GetVar
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getvar(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/frame.c:105,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapi/frame.c:108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/frame.c:109,1
    - Dst: PyFrame_GetVarString
      Src: /src/cpython/Modules/_testcapi/frame.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: frame_getvarstring
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetVarString
    - PyErr_SetString
    - PyFrame_Check
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getvarstring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/frame.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: _PyTestCapi_Init_Frame
    functionSourceFile: /src/cpython/Modules/_testcapi/frame.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Frame(PyObject *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_testcapi/object.c:13,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapi/object.c:18,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_testcapi/object.c:20,1
    - Dst: PyObject_Print
      Src: /src/cpython/Modules/_testcapi/object.c:24,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:25,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 32
    functionName: call_pyobject_print
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyObject_Print
    - Py_IsTrue
    - PyArg_UnpackTuple
    - Py_fopen
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_pyobject_print(PyObject *self, PyObject * args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_testcapi/object.c:40,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapi/object.c:44,1
    - Dst: PyObject_Print
      Src: /src/cpython/Modules/_testcapi/object.c:46,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:47,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: pyobject_print_null
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_fopen
    - PyArg_UnpackTuple
    - PyObject_Print
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_print_null(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/object.c:64,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:66,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_testcapi/object.c:68,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:69,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_testcapi/object.c:71,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapi/object.c:75,1
    - Dst: PyObject_Print
      Src: /src/cpython/Modules/_testcapi/object.c:77,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:78,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:79,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:80,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:84,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:86,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:87,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/object.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 90
    functionName: pyobject_print_noref_object
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyObject_Print
    - Py_DECREF
    - PyArg_UnpackTuple
    - PyOS_snprintf
    - PyUnicode_FromString
    - Py_fopen
    - Py_REFCNT
    - Py_SET_REFCNT
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_print_noref_object(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/object.c:99,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_testcapi/object.c:101,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapi/object.c:106,1
    - Dst: PyObject_Print
      Src: /src/cpython/Modules/_testcapi/object.c:108,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:110,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/object.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: pyobject_print_os_error
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyObject_Print
    - Py_DECREF
    - PyArg_UnpackTuple
    - Py_fopen
    - PyUnicode_FromString
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_print_os_error(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_Object_ClearWeakRefsNoCallbacks
      Src: /src/cpython/Modules/_testcapi/object.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: pyobject_clear_weakrefs_no_callbacks
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_ClearWeakRefsNoCallbacks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_clear_weakrefs_no_callbacks(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_Object_EnableDeferredRefcount
      Src: /src/cpython/Modules/_testcapi/object.c:130,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: pyobject_enable_deferred_refcount
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_EnableDeferredRefcount
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_enable_deferred_refcount(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_Object_IsUniqueReferencedTemporary
      Src: /src/cpython/Modules/_testcapi/object.c:137,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: pyobject_is_unique_temporary
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_IsUniqueReferencedTemporary
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_is_unique_temporary(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:147,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:147,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:148,1
    - Dst: PyUnstable_TryIncRef
      Src: /src/cpython/Modules/_testcapi/object.c:148,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:149,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:149,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/object.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(op) == 0)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (Py_REFCNT(op) == 0)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (!PyUnstable_TryIncRef(op))
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: MyObject_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_REFCNT
    - assert
    - PyUnstable_TryIncRef
    linkageType: ''
    returnType: void
    signature: void MyObject_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/object.c:165,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/object.c:171,1
    - Dst: PyUnstable_EnableTryIncRef
      Src: /src/cpython/Modules/_testcapi/object.c:176,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:181,1
    - Dst: PyUnstable_TryIncRef
      Src: /src/cpython/Modules/_testcapi/object.c:184,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/object.c:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((op->ob_ref_shared & _Py_REF_SHARED_FLAG_MASK) >= _Py_REF_MAYBE_WEAKREF)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (MyObject_dealloc_called == 1)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: test_py_try_inc_ref
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_New
    - PyErr_SetString
    - PyType_Ready
    - PyUnstable_EnableTryIncRef
    - PyUnstable_TryIncRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_py_try_inc_ref(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/object.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: _test_incref
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _test_incref(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:205,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testcapi/object.c:206,1
    - Dst: _test_incref
      Src: /src/cpython/Modules/_testcapi/object.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: test_xincref_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - Py_DECREF
    - _test_incref
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_xincref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:217,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/object.c:218,1
    - Dst: _test_incref
      Src: /src/cpython/Modules/_testcapi/object.c:218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: test_incref_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - _test_incref
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_incref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/object.c:229,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: test_xdecref_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_xdecref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:237,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: test_decref_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_decref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:245,1
    - Dst: Py_IncRef
      Src: /src/cpython/Modules/_testcapi/object.c:246,1
    - Dst: Py_DecRef
      Src: /src/cpython/Modules/_testcapi/object.c:247,1
    - Dst: Py_DecRef
      Src: /src/cpython/Modules/_testcapi/object.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: test_incref_decref_API
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_IncRef
    - Py_DecRef
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_incref_decref_API(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/object.c:257,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:261,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:261,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 268
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 268
    functionName: negative_refcount
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyUnicode_FromString
    - Py_REFCNT
    - Py_SET_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      negative_refcount(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/object.c:274,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:278,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 289
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 289
    functionName: decref_freed_object
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - PyUnicode_FromString
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decref_freed_object(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:298,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/object.c:302,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:303,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:307,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/object.c:313,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:314,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj == NULL)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array[0] == NULL)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p == array + 1)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 318
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 318
    functionName: test_py_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_py_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:326,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testcapi/object.c:330,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:331,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:334,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:338,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:339,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:341,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:342,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:346,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testcapi/object.c:352,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:353,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:354,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:358,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:364,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:365,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:366,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:370,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:371,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj == NULL)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (obj2 == NULL)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p2 == array2 + 1)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array[0] == NULL)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array2[0] == NULL)
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (obj2 == NULL)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p2 == array2 + 1)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array2[0] == NULL)
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p == array + 1)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 375
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 375
    functionName: test_py_setref
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XSETREF
    - Py_SETREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_py_setref(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: TEST_REFCOUNT
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_REFCOUNT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_REFCOUNT
      Src: /src/cpython/Modules/_testcapi/object.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: test_refcount_funcs
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - TEST_REFCOUNT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_refcount_funcs(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 434
    functionName: TEST_PY_IS
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_PY_IS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_PY_IS
      Src: /src/cpython/Modules/_testcapi/object.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: test_py_is_funcs
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - TEST_PY_IS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_py_is_funcs(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Modules/_testcapi/object.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 478
    functionName: clear_managed_dict
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearManagedDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_managed_dict(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:484,1
    - Dst: PyUnstable_Object_IsUniquelyReferenced
      Src: /src/cpython/Modules/_testcapi/object.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: is_uniquely_referenced
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyUnstable_Object_IsUniquelyReferenced
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_uniquely_referenced(PyObject *self, PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/object.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: _PyTestCapi_Init_Object
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Object(PyObject *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyGC_IsEnabled
      Src: /src/cpython/Modules/_testcapi/gc.c:6,1
    - Dst: PyGC_Enable
      Src: /src/cpython/Modules/_testcapi/gc.c:10,1
    - Dst: PyGC_IsEnabled
      Src: /src/cpython/Modules/_testcapi/gc.c:16,1
    - Dst: PyGC_Disable
      Src: /src/cpython/Modules/_testcapi/gc.c:20,1
    - Dst: PyGC_IsEnabled
      Src: /src/cpython/Modules/_testcapi/gc.c:26,1
    - Dst: PyGC_Enable
      Src: /src/cpython/Modules/_testcapi/gc.c:30,1
    - Dst: PyGC_IsEnabled
      Src: /src/cpython/Modules/_testcapi/gc.c:36,1
    - Dst: PyGC_Disable
      Src: /src/cpython/Modules/_testcapi/gc.c:41,1
    - Dst: PyGC_IsEnabled
      Src: /src/cpython/Modules/_testcapi/gc.c:47,1
    - Dst: PyGC_Enable
      Src: /src/cpython/Modules/_testcapi/gc.c:57,1
    - Dst: PyGC_Disable
      Src: /src/cpython/Modules/_testcapi/gc.c:59,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/gc.c:61,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 63
    functionName: test_gc_control
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyGC_Disable
    - PyGC_IsEnabled
    - PyGC_Enable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_gc_control(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/gc.c:69,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/gc.c:69,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/gc.c:70,1
    - Dst: PyType_IS_GC
      Src: /src/cpython/Modules/_testcapi/gc.c:72,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/gc.c:79,1
    - Dst: PyType_IS_GC
      Src: /src/cpython/Modules/_testcapi/gc.c:79,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/gc.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyType_IS_GC(tp))
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/cpython/Modules/_testcapi/gc.c
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: without_gc
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyType_HasFeature
    - Py_NewRef
    - PyErr_Format
    - PyType_IS_GC
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      without_gc(PyObject *Py_UNUSED(self), PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/gc.c:89,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/gc.c:89,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testcapi/gc.c:90,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/gc.c:93,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_testcapi/gc.c:95,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/gc.c:97,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/gc.c:98,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Modules/_testcapi/gc.c:102,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/gc.c:102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/gc.c:103,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_testcapi/gc.c:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/gc.c:106,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/gc.c:108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/gc.c:112,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/gc.c:117,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/gc.c:122,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/gc.c:122,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testcapi/gc.c:123,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/gc.c:123,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/gc.c:124,1
    - Dst: _Py_ResurrectReference
      Src: /src/cpython/Modules/_testcapi/gc.c:133,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/gc.c:135,1
    - Dst: PyType_IS_GC
      Src: /src/cpython/Modules/_testcapi/gc.c:135,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/gc.c:135,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_testcapi/gc.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyType_IS_GC(Py_TYPE(self)) || PyObject_GC_IsTracked(self))
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/cpython/Modules/_testcapi/gc.c
    - condition: (Py_REFCNT(self) == 0)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_testcapi/gc.c
    - condition: (Py_REFCNT(self) > 0)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_testcapi/gc.c
    constantsTouched: []
    func_position:
      end: 136
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 136
    functionName: slot_tp_del
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_InternFromString
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ResurrectReference
    - _PyType_LookupRef
    - PyObject_GC_IsTracked
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    - PyType_IS_GC
    - Py_TYPE
    - Py_REFCNT
    - Py_SET_REFCNT
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void slot_tp_del(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/gc.c:144,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/gc.c:147,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/gc.c:147,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/gc.c:148,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/gc.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: with_tp_del
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyArg_ParseTuple
    - PyType_HasFeature
    - Py_NewRef
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      with_tp_del(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: gc_visit_callback_basic
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_visit_callback_basic(PyObject *obj, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/gc.c:180,1
    - Dst: PyUnstable_GC_VisitObjects
      Src: /src/cpython/Modules/_testcapi/gc.c:187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/gc.c:188,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/gc.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: test_gc_visit_objects_basic
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyErr_SetString
    - PyUnstable_GC_VisitObjects
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntest_gc_visit_objects_basic(PyObject *Py_UNUSED(self),\n
      \                           PyObject *Py_UNUSED(ignored))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: gc_visit_callback_exit_early
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_visit_callback_exit_early(PyObject *obj, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_GC_VisitObjects
      Src: /src/cpython/Modules/_testcapi/gc.c:214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/gc.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: test_gc_visit_objects_exit_early
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnstable_GC_VisitObjects
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntest_gc_visit_objects_exit_early(PyObject *Py_UNUSED(self),\n
      \                                PyObject *Py_UNUSED(ignored))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_Object_GC_NewWithExtraData
      Src: /src/cpython/Modules/_testcapi/gc.c:231,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/gc.c:233,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_testcapi/gc.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 237
    functionName: obj_extra_data_new
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyUnstable_Object_GC_NewWithExtraData
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      obj_extra_data_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/gc.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: obj_extra_data_get_extra_storage
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      obj_extra_data_get_extra_storage(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_extra_data_get_extra_storage
      Src: /src/cpython/Modules/_testcapi/gc.c:248,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/gc.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: obj_extra_data_get
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - obj_extra_data_get_extra_storage
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      obj_extra_data_get(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_extra_data_get_extra_storage
      Src: /src/cpython/Modules/_testcapi/gc.c:259,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/gc.c:260,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/gc.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - newval
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: obj_extra_data_set
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - obj_extra_data_get_extra_storage
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int obj_extra_data_set(PyObject *self, PyObject *newval, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obj_extra_data_get_extra_storage
      Src: /src/cpython/Modules/_testcapi/gc.c:275,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapi/gc.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: obj_extra_data_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - obj_extra_data_get_extra_storage
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int obj_extra_data_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obj_extra_data_get_extra_storage
      Src: /src/cpython/Modules/_testcapi/gc.c:284,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/gc.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: obj_extra_data_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - obj_extra_data_get_extra_storage
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int obj_extra_data_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/gc.c:292,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/gc.c:293,1
    - Dst: obj_extra_data_clear
      Src: /src/cpython/Modules/_testcapi/gc.c:294,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_testcapi/gc.c:295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/gc.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: obj_extra_data_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - obj_extra_data_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void obj_extra_data_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/gc.c:327,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/gc.c:330,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testcapi/gc.c:334,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/gc.c:339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/gc.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 346
    functionName: _PyTestCapi_Init_GC
    functionSourceFile: /src/cpython/Modules/_testcapi/gc.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    - Py_DECREF
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_GC(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testcapi/complex.c:10,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/_testcapi/complex.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 15
    functionName: complex_fromccomplex
    functionSourceFile: /src/cpython/Modules/_testcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_fromccomplex(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/complex.c:22,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_testcapi/complex.c:23,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/complex.c:25,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/_testcapi/complex.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: complex_asccomplex
    functionSourceFile: /src/cpython/Modules/_testcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - PyComplex_FromCComplex
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_asccomplex(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_testcapi/complex.c:37,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/complex.c:38,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/_testcapi/complex.c:42,1
    - Dst: _Py_c_neg
      Src: /src/cpython/Modules/_testcapi/complex.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - num
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: _py_c_neg
    functionSourceFile: /src/cpython/Modules/_testcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - _Py_c_neg
    - PyErr_Occurred
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _py_c_neg(PyObject *Py_UNUSED(module), PyObject *num)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: _PY_C_FUNC2
    functionSourceFile: /src/cpython/Modules/_testcapi/complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PY_C_FUNC2(suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/complex.c:72,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_testcapi/complex.c:73,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/complex.c:75,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/_testcapi/complex.c:80,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/complex.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: _py_c_abs
    functionSourceFile: /src/cpython/Modules/_testcapi/complex.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyErr_Occurred
    - _Py_c_abs
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _py_c_abs(PyObject *Py_UNUSED(module), PyObject* obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/complex.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: _PyTestCapi_Init_Complex
    functionSourceFile: /src/cpython/Modules/_testcapi/complex.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Complex(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Register
      Src: /src/cpython/Modules/_testcapi/codec.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - search_function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 13
    functionName: codec_register
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_Register
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_register(PyObject *Py_UNUSED(module), PyObject *search_function)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Unregister
      Src: /src/cpython/Modules/_testcapi/codec.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - search_function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: codec_unregister
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_Unregister
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_unregister(PyObject *Py_UNUSED(module), PyObject *search_function)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:28,1
    - Dst: PyCodec_KnownEncoding
      Src: /src/cpython/Modules/_testcapi/codec.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: codec_known_encoding
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_KnownEncoding
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_known_encoding(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:42,1
    - Dst: PyCodec_Encode
      Src: /src/cpython/Modules/_testcapi/codec.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: codec_encode
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 4
    functionsReached:
    - PyCodec_Encode
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_encode(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:54,1
    - Dst: PyCodec_Decode
      Src: /src/cpython/Modules/_testcapi/codec.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: codec_decode
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_Decode
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_decode(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:64,1
    - Dst: PyCodec_Encoder
      Src: /src/cpython/Modules/_testcapi/codec.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: codec_encoder
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_Encoder
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_encoder(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:74,1
    - Dst: PyCodec_Decoder
      Src: /src/cpython/Modules/_testcapi/codec.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: codec_decoder
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_Decoder
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_decoder(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:85,1
    - Dst: PyCodec_IncrementalEncoder
      Src: /src/cpython/Modules/_testcapi/codec.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: codec_incremental_encoder
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_IncrementalEncoder
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_incremental_encoder(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:96,1
    - Dst: PyCodec_IncrementalDecoder
      Src: /src/cpython/Modules/_testcapi/codec.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: codec_incremental_decoder
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_IncrementalDecoder
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_incremental_decoder(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:108,1
    - Dst: PyCodec_StreamReader
      Src: /src/cpython/Modules/_testcapi/codec.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: codec_stream_reader
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_StreamReader
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_stream_reader(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:120,1
    - Dst: PyCodec_StreamWriter
      Src: /src/cpython/Modules/_testcapi/codec.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: codec_stream_writer
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_StreamWriter
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_stream_writer(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:133,1
    - Dst: PyCodec_RegisterError
      Src: /src/cpython/Modules/_testcapi/codec.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: codec_register_error
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_RegisterError
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_register_error(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/codec.c:146,1
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Modules/_testcapi/codec.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: codec_lookup_error
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_LookupError
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_lookup_error(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/codec.c:155,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Modules/_testcapi/codec.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Modules/_testcapi/codec.c
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: codec_strict_errors
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_StrictErrors
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_strict_errors(PyObject *Py_UNUSED(module), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/codec.c:162,1
    - Dst: PyCodec_IgnoreErrors
      Src: /src/cpython/Modules/_testcapi/codec.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Modules/_testcapi/codec.c
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: codec_ignore_errors
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_IgnoreErrors
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_ignore_errors(PyObject *Py_UNUSED(module), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/codec.c:169,1
    - Dst: PyCodec_ReplaceErrors
      Src: /src/cpython/Modules/_testcapi/codec.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/cpython/Modules/_testcapi/codec.c
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: codec_replace_errors
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_ReplaceErrors
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_replace_errors(PyObject *Py_UNUSED(module), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/codec.c:176,1
    - Dst: PyCodec_XMLCharRefReplaceErrors
      Src: /src/cpython/Modules/_testcapi/codec.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/cpython/Modules/_testcapi/codec.c
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: codec_xmlcharrefreplace_errors
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_XMLCharRefReplaceErrors
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_xmlcharrefreplace_errors(PyObject *Py_UNUSED(module), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/codec.c:183,1
    - Dst: PyCodec_BackslashReplaceErrors
      Src: /src/cpython/Modules/_testcapi/codec.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Modules/_testcapi/codec.c
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: codec_backslashreplace_errors
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 0
    functionsReached:
    - assert
    - PyCodec_BackslashReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_backslashreplace_errors(PyObject *Py_UNUSED(module), PyObject *exc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/codec.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 221
    functionName: _PyTestCapi_Init_Codec
    functionSourceFile: /src/cpython/Modules/_testcapi/codec.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Codec(PyObject *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/run.c:23,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/run.c:29,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/run.c:30,1
    - Dst: PyRun_StringFlags
      Src: /src/cpython/Modules/_testcapi/run.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mod
    - pos_args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 38
    functionName: run_stringflags
    functionSourceFile: /src/cpython/Modules/_testcapi/run.c
    functionUses: 0
    functionsReached:
    - PyRun_StringFlags
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      run_stringflags(PyObject *mod, PyObject *pos_args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/run.c:57,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/run.c:63,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/run.c:64,1
    - Dst: fopen
      Src: /src/cpython/Modules/_testcapi/run.c:71,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_testcapi/run.c:73,1
    - Dst: fileno
      Src: /src/cpython/Modules/_testcapi/run.c:76,1
    - Dst: PyRun_FileExFlags
      Src: /src/cpython/Modules/_testcapi/run.c:78,1
    - Dst: _Py_IsValidFD
      Src: /src/cpython/Modules/_testcapi/run.c:80,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/run.c:81,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/run.c:82,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/run.c:83,1
    - Dst: _Py_IsValidFD
      Src: /src/cpython/Modules/_testcapi/run.c:87,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/run.c:88,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/run.c:89,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapi/run.c:94,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - mod
    - pos_args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 98
    functionName: run_fileexflags
    functionSourceFile: /src/cpython/Modules/_testcapi/run.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyErr_SetFromErrnoWithFilename
    - fopen
    - _Py_IsValidFD
    - PyRun_FileExFlags
    - fileno
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      run_fileexflags(PyObject *mod, PyObject *pos_args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/run.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: _PyTestCapi_Init_Run
    functionSourceFile: /src/cpython/Modules/_testcapi/run.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Run(PyObject *mod)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:9,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:12,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:13,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_testcapi/abstract.c:15,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:17,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:20,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/abstract.c:21,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/abstract.c:25,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (value == NULL)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    constantsTouched: []
    func_position:
      end: 28
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 28
    functionName: object_getoptionalattr
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - PyObject_GetOptionalAttr
    - NULLABLE
    - PyArg_ParseTuple
    - Py_FatalError
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getoptionalattr(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:36,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:39,1
    - Dst: PyObject_GetOptionalAttrString
      Src: /src/cpython/Modules/_testcapi/abstract.c:41,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:43,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:46,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/abstract.c:47,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/abstract.c:51,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (value == NULL)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    constantsTouched: []
    func_position:
      end: 54
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 54
    functionName: object_getoptionalattrstring
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_UNREACHABLE
    - NULLABLE
    - PyArg_ParseTuple
    - Py_FatalError
    - Py_NewRef
    - PyObject_GetOptionalAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getoptionalattrstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:60,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:63,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:64,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/abstract.c:65,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_testcapi/abstract.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: object_hasattrwitherror
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrWithError
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_hasattrwitherror(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:74,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:77,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/abstract.c:78,1
    - Dst: PyObject_HasAttrStringWithError
      Src: /src/cpython/Modules/_testcapi/abstract.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: object_hasattrstringwitherror
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrStringWithError
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_hasattrstringwitherror(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:87,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:90,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_testcapi/abstract.c:92,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:94,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:97,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/abstract.c:98,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/abstract.c:102,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (value == NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    constantsTouched: []
    func_position:
      end: 105
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 105
    functionName: mapping_getoptionalitemstring
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - NULLABLE
    - PyArg_ParseTuple
    - Py_FatalError
    - Py_NewRef
    - PyMapping_GetOptionalItemString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_getoptionalitemstring(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:111,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:114,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:115,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Modules/_testcapi/abstract.c:117,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:119,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:122,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/abstract.c:123,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/abstract.c:127,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (value == NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    constantsTouched: []
    func_position:
      end: 130
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 130
    functionName: mapping_getoptionalitem
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - NULLABLE
    - PyArg_ParseTuple
    - Py_FatalError
    - Py_NewRef
    - PyMapping_GetOptionalItem
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_getoptionalitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_testcapi/abstract.c:135,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/abstract.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: pyiter_next
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyIter_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyiter_next(PyObject *self, PyObject *iter)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyIter_NextItem
      Src: /src/cpython/Modules/_testcapi/abstract.c:146,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:148,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/abstract.c:148,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:149,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:152,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/abstract.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - iter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (item == NULL)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: pyiter_nextitem
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    - PyIter_NextItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyiter_nextitem(PyObject *self, PyObject *iter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:163,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/abstract.c:164,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/abstract.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: sequence_fast_get_size
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PySequence_Fast_GET_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_fast_get_size(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:173,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/abstract.c:176,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/abstract.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: sequence_fast_get_item
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast_GET_ITEM
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_fast_get_item(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:185,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_testcapi/abstract.c:189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/abstract.c:189,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_testcapi/abstract.c:190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/abstract.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: object_setattr_null_exc
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyErr_SetObject
    - PyObject_SetAttr
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_setattr_null_exc(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/abstract.c:204,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_testcapi/abstract.c:208,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/abstract.c:208,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/abstract.c:209,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/abstract.c:212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/abstract.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    constantsTouched: []
    func_position:
      end: 214
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 214
    functionName: object_setattrstring_null_exc
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyErr_SetObject
    - PyObject_SetAttrString
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_setattrstring_null_exc(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/abstract.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: _PyTestCapi_Init_Abstract
    functionSourceFile: /src/cpython/Modules/_testcapi/abstract.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Abstract(PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetCode
      Src: /src/cpython/Modules/_testcapi/function.c:8,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/function.c:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 14
    functionName: function_get_code
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetCode
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_get_code(PyObject *self, PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetGlobals
      Src: /src/cpython/Modules/_testcapi/function.c:20,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/function.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: function_get_globals
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyFunction_GetGlobals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_get_globals(PyObject *self, PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetModule
      Src: /src/cpython/Modules/_testcapi/function.c:32,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/function.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: function_get_module
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetModule
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_get_module(PyObject *self, PyObject *func)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetDefaults
      Src: /src/cpython/Modules/_testcapi/function.c:44,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/function.c:46,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/function.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: function_get_defaults
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_Occurred
    - PyFunction_GetDefaults
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_get_defaults(PyObject *self, PyObject *func)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/function.c:59,1
    - Dst: PyFunction_SetDefaults
      Src: /src/cpython/Modules/_testcapi/function.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: function_set_defaults
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - PyFunction_SetDefaults
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_set_defaults(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetKwDefaults
      Src: /src/cpython/Modules/_testcapi/function.c:72,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/function.c:74,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/function.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: function_get_kw_defaults
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetKwDefaults
    - PyErr_Occurred
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_get_kw_defaults(PyObject *self, PyObject *func)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/function.c:87,1
    - Dst: PyFunction_SetKwDefaults
      Src: /src/cpython/Modules/_testcapi/function.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: function_set_kw_defaults
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - PyFunction_SetKwDefaults
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_set_kw_defaults(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetClosure
      Src: /src/cpython/Modules/_testcapi/function.c:100,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/function.c:102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/function.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: function_get_closure
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_Occurred
    - PyFunction_GetClosure
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_get_closure(PyObject *self, PyObject *func)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/function.c:115,1
    - Dst: PyFunction_SetClosure
      Src: /src/cpython/Modules/_testcapi/function.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: function_set_closure
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - PyFunction_SetClosure
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_set_closure(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/function.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: _PyTestCapi_Init_Function
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Function(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/list.c:8,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/list.c:9,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/list.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: list_get_size
    functionSourceFile: /src/cpython/Modules/_testcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_get_size(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/list.c:18,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/list.c:21,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/list.c:22,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/list.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: list_get_item
    functionSourceFile: /src/cpython/Modules/_testcapi/list.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyList_GET_ITEM
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_get_item(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/list.c:31,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/list.c:34,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/list.c:35,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/list.c:36,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/list.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: list_set_item
    functionSourceFile: /src/cpython/Modules/_testcapi/list.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyList_SET_ITEM
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_set_item(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/list.c:45,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/list.c:46,1
    - Dst: PyList_Clear
      Src: /src/cpython/Modules/_testcapi/list.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: list_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_Clear
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_clear(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/list.c:54,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/list.c:57,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/list.c:58,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/list.c:59,1
    - Dst: PyList_Extend
      Src: /src/cpython/Modules/_testcapi/list.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: list_extend
    functionSourceFile: /src/cpython/Modules/_testcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_Extend
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_extend(PyObject* Py_UNUSED(module), PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/list.c:71,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/list.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/list.c:78,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/list.c:81,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Modules/_testcapi/list.c:84,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/list.c:86,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/list.c:91,1
    - Dst: PyLong_AS_LONG
      Src: /src/cpython/Modules/_testcapi/list.c:92,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/list.c:93,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/list.c:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/list.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 103
    functionName: test_list_api
    functionSourceFile: /src/cpython/Modules/_testcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Reverse
    - Py_DECREF
    - PyList_GET_ITEM
    - PyErr_SetString
    - PyList_SET_ITEM
    - PyLong_AS_LONG
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_list_api(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/list.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: _PyTestCapi_Init_List
    functionSourceFile: /src/cpython/Modules/_testcapi/list.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_List(PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/import.c:9,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/import.c:12,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/import.c:13,1
    - Dst: PyImport_ImportModuleAttr
      Src: /src/cpython/Modules/_testcapi/import.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: pyimport_importmoduleattr
    functionSourceFile: /src/cpython/Modules/_testcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttr
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmoduleattr(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/import.c:25,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_testcapi/import.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: pyimport_importmoduleattrstring
    functionSourceFile: /src/cpython/Modules/_testcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmoduleattrstring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/import.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: _PyTestCapi_Init_Import
    functionSourceFile: /src/cpython/Modules/_testcapi/import.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Import(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 6
    functionName: NULLABLE
    functionSourceFile: /src/cpython/Modules/_testcapi/util.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULLABLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 16
    functionName: RETURN_INT
    functionSourceFile: /src/cpython/Modules/_testcapi/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_INT(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: RETURN_SIZE
    functionSourceFile: /src/cpython/Modules/_testcapi/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_SIZE(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: NULL_WOULD_RAISE
    functionSourceFile: /src/cpython/Modules/_testcapi/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULL_WOULD_RAISE(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:25,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/exceptions.c:26,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/exceptions.c:27,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/exceptions.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/cpython/Modules/_testcapi/exceptions.c
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: _testcapi_err_set_raised
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_INCREF
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_err_set_raised(PyObject *module, PyObject *exc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testcapi/exceptions.c:34,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_testcapi/exceptions.c:36,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:37,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_testcapi/exceptions.c:40,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:41,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_testcapi/exceptions.c:44,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:45,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/exceptions.c:48,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Modules/_testcapi/exceptions.c:52,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/exceptions.c:53,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/exceptions.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cpython/Modules/_testcapi/exceptions.c
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: err_restore
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_Restore
    - PyTuple_Size
    - PyTuple_GetItem
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_restore(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testcapi/exceptions.c:72,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Modules/_testcapi/exceptions.c:73,1
    - Dst: PyErr_Display
      Src: /src/cpython/Modules/_testcapi/exceptions.c:75,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:75,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:76,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Modules/_testcapi/exceptions.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - exc
    - legacy
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: _testcapi_exception_print_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_DisplayException
    - PyException_GetTraceback
    - PyErr_Display
    - Py_TYPE
    - PyExceptionInstance_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_exception_print_impl(PyObject *module, PyObject *exc, int legacy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_testcapi/exceptions.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - name
    - doc
    - base
    - dict
    argTypes:
    - PyObject*
    - char*
    - char*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: _testcapi_make_exception_with_doc_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_NewExceptionWithDoc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_make_exception_with_doc_impl(PyObject *module,
      const char *name,\n                                       const char *doc, PyObject
      *base,\n                                       PyObject *dict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_testcapi/exceptions.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - exc
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: _testcapi_exc_set_object_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_exc_set_object_impl(PyObject *module, PyObject *exc, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_testcapi/exceptions.c:132,1
    - Dst: PyErr_Fetch
      Src: /src/cpython/Modules/_testcapi/exceptions.c:133,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/exceptions.c:134,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/exceptions.c:135,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/exceptions.c:136,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:137,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - module
    - exc
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value != UNINITIALIZED_PTR)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/cpython/Modules/_testcapi/exceptions.c
    - condition: (type != UNINITIALIZED_PTR)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/cpython/Modules/_testcapi/exceptions.c
    - condition: (tb != UNINITIALIZED_PTR)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/cpython/Modules/_testcapi/exceptions.c
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: _testcapi_exc_set_object_fetch_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - Py_XDECREF
    - PyErr_SetObject
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_exc_set_object_fetch_impl(PyObject *module,
      PyObject *exc,\n                                    PyObject *obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/exceptions.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - module
    - exc
    - value
    - value_length
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: _testcapi_err_setstring_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_err_setstring_impl(PyObject *module, PyObject
      *exc,\n                             const char *value, Py_ssize_t value_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:173,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_testcapi/exceptions.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - module
    - error
    - exc
    - value
    - value_length
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: _testcapi_err_setfromerrnowithfilename_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrnoWithFilename
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_err_setfromerrnowithfilename_impl(PyObject *module,
      int error,\n                                            PyObject *exc, const
      char *value,\n                                            Py_ssize_t value_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapi/exceptions.c:190,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/exceptions.c:195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:197,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/exceptions.c:200,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_testcapi/exceptions.c:202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - module
    - exc
    - num_args
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: _testcapi_raise_exception_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyErr_SetObject
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_raise_exception_impl(PyObject *module, PyObject *exc, int num_args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/exceptions.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: _testcapi_raise_memoryerror_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_raise_memoryerror_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/exceptions.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - message
    - release_gil
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: _testcapi_fatal_error_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_fatal_error_impl(PyObject *module, const char
      *message,\n                           int release_gil)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetExcInfo
      Src: /src/cpython/Modules/_testcapi/exceptions.c:256,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:258,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:259,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:260,1
    - Dst: PyErr_SetExcInfo
      Src: /src/cpython/Modules/_testcapi/exceptions.c:261,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/exceptions.c:263,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:267,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:268,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - module
    - new_type
    - new_value
    - new_tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 271
    functionName: _testcapi_set_exc_info_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_GetExcInfo
    - Py_XDECREF
    - PyTuple_Pack
    - PyErr_SetExcInfo
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_set_exc_info_impl(PyObject *module, PyObject
      *new_type,\n                            PyObject *new_value, PyObject *new_tb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetHandledException
      Src: /src/cpython/Modules/_testcapi/exceptions.c:283,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/exceptions.c:284,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testcapi/exceptions.c:284,1
    - Dst: PyErr_SetHandledException
      Src: /src/cpython/Modules/_testcapi/exceptions.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - new_exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc) || exc == NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Modules/_testcapi/exceptions.c
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: _testcapi_set_exception
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_GetHandledException
    - PyErr_SetHandledException
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_set_exception(PyObject *module, PyObject *new_exc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Print
      Src: /src/cpython/Modules/_testcapi/exceptions.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - traceback
    - file
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: _testcapi_traceback_print_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTraceBack_Print
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_traceback_print_impl(PyObject *module, PyObject
      *traceback,\n                               PyObject *file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:312,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:315,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:316,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/exceptions.c:318,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/exceptions.c:318,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/cpython/Modules/_testcapi/exceptions.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 322
    functionName: err_writeunraisable
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - Py_NewRef
    - PyErr_WriteUnraisable
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_writeunraisable(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:332,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:338,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/exceptions.c:340,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/exceptions.c:340,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/exceptions.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: err_formatunraisable
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - Py_NewRef
    - PyErr_FormatUnraisable
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_formatunraisable(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_Exc_PrepReraiseStar
      Src: /src/cpython/Modules/_testcapi/exceptions.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - orig
    - excs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: _testcapi_unstable_exc_prep_reraise_star_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Exc_PrepReraiseStar
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_unstable_exc_prep_reraise_star_impl(PyObject
      *module,\n                                              PyObject *orig, PyObject
      *excs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/cpython/Modules/_testcapi/exceptions.c:369,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 373
    functionName: unicode_encode_get_start
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_GetStart
    - RETURN_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encode_get_start(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeDecodeError_GetStart
      Src: /src/cpython/Modules/_testcapi/exceptions.c:380,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: unicode_decode_get_start
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeDecodeError_GetStart
    - RETURN_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decode_get_start(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeTranslateError_GetStart
      Src: /src/cpython/Modules/_testcapi/exceptions.c:391,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 395
    functionName: unicode_translate_get_start
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeTranslateError_GetStart
    - RETURN_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_translate_get_start(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:403,1
    - Dst: PyUnicodeEncodeError_SetStart
      Src: /src/cpython/Modules/_testcapi/exceptions.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 410
    functionName: unicode_encode_set_start
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_SetStart
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encode_set_start(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:418,1
    - Dst: PyUnicodeDecodeError_SetStart
      Src: /src/cpython/Modules/_testcapi/exceptions.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: unicode_decode_set_start
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeDecodeError_SetStart
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decode_set_start(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:433,1
    - Dst: PyUnicodeTranslateError_SetStart
      Src: /src/cpython/Modules/_testcapi/exceptions.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 440
    functionName: unicode_translate_set_start
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeTranslateError_SetStart
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_translate_set_start(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/cpython/Modules/_testcapi/exceptions.c:447,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 451
    functionName: unicode_encode_get_end
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_GetEnd
    - RETURN_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encode_get_end(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeDecodeError_GetEnd
      Src: /src/cpython/Modules/_testcapi/exceptions.c:458,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: unicode_decode_get_end
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeDecodeError_GetEnd
    - RETURN_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decode_get_end(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeTranslateError_GetEnd
      Src: /src/cpython/Modules/_testcapi/exceptions.c:469,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/exceptions.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: unicode_translate_get_end
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeTranslateError_GetEnd
    - RETURN_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_translate_get_end(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:481,1
    - Dst: PyUnicodeEncodeError_SetEnd
      Src: /src/cpython/Modules/_testcapi/exceptions.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 488
    functionName: unicode_encode_set_end
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_SetEnd
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encode_set_end(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:496,1
    - Dst: PyUnicodeDecodeError_SetEnd
      Src: /src/cpython/Modules/_testcapi/exceptions.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: unicode_decode_set_end
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeDecodeError_SetEnd
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decode_set_end(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/exceptions.c:511,1
    - Dst: PyUnicodeTranslateError_SetEnd
      Src: /src/cpython/Modules/_testcapi/exceptions.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 518
    functionName: unicode_translate_set_end
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeTranslateError_SetEnd
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_translate_set_end(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/exceptions.c:532,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_testcapi/exceptions.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 535
    functionName: recurse_infinitely_error_init
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetObject
    linkageType: ''
    returnType: int
    signature: int recurse_infinitely_error_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/exceptions.c:582,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/exceptions.c:585,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/exceptions.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 596
    functionName: _PyTestCapi_Init_Exceptions
    functionSourceFile: /src/cpython/Modules/_testcapi/exceptions.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Exceptions(PyObject *mod)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/structmember.c:67,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/structmember.c:71,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapi/structmember.c:72,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/structmember.c:90,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/structmember.c:95,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/structmember.c:96,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_testcapi/structmember.c:99,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_testcapi/structmember.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 105
    functionName: test_structmembers_new
    functionSourceFile: /src/cpython/Modules/_testcapi/structmember.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_New
    - PyErr_SetString
    - memset
    - PyArg_ParseTupleAndKeywords
    - strcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_structmembers_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/structmember.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: test_structmembers_free
    functionSourceFile: /src/cpython/Modules/_testcapi/structmember.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void test_structmembers_free(PyObject *ob)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/structmember.c:196,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/structmember.c:200,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testcapi/structmember.c:208,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/structmember.c:213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/structmember.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 220
    functionName: _PyTestCapi_Init_Structmember
    functionSourceFile: /src/cpython/Modules/_testcapi/structmember.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - PyType_Ready
    - PyModule_AddObjectRef
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Structmember(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: FOR_BITWISE_TYPES
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_BITWISE_TYPES(V)
  - 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: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: FOR_ARITHMETIC_TYPES
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_ARITHMETIC_TYPES(V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: FOR_ALL_TYPES
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_ALL_TYPES(V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: IMPL_TEST_ADD
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_TEST_ADD(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: IMPL_TEST_COMPARE_EXCHANGE
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_TEST_COMPARE_EXCHANGE(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: IMPL_TEST_EXCHANGE
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_TEST_EXCHANGE(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: IMPL_TEST_LOAD_STORE
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_TEST_LOAD_STORE(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: IMPL_TEST_AND_OR
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_TEST_AND_OR(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_fence_seq_cst
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:127,1
    - Dst: _Py_atomic_fence_acquire
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:128,1
    - Dst: _Py_atomic_fence_release
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: test_atomic_fences
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_fence_release
    - _Py_atomic_fence_acquire
    - _Py_atomic_fence_seq_cst
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_atomic_fences(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:137,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:137,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:138,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:139,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:140,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_atomic_load_ptr_acquire(&x) == NULL)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    - condition: (x == y)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    - condition: (_Py_atomic_load_ptr_acquire(&x) == y)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: test_atomic_release_acquire
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ptr_release
    - assert
    - _Py_atomic_load_ptr_acquire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_atomic_release_acquire(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:149,1
    - Dst: _Py_atomic_load_int_acquire
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:149,1
    - Dst: _Py_atomic_store_int_release
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:150,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:151,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:152,1
    - Dst: _Py_atomic_load_int_acquire
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:152,1
    - Dst: _Py_atomic_store_int_release
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:153,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:154,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:155,1
    - Dst: _Py_atomic_load_int_acquire
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_atomic_load_int_acquire(&x) == 0)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    - condition: (x == y)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    - condition: (_Py_atomic_load_int_acquire(&x) == y)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    - condition: (x == z)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    - condition: (_Py_atomic_load_int_acquire(&x) == z)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Modules/_testcapi/pyatomic.c
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: test_atomic_load_store_int_release_acquire
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_acquire
    - _Py_atomic_store_int_release
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_atomic_load_store_int_release_acquire(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: BIND_TEST_ADD
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIND_TEST_ADD(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: BIND_TEST_COMPARE_EXCHANGE
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIND_TEST_COMPARE_EXCHANGE(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: BIND_TEST_EXCHANGE
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIND_TEST_EXCHANGE(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: BIND_TEST_LOAD_STORE
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIND_TEST_LOAD_STORE(suffix, dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suffix
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: BIND_TEST_AND_OR
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIND_TEST_AND_OR(suffix, dtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/pyatomic.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: _PyTestCapi_Init_PyAtomic
    functionSourceFile: /src/cpython/Modules/_testcapi/pyatomic.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_PyAtomic(PyObject *mod)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyHash_GetFuncDef
      Src: /src/cpython/Modules/_testcapi/hash.c:8,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testcapi/hash.c:10,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_testcapi/hash.c:15,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/hash.c:16,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/hash.c:23,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/hash.c:24,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/hash.c:25,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/hash.c:30,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/hash.c:31,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/hash.c:32,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/hash.c:37,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/hash.c:38,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/hash.c:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 45
    functionName: hash_getfuncdef
    functionSourceFile: /src/cpython/Modules/_testcapi/hash.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethod
    - PyImport_ImportModule
    - PyObject_SetAttrString
    - PyLong_FromLong
    - PyUnicode_FromString
    - PyHash_GetFuncDef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hash_getfuncdef(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapi/hash.c:51,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapi/hash.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: long_from_hash
    functionSourceFile: /src/cpython/Modules/_testcapi/hash.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_from_hash(Py_hash_t hash)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/hash.c:59,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/hash.c:60,1
    - Dst: Py_HashPointer
      Src: /src/cpython/Modules/_testcapi/hash.c:64,1
    - Dst: long_from_hash
      Src: /src/cpython/Modules/_testcapi/hash.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: hash_pointer
    functionSourceFile: /src/cpython/Modules/_testcapi/hash.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - long_from_hash
    - Py_HashPointer
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hash_pointer(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/hash.c:74,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Modules/_testcapi/hash.c:78,1
    - Dst: long_from_hash
      Src: /src/cpython/Modules/_testcapi/hash.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: hash_buffer
    functionSourceFile: /src/cpython/Modules/_testcapi/hash.c
    functionUses: 0
    functionsReached:
    - long_from_hash
    - Py_HashBuffer
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hash_buffer(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/hash.c:86,1
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Modules/_testcapi/hash.c:87,1
    - Dst: long_from_hash
      Src: /src/cpython/Modules/_testcapi/hash.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: object_generichash
    functionSourceFile: /src/cpython/Modules/_testcapi/hash.c
    functionUses: 0
    functionsReached:
    - long_from_hash
    - PyObject_GenericHash
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_generichash(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/hash.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: _PyTestCapi_Init_Hash
    functionSourceFile: /src/cpython/Modules/_testcapi/hash.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Hash(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_hook_t*::alloc::malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: hook_malloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: hook_calloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: hook_realloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: hook_free
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - alloc_hook_t*::alloc::free
    linkageType: ''
    returnType: void
    signature: void hook_free(void *ctx, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: fm_nomemory
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fm_nomemory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fm_nomemory
      Src: /src/cpython/Modules/_testcapi/mem.c:87,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: hook_fmalloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:97,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: hook_fcalloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - fm_nomemory
    - PyMemAllocatorEx*::calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      hook_fcalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fm_nomemory
      Src: /src/cpython/Modules/_testcapi/mem.c:107,1
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/cpython/Modules/_testcapi/mem.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: hook_frealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: hook_ffree
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:133,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:134,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:135,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:138,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:141,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: fm_setup_hooks
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:152,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:153,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: fm_remove_hooks
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    linkageType: ''
    returnType: void
    signature: void fm_remove_hooks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/mem.c:166,1
    - Dst: fm_setup_hooks
      Src: /src/cpython/Modules/_testcapi/mem.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: set_nomemory
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: remove_mem_hooks
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - fm_remove_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      remove_mem_hooks(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/mem.c:187,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:195,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:196,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_testcapi/mem.c:204,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:207,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:210,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:228,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/_testcapi/mem.c:238,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_testcapi/mem.c:241,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Modules/_testcapi/mem.c:244,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:255,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:263,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:266,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:269,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:273,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_testcapi/mem.c:284,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:287,1
    - Dst: PyObject_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:290,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:301,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:310,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:313,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:316,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:320,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/mem.c:326,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:330,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:333,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 130
    argCount: 1
    argNames:
    - domain
    argTypes:
    - PyMemAllocatorDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 337
    functionName: test_setallocators
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyObject_Malloc
    - PyMem_RawCalloc
    - PyMem_SetAllocator
    - PyMem_Calloc
    - PyMem_RawFree
    - PyObject_Realloc
    - PyObject_Free
    - PyErr_SetString
    - memset
    - PyObject_Calloc
    - Py_NewRef
    - CHECK_CTX
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - PyMem_GetAllocator
    - PyMem_Free
    - PyMem_Malloc
    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: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: CHECK_CTX
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CTX(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_setallocators
      Src: /src/cpython/Modules/_testcapi/mem.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: test_pyobject_setallocators
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - test_setallocators
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyobject_setallocators(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/mem.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:357,1
    - Dst: PyObject_NEW
      Src: /src/cpython/Modules/_testcapi/mem.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:364,1
    - Dst: PyObject_NewVar
      Src: /src/cpython/Modules/_testcapi/mem.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:371,1
    - Dst: PyObject_NEW_VAR
      Src: /src/cpython/Modules/_testcapi/mem.c:374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:378,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/mem.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 385
    functionName: test_pyobject_new
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_New
    - PyObject_NewVar
    - PyObject_NEW_VAR
    - PyErr_NoMemory
    - PyObject_NEW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyobject_new(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_testcapi/mem.c:392,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:394,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:398,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_testcapi/mem.c:400,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:402,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:406,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:408,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:410,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:414,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:416,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:418,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:422,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:424,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:426,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:430,1
    - Dst: PyObject_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:432,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:434,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 441
    functionName: test_pymem_alloc0
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - PyMem_Calloc
    - PyObject_Malloc
    - PyMem_RawFree
    - PyObject_Free
    - PyErr_SetString
    - PyMem_RawMalloc
    - PyObject_Calloc
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pymem_alloc0(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_setallocators
      Src: /src/cpython/Modules/_testcapi/mem.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: test_pymem_setrawallocators
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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/cpython/Modules/_testcapi/mem.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: test_pymem_setallocators
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.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: PyObject_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 469
    functionName: pyobject_malloc_without_gil
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_malloc_without_gil(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:478,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/mem.c:480,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 487
    functionName: pymem_buffer_overflow
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymem_buffer_overflow(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:496,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 500
    functionName: pymem_api_misuse
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymem_api_misuse(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: pymem_malloc_without_gil
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymem_malloc_without_gil(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/mem.c:528,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/mem.c:533,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/mem.c:534,1
    - Dst: PyTraceMalloc_Track
      Src: /src/cpython/Modules/_testcapi/mem.c:541,1
    - Dst: PyTraceMalloc_Track
      Src: /src/cpython/Modules/_testcapi/mem.c:545,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 553
    functionName: tracemalloc_track
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsVoidPtr
    - PyTraceMalloc_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_track(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/mem.c:562,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/mem.c:565,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/mem.c:566,1
    - Dst: PyTraceMalloc_Untrack
      Src: /src/cpython/Modules/_testcapi/mem.c:573,1
    - Dst: PyTraceMalloc_Untrack
      Src: /src/cpython/Modules/_testcapi/mem.c:577,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 585
    functionName: tracemalloc_untrack
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyTraceMalloc_Untrack
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_untrack(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceMalloc_Track
      Src: /src/cpython/Modules/_testcapi/mem.c:591,1
    - Dst: PyTraceMalloc_Untrack
      Src: /src/cpython/Modules/_testcapi/mem.c:592,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 596
    functionName: tracemalloc_track_race_thread
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyTraceMalloc_Track
    - PyTraceMalloc_Untrack
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void tracemalloc_track_race_thread(void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/mem.c:606,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testcapi/mem.c:609,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/mem.c:613,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapi/mem.c:617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:622,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/mem.c:624,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:625,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:632,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/mem.c:634,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:638,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapi/mem.c:641,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:644,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapi/mem.c:650,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:655,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:661,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:662,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:669,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:674,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:675,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:679,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 684
    functionName: tracemalloc_track_race
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyObject_GetAttrString
    - PyThread_start_new_thread
    - PyThread_allocate_lock
    - PyErr_SetString
    - memset
    - PyImport_ImportModule
    - PyThread_release_lock
    - PyThread_acquire_lock
    - PyThread_free_lock
    - Py_CLEAR
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_track_race(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/mem.c:712,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/mem.c:722,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/mem.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 736
    functionName: _PyTestCapi_Init_Mem
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 1
    functionsReached:
    - PyModule_AddObjectRef
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Mem(PyObject *mod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/datetime.c:17,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/datetime.c:30,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/datetime.c:30,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/datetime.c:31,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/datetime.c:31,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/datetime.c:32,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/datetime.c:32,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/datetime.c:33,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/datetime.c:33,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/datetime.c:34,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/datetime.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyType_HasFeature(PyDateTimeAPI->DateType, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/cpython/Modules/_testcapi/datetime.c
    - condition: (!PyType_HasFeature(PyDateTimeAPI->TimeType, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/cpython/Modules/_testcapi/datetime.c
    - condition: (!PyType_HasFeature(PyDateTimeAPI->DateTimeType, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Modules/_testcapi/datetime.c
    - condition: (!PyType_HasFeature(PyDateTimeAPI->DeltaType, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Modules/_testcapi/datetime.c
    - condition: (!PyType_HasFeature(PyDateTimeAPI->TZInfoType, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/cpython/Modules/_testcapi/datetime.c
    constantsTouched: []
    func_position:
      end: 36
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 36
    functionName: test_datetime_capi
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyType_HasFeature
    - assert
    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: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: MAKE_DATETIME_CHECK_FUNC
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_DATETIME_CHECK_FUNC(check_method, exact_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_DATETIME_CHECK_FUNC
      Src: /src/cpython/Modules/_testcapi/datetime.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: datetime_check_date
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - MAKE_DATETIME_CHECK_FUNC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_check_date(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_DATETIME_CHECK_FUNC
      Src: /src/cpython/Modules/_testcapi/datetime.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: datetime_check_time
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - MAKE_DATETIME_CHECK_FUNC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_check_time(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_DATETIME_CHECK_FUNC
      Src: /src/cpython/Modules/_testcapi/datetime.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: datetime_check_datetime
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - MAKE_DATETIME_CHECK_FUNC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_check_datetime(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_DATETIME_CHECK_FUNC
      Src: /src/cpython/Modules/_testcapi/datetime.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: datetime_check_delta
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - MAKE_DATETIME_CHECK_FUNC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_check_delta(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_DATETIME_CHECK_FUNC
      Src: /src/cpython/Modules/_testcapi/datetime.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: datetime_check_tzinfo
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - MAKE_DATETIME_CHECK_FUNC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_check_tzinfo(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_FromDSU
      Src: /src/cpython/Modules/_testcapi/datetime.c:93,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/datetime.c:94,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:96,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:97,1
    - Dst: TimeZone_FromTimeZone
      Src: /src/cpython/Modules/_testcapi/datetime.c:101,1
    - Dst: PyTimeZone_FromOffsetAndName
      Src: /src/cpython/Modules/_testcapi/datetime.c:102,1
    - Dst: PyTimeZone_FromOffset
      Src: /src/cpython/Modules/_testcapi/datetime.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:105,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapi/datetime.c:111,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/datetime.c:116,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/datetime.c:117,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/datetime.c:118,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:122,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:123,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: make_timezones_capi
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - PyDelta_FromDSU
    - PyTuple_SET_ITEM
    - PyTimeZone_FromOffsetAndName
    - TimeZone_FromTimeZone
    - PyTimeZone_FromOffset
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_timezones_capi(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_FromDSU
      Src: /src/cpython/Modules/_testcapi/datetime.c:131,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_testcapi/datetime.c:132,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:134,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:135,1
    - Dst: PyTimeZone_FromOffset
      Src: /src/cpython/Modules/_testcapi/datetime.c:140,1
    - Dst: PyTimeZone_FromOffsetAndName
      Src: /src/cpython/Modules/_testcapi/datetime.c:141,1
    - Dst: PyTimeZone_FromOffsetAndName
      Src: /src/cpython/Modules/_testcapi/datetime.c:144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:146,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapi/datetime.c:153,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/datetime.c:157,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/datetime.c:158,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/datetime.c:159,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:164,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 167
    functionName: get_timezones_offset_zero
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - PyDelta_FromDSU
    - Py_GetConstant
    - PyTuple_SET_ITEM
    - PyTimeZone_FromOffsetAndName
    - PyTimeZone_FromOffset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_timezones_offset_zero(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:173,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/datetime.c:177,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/datetime.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: get_timezone_utc_capi
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_timezone_utc_capi(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:189,1
    - Dst: PyDate_FromDate
      Src: /src/cpython/Modules/_testcapi/datetime.c:194,1
    - Dst: Date_FromDate
      Src: /src/cpython/Modules/_testcapi/datetime.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: get_date_fromdate
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Date_FromDate
    - PyDate_FromDate
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_date_fromdate(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:212,1
    - Dst: PyDateTime_FromDateAndTime
      Src: /src/cpython/Modules/_testcapi/datetime.c:220,1
    - Dst: DateTime_FromDateAndTime
      Src: /src/cpython/Modules/_testcapi/datetime.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 232
    functionName: get_datetime_fromdateandtime
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - PyDateTime_FromDateAndTime
    - DateTime_FromDateAndTime
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_datetime_fromdateandtime(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:242,1
    - Dst: PyDateTime_FromDateAndTimeAndFold
      Src: /src/cpython/Modules/_testcapi/datetime.c:251,1
    - Dst: DateTime_FromDateAndTimeAndFold
      Src: /src/cpython/Modules/_testcapi/datetime.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 265
    functionName: get_datetime_fromdateandtimeandfold
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - PyDateTime_FromDateAndTimeAndFold
    - DateTime_FromDateAndTimeAndFold
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_datetime_fromdateandtimeandfold(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:274,1
    - Dst: PyTime_FromTime
      Src: /src/cpython/Modules/_testcapi/datetime.c:282,1
    - Dst: Time_FromTime
      Src: /src/cpython/Modules/_testcapi/datetime.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 291
    functionName: get_time_fromtime
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Time_FromTime
    - PyTime_FromTime
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_time_fromtime(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:300,1
    - Dst: PyTime_FromTimeAndFold
      Src: /src/cpython/Modules/_testcapi/datetime.c:308,1
    - Dst: Time_FromTimeAndFold
      Src: /src/cpython/Modules/_testcapi/datetime.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 318
    functionName: get_time_fromtimeandfold
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - PyTime_FromTimeAndFold
    - Time_FromTimeAndFold
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_time_fromtimeandfold(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:327,1
    - Dst: PyDelta_FromDSU
      Src: /src/cpython/Modules/_testcapi/datetime.c:334,1
    - Dst: Delta_FromDelta
      Src: /src/cpython/Modules/_testcapi/datetime.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 343
    functionName: get_delta_fromdsu
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Delta_FromDelta
    - PyDelta_FromDSU
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_delta_fromdsu(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:351,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/datetime.c:356,1
    - Dst: PyDate_FromTimestamp
      Src: /src/cpython/Modules/_testcapi/datetime.c:362,1
    - Dst: Date_FromTimestamp
      Src: /src/cpython/Modules/_testcapi/datetime.c:365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 372
    functionName: get_date_fromtimestamp
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - Date_FromTimestamp
    - PyDate_FromTimestamp
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_date_fromtimestamp(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/datetime.c:380,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/datetime.c:386,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/datetime.c:389,1
    - Dst: PyDateTime_FromTimestamp
      Src: /src/cpython/Modules/_testcapi/datetime.c:398,1
    - Dst: DateTime_FromTimestamp
      Src: /src/cpython/Modules/_testcapi/datetime.c:401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/datetime.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 408
    functionName: get_datetime_fromtimestamp
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - DateTime_FromTimestamp
    - PyTuple_Pack
    - PyDateTime_FromTimestamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_datetime_fromtimestamp(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_GET_YEAR
      Src: /src/cpython/Modules/_testcapi/datetime.c:415,1
    - Dst: PyDateTime_GET_MONTH
      Src: /src/cpython/Modules/_testcapi/datetime.c:416,1
    - Dst: PyDateTime_GET_DAY
      Src: /src/cpython/Modules/_testcapi/datetime.c:417,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/datetime.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: test_PyDateTime_GET
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - PyDateTime_GET_DAY
    - Py_BuildValue
    - PyDateTime_GET_MONTH
    - PyDateTime_GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyDateTime_GET(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_DATE_GET_HOUR
      Src: /src/cpython/Modules/_testcapi/datetime.c:425,1
    - Dst: PyDateTime_DATE_GET_MINUTE
      Src: /src/cpython/Modules/_testcapi/datetime.c:426,1
    - Dst: PyDateTime_DATE_GET_SECOND
      Src: /src/cpython/Modules/_testcapi/datetime.c:427,1
    - Dst: PyDateTime_DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_testcapi/datetime.c:428,1
    - Dst: PyDateTime_DATE_GET_TZINFO
      Src: /src/cpython/Modules/_testcapi/datetime.c:429,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/datetime.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: test_PyDateTime_DATE_GET
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyDateTime_DATE_GET_TZINFO
    - PyDateTime_DATE_GET_HOUR
    - PyDateTime_DATE_GET_SECOND
    - PyDateTime_DATE_GET_MINUTE
    - PyDateTime_DATE_GET_MICROSECOND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyDateTime_DATE_GET(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_TIME_GET_HOUR
      Src: /src/cpython/Modules/_testcapi/datetime.c:437,1
    - Dst: PyDateTime_TIME_GET_MINUTE
      Src: /src/cpython/Modules/_testcapi/datetime.c:438,1
    - Dst: PyDateTime_TIME_GET_SECOND
      Src: /src/cpython/Modules/_testcapi/datetime.c:439,1
    - Dst: PyDateTime_TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_testcapi/datetime.c:440,1
    - Dst: PyDateTime_TIME_GET_TZINFO
      Src: /src/cpython/Modules/_testcapi/datetime.c:441,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/datetime.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: test_PyDateTime_TIME_GET
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyDateTime_TIME_GET_TZINFO
    - PyDateTime_TIME_GET_HOUR
    - PyDateTime_TIME_GET_MICROSECOND
    - PyDateTime_TIME_GET_SECOND
    - PyDateTime_TIME_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyDateTime_TIME_GET(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_DELTA_GET_DAYS
      Src: /src/cpython/Modules/_testcapi/datetime.c:449,1
    - Dst: PyDateTime_DELTA_GET_SECONDS
      Src: /src/cpython/Modules/_testcapi/datetime.c:450,1
    - Dst: PyDateTime_DELTA_GET_MICROSECONDS
      Src: /src/cpython/Modules/_testcapi/datetime.c:451,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/datetime.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: test_PyDateTime_DELTA_GET
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - PyDateTime_DELTA_GET_DAYS
    - PyDateTime_DELTA_GET_MICROSECONDS
    - Py_BuildValue
    - PyDateTime_DELTA_GET_SECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyDateTime_DELTA_GET(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/datetime.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: _PyTestCapi_Init_DateTime
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_DateTime(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_datetime_capi
      Src: /src/cpython/Modules/_testcapi/datetime.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: _testcapi_datetime_exec
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - test_datetime_capi
    linkageType: ''
    returnType: int
    signature: int _testcapi_datetime_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testcapi/datetime.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 523
    functionName: PyInit__testcapi_datetime
    functionSourceFile: /src/cpython/Modules/_testcapi/datetime.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testcapi_datetime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/immortal.c:8,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Modules/_testcapi/immortal.c:8,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/immortal.c:9,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/immortal.c:11,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/immortal.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_IsImmortal(object))
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/cpython/Modules/_testcapi/immortal.c
    constantsTouched: []
    func_position:
      end: 15
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 15
    functionName: verify_immortality
    functionSourceFile: /src/cpython/Modules/_testcapi/immortal.c
    functionUses: 0
    functionsReached:
    - _Py_IsImmortal
    - Py_DECREF
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: int
    signature: int verify_immortality(PyObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapi/immortal.c:21,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/immortal.c:23,1
    - Dst: verify_immortality
      Src: /src/cpython/Modules/_testcapi/immortal.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (verify_immortality(objects[i]))
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/cpython/Modules/_testcapi/immortal.c
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: test_immortal_builtins
    functionSourceFile: /src/cpython/Modules/_testcapi/immortal.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - verify_immortality
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_immortal_builtins(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/immortal.c:32,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/immortal.c:33,1
    - Dst: verify_immortality
      Src: /src/cpython/Modules/_testcapi/immortal.c:33,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/immortal.c:35,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/immortal.c:38,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/immortal.c:39,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/immortal.c:41,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/immortal.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (verify_immortality(obj))
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Modules/_testcapi/immortal.c
    - condition: (has_int_immortal_bit)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/cpython/Modules/_testcapi/immortal.c
    - condition: (obj)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/cpython/Modules/_testcapi/immortal.c
    - condition: (!has_int_immortal_bit)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/cpython/Modules/_testcapi/immortal.c
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: test_immortal_small_ints
    functionSourceFile: /src/cpython/Modules/_testcapi/immortal.c
    functionUses: 0
    functionsReached:
    - verify_immortality
    - Py_DECREF
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_immortal_small_ints(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/immortal.c:50,1
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Modules/_testcapi/immortal.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: is_immortal
    functionSourceFile: /src/cpython/Modules/_testcapi/immortal.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyUnstable_IsImmortal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_immortal(PyObject *self, PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/immortal.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: _PyTestCapi_Init_Immortal
    functionSourceFile: /src/cpython/Modules/_testcapi/immortal.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Immortal(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/type.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: get_heaptype_for_name
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_FromSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_heaptype_for_name(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:26,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:26,1
    - Dst: PyType_GetName
      Src: /src/cpython/Modules/_testcapi/type.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/cpython/Modules/_testcapi/type.c
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: get_type_name
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - assert
    - PyType_GetName
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_type_name(PyObject *self, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:34,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:34,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Modules/_testcapi/type.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/cpython/Modules/_testcapi/type.c
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: get_type_qualname
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyType_GetQualName
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_type_qualname(PyObject *self, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:42,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:42,1
    - Dst: PyType_GetFullyQualifiedName
      Src: /src/cpython/Modules/_testcapi/type.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/cpython/Modules/_testcapi/type.c
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: get_type_fullyqualname
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyType_GetFullyQualifiedName
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_type_fullyqualname(PyObject *self, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:50,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:50,1
    - Dst: PyType_GetModuleName
      Src: /src/cpython/Modules/_testcapi/type.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/cpython/Modules/_testcapi/type.c
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: get_type_module_name
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyType_GetModuleName
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_type_module_name(PyObject *self, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetDict
      Src: /src/cpython/Modules/_testcapi/type.c:61,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:62,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:63,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testcapi/type.c:63,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/type.c:64,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/type.c:67,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:68,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:69,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/type.c:69,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/type.c:70,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Modules/_testcapi/type.c:71,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:72,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:73,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testcapi/type.c:73,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/type.c:74,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/type.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (long_dict)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/cpython/Modules/_testcapi/type.c
    - condition: (PyDict_GetItemString(long_dict, "to_bytes"))
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Modules/_testcapi/type.c
    - condition: (HeapTypeNameType)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/cpython/Modules/_testcapi/type.c
    - condition: "(PyObject_SetAttrString(\n        HeapTypeNameType, \"new_attr\",
        Py_NewRef(Py_None)) >= 0)"
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/cpython/Modules/_testcapi/type.c
    - condition: (type_dict)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/cpython/Modules/_testcapi/type.c
    - condition: (PyDict_GetItemString(type_dict, "new_attr"))
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/cpython/Modules/_testcapi/type.c
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: test_get_type_dict
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_SetAttrString
    - Py_NewRef
    - PyType_FromSpec
    - PyDict_GetItemString
    - PyType_GetDict
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_get_type_dict(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/type.c:83,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:85,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/type.c:89,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:91,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/type.c:95,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:97,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/type.c:101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:103,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/type.c:107,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:109,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/type.c:113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:115,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/type.c:119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:121,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapi/type.c:124,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapi/type.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 133
    functionName: test_get_statictype_slots
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_GetSlot
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_get_statictype_slots(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:141,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapi/type.c:144,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/type.c:147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/type.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Modules/_testcapi/type.c
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: type_get_version
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_version(PyObject *self, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:156,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:157,1
    - Dst: PyType_Modified
      Src: /src/cpython/Modules/_testcapi/type.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: type_modified
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - PyType_Modified
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_modified(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:171,1
    - Dst: PyUnstable_Type_AssignVersionTag
      Src: /src/cpython/Modules/_testcapi/type.c:176,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/type.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: type_assign_version
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - PyLong_FromLong
    - PyUnstable_Type_AssignVersionTag
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_assign_version(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:184,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:185,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/type.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: type_get_tp_bases
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_tp_bases(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:200,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:201,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/type.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: type_get_tp_mro
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_tp_mro(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/type.c:217,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/type.c:218,1
    - Dst: PyType_Freeze
      Src: /src/cpython/Modules/_testcapi/type.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: type_freeze
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - PyType_Freeze
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_freeze(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/type.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: _PyTestCapi_Init_Type
    functionSourceFile: /src/cpython/Modules/_testcapi/type.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Type(PyObject *m)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:31,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:34,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:37,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/watchers.c:40,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/watchers.c:43,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/watchers.c:46,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:49,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:54,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:54,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:55,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:56,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:59,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - event
    - dict
    - key
    - new_value
    argTypes:
    - PyDict_WatchEvent
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(g_dict_watch_events))
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 61
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 61
    functionName: dict_watch_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyList_Append
    - PyList_Check
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: int
    signature: "int dict_watch_callback(PyDict_WatchEvent event,\n                    PyObject
      *dict,\n                    PyObject *key,\n                    PyObject *new_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:69,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:73,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - event
    - dict
    - key
    - new_value
    argTypes:
    - PyDict_WatchEvent
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: dict_watch_callback_second
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: "int dict_watch_callback_second(PyDict_WatchEvent event,\n                           PyObject
      *dict,\n                           PyObject *key,\n                           PyObject
      *new_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - event
    - dict
    - key
    - new_value
    argTypes:
    - PyDict_WatchEvent
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: dict_watch_callback_error
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int dict_watch_callback_error(PyDict_WatchEvent event,\n                          PyObject
      *dict,\n                          PyObject *key,\n                          PyObject
      *new_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:95,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:95,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:96,1
    - Dst: PyDict_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:98,1
    - Dst: PyDict_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:101,1
    - Dst: PyDict_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:104,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:110,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:111,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(kind))
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    - condition: (!g_dict_watch_events)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 117
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 117
    functionName: add_dict_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_AsLong
    - PyLong_Check
    - PyDict_AddWatcher
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_dict_watcher(PyObject *self, PyObject *kind)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:122,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:122,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:127,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (g_dict_watch_events)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: clear_dict_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyDict_ClearWatcher
    - Py_CLEAR
    - assert
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_dict_watcher(PyObject *self, PyObject *watcher_id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Watch
      Src: /src/cpython/Modules/_testcapi/watchers.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - dict
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: _testcapi_watch_dict_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyDict_Watch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_watch_dict_impl(PyObject *module, int watcher_id, PyObject *dict)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Unwatch
      Src: /src/cpython/Modules/_testcapi/watchers.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - dict
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: _testcapi_unwatch_dict_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyDict_Unwatch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_unwatch_dict_impl(PyObject *module, int watcher_id, PyObject *dict)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:168,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: get_dict_watcher_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dict_watcher_events(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:181,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:181,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyList_Check(g_type_modified_events))
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: type_modified_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - assert
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int type_modified_callback(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:191,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:191,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:192,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:197,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyList_Check(g_type_modified_events))
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: type_modified_callback_wrap
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_Append
    - PyList_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int type_modified_callback_wrap(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: type_modified_callback_error
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int type_modified_callback_error(PyTypeObject *type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:219,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:219,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:220,1
    - Dst: PyType_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:222,1
    - Dst: PyType_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:225,1
    - Dst: PyType_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:228,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:234,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:235,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(kind))
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    - condition: (!g_type_modified_events)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 241
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 241
    functionName: add_type_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_AsLong
    - PyLong_Check
    - PyType_AddWatcher
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_type_watcher(PyObject *self, PyObject *kind)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:246,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:246,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:251,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (g_type_modified_events)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: clear_type_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyType_ClearWatcher
    - assert
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_type_watcher(PyObject *self, PyObject *watcher_id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:261,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: get_type_modified_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_type_modified_events(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Watch
      Src: /src/cpython/Modules/_testcapi/watchers.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - type
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: _testcapi_watch_type_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyType_Watch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_watch_type_impl(PyObject *module, int watcher_id, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Unwatch
      Src: /src/cpython/Modules/_testcapi/watchers.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - type
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: _testcapi_unwatch_type_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyType_Unwatch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_unwatch_type_impl(PyObject *module, int watcher_id, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - which_watcher
    - event
    - co
    argTypes:
    - int
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: handle_code_object_event
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int handle_code_object_event(int which_watcher, PyCodeEvent event,
      PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_code_object_event
      Src: /src/cpython/Modules/_testcapi/watchers.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: first_code_object_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - handle_code_object_event
    linkageType: ''
    returnType: int
    signature: int first_code_object_callback(PyCodeEvent event, PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_code_object_event
      Src: /src/cpython/Modules/_testcapi/watchers.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: second_code_object_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - handle_code_object_event
    linkageType: ''
    returnType: int
    signature: int second_code_object_callback(PyCodeEvent event, PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: noop_code_event_handler
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noop_code_event_handler(PyCodeEvent event, PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: error_code_event_handler
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int error_code_event_handler(PyCodeEvent event, PyCodeObject *co)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:349,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:349,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:350,1
    - Dst: PyCode_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:352,1
    - Dst: PyCode_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:358,1
    - Dst: PyCode_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:364,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/watchers.c:367,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - self
    - which_watcher
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(which_watcher))
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 374
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 374
    functionName: add_code_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyCode_AddWatcher
    - PyLong_FromLong
    - PyLong_Check
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_code_watcher(PyObject *self, PyObject *which_watcher)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:379,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:379,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:380,1
    - Dst: PyCode_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(watcher_id))
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 395
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 395
    functionName: clear_code_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyCode_ClearWatcher
    - assert
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_code_watcher(PyObject *self, PyObject *watcher_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:400,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:400,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:401,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:402,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(watcher_id))
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    - condition: (watcher_id_l >= 0 && watcher_id_l < NUM_CODE_WATCHERS)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: get_code_watcher_num_created_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - assert
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_code_watcher_num_created_events(PyObject *self, PyObject *watcher_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:409,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:409,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:410,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:411,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(watcher_id))
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    - condition: (watcher_id_l >= 0 && watcher_id_l < NUM_CODE_WATCHERS)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: get_code_watcher_num_destroyed_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - assert
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_code_watcher_num_destroyed_events(PyObject *self, PyObject *watcher_id)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:421,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:428,1
    - Dst: PyCode_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:430,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/watchers.c:431,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:437,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/watchers.c:440,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 444
    functionName: allocate_too_many_code_watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyCode_AddWatcher
    - PyErr_Occurred
    - PyCode_ClearWatcher
    - PyErr_FormatUnraisable
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      allocate_too_many_code_watchers(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Modules/_testcapi/watchers.c:455,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:459,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_testcapi/watchers.c:463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:464,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testcapi/watchers.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 472
    functionName: get_id
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyObject_Vectorcall
    - PyObject_GetItem
    - PyEval_GetBuiltins
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_id(PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:478,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:485,1
    - Dst: get_id
      Src: /src/cpython/Modules/_testcapi/watchers.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:492,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:497,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testcapi/watchers.c:501,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - watcher
    - event
    - func
    - new_value
    argTypes:
    - PyObject*
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 508
    functionName: call_pyfunc_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Vectorcall
    - get_id
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: "int call_pyfunc_watcher(PyObject *watcher, PyFunction_WatchEvent event,\n
      \                   PyFunctionObject *func, PyObject *new_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_pyfunc_watcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event
    - func
    - new_value
    argTypes:
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: first_func_watcher_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - call_pyfunc_watcher
    linkageType: ''
    returnType: int
    signature: "int first_func_watcher_callback(PyFunction_WatchEvent event, PyFunctionObject
      *func,\n                            PyObject *new_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_pyfunc_watcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event
    - func
    - new_value
    argTypes:
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 522
    functionName: second_func_watcher_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - call_pyfunc_watcher
    linkageType: ''
    returnType: int
    signature: "int second_func_watcher_callback(PyFunction_WatchEvent event,\n                             PyFunctionObject
      *func, PyObject *new_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapi/watchers.c:532,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - name
    - event
    argTypes:
    - PyObject*
    - char*
    - PyFunction_WatchEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: add_func_event
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int add_func_event(PyObject *module, const char *name, PyFunction_WatchEvent
      event)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:538,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:539,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:550,1
    - Dst: PyFunction_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:553,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:557,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:558,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 563
    functionName: add_func_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - PyErr_SetString
    - Py_NewRef
    - PyFunction_AddWatcher
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_func_watcher(PyObject *self, PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:568,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:570,1
    - Dst: PyFunction_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:574,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:584,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:585,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - watcher_id_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (idx != -1)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 588
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 588
    functionName: clear_func_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyFunction_ClearWatcher
    - PyLong_AsLong
    - PyErr_SetString
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_func_watcher(PyObject *self, PyObject *watcher_id_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event
    - func
    - new_value
    argTypes:
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: noop_func_event_handler
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int noop_func_event_handler(PyFunction_WatchEvent event, PyFunctionObject
      *func,\n             PyObject *new_value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:603,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:610,1
    - Dst: PyFunction_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:612,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/watchers.c:613,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:619,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/watchers.c:622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 626
    functionName: allocate_too_many_func_watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyFunction_ClearWatcher
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - PyErr_FormatUnraisable
    - PyFunction_AddWatcher
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      allocate_too_many_func_watchers(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - which_watcher
    - event
    - ctx
    argTypes:
    - int
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 642
    functionName: handle_context_watcher_event
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    linkageType: ''
    returnType: int
    signature: int handle_context_watcher_event(int which_watcher, PyContextEvent
      event, PyObject *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_context_watcher_event
      Src: /src/cpython/Modules/_testcapi/watchers.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - ctx
    argTypes:
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 647
    functionName: first_context_watcher_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - handle_context_watcher_event
    linkageType: ''
    returnType: int
    signature: int first_context_watcher_callback(PyContextEvent event, PyObject *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_context_watcher_event
      Src: /src/cpython/Modules/_testcapi/watchers.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - ctx
    argTypes:
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: second_context_watcher_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - handle_context_watcher_event
    linkageType: ''
    returnType: int
    signature: int second_context_watcher_callback(PyContextEvent event, PyObject
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - ctx
    argTypes:
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: noop_context_event_handler
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noop_context_event_handler(PyContextEvent event, PyObject *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - event
    - ctx
    argTypes:
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: error_context_event_handler
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int error_context_event_handler(PyContextEvent event, PyObject *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:673,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:673,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:674,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapi/watchers.c:675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/watchers.c:676,1
    - Dst: PyContext_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:679,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:685,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:685,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:690,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - which_watcher
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(which_watcher))
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 691
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 691
    functionName: add_context_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_AsLong
    - PyContext_AddWatcher
    - PyLong_FromLong
    - PyLong_Check
    - Py_XSETREF
    - PyErr_Format
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_context_watcher(PyObject *self, PyObject *which_watcher)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:696,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:696,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:697,1
    - Dst: PyContext_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:698,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(watcher_id))
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 711
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 711
    functionName: clear_context_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyContext_ClearWatcher
    - PyLong_Check
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_context_watcher(PyObject *self, PyObject *watcher_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapi/watchers.c:716,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:721,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 727
    functionName: clear_context_stack
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_CLEAR
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_context_stack(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:732,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:732,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:733,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/watchers.c:735,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:739,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(watcher_id))
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 742
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 742
    functionName: get_context_switches
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_AsLong
    - PyLong_Check
    - Py_NewRef
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_context_switches(PyObject *Py_UNUSED(self), PyObject *watcher_id)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyContext_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:750,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:757,1
    - Dst: PyContext_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:759,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/watchers.c:760,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:766,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/watchers.c:769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 773
    functionName: allocate_too_many_context_watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyContext_AddWatcher
    - PyContext_ClearWatcher
    - PyErr_Occurred
    - PyErr_FormatUnraisable
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      allocate_too_many_context_watchers(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_SetDefaults
      Src: /src/cpython/Modules/_testcapi/watchers.c:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - func
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 791
    functionName: _testcapi_set_func_defaults_via_capi_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyFunction_SetDefaults
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_set_func_defaults_via_capi_impl(PyObject *module,
      PyObject *func,\n                                          PyObject *defaults)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_SetKwDefaults
      Src: /src/cpython/Modules/_testcapi/watchers.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - func
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 806
    functionName: _testcapi_set_func_kwdefaults_via_capi_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyFunction_SetKwDefaults
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_set_func_kwdefaults_via_capi_impl(PyObject *module,
      PyObject *func,\n                                            PyObject *defaults)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/watchers.c:855,1
    - Dst: PY_FOREACH_FUNC_EVENT
      Src: /src/cpython/Modules/_testcapi/watchers.c:865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 869
    functionName: _PyTestCapi_Init_Watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 1
    functionsReached:
    - PY_FOREACH_FUNC_EVENT
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Watchers(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - event
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 865
    functionName: ADD_EVENT
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_EVENT(event)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:14,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Modules/_testcapi/unicode.c:18,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Modules/_testcapi/unicode.c:23,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:25,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 29
    functionName: unicode_new
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_New
    - Py_DECREF
    - PyUnicode_Fill
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_new(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testcapi/unicode.c:40,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:41,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Modules/_testcapi/unicode.c:45,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testcapi/unicode.c:45,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Modules/_testcapi/unicode.c:46,1
    - Dst: PyUnicode_CopyCharacters
      Src: /src/cpython/Modules/_testcapi/unicode.c:50,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testcapi/unicode.c:51,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: unicode_copy
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyUnicode_CopyCharacters
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_New
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_copy(PyObject *unicode)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:68,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:72,1
    - Dst: unicode_copy
      Src: /src/cpython/Modules/_testcapi/unicode.c:73,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Modules/_testcapi/unicode.c:77,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/unicode.c:78,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:79,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/unicode.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: unicode_fill
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - unicode_copy
    - PyUnicode_Fill
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fill(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:95,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/unicode.c:103,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_testcapi/unicode.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 108
    functionName: unicode_fromkindanddata
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromKindAndData
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromkindanddata(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:121,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:125,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_testcapi/unicode.c:127,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/unicode.c:129,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/unicode.c:131,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/cpython/Modules/_testcapi/unicode.c:134,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/unicode.c:135,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_testcapi/unicode.c:139,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/unicode.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 142
    functionName: unicode_asucs4
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_FromKindAndData
    - memset
    - PyMem_Free
    - PyUnicode_AsUCS4
    - PyMem_NEW
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asucs4(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:154,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:158,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/_testcapi/unicode.c:159,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_testcapi/unicode.c:163,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testcapi/unicode.c:165,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/_testcapi/unicode.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 168
    functionName: unicode_asucs4copy
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_AsUCS4Copy
    - PyUnicode_FromKindAndData
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asucs4copy(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:179,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:182,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testcapi/unicode.c:183,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/unicode.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 188
    functionName: unicode_asutf8
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyBytes_FromStringAndSize
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asutf8(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:198,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:203,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Modules/_testcapi/unicode.c:204,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testcapi/unicode.c:204,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Modules/_testcapi/unicode.c:205,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Modules/_testcapi/unicode.c:208,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testcapi/unicode.c:208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:209,1
    - Dst: PyUnicode_CopyCharacters
      Src: /src/cpython/Modules/_testcapi/unicode.c:213,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/unicode.c:215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:216,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/unicode.c:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 221
    functionName: unicode_copycharacters
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyUnicode_CopyCharacters
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - PyUnicode_Fill
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_copycharacters(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/unicode.c:226,1
    - Dst: PyUnstable_Unicode_GET_CACHED_HASH
      Src: /src/cpython/Modules/_testcapi/unicode.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: unicode_GET_CACHED_HASH
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyUnstable_Unicode_GET_CACHED_HASH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_GET_CACHED_HASH(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapi/unicode.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: writer_new
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:256,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_testcapi/unicode.c:261,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_testcapi/unicode.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self_raw
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: writer_init
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_Create
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: int writer_init(PyObject *self_raw, PyObject *args, PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/unicode.c:276,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_testcapi/unicode.c:278,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_testcapi/unicode.c:280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self_raw
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: writer_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Discard
    - Py_TYPE
    - PyTypeObject*::tp_free
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void writer_dealloc(PyObject *self_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/unicode.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 293
    functionName: writer_check
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int writer_check(WriterObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:300,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:305,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testcapi/unicode.c:308,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/unicode.c:309,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_testcapi/unicode.c:311,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_testcapi/unicode.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 317
    functionName: writer_write_char
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - writer_check
    - PyErr_SetString
    - PyUnicodeWriter_WriteChar
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_char(PyObject *self_raw, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:324,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:330,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Modules/_testcapi/unicode.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: writer_write_utf8
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteUTF8
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_utf8(PyObject *self_raw, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:345,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:351,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_testcapi/unicode.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: writer_write_ascii
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteASCII
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_ascii(PyObject *self_raw, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:366,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:371,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_testcapi/unicode.c:376,1
    - Dst: PyUnicodeWriter_WriteWideChar
      Src: /src/cpython/Modules/_testcapi/unicode.c:381,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/unicode.c:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 387
    functionName: writer_write_widechar
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - writer_check
    - PyUnicodeWriter_WriteWideChar
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_widechar(PyObject *self_raw, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:394,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:400,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testcapi/unicode.c:403,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_testcapi/unicode.c:404,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/_testcapi/unicode.c:406,1
    - Dst: PyUnicodeWriter_WriteUCS4
      Src: /src/cpython/Modules/_testcapi/unicode.c:411,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/unicode.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 417
    functionName: writer_write_ucs4
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - PyArg_ParseTuple
    - writer_check
    - PyUnicodeWriter_WriteUCS4
    - PyUnicode_AsUCS4Copy
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_ucs4(PyObject *self_raw, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:424,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:429,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_testcapi/unicode.c:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 437
    functionName: writer_write_str
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteStr
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_str(PyObject *self_raw, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:444,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:449,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Modules/_testcapi/unicode.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 457
    functionName: writer_write_repr
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteRepr
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_repr(PyObject *self_raw, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:464,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:470,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_testcapi/unicode.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: writer_write_substring
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteSubstring
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_substring(PyObject *self_raw, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:485,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:493,1
    - Dst: PyUnicodeWriter_DecodeUTF8Stateful
      Src: /src/cpython/Modules/_testcapi/unicode.c:499,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/unicode.c:502,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/unicode.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == 0)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/cpython/Modules/_testcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 511
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 511
    functionName: writer_decodeutf8stateful
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - writer_check
    - PyLong_FromSsize_t
    - PyUnicodeWriter_DecodeUTF8Stateful
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_decodeutf8stateful(PyObject *self_raw, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:518,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/unicode.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 523
    functionName: writer_get_pointer
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_get_pointer(PyObject *self_raw, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:530,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_testcapi/unicode.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self_raw
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: writer_finish
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_finish(PyObject *self_raw, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/unicode.c:585,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/unicode.c:589,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/unicode.c:593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 600
    functionName: _PyTestCapi_Init_Unicode
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - PyType_FromSpec
    - Py_DECREF
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Unicode(PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:10,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:13,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/dict.c:14,1
    - Dst: PyDict_ContainsString
      Src: /src/cpython/Modules/_testcapi/dict.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 15
    functionName: dict_containsstring
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_ContainsString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_containsstring(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:21,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:24,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:25,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_testcapi/dict.c:27,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:29,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:32,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/dict.c:33,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/dict.c:37,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (value == NULL)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Modules/_testcapi/dict.c
    constantsTouched: []
    func_position:
      end: 40
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 40
    functionName: dict_getitemref
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - NULLABLE
    - PyArg_ParseTuple
    - Py_FatalError
    - Py_NewRef
    - PyDict_GetItemRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_getitemref(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:48,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:51,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Modules/_testcapi/dict.c:53,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:55,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:58,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/dict.c:59,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/dict.c:63,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (value == NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Modules/_testcapi/dict.c
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: dict_getitemstringref
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - NULLABLE
    - PyArg_ParseTuple
    - Py_FatalError
    - PyDict_GetItemStringRef
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_getitemstringref(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:72,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:75,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:76,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:77,1
    - Dst: PyDict_SetDefault
      Src: /src/cpython/Modules/_testcapi/dict.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: dict_setdefault
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefault
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_setdefault(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:85,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:88,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:89,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:90,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/_testcapi/dict.c:91,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:93,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:96,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapi/dict.c:101,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (result == NULL)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (result == default_value)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/cpython/Modules/_testcapi/dict.c
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: dict_setdefaultref
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - NULLABLE
    - Py_FatalError
    - PyArg_ParseTuple
    - PyDict_SetDefaultRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_setdefaultref(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:111,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:114,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:115,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_testcapi/dict.c:117,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:119,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:123,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/dict.c:124,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:127,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/dict.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (result == NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (result == NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (result != NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/cpython/Modules/_testcapi/dict.c
    constantsTouched: []
    func_position:
      end: 130
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 130
    functionName: dict_pop
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyArg_ParseTuple
    - Py_NewRef
    - PyDict_Pop
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_pop(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:137,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:140,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:141,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/dict.c:142,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_testcapi/dict.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: dict_pop_null
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Pop
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_pop_null(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:151,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:154,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/_testcapi/dict.c:156,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:158,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:162,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/dict.c:163,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:166,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/dict.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (result == NULL)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (result == NULL)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (result != NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Modules/_testcapi/dict.c
    constantsTouched: []
    func_position:
      end: 169
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 169
    functionName: dict_popstring
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyArg_ParseTuple
    - PyDict_PopString
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_popstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/dict.c:177,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:180,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/dict.c:181,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/_testcapi/dict.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: dict_popstring_null
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_PopString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_popstring_null(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testcapi/dict.c:190,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/dict.c:197,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testcapi/dict.c:201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/dict.c:202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/dict.c:205,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_testcapi/dict.c:209,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:213,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:214,1
    - Dst: PyLong_AS_LONG
      Src: /src/cpython/Modules/_testcapi/dict.c:215,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/dict.c:216,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testcapi/dict.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/dict.c:221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/dict.c:224,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:227,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/dict.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/dict.c:230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/dict.c:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/dict.c:241,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - self
    - count
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (k != UNINITIALIZED_PTR)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (v != UNINITIALIZED_PTR)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (k == UNINITIALIZED_PTR)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (v == UNINITIALIZED_PTR)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/cpython/Modules/_testcapi/dict.c
    constantsTouched: []
    func_position:
      end: 243
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 243
    functionName: test_dict_inner
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItem
    - PyErr_SetString
    - PyLong_AS_LONG
    - PyDict_Next
    - PyDict_New
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: int
    signature: int test_dict_inner(PyObject *self, int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_dict_inner
      Src: /src/cpython/Modules/_testcapi/dict.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: test_dict_iteration
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - test_dict_inner
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_dict_iteration(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/dict.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: _PyTestCapi_Init_Dict
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Dict(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/numbers.c:8,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/numbers.c:9,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_testcapi/numbers.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: number_check
    functionSourceFile: /src/cpython/Modules/_testcapi/numbers.c
    functionUses: 0
    functionsReached:
    - PyNumber_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      number_check(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - funcsuffix
    - ','
    - methsuffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: BINARYFUNC
    functionSourceFile: /src/cpython/Modules/_testcapi/numbers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARYFUNC(funcsuffix, methsuffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - funcsuffix
    - ','
    - methsuffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: TERNARYFUNC
    functionSourceFile: /src/cpython/Modules/_testcapi/numbers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TERNARYFUNC(funcsuffix, methsuffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - funcsuffix
    - ','
    - methsuffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: UNARYFUNC
    functionSourceFile: /src/cpython/Modules/_testcapi/numbers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNARYFUNC(funcsuffix, methsuffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/numbers.c:98,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/numbers.c:102,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Modules/_testcapi/numbers.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: number_tobase
    functionSourceFile: /src/cpython/Modules/_testcapi/numbers.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      number_tobase(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/numbers.c:112,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/numbers.c:116,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/numbers.c:117,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_testcapi/numbers.c:118,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/numbers.c:120,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/numbers.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: number_asssizet
    functionSourceFile: /src/cpython/Modules/_testcapi/numbers.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      number_asssizet(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/numbers.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: _PyTestCapi_Init_Numbers
    functionSourceFile: /src/cpython/Modules/_testcapi/numbers.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Numbers(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: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: testBufObject_CAST
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testBufObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testcapi/buffer.c:19,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapi/buffer.c:23,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/buffer.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 31
    functionName: testbuf_new
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      testbuf_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testBufObject_CAST
      Src: /src/cpython/Modules/_testcapi/buffer.c:36,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapi/buffer.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: testbuf_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached:
    - testBufObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int testbuf_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testBufObject_CAST
      Src: /src/cpython/Modules/_testcapi/buffer.c:44,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/buffer.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: testbuf_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached:
    - testBufObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int testbuf_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testBufObject_CAST
      Src: /src/cpython/Modules/_testcapi/buffer.c:52,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/buffer.c:53,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/buffer.c:54,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/buffer.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: testbuf_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached:
    - testBufObject_CAST
    - Py_XDECREF
    - Py_TYPE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void testbuf_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testBufObject_CAST
      Src: /src/cpython/Modules/_testcapi/buffer.c:61,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testcapi/buffer.c:62,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testcapi/buffer.c:64,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/buffer.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: testbuf_getbuf
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached:
    - testBufObject_CAST
    - Py_NewRef
    - PyObject_GetBuffer
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int testbuf_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testBufObject_CAST
      Src: /src/cpython/Modules/_testcapi/buffer.c:73,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/buffer.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (self->references >= 0)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/cpython/Modules/_testcapi/buffer.c
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: testbuf_releasebuf
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached:
    - testBufObject_CAST
    - assert
    linkageType: ''
    returnType: void
    signature: void testbuf_releasebuf(PyObject *op, Py_buffer *Py_UNUSED(view))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/buffer.c:103,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/buffer.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: _PyTestCapi_Init_Buffer
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Buffer(PyObject *m)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Pack2
      Src: /src/cpython/Modules/_testcapi/float.c:34,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/float.c:37,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapi/float.c:37,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_testcapi/float.c:42,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/float.c:45,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapi/float.c:45,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_testcapi/float.c:50,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/float.c:53,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapi/float.c:53,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/float.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - module
    - size
    - d
    - le
    argTypes:
    - PyObject*
    - int
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 60
    functionName: _testcapi_float_pack_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/float.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyFloat_Pack2
    - PyFloat_Pack4
    - Py_ARRAY_LENGTH
    - PyFloat_Pack8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_float_pack_impl(PyObject *module, int size, double d, int le)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/float.c:78,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/float.c:78,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Modules/_testcapi/float.c:83,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_testcapi/float.c:86,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_testcapi/float.c:89,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/float.c:92,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/float.c:96,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapi/float.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - module
    - data
    - data_length
    - le
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/cpython/Modules/_testcapi/float.c
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: _testcapi_float_unpack_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/float.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack2
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_FromDouble
    - PyFloat_Unpack8
    - PyFloat_Unpack4
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_float_unpack_impl(PyObject *module, const char
      *data,\n                            Py_ssize_t data_length, int le)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING
      Src: /src/cpython/Modules/_testcapi/float.c:139,1
    - Dst: CHECK_STRING
      Src: /src/cpython/Modules/_testcapi/float.c:140,1
    - Dst: CHECK_STRING
      Src: /src/cpython/Modules/_testcapi/float.c:141,1
    - Dst: CHECK_STRING
      Src: /src/cpython/Modules/_testcapi/float.c:142,1
    - Dst: CHECK_STRING
      Src: /src/cpython/Modules/_testcapi/float.c:143,1
    - Dst: CHECK_INVALID
      Src: /src/cpython/Modules/_testcapi/float.c:145,1
    - Dst: CHECK_INVALID
      Src: /src/cpython/Modules/_testcapi/float.c:146,1
    - Dst: CHECK_INVALID
      Src: /src/cpython/Modules/_testcapi/float.c:147,1
    - Dst: CHECK_INVALID
      Src: /src/cpython/Modules/_testcapi/float.c:148,1
    - Dst: CHECK_INVALID
      Src: /src/cpython/Modules/_testcapi/float.c:149,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/float.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 157
    functionName: test_string_to_double
    functionSourceFile: /src/cpython/Modules/_testcapi/float.c
    functionUses: 0
    functionsReached:
    - CHECK_INVALID
    - CHECK_STRING
    - PyErr_Format
    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: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: CHECK_STRING
    functionSourceFile: /src/cpython/Modules/_testcapi/float.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: 138
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: CHECK_INVALID
    functionSourceFile: /src/cpython/Modules/_testcapi/float.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INVALID(STR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/float.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: _PyTestCapi_Init_Float
    functionSourceFile: /src/cpython/Modules/_testcapi/float.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Float(PyObject *mod)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:22,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testcapi/getargs.c:28,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapi/getargs.c:29,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/getargs.c:31,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/getargs.c:37,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/getargs.c:38,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/getargs.c:40,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/getargs.c:42,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/getargs.c:48,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testcapi/getargs.c:49,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testcapi/getargs.c:50,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_testcapi/getargs.c:55,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_testcapi/getargs.c:56,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/getargs.c:59,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/getargs.c:66,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapi/getargs.c:67,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Modules/_testcapi/getargs.c:76,1
    - Dst: strchr
      Src: /src/cpython/Modules/_testcapi/getargs.c:77,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapi/getargs.c:85,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/getargs.c:94,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:94,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:98,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (MAX_PARAMS == 8)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/cpython/Modules/_testcapi/getargs.c
    constantsTouched: []
    func_position:
      end: 104
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 104
    functionName: parse_tuple_and_keywords
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_ISALNUM
    - assert
    - PyTuple_New
    - PySequence_Fast_GET_SIZE
    - PyArg_ParseTuple
    - strchr
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - memset
    - PyArg_ParseTupleAndKeywords
    - PyBytes_Check
    - Py_NewRef
    - PyUnicode_AsUTF8
    - PySequence_Fast_GET_ITEM
    - PyUnicode_Check
    - PyBytes_AS_STRING
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parse_tuple_and_keywords(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: get_args
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_args(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: get_kwargs
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_kwargs(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:129,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:139,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/getargs.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: getargs_w_star
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_w_star(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:151,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:162,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/getargs.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: getargs_w_star_opt
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_w_star_opt(PyObject *self, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/getargs.c:189,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testcapi/getargs.c:193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:195,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testcapi/getargs.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:200,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:201,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapi/getargs.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:210,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/getargs.c:211,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapi/getargs.c:217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:219,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapi/getargs.c:222,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Modules/_testcapi/getargs.c:226,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testcapi/getargs.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:230,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapi/getargs.c:235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:239,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/getargs.c:240,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapi/getargs.c:246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:248,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapi/getargs.c:251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/getargs.c:256,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 258
    functionName: test_w_code_invalid
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyArg_ParseTupleAndKeywords
    - PyErr_ExceptionMatches
    - PyDict_DelItemString
    - PyDict_SetItemString
    - PyDict_New
    - PyErr_Format
    - PyTuple_Pack
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_w_code_invalid(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/getargs.c:264,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapi/getargs.c:264,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/getargs.c:265,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testcapi/getargs.c:265,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/getargs.c:268,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapi/getargs.c:270,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:274,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(args))
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/cpython/Modules/_testcapi/getargs.c
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/cpython/Modules/_testcapi/getargs.c
    constantsTouched: []
    func_position:
      end: 280
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 280
    functionName: getargs_empty
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - assert
    - PyDict_GET_SIZE
    - PyDict_CheckExact
    - PyArg_ParseTuple
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromLong
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_empty(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:287,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/getargs.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: getargs_tuple
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:301,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/getargs.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 310
    functionName: getargs_keywords
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_keywords(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapi/getargs.c:321,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/getargs.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 327
    functionName: getargs_keyword_only
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_keyword_only(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapi/getargs.c:339,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/getargs.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 345
    functionName: getargs_positional_only_and_keywords
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ngetargs_positional_only_and_keywords(PyObject *self, PyObject
      *args,\n                                     PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:354,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 358
    functionName: getargs_b
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_b(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:364,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 368
    functionName: getargs_B
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_B(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:374,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: getargs_h
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:384,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: getargs_H
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_H(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:394,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: getargs_I
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_I(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:404,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: getargs_k
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_k(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:414,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: getargs_i
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:424,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 428
    functionName: getargs_l
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:434,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/getargs.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 438
    functionName: getargs_n
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:444,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: getargs_p
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:454,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 458
    functionName: getargs_L
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_L(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:464,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: getargs_K
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_K(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:474,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapi/getargs.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 478
    functionName: getargs_f
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:484,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapi/getargs.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 488
    functionName: getargs_d
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:494,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/_testcapi/getargs.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 498
    functionName: getargs_D
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:504,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 508
    functionName: getargs_S
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_S(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:514,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: getargs_Y
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_Y(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:524,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 528
    functionName: getargs_U
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_U(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:534,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: getargs_c
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:544,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/getargs.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 548
    functionName: getargs_C
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:554,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testcapi/getargs.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: getargs_s
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:565,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:568,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/getargs.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 571
    functionName: getargs_s_star
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_s_star(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:578,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 582
    functionName: getargs_s_hash
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:588,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testcapi/getargs.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: getargs_z
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:602,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:606,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/getargs.c:609,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/getargs.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 613
    functionName: getargs_z_star
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_z_star(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:620,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 627
    functionName: getargs_z_hash
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:633,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testcapi/getargs.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 637
    functionName: getargs_y
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.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/cpython/Modules/_testcapi/getargs.c:643,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:646,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/getargs.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 649
    functionName: getargs_y_star
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_y_star(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:656,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 660
    functionName: getargs_y_hash
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_y_hash(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:669,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testcapi/getargs.c:672,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testcapi/getargs.c:675,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/getargs.c:676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 678
    functionName: getargs_es
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyMem_Free
    - PyBytes_FromString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_es(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:687,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testcapi/getargs.c:690,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testcapi/getargs.c:693,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/getargs.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 696
    functionName: getargs_et
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyMem_Free
    - PyBytes_FromString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_et(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:707,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_testcapi/getargs.c:711,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/getargs.c:712,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testcapi/getargs.c:714,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:717,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/getargs.c:719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 722
    functionName: getargs_es_hash
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_es_hash(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:733,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_testcapi/getargs.c:737,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/getargs.c:738,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testcapi/getargs.c:740,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/getargs.c:743,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/getargs.c:745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 748
    functionName: getargs_et_hash
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_et_hash(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/getargs.c:756,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapi/getargs.c:758,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/getargs.c:759,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/getargs.c:763,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/getargs.c:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 766
    functionName: gh_99240_clear_args
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_Clear
    - PyMem_Free
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gh_99240_clear_args(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/getargs.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 825
    functionName: _PyTestCapi_Init_GetArgs
    functionSourceFile: /src/cpython/Modules/_testcapi/getargs.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_GetArgs(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/heaptype.c:11,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:12,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - meta
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 32
    functionName: pytype_fromspec_meta
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - PyType_FromMetaclass
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pytype_fromspec_meta(PyObject* self, PyObject *meta)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:64,1
    - Dst: PyType_FromSpecWithBases::PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:74,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:79,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_testcapi/heaptype.c:85,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Modules/_testcapi/heaptype.c:89,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:94,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:99,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:102,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:103,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:105,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 107
    functionName: test_from_spec_metatype_inheritance
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyType_FromSpecWithBases::PyType_FromSpecWithBases
    - PyErr_SetString
    - PySequence_Contains
    - PyObject_CallMethod
    - Py_NewRef
    - PyType_FromSpecWithBases
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_from_spec_metatype_inheritance(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:125,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:129,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_testcapi/heaptype.c:133,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_testcapi/heaptype.c:138,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:143,1
    - Dst: PyType_FromSpecWithBases::PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:153,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapi/heaptype.c:159,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/heaptype.c:160,1
    - Dst: PyException_GetArgs
      Src: /src/cpython/Modules/_testcapi/heaptype.c:161,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testcapi/heaptype.c:162,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testcapi/heaptype.c:162,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:163,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:167,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/heaptype.c:167,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:168,1
    - Dst: PyUnicode_Contains
      Src: /src/cpython/Modules/_testcapi/heaptype.c:172,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:177,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:181,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:184,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:185,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:188,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:189,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:190,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:191,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:192,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:193,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 195
    functionName: test_from_spec_invalid_metatype_inheritance
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallFunction
    - PyErr_GetRaisedException
    - PyTuple_Check
    - PyType_FromSpecWithBases::PyType_FromSpecWithBases
    - PyErr_SetString
    - Py_NewRef
    - PyErr_ExceptionMatches
    - PyUnicode_Contains
    - PyType_FromSpecWithBases
    - PyException_GetArgs
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PyTuple_Pack
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_from_spec_invalid_metatype_inheritance(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: simple_str
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simple_str(PyObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:224,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/heaptype.c:226,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:229,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/heaptype.c:231,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/heaptype.c:234,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:236,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/heaptype.c:238,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/heaptype.c:241,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:247,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/heaptype.c:249,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/heaptype.c:271,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:272,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/heaptype.c:274,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:275,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/heaptype.c:277,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:278,1
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/heaptype.c:280,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:281,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:288,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapi/heaptype.c:288,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:289,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapi/heaptype.c:289,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testcapi/heaptype.c:289,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:290,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapi/heaptype.c:290,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testcapi/heaptype.c:290,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:291,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapi/heaptype.c:291,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapi/heaptype.c:294,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_testcapi/heaptype.c:298,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:302,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapi/heaptype.c:302,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testcapi/heaptype.c:302,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/heaptype.c:303,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:305,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:307,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:308,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:309,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:310,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:311,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:312,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:313,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (strcmp(class_tp->tp_name, "testcapi._Test") == 0)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (strcmp(PyUnicode_AsUTF8(class_ht->ht_name), "_Test") == 0)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (strcmp(class_tp->tp_doc, "a test class") == 0)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (strcmp(PyUnicode_AsUTF8(class_ht->ht_qualname), "_Test") == 0)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (strcmp(PyUnicode_AsUTF8(obj), "<test>") == 0)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 315
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 315
    functionName: test_type_from_ephemeral_spec
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - PyObject_Str
    - memset
    - Py_NewRef
    - PyMem_Free
    - strcmp
    - PyUnicode_AsUTF8
    - PyMem_New
    - memcpy
    - Py_CLEAR
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_type_from_ephemeral_spec(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/heaptype.c:356,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:357,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - variant_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 372
    functionName: create_type_from_repeated_slots
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_type_from_repeated_slots(PyObject *self, PyObject *variant_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:378,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/heaptype.c:378,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - base
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(base))
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 386
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 386
    functionName: make_immutable_type_with_base
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyType_FromSpecWithBases
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_immutable_type_with_base(PyObject *self, PyObject *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:391,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/heaptype.c:391,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - base
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(base))
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: make_type_with_base
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyType_FromSpecWithBases
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_type_with_base(PyObject *self, PyObject *base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Modules/_testcapi/heaptype.c:405,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: pyobject_getitemdata
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - PyObject_GetItemData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_getitemdata(PyObject *self, PyObject *o)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/heaptype.c:418,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:421,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:433,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/heaptype.c:437,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:438,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:439,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:441,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 457
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 457
    functionName: create_type_with_token
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsVoidPtr
    - PyType_FromMetaclass
    - PyType_GetSlot
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_type_with_token(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/heaptype.c:462,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:463,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: get_tp_token
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_GetSlot
    - PyErr_Occurred
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tp_token(PyObject *self, PyObject *type)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/heaptype.c:474,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:484,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/heaptype.c:484,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:489,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_testcapi/heaptype.c:493,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_testcapi/heaptype.c:497,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:504,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/heaptype.c:507,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:511,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/heaptype.c:515,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/heaptype.c:516,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:519,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:520,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (result == NULL)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 522
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 522
    functionName: pytype_getbasebytoken
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_XDECREF
    - PyTuple_New
    - PyArg_ParseTuple
    - PyTuple_SET_ITEM
    - PyLong_AsVoidPtr
    - PyType_GetBaseByToken
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pytype_getbasebytoken(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:527,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 529
    functionName: pytype_getmodulebydef
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pytype_getmodulebydef(PyObject *self, PyObject *type)'
  - 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: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: heapctype_init
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int heapctype_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:619,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: heapgcctype_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int heapgcctype_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:627,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:628,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_testcapi/heaptype.c:629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 631
    functionName: heapgcctype_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void heapgcctype_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:658,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: heapctype_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_Free
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void heapctype_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heapctype_init
      Src: /src/cpython/Modules/_testcapi/heaptype.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 698
    functionName: heapctypesubclass_init
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - heapctype_init
    linkageType: ''
    returnType: int
    signature: int heapctypesubclass_init(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_testcapi/heaptype.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 739
    functionName: heapctypewithbuffer_getbuffer
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    linkageType: ''
    returnType: int
    signature: int heapctypewithbuffer_getbuffer(PyObject *op, Py_buffer *view, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (view->obj == (void*) self)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: heapctypewithbuffer_releasebuffer
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void heapctypewithbuffer_releasebuffer(PyObject *op, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/heaptype.c:771,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:771,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/heaptype.c:772,1
    - Dst: base_init
      Src: /src/cpython/Modules/_testcapi/heaptype.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 775
    functionName: heapctypesubclasswithfinalizer_init
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_GetSlot
    - base_init
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int heapctypesubclasswithfinalizer_init(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/heaptype.c:783,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testcapi/heaptype.c:788,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:792,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:796,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:801,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/heaptype.c:804,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:804,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:811,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/heaptype.c:812,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:812,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:816,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:821,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:822,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:823,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/heaptype.c:826,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 827
    functionName: heapctypesubclasswithfinalizer_finalize
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_GetRaisedException
    - PyState_FindModule
    - PyLong_FromSsize_t
    - PyObject_SetAttrString
    - Py_REFCNT
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void heapctypesubclasswithfinalizer_finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_new
      Src: /src/cpython/Modules/_testcapi/heaptype.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tp
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 861
    functionName: heap_ctype_metaclass_custom_tp_new
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - tp_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heap_ctype_metaclass_custom_tp_new(PyTypeObject *tp, PyObject *args, PyObject
      *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:892,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:893,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 896
    functionName: heapctypewithdict_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - PyObject_Free
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void heapctypewithdict_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:935,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:935,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_testcapi/heaptype.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 937
    functionName: heapmanaged_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    - PyObject_VisitManagedDict
    linkageType: ''
    returnType: int
    signature: int heapmanaged_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Modules/_testcapi/heaptype.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 944
    functionName: heapmanaged_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearManagedDict
    linkageType: ''
    returnType: int
    signature: int heapmanaged_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:950,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Modules/_testcapi/heaptype.c:951,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:952,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_testcapi/heaptype.c:953,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 955
    functionName: heapmanaged_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_ClearManagedDict
    - PyObject_GC_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapmanaged_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:977,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_testcapi/heaptype.c:978,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:979,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_testcapi/heaptype.c:980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 982
    functionName: heapctypewithmanagedweakref_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_ClearWeakRefs
    - PyObject_GC_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctypewithmanagedweakref_dealloc(PyObject* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1036,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1038,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1039,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1042
    functionName: heapctypewithweakref_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Free
    - PyObject_ClearWeakRefs
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctypewithweakref_dealloc(PyObject *op)
  - 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: 1085
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1085
    functionName: heapctypesetattr_init
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int heapctypesetattr_init(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1091,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1094
    functionName: heapctypesetattr_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_Free
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void heapctypesetattr_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1100,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1104,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1108,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1114,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1118,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - op
    - attr
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1123
    functionName: heapctypesetattr_setattro
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PyNumber_Long
    - PyObject_RichCompareBool
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int heapctypesetattr_setattro(PyObject *op, PyObject *attr, PyObject
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1166,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1167,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - args_in
    - nargsf
    - kwargs_in
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1180
    functionName: heapctype_vectorcall_vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - PyObject_New
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *heapctype_vectorcall_vectorcall(PyObject *self,\n                                                 PyObject
      *const *args_in,\n                                                 size_t nargsf,\n
      \                                                PyObject *kwargs_in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1185,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1186,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: heapctype_vectorcall_new
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    - PyTuple_GET_SIZE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heapctype_vectorcall_new(PyTypeObject* type, PyObject* args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1194,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1202
    functionName: heapctype_vectorcall_init
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int heapctype_vectorcall_init(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1234,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1235,1
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1245,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1245,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - subtype
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1253
    functionName: HeapCCollection_new
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyObject_GetItemData
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      HeapCCollection_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1260
    functionName: HeapCCollection_length
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t HeapCCollection_length(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1265,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1266,1
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1268,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1273
    functionName: HeapCCollection_item
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyObject_GetItemData
    - Py_NewRef
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      HeapCCollection_item(PyObject *self, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1278,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1282,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1286
    functionName: HeapCCollection_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_VISIT
    - PyObject_GetItemData
    linkageType: ''
    returnType: int
    signature: int HeapCCollection_traverse(PyObject *self, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1291,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1295,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1296,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1301
    functionName: HeapCCollection_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_SET_SIZE
    - Py_CLEAR
    - PyObject_GetItemData
    linkageType: ''
    returnType: int
    signature: int HeapCCollection_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1306,1
    - Dst: HeapCCollection_clear
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1307,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1308,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1311
    functionName: HeapCCollection_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - HeapCCollection_clear
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void HeapCCollection_dealloc(PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1335,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1337,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1347,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1348,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1352,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1353,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1355,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1356,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1358,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1363,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1368,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1369,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1371,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1372,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1374,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1375,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1377,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1378,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1380,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1381,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1383,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1384,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1386,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1387,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1389,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1390,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1392,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1393,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1395,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1396,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1398,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1399,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1401,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1407,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1408,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1410,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1412,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1414,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1416,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1418,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1420,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1422,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1422,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1424,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1436
    functionName: _PyTestCapi_Init_Heaptype
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PyType_FromMetaclass
    - PyType_FromSpec
    - PyType_FromSpecWithBases
    - PyModule_GetDef
    - ADD
    - PyTuple_Pack
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Heaptype(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1346
    functionName: ADD
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD(name, value)
  - 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: PyCodeLikeObject_CAST
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCodeLikeObject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:23,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testcapi/monitoring.c:26,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapi/monitoring.c:31,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/monitoring.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: CodeLike_new
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyMem_Calloc
    - PyMem_Free
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CodeLike_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodeLikeObject_CAST
      Src: /src/cpython/Modules/_testcapi/monitoring.c:46,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/monitoring.c:48,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: CodeLike_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyCodeLikeObject_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void CodeLike_dealloc(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyCodeLikeObject_CAST
      Src: /src/cpython/Modules/_testcapi/monitoring.c:56,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/monitoring.c:61,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/monitoring.c:66,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/monitoring.c:70,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:71,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/monitoring.c:77,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/monitoring.c:81,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:82,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/monitoring.c:87,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_testcapi/monitoring.c:91,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:94,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:95,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 97
    functionName: CodeLike_str
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_Join
    - PyList_Append
    - PyUnicode_FromFormat
    - PyCodeLikeObject_CAST
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CodeLike_str(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: RAISE_UNLESS_CODELIKE
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_UNLESS_CODELIKE(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAISE_UNLESS_CODELIKE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:121,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:123,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/monitoring.c:127,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/monitoring.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - codelike
    - offset
    - exc
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (offset >= 0 && offset < cl->num_events)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: setup_fire
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - RAISE_UNLESS_CODELIKE
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyMonitoringState
    signature: 'PyMonitoringState *

      setup_fire(PyObject *codelike, int offset, PyObject *exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:139,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/monitoring.c:139,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:140,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/monitoring.c:140,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:144,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/monitoring.c:144,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapi/monitoring.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - res
    - state
    - exception
    argTypes:
    - int
    - PyMonitoringState*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    - condition: (((PyObject*)Py_TYPE(exception)) == PyErr_Occurred())
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: teardown_fire
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_Clear
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int teardown_fire(int res, PyMonitoringState *state, PyObject *exception)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:155,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:159,1
    - Dst: PyMonitoring_FirePyStartEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:163,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:164,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: fire_event_py_start
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FirePyStartEvent
    - PyArg_ParseTuple
    - teardown_fire
    - RETURN_INT
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_py_start(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:172,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:176,1
    - Dst: PyMonitoring_FirePyResumeEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:180,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:181,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: fire_event_py_resume
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - RETURN_INT
    - teardown_fire
    - PyMonitoring_FirePyResumeEvent
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_py_resume(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:190,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:194,1
    - Dst: PyMonitoring_FirePyReturnEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:198,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:199,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: fire_event_py_return
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyMonitoring_FirePyReturnEvent
    - teardown_fire
    - RETURN_INT
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_py_return(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:208,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:212,1
    - Dst: PyMonitoring_FireCReturnEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:216,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:217,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: fire_event_c_return
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyMonitoring_FireCReturnEvent
    - teardown_fire
    - RETURN_INT
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_c_return(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:226,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:230,1
    - Dst: PyMonitoring_FirePyYieldEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:234,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:235,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 236
    functionName: fire_event_py_yield
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FirePyYieldEvent
    - PyArg_ParseTuple
    - teardown_fire
    - RETURN_INT
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_py_yield(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:244,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:248,1
    - Dst: PyMonitoring_FireCallEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:252,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:253,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 254
    functionName: fire_event_call
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - teardown_fire
    - RETURN_INT
    - PyMonitoring_FireCallEvent
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_call(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:261,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:265,1
    - Dst: PyMonitoring_FireLineEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:269,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:270,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 271
    functionName: fire_event_line
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - teardown_fire
    - RETURN_INT
    - PyMonitoring_FireLineEvent
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_line(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:279,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:283,1
    - Dst: PyMonitoring_FireJumpEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:287,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:288,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: fire_event_jump
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - teardown_fire
    - RETURN_INT
    - PyMonitoring_FireJumpEvent
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_jump(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:297,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:301,1
    - Dst: PyMonitoring_FireBranchRightEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:305,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:306,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 307
    functionName: fire_event_branch_right
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FireBranchRightEvent
    - PyArg_ParseTuple
    - teardown_fire
    - RETURN_INT
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_branch_right(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:315,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:319,1
    - Dst: PyMonitoring_FireBranchLeftEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:323,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:324,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 325
    functionName: fire_event_branch_left
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyMonitoring_FireBranchLeftEvent
    - teardown_fire
    - RETURN_INT
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_branch_left(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:333,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:336,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:337,1
    - Dst: PyMonitoring_FirePyThrowEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:341,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:342,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 343
    functionName: fire_event_py_throw
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FirePyThrowEvent
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - teardown_fire
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_py_throw(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:351,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:354,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:355,1
    - Dst: PyMonitoring_FireRaiseEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:359,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:360,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 361
    functionName: fire_event_raise
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - teardown_fire
    - setup_fire
    - PyMonitoring_FireRaiseEvent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_raise(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:369,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:372,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:373,1
    - Dst: PyMonitoring_FireCRaiseEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:377,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:378,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 379
    functionName: fire_event_c_raise
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FireCRaiseEvent
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - teardown_fire
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_c_raise(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:387,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:390,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:391,1
    - Dst: PyMonitoring_FireReraiseEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:395,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:396,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 397
    functionName: fire_event_reraise
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - setup_fire
    - teardown_fire
    - PyMonitoring_FireReraiseEvent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_reraise(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:405,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:408,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:409,1
    - Dst: PyMonitoring_FireExceptionHandledEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:413,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:414,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 415
    functionName: fire_event_exception_handled
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - teardown_fire
    - PyMonitoring_FireExceptionHandledEvent
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_exception_handled(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:423,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:426,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:427,1
    - Dst: PyMonitoring_FirePyUnwindEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:431,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:432,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 433
    functionName: fire_event_py_unwind
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyMonitoring_FirePyUnwindEvent
    - RETURN_INT
    - teardown_fire
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_py_unwind(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:441,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:444,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:446,1
    - Dst: PyMonitoring_FireStopIterationEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:450,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:451,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 452
    functionName: fire_event_stop_iteration
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FireStopIterationEvent
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - teardown_fire
    - setup_fire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fire_event_stop_iteration(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testcapi/monitoring.c:461,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:463,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:468,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:469,1
    - Dst: RAISE_UNLESS_CODELIKE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:473,1
    - Dst: PyMonitoring_EnterScope
      Src: /src/cpython/Modules/_testcapi/monitoring.c:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (num_events == 2)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    constantsTouched: []
    func_position:
      end: 484
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 484
    functionName: enter_scope
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RAISE_UNLESS_CODELIKE
    - assert
    - PyArg_ParseTuple
    - PyTuple_Size
    - PyMonitoring_EnterScope
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enter_scope(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMonitoring_ExitScope
      Src: /src/cpython/Modules/_testcapi/monitoring.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: exit_scope
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_ExitScope
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      exit_scope(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/monitoring.c:519,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/monitoring.c:522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:523,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/monitoring.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 530
    functionName: _PyTestCapi_Init_Monitoring
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_DECREF
    - PyModule_AddObjectRef
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Monitoring(PyObject *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:13,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/bytes.c:16,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:18,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:19,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_testcapi/bytes.c:19,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/bytes.c:20,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testcapi/bytes.c:20,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/bytes.c:24,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testcapi/bytes.c:24,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testcapi/bytes.c:24,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testcapi/bytes.c:24,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testcapi/bytes.c:28,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_testcapi/bytes.c:30,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:31,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    - condition: (PyBytes_CheckExact(obj))
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    - condition: (obj == NULL)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    - condition: (obj != NULL)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    constantsTouched: []
    func_position:
      end: 37
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 37
    functionName: bytes_resize
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - memcpy
    - PyBytes_Size
    - PyBytes_CheckExact
    - Py_XINCREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_resize(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:45,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/bytes.c:48,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/bytes.c:49,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_testcapi/bytes.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: bytes_join
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_Join
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_join(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/bytes.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: _PyTestCapi_Init_Bytes
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Bytes(PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testcapi/config.c:8,1
    - Dst: PyConfig_Get
      Src: /src/cpython/Modules/_testcapi/config.c:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - name_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 13
    functionName: _testcapi_config_get
    functionSourceFile: /src/cpython/Modules/_testcapi/config.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyConfig_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_config_get(PyObject *module, PyObject *name_obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testcapi/config.c:20,1
    - Dst: PyConfig_GetInt
      Src: /src/cpython/Modules/_testcapi/config.c:25,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/config.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - name_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: _testcapi_config_getint
    functionSourceFile: /src/cpython/Modules/_testcapi/config.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyConfig_GetInt
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_config_getint(PyObject *module, PyObject *name_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_Names
      Src: /src/cpython/Modules/_testcapi/config.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: _testcapi_config_names
    functionSourceFile: /src/cpython/Modules/_testcapi/config.c
    functionUses: 0
    functionsReached:
    - PyConfig_Names
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_config_names(PyObject *module, PyObject* Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/config.c:44,1
    - Dst: PyConfig_Set
      Src: /src/cpython/Modules/_testcapi/config.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: _testcapi_config_set
    functionSourceFile: /src/cpython/Modules/_testcapi/config.c
    functionUses: 0
    functionsReached:
    - PyConfig_Set
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_config_set(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/config.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: _PyTestCapi_Init_Config
    functionSourceFile: /src/cpython/Modules/_testcapi/config.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Config(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/tuple.c:8,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/tuple.c:9,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/tuple.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: tuple_get_size
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_get_size(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/tuple.c:17,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/tuple.c:20,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/tuple.c:21,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: tuple_get_item
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyTuple_GET_ITEM
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_get_item(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/tuple.c:27,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapi/tuple.c:28,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:33,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/tuple.c:33,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: tuple_copy
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_copy(PyObject *tuple)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/tuple.c:43,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/tuple.c:46,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapi/tuple.c:47,1
    - Dst: tuple_copy
      Src: /src/cpython/Modules/_testcapi/tuple.c:48,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:53,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:54,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/tuple.c:54,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/tuple.c:55,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/tuple.c:59,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:61,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:62,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/tuple.c:62,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/tuple.c:63,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/tuple.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: tuple_set_item
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 0
    functionsReached:
    - tuple_copy
    - Py_DECREF
    - NULLABLE
    - PyArg_ParseTuple
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_set_item(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/tuple.c:74,1
    - Dst: tuple_copy
      Src: /src/cpython/Modules/_testcapi/tuple.c:78,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/tuple.c:84,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testcapi/tuple.c:85,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Modules/_testcapi/tuple.c:87,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/tuple.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tup == NULL)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_testcapi/tuple.c
    constantsTouched: []
    func_position:
      end: 93
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 93
    functionName: _tuple_resize
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 0
    functionsReached:
    - tuple_copy
    - NULLABLE
    - PyArg_ParseTuple
    - _PyTuple_Resize
    - Py_XINCREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tuple_resize(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/tuple.c:100,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/tuple.c:103,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: _check_tuple_item_is_NULL
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyTuple_GET_ITEM
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _check_tuple_item_is_NULL(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/tuple.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: _PyTestCapi_Init_Tuple
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Tuple(PyObject *m)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_GetDict
      Src: /src/cpython/Modules/_testcapi/code.c:10,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/code.c:11,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Modules/_testcapi/code.c:14,1
    - Dst: PyUnstable_Eval_RequestCodeExtraIndex
      Src: /src/cpython/Modules/_testcapi/code.c:19,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/code.c:20,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/code.c:23,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testcapi/code.c:27,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/code.c:28,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testcapi/code.c:34,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/code.c:35,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/code.c:36,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp_dict)
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/cpython/Modules/_testcapi/code.c
    constantsTouched: []
    func_position:
      end: 44
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 44
    functionName: get_code_extra_index
    functionSourceFile: /src/cpython/Modules/_testcapi/code.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyDict_GetItemStringRef
    - PyDict_SetItemString
    - PyUnstable_Eval_RequestCodeExtraIndex
    - assert
    - PyInterpreterState_GetDict
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_code_extra_index(PyInterpreterState* interp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapi/code.c:53,1
    - Dst: get_code_extra_index
      Src: /src/cpython/Modules/_testcapi/code.c:57,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/code.c:58,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_testcapi/code.c:64,1
    - Dst: PyFunction_GetCode
      Src: /src/cpython/Modules/_testcapi/code.c:69,1
    - Dst: PyUnstable_Code_GetExtra
      Src: /src/cpython/Modules/_testcapi/code.c:76,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/code.c:80,1
    - Dst: PyUnstable_Code_SetExtra
      Src: /src/cpython/Modules/_testcapi/code.c:83,1
    - Dst: PyUnstable_Code_GetExtra
      Src: /src/cpython/Modules/_testcapi/code.c:89,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/code.c:93,1
    - Dst: PyUnstable_Code_SetExtra
      Src: /src/cpython/Modules/_testcapi/code.c:95,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/code.c:99,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/code.c:101,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(callable)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (extra == NULL)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/cpython/Modules/_testcapi/code.c
    - condition: ((uintptr_t)extra == 77)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/cpython/Modules/_testcapi/code.c
    constantsTouched: []
    func_position:
      end: 103
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 103
    functionName: test_code_extra
    functionSourceFile: /src/cpython/Modules/_testcapi/code.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - Py_XDECREF
    - PyImport_ImportModuleAttrString
    - PyUnstable_Code_GetExtra
    - PyUnstable_Code_SetExtra
    - get_code_extra_index
    - PyErr_Occurred
    - Py_NewRef
    - PyFunction_GetCode
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_code_extra(PyObject* self, PyObject *Py_UNUSED(callable))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/code.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: _PyTestCapi_Init_Code
    functionSourceFile: /src/cpython/Modules/_testcapi/code.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Code(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/set.c:7,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapi/set.c:8,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/set.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 9
    functionName: set_get_size
    functionSourceFile: /src/cpython/Modules/_testcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_GET_SIZE
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_get_size(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/set.c:15,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/set.c:22,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/set.c:22,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/set.c:23,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_testcapi/set.c:23,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/_testcapi/set.c:26,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_testcapi/set.c:27,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/set.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_SIZE(obj) == 0)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/cpython/Modules/_testcapi/set.c
    - condition: (Py_TYPE(obj) == &PyList_Type)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/cpython/Modules/_testcapi/set.c
    constantsTouched: []
    func_position:
      end: 31
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 31
    functionName: test_set_type_size
    functionSourceFile: /src/cpython/Modules/_testcapi/set.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_SET_SIZE
    - Py_DECREF
    - Py_SIZE
    - Py_SET_TYPE
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_set_type_size(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/set.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: _PyTestCapi_Init_Set
    functionSourceFile: /src/cpython/Modules/_testcapi/set.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Set(PyObject *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:24,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:26,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - args
    - stack
    - nargs
    argTypes:
    - PyObject*
    - PyObject***
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: fastcall_args
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int fastcall_args(PyObject *args, PyObject ***stack, Py_ssize_t *nargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fastcall_args
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:51,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:58,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:59,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - func
    - func_args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: _testcapi_pyobject_fastcalldict_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - PyErr_SetString
    - fastcall_args
    - PyObject_VectorcallDict
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_pyobject_fastcalldict_impl(PyObject *module,
      PyObject *func,\n                                     PyObject *func_args, PyObject
      *kwargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fastcall_args
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:82,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:89,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:90,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:92,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:98,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - module
    - func
    - func_args
    - kwnames
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: _testcapi_pyobject_vectorcall_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyErr_SetString
    - PyObject_Vectorcall
    - fastcall_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_pyobject_vectorcall_impl(PyObject *module, PyObject
      *func,\n                                   PyObject *func_args, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:108,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: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: override_vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\noverride_vectorcall(PyObject *callable, PyObject *const
      *args, size_t nargsf,\n                    PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:114,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:115,1
    - Dst: PyFunction_SetVectorcall
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: function_setvectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFunction_Check
    - PyFunction_SetVectorcall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_setvectorcall(PyObject *self, PyObject *func)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:135,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:136,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:139,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:140,1
    - Dst: PyVectorcall_Call
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - module
    - func
    - argstuple
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: _testcapi_pyvectorcall_call_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyErr_SetString
    - PyDict_Check
    - PyVectorcall_Call
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_pyvectorcall_call_impl(PyObject *module, PyObject
      *func,\n                                 PyObject *argstuple, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: VectorCallClass_tpcall
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      VectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:157,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: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: VectorCallClass_vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nVectorCallClass_vectorcall(PyObject *callable,\n                            PyObject
      *const *args,\n                            size_t nargsf,\n                            PyObject
      *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:180,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:181,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 195
    functionName: _testcapi_VectorCallClass_set_vectorcall_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_VectorCallClass_set_vectorcall_impl(PyObject
      *self,\n                                              PyTypeObject *type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - base
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 244
    functionName: _testcapi_make_vectorcall_class_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyType_FromSpecWithBases
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_make_vectorcall_class_impl(PyObject *module, PyTypeObject *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: _testcapi_has_vectorcall_flag_impl
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyType_HasFeature
    linkageType: ''
    returnType: int
    signature: int _testcapi_has_vectorcall_flag_impl(PyObject *module, PyTypeObject
      *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:285,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: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: MethodDescriptor_vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.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/cpython/Modules/_testcapi/vectorcall.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: MethodDescriptor_new
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.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_NewRef
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:300,1
    - Dst: PyMethod_New
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - func
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: func_descr_get
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_descr_get(PyObject *func, PyObject *obj, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - func
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: nop_descr_get
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nop_descr_get(PyObject *func, PyObject *obj, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: call_return_args
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_return_args(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 358
    functionName: MethodDescriptor2_new
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MethodDescriptor2_new(PyTypeObject* type, PyObject* args, PyObject *kw)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:373,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:377,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:380,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:385,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:388,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:393,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:396,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:401,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/vectorcall.c:404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 409
    functionName: _PyTestCapi_Init_Vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/vectorcall.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - PyType_Ready
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Vectorcall(PyObject *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/time.c:7,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/time.c:8,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_testcapi/time.c:12,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/time.c:13,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapi/time.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tp
    - obj
    argTypes:
    - PyTime_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 20
    functionName: pytime_from_nanoseconds
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongLong
    - PyErr_Occurred
    - Py_BUILD_ASSERT
    - PyLong_Check
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int pytime_from_nanoseconds(PyTime_t *tp, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/time.c:27,1
    - Dst: pytime_from_nanoseconds
      Src: /src/cpython/Modules/_testcapi/time.c:31,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_testcapi/time.c:34,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapi/time.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: test_pytime_assecondsdouble
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - pytime_from_nanoseconds
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_assecondsdouble(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapi/time.c:42,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_testcapi/time.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: pytime_as_float
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pytime_as_float(PyTime_t t)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/_testcapi/time.c:51,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:53,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:56,1
    - Dst: pytime_as_float
      Src: /src/cpython/Modules/_testcapi/time.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (t == 0)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (res == 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Modules/_testcapi/time.c
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: test_pytime_monotonic
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - pytime_as_float
    - PyTime_Monotonic
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_monotonic(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Modules/_testcapi/time.c:67,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:70,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/time.c:71,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:74,1
    - Dst: pytime_as_float
      Src: /src/cpython/Modules/_testcapi/time.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (t == 0)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (res == 0)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/cpython/Modules/_testcapi/time.c
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: test_pytime_monotonic_raw
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - pytime_as_float
    - assert
    - PyErr_SetString
    - PyTime_MonotonicRaw
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_monotonic_raw(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_PerfCounter
      Src: /src/cpython/Modules/_testcapi/time.c:83,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:85,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:88,1
    - Dst: pytime_as_float
      Src: /src/cpython/Modules/_testcapi/time.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (t == 0)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (res == 0)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/cpython/Modules/_testcapi/time.c
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: test_pytime_perf_counter
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - PyTime_PerfCounter
    - pytime_as_float
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_perf_counter(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Modules/_testcapi/time.c:99,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/time.c:103,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:106,1
    - Dst: pytime_as_float
      Src: /src/cpython/Modules/_testcapi/time.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (res == 0)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (t == 0)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Modules/_testcapi/time.c
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: test_pytime_perf_counter_raw
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - pytime_as_float
    - PyErr_SetString
    - PyTime_PerfCounterRaw
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_perf_counter_raw(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Time
      Src: /src/cpython/Modules/_testcapi/time.c:115,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:117,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:120,1
    - Dst: pytime_as_float
      Src: /src/cpython/Modules/_testcapi/time.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (t == 0)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (res == 0)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Modules/_testcapi/time.c
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: test_pytime_time
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - pytime_as_float
    - PyTime_Time
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_time(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_TimeRaw
      Src: /src/cpython/Modules/_testcapi/time.c:131,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:134,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/time.c:135,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/time.c:138,1
    - Dst: pytime_as_float
      Src: /src/cpython/Modules/_testcapi/time.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (t == 0)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (res == 0)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Modules/_testcapi/time.c
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: test_pytime_time_raw
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 0
    functionsReached:
    - pytime_as_float
    - PyErr_SetString
    - PyTime_TimeRaw
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_time_raw(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/time.c:157,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapi/time.c:160,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapi/time.c:161,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapi/time.c:161,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapi/time.c:164,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapi/time.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: _PyTestCapi_Init_Time
    functionSourceFile: /src/cpython/Modules/_testcapi/time.c
    functionUses: 1
    functionsReached:
    - Py_BUILD_ASSERT
    - PyLong_FromLongLong
    - PyModule_AddObject
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Time(PyObject *m)
  - 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: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: test_with_docstring
    functionSourceFile: /src/cpython/Modules/_testcapi/docstring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_with_docstring(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/docstring.c:194,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/docstring.c:197,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/docstring.c:200,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapi/docstring.c:203,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/docstring.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: _PyTestCapi_Init_Docstring
    functionSourceFile: /src/cpython/Modules/_testcapi/docstring.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - PyModule_AddObject
    - PyModule_AddFunctions
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Docstring(PyObject *mod)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:27,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:30,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:31,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:34,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:35,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:39,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:40,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:44,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:45,1
    - Dst: _testcapi_float_pack_impl
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:48,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 52
    functionName: _testcapi_float_pack
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/float.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyLong_AsInt
    - PyErr_Occurred
    - PyFloat_CheckExact
    - _testcapi_float_pack_impl
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_float_pack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:75,1
    - Dst: _testcapi_float_unpack_impl
      Src: /src/cpython/Modules/_testcapi/clinic/float.c.h:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: _testcapi_float_unpack
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/float.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _testcapi_float_unpack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_float_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:24,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:25,1
    - Dst: _testcapi_pyfile_newstdprinter_impl
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: _testcapi_pyfile_newstdprinter
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/file.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _testcapi_pyfile_newstdprinter_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyfile_newstdprinter(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:55,1
    - Dst: _testcapi_py_fopen_impl
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: _testcapi_py_fopen
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/file.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _testcapi_py_fopen_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_py_fopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:85,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:89,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:90,1
    - Dst: _testcapi_py_universalnewlinefgets_impl
      Src: /src/cpython/Modules/_testcapi/clinic/file.c.h:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: _testcapi_py_universalnewlinefgets
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/file.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _testcapi_py_universalnewlinefgets_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_py_universalnewlinefgets(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:25,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:28,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:29,1
    - Dst: _testcapi_watch_dict_impl
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: _testcapi_watch_dict
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/watchers.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _testcapi_watch_dict_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_watch_dict(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:57,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:60,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:61,1
    - Dst: _testcapi_unwatch_dict_impl
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: _testcapi_unwatch_dict
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/watchers.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _testcapi_unwatch_dict_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_unwatch_dict(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:89,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:92,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:93,1
    - Dst: _testcapi_watch_type_impl
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: _testcapi_watch_type
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/watchers.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _testcapi_watch_type_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_watch_type(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:121,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:125,1
    - Dst: _testcapi_unwatch_type_impl
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: _testcapi_unwatch_type
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/watchers.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _testcapi_unwatch_type_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_unwatch_type(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:154,1
    - Dst: _testcapi_set_func_defaults_via_capi_impl
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: _testcapi_set_func_defaults_via_capi
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/watchers.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _testcapi_set_func_defaults_via_capi_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_set_func_defaults_via_capi(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:184,1
    - Dst: _testcapi_set_func_kwdefaults_via_capi_impl
      Src: /src/cpython/Modules/_testcapi/clinic/watchers.c.h:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: _testcapi_set_func_kwdefaults_via_capi
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/watchers.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_set_func_kwdefaults_via_capi_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_set_func_kwdefaults_via_capi(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:38,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:45,1
    - Dst: _testcapi_exception_print_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: _testcapi_exception_print
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    - _testcapi_exception_print_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_exception_print(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:84,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:86,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:86,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:86,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:86,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:103,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:109,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:114,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:115,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:119,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:123,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:124,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:131,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:132,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:136,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:141,1
    - Dst: _testcapi_make_exception_with_doc_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:156,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 160
    functionName: _testcapi_make_exception_with_doc
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_make_exception_with_doc_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_make_exception_with_doc(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:180,1
    - Dst: _testcapi_exc_set_object_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: _testcapi_exc_set_object
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _testcapi_exc_set_object_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_exc_set_object(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:210,1
    - Dst: _testcapi_exc_set_object_fetch_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 219
    functionName: _testcapi_exc_set_object_fetch
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_exc_set_object_fetch_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_exc_set_object_fetch(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:241,1
    - Dst: _testcapi_err_setstring_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 249
    functionName: _testcapi_err_setstring
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _testcapi_err_setstring_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_err_setstring(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:273,1
    - Dst: _testcapi_err_setfromerrnowithfilename_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 281
    functionName: _testcapi_err_setfromerrnowithfilename
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_err_setfromerrnowithfilename_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_err_setfromerrnowithfilename(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:301,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:305,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:306,1
    - Dst: _testcapi_raise_exception_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: _testcapi_raise_exception
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _testcapi_raise_exception_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_raise_exception(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testcapi_raise_memoryerror_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: _testcapi_raise_memoryerror
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_raise_memoryerror_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_raise_memoryerror(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:351,1
    - Dst: _testcapi_fatal_error_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 359
    functionName: _testcapi_fatal_error
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _testcapi_fatal_error_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_fatal_error(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:381,1
    - Dst: _testcapi_set_exc_info_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 391
    functionName: _testcapi_set_exc_info
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _testcapi_set_exc_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_set_exc_info(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:421,1
    - Dst: _testcapi_traceback_print_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 430
    functionName: _testcapi_traceback_print
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_traceback_print_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_traceback_print(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:452,1
    - Dst: _testcapi_unstable_exc_prep_reraise_star_impl
      Src: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 461
    functionName: _testcapi_unstable_exc_prep_reraise_star
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_unstable_exc_prep_reraise_star_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_unstable_exc_prep_reraise_star(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:27,1
    - Dst: _testcapi_pyobject_fastcalldict_impl
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 37
    functionName: _testcapi_pyobject_fastcalldict
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_pyobject_fastcalldict_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyobject_fastcalldict(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:59,1
    - Dst: _testcapi_pyobject_vectorcall_impl
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 69
    functionName: _testcapi_pyobject_vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _testcapi_pyobject_vectorcall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyobject_vectorcall(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:91,1
    - Dst: _testcapi_pyvectorcall_call_impl
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 105
    functionName: _testcapi_pyvectorcall_call
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_pyvectorcall_call_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyvectorcall_call(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:126,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:127,1
    - Dst: _testcapi_VectorCallClass_set_vectorcall_impl
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: _testcapi_VectorCallClass_set_vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_VectorCallClass_set_vectorcall_impl
    - PyObject_TypeCheck
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_VectorCallClass_set_vectorcall(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:158,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:164,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:165,1
    - Dst: _testcapi_make_vectorcall_class_impl
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: _testcapi_make_vectorcall_class
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h
    functionUses: 0
    functionsReached:
    - _testcapi_make_vectorcall_class_impl
    - _PyArg_CheckPositional
    - PyObject_TypeCheck
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_make_vectorcall_class(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:195,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:196,1
    - Dst: _testcapi_has_vectorcall_flag_impl
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:200,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:201,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 208
    functionName: _testcapi_has_vectorcall_flag
    functionSourceFile: /src/cpython/Modules/_testcapi/clinic/vectorcall.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyErr_Occurred
    - _testcapi_has_vectorcall_flag_impl
    - _PyArg_BadArgument
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_has_vectorcall_flag(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:30,1
    - Dst: PyFile_FromFd
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 42
    functionName: pyfile_fromfd
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/file.c
    functionUses: 0
    functionsReached:
    - PyFile_FromFd
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyfile_fromfd(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_GetLine
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - file
    - n
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: _testcapi_pyfile_getline_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/file.c
    functionUses: 0
    functionsReached:
    - PyFile_GetLine
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyfile_getline_impl(PyObject *module, PyObject *file, int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:77,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:78,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:79,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - file
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: _testcapi_pyfile_writeobject_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/file.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteObject
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testcapi_pyfile_writeobject_impl(PyObject *module, PyObject
      *obj,\n                                  PyObject *file, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:89,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:92,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:94,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: pyfile_writestring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/file.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyfile_writestring(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:110,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:111,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: _testcapi_pyobject_asfiledescriptor
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/file.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyobject_asfiledescriptor(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/file.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: _PyTestLimitedCAPI_Init_File
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/file.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_File(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:7,1
    - Dst: PyEval_GetFuncName
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: eval_get_func_name
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFuncName
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_get_func_name(PyObject *self, PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:13,1
    - Dst: PyEval_GetFuncDesc
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: eval_get_func_desc
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFuncDesc
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_get_func_desc(PyObject *self, PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:19,1
    - Dst: PyEval_GetLocals
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: eval_getlocals
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetLocals
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_getlocals(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:25,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: eval_getglobals
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetGlobals
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_getglobals(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:31,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: eval_getbuiltins
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetBuiltins
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_getbuiltins(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:37,1
    - Dst: PyEval_GetFrame
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: eval_getframe
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFrame
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_getframe(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetFrameBuiltins
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: eval_getframe_builtins
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFrameBuiltins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_getframe_builtins(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetFrameGlobals
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: eval_getframe_globals
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFrameGlobals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_getframe_globals(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetFrameLocals
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: eval_getframe_locals
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFrameLocals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_getframe_locals(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetRecursionLimit
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:61,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: eval_get_recursion_limit
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - Py_GetRecursionLimit
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_get_recursion_limit(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:69,1
    - Dst: Py_SetRecursionLimit
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: eval_set_recursion_limit
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 0
    functionsReached:
    - Py_SetRecursionLimit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_set_recursion_limit(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/eval.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: _PyTestLimitedCAPI_Init_Eval
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/eval.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Eval(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: raiseTestError
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 5
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raiseTestError(const char* test_name, const char* msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: UNBIND
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNBIND(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: raise_test_long_error
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.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/cpython/Modules/_testlimitedcapi/long.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: _testlimitedcapi_test_long_api_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - TESTNAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_api_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: raise_test_longlong_error
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.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/cpython/Modules/_testlimitedcapi/long.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: _testlimitedcapi_test_longlong_api_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - TESTNAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_longlong_api_impl(PyObject *module)'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:133,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:139,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:142,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:145,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:149,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:154,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:159,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:166,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:169,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:172,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:177,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:182,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:183,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:186,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:189,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:193,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:198,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:203,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:208,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:209,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:212,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:215,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:219,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:224,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:225,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:228,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:231,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:234,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:240,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:243,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:246,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:249,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:254,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:255,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:258,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:261,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:264,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:269,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:270,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:273,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:276,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 120
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 280
    functionName: _testlimitedcapi_test_long_and_overflow_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - PyNumber_Subtract
    - PyNumber_Add
    - raiseTestError
    - PyLong_FromString
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_and_overflow_impl(PyObject *module)'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:301,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:306,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:307,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:310,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:313,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:317,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:322,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:327,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:333,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:336,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:339,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:344,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:349,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:350,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:353,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:356,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:360,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:365,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:370,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:375,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:376,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:379,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:382,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:386,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:391,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:392,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:395,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:398,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:401,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:406,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:407,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:410,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:413,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:416,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:422,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:425,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:428,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:431,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:436,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:437,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:440,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:443,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 120
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 447
    functionName: _testlimitedcapi_test_long_long_and_overflow_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - PyNumber_Subtract
    - PyNumber_Add
    - raiseTestError
    - PyLong_FromString
    - PyLong_FromLong
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_long_and_overflow_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:465,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:467,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:468,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:469,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:471,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:472,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:475,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:477,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:478,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:479,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:481,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:482,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 489
    functionName: _testlimitedcapi_test_long_as_size_t_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Occurred
    - PyLong_AsSize_t
    - PyErr_ExceptionMatches
    - raiseTestError
    - PyErr_Clear
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_as_size_t_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:499,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:501,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:502,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:506,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:507,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 513
    functionName: _testlimitedcapi_test_long_as_unsigned_long_long_mask_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - raiseTestError
    - PyLong_AsUnsignedLongLongMask
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_as_unsigned_long_long_mask_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:525,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:527,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:528,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:529,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:531,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:532,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 539
    functionName: _testlimitedcapi_test_long_as_double_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - raiseTestError
    - PyLong_AsDouble
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_as_double_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:544,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:545,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: pylong_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_check(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:551,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:552,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: pylong_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_checkexact(PyObject *module, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:559,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 563
    functionName: pylong_fromdouble
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyLong_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_fromdouble(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:572,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:576,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 582
    functionName: pylong_fromstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyLong_FromString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_fromstring(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:587,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: pylong_fromvoidptr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_fromvoidptr(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:601,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:602,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:602,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:604,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/cpython/Modules/_testlimitedcapi/long.c
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: _testlimitedcapi_PyLong_AsInt
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_PyLong_AsInt(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:613,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:614,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:615,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 619
    functionName: pylong_aslong
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - NULLABLE
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_aslong(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:624,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:626,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:627,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:628,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (overflow == 0)
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/cpython/Modules/_testlimitedcapi/long.c
    constantsTouched: []
    func_position:
      end: 632
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 632
    functionName: pylong_aslongandoverflow
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyLong_AsLongAndOverflow
    - NULLABLE
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_aslongandoverflow(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:637,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:638,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:639,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 643
    functionName: pylong_asunsignedlong
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    - PyLong_FromUnsignedLong
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asunsignedlong(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:648,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:649,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:650,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: pylong_asunsignedlongmask
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsUnsignedLongMask
    - PyLong_FromUnsignedLong
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asunsignedlongmask(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:659,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:660,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:661,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 665
    functionName: pylong_aslonglong
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLongLong
    - PyLong_AsLongLong
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_aslonglong(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:670,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:672,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:673,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:674,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (overflow == 0)
      pos:
        line_end: 673
        line_start: 673
        source_file: /src/cpython/Modules/_testlimitedcapi/long.c
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: pylong_aslonglongandoverflow
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_aslonglongandoverflow(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:683,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:684,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:685,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 689
    functionName: pylong_asunsignedlonglong
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsUnsignedLongLong
    - PyLong_FromUnsignedLongLong
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asunsignedlonglong(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:694,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:695,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:696,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: pylong_asunsignedlonglongmask
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsUnsignedLongLongMask
    - PyLong_FromUnsignedLongLong
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asunsignedlonglongmask(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:705,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:706,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:707,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 711
    functionName: pylong_as_ssize_t
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyLong_AsSsize_t
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_as_ssize_t(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:716,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:717,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:718,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 722
    functionName: pylong_as_size_t
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsSize_t
    - PyLong_FromSize_t
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_as_size_t(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:727,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:728,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:729,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 733
    functionName: pylong_asdouble
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsDouble
    - PyFloat_FromDouble
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asdouble(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:738,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:739,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:741,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 747
    functionName: pylong_asvoidptr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_NewRef
    - PyLong_AsVoidPtr
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asvoidptr(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:752,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:753,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:754,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 758
    functionName: pylong_aspid
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromPid
    - NULLABLE
    - PyLong_AsPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_aspid(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:764,1
    - Dst: PyLong_AsInt32
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:766,1
    - Dst: PyLong_FromInt32
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 770
    functionName: pylong_asint32
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt32
    - PyLong_AsInt32
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asint32(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:775,1
    - Dst: PyLong_AsUInt32
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:777,1
    - Dst: PyLong_FromUInt32
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 781
    functionName: pylong_asuint32
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUInt32
    - NULLABLE
    - PyLong_AsUInt32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asuint32(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:787,1
    - Dst: PyLong_AsInt64
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:789,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 793
    functionName: pylong_asint64
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - PyLong_AsInt64
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asint64(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:798,1
    - Dst: PyLong_AsUInt64
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:800,1
    - Dst: PyLong_FromUInt64
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 804
    functionName: pylong_asuint64
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUInt64
    - PyLong_AsUInt64
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylong_asuint64(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/long.c:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 848
    functionName: _PyTestLimitedCAPI_Init_Long
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/long.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Long(PyObject *mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:16,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:20,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:22,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/cpython/Modules/_testlimitedcapi/object.c
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: get_constant
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_constant(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:34,1
    - Dst: Py_GetConstantBorrowed
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:38,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:40,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:40,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Modules/_testlimitedcapi/object.c
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: get_constant_borrowed
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/object.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_Occurred
    - Py_NewRef
    - Py_GetConstantBorrowed
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_constant_borrowed(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:56,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:56,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:57,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:57,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:58,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:58,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:59,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:59,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:60,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_None == Py_GetConstant(Py_CONSTANT_NONE))
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Modules/_testlimitedcapi/object.c
    - condition: (Py_True == Py_GetConstant(Py_CONSTANT_TRUE))
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Modules/_testlimitedcapi/object.c
    - condition: (Py_False == Py_GetConstant(Py_CONSTANT_FALSE))
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/cpython/Modules/_testlimitedcapi/object.c
    - condition: (Py_Ellipsis == Py_GetConstant(Py_CONSTANT_ELLIPSIS))
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/cpython/Modules/_testlimitedcapi/object.c
    - condition: (Py_NotImplemented == Py_GetConstant(Py_CONSTANT_NOT_IMPLEMENTED))
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Modules/_testlimitedcapi/object.c
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: test_constants
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_constants(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/object.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: _PyTestLimitedCAPI_Init_Object
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/object.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Object(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:7,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:7,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:8,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:8,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:10,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:10,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:11,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:11,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:12,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:12,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:14,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:14,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:15,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:15,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:16,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:16,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:17,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:17,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:19,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:19,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:20,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:20,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:21,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:21,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:24,1
    - Dst: PyOS_mystrnicmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyOS_mystrnicmp("ins", "insert", 3) == 0)
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("INSERT", "insert", 6) == 0)
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("insect", "insert", 3) == 0)
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("invert", "insert", 6) == ('v' - 's'))
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("", "", 0) == 0)
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("", "", 1) == 0)
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("insert", "insert", 6) == 0)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("insert", "ins\0rt", 6) == 'e')
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("insert", "ins", 3) == 0)
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("Insert", "insert", 6) == 0)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("insert", "insert", 10) == 0)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("insert", "invert", 6) == ('s' - 'v'))
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystrnicmp("insert\0a", "insert\0b", 8) == 0)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    constantsTouched: []
    func_position:
      end: 27
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 27
    functionName: test_PyOS_mystrnicmp
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/pyos.c
    functionUses: 0
    functionsReached:
    - PyOS_mystrnicmp
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyOS_mystrnicmp(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:32,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:32,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:33,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:33,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:34,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:34,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:35,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:35,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:36,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:36,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:37,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:37,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:40,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:40,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:41,1
    - Dst: PyOS_mystricmp
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyOS_mystricmp("", "") == 0)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystricmp("Insert", "insert") == 0)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystricmp("insert", "insert") == 0)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystricmp("INSERT", "insert") == 0)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystricmp("insert", "ins") == 'e')
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystricmp("insert", "ins\0rt") == 'e')
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystricmp("ins", "insert") == -'e')
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    - condition: (PyOS_mystricmp("invert", "insert") == ('v' - 's'))
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/cpython/Modules/_testlimitedcapi/pyos.c
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: test_PyOS_mystricmp
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/pyos.c
    functionUses: 0
    functionsReached:
    - PyOS_mystricmp
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyOS_mystricmp(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/pyos.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: _PyTestLimitedCAPI_Init_PyOS
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/pyos.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_PyOS(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: LimitedVectorCallClass_tpcall
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      LimitedVectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:29,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: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: LimitedVectorCallClass_vectorcall
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nLimitedVectorCallClass_vectorcall(PyObject *callable,\n
      \                           PyObject *const *args,\n                            size_t
      nargsf,\n                            PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tp
    - a
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: LimitedVectorCallClass_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c
    functionUses: 0
    functionsReached:
    - PyType_GetSlot
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      LimitedVectorCallClass_new(PyTypeObject *tp, PyObject *a, PyObject *kw)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:58,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:63,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:68,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:73,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:78,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:82,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:90,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:91,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - module
    - callable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 95
    functionName: _testlimitedcapi_call_vectorcall
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - PyUnicode_InternFromString
    - PyObject_Vectorcall
    - PyTuple_SetItem
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_call_vectorcall(PyObject *module, PyObject *callable)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:112,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:118,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:123,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:128,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:133,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:138,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:143,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:151,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:152,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:153,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:154,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - module
    - callable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 157
    functionName: _testlimitedcapi_call_vectorcall_method
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c
    functionUses: 0
    functionsReached:
    - PyObject_VectorcallMethod
    - Py_XDECREF
    - PyTuple_New
    - PyUnicode_InternFromString
    - PyTuple_SetItem
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_call_vectorcall_method(PyObject *module, PyObject *callable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:187,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tp
    - a
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: LimitedRelativeVectorCallClass_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c
    functionUses: 0
    functionsReached:
    - PyType_GetSlot
    - PyObject_GetTypeData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      LimitedRelativeVectorCallClass_new(PyTypeObject *tp, PyObject *a, PyObject *kw)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:224,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:228,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:236,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:238,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 249
    functionName: _PyTestLimitedCAPI_Init_VectorcallLimited
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/vectorcall_limited.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    - Py_DECREF
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_VectorcallLimited(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:8,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:9,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: complex_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyComplex_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_check(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:15,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:16,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: complex_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyComplex_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_checkexact(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:24,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: complex_fromdoubles
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_fromdoubles(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:36,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:37,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:39,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: complex_realasdouble
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_FromDouble
    - PyComplex_RealAsDouble
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_realasdouble(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:51,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:52,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:54,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: complex_imagasdouble
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/complex.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_FromDouble
    - NULLABLE
    - PyComplex_ImagAsDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_imagasdouble(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/complex.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: _PyTestLimitedCAPI_Init_Complex
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/complex.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Complex(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/codec.c:13,1
    - Dst: PyCodec_NameReplaceErrors
      Src: /src/cpython/Modules/_testlimitedcapi/codec.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/cpython/Modules/_testlimitedcapi/codec.c
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: codec_namereplace_errors
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/codec.c
    functionUses: 0
    functionsReached:
    - PyCodec_NameReplaceErrors
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_namereplace_errors(PyObject *Py_UNUSED(module), PyObject *exc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/codec.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: _PyTestLimitedCAPI_Init_Codec
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/codec.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Codec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:13,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: sys_getattr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 0
    functionsReached:
    - PySys_GetAttr
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getattr(PyObject *Py_UNUSED(module), PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:22,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: sys_getattrstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PySys_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getattrstring(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:32,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:34,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:36,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:37,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:37,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:40,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:41,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/cpython/Modules/_testlimitedcapi/sys.c
    - condition: (value == NULL)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Modules/_testlimitedcapi/sys.c
    - condition: (value == NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Modules/_testlimitedcapi/sys.c
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: sys_getoptionalattr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - Py_FatalError
    - PyErr_Occurred
    - Py_NewRef
    - PySys_GetOptionalAttr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getoptionalattr(PyObject *Py_UNUSED(module), PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:55,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:59,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:61,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:62,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:62,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:65,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:66,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/cpython/Modules/_testlimitedcapi/sys.c
    - condition: (value == NULL)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/cpython/Modules/_testlimitedcapi/sys.c
    - condition: (value == NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/cpython/Modules/_testlimitedcapi/sys.c
    constantsTouched: []
    func_position:
      end: 72
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 72
    functionName: sys_getoptionalattrstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PySys_GetOptionalAttrString
    - Py_FatalError
    - PyErr_Occurred
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getoptionalattrstring(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:79,1
    - Dst: PySys_GetObject
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:82,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: sys_getobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - Py_NewRef
    - PySys_GetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getobject(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:95,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:98,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:99,1
    - Dst: PySys_SetObject
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: sys_setobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 0
    functionsReached:
    - PySys_SetObject
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setobject(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetXOptions
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:105,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: sys_getxoptions
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PySys_GetXOptions
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getxoptions(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/sys.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: _PyTestLimitedCAPI_Init_Sys
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/sys.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Sys(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:8,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: object_repr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_repr(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:15,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: object_ascii
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_ASCII
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_ascii(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:22,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: object_str
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_str(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:29,1
    - Dst: PyObject_Bytes
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: object_bytes
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_Bytes
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_bytes(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:37,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:40,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:41,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: object_getattr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getattr(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:51,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:54,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: object_getattrstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getattrstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:62,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:65,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:66,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:67,1
    - Dst: PyObject_HasAttr
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: object_hasattr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyObject_HasAttr
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_hasattr(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:76,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:79,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:80,1
    - Dst: PyObject_HasAttrString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: object_hasattrstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyObject_HasAttrString
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_hasattrstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:87,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:90,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:91,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:92,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:93,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: object_setattr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_setattr(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:102,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:105,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:106,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:107,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: object_setattrstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttrString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_setattrstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:114,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:117,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:118,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:119,1
    - Dst: PyObject_DelAttr
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: object_delattr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_DelAttr
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_delattr(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:128,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:131,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:132,1
    - Dst: PyObject_DelAttrString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: object_delattrstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_DelAttrString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_delattrstring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:138,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:139,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: number_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyNumber_Check
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      number_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:145,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:146,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: mapping_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:152,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:153,1
    - Dst: PyMapping_Size
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: mapping_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - RETURN_SIZE
    - NULLABLE
    - PyMapping_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_size(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:159,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:160,1
    - Dst: PyMapping_Length
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: mapping_length
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_Length
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_length(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:167,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:170,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:171,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: object_getitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 1
    functionsReached:
    - PyObject_GetItem
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:181,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:184,1
    - Dst: PyMapping_GetItemString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: mapping_getitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_GetItemString
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_getitemstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:192,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:195,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:196,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:197,1
    - Dst: PyMapping_HasKey
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: mapping_haskey
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyMapping_HasKey
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_haskey(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:206,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:209,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:210,1
    - Dst: PyMapping_HasKeyString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: mapping_haskeystring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyMapping_HasKeyString
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_haskeystring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:217,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:220,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:221,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:222,1
    - Dst: PyMapping_HasKeyWithError
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: mapping_haskeywitherror
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_HasKeyWithError
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_haskeywitherror(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:231,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:234,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:235,1
    - Dst: PyMapping_HasKeyStringWithError
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: mapping_haskeystringwitherror
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_HasKeyStringWithError
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_haskeystringwitherror(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:242,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:245,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:246,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:247,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:248,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: object_setitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_SetItem
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_setitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:257,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:260,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:261,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:262,1
    - Dst: PyMapping_SetItemString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: mapping_setitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_SetItemString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_setitemstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:269,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:272,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:273,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:274,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: object_delitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_DelItem
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_delitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:281,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:284,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:285,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:286,1
    - Dst: PyMapping_DelItem
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: mapping_delitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_DelItem
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_delitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:295,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:298,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:299,1
    - Dst: PyMapping_DelItemString
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: mapping_delitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_DelItemString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_delitemstring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:305,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: mapping_keys
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_Keys
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_keys(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:312,1
    - Dst: PyMapping_Values
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: mapping_values
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_Values
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_values(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:319,1
    - Dst: PyMapping_Items
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: mapping_items
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PyMapping_Items
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mapping_items(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:327,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:328,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: sequence_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_check(PyObject* self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:334,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:335,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: sequence_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Size
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_size(PyObject* self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:341,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:342,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: sequence_length
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Length
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_length(PyObject* self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:349,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:352,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:353,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: sequence_concat
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Concat
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_concat(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:363,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:366,1
    - Dst: PySequence_Repeat
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: sequence_repeat
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Repeat
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_repeat(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:375,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:378,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:379,1
    - Dst: PySequence_InPlaceConcat
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 382
    functionName: sequence_inplaceconcat
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_InPlaceConcat
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_inplaceconcat(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:389,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:392,1
    - Dst: PySequence_InPlaceRepeat
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 395
    functionName: sequence_inplacerepeat
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_InPlaceRepeat
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_inplacerepeat(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:402,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:405,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 408
    functionName: sequence_getitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_getitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:415,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:418,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:419,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:421,1
    - Dst: PySequence_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 422
    functionName: sequence_setitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_SetItem
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_setitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:430,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:433,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:435,1
    - Dst: PySequence_DelItem
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: sequence_delitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_DelItem
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_delitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:443,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:446,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:447,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:449,1
    - Dst: PySequence_SetSlice
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: sequence_setslice
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_SetSlice
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_setslice(PyObject* self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:457,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:460,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:462,1
    - Dst: PySequence_DelSlice
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 463
    functionName: sequence_delslice
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_DelSlice
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_delslice(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:469,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:472,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:473,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:475,1
    - Dst: PySequence_Count
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 476
    functionName: sequence_count
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Count
    - RETURN_SIZE
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_count(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:482,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:485,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:486,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:488,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 489
    functionName: sequence_contains
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_contains(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:495,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:498,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:499,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:501,1
    - Dst: PySequence_Index
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 502
    functionName: sequence_index
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Index
    - RETURN_SIZE
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_index(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:507,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: sequence_list
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_list(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:514,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: sequence_tuple
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Tuple
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_tuple(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:524,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:527,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 529
    functionName: sequence_fast
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_fast(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/abstract.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 596
    functionName: _PyTestLimitedCAPI_Init_Abstract
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/abstract.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Abstract(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:13,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:14,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: list_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_check(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:20,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:21,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: list_check_exact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_check_exact(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:27,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: list_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_new(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:33,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:34,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: list_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_Size
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_size(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:42,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:45,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:46,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: list_getitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyList_GetItem
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_getitem(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:54,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:57,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: list_get_item_ref
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_GetItemRef
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_get_item_ref(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:66,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:69,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:70,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:71,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:71,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: list_setitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_setitem(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:80,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:83,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:84,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:85,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:85,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: list_insert
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - RETURN_INT
    - Py_XNewRef
    - PyList_Insert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_insert(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:93,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:96,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:97,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:98,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: list_append
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_append(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:106,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:109,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: list_getslice
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_GetSlice
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_getslice(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:119,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:122,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:123,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:124,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: list_setslice
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_setslice(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:130,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:131,1
    - Dst: PyList_Sort
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: list_sort
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_Sort
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_sort(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:137,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:138,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: list_reverse
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_Reverse
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_reverse(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:144,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: list_astuple
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 0
    functionsReached:
    - PyList_AsTuple
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_astuple(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/list.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: _PyTestLimitedCAPI_Init_List
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/list.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_List(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetMagicNumber
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:15,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: pyimport_getmagicnumber
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_GetMagicNumber
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_getmagicnumber(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetMagicTag
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:24,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: pyimport_getmagictag
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_GetMagicTag
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_getmagictag(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:33,1
    - Dst: PyImport_GetModuleDict
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: pyimport_getmoduledict
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_GetModuleDict
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_getmoduledict(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:41,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:41,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:42,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:43,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:44,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/cpython/Modules/_testlimitedcapi/import.c
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: pyimport_getmodule
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyErr_Occurred
    - Py_NewRef
    - PyImport_GetModule
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_getmodule(PyObject *Py_UNUSED(module), PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:55,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:56,1
    - Dst: PyImport_AddModuleObject
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: pyimport_addmoduleobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyImport_AddModuleObject
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_addmoduleobject(PyObject *Py_UNUSED(module), PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:66,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:70,1
    - Dst: PyImport_AddModule
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: pyimport_addmodule
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_AddModule
    - Py_XNewRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_addmodule(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:80,1
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: pyimport_addmoduleref
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_AddModuleRef
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_addmoduleref(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:92,1
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: pyimport_import
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_Import
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_import(PyObject *Py_UNUSED(module), PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:103,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: pyimport_importmodule
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmodule(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:120,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: pyimport_importmodulenoblock
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleNoBlock
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmodulenoblock(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:134,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:138,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:139,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:140,1
    - Dst: PyImport_ImportModuleEx
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: pyimport_importmoduleex
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleEx
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmoduleex(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:154,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:158,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:159,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:160,1
    - Dst: PyImport_ImportModuleLevel
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: pyimport_importmodulelevel
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleLevel
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmodulelevel(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:172,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:176,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:177,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:178,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:179,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: pyimport_importmodulelevelobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleLevelObject
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmodulelevelobject(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:191,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:195,1
    - Dst: PyImport_ImportFrozenModule
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: pyimport_importfrozenmodule
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportFrozenModule
    - RETURN_INT
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importfrozenmodule(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:203,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:204,1
    - Dst: PyImport_ImportFrozenModuleObject
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: pyimport_importfrozenmoduleobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportFrozenModuleObject
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importfrozenmoduleobject(PyObject *Py_UNUSED(module), PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:215,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:218,1
    - Dst: PyImport_ExecCodeModule
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: pyimport_executecodemodule
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExecCodeModule
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_executecodemodule(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:232,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:235,1
    - Dst: PyImport_ExecCodeModuleEx
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 238
    functionName: pyimport_executecodemoduleex
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExecCodeModuleEx
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_executecodemoduleex(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:250,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:253,1
    - Dst: PyImport_ExecCodeModuleWithPathnames
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: pyimport_executecodemodulewithpathnames
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExecCodeModuleWithPathnames
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_executecodemodulewithpathnames(PyObject *Py_UNUSED(module), PyObject
      *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:265,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:268,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:269,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:270,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:271,1
    - Dst: PyImport_ExecCodeModuleObject
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: pyimport_executecodemoduleobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExecCodeModuleObject
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_executecodemoduleobject(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/import.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: _PyTestLimitedCAPI_Init_Import
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/import.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Import(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 6
    functionName: NULLABLE
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/util.h
    functionUses: 167
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULLABLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 16
    functionName: RETURN_INT
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/util.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_INT(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: RETURN_SIZE
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/util.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_SIZE(value)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: F_U_TO_PY
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:44,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:46,1
    - Dst: F_PY_TO_U
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:49,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:50,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:51,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:54,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:56,1
    - Dst: F_S_TO_PY
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:59,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:61,1
    - Dst: F_PY_TO_S
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:64,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:65,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:66,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:69,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:71,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:84,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:86,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:90,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:92,1
    - Dst: F_PY_TO_U
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:95,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:96,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:97,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:99,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:100,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:103,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:104,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:107,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:109,1
    - Dst: PyNumber_Lshift
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:112,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:113,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:115,1
    - Dst: F_PY_TO_U
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:118,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:119,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:120,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:123,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:124,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:127,1
    - Dst: PyNumber_Rshift
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:131,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:132,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:134,1
    - Dst: F_PY_TO_S
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:137,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:138,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:139,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:142,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:143,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:146,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:150,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:151,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:153,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:156,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:157,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:159,1
    - Dst: F_PY_TO_S
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:162,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:163,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:164,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:167,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:168,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:171,1
    - Dst: UNBIND
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:172,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:174,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:176,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:184,1
    - Dst: F_PY_TO_S
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:186,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:187,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:188,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:189,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:190,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:192,1
    - Dst: F_PY_TO_U
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:194,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:195,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:196,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:197,1
    - Dst: error
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:198,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:202,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h:205,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 98
    argCount: 1
    argNames:
    - error(const char*)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 206
    functionName: TESTNAME
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/testcapi_long.h
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_INCREF
    - Py_DECREF
    - F_U_TO_PY
    - PyErr_Occurred
    - F_PY_TO_S
    - UNBIND
    - PyNumber_Rshift
    - PyNumber_Subtract
    - Py_NewRef
    - PyNumber_Negative
    - PyErr_ExceptionMatches
    - error
    - PyLong_FromLong
    - F_S_TO_PY
    - PyNumber_Lshift
    - PyErr_Clear
    - F_PY_TO_U
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TESTNAME(PyObject *error(const char*))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:18,1
    - Dst: PyCodec_IncrementalEncoder
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: codec_incrementalencoder
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.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/cpython/Modules/_testlimitedcapi/unicode.c:28,1
    - Dst: PyCodec_IncrementalDecoder
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: codec_incrementaldecoder
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyCodec_IncrementalDecoder
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_incrementaldecoder(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:37,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:41,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:42,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: test_unicode_compare_with_ascii
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    - PyUnicode_FromStringAndSize
    - PyErr_SetString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unicode_compare_with_ascii(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:64,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:68,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:70,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:74,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:74,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:75,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:76,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:77,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:83,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:84,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:85,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:86,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:88,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:96,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:99,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 110
    functionName: test_widechar
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyUnicode_FromWideChar
    - PyUnicode_GetLength
    - PyErr_Clear
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_widechar(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:119,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:120,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:125,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:130,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:131,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 137
    functionName: unicode_copy
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyBytes_AsString
    - PyUnicode_DecodeUTF8
    - PyUnicode_Check
    - PyBytes_Size
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_copy(PyObject *unicode)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:148,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:152,1
    - Dst: unicode_copy
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:153,1
    - Dst: PyUnicode_WriteChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:159,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 163
    functionName: unicode_writechar
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - unicode_copy
    - PyUnicode_WriteChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_writechar(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:168,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:169,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:169,1
    - Dst: PyUnicode_WriteChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:171,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - str
    - start
    - end
    - ch
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (0 <= start)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    - condition: (end <= PyUnicode_GetLength(str))
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    - condition: (res == 0)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: unicode_fill
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - assert
    - PyUnicode_WriteChar
    linkageType: ''
    returnType: void
    signature: void unicode_fill(PyObject *str, Py_ssize_t start, Py_ssize_t end,
      Py_UCS4 ch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:185,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:189,1
    - Dst: unicode_copy
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:190,1
    - Dst: PyUnicode_Resize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:194,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:195,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:198,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:198,1
    - Dst: unicode_fill
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:199,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:199,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 202
    functionName: unicode_resize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - PyUnicode_GetLength
    - unicode_fill
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyUnicode_Resize
    - unicode_copy
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_resize(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:210,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:213,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:214,1
    - Dst: unicode_copy
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:215,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: unicode_append
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Append
    - unicode_copy
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_append(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:228,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:231,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:232,1
    - Dst: unicode_copy
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:233,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:236,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: unicode_appendanddel
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_AppendAndDel
    - unicode_copy
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_appendanddel(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:249,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: unicode_fromstringandsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromstringandsize(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:266,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: unicode_fromstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromstring(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:279,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:283,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: unicode_substring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Substring
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_substring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:291,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:292,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: unicode_getlength
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_getlength(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:303,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:307,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:308,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 312
    functionName: unicode_readchar
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_ReadChar
    - PyLong_FromUnsignedLong
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_readchar(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:322,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:326,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 328
    functionName: unicode_fromencodedobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromEncodedObject
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromencodedobject(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:334,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: unicode_fromobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromObject
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromobject(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:342,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:343,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: unicode_interninplace
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - NULLABLE
    - PyUnicode_InternInPlace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_interninplace(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:355,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: unicode_internfromstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_internfromstring(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:369,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:374,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 381
    functionName: unicode_fromwidechar
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromWideChar
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromwidechar(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:391,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:393,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:394,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:396,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:398,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:400,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:408,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:409,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 414
    functionName: unicode_aswidechar
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_AsWideChar
    - PyMem_Free
    - PyMem_New
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_aswidechar(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:423,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:425,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:426,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: unicode_aswidechar_null
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideChar
    - RETURN_SIZE
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_aswidechar_null(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:437,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:440,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:441,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:443,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:447,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:448,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (size == UNINITIALIZED_SIZE)
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 452
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 452
    functionName: unicode_aswidecharstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_FromWideChar
    - PyMem_Free
    - assert
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_aswidecharstring(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:461,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:464,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:465,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:469,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 474
    functionName: unicode_aswidecharstring_null
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_aswidecharstring_null(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:483,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: unicode_fromordinal
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromordinal(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:498,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:501,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:502,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:504,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (size == -1)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 509
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 509
    functionName: unicode_asutf8andsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyUnicode_AsUTF8AndSize
    - PyArg_ParseTuple
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asutf8andsize(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:519,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:522,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:523,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 528
    functionName: unicode_asutf8andsize_null
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - PyBytes_FromStringAndSize
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asutf8andsize_null(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:534,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 539
    functionName: unicode_getdefaultencoding
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - PyUnicode_GetDefaultEncoding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_getdefaultencoding(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:550,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 554
    functionName: unicode_decode
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Decode
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decode(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:564,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:567,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 569
    functionName: unicode_asencodedstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsEncodedString
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asencodedstring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:575,1
    - Dst: PyUnicode_BuildEncodingMap
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: unicode_buildencodingmap
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_BuildEncodingMap
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_buildencodingmap(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:587,1
    - Dst: PyUnicode_DecodeUTF7
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: unicode_decodeutf7
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF7
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf7(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:603,1
    - Dst: PyUnicode_DecodeUTF7Stateful
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:606,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:608,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == UNINITIALIZED_SIZE)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 612
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 612
    functionName: unicode_decodeutf7stateful
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF7Stateful
    - Py_BuildValue
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf7stateful(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:622,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 626
    functionName: unicode_decodeutf8
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf8(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:638,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:641,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:643,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == UNINITIALIZED_SIZE)
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 647
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 647
    functionName: unicode_decodeutf8stateful
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_DecodeUTF8Stateful
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf8stateful(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:653,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 655
    functionName: unicode_asutf8string
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asutf8string(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:667,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:670,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 675
    functionName: unicode_decodeutf32
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF32
    - Py_BuildValue
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf32(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:688,1
    - Dst: PyUnicode_DecodeUTF32Stateful
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:691,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:693,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == UNINITIALIZED_SIZE)
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 697
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 697
    functionName: unicode_decodeutf32stateful
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_DecodeUTF32Stateful
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf32stateful(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:703,1
    - Dst: PyUnicode_AsUTF32String
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 705
    functionName: unicode_asutf32string
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF32String
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asutf32string(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:717,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:720,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 725
    functionName: unicode_decodeutf16
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_DecodeUTF16
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf16(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:738,1
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:741,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:743,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == UNINITIALIZED_SIZE)
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 747
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 747
    functionName: unicode_decodeutf16stateful
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_DecodeUTF16Stateful
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeutf16stateful(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:753,1
    - Dst: PyUnicode_AsUTF16String
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 755
    functionName: unicode_asutf16string
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF16String
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asutf16string(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:765,1
    - Dst: PyUnicode_DecodeUnicodeEscape
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 769
    functionName: unicode_decodeunicodeescape
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUnicodeEscape
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeunicodeescape(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:775,1
    - Dst: PyUnicode_AsUnicodeEscapeString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 777
    functionName: unicode_asunicodeescapestring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUnicodeEscapeString
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asunicodeescapestring(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:786,1
    - Dst: PyUnicode_DecodeRawUnicodeEscape
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 790
    functionName: unicode_decoderawunicodeescape
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeRawUnicodeEscape
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decoderawunicodeescape(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:796,1
    - Dst: PyUnicode_AsRawUnicodeEscapeString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 798
    functionName: unicode_asrawunicodeescapestring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsRawUnicodeEscapeString
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asrawunicodeescapestring(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:807,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 811
    functionName: unicode_decodelatin1
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLatin1
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodelatin1(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:817,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 819
    functionName: unicode_aslatin1string
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsLatin1String
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_aslatin1string(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:829,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 833
    functionName: unicode_decodeascii
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeASCII
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodeascii(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:839,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 841
    functionName: unicode_asasciistring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsASCIIString
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asasciistring(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:852,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:855,1
    - Dst: PyUnicode_DecodeCharmap
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 857
    functionName: unicode_decodecharmap
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeCharmap
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodecharmap(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:866,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:869,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:870,1
    - Dst: PyUnicode_AsCharmapString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 872
    functionName: unicode_ascharmapstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsCharmapString
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_ascharmapstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:884,1
    - Dst: PyUnicode_DecodeMBCS
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 888
    functionName: unicode_decodembcs
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeMBCS
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodembcs(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:900,1
    - Dst: PyUnicode_DecodeMBCSStateful
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:903,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:905,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == UNINITIALIZED_SIZE)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 909
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 909
    functionName: unicode_decodembcsstateful
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_BuildValue
    - PyUnicode_DecodeMBCSStateful
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodembcsstateful(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:922,1
    - Dst: PyUnicode_DecodeCodePageStateful
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:925,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:927,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == UNINITIALIZED_SIZE)
      pos:
        line_end: 926
        line_start: 926
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 931
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 931
    functionName: unicode_decodecodepagestateful
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_BuildValue
    - PyUnicode_DecodeCodePageStateful
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodecodepagestateful(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:937,1
    - Dst: PyUnicode_AsMBCSString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 939
    functionName: unicode_asmbcsstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyUnicode_AsMBCSString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asmbcsstring(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:949,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:952,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 954
    functionName: unicode_encodecodepage
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeCodePage
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encodecodepage(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:966,1
    - Dst: PyUnicode_DecodeLocaleAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 970
    functionName: unicode_decodelocaleandsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocaleAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodelocaleandsize(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:980,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 984
    functionName: unicode_decodelocale
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodelocale(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:993,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:996,1
    - Dst: PyUnicode_EncodeLocale
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 998
    functionName: unicode_encodelocale
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeLocale
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encodelocale(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1007,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1011
    functionName: unicode_decodefsdefault
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodefsdefault(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1020,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1024
    functionName: unicode_decodefsdefaultandsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefaultAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_decodefsdefaultandsize(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1030,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1032
    functionName: unicode_encodefsdefault
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyUnicode_EncodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encodefsdefault(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1041,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1044,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1045,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1047
    functionName: unicode_concat
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Concat
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_concat(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1057,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1060,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1061,1
    - Dst: PyUnicode_Split
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1063
    functionName: unicode_split
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Split
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_split(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1073,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1076,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1077,1
    - Dst: PyUnicode_RSplit
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1079
    functionName: unicode_rsplit
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_RSplit
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rsplit(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1088,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1091,1
    - Dst: PyUnicode_Splitlines
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1093
    functionName: unicode_splitlines
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Splitlines
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_splitlines(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1102,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1105,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1106,1
    - Dst: PyUnicode_Partition
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1108
    functionName: unicode_partition
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Partition
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_partition(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1117,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1120,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1121,1
    - Dst: PyUnicode_RPartition
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1123
    functionName: unicode_rpartition
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_RPartition
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rpartition(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1133,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1136,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1137,1
    - Dst: PyUnicode_Translate
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1139
    functionName: unicode_translate
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Translate
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_translate(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1148,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1151,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1152,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1154
    functionName: unicode_join
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Join
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_join(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1165,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1168,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1169,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1170,1
    - Dst: PyUnicode_Count
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1171
    functionName: unicode_count
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Count
    - RETURN_SIZE
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_count(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1184,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1187,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1188,1
    - Dst: PyUnicode_Find
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1189,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1191,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1191,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1194,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1194,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1190
        line_start: 1190
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1193
        line_start: 1193
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 1196
      start: 1174
    functionDepth: 1
    functionLinenumber: 1174
    functionLinenumberEnd: 1196
    functionName: unicode_find
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Find
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_find(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1208,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1211,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1212,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1213,1
    - Dst: PyUnicode_Tailmatch
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1214
    functionName: unicode_tailmatch
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Tailmatch
    - RETURN_SIZE
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_tailmatch(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1226,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1230,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1231,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1233,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1233,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1236,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1236,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1232
        line_start: 1232
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1235
        line_start: 1235
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 1238
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1238
    functionName: unicode_findchar
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyUnicode_FindChar
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_findchar(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1249,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1252,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1253,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1254,1
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1256
    functionName: unicode_replace
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Replace
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_replace(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1266,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1269,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1270,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1271,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1272,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1275,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1275,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 1277
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1277
    functionName: unicode_compare
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_compare(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1288,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1291,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1293,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1297
    functionName: unicode_comparewithasciistring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyUnicode_CompareWithASCIIString
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_comparewithasciistring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1308,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1312,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1313,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1314,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1314,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1313
        line_start: 1313
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 1316
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1316
    functionName: unicode_equaltoutf8
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EqualToUTF8
    - NULLABLE
    - PyErr_Occurred
    - PyArg_ParseTuple
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_equaltoutf8(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1328,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1332,1
    - Dst: PyUnicode_EqualToUTF8AndSize
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1336,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1337,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1337,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1336
        line_start: 1336
        source_file: /src/cpython/Modules/_testlimitedcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 1339
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1339
    functionName: unicode_equaltoutf8andsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_EqualToUTF8AndSize
    - PyErr_Occurred
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_equaltoutf8andsize(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1349,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1352,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1353,1
    - Dst: PyUnicode_RichCompare
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1355
    functionName: unicode_richcompare
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_RichCompare
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_richcompare(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1364,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1367,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1368,1
    - Dst: PyUnicode_Format
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1370
    functionName: unicode_format
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Format
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_format(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1379,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1382,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1383,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1384,1
    - Dst: PyUnicode_Contains
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1385
    functionName: unicode_contains
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Contains
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_contains(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1391,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1392,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1393
    functionName: unicode_isidentifier
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IsIdentifier
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isidentifier(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1401,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1406,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - result
    - msg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1413
    functionName: check_raised_systemerror
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_raised_systemerror(PyObject *result, char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1419,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1448,1
    - Dst: CHECK_FORMAT_0
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1451,1
    - Dst: CHECK_FORMAT_0
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1452,1
    - Dst: CHECK_FORMAT_0
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1453,1
    - Dst: CHECK_FORMAT_0
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1454,1
    - Dst: CHECK_FORMAT_0
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1455,1
    - Dst: CHECK_FORMAT_0
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1456,1
    - Dst: CHECK_FORMAT_0
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1457,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1460,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1461,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1462,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1463,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1464,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1465,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1466,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1469,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1470,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1471,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1472,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1473,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1474,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1475,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1476,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1477,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1478,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1479,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1480,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1481,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1482,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1483,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1484,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1485,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1486,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1487,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1488,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1489,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1490,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1491,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1492,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1493,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1494,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1495,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1496,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1497,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1498,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1499,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1500,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1501,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1502,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1503,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1504,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1506,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1507,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1508,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1509,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1510,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1511,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1512,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1513,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1514,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1515,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1516,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1517,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1520,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1521,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1522,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1523,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1524,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1525,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1526,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1527,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1528,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1529,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1530,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1531,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1532,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1534,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1535,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1536,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1537,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1538,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1539,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1540,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1541,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1544,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1545,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1546,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1547,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1548,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1549,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1550,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1551,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1552,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1553,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1554,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1555,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1556,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1558,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1559,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1560,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1561,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1562,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1563,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1564,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1565,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1568,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1569,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1570,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1571,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1572,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1573,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1574,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1575,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1576,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1577,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1578,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1579,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1580,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1582,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1583,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1584,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1585,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1586,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1587,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1588,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1589,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1592,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1593,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1594,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1595,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1596,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1597,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1598,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1599,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1600,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1601,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1602,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1603,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1604,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1606,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1607,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1608,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1609,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1610,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1611,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1612,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1613,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1616,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1617,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1618,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1619,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1620,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1621,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1622,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1623,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1624,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1625,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1626,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1627,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1628,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1630,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1631,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1632,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1633,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1634,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1635,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1636,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1637,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1640,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1641,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1642,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1643,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1644,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1645,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1646,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1647,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1648,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1649,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1650,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1651,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1652,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1654,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1655,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1656,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1657,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1658,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1659,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1660,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1661,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1664,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1665,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1666,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1667,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1668,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1669,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1670,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1671,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1672,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1673,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1674,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1675,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1676,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1678,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1679,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1680,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1681,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1682,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1683,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1684,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1685,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1688,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1689,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1690,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1691,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1692,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1693,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1694,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1695,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1696,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1697,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1698,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1699,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1700,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1702,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1703,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1704,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1705,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1706,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1707,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1708,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1709,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1712,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1713,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1714,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1715,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1716,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1717,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1718,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1719,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1720,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1721,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1722,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1723,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1724,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1726,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1727,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1728,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1729,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1730,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1731,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1732,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1733,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1736,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1737,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1738,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1739,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1740,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1741,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1742,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1743,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1744,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1745,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1746,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1747,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1748,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1751,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1752,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1753,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1754,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1755,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1756,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1757,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1758,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1759,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1762,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1763,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1764,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1765,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1766,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1767,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1768,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1769,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1770,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1773,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1774,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1775,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1776,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1777,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1778,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1779,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1780,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1781,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1784,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1785,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1786,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1787,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1788,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1789,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1790,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1791,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1792,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1795,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1796,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1797,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1798,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1799,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1800,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1801,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1802,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1803,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1806,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1807,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1808,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1809,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1810,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1811,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1812,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1813,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1814,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1817,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1818,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1819,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1820,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1821,1
    - Dst: CHECK_FORMAT_1
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1822,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1823,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1824,1
    - Dst: CHECK_FORMAT_2
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1825,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1827,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1831,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 336
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1838
    functionName: test_string_from_format
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - CHECK_FORMAT_2
    - CHECK_FORMAT_0
    - CHECK_FORMAT_1
    - PyUnicode_FromString
    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: 9
    argNames:
    - (
    - FORMAT
    - ','
    - EXPECTED
    - ','
    - ARG1
    - ','
    - ARG2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1440
    functionName: CHECK_FORMAT_2
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FORMAT_2(FORMAT, EXPECTED, ARG1, ARG2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FORMAT
    - ','
    - EXPECTED
    - ','
    - ARG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1443
    functionName: CHECK_FORMAT_1
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FORMAT_1(FORMAT, EXPECTED, ARG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FORMAT
    - ','
    - EXPECTED
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1446
    functionName: CHECK_FORMAT_0
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FORMAT_0(FORMAT, EXPECTED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1846,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1850,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1851,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1852,1
    - Dst: PyUnicode_Equal
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1842
    functionDepth: 1
    functionLinenumber: 1842
    functionLinenumberEnd: 1853
    functionName: unicode_equal
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Equal
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_equal(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/unicode.c:1951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 1956
    functionName: _PyTestLimitedCAPI_Init_Unicode
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/unicode.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Unicode(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:8,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:9,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: dict_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:15,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:16,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: dict_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_checkexact(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c: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: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: dict_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_new(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:28,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: dictproxy_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDictProxy_New
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictproxy_new(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: dict_clear
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_clear(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:42,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: dict_copy
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Copy
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_copy(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:50,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:53,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:54,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:55,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: dict_contains
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Contains
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_contains(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:61,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:62,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: dict_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Size
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_size(PyObject *self, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:69,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:72,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:73,1
    - Dst: PyDict_GetItem
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:74,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:76,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:79,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: dict_getitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyDict_GetItem
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_getitem(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:90,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:93,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:94,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:96,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:99,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: dict_getitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - Py_NewRef
    - PyDict_GetItemString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_getitemstring(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:108,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:111,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:112,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:115,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:118,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: dict_getitemwitherror
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_getitemwitherror(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:128,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:131,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:132,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:133,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:134,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: dict_setitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_setitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:143,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:146,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:147,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:148,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: dict_setitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_setitemstring(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:155,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:158,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:159,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:160,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: dict_delitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_delitem(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:169,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:172,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:173,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: dict_delitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItemString
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_delitemstring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:179,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: dict_keys
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_keys(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:186,1
    - Dst: PyDict_Values
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: dict_values
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Values
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_values(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:193,1
    - Dst: PyDict_Items
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: dict_items
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Items
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_items(PyObject *self, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:202,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:205,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:206,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:208,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:210,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:211,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key == UNINITIALIZED_PTR)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/cpython/Modules/_testlimitedcapi/dict.c
    - condition: (value == UNINITIALIZED_PTR)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/cpython/Modules/_testlimitedcapi/dict.c
    constantsTouched: []
    func_position:
      end: 216
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 216
    functionName: dict_next
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyDict_Next
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_next(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:223,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:226,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:227,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:228,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: dict_merge
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Merge
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_merge(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:235,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:238,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:239,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:240,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: dict_update
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_update(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:248,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:251,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:252,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:253,1
    - Dst: PyDict_MergeFromSeq2
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: dict_mergefromseq2
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_MergeFromSeq2
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_mergefromseq2(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: _PyTestLimitedCAPI_Init_Dict
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Dict(PyObject *m)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:27,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:45,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:49,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:53,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:57,1
    - Dst: PyType_GetTypeDataSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:61,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:66,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:71,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:72,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:73,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 75
    functionName: make_sized_heaptypes
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - Py_BuildValue
    - PyArg_ParseTuple
    - PyType_GetTypeDataSize
    - PyType_FromMetaclass
    - PyObject_GetTypeData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_sized_heaptypes(PyObject *module, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:82,1
    - Dst: PyType_GetTypeDataSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:86,1
    - Dst: memset
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: var_heaptype_set_data_to_3s
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyObject_GetTypeData
    - memset
    - PyType_GetTypeDataSize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nvar_heaptype_set_data_to_3s(\n    PyObject *self, PyTypeObject
      *defining_class,\n    PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:98,1
    - Dst: PyType_GetTypeDataSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:102,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: var_heaptype_get_data
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyObject_GetTypeData
    - PyBytes_FromStringAndSize
    - PyType_GetTypeDataSize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nvar_heaptype_get_data(PyObject *self, PyTypeObject *defining_class,\n
      \                     PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:126,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 147
    functionName: subclass_var_heaptype
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyType_FromMetaclass
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subclass_var_heaptype(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:157,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 178
    functionName: subclass_heaptype
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyType_FromMetaclass
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subclass_heaptype(PyObject *module, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:183,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:183,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:185,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:191,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:195,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 207
    functionName: heaptype_with_member_extract_and_check_memb
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyType_GetSlot
    - strcmp
    - Py_TYPE
    linkageType: ''
    returnType: PyMemberDef
    signature: 'PyMemberDef *

      heaptype_with_member_extract_and_check_memb(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heaptype_with_member_extract_and_check_memb
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:212,1
    - Dst: PyMember_GetOne
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: heaptype_with_member_get_memb
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyMember_GetOne
    - heaptype_with_member_extract_and_check_memb
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heaptype_with_member_get_memb(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heaptype_with_member_extract_and_check_memb
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:219,1
    - Dst: PyMember_SetOne
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: heaptype_with_member_set_memb
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - heaptype_with_member_extract_and_check_memb
    - PyMember_SetOne
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heaptype_with_member_set_memb(PyObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heaptype_with_member_extract_and_check_memb
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:230,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c: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: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: get_memb_offset
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - heaptype_with_member_extract_and_check_memb
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_memb_offset(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMember_GetOne
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: heaptype_with_member_get_memb_relative
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyMember_GetOne
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heaptype_with_member_get_memb_relative(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMember_SetOne
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: heaptype_with_member_set_memb_relative
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyMember_SetOne
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heaptype_with_member_set_memb_relative(PyObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:260,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:261,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:262,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: heapctypewithrelativedict_dealloc
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Free
    - PyObject_GetTypeData
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctypewithrelativedict_dealloc(PyObject* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:298,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:299,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:301,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:303,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: heapctypewithrelativeweakref_dealloc
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Free
    - PyObject_ClearWeakRefs
    - PyObject_GetTypeData
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctypewithrelativeweakref_dealloc(PyObject* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:367,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:390,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 8
    argNames:
    - module
    - extra_base_size
    - basicsize
    - member_offset
    - add_relative_flag
    - member_name
    - member_flags
    - member_type
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 394
    functionName: make_heaptype_with_member_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyType_FromMetaclass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_heaptype_with_member_impl(PyObject *module, int extra_base_size,\n
      \                              int basicsize, int member_offset,\n                               int
      add_relative_flag,\n                               const char *member_name,
      int member_flags,\n                               int member_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:402,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:403,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:404,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:405,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:406,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (ALIGNOF_MAX_ALIGN_T > 0)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(long long))
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(void*))
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(long double))
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(void (*)(void)))
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: ((ALIGNOF_MAX_ALIGN_T & (ALIGNOF_MAX_ALIGN_T - 1)) == 0)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    constantsTouched: []
    func_position:
      end: 412
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 412
    functionName: test_alignof_max_align_t
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_alignof_max_align_t(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:426,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:430,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:446,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:453,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:455,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:462,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:464,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:467,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 472
    functionName: _PyTestLimitedCAPI_Init_HeaptypeRelative
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 1
    functionsReached:
    - PyModule_AddType
    - Py_DECREF
    - PyType_FromSpec
    - PyModule_AddIntMacro
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_HeaptypeRelative(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SPEC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 443
    functionName: ADD_FROM_SPEC
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FROM_SPEC(SPEC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:8,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:9,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: float_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_check(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:15,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:16,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: float_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyFloat_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_checkexact(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:22,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: float_fromstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromString
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_fromstring(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:31,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: float_fromdouble
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_fromdouble(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:43,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:44,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:45,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: float_asdouble
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_AsDouble
    - PyFloat_FromDouble
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_asdouble(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_GetInfo
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(arg)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: float_getinfo
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyFloat_GetInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_getinfo(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(arg))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:61,1
    - Dst: PyFloat_GetMax
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(arg)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: float_getmax
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyFloat_GetMax
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_getmax(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(arg))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:67,1
    - Dst: PyFloat_GetMin
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(arg)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: float_getmin
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyFloat_GetMin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_getmin(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(arg))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/float.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: _PyTestLimitedCAPI_Init_Float
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/float.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Float(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:9,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:10,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: bytes_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_check(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:17,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:18,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: bytes_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_checkexact(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:29,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: bytes_fromstringandsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromstringandsize(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:46,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: bytes_fromstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromstring(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:56,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: bytes_fromobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromObject
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromobject(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:64,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:65,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: bytes_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_Size
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_size(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:76,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:79,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:80,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: bytes_asstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_AsString
    - PyBytes_FromStringAndSize
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_asstring(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:96,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:99,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:100,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:105,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: bytes_asstringandsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_AsStringAndSize
    - Py_BuildValue
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_asstringandsize(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:119,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:122,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:123,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 133
    functionName: bytes_asstringandsize_null
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_AsStringAndSize
    - PyBytes_FromStringAndSize
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_asstringandsize_null(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:141,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:144,1
    - Dst: PyBytes_Repr
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: bytes_repr
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_Repr
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_repr(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:155,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:158,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:159,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:161,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:162,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:162,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:163,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:163,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:164,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:170,1
    - Dst: PyBytes_Concat
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:172,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_CheckExact(left))
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Modules/_testlimitedcapi/bytes.c
    - condition: (left != NULL)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/cpython/Modules/_testlimitedcapi/bytes.c
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: bytes_concat
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_Concat
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - Py_XINCREF
    - PyBytes_Size
    - PyBytes_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_concat(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:186,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:189,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:192,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:193,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:193,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:194,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:194,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:195,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:201,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:203,1
    - Dst: PyBytes_ConcatAndDel
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:204,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_CheckExact(left))
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/cpython/Modules/_testlimitedcapi/bytes.c
    - condition: (left != NULL)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Modules/_testlimitedcapi/bytes.c
    constantsTouched: []
    func_position:
      end: 209
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 209
    functionName: bytes_concatanddel
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_Occurred
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - PyBytes_ConcatAndDel
    - Py_XINCREF
    - PyBytes_Size
    - PyBytes_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_concatanddel(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:220,1
    - Dst: PyBytes_DecodeEscape
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: bytes_decodeescape
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytes_DecodeEscape
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_decodeescape(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/bytes.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: _PyTestLimitedCAPI_Init_Bytes
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytes.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Bytes(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:9,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:10,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: bytearray_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_check(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:17,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:18,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: bytearray_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - PyByteArray_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_checkexact(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:29,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: bytearray_fromstringandsize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - PyByteArray_FromStringAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_fromstringandsize(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:43,1
    - Dst: PyByteArray_FromObject
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: bytearray_fromobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - PyByteArray_FromObject
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_fromobject(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:51,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:52,1
    - Dst: PyByteArray_Size
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: bytearray_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - RETURN_SIZE
    - NULLABLE
    - PyByteArray_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_size(PyObject *Py_UNUSED(module), PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:63,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:66,1
    - Dst: PyByteArray_AsString
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:67,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: bytearray_asstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - PyByteArray_FromStringAndSize
    - PyByteArray_AsString
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_asstring(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:80,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:83,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:84,1
    - Dst: PyByteArray_Concat
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: bytearray_concat
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Concat
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_concat(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:95,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:98,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:99,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: bytearray_resize
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Resize
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_resize(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/bytearray.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: _PyTestLimitedCAPI_Init_ByteArray
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/bytearray.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_ByteArray(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:8,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:9,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: tuple_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_check(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:15,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:16,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: tuple_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_CheckExact
    - NULLABLE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_checkexact(PyObject* Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:22,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - len
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: tuple_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_new(PyObject* Py_UNUSED(module), PyObject *len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:31,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:35,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:37,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:38,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:40,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: tuple_pack
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_pack(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:48,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:49,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: tuple_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - RETURN_SIZE
    - NULLABLE
    - PyTuple_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_size(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:57,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:60,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:61,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: tuple_getitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyTuple_GetItem
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_getitem(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:69,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:72,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: tuple_getslice
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetSlice
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_getslice(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:81,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:84,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:85,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:86,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:87,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:92,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:93,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:93,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:94,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:99,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:99,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:100,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:106,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:108,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:108,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 113
    functionName: tuple_setitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - NULLABLE
    - PyArg_ParseTuple
    - Py_XNewRef
    - PyTuple_Size
    - PyTuple_GetItem
    - PyTuple_SetItem
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_setitem(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/tuple.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: _PyTestLimitedCAPI_Init_Tuple
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/tuple.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Tuple(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:7,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:8,1
    - Dst: PySet_Check
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 9
    functionName: set_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Check
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:14,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:15,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: set_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_CheckExact
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_checkexact(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:21,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:22,1
    - Dst: PyFrozenSet_Check
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: frozenset_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PyFrozenSet_Check
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:28,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:29,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: frozenset_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - NULLABLE
    - PyFrozenSet_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_checkexact(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:35,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:36,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: anyset_check
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PyAnySet_Check
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anyset_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:42,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:43,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: anyset_checkexact
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PyAnySet_CheckExact
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anyset_checkexact(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:50,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: set_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_new(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:60,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: frozenset_new
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PyFrozenSet_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_new(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:69,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:70,1
    - Dst: PySet_Size
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: set_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Size
    - RETURN_SIZE
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_size(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:77,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:80,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:81,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:82,1
    - Dst: PySet_Contains
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: set_contains
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Contains
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_contains(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:89,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:92,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:93,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:94,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: set_add
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_add(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:101,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:104,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:105,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:106,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: set_discard
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Discard
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_discard(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:112,1
    - Dst: PySet_Pop
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: set_pop
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Pop
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_pop(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:119,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:120,1
    - Dst: PySet_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: set_clear
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Clear
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_clear(PyObject *self, PyObject *obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:128,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:132,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:136,1
    - Dst: PySet_Contains
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:153,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:154,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(obj)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 156
    functionName: test_frozenset_add_in_capi
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_SetString
    - PyFrozenSet_New
    - PyLong_FromLong
    - PySet_Contains
    - PySet_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_frozenset_add_in_capi(PyObject *self, PyObject *Py_UNUSED(obj))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: _PyTestLimitedCAPI_Init_Set
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Set(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_PACK_FULL_VERSION
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:34,1
    - Dst: Py_PACK_FULL_VERSION
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:37,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:40,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - module
    - major
    - minor
    - micro
    - level
    - serial
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (macro_result == func_result)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Modules/_testlimitedcapi/version.c
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: _testlimitedcapi_pack_full_version_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/version.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - assert
    - Py_PACK_FULL_VERSION
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testlimitedcapi_pack_full_version_impl(PyObject *module,
      int major,\n                                        int minor, int micro, int
      level,\n                                        int serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_PACK_VERSION
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:56,1
    - Dst: Py_PACK_VERSION
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:58,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:60,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - major
    - minor
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (macro_result == func_result)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Modules/_testlimitedcapi/version.c
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: _testlimitedcapi_pack_version_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/version.c
    functionUses: 0
    functionsReached:
    - Py_PACK_VERSION
    - PyLong_FromUnsignedLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_pack_version_impl(PyObject *module, int major, int minor)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/version.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: _PyTestLimitedCAPI_Init_Version
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/version.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Version(PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/heaptype_relative.c.h:36,1
    - Dst: make_heaptype_with_member_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/heaptype_relative.c.h:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: make_heaptype_with_member
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/heaptype_relative.c.h
    functionUses: 0
    functionsReached:
    - make_heaptype_with_member_impl
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_heaptype_with_member(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:24,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:28,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:29,1
    - Dst: _testcapi_pyfile_getline_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 36
    functionName: _testcapi_pyfile_getline
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsInt
    - _testcapi_pyfile_getline_impl
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyfile_getline(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:59,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:64,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:65,1
    - Dst: _testcapi_pyfile_writeobject_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: _testcapi_pyfile_writeobject
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/file.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _testcapi_pyfile_writeobject_impl
    - PyLong_AsInt
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_pyfile_writeobject(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:29,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:32,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:33,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:36,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:37,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:40,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:41,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:44,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:45,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:48,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:49,1
    - Dst: _testlimitedcapi_pack_full_version_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:52,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 56
    functionName: _testlimitedcapi_pack_full_version
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _testlimitedcapi_pack_full_version_impl
    - PyLong_AsInt
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_pack_full_version(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:77,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:80,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:81,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:84,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:85,1
    - Dst: _testlimitedcapi_pack_version_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: _testlimitedcapi_pack_version
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/version.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsInt
    - _testlimitedcapi_pack_version_impl
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_pack_version(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testlimitedcapi_test_long_api_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/long.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: _testlimitedcapi_test_long_api
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h
    functionUses: 0
    functionsReached:
    - _testlimitedcapi_test_long_api_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_api(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testlimitedcapi_test_longlong_api_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: _testlimitedcapi_test_longlong_api
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h
    functionUses: 0
    functionsReached:
    - _testlimitedcapi_test_longlong_api_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_longlong_api(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testlimitedcapi_test_long_and_overflow_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: _testlimitedcapi_test_long_and_overflow
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h
    functionUses: 0
    functionsReached:
    - _testlimitedcapi_test_long_and_overflow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_and_overflow(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testlimitedcapi_test_long_long_and_overflow_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: _testlimitedcapi_test_long_long_and_overflow
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h
    functionUses: 0
    functionsReached:
    - _testlimitedcapi_test_long_long_and_overflow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_long_and_overflow(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testlimitedcapi_test_long_as_size_t_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: _testlimitedcapi_test_long_as_size_t
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h
    functionUses: 0
    functionsReached:
    - _testlimitedcapi_test_long_as_size_t_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_as_size_t(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testlimitedcapi_test_long_as_unsigned_long_long_mask_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: _testlimitedcapi_test_long_as_unsigned_long_long_mask
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h
    functionUses: 0
    functionsReached:
    - _testlimitedcapi_test_long_as_unsigned_long_long_mask_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_as_unsigned_long_long_mask(PyObject *module, PyObject
      *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testlimitedcapi_test_long_as_double_impl
      Src: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: _testlimitedcapi_test_long_as_double
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/clinic/long.c.h
    functionUses: 0
    functionsReached:
    - _testlimitedcapi_test_long_as_double_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testlimitedcapi_test_long_as_double(PyObject *module, 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/cpython/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/cpython/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/cpython/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/cpython/Mac/PythonLauncher/MyAppDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: interface
    signature: interface MyAppDelegate
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/cpython/Mac/Tools/pythonw.c:64,1
    - Dst: strlen
      Src: /src/cpython/Mac/Tools/pythonw.c:68,1
    - Dst: malloc
      Src: /src/cpython/Mac/Tools/pythonw.c:70,1
    - Dst: strcpy
      Src: /src/cpython/Mac/Tools/pythonw.c:75,1
    - Dst: strcpy
      Src: /src/cpython/Mac/Tools/pythonw.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 87
    functionName: get_python_path
    functionSourceFile: /src/cpython/Mac/Tools/pythonw.c
    functionUses: 0
    functionsReached:
    - strcpy
    - dladdr
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char * get_python_path(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: posix_spawnattr_init
      Src: /src/cpython/Mac/Tools/pythonw.c:98,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:99,1
    - Dst: posix_spawnattr_setbinpref_np
      Src: /src/cpython/Mac/Tools/pythonw.c:130,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:132,1
    - Dst: fprintf
      Src: /src/cpython/Mac/Tools/pythonw.c:136,1
    - Dst: exit
      Src: /src/cpython/Mac/Tools/pythonw.c:137,1
    - Dst: posix_spawnattr_setflags
      Src: /src/cpython/Mac/Tools/pythonw.c:146,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - spawnattr
    argTypes:
    - posix_spawnattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 150
    functionName: setup_spawnattr
    functionSourceFile: /src/cpython/Mac/Tools/pythonw.c
    functionUses: 0
    functionsReached:
    - err
    - posix_spawnattr_setbinpref_np
    - posix_spawnattr_setflags
    - fprintf
    - posix_spawnattr_init
    - exit
    linkageType: ''
    returnType: void
    signature: void setup_spawnattr(posix_spawnattr_t* spawnattr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_python_path
      Src: /src/cpython/Mac/Tools/pythonw.c:155,1
    - Dst: _NSGetExecutablePath
      Src: /src/cpython/Mac/Tools/pythonw.c:162,1
    - Dst: strrchr
      Src: /src/cpython/Mac/Tools/pythonw.c:173,1
    - Dst: realpath
      Src: /src/cpython/Mac/Tools/pythonw.c:178,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:179,1
    - Dst: strlcat
      Src: /src/cpython/Mac/Tools/pythonw.c:182,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:184,1
    - Dst: realpath
      Src: /src/cpython/Mac/Tools/pythonw.c:188,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:189,1
    - Dst: strlcat
      Src: /src/cpython/Mac/Tools/pythonw.c:191,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:193,1
    - Dst: strlcat
      Src: /src/cpython/Mac/Tools/pythonw.c:195,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:197,1
    - Dst: setenv
      Src: /src/cpython/Mac/Tools/pythonw.c:210,1
    - Dst: setup_spawnattr
      Src: /src/cpython/Mac/Tools/pythonw.c:229,1
    - Dst: posix_spawn
      Src: /src/cpython/Mac/Tools/pythonw.c:230,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:232,1
    - Dst: execve
      Src: /src/cpython/Mac/Tools/pythonw.c:235,1
    - Dst: err
      Src: /src/cpython/Mac/Tools/pythonw.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 238
    functionName: main
    functionSourceFile: /src/cpython/Mac/Tools/pythonw.c
    functionUses: 6
    functionsReached:
    - setenv
    - setup_spawnattr
    - err
    - realpath
    - strlcat
    - posix_spawn
    - _NSGetExecutablePath
    - get_python_path
    - execve
    - strrchr
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/methodobject.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ml
    - self
    argTypes:
    - PyMethodDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: PyCFunction_New
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 4
    functionsReached:
    - PyCFunction_NewEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFunction_New(PyMethodDef *ml, PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCMethod_New
      Src: /src/cpython/Objects/methodobject.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ml
    - self
    - module
    argTypes:
    - PyMethodDef*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: PyCFunction_NewEx
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 4
    functionsReached:
    - PyCMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/methodobject.c:76,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/methodobject.c:85,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/methodobject.c:90,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/methodobject.c:92,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/methodobject.c:97,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/methodobject.c:101,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/methodobject.c:106,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/methodobject.c:108,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/methodobject.c:117,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/methodobject.c:118,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/methodobject.c:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 4
    argNames:
    - ml
    - self
    - module
    - cls
    argTypes:
    - PyMethodDef*
    - PyObject*
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 122
    functionName: PyCMethod_New
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_SetString
    - Py_NewRef
    - _Py_FREELIST_POP
    - Py_XNewRef
    - PyErr_Format
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCMethod_New(PyMethodDef *ml, PyObject *self, PyObject *module, PyTypeObject
      *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/cpython/Objects/methodobject.c:127,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/methodobject.c:128,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Objects/methodobject.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: PyCFunction_GetFunction
    functionSourceFile: /src/cpython/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/cpython/Objects/methodobject.c:137,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/methodobject.c:138,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: PyCFunction_GetSelf
    functionSourceFile: /src/cpython/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/cpython/Objects/methodobject.c:147,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/methodobject.c:148,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Objects/methodobject.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: PyCFunction_GetFlags
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyErr_BadInternalCall
    - PyCFunction_GET_FLAGS
    linkageType: ''
    returnType: int
    signature: int PyCFunction_GetFlags(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/cpython/Objects/methodobject.c:157,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/methodobject.c:158,1
    - Dst: PyCFunction_GET_CLASS
      Src: /src/cpython/Objects/methodobject.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: PyCMethod_GetClass
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyErr_BadInternalCall
    - PyCFunction_GET_CLASS
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      PyCMethod_GetClass(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:169,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/methodobject.c:170,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/methodobject.c:171,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/methodobject.c:178,1
    - Dst: PyCFunction_GET_CLASS
      Src: /src/cpython/Objects/methodobject.c:178,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/methodobject.c:179,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/methodobject.c:180,1
    - Dst: assert
      Src: /src/cpython/Objects/methodobject.c:182,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/methodobject.c:182,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/methodobject.c:183,1
    - Dst: assert
      Src: /src/cpython/Objects/methodobject.c:186,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/methodobject.c:186,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/methodobject.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(self, &PyCMethod_Type))
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/cpython/Objects/methodobject.c
    - condition: (Py_IS_TYPE(self, &PyCFunction_Type))
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/cpython/Objects/methodobject.c
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: meth_dealloc
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - PyCFunction_GET_CLASS
    - Py_IS_TYPE
    - _PyCFunctionObject_CAST
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void meth_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:194,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/methodobject.c:195,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/methodobject.c:196,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/methodobject.c:198,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/methodobject.c:198,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/methodobject.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: meth_reduce
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - _Py_ID
    - _PyCFunctionObject_CAST
    - PyModule_Check
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:210,1
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/cpython/Objects/methodobject.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: meth_get__text_signature__
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__text_signature__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:219,1
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/cpython/Objects/methodobject.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: meth_get__doc__
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__doc__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:226,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/methodobject.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: meth_get__name__
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__name__(PyObject *self, void *closure)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:242,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/methodobject.c:243,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/methodobject.c:244,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/methodobject.c:247,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/methodobject.c:247,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/methodobject.c:249,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/methodobject.c:249,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/methodobject.c:253,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/methodobject.c:254,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/methodobject.c:256,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/methodobject.c:260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/methodobject.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 263
    functionName: meth_get__qualname__
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_ID
    - PyErr_SetString
    - PyObject_GetAttr
    - _PyCFunctionObject_CAST
    - PyModule_Check
    - PyUnicode_Check
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__qualname__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:268,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/methodobject.c:269,1
    - Dst: PyCFunction_GET_CLASS
      Src: /src/cpython/Objects/methodobject.c:269,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/methodobject.c:270,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/methodobject.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: meth_traverse
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_CLASS
    - Py_VISIT
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: int
    signature: int meth_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:278,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:279,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/methodobject.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - meth
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: meth_get__self__
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_SELF
    - Py_NewRef
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__self__(PyObject *meth, 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: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:305,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/methodobject.c:306,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/methodobject.c:307,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/methodobject.c:311,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/methodobject.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 315
    functionName: meth_repr
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - Py_TYPE
    - PyUnicode_FromFormat
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/cpython/Objects/methodobject.c:325,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Objects/methodobject.c:326,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/methodobject.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 340
    functionName: meth_richcompare
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Objects/methodobject.c:345,1
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Objects/methodobject.c:346,1
    - Dst: Py_HashPointer
      Src: /src/cpython/Objects/methodobject.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 353
    functionName: meth_hash
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - Py_HashPointer
    - PyObject_GenericHash
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t meth_hash(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/methodobject.c:409,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/methodobject.c:409,1
    - Dst: assert
      Src: /src/cpython/Objects/methodobject.c:410,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Objects/methodobject.c:410,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/methodobject.c:411,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Objects/methodobject.c:412,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/methodobject.c:414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/methodobject.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - tstate
    - func
    - kwnames
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/cpython/Objects/methodobject.c
    - condition: (PyCFunction_Check(func))
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Objects/methodobject.c
    constantsTouched: []
    func_position:
      end: 421
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 421
    functionName: cfunction_check_kwargs
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyErr_Format
    - _PyObject_FunctionStr
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: int cfunction_check_kwargs(PyThreadState *tstate, PyObject *func, PyObject
      *kwnames)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/methodobject.c:428,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Objects/methodobject.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tstate
    - func
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 432
    functionName: cfunction_enter_call
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _Py_EnterRecursiveCallTstate
    - PyCFunction_GET_FUNCTION
    linkageType: ''
    returnType: funcptr
    signature: funcptr cfunction_enter_call(PyThreadState *tstate, PyObject *func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/methodobject.c:439,1
    - Dst: cfunction_check_kwargs
      Src: /src/cpython/Objects/methodobject.c:440,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/methodobject.c:443,1
    - Dst: cfunction_enter_call
      Src: /src/cpython/Objects/methodobject.c:445,1
    - Dst: meth
      Src: /src/cpython/Objects/methodobject.c:449,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:449,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/methodobject.c:450,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: 452
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 452
    functionName: cfunction_vectorcall_FASTCALL
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - cfunction_enter_call
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - cfunction_check_kwargs
    - meth
    - PyCFunction_GET_SELF
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_FASTCALL(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/methodobject.c:458,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/methodobject.c:459,1
    - Dst: cfunction_enter_call
      Src: /src/cpython/Objects/methodobject.c:461,1
    - Dst: meth
      Src: /src/cpython/Objects/methodobject.c:465,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:465,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/methodobject.c:466,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: 468
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: cfunction_vectorcall_FASTCALL_KEYWORDS
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - cfunction_enter_call
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - meth
    - PyCFunction_GET_SELF
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_FASTCALL_KEYWORDS(\n    PyObject
      *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/methodobject.c:474,1
    - Dst: PyCFunction_GET_CLASS
      Src: /src/cpython/Objects/methodobject.c:475,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/methodobject.c:476,1
    - Dst: cfunction_enter_call
      Src: /src/cpython/Objects/methodobject.c:477,1
    - Dst: meth
      Src: /src/cpython/Objects/methodobject.c:481,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:481,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/methodobject.c:482,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: 484
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 484
    functionName: cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - cfunction_enter_call
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - PyCFunction_GET_CLASS
    - meth
    - PyCFunction_GET_SELF
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_FASTCALL_KEYWORDS_METHOD(\n    PyObject
      *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/methodobject.c:490,1
    - Dst: cfunction_check_kwargs
      Src: /src/cpython/Objects/methodobject.c:491,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/methodobject.c:494,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Objects/methodobject.c:496,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/methodobject.c:498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/methodobject.c:500,1
    - Dst: cfunction_enter_call
      Src: /src/cpython/Objects/methodobject.c:504,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Objects/methodobject.c:508,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:509,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/methodobject.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 512
    functionName: cfunction_vectorcall_NOARGS
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyCFunction_TrampolineCall
    - Py_DECREF
    - cfunction_enter_call
    - _PyErr_Format
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - cfunction_check_kwargs
    - _PyObject_FunctionStr
    - PyCFunction_GET_SELF
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_NOARGS(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/methodobject.c:518,1
    - Dst: cfunction_check_kwargs
      Src: /src/cpython/Objects/methodobject.c:519,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/methodobject.c:522,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Objects/methodobject.c:524,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/methodobject.c:526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/methodobject.c:528,1
    - Dst: cfunction_enter_call
      Src: /src/cpython/Objects/methodobject.c:532,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Objects/methodobject.c:536,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:537,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/methodobject.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 540
    functionName: cfunction_vectorcall_O
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyCFunction_TrampolineCall
    - Py_DECREF
    - cfunction_enter_call
    - _PyErr_Format
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - cfunction_check_kwargs
    - _PyObject_FunctionStr
    - PyCFunction_GET_SELF
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_O(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/methodobject.c:546,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/methodobject.c:546,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/methodobject.c:548,1
    - Dst: assert
      Src: /src/cpython/Objects/methodobject.c:549,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/methodobject.c:549,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Objects/methodobject.c:551,1
    - Dst: PyVectorcall_Call
      Src: /src/cpython/Objects/methodobject.c:554,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Objects/methodobject.c:559,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/methodobject.c:560,1
    - Dst: _PyCFunctionWithKeywords_TrampolineCall
      Src: /src/cpython/Objects/methodobject.c:564,1
    - Dst: _PyCFunctionWithKeywords_CAST
      Src: /src/cpython/Objects/methodobject.c:565,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/methodobject.c:569,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/methodobject.c:570,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Objects/methodobject.c:575,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/cpython/Objects/methodobject.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - func
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 545
        line_start: 545
        source_file: /src/cpython/Objects/methodobject.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/cpython/Objects/methodobject.c
    constantsTouched: []
    func_position:
      end: 578
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 578
    functionName: cfunction_call
    functionSourceFile: /src/cpython/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyCFunctionWithKeywords_CAST
    - _PyCFunction_TrampolineCall
    - PyDict_GET_SIZE
    - _PyErr_Format
    - PyVectorcall_Call
    - PyCFunction_GET_FUNCTION
    - _PyThreadState_GET
    - _Py_CheckFunctionResult
    - PyCFunction_GET_SELF
    - _PyCFunctionWithKeywords_TrampolineCall
    - PyDict_Check
    - PyCFunction_GET_FLAGS
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cfunction_call(PyObject *func, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: _PyCell_CAST
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCell_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/cellobject.c:15,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/cellobject.c:18,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/cellobject.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 22
    functionName: PyCell_New
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCell_New(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/cellobject.c:42,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/cellobject.c:46,1
    - Dst: PyCell_New
      Src: /src/cpython/Objects/cellobject.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: cell_new
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    - _PyArg_NoKeywords
    - PyCell_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/cellobject.c:58,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/cellobject.c:59,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/cellobject.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: PyCell_Get
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyCell_Check
    - PyErr_BadInternalCall
    - PyCell_GetRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCell_Get(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/cellobject.c:68,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/cellobject.c:69,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Objects/cellobject.c:72,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/cellobject.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: PyCell_Set
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyCell_Check
    - PyErr_BadInternalCall
    - PyCell_SetTakeRef
    - Py_XNewRef
    linkageType: ''
    returnType: int
    signature: int PyCell_Set(PyObject *op, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCell_CAST
      Src: /src/cpython/Objects/cellobject.c:79,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/cellobject.c:80,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/cellobject.c:81,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/cellobject.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: cell_dealloc
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyCell_CAST
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void cell_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/cellobject.c:89,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/cellobject.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: cell_compare_impl
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_compare_impl(PyObject *a, PyObject *b, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/cellobject.c:100,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/cellobject.c:103,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/cellobject.c:103,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/cellobject.c:106,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/cellobject.c:107,1
    - Dst: cell_compare_impl
      Src: /src/cpython/Objects/cellobject.c:110,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/cellobject.c:112,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/cellobject.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (a != NULL && b != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/cpython/Objects/cellobject.c
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: cell_richcompare
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyCell_Check
    - PyCell_GetRef
    - cell_compare_impl
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_richcompare(PyObject *a, PyObject *b, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/cellobject.c:120,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/cellobject.c:122,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/cellobject.c:124,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/cellobject.c:125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/cellobject.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: cell_repr
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyCell_GetRef
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCell_CAST
      Src: /src/cpython/Objects/cellobject.c:133,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/cellobject.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: cell_traverse
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - _PyCell_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cell_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCell_CAST
      Src: /src/cpython/Objects/cellobject.c:141,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/cellobject.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: cell_clear
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - _PyCell_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int cell_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCell_CAST
      Src: /src/cpython/Objects/cellobject.c:149,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/cellobject.c:150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/cellobject.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: cell_get_contents
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyCell_CAST
    - PyCell_GetRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_get_contents(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCell_CAST
      Src: /src/cpython/Objects/cellobject.c:161,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/cellobject.c:162,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Objects/cellobject.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - obj
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: cell_set_contents
    functionSourceFile: /src/cpython/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyCell_SetTakeRef
    - _PyCell_CAST
    linkageType: ''
    returnType: int
    signature: int cell_set_contents(PyObject *self, 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: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: GET_WEAKREFS_LISTPTR
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WEAKREFS_LISTPTR(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:44,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:44,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:48,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/weakrefobject.c:50,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: _PyWeakref_GetWeakrefCount
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 1
    functionsReached:
    - UNLOCK_WEAKREFS
    - GET_WEAKREFS_LISTPTR
    - LOCK_WEAKREFS
    - Py_TYPE
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyWeakref_GetWeakrefCount(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/weakrefobject.c:68,1
    - Dst: WEAKREF_LIST_LOCK
      Src: /src/cpython/Objects/weakrefobject.c:71,1
    - Dst: _PyObject_SetMaybeWeakref
      Src: /src/cpython/Objects/weakrefobject.c:72,1
    - Dst: _PyObject_SetMaybeWeakref
      Src: /src/cpython/Objects/weakrefobject.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - self
    - ob
    - callback
    argTypes:
    - PyWeakReference*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: init_weakref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetMaybeWeakref
    - WEAKREF_LIST_LOCK
    - Py_XNewRef
    linkageType: ''
    returnType: void
    signature: void init_weakref(PyWeakReference *self, PyObject *ob, PyObject *callback)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/weakrefobject.c:82,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/weakrefobject.c:87,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/weakrefobject.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - callback
    argTypes:
    - PyWeakReference*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 103
    functionName: clear_weakref_lock_held
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - GET_WEAKREFS_LISTPTR
    - FT_ATOMIC_STORE_PTR
    linkageType: ''
    returnType: void
    signature: void clear_weakref_lock_held(PyWeakReference *self, PyObject **callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_CAST
      Src: /src/cpython/Objects/weakrefobject.c:109,1
    - Dst: LOCK_WEAKREFS_FOR_WR
      Src: /src/cpython/Objects/weakrefobject.c:114,1
    - Dst: clear_weakref_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:115,1
    - Dst: UNLOCK_WEAKREFS_FOR_WR
      Src: /src/cpython/Objects/weakrefobject.c:116,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/weakrefobject.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: clear_weakref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_CAST
    - clear_weakref_lock_held
    - Py_XDECREF
    - UNLOCK_WEAKREFS_FOR_WR
    - LOCK_WEAKREFS_FOR_WR
    linkageType: ''
    returnType: void
    signature: void clear_weakref(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:135,1
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:136,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Objects/weakrefobject.c:136,1
    - Dst: clear_weakref_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/cpython/Objects/weakrefobject.c
    - condition: (PyWeakref_Check(self))
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/cpython/Objects/weakrefobject.c
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: _PyWeakref_ClearRef
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - clear_weakref_lock_held
    - assert
    - PyWeakref_Check
    linkageType: ''
    returnType: void
    signature: void _PyWeakref_ClearRef(PyWeakReference *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/weakrefobject.c:143,1
    - Dst: clear_weakref
      Src: /src/cpython/Objects/weakrefobject.c:144,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: weakref_dealloc
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - clear_weakref
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void weakref_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_CAST
      Src: /src/cpython/Objects/weakrefobject.c:152,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/weakrefobject.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: gc_traverse
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int gc_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_CAST
      Src: /src/cpython/Objects/weakrefobject.c:161,1
    - Dst: clear_weakref_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:165,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/weakrefobject.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: gc_clear
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 3
    functionsReached:
    - _PyWeakref_CAST
    - clear_weakref_lock_held
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int gc_clear(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/weakrefobject.c:175,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/weakrefobject.c:178,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/weakrefobject.c:179,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 187
    functionName: weakref_vectorcall
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - _PyArg_CheckPositional
    - _PyWeakref_GET_REF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nweakref_vectorcall(PyObject *self, PyObject *const *args,\n
      \                  size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:194,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/weakrefobject.c:196,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/weakrefobject.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: weakref_hash_lock_held
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_Hash
    - _PyWeakref_GET_REF
    - Py_DECREF
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t weakref_hash_lock_held(PyWeakReference *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_CAST
      Src: /src/cpython/Objects/weakrefobject.c:207,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/weakrefobject.c:209,1
    - Dst: weakref_hash_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:210,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/weakrefobject.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: weakref_hash
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_CAST
    - weakref_hash_lock_held
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t weakref_hash(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:218,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/weakrefobject.c:220,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/weakrefobject.c:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/weakrefobject.c:223,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/weakrefobject.c:225,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/weakrefobject.c:226,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/weakrefobject.c:231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:235,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/weakrefobject.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 238
    functionName: weakref_repr
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_ID
    - _PyObject_LookupSpecial
    - _PyWeakref_GET_REF
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref_repr(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_Check
      Src: /src/cpython/Objects/weakrefobject.c:248,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Objects/weakrefobject.c:249,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:252,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:253,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/weakrefobject.c:255,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/weakrefobject.c:256,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/weakrefobject.c:265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 269
    functionName: weakref_richcompare
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_RichCompare
    - PyWeakref_Check
    - _PyWeakref_GET_REF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref_richcompare(PyObject* self, PyObject* other, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Objects/weakrefobject.c:287,1
    - Dst: PyWeakref_CheckProxy
      Src: /src/cpython/Objects/weakrefobject.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - head
    - refp
    - proxyp
    argTypes:
    - PyWeakReference*
    - PyWeakReference**
    - PyWeakReference**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: get_basic_refs
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyWeakref_CheckRefExact
    - PyWeakref_CheckProxy
    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: 309
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: insert_after
    functionSourceFile: /src/cpython/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: 324
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 324
    functionName: insert_head
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insert_head(PyWeakReference *newref, PyWeakReference **list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_basic_refs
      Src: /src/cpython/Objects/weakrefobject.c:338,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Objects/weakrefobject.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - list
    - type
    - callback
    argTypes:
    - PyWeakReference*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 353
    functionName: try_reuse_basic_ref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _Py_TryIncref
    - get_basic_refs
    linkageType: ''
    returnType: PyWeakReference
    signature: "PyWeakReference *\ntry_reuse_basic_ref(PyWeakReference *list, PyTypeObject
      *type,\n                    PyObject *callback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Objects/weakrefobject.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: is_basic_ref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyWeakref_CheckRefExact
    linkageType: ''
    returnType: int
    signature: int is_basic_ref(PyWeakReference *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_CheckProxy
      Src: /src/cpython/Objects/weakrefobject.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: is_basic_proxy
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyWeakref_CheckProxy
    linkageType: ''
    returnType: int
    signature: int is_basic_proxy(PyWeakReference *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_basic_ref
      Src: /src/cpython/Objects/weakrefobject.c:370,1
    - Dst: is_basic_proxy
      Src: /src/cpython/Objects/weakrefobject.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - wr
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: is_basic_ref_or_proxy
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - is_basic_ref
    - is_basic_proxy
    linkageType: ''
    returnType: int
    signature: int is_basic_ref_or_proxy(PyWeakReference *wr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_basic_refs
      Src: /src/cpython/Objects/weakrefobject.c:378,1
    - Dst: is_basic_ref
      Src: /src/cpython/Objects/weakrefobject.c:381,1
    - Dst: is_basic_proxy
      Src: /src/cpython/Objects/weakrefobject.c:384,1
    - Dst: insert_head
      Src: /src/cpython/Objects/weakrefobject.c:392,1
    - Dst: insert_after
      Src: /src/cpython/Objects/weakrefobject.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - newref
    - list
    argTypes:
    - PyWeakReference*
    - PyWeakReference**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 397
    functionName: insert_weakref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - get_basic_refs
    - insert_after
    - insert_head
    - is_basic_ref
    - is_basic_proxy
    linkageType: ''
    returnType: void
    signature: void insert_weakref(PyWeakReference *newref, PyWeakReference **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/weakrefobject.c:402,1
    - Dst: init_weakref
      Src: /src/cpython/Objects/weakrefobject.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - obj
    - callback
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: allocate_weakref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - init_weakref
    linkageType: ''
    returnType: PyWeakReference
    signature: 'PyWeakReference *

      allocate_weakref(PyTypeObject *type, PyObject *obj, PyObject *callback)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:413,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:413,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/weakrefobject.c:414,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:416,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/weakrefobject.c:422,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:427,1
    - Dst: try_reuse_basic_ref
      Src: /src/cpython/Objects/weakrefobject.c:428,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:430,1
    - Dst: allocate_weakref
      Src: /src/cpython/Objects/weakrefobject.c:433,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:435,1
    - Dst: insert_weakref
      Src: /src/cpython/Objects/weakrefobject.c:438,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:439,1
    - Dst: allocate_weakref
      Src: /src/cpython/Objects/weakrefobject.c:444,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:448,1
    - Dst: insert_weakref
      Src: /src/cpython/Objects/weakrefobject.c:449,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - type
    - obj
    - callback
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 453
    functionName: get_or_create_weakref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - try_reuse_basic_ref
    - UNLOCK_WEAKREFS
    - GET_WEAKREFS_LISTPTR
    - insert_weakref
    - allocate_weakref
    - LOCK_WEAKREFS
    - PyErr_Format
    - Py_TYPE
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: PyWeakReference
    signature: 'PyWeakReference *

      get_or_create_weakref(PyTypeObject *type, PyObject *obj, PyObject *callback)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/weakrefobject.c:459,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: 460
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: parse_weakref_init_args
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_weakref_init_args
      Src: /src/cpython/Objects/weakrefobject.c:466,1
    - Dst: get_or_create_weakref
      Src: /src/cpython/Objects/weakrefobject.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: weakref___new__
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - get_or_create_weakref
    - parse_weakref_init_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref___new__(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/weakrefobject.c:477,1
    - Dst: parse_weakref_init_args
      Src: /src/cpython/Objects/weakrefobject.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 484
    functionName: weakref___init__
    functionSourceFile: /src/cpython/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: PyErr_SetString
      Src: /src/cpython/Objects/weakrefobject.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 531
    functionName: proxy_check_ref
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: bool
    signature: bool proxy_check_ref(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 548
    functionName: UNWRAP
    functionSourceFile: /src/cpython/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: 557
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 557
    functionName: WRAP_UNARY
    functionSourceFile: /src/cpython/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: 568
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 568
    functionName: WRAP_BINARY
    functionSourceFile: /src/cpython/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: 586
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 586
    functionName: WRAP_TERNARY
    functionSourceFile: /src/cpython/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: 595
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 595
    functionName: WRAP_METHOD
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_METHOD(method, SPECIAL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:606,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/weakrefobject.c:609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:612,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/weakrefobject.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 620
    functionName: proxy_repr
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_DECREF
    - _PyWeakref_GET_REF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_repr(PyObject *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:626,1
    - Dst: proxy_check_ref
      Src: /src/cpython/Objects/weakrefobject.c:627,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/weakrefobject.c:630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - proxy
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 633
    functionName: proxy_setattr
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - Py_DECREF
    - _PyWeakref_GET_REF
    - proxy_check_ref
    linkageType: ''
    returnType: int
    signature: int proxy_setattr(PyObject *proxy, PyObject *name, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNWRAP
      Src: /src/cpython/Objects/weakrefobject.c:638,1
    - Dst: UNWRAP
      Src: /src/cpython/Objects/weakrefobject.c:639,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/weakrefobject.c:640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - proxy
    - v
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 644
    functionName: proxy_richcompare
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - UNWRAP
    - PyObject_RichCompare
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_richcompare(PyObject *proxy, PyObject *v, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:685,1
    - Dst: proxy_check_ref
      Src: /src/cpython/Objects/weakrefobject.c:686,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/weakrefobject.c:689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 692
    functionName: proxy_bool
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - _PyWeakref_GET_REF
    - proxy_check_ref
    linkageType: ''
    returnType: int
    signature: int proxy_bool(PyObject *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/weakrefobject.c:697,1
    - Dst: clear_weakref
      Src: /src/cpython/Objects/weakrefobject.c:698,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/weakrefobject.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 694
    functionDepth: 3
    functionLinenumber: 694
    functionLinenumberEnd: 700
    functionName: proxy_dealloc
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - clear_weakref
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void proxy_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:707,1
    - Dst: proxy_check_ref
      Src: /src/cpython/Objects/weakrefobject.c:708,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/weakrefobject.c:711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - proxy
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 714
    functionName: proxy_contains
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - Py_DECREF
    - _PyWeakref_GET_REF
    - proxy_check_ref
    linkageType: ''
    returnType: int
    signature: int proxy_contains(PyObject *proxy, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:721,1
    - Dst: proxy_check_ref
      Src: /src/cpython/Objects/weakrefobject.c:722,1
    - Dst: PyObject_Length
      Src: /src/cpython/Objects/weakrefobject.c:725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: proxy_length
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Length
    - Py_DECREF
    - _PyWeakref_GET_REF
    - proxy_check_ref
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t proxy_length(PyObject *proxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:735,1
    - Dst: proxy_check_ref
      Src: /src/cpython/Objects/weakrefobject.c:736,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Objects/weakrefobject.c:741,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/weakrefobject.c:743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - proxy
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 747
    functionName: proxy_setitem
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_DelItem
    - PyObject_SetItem
    - proxy_check_ref
    - _PyWeakref_GET_REF
    linkageType: ''
    returnType: int
    signature: int proxy_setitem(PyObject *proxy, PyObject *key, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:754,1
    - Dst: proxy_check_ref
      Src: /src/cpython/Objects/weakrefobject.c:755,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/weakrefobject.c:758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 761
    functionName: proxy_iter
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - _PyWeakref_GET_REF
    - proxy_check_ref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_iter(PyObject *proxy)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:766,1
    - Dst: proxy_check_ref
      Src: /src/cpython/Objects/weakrefobject.c:767,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/weakrefobject.c:770,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/weakrefobject.c:771,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:774,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/weakrefobject.c:777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 780
    functionName: proxy_iternext
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyIter_Next
    - proxy_check_ref
    - _PyWeakref_GET_REF
    - PyErr_Format
    - PyIter_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_iternext(PyObject *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_or_create_weakref
      Src: /src/cpython/Objects/weakrefobject.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 923
    functionName: PyWeakref_NewRef
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 9
    functionsReached:
    - get_or_create_weakref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWeakref_NewRef(PyObject *ob, PyObject *callback)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/weakrefobject.c:929,1
    - Dst: get_or_create_weakref
      Src: /src/cpython/Objects/weakrefobject.c:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ob
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 933
    functionName: PyWeakref_NewProxy
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 2
    functionsReached:
    - get_or_create_weakref
    - PyCallable_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWeakref_NewProxy(PyObject *ob, PyObject *callback)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/weakrefobject.c:939,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Objects/weakrefobject.c:942,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/weakrefobject.c:943,1
    - Dst: _PyWeakref_IS_DEAD
      Src: /src/cpython/Objects/weakrefobject.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 947
    functionName: PyWeakref_IsDead
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 2
    functionsReached:
    - PyErr_Format
    - PyErr_BadInternalCall
    - _PyWeakref_IS_DEAD
    - PyWeakref_Check
    linkageType: ''
    returnType: int
    signature: int PyWeakref_IsDead(PyObject *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/weakrefobject.c:954,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Objects/weakrefobject.c:957,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/weakrefobject.c:959,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ref
    - pobj
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 964
    functionName: PyWeakref_GetRef
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 10
    functionsReached:
    - PyErr_BadInternalCall
    - PyErr_SetString
    - _PyWeakref_GET_REF
    - PyWeakref_Check
    linkageType: ''
    returnType: int
    signature: int PyWeakref_GetRef(PyObject *ref, PyObject **pobj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_Check
      Src: /src/cpython/Objects/weakrefobject.c:970,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/weakrefobject.c:971,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 980
    functionName: PyWeakref_GetObject
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - Py_DECREF
    - _PyWeakref_GET_REF
    - PyWeakref_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWeakref_GetObject(PyObject *ref)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/weakrefobject.c:988,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/weakrefobject.c:991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - callback
    argTypes:
    - PyWeakReference*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 997
    functionName: handle_callback
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void handle_callback(PyWeakReference *ref, PyObject *callback)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1011,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:1011,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/weakrefobject.c:1012,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/weakrefobject.c:1014,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/weakrefobject.c:1018,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Objects/weakrefobject.c:1019,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1028,1
    - Dst: is_basic_ref_or_proxy
      Src: /src/cpython/Objects/weakrefobject.c:1029,1
    - Dst: clear_weakref_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:1031,1
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:1032,1
    - Dst: is_basic_ref_or_proxy
      Src: /src/cpython/Objects/weakrefobject.c:1034,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1035,1
    - Dst: _PyWeakref_GetWeakrefCount
      Src: /src/cpython/Objects/weakrefobject.c:1039,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/weakrefobject.c:1044,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/weakrefobject.c:1045,1
    - Dst: _PyWeakref_ClearWeakRefsNoCallbacks
      Src: /src/cpython/Objects/weakrefobject.c:1047,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/weakrefobject.c:1048,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/weakrefobject.c:1050,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1057,1
    - Dst: clear_weakref_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:1060,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Objects/weakrefobject.c:1061,1
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:1062,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1063,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1064,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1070,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/weakrefobject.c:1072,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1076,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1078,1
    - Dst: handle_callback
      Src: /src/cpython/Objects/weakrefobject.c:1079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:1083,1
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:1085,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/weakrefobject.c:1085,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/weakrefobject.c:1086,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - object
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (num_items / 2 < num_weakrefs)
      pos:
        line_end: 1061
        line_start: 1061
        source_file: /src/cpython/Objects/weakrefobject.c
    - condition: (callback == NULL)
      pos:
        line_end: 1031
        line_start: 1031
        source_file: /src/cpython/Objects/weakrefobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/cpython/Objects/weakrefobject.c
    constantsTouched: []
    func_position:
      end: 1087
      start: 1005
    functionDepth: 3
    functionLinenumber: 1005
    functionLinenumberEnd: 1087
    functionName: PyObject_ClearWeakRefs
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 9
    functionsReached:
    - Py_XDECREF
    - GET_WEAKREFS_LISTPTR
    - handle_callback
    - PyErr_FormatUnraisable
    - PyTuple_New
    - PyErr_Occurred
    - _PyWeakref_ClearWeakRefsNoCallbacks
    - PyTuple_GET_ITEM
    - _Py_TryIncref
    - _PyType_SUPPORTS_WEAKREFS
    - PyErr_SetRaisedException
    - clear_weakref_lock_held
    - UNLOCK_WEAKREFS
    - Py_DECREF
    - _PyWeakref_GetWeakrefCount
    - PyErr_GetRaisedException
    - FT_ATOMIC_LOAD_PTR
    - is_basic_ref_or_proxy
    - Py_TYPE
    - PyErr_BadInternalCall
    - PyTuple_SET_ITEM
    - LOCK_WEAKREFS
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void PyObject_ClearWeakRefs(PyObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1092,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:1092,1
    - Dst: _PyWeakref_ClearWeakRefsNoCallbacks
      Src: /src/cpython/Objects/weakrefobject.c:1093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1095
    functionName: PyUnstable_Object_ClearWeakRefsNoCallbacks
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 1
    functionsReached:
    - _PyWeakref_ClearWeakRefsNoCallbacks
    - Py_TYPE
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: void
    signature: void PyUnstable_Object_ClearWeakRefsNoCallbacks(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/weakrefobject.c:1106,1
    - Dst: _PyStaticType_GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/weakrefobject.c:1107,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Objects/weakrefobject.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - type
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1103
    functionDepth: 3
    functionLinenumber: 1103
    functionLinenumberEnd: 1113
    functionName: _PyStaticType_ClearWeakRefs
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_ClearRef
    - _PyStaticType_GetState
    - _PyStaticType_GET_WEAKREFS_LISTPTR
    linkageType: ''
    returnType: void
    signature: void _PyStaticType_ClearWeakRefs(PyInterpreterState *interp, PyTypeObject
      *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Objects/weakrefobject.c:1122,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1123,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Objects/weakrefobject.c:1125,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1115
    functionDepth: 3
    functionLinenumber: 1115
    functionLinenumberEnd: 1128
    functionName: _PyWeakref_ClearWeakRefsNoCallbacks
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 2
    functionsReached:
    - _PyWeakref_ClearRef
    - UNLOCK_WEAKREFS
    - LOCK_WEAKREFS
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    linkageType: ''
    returnType: void
    signature: void _PyWeakref_ClearWeakRefsNoCallbacks(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_IS_DEAD
      Src: /src/cpython/Objects/weakrefobject.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - weakref
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1134
    functionName: _PyWeakref_IsDead
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 1
    functionsReached:
    - _PyWeakref_IS_DEAD
    linkageType: ''
    returnType: int
    signature: int _PyWeakref_IsDead(PyObject *weakref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/interpolationobject.c:15,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/interpolationobject.c:16,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/interpolationobject.c:23,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/interpolationobject.c:25,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - arg
    - conversion
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 32
    functionName: _conversion_converter
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _conversion_converter(PyObject *arg, PyObject **conversion)
  - 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: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: interpolationobject_CAST
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interpolationobject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/interpolationobject.c:68,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:73,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:74,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:75,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:76,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/interpolationobject.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - type
    - value
    - expression
    - conversion
    - format_spec
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: interpolation_new_impl
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ninterpolation_new_impl(PyTypeObject *type, PyObject *value,\n
      \                      PyObject *expression, PyObject *conversion,\n                       PyObject
      *format_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/interpolationobject.c:84,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/interpolationobject.c:85,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/interpolationobject.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: interpolation_dealloc
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void interpolation_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interpolationobject_CAST
      Src: /src/cpython/Objects/interpolationobject.c:92,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/interpolationobject.c:93,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/interpolationobject.c:94,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/interpolationobject.c:95,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/interpolationobject.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: interpolation_clear
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - interpolationobject_CAST
    linkageType: ''
    returnType: int
    signature: int interpolation_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interpolationobject_CAST
      Src: /src/cpython/Objects/interpolationobject.c:103,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/interpolationobject.c:104,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/interpolationobject.c:105,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/interpolationobject.c:106,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/interpolationobject.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: interpolation_traverse
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - interpolationobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int interpolation_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interpolationobject_CAST
      Src: /src/cpython/Objects/interpolationobject.c:114,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/interpolationobject.c:115,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/interpolationobject.c:116,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/interpolationobject.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: interpolation_repr
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - _PyType_Name
    - interpolationobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpolation_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interpolationobject_CAST
      Src: /src/cpython/Objects/interpolationobject.c:131,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/interpolationobject.c:132,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/interpolationobject.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: interpolation_reduce
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - interpolationobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpolation_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/interpolationobject.c:166,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/interpolationobject.c:171,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/interpolationobject.c:173,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/interpolationobject.c:177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/interpolationobject.c:178,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/interpolationobject.c:182,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/interpolationobject.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: _PyInterpolation_InitTypes
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - Py_BuildValue
    - Py_DECREF
    - PyDict_SetItemString
    - _PyStatus_ERR
    - _PyType_GetDict
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyInterpolation_InitTypes(PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/interpolationobject.c:191,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:196,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:197,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:198,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Objects/interpolationobject.c:207,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Objects/interpolationobject.c:210,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Objects/interpolationobject.c:213,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/interpolationobject.c:216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/interpolationobject.c:218,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/interpolationobject.c:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - value
    - str
    - conversion
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 225
    functionName: _PyInterpolation_Build
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_LATIN1_CHR
    - PyErr_SetString
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInterpolation_Build(PyObject *value, PyObject *str, int conversion, PyObject
      *format_spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/interpolationobject.c:230,1
    - Dst: interpolationobject_CAST
      Src: /src/cpython/Objects/interpolationobject.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interpolation
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: _PyInterpolation_GetValueRef
    functionSourceFile: /src/cpython/Objects/interpolationobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - interpolationobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInterpolation_GetValueRef(PyObject *interpolation)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Objects/object.c:52,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/object.c:52,1
    - Dst: CHECK
      Src: /src/cpython/Objects/object.c:53,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:53,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/object.c:55,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:55,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:57,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/object.c:58,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/object.c:60,1
    - Dst: _PyDict_CheckConsistency
      Src: /src/cpython/Objects/object.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: _PyObject_CheckConsistency
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - _PyDict_CheckConsistency
    - _PyType_CheckConsistency
    - _PyObject_IsFreed
    - _PyUnicode_CheckConsistency
    - CHECK
    - PyUnicode_Check
    - Py_TYPE
    - Py_REFCNT
    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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: CHECK
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: get_legacy_reftotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_legacy_reftotal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: REFTOTAL
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTOTAL(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/object.c:92,1
    - Dst: REFTOTAL
      Src: /src/cpython/Objects/object.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - n
    argTypes:
    - PyThreadState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: reftotal_add
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFTOTAL
    - _Py_atomic_store_ssize_relaxed
    linkageType: ''
    returnType: void
    signature: void reftotal_add(PyThreadState *tstate, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_global_reftotal
      Src: /src/cpython/Objects/object.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: _Py_FinalizeRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - get_global_reftotal
    linkageType: ''
    returnType: void
    signature: void _Py_FinalizeRefTotal(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTOTAL
      Src: /src/cpython/Objects/object.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: _PyInterpreterState_FinalizeRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFTOTAL
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_FinalizeRefTotal(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: REFTOTAL
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void REFTOTAL(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTOTAL
      Src: /src/cpython/Objects/object.c:125,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/object.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: get_reftotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - REFTOTAL
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_reftotal(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/object.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/cpython/Objects/object.c:142,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Objects/object.c:143,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Objects/object.c:144,1
    - Dst: get_reftotal
      Src: /src/cpython/Objects/object.c:145,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Objects/object.c:147,1
    - Dst: get_legacy_reftotal
      Src: /src/cpython/Objects/object.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: get_global_reftotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - get_reftotal
    - get_legacy_reftotal
    - HEAD_LOCK
    - PyInterpreterState_Next
    - HEAD_UNLOCK
    - PyInterpreterState_Head
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_global_reftotal(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:162,1
    - Dst: get_global_reftotal
      Src: /src/cpython/Objects/object.c:164,1
    - Dst: _Py_GetGlobalAllocatedBlocks
      Src: /src/cpython/Objects/object.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: _PyDebug_PrintTotalRefs
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _Py_GetGlobalAllocatedBlocks
    - get_global_reftotal
    linkageType: ''
    returnType: void
    signature: void _PyDebug_PrintTotalRefs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: REFCHAIN
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFCHAIN(interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/object.c:183,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/object.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: has_own_refchain
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: int
    signature: int has_own_refchain(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_own_refchain
      Src: /src/cpython/Objects/object.c:192,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:194,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:194,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/object.c:194,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:203,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Objects/object.c:203,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 210
    functionName: refchain_init
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFCHAIN
    - _Py_hashtable_new_full
    - _PyInterpreterState_Main
    - has_own_refchain
    linkageType: ''
    returnType: int
    signature: int refchain_init(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_own_refchain
      Src: /src/cpython/Objects/object.c:215,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:215,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Objects/object.c:216,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:216,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: refchain_fini
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFCHAIN
    - _Py_hashtable_destroy
    - has_own_refchain
    linkageType: ''
    returnType: void
    signature: void refchain_fini(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Objects/object.c:224,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - obj
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: _PyRefchain_IsTraced
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFCHAIN
    - _Py_hashtable_get
    linkageType: ''
    returnType: bool
    signature: bool _PyRefchain_IsTraced(PyInterpreterState *interp, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Objects/object.c:231,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:231,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/object.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - obj
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: _PyRefchain_Trace
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFCHAIN
    - _Py_hashtable_set
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _PyRefchain_Trace(PyInterpreterState *interp, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_steal
      Src: /src/cpython/Objects/object.c:242,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:242,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - obj
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts:
    - condition: (value == REFCHAIN_VALUE)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: _PyRefchain_Remove
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_steal
    - assert
    - REFCHAIN
    linkageType: ''
    returnType: void
    signature: void _PyRefchain_Remove(PyInterpreterState *interp, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/object.c:260,1
    - Dst: _PyRefchain_IsTraced
      Src: /src/cpython/Objects/object.c:261,1
    - Dst: _PyRefchain_Trace
      Src: /src/cpython/Objects/object.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: _Py_AddToAllObjects
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyRefchain_IsTraced
    - _PyInterpreterState_GET
    - _PyRefchain_Trace
    linkageType: ''
    returnType: void
    signature: void _Py_AddToAllObjects(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_AssertFailed
      Src: /src/cpython/Objects/object.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - lineno
    - op
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: _Py_NegativeRefcount
    functionSourceFile: /src/cpython/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: reftotal_add
      Src: /src/cpython/Objects/object.c:280,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: _Py_INCREF_IncRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - reftotal_add
    linkageType: ''
    returnType: void
    signature: void _Py_INCREF_IncRefTotal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftotal_add
      Src: /src/cpython/Objects/object.c:287,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: _Py_DECREF_DecRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - reftotal_add
    linkageType: ''
    returnType: void
    signature: void _Py_DECREF_DecRefTotal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftotal_add
      Src: /src/cpython/Objects/object.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: _Py_IncRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - reftotal_add
    linkageType: ''
    returnType: void
    signature: void _Py_IncRefTotal(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftotal_add
      Src: /src/cpython/Objects/object.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: _Py_DecRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - reftotal_add
    linkageType: ''
    returnType: void
    signature: void _Py_DecRefTotal(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftotal_add
      Src: /src/cpython/Objects/object.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - n
    argTypes:
    - PyThreadState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: _Py_AddRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - reftotal_add
    linkageType: ''
    returnType: void
    signature: void _Py_AddRefTotal(PyThreadState *tstate, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_global_reftotal
      Src: /src/cpython/Objects/object.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: _Py_GetGlobalRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - get_global_reftotal
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetGlobalRefTotal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_legacy_reftotal
      Src: /src/cpython/Objects/object.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: _Py_GetLegacyRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - get_legacy_reftotal
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetLegacyRefTotal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/cpython/Objects/object.c:325,1
    - Dst: get_reftotal
      Src: /src/cpython/Objects/object.c:326,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Objects/object.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: _PyInterpreterState_GetRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - get_reftotal
    - HEAD_UNLOCK
    - HEAD_LOCK
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyInterpreterState_GetRefTotal(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/object.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: Py_IncRef
    functionSourceFile: /src/cpython/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/cpython/Objects/object.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: Py_DecRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void Py_DecRef(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: _Py_IncRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _Py_IncRef(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: _Py_DecRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _Py_DecRef(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 367
    functionName: is_dead
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_dead(PyObject *o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/object.c:379,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Objects/object.c:397,1
    - Dst: is_dead
      Src: /src/cpython/Objects/object.c:398,1
    - Dst: _Py_NegativeRefcount
      Src: /src/cpython/Objects/object.c:400,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Objects/object.c:403,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/object.c:408,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:408,1
    - Dst: _Py_brc_queue_object
      Src: /src/cpython/Objects/object.c:410,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - o
    - filename
    - lineno
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 417
    functionName: _Py_DecRefSharedIsDead
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - _Py_REF_IS_MERGED
    - _Py_brc_queue_object
    - _Py_atomic_compare_exchange_ssize
    - is_dead
    - _PyThreadState_GET
    - _Py_IncRefTotal
    - _Py_NegativeRefcount
    linkageType: ''
    returnType: int
    signature: int _Py_DecRefSharedIsDead(PyObject *o, const char *filename, int lineno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DecRefSharedIsDead
      Src: /src/cpython/Objects/object.c:422,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/object.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - o
    - filename
    - lineno
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: _Py_DecRefSharedDebug
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_DecRefSharedIsDead
    - _Py_Dealloc
    linkageType: ''
    returnType: void
    signature: void _Py_DecRefSharedDebug(PyObject *o, const char *filename, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DecRefSharedDebug
      Src: /src/cpython/Objects/object.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 5
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: _Py_DecRefShared
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_DecRefSharedDebug
    linkageType: ''
    returnType: void
    signature: void _Py_DecRefShared(PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:436,1
    - Dst: _Py_atomic_load_ssize_acquire
      Src: /src/cpython/Objects/object.c:438,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/object.c:441,1
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Objects/object.c:448,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Objects/object.c:454,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/object.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op->ob_ref_local == 0)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 462
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 462
    functionName: _Py_MergeZeroLocalRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_Dealloc
    - _Py_atomic_compare_exchange_ssize
    - _Py_atomic_store_uintptr_relaxed
    - _Py_atomic_load_ssize_acquire
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_MergeZeroLocalRefcount(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:467,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:467,1
    - Dst: _Py_AddRefTotal
      Src: /src/cpython/Objects/object.c:470,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:470,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Objects/object.c:475,1
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Objects/object.c:476,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/object.c:480,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Objects/object.c:482,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Objects/object.c:486,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Objects/object.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - op
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (!_Py_IsImmortal(op))
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 490
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 490
    functionName: _Py_ExplicitMergeRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_atomic_load_ssize_relaxed
    - _Py_AddRefTotal
    - _Py_atomic_store_uint32_relaxed
    - _Py_atomic_compare_exchange_ssize
    - Py_ARITHMETIC_RIGHT_SHIFT
    - _Py_atomic_store_uintptr_relaxed
    - _PyThreadState_GET
    - _Py_REF_SHARED
    - _Py_IsImmortal
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_ExplicitMergeRefcount(PyObject *op, Py_ssize_t extra)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:496,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/object.c:499,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Objects/object.c:503,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/object.c:506,1
    - Dst: _Py_DecRefSharedIsDead
      Src: /src/cpython/Objects/object.c:512,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/object.c:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 520
    functionName: _PyObject_ResurrectEndSlow
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_IsOwnedByCurrentThread
    - _Py_DecRefSharedIsDead
    - _Py_ExplicitMergeRefcount
    - _Py_ForgetReference
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: int _PyObject_ResurrectEndSlow(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/object.c:532,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/object.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - tp
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 537
    functionName: PyObject_Init
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 4
    functionsReached:
    - _PyObject_Init
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Init(PyObject *op, PyTypeObject *tp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/object.c:543,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/object.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - tp
    - size
    argTypes:
    - PyVarObject*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 548
    functionName: PyObject_InitVar
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_InitVar
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/object.c:553,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/object.c:553,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/object.c:555,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/object.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 559
    functionName: _PyObject_New
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - PyObject_Malloc
    - _PyObject_Init
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_New(PyTypeObject *tp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/object.c:565,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/object.c:566,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/object.c:568,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/object.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 572
    functionName: _PyObject_NewVar
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_InitVar
    - PyObject_Malloc
    - PyErr_NoMemory
    - _PyObject_VAR_SIZE
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_NewVar(PyTypeObject *tp, Py_ssize_t nitems)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:577,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/object.c:582,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Objects/object.c:582,1
    - Dst: PyTypeObject*::tp_finalize
      Src: /src/cpython/Objects/object.c:585,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/object.c:586,1
    - Dst: _PyGC_SET_FINALIZED
      Src: /src/cpython/Objects/object.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 589
    functionName: PyObject_CallFinalizer
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyType_IS_GC
    - _PyGC_FINALIZED
    - _PyGC_SET_FINALIZED
    - PyTypeObject*::tp_finalize
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyObject_CallFinalizer(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:594,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/object.c:595,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/object.c:601,1
    - Dst: PyObject_CallFinalizer
      Src: /src/cpython/Objects/object.c:603,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Objects/object.c:605,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:606,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:609,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/object.c:610,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:610,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/object.c:611,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/object.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 627
    functionName: PyObject_CallFinalizerFromDealloc
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 5
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyType_IS_GC
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_ASSERT_WITH_MSG
    - PyObject_CallFinalizer
    - _PyObject_ASSERT
    - _PyObject_ResurrectStart
    - _PyObject_ResurrectEnd
    - Py_TYPE
    - Py_REFCNT
    linkageType: ''
    returnType: int
    signature: int PyObject_CallFinalizerFromDealloc(PyObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Objects/object.c:634,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/object.c:636,1
    - Dst: clearerr
      Src: /src/cpython/Objects/object.c:639,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:646,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:648,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/object.c:654,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/object.c:656,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:661,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:661,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/object.c:664,1
    - Dst: fwrite
      Src: /src/cpython/Objects/object.c:673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:677,1
    - Dst: ferror
      Src: /src/cpython/Objects/object.c:682,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Objects/object.c:683,1
    - Dst: clearerr
      Src: /src/cpython/Objects/object.c:684,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - op
    - fp
    - flags
    argTypes:
    - PyObject*
    - FILE*
    - int
    assertStmts:
    - condition: (PyUnicode_Check(s))
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 689
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 689
    functionName: PyObject_Print
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 5
    functionsReached:
    - PyObject_Str
    - PyObject_Repr
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - clearerr
    - _Py_EnterRecursiveCall
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - PyUnicode_Check
    - ferror
    - fwrite
    - Py_REFCNT
    - assert
    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: 695
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: _Py_BreakPoint
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_BreakPoint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Objects/object.c:707,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Objects/object.c:707,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 711
    functionName: _PyObject_IsFreed
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 3
    functionsReached:
    - Py_TYPE
    - _PyMem_IsPtrFreed
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsFreed(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/object.c:718,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:721,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:722,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:727,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:728,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:728,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:729,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:731,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:732,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:733,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:737,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:738,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Objects/object.c:740,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:741,1
    - Dst: PyObject_Print
      Src: /src/cpython/Objects/object.c:743,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:744,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/object.c:746,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Objects/object.c:747,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:749,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 751
    functionName: _PyObject_Dump
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyObject_Print
    - PyErr_GetRaisedException
    - PyGILState_Release
    - _PyObject_IsFreed
    - fflush
    - fprintf
    - Py_TYPE
    - Py_REFCNT
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyObject_Dump(PyObject* op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Objects/object.c:757,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:760,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:761,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/object.c:762,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:763,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:765,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:770,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:770,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:775,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:779,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:780,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:785,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/object.c:786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:788,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 792
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 792
    functionName: PyObject_Repr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 9
    functionsReached:
    - _PyErr_Occurred
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_EnterRecursiveCallTstate
    - _Py_LeaveRecursiveCallTstate
    - _PyErr_Format
    - _PyThreadState_GET
    - PyErr_CheckSignals
    - PyUnicode_Check
    - Py_TYPE
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Repr(PyObject *v)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Objects/object.c:798,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:801,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:802,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:803,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:805,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/object.c:806,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:808,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:813,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:813,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:818,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:821,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:822,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:827,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/object.c:828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:830,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:833,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/object.c:833,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/cpython/Objects/object.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 835
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 835
    functionName: PyObject_Str
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 16
    functionsReached:
    - PyObject_Repr
    - _PyErr_Occurred
    - Py_DECREF
    - _Py_EnterRecursiveCallTstate
    - _PyErr_Format
    - PyUnicode_CheckExact
    - _Py_LeaveRecursiveCallTstate
    - Py_NewRef
    - _PyThreadState_GET
    - PyErr_CheckSignals
    - _PyUnicode_CheckConsistency
    - PyUnicode_Check
    - Py_TYPE
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Str(PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/object.c:842,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/object.c:846,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Objects/object.c:850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:851,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Objects/object.c:855,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/object.c:856,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/object.c:857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 862
    functionName: PyObject_ASCII
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyObject_Repr
    - Py_DECREF
    - PyUnicode_DecodeASCII
    - PyUnicode_IS_ASCII
    - _PyUnicode_AsASCIIString
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_ASCII(PyObject *v)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromString
      Src: /src/cpython/Objects/object.c:870,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/object.c:872,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:873,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/object.c:876,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:876,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/object.c:878,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:879,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/object.c:882,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:886,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:891,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Objects/object.c:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 894
    functionName: PyObject_Bytes
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyObject_CallNoArgs
    - PyBytes_FromObject
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - _PyObject_LookupSpecial
    - Py_NewRef
    - PyBytes_Check
    - PyErr_Format
    - PyBytes_CheckExact
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Bytes(PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFreeList_PopNoStats
      Src: /src/cpython/Objects/object.c:901,1
    - Dst: dofree
      Src: /src/cpython/Objects/object.c:902,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:904,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - freelist
    - is_finalization
    - dofree
    argTypes:
    - struct _Py_freelist*
    - int
    - freefunc
    assertStmts:
    - condition: (freelist->freelist == NULL)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/cpython/Objects/object.c
    - condition: (freelist->size == 0 || freelist->size == -1)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 909
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 909
    functionName: clear_freelist
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyFreeList_PopNoStats
    - assert
    - dofree
    linkageType: ''
    returnType: void
    signature: "void clear_freelist(struct _Py_freelist *freelist, int is_finalization,\n
      \              freefunc dofree)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:915,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Objects/object.c:916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 918
    functionName: free_object
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void free_object(void *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:925,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:926,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:928,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:930,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:931,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:932,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:933,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:934,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:935,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:936,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:937,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:938,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:939,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:940,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:941,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:945,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:947,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:948,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:949,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:950,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - freelists
    - is_finalization
    argTypes:
    - struct _Py_freelists*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 952
    functionName: _PyObject_ClearFreeLists
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - clear_freelist
    linkageType: ''
    returnType: void
    signature: void _PyObject_ClearFreeLists(struct _Py_freelists *freelists, int
      is_finalization)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:971,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:971,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:973,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:973,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/object.c:978,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:982,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:982,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/object.c:984,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:984,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/object.c:990,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/object.c:997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:999,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1000,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 970
        line_start: 970
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1002
      start: 968
    functionDepth: 4
    functionLinenumber: 968
    functionLinenumberEnd: 1002
    functionName: _PyObject_FunctionStr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - _Py_ID
    - PyObject_RichCompareBool
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_FunctionStr(PyObject *x)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/object.c:1048,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1048,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/object.c:1049,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1049,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1049,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1061,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1067,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/object.c:1079,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1082,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1083,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:1086,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - tstate
    - v
    - w
    - op
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1087
    functionName: do_richcompare
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_IsSubtype
    - _PyErr_Format
    - Py_NewRef
    - Py_IS_TYPE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_richcompare(PyThreadState *tstate, PyObject *v, PyObject *w, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:1095,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1097,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1099,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/object.c:1100,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:1104,1
    - Dst: do_richcompare
      Src: /src/cpython/Objects/object.c:1107,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:1108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (Py_LT <= op && op <= Py_GE)
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1110
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1110
    functionName: PyObject_RichCompare
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 13
    functionsReached:
    - _Py_EnterRecursiveCallTstate
    - PyErr_BadInternalCall
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - do_richcompare
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_RichCompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/object.c:1129,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/object.c:1132,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1134,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:1134,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/object.c:1137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (_Py_IsImmortal(res))
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1141
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1141
    functionName: PyObject_RichCompareBool
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 42
    functionsReached:
    - PyObject_IsTrue
    - assert
    - Py_DECREF
    - PyObject_RichCompare
    - PyBool_Check
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: int PyObject_RichCompareBool(PyObject *v, PyObject *w, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1146,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1149
    functionName: PyObject_HashNotImplemented
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyObject_HashNotImplemented(PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1154,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1162,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1163,1
    - Dst: PyObject_HashNotImplemented
      Src: /src/cpython/Objects/object.c:1169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1170
    functionName: PyObject_Hash
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 12
    functionsReached:
    - _PyType_IsReady
    - 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/cpython/Objects/object.c:1177,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1178,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:1179,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1185
    functionName: PyObject_GetAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 57
    functionsReached:
    - PyObject_GetAttr
    - Py_TYPE
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetAttrString(PyObject *v, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttrString
      Src: /src/cpython/Objects/object.c:1191,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1194
    functionName: PyObject_HasAttrStringWithError
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - PyObject_GetOptionalAttrString
    linkageType: ''
    returnType: int
    signature: int PyObject_HasAttrStringWithError(PyObject *obj, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrStringWithError
      Src: /src/cpython/Objects/object.c:1200,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/object.c:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1209
    functionName: PyObject_HasAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyErr_FormatUnraisable
    - PyObject_HasAttrStringWithError
    linkageType: ''
    returnType: int
    signature: int PyObject_HasAttrString(PyObject *obj, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:1214,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1215,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:1216,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/object.c:1217,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Objects/object.c:1220,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1224,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1225,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Objects/object.c:1228,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/object.c:1233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - v
    - name
    - w
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1236
    functionName: PyObject_SetAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 13
    functionsReached:
    - PyUnicode_InternFromString
    - Py_DECREF
    - _PyErr_GetRaisedException
    - _PyThreadState_GET
    - PyObject_SetAttr
    - _PyErr_SetString
    - Py_TYPE
    - _PyErr_Occurred
    - _PyErr_ChainExceptions1Tstate
    linkageType: ''
    returnType: int
    signature: int PyObject_SetAttrString(PyObject *v, const char *name, PyObject
      *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/object.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1242
    functionName: PyObject_DelAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - PyObject_SetAttrString
    linkageType: ''
    returnType: int
    signature: int PyObject_DelAttrString(PyObject *v, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:1253,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:1253,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/object.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1259
    functionName: _PyObject_IsAbstract
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_ID
    - Py_DECREF
    - PyObject_IsTrue
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsAbstract(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/object.c:1265,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1270
    functionName: _PyObject_GetAttrId
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - _PyUnicode_FromId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GetAttrId(PyObject *v, _Py_Identifier *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1275,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1275,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1276,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:1280,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/object.c:1281,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/object.c:1290,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:1290,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/object.c:1291,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:1291,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/object.c:1295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1297
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1297
    functionName: _PyObject_SetAttributeErrorContext
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - _Py_ID
    - PyErr_GivenExceptionMatches
    - PyErr_ExceptionMatches
    - PyObject_SetAttr
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int _PyObject_SetAttributeErrorContext(PyObject* v, PyObject* name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1302,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1303,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1304,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1306,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/object.c:1315,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1322,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1331
    functionName: PyObject_GetAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 43
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyObject_SetAttributeErrorContext
    - PyUnicode_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetAttr(PyObject *v, PyObject *name)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1336,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1338,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1339,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1341,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Objects/object.c:1347,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1351,1
    - Dst: _Py_type_getattro_impl
      Src: /src/cpython/Objects/object.c:1358,1
    - Dst: _Py_module_getattro_impl
      Src: /src/cpython/Objects/object.c:1366,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1370,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/object.c:1379,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1394,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1397,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - v
    - name
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1399
    functionName: PyObject_GetOptionalAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 47
    functionsReached:
    - PyErr_Occurred
    - _Py_type_getattro_impl
    - _Py_module_getattro_impl
    - _PyObject_GenericGetAttrWithDict
    - PyErr_ExceptionMatches
    - PyUnicode_AsUTF8
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyObject_GetOptionalAttr(PyObject *v, PyObject *name, PyObject
      **result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1404,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:1405,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1415,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1419,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - obj
    - name
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1424
    functionName: PyObject_GetOptionalAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyObject_GetOptionalAttrString(PyObject *obj, const char *name,
      PyObject **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:1430,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1426
    functionDepth: 2
    functionLinenumber: 1426
    functionLinenumberEnd: 1433
    functionName: PyObject_HasAttrWithError
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 5
    functionsReached:
    - Py_XDECREF
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int PyObject_HasAttrWithError(PyObject *obj, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/object.c:1438,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/object.c:1440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1435
    functionDepth: 3
    functionLinenumber: 1435
    functionLinenumberEnd: 1447
    functionName: PyObject_HasAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyErr_FormatUnraisable
    - PyObject_HasAttrWithError
    linkageType: ''
    returnType: int
    signature: int PyObject_HasAttr(PyObject *obj, PyObject *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:1452,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1453,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:1454,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/object.c:1455,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Objects/object.c:1458,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1462,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1465,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1466,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1468,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1471,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/object.c:1473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1476,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/object.c:1480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1489,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:1490,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:1490,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1492,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1499,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - v
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1506
    functionName: PyObject_SetAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 22
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - _PyErr_GetRaisedException
    - _PyUnicode_InternMortal
    - _PyObject_ASSERT
    - _PyThreadState_GET
    - PyUnicode_AsUTF8
    - Py_REFCNT
    - PyErr_Format
    - PyUnicode_Check
    - _PyErr_SetString
    - Py_TYPE
    - _PyErr_Occurred
    - _PyErr_ChainExceptions1Tstate
    linkageType: ''
    returnType: int
    signature: int PyObject_SetAttr(PyObject *v, PyObject *name, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/object.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1512
    functionName: PyObject_DelAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyObject_SetAttr
    linkageType: ''
    returnType: int
    signature: int PyObject_DelAttr(PyObject *v, PyObject *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1517,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1518,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1526,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/object.c:1528,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/object.c:1532,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1533,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:1536,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:1537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dictoffset != -1)
      pos:
        line_end: 1525
        line_start: 1525
        source_file: /src/cpython/Objects/object.c
    - condition: ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0)
      pos:
        line_end: 1517
        line_start: 1517
        source_file: /src/cpython/Objects/object.c
    - condition: (size <= (size_t)PY_SSIZE_T_MAX)
      pos:
        line_end: 1532
        line_start: 1532
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1540
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1540
    functionName: _PyObject_ComputedDictPointer
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _PyObject_VAR_SIZE
    - _PyObject_ASSERT
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _PyObject_ComputedDictPointer(PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1552,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1553,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1555,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1556,1
    - Dst: _PyObject_MaterializeManagedDict
      Src: /src/cpython/Objects/object.c:1557,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1559,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/object.c:1563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1549
    functionDepth: 2
    functionLinenumber: 1549
    functionLinenumberEnd: 1564
    functionName: _PyObject_GetDictPtr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_ManagedDictPointer
    - _PyObject_ComputedDictPointer
    - _PyObject_GetManagedDict
    - _PyObject_MaterializeManagedDict
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _PyObject_GetDictPtr(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1570
    functionName: PyObject_SelfIter
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_SelfIter(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1580,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1584
    functionName: _PyObject_NextNotImplemented
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_NextNotImplemented(PyObject *self)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1604,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1605,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1606,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1611,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1612,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/object.c:1616,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/object.c:1619,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1619,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1623,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/object.c:1624,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1625,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1626,1
    - Dst: _PyObject_TryGetInstanceAttribute
      Src: /src/cpython/Objects/object.c:1633,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1636,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1642,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1645,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/object.c:1647,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1654,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/object.c:1655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1657,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1662,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1671,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1672,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1681,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1685,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - obj
    - name
    - method
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (*method == NULL)
      pos:
        line_end: 1601
        line_start: 1601
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1687
      start: 1597
    functionDepth: 3
    functionLinenumber: 1597
    functionLinenumberEnd: 1687
    functionName: _PyObject_GetMethod
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyObject_ComputedDictPointer
    - PyDescr_IsData
    - PyDict_GetItemRef
    - _PyType_IsReady
    - Py_INCREF
    - PyType_Ready
    - _PyType_LookupRef
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyErr_Format
    - _PyType_HasFeature
    - f
    - Py_DECREF
    - _PyObject_TryGetInstanceAttribute
    - PyUnicode_CheckExact
    - _PyObject_GetManagedDict
    - _PyObject_SetAttributeErrorContext
    - Py_TYPE
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1695,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1695,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1697,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1698,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1699,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1704,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1705,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1707,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/object.c:1712,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:1713,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/object.c:1716,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1716,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1720,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/object.c:1721,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1722,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1722,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1723,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1725,1
    - Dst: _PyObject_TryGetInstanceAttribute
      Src: /src/cpython/Objects/object.c:1733,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1735,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1736,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1742,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1745,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/object.c:1747,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1754,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1754,1
    - Dst: _PyDict_GetMethodStackRef
      Src: /src/cpython/Objects/object.c:1755,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1757,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1757,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1766,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1766,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1771,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1771,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1772,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1774,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1780,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1780,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1784,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1788,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1789,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1789,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 4
    argNames:
    - ts
    - obj
    - name
    - method
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (PyStackRef_IsNull(*method))
      pos:
        line_end: 1756
        line_start: 1756
        source_file: /src/cpython/Objects/object.c
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 1753
        line_start: 1753
        source_file: /src/cpython/Objects/object.c
    - condition: (PyStackRef_IsNull(*method))
      pos:
        line_end: 1694
        line_start: 1694
        source_file: /src/cpython/Objects/object.c
    - condition: (!PyStackRef_IsNull(*method))
      pos:
        line_end: 1779
        line_start: 1779
        source_file: /src/cpython/Objects/object.c
    - condition: (!PyStackRef_IsNull(*method))
      pos:
        line_end: 1765
        line_start: 1765
        source_file: /src/cpython/Objects/object.c
    - condition: (PyStackRef_IsNull(*method))
      pos:
        line_end: 1788
        line_start: 1788
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1791
      start: 1689
    functionDepth: 3
    functionLinenumber: 1689
    functionLinenumberEnd: 1791
    functionName: _PyObject_GetMethodStackRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_ComputedDictPointer
    - PyDescr_IsData
    - _PyDict_GetMethodStackRef
    - _PyType_IsReady
    - PyType_Ready
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - PyErr_Format
    - PyStackRef_CLEAR
    - _PyType_HasFeature
    - f
    - _PyObject_TryGetInstanceAttribute
    - PyUnicode_CheckExact
    - _PyObject_GetManagedDict
    - _PyObject_SetAttributeErrorContext
    - Py_TYPE
    - _PyType_LookupStackRefAndVersion
    - PyObject_GetAttr
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GetMethodStackRef(PyThreadState *ts, PyObject *obj,\n
      \                           PyObject *name, _PyStackRef *method)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1806,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1811,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1812,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1814,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1818,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1819,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1823,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:1825,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/object.c:1827,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/object.c:1829,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:1830,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1834,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/object.c:1835,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1836,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1836,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1838,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1839,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1846,1
    - Dst: _PyObject_TryGetInstanceAttribute
      Src: /src/cpython/Objects/object.c:1847,1
    - Dst: _PyObject_MaterializeManagedDict
      Src: /src/cpython/Objects/object.c:1853,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1861,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1864,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/object.c:1867,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1875,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/object.c:1876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1877,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1882,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1883,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1892,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1892,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1894,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1895,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/object.c:1901,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1907,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1911,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/object.c:1914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1915,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 89
    argCount: 4
    argNames:
    - obj
    - name
    - dict
    - suppress
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1796
    functionDepth: 2
    functionLinenumber: 1796
    functionLinenumberEnd: 1917
    functionName: _PyObject_GenericGetAttrWithDict
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyObject_ComputedDictPointer
    - _PyThreadState_GET
    - PyDescr_IsData
    - _PyObject_MaterializeManagedDict
    - PyDict_GetItemRef
    - _PyType_IsReady
    - _PyThreadState_PopCStackRef
    - Py_INCREF
    - PyType_Ready
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - f
    - Py_DECREF
    - _PyObject_TryGetInstanceAttribute
    - PyUnicode_CheckExact
    - PyErr_ExceptionMatches
    - _PyObject_GetManagedDict
    - _PyObject_SetAttributeErrorContext
    - Py_TYPE
    - _PyType_LookupStackRefAndVersion
    - _Py_atomic_load_ptr_acquire
    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/cpython/Objects/object.c:1922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1919
    functionDepth: 3
    functionLinenumber: 1919
    functionLinenumberEnd: 1923
    functionName: PyObject_GenericGetAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 7
    functionsReached:
    - _PyObject_GenericGetAttrWithDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GenericGetAttr(PyObject *obj, PyObject *name)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1929,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1934,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/object.c:1934,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1935,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1936,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1938,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1942,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1942,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1946,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1947,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:1949,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/object.c:1951,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/object.c:1953,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:1954,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1957,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1959,1
    - Dst: _PyObject_StoreInstanceAttribute
      Src: /src/cpython/Objects/object.c:1968,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/object.c:1973,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1977,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1982,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1988,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1992,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1995,1
    - Dst: _PyObjectDict_SetItem
      Src: /src/cpython/Objects/object.c:2002,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:2006,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/object.c:2008,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/object.c:2010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2011,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:2014,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2015,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:2018,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/object.c:2021,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2023,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 4
    argNames:
    - obj
    - name
    - value
    - dict
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyType_IsSubtype(tp, &PyType_Type))
      pos:
        line_end: 1933
        line_start: 1933
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2025
      start: 1925
    functionDepth: 2
    functionLinenumber: 1925
    functionLinenumberEnd: 2025
    functionName: _PyObject_GenericSetAttrWithDict
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_ComputedDictPointer
    - PyDict_DelItem
    - _PyThreadState_GET
    - _PyObject_StoreInstanceAttribute
    - _PyType_IsReady
    - _PyThreadState_PopCStackRef
    - Py_INCREF
    - PyType_Ready
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - PyErr_Format
    - PyUnicode_Check
    - f
    - Py_DECREF
    - PyType_IsSubtype
    - _PyObjectDict_SetItem
    - PyErr_ExceptionMatches
    - _PyObject_SetAttributeErrorContext
    - Py_TYPE
    - _PyObject_ManagedDictPointer
    - PyDict_SetItem
    - _PyType_LookupStackRefAndVersion
    - assert
    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/cpython/Objects/object.c:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2027
    functionDepth: 3
    functionLinenumber: 2027
    functionLinenumberEnd: 2031
    functionName: PyObject_GenericSetAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 4
    functionsReached:
    - _PyObject_GenericSetAttrWithDict
    linkageType: ''
    returnType: int
    signature: int PyObject_GenericSetAttr(PyObject *obj, PyObject *name, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2037,1
    - Dst: _PyObject_SetDict
      Src: /src/cpython/Objects/object.c:2040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2041
    functionName: PyObject_GenericSetDict
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyObject_SetDict
    linkageType: ''
    returnType: int
    signature: int PyObject_GenericSetDict(PyObject *obj, PyObject *value, void *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2058,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2059,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2060,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2061,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2062,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2063,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2064,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2065,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/object.c:2069,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2047
    functionDepth: 1
    functionLinenumber: 2047
    functionLinenumberEnd: 2070
    functionName: PyObject_IsTrue
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 192
    functionsReached:
    - Py_SAFE_DOWNCAST
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyObject_IsTrue(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/object.c:2079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2075
    functionDepth: 2
    functionLinenumber: 2075
    functionLinenumberEnd: 2083
    functionName: PyObject_Not
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int PyObject_Not(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2093
    functionName: PyCallable_Check
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 36
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyCallable_Check(PyObject *x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Objects/object.c:2103,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Objects/object.c:2104,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:2107,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Objects/object.c:2108,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2110,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Objects/object.c:2111,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2112,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2112,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:2116,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Objects/object.c:2123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2124,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/object.c:2128,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2129,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2132,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/object.c:2135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2111
        line_start: 2111
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2140
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2140
    functionName: _dir_locals
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - assert
    - Py_DECREF
    - PyList_Sort
    - _PyEval_GetFrame
    - PyMapping_Keys
    - PyList_Check
    - _PyThreadState_GET
    - PyErr_Format
    - _PyEval_GetGlobalsFromRunningMain
    - Py_TYPE
    - _PyErr_Occurred
    - _PyEval_GetFrameLocals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dir_locals(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/object.c:2147,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:2147,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2149,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2152,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/object.c:2156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2157,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/object.c:2161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2162,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/object.c:2165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 2148
        line_start: 2148
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2170
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2170
    functionName: _dir_object
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PyList_Sort
    - PyErr_Occurred
    - _Py_ID
    - PyErr_SetString
    - _PyObject_LookupSpecial
    - PySequence_List
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dir_object(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dir_locals
      Src: /src/cpython/Objects/object.c:2179,1
    - Dst: _dir_object
      Src: /src/cpython/Objects/object.c:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2176
    functionDepth: 2
    functionLinenumber: 2176
    functionLinenumberEnd: 2180
    functionName: PyObject_Dir
    functionSourceFile: /src/cpython/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/cpython/Objects/object.c:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2193
    functionName: none_repr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      none_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/object.c:2202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - none
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2195
    functionDepth: 1
    functionLinenumber: 2195
    functionLinenumberEnd: 2203
    functionName: none_dealloc
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortal
    linkageType: ''
    returnType: void
    signature: void none_dealloc(PyObject* none)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/object.c:2208,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/object.c:2208,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2213
    functionName: none_new
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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: 2219
      start: 2215
    functionDepth: 0
    functionLinenumber: 2215
    functionLinenumberEnd: 2219
    functionName: none_bool
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int none_bool(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2221
    functionDepth: 0
    functionLinenumber: 2221
    functionLinenumberEnd: 2224
    functionName: none_hash
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t none_hash(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:2317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2314
    functionDepth: 1
    functionLinenumber: 2314
    functionLinenumberEnd: 2318
    functionName: NotImplemented_repr
    functionSourceFile: /src/cpython/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/cpython/Objects/object.c:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2324
    functionName: NotImplemented_reduce
    functionSourceFile: /src/cpython/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/cpython/Objects/object.c:2334,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/object.c:2334,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2339
    functionName: notimplemented_new
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      notimplemented_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/object.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - notimplemented
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2341
    functionDepth: 1
    functionLinenumber: 2341
    functionLinenumberEnd: 2349
    functionName: notimplemented_dealloc
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortal
    linkageType: ''
    returnType: void
    signature: void notimplemented_dealloc(PyObject *notimplemented)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2351
    functionDepth: 1
    functionLinenumber: 2351
    functionLinenumberEnd: 2357
    functionName: notimplemented_bool
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int notimplemented_bool(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refchain_init
      Src: /src/cpython/Objects/object.c:2416,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/object.c:2417,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/object.c:2420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2412
    functionDepth: 3
    functionLinenumber: 2412
    functionLinenumberEnd: 2421
    functionName: _PyObject_InitState
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - refchain_init
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyObject_InitState(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refchain_fini
      Src: /src/cpython/Objects/object.c:2427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2423
    functionDepth: 3
    functionLinenumber: 2423
    functionLinenumberEnd: 2429
    functionName: _PyObject_FiniState
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - refchain_fini
    linkageType: ''
    returnType: void
    signature: void _PyObject_FiniState(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:2573,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/object.c:2575,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/object.c:2576,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2580,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2581,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/object.c:2586,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/object.c:2587,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:2587,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2588,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/object.c:2589,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/object.c:2591,1
    - Dst: _Py_initialize_generic
      Src: /src/cpython/Objects/object.c:2594,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/object.c:2595,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/object.c:2598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyType_Type.tp_base == &PyBaseObject_Type)
      pos:
        line_end: 2580
        line_start: 2580
        source_file: /src/cpython/Objects/object.c
    - condition: (PyBaseObject_Type.tp_base == NULL)
      pos:
        line_end: 2579
        line_start: 2579
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2599
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2599
    functionName: _PyTypes_InitTypes
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_InitBuiltin
    - PyDict_GetItemWithError
    - _Py_INTERP_CACHED_OBJECT
    - _Py_initialize_generic
    - _PyStatus_OK
    - PyErr_Occurred
    - _Py_ID
    - _PyStatus_ERR
    - Py_ARRAY_LENGTH
    - _PyType_GetDict
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyTypes_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:2613,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/object.c:2615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2608
    functionDepth: 1
    functionLinenumber: 2608
    functionLinenumberEnd: 2617
    functionName: _PyTypes_FiniTypes
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - _PyStaticType_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PyTypes_FiniTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2627,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2628,1
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Objects/object.c:2636,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Objects/object.c:2636,1
    - Dst: _Py_atomic_store_uint8_relaxed
      Src: /src/cpython/Objects/object.c:2637,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Objects/object.c:2638,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/object.c:2639,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Objects/object.c:2641,1
    - Dst: _Py_AddToAllObjects
      Src: /src/cpython/Objects/object.c:2648,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/object.c:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op->ob_refcnt == 1)
      pos:
        line_end: 2626
        line_start: 2626
        source_file: /src/cpython/Objects/object.c
    - condition: (op->ob_flags == 0)
      pos:
        line_end: 2627
        line_start: 2627
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2651
      start: 2620
    functionDepth: 3
    functionLinenumber: 2620
    functionLinenumberEnd: 2651
    functionName: new_reference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint8_relaxed
    - _Py_ThreadId
    - _Py_atomic_store_uint32_relaxed
    - _Py_atomic_store_uintptr_relaxed
    - _Py_atomic_store_ssize_relaxed
    - _Py_AddToAllObjects
    - assert
    - _PyReftracerTrack
    linkageType: ''
    returnType: void
    signature: void new_reference(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/object.c:2657,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:2657,1
    - Dst: new_reference
      Src: /src/cpython/Objects/object.c:2659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2653
    functionDepth: 4
    functionLinenumber: 2653
    functionLinenumberEnd: 2660
    functionName: _Py_NewReference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_IncRefTotal
    - new_reference
    linkageType: ''
    returnType: void
    signature: void _Py_NewReference(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_reference
      Src: /src/cpython/Objects/object.c:2665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2662
    functionDepth: 4
    functionLinenumber: 2662
    functionLinenumberEnd: 2666
    functionName: _Py_NewReferenceNoTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - new_reference
    linkageType: ''
    returnType: void
    signature: void _Py_NewReferenceNoTotal(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:2673,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2674,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/object.c:2674,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/object.c:2675,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:2679,1
    - Dst: _Py_atomic_or_uint8
      Src: /src/cpython/Objects/object.c:2686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: "(PyUnicode_CHECK_INTERNED(op) == SSTATE_INTERNED_IMMORTAL\n            ||
        PyUnicode_CHECK_INTERNED(op) == SSTATE_INTERNED_IMMORTAL_STATIC)"
      pos:
        line_end: 2674
        line_start: 2673
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2693
      start: 2668
    functionDepth: 1
    functionLinenumber: 2668
    functionLinenumberEnd: 2693
    functionName: _Py_SetImmortalUntracked
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_CheckExact
    - PyUnicode_CHECK_INTERNED
    - _Py_atomic_or_uint8
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: void _Py_SetImmortalUntracked(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/cpython/Objects/object.c:2698,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/object.c:2698,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/object.c:2699,1
    - Dst: _Py_SetImmortalUntracked
      Src: /src/cpython/Objects/object.c:2701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2695
    functionDepth: 2
    functionLinenumber: 2695
    functionLinenumberEnd: 2702
    functionName: _Py_SetImmortal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _Py_SetImmortalUntracked
    - PyObject_IS_GC
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void _Py_SetImmortal(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2708,1
    - Dst: PyType_IS_GC
      Src: /src/cpython/Objects/object.c:2708,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2708,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2709,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/object.c:2709,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2710,1
    - Dst: _PyObject_SET_GC_BITS
      Src: /src/cpython/Objects/object.c:2711,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Objects/object.c:2712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyType_IS_GC(Py_TYPE(op)))
      pos:
        line_end: 2707
        line_start: 2707
        source_file: /src/cpython/Objects/object.c
    - condition: (_Py_IsOwnedByCurrentThread(op))
      pos:
        line_end: 2708
        line_start: 2708
        source_file: /src/cpython/Objects/object.c
    - condition: (op->ob_ref_shared == 0)
      pos:
        line_end: 2709
        line_start: 2709
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2714
      start: 2704
    functionDepth: 1
    functionLinenumber: 2704
    functionLinenumberEnd: 2714
    functionName: _PyObject_SetDeferredRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_IsOwnedByCurrentThread
    - _PyObject_SET_GC_BITS
    - _Py_REF_SHARED
    - PyType_IS_GC
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyObject_SetDeferredRefcount(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_IS_GC
      Src: /src/cpython/Objects/object.c:2720,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2720,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Objects/object.c:2726,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Objects/object.c:2733,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Objects/object.c:2738,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Objects/object.c:2738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2716
    functionDepth: 1
    functionLinenumber: 2716
    functionLinenumberEnd: 2743
    functionName: PyUnstable_Object_EnableDeferredRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_load_uint8
    - _Py_atomic_add_ssize
    - _Py_atomic_compare_exchange_uint8
    - _Py_REF_SHARED
    - PyType_IS_GC
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Object_EnableDeferredRefcount(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/object.c:2748,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Objects/object.c:2752,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Objects/object.c:2757,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:2761,1
    - Dst: PyStackRef_IsHeapSafe
      Src: /src/cpython/Objects/object.c:2762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2745
    functionDepth: 1
    functionLinenumber: 2745
    functionLinenumberEnd: 2766
    functionName: PyUnstable_Object_IsUniqueReferencedTemporary
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyFrame_Stackbase
    - _PyEval_GetFrame
    - PyStackRef_IsHeapSafe
    - PyStackRef_AsPyObjectBorrow
    - _PyObject_IsUniquelyReferenced
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Object_IsUniqueReferencedTemporary(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_TryIncref
      Src: /src/cpython/Objects/object.c:2771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2768
    functionDepth: 1
    functionLinenumber: 2768
    functionLinenumberEnd: 2772
    functionName: PyUnstable_TryIncRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _Py_TryIncref
    linkageType: ''
    returnType: int
    signature: int PyUnstable_TryIncRef(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SetMaybeWeakref
      Src: /src/cpython/Objects/object.c:2778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2774
    functionDepth: 1
    functionLinenumber: 2774
    functionLinenumberEnd: 2780
    functionName: PyUnstable_EnableTryIncRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_SetMaybeWeakref
    linkageType: ''
    returnType: void
    signature: void PyUnstable_EnableTryIncRef(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AddToAllObjects
      Src: /src/cpython/Objects/object.c:2786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2782
    functionDepth: 3
    functionLinenumber: 2782
    functionLinenumberEnd: 2788
    functionName: _Py_ResurrectReference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_AddToAllObjects
    linkageType: ''
    returnType: void
    signature: void _Py_ResurrectReference(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:2794,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/object.c:2795,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/object.c:2798,1
    - Dst: _PyRefchain_Get
      Src: /src/cpython/Objects/object.c:2801,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/object.c:2803,1
    - Dst: _PyRefchain_Remove
      Src: /src/cpython/Objects/object.c:2808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2790
    functionDepth: 2
    functionLinenumber: 2790
    functionLinenumberEnd: 2810
    functionName: _Py_ForgetReference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_ASSERT_FAILED_MSG
    - _PyRefchain_Remove
    - _PyInterpreterState_GET
    - Py_REFCNT
    - _PyRefchain_Get
    linkageType: ''
    returnType: void
    signature: void _Py_ForgetReference(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:2821,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:2821,1
    - Dst: PyObject_Print
      Src: /src/cpython/Objects/object.c:2822,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:2823,1
    - Dst: putc
      Src: /src/cpython/Objects/object.c:2825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ht
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2814
    functionDepth: 3
    functionLinenumber: 2814
    functionLinenumberEnd: 2827
    functionName: _Py_PrintReference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyObject_Print
    - putc
    - fprintf
    - PyErr_Clear
    - Py_REFCNT
    linkageType: ''
    returnType: int
    signature: "int _Py_PrintReference(_Py_hashtable_t *ht,\n                   const
      void *key, const void *value,\n                   void *user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/object.c:2837,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:2839,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/object.c:2840,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:2840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - fp
    argTypes:
    - PyInterpreterState*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2841
    functionName: _Py_PrintReferences
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - REFCHAIN
    - _Py_hashtable_foreach
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _Py_PrintReferences(PyInterpreterState *interp, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:2851,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:2852,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ht
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2844
    functionDepth: 0
    functionLinenumber: 2844
    functionLinenumberEnd: 2854
    functionName: _Py_PrintReferenceAddress
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - fprintf
    - Py_TYPE
    - Py_REFCNT
    linkageType: ''
    returnType: int
    signature: "int _Py_PrintReferenceAddress(_Py_hashtable_t *ht,\n                          const
      void *key, const void *value,\n                          void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:2867,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/object.c:2868,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:2868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - fp
    argTypes:
    - PyInterpreterState*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2864
    functionDepth: 1
    functionLinenumber: 2864
    functionLinenumberEnd: 2869
    functionName: _Py_PrintReferenceAddresses
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _Py_hashtable_foreach
    - REFCHAIN
    linkageType: ''
    returnType: void
    signature: void _Py_PrintReferenceAddresses(PyInterpreterState *interp, FILE *fp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/object.c:2894,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/object.c:2912,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/object.c:2917,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - ht
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2886
    functionDepth: 1
    functionLinenumber: 2886
    functionLinenumberEnd: 2921
    functionName: _Py_GetObject
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_IS_TYPE
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int _Py_GetObject(_Py_hashtable_t *ht,\n              const void *key,
      const void *value,\n              void *user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/object.c:2930,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/object.c:2934,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/object.c:2946,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/object.c:2947,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:2947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2925
    functionDepth: 1
    functionLinenumber: 2925
    functionLinenumberEnd: 2953
    functionName: _Py_GetObjects
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyArg_ParseTuple
    - REFCHAIN
    - _PyInterpreterState_GET
    - _Py_hashtable_foreach
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetObjects(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_DebugMallocStats
      Src: /src/cpython/Objects/object.c:2968,1
    - Dst: _PyFloat_DebugMallocStats
      Src: /src/cpython/Objects/object.c:2969,1
    - Dst: _PyList_DebugMallocStats
      Src: /src/cpython/Objects/object.c:2970,1
    - Dst: _PyTuple_DebugMallocStats
      Src: /src/cpython/Objects/object.c:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2965
    functionDepth: 1
    functionLinenumber: 2965
    functionLinenumberEnd: 2972
    functionName: _PyObject_DebugTypeStats
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyList_DebugMallocStats
    - _PyFloat_DebugMallocStats
    - _PyTuple_DebugMallocStats
    - _PyDict_DebugMallocStats
    linkageType: ''
    returnType: void
    signature: void _PyObject_DebugTypeStats(FILE *out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Objects/object.c:2993,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/object.c:2998,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:2998,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:3000,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/object.c:3003,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/object.c:3006,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:3006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:3008,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/object.c:3010,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/object.c:3012,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/object.c:3015,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 2986
    functionDepth: 1
    functionLinenumber: 2986
    functionLinenumberEnd: 3018
    functionName: Py_ReprEnter
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 11
    functionsReached:
    - PyThreadState_GetDict
    - PyList_New
    - PyDict_GetItemWithError
    - PyList_GET_ITEM
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_Occurred
    - PyList_Append
    - _Py_ID
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int Py_ReprEnter(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:3027,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Objects/object.c:3029,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/object.c:3033,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:3033,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/object.c:3034,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/object.c:3037,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/object.c:3040,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Objects/object.c:3041,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/object.c:3048,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3020
    functionDepth: 1
    functionLinenumber: 3020
    functionLinenumberEnd: 3049
    functionName: Py_ReprLeave
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 11
    functionsReached:
    - PyThreadState_GetDict
    - PyDict_GetItemWithError
    - PyList_GET_ITEM
    - PyErr_GetRaisedException
    - _Py_ID
    - PyList_GET_SIZE
    - PyList_SetSlice
    - PyList_Check
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void Py_ReprLeave(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:3060,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:3060,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:3061,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3062,1
    - Dst: PyTypeObject*::tp_is_gc
      Src: /src/cpython/Objects/object.c:3064,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/object.c:3065,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/object.c:3067,1
    - Dst: _Py_AS_GC
      Src: /src/cpython/Objects/object.c:3074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - tstate
    - op
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (tp->tp_flags & Py_TPFLAGS_HAVE_GC)
      pos:
        line_end: 3061
        line_start: 3061
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3077
      start: 3057
    functionDepth: 1
    functionLinenumber: 3057
    functionLinenumberEnd: 3077
    functionName: _PyTrash_thread_deposit_object
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _Py_AS_GC
    - _PyObject_GC_UNTRACK
    - _PyObject_ASSERT
    - PyTypeObject*::tp_is_gc
    - Py_TYPE
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyTrash_thread_deposit_object(PyThreadState *tstate, PyObject
      *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:3086,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/object.c:3091,1
    - Dst: _Py_AS_GC
      Src: /src/cpython/Objects/object.c:3093,1
    - Dst: _Py_AS_GC
      Src: /src/cpython/Objects/object.c:3094,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/object.c:3098,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:3106,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:3106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3081
    functionDepth: 1
    functionLinenumber: 3081
    functionLinenumberEnd: 3109
    functionName: _PyTrash_thread_destroy_chain
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_AS_GC
    - _PyObject_GC_TRACK
    - _Py_atomic_store_ssize_relaxed
    - _PyObject_ASSERT
    - Py_TYPE
    - Py_REFCNT
    linkageType: ''
    returnType: void
    signature: void _PyTrash_thread_destroy_chain(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3115,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3117,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3119,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3122,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3125,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3127,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3130,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3132,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3133,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/object.c:3135,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3138,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3139,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:3145,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Objects/object.c:3146,1
    - Dst: _PyMem_DumpTraceback
      Src: /src/cpython/Objects/object.c:3148,1
    - Dst: fileno
      Src: /src/cpython/Objects/object.c:3148,1
    - Dst: _PyObject_Dump
      Src: /src/cpython/Objects/object.c:3152,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3154,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3155,1
    - Dst: _Py_NO_RETURN::Py_FatalError
      Src: /src/cpython/Objects/object.c:3158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 6
    argNames:
    - obj
    - expr
    - msg
    - file
    - line
    - function
    argTypes:
    - PyObject*
    - char*
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3159
      start: 3111
    functionDepth: 4
    functionLinenumber: 3111
    functionLinenumberEnd: 3159
    functionName: _Py_NO_RETURN::_PyObject_AssertFailed
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyType_PreHeaderSize
    - _PyMem_DumpTraceback
    - _PyObject_Dump
    - _PyObject_IsFreed
    - fflush
    - fprintf
    - _Py_NO_RETURN::Py_FatalError
    - Py_TYPE
    - fileno
    linkageType: ''
    returnType: void
    signature: "void _Py_NO_RETURN\n_PyObject_AssertFailed(PyObject *obj, const char
      *expr, const char *msg,\n                       const char *file, int line,
      const char *function)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:3172,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:3175,1
    - Dst: _Py_RecursionLimit_GetMargin
      Src: /src/cpython/Objects/object.c:3176,1
    - Dst: _PyTrash_thread_deposit_object
      Src: /src/cpython/Objects/object.c:3178,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3185,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/object.c:3190,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:3192,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/object.c:3196,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/object.c:3198,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Objects/object.c:3218,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:3220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:3221,1
    - Dst: _PyTrash_thread_destroy_chain
      Src: /src/cpython/Objects/object.c:3224,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (tstate->current_frame == NULL || tstate->current_frame->stackpointer
        != NULL)
      pos:
        line_end: 3184
        line_start: 3184
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3226
      start: 3169
    functionDepth: 3
    functionLinenumber: 3169
    functionLinenumberEnd: 3226
    functionName: _Py_Dealloc
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - _PyTrash_thread_deposit_object
    - _PyThreadState_GET
    - _Py_FatalErrorFormat
    - _Py_ForgetReference
    - _PyTrash_thread_destroy_chain
    - _Py_RecursionLimit_GetMargin
    - Py_XINCREF
    - Py_TYPE
    - assert
    - _PyReftracerTrack
    linkageType: ''
    returnType: void
    signature: void _Py_Dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/object.c:3232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3233
      start: 3229
    functionDepth: 1
    functionLinenumber: 3229
    functionLinenumberEnd: 3233
    functionName: PyObject_GET_WEAKREFS_LISTPTR
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_GET_WEAKREFS_LISTPTR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      PyObject_GET_WEAKREFS_LISTPTR(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NewRef
      Src: /src/cpython/Objects/object.c:3243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3240
    functionDepth: 1
    functionLinenumber: 3240
    functionLinenumberEnd: 3244
    functionName: Py_NewRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 552
    functionsReached:
    - _Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_NewRef(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_XNewRef
      Src: /src/cpython/Objects/object.c:3249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3246
    functionDepth: 1
    functionLinenumber: 3246
    functionLinenumberEnd: 3250
    functionName: Py_XNewRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 82
    functionsReached:
    - _Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_XNewRef(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3259
    functionDepth: 0
    functionLinenumber: 3259
    functionLinenumberEnd: 3262
    functionName: Py_Is
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_Is(PyObject *x, PyObject *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_Is
      Src: /src/cpython/Objects/object.c:3266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3264
    functionDepth: 0
    functionLinenumber: 3264
    functionLinenumberEnd: 3267
    functionName: Py_IsNone
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 10
    functionsReached:
    - Py_Is
    linkageType: ''
    returnType: int
    signature: int Py_IsNone(PyObject *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_Is
      Src: /src/cpython/Objects/object.c:3271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3269
    functionDepth: 0
    functionLinenumber: 3269
    functionLinenumberEnd: 3272
    functionName: Py_IsTrue
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 5
    functionsReached:
    - Py_Is
    linkageType: ''
    returnType: int
    signature: int Py_IsTrue(PyObject *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_Is
      Src: /src/cpython/Objects/object.c:3276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3274
    functionDepth: 0
    functionLinenumber: 3274
    functionLinenumberEnd: 3277
    functionName: Py_IsFalse
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - Py_Is
    linkageType: ''
    returnType: int
    signature: int Py_IsFalse(PyObject *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Objects/object.c:3284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - refcnt
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3285
      start: 3281
    functionDepth: 1
    functionLinenumber: 3281
    functionLinenumberEnd: 3285
    functionName: _Py_SetRefcnt
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_SET_REFCNT
    linkageType: ''
    returnType: void
    signature: void _Py_SetRefcnt(PyObject *ob, Py_ssize_t refcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/object.c:3288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tracer
    - data
    argTypes:
    - PyRefTracer
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3287
    functionDepth: 1
    functionLinenumber: 3287
    functionLinenumberEnd: 3292
    functionName: PyRefTracer_SetTracer
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _Py_AssertHoldsTstate
    linkageType: ''
    returnType: int
    signature: int PyRefTracer_SetTracer(PyRefTracer tracer, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/object.c:3295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3300
      start: 3294
    functionDepth: 1
    functionLinenumber: 3294
    functionLinenumberEnd: 3300
    functionName: PyRefTracer_GetTracer
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_AssertHoldsTstate
    linkageType: ''
    returnType: PyRefTracer
    signature: PyRefTracer PyRefTracer_GetTracer(void** data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/object.c:3320,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/object.c:3321,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/object.c:3322,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/object.c:3323,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/object.c:3324,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:3326,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3327,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3328,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:3328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (constants[i] != NULL)
      pos:
        line_end: 3326
        line_start: 3326
        source_file: /src/cpython/Objects/object.c
    - condition: (_Py_IsImmortal(constants[i]))
      pos:
        line_end: 3327
        line_start: 3327
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3331
      start: 3317
    functionDepth: 1
    functionLinenumber: 3317
    functionLinenumberEnd: 3331
    functionName: _Py_GetConstant_Init
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - PyTuple_New
    - PyBytes_FromStringAndSize
    - _PyLong_GetOne
    - _Py_IsImmortal
    - PyUnicode_New
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_GetConstant_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:3336,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/object.c:3340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - constant_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3343
      start: 3333
    functionDepth: 1
    functionLinenumber: 3333
    functionLinenumberEnd: 3343
    functionName: Py_GetConstant
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 32
    functionsReached:
    - Py_ARRAY_LENGTH
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_GetConstant(unsigned int constant_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/object.c:3350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - constant_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3346
    functionDepth: 2
    functionLinenumber: 3346
    functionLinenumberEnd: 3351
    functionName: Py_GetConstantBorrowed
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - Py_GetConstant
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_GetConstantBorrowed(unsigned int constant_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_TYPE
      Src: /src/cpython/Objects/object.c:3359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3356
    functionDepth: 1
    functionLinenumber: 3356
    functionLinenumberEnd: 3360
    functionName: Py_TYPE
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 761
    functionsReached:
    - _Py_TYPE
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      Py_TYPE(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_REFCNT
      Src: /src/cpython/Objects/object.c:3368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3365
    functionDepth: 1
    functionLinenumber: 3365
    functionLinenumberEnd: 3369
    functionName: Py_REFCNT
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 36
    functionsReached:
    - _Py_REFCNT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t Py_REFCNT(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/object.c:3375,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3376,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:3377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 3375
        line_start: 3375
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3378
      start: 3371
    functionDepth: 1
    functionLinenumber: 3371
    functionLinenumberEnd: 3378
    functionName: PyUnstable_IsImmortal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_IsImmortal
    - _Py_AssertHoldsTstate
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnstable_IsImmortal(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/object.c:3383,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3384,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/object.c:3385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 3383
        line_start: 3383
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3386
      start: 3380
    functionDepth: 1
    functionLinenumber: 3380
    functionLinenumberEnd: 3386
    functionName: PyUnstable_Object_IsUniquelyReferenced
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_IsUniquelyReferenced
    - _Py_AssertHoldsTstate
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Object_IsUniquelyReferenced(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - Py_UNUSED(ctx)
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: _PyMem_RawMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_RawMalloc(void *Py_UNUSED(ctx), size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/cpython/Objects/obmalloc.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - Py_UNUSED(ctx)
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: _PyMem_RawCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_RawCalloc(void *Py_UNUSED(ctx), size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/cpython/Objects/obmalloc.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - Py_UNUSED(ctx)
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: _PyMem_RawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_RawRealloc(void *Py_UNUSED(ctx), void *ptr, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(ctx)
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: _PyMem_RawFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _PyMem_RawFree(void *Py_UNUSED(ctx), void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_remove
      Src: /src/cpython/Objects/obmalloc.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: _PyMem_mi_page_clear_qsbr
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - llist_remove
    linkageType: ''
    returnType: void
    signature: void _PyMem_mi_page_clear_qsbr(mi_page_t *page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:112,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:112,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:114,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:116,1
    - Dst: _Py_qbsr_goal_reached
      Src: /src/cpython/Objects/obmalloc.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts:
    - condition: (mi_page_all_free(page))
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (page->qsbr_node.next == NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: _PyMem_mi_page_is_safe_to_free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_page_all_free
    - _PyThreadState_GET
    - _Py_qbsr_goal_reached
    - assert
    linkageType: ''
    returnType: bool
    signature: bool _PyMem_mi_page_is_safe_to_free(mi_page_t *page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/obmalloc.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - qsbr
    - page
    argTypes:
    - struct _qsbr_thread_state*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: should_advance_qsbr_for_page
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    linkageType: ''
    returnType: bool
    signature: bool should_advance_qsbr_for_page(struct _qsbr_thread_state *qsbr,
      mi_page_t *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:158,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:158,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:160,1
    - Dst: _Py_qbsr_goal_reached
      Src: /src/cpython/Objects/obmalloc.c:161,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:162,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:163,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:167,1
    - Dst: should_advance_qsbr_for_page
      Src: /src/cpython/Objects/obmalloc.c:170,1
    - Dst: _Py_qsbr_advance
      Src: /src/cpython/Objects/obmalloc.c:171,1
    - Dst: _Py_qsbr_shared_next
      Src: /src/cpython/Objects/obmalloc.c:174,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Objects/obmalloc.c:177,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - page
    - pq
    - force
    argTypes:
    - mi_page_t*
    - mi_page_queue_t*
    - bool
    assertStmts:
    - condition: (mi_page_all_free(page))
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 183
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 183
    functionName: _PyMem_mi_page_maybe_free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GET
    - _Py_qbsr_goal_reached
    - llist_insert_tail
    - _Py_qsbr_shared_next
    - mi_page_all_free
    - _Py_qsbr_advance
    - _PyMem_mi_page_clear_qsbr
    - should_advance_qsbr_for_page
    - assert
    - _mi_page_free
    linkageType: ''
    returnType: bool
    signature: bool _PyMem_mi_page_maybe_free(mi_page_t *page, mi_page_queue_t *pq,
      bool force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:189,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:191,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:192,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:193,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Objects/obmalloc.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts:
    - condition: (page->qsbr_node.next == NULL)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (page->qsbr_node.next == NULL)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 202
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: _PyMem_mi_page_reclaimed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_page_all_free
    - llist_insert_tail
    - assert
    - PyThreadState_GET
    linkageType: ''
    returnType: void
    signature: void _PyMem_mi_page_reclaimed(mi_page_t *page)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:212,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:214,1
    - Dst: llist_data
      Src: /src/cpython/Objects/obmalloc.c:220,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:221,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:223,1
    - Dst: _Py_qsbr_poll
      Src: /src/cpython/Objects/obmalloc.c:227,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:231,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:232,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/obmalloc.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 235
    functionName: _PyMem_mi_heap_collect_qsbr
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_page_queue_of
    - llist_data
    - _PyThreadState_GET
    - mi_page_all_free
    - _PyMem_mi_page_clear_qsbr
    - _Py_qsbr_poll
    - llist_empty
    - _mi_page_free
    linkageType: ''
    returnType: void
    signature: void _PyMem_mi_heap_collect_qsbr(mi_heap_t *heap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Objects/obmalloc.c:220,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:221,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:223,1
    - Dst: _Py_qsbr_poll
      Src: /src/cpython/Objects/obmalloc.c:227,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:231,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:232,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/obmalloc.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 233
    functionName: llist_for_each_safe
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - mi_page_queue_of
    - llist_data
    - mi_page_all_free
    - _PyMem_mi_page_clear_qsbr
    - _Py_qsbr_poll
    - _mi_page_free
    linkageType: ''
    returnType: void
    signature: void llist_for_each_safe(node, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:241,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/obmalloc.c:243,1
    - Dst: mi_malloc
      Src: /src/cpython/Objects/obmalloc.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: _PyMem_MiMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - mi_heap_malloc
    - mi_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_MiMalloc(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:253,1
    - Dst: mi_heap_calloc
      Src: /src/cpython/Objects/obmalloc.c:255,1
    - Dst: mi_calloc
      Src: /src/cpython/Objects/obmalloc.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: _PyMem_MiCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - mi_calloc
    - mi_heap_calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_MiCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:265,1
    - Dst: mi_heap_realloc
      Src: /src/cpython/Objects/obmalloc.c:267,1
    - Dst: mi_realloc
      Src: /src/cpython/Objects/obmalloc.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: _PyMem_MiRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - mi_realloc
    - mi_heap_realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_MiRealloc(void *ctx, void *ptr, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free
      Src: /src/cpython/Objects/obmalloc.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: _PyMem_MiFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_free
    linkageType: ''
    returnType: void
    signature: void _PyMem_MiFree(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:283,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/obmalloc.c:285,1
    - Dst: mi_malloc
      Src: /src/cpython/Objects/obmalloc.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: _PyObject_MiMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - mi_heap_malloc
    - mi_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_MiMalloc(void *ctx, size_t nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:295,1
    - Dst: mi_heap_calloc
      Src: /src/cpython/Objects/obmalloc.c:297,1
    - Dst: mi_calloc
      Src: /src/cpython/Objects/obmalloc.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: _PyObject_MiCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - mi_calloc
    - mi_heap_calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_MiCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:308,1
    - Dst: mi_heap_realloc
      Src: /src/cpython/Objects/obmalloc.c:310,1
    - Dst: mi_realloc
      Src: /src/cpython/Objects/obmalloc.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: _PyObject_MiRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - mi_realloc
    - mi_heap_realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_MiRealloc(void *ctx, void *ptr, size_t nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free
      Src: /src/cpython/Objects/obmalloc.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: _PyObject_MiFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_free
    linkageType: ''
    returnType: void
    signature: void _PyObject_MiFree(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawMalloc
      Src: /src/cpython/Objects/obmalloc.c:388,1
    - Dst: _PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: _PyMem_DefaultRawMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugRawMalloc
    - _PyMem_RawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DefaultRawMalloc(size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawCalloc
      Src: /src/cpython/Objects/obmalloc.c:398,1
    - Dst: _PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: _PyMem_DefaultRawCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawCalloc
    - _PyMem_DebugRawCalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DefaultRawCalloc(size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawRealloc
      Src: /src/cpython/Objects/obmalloc.c:408,1
    - Dst: _PyMem_RawRealloc
      Src: /src/cpython/Objects/obmalloc.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 412
    functionName: _PyMem_DefaultRawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugRawRealloc
    - _PyMem_RawRealloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DefaultRawRealloc(void *ptr, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawFree
      Src: /src/cpython/Objects/obmalloc.c:418,1
    - Dst: _PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 422
    functionName: _PyMem_DefaultRawFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugRawFree
    - _PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyMem_DefaultRawFree(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:427,1
    - Dst: wcslen
      Src: /src/cpython/Objects/obmalloc.c:429,1
    - Dst: _PyMem_DefaultRawMalloc
      Src: /src/cpython/Objects/obmalloc.c:435,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 442
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 442
    functionName: _PyMem_DefaultRawWcsdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - wcslen
    - assert
    - _PyMem_DefaultRawMalloc
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _PyMem_DefaultRawWcsdup(const wchar_t *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/obmalloc.c:461,1
    - Dst: mmap
      Src: /src/cpython/Objects/obmalloc.c:465,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:469,1
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(ctx)
    - size
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (ptr != NULL)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 474
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 474
    functionName: _PyMem_ArenaAlloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - mmap
    - malloc
    - VirtualAlloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_ArenaAlloc(void *Py_UNUSED(ctx), size_t size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:524,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:544,1
    - Dst: set_up_debug_hooks_domain_unlocked
      Src: /src/cpython/Objects/obmalloc.c:546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - domain
    - debug
    - old_alloc
    argTypes:
    - PyMemAllocatorDomain
    - int
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 549
    functionName: set_default_allocator_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - set_allocator_unlocked
    - set_up_debug_hooks_domain_unlocked
    - get_allocator_unlocked
    linkageType: ''
    returnType: int
    signature: "int set_default_allocator_unlocked(PyMemAllocatorDomain domain, int
      debug,\n                               PyMemAllocatorEx *old_alloc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:566,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:569,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:573,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:576,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:581,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:584,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:589,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - name
    - allocator
    argTypes:
    - char*
    - PyMemAllocatorName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 599
    functionName: _PyMem_GetAllocatorName
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _PyMem_GetAllocatorName(const char *name, PyMemAllocatorName *allocator)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:613,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:614,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:615,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:620,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:621,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:622,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:631,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:634,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:635,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:640,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:650,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:653,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:656,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:661,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:672,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:673,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:674,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:679,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyMemAllocatorName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 690
    functionName: set_up_allocators_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - set_up_debug_hooks_unlocked
    - set_allocator_unlocked
    - set_default_allocator_unlocked
    linkageType: ''
    returnType: int
    signature: int set_up_allocators_unlocked(PyMemAllocatorName allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:695,1
    - Dst: set_up_allocators_unlocked
      Src: /src/cpython/Objects/obmalloc.c:696,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyMemAllocatorName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 699
    functionName: _PyMem_SetupAllocators
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - set_up_allocators_unlocked
    - PyMutex_Unlock
    linkageType: ''
    returnType: int
    signature: int _PyMem_SetupAllocators(PyMemAllocatorName allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Objects/obmalloc.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyMemAllocatorEx*
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: pymemallocator_eq
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int pymemallocator_eq(PyMemAllocatorEx *a, PyMemAllocatorEx *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:721,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:722,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:723,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:728,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:729,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:730,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:736,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:737,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:738,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:748,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:749,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:750,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:753,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:754,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:755,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:760,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:761,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:762,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:768,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:769,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:770,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 777
    functionName: get_current_allocator_name_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - pymemallocator_eq
    linkageType: ''
    returnType: char
    signature: 'char *

      get_current_allocator_name_unlocked(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:782,1
    - Dst: get_current_allocator_name_unlocked
      Src: /src/cpython/Objects/obmalloc.c:783,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 786
    functionName: _PyMem_GetCurrentAllocatorName
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - PyMutex_Lock
    - get_current_allocator_name_unlocked
    - PyMutex_Unlock
    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: 793
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 793
    functionName: _PyMem_DebugEnabled
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyMem_DebugEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Objects/obmalloc.c:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 805
    functionName: _PyMem_PymallocEnabled
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugEnabled
    linkageType: ''
    returnType: int
    signature: int _PyMem_PymallocEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Objects/obmalloc.c:814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 821
    functionName: _PyMem_MimallocEnabled
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugEnabled
    linkageType: ''
    returnType: int
    signature: int _PyMem_MimallocEnabled(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:837,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:843,1
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:850,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:856,1
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:863,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - domain
    argTypes:
    - PyMemAllocatorDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 871
    functionName: set_up_debug_hooks_domain_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - set_allocator_unlocked
    - get_allocator_unlocked
    linkageType: ''
    returnType: void
    signature: void set_up_debug_hooks_domain_unlocked(PyMemAllocatorDomain domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_up_debug_hooks_domain_unlocked
      Src: /src/cpython/Objects/obmalloc.c:877,1
    - Dst: set_up_debug_hooks_domain_unlocked
      Src: /src/cpython/Objects/obmalloc.c:878,1
    - Dst: set_up_debug_hooks_domain_unlocked
      Src: /src/cpython/Objects/obmalloc.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 881
    functionName: set_up_debug_hooks_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - set_up_debug_hooks_domain_unlocked
    linkageType: ''
    returnType: void
    signature: void set_up_debug_hooks_unlocked(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:886,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:887,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 889
    functionName: PyMem_SetupDebugHooks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - set_up_debug_hooks_unlocked
    - PyMutex_Unlock
    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: 907
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 907
    functionName: get_allocator_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_allocator_unlocked(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: 919
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 919
    functionName: set_allocator_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_allocator_unlocked(PyMemAllocatorDomain domain, PyMemAllocatorEx
      *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:924,1
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:925,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - allocator
    argTypes:
    - PyMemAllocatorDomain
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 927
    functionName: PyMem_GetAllocator
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - PyMutex_Lock
    - get_allocator_unlocked
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void PyMem_GetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx
      *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:932,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:933,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - allocator
    argTypes:
    - PyMemAllocatorDomain
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 935
    functionName: PyMem_SetAllocator
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - PyMutex_Lock
    - set_allocator_unlocked
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void PyMem_SetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx
      *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:940,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyObjectArenaAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 943
    functionName: PyObject_GetArenaAllocator
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void PyObject_GetArenaAllocator(PyObjectArenaAllocator *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:948,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyObjectArenaAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: PyObject_SetArenaAllocator
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void PyObject_SetArenaAllocator(PyObjectArenaAllocator *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc
      Src: /src/cpython/Objects/obmalloc.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 976
    functionName: _PyObject_VirtualAlloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_VirtualAlloc(size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 982
    functionName: _PyObject_VirtualFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _PyObject_VirtualFree(void *obj, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 1001
    functionName: PyMem_RawMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 27
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_RawMalloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/cpython/Objects/obmalloc.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1010
    functionName: PyMem_RawCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 6
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_RawCalloc(size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/cpython/Objects/obmalloc.c:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1019
    functionName: PyMem_RawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 10
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_RawRealloc(void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1024
    functionName: PyMem_RawFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 50
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PyMem_RawFree(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1037,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1038,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1039,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1040,1
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1042
    functionName: PyMem_Malloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 114
    functionsReached:
    - OBJECT_STAT_INC
    - OBJECT_STAT_INC_COND
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_Malloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1050,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1051,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1052,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1053,1
    - Dst: calloc
      Src: /src/cpython/Objects/obmalloc.c:1054,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1055
    functionName: PyMem_Calloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 18
    functionsReached:
    - OBJECT_STAT_INC
    - calloc
    - OBJECT_STAT_INC_COND
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_Calloc(size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/cpython/Objects/obmalloc.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1064
    functionName: PyMem_Realloc
    functionSourceFile: /src/cpython/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: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1069,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1071
    functionName: PyMem_Free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 287
    functionsReached:
    - free
    - OBJECT_STAT_INC
    linkageType: ''
    returnType: void
    signature: void PyMem_Free(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1081,1
    - Dst: wcslen
      Src: /src/cpython/Objects/obmalloc.c:1083,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:1089,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 1080
        line_start: 1080
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1096
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1096
    functionName: _PyMem_RawWcsdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - memcpy
    - wcslen
    - PyMem_RawMalloc
    - assert
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _PyMem_RawWcsdup(const wchar_t *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1101,1
    - Dst: strlen
      Src: /src/cpython/Objects/obmalloc.c:1102,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:1103,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 1100
        line_start: 1100
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1109
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1109
    functionName: _PyMem_RawStrdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyMem_RawMalloc
    - assert
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyMem_RawStrdup(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1114,1
    - Dst: strlen
      Src: /src/cpython/Objects/obmalloc.c:1115,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/obmalloc.c:1116,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 1113
        line_start: 1113
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1122
      start: 1111
    functionDepth: 2
    functionLinenumber: 1111
    functionLinenumberEnd: 1122
    functionName: _PyMem_Strdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 6
    functionsReached:
    - memcpy
    - PyMem_Malloc
    - assert
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyMem_Strdup(const char *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1151
    functionName: work_item_should_decref
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int work_item_should_decref(uintptr_t ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: work_item_should_decref
      Src: /src/cpython/Objects/obmalloc.c:1156,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1160,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/obmalloc.c:1160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/obmalloc.c:1161,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1164,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/obmalloc.c:1164,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Objects/obmalloc.c:1165,1
    - Dst: cb
      Src: /src/cpython/Objects/obmalloc.c:1167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/obmalloc.c:1170,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - cb
    - state
    argTypes:
    - uintptr_t
    - delayed_dealloc_cb
    - void*
    assertStmts:
    - condition: (!_PyInterpreterState_GET()->stoptheworld.world_stopped)
      pos:
        line_end: 1159
        line_start: 1159
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (_PyInterpreterState_GET()->stoptheworld.world_stopped)
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1176
      start: 1153
    functionDepth: 4
    functionLinenumber: 1153
    functionLinenumberEnd: 1176
    functionName: free_work_item
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - work_item_should_decref
    - Py_DECREF
    - cb
    - _PyInterpreterState_GET
    - _Py_ExplicitMergeRefcount
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void free_work_item(uintptr_t ptr, delayed_dealloc_cb cb, void *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - qsbr
    - size
    argTypes:
    - struct _qsbr_thread_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1211
    functionName: should_advance_qsbr_for_free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_advance_qsbr_for_free(struct _qsbr_thread_state *qsbr,
      size_t size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: free_work_item
      Src: /src/cpython/Objects/obmalloc.c:1218,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/obmalloc.c:1220,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Objects/obmalloc.c:1221,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1226,1
    - Dst: work_item_should_decref
      Src: /src/cpython/Objects/obmalloc.c:1226,1
    - Dst: free_work_item
      Src: /src/cpython/Objects/obmalloc.c:1227,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:1231,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1235,1
    - Dst: llist_data
      Src: /src/cpython/Objects/obmalloc.c:1237,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/obmalloc.c:1245,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Objects/obmalloc.c:1247,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/obmalloc.c:1254,1
    - Dst: work_item_should_decref
      Src: /src/cpython/Objects/obmalloc.c:1255,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Objects/obmalloc.c:1257,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1263,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/obmalloc.c:1265,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/obmalloc.c:1267,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1272,1
    - Dst: should_advance_qsbr_for_free
      Src: /src/cpython/Objects/obmalloc.c:1274,1
    - Dst: _Py_qsbr_advance
      Src: /src/cpython/Objects/obmalloc.c:1275,1
    - Dst: _Py_qsbr_shared_next
      Src: /src/cpython/Objects/obmalloc.c:1278,1
    - Dst: _PyMem_ProcessDelayed
      Src: /src/cpython/Objects/obmalloc.c:1288,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - uintptr_t
    - size_t
    assertStmts:
    - condition: (!interp->stoptheworld.world_stopped || !work_item_should_decref(ptr))
      pos:
        line_end: 1225
        line_start: 1225
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (buf != NULL && buf->wr_idx < WORK_ITEMS_PER_CHUNK)
      pos:
        line_end: 1271
        line_start: 1271
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1291
      start: 1214
    functionDepth: 5
    functionLinenumber: 1214
    functionLinenumberEnd: 1291
    functionName: free_delayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free_work_item
    - PyMem_Calloc
    - llist_data
    - should_advance_qsbr_for_free
    - _PyThreadState_GET
    - llist_empty
    - PyMem_Free
    - _PyInterpreterState_GetFinalizing
    - _PyEval_StartTheWorld
    - _PyMem_ProcessDelayed
    - work_item_should_decref
    - llist_insert_tail
    - _Py_qsbr_advance
    - _Py_ExplicitMergeRefcount
    - _Py_Dealloc
    - _PyInterpreterState_GET
    - _Py_qsbr_shared_next
    - _PyEval_StopTheWorld
    - assert
    linkageType: ''
    returnType: void
    signature: void free_delayed(uintptr_t ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1296,1
    - Dst: free_delayed
      Src: /src/cpython/Objects/obmalloc.c:1298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (!((uintptr_t)ptr & 0x01))
      pos:
        line_end: 1295
        line_start: 1295
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1300
      start: 1293
    functionDepth: 6
    functionLinenumber: 1293
    functionLinenumberEnd: 1300
    functionName: _PyMem_FreeDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free_delayed
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyMem_FreeDelayed(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1306,1
    - Dst: free_delayed
      Src: /src/cpython/Objects/obmalloc.c:1311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!((uintptr_t)ptr & 0x01))
      pos:
        line_end: 1305
        line_start: 1305
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1313
      start: 1303
    functionDepth: 6
    functionLinenumber: 1303
    functionLinenumberEnd: 1313
    functionName: _PyObject_XDecRefDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - free_delayed
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyObject_XDecRefDelayed(PyObject *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/obmalloc.c:1321,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/obmalloc.c:1325,1
    - Dst: _PyObject_XDecRefDelayed
      Src: /src/cpython/Objects/obmalloc.c:1326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1328
    functionName: _PyObject_XSetRefDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _Py_IsImmortal
    - _PyObject_XDecRefDelayed
    linkageType: ''
    returnType: void
    signature: void _PyObject_XSetRefDelayed(PyObject **ptr, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Objects/obmalloc.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1335
    functionName: work_queue_first
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - llist_data
    linkageType: ''
    returnType: struct _mem_work_chunk
    signature: 'struct _mem_work_chunk *

      work_queue_first(struct llist_node *head)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1341,1
    - Dst: work_queue_first
      Src: /src/cpython/Objects/obmalloc.c:1342,1
    - Dst: _Py_qsbr_poll
      Src: /src/cpython/Objects/obmalloc.c:1346,1
    - Dst: free_work_item
      Src: /src/cpython/Objects/obmalloc.c:1352,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1356,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/obmalloc.c:1363,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - head
    - tstate
    - keep_empty
    - cb
    - state
    argTypes:
    - struct llist_node*
    - _PyThreadStateImpl*
    - bool
    - delayed_dealloc_cb
    - void*
    assertStmts:
    - condition: (buf->rd_idx == buf->wr_idx)
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1366
      start: 1337
    functionDepth: 5
    functionLinenumber: 1337
    functionLinenumberEnd: 1366
    functionName: process_queue
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free_work_item
    - llist_remove
    - work_queue_first
    - _Py_qsbr_poll
    - llist_empty
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: "void process_queue(struct llist_node *head, _PyThreadStateImpl *tstate,\n
      \             bool keep_empty, delayed_dealloc_cb cb, void *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1373,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Objects/obmalloc.c:1373,1
    - Dst: process_queue
      Src: /src/cpython/Objects/obmalloc.c:1374,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1376,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Objects/obmalloc.c:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - queue
    - tstate
    - cb
    - state
    argTypes:
    - struct _Py_mem_interp_free_queue*
    - _PyThreadStateImpl*
    - delayed_dealloc_cb
    - void*
    assertStmts:
    - condition: (PyMutex_IsLocked(&queue->mutex))
      pos:
        line_end: 1372
        line_start: 1372
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1378
      start: 1368
    functionDepth: 6
    functionLinenumber: 1368
    functionLinenumberEnd: 1378
    functionName: process_interp_queue
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int_relaxed
    - process_queue
    - PyMutex_IsLocked
    - llist_empty
    - assert
    linkageType: ''
    returnType: void
    signature: "void process_interp_queue(struct _Py_mem_interp_free_queue *queue,\n
      \                    _PyThreadStateImpl *tstate, delayed_dealloc_cb cb,\n                     void
      *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Objects/obmalloc.c:1385,1
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Objects/obmalloc.c:1390,1
    - Dst: process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1391,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - queue
    - tstate
    - cb
    - state
    argTypes:
    - struct _Py_mem_interp_free_queue*
    - _PyThreadStateImpl*
    - delayed_dealloc_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1380
    functionDepth: 7
    functionLinenumber: 1380
    functionLinenumberEnd: 1394
    functionName: maybe_process_interp_queue
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMutex_LockTimed
    - PyMutex_Unlock
    - process_interp_queue
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: "void maybe_process_interp_queue(struct _Py_mem_interp_free_queue *queue,\n
      \                          _PyThreadStateImpl *tstate, delayed_dealloc_cb cb,\n
      \                          void *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_queue
      Src: /src/cpython/Objects/obmalloc.c:1405,1
    - Dst: maybe_process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1396
    functionDepth: 8
    functionLinenumber: 1396
    functionLinenumberEnd: 1409
    functionName: _PyMem_ProcessDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - process_queue
    - maybe_process_interp_queue
    linkageType: ''
    returnType: void
    signature: void _PyMem_ProcessDelayed(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_queue
      Src: /src/cpython/Objects/obmalloc.c:1418,1
    - Dst: maybe_process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - cb
    - state
    argTypes:
    - PyThreadState*
    - delayed_dealloc_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1411
    functionDepth: 8
    functionLinenumber: 1411
    functionLinenumberEnd: 1422
    functionName: _PyMem_ProcessDelayedNoDealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - process_queue
    - maybe_process_interp_queue
    linkageType: ''
    returnType: void
    signature: void _PyMem_ProcessDelayedNoDealloc(PyThreadState *tstate, delayed_dealloc_cb
      cb, void *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1430,1
    - Dst: work_queue_first
      Src: /src/cpython/Objects/obmalloc.c:1435,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/obmalloc.c:1437,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1438,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1439,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1439,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:1443,1
    - Dst: llist_concat
      Src: /src/cpython/Objects/obmalloc.c:1446,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:1449,1
    - Dst: process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1450,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1452,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1454,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (llist_empty(queue))
      pos:
        line_end: 1438
        line_start: 1438
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (llist_empty(queue))
      pos:
        line_end: 1453
        line_start: 1453
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1455
      start: 1424
    functionDepth: 7
    functionLinenumber: 1424
    functionLinenumberEnd: 1455
    functionName: _PyMem_AbandonDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - process_interp_queue
    - llist_remove
    - PyMutex_Lock
    - _PyThreadState_GET
    - work_queue_first
    - PyMutex_Unlock
    - llist_concat
    - llist_empty
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyMem_AbandonDelayed(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1461,1
    - Dst: work_queue_first
      Src: /src/cpython/Objects/obmalloc.c:1462,1
    - Dst: free_work_item
      Src: /src/cpython/Objects/obmalloc.c:1470,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/obmalloc.c:1474,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1457
    functionDepth: 5
    functionLinenumber: 1457
    functionLinenumberEnd: 1477
    functionName: _PyMem_FiniDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free_work_item
    - llist_remove
    - work_queue_first
    - llist_empty
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _PyMem_FiniDelayed(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1489,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1490,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1491,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1492,1
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:1493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1494
    functionName: PyObject_Malloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 10
    functionsReached:
    - OBJECT_STAT_INC
    - OBJECT_STAT_INC_COND
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_Malloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1502,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1503,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1504,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1505,1
    - Dst: calloc
      Src: /src/cpython/Objects/obmalloc.c:1506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1507
    functionName: PyObject_Calloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - OBJECT_STAT_INC
    - calloc
    - OBJECT_STAT_INC_COND
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_Calloc(size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/cpython/Objects/obmalloc.c:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1516
    functionName: PyObject_Realloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_Realloc(void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1521,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:1522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1523
    functionName: PyObject_Free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 25
    functionsReached:
    - free
    - OBJECT_STAT_INC
    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: 1530
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1530
    functionName: UNLIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    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: 1531
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1531
    functionName: LIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1533
    functionName: UNLIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    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: 1534
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1534
    functionName: LIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/obmalloc.c:1557,1
    - Dst: _Py_IsMainInterpreterFinalizing
      Src: /src/cpython/Objects/obmalloc.c:1559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1560
    functionName: has_own_state
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _Py_IsMainInterpreterFinalizing
    linkageType: ''
    returnType: int
    signature: int has_own_state(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/obmalloc.c:1565,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (interp->obmalloc != NULL)
      pos:
        line_end: 1565
        line_start: 1565
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1568
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1568
    functionName: get_state
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 59
    functionsReached:
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: OMState
    signature: 'OMState *

      get_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - allocated_blocks
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1589
    functionName: count_blocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool count_blocks(\n    const mi_heap_t* heap, const mi_heap_area_t*
      area,\n    void* block, size_t block_size, void* allocated_blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:1600,1
    - Dst: _mi_abandoned_pool_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:1606,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/obmalloc.c:1611,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:1612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1615
    functionName: get_mimalloc_allocated_blocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_visit_blocks
    - _mi_abandoned_pool_visit_blocks
    - mi_heap_get_default
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_mimalloc_allocated_blocks(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:1600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1602
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_visit_blocks
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_MimallocEnabled
      Src: /src/cpython/Objects/obmalloc.c:1622,1
    - Dst: get_mimalloc_allocated_blocks
      Src: /src/cpython/Objects/obmalloc.c:1623,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1628,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1628,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1630,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:1631,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Objects/obmalloc.c:1649,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1652,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (has_own_state(interp))
      pos:
        line_end: 1627
        line_start: 1627
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (base <= (uintptr_t) allarenas[i].pool_address)
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1659
      start: 1618
    functionDepth: 2
    functionLinenumber: 1618
    functionLinenumberEnd: 1659
    functionName: _PyInterpreterState_GetAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - has_own_state
    - _PyMem_MimallocEnabled
    - _Py_FatalErrorFunc
    - _Py_ALIGN_UP
    - get_mimalloc_allocated_blocks
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyInterpreterState_GetAllocatedBlocks(PyInterpreterState
      *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_MimallocEnabled
      Src: /src/cpython/Objects/obmalloc.c:1667,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1668,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1673,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1674,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1675,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1675,1
    - Dst: _PyMem_obmalloc_state_on_heap
      Src: /src/cpython/Objects/obmalloc.c:1677,1
    - Dst: free_obmalloc_arenas
      Src: /src/cpython/Objects/obmalloc.c:1685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (has_own_state(interp) || leaked == 0)
      pos:
        line_end: 1674
        line_start: 1674
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1688
      start: 1663
    functionDepth: 3
    functionLinenumber: 1663
    functionLinenumberEnd: 1688
    functionName: _PyInterpreterState_FinalizeAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - has_own_state
    - free_obmalloc_arenas
    - _PyMem_MimallocEnabled
    - _PyMem_obmalloc_state_on_heap
    - assert
    - _PyInterpreterState_GetAllocatedBlocks
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_FinalizeAllocatedBlocks(PyInterpreterState
      *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_num_global_allocated_blocks
      Src: /src/cpython/Objects/obmalloc.c:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1698
    functionDepth: 1
    functionLinenumber: 1698
    functionLinenumberEnd: 1703
    functionName: _Py_FinalizeAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - get_num_global_allocated_blocks
    linkageType: ''
    returnType: void
    signature: void _Py_FinalizeAllocatedBlocks(_PyRuntimeState *runtime)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetFinalizing
      Src: /src/cpython/Objects/obmalloc.c:1709,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/obmalloc.c:1710,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1716,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Objects/obmalloc.c:1716,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1719,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1721,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Objects/obmalloc.c:1721,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1722,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Objects/obmalloc.c:1726,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Objects/obmalloc.c:1727,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Objects/obmalloc.c:1728,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1729,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Objects/obmalloc.c:1733,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/obmalloc.c:1735,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1736,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1738,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1738,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1741,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1742,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Objects/obmalloc.c:1745,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Objects/obmalloc.c:1746,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (!got_main)
      pos:
        line_end: 1735
        line_start: 1735
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (interp != NULL)
      pos:
        line_end: 1718
        line_start: 1718
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (PyInterpreterState_Head() == NULL)
      pos:
        line_end: 1715
        line_start: 1715
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (PyInterpreterState_Next(interp) == NULL)
      pos:
        line_end: 1720
        line_start: 1720
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (interp != NULL)
      pos:
        line_end: 1728
        line_start: 1728
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (has_own_state(interp))
      pos:
        line_end: 1737
        line_start: 1737
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (got_main)
      pos:
        line_end: 1747
        line_start: 1747
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1754
      start: 1705
    functionDepth: 3
    functionLinenumber: 1705
    functionLinenumberEnd: 1754
    functionName: get_num_global_allocated_blocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - _Py_IsMainInterpreter
    - has_own_state
    - _PyEval_StopTheWorldAll
    - HEAD_LOCK
    - PyInterpreterState_Next
    - HEAD_UNLOCK
    - PyInterpreterState_Head
    - _PyInterpreterState_Main
    - _PyRuntimeState_GetFinalizing
    - _PyEval_StartTheWorldAll
    - assert
    - _PyInterpreterState_GetAllocatedBlocks
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_num_global_allocated_blocks(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_num_global_allocated_blocks
      Src: /src/cpython/Objects/obmalloc.c:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1756
    functionDepth: 4
    functionLinenumber: 1756
    functionLinenumberEnd: 1760
    functionName: _Py_GetGlobalAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - get_num_global_allocated_blocks
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetGlobalAllocatedBlocks(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1779,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:1779,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:1779,1
    - Dst: MAP_TOP_INDEX
      Src: /src/cpython/Objects/obmalloc.c:1780,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:1785,1
    - Dst: MAP_MID_INDEX
      Src: /src/cpython/Objects/obmalloc.c:1792,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:1797,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (HIGH_BITS(p) == HIGH_BITS(&arena_map_root))
      pos:
        line_end: 1778
        line_start: 1778
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1808
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1808
    functionName: 'arena_map_bot_t *

      arena_map_get(OMState *state, pymem_block *p, int create)'
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - HIGH_BITS
    - MAP_TOP_INDEX
    - MAP_MID_INDEX
    - assert
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: 'Py_ALWAYS_INLINE arena_map_bot_t *

      arena_map_get(OMState *state, pymem_block *p, int create)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1839,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:1839,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:1839,1
    - Dst: arena_map_get
      Src: /src/cpython/Objects/obmalloc.c:1840,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1843,1
    - Dst: MAP_BOT_INDEX
      Src: /src/cpython/Objects/obmalloc.c:1846,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1865,1
    - Dst: arena_map_get
      Src: /src/cpython/Objects/obmalloc.c:1866,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1869,1
    - Dst: MAP_BOT_INDEX
      Src: /src/cpython/Objects/obmalloc.c:1873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - state
    - arena_base
    - is_used
    argTypes:
    - OMState*
    - uintptr_t
    - int
    assertStmts:
    - condition: (HIGH_BITS(arena_base) == HIGH_BITS(&arena_map_root))
      pos:
        line_end: 1838
        line_start: 1838
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (is_used)
      pos:
        line_end: 1842
        line_start: 1842
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (arena_base < arena_base_next)
      pos:
        line_end: 1864
        line_start: 1864
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (is_used)
      pos:
        line_end: 1868
        line_start: 1868
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1877
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1877
    functionName: arena_map_mark_used
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - arena_map_get
    - MAP_BOT_INDEX
    - HIGH_BITS
    - assert
    linkageType: ''
    returnType: int
    signature: int arena_map_mark_used(OMState *state, uintptr_t arena_base, int is_used)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arena_map_get
      Src: /src/cpython/Objects/obmalloc.c:1884,1
    - Dst: MAP_BOT_INDEX
      Src: /src/cpython/Objects/obmalloc.c:1888,1
    - Dst: AS_UINT
      Src: /src/cpython/Objects/obmalloc.c:1892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - state
    - p
    argTypes:
    - OMState*
    - pymem_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1881
    functionDepth: 1
    functionLinenumber: 1881
    functionLinenumberEnd: 1894
    functionName: arena_map_is_used
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - arena_map_get
    - MAP_BOT_INDEX
    - AS_UINT
    linkageType: ''
    returnType: int
    signature: int arena_map_is_used(OMState *state, pymem_block *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Objects/obmalloc.c:1915,1
    - Dst: _PyObject_DebugMallocStats
      Src: /src/cpython/Objects/obmalloc.c:1920,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Objects/obmalloc.c:1939,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1950,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1951,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1966,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1969,1
    - Dst: alloc
      Src: /src/cpython/Objects/obmalloc.c:1970,1
    - Dst: arena_map_mark_used
      Src: /src/cpython/Objects/obmalloc.c:1973,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:1975,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 1
    argNames:
    - state
    argTypes:
    - OMState*
    assertStmts:
    - condition: (usable_arenas == NULL)
      pos:
        line_end: 1949
        line_start: 1949
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (unused_arena_objects == NULL)
      pos:
        line_end: 1950
        line_start: 1950
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (unused_arena_objects != NULL)
      pos:
        line_end: 1965
        line_start: 1965
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (arenaobj->address == 0)
      pos:
        line_end: 1968
        line_start: 1968
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2007
      start: 1906
    functionDepth: 2
    functionLinenumber: 1906
    functionLinenumberEnd: 2007
    functionName: new_arena
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyObject_DebugMallocStats
    - arena_map_mark_used
    - alloc
    - Py_GETENV
    - PyMem_RawRealloc
    - free
    - assert
    linkageType: ''
    returnType: struct arena_object
    signature: 'struct arena_object *

      new_arena(OMState *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arena_map_is_used
      Src: /src/cpython/Objects/obmalloc.c:2018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - Py_UNUSED
    argTypes:
    - OMState*
    - void*
    - poolp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2015
    functionDepth: 2
    functionLinenumber: 2015
    functionLinenumberEnd: 2019
    functionName: address_in_range
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - arena_map_is_used
    linkageType: ''
    returnType: bool
    signature: bool address_in_range(OMState *state, void *p, poolp Py_UNUSED(pool))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - pool
    argTypes:
    - OMState*
    - void*
    - poolp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2096
    functionDepth: 0
    functionLinenumber: 2096
    functionLinenumberEnd: 2110
    functionName: address_in_range
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool address_in_range(OMState *state, void *p, poolp pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2121,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:2124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - size
    argTypes:
    - poolp
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2135
    functionName: pymalloc_pool_extend
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - INDEX2SIZE
    - UNLIKELY
    linkageType: ''
    returnType: void
    signature: void pymalloc_pool_extend(poolp pool, uint size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2146,1
    - Dst: new_arena
      Src: /src/cpython/Objects/obmalloc.c:2153,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2158,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2161,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2168,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2175,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2181,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2185,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2187,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2188,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2194,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2203,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2211,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2212,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2214,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2217,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2223,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2230,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2249,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:2259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 74
    argCount: 2
    argNames:
    - state
    - size
    argTypes:
    - OMState*
    - uint
    assertStmts:
    - condition: (usable_arenas->freepools == NULL)
      pos:
        line_end: 2186
        line_start: 2186
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(usable_arenas->nextarena == NULL ||\n                   usable_arenas->nextarena->prevarena
        ==\n                   usable_arenas)"
      pos:
        line_end: 2189
        line_start: 2187
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2193
        line_start: 2193
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->nfreepools > 0)
      pos:
        line_end: 2210
        line_start: 2210
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2229
        line_start: 2229
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2160
        line_start: 2160
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (&allarenas[pool->arenaindex] == usable_arenas)
      pos:
        line_end: 2216
        line_start: 2216
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (nfp2lasta[usable_arenas->nfreepools - 1] == NULL)
      pos:
        line_end: 2174
        line_start: 2174
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(usable_arenas->freepools != NULL ||\n                   usable_arenas->pool_address
        <=\n                   (pymem_block*)usable_arenas->address +\n                       ARENA_SIZE
        - POOL_SIZE)"
      pos:
        line_end: 2205
        line_start: 2202
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->freepools == NULL)
      pos:
        line_end: 2211
        line_start: 2211
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(usable_arenas->nextarena == NULL ||\n                   usable_arenas->nextarena->prevarena
        ==\n                   usable_arenas)"
      pos:
        line_end: 2224
        line_start: 2222
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (bp != NULL)
      pos:
        line_end: 2248
        line_start: 2248
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->nfreepools > 0)
      pos:
        line_end: 2167
        line_start: 2167
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (nfp2lasta[usable_arenas->nfreepools] == NULL)
      pos:
        line_end: 2157
        line_start: 2157
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "((pymem_block*)pool <= (pymem_block*)usable_arenas->address +\n
        \                                ARENA_SIZE - POOL_SIZE)"
      pos:
        line_end: 2214
        line_start: 2213
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2266
      start: 2140
    functionDepth: 3
    functionLinenumber: 2140
    functionLinenumberEnd: 2266
    functionName: allocate_from_new_pool
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - INDEX2SIZE
    - new_arena
    - UNLIKELY
    - LIKELY
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      allocate_from_new_pool(OMState *state, uint size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2280,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2283,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2288,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2291,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2299,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2306,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2308,1
    - Dst: pymalloc_pool_extend
      Src: /src/cpython/Objects/obmalloc.c:2310,1
    - Dst: allocate_from_new_pool
      Src: /src/cpython/Objects/obmalloc.c:2317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - state
    - Py_UNUSED(ctx)
    - nbytes
    argTypes:
    - OMState*
    - void*
    - size_t
    assertStmts:
    - condition: (bp != NULL)
      pos:
        line_end: 2305
        line_start: 2305
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2321
      start: 2276
    functionDepth: 4
    functionLinenumber: 2276
    functionLinenumberEnd: 2321
    functionName: pymalloc_alloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - allocate_from_new_pool
    - UNLIKELY
    - LIKELY
    - pymalloc_pool_extend
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      pymalloc_alloc(OMState *state, void *Py_UNUSED(ctx), size_t nbytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_state
      Src: /src/cpython/Objects/obmalloc.c:2327,1
    - Dst: pymalloc_alloc
      Src: /src/cpython/Objects/obmalloc.c:2328,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2329,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:2333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2324
    functionDepth: 5
    functionLinenumber: 2324
    functionLinenumberEnd: 2338
    functionName: _PyObject_Malloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - get_state
    - LIKELY
    - PyMem_RawMalloc
    - pymalloc_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_Malloc(void *ctx, size_t nbytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2344,1
    - Dst: get_state
      Src: /src/cpython/Objects/obmalloc.c:2347,1
    - Dst: pymalloc_alloc
      Src: /src/cpython/Objects/obmalloc.c:2348,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2349,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2350,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:2354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    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: 2343
        line_start: 2343
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2359
      start: 2341
    functionDepth: 5
    functionLinenumber: 2341
    functionLinenumberEnd: 2359
    functionName: _PyObject_Calloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - memset
    - pymalloc_alloc
    - get_state
    - LIKELY
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_Calloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - state
    - pool
    argTypes:
    - OMState*
    - poolp
    assertStmts:
    - condition: (pool->ref.count > 0)
      pos:
        line_end: 2364
        line_start: 2364
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2376
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2376
    functionName: insert_to_usedpool
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void insert_to_usedpool(OMState *state, poolp pool)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2398,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2430,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2432,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2440,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2444,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2450,1
    - Dst: arena_map_mark_used
      Src: /src/cpython/Objects/obmalloc.c:2462,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:2466,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2485,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2512,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2521,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2526,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2538,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2539,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2540,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2541,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 2
    argNames:
    - state
    - pool
    argTypes:
    - OMState*
    - poolp
    assertStmts:
    - 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: 2402
        line_start: 2397
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->prevarena->nextarena == ao)
      pos:
        line_end: 2443
        line_start: 2443
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(usable_arenas == NULL ||\n                   usable_arenas->address
        != 0)"
      pos:
        line_end: 2440
        line_start: 2439
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(ao ->nextarena == NULL ||\n               ao->nextarena->address
        != 0)"
      pos:
        line_end: 2432
        line_start: 2431
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(ao->prevarena == NULL ||\n               ao->prevarena->address
        != 0)"
      pos:
        line_end: 2430
        line_start: 2429
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena->prevarena == ao)
      pos:
        line_end: 2449
        line_start: 2449
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2484
        line_start: 2484
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena != NULL)
      pos:
        line_end: 2511
        line_start: 2511
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena == NULL || nf <= ao->nextarena->nfreepools)
      pos:
        line_end: 2537
        line_start: 2537
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena == NULL || ao->nextarena->prevarena == ao)
      pos:
        line_end: 2539
        line_start: 2539
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas == ao)
      pos:
        line_end: 2525
        line_start: 2525
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->prevarena == NULL || nf > ao->prevarena->nfreepools)
      pos:
        line_end: 2538
        line_start: 2538
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "((usable_arenas == ao && ao->prevarena == NULL)\n           || ao->prevarena->nextarena
        == ao)"
      pos:
        line_end: 2541
        line_start: 2540
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->prevarena->nextarena == ao)
      pos:
        line_end: 2520
        line_start: 2520
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2543
      start: 2378
    functionDepth: 2
    functionLinenumber: 2378
    functionLinenumberEnd: 2543
    functionName: insert_to_freepool
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free
    - arena_map_mark_used
    - assert
    linkageType: ''
    returnType: void
    signature: void insert_to_freepool(OMState *state, poolp pool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2551,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2554,1
    - Dst: POOL_ADDR
      Src: /src/cpython/Objects/obmalloc.c:2559,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2560,1
    - Dst: address_in_range
      Src: /src/cpython/Objects/obmalloc.c:2560,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2571,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2577,1
    - Dst: insert_to_usedpool
      Src: /src/cpython/Objects/obmalloc.c:2584,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2591,1
    - Dst: insert_to_freepool
      Src: /src/cpython/Objects/obmalloc.c:2601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - state
    - Py_UNUSED(ctx)
    - p
    argTypes:
    - OMState*
    - void*
    - void*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 2550
        line_start: 2550
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (pool->ref.count > 0)
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2603
      start: 2548
    functionDepth: 3
    functionLinenumber: 2548
    functionLinenumberEnd: 2603
    functionName: pymalloc_free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - address_in_range
    - insert_to_usedpool
    - insert_to_freepool
    - UNLIKELY
    - LIKELY
    - POOL_ADDR
    linkageType: ''
    returnType: int
    signature: int pymalloc_free(OMState *state, void *Py_UNUSED(ctx), void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_state
      Src: /src/cpython/Objects/obmalloc.c:2614,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2615,1
    - Dst: pymalloc_free
      Src: /src/cpython/Objects/obmalloc.c:2615,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:2617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2606
    functionDepth: 4
    functionLinenumber: 2606
    functionLinenumberEnd: 2620
    functionName: _PyObject_Free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - get_state
    - pymalloc_free
    - PyMem_RawFree
    - UNLIKELY
    linkageType: ''
    returnType: void
    signature: void _PyObject_Free(void *ctx, void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2640,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2644,1
    - Dst: POOL_ADDR
      Src: /src/cpython/Objects/obmalloc.c:2649,1
    - Dst: address_in_range
      Src: /src/cpython/Objects/obmalloc.c:2650,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:2667,1
    - Dst: _PyObject_Malloc
      Src: /src/cpython/Objects/obmalloc.c:2684,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:2686,1
    - Dst: _PyObject_Free
      Src: /src/cpython/Objects/obmalloc.c:2687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - state
    - ctx
    - newptr_p
    - p
    - nbytes
    argTypes:
    - OMState*
    - void*
    - void**
    - void*
    - size_t
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 2639
        line_start: 2639
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2691
      start: 2632
    functionDepth: 6
    functionLinenumber: 2632
    functionLinenumberEnd: 2691
    functionName: pymalloc_realloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - INDEX2SIZE
    - address_in_range
    - _PyObject_Malloc
    - UNLIKELY
    - memcpy
    - _PyObject_Free
    - POOL_ADDR
    linkageType: ''
    returnType: int
    signature: "int pymalloc_realloc(OMState *state, void *ctx,\n                 void
      **newptr_p, void *p, size_t nbytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_Malloc
      Src: /src/cpython/Objects/obmalloc.c:2700,1
    - Dst: get_state
      Src: /src/cpython/Objects/obmalloc.c:2703,1
    - Dst: pymalloc_realloc
      Src: /src/cpython/Objects/obmalloc.c:2704,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Objects/obmalloc.c:2708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2694
    functionDepth: 7
    functionLinenumber: 2694
    functionLinenumberEnd: 2709
    functionName: _PyObject_Realloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - pymalloc_realloc
    - get_state
    - PyMem_RawRealloc
    - _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: 1
    argNames:
    - Py_UNUSED(interp)
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 0
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: _PyInterpreterState_GetAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyInterpreterState_GetAllocatedBlocks(PyInterpreterState
      *Py_UNUSED(interp))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2723
    functionDepth: 0
    functionLinenumber: 2723
    functionLinenumberEnd: 2727
    functionName: _Py_GetGlobalAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetGlobalAllocatedBlocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(interp)
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2733
    functionName: _PyInterpreterState_FinalizeAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_FinalizeAllocatedBlocks(PyInterpreterState
      *Py_UNUSED(interp))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(runtime)
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2735
    functionDepth: 0
    functionLinenumber: 2735
    functionLinenumberEnd: 2739
    functionName: _Py_FinalizeAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FinalizeAllocatedBlocks(_PyRuntimeState *Py_UNUSED(runtime))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2762
    functionName: bumpserialno
    functionSourceFile: /src/cpython/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: 2784
      start: 2774
    functionDepth: 0
    functionLinenumber: 2774
    functionLinenumberEnd: 2784
    functionName: read_size_t
    functionSourceFile: /src/cpython/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: 2799
      start: 2789
    functionDepth: 0
    functionLinenumber: 2789
    functionLinenumberEnd: 2799
    functionName: write_size_t
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_size_t(void *p, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:2809,1
    - Dst: _mi_ptr_page
      Src: /src/cpython/Objects/obmalloc.c:2816,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2820,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - api
    - data
    - c
    - nbytes
    - is_alloc
    argTypes:
    - debug_alloc_api_t*
    - void*
    - int
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2826
    functionName: fill_mem_debug
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _mi_ptr_page
    - memset
    linkageType: ''
    returnType: void
    signature: "void fill_mem_debug(debug_alloc_api_t *api, void *data, int c, size_t
      nbytes,\n               bool is_alloc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: debug_alloc_api_t*::alloc::calloc
      Src: /src/cpython/Objects/obmalloc.c:2884,1
    - Dst: debug_alloc_api_t*::alloc::malloc
      Src: /src/cpython/Objects/obmalloc.c:2887,1
    - Dst: bumpserialno
      Src: /src/cpython/Objects/obmalloc.c:2895,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:2899,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2901,1
    - Dst: fill_mem_debug
      Src: /src/cpython/Objects/obmalloc.c:2904,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2909,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:2911,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - use_calloc
    - ctx
    - nbytes
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2857
    functionDepth: 2
    functionLinenumber: 2857
    functionLinenumberEnd: 2915
    functionName: _PyMem_DebugRawAlloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - memset
    - write_size_t
    - debug_alloc_api_t*::alloc::calloc
    - fill_mem_debug
    - bumpserialno
    - 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/cpython/Objects/obmalloc.c:2920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2917
    functionDepth: 3
    functionLinenumber: 2917
    functionLinenumberEnd: 2921
    functionName: _PyMem_DebugRawMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - _PyMem_DebugRawAlloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRawMalloc(void *ctx, size_t nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2927,1
    - Dst: _PyMem_DebugRawAlloc
      Src: /src/cpython/Objects/obmalloc.c:2929,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: 2926
        line_start: 2926
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2930
      start: 2923
    functionDepth: 3
    functionLinenumber: 2923
    functionLinenumberEnd: 2930
    functionName: _PyMem_DebugRawCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - _PyMem_DebugRawAlloc
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRawCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckAddress
      Src: /src/cpython/Objects/obmalloc.c:2950,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:2951,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2953,1
    - Dst: fill_mem_debug
      Src: /src/cpython/Objects/obmalloc.c:2954,1
    - Dst: debug_alloc_api_t*::alloc::free
      Src: /src/cpython/Objects/obmalloc.c:2955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2938
    functionDepth: 2
    functionLinenumber: 2938
    functionLinenumberEnd: 2956
    functionName: _PyMem_DebugRawFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - _PyMem_DebugCheckAddress
    - memset
    - read_size_t
    - fill_mem_debug
    - debug_alloc_api_t*::alloc::free
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugRawFree(void *ctx, void *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawAlloc
      Src: /src/cpython/Objects/obmalloc.c:2963,1
    - Dst: _PyMem_DebugCheckAddress
      Src: /src/cpython/Objects/obmalloc.c:2975,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:2979,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:2988,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:2996,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2997,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3001,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3002,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3003,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3004,1
    - Dst: debug_alloc_api_t*::alloc::realloc
      Src: /src/cpython/Objects/obmalloc.c:3010,1
    - Dst: bumpserialno
      Src: /src/cpython/Objects/obmalloc.c:3019,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:3025,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3027,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3030,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:3032,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3038,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/obmalloc.c:3038,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3042,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/obmalloc.c:3042,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3044,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/obmalloc.c:3045,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3056,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 3
    argNames:
    - ctx
    - p
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 2959
    functionDepth: 3
    functionLinenumber: 2959
    functionLinenumberEnd: 3061
    functionName: _PyMem_DebugRawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - Py_MIN
    - _PyMem_DebugRawAlloc
    - _PyMem_DebugCheckAddress
    - memset
    - debug_alloc_api_t*::alloc::realloc
    - write_size_t
    - read_size_t
    - bumpserialno
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRawRealloc(void *ctx, void *p, size_t nbytes)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:3066,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3069,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3063
    functionDepth: 1
    functionLinenumber: 3063
    functionLinenumberEnd: 3079
    functionName: _PyMem_DebugCheckGIL
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_FatalErrorFunc
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugCheckGIL(const char *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckGIL
      Src: /src/cpython/Objects/obmalloc.c:3084,1
    - Dst: _PyMem_DebugRawMalloc
      Src: /src/cpython/Objects/obmalloc.c:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3081
    functionDepth: 4
    functionLinenumber: 3081
    functionLinenumberEnd: 3086
    functionName: _PyMem_DebugMalloc
    functionSourceFile: /src/cpython/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/cpython/Objects/obmalloc.c:3091,1
    - Dst: _PyMem_DebugRawCalloc
      Src: /src/cpython/Objects/obmalloc.c:3092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3088
    functionDepth: 4
    functionLinenumber: 3088
    functionLinenumberEnd: 3093
    functionName: _PyMem_DebugCalloc
    functionSourceFile: /src/cpython/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/cpython/Objects/obmalloc.c:3099,1
    - Dst: _PyMem_DebugRawFree
      Src: /src/cpython/Objects/obmalloc.c:3100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3101
      start: 3096
    functionDepth: 3
    functionLinenumber: 3096
    functionLinenumberEnd: 3101
    functionName: _PyMem_DebugFree
    functionSourceFile: /src/cpython/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/cpython/Objects/obmalloc.c:3107,1
    - Dst: _PyMem_DebugRawRealloc
      Src: /src/cpython/Objects/obmalloc.c:3108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3104
    functionDepth: 4
    functionLinenumber: 3104
    functionLinenumberEnd: 3109
    functionName: _PyMem_DebugRealloc
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3119,1
    - Dst: _PyObject_DebugDumpAddress
      Src: /src/cpython/Objects/obmalloc.c:3130,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Objects/obmalloc.c:3131,1
    - Dst: _PyObject_DebugDumpAddress
      Src: /src/cpython/Objects/obmalloc.c:3143,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3144,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3148,1
    - Dst: _PyObject_DebugDumpAddress
      Src: /src/cpython/Objects/obmalloc.c:3152,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - func
    - api
    - p
    argTypes:
    - char*
    - char
    - void*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 3118
        line_start: 3118
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 3156
      start: 3116
    functionDepth: 1
    functionLinenumber: 3116
    functionLinenumberEnd: 3156
    functionName: _PyMem_DebugCheckAddress
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - _PyObject_DebugDumpAddress
    - read_size_t
    - _Py_FatalErrorFormat
    - _Py_FatalErrorFunc
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugCheckAddress(const char *func, char api, const void
      *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3169,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3171,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3175,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3177,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3178,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3181,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3190,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3192,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3196,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3198,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3199,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3202,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3209,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3218,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3220,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3224,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3227,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3228,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3233,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3234,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3241,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3244,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3251,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3255,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3259,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3261,1
    - Dst: fflush
      Src: /src/cpython/Objects/obmalloc.c:3263,1
    - Dst: _PyMem_DumpTraceback
      Src: /src/cpython/Objects/obmalloc.c:3264,1
    - Dst: fileno
      Src: /src/cpython/Objects/obmalloc.c:3264,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3159
    functionDepth: 1
    functionLinenumber: 3159
    functionLinenumberEnd: 3265
    functionName: _PyObject_DebugDumpAddress
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - fputc
    - _PyMem_DumpTraceback
    - read_size_t
    - fputs
    - fflush
    - fprintf
    - fileno
    linkageType: ''
    returnType: void
    signature: void _PyObject_DebugDumpAddress(const void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3275,1
    - Dst: strlen
      Src: /src/cpython/Objects/obmalloc.c:3276,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3277,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3278,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - out
    - msg
    - value
    argTypes:
    - FILE*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3268
    functionDepth: 0
    functionLinenumber: 3268
    functionLinenumberEnd: 3302
    functionName: printone
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - fputc
    - fputs
    - strlen
    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/cpython/Objects/obmalloc.c:3310,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/obmalloc.c:3313,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3315,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: 3316
      start: 3304
    functionDepth: 1
    functionLinenumber: 3304
    functionLinenumberEnd: 3316
    functionName: _PyDebugAllocatorStats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3333
      start: 3326
    functionDepth: 0
    functionLinenumber: 3326
    functionLinenumberEnd: 3333
    functionName: _PyMem_obmalloc_state_on_heap
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _PyMem_obmalloc_state_on_heap(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _obmalloc_pools_INIT
      Src: /src/cpython/Objects/obmalloc.c:3342,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3344
      start: 3336
    functionDepth: 1
    functionLinenumber: 3336
    functionLinenumberEnd: 3344
    functionName: init_obmalloc_pools
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _obmalloc_pools_INIT
    linkageType: ''
    returnType: void
    signature: void init_obmalloc_pools(PyInterpreterState *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/obmalloc.c:3352,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Objects/obmalloc.c:3353,1
    - Dst: init_obmalloc_pools
      Src: /src/cpython/Objects/obmalloc.c:3357,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:3361,1
    - Dst: init_obmalloc_pools
      Src: /src/cpython/Objects/obmalloc.c:3365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3347
    functionDepth: 2
    functionLinenumber: 3347
    functionLinenumberEnd: 3369
    functionName: _PyMem_init_obmalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - _Py_IsMainInterpreter
    - _PyInterpreterState_HasFeature
    - init_obmalloc_pools
    linkageType: ''
    returnType: int
    signature: int _PyMem_init_obmalloc(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:3381,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:3385,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:3400,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:3402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3406
      start: 3374
    functionDepth: 1
    functionLinenumber: 3374
    functionLinenumberEnd: 3406
    functionName: free_obmalloc_arenas
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - free
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void free_obmalloc_arenas(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - target
    - list
    argTypes:
    - poolp
    - poolp
    assertStmts:
    - condition: (target != NULL)
      pos:
        line_end: 3416
        line_start: 3416
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 3426
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3426
    functionName: pool_is_in_list
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int pool_is_in_list(const poolp target, poolp list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - arg
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3438
    functionDepth: 0
    functionLinenumber: 3438
    functionLinenumberEnd: 3449
    functionName: _collect_alloc_stats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool _collect_alloc_stats(\n    const mi_heap_t* heap, const mi_heap_area_t*
      area,\n    void* block, size_t block_size, void* arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3454,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3456,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3458,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/obmalloc.c:3461,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3463,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:3464,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3466,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3467,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3468,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3469,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3451
    functionDepth: 1
    functionLinenumber: 3451
    functionLinenumberEnd: 3471
    functionName: py_mimalloc_print_stats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - fprintf
    - mi_heap_visit_blocks
    - memset
    - mi_heap_get_default
    linkageType: ''
    returnType: void
    signature: void py_mimalloc_print_stats(FILE *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_state
      Src: /src/cpython/Objects/obmalloc.c:3478,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3507,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3535,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3544,1
    - Dst: pool_is_in_list
      Src: /src/cpython/Objects/obmalloc.c:3544,1
    - Dst: NUMBLOCKS
      Src: /src/cpython/Objects/obmalloc.c:3550,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3554,1
    - Dst: pool_is_in_list
      Src: /src/cpython/Objects/obmalloc.c:3554,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3558,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3560,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3561,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:3569,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3571,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3574,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3581,1
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Objects/obmalloc.c:3583,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3584,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3587,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3588,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3589,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3590,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/obmalloc.c:3592,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3595,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3597,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3600,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3601,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/obmalloc.c:3603,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3605,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3607,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3608,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3609,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3610,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3611,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3614,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3616,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3617,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3618,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3620,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3622,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3624,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3626,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 70
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts:
    - condition: (narenas * ARENA_SIZE == total)
      pos:
        line_end: 3610
        line_start: 3610
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (base <= (uintptr_t) allarenas[i].pool_address)
      pos:
        line_end: 3534
        line_start: 3534
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (pool_is_in_list(p, allarenas[i].freepools))
      pos:
        line_end: 3543
        line_start: 3543
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (narenas == narenas_currently_allocated)
      pos:
        line_end: 3557
        line_start: 3557
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (pool_is_in_list(p, usedpools[sz + sz]))
      pos:
        line_end: 3553
        line_start: 3553
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (b == 0 && f == 0)
      pos:
        line_end: 3570
        line_start: 3570
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 3630
      start: 3475
    functionDepth: 2
    functionLinenumber: 3475
    functionLinenumberEnd: 3630
    functionName: pymalloc_print_stats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - INDEX2SIZE
    - _PyMem_DebugEnabled
    - PyOS_snprintf
    - printone
    - fputc
    - fputs
    - get_state
    - pool_is_in_list
    - fprintf
    - NUMBLOCKS
    - assert
    linkageType: ''
    returnType: void
    signature: void pymalloc_print_stats(FILE *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_MimallocEnabled
      Src: /src/cpython/Objects/obmalloc.c:3643,1
    - Dst: py_mimalloc_print_stats
      Src: /src/cpython/Objects/obmalloc.c:3644,1
    - Dst: _PyMem_PymallocEnabled
      Src: /src/cpython/Objects/obmalloc.c:3649,1
    - Dst: pymalloc_print_stats
      Src: /src/cpython/Objects/obmalloc.c:3650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3639
    functionDepth: 3
    functionLinenumber: 3639
    functionLinenumberEnd: 3656
    functionName: _PyObject_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - py_mimalloc_print_stats
    - _PyMem_MimallocEnabled
    - pymalloc_print_stats
    - _PyMem_PymallocEnabled
    linkageType: ''
    returnType: int
    signature: int _PyObject_DebugMallocStats(FILE *out)
  - 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: _PySlice_CAST
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PySlice_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/sliceobject.c:30,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/sliceobject.c:30,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: ellipsis_new
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ellipsis_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/sliceobject.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ellipsis
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: ellipsis_dealloc
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortal
    linkageType: ''
    returnType: void
    signature: void ellipsis_dealloc(PyObject *ellipsis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/sliceobject.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: ellipsis_repr
    functionSourceFile: /src/cpython/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/cpython/Objects/sliceobject.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: ellipsis_reduce
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ellipsis_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/sliceobject.c:122,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/sliceobject.c:123,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/sliceobject.c:125,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:133,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/sliceobject.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (start != NULL && stop != NULL && step != NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 141
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 141
    functionName: _PyBuildSlice_Consume2
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_TRACK
    - Py_NewRef
    - _Py_FREELIST_POP
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PySliceObject
    signature: 'PySliceObject *

      _PyBuildSlice_Consume2(PyObject *start, PyObject *stop, PyObject *step)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyBuildSlice_Consume2
      Src: /src/cpython/Objects/sliceobject.c:155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: PySlice_New
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyBuildSlice_Consume2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySlice_New(PyObject *start, PyObject *stop, PyObject *step)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/sliceobject.c:162,1
    - Dst: _PyBuildSlice_Consume2
      Src: /src/cpython/Objects/sliceobject.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - start
    - stop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (start != NULL && stop != NULL)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: _PyBuildSlice_ConsumeRefs
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyBuildSlice_Consume2
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/sliceobject.c:170,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/sliceobject.c:173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:175,1
    - Dst: PySlice_New
      Src: /src/cpython/Objects/sliceobject.c:179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - istart
    - istop
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 183
    functionName: _PySlice_FromIndices
    functionSourceFile: /src/cpython/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/cpython/Objects/sliceobject.c:194,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/sliceobject.c:195,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/sliceobject.c:200,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/sliceobject.c:201,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/sliceobject.c:207,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/sliceobject.c:208,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: 215
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 215
    functionName: PySlice_GetIndices
    functionSourceFile: /src/cpython/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: _PyEval_SliceIndex
      Src: /src/cpython/Objects/sliceobject.c:231,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:233,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/sliceobject.c:250,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/sliceobject.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - _r
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 261
    functionName: PySlice_Unpack
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 11
    functionsReached:
    - PyErr_SetString
    - _PyEval_SliceIndex
    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/cpython/Objects/sliceobject.c:269,1
    - Dst: assert
      Src: /src/cpython/Objects/sliceobject.c:270,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: 268
        line_start: 268
        source_file: /src/cpython/Objects/sliceobject.c
    - condition: (step >= -PY_SSIZE_T_MAX)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 303
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 303
    functionName: PySlice_AdjustIndices
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 11
    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/cpython/Objects/sliceobject.c:312,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/sliceobject.c:314,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: 316
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: PySlice_GetIndicesEx
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    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/cpython/Objects/sliceobject.c:325,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/sliceobject.c:328,1
    - Dst: PySlice_New
      Src: /src/cpython/Objects/sliceobject.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 338
    functionName: slice_new
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    - PySlice_New
    - _PyArg_NoKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:349,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/sliceobject.c:350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:353,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/sliceobject.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: slice_dealloc
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_FREELIST_FREE
    - PyObject_GC_UnTrack
    - _PySlice_CAST
    linkageType: ''
    returnType: void
    signature: void slice_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:360,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/sliceobject.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: slice_repr
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PySlice_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/sliceobject.c:378,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/sliceobject.c:379,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 387
    functionName: evaluate_slice_index
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyIndex_Check
    - PyNumber_Index
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      evaluate_slice_index(PyObject *v)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/sliceobject.c:404,1
    - Dst: evaluate_slice_index
      Src: /src/cpython/Objects/sliceobject.c:408,1
    - Dst: assert
      Src: /src/cpython/Objects/sliceobject.c:412,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/sliceobject.c:412,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Objects/sliceobject.c:415,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:417,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/sliceobject.c:426,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/sliceobject.c:430,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/sliceobject.c:435,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:436,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:441,1
    - Dst: evaluate_slice_index
      Src: /src/cpython/Objects/sliceobject.c:444,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/sliceobject.c:448,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/sliceobject.c:450,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:451,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:455,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:459,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:459,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:463,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:467,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:467,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:474,1
    - Dst: evaluate_slice_index
      Src: /src/cpython/Objects/sliceobject.c:477,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/sliceobject.c:481,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/sliceobject.c:483,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:484,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:488,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:492,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:492,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:496,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:500,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:509,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:514,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:515,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:516,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:517,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:518,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 105
    argCount: 5
    argNames:
    - self
    - length
    - start_ptr
    - stop_ptr
    - step_ptr
    argTypes:
    - PySliceObject*
    - PyObject*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyLong_Check(step))
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 520
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 520
    functionName: _PySlice_GetLongIndices
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyLong_GetSign
    - _PyLong_GetZero
    - Py_XDECREF
    - _PyLong_IsNegative
    - Py_DECREF
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_GetOne
    - PyNumber_Add
    - Py_NewRef
    - Py_SETREF
    - PyObject_RichCompareBool
    - PyLong_FromLong
    - evaluate_slice_index
    - assert
    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: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:527,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/sliceobject.c:533,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/sliceobject.c:537,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:540,1
    - Dst: _PySlice_GetLongIndices
      Src: /src/cpython/Objects/sliceobject.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:545,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/sliceobject.c:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - op
    - len
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 550
    functionName: slice_indices
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_BuildValue
    - Py_DECREF
    - _PyLong_IsNegative
    - PyErr_SetString
    - _PySlice_GetLongIndices
    - _PySlice_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_indices(PyObject *op, PyObject* len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:563,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/sliceobject.c:564,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/sliceobject.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 565
    functionName: slice_reduce
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - _PySlice_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/sliceobject.c:578,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/sliceobject.c:578,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:595,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/sliceobject.c:599,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/sliceobject.c:607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:612,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/sliceobject.c:616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:618,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 620
    functionName: slice_richcompare
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompare
    - Py_NewRef
    - PySlice_Check
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:625,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sliceobject.c:626,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sliceobject.c:627,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sliceobject.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: slice_traverse
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PySlice_CAST
    linkageType: ''
    returnType: int
    signature: int slice_traverse(PyObject *op, 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: 638
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 638
    functionName: _PyHASH_XXROTATE
    functionSourceFile: /src/cpython/Objects/sliceobject.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: 643
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 643
    functionName: _PyHASH_XXROTATE
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHASH_XXROTATE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:648,1
    - Dst: _PyHASH_SLICE_PART
      Src: /src/cpython/Objects/sliceobject.c:659,1
    - Dst: _PyHASH_SLICE_PART
      Src: /src/cpython/Objects/sliceobject.c:660,1
    - Dst: _PyHASH_SLICE_PART
      Src: /src/cpython/Objects/sliceobject.c:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 667
    functionName: slice_hash
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyHASH_SLICE_PART
    - _PySlice_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t slice_hash(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - com
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 659
    functionName: _PyHASH_SLICE_PART
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHASH_SLICE_PART(com)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:36,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:38,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/rangeobject.c:39,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:40,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - step
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: validate_step
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - PyErr_SetString
    - PyLong_FromLong
    - _PyLong_IsZero
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      validate_step(PyObject *step)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compute_range_length
      Src: /src/cpython/Objects/rangeobject.c:56,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/rangeobject.c:60,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:62,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - type
    - start
    - stop
    - step
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 73
    functionName: make_range_object
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_FREELIST_POP
    - compute_range_length
    - PyObject_New
    linkageType: ''
    returnType: rangeobject
    signature: "rangeobject *\nmake_range_object(PyTypeObject *type, PyObject *start,\n
      \                 PyObject *stop, PyObject *step)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:92,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:96,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:98,1
    - Dst: validate_step
      Src: /src/cpython/Objects/rangeobject.c:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:104,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:109,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:113,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:114,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:117,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/rangeobject.c:121,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 3
    argNames:
    - type
    - args
    - num_args
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 136
    functionName: range_from_array
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - _PyLong_GetZero
    - PyNumber_Index
    - Py_DECREF
    - PyErr_SetString
    - validate_step
    - _PyLong_GetOne
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_from_array(PyTypeObject *type, PyObject *const *args, Py_ssize_t num_args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/rangeobject.c:141,1
    - Dst: range_from_array
      Src: /src/cpython/Objects/rangeobject.c:144,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/rangeobject.c:144,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/rangeobject.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: range_new
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - range_from_array
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/rangeobject.c:152,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/rangeobject.c:153,1
    - Dst: range_from_array
      Src: /src/cpython/Objects/rangeobject.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rangetype
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: range_vectorcall
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - range_from_array
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nrange_vectorcall(PyObject *rangetype, PyObject *const
      *args,\n                 size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:176,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/rangeobject.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: range_dealloc
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void range_dealloc(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/rangeobject.c:191,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:195,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/rangeobject.c:198,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:202,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/rangeobject.c:205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:209,1
    - Dst: get_len_of_range
      Src: /src/cpython/Objects/rangeobject.c:213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 221
    functionName: compute_range_length_long
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - get_len_of_range
    - PyLong_AsLongAndOverflow
    linkageType: ''
    returnType: long
    signature: "long compute_range_length_long(PyObject *start,\n                PyObject
      *stop, PyObject *step)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:240,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:241,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:243,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/rangeobject.c:243,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:244,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/rangeobject.c:244,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:245,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/rangeobject.c:245,1
    - Dst: compute_range_length_long
      Src: /src/cpython/Objects/rangeobject.c:248,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:250,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:256,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:258,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/rangeobject.c:265,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Objects/rangeobject.c:269,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:277,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:281,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:284,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:287,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Objects/rangeobject.c:290,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:303,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:304,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:305,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:306,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(step))
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/cpython/Objects/rangeobject.c
    - condition: (PyLong_Check(start))
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/cpython/Objects/rangeobject.c
    - condition: (len == -2)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/cpython/Objects/rangeobject.c
    - condition: (PyLong_Check(stop))
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 308
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 308
    functionName: compute_range_length
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - _PyLong_GetZero
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - PyLong_Check
    - PyNumber_Subtract
    - _PyLong_GetOne
    - PyNumber_Add
    - Py_NewRef
    - PyNumber_FloorDivide
    - PyObject_RichCompareBool
    - PyLong_FromLong
    - PyNumber_Negative
    - compute_range_length_long
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_range_length(PyObject *start, PyObject *stop, PyObject *step)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/rangeobject.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: range_length
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t range_length(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:324,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:325,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:328,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - r
    - i
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: compute_item
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Multiply
    - Py_DECREF
    - _PyLong_GetOne
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_item(rangeobject *r, PyObject *i)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:341,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:352,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:357,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:362,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:370,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:379,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:380,1
    - Dst: compute_item
      Src: /src/cpython/Objects/rangeobject.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - r
    - arg
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 388
    functionName: compute_range_item
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_DECREF
    - compute_item
    - PyErr_SetString
    - Py_NewRef
    - PyObject_RichCompareBool
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_range_item(rangeobject *r, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/rangeobject.c:394,1
    - Dst: compute_range_item
      Src: /src/cpython/Objects/rangeobject.c:398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 401
    functionName: range_item
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromSsize_t
    - Py_DECREF
    - compute_range_item
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_item(PyObject *op, Py_ssize_t i)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_GetLongIndices
      Src: /src/cpython/Objects/rangeobject.c:412,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:416,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:418,1
    - Dst: compute_item
      Src: /src/cpython/Objects/rangeobject.c:420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:422,1
    - Dst: compute_item
      Src: /src/cpython/Objects/rangeobject.c:424,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:426,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:428,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/rangeobject.c:428,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:433,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:434,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:435,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:436,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:437,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:438,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - r
    - _slice
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 440
    functionName: compute_slice
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - Py_XDECREF
    - compute_item
    - _PySlice_GetLongIndices
    - PyNumber_Multiply
    - Py_TYPE
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_slice(rangeobject *r, PyObject *_slice)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:446,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:454,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:458,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:459,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:462,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:463,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:474,1
    - Dst: PyNumber_Remainder
      Src: /src/cpython/Objects/rangeobject.c:477,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:481,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:483,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:484,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - r
    - ob
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 486
    functionName: range_contains_long
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_XDECREF
    - PyNumber_Subtract
    - PyObject_RichCompareBool
    - PyNumber_Remainder
    linkageType: ''
    returnType: int
    signature: int range_contains_long(rangeobject *r, PyObject *ob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/rangeobject.c:492,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/rangeobject.c:492,1
    - Dst: range_contains_long
      Src: /src/cpython/Objects/rangeobject.c:493,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/rangeobject.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 488
    functionDepth: 5
    functionLinenumber: 488
    functionLinenumberEnd: 497
    functionName: range_contains
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - range_contains_long
    - _PySequence_IterSearch
    - PyBool_Check
    - PyLong_CheckExact
    linkageType: ''
    returnType: int
    signature: int range_contains(PyObject *self, PyObject *ob)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:521,1
    - Dst: PyObject_Not
      Src: /src/cpython/Objects/rangeobject.c:525,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:529,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:533,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:533,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - r0
    - r1
    argTypes:
    - rangeobject*
    - rangeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 538
    functionName: range_equals
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetOne
    - PyObject_RichCompareBool
    - PyObject_Not
    linkageType: ''
    returnType: int
    signature: int range_equals(rangeobject *r0, rangeobject *r1)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyRange_Check
      Src: /src/cpython/Objects/rangeobject.c:545,1
    - Dst: range_equals
      Src: /src/cpython/Objects/rangeobject.c:550,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/rangeobject.c:565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 540
    functionDepth: 5
    functionLinenumber: 540
    functionLinenumberEnd: 568
    functionName: range_richcompare
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadArgument
    - PyRange_Check
    - range_equals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/rangeobject.c:586,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:589,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:589,1
    - Dst: PyObject_Not
      Src: /src/cpython/Objects/rangeobject.c:590,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:594,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:594,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:595,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:595,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:598,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:598,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:599,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:599,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:603,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:603,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:606,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:606,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/rangeobject.c:609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:611,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 613
    functionName: range_hash
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyObject_Not
    - PyTuple_SET_ITEM
    - _PyLong_GetOne
    - Py_NewRef
    - PyObject_RichCompareBool
    - PyObject_Hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t range_hash(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/rangeobject.c:619,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/rangeobject.c:619,1
    - Dst: range_contains_long
      Src: /src/cpython/Objects/rangeobject.c:620,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:623,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/rangeobject.c:626,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/rangeobject.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 615
    functionDepth: 5
    functionLinenumber: 615
    functionLinenumberEnd: 631
    functionName: range_count
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - range_contains_long
    - _PySequence_IterSearch
    - PyLong_FromSsize_t
    - PyBool_Check
    - PyLong_CheckExact
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_count(PyObject *self, PyObject *ob)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/rangeobject.c:639,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/rangeobject.c:639,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/rangeobject.c:641,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/rangeobject.c:644,1
    - Dst: range_contains_long
      Src: /src/cpython/Objects/rangeobject.c:647,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:652,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:657,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Objects/rangeobject.c:662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:668,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 633
    functionDepth: 5
    functionLinenumber: 633
    functionLinenumberEnd: 670
    functionName: range_index
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PySequence_IterSearch
    - range_contains_long
    - PyLong_FromSsize_t
    - PyErr_SetString
    - PyNumber_Subtract
    - _PyLong_GetOne
    - PyNumber_FloorDivide
    - PyBool_Check
    - PyLong_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_index(PyObject *self, PyObject *ob)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/rangeobject.c:691,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:692,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:693,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/rangeobject.c:693,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/rangeobject.c:698,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/rangeobject.c:700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_ExceptionMatches(PyExc_OverflowError))
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 702
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 702
    functionName: range_repr
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - PyNumber_AsSsize_t
    - PyErr_ExceptionMatches
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/rangeobject.c:709,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/rangeobject.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 711
    functionName: range_reduce
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_reduce(PyObject *op, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/rangeobject.c:717,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:719,1
    - Dst: compute_range_item
      Src: /src/cpython/Objects/rangeobject.c:722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:723,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/rangeobject.c:726,1
    - Dst: compute_slice
      Src: /src/cpython/Objects/rangeobject.c:727,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/rangeobject.c:729,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/rangeobject.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 713
    functionDepth: 6
    functionLinenumber: 713
    functionLinenumberEnd: 733
    functionName: range_subscript
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_DECREF
    - compute_range_item
    - _PyIndex_Check
    - compute_slice
    - PyErr_Format
    - PySlice_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_subscript(PyObject *op, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/rangeobject.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 747
    functionName: range_bool
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int range_bool(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 841
    functionName: rangeiter_next
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 848
    functionName: rangeiter_len
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_len(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:861,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:864,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:867,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:870,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/rangeobject.c:875,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/rangeobject.c:875,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/rangeobject.c:875,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:878,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:879,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:880,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 882
    functionName: rangeiter_reduce
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - _PyEval_GetBuiltin
    - Py_XDECREF
    - Py_BuildValue
    - _Py_ID
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:888,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:889,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 899
    functionName: rangeiter_setstate
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_setstate(PyObject *op, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/rangeobject.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 905
    functionName: rangeiter_dealloc
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void rangeiter_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:969,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - lo
    - hi
    - step
    argTypes:
    - long
    - long
    - long
    assertStmts:
    - condition: (step != 0)
      pos:
        line_end: 968
        line_start: 968
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 976
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 976
    functionName: get_len_of_range
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_len_of_range(long lo, long hi, long step)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/rangeobject.c:984,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:986,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:991,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/rangeobject.c:991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - start
    - stop
    - step
    - len
    argTypes:
    - long
    - long
    - long
    - long
    assertStmts:
    - condition: (Py_IS_TYPE(it, &PyRangeIter_Type))
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 996
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 996
    functionName: fast_range_iter
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - _Py_FREELIST_POP
    - assert
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fast_range_iter(long start, long stop, long step, long len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/rangeobject.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1011
    functionName: longrangeiter_len
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_len(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:1021,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1025,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:1028,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1029,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1033,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/rangeobject.c:1038,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/rangeobject.c:1038,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/rangeobject.c:1038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1040
    functionName: longrangeiter_reduce
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - Py_DECREF
    - _Py_ID
    - PyNumber_Multiply
    - Py_NewRef
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:1046,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:1050,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:1057,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:1063,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1067,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:1070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1072,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/rangeobject.c:1077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1078,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1042
    functionDepth: 4
    functionLinenumber: 1042
    functionLinenumberEnd: 1080
    functionName: longrangeiter_setstate
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_DECREF
    - PyNumber_Subtract
    - PyNumber_Multiply
    - Py_SETREF
    - PyObject_RichCompareBool
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_setstate(PyObject *op, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:1093,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:1094,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:1095,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/rangeobject.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1097
    functionName: longrangeiter_dealloc
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void longrangeiter_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:1103,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:1103,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1106,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:1110,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:1110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1112,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/rangeobject.c:1117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1099
    functionDepth: 4
    functionLinenumber: 1099
    functionLinenumberEnd: 1119
    functionName: longrangeiter_next
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_DECREF
    - PyNumber_Subtract
    - _PyLong_GetOne
    - Py_SETREF
    - PyObject_RichCompareBool
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_next(PyObject *op)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:1162,1
    - Dst: PyRange_Check
      Src: /src/cpython/Objects/rangeobject.c:1162,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1167,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1168,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1171,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1172,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1173,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1176,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1177,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1178,1
    - Dst: get_len_of_range
      Src: /src/cpython/Objects/rangeobject.c:1181,1
    - Dst: fast_range_iter
      Src: /src/cpython/Objects/rangeobject.c:1196,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:1199,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1203,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1204,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1205,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyRange_Check(seq))
      pos:
        line_end: 1161
        line_start: 1161
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1207
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1207
    functionName: range_iter
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - fast_range_iter
    - PyLong_AsLong
    - PyErr_Occurred
    - get_len_of_range
    - PyObject_New
    - Py_NewRef
    - PyRange_Check
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iter(PyObject *seq)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:1218,1
    - Dst: PyRange_Check
      Src: /src/cpython/Objects/rangeobject.c:1218,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1230,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1231,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1232,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1235,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1236,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1237,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1240,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1241,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1242,1
    - Dst: get_len_of_range
      Src: /src/cpython/Objects/rangeobject.c:1271,1
    - Dst: fast_range_iter
      Src: /src/cpython/Objects/rangeobject.c:1277,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:1280,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1286,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:1288,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:1288,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:1292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1293,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1298,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Objects/rangeobject.c:1303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1310,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 2
    argNames:
    - seq
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyRange_Check(seq))
      pos:
        line_end: 1217
        line_start: 1217
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1312
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1312
    functionName: range_reverse
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - fast_range_iter
    - PyLong_AsLong
    - PyErr_Occurred
    - get_len_of_range
    - PyObject_New
    - PyNumber_Subtract
    - _PyLong_GetOne
    - Py_NewRef
    - PyNumber_Multiply
    - PyRange_Check
    - PyNumber_Add
    - PyErr_Clear
    - PyNumber_Negative
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: typevarobject_CAST
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typevarobject_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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: typevartupleobject_CAST
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typevartupleobject_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: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: paramspecobject_CAST
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paramspecobject_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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: typealiasobject_CAST
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typealiasobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typevarobject.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: NoDefault_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      NoDefault_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typevarobject.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: NoDefault_reduce
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      NoDefault_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:91,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:91,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: nodefault_new
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nodefault_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/typevarobject.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nodefault
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: nodefault_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortal
    linkageType: ''
    returnType: void
    signature: void nodefault_dealloc(PyObject *nodefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: constevaluatorobject_CAST
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: constevaluatorobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:136,1
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:137,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:139,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:141,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: constevaluator_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - constevaluatorobject_CAST
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void constevaluator_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:150,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: constevaluator_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - constevaluatorobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int constevaluator_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:158,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: constevaluator_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - constevaluatorobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int constevaluator_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:166,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: constevaluator_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - constevaluatorobject_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      constevaluator_repr(PyObject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:173,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/typevarobject.c:174,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/typevarobject.c:178,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/typevarobject.c:183,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:187,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/typevarobject.c:188,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:189,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:192,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:193,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/typevarobject.c:195,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:196,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/typevarobject.c:200,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:201,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/typevarobject.c:205,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:206,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/typevarobject.c:211,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:212,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/typevarobject.c:216,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:218,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 219
    functionName: constevaluator_call
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - constevaluatorobject_CAST
    - PyTuple_Check
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_WriteChar
    - Py_NewRef
    - PyTuple_GET_ITEM
    - _Py_typing_type_repr
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      constevaluator_call(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:224,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:225,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:226,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:230,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (tp != NULL)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 234
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 234
    functionName: constevaluator_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - Py_NewRef
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      constevaluator_alloc(PyObject *value)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typevarobject.c:271,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/typevarobject.c:276,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/typevarobject.c:279,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:279,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/typevarobject.c:280,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:280,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typevarobject.c:289,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:289,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typevarobject.c:295,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:295,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:303,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/typevarobject.c:304,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/typevarobject.c:307,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:311,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/typevarobject.c:316,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:318,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:319,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/typevarobject.c:323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:324,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 2
    argNames:
    - writer
    - p
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 326
    functionName: _Py_typing_type_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - PyObject_Repr
    - PyObject_HasAttrWithError
    - PyObject_GetOptionalAttr
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_ID
    - _PyUnicode_EqualToASCIIString
    - PyUnicodeWriter_WriteStr
    - PyUnicode_Check
    - PyUnicode_FromString
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: int
    signature: int _Py_typing_type_repr(PyUnicodeWriter *writer, PyObject *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/typevarobject.c:332,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typevarobject.c:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:338,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typevarobject.c:341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - name
    - args
    - nargs
    argTypes:
    - char*
    - PyObject**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 345
    functionName: call_typing_func_object
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_typing_func_object(const char *name, PyObject **args, size_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typevarobject.c:351,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:352,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:352,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typevarobject.c:354,1
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg
    - msg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 362
    functionName: type_check
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_NewRef
    - call_typing_func_object
    - Py_IsNone
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_check(PyObject *arg, const char *msg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typevarobject.c:375,1
    - Dst: _Py_union_from_tuple
      Src: /src/cpython/Objects/typevarobject.c:379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: make_union
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - Py_DECREF
    - _Py_union_from_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_union(PyObject *self, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typevarobject.c:387,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typevarobject.c:391,1
    - Dst: PyFunction_GetModule
      Src: /src/cpython/Objects/typevarobject.c:394,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typevarobject.c:394,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typevarobject.c:396,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 400
    functionName: caller
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetModule
    - _PyThreadState_GET
    - Py_NewRef
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsNull
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      caller(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/typevarobject.c:405,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typevarobject.c:409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:411,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/typevarobject.c:414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 418
    functionName: unpack
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 4
    functionsReached:
    - PyObject_GetItem
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:423,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:424,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:426,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - params
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: contains_typevartuple
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int contains_typevartuple(PyTupleObject *params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:437,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:437,1
    - Dst: contains_typevartuple
      Src: /src/cpython/Objects/typevarobject.c:439,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:440,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:441,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:445,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:447,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:448,1
    - Dst: unpack
      Src: /src/cpython/Objects/typevarobject.c:449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:451,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:454,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:457,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:457,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - params
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(params))
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 465
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 465
    functionName: unpack_typevartuples
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - contains_typevartuple
    - unpack
    - Py_DECREF
    - PyTuple_Check
    - PyTuple_SET_ITEM
    - _PyInterpreterState_GET
    - Py_NewRef
    - Py_IS_TYPE
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_typevartuples(PyObject *params)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:470,1
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:471,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:475,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:476,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:480,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:481,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:482,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typevarobject.c:483,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 487
    functionName: typevar_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_ClearManagedDict
    - PyObject_ClearWeakRefs
    - _PyObject_GC_UNTRACK
    - typevarobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void typevar_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:492,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:492,1
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:493,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:494,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:495,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:496,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:497,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:498,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:499,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typevarobject.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 502
    functionName: typevar_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_VisitManagedDict
    - Py_TYPE
    - Py_VISIT
    - typevarobject_CAST
    linkageType: ''
    returnType: int
    signature: int typevar_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:507,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:508,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:509,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:510,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:511,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:512,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:513,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 516
    functionName: typevar_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearManagedDict
    - Py_CLEAR
    - typevarobject_CAST
    linkageType: ''
    returnType: int
    signature: int typevar_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:521,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:524,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 529
    functionName: typevar_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyUnicode_FromFormat
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:542,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:544,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:549,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 552
    functionName: typevar_bound
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_CallNoArgs
    - Py_XNewRef
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_bound(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:559,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:564,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 567
    functionName: typevar_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_CallNoArgs
    - Py_XNewRef
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_default(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:572,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:574,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:577,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:579,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: typevar_constraints
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - PyTuple_New
    - Py_NewRef
    - Py_XNewRef
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_constraints(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:587,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:589,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: typevar_evaluate_bound
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - constevaluator_alloc
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_evaluate_bound(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:600,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:602,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: typevar_evaluate_constraints
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - constevaluator_alloc
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_evaluate_constraints(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:613,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:615,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 621
    functionName: typevar_evaluate_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - constevaluator_alloc
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_evaluate_default(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:640,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:641,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:642,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:647,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:649,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:650,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:651,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:652,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:653,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:659,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/typevarobject.c:662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 10
    argNames:
    - name
    - bound
    - evaluate_bound
    - constraints
    - evaluate_constraints
    - default_value
    - covariant
    - contravariant
    - infer_variance
    - module
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - bool
    - bool
    - bool
    - PyObject*
    assertStmts:
    - condition: (tp != NULL)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 669
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 669
    functionName: typevar_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - PyObject_SetAttrString
    - Py_NewRef
    - Py_XNewRef
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: typevarobject
    signature: "typevarobject *\ntypevar_alloc(PyObject *name, PyObject *bound, PyObject
      *evaluate_bound,\n              PyObject *constraints, PyObject *evaluate_constraints,\n
      \             PyObject *default_value,\n              bool covariant, bool contravariant,
      bool infer_variance,\n              PyObject *module)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:693,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:699,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typevarobject.c:704,1
    - Dst: type_check
      Src: /src/cpython/Objects/typevarobject.c:708,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:714,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typevarobject.c:714,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:715,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:717,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:719,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:726,1
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:729,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:731,1
    - Dst: typevar_alloc
      Src: /src/cpython/Objects/typevarobject.c:735,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:740,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:741,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 8
    argNames:
    - type
    - name
    - constraints
    - bound
    - default_value
    - covariant
    - contravariant
    - infer_variance
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (PyTuple_CheckExact(constraints))
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 743
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 743
    functionName: typevar_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - assert
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - typevar_alloc
    - type_check
    - Py_IsNone
    - caller
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntypevar_new_impl(PyTypeObject *type, PyObject *name, PyObject
      *constraints,\n                 PyObject *bound, PyObject *default_value, int
      covariant,\n                 int contravariant, int infer_variance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - typevarobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 760
    functionName: typevar_typing_subst_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - call_typing_func_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_typing_subst_impl(typevarobject *self, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typevarobject.c:776,1
    - Dst: PySequence_Index
      Src: /src/cpython/Objects/typevarobject.c:780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:782,1
    - Dst: PySequence_Length
      Src: /src/cpython/Objects/typevarobject.c:785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:792,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:793,1
    - Dst: typevar_default
      Src: /src/cpython/Objects/typevarobject.c:797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:799,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typevarobject.c:803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:806,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Objects/typevarobject.c:809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:815,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:816,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - self
    - alias
    - args
    argTypes:
    - typevarobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 820
    functionName: typevar_typing_prepare_subst_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PySequence_Length
    - Py_NewRef
    - PySequence_Index
    - PySequence_Concat
    - typevar_default
    - PyErr_Format
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntypevar_typing_prepare_subst_impl(typevarobject *self,
      PyObject *alias,\n                                  PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - typevarobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 832
    functionName: typevar_reduce_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_reduce_impl(typevarobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - typevarobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 849
    functionName: typevar_has_default_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_has_default_impl(typevarobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 857
    functionName: typevar_mro_entries
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_mro_entries(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: 944
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 944
    functionName: paramspecattrobject_CAST
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paramspecattrobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:948,1
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:949,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:951,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:953,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 957
    functionName: paramspecattr_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - paramspecattrobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void paramspecattr_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:962,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 965
    functionName: paramspecattr_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattrobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int paramspecattr_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:970,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 973
    functionName: paramspecattr_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattrobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int paramspecattr_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:978,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:978,1
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:984,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/typevarobject.c:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 987
    functionName: paramspecattr_richcompare
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattrobject_CAST
    - Py_IS_TYPE
    - PyObject_RichCompare
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspecattr_richcompare(PyObject *a, PyObject *b, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:997,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1001,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:1002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - origin
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1004
    functionName: paramspecattr_new
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: paramspecattrobject
    signature: 'paramspecattrobject *

      paramspecattr_new(PyTypeObject *tp, PyObject *origin)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1009,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1010,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1011,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1012,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1016
    functionName: paramspecargs_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattrobject_CAST
    - Py_IS_TYPE
    - _PyInterpreterState_GET
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspecargs_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - origin
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1033
    functionName: paramspecargs_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspecargs_new_impl(PyTypeObject *type, PyObject *origin)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1041
    functionName: paramspecargs_mro_entries
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspecargs_mro_entries(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1089,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1091,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1092,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1093,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1097
    functionName: paramspeckwargs_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattrobject_CAST
    - Py_IS_TYPE
    - _PyInterpreterState_GET
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspeckwargs_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - origin
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1108
    functionDepth: 2
    functionLinenumber: 1108
    functionLinenumberEnd: 1113
    functionName: paramspeckwargs_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspeckwargs_new_impl(PyTypeObject *type, PyObject *origin)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1121
    functionName: paramspeckwargs_mro_entries
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspeckwargs_mro_entries(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1169,1
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1170,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1174,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1175,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1176,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1177,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1178,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typevarobject.c:1179,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1166
    functionDepth: 4
    functionLinenumber: 1166
    functionLinenumberEnd: 1183
    functionName: paramspec_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - paramspecobject_CAST
    - Py_DECREF
    - PyObject_ClearManagedDict
    - PyObject_ClearWeakRefs
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void paramspec_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1188,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1188,1
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1189,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1190,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1191,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1192,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1195
    functionName: paramspec_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecobject_CAST
    - Py_TYPE
    - Py_VISIT
    - PyObject_VisitManagedDict
    linkageType: ''
    returnType: int
    signature: int paramspec_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1200,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1201,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1202,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1203,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1206
    functionName: paramspec_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearManagedDict
    - paramspecobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int paramspec_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1211,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1214,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1219
    functionName: paramspec_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - paramspecobject_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1233,1
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1235
    functionName: paramspec_args
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattr_new
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_args(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1240,1
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1237
    functionDepth: 2
    functionLinenumber: 1237
    functionLinenumberEnd: 1242
    functionName: paramspec_kwargs
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattr_new
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_kwargs(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1249,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:1254,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1257
    functionName: paramspec_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_CallNoArgs
    - paramspecobject_CAST
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_default(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1262,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1264,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:1267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1270
    functionName: paramspec_evaluate_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - constevaluator_alloc
    - paramspecobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_evaluate_default(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1284,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:1285,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1289,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1290,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1294,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:1296,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/typevarobject.c:1298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 7
    argNames:
    - name
    - bound
    - default_value
    - covariant
    - contravariant
    - infer_variance
    - module
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - bool
    - bool
    - bool
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1304
    functionName: paramspec_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - PyObject_SetAttrString
    - Py_NewRef
    - Py_XNewRef
    - PyObject_GC_New
    linkageType: ''
    returnType: paramspecobject
    signature: "paramspecobject *\nparamspec_alloc(PyObject *name, PyObject *bound,
      PyObject *default_value, bool covariant,\n                bool contravariant,
      bool infer_variance, PyObject *module)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1328,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1332,1
    - Dst: type_check
      Src: /src/cpython/Objects/typevarobject.c:1336,1
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:1341,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1343,1
    - Dst: paramspec_alloc
      Src: /src/cpython/Objects/typevarobject.c:1346,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 7
    argNames:
    - type
    - name
    - bound
    - default_value
    - covariant
    - contravariant
    - infer_variance
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1321
    functionDepth: 3
    functionLinenumber: 1321
    functionLinenumberEnd: 1351
    functionName: paramspec_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_SetString
    - type_check
    - paramspec_alloc
    - caller
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nparamspec_new_impl(PyTypeObject *type, PyObject *name,
      PyObject *bound,\n                   PyObject *default_value, int covariant,
      int contravariant,\n                   int infer_variance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - paramspecobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1369
    functionName: paramspec_typing_subst_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - call_typing_func_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_typing_subst_impl(paramspecobject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - alias
    - args
    argTypes:
    - paramspecobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1389
    functionName: paramspec_typing_prepare_subst_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - call_typing_func_object
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nparamspec_typing_prepare_subst_impl(paramspecobject *self,
      PyObject *alias,\n                                    PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - paramspecobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1401
    functionName: paramspec_reduce_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_reduce_impl(paramspecobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - paramspecobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1417
    functionName: paramspec_has_default_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_has_default_impl(paramspecobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1425
    functionName: paramspec_mro_entries
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_mro_entries(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1518,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:1519,1
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1522,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1523,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1524,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1525,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typevarobject.c:1526,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1515
    functionDepth: 4
    functionLinenumber: 1515
    functionLinenumberEnd: 1530
    functionName: typevartuple_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_ClearManagedDict
    - typevartupleobject_CAST
    - PyObject_ClearWeakRefs
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void typevartuple_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unpack
      Src: /src/cpython/Objects/typevarobject.c:1535,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typevarobject.c:1539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1541,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/typevarobject.c:1544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1545,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1532
    functionDepth: 1
    functionLinenumber: 1532
    functionLinenumberEnd: 1548
    functionName: unpack_iter
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - PyTuple_Pack
    - Py_DECREF
    - unpack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_iter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1553,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1555
    functionName: typevartuple_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - typevartupleobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1565,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:1566,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1570,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1571,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:1573,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/typevarobject.c:1575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - name
    - module
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1581
    functionName: typevartuple_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - PyObject_SetAttrString
    - Py_NewRef
    - Py_XNewRef
    - PyObject_GC_New
    linkageType: ''
    returnType: typevartupleobject
    signature: 'typevartupleobject *

      typevartuple_alloc(PyObject *name, PyObject *module, PyObject *default_value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:1599,1
    - Dst: typevartuple_alloc
      Src: /src/cpython/Objects/typevarobject.c:1603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - name
    - default_value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1594
    functionDepth: 3
    functionLinenumber: 1594
    functionLinenumberEnd: 1606
    functionName: typevartuple_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevartuple_alloc
    - caller
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntypevartuple_impl(PyTypeObject *type, PyObject *name,\n
      \                 PyObject *default_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - typevartupleobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1622
    functionName: typevartuple_typing_subst_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_typing_subst_impl(typevartupleobject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:1639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - alias
    - args
    argTypes:
    - typevartupleobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: typevartuple_typing_prepare_subst_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - call_typing_func_object
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntypevartuple_typing_prepare_subst_impl(typevartupleobject
      *self,\n                                       PyObject *alias, PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - typevartupleobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1654
    functionName: typevartuple_reduce_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_reduce_impl(typevartupleobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - typevartupleobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1662
    functionDepth: 0
    functionLinenumber: 1662
    functionLinenumberEnd: 1671
    functionName: typevartuple_has_default_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_has_default_impl(typevartupleobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1673
    functionDepth: 1
    functionLinenumber: 1673
    functionLinenumberEnd: 1679
    functionName: typevartuple_mro_entries
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_mro_entries(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1684,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1684,1
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1685,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1686,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1687,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1681
    functionDepth: 1
    functionLinenumber: 1681
    functionLinenumberEnd: 1690
    functionName: typevartuple_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevartupleobject_CAST
    - Py_TYPE
    - Py_VISIT
    - PyObject_VisitManagedDict
    linkageType: ''
    returnType: int
    signature: int typevartuple_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1695,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1696,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1697,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1700
    functionName: typevartuple_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearManagedDict
    - typevartupleobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int typevartuple_clear(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1705,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1707,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:1712,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1715
    functionName: typevartuple_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_CallNoArgs
    - typevartupleobject_CAST
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_default(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1720,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1722,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:1725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1717
    functionDepth: 2
    functionLinenumber: 1717
    functionLinenumberEnd: 1728
    functionName: typevartuple_evaluate_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - constevaluator_alloc
    - typevartupleobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_evaluate_default(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevar_alloc
      Src: /src/cpython/Objects/typevarobject.c:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - evaluate_bound
    - evaluate_constraints
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1809
    functionDepth: 3
    functionLinenumber: 1809
    functionLinenumberEnd: 1814
    functionName: _Py_make_typevar
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevar_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_make_typevar(PyObject *name, PyObject *evaluate_bound, PyObject *evaluate_constraints)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:1819,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:1819,1
    - Dst: paramspec_alloc
      Src: /src/cpython/Objects/typevarobject.c:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(ignored)
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(v))
      pos:
        line_end: 1818
        line_start: 1818
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 1821
      start: 1816
    functionDepth: 3
    functionLinenumber: 1816
    functionLinenumberEnd: 1821
    functionName: _Py_make_paramspec
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - paramspec_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_make_paramspec(PyThreadState *Py_UNUSED(ignored), PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:1826,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:1826,1
    - Dst: typevartuple_alloc
      Src: /src/cpython/Objects/typevarobject.c:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(ignored)
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(v))
      pos:
        line_end: 1825
        line_start: 1825
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 1828
      start: 1823
    functionDepth: 3
    functionLinenumber: 1823
    functionLinenumberEnd: 1828
    functionName: _Py_make_typevartuple
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - typevartuple_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_make_typevartuple(PyThreadState *Py_UNUSED(ignored), PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1833,1
    - Dst: typevar_default
      Src: /src/cpython/Objects/typevarobject.c:1834,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1836,1
    - Dst: paramspec_default
      Src: /src/cpython/Objects/typevarobject.c:1837,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1839,1
    - Dst: typevartuple_default
      Src: /src/cpython/Objects/typevarobject.c:1840,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:1843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ts
    - typeparam
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1830
    functionDepth: 2
    functionLinenumber: 1830
    functionLinenumberEnd: 1846
    functionName: get_type_param_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspec_default
    - Py_IS_TYPE
    - PyErr_Format
    - typevar_default
    - typevartuple_default
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_type_param_default(PyThreadState *ts, PyObject *typeparam)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1851,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:1852,1
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1854,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1855,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1856,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1857,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1858,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1861
    functionName: typealias_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - typealiasobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void typealias_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1867,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:1869,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ta
    argTypes:
    - typealiasobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1863
    functionDepth: 1
    functionLinenumber: 1863
    functionLinenumberEnd: 1875
    functionName: typealias_get_value
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_CallNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_get_value(typealiasobject *ta)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1877
    functionDepth: 0
    functionLinenumber: 1877
    functionLinenumberEnd: 1882
    functionName: typealias_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1892,1
    - Dst: typealias_get_value
      Src: /src/cpython/Objects/typevarobject.c:1893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1889
    functionDepth: 2
    functionLinenumber: 1889
    functionLinenumberEnd: 1894
    functionName: typealias_value
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealiasobject_CAST
    - typealias_get_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_value(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1899,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1901,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:1903,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:1904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (ta->value != NULL)
      pos:
        line_end: 1902
        line_start: 1902
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 1905
      start: 1896
    functionDepth: 2
    functionLinenumber: 1896
    functionLinenumberEnd: 1905
    functionName: typealias_evaluate_value
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - typealiasobject_CAST
    - constevaluator_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_evaluate_value(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1910,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:1912,1
    - Dst: unpack_typevartuples
      Src: /src/cpython/Objects/typevarobject.c:1914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1907
    functionDepth: 3
    functionLinenumber: 1907
    functionLinenumberEnd: 1915
    functionName: typealias_parameters
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealiasobject_CAST
    - PyTuple_New
    - unpack_typevartuples
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_parameters(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1920,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:1922,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1925
    functionName: typealias_type_params
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - typealiasobject_CAST
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_type_params(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1930,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1932,1
    - Dst: PyFunction_GetModule
      Src: /src/cpython/Objects/typevarobject.c:1935,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1944
    functionName: typealias_module
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - typealiasobject_CAST
    - PyFunction_GetModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_module(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:1966,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:1966,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:1967,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typevarobject.c:1972,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:1975,1
    - Dst: get_type_param_default
      Src: /src/cpython/Objects/typevarobject.c:1976,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:1984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1992,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - type_params
    - err
    argTypes:
    - PyObject*
    - int*
    assertStmts:
    - condition: (PyTuple_Check(type_params))
      pos:
        line_end: 1965
        line_start: 1965
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 1997
      start: 1955
    functionDepth: 3
    functionLinenumber: 1955
    functionLinenumberEnd: 1997
    functionName: typealias_check_type_params
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - get_type_param_default
    - PyTuple_Check
    - _PyThreadState_GET
    - PyTuple_GET_ITEM
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_check_type_params(PyObject *type_params, int *err)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typevarobject.c:2004,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2005,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:2005,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - type_params
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1999
    functionDepth: 1
    functionLinenumber: 1999
    functionLinenumberEnd: 2012
    functionName: typelias_convert_type_params
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - Py_IsNone
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typelias_convert_type_params(PyObject *type_params)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:2018,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2022,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2023,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2024,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2025,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2026,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:2027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - name
    - type_params
    - compute_value
    - value
    - module
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2014
    functionDepth: 1
    functionLinenumber: 2014
    functionLinenumberEnd: 2029
    functionName: typealias_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_XNewRef
    linkageType: ''
    returnType: typealiasobject
    signature: "typealiasobject *\ntypealias_alloc(PyObject *name, PyObject *type_params,
      PyObject *compute_value,\n                PyObject *value, PyObject *module)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:2034,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2035,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2036,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2037,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2040
    functionName: typealias_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealiasobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int typealias_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:2045,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2046,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2047,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2048,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2051
    functionName: typealias_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealiasobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int typealias_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - typealiasobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2058
    functionDepth: 0
    functionLinenumber: 2058
    functionLinenumberEnd: 2063
    functionName: typealias_reduce_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_reduce_impl(typealiasobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:2068,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:2070,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/typevarobject.c:2074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2075
    functionName: typealias_subscript
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealiasobject_CAST
    - PyErr_SetString
    - Py_GenericAlias
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_subscript(PyObject *op, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2100,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:2101,1
    - Dst: typealias_check_type_params
      Src: /src/cpython/Objects/typevarobject.c:2106,1
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:2111,1
    - Dst: typealias_alloc
      Src: /src/cpython/Objects/typevarobject.c:2115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - type
    - name
    - value
    - type_params
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2095
    functionDepth: 4
    functionLinenumber: 2095
    functionLinenumberEnd: 2119
    functionName: typealias_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealias_alloc
    - Py_DECREF
    - PyTuple_Check
    - PyErr_SetString
    - caller
    - typealias_check_type_params
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntypealias_new_impl(PyTypeObject *type, PyObject *name,
      PyObject *value,\n                   PyObject *type_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2178,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2178,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2179,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:2179,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2180,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2181,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:2181,1
    - Dst: typelias_convert_type_params
      Src: /src/cpython/Objects/typevarobject.c:2182,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2182,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2183,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2184,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typevarobject.c:2184,1
    - Dst: typealias_alloc
      Src: /src/cpython/Objects/typevarobject.c:2185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - unused
    - args
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/cpython/Objects/typevarobject.c
    - condition: (PyTuple_GET_SIZE(args) == 3)
      pos:
        line_end: 2178
        line_start: 2178
        source_file: /src/cpython/Objects/typevarobject.c
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 2180
        line_start: 2180
        source_file: /src/cpython/Objects/typevarobject.c
    - condition: (PyFunction_Check(compute_value))
      pos:
        line_end: 2183
        line_start: 2183
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 2186
      start: 2175
    functionDepth: 2
    functionLinenumber: 2175
    functionLinenumberEnd: 2186
    functionName: _Py_make_typealias
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - PyTuple_GET_SIZE
    - typealias_alloc
    - PyTuple_Check
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    - typelias_convert_type_params
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_make_typealias(PyThreadState* unused, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/typevarobject.c:2227,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typevarobject.c:2231,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2235,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2235,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:2236,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:2237,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2241,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2241,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2243,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2244,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2244,1
    - Dst: PyObject_Call
      Src: /src/cpython/Objects/typevarobject.c:2246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2249,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:2252,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:2253,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:2254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - name
    - cls
    - args
    - kwargs
    argTypes:
    - char*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 2234
        line_start: 2234
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 2256
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2256
    functionName: call_typing_args_kwargs
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyObject_GetAttrString
    - Py_DECREF
    - PyTuple_Check
    - PyTuple_SET_ITEM
    - PyImport_ImportModule
    - Py_NewRef
    - PyObject_Call
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_typing_args_kwargs(const char *name, PyTypeObject *cls, PyObject *args,
      PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_typing_args_kwargs
      Src: /src/cpython/Objects/typevarobject.c:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2258
    functionDepth: 3
    functionLinenumber: 2258
    functionLinenumberEnd: 2263
    functionName: generic_init_subclass
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - call_typing_args_kwargs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_init_subclass(PyObject *cls, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_typing_args_kwargs
      Src: /src/cpython/Objects/typevarobject.c:2268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2265
    functionDepth: 3
    functionLinenumber: 2265
    functionLinenumberEnd: 2270
    functionName: generic_class_getitem
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - call_typing_args_kwargs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_class_getitem(PyObject *cls, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unpack_typevartuples
      Src: /src/cpython/Objects/typevarobject.c:2275,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:2277,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:2279,1
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:2283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - unused
    - params
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2272
    functionDepth: 3
    functionLinenumber: 2272
    functionLinenumberEnd: 2286
    functionName: _Py_subscript_generic
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - unpack_typevartuples
    - PyErr_SetString
    - _PyInterpreterState_GET
    - call_typing_func_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_subscript_generic(PyThreadState* unused, PyObject *params)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2301,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:2302,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2305
    functionName: generic_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void generic_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2310,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2307
    functionDepth: 1
    functionLinenumber: 2307
    functionLinenumberEnd: 2312
    functionName: generic_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int generic_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2342,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2343,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2344,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2345,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2346,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2347,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2351
    functionName: _Py_initialize_generic
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 1
    functionsReached:
    - MAKE_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_initialize_generic(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2341
    functionName: MAKE_TYPE
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_TYPE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2355,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2356,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2357,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2358,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2359,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2360,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2353
    functionDepth: 1
    functionLinenumber: 2353
    functionLinenumberEnd: 2362
    functionName: _Py_clear_generic_types
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _Py_clear_generic_types(PyInterpreterState *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2367,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typevarobject.c:2368,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2368,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2369,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2371,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typevarobject.c:2372,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2372,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2373,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2375,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typevarobject.c:2376,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2376,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2377,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:2380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ts
    - typeparam
    - evaluate_default
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2364
    functionDepth: 1
    functionLinenumber: 2364
    functionLinenumberEnd: 2383
    functionName: _Py_set_typeparam_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_IS_TYPE
    - Py_XSETREF
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_set_typeparam_default(PyThreadState *ts, PyObject *typeparam, PyObject *evaluate_default)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytes_methods.c:19,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/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/cpython/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/cpython/Objects/bytes_methods.c:49,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/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/cpython/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/cpython/Objects/bytes_methods.c:79,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/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/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytes_methods.c:109,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytes_methods.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: _Py_bytes_isdigit
    functionSourceFile: /src/cpython/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/cpython/Objects/bytes_methods.c:141,1
    - Dst: Py_ISLOWER
      Src: /src/cpython/Objects/bytes_methods.c:141,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Objects/bytes_methods.c:150,1
    - Dst: Py_ISLOWER
      Src: /src/cpython/Objects/bytes_methods.c:152,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytes_methods.c:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 156
    functionName: _Py_bytes_islower
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_ISLOWER
    - Py_ISUPPER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_islower(const char *cptr, Py_ssize_t len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytes_methods.c:175,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Objects/bytes_methods.c:175,1
    - Dst: Py_ISLOWER
      Src: /src/cpython/Objects/bytes_methods.c:184,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Objects/bytes_methods.c:186,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytes_methods.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: _Py_bytes_isupper
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_ISLOWER
    - Py_ISUPPER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isupper(const char *cptr, Py_ssize_t len)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISUPPER
      Src: /src/cpython/Objects/bytes_methods.c:210,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Objects/bytes_methods.c:226,1
    - Dst: Py_ISLOWER
      Src: /src/cpython/Objects/bytes_methods.c:232,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytes_methods.c:241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 242
    functionName: _Py_bytes_istitle
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_ISLOWER
    - Py_ISUPPER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_istitle(const char *cptr, Py_ssize_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/cpython/Objects/bytes_methods.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - cptr
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: _Py_bytes_lower
    functionSourceFile: /src/cpython/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/cpython/Objects/bytes_methods.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - cptr
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: _Py_bytes_upper
    functionSourceFile: /src/cpython/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/cpython/Objects/bytes_methods.c:290,1
    - Dst: Py_ISLOWER
      Src: /src/cpython/Objects/bytes_methods.c:291,1
    - Dst: Py_TOUPPER
      Src: /src/cpython/Objects/bytes_methods.c:293,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Objects/bytes_methods.c:295,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Objects/bytes_methods.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - result
    - s
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 303
    functionName: _Py_bytes_title
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_ISLOWER
    - Py_CHARMASK
    - Py_TOUPPER
    - Py_TOLOWER
    - Py_ISUPPER
    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/cpython/Objects/bytes_methods.c:316,1
    - Dst: _Py_bytes_lower
      Src: /src/cpython/Objects/bytes_methods.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - result
    - s
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: _Py_bytes_capitalize
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_TOUPPER
    - _Py_bytes_lower
    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/cpython/Objects/bytes_methods.c:334,1
    - Dst: Py_ISLOWER
      Src: /src/cpython/Objects/bytes_methods.c:335,1
    - Dst: Py_TOUPPER
      Src: /src/cpython/Objects/bytes_methods.c:336,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Objects/bytes_methods.c:338,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Objects/bytes_methods.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - result
    - s
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 345
    functionName: _Py_bytes_swapcase
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_ISLOWER
    - Py_CHARMASK
    - Py_TOUPPER
    - Py_TOLOWER
    - Py_ISUPPER
    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/cpython/Objects/bytes_methods.c:364,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytes_methods.c:368,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytes_methods.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 379
    functionName: _Py_bytes_maketrans
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyBytes_FromStringAndSize
    - PyErr_Format
    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: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytes_methods.c:408,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytes_methods.c:412,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytes_methods.c:413,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytes_methods.c:416,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:420,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytes_methods.c:421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - function_name
    - subobj
    - byte
    argTypes:
    - char*
    - PyObject**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 432
    functionName: parse_args_finds_byte
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyObject_CheckBuffer
    - _PyIndex_Check
    - PyErr_Occurred
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void parse_args_finds_byte(const char *function_name, PyObject **subobj,
      char *byte)
  - 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: 453
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 453
    functionName: ADJUST_INDICES
    functionSourceFile: /src/cpython/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/cpython/Objects/bytes_methods.c:466,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:471,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/bytes_methods.c:482,1
    - Dst: stringlib_find_char
      Src: /src/cpython/Objects/bytes_methods.c:487,1
    - Dst: stringlib_rfind_char
      Src: /src/cpython/Objects/bytes_methods.c:491,1
    - Dst: stringlib_find_slice
      Src: /src/cpython/Objects/bytes_methods.c:499,1
    - Dst: stringlib_rfind_slice
      Src: /src/cpython/Objects/bytes_methods.c:503,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 7
    argNames:
    - str
    - len
    - function_name
    - subobj
    - start
    - end
    - dir
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 512
    functionName: find_internal
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - stringlib_find_char
    - parse_args_finds_byte
    - stringlib_rfind_slice
    - ADJUST_INDICES
    - PyObject_GetBuffer
    - PyBuffer_Release
    - stringlib_find_slice
    - stringlib_rfind_char
    linkageType: ''
    returnType: void
    signature: "void find_internal(const char *str, Py_ssize_t len,\n              const
      char *function_name, PyObject *subobj,\n              Py_ssize_t start, Py_ssize_t
      end,\n              int dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/cpython/Objects/bytes_methods.c:518,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - str
    - len
    - sub
    - start
    - end
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: _Py_bytes_find
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - find_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_find(const char *str, Py_ssize_t len, PyObject
      *sub,\n               Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/cpython/Objects/bytes_methods.c:528,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:532,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - str
    - len
    - sub
    - start
    - end
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: _Py_bytes_index
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - find_internal
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_index(const char *str, Py_ssize_t len, PyObject
      *sub,\n                Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/cpython/Objects/bytes_methods.c:543,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - str
    - len
    - sub
    - start
    - end
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 547
    functionName: _Py_bytes_rfind
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - find_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_rfind(const char *str, Py_ssize_t len, PyObject
      *sub,\n                Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/cpython/Objects/bytes_methods.c:553,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:557,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - str
    - len
    - sub
    - start
    - end
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 562
    functionName: _Py_bytes_rindex
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - find_internal
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_rindex(const char *str, Py_ssize_t len, PyObject
      *sub,\n                 Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_byte
      Src: /src/cpython/Objects/bytes_methods.c:575,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:580,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/bytes_methods.c:591,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:593,1
    - Dst: stringlib_count
      Src: /src/cpython/Objects/bytes_methods.c:594,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:598,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - str
    - len
    - sub_obj
    - start
    - end
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 601
    functionName: _Py_bytes_count
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - parse_args_finds_byte
    - PyLong_FromSsize_t
    - ADJUST_INDICES
    - stringlib_count
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_count(const char *str, Py_ssize_t len, PyObject
      *sub_obj,\n                Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:606,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytes_methods.c:607,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytes_methods.c:610,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:611,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/bytes_methods.c:613,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:615,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:619,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytes_methods.c:623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - str
    - len
    - arg
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 624
    functionName: _Py_bytes_contains
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - stringlib_find
    - PyErr_Occurred
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyObject_GetBuffer
    - memchr
    - PyBuffer_Release
    - PyErr_Clear
    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/cpython/Objects/bytes_methods.c:639,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytes_methods.c:640,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytes_methods.c:641,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:644,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/bytes_methods.c:650,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytes_methods.c:666,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:669,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:673,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: 675
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 675
    functionName: tailmatch
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - ADJUST_INDICES
    - PyBytes_Check
    - PyObject_GetBuffer
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - memcmp
    - PyBytes_AS_STRING
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/bytes_methods.c:683,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/bytes_methods.c:685,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/bytes_methods.c:686,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/bytes_methods.c:687,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/bytes_methods.c:697,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytes_methods.c:699,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytes_methods.c:700,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytes_methods.c:703,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytes_methods.c:707,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 7
    argNames:
    - str
    - len
    - function_name
    - subobj
    - start
    - end
    - direction
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 708
    functionName: _Py_bytes_tailmatch
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyErr_ExceptionMatches
    - tailmatch
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyBool_FromLong
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_tailmatch(const char *str, Py_ssize_t len,\n
      \                   const char *function_name, PyObject *subobj,\n                    Py_ssize_t
      start, Py_ssize_t end,\n                    int direction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_tailmatch
      Src: /src/cpython/Objects/bytes_methods.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - str
    - len
    - subobj
    - start
    - end
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: _Py_bytes_startswith
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_tailmatch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_startswith(const char *str, Py_ssize_t len,
      PyObject *subobj,\n                     Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_tailmatch
      Src: /src/cpython/Objects/bytes_methods.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - str
    - len
    - subobj
    - start
    - end
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 722
    functionName: _Py_bytes_endswith
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_tailmatch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_endswith(const char *str, Py_ssize_t len, PyObject
      *subobj,\n                   Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_find_max_char
      Src: /src/cpython/Objects/bytes_methods.c:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 740
    functionName: _Py_bytes_isascii
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - stringlib_find_max_char
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isascii(const char *cptr, Py_ssize_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/picklebufobject.c:22,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/picklebufobject.c:28,1
    - Dst: Py_DECREF
      Src: /src/cpython/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/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetBuffer
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyPickleBuffer_FromObject(PyObject *base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyPickleBuffer_Check
      Src: /src/cpython/Objects/picklebufobject.c:40,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/picklebufobject.c:41,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/picklebufobject.c:43,1
    - Dst: PyErr_SetString
      Src: /src/cpython/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/cpython/Objects/picklebufobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - Py_TYPE
    - PyPickleBuffer_Check
    - PyErr_Format
    linkageType: ''
    returnType: Py_buffer
    signature: 'Py_buffer *

      PyPickleBuffer_GetBuffer(PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyPickleBuffer_Check
      Src: /src/cpython/Objects/picklebufobject.c:59,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/picklebufobject.c:60,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/picklebufobject.c:62,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/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/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyBuffer_Release
    - PyPickleBuffer_Check
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyPickleBuffer_Release(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Objects/picklebufobject.c:76,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/picklebufobject.c:81,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/picklebufobject.c:87,1
    - Dst: Py_DECREF
      Src: /src/cpython/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/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyObject_GetBuffer
    - Py_DECREF
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      picklebuf_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/picklebufobject.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: picklebuf_traverse
    functionSourceFile: /src/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int picklebuf_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/picklebufobject.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: picklebuf_clear
    functionSourceFile: /src/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int picklebuf_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/picklebufobject.c:114,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/picklebufobject.c:115,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/picklebufobject.c:116,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/picklebufobject.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: picklebuf_dealloc
    functionSourceFile: /src/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - FT_CLEAR_WEAKREFS
    - Py_TYPE
    - PyBuffer_Release
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void picklebuf_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/picklebufobject.c:127,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/picklebufobject.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: picklebuf_getbuf
    functionSourceFile: /src/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: int picklebuf_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: picklebuf_releasebuf
    functionSourceFile: /src/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void picklebuf_releasebuf(PyObject *self, Py_buffer *view)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/picklebufobject.c:156,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/picklebufobject.c:161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/picklebufobject.c:162,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Objects/picklebufobject.c:166,1
    - Dst: assert
      Src: /src/cpython/Objects/picklebufobject.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mv->view.suboffsets == NULL)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/cpython/Objects/picklebufobject.c
    constantsTouched: []
    func_position:
      end: 184
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 184
    functionName: picklebuf_raw
    functionSourceFile: /src/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_SetString
    - PyBuffer_IsContiguous
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      picklebuf_raw(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/picklebufobject.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: picklebuf_release
    functionSourceFile: /src/cpython/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      picklebuf_release(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - 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: _PyMethodObject_CAST
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyMethodObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: TP_DESCR_GET
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TP_DESCR_GET(t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/cpython/Objects/classobject.c:27,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: PyMethod_Function
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyMethod_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMethod_Function(PyObject *im)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/cpython/Objects/classobject.c:37,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: PyMethod_Self
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyMethod_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMethod_Self(PyObject *im)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/classobject.c:49,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/classobject.c:49,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/classobject.c:51,1
    - Dst: PyMethod_GET_SELF
      Src: /src/cpython/Objects/classobject.c:52,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:53,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/classobject.c:54,1
    - Dst: assert
      Src: /src/cpython/Objects/classobject.c:55,1
    - Dst: assert
      Src: /src/cpython/Objects/classobject.c:64,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/classobject.c:65,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/classobject.c:70,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/classobject.c:73,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/classobject.c:78,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/classobject.c:82,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Objects/classobject.c:84,1
    - Dst: assert
      Src: /src/cpython/Objects/classobject.c:93,1
    - Dst: memcpy
      Src: /src/cpython/Objects/classobject.c:94,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/classobject.c:95,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/classobject.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - method
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(method, &PyMethod_Type))
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/cpython/Objects/classobject.c
    - condition: (nargs == 0 || args[nargs-1])
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Objects/classobject.c
    - condition: (newargs[nargs-1])
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/cpython/Objects/classobject.c
    - condition: (args != NULL)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/cpython/Objects/classobject.c
    constantsTouched: []
    func_position:
      end: 102
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 102
    functionName: method_vectorcall
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyMethod_GET_SELF
    - memcpy
    - _PyThreadState_GET
    - Py_IS_TYPE
    - _PyErr_NoMemory
    - _PyObject_VectorcallTstate
    - PyMethod_GET_FUNCTION
    - PyVectorcall_NARGS
    - Py_ARRAY_LENGTH
    - PyMem_Free
    - assert
    - PyMem_Malloc
    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/cpython/Objects/classobject.c:114,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/classobject.c:117,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/classobject.c:119,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:125,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:126,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/classobject.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - func
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: PyMethod_New
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 3
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - Py_NewRef
    - _Py_FREELIST_POP
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMethod_New(PyObject *func, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_GET_SELF
      Src: /src/cpython/Objects/classobject.c:140,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:141,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:142,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:142,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/classobject.c:146,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/classobject.c:147,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMethodObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: method___reduce___impl
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - PyMethod_GET_SELF
    - _Py_ID
    - PyObject_GetAttr
    - PyMethod_GET_FUNCTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method___reduce___impl(PyMethodObject *self)'
  - 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: MO_OFF
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MO_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethodObject_CAST
      Src: /src/cpython/Objects/classobject.c:177,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:178,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: method_get_doc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - _PyMethodObject_CAST
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get_doc(PyObject *self, void *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:190,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/classobject.c:194,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/classobject.c:195,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/classobject.c:198,1
    - Dst: TP_DESCR_GET
      Src: /src/cpython/Objects/classobject.c:202,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:202,1
    - Dst: f
      Src: /src/cpython/Objects/classobject.c:204,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:205,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: method_getattro
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - f
    - Py_DECREF
    - PyType_Ready
    - _PyType_LookupRef
    - TP_DESCR_GET
    - PyObject_GetAttr
    - Py_TYPE
    - _PyType_IsReady
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_getattro(PyObject *obj, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/classobject.c:230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/classobject.c:231,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/classobject.c:236,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/classobject.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - type
    - function
    - instance
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: method_new_impl
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyCallable_Check
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_new_impl(PyTypeObject *type, PyObject *function, PyObject *instance)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethodObject_CAST
      Src: /src/cpython/Objects/classobject.c:247,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/classobject.c:248,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/classobject.c:249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:250,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/classobject.c:251,1
    - Dst: assert
      Src: /src/cpython/Objects/classobject.c:252,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/classobject.c:252,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/classobject.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(self, &PyMethod_Type))
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/cpython/Objects/classobject.c
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: method_dealloc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - FT_CLEAR_WEAKREFS
    - _PyObject_GC_UNTRACK
    - Py_IS_TYPE
    - _PyMethodObject_CAST
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void method_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/cpython/Objects/classobject.c:264,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Objects/classobject.c:265,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/classobject.c:271,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 282
    functionName: method_richcompare
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMethod_Check
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethodObject_CAST
      Src: /src/cpython/Objects/classobject.c:287,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/classobject.c:293,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:293,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/classobject.c:295,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:295,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/classobject.c:300,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/classobject.c:301,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/classobject.c:305,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/classobject.c:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 310
    functionName: method_repr
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetOptionalAttr
    - PyUnicode_FromFormat
    - _Py_ID
    - Py_SETREF
    - PyUnicode_Check
    - _PyMethodObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethodObject_CAST
      Src: /src/cpython/Objects/classobject.c:315,1
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Objects/classobject.c:316,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/classobject.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 327
    functionName: method_hash
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyMethodObject_CAST
    - PyObject_Hash
    - PyObject_GenericHash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t method_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethodObject_CAST
      Src: /src/cpython/Objects/classobject.c:332,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/classobject.c:333,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/classobject.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: method_traverse
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyMethodObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int method_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/classobject.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - meth
    - obj
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: method_descr_get
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_descr_get(PyObject *meth, PyObject *obj, PyObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/classobject.c:381,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:384,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/classobject.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 387
    functionName: PyInstanceMethod_New
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyInstanceMethod_New(PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_Check
      Src: /src/cpython/Objects/classobject.c:392,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:393,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: PyInstanceMethod_Function
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyInstanceMethod_GET_FUNCTION
    - 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: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    functionName: IMO_OFF
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMO_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:410,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:410,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: instancemethod_get_doc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyInstanceMethod_GET_FUNCTION
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_get_doc(PyObject *self, void *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:422,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/classobject.c:425,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/classobject.c:426,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/classobject.c:429,1
    - Dst: TP_DESCR_GET
      Src: /src/cpython/Objects/classobject.c:432,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:432,1
    - Dst: f
      Src: /src/cpython/Objects/classobject.c:434,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:435,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:443,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: instancemethod_getattro
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - f
    - PyInstanceMethod_GET_FUNCTION
    - Py_DECREF
    - PyType_Ready
    - _PyType_LookupRef
    - TP_DESCR_GET
    - PyObject_GetAttr
    - Py_TYPE
    - _PyType_IsReady
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_getattro(PyObject *self, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/classobject.c:448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:449,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:449,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/classobject.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: instancemethod_dealloc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - Py_DECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void instancemethod_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/classobject.c:455,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: instancemethod_traverse
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int instancemethod_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/cpython/Objects/classobject.c:462,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: instancemethod_call
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_call(PyObject *self, PyObject *arg, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:467,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:469,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/classobject.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: instancemethod_descr_get
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyInstanceMethod_GET_FUNCTION
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_descr_get(PyObject *descr, PyObject *obj, PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_Check
      Src: /src/cpython/Objects/classobject.c:483,1
    - Dst: PyInstanceMethod_Check
      Src: /src/cpython/Objects/classobject.c:484,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/classobject.c:490,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 498
    functionName: instancemethod_richcompare
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyInstanceMethod_Check
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_Function
      Src: /src/cpython/Objects/classobject.c:503,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:508,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/classobject.c:512,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:512,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/classobject.c:515,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/classobject.c:516,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/classobject.c:519,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/classobject.c:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 524
    functionName: instancemethod_repr
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetOptionalAttr
    - PyUnicode_FromFormat
    - PyErr_BadInternalCall
    - _Py_ID
    - Py_SETREF
    - PyUnicode_Check
    - PyInstanceMethod_Function
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/classobject.c:539,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/classobject.c:540,1
    - Dst: PyInstanceMethod_New
      Src: /src/cpython/Objects/classobject.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - function
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 546
    functionName: instancemethod_new_impl
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_New
    - PyErr_SetString
    - PyCallable_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_new_impl(PyTypeObject *type, PyObject *function)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: ASSERT_DICT_LOCKED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: void
    signature: void ASSERT_DICT_LOCKED(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: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: ASSERT_DICT_LOCKED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_DICT_LOCKED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: ASSERT_WORLD_STOPPED_OR_DICT_LOCKED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WORLD_STOPPED_OR_DICT_LOCKED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: IS_DICT_SHARED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DICT_SHARED(mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: SET_DICT_SHARED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DICT_SHARED(mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - keys
    - ','
    - size
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: LOAD_INDEX
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_INDEX(keys, size, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - keys
    - ','
    - size
    - ','
    - idx
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: STORE_INDEX
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_INDEX(keys, size, idx, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: ASSERT_OWNED_OR_SHARED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_OWNED_OR_SHARED(mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - keys
    - ','
    - kind
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: LOCK_KEYS_IF_SPLIT
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_KEYS_IF_SPLIT(keys, kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - keys
    - ','
    - kind
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: UNLOCK_KEYS_IF_SPLIT
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_KEYS_IF_SPLIT(keys, kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:189,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Objects/dictobject.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: load_keys_nentries
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t load_keys_nentries(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_OWNED_OR_SHARED
      Src: /src/cpython/Objects/dictobject.c:196,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/dictobject.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mp
    - keys
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: set_keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_OWNED_OR_SHARED
    - _Py_atomic_store_ptr_release
    linkageType: ''
    returnType: void
    signature: void set_keys(PyDictObject *mp, PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_OWNED_OR_SHARED
      Src: /src/cpython/Objects/dictobject.c:203,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/dictobject.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mp
    - values
    argTypes:
    - PyDictObject*
    - PyDictValues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: set_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_OWNED_OR_SHARED
    - _Py_atomic_store_ptr_release
    linkageType: ''
    returnType: void
    signature: void set_values(PyDictObject *mp, PyDictValues *values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - keys
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: LOCK_KEYS
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_KEYS(keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - keys
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: UNLOCK_KEYS
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_KEYS(keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - keys
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: ASSERT_KEYS_LOCKED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_KEYS_LOCKED(keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: LOAD_SHARED_KEY
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SHARED_KEY(key)
  - 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: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: STORE_SHARED_KEY
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_SHARED_KEY(key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: INCREF_KEYS
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCREF_KEYS(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: DECREF_KEYS
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECREF_KEYS(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - keys
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: LOAD_KEYS_NENTRIES
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_KEYS_NENTRIES(keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: INCREF_KEYS_FT
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCREF_KEYS_FT(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dk
    - ','
    - shared
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: DECREF_KEYS_FT
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECREF_KEYS_FT(dk, shared)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_KEYS_LOCKED
      Src: /src/cpython/Objects/dictobject.c:224,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:228,1
    - Dst: _Py_atomic_store_ssize_release
      Src: /src/cpython/Objects/dictobject.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: split_keys_entry_added
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_KEYS_LOCKED
    - _Py_atomic_store_ssize_release
    - _Py_atomic_store_ssize_relaxed
    linkageType: ''
    returnType: void
    signature: void split_keys_entry_added(PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: LOAD_SHARED_KEY
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SHARED_KEY(key)
  - 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: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: STORE_SHARED_KEY
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_SHARED_KEY(key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: INCREF_KEYS
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCREF_KEYS(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: DECREF_KEYS
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECREF_KEYS(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - keys
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: LOAD_KEYS_NENTRIES
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_KEYS_NENTRIES(keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: IS_DICT_SHARED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DICT_SHARED(mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - keys
    - ','
    - size
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: LOAD_INDEX
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_INDEX(keys, size, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - keys
    - ','
    - size
    - ','
    - idx
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: STORE_INDEX
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_INDEX(keys, size, idx, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: split_keys_entry_added
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void split_keys_entry_added(PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - keys
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: set_keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_keys(PyDictObject *mp, PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - values
    argTypes:
    - PyDictObject*
    - PyDictValues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: set_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_values(PyDictObject *mp, PyDictValues *values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: load_keys_nentries
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t load_keys_nentries(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ep
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: STORE_KEY
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_KEY(ep, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ep
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: STORE_VALUE
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_VALUE(ep, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mp
    - ','
    - idx
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: STORE_SPLIT_VALUE
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_SPLIT_VALUE(mp, idx, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ep
    - ','
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: STORE_HASH
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_HASH(ep, hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - keys
    - ','
    - usable
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: STORE_KEYS_USABLE
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_KEYS_USABLE(keys, usable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - keys
    - ','
    - nentries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: STORE_KEYS_NENTRIES
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_KEYS_NENTRIES(keys, nentries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mp
    - ','
    - used
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: STORE_USED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_USED(mp, used)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:403,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:403,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:404,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/dictobject.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(o))
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: unicode_get_hash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - PyUnicode_CheckExact
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - assert
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t unicode_get_hash(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/cpython/Objects/dictobject.c:411,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/dictobject.c:412,1
    - Dst: _PyDebugAllocatorStats
      Src: /src/cpython/Objects/dictobject.c:414,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/dictobject.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: _PyDict_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _Py_FREELIST_SIZE
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyDict_DebugMallocStats(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: DK_MASK
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DK_MASK(dk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:435,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:436,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:436,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/dictobject.c:440,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:440,1
    - Dst: INCREF_KEYS
      Src: /src/cpython/Objects/dictobject.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dk
    argTypes:
    - PyDictKeysObject*
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_SSIZE_RELAXED(dk->dk_refcnt) == _Py_DICT_IMMORTAL_INITIAL_REFCNT)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 443
    functionName: dictkeys_incref
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PyThreadState_GET
    - INCREF_KEYS
    - _Py_IncRefTotal
    - assert
    linkageType: ''
    returnType: void
    signature: void dictkeys_incref(PyDictKeysObject *dk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:448,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:449,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:449,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:452,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Objects/dictobject.c:452,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/dictobject.c:454,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:454,1
    - Dst: DECREF_KEYS
      Src: /src/cpython/Objects/dictobject.c:456,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:457,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:458,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:461,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:462,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:466,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:469,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:470,1
    - Dst: free_keys_object
      Src: /src/cpython/Objects/dictobject.c:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dk
    - use_qsbr
    argTypes:
    - PyDictKeysObject*
    - bool
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_SSIZE_RELAXED(dk->dk_refcnt) == _Py_DICT_IMMORTAL_INITIAL_REFCNT)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (FT_ATOMIC_LOAD_SSIZE(dk->dk_refcnt) > 0)
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 475
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 475
    functionName: dictkeys_decref
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - DK_UNICODE_ENTRIES
    - _Py_DecRefTotal
    - DK_ENTRIES
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - DECREF_KEYS
    - _PyThreadState_GET
    - DK_IS_UNICODE
    - FT_ATOMIC_LOAD_SSIZE
    - free_keys_object
    - assert
    linkageType: ''
    returnType: void
    signature: void dictkeys_decref(PyDictKeysObject *dk, bool use_qsbr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:481,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:485,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:488,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:492,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - keys
    - i
    argTypes:
    - PyDictKeysObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: dictkeys_get_index
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_LOG_SIZE
    - LOAD_INDEX
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dictkeys_get_index(const PyDictKeysObject *keys, Py_ssize_t
      i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:506,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:508,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:509,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:512,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:513,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:516,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:517,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:521,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:525,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - keys
    - i
    - ix
    argTypes:
    - PyDictKeysObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ix <= 0x7f)
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix >= DKIX_DUMMY)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (keys->dk_version == 0)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix <= 0x7fff)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix <= 0x7fffffff)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 527
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 527
    functionName: dictkeys_set_index
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_LOG_SIZE
    - STORE_INDEX
    - assert
    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: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: USABLE_FRACTION
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USABLE_FRACTION(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Objects/dictobject.c:549,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Objects/dictobject.c:550,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/dictobject.c:553,1
    - Dst: _BitScanReverse64
      Src: /src/cpython/Objects/dictobject.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - minsize
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 565
    functionName: calculate_log2_keysize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_bit_length
    - Py_MAX
    - _BitScanReverse64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t calculate_log2_keysize(Py_ssize_t minsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: estimate_log2_keysize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - calculate_log2_keysize
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t estimate_log2_keysize(Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 590
    functionName: GROWTH_RATE
    functionSourceFile: /src/cpython/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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 619
    functionName: ASSERT_CONSISTENT
    functionSourceFile: /src/cpython/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: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: ASSERT_CONSISTENT
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_CONSISTENT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:626,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:627,1
    - Dst: get_insertion_order_array
      Src: /src/cpython/Objects/dictobject.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mp
    - i
    argTypes:
    - PyDictObject*
    - Py_ssize_t
    assertStmts:
    - condition: (mp->ma_used <= SHARED_KEYS_MAX_SIZE)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i < mp->ma_values->size)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: get_index_from_order
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - get_insertion_order_array
    - assert
    linkageType: ''
    returnType: int
    signature: int get_index_from_order(PyDictObject *mp, Py_ssize_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:637,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:638,1
    - Dst: printf
      Src: /src/cpython/Objects/dictobject.c:639,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:642,1
    - Dst: printf
      Src: /src/cpython/Objects/dictobject.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dk
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 646
    functionName: dump_entries
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - DK_ENTRIES
    - printf
    - DK_IS_UNICODE
    linkageType: ''
    returnType: void
    signature: void dump_entries(PyDictKeysObject *dk)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:652,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:657,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:658,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:658,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:662,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:663,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:663,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/dictobject.c:667,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/dictobject.c:668,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:670,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:671,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:672,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:673,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:677,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:678,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:681,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:682,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:684,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:685,1
    - Dst: LOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:690,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:691,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:692,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:693,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:697,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:704,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:705,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:707,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:708,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:709,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:715,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:721,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:721,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:722,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:723,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:725,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:730,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:736,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:740,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:741,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:743,1
    - Dst: UNLOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:746,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 751
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 751
    functionName: _PyDict_CheckConsistency
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - DK_UNICODE_ENTRIES
    - DK_ENTRIES
    - LOCK_KEYS_IF_SPLIT
    - DK_SIZE
    - get_index_from_order
    - PyUnicode_CheckExact
    - USABLE_FRACTION
    - UNLOCK_KEYS_IF_SPLIT
    - FT_ATOMIC_LOAD_SSIZE_ACQUIRE
    - dictkeys_get_index
    - unicode_get_hash
    - CHECK
    - PyDict_Check
    - _PyDict_HasSplitTable
    - ASSERT_WORLD_STOPPED_OR_DICT_LOCKED
    - assert
    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: 656
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 656
    functionName: CHECK
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:761,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - log2_size
    - unicode
    argTypes:
    - uint8_t
    - bool
    assertStmts:
    - condition: (log2_size >= PyDict_LOG_MINSIZE)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 777
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 777
    functionName: new_keys_object
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - USABLE_FRACTION
    - assert
    linkageType: ''
    returnType: PyDictKeysObject
    signature: 'PyDictKeysObject *

      new_keys_object(uint8_t log2_size, bool unicode)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/dictobject.c:815,1
    - Dst: _PyDict_KeysSize
      Src: /src/cpython/Objects/dictobject.c:815,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:819,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/dictobject.c:820,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/dictobject.c:823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - keys
    - use_qsbr
    argTypes:
    - PyDictKeysObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 810
    functionDepth: 7
    functionLinenumber: 810
    functionLinenumberEnd: 825
    functionName: free_keys_object
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyDict_KeysSize
    - _PyMem_FreeDelayed
    - _Py_FREELIST_FREE
    - DK_LOG_SIZE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_keys_object(PyDictKeysObject *keys, bool use_qsbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:830,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Objects/dictobject.c:831,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:832,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - count
    argTypes:
    - size_t
    assertStmts:
    - condition: (count >= 1)
      pos:
        line_end: 829
        line_start: 829
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (suffix_size < 128)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (suffix_size % sizeof(PyObject *) == 0)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 835
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 835
    functionName: values_size_from_count
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_SIZE_ROUND_UP
    linkageType: ''
    returnType: size_t
    signature: size_t values_size_from_count(size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 838
    functionName: CACHED_KEYS
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CACHED_KEYS(tp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: values_size_from_count
      Src: /src/cpython/Objects/dictobject.c:842,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/dictobject.c:843,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts:
    - condition: (size < 256)
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 852
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 852
    functionName: new_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - values_size_from_count
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyDictValues
    signature: 'PyDictValues *

      new_values(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:857,1
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/dictobject.c:860,1
    - Dst: values_size_from_count
      Src: /src/cpython/Objects/dictobject.c:860,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/dictobject.c:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - values
    - use_qsbr
    argTypes:
    - PyDictValues*
    - bool
    assertStmts:
    - condition: (values->embedded == 0)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 865
      start: 854
    functionDepth: 7
    functionLinenumber: 854
    functionLinenumberEnd: 865
    functionName: free_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _PyMem_FreeDelayed
    - values_size_from_count
    - assert
    linkageType: ''
    returnType: void
    signature: void free_values(PyDictValues *values, bool use_qsbr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:872,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/dictobject.c:873,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:875,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:877,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:879,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:884,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:884,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:889,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - keys
    - values
    - used
    - free_values_on_failure
    argTypes:
    - PyDictKeysObject*
    - PyDictValues*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 871
        line_start: 871
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_IS_TYPE(mp, &PyDict_Type))
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 892
      start: 868
    functionDepth: 8
    functionLinenumber: 868
    functionLinenumberEnd: 892
    functionName: new_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - ASSERT_CONSISTENT
    - Py_IS_TYPE
    - _Py_FREELIST_POP
    - free_values
    - dictkeys_decref
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_dict(PyDictKeysObject *keys, PyDictValues *values,\n
      \        Py_ssize_t used, int free_values_on_failure)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:897,1
    - Dst: new_values
      Src: /src/cpython/Objects/dictobject.c:898,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:900,1
    - Dst: dictkeys_incref
      Src: /src/cpython/Objects/dictobject.c:902,1
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 894
    functionDepth: 9
    functionLinenumber: 894
    functionLinenumberEnd: 907
    functionName: new_dict_with_shared_keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - shared_keys_usable_size
    - new_dict
    - new_values
    - dictkeys_incref
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_dict_with_shared_keys(PyDictKeysObject *keys)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:913,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:913,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:914,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:915,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:916,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:917,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:919,1
    - Dst: _PyDict_KeysSize
      Src: /src/cpython/Objects/dictobject.c:921,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/dictobject.c:922,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:924,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:928,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:935,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:936,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:942,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:952,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:953,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/dictobject.c:964,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - orig
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (orig->ma_values == NULL)
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(orig)->tp_iter == dict_iter)
      pos:
        line_end: 913
        line_start: 913
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyDict_Check(orig))
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (orig->ma_keys != Py_EMPTY_KEYS)
      pos:
        line_end: 915
        line_start: 915
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (orig->ma_keys->dk_refcnt == 1)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 967
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 967
    functionName: clone_combined_dict_keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - DK_UNICODE_ENTRIES
    - DK_ENTRIES
    - _PyDict_KeysSize
    - _Py_IncRefTotal
    - ASSERT_DICT_LOCKED
    - _PyThreadState_GET
    - DK_IS_UNICODE
    - memcpy
    - PyDict_Check
    - Py_TYPE
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyDictKeysObject
    signature: 'PyDictKeysObject *

      clone_combined_dict_keys(PyDictObject *orig)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 969
    functionDepth: 9
    functionLinenumber: 969
    functionLinenumberEnd: 974
    functionName: PyDict_New
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 73
    functionsReached:
    - new_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:980,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:985,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:995,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: 996
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 996
    functionName: lookdict_index
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - DK_MASK
    - dictkeys_get_index
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t lookdict_index(PyDictKeysObject *k, Py_hash_t hash, Py_ssize_t
      index)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1002,1
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:1003,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1008,1
    - Dst: check_lookup
      Src: /src/cpython/Objects/dictobject.c:1010,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1024,1
    - Dst: check_lookup
      Src: /src/cpython/Objects/dictobject.c:1026,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:1039,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - mp
    - dk
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1040
    functionName: do_lookup
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - check_lookup
    - DK_MASK
    - dictkeys_get_index
    - _DK_ENTRIES
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: "Py_ALWAYS_INLINE do_lookup(PyDictObject *mp, PyDictKeysObject *dk,
      PyObject *key, Py_hash_t hash,\n          int (*check_lookup)(PyDictObject *,
      PyDictKeysObject *, void *, Py_ssize_t ix, PyObject *key, Py_hash_t))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1047,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1048,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1048,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1049,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1049,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1051,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1053,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - mp
    - dk
    - ep0
    - ix
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (ep->me_key != NULL)
      pos:
        line_end: 1046
        line_start: 1046
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (!PyUnicode_CheckExact(key))
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(ep->me_key))
      pos:
        line_end: 1047
        line_start: 1047
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1068
      start: 1042
    functionDepth: 4
    functionLinenumber: 1042
    functionLinenumberEnd: 1068
    functionName: compare_unicode_generic
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyUnicode_CheckExact
    - PyObject_RichCompareBool
    - unicode_get_hash
    - assert
    linkageType: ''
    returnType: int
    signature: "int compare_unicode_generic(PyDictObject *mp, PyDictKeysObject *dk,\n
      \                       void *ep0, Py_ssize_t ix, PyObject *key, Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lookup
      Src: /src/cpython/Objects/dictobject.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mp
    - dk
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: unicodekeys_lookup_generic
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - do_lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicodekeys_lookup_generic(PyDictObject *mp, PyDictKeysObject*
      dk, PyObject *key, Py_hash_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:1082,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1083,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1084,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1084,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1086,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/dictobject.c:1086,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - mp
    - dk
    - ep0
    - ix
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (PyUnicode_CheckExact(ep_key))
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ep_key != NULL)
      pos:
        line_end: 1082
        line_start: 1082
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1090
      start: 1077
    functionDepth: 2
    functionLinenumber: 1077
    functionLinenumberEnd: 1090
    functionName: compare_unicode_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CheckExact
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - unicode_get_hash
    - unicode_eq
    - assert
    linkageType: ''
    returnType: int
    signature: "int compare_unicode_unicode(PyDictObject *mp, PyDictKeysObject *dk,\n
      \                       void *ep0, Py_ssize_t ix, PyObject *key, Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lookup
      Src: /src/cpython/Objects/dictobject.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dk
    - key
    - hash
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1092
    functionDepth: 3
    functionLinenumber: 1092
    functionLinenumberEnd: 1096
    functionName: _Py_HOT_FUNCTION::unicodekeys_lookup_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - do_lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: 'Py_ssize_t _Py_HOT_FUNCTION

      unicodekeys_lookup_unicode(PyDictKeysObject* dk, PyObject *key, Py_hash_t hash)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1103,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1109,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - mp
    - dk
    - ep0
    - ix
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (ep->me_key != NULL)
      pos:
        line_end: 1102
        line_start: 1102
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1124
      start: 1098
    functionDepth: 4
    functionLinenumber: 1098
    functionLinenumberEnd: 1124
    functionName: compare_generic
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - Py_DECREF
    - assert
    linkageType: ''
    returnType: int
    signature: "int compare_generic(PyDictObject *mp, PyDictKeysObject *dk,\n                void
      *ep0, Py_ssize_t ix, PyObject *key, Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lookup
      Src: /src/cpython/Objects/dictobject.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mp
    - dk
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1130
    functionName: dictkeys_generic_lookup
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - do_lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dictkeys_generic_lookup(PyDictObject *mp, PyDictKeysObject*
      dk, PyObject *key, Py_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - dk
    - key
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1136
    functionName: check_keys_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: bool
    signature: bool check_keys_unicode(PyDictKeysObject *dk, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1141,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1141,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1142,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/dictobject.c:1144,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 1144
        line_start: 1144
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1148
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1148
    functionName: hash_unicode_key
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CheckExact
    - tp_hash
    - assert
    - unicode_get_hash
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t hash_unicode_key(PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1160,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1161,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1161,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1167,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1169,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1170,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1171,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - dk
    - key
    - hash
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (dk->dk_kind == DICT_KEYS_SPLIT)
      pos:
        line_end: 1159
        line_start: 1159
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1177
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1177
    functionName: unicodekeys_lookup_split
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - unicodekeys_lookup_unicode
    - PyUnicode_CheckExact
    - LOCK_KEYS
    - unicodekeys_lookup_unicode_threadsafe
    - UNLOCK_KEYS
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicodekeys_lookup_split(PyDictKeysObject* dk, PyObject
      *key, Py_hash_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_keys_unicode
      Src: /src/cpython/Objects/dictobject.c:1188,1
    - Dst: hash_unicode_key
      Src: /src/cpython/Objects/dictobject.c:1191,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dk
    - key
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1193
    functionName: _PyDictKeys_StringLookup
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - hash_unicode_key
    - unicodekeys_lookup_unicode
    - check_keys_unicode
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDictKeys_StringLookup(PyDictKeysObject* dk, PyObject
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_keys_unicode
      Src: /src/cpython/Objects/dictobject.c:1198,1
    - Dst: hash_unicode_key
      Src: /src/cpython/Objects/dictobject.c:1202,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1203,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1204,1
    - Dst: _PyDictKeys_GetVersionForCurrentState
      Src: /src/cpython/Objects/dictobject.c:1205,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:1205,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - dk
    - key
    - version
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1195
    functionDepth: 3
    functionLinenumber: 1195
    functionLinenumberEnd: 1208
    functionName: _PyDictKeys_StringLookupAndVersion
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - hash_unicode_key
    - unicodekeys_lookup_unicode
    - LOCK_KEYS
    - _PyInterpreterState_GET
    - _PyDictKeys_GetVersionForCurrentState
    - check_keys_unicode
    - UNLOCK_KEYS
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDictKeys_StringLookupAndVersion(PyDictKeysObject *dk,
      PyObject *key, uint32_t *version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1216,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1217,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1217,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1218,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/dictobject.c:1220,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/dictobject.c:1222,1
    - Dst: unicodekeys_lookup_split
      Src: /src/cpython/Objects/dictobject.c:1226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dk
    - key
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    assertStmts:
    - condition: (dk->dk_kind == DICT_KEYS_SPLIT)
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1216
        line_start: 1216
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1227
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1227
    functionName: _PyDictKeys_StringLookupSplit
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - tp_hash
    - PyUnicode_CheckExact
    - unicodekeys_lookup_split
    - unicode_get_hash
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDictKeys_StringLookupSplit(PyDictKeysObject* dk, PyObject
      *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:1251,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1257,1
    - Dst: unicodekeys_lookup_split
      Src: /src/cpython/Objects/dictobject.c:1260,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1263,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1266,1
    - Dst: INCREF_KEYS_FT
      Src: /src/cpython/Objects/dictobject.c:1270,1
    - Dst: LOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:1271,1
    - Dst: unicodekeys_lookup_generic
      Src: /src/cpython/Objects/dictobject.c:1273,1
    - Dst: UNLOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:1275,1
    - Dst: DECREF_KEYS_FT
      Src: /src/cpython/Objects/dictobject.c:1276,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1276,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1287,1
    - Dst: dictkeys_generic_lookup
      Src: /src/cpython/Objects/dictobject.c:1295,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1300,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1308
    functionName: _Py_dict_lookup
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_generic_lookup
    - DK_UNICODE_ENTRIES
    - unicodekeys_lookup_unicode
    - DK_ENTRIES
    - LOCK_KEYS_IF_SPLIT
    - PyUnicode_CheckExact
    - DECREF_KEYS_FT
    - unicodekeys_lookup_generic
    - IS_DICT_SHARED
    - unicodekeys_lookup_split
    - INCREF_KEYS_FT
    - UNLOCK_KEYS_IF_SPLIT
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_dict_lookup(PyDictObject *mp, PyObject *key, Py_hash_t
      hash, PyObject **value_addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/dictobject.c:1314,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1314,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1319,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1320,1
    - Dst: SET_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1321,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1325
    functionName: ensure_shared_on_read
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_IsOwnedByCurrentThread
    - Py_END_CRITICAL_SECTION
    - SET_DICT_SHARED
    - IS_DICT_SHARED
    linkageType: ''
    returnType: void
    signature: void ensure_shared_on_read(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_shared_on_read
      Src: /src/cpython/Objects/dictobject.c:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1327
    functionDepth: 2
    functionLinenumber: 1327
    functionLinenumberEnd: 1331
    functionName: _PyDict_EnsureSharedOnRead
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - ensure_shared_on_read
    linkageType: ''
    returnType: void
    signature: void _PyDict_EnsureSharedOnRead(PyDictObject *mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:1338,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/dictobject.c:1340,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1340,1
    - Dst: SET_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1352
    functionName: ensure_shared_on_resize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsOwnedByCurrentThread
    - SET_DICT_SHARED
    - IS_DICT_SHARED
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: void
    signature: void ensure_shared_on_resize(PyDictObject *mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:1357,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1359,1
    - Dst: SET_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1354
    functionDepth: 2
    functionLinenumber: 1354
    functionLinenumberEnd: 1366
    functionName: ensure_shared_on_keys_version_assignment
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_DICT_LOCKED
    - IS_DICT_SHARED
    - SET_DICT_SHARED
    linkageType: ''
    returnType: void
    signature: void ensure_shared_on_keys_version_assignment(PyDictObject *mp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1375,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1376,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1376,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1377,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1377,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1380,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1384,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1386,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1390,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - mp
    - dk
    - ep0
    - ix
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (!PyUnicode_CheckExact(key))
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (startkey == NULL || PyUnicode_CheckExact(ep->me_key))
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1404
      start: 1370
    functionDepth: 4
    functionLinenumber: 1370
    functionLinenumberEnd: 1404
    functionName: compare_unicode_generic_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr_relaxed
    - Py_DECREF
    - PyUnicode_CheckExact
    - PyObject_RichCompareBool
    - unicode_get_hash
    - _Py_TryIncrefCompare
    - assert
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: "Py_ALWAYS_INLINE compare_unicode_generic_threadsafe(PyDictObject *mp,
      PyDictKeysObject *dk,\n                                   void *ep0, Py_ssize_t
      ix, PyObject *key, Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lookup
      Src: /src/cpython/Objects/dictobject.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mp
    - dk
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1407
    functionDepth: 3
    functionLinenumber: 1407
    functionLinenumberEnd: 1411
    functionName: unicodekeys_lookup_generic_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - do_lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicodekeys_lookup_generic_threadsafe(PyDictObject *mp,
      PyDictKeysObject* dk, PyObject *key, Py_hash_t hash)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1418,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1420,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1420,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/dictobject.c:1424,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1425,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1425,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1426,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/dictobject.c:1426,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1429,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1432,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1432,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1433,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/dictobject.c:1433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - mp
    - dk
    - ep0
    - ix
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (PyUnicode_CheckExact(startkey))
      pos:
        line_end: 1419
        line_start: 1419
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(startkey))
      pos:
        line_end: 1424
        line_start: 1424
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(startkey))
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1441
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1441
    functionName: compare_unicode_unicode_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_atomic_load_ptr_relaxed
    - Py_DECREF
    - PyUnicode_CheckExact
    - unicode_get_hash
    - _Py_TryIncrefCompare
    - unicode_eq
    - _Py_IsImmortal
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: "Py_ALWAYS_INLINE compare_unicode_unicode_threadsafe(PyDictObject *mp,
      PyDictKeysObject *dk,\n                                   void *ep0, Py_ssize_t
      ix, PyObject *key, Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lookup
      Src: /src/cpython/Objects/dictobject.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dk
    - key
    - hash
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1447
    functionName: _Py_HOT_FUNCTION::unicodekeys_lookup_unicode_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - do_lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: 'Py_ssize_t _Py_HOT_FUNCTION

      unicodekeys_lookup_unicode_threadsafe(PyDictKeysObject* dk, PyObject *key, Py_hash_t
      hash)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1454,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:1458,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1460,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1464,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1468,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 6
    argNames:
    - mp
    - dk
    - ep0
    - ix
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1449
    functionDepth: 4
    functionLinenumber: 1449
    functionLinenumberEnd: 1478
    functionName: compare_generic_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - Py_DECREF
    - _Py_atomic_load_ptr_relaxed
    - PyObject_RichCompareBool
    - _Py_TryIncrefCompare
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: "Py_ALWAYS_INLINE compare_generic_threadsafe(PyDictObject *mp, PyDictKeysObject
      *dk,\n                           void *ep0, Py_ssize_t ix, PyObject *key, Py_hash_t
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lookup
      Src: /src/cpython/Objects/dictobject.c:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mp
    - dk
    - key
    - hash
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1480
    functionDepth: 3
    functionLinenumber: 1480
    functionLinenumberEnd: 1484
    functionName: dictkeys_generic_lookup_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - do_lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dictkeys_generic_lookup_threadsafe(PyDictObject *mp, PyDictKeysObject*
      dk, PyObject *key, Py_hash_t hash)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ensure_shared_on_read
      Src: /src/cpython/Objects/dictobject.c:1494,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1496,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1500,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1501,1
    - Dst: unicodekeys_lookup_generic_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1504,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1512,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Objects/dictobject.c:1516,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/dictobject.c:1520,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1525,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/dictobject.c:1530,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1530,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1536,1
    - Dst: dictkeys_generic_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1546,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/dictobject.c:1551,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1551,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1556,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1573,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:1574,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1577,1
    - Dst: _Py_NewRefWithLock
      Src: /src/cpython/Objects/dictobject.c:1578,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1580,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (ix >= 0)
      pos:
        line_end: 1576
        line_start: 1576
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1582
      start: 1486
    functionDepth: 5
    functionLinenumber: 1486
    functionLinenumberEnd: 1582
    functionName: _Py_dict_lookup_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - ensure_shared_on_read
    - DK_UNICODE_ENTRIES
    - Py_END_CRITICAL_SECTION
    - _Py_atomic_load_uint8_relaxed
    - Py_DECREF
    - DK_ENTRIES
    - unicodekeys_lookup_generic_threadsafe
    - PyUnicode_CheckExact
    - _Py_dict_lookup
    - _Py_NewRefWithLock
    - unicodekeys_lookup_unicode_threadsafe
    - _Py_TryXGetRef
    - dictkeys_generic_lookup_threadsafe
    - assert
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_dict_lookup_threadsafe(PyDictObject *mp, PyObject *key,
      Py_hash_t hash, PyObject **value_addr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1587,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1588,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1588,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1590,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1596,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1597,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Objects/dictobject.c:1602,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1606,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/dictobject.c:1607,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - dk
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    - _PyStackRef*
    assertStmts:
    - condition: (dk->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 1586
        line_start: 1586
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1587
        line_start: 1587
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix == DKIX_KEY_CHANGED)
      pos:
        line_end: 1611
        line_start: 1611
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1614
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1614
    functionName: lookup_threadsafe_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - PyUnicode_CheckExact
    - unicodekeys_lookup_unicode_threadsafe
    - PyStackRef_FromPyObjectSteal
    - _Py_TryIncrefCompare
    - _PyObject_HasDeferredRefcount
    - assert
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t lookup_threadsafe_unicode(PyDictKeysObject *dk, PyObject
      *key, Py_hash_t hash, _PyStackRef *value_addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1619,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1620,1
    - Dst: lookup_threadsafe_unicode
      Src: /src/cpython/Objects/dictobject.c:1621,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1628,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/dictobject.c:1630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1616
    functionDepth: 6
    functionLinenumber: 1616
    functionLinenumberEnd: 1636
    functionName: _Py_dict_lookup_threadsafe_stackref
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - lookup_threadsafe_unicode
    - PyUnicode_CheckExact
    - _Py_dict_lookup_threadsafe
    - PyStackRef_FromPyObjectSteal
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_dict_lookup_threadsafe_stackref(PyDictObject *mp, PyObject
      *key, Py_hash_t hash, _PyStackRef *value_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:1643,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1640
    functionDepth: 5
    functionLinenumber: 1640
    functionLinenumberEnd: 1646
    functionName: _Py_dict_lookup_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _Py_dict_lookup
    - Py_XNewRef
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_dict_lookup_threadsafe(PyDictObject *mp, PyObject *key,
      Py_hash_t hash, PyObject **value_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:1652,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/dictobject.c:1657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1648
    functionDepth: 5
    functionLinenumber: 1648
    functionLinenumberEnd: 1660
    functionName: _Py_dict_lookup_threadsafe_stackref
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - _Py_dict_lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_dict_lookup_threadsafe_stackref(PyDictObject *mp, PyObject
      *key, Py_hash_t hash, _PyStackRef *value_addr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1669,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1669,1
    - Dst: hash_unicode_key
      Src: /src/cpython/Objects/dictobject.c:1670,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/dictobject.c:1673,1
    - Dst: lookup_threadsafe_unicode
      Src: /src/cpython/Objects/dictobject.c:1676,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1678,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:1678,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/dictobject.c:1679,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1685,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1690,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1692,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/dictobject.c:1694,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/dictobject.c:1698,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/dictobject.c:1698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - mp
    - key
    - method
    argTypes:
    - PyDictObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1668
        line_start: 1668
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (!PyStackRef_IsNull(ref))
      pos:
        line_end: 1677
        line_start: 1677
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix == DKIX_KEY_CHANGED)
      pos:
        line_end: 1684
        line_start: 1684
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1702
      start: 1666
    functionDepth: 6
    functionLinenumber: 1666
    functionLinenumberEnd: 1702
    functionName: _PyDict_GetMethodStackRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - hash_unicode_key
    - Py_INCREF
    - Py_DECREF
    - lookup_threadsafe_unicode
    - PyUnicode_CheckExact
    - _Py_dict_lookup_threadsafe
    - PyStackRef_XSETREF
    - PyStackRef_FromPyObjectSteal
    - _Py_atomic_load_ptr_acquire
    - PyStackRef_IsNull
    - PyStackRef_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyDict_GetMethodStackRef(PyDictObject *mp, PyObject *key, _PyStackRef
      *method)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1709,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:1709,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:1713,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/dictobject.c:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 1708
        line_start: 1708
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1717
      start: 1704
    functionDepth: 1
    functionLinenumber: 1704
    functionLinenumberEnd: 1717
    functionName: _PyDict_HasOnlyStringKeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyDict_Next
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyDict_HasOnlyStringKeys(PyObject *dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1722,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:1722,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/dictobject.c:1724,1
    - Dst: _PyObject_ReleaseUniqueId
      Src: /src/cpython/Objects/dictobject.c:1729,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(op))
      pos:
        line_end: 1721
        line_start: 1721
        source_file: /src/cpython/Objects/dictobject.c
    - condition: ((mp->_ma_watcher_tag >> DICT_UNIQUE_ID_SHIFT) == 0)
      pos:
        line_end: 1733
        line_start: 1733
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1737
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1737
    functionName: _PyDict_EnablePerThreadRefcounting
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - _PyObject_ReleaseUniqueId
    - assert
    - _PyObject_AssignUniqueId
    linkageType: ''
    returnType: void
    signature: void _PyDict_EnablePerThreadRefcounting(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ix
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1747
    functionName: is_unusable_slot
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_unusable_slot(Py_ssize_t ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1755,1
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:1757,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1759,1
    - Dst: is_unusable_slot
      Src: /src/cpython/Objects/dictobject.c:1760,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - keys
    - hash
    argTypes:
    - PyDictKeysObject*
    - Py_hash_t
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 1754
        line_start: 1754
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1766
      start: 1752
    functionDepth: 2
    functionLinenumber: 1752
    functionLinenumberEnd: 1766
    functionName: find_empty_slot
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - is_unusable_slot
    - DK_MASK
    - dictkeys_get_index
    - assert
    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/cpython/Objects/dictobject.c:1771,1
    - Dst: calculate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:1771,1
    - Dst: GROWTH_RATE
      Src: /src/cpython/Objects/dictobject.c:1771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - unicode
    argTypes:
    - PyDictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1772
    functionName: insertion_resize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - GROWTH_RATE
    - dictresize
    - calculate_log2_keysize
    linkageType: ''
    returnType: int
    signature: int insertion_resize(PyDictObject *mp, int unicode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: insertion_resize
      Src: /src/cpython/Objects/dictobject.c:1780,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1785,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:1786,1
    - Dst: find_empty_slot
      Src: /src/cpython/Objects/dictobject.c:1788,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:1789,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:1791,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1793,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:1794,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1795,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1799,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:1800,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1801,1
    - Dst: STORE_HASH
      Src: /src/cpython/Objects/dictobject.c:1802,1
    - Dst: STORE_KEYS_USABLE
      Src: /src/cpython/Objects/dictobject.c:1804,1
    - Dst: STORE_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:1805,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - interp
    - mp
    - hash
    - key
    - value
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    - Py_hash_t
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mp->ma_keys->dk_usable >= 0)
      pos:
        line_end: 1805
        line_start: 1805
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1808
      start: 1774
    functionDepth: 3
    functionLinenumber: 1774
    functionLinenumberEnd: 1808
    functionName: insert_combined_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - insertion_resize
    - DK_UNICODE_ENTRIES
    - STORE_HASH
    - DK_ENTRIES
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - STORE_KEYS_USABLE
    - STORE_KEYS_NENTRIES
    - STORE_VALUE
    - dictkeys_set_index
    - DK_IS_UNICODE
    - STORE_KEY
    - _PyDict_NotifyEvent
    - assert
    - find_empty_slot
    linkageType: ''
    returnType: int
    signature: "int insert_combined_dict(PyInterpreterState *interp, PyDictObject
      *mp,\n                     Py_hash_t hash, PyObject *key, PyObject *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1813,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1813,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1818,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1824,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1825,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:1828,1
    - Dst: find_empty_slot
      Src: /src/cpython/Objects/dictobject.c:1829,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:1831,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1832,1
    - Dst: STORE_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:1833,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:1833,1
    - Dst: split_keys_entry_added
      Src: /src/cpython/Objects/dictobject.c:1834,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1836,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - keys
    - key
    - hash
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1812
        line_start: 1812
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix < SHARED_KEYS_MAX_SIZE)
      pos:
        line_end: 1835
        line_start: 1835
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1839
      start: 1810
    functionDepth: 3
    functionLinenumber: 1810
    functionLinenumberEnd: 1839
    functionName: insert_split_key
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - unicodekeys_lookup_unicode
    - UNLOCK_KEYS
    - PyUnicode_CheckExact
    - LOCK_KEYS
    - unicodekeys_lookup_unicode_threadsafe
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - STORE_SHARED_KEY
    - Py_NewRef
    - dictkeys_set_index
    - split_keys_entry_added
    - assert
    - find_empty_slot
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t insert_split_key(PyDictKeysObject *keys, PyObject *key,
      Py_hash_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1844,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1844,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:1845,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1848,1
    - Dst: STORE_SPLIT_VALUE
      Src: /src/cpython/Objects/dictobject.c:1849,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:1849,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Objects/dictobject.c:1850,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:1851,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1854,1
    - Dst: STORE_SPLIT_VALUE
      Src: /src/cpython/Objects/dictobject.c:1855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:1855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1858,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:1860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - interp
    - mp
    - key
    - value
    - ix
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1843
        line_start: 1843
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1861
      start: 1841
    functionDepth: 2
    functionLinenumber: 1841
    functionLinenumberEnd: 1861
    functionName: insert_split_value
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictValues_AddToInsertionOrder
    - Py_DECREF
    - PyUnicode_CheckExact
    - ASSERT_DICT_LOCKED
    - STORE_USED
    - ASSERT_CONSISTENT
    - STORE_SPLIT_VALUE
    - Py_NewRef
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: void
    signature: void insert_split_value(PyInterpreterState *interp, PyDictObject *mp,
      PyObject *key, PyObject *value, Py_ssize_t ix)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:1875,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:1877,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1877,1
    - Dst: insertion_resize
      Src: /src/cpython/Objects/dictobject.c:1878,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1880,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:1883,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:1884,1
    - Dst: insert_split_value
      Src: /src/cpython/Objects/dictobject.c:1886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1888,1
    - Dst: insertion_resize
      Src: /src/cpython/Objects/dictobject.c:1893,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:1898,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1903,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:1903,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1905,1
    - Dst: insert_combined_dict
      Src: /src/cpython/Objects/dictobject.c:1906,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:1909,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:1910,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1915,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1916,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1917,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:1917,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:1918,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1919,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1920,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1923,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1924,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:1927,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:1928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1934,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 5
    argNames:
    - interp
    - mp
    - key
    - hash
    - value
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (!_PyDict_HasSplitTable(mp))
      pos:
        line_end: 1916
        line_start: 1916
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_keys->dk_kind == DICT_KEYS_GENERAL)
      pos:
        line_end: 1879
        line_start: 1879
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (old_value == NULL)
      pos:
        line_end: 1904
        line_start: 1904
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (!_PyDict_HasSplitTable(mp))
      pos:
        line_end: 1902
        line_start: 1902
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (old_value != NULL)
      pos:
        line_end: 1915
        line_start: 1915
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1936
      start: 1869
    functionDepth: 5
    functionLinenumber: 1869
    functionLinenumberEnd: 1936
    functionName: insertdict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - insertion_resize
    - Py_XDECREF
    - DK_UNICODE_ENTRIES
    - insert_split_key
    - Py_DECREF
    - DK_ENTRIES
    - _Py_dict_lookup
    - PyUnicode_CheckExact
    - ASSERT_DICT_LOCKED
    - STORE_USED
    - ASSERT_CONSISTENT
    - insert_combined_dict
    - STORE_VALUE
    - DK_IS_UNICODE
    - insert_split_value
    - _PyDict_HasSplitTable
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: int
    signature: "int insertdict(PyInterpreterState *interp, PyDictObject *mp,\n           PyObject
      *key, Py_hash_t hash, PyObject *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1944,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:1945,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1947,1
    - Dst: new_keys_object
      Src: /src/cpython/Objects/dictobject.c:1948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1951,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1954,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1957,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:1960,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1962,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1964,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1967,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1970,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:1972,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:1980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - interp
    - mp
    - key
    - hash
    - value
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (mp->ma_keys == Py_EMPTY_KEYS)
      pos:
        line_end: 1943
        line_start: 1943
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_values == NULL)
      pos:
        line_end: 1956
        line_start: 1956
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1982
      start: 1940
    functionDepth: 2
    functionLinenumber: 1940
    functionLinenumberEnd: 1982
    functionName: insert_to_emptydict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - Py_DECREF
    - DK_ENTRIES
    - PyUnicode_CheckExact
    - ASSERT_DICT_LOCKED
    - STORE_USED
    - new_keys_object
    - dictkeys_set_index
    - STORE_VALUE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: int
    signature: "int insert_to_emptydict(PyInterpreterState *interp, PyDictObject *mp,\n
      \                   PyObject *key, Py_hash_t hash, PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:1990,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1994,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:1998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - keys
    - ep
    - n
    argTypes:
    - PyDictKeysObject*
    - PyDictKeyEntry*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1987
    functionDepth: 2
    functionLinenumber: 1987
    functionLinenumberEnd: 2000
    functionName: build_indices_generic
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_MASK
    - dictkeys_set_index
    - dictkeys_get_index
    linkageType: ''
    returnType: void
    signature: void build_indices_generic(PyDictKeysObject *keys, PyDictKeyEntry *ep,
      Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:2005,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2007,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2008,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:2010,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:2014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - keys
    - ep
    - n
    argTypes:
    - PyDictKeysObject*
    - PyDictUnicodeEntry*
    - Py_ssize_t
    assertStmts:
    - condition: (hash != -1)
      pos:
        line_end: 2007
        line_start: 2007
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2016
      start: 2002
    functionDepth: 2
    functionLinenumber: 2002
    functionLinenumberEnd: 2016
    functionName: build_indices_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_MASK
    - dictkeys_set_index
    - dictkeys_get_index
    - unicode_get_hash
    - assert
    linkageType: ''
    returnType: void
    signature: void build_indices_unicode(PyDictKeysObject *keys, PyDictUnicodeEntry
      *ep, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2021,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Objects/dictobject.c:2022,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:2024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - values
    argTypes:
    - PyDictValues*
    assertStmts:
    - condition: (values->embedded)
      pos:
        line_end: 2020
        line_start: 2020
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2026
      start: 2018
    functionDepth: 1
    functionLinenumber: 2018
    functionLinenumberEnd: 2026
    functionName: invalidate_and_clear_inline_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT8
    - FT_ATOMIC_STORE_PTR_RELEASE
    - assert
    linkageType: ''
    returnType: void
    signature: void invalidate_and_clear_inline_values(PyDictValues *values)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:2049,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:2052,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2055,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:2060,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/dictobject.c:2064,1
    - Dst: new_keys_object
      Src: /src/cpython/Objects/dictobject.c:2071,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2076,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:2081,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2082,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2088,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:2091,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2093,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2094,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2095,1
    - Dst: build_indices_generic
      Src: /src/cpython/Objects/dictobject.c:2098,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2101,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:2104,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2106,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2107,1
    - Dst: build_indices_unicode
      Src: /src/cpython/Objects/dictobject.c:2110,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:2112,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:2113,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:2114,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2114,1
    - Dst: set_values
      Src: /src/cpython/Objects/dictobject.c:2115,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2117,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2118,1
    - Dst: invalidate_and_clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:2119,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:2122,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2122,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2128,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2129,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2130,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:2132,1
    - Dst: build_indices_generic
      Src: /src/cpython/Objects/dictobject.c:2142,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2145,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2147,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:2149,1
    - Dst: build_indices_unicode
      Src: /src/cpython/Objects/dictobject.c:2159,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2162,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2168,1
    - Dst: build_indices_generic
      Src: /src/cpython/Objects/dictobject.c:2172,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:2176,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/dictobject.c:2180,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:2180,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2182,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2183,1
    - Dst: free_keys_object
      Src: /src/cpython/Objects/dictobject.c:2184,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2184,1
    - Dst: STORE_KEYS_USABLE
      Src: /src/cpython/Objects/dictobject.c:2188,1
    - Dst: STORE_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:2189,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2190,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 96
    argCount: 3
    argNames:
    - mp
    - log2_newsize
    - unicode
    argTypes:
    - PyDictObject*
    - uint8_t
    - int
    assertStmts:
    - condition: (oldvalues->values[index] != NULL)
      pos:
        line_end: 2105
        line_start: 2105
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldkeys->dk_kind != DICT_KEYS_SPLIT)
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (log2_newsize >= PyDict_LOG_MINSIZE)
      pos:
        line_end: 2054
        line_start: 2054
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (newkeys->dk_kind == DICT_KEYS_GENERAL)
      pos:
        line_end: 2127
        line_start: 2127
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldkeys->dk_refcnt == 1)
      pos:
        line_end: 2182
        line_start: 2182
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (newkeys->dk_usable >= mp->ma_used)
      pos:
        line_end: 2075
        line_start: 2075
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldvalues->embedded == 1)
      pos:
        line_end: 2116
        line_start: 2116
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldvalues->values[index] != NULL)
      pos:
        line_end: 2092
        line_start: 2092
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldvalues->valid == 1)
      pos:
        line_end: 2117
        line_start: 2117
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2192
      start: 2042
    functionDepth: 8
    functionLinenumber: 2042
    functionLinenumberEnd: 2192
    functionName: dictresize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - unicode_get_hash
    - build_indices_generic
    - UNLOCK_KEYS
    - DK_UNICODE_ENTRIES
    - ASSERT_DICT_LOCKED
    - ASSERT_CONSISTENT
    - STORE_KEYS_NENTRIES
    - new_keys_object
    - _Py_DecRefTotal
    - ensure_shared_on_resize
    - get_index_from_order
    - LOCK_KEYS
    - Py_NewRef
    - set_keys
    - free_values
    - memcpy
    - dictkeys_decref
    - invalidate_and_clear_inline_values
    - PyErr_NoMemory
    - free_keys_object
    - DK_ENTRIES
    - set_values
    - build_indices_unicode
    - IS_DICT_SHARED
    - STORE_KEYS_USABLE
    - DK_IS_UNICODE
    - assert
    linkageType: ''
    returnType: int
    signature: "int dictresize(PyDictObject *mp,\n           uint8_t log2_newsize,
      int unicode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:2202,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:2203,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:2209,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:2213,1
    - Dst: new_keys_object
      Src: /src/cpython/Objects/dictobject.c:2216,1
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:2219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - minused
    - unicode
    argTypes:
    - Py_ssize_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2194
    functionDepth: 10
    functionLinenumber: 2194
    functionLinenumberEnd: 2220
    functionName: dict_new_presized
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_dict
    - USABLE_FRACTION
    - new_keys_object
    - PyDict_New
    - estimate_log2_keysize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_new_presized(Py_ssize_t minused, bool unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_new_presized
      Src: /src/cpython/Objects/dictobject.c:2225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - minused
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2222
    functionDepth: 11
    functionLinenumber: 2222
    functionLinenumberEnd: 2226
    functionName: _PyDict_NewPresized
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_new_presized
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_NewPresized(Py_ssize_t minused)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2237,1
    - Dst: dict_new_presized
      Src: /src/cpython/Objects/dictobject.c:2244,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:2255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - keys
    - keys_offset
    - values
    - values_offset
    - length
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2228
    functionDepth: 11
    functionLinenumber: 2228
    functionLinenumberEnd: 2264
    functionName: _PyDict_FromItems
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_new_presized
    - PyUnicode_CheckExact
    - setitem_lock_held
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyDict_FromItems(PyObject *const *keys, Py_ssize_t keys_offset,\n
      \                 PyObject *const *values, Py_ssize_t values_offset,\n                  Py_ssize_t
      length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2279,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2284,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:2286,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:2290,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Objects/dictobject.c:2294,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2301,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2303,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:2304,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2306,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:2310,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/dictobject.c:2311,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:2312,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2314,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - op
    - key
    - warnmsg
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts:
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2315
        line_start: 2315
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2318
      start: 2276
    functionDepth: 6
    functionLinenumber: 2276
    functionLinenumberEnd: 2318
    functionName: dict_getitem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - assert
    - _PyErr_SetRaisedException
    - _Py_dict_lookup
    - PyErr_GivenExceptionMatches
    - _Py_dict_lookup_threadsafe
    - PyErr_FormatUnraisable
    - _PyThreadState_GET
    - _PyObject_HashFast
    - PyDict_Check
    - _Py_EnsureTstateNotNULL
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_getitem(PyObject *op, PyObject *key, const char *warnmsg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_getitem
      Src: /src/cpython/Objects/dictobject.c:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2326
    functionName: PyDict_GetItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - dict_getitem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItem(PyObject *op, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2331,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2332,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:2333,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2334,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:2338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 2331
        line_start: 2331
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2342
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2342
    functionName: dict_unhashable_type
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_IS_TYPE
    - PyErr_Format
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void dict_unhashable_type(PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2349,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2349,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2350,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2350,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2352,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2354,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mp
    - key
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact((PyObject*)mp))
      pos:
        line_end: 2348
        line_start: 2348
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 2349
        line_start: 2349
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2359
      start: 2344
    functionDepth: 5
    functionLinenumber: 2344
    functionLinenumberEnd: 2359
    functionName: _PyDict_LookupIndex
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - _Py_dict_lookup
    - PyUnicode_CheckExact
    - dict_unhashable_type
    - _PyObject_HashFast
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDict_LookupIndex(PyDictObject *mp, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2372,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2373,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2378,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:2379,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2381,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2382
        line_start: 2382
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2385
      start: 2365
    functionDepth: 6
    functionLinenumber: 2365
    functionLinenumberEnd: 2385
    functionName: _PyDict_GetItem_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - _Py_dict_lookup
    - PyErr_BadInternalCall
    - _Py_dict_lookup_threadsafe
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItem_KnownHash(PyObject *op, PyObject *key, Py_hash_t hash)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2396,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2397,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - op
    - key
    - hash
    - result
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2396
        line_start: 2396
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2408
      start: 2391
    functionDepth: 5
    functionLinenumber: 2391
    functionLinenumberEnd: 2408
    functionName: _PyDict_GetItemRef_KnownHash_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_NewRef
    - _Py_dict_lookup
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyDict_GetItemRef_KnownHash_LockHeld(PyDictObject *op, PyObject
      *key,\n                                      Py_hash_t hash, PyObject **result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2419,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2421,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2423,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - op
    - key
    - hash
    - result
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2422
        line_start: 2422
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2438
      start: 2414
    functionDepth: 6
    functionLinenumber: 2414
    functionLinenumberEnd: 2438
    functionName: _PyDict_GetItemRef_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - _Py_dict_lookup
    - assert
    - _Py_dict_lookup_threadsafe
    linkageType: ''
    returnType: int
    signature: int _PyDict_GetItemRef_KnownHash(PyDictObject *op, PyObject *key, Py_hash_t
      hash, PyObject **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2443,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2444,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2449,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2451,1
    - Dst: _PyDict_GetItemRef_KnownHash
      Src: /src/cpython/Objects/dictobject.c:2456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2440
    functionDepth: 7
    functionLinenumber: 2440
    functionLinenumberEnd: 2457
    functionName: PyDict_GetItemRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 20
    functionsReached:
    - _PyDict_GetItemRef_KnownHash
    - PyErr_BadInternalCall
    - dict_unhashable_type
    - _PyObject_HashFast
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int PyDict_GetItemRef(PyObject *op, PyObject *key, PyObject **result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:2462,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2463,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2463,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2465,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2467,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2473,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2474,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 2462
        line_start: 2462
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2473
        line_start: 2473
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2485
      start: 2459
    functionDepth: 5
    functionLinenumber: 2459
    functionLinenumberEnd: 2485
    functionName: _PyDict_GetItemRef_Unicode_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_dict_lookup
    - PyUnicode_CheckExact
    - ASSERT_DICT_LOCKED
    - Py_NewRef
    - dict_unhashable_type
    - _PyObject_HashFast
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyDict_GetItemRef_Unicode_LockHeld(PyDictObject *op, PyObject
      *key, PyObject **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2499,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2500,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2503,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2505,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2510,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:2511,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2513,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2514
        line_start: 2514
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2517
      start: 2491
    functionDepth: 6
    functionLinenumber: 2491
    functionLinenumberEnd: 2517
    functionName: PyDict_GetItemWithError
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 25
    functionsReached:
    - Py_XDECREF
    - PyErr_BadInternalCall
    - _Py_dict_lookup
    - _Py_dict_lookup_threadsafe
    - dict_unhashable_type
    - _PyObject_HashFast
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItemWithError(PyObject *op, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2522,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2522,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:2523,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:2527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dp
    - kv
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(kv))
      pos:
        line_end: 2521
        line_start: 2521
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2528
      start: 2519
    functionDepth: 7
    functionLinenumber: 2519
    functionLinenumberEnd: 2528
    functionName: _PyDict_GetItemWithError
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CheckExact
    - Py_TYPE
    - _PyDict_GetItem_KnownHash
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItemWithError(PyObject *dp, PyObject *kv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/dictobject.c:2534,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2537,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2538,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:2539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dp
    - key
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts:
    - condition: (hash != -1)
      pos:
        line_end: 2537
        line_start: 2537
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2540
      start: 2530
    functionDepth: 7
    functionLinenumber: 2530
    functionLinenumberEnd: 2540
    functionName: _PyDict_GetItemIdWithError
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyUnicode_FromId
    - _PyDict_GetItem_KnownHash
    - unicode_get_hash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItemIdWithError(PyObject *dp, _Py_Identifier *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:2546,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/dictobject.c:2550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2542
    functionDepth: 7
    functionLinenumber: 2542
    functionLinenumberEnd: 2553
    functionName: _PyDict_GetItemStringWithError
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItemStringWithError(PyObject *v, const char *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2574,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2580,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2587,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - globals
    - builtins
    - key
    argTypes:
    - PyDictObject*
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2587
        line_start: 2587
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2590
      start: 2567
    functionDepth: 6
    functionLinenumber: 2567
    functionLinenumberEnd: 2590
    functionName: _PyDict_LoadGlobal
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HashFast
    - assert
    - _Py_dict_lookup_threadsafe
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_LoadGlobal(PyDictObject *globals, PyDictObject *builtins, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2598,1
    - Dst: _Py_dict_lookup_threadsafe_stackref
      Src: /src/cpython/Objects/dictobject.c:2605,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:2609,1
    - Dst: _Py_dict_lookup_threadsafe_stackref
      Src: /src/cpython/Objects/dictobject.c:2614,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2615,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:2615,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - globals
    - builtins
    - key
    - res
    argTypes:
    - PyDictObject*
    - PyDictObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (ix >= 0 || PyStackRef_IsNull(*res))
      pos:
        line_end: 2614
        line_start: 2614
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2616
      start: 2592
    functionDepth: 7
    functionLinenumber: 2592
    functionLinenumberEnd: 2616
    functionName: _PyDict_LoadGlobalStackRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsNull
    - _PyObject_HashFast
    - _Py_dict_lookup_threadsafe_stackref
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyDict_LoadGlobalStackRef(PyDictObject *globals, PyDictObject
      *builtins, PyObject *key, _PyStackRef *res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2621,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2622,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:2627,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2628,1
    - Dst: _Py_dict_lookup_threadsafe_stackref
      Src: /src/cpython/Objects/dictobject.c:2635,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:2639,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2640,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Objects/dictobject.c:2640,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/dictobject.c:2642,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/dictobject.c:2643,1
    - Dst: _PyModule_GetDict
      Src: /src/cpython/Objects/dictobject.c:2644,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2645,1
    - Dst: _Py_INCREF_BUILTINS
      Src: /src/cpython/Objects/dictobject.c:2647,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Objects/dictobject.c:2648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - globals
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (builtins != NULL)
      pos:
        line_end: 2644
        line_start: 2644
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2650
      start: 2618
    functionDepth: 7
    functionLinenumber: 2618
    functionLinenumberEnd: 2650
    functionName: _PyDict_LoadBuiltinsFromGlobals
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_CLOSE
    - _Py_INCREF_BUILTINS
    - PyErr_BadInternalCall
    - _Py_ID
    - Py_NewRef
    - PyEval_GetBuiltins
    - PyStackRef_AsPyObjectBorrow
    - unicode_get_hash
    - PyModule_Check
    - PyStackRef_IsNull
    - PyDict_Check
    - _PyModule_GetDict
    - _Py_dict_lookup_threadsafe_stackref
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_LoadBuiltinsFromGlobals(PyObject *globals)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:2656,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2658,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2659,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2660,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2660,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2661,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2665,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:2669,1
    - Dst: insert_to_emptydict
      Src: /src/cpython/Objects/dictobject.c:2672,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:2675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - mp
    - key
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(mp))
      pos:
        line_end: 2659
        line_start: 2659
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 2657
        line_start: 2657
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value)
      pos:
        line_end: 2658
        line_start: 2658
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2676
      start: 2653
    functionDepth: 6
    functionLinenumber: 2653
    functionLinenumberEnd: 2676
    functionName: setitem_take2_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - ASSERT_DICT_LOCKED
    - _PyInterpreterState_GET
    - insert_to_emptydict
    - insertdict
    - dict_unhashable_type
    - _PyObject_HashFast
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int setitem_take2_lock_held(PyDictObject *mp, PyObject *key, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2682,1
    - Dst: setitem_take2_lock_held
      Src: /src/cpython/Objects/dictobject.c:2683,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mp
    - key
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2678
    functionDepth: 7
    functionLinenumber: 2678
    functionLinenumberEnd: 2686
    functionName: _PyDict_SetItem_Take2
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - setitem_take2_lock_held
    linkageType: ''
    returnType: int
    signature: int _PyDict_SetItem_Take2(PyDictObject *mp, PyObject *key, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2697,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2698,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2701,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2702,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Objects/dictobject.c:2703,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2704,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - op
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value)
      pos:
        line_end: 2701
        line_start: 2701
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 2700
        line_start: 2700
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2705
      start: 2694
    functionDepth: 8
    functionLinenumber: 2694
    functionLinenumberEnd: 2705
    functionName: PyDict_SetItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 47
    functionsReached:
    - PyErr_BadInternalCall
    - _PyDict_SetItem_Take2
    - Py_NewRef
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int PyDict_SetItem(PyObject *op, PyObject *key, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2710,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2711,1
    - Dst: setitem_take2_lock_held
      Src: /src/cpython/Objects/dictobject.c:2712,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2713,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mp
    - key
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2709
        line_start: 2709
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value)
      pos:
        line_end: 2710
        line_start: 2710
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2714
      start: 2707
    functionDepth: 7
    functionLinenumber: 2707
    functionLinenumberEnd: 2714
    functionName: setitem_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - assert
    - setitem_take2_lock_held
    linkageType: ''
    returnType: int
    signature: int setitem_lock_held(PyDictObject *mp, PyObject *key, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:2721,1
    - Dst: insert_to_emptydict
      Src: /src/cpython/Objects/dictobject.c:2723,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2723,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2723,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:2726,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2726,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mp
    - key
    - value
    - hash
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2717
    functionDepth: 6
    functionLinenumber: 2717
    functionLinenumberEnd: 2727
    functionName: _PyDict_SetItem_KnownHash_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - insert_to_emptydict
    - _PyInterpreterState_GET
    - insertdict
    linkageType: ''
    returnType: int
    signature: "int _PyDict_SetItem_KnownHash_LockHeld(PyDictObject *mp, PyObject
      *key, PyObject *value,\n                                   Py_hash_t hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2733,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2734,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2737,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2738,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2739,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2742,1
    - Dst: _PyDict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/dictobject.c:2743,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - op
    - key
    - value
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2736
        line_start: 2736
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 2738
        line_start: 2738
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value)
      pos:
        line_end: 2737
        line_start: 2737
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2746
      start: 2729
    functionDepth: 7
    functionLinenumber: 2729
    functionLinenumberEnd: 2746
    functionName: _PyDict_SetItem_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_SetItem_KnownHash_LockHeld
    - Py_END_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyDict_SetItem_KnownHash(PyObject *op, PyObject *key, PyObject
      *value,\n                          Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_insertion_order_array
      Src: /src/cpython/Objects/dictobject.c:2751,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2753,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2756,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - values
    - ix
    argTypes:
    - PyDictValues*
    - Py_ssize_t
    assertStmts:
    - condition: (i < size)
      pos:
        line_end: 2755
        line_start: 2755
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i < size)
      pos:
        line_end: 2757
        line_start: 2757
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (size <= values->capacity)
      pos:
        line_end: 2752
        line_start: 2752
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2764
      start: 2748
    functionDepth: 1
    functionLinenumber: 2748
    functionLinenumberEnd: 2764
    functionName: delete_index_from_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - get_insertion_order_array
    - assert
    linkageType: ''
    returnType: void
    signature: void delete_index_from_values(PyDictValues *values, Py_ssize_t ix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:2772,1
    - Dst: lookdict_index
      Src: /src/cpython/Objects/dictobject.c:2774,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2775,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:2777,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:2778,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2779,1
    - Dst: STORE_SPLIT_VALUE
      Src: /src/cpython/Objects/dictobject.c:2780,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2781,1
    - Dst: delete_index_from_values
      Src: /src/cpython/Objects/dictobject.c:2783,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2784,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:2787,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:2788,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:2789,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2790,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:2792,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:2793,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2796,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:2798,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:2799,1
    - Dst: STORE_HASH
      Src: /src/cpython/Objects/dictobject.c:2800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2804,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - mp
    - hash
    - ix
    - old_value
    argTypes:
    - PyDictObject*
    - Py_hash_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (hashpos >= 0)
      pos:
        line_end: 2774
        line_start: 2774
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (old_value == mp->ma_values->values[ix])
      pos:
        line_end: 2778
        line_start: 2778
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix < SHARED_KEYS_MAX_SIZE)
      pos:
        line_end: 2780
        line_start: 2780
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2807
      start: 2766
    functionDepth: 3
    functionLinenumber: 2766
    functionLinenumberEnd: 2807
    functionName: delitem_common
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - STORE_HASH
    - Py_DECREF
    - DK_ENTRIES
    - ASSERT_DICT_LOCKED
    - STORE_USED
    - ASSERT_CONSISTENT
    - STORE_SPLIT_VALUE
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - delete_index_from_values
    - STORE_VALUE
    - dictkeys_set_index
    - lookdict_index
    - DK_IS_UNICODE
    - STORE_KEY
    - _PyDict_HasSplitTable
    - assert
    linkageType: ''
    returnType: void
    signature: "void delitem_common(PyDictObject *mp, Py_hash_t hash, Py_ssize_t ix,\n
      \              PyObject *old_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2812,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2813,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2815,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:2819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2811
        line_start: 2811
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2820
      start: 2809
    functionDepth: 2
    functionLinenumber: 2809
    functionLinenumberEnd: 2820
    functionName: PyDict_DelItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 11
    functionsReached:
    - dict_unhashable_type
    - _PyObject_HashFast
    - _PyDict_DelItem_KnownHash
    - assert
    linkageType: ''
    returnType: int
    signature: int PyDict_DelItem(PyObject *op, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2829,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2830,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:2834,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2836,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2837,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2839,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:2843,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:2847,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:2848,1
    - Dst: delitem_common
      Src: /src/cpython/Objects/dictobject.c:2849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2835
        line_start: 2835
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2851
      start: 2822
    functionDepth: 5
    functionLinenumber: 2822
    functionLinenumberEnd: 2851
    functionName: delitem_knownhash_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_dict_lookup
    - PyErr_BadInternalCall
    - ASSERT_DICT_LOCKED
    - delitem_common
    - _PyInterpreterState_GET
    - _PyErr_SetKeyError
    - PyDict_Check
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: int
    signature: int delitem_knownhash_lock_held(PyObject *op, PyObject *key, Py_hash_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2857,1
    - Dst: delitem_knownhash_lock_held
      Src: /src/cpython/Objects/dictobject.c:2858,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2853
    functionDepth: 6
    functionLinenumber: 2853
    functionLinenumberEnd: 2861
    functionName: _PyDict_DelItem_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - delitem_knownhash_lock_held
    linkageType: ''
    returnType: int
    signature: int _PyDict_DelItem_KnownHash(PyObject *op, PyObject *key, Py_hash_t
      hash)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:2874,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2876,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/dictobject.c:2877,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2881,1
    - Dst: predicate
      Src: /src/cpython/Objects/dictobject.c:2889,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:2894,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:2895,1
    - Dst: delitem_common
      Src: /src/cpython/Objects/dictobject.c:2896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - op
    - key
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2875
        line_start: 2875
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2901
      start: 2863
    functionDepth: 5
    functionLinenumber: 2863
    functionLinenumberEnd: 2901
    functionName: delitemif_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_dict_lookup
    - ASSERT_DICT_LOCKED
    - _PyInterpreterState_GET
    - predicate
    - PyObject_Hash
    - delitem_common
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: int
    signature: "int delitemif_lock_held(PyObject *op, PyObject *key,\n                    int
      (*predicate)(PyObject *value, void *arg),\n                    void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2912,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2912,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2914,1
    - Dst: delitemif_lock_held
      Src: /src/cpython/Objects/dictobject.c:2915,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - key
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyDict_Check(op))
      pos:
        line_end: 2911
        line_start: 2911
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2918
      start: 2907
    functionDepth: 6
    functionLinenumber: 2907
    functionLinenumberEnd: 2918
    functionName: _PyDict_DelItemIf
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - delitemif_lock_held
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyDict_DelItemIf(PyObject *op, PyObject *key,\n                  int
      (*predicate)(PyObject *value, void *arg),\n                  void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:2928,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2930,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:2939,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:2940,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/dictobject.c:2942,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:2943,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:2945,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2946,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:2947,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2947,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:2952,1
    - Dst: set_values
      Src: /src/cpython/Objects/dictobject.c:2958,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:2959,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:2960,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2960,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:2961,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2964,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (oldkeys->dk_refcnt == 1)
      pos:
        line_end: 2945
        line_start: 2945
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2965
      start: 2920
    functionDepth: 8
    functionLinenumber: 2920
    functionLinenumberEnd: 2965
    functionName: clear_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - ensure_shared_on_resize
    - set_values
    - ASSERT_DICT_LOCKED
    - _PyInterpreterState_GET
    - STORE_USED
    - IS_DICT_SHARED
    - ASSERT_CONSISTENT
    - set_keys
    - free_values
    - dictkeys_decref
    - PyDict_Check
    - Py_CLEAR
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_lock_held(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_lock_held
      Src: /src/cpython/Objects/dictobject.c:2969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2967
    functionDepth: 9
    functionLinenumber: 2967
    functionLinenumberEnd: 2970
    functionName: _PyDict_Clear_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - clear_lock_held
    linkageType: ''
    returnType: void
    signature: void _PyDict_Clear_LockHeld(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2975,1
    - Dst: clear_lock_held
      Src: /src/cpython/Objects/dictobject.c:2976,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2972
    functionDepth: 9
    functionLinenumber: 2972
    functionLinenumberEnd: 2978
    functionName: PyDict_Clear
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 4
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - clear_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: void
    signature: void PyDict_Clear(PyObject *op)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2994,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:2999,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3000,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:3003,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:3005,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:3005,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:3006,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3007,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:3013,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:3014,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:3022,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:3026,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 5
    argNames:
    - op
    - ppos
    - pkey
    - pvalue
    - phash
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyObject**
    - PyObject**
    - Py_hash_t*
    assertStmts:
    - condition: (mp->ma_used <= SHARED_KEYS_MAX_SIZE)
      pos:
        line_end: 2999
        line_start: 2999
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 3006
        line_start: 3006
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3046
      start: 2985
    functionDepth: 2
    functionLinenumber: 2985
    functionLinenumberEnd: 3046
    functionName: _PyDict_Next
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - DK_UNICODE_ENTRIES
    - DK_ENTRIES
    - get_index_from_order
    - LOAD_SHARED_KEY
    - unicode_get_hash
    - DK_IS_UNICODE
    - PyDict_Check
    - _PyDict_HasSplitTable
    - assert
    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/cpython/Objects/dictobject.c:3069,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: 3070
      start: 3066
    functionDepth: 3
    functionLinenumber: 3066
    functionLinenumberEnd: 3070
    functionName: PyDict_Next
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 22
    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/cpython/Objects/dictobject.c:3078,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3078,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3080,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:3090,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3105,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:3106,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:3107,1
    - Dst: delitem_common
      Src: /src/cpython/Objects/dictobject.c:3108,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3108,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:3110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - result
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (PyDict_Check(mp))
      pos:
        line_end: 3077
        line_start: 3077
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (old_value != NULL)
      pos:
        line_end: 3104
        line_start: 3104
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3118
      start: 3074
    functionDepth: 5
    functionLinenumber: 3074
    functionLinenumberEnd: 3118
    functionName: _PyDict_Pop_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _Py_dict_lookup
    - delitem_common
    - ASSERT_DICT_LOCKED
    - _PyInterpreterState_GET
    - ASSERT_CONSISTENT
    - Py_NewRef
    - PyDict_Check
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyDict_Pop_KnownHash(PyDictObject *mp, PyObject *key, Py_hash_t
      hash,\n                      PyObject **result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3123,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3125,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3129,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:3141,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:3143,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/cpython/Objects/dictobject.c:3149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3150
      start: 3120
    functionDepth: 6
    functionLinenumber: 3120
    functionLinenumberEnd: 3150
    functionName: pop_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - ASSERT_DICT_LOCKED
    - _PyDict_Pop_KnownHash
    - dict_unhashable_type
    - _PyObject_HashFast
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int pop_lock_held(PyObject *op, PyObject *key, PyObject **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3156,1
    - Dst: pop_lock_held
      Src: /src/cpython/Objects/dictobject.c:3157,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3152
    functionDepth: 7
    functionLinenumber: 3152
    functionLinenumberEnd: 3161
    functionName: PyDict_Pop
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - pop_lock_held
    linkageType: ''
    returnType: int
    signature: int PyDict_Pop(PyObject *op, PyObject *key, PyObject **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:3167,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/dictobject.c:3175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3164
    functionDepth: 8
    functionLinenumber: 3164
    functionLinenumberEnd: 3178
    functionName: PyDict_PopString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyDict_Pop
    linkageType: ''
    returnType: int
    signature: int PyDict_PopString(PyObject *op, const char *key, PyObject **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/dictobject.c:3185,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3187,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:3189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dict
    - key
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3181
    functionDepth: 8
    functionLinenumber: 3181
    functionLinenumberEnd: 3193
    functionName: dict_pop_default
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyErr_SetKeyError
    - PyDict_Pop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_pop_default(PyObject *dict, PyObject *key, PyObject *default_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_pop_default
      Src: /src/cpython/Objects/dictobject.c:3198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dict
    - key
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3195
    functionDepth: 9
    functionLinenumber: 3195
    functionLinenumberEnd: 3199
    functionName: _PyDict_Pop
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_pop_default
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_Pop(PyObject *dict, PyObject *key, PyObject *default_value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:3209,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/dictobject.c:3210,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:3211,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:3211,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:3212,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:3213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3214,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3218,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:3219,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3220,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - interp
    - mp
    - iterable
    - value
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3201
    functionDepth: 9
    functionLinenumber: 3201
    functionLinenumberEnd: 3226
    functionName: dict_dict_fromkeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyDict_GET_SIZE
    - dictresize
    - Py_DECREF
    - insertdict
    - Py_NewRef
    - DK_IS_UNICODE
    - DK_LOG_SIZE
    - estimate_log2_keysize
    - _PyDict_Next
    linkageType: ''
    returnType: PyDictObject
    signature: "PyDictObject *\ndict_dict_fromkeys(PyInterpreterState *interp, PyDictObject
      *mp,\n                   PyObject *iterable, PyObject *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Objects/dictobject.c:3235,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:3236,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:3236,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:3237,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:3238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3239,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3243,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Objects/dictobject.c:3244,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:3245,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - interp
    - mp
    - iterable
    - value
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3228
    functionDepth: 9
    functionLinenumber: 3228
    functionLinenumberEnd: 3251
    functionName: dict_set_fromkeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - dictresize
    - Py_DECREF
    - PySet_GET_SIZE
    - _PySet_NextEntryRef
    - insertdict
    - Py_NewRef
    - DK_LOG_SIZE
    - estimate_log2_keysize
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyDictObject
    signature: "PyDictObject *\ndict_set_fromkeys(PyInterpreterState *interp, PyDictObject
      *mp,\n                  PyObject *iterable, PyObject *value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:3261,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/dictobject.c:3263,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3268,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3269,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3272,1
    - Dst: dict_dict_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3273,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3274,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3277,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3280,1
    - Dst: dict_set_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3281,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3282,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:3287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3289,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3293,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3294,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:3295,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:3296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3297,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3299,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3299,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3304,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:3306,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/dictobject.c:3307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3321,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 3
    argNames:
    - cls
    - iterable
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3298
        line_start: 3298
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3323
      start: 3254
    functionDepth: 10
    functionLinenumber: 3254
    functionLinenumberEnd: 3323
    functionName: _PyDict_FromKeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyObject_CallNoArgs
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyDict_CheckExact
    - Py_BEGIN_CRITICAL_SECTION2
    - dict_set_fromkeys
    - PyObject_GetIter
    - setitem_lock_held
    - PyErr_Occurred
    - _PyInterpreterState_GET
    - PyIter_Next
    - PyObject_SetItem
    - PyAnySet_CheckExact
    - Py_END_CRITICAL_SECTION2
    - assert
    - dict_dict_fromkeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_FromKeys(PyObject *cls, PyObject *iterable, PyObject *value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:3331,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/dictobject.c:3332,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:3333,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/dictobject.c:3334,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/dictobject.c:3342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3346,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:3348,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:3350,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3353,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:3354,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:3356,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/dictobject.c:3357,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:3357,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:3360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (keys->dk_refcnt == 1 || keys == Py_EMPTY_KEYS)
      pos:
        line_end: 3352
        line_start: 3352
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3362
      start: 3327
    functionDepth: 8
    functionLinenumber: 3327
    functionLinenumberEnd: 3362
    functionName: dict_dealloc
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - dictkeys_decref
    - _PyInterpreterState_GET
    - Py_IS_TYPE
    - free_values
    - _PyObject_ResurrectStart
    - _PyObject_ResurrectEnd
    - Py_TYPE
    - _PyDict_NotifyEvent
    - assert
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void dict_dealloc(PyObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3370,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/dictobject.c:3372,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:3374,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:3378,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:3379,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/dictobject.c:3384,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3389,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3397,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3399,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3400,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3404,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3407,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/dictobject.c:3414,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3419,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3422,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/dictobject.c:3427,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:3431,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:3432,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3435,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:3439,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/dictobject.c:3441,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:3444,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/dictobject.c:3445,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3446,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3447,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3365
    functionDepth: 3
    functionLinenumber: 3365
    functionLinenumberEnd: 3449
    functionName: dict_repr_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_ReprLeave
    - Py_ReprEnter
    - PyUnicodeWriter_Finish
    - ASSERT_DICT_LOCKED
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_WriteChar
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteRepr
    - Py_CLEAR
    - PyUnicode_FromString
    - _PyDict_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_repr_lock_held(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3455,1
    - Dst: dict_repr_lock_held
      Src: /src/cpython/Objects/dictobject.c:3456,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3459
      start: 3451
    functionDepth: 4
    functionLinenumber: 3451
    functionLinenumberEnd: 3459
    functionName: dict_repr
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - dict_repr_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:3464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3461
    functionDepth: 1
    functionLinenumber: 3461
    functionLinenumberEnd: 3465
    functionName: dict_length
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dict_length(PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:3475,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:3477,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:3480,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3484,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/dictobject.c:3487,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:3488,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/dictobject.c:3490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3491,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3494,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:3497,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3467
    functionDepth: 6
    functionLinenumber: 3467
    functionLinenumberEnd: 3501
    functionName: dict_subscript
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_CheckExact
    - PyErr_Occurred
    - _Py_ID
    - _PyObject_LookupSpecial
    - _Py_dict_lookup_threadsafe
    - PyObject_CallOneArg
    - _PyErr_SetKeyError
    - dict_unhashable_type
    - _PyObject_HashFast
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_subscript(PyObject *self, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/dictobject.c:3507,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:3509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mp
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3503
    functionDepth: 9
    functionLinenumber: 3503
    functionLinenumberEnd: 3510
    functionName: dict_ass_sub
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyDict_DelItem
    linkageType: ''
    returnType: int
    signature: int dict_ass_sub(PyObject *mp, PyObject *v, PyObject *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3521,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3523,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3524,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/dictobject.c:3533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3540,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3547,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3548,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3549,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3549,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3552,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (j < n)
      pos:
        line_end: 3547
        line_start: 3547
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j == n)
      pos:
        line_end: 3551
        line_start: 3551
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3554
      start: 3518
    functionDepth: 3
    functionLinenumber: 3518
    functionLinenumberEnd: 3554
    functionName: keys_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyErr_BadInternalCall
    - ASSERT_DICT_LOCKED
    - PyList_SET_ITEM
    - Py_NewRef
    - PyDict_Check
    - assert
    - _PyDict_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keys_lock_held(PyObject *dict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3560,1
    - Dst: keys_lock_held
      Src: /src/cpython/Objects/dictobject.c:3561,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3565
      start: 3556
    functionDepth: 4
    functionLinenumber: 3556
    functionLinenumberEnd: 3565
    functionName: PyDict_Keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - keys_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Keys(PyObject *dict)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3570,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3572,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3573,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/dictobject.c:3582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3589,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3596,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3597,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3598,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3598,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (j < n)
      pos:
        line_end: 3596
        line_start: 3596
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j == n)
      pos:
        line_end: 3600
        line_start: 3600
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3603
      start: 3567
    functionDepth: 3
    functionLinenumber: 3567
    functionLinenumberEnd: 3603
    functionName: values_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyErr_BadInternalCall
    - ASSERT_DICT_LOCKED
    - PyList_SET_ITEM
    - Py_NewRef
    - PyDict_Check
    - assert
    - _PyDict_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      values_lock_held(PyObject *dict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3609,1
    - Dst: values_lock_held
      Src: /src/cpython/Objects/dictobject.c:3610,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3613
      start: 3605
    functionDepth: 4
    functionLinenumber: 3605
    functionLinenumberEnd: 3613
    functionName: PyDict_Values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - values_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Values(PyObject *dict)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3618,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3620,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3621,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/dictobject.c:3635,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/dictobject.c:3639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3641,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3650,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3657,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3658,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3659,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3660,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3660,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3661,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3661,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (j < n)
      pos:
        line_end: 3657
        line_start: 3657
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j == n)
      pos:
        line_end: 3663
        line_start: 3663
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3666
      start: 3615
    functionDepth: 3
    functionLinenumber: 3615
    functionLinenumberEnd: 3666
    functionName: items_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyTuple_New
    - Py_DECREF
    - PyList_GET_ITEM
    - PyErr_BadInternalCall
    - PyTuple_SET_ITEM
    - ASSERT_DICT_LOCKED
    - PyList_SET_ITEM
    - Py_NewRef
    - PyDict_Check
    - assert
    - _PyDict_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      items_lock_held(PyObject *dict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3672,1
    - Dst: items_lock_held
      Src: /src/cpython/Objects/dictobject.c:3673,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3668
    functionDepth: 4
    functionLinenumber: 3668
    functionLinenumberEnd: 3677
    functionName: PyDict_Items
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - items_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Items(PyObject *dict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_FromKeys
      Src: /src/cpython/Objects/dictobject.c:3693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - iterable
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3689
    functionDepth: 11
    functionLinenumber: 3689
    functionLinenumberEnd: 3694
    functionName: dict_fromkeys_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_FromKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_fromkeys_impl(PyTypeObject *type, PyObject *iterable, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3700,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Objects/dictobject.c:3701,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/dictobject.c:3703,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:3703,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Objects/dictobject.c:3708,1
    - Dst: PyDict_MergeFromSeq2
      Src: /src/cpython/Objects/dictobject.c:3710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3711
      start: 3697
    functionDepth: 3
    functionLinenumber: 3697
    functionLinenumberEnd: 3711
    functionName: dict_update_arg
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrWithError
    - PyDict_CheckExact
    - _Py_ID
    - PyDict_Merge
    - PyDict_MergeFromSeq2
    linkageType: ''
    returnType: int
    signature: int dict_update_arg(PyObject *self, PyObject *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/dictobject.c:3720,1
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:3724,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/cpython/Objects/dictobject.c:3728,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Objects/dictobject.c:3729,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - self
    - args
    - kwds
    - methname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3713
    functionDepth: 4
    functionLinenumber: 3713
    functionLinenumberEnd: 3734
    functionName: dict_update_common
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Merge
    - PyArg_UnpackTuple
    - PyArg_ValidateKeywordArguments
    - dict_update_arg
    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/cpython/Objects/dictobject.c:3742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3745
      start: 3739
    functionDepth: 5
    functionLinenumber: 3739
    functionLinenumberEnd: 3745
    functionName: dict_update
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_update_common
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_update(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3765,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3766,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3766,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3767,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:3769,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:3778,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3780,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/dictobject.c:3786,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/dictobject.c:3788,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Objects/dictobject.c:3789,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:3796,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:3798,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3806,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3807,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3808,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3809,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:3811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3813,1
    - Dst: dict_setdefault_ref_lock_held
      Src: /src/cpython/Objects/dictobject.c:3818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3828,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:3832,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3835,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3839,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/dictobject.c:3840,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 3
    argNames:
    - d
    - seq2
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (d != NULL)
      pos:
        line_end: 3764
        line_start: 3764
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (seq2 != NULL)
      pos:
        line_end: 3766
        line_start: 3766
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyDict_Check(d))
      pos:
        line_end: 3765
        line_start: 3765
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3841
      start: 3757
    functionDepth: 8
    functionLinenumber: 3757
    functionLinenumberEnd: 3841
    functionName: merge_from_seq2_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - setitem_lock_held
    - ASSERT_CONSISTENT
    - PyIter_Next
    - PySequence_Fast
    - PyErr_ExceptionMatches
    - dict_setdefault_ref_lock_held
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - Py_SAFE_DOWNCAST
    - PyDict_Check
    - _PyErr_FormatNote
    - assert
    linkageType: ''
    returnType: int
    signature: int merge_from_seq2_lock_held(PyObject *d, PyObject *seq2, int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3847,1
    - Dst: merge_from_seq2_lock_held
      Src: /src/cpython/Objects/dictobject.c:3848,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - d
    - seq2
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3852
      start: 3843
    functionDepth: 9
    functionLinenumber: 3843
    functionLinenumberEnd: 3852
    functionName: PyDict_MergeFromSeq2
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - merge_from_seq2_lock_held
    linkageType: ''
    returnType: int
    signature: int PyDict_MergeFromSeq2(PyObject *d, PyObject *seq2, int override)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3857,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3858,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:3875,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:3876,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:3876,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:3878,1
    - Dst: clone_combined_dict_keys
      Src: /src/cpython/Objects/dictobject.c:3879,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/dictobject.c:3883,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:3884,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:3884,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:3885,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:3886,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:3887,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/dictobject.c:3889,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/dictobject.c:3889,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:3891,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:3901,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:3901,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:3902,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:3903,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:3903,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3914,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3916,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3917,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:3919,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3920,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3920,1
    - Dst: _PyDict_Contains_KnownHash
      Src: /src/cpython/Objects/dictobject.c:3923,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:3925,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3926,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3926,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:3930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3939,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:3944,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 4
    argNames:
    - interp
    - mp
    - other
    - override
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    - PyDictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3950
      start: 3854
    functionDepth: 9
    functionLinenumber: 3854
    functionLinenumberEnd: 3950
    functionName: dict_dict_merge
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_SetString
    - _PyDict_Contains_KnownHash
    - _PyObject_GC_IS_TRACKED
    - Py_INCREF
    - DK_SIZE
    - ASSERT_DICT_LOCKED
    - ASSERT_CONSISTENT
    - Py_DECREF
    - ensure_shared_on_resize
    - STORE_USED
    - _PyDict_NotifyEvent
    - insertdict
    - Py_NewRef
    - set_keys
    - _PyErr_SetKeyError
    - dictkeys_decref
    - DK_LOG_SIZE
    - dictresize
    - clone_combined_dict_keys
    - IS_DICT_SHARED
    - USABLE_FRACTION
    - DK_IS_UNICODE
    - estimate_log2_keysize
    - _PyDict_Next
    linkageType: ''
    returnType: int
    signature: int dict_dict_merge(PyInterpreterState *interp, PyDictObject *mp, PyDictObject
      *other, int override)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3957,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3964,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3965,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3970,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:3970,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3973,1
    - Dst: dict_dict_merge
      Src: /src/cpython/Objects/dictobject.c:3974,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:3975,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3976,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3981,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Objects/dictobject.c:3982,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:3997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3998,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:4004,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:4004,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/dictobject.c:4006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4010,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:4013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4016,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/dictobject.c:4021,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4024,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:4028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4038,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:4039,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4046,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4047,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 4
    argNames:
    - interp
    - a
    - b
    - override
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (0 <= override && override <= 2)
      pos:
        line_end: 3956
        line_start: 3956
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4050
      start: 3952
    functionDepth: 10
    functionLinenumber: 3952
    functionLinenumberEnd: 4050
    functionName: dict_merge
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - PyObject_GetIter
    - PyDict_Contains
    - PyIter_Next
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - setitem_lock_held
    - PyMapping_Keys
    - ASSERT_CONSISTENT
    - PyObject_GetItem
    - Py_END_CRITICAL_SECTION2
    - PyDict_Check
    - Py_DECREF
    - dict_dict_merge
    - _PyErr_SetKeyError
    - Py_TYPE
    - PyErr_BadInternalCall
    - assert
    linkageType: ''
    returnType: int
    signature: int dict_merge(PyInterpreterState *interp, PyObject *a, PyObject *b,
      int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:4055,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:4056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4057
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4057
    functionName: PyDict_Update
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 8
    functionsReached:
    - dict_merge
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyDict_Update(PyObject *a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:4062,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:4064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 4059
    functionDepth: 1
    functionLinenumber: 4059
    functionLinenumberEnd: 4065
    functionName: PyDict_Merge
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - dict_merge
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyDict_Merge(PyObject *a, PyObject *b, int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:4070,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:4071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 4067
    functionDepth: 1
    functionLinenumber: 4067
    functionLinenumberEnd: 4072
    functionName: _PyDict_MergeEx
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_merge
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int _PyDict_MergeEx(PyObject *a, PyObject *b, int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/dictobject.c:4084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4080
    functionDepth: 1
    functionLinenumber: 4080
    functionLinenumberEnd: 4085
    functionName: dict_copy_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_copy_impl(PyDictObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_values
      Src: /src/cpython/Objects/dictobject.c:4093,1
    - Dst: get_insertion_order_array
      Src: /src/cpython/Objects/dictobject.c:4098,1
    - Dst: get_insertion_order_array
      Src: /src/cpython/Objects/dictobject.c:4099,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:4100,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - values
    argTypes:
    - PyDictValues*
    assertStmts:
    - condition: (newvalues->embedded == 0)
      pos:
        line_end: 4103
        line_start: 4103
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4106
      start: 4090
    functionDepth: 3
    functionLinenumber: 4090
    functionLinenumberEnd: 4106
    functionName: copy_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_insertion_order_array
    - new_values
    - assert
    linkageType: ''
    returnType: PyDictValues
    signature: 'PyDictValues *

      copy_values(PyDictValues *values)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:4113,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4115,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:4120,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4123,1
    - Dst: copy_values
      Src: /src/cpython/Objects/dictobject.c:4125,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:4127,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:4129,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:4131,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/dictobject.c:4135,1
    - Dst: dictkeys_incref
      Src: /src/cpython/Objects/dictobject.c:4141,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:4142,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:4146,1
    - Dst: clone_combined_dict_keys
      Src: /src/cpython/Objects/dictobject.c:4164,1
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:4168,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:4180,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:4183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4187
      start: 4108
    functionDepth: 10
    functionLinenumber: 4108
    functionLinenumberEnd: 4187
    functionName: copy_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_TRACK
    - ASSERT_DICT_LOCKED
    - clone_combined_dict_keys
    - _PyInterpreterState_GET
    - new_dict
    - dictkeys_incref
    - dict_merge
    - Py_TYPE
    - PyDict_New
    - free_values
    - Py_XINCREF
    - copy_values
    - PyObject_GC_New
    - _PyDict_HasSplitTable
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      copy_lock_held(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4192,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4193,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4198,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:4200,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4204
      start: 4189
    functionDepth: 11
    functionLinenumber: 4189
    functionLinenumberEnd: 4204
    functionName: PyDict_Copy
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 13
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyDict_Check
    - copy_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Copy(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4209,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4210,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:4213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4214
      start: 4206
    functionDepth: 1
    functionLinenumber: 4206
    functionLinenumberEnd: 4214
    functionName: PyDict_Size
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - PyErr_BadInternalCall
    - PyDict_Check
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyDict_Size(PyObject *mp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4225,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4226,1
    - Dst: LOAD_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:4232,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4235,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4236,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:4241,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4242,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4248,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4258,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4260,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:4262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4265,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:4266,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4270,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:4271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4274,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyDictObject*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4280
      start: 4220
    functionDepth: 5
    functionLinenumber: 4220
    functionLinenumberEnd: 4280
    functionName: dict_equal_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - DK_UNICODE_ENTRIES
    - Py_DECREF
    - DK_ENTRIES
    - PyErr_Occurred
    - _Py_dict_lookup
    - ASSERT_DICT_LOCKED
    - PyObject_RichCompareBool
    - DK_IS_UNICODE
    - unicode_get_hash
    - LOAD_KEYS_NENTRIES
    - _PyDict_HasSplitTable
    linkageType: ''
    returnType: int
    signature: int dict_equal_lock_held(PyDictObject *a, PyDictObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:4286,1
    - Dst: dict_equal_lock_held
      Src: /src/cpython/Objects/dictobject.c:4287,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:4288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyDictObject*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4291
      start: 4282
    functionDepth: 6
    functionLinenumber: 4282
    functionLinenumberEnd: 4291
    functionName: dict_equal
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - dict_equal_lock_held
    linkageType: ''
    returnType: int
    signature: int dict_equal(PyDictObject *a, PyDictObject *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4299,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4299,1
    - Dst: dict_equal
      Src: /src/cpython/Objects/dictobject.c:4303,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4293
    functionDepth: 7
    functionLinenumber: 4293
    functionLinenumberEnd: 4311
    functionName: dict_richcompare
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyDict_Check
    - dict_equal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/dictobject.c:4328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4324
    functionDepth: 1
    functionLinenumber: 4324
    functionLinenumberEnd: 4336
    functionName: dict___contains___impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Contains
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___contains___impl(PyDictObject *self, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:4356,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:4358,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:4361,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4348
    functionDepth: 6
    functionLinenumber: 4348
    functionLinenumberEnd: 4368
    functionName: dict_get_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_NewRef
    - _PyObject_HashFast
    - dict_unhashable_type
    - _Py_dict_lookup_threadsafe
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_get_impl(PyDictObject *self, PyObject *key, PyObject *default_value)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:4377,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4379,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4381,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4382,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:4389,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:4391,1
    - Dst: insert_to_emptydict
      Src: /src/cpython/Objects/dictobject.c:4399,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4399,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4400,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4407,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:4412,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4412,1
    - Dst: insertion_resize
      Src: /src/cpython/Objects/dictobject.c:4413,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4421,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:4422,1
    - Dst: insert_split_value
      Src: /src/cpython/Objects/dictobject.c:4427,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4431,1
    - Dst: insertion_resize
      Src: /src/cpython/Objects/dictobject.c:4437,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4442,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4442,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:4444,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4453,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4453,1
    - Dst: insert_combined_dict
      Src: /src/cpython/Objects/dictobject.c:4456,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4456,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4458,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:4465,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4466,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4467,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4469,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4474,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4475,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4477,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 91
    argCount: 5
    argNames:
    - d
    - key
    - default_value
    - result
    - incref_result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - int
    assertStmts:
    - condition: (!_PyDict_HasSplitTable(mp))
      pos:
        line_end: 4452
        line_start: 4452
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_keys->dk_usable >= 0)
      pos:
        line_end: 4465
        line_start: 4465
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 4473
        line_start: 4473
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (!_PyDict_HasSplitTable(mp))
      pos:
        line_end: 4441
        line_start: 4441
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4486
      start: 4370
    functionDepth: 5
    functionLinenumber: 4370
    functionLinenumberEnd: 4486
    functionName: dict_setdefault_ref_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - insert_split_key
    - ASSERT_DICT_LOCKED
    - insert_to_emptydict
    - ASSERT_CONSISTENT
    - PyDict_Check
    - _PyDict_HasSplitTable
    - insertion_resize
    - Py_DECREF
    - _Py_dict_lookup
    - PyUnicode_CheckExact
    - STORE_USED
    - Py_NewRef
    - dict_unhashable_type
    - insert_split_value
    - PyErr_BadInternalCall
    - _PyInterpreterState_GET
    - insert_combined_dict
    - DK_IS_UNICODE
    - _PyObject_HashFast
    - assert
    linkageType: ''
    returnType: int
    signature: "int dict_setdefault_ref_lock_held(PyObject *d, PyObject *key, PyObject
      *default_value,\n                    PyObject **result, int incref_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4493,1
    - Dst: dict_setdefault_ref_lock_held
      Src: /src/cpython/Objects/dictobject.c:4494,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - d
    - key
    - default_value
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4497
      start: 4488
    functionDepth: 6
    functionLinenumber: 4488
    functionLinenumberEnd: 4497
    functionName: PyDict_SetDefaultRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - dict_setdefault_ref_lock_held
    linkageType: ''
    returnType: int
    signature: "int PyDict_SetDefaultRef(PyObject *d, PyObject *key, PyObject *default_value,\n
      \                    PyObject **result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4503,1
    - Dst: dict_setdefault_ref_lock_held
      Src: /src/cpython/Objects/dictobject.c:4504,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - d
    - key
    - defaultobj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4507
      start: 4499
    functionDepth: 6
    functionLinenumber: 4499
    functionLinenumberEnd: 4507
    functionName: PyDict_SetDefault
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - dict_setdefault_ref_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *defaultobj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_setdefault_ref_lock_held
      Src: /src/cpython/Objects/dictobject.c:4528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4522
    functionDepth: 6
    functionLinenumber: 4522
    functionLinenumberEnd: 4530
    functionName: dict_setdefault_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_setdefault_ref_lock_held
    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/cpython/Objects/dictobject.c:4543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4545
      start: 4539
    functionDepth: 10
    functionLinenumber: 4539
    functionLinenumberEnd: 4545
    functionName: dict_clear_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_clear_impl(PyDictObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_pop_default
      Src: /src/cpython/Objects/dictobject.c:4565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4566
      start: 4561
    functionDepth: 9
    functionLinenumber: 4561
    functionLinenumberEnd: 4566
    functionName: dict_pop_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_pop_default
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_pop_impl(PyDictObject *self, PyObject *key, PyObject *default_value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:4584,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4586,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/dictobject.c:4597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:4602,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4606,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:4607,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:4607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4608,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:4612,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4617,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4618,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4623,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:4626,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:4627,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:4629,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:4630,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4633,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4638,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:4641,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:4644,1
    - Dst: STORE_HASH
      Src: /src/cpython/Objects/dictobject.c:4645,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:4646,1
    - Dst: lookdict_index
      Src: /src/cpython/Objects/dictobject.c:4649,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4650,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4651,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:4651,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:4652,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:4654,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:4655,1
    - Dst: STORE_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:4657,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:4658,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4659,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (i >= 0)
      pos:
        line_end: 4637
        line_start: 4637
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j >= 0)
      pos:
        line_end: 4649
        line_start: 4649
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 4622
        line_start: 4622
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dictkeys_get_index(self->ma_keys, j) == i)
      pos:
        line_end: 4650
        line_start: 4650
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4661
      start: 4578
    functionDepth: 9
    functionLinenumber: 4578
    functionLinenumberEnd: 4661
    functionName: dict_popitem_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - unicode_get_hash
    - dictkeys_get_index
    - DK_UNICODE_ENTRIES
    - PyTuple_New
    - ASSERT_DICT_LOCKED
    - ASSERT_CONSISTENT
    - STORE_KEYS_NENTRIES
    - STORE_KEY
    - _PyDict_HasSplitTable
    - Py_DECREF
    - STORE_USED
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - STORE_VALUE
    - dictkeys_set_index
    - STORE_HASH
    - DK_LOG_SIZE
    - dictresize
    - DK_ENTRIES
    - PyTuple_SET_ITEM
    - _PyInterpreterState_GET
    - lookdict_index
    - DK_IS_UNICODE
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_popitem_impl(PyDictObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4670,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4671,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4674,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4679,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4681,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4686,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4689,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4695
      start: 4663
    functionDepth: 1
    functionLinenumber: 4663
    functionLinenumberEnd: 4695
    functionName: dict_traverse
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - DK_ENTRIES
    - Py_VISIT
    - DK_IS_UNICODE
    - _PyDict_HasSplitTable
    linkageType: ''
    returnType: int
    signature: int dict_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/dictobject.c:4700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4702
      start: 4697
    functionDepth: 10
    functionLinenumber: 4697
    functionLinenumberEnd: 4702
    functionName: dict_tp_clear
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    linkageType: ''
    returnType: int
    signature: int dict_tp_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/dictobject.c:4709,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:4709,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4710,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:4711,1
    - Dst: _PyDict_KeysSize
      Src: /src/cpython/Objects/dictobject.c:4716,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (res <= (size_t)PY_SSIZE_T_MAX)
      pos:
        line_end: 4717
        line_start: 4717
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4720
      start: 4706
    functionDepth: 1
    functionLinenumber: 4706
    functionLinenumberEnd: 4720
    functionName: sizeof_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - assert
    - _PyDict_KeysSize
    - _PyObject_SIZE
    - Py_TYPE
    - shared_keys_usable_size
    - _PyDict_HasSplitTable
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sizeof_lock_held(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4726,1
    - Dst: sizeof_lock_held
      Src: /src/cpython/Objects/dictobject.c:4727,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4731
      start: 4722
    functionDepth: 2
    functionLinenumber: 4722
    functionLinenumberEnd: 4731
    functionName: _PyDict_SizeOf
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - sizeof_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDict_SizeOf(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:4740,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:4740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4742
      start: 4733
    functionDepth: 1
    functionLinenumber: 4733
    functionLinenumberEnd: 4742
    functionName: _PyDict_KeysSize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - DK_SIZE
    - USABLE_FRACTION
    linkageType: ''
    returnType: size_t
    signature: size_t _PyDict_KeysSize(PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/dictobject.c:4754,1
    - Dst: _PyDict_SizeOf
      Src: /src/cpython/Objects/dictobject.c:4754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4750
    functionDepth: 3
    functionLinenumber: 4750
    functionLinenumberEnd: 4755
    functionName: dict___sizeof___impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_SizeOf
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___sizeof___impl(PyDictObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4760,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4760,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/dictobject.c:4763,1
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:4767,1
    - Dst: other::other
      Src: /src/cpython/Objects/dictobject.c:4767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4772
      start: 4757
    functionDepth: 12
    functionLinenumber: 4757
    functionLinenumberEnd: 4772
    functionName: dict_or
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - other::other
    - PyDict_Check
    - PyDict_Copy
    - dict_update_arg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_or(PyObject *self, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:4777,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4781
      start: 4774
    functionDepth: 4
    functionLinenumber: 4774
    functionLinenumberEnd: 4781
    functionName: dict_ior
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - dict_update_arg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_ior(PyObject *self, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:4820,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:4822,1
    - Dst: _PyDict_Contains_KnownHash
      Src: /src/cpython/Objects/dictobject.c:4826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4827
      start: 4817
    functionDepth: 2
    functionLinenumber: 4817
    functionLinenumberEnd: 4827
    functionName: PyDict_Contains
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 13
    functionsReached:
    - _PyObject_HashFast
    - _PyDict_Contains_KnownHash
    - dict_unhashable_type
    linkageType: ''
    returnType: int
    signature: int PyDict_Contains(PyObject *op, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:4832,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/dictobject.c:4836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4839
      start: 4829
    functionDepth: 3
    functionLinenumber: 4829
    functionLinenumberEnd: 4839
    functionName: PyDict_ContainsString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyDict_Contains
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyDict_ContainsString(PyObject *op, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:4850,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:4852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4863
      start: 4842
    functionDepth: 6
    functionLinenumber: 4842
    functionLinenumberEnd: 4863
    functionName: _PyDict_Contains_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - _Py_dict_lookup
    - Py_DECREF
    - _Py_dict_lookup_threadsafe
    linkageType: ''
    returnType: int
    signature: int _PyDict_Contains_KnownHash(PyObject *op, PyObject *key, Py_hash_t
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/dictobject.c:4868,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/dictobject.c:4872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4865
    functionDepth: 3
    functionLinenumber: 4865
    functionLinenumberEnd: 4873
    functionName: _PyDict_ContainsId
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    - PyDict_Contains
    linkageType: ''
    returnType: int
    signature: int _PyDict_ContainsId(PyObject *op, _Py_Identifier *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4897,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4898,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4900,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/dictobject.c:4900,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/dictobject.c:4902,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4911,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4914,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/dictobject.c:4915,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:4916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 4896
        line_start: 4896
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (type->tp_alloc != NULL)
      pos:
        line_end: 4897
        line_start: 4897
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyType_IS_GC(type))
      pos:
        line_end: 4899
        line_start: 4899
        source_file: /src/cpython/Objects/dictobject.c
    - condition: ((Py_EMPTY_KEYS)->dk_refcnt == _Py_DICT_IMMORTAL_INITIAL_REFCNT)
      pos:
        line_end: 4910
        line_start: 4910
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4919
      start: 4894
    functionDepth: 1
    functionLinenumber: 4894
    functionLinenumberEnd: 4919
    functionName: dict_new
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyType_IS_GC
    - _PyObject_GC_TRACK
    - ASSERT_CONSISTENT
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_update_common
      Src: /src/cpython/Objects/dictobject.c:4924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4925
      start: 4921
    functionDepth: 5
    functionLinenumber: 4921
    functionLinenumberEnd: 4925
    functionName: dict_init
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_update_common
    linkageType: ''
    returnType: int
    signature: int dict_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/dictobject.c:4931,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/dictobject.c:4932,1
    - Dst: dict_new
      Src: /src/cpython/Objects/dictobject.c:4936,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/dictobject.c:4936,1
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:4941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4942,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:4948,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:4949,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:4949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4950,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4956
      start: 4927
    functionDepth: 9
    functionLinenumber: 4927
    functionLinenumberEnd: 4956
    functionName: dict_vectorcall
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_new
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyDict_SetItem
    - _PyType_CAST
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - PyVectorcall_NARGS
    - dict_update_arg
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndict_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:4962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4963
      start: 4958
    functionDepth: 1
    functionLinenumber: 4958
    functionLinenumberEnd: 4963
    functionName: dict_iter
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_iter(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:5028,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:5030,1
    - Dst: dict_getitem
      Src: /src/cpython/Objects/dictobject.c:5035,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5040
      start: 5024
    functionDepth: 1
    functionLinenumber: 5024
    functionLinenumberEnd: 5040
    functionName: PyDict_GetItemString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 4
    functionsReached:
    - PyErr_FormatUnraisable
    - dict_getitem
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItemString(PyObject *v, const char *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:5045,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/dictobject.c:5050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - key
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5053
      start: 5042
    functionDepth: 8
    functionLinenumber: 5042
    functionLinenumberEnd: 5053
    functionName: PyDict_GetItemStringRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - PyDict_GetItemRef
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyDict_GetItemStringRef(PyObject *v, const char *key, PyObject
      **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/dictobject.c:5059,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:5062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - v
    - key
    - item
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5063
      start: 5055
    functionDepth: 9
    functionLinenumber: 5055
    functionLinenumberEnd: 5063
    functionName: _PyDict_SetItemId
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    - PyDict_SetItem
    linkageType: ''
    returnType: int
    signature: int _PyDict_SetItemId(PyObject *v, _Py_Identifier *key, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:5070,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:5073,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/dictobject.c:5074,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:5075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - v
    - key
    - item
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5078
      start: 5065
    functionDepth: 9
    functionLinenumber: 5065
    functionLinenumberEnd: 5078
    functionName: PyDict_SetItemString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 39
    functionsReached:
    - PyDict_SetItem
    - _PyUnicode_InternImmortal
    - Py_DECREF
    - _PyInterpreterState_GET
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyDict_SetItemString(PyObject *v, const char *key, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/dictobject.c:5083,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/dictobject.c:5086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5080
    functionDepth: 3
    functionLinenumber: 5080
    functionLinenumberEnd: 5087
    functionName: _PyDict_DelItemId
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    - PyDict_DelItem
    linkageType: ''
    returnType: int
    signature: int _PyDict_DelItemId(PyObject *v, _Py_Identifier *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:5094,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/dictobject.c:5097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5100
      start: 5089
    functionDepth: 3
    functionLinenumber: 5089
    functionLinenumberEnd: 5100
    functionName: PyDict_DelItemString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyDict_DelItem
    linkageType: ''
    returnType: int
    signature: int PyDict_DelItemString(PyObject *v, const char *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:5118,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5122,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5123,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5129,1
    - Dst: load_keys_nentries
      Src: /src/cpython/Objects/dictobject.c:5133,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/dictobject.c:5141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5143,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:5150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - dict
    - itertype
    argTypes:
    - PyDictObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5152
      start: 5113
    functionDepth: 1
    functionLinenumber: 5113
    functionLinenumberEnd: 5152
    functionName: dictiter_new
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_TRACK
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_NewRef
    - load_keys_nentries
    - PyTuple_Pack
    - PyObject_GC_New
    - _PyDict_HasSplitTable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_new(PyDictObject *dict, PyTypeObject *itertype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/dictobject.c:5159,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:5160,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:5161,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/dictobject.c:5162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5163
      start: 5154
    functionDepth: 0
    functionLinenumber: 5154
    functionLinenumberEnd: 5163
    functionName: dictiter_dealloc
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void dictiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:5169,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:5170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5172
      start: 5165
    functionDepth: 1
    functionLinenumber: 5165
    functionLinenumberEnd: 5172
    functionName: dictiter_traverse
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dictiter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5179,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5180,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/dictobject.c:5181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5182
      start: 5174
    functionDepth: 1
    functionLinenumber: 5174
    functionLinenumberEnd: 5182
    functionName: dictiter_len
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_len(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5216,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5216,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:5217,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5220,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5228,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5229,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5232,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:5233,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5233,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5234,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5238,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5239,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5261,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5271,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(d))
      pos:
        line_end: 5215
        line_start: 5215
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 5227
        line_start: 5227
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (d->ma_values->values[index] != NULL)
      pos:
        line_end: 5233
        line_start: 5233
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5273
      start: 5208
    functionDepth: 2
    functionLinenumber: 5208
    functionLinenumberEnd: 5273
    functionName: dictiter_iternextkey_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - Py_DECREF
    - DK_ENTRIES
    - get_index_from_order
    - PyErr_SetString
    - ASSERT_DICT_LOCKED
    - LOAD_SHARED_KEY
    - Py_NewRef
    - DK_IS_UNICODE
    - PyDict_Check
    - _PyDict_HasSplitTable
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_iternextkey_lock_held(PyDictObject *d, PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_iternext_threadsafe
      Src: /src/cpython/Objects/dictobject.c:5288,1
    - Dst: dictiter_iternextkey_lock_held
      Src: /src/cpython/Objects/dictobject.c:5292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5277
    functionDepth: 3
    functionLinenumber: 5277
    functionLinenumberEnd: 5296
    functionName: dictiter_iternextkey
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_iternext_threadsafe
    - dictiter_iternextkey_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_iternextkey(PyObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5340,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5340,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:5341,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5344,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5351,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5352,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5355,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5357,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5361,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5362,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5372,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5384,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(d))
      pos:
        line_end: 5339
        line_start: 5339
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 5350
        line_start: 5350
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 5356
        line_start: 5356
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5396
      start: 5333
    functionDepth: 2
    functionLinenumber: 5333
    functionLinenumberEnd: 5396
    functionName: dictiter_iternextvalue_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - Py_DECREF
    - DK_ENTRIES
    - get_index_from_order
    - PyErr_SetString
    - ASSERT_DICT_LOCKED
    - Py_NewRef
    - DK_IS_UNICODE
    - PyDict_Check
    - _PyDict_HasSplitTable
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_iternextvalue_lock_held(PyDictObject *d, PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_iternext_threadsafe
      Src: /src/cpython/Objects/dictobject.c:5411,1
    - Dst: dictiter_iternextvalue_lock_held
      Src: /src/cpython/Objects/dictobject.c:5415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5419
      start: 5400
    functionDepth: 3
    functionLinenumber: 5400
    functionLinenumberEnd: 5419
    functionName: dictiter_iternextvalue
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_iternext_threadsafe
    - dictiter_iternextvalue_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_iternextvalue(PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5462,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5462,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:5463,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5466,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5472,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5474,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5475,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5478,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:5479,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5479,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5481,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5485,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5486,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5497,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5517,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5526,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 4
    argNames:
    - d
    - self
    - out_key
    - out_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyDict_Check(d))
      pos:
        line_end: 5461
        line_start: 5461
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 5473
        line_start: 5473
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 5480
        line_start: 5480
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5528
      start: 5454
    functionDepth: 2
    functionLinenumber: 5454
    functionLinenumberEnd: 5528
    functionName: dictiter_iternextitem_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - Py_DECREF
    - DK_ENTRIES
    - get_index_from_order
    - PyErr_SetString
    - ASSERT_DICT_LOCKED
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - LOAD_SHARED_KEY
    - Py_NewRef
    - DK_IS_UNICODE
    - PyDict_Check
    - _PyDict_HasSplitTable
    - assert
    linkageType: ''
    returnType: int
    signature: "int dictiter_iternextitem_lock_held(PyDictObject *d, PyObject *self,\n
      \                               PyObject **out_key, PyObject **out_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/dictobject.c:5540,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:5547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - key_loc
    - value
    - value_loc
    - out_key
    - out_value
    argTypes:
    - PyObject**
    - PyObject*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5535
    functionDepth: 1
    functionLinenumber: 5535
    functionLinenumberEnd: 5557
    functionName: acquire_key_value
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_TryXGetRef
    - _Py_TryIncrefCompare
    linkageType: ''
    returnType: int
    signature: "int acquire_key_value(PyObject **key_loc, PyObject *value, PyObject
      **value_loc,\n                  PyObject **out_key, PyObject **out_value)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5568,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5568,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5570,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5571,1
    - Dst: ensure_shared_on_read
      Src: /src/cpython/Objects/dictobject.c:5577,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5579,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/dictobject.c:5580,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5581,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5582,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:5583,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Objects/dictobject.c:5588,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5597,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:5598,1
    - Dst: acquire_key_value
      Src: /src/cpython/Objects/dictobject.c:5599,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5599,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5605,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5606,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5607,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:5610,1
    - Dst: acquire_key_value
      Src: /src/cpython/Objects/dictobject.c:5617,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5623,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:5626,1
    - Dst: acquire_key_value
      Src: /src/cpython/Objects/dictobject.c:5634,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5642,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5646,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5647,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5656,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:5660,1
    - Dst: dictiter_iternextitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:5661,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:5662,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 4
    argNames:
    - d
    - self
    - out_key
    - out_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyDict_Check(d))
      pos:
        line_end: 5567
        line_start: 5567
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 5580
        line_start: 5580
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5664
      start: 5559
    functionDepth: 3
    functionLinenumber: 5559
    functionLinenumberEnd: 5664
    functionName: dictiter_iternext_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - ensure_shared_on_read
    - Py_END_CRITICAL_SECTION
    - _Py_atomic_load_uint8
    - PyErr_SetString
    - dictiter_iternextitem_lock_held
    - _Py_atomic_load_ptr
    - Py_BEGIN_CRITICAL_SECTION
    - DK_UNICODE_ENTRIES
    - PyDict_Check
    - _PyDict_HasSplitTable
    - Py_DECREF
    - get_index_from_order
    - acquire_key_value
    - _Py_atomic_load_ptr_acquire
    - _Py_atomic_load_ssize_relaxed
    - _Py_atomic_load_ptr_relaxed
    - DK_ENTRIES
    - DK_IS_UNICODE
    - _Py_atomic_store_ssize_relaxed
    - assert
    linkageType: ''
    returnType: int
    signature: "int dictiter_iternext_threadsafe(PyDictObject *d, PyObject *self,\n
      \                            PyObject **out_key, PyObject **out_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/dictobject.c:5672,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5674,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/dictobject.c:5676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5678
      start: 5668
    functionDepth: 1
    functionLinenumber: 5668
    functionLinenumberEnd: 5678
    functionName: has_unique_reference
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsOwnedByCurrentThread
    - Py_REFCNT
    - _Py_atomic_load_ssize_relaxed
    linkageType: ''
    returnType: bool
    signature: bool has_unique_reference(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_unique_reference
      Src: /src/cpython/Objects/dictobject.c:5683,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:5684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5688
      start: 5680
    functionDepth: 2
    functionLinenumber: 5680
    functionLinenumberEnd: 5688
    functionName: acquire_iter_result
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - has_unique_reference
    linkageType: ''
    returnType: bool
    signature: bool acquire_iter_result(PyObject *result)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5771,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5771,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:5772,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5775,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5788,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5789,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:5790,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5790,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5792,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5795,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5796,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5807,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:5821,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5822,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:5824,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5825,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:5827,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/dictobject.c:5829,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5830,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5831,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5832,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5832,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5833,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5833,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:5834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5836,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/dictobject.c:5839,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/dictobject.c:5842,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5846,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5846,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5847,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5847,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:5852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5857,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 5791
        line_start: 5791
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyDict_Check(d))
      pos:
        line_end: 5770
        line_start: 5770
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5859
      start: 5766
    functionDepth: 2
    functionLinenumber: 5766
    functionLinenumberEnd: 5859
    functionName: dictreviter_iter_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    - DK_UNICODE_ENTRIES
    - PyTuple_New
    - ASSERT_DICT_LOCKED
    - Py_IS_TYPE
    - PyTuple_GET_ITEM
    - PyDict_Check
    - _PyDict_HasSplitTable
    - Py_DECREF
    - get_index_from_order
    - LOAD_SHARED_KEY
    - Py_NewRef
    - Py_UNREACHABLE
    - DK_ENTRIES
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - DK_IS_UNICODE
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictreviter_iter_lock_held(PyDictObject *d, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:5871,1
    - Dst: dictreviter_iter_lock_held
      Src: /src/cpython/Objects/dictobject.c:5872,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:5873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5876
      start: 5861
    functionDepth: 3
    functionLinenumber: 5861
    functionLinenumberEnd: 5876
    functionName: dictreviter_iternext
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dictreviter_iter_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictreviter_iternext(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5901,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5901,1
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:5902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (PyDict_Check(self))
      pos:
        line_end: 5900
        line_start: 5900
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5903
      start: 5897
    functionDepth: 2
    functionLinenumber: 5897
    functionLinenumberEnd: 5903
    functionName: dict___reversed___impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - dictiter_new
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___reversed___impl(PyDictObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/dictobject.c:5911,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/dictobject.c:5912,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:5913,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/dictobject.c:5917,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/dictobject.c:5917,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:5917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5918
      start: 5905
    functionDepth: 1
    functionLinenumber: 5905
    functionLinenumberEnd: 5918
    functionName: dictiter_reduce
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_XDECREF
    - Py_BuildValue
    - _Py_ID
    - PySequence_List
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/dictobject.c:5955,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:5956,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/dictobject.c:5957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5958
      start: 5950
    functionDepth: 0
    functionLinenumber: 5950
    functionLinenumberEnd: 5958
    functionName: dictview_dealloc
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void dictview_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:5964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5966
      start: 5960
    functionDepth: 1
    functionLinenumber: 5960
    functionLinenumberEnd: 5966
    functionName: dictview_traverse
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dictview_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5976
      start: 5968
    functionDepth: 1
    functionLinenumber: 5968
    functionLinenumberEnd: 5976
    functionName: dictview_len
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dictview_len(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:5983,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5986,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:5988,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:5990,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:5993,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5996,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:5997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dict
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5999
      start: 5978
    functionDepth: 1
    functionLinenumber: 5978
    functionLinenumberEnd: 5999
    functionName: _PyDictView_New
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - Py_NewRef
    - PyErr_Format
    - PyDict_Check
    - PyObject_GC_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDictView_New(PyObject *dict, PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6003,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6004,1
    - Dst: PyDictKeys_Check
      Src: /src/cpython/Objects/dictobject.c:6004,1
    - Dst: PyDictValues_Check
      Src: /src/cpython/Objects/dictobject.c:6005,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6006,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Objects/dictobject.c:6008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - view
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (view != NULL)
      pos:
        line_end: 6002
        line_start: 6002
        source_file: /src/cpython/Objects/dictobject.c
    - condition: "(PyDictKeys_Check(view)\n           || PyDictValues_Check(view)\n
        \          || PyDictItems_Check(view))"
      pos:
        line_end: 6005
        line_start: 6003
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6009
      start: 6001
    functionDepth: 1
    functionLinenumber: 6001
    functionLinenumberEnd: 6009
    functionName: dictview_mapping
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDictProxy_New
    - PyDictKeys_Check
    - PyDictValues_Check
    - PyDictItems_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictview_mapping(PyObject *view, void *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:6030,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:6036,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6038,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/dictobject.c:6042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6049
      start: 6027
    functionDepth: 1
    functionLinenumber: 6027
    functionLinenumberEnd: 6049
    functionName: all_contained_in
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PySequence_Contains
    - PyIter_Next
    linkageType: ''
    returnType: int
    signature: int all_contained_in(PyObject *self, PyObject *other)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6058,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6059,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6059,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6060,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/dictobject.c:6062,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6062,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6065,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6068,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6078,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6085,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6090,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6095,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6100,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:6107,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 6057
        line_start: 6057
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyDictViewSet_Check(self))
      pos:
        line_end: 6058
        line_start: 6058
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (other != NULL)
      pos:
        line_end: 6059
        line_start: 6059
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6108
      start: 6051
    functionDepth: 2
    functionLinenumber: 6051
    functionLinenumberEnd: 6108
    functionName: dictview_richcompare
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - all_contained_in
    - PyAnySet_Check
    - Py_NewRef
    - PyObject_Size
    - PyDictViewSet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictview_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/dictobject.c:6118,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:6120,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/dictobject.c:6122,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/dictobject.c:6126,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:6126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6127,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:6130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6132
      start: 6110
    functionDepth: 2
    functionLinenumber: 6110
    functionLinenumberEnd: 6132
    functionName: dictview_repr
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_ReprEnter
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - PySequence_List
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictview_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6144
      start: 6136
    functionDepth: 2
    functionLinenumber: 6136
    functionLinenumberEnd: 6144
    functionName: dictkeys_iter
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictkeys_iter(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/dictobject.c:6152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6146
    functionDepth: 3
    functionLinenumber: 6146
    functionLinenumberEnd: 6153
    functionName: dictkeys_contains
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Contains
    linkageType: ''
    returnType: int
    signature: int dictkeys_contains(PyObject *self, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDictKeys_Check
      Src: /src/cpython/Objects/dictobject.c:6173,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:6176,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/dictobject.c:6180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6181
      start: 6169
    functionDepth: 1
    functionLinenumber: 6169
    functionLinenumberEnd: 6181
    functionName: dictviews_to_set
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PySet_New
    - PyDictKeys_Check
    - PyDict_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_to_set(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictviews_to_set
      Src: /src/cpython/Objects/dictobject.c:6186,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/dictobject.c:6191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6183
    functionDepth: 2
    functionLinenumber: 6183
    functionLinenumberEnd: 6200
    functionName: dictviews_sub
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - Py_DECREF
    - _Py_ID
    - dictviews_to_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_sub(PyObject *self, PyObject *other)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6217,1
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6223,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Objects/dictobject.c:6227,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6227,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Objects/dictobject.c:6228,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6229,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6234,1
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6235,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/dictobject.c:6246,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:6250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6252,1
    - Dst: PyDictKeys_Check
      Src: /src/cpython/Objects/dictobject.c:6256,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:6264,1
    - Dst: dict_contains
      Src: /src/cpython/Objects/dictobject.c:6265,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/dictobject.c:6270,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6276,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6286,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6288
      start: 6205
    functionDepth: 2
    functionLinenumber: 6205
    functionLinenumberEnd: 6288
    functionName: _PyDictView_Intersect
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDictKeys_Check
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - _Py_ID
    - PySet_Add
    - PyIter_Next
    - dict_contains
    - PyObject_CallMethodObjArgs
    - dictview_len
    - PyObject_Size
    - PySet_CheckExact
    - PySet_New
    - PyDictViewSet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDictView_Intersect(PyObject* self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictviews_to_set
      Src: /src/cpython/Objects/dictobject.c:6293,1
    - Dst: _PySet_Update
      Src: /src/cpython/Objects/dictobject.c:6298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6303
      start: 6290
    functionDepth: 2
    functionLinenumber: 6290
    functionLinenumberEnd: 6303
    functionName: dictviews_or
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PySet_Update
    - Py_DECREF
    - dictviews_to_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_or(PyObject* self, PyObject *other)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:6308,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:6309,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:6311,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/dictobject.c:6315,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:6317,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:6325,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6326,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6327,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:6328,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6332,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6338,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:6339,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:6346,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/dictobject.c:6351,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/dictobject.c:6355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6361,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6363,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/dictobject.c:6367,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6368,1
    - Dst: _PySet_Update
      Src: /src/cpython/Objects/dictobject.c:6372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6377,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6381,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6382,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6383,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6384,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6385,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6387
      start: 6305
    functionDepth: 11
    functionLinenumber: 6305
    functionLinenumberEnd: 6387
    functionName: dictitems_xor_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - ASSERT_DICT_LOCKED
    - PyTuple_Pack
    - PySet_Add
    - _PySet_Update
    - PyObject_CallMethodNoArgs
    - PyObject_RichCompareBool
    - _PyDict_DelItem_KnownHash
    - _PyDict_GetItem_KnownHash
    - PySet_New
    - Py_CLEAR
    - copy_lock_held
    - _PyDict_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_xor_lock_held(PyObject *d1, PyObject *d2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6392,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6392,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6393,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6393,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:6398,1
    - Dst: dictitems_xor_lock_held
      Src: /src/cpython/Objects/dictobject.c:6399,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:6400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDictItems_Check(self))
      pos:
        line_end: 6391
        line_start: 6391
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyDictItems_Check(other))
      pos:
        line_end: 6392
        line_start: 6392
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6403
      start: 6389
    functionDepth: 12
    functionLinenumber: 6389
    functionLinenumberEnd: 6403
    functionName: dictitems_xor
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - PyDictItems_Check
    - dictitems_xor_lock_held
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_xor(PyObject *self, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6408,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6408,1
    - Dst: dictitems_xor
      Src: /src/cpython/Objects/dictobject.c:6409,1
    - Dst: dictviews_to_set
      Src: /src/cpython/Objects/dictobject.c:6411,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/dictobject.c:6416,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6417,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6425
      start: 6405
    functionDepth: 13
    functionLinenumber: 6405
    functionLinenumberEnd: 6425
    functionName: dictviews_xor
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - dictviews_to_set
    - PyDictItems_Check
    - PyObject_CallMethodOneArg
    - dictitems_xor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_xor(PyObject* self, PyObject *other)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6453,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/dictobject.c:6461,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6461,1
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6462,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6463,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:6474,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:6478,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/dictobject.c:6479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6491,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6492,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6495
      start: 6446
    functionDepth: 2
    functionLinenumber: 6446
    functionLinenumberEnd: 6495
    functionName: dictviews_isdisjoint
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PySequence_Contains
    - PyAnySet_Check
    - PyIter_Next
    - dictview_len
    - PyObject_Size
    - PyDictViewSet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_isdisjoint(PyObject *self, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/dictobject.c:6556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6557
      start: 6552
    functionDepth: 2
    functionLinenumber: 6552
    functionLinenumberEnd: 6557
    functionName: dict_keys_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_keys_impl(PyDictObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6567
      start: 6559
    functionDepth: 2
    functionLinenumber: 6559
    functionLinenumberEnd: 6567
    functionName: dictkeys_reversed
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictkeys_reversed(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6579
      start: 6571
    functionDepth: 2
    functionLinenumber: 6571
    functionLinenumberEnd: 6579
    functionName: dictitems_iter
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_iter(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/dictobject.c:6589,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:6589,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6591,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6592,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/dictobject.c:6593,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:6595,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6599
      start: 6581
    functionDepth: 8
    functionLinenumber: 6581
    functionLinenumberEnd: 6599
    functionName: dictitems_contains
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - PyDict_GetItemRef
    linkageType: ''
    returnType: int
    signature: int dictitems_contains(PyObject *self, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/dictobject.c:6668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6669
      start: 6664
    functionDepth: 2
    functionLinenumber: 6664
    functionLinenumberEnd: 6669
    functionName: dict_items_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_items_impl(PyDictObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6679
      start: 6671
    functionDepth: 2
    functionLinenumber: 6671
    functionLinenumberEnd: 6679
    functionName: dictitems_reversed
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_reversed(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6691
      start: 6683
    functionDepth: 2
    functionLinenumber: 6683
    functionLinenumberEnd: 6691
    functionName: dictvalues_iter
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictvalues_iter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/dictobject.c:6758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6759
      start: 6754
    functionDepth: 2
    functionLinenumber: 6754
    functionLinenumberEnd: 6759
    functionName: dict_values_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_values_impl(PyDictObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6769
      start: 6761
    functionDepth: 2
    functionLinenumber: 6761
    functionLinenumberEnd: 6769
    functionName: dictvalues_reversed
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictvalues_reversed(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: new_keys_object
      Src: /src/cpython/Objects/dictobject.c:6777,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/dictobject.c:6779,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6782,1
    - Dst: PyDict_GetItem
      Src: /src/cpython/Objects/dictobject.c:6788,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6788,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/dictobject.c:6789,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:6790,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6791,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:6793,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:6793,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:6794,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyHeapTypeObject*
    assertStmts:
    - condition: (keys->dk_nentries == 0)
      pos:
        line_end: 6781
        line_start: 6781
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6802
      start: 6774
    functionDepth: 4
    functionLinenumber: 6774
    functionLinenumberEnd: 6802
    functionName: _PyDict_NewKeysForClass
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - insert_split_key
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - _Py_ID
    - PyUnicode_CheckExact
    - PyDict_GetItem
    - new_keys_object
    - PyTuple_GET_ITEM
    - unicode_get_hash
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyDictKeysObject
    signature: 'PyDictKeysObject *

      _PyDict_NewKeysForClass(PyHeapTypeObject *cls)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6807,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6808,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6809,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:6810,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6811,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:6812,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:6814,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:6816,1
    - Dst: _Py_atomic_store_ssize
      Src: /src/cpython/Objects/dictobject.c:6818,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:6820,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:6827,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:6828,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6829,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:6837,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - obj
    - tp
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (tp->tp_flags & Py_TPFLAGS_HEAPTYPE)
      pos:
        line_end: 6806
        line_start: 6806
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (keys != NULL)
      pos:
        line_end: 6810
        line_start: 6810
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (tp->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 6807
        line_start: 6807
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 6808
        line_start: 6808
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (size < 256)
      pos:
        line_end: 6828
        line_start: 6828
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6838
      start: 6804
    functionDepth: 1
    functionLinenumber: 6804
    functionLinenumberEnd: 6838
    functionName: _PyObject_InitInlineValues
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - OBJECT_STAT_INC
    - _Py_atomic_load_ssize_relaxed
    - _PyObject_ManagedDictPointer
    - _PyObject_InlineValues
    - CACHED_KEYS
    - _Py_atomic_store_ssize
    - shared_keys_usable_size
    - LOCK_KEYS
    - UNLOCK_KEYS
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyObject_InitInlineValues(PyObject *obj, PyTypeObject *tp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictkeys_incref
      Src: /src/cpython/Objects/dictobject.c:6843,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:6845,1
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:6852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - keys
    - values
    argTypes:
    - PyDictKeysObject*
    - PyDictValues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6854
      start: 6840
    functionDepth: 9
    functionLinenumber: 6840
    functionLinenumberEnd: 6854
    functionName: make_dict_from_instance_attributes
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_incref
    - new_dict
    - shared_keys_usable_size
    linkageType: ''
    returnType: PyDictObject
    signature: 'PyDictObject *

      make_dict_from_instance_attributes(PyDictKeysObject *keys, PyDictValues *values)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
      Src: /src/cpython/Objects/dictobject.c:6859,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:6861,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:6863,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:6866,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:6866,1
    - Dst: make_dict_from_instance_attributes
      Src: /src/cpython/Objects/dictobject.c:6867,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:6870,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:6872,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:6872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6875
      start: 6856
    functionDepth: 10
    functionLinenumber: 6856
    functionLinenumberEnd: 6875
    functionName: _PyObject_MaterializeManagedDict_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - OBJECT_STAT_INC
    - _PyObject_ManagedDictPointer
    - _PyObject_InlineValues
    - CACHED_KEYS
    - make_dict_from_instance_attributes
    - PyDict_New
    - ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_TYPE
    linkageType: ''
    returnType: PyDictObject
    signature: 'PyDictObject *

      _PyObject_MaterializeManagedDict_LockHeld(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:6880,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:6885,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:6888,1
    - Dst: _PyObject_MaterializeManagedDict_LockHeld
      Src: /src/cpython/Objects/dictobject.c:6894,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:6899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6901
      start: 6877
    functionDepth: 11
    functionLinenumber: 6877
    functionLinenumberEnd: 6901
    functionName: _PyObject_MaterializeManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION
    - _PyObject_MaterializeManagedDict_LockHeld
    linkageType: ''
    returnType: PyDictObject
    signature: 'PyDictObject *

      _PyObject_MaterializeManagedDict(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:6907,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:6909,1
    - Dst: delitem_knownhash_lock_held
      Src: /src/cpython/Objects/dictobject.c:6912,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:6914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dict
    - name
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6916
      start: 6903
    functionDepth: 8
    functionLinenumber: 6903
    functionLinenumberEnd: 6916
    functionName: _PyDict_SetItem_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HashFast
    - setitem_lock_held
    - dict_unhashable_type
    - delitem_knownhash_lock_held
    linkageType: ''
    returnType: int
    signature: int _PyDict_SetItem_LockHeld(PyDictObject *dict, PyObject *name, PyObject
      *value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:6925,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:6925,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6926,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6927,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6928,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:6928,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:6930,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6931,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:6932,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:6933,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/dictobject.c:6935,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6936,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:6939,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:6943,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:6944,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:6945,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:6948,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:6952,1
    - Dst: make_dict_from_instance_attributes
      Src: /src/cpython/Objects/dictobject.c:6963,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:6965,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6966,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:6970,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:6970,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:6975,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:6977,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:6983,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:6985,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/dictobject.c:6986,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:6991,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:6995,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:6998,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:6998,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Objects/dictobject.c:7001,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7003,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:7004,1
    - Dst: delete_index_from_values
      Src: /src/cpython/Objects/dictobject.c:7009,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7011,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:7012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:7015,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 4
    argNames:
    - obj
    - values
    - name
    - value
    argTypes:
    - PyObject*
    - PyDictValues*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dict->ma_values == values)
      pos:
        line_end: 7002
        line_start: 7002
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (keys != NULL)
      pos:
        line_end: 6925
        line_start: 6925
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (values != NULL)
      pos:
        line_end: 6926
        line_start: 6926
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 6927
        line_start: 6927
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dict == NULL || ((PyDictObject *)dict)->ma_values == values)
      pos:
        line_end: 6930
        line_start: 6930
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dict->ma_values == values)
      pos:
        line_end: 7010
        line_start: 7010
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 6935
        line_start: 6935
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7018
      start: 6921
    functionDepth: 10
    functionLinenumber: 6921
    functionLinenumberEnd: 7018
    functionName: store_instance_attr_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - OBJECT_STAT_INC
    - make_dict_from_instance_attributes
    - unicode_get_hash
    - _PyDictValues_AddToInsertionOrder
    - insert_split_key
    - _PyDict_SetItem_LockHeld
    - CACHED_KEYS
    - delete_index_from_values
    - Py_XNewRef
    - PyErr_Format
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_DECREF
    - tp_hash
    - PyUnicode_CheckExact
    - STORE_USED
    - _PyObject_GetManagedDict
    - _PyObject_SetAttributeErrorContext
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_TYPE
    - shared_keys_usable_size
    - _PyObject_ManagedDictPointer
    - _PyInterpreterState_GET
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: int
    signature: "int store_instance_attr_lock_held(PyObject *obj, PyDictValues *values,\n
      \                             PyObject *name, PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7023,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7025,1
    - Dst: store_instance_attr_lock_held
      Src: /src/cpython/Objects/dictobject.c:7027,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7030,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - dict
    - name
    - value
    argTypes:
    - PyObject*
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7034
      start: 7020
    functionDepth: 11
    functionLinenumber: 7020
    functionLinenumberEnd: 7034
    functionName: store_instance_attr_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyDict_SetItem_LockHeld
    - _PyObject_InlineValues
    - store_instance_attr_lock_held
    linkageType: ''
    returnType: int
    signature: int store_instance_attr_dict(PyObject *obj, PyDictObject *dict, PyObject
      *name, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7039,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7040,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7041,1
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/dictobject.c:7043,1
    - Dst: store_instance_attr_dict
      Src: /src/cpython/Objects/dictobject.c:7047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:7048,1
    - Dst: store_instance_attr_dict
      Src: /src/cpython/Objects/dictobject.c:7051,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7065,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7068,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7069,1
    - Dst: store_instance_attr_lock_held
      Src: /src/cpython/Objects/dictobject.c:7072,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7074,1
    - Dst: store_instance_attr_dict
      Src: /src/cpython/Objects/dictobject.c:7080,1
    - Dst: store_instance_attr_lock_held
      Src: /src/cpython/Objects/dictobject.c:7082,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7084
      start: 7036
    functionDepth: 12
    functionLinenumber: 7036
    functionLinenumberEnd: 7084
    functionName: _PyObject_StoreInstanceAttribute
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyObject_InlineValues
    - FT_ATOMIC_LOAD_UINT8
    - store_instance_attr_lock_held
    - PyObject_GenericGetDict
    - _PyObject_GetManagedDict
    - store_instance_attr_dict
    linkageType: ''
    returnType: int
    signature: int _PyObject_StoreInstanceAttribute(PyObject *obj, PyObject *name,
      PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7089
      start: 7088
    functionDepth: 0
    functionLinenumber: 7088
    functionLinenumberEnd: 7089
    functionName: CHECK
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7093,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:7094,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7095,1
    - Dst: _PyManagedDictPointer_IsValues
      Src: /src/cpython/Objects/dictobject.c:7096,1
    - Dst: _PyManagedDictPointer_GetValues
      Src: /src/cpython/Objects/dictobject.c:7097,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7100,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:7106,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:7110,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:7110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7114
      start: 7090
    functionDepth: 1
    functionLinenumber: 7090
    functionLinenumberEnd: 7114
    functionName: _PyObject_ManagedDictValidityCheck
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ManagedDictPointer
    - CACHED_KEYS
    - _PyManagedDictPointer_GetValues
    - CHECK
    - _PyManagedDictPointer_IsValues
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_ManagedDictValidityCheck(PyObject *obj)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7122,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:7122,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7123,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7124,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7128,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7129,1
    - Dst: _PyDictKeys_StringLookupSplit
      Src: /src/cpython/Objects/dictobject.c:7130,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/dictobject.c:7137,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7139,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:7144,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7149,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7154,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7156,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7159,1
    - Dst: _Py_XNewRefWithLock
      Src: /src/cpython/Objects/dictobject.c:7161,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7165,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7174,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7177,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7179,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:7180,1
    - Dst: _Py_XNewRefWithLock
      Src: /src/cpython/Objects/dictobject.c:7181,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7188,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - obj
    - name
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 7128
        line_start: 7128
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (values->valid)
      pos:
        line_end: 7158
        line_start: 7158
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dict != NULL)
      pos:
        line_end: 7173
        line_start: 7173
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 7121
        line_start: 7121
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7196
      start: 7119
    functionDepth: 3
    functionLinenumber: 7119
    functionLinenumberEnd: 7196
    functionName: _PyObject_TryGetInstanceAttribute
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _Py_atomic_load_ptr_relaxed
    - _PyObject_InlineValues
    - CACHED_KEYS
    - _Py_TryIncrefCompare
    - FT_ATOMIC_LOAD_UINT8
    - PyUnicode_CheckExact
    - _PyDictKeys_StringLookupSplit
    - _PyObject_GetManagedDict
    - _Py_XNewRefWithLock
    - Py_XNewRef
    - _Py_atomic_load_ptr_acquire
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: bool
    signature: bool _PyObject_TryGetInstanceAttribute(PyObject *obj, PyObject *name,
      PyObject **attr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7201,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7207,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7208,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7209,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7211,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7217,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7220,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7223,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7230
      start: 7198
    functionDepth: 2
    functionLinenumber: 7198
    functionLinenumberEnd: 7230
    functionName: _PyObject_IsInstanceDictEmpty
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - CACHED_KEYS
    - _PyObject_ComputedDictPointer
    - FT_ATOMIC_LOAD_UINT8
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - _PyObject_GetManagedDict
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsInstanceDictEmpty(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7235,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7240,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:7243,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:7248,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - obj
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7250
      start: 7232
    functionDepth: 1
    functionLinenumber: 7232
    functionLinenumberEnd: 7250
    functionName: PyObject_VisitManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 7
    functionsReached:
    - _PyObject_ManagedDictPointer
    - Py_TYPE
    - _PyObject_InlineValues
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Objects/dictobject.c:7256,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:7258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - values
    argTypes:
    - PyDictValues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7261
      start: 7252
    functionDepth: 1
    functionLinenumber: 7252
    functionLinenumberEnd: 7261
    functionName: clear_inline_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - FT_ATOMIC_STORE_UINT8
    linkageType: ''
    returnType: void
    signature: void clear_inline_values(PyDictValues *values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:7266,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7268,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/dictobject.c:7270,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7271,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7271,1
    - Dst: clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - new_dict
    argTypes:
    - PyObject*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7274
      start: 7263
    functionDepth: 2
    functionLinenumber: 7263
    functionLinenumberEnd: 7274
    functionName: set_dict_inline_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ManagedDictPointer
    - _PyObject_InlineValues
    - clear_inline_values
    - FT_ATOMIC_STORE_PTR
    - Py_XINCREF
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: void
    signature: void set_dict_inline_values(PyObject *obj, PyDictObject *new_dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7285,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7287,1
    - Dst: set_dict_inline_values
      Src: /src/cpython/Objects/dictobject.c:7290,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7295,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7295,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7298,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7298,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7299,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:7307,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - obj
    - new_dict
    - cur_dict
    argTypes:
    - PyObject*
    - PyObject*
    - PyDictObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7312
      start: 7281
    functionDepth: 3
    functionLinenumber: 7281
    functionLinenumberEnd: 7312
    functionName: try_set_dict_inline_only_or_other_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set_dict_inline_values
    - Py_INCREF
    - _PyObject_ManagedDictPointer
    - Py_END_CRITICAL_SECTION
    - _PyObject_InlineValues
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - _PyObject_GetManagedDict
    - FT_ATOMIC_STORE_PTR
    - Py_XNewRef
    linkageType: ''
    returnType: bool
    signature: bool try_set_dict_inline_only_or_other_dict(PyObject *obj, PyObject
      *new_dict, PyDictObject **cur_dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:7321,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7324,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7324,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7324,1
    - Dst: _PyDict_DetachFromObject
      Src: /src/cpython/Objects/dictobject.c:7326,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7328,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7333,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7333,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - inline_dict
    - cur_dict
    - new_dict
    argTypes:
    - PyObject*
    - PyDictObject*
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_PTR_RELAXED(inline_dict->ma_values) == _PyObject_InlineValues(obj))
      pos:
        line_end: 7323
        line_start: 7323
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (new_dict == NULL)
      pos:
        line_end: 7327
        line_start: 7327
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7336
      start: 7317
    functionDepth: 1
    functionLinenumber: 7317
    functionLinenumberEnd: 7336
    functionName: replace_dict_probably_inline_materialized
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ManagedDictPointer
    - _PyObject_InlineValues
    - _PyDict_DetachFromObject
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - FT_ATOMIC_STORE_PTR
    - Py_XNewRef
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: "int replace_dict_probably_inline_materialized(PyObject *obj, PyDictObject
      *inline_dict,\n                                          PyDictObject *cur_dict,
      PyObject *new_dict)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_XDecRefDelayed
      Src: /src/cpython/Objects/dictobject.c:7344,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:7347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - delay
    argTypes:
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7349
      start: 7340
    functionDepth: 0
    functionLinenumber: 7340
    functionLinenumberEnd: 7349
    functionName: decref_maybe_delay
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyObject_XDecRefDelayed
    linkageType: ''
    returnType: void
    signature: void decref_maybe_delay(PyObject *obj, bool delay)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7354,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7354,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7356,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7357,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7357,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7358,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7361,1
    - Dst: try_set_dict_inline_only_or_other_dict
      Src: /src/cpython/Objects/dictobject.c:7365,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7372,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:7373,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7378,1
    - Dst: replace_dict_probably_inline_materialized
      Src: /src/cpython/Objects/dictobject.c:7380,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:7383,1
    - Dst: decref_maybe_delay
      Src: /src/cpython/Objects/dictobject.c:7387,1
    - Dst: decref_maybe_delay
      Src: /src/cpython/Objects/dictobject.c:7397,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7402,1
    - Dst: set_dict_inline_values
      Src: /src/cpython/Objects/dictobject.c:7404,1
    - Dst: _PyDict_DetachFromObject
      Src: /src/cpython/Objects/dictobject.c:7407,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7408,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:7409,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7412,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7419,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7421,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7423,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7423,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7424,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7426,1
    - Dst: decref_maybe_delay
      Src: /src/cpython/Objects/dictobject.c:7427,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7429,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - obj
    - new_dict
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (prev_dict != NULL)
      pos:
        line_end: 7371
        line_start: 7371
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (new_dict == NULL)
      pos:
        line_end: 7411
        line_start: 7411
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 7353
        line_start: 7353
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7356
        line_start: 7356
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7428
        line_start: 7428
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7431
      start: 7351
    functionDepth: 4
    functionLinenumber: 7351
    functionLinenumberEnd: 7431
    functionName: _PyObject_SetManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set_dict_inline_values
    - Py_END_CRITICAL_SECTION
    - _PyObject_ManagedDictPointer
    - Py_DECREF
    - Py_BEGIN_CRITICAL_SECTION2
    - replace_dict_probably_inline_materialized
    - decref_maybe_delay
    - _PyDict_DetachFromObject
    - try_set_dict_inline_only_or_other_dict
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION2
    - _PyObject_InlineValuesConsistencyCheck
    - Py_XNewRef
    - FT_ATOMIC_STORE_PTR
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyObject_SetManagedDict(PyObject *obj, PyObject *new_dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7436,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7436,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7437,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7437,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7439,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7439,1
    - Dst: ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
      Src: /src/cpython/Objects/dictobject.c:7445,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7446,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7447,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7448,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7448,1
    - Dst: copy_values
      Src: /src/cpython/Objects/dictobject.c:7450,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:7453,1
    - Dst: invalidate_and_clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7458,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7458,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7460,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7460,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:7461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - mp
    - obj
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (_PyObject_ManagedDictPointer(obj)->dict == mp)
      pos:
        line_end: 7435
        line_start: 7435
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7436
        line_start: 7436
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_values->embedded == 1)
      pos:
        line_end: 7445
        line_start: 7445
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_values->valid == 1)
      pos:
        line_end: 7446
        line_start: 7446
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 7447
        line_start: 7447
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7459
        line_start: 7459
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7463
      start: 7433
    functionDepth: 4
    functionLinenumber: 7433
    functionLinenumberEnd: 7463
    functionName: detach_dict_from_object
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ManagedDictPointer
    - _PyObject_InlineValues
    - ASSERT_CONSISTENT
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - invalidate_and_clear_inline_values
    - _PyObject_InlineValuesConsistencyCheck
    - ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
    - copy_values
    - Py_TYPE
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int detach_dict_from_object(PyDictObject *mp, PyObject *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7471,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7472,1
    - Dst: clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7477,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7477,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7480,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7481,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7486,1
    - Dst: detach_dict_from_object
      Src: /src/cpython/Objects/dictobject.c:7487,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7488,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7492,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:7492,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:7493,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7496,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:7498,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:7500,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:7500,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:7501,1
    - Dst: clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7502,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7502,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7503,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:7507,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred() == PyExc_MemoryError)
      pos:
        line_end: 7491
        line_start: 7491
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7508
      start: 7466
    functionDepth: 5
    functionLinenumber: 7466
    functionLinenumberEnd: 7508
    functionName: PyObject_ClearManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 11
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyObject_ManagedDictPointer
    - _PyObject_InlineValues
    - Py_CLEAR
    - PyErr_Occurred
    - STORE_USED
    - clear_inline_values
    - IS_DICT_SHARED
    - PyErr_FormatUnraisable
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - _PyObject_GetManagedDict
    - detach_dict_from_object
    - set_keys
    - dictkeys_decref
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void PyObject_ClearManagedDict(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
      Src: /src/cpython/Objects/dictobject.c:7513,1
    - Dst: detach_dict_from_object
      Src: /src/cpython/Objects/dictobject.c:7515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mp
    - obj
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7516
      start: 7510
    functionDepth: 5
    functionLinenumber: 7510
    functionLinenumberEnd: 7516
    functionName: _PyDict_DetachFromObject
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - detach_dict_from_object
    - ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
    linkageType: ''
    returnType: int
    signature: int _PyDict_DetachFromObject(PyDictObject *mp, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7521,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7523,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7525,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7525,1
    - Dst: _PyObject_MaterializeManagedDict
      Src: /src/cpython/Objects/dictobject.c:7526,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7531,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7532,1
    - Dst: new_dict_with_shared_keys
      Src: /src/cpython/Objects/dictobject.c:7537,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7537,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:7538,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7538,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7548
      start: 7518
    functionDepth: 12
    functionLinenumber: 7518
    functionLinenumberEnd: 7548
    functionName: ensure_managed_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyObject_ManagedDictPointer
    - Py_END_CRITICAL_SECTION
    - _PyObject_InlineValues
    - CACHED_KEYS
    - FT_ATOMIC_LOAD_UINT8
    - new_dict_with_shared_keys
    - _PyObject_GetManagedDict
    - _PyObject_MaterializeManagedDict
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ensure_managed_dict(PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/dictobject.c:7555,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7558,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7564,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/dictobject.c:7565,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7565,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7566,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/dictobject.c:7566,1
    - Dst: new_dict_with_shared_keys
      Src: /src/cpython/Objects/dictobject.c:7567,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:7570,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:7572,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - obj
    - dictptr
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (!_PyType_HasFeature(tp, Py_TPFLAGS_INLINE_VALUES))
      pos:
        line_end: 7565
        line_start: 7565
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7579
      start: 7550
    functionDepth: 10
    functionLinenumber: 7550
    functionLinenumberEnd: 7579
    functionName: ensure_nonmanaged_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - CACHED_KEYS
    - new_dict_with_shared_keys
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyDict_New
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_TYPE
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ensure_nonmanaged_dict(PyObject *obj, PyObject **dictptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7584,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/dictobject.c:7585,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7586,1
    - Dst: ensure_managed_dict
      Src: /src/cpython/Objects/dictobject.c:7586,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7589,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:7591,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7596,1
    - Dst: ensure_nonmanaged_dict
      Src: /src/cpython/Objects/dictobject.c:7596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7598
      start: 7581
    functionDepth: 13
    functionLinenumber: 7581
    functionLinenumberEnd: 7598
    functionName: PyObject_GenericGetDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_ComputedDictPointer
    - ensure_managed_dict
    - PyErr_SetString
    - ensure_nonmanaged_dict
    - Py_XNewRef
    - Py_TYPE
    - _PyType_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GenericGetDict(PyObject *obj, void *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7607,1
    - Dst: ensure_nonmanaged_dict
      Src: /src/cpython/Objects/dictobject.c:7608,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7613,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7614,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:7615,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - tp
    - obj
    - dictptr
    - key
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject**
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dictptr != NULL)
      pos:
        line_end: 7606
        line_start: 7606
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7618
      start: 7600
    functionDepth: 11
    functionLinenumber: 7600
    functionLinenumberEnd: 7618
    functionName: _PyObjectDict_SetItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_SetItem_LockHeld
    - Py_END_CRITICAL_SECTION
    - ensure_nonmanaged_dict
    - ASSERT_CONSISTENT
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject *obj, PyObject
      **dictptr,\n                      PyObject *key, PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:7623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7624
      start: 7620
    functionDepth: 4
    functionLinenumber: 7620
    functionLinenumberEnd: 7624
    functionName: _PyDictKeys_DecRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_decref
    linkageType: ''
    returnType: void
    signature: void _PyDictKeys_DecRef(PyDictKeysObject *keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Objects/dictobject.c:7632,1
    - Dst: _Py_atomic_compare_exchange_uint32
      Src: /src/cpython/Objects/dictobject.c:7637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7646
      start: 7626
    functionDepth: 0
    functionLinenumber: 7626
    functionLinenumberEnd: 7646
    functionName: get_next_dict_keys_version
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uint32
    - _Py_atomic_load_uint32_relaxed
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_next_dict_keys_version(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7654,1
    - Dst: get_next_dict_keys_version
      Src: /src/cpython/Objects/dictobject.c:7658,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - interp
    - dictkeys
    argTypes:
    - PyInterpreterState*
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7661
      start: 7650
    functionDepth: 1
    functionLinenumber: 7650
    functionLinenumberEnd: 7661
    functionName: _PyDictKeys_GetVersionForCurrentState
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - get_next_dict_keys_version
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t _PyDictKeys_GetVersionForCurrentState(PyInterpreterState
      *interp,\n                                      PyDictKeysObject *dictkeys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:7667,1
    - Dst: _PyDictKeys_GetVersionForCurrentState
      Src: /src/cpython/Objects/dictobject.c:7669,1
    - Dst: ensure_shared_on_keys_version_assignment
      Src: /src/cpython/Objects/dictobject.c:7670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - dict
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7672
      start: 7663
    functionDepth: 3
    functionLinenumber: 7663
    functionLinenumberEnd: 7672
    functionName: _PyDict_GetKeysVersionForCurrentState
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - ensure_shared_on_keys_version_assignment
    - _PyDictKeys_GetVersionForCurrentState
    - ASSERT_DICT_LOCKED
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t _PyDict_GetKeysVersionForCurrentState(PyInterpreterState
      *interp,\n                                      PyDictObject *dict)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:7678,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:7682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - interp
    - watcher_id
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7686
      start: 7674
    functionDepth: 1
    functionLinenumber: 7674
    functionLinenumberEnd: 7686
    functionName: validate_watcher_id
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_watcher_id(PyInterpreterState *interp, int watcher_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:7691,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:7692,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:7695,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/dictobject.c:7696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - watcher_id
    - dict
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7701
      start: 7688
    functionDepth: 1
    functionLinenumber: 7688
    functionLinenumberEnd: 7701
    functionName: PyDict_Watch
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - validate_watcher_id
    - PyDict_Check
    - PyErr_SetString
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyDict_Watch(int watcher_id, PyObject* dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:7706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:7707,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:7710,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/dictobject.c:7711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - watcher_id
    - dict
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7716
      start: 7703
    functionDepth: 1
    functionLinenumber: 7703
    functionLinenumberEnd: 7716
    functionName: PyDict_Unwatch
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - validate_watcher_id
    - PyDict_Check
    - PyErr_SetString
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyDict_Unwatch(int watcher_id, PyObject* dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:7721,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:7731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyDict_WatchCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7733
      start: 7718
    functionDepth: 1
    functionLinenumber: 7718
    functionLinenumberEnd: 7733
    functionName: PyDict_AddWatcher
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyDict_AddWatcher(PyDict_WatchCallback callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:7738,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/dictobject.c:7739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7744
      start: 7735
    functionDepth: 1
    functionLinenumber: 7735
    functionLinenumberEnd: 7744
    functionName: PyDict_ClearWatcher
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - validate_watcher_id
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyDict_ClearWatcher(int watcher_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PY_FOREACH_DICT_EVENT
      Src: /src/cpython/Objects/dictobject.c:7752,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:7755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - event
    argTypes:
    - PyDict_WatchEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7756
      start: 7746
    functionDepth: 1
    functionLinenumber: 7746
    functionLinenumberEnd: 7756
    functionName: dict_event_name
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PY_FOREACH_DICT_EVENT
    - Py_UNREACHABLE
    linkageType: ''
    returnType: char
    signature: 'char *

      dict_event_name(PyDict_WatchEvent event)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7752
      start: 7749
    functionDepth: 0
    functionLinenumber: 7749
    functionLinenumberEnd: 7752
    functionName: CASE
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:7765,1
    - Dst: cb
      Src: /src/cpython/Objects/dictobject.c:7769,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:7774,1
    - Dst: dict_event_name
      Src: /src/cpython/Objects/dictobject.c:7776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - watcher_bits
    - event
    - mp
    - key
    - value
    argTypes:
    - int
    - PyDict_WatchEvent
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7781
      start: 7758
    functionDepth: 2
    functionLinenumber: 7758
    functionLinenumberEnd: 7781
    functionName: _PyDict_SendEvent
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - dict_event_name
    - _PyInterpreterState_GET
    - cb
    linkageType: ''
    returnType: void
    signature: "void _PyDict_SendEvent(int watcher_bits,\n                  PyDict_WatchEvent
      event,\n                  PyDictObject *mp,\n                  PyObject *key,\n
      \                 PyObject *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7787,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7790,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7790,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7791,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7795,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7796,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 7789
        line_start: 7789
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (0)
      pos:
        line_end: 7798
        line_start: 7798
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7801
      start: 7784
    functionDepth: 1
    functionLinenumber: 7784
    functionLinenumberEnd: 7801
    functionName: _PyObject_InlineValuesConsistencyCheck
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_GetManagedDict
    - Py_TYPE
    - _PyObject_InlineValues
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyObject_InlineValuesConsistencyCheck(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: GETC
    functionSourceFile: /src/cpython/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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: FLOCKFILE
    functionSourceFile: /src/cpython/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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: FUNLOCKFILE
    functionSourceFile: /src/cpython/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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: GETC
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETC(f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Objects/fileobject.c:39,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/fileobject.c:42,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    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: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: PyFile_FromFd
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - PyImport_ImportModuleAttrString
    - PyObject_CallFunction
    - Py_DECREF
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/fileobject.c:59,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/fileobject.c:64,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/fileobject.c:64,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Objects/fileobject.c:67,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/fileobject.c:67,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/fileobject.c:69,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/fileobject.c:70,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/fileobject.c:71,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/fileobject.c:73,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/fileobject.c:76,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/fileobject.c:77,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/fileobject.c:78,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/fileobject.c:80,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/fileobject.c:81,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/fileobject.c:85,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/fileobject.c:88,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/fileobject.c:89,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/fileobject.c:91,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/fileobject.c:92,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/fileobject.c:95,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/fileobject.c:97,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/fileobject.c:98,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - f
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 102
    functionName: PyFile_GetLine
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_CallMethod
    - PyErr_BadInternalCall
    - _Py_ID
    - PyErr_SetString
    - _PyBytes_Resize
    - PyUnicode_Substring
    - PyObject_CallMethodNoArgs
    - PyBytes_Check
    - Py_SETREF
    - PyBytes_GET_SIZE
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_GetLine(PyObject *f, int n)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/fileobject.c:112,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/fileobject.c:115,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/fileobject.c:115,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/fileobject.c:119,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/fileobject.c:122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:124,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/fileobject.c:127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - v
    - f
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: PyFile_WriteObject
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 2
    functionsReached:
    - PyObject_Str
    - PyObject_Repr
    - Py_DECREF
    - PyErr_SetString
    - _Py_ID
    - PyObject_GetAttr
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int PyFile_WriteObject(PyObject *v, PyObject *f, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/fileobject.c:141,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/fileobject.c:142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/fileobject.c:146,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/fileobject.c:147,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Objects/fileobject.c:151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: PyFile_WriteString
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyFile_WriteObject
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyFile_WriteString(const char *s, PyObject *f)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/fileobject.c:172,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/fileobject.c:173,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/fileobject.c:174,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/fileobject.c:180,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/fileobject.c:182,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/fileobject.c:182,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/fileobject.c:186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:187,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/fileobject.c:191,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/fileobject.c:192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:193,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/fileobject.c:196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/fileobject.c:203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/fileobject.c:208,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/fileobject.c:211,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 217
    functionName: PyObject_AsFileDescriptor
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 44
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyLong_Check
    - PyErr_SetString
    - PyBool_Check
    - PyErr_Format
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int PyObject_AsFileDescriptor(PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Objects/fileobject.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: _PyLong_FileDescriptor_Converter
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: int
    signature: int _PyLong_FileDescriptor_Converter(PyObject *o, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLOCKFILE
      Src: /src/cpython/Objects/fileobject.c:240,1
    - Dst: GETC
      Src: /src/cpython/Objects/fileobject.c:241,1
    - Dst: GETC
      Src: /src/cpython/Objects/fileobject.c:244,1
    - Dst: ungetc
      Src: /src/cpython/Objects/fileobject.c:246,1
    - Dst: FUNLOCKFILE
      Src: /src/cpython/Objects/fileobject.c:255,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - buf
    - n
    - stream
    - fobj
    - size
    argTypes:
    - char*
    - int
    - FILE*
    - PyObject*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 262
    functionName: _Py_UniversalNewlineFgetsWithSize
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - GETC
    - ungetc
    - FUNLOCKFILE
    - FLOCKFILE
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_UniversalNewlineFgetsWithSize(char *buf, int n, FILE *stream, PyObject *fobj,
      size_t* size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_UniversalNewlineFgetsWithSize
      Src: /src/cpython/Objects/fileobject.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - n
    - stream
    - fobj
    argTypes:
    - char*
    - int
    - FILE*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: Py_UniversalNewlineFgets
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - _Py_UniversalNewlineFgetsWithSize
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_UniversalNewlineFgets(char *buf, int n, FILE *stream, PyObject *fobj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/cpython/Objects/fileobject.c:294,1
    - Dst: fileno
      Src: /src/cpython/Objects/fileobject.c:294,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/fileobject.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 305
    functionName: PyFile_NewStdPrinter
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - fileno
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_NewStdPrinter(int fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/fileobject.c:318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/fileobject.c:318,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/fileobject.c:328,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/fileobject.c:333,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/fileobject.c:335,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Objects/fileobject.c:336,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/fileobject.c:339,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/fileobject.c:340,1
    - Dst: _Py_write
      Src: /src/cpython/Objects/fileobject.c:343,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/fileobject.c:347,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/fileobject.c:351,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/fileobject.c:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/cpython/Objects/fileobject.c
    constantsTouched: []
    func_position:
      end: 358
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 358
    functionName: stdprinter_write
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - PyArg_ParseTuple
    - _Py_write
    - PyLong_FromSsize_t
    - _PyUnicode_AsUTF8String
    - PyBytes_GET_SIZE
    - PyErr_Clear
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_write(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/fileobject.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: stdprinter_fileno
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_fileno(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/fileobject.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: stdprinter_repr
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_repr(PyObject *op)'
  - 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: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: stdprinter_noop
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_noop(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/cpython/Objects/fileobject.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 395
    functionName: stdprinter_isatty
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - isatty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_isatty(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: get_closed
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closed(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/fileobject.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: get_mode
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mode(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: get_encoding
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_encoding(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsInitialized
      Src: /src/cpython/Objects/fileobject.c:482,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/fileobject.c:483,1
    - Dst: Py_IsInitialized
      Src: /src/cpython/Objects/fileobject.c:488,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/fileobject.c:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - hook
    - userData
    argTypes:
    - Py_OpenCodeHookFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 498
    functionName: PyFile_SetOpenCodeHook
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - Py_IsInitialized
    - PySys_Audit
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/fileobject.c:505,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/fileobject.c:506,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/fileobject.c:507,1
    - Dst: hook
      Src: /src/cpython/Objects/fileobject.c:513,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Objects/fileobject.c:515,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/fileobject.c:517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 523
    functionName: PyFile_OpenCodeObject
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - PyImport_ImportModuleAttrString
    - PyObject_CallFunction
    - Py_DECREF
    - PyErr_Format
    - PyUnicode_Check
    - hook
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_OpenCodeObject(PyObject *path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/fileobject.c:528,1
    - Dst: PyFile_OpenCodeObject
      Src: /src/cpython/Objects/fileobject.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - utf8path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 536
    functionName: PyFile_OpenCode
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyFile_OpenCodeObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_OpenCode(const char *utf8path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/fileobject.c:542,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/fileobject.c:542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/fileobject.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - file
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 548
    functionName: _PyFile_Flush
    functionSourceFile: /src/cpython/Objects/fileobject.c
    functionUses: 12
    functionsReached:
    - _Py_ID
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: int
    signature: int _PyFile_Flush(PyObject *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:26,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - obj
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: type_error
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_error(const char *msg, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:33,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:34,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: null_error
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 14
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:49,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:52,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: PyObject_Type
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - null_error
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Type(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:60,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:64,1
    - Dst: PySequenceMethods*::sq_length
      Src: /src/cpython/Objects/abstract.c:66,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:67,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:67,1
    - Dst: PyMapping_Size
      Src: /src/cpython/Objects/abstract.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__len__", len >= 0))
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: PyObject_Size
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - null_error
    - PySequenceMethods*::sq_length
    - _Py_CheckSlotResult
    - Py_TYPE
    - assert
    - PyMapping_Size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyObject_Size(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/abstract.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: PyObject_Length
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    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/cpython/Objects/abstract.c:84,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:84,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:85,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: _PyObject_HasLen
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_HasLen(PyObject *o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HasLen
      Src: /src/cpython/Objects/abstract.c:99,1
    - Dst: PyObject_Length
      Src: /src/cpython/Objects/abstract.c:100,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:102,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:103,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:103,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:104,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:107,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/abstract.c:113,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:115,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/abstract.c:120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:121,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:123,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:124,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:131,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:134,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:138,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:143,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:147,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - o
    - defaultvalue
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 152
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 152
    functionName: PyObject_LengthHint
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - _PyObject_CallNoArgs
    - _PyObject_HasLen
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - _PyErr_Clear
    - _Py_ID
    - PyLong_Check
    - _PyObject_LookupSpecial
    - _PyThreadState_GET
    - PyObject_Length
    - PyErr_Format
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyObject_LengthHint(PyObject *o, Py_ssize_t defaultvalue)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:158,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:161,1
    - Dst: PyMappingMethods*::mp_subscript
      Src: /src/cpython/Objects/abstract.c:163,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:164,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:164,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:168,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:170,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:172,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:173,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/abstract.c:175,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:178,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/abstract.c:183,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/abstract.c:188,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/abstract.c:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:191,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/abstract.c:195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:196,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:199,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:200,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:205,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__getitem__", item != NULL))
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 206
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 206
    functionName: PyObject_GetItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 11
    functionsReached:
    - PySequence_GetItem
    - PyType_Check
    - Py_XDECREF
    - null_error
    - Py_GenericAlias
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _PyIndex_Check
    - PyErr_Occurred
    - type_error
    - _Py_ID
    - PyNumber_AsSsize_t
    - _Py_CheckSlotResult
    - PyObject_CallOneArg
    - PyMappingMethods*::mp_subscript
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetItem(PyObject *o, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/abstract.c:211,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/abstract.c:212,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/abstract.c:215,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:219,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:219,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:220,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - obj
    - key
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 8
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: PyMapping_GetOptionalItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PyDict_CheckExact
    - PyErr_Occurred
    - PyObject_GetItem
    - PyErr_ExceptionMatches
    - PyDict_GetItemRef
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: int PyMapping_GetOptionalItem(PyObject *obj, PyObject *key, PyObject
      **result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:231,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:235,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:237,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:238,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:242,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:243,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:245,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:246,1
    - Dst: PySequence_SetItem
      Src: /src/cpython/Objects/abstract.c:248,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:250,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:251,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - o
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__setitem__", res >= 0))
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 259
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 259
    functionName: PyObject_SetItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 9
    functionsReached:
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - _PyIndex_Check
    - PyErr_Occurred
    - PySequence_SetItem
    - type_error
    - PyNumber_AsSsize_t
    - _Py_CheckSlotResult
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PyObject_SetItem(PyObject *o, PyObject *key, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:265,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:269,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:271,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:272,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:272,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:276,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:277,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:279,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:280,1
    - Dst: PySequence_DelItem
      Src: /src/cpython/Objects/abstract.c:282,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:284,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:285,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:291,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__delitem__", res >= 0))
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 293
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 293
    functionName: PyObject_DelItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - _PyIndex_Check
    - PyErr_Occurred
    - type_error
    - PyNumber_AsSsize_t
    - PySequence_DelItem
    - _Py_CheckSlotResult
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PyObject_DelItem(PyObject *o, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:302,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:305,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Objects/abstract.c:308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: PyObject_DelItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - null_error
    - Py_DECREF
    - PyUnicode_FromString
    - PyObject_DelItem
    linkageType: ''
    returnType: int
    signature: int PyObject_DelItemString(PyObject *o, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: PyObject_CheckBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 15
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyObject_CheckBuffer(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:335,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:342,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: PyObject_CheckReadBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - Py_TYPE
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void PyObject_CheckReadBuffer(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:355,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:358,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:363,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: 365
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 365
    functionName: as_read_buffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - null_error
    - PyBuffer_Release
    - PyObject_GetBuffer
    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/cpython/Objects/abstract.c:378,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: 379
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: PyObject_AsCharBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - as_read_buffer
    linkageType: ''
    returnType: void
    signature: "void PyObject_AsCharBuffer(PyObject *obj,\n                      const
      char **buffer,\n                      Py_ssize_t *buffer_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_read_buffer
      Src: /src/cpython/Objects/abstract.c:392,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: 393
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: PyObject_AsReadBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - as_read_buffer
    linkageType: ''
    returnType: void
    signature: "void PyObject_AsReadBuffer(PyObject *obj,\n                      const
      void **buffer,\n                      Py_ssize_t *buffer_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:410,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:417,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:424,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: 426
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 426
    functionName: PyObject_AsWriteBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - null_error
    - Py_TYPE
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: "void PyObject_AsWriteBuffer(PyObject *obj,\n                       void
      **buffer,\n                       Py_ssize_t *buffer_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/abstract.c:435,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:439,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:442,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:444,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:448,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - obj
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (_Py_CheckSlotResult(obj, "getbuffer", res >= 0))
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 450
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 450
    functionName: PyObject_GetBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 133
    functionsReached:
    - PyErr_BadInternalCall
    - _Py_CheckSlotResult
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PyObject_GetBuffer(PyObject *obj, Py_buffer *view, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:467,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:478,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->shape != NULL)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/cpython/Objects/abstract.c
    - condition: (view->ndim > 0)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/cpython/Objects/abstract.c
    - condition: (view->shape != NULL)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 490
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 490
    functionName: _IsFortranContiguous
    functionSourceFile: /src/cpython/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/cpython/Objects/abstract.c:505,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->ndim > 0)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/cpython/Objects/abstract.c
    - condition: (view->shape != NULL)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 517
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 517
    functionName: _IsCContiguous
    functionSourceFile: /src/cpython/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/cpython/Objects/abstract.c:526,1
    - Dst: _IsFortranContiguous
      Src: /src/cpython/Objects/abstract.c:528,1
    - Dst: _IsCContiguous
      Src: /src/cpython/Objects/abstract.c:530,1
    - Dst: _IsFortranContiguous
      Src: /src/cpython/Objects/abstract.c:530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - view
    - order
    argTypes:
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 532
    functionName: PyBuffer_IsContiguous
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 13
    functionsReached:
    - _IsFortranContiguous
    - _IsCContiguous
    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: 548
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 548
    functionName: PyBuffer_GetPointer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      PyBuffer_GetPointer(const Py_buffer *view, const 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: 565
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 565
    functionName: _Py_add_one_to_index_F
    functionSourceFile: /src/cpython/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: 581
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 581
    functionName: _Py_add_one_to_index_C
    functionSourceFile: /src/cpython/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: PyImport_ImportModuleAttrString
      Src: /src/cpython/Objects/abstract.c:591,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:596,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/abstract.c:601,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:606,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:612,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:613,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 616
    functionName: PyBuffer_SizeFromFormat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyImport_ImportModuleAttrString
    - PyObject_CallFunctionObjArgs
    - PyUnicode_FromString
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyBuffer_SizeFromFormat(const char *format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:631,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:633,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/abstract.c:640,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/abstract.c:642,1
    - Dst: PyBuffer_GetPointer
      Src: /src/cpython/Objects/abstract.c:661,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:662,1
    - Dst: addone
      Src: /src/cpython/Objects/abstract.c:664,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/abstract.c:667,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: 669
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 669
    functionName: PyBuffer_FromContiguous
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyBuffer_IsContiguous
    - addone
    - PyMem_Free
    - PyBuffer_GetPointer
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int PyBuffer_FromContiguous(const Py_buffer *view, const void *buf,
      Py_ssize_t len, char fort)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/abstract.c:678,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/abstract.c:679,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:680,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:686,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:687,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:688,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:693,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:695,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:696,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:700,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:701,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:702,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:703,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:705,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:706,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:707,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/abstract.c:714,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/abstract.c:716,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:717,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:718,1
    - Dst: _Py_add_one_to_index_C
      Src: /src/cpython/Objects/abstract.c:730,1
    - Dst: PyBuffer_GetPointer
      Src: /src/cpython/Objects/abstract.c:731,1
    - Dst: PyBuffer_GetPointer
      Src: /src/cpython/Objects/abstract.c:732,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:733,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/abstract.c:735,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:736,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:737,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 739
    functionName: PyObject_CopyData
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - _Py_add_one_to_index_C
    - PyBuffer_IsContiguous
    - PyObject_CheckBuffer
    - PyErr_SetString
    - PyMem_Free
    - PyObject_GetBuffer
    - PyBuffer_GetPointer
    - PyBuffer_Release
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    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: 763
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 763
    functionName: PyBuffer_FillContiguousStrides
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:770,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/abstract.c:777,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:782,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/abstract.c:788,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 6
    argNames:
    - view
    - obj
    - buf
    - len
    - readonly
    - flags
    argTypes:
    - Py_buffer*
    - PyObject*
    - void*
    - Py_ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 806
    functionName: PyBuffer_FillInfo
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 15
    functionsReached:
    - PyErr_BadInternalCall
    - PyErr_SetString
    - Py_XNewRef
    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/cpython/Objects/abstract.c:815,1
    - Dst: PyBufferProcs*::bf_releasebuffer
      Src: /src/cpython/Objects/abstract.c:817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 821
    functionName: PyBuffer_Release
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 191
    functionsReached:
    - Py_TYPE
    - PyBufferProcs*::bf_releasebuffer
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void PyBuffer_Release(Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 828
    functionName: _buffer_release_call
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int _buffer_release_call(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CallInInterpreter
      Src: /src/cpython/Objects/abstract.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - view
    argTypes:
    - PyInterpreterState*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 835
    functionName: _PyBuffer_ReleaseInInterpreter
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - _Py_CallInInterpreter
    linkageType: ''
    returnType: int
    signature: "int _PyBuffer_ReleaseInInterpreter(PyInterpreterState *interp,\n                               Py_buffer
      *view)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CallInInterpreterAndRawFree
      Src: /src/cpython/Objects/abstract.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - view
    argTypes:
    - PyInterpreterState*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 842
    functionName: _PyBuffer_ReleaseInInterpreterAndRawFree
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - _Py_CallInInterpreterAndRawFree
    linkageType: ''
    returnType: int
    signature: "int _PyBuffer_ReleaseInInterpreterAndRawFree(PyInterpreterState *interp,\n
      \                                        Py_buffer *view)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/abstract.c:851,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:852,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:854,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/abstract.c:859,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/abstract.c:860,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:861,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:863,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/abstract.c:864,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/abstract.c:870,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/abstract.c:875,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:875,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:877,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:878,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/abstract.c:879,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:881,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/abstract.c:887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:888,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/abstract.c:890,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:891,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:894,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:899,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - obj
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 844
    functionDepth: 4
    functionLinenumber: 844
    functionLinenumberEnd: 901
    functionName: PyObject_Format
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - Py_GetConstant
    - _PyErr_Format
    - PyUnicode_CheckExact
    - _Py_ID
    - _PyObject_LookupSpecial
    - Py_NewRef
    - _PyThreadState_GET
    - Py_SETREF
    - Py_TYPE
    - PyObject_CallOneArg
    - PyLong_CheckExact
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Format(PyObject *obj, PyObject *format_spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:909,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/abstract.c:910,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 911
    functionName: PyNumber_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 7
    functionsReached:
    - PyComplex_Check
    - Py_TYPE
    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: 916
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 916
    functionName: NB_SLOT
    functionSourceFile: /src/cpython/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: 918
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 918
    functionName: NB_BINOP
    functionSourceFile: /src/cpython/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: 920
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: NB_TERNOP
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NB_TERNOP(nb_methods, slot)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:939,1
    - Dst: NB_BINOP
      Src: /src/cpython/Objects/abstract.c:940,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:940,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/abstract.c:947,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:947,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:947,1
    - Dst: NB_BINOP
      Src: /src/cpython/Objects/abstract.c:948,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:948,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:959,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:959,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:959,1
    - Dst: slotw
      Src: /src/cpython/Objects/abstract.c:960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:963,1
    - Dst: slotv
      Src: /src/cpython/Objects/abstract.c:966,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:967,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:971,1
    - Dst: slotw
      Src: /src/cpython/Objects/abstract.c:974,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:975,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:979,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - v
    - w
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - char*
    assertStmts:
    - condition: (_Py_CheckSlotResult(v, op_name, x != NULL))
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(w, op_name, x != NULL))
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 982
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 982
    functionName: binary_op1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_IsSubtype
    - slotv
    - Py_IS_TYPE
    - _Py_CheckSlotResult
    - slotw
    - Py_TYPE
    - assert
    - NB_BINOP
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinary_op1(PyObject *v, PyObject *w, const int op_slot\n#ifndef
      NDEBUG\n           , const char *op_name\n#endif\n           )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - op_slot
    - ','
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 986
    functionName: BINARY_OP1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_OP1(v, w, op_slot, op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - op_slot
    - ','
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 988
    functionName: BINARY_OP1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_OP1(v, w, op_slot, op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:993,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:997,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - w
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1000
    functionName: binop_type_error
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binop_type_error(PyObject *v, PyObject *w, const char *op_name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_OP1
      Src: /src/cpython/Objects/abstract.c:1005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1007,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - v
    - w
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1011
    functionName: binary_op
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - BINARY_OP1
    - Py_DECREF
    - 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: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1029,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1030,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1034,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/abstract.c:1041,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1041,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1042,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:1053,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1053,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1053,1
    - Dst: slotw
      Src: /src/cpython/Objects/abstract.c:1054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1058,1
    - Dst: slotv
      Src: /src/cpython/Objects/abstract.c:1061,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1062,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1066,1
    - Dst: slotw
      Src: /src/cpython/Objects/abstract.c:1069,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1070,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1074,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1077,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1079,1
    - Dst: slotz
      Src: /src/cpython/Objects/abstract.c:1084,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1085,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1085,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1089,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1094,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1099,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1100,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1103,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1108,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1109,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1110,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 5
    argNames:
    - v
    - w
    - z
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - char*
    assertStmts:
    - condition: (_Py_CheckSlotResult(v, op_name, x != NULL))
      pos:
        line_end: 1061
        line_start: 1061
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(w, op_name, x != NULL))
      pos:
        line_end: 1069
        line_start: 1069
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(z, op_name, x != NULL))
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1113
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1113
    functionName: ternary_op
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_IsSubtype
    - slotv
    - Py_IS_TYPE
    - _Py_CheckSlotResult
    - slotw
    - PyErr_Format
    - slotz
    - NB_TERNOP
    - Py_TYPE
    - assert
    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\n           )"
  - 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: 1120
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1120
    functionName: BINARY_FUNC
    functionSourceFile: /src/cpython/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/cpython/Objects/abstract.c:1132,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1136,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1138,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1141,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1141,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(v, "+", result != NULL))
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1146
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1146
    functionName: PyNumber_Add
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 24
    functionsReached:
    - Py_DECREF
    - BINARY_OP1
    - NB_SLOT
    - _Py_CheckSlotResult
    - binop_type_error
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Add(PyObject *v, PyObject *w)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:1152,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:1153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:1154,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1159,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1163,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - repeatfunc
    - seq
    - n
    argTypes:
    - ssizeargfunc
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(seq, "*", res != NULL))
      pos:
        line_end: 1162
        line_start: 1162
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1165
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1165
    functionName: sequence_repeat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - _PyIndex_Check
    - type_error
    - PyErr_Occurred
    - PyNumber_AsSsize_t
    - _Py_CheckSlotResult
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_repeat(ssizeargfunc repeatfunc, PyObject *seq, PyObject *n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_OP1
      Src: /src/cpython/Objects/abstract.c:1170,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1170,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1172,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1174,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1176,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1179,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1167
    functionDepth: 2
    functionLinenumber: 1167
    functionLinenumberEnd: 1184
    functionName: PyNumber_Multiply
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 20
    functionsReached:
    - Py_DECREF
    - BINARY_OP1
    - sequence_repeat
    - NB_SLOT
    - binop_type_error
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Multiply(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ternary_op
      Src: /src/cpython/Objects/abstract.c:1194,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1195
    functionName: PyNumber_Power
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - ternary_op
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Power(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Power
      Src: /src/cpython/Objects/abstract.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1197
    functionDepth: 3
    functionLinenumber: 1197
    functionLinenumberEnd: 1201
    functionName: _PyNumber_PowerNoMod
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyNumber_Power
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyNumber_PowerNoMod(PyObject *lhs, PyObject *rhs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1226,1
    - Dst: NB_BINOP
      Src: /src/cpython/Objects/abstract.c:1228,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1231,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1235,1
    - Dst: binary_op1
      Src: /src/cpython/Objects/abstract.c:1239,1
    - Dst: binary_op1
      Src: /src/cpython/Objects/abstract.c:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - v
    - w
    - iop_slot
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - char*
    assertStmts:
    - condition: (_Py_CheckSlotResult(v, op_name, x != NULL))
      pos:
        line_end: 1230
        line_start: 1230
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1243
      start: 1219
    functionDepth: 2
    functionLinenumber: 1219
    functionLinenumberEnd: 1243
    functionName: binary_iop1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_CheckSlotResult
    - Py_TYPE
    - binary_op1
    - assert
    - NB_BINOP
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinary_iop1(PyObject *v, PyObject *w, const int iop_slot,
      const int op_slot\n#ifndef NDEBUG\n            , const char *op_name\n#endif\n
      \           )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - iop_slot
    - ','
    - op_slot
    - ','
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1247
    functionName: BINARY_IOP1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_IOP1(v, w, iop_slot, op_slot, op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - iop_slot
    - ','
    - op_slot
    - ','
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1249
    functionName: BINARY_IOP1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_IOP1(v, w, iop_slot, op_slot, op_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1257,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1258,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: 1261
      start: 1251
    functionDepth: 2
    functionLinenumber: 1251
    functionLinenumberEnd: 1261
    functionName: binary_iop
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - binop_type_error
    - Py_DECREF
    - BINARY_IOP1
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1267,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1275,1
    - Dst: ternary_op
      Src: /src/cpython/Objects/abstract.c:1278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - v
    - w
    - z
    - iop_slot
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1279
    functionName: ternary_iop
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - NB_TERNOP
    - Py_TYPE
    - ternary_op
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nternary_iop(PyObject *v, PyObject *w, PyObject *z, 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: 1286
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1286
    functionName: INPLACE_BINOP
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INPLACE_BINOP(func, iop, op, op_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1301,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1301,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1302,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1305,1
    - Dst: func
      Src: /src/cpython/Objects/abstract.c:1311,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1312,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1312,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1316,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(v, "+=", result != NULL))
      pos:
        line_end: 1311
        line_start: 1311
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1319
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1319
    functionName: PyNumber_InPlaceAdd
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - BINARY_IOP1
    - func
    - NB_SLOT
    - _Py_CheckSlotResult
    - binop_type_error
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceAdd(PyObject *v, PyObject *w)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1324,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1324,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1325,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1328,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1330,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1336,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1343,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1348
    functionName: PyNumber_InPlaceMultiply
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - BINARY_IOP1
    - sequence_repeat
    - NB_SLOT
    - binop_type_error
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceMultiply(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ternary_iop
      Src: /src/cpython/Objects/abstract.c:1353,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1353,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1350
    functionDepth: 3
    functionLinenumber: 1350
    functionLinenumberEnd: 1355
    functionName: PyNumber_InPlacePower
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - ternary_iop
    - NB_SLOT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlacePower(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlacePower
      Src: /src/cpython/Objects/abstract.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1357
    functionDepth: 4
    functionLinenumber: 1357
    functionLinenumberEnd: 1361
    functionName: _PyNumber_InPlacePowerNoMod
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlacePower
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyNumber_InPlacePowerNoMod(PyObject *lhs, PyObject *rhs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - op
    - ','
    - meth_name
    - ','
    - descr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1382
    functionName: UNARY_FUNC
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNARY_FUNC(func, op, meth_name, descr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1393
    functionName: PyIndex_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 45
    functionsReached:
    - _PyIndex_Check
    linkageType: ''
    returnType: int
    signature: int PyIndex_Check(PyObject *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1405,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1408,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:1409,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:1411,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1412,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1414,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1418,1
    - Dst: nb_index
      Src: /src/cpython/Objects/abstract.c:1418,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1419,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1419,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1420,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1424,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1428,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/abstract.c:1432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(item, "__index__", result != NULL))
      pos:
        line_end: 1418
        line_start: 1418
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1441
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1441
    functionName: _PyNumber_Index
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 79
    functionsReached:
    - PyErr_WarnFormat
    - null_error
    - Py_DECREF
    - nb_index
    - _PyIndex_Check
    - PyLong_Check
    - Py_NewRef
    - _Py_CheckSlotResult
    - PyLong_CheckExact
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyNumber_Index(PyObject *item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1450,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1451,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:1452,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/abstract.c:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1455
    functionName: PyNumber_Index
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 93
    functionsReached:
    - _PyNumber_Index
    - Py_SETREF
    - PyLong_CheckExact
    - _PyLong_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Index(PyObject *item)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1464,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:1469,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:1473,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:1474,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/abstract.c:1480,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:1483,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1488,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1488,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/abstract.c:1492,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1499,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - item
    - err
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 1487
        line_start: 1487
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1507
      start: 1459
    functionDepth: 2
    functionLinenumber: 1459
    functionLinenumberEnd: 1507
    functionName: PyNumber_AsSsize_t
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 27
    functionsReached:
    - assert
    - _PyLong_IsNegative
    - Py_DECREF
    - _PyNumber_Index
    - _PyErr_Format
    - _PyErr_Clear
    - PyErr_GivenExceptionMatches
    - PyLong_Check
    - _PyThreadState_GET
    - Py_TYPE
    - _PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyNumber_AsSsize_t(PyObject *item, PyObject *err)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1518,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1521,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:1522,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1524,1
    - Dst: PyNumberMethods*::nb_int
      Src: /src/cpython/Objects/abstract.c:1528,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1529,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1529,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1530,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1534,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1538,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/abstract.c:1542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1547,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:1550,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/abstract.c:1550,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1554,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/abstract.c:1557,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/cpython/Objects/abstract.c:1559,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/abstract.c:1561,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/abstract.c:1566,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/abstract.c:1566,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:1567,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/abstract.c:1569,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/abstract.c:1570,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/abstract.c:1570,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:1571,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:1573,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/abstract.c:1577,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:1579,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/abstract.c:1582,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/abstract.c:1582,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:1583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1584,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:1585,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1589,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__int__", result != NULL))
      pos:
        line_end: 1528
        line_start: 1528
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1591
      start: 1510
    functionDepth: 3
    functionLinenumber: 1510
    functionLinenumberEnd: 1591
    functionName: PyNumber_Long
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - PyErr_WarnFormat
    - PyNumber_Index
    - _PyLong_Copy
    - Py_SETREF
    - PyBytes_Check
    - _PyLong_FromBytes
    - PyLong_CheckExact
    - PyBytes_GET_SIZE
    - PyLong_FromUnicodeObject
    - _Py_CheckSlotResult
    - PyErr_Format
    - PyUnicode_Check
    - PyNumberMethods*::nb_int
    - Py_DECREF
    - PyLong_Check
    - PyByteArray_AS_STRING
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyObject_GetBuffer
    - PyByteArray_GET_SIZE
    - PyBytes_AS_STRING
    - Py_TYPE
    - null_error
    - type_error
    - PyBuffer_Release
    - PyByteArray_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Long(PyObject *o)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1597,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/abstract.c:1600,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:1601,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1604,1
    - Dst: PyNumberMethods*::nb_float
      Src: /src/cpython/Objects/abstract.c:1606,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1607,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1607,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/abstract.c:1608,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/abstract.c:1612,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1615,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/abstract.c:1619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1624,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/abstract.c:1627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1628,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/abstract.c:1629,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1633,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/abstract.c:1637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1638,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:1639,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/abstract.c:1642,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/abstract.c:1646,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/abstract.c:1647,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/abstract.c:1647,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Objects/abstract.c:1649,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__float__", res != NULL))
      pos:
        line_end: 1606
        line_start: 1606
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1650
      start: 1593
    functionDepth: 2
    functionLinenumber: 1593
    functionLinenumberEnd: 1650
    functionName: PyNumber_Float
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PyErr_WarnFormat
    - PyFloat_Check
    - null_error
    - Py_DECREF
    - PyLong_AsDouble
    - PyFloat_FromString
    - PyFloat_CheckExact
    - _PyNumber_Index
    - PyErr_Occurred
    - Py_NewRef
    - _Py_CheckSlotResult
    - PyFloat_FromDouble
    - PyFloat_AS_DOUBLE
    - PyErr_Format
    - PyNumberMethods*::nb_float
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Float(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:1657,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1661,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Objects/abstract.c:1664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - n
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1653
    functionDepth: 2
    functionLinenumber: 1653
    functionLinenumberEnd: 1667
    functionName: PyNumber_ToBase
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - _PyNumber_Index
    - PyErr_SetString
    - Py_DECREF
    - _PyLong_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_ToBase(PyObject *n, int base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/abstract.c:1675,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1677,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1679
    functionName: PySequence_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 13
    functionsReached:
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PySequence_Check(PyObject *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1689,1
    - Dst: PySequenceMethods*::sq_length
      Src: /src/cpython/Objects/abstract.c:1691,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1692,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1692,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1696,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1696,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1697,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__len__", len >= 0))
      pos:
        line_end: 1691
        line_start: 1691
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1702
      start: 1681
    functionDepth: 2
    functionLinenumber: 1681
    functionLinenumberEnd: 1702
    functionName: PySequence_Size
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 18
    functionsReached:
    - null_error
    - PySequenceMethods*::sq_length
    - type_error
    - _Py_CheckSlotResult
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySequence_Size(PyObject *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/abstract.c:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1705
    functionDepth: 3
    functionLinenumber: 1705
    functionLinenumberEnd: 1709
    functionName: PySequence_Length
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 9
    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/cpython/Objects/abstract.c:1716,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1719,1
    - Dst: PySequenceMethods*::sq_concat
      Src: /src/cpython/Objects/abstract.c:1721,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1722,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1722,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1729,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1729,1
    - Dst: BINARY_OP1
      Src: /src/cpython/Objects/abstract.c:1730,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1733,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1735,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "+", res != NULL))
      pos:
        line_end: 1721
        line_start: 1721
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1736
      start: 1712
    functionDepth: 2
    functionLinenumber: 1712
    functionLinenumberEnd: 1736
    functionName: PySequence_Concat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 6
    functionsReached:
    - null_error
    - Py_DECREF
    - PySequence_Check
    - BINARY_OP1
    - PySequenceMethods*::sq_concat
    - type_error
    - _Py_CheckSlotResult
    - NB_SLOT
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Concat(PyObject *s, PyObject *o)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1742,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1745,1
    - Dst: PySequenceMethods*::sq_repeat
      Src: /src/cpython/Objects/abstract.c:1747,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1748,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1748,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1755,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/abstract.c:1757,1
    - Dst: BINARY_OP1
      Src: /src/cpython/Objects/abstract.c:1760,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1764,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1766,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - o
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "*", res != NULL))
      pos:
        line_end: 1747
        line_start: 1747
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1767
      start: 1738
    functionDepth: 2
    functionLinenumber: 1738
    functionLinenumberEnd: 1767
    functionName: PySequence_Repeat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - null_error
    - Py_DECREF
    - PySequence_Check
    - BINARY_OP1
    - type_error
    - PyLong_FromSsize_t
    - _Py_CheckSlotResult
    - NB_SLOT
    - Py_TYPE
    - assert
    - PySequenceMethods*::sq_repeat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Repeat(PyObject *o, Py_ssize_t count)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1773,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1776,1
    - Dst: PySequenceMethods*::sq_inplace_concat
      Src: /src/cpython/Objects/abstract.c:1778,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1779,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1779,1
    - Dst: PySequenceMethods*::sq_concat
      Src: /src/cpython/Objects/abstract.c:1783,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1784,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1784,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1788,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1788,1
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1789,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1789,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1790,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1793,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1795,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "+=", res != NULL))
      pos:
        line_end: 1778
        line_start: 1778
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "+", res != NULL))
      pos:
        line_end: 1783
        line_start: 1783
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1796
      start: 1769
    functionDepth: 2
    functionLinenumber: 1769
    functionLinenumberEnd: 1796
    functionName: PySequence_InPlaceConcat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - null_error
    - Py_DECREF
    - PySequence_Check
    - BINARY_IOP1
    - PySequenceMethods*::sq_inplace_concat
    - PySequenceMethods*::sq_concat
    - type_error
    - _Py_CheckSlotResult
    - NB_SLOT
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_InPlaceConcat(PyObject *s, PyObject *o)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1802,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1805,1
    - Dst: PySequenceMethods*::sq_inplace_repeat
      Src: /src/cpython/Objects/abstract.c:1807,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1808,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1808,1
    - Dst: PySequenceMethods*::sq_repeat
      Src: /src/cpython/Objects/abstract.c:1812,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1813,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1813,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1817,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/abstract.c:1819,1
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1822,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1822,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1827,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1829,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - o
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "*=", res != NULL))
      pos:
        line_end: 1807
        line_start: 1807
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(o, "*", res != NULL))
      pos:
        line_end: 1812
        line_start: 1812
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1830
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1830
    functionName: PySequence_InPlaceRepeat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - null_error
    - Py_DECREF
    - PySequence_Check
    - BINARY_IOP1
    - type_error
    - PyLong_FromSsize_t
    - PySequenceMethods*::sq_inplace_repeat
    - _Py_CheckSlotResult
    - NB_SLOT
    - Py_TYPE
    - assert
    - 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/cpython/Objects/abstract.c:1836,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1839,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1844,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1844,1
    - Dst: PySequenceMethods*::sq_item
      Src: /src/cpython/Objects/abstract.c:1851,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1852,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1852,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1856,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1856,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1857,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1859,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__len__", l >= 0))
      pos:
        line_end: 1843
        line_start: 1843
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "__getitem__", res != NULL))
      pos:
        line_end: 1851
        line_start: 1851
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1860
      start: 1832
    functionDepth: 2
    functionLinenumber: 1832
    functionLinenumberEnd: 1860
    functionName: PySequence_GetItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 17
    functionsReached:
    - assert
    - null_error
    - type_error
    - _Py_CheckSlotResult
    - Py_TYPE
    - 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/cpython/Objects/abstract.c:1866,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1869,1
    - Dst: _PySlice_FromIndices
      Src: /src/cpython/Objects/abstract.c:1871,1
    - Dst: PyMappingMethods*::mp_subscript
      Src: /src/cpython/Objects/abstract.c:1875,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1876,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1877,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1881,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - s
    - i1
    - i2
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__getitem__", res != NULL))
      pos:
        line_end: 1875
        line_start: 1875
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1882
      start: 1862
    functionDepth: 4
    functionLinenumber: 1862
    functionLinenumberEnd: 1882
    functionName: PySequence_GetSlice
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - null_error
    - Py_DECREF
    - type_error
    - _Py_CheckSlotResult
    - PyMappingMethods*::mp_subscript
    - _PySlice_FromIndices
    - Py_TYPE
    - assert
    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/cpython/Objects/abstract.c:1888,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1892,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1897,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1897,1
    - Dst: PySequenceMethods*::sq_ass_item
      Src: /src/cpython/Objects/abstract.c:1904,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1905,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1905,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1909,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1909,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1910,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1913,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - s
    - i
    - o
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__len__", l >= 0))
      pos:
        line_end: 1896
        line_start: 1896
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "__setitem__", res >= 0))
      pos:
        line_end: 1904
        line_start: 1904
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1915
      start: 1884
    functionDepth: 2
    functionLinenumber: 1884
    functionLinenumberEnd: 1915
    functionName: PySequence_SetItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - null_error
    - type_error
    - _Py_CheckSlotResult
    - PySequenceMethods*::sq_ass_item
    - Py_TYPE
    - 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/cpython/Objects/abstract.c:1921,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1925,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1930,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1930,1
    - Dst: PySequenceMethods*::sq_ass_item
      Src: /src/cpython/Objects/abstract.c:1937,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1938,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1938,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1942,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1942,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1943,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1946,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__len__", l >= 0))
      pos:
        line_end: 1929
        line_start: 1929
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "__delitem__", res >= 0))
      pos:
        line_end: 1937
        line_start: 1937
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1948
      start: 1917
    functionDepth: 2
    functionLinenumber: 1917
    functionLinenumberEnd: 1948
    functionName: PySequence_DelItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - null_error
    - type_error
    - _Py_CheckSlotResult
    - PySequenceMethods*::sq_ass_item
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PySequence_DelItem(PyObject *s, Py_ssize_t i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1954,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1958,1
    - Dst: _PySlice_FromIndices
      Src: /src/cpython/Objects/abstract.c:1960,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:1963,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1964,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1965,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1969,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - s
    - i1
    - i2
    - o
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__setitem__", res >= 0))
      pos:
        line_end: 1963
        line_start: 1963
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1971
      start: 1950
    functionDepth: 4
    functionLinenumber: 1950
    functionLinenumberEnd: 1971
    functionName: PySequence_SetSlice
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - Py_DECREF
    - type_error
    - _Py_CheckSlotResult
    - _PySlice_FromIndices
    - Py_TYPE
    - assert
    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/cpython/Objects/abstract.c:1977,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1981,1
    - Dst: _PySlice_FromIndices
      Src: /src/cpython/Objects/abstract.c:1983,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:1987,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1988,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1989,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1992,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - s
    - i1
    - i2
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__delitem__", res >= 0))
      pos:
        line_end: 1987
        line_start: 1987
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1994
      start: 1973
    functionDepth: 4
    functionLinenumber: 1973
    functionLinenumberEnd: 1994
    functionName: PySequence_DelSlice
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - Py_DECREF
    - type_error
    - _Py_CheckSlotResult
    - _PySlice_FromIndices
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PySequence_DelSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2002,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/abstract.c:2006,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:2011,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/abstract.c:2013,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/abstract.c:2014,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2017,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/abstract.c:2024,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2029,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Objects/abstract.c:2030,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/abstract.c:2034,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2038,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/abstract.c:2039,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/abstract.c:2041,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/abstract.c:2044,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2048,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Objects/abstract.c:2053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2059,1
    - Dst: _PyList_AsTupleAndClear
      Src: /src/cpython/Objects/abstract.c:2060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2067,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (n == 8)
      pos:
        line_end: 2037
        line_start: 2037
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2070
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2070
    functionName: PySequence_Tuple
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 14
    functionsReached:
    - PyList_CheckExact
    - PyList_New
    - assert
    - null_error
    - Py_DECREF
    - Py_SET_SIZE
    - _PyTuple_FromArraySteal
    - PyErr_Occurred
    - PyObject_GetIter
    - PyList_AsTuple
    - PyIter_Next
    - PyList_SET_ITEM
    - Py_NewRef
    - _PyList_AppendTakeRef
    - _PyList_AsTupleAndClear
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Tuple(PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2079,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/abstract.c:2082,1
    - Dst: _PyList_Extend
      Src: /src/cpython/Objects/abstract.c:2086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2093
    functionName: PySequence_List
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 12
    functionsReached:
    - PyList_New
    - null_error
    - _PyList_Extend
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_List(PyObject *v)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2101,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/abstract.c:2104,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/abstract.c:2104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:2105,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2108,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2110,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2111,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2112,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/abstract.c:2117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - v
    - m
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2095
    functionDepth: 2
    functionLinenumber: 2095
    functionLinenumberEnd: 2121
    functionName: PySequence_Fast
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 16
    functionsReached:
    - PyList_CheckExact
    - null_error
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - PyObject_GetIter
    - Py_NewRef
    - _PyThreadState_GET
    - PySequence_List
    - _PyErr_SetString
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Fast(PyObject *v, const char *m)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2137,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2141,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2143,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2145,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2151,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/abstract.c:2160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2162,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/abstract.c:2167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2168,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2184,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/abstract.c:2195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2216,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 3
    argNames:
    - seq
    - obj
    - operation
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2129
    functionDepth: 4
    functionLinenumber: 2129
    functionLinenumberEnd: 2219
    functionName: _PySequence_IterSearch
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - null_error
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - type_error
    - PyErr_SetString
    - PyIter_Next
    - PyErr_ExceptionMatches
    - PyObject_RichCompareBool
    - Py_UNREACHABLE
    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/cpython/Objects/abstract.c:2225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2222
    functionDepth: 5
    functionLinenumber: 2222
    functionLinenumberEnd: 2226
    functionName: PySequence_Count
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - _PySequence_IterSearch
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySequence_Count(PyObject *s, PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2234,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2237,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:2237,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/abstract.c:2240,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/abstract.c:2241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - seq
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(seq, "__contains__", res >= 0))
      pos:
        line_end: 2236
        line_start: 2236
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2242
      start: 2231
    functionDepth: 5
    functionLinenumber: 2231
    functionLinenumberEnd: 2242
    functionName: PySequence_Contains
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 7
    functionsReached:
    - _PySequence_IterSearch
    - _Py_CheckSlotResult
    - Py_SAFE_DOWNCAST
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PySequence_Contains(PyObject *seq, PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/abstract.c:2249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2246
    functionDepth: 6
    functionLinenumber: 2246
    functionLinenumberEnd: 2250
    functionName: PySequence_In
    functionSourceFile: /src/cpython/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/cpython/Objects/abstract.c:2255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2252
    functionDepth: 5
    functionLinenumber: 2252
    functionLinenumberEnd: 2256
    functionName: PySequence_Index
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - _PySequence_IterSearch
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySequence_Index(PyObject *s, PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2265
    functionName: PyMapping_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 7
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyMapping_Check(PyObject *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2271,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2275,1
    - Dst: PyMappingMethods*::mp_length
      Src: /src/cpython/Objects/abstract.c:2277,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2278,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:2278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2282,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2282,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2283,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__len__", len >= 0))
      pos:
        line_end: 2277
        line_start: 2277
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2289
      start: 2267
    functionDepth: 2
    functionLinenumber: 2267
    functionLinenumberEnd: 2289
    functionName: PyMapping_Size
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - null_error
    - type_error
    - _Py_CheckSlotResult
    - PyMappingMethods*::mp_length
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyMapping_Size(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Size
      Src: /src/cpython/Objects/abstract.c:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2292
    functionDepth: 3
    functionLinenumber: 2292
    functionLinenumberEnd: 2296
    functionName: PyMapping_Length
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    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/cpython/Objects/abstract.c:2305,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:2308,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/abstract.c:2311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2299
    functionDepth: 3
    functionLinenumber: 2299
    functionLinenumberEnd: 2314
    functionName: PyMapping_GetItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - null_error
    - Py_DECREF
    - PyUnicode_FromString
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_GetItemString(PyObject *o, const char *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2321,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:2324,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/abstract.c:2329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - key
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2316
    functionDepth: 9
    functionLinenumber: 2316
    functionLinenumberEnd: 2332
    functionName: PyMapping_GetOptionalItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 6
    functionsReached:
    - null_error
    - PyMapping_GetOptionalItem
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyMapping_GetOptionalItemString(PyObject *obj, const char *key,
      PyObject **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2341,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:2345,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/abstract.c:2348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - o
    - key
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2334
    functionDepth: 3
    functionLinenumber: 2334
    functionLinenumberEnd: 2351
    functionName: PyMapping_SetItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyObject_SetItem
    - null_error
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyMapping_SetItemString(PyObject *o, const char *key, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Objects/abstract.c:2357,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2353
    functionDepth: 10
    functionLinenumber: 2353
    functionLinenumberEnd: 2360
    functionName: PyMapping_HasKeyStringWithError
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyMapping_GetOptionalItemString
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKeyStringWithError(PyObject *obj, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/abstract.c:2366,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2362
    functionDepth: 9
    functionLinenumber: 2362
    functionLinenumberEnd: 2369
    functionName: PyMapping_HasKeyWithError
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKeyWithError(PyObject *obj, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2379,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Objects/abstract.c:2383,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/abstract.c:2386,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2371
    functionDepth: 10
    functionLinenumber: 2371
    functionLinenumberEnd: 2394
    functionName: PyMapping_HasKeyString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyErr_FormatUnraisable
    - Py_XDECREF
    - null_error
    - PyMapping_GetOptionalItemString
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKeyString(PyObject *obj, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2404,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/abstract.c:2408,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/abstract.c:2411,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2396
    functionDepth: 9
    functionLinenumber: 2396
    functionLinenumberEnd: 2419
    functionName: PyMapping_HasKey
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyErr_FormatUnraisable
    - Py_XDECREF
    - null_error
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKey(PyObject *obj, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2429,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/abstract.c:2430,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/abstract.c:2431,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2434,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2436,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2437,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2445,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/abstract.c:2446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - o
    - meth
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (o != NULL)
      pos:
        line_end: 2428
        line_start: 2428
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2449
      start: 2424
    functionDepth: 2
    functionLinenumber: 2424
    functionLinenumberEnd: 2449
    functionName: method_output_as_list
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - _PyErr_Format
    - PyObject_GetIter
    - PyObject_CallMethodNoArgs
    - _PyThreadState_GET
    - PySequence_List
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_output_as_list(PyObject *o, PyObject *meth)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2455,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/abstract.c:2457,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/abstract.c:2458,1
    - Dst: method_output_as_list
      Src: /src/cpython/Objects/abstract.c:2460,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2451
    functionDepth: 5
    functionLinenumber: 2451
    functionLinenumberEnd: 2461
    functionName: PyMapping_Keys
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 6
    functionsReached:
    - null_error
    - PyDict_CheckExact
    - _Py_ID
    - PyDict_Keys
    - method_output_as_list
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Keys(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2467,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/abstract.c:2469,1
    - Dst: PyDict_Items
      Src: /src/cpython/Objects/abstract.c:2470,1
    - Dst: method_output_as_list
      Src: /src/cpython/Objects/abstract.c:2472,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2463
    functionDepth: 5
    functionLinenumber: 2463
    functionLinenumberEnd: 2473
    functionName: PyMapping_Items
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - null_error
    - PyDict_Items
    - PyDict_CheckExact
    - _Py_ID
    - method_output_as_list
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Items(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2479,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/abstract.c:2481,1
    - Dst: PyDict_Values
      Src: /src/cpython/Objects/abstract.c:2482,1
    - Dst: method_output_as_list
      Src: /src/cpython/Objects/abstract.c:2484,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2475
    functionDepth: 5
    functionLinenumber: 2475
    functionLinenumberEnd: 2485
    functionName: PyMapping_Values
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - null_error
    - PyDict_CheckExact
    - _Py_ID
    - method_output_as_list
    - PyDict_Values
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Values(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/abstract.c:2518,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2518,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/abstract.c:2519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2513
    functionDepth: 2
    functionLinenumber: 2513
    functionLinenumberEnd: 2524
    functionName: abstract_get_bases
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - _Py_ID
    - Py_DECREF
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      abstract_get_bases(PyObject *cls)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2536,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/abstract.c:2544,1
    - Dst: abstract_get_bases
      Src: /src/cpython/Objects/abstract.c:2544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2546,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:2550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2552,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2557,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2562,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/abstract.c:2563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2564,1
    - Dst: abstract_issubclass
      Src: /src/cpython/Objects/abstract.c:2568,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2568,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/abstract.c:2573,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2574,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (n >= 2)
      pos:
        line_end: 2561
        line_start: 2561
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2576
      start: 2527
    functionDepth: 3
    functionLinenumber: 2527
    functionLinenumberEnd: 2576
    functionName: abstract_issubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - abstract_issubclass
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - _Py_EnterRecursiveCall
    - abstract_get_bases
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - _Py_LeaveRecursiveCall
    - assert
    linkageType: ''
    returnType: int
    signature: int abstract_issubclass(PyObject *derived, PyObject *cls)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abstract_get_bases
      Src: /src/cpython/Objects/abstract.c:2581,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2584,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2585,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cls
    - error
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2578
    functionDepth: 3
    functionLinenumber: 2578
    functionLinenumberEnd: 2592
    functionName: check_class
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyThreadState_GET
    - abstract_get_bases
    - _PyErr_SetString
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int check_class(PyObject *cls, const char *error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/abstract.c:2599,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/abstract.c:2600,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/abstract.c:2602,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2604,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/abstract.c:2604,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:2605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2612,1
    - Dst: check_class
      Src: /src/cpython/Objects/abstract.c:2617,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/abstract.c:2620,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2620,1
    - Dst: abstract_issubclass
      Src: /src/cpython/Objects/abstract.c:2622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2623,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2594
    functionDepth: 4
    functionLinenumber: 2594
    functionLinenumberEnd: 2628
    functionName: object_isinstance
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - abstract_issubclass
    - PyObject_TypeCheck
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyType_IsSubtype
    - _Py_ID
    - check_class
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int object_isinstance(PyObject *inst, PyObject *cls)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/abstract.c:2634,1
    - Dst: PyType_CheckExact
      Src: /src/cpython/Objects/abstract.c:2639,1
    - Dst: object_isinstance
      Src: /src/cpython/Objects/abstract.c:2640,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/abstract.c:2643,1
    - Dst: _Py_union_args
      Src: /src/cpython/Objects/abstract.c:2644,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/abstract.c:2647,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2650,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:2653,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2656,1
    - Dst: object_recursive_isinstance
      Src: /src/cpython/Objects/abstract.c:2657,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2663,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/abstract.c:2667,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2667,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2670,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/abstract.c:2674,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2676,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/abstract.c:2681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2682,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2686,1
    - Dst: object_isinstance
      Src: /src/cpython/Objects/abstract.c:2691,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - tstate
    - inst
    - cls
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2630
    functionDepth: 5
    functionLinenumber: 2630
    functionLinenumberEnd: 2692
    functionName: object_recursive_isinstance
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - object_recursive_isinstance
    - PyObject_IsTrue
    - _PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyType_CheckExact
    - _Py_union_args
    - PyTuple_Check
    - _Py_EnterRecursiveCallTstate
    - _Py_LeaveRecursiveCallTstate
    - _Py_ID
    - _PyObject_LookupSpecial
    - Py_IS_TYPE
    - PyObject_CallOneArg
    - PyTuple_GET_ITEM
    - _PyUnion_Check
    - object_isinstance
    linkageType: ''
    returnType: int
    signature: int object_recursive_isinstance(PyThreadState *tstate, PyObject *inst,
      PyObject *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2698,1
    - Dst: object_recursive_isinstance
      Src: /src/cpython/Objects/abstract.c:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2695
    functionDepth: 6
    functionLinenumber: 2695
    functionLinenumberEnd: 2700
    functionName: PyObject_IsInstance
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 13
    functionsReached:
    - _PyThreadState_GET
    - object_recursive_isinstance
    linkageType: ''
    returnType: int
    signature: int PyObject_IsInstance(PyObject *inst, PyObject *cls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/abstract.c:2706,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/abstract.c:2706,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:2708,1
    - Dst: check_class
      Src: /src/cpython/Objects/abstract.c:2710,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/abstract.c:2714,1
    - Dst: check_class
      Src: /src/cpython/Objects/abstract.c:2714,1
    - Dst: abstract_issubclass
      Src: /src/cpython/Objects/abstract.c:2720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2703
    functionDepth: 4
    functionLinenumber: 2703
    functionLinenumberEnd: 2721
    functionName: recursive_issubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - abstract_issubclass
    - PyType_IsSubtype
    - check_class
    - _PyUnion_Check
    linkageType: ''
    returnType: int
    signature: int recursive_issubclass(PyObject *derived, PyObject *cls)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyType_CheckExact
      Src: /src/cpython/Objects/abstract.c:2729,1
    - Dst: recursive_issubclass
      Src: /src/cpython/Objects/abstract.c:2733,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/abstract.c:2736,1
    - Dst: _Py_union_args
      Src: /src/cpython/Objects/abstract.c:2737,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/abstract.c:2740,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2742,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:2745,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2748,1
    - Dst: object_issubclass
      Src: /src/cpython/Objects/abstract.c:2749,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2754,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/abstract.c:2758,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2758,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2762,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/abstract.c:2765,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2766,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2767,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/abstract.c:2769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2770,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2774,1
    - Dst: recursive_issubclass
      Src: /src/cpython/Objects/abstract.c:2779,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - tstate
    - derived
    - cls
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2723
    functionDepth: 5
    functionLinenumber: 2723
    functionLinenumberEnd: 2780
    functionName: object_issubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyObject_IsTrue
    - _PyErr_Occurred
    - recursive_issubclass
    - PyTuple_GET_SIZE
    - PyType_CheckExact
    - _Py_union_args
    - PyTuple_Check
    - _Py_EnterRecursiveCallTstate
    - _Py_LeaveRecursiveCallTstate
    - object_issubclass
    - _Py_ID
    - Py_DECREF
    - _PyObject_LookupSpecial
    - PyObject_CallOneArg
    - PyTuple_GET_ITEM
    - _PyUnion_Check
    linkageType: ''
    returnType: int
    signature: int object_issubclass(PyThreadState *tstate, PyObject *derived, PyObject
      *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2786,1
    - Dst: object_issubclass
      Src: /src/cpython/Objects/abstract.c:2787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2783
    functionDepth: 6
    functionLinenumber: 2783
    functionLinenumberEnd: 2788
    functionName: PyObject_IsSubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - _PyThreadState_GET
    - object_issubclass
    linkageType: ''
    returnType: int
    signature: int PyObject_IsSubclass(PyObject *derived, PyObject *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_isinstance
      Src: /src/cpython/Objects/abstract.c:2794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2791
    functionDepth: 5
    functionLinenumber: 2791
    functionLinenumberEnd: 2795
    functionName: _PyObject_RealIsInstance
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - object_isinstance
    linkageType: ''
    returnType: int
    signature: int _PyObject_RealIsInstance(PyObject *inst, PyObject *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recursive_issubclass
      Src: /src/cpython/Objects/abstract.c:2800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2797
    functionDepth: 5
    functionLinenumber: 2797
    functionLinenumberEnd: 2801
    functionName: _PyObject_RealIsSubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - recursive_issubclass
    linkageType: ''
    returnType: int
    signature: int _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2807,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:2812,1
    - Dst: PySeqIter_New
      Src: /src/cpython/Objects/abstract.c:2813,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2814,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/abstract.c:2818,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2819,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:2822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2804
    functionDepth: 2
    functionLinenumber: 2804
    functionLinenumberEnd: 2826
    functionName: PyObject_GetIter
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 58
    functionsReached:
    - PySequence_Check
    - type_error
    - PySeqIter_New
    - Py_SETREF
    - PyIter_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetIter(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2830,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2834,1
    - Dst: PyAIter_Check
      Src: /src/cpython/Objects/abstract.c:2838,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2839,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:2842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2828
    functionDepth: 2
    functionLinenumber: 2828
    functionLinenumberEnd: 2845
    functionName: PyObject_GetAIter
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyAIter_Check
    - type_error
    - Py_SETREF
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetAIter(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2847
    functionDepth: 0
    functionLinenumber: 2847
    functionLinenumberEnd: 2853
    functionName: PyIter_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 4
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyIter_Check(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2855
    functionDepth: 0
    functionLinenumber: 2855
    functionLinenumberEnd: 2862
    functionName: PyAIter_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyAIter_Check(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2867,1
    - Dst: tp_iternext
      Src: /src/cpython/Objects/abstract.c:2868,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2872,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2875,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2878,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:2879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - iter
    - item
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2864
    functionDepth: 1
    functionLinenumber: 2864
    functionLinenumberEnd: 2885
    functionName: iternext
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 12
    functionsReached:
    - _PyErr_ExceptionMatches
    - _PyErr_Clear
    - _PyThreadState_GET
    - tp_iternext
    - Py_TYPE
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int iternext(PyObject *iter, PyObject **item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2894,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2895,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2897,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2899,1
    - Dst: iternext
      Src: /src/cpython/Objects/abstract.c:2903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - iter
    - item
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 2893
        line_start: 2893
        source_file: /src/cpython/Objects/abstract.c
    - condition: (item != NULL)
      pos:
        line_end: 2894
        line_start: 2894
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2904
      start: 2891
    functionDepth: 2
    functionLinenumber: 2891
    functionLinenumberEnd: 2904
    functionName: PyIter_NextItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - iternext
    - Py_TYPE
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyIter_NextItem(PyObject *iter, PyObject **item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iternext
      Src: /src/cpython/Objects/abstract.c:2918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2914
    functionDepth: 2
    functionLinenumber: 2914
    functionLinenumberEnd: 2920
    functionName: PyIter_Next
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 38
    functionsReached:
    - iternext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIter_Next(PyObject *iter)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2925,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2926,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2927,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2927,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2928,1
    - Dst: am_send
      Src: /src/cpython/Objects/abstract.c:2928,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2929,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:2929,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/abstract.c:2932,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2933,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/abstract.c:2936,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2936,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/cpython/Objects/abstract.c:2941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - iter
    - arg
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 2924
        line_start: 2924
        source_file: /src/cpython/Objects/abstract.c
    - condition: (result != NULL)
      pos:
        line_end: 2925
        line_start: 2925
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(iter, "am_send", res != PYGEN_ERROR))
      pos:
        line_end: 2928
        line_start: 2928
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2945
      start: 2922
    functionDepth: 1
    functionLinenumber: 2922
    functionLinenumberEnd: 2945
    functionName: PyIter_Send
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - am_send
    - _PyGen_FetchStopIterationValue
    - _Py_ID
    - _Py_CheckSlotResult
    - PyIter_Check
    - PyObject_CallMethodOneArg
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **result)
  - 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: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: _PyGen_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGen_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: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: _PyCoroObject_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCoroObject_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: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: _PyAsyncGenObject_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyAsyncGenObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/genobject.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: _PyGen_GetCode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _PyGen_GetCode(PyGenObject *gen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:54,1
    - Dst: PyGen_Check
      Src: /src/cpython/Objects/genobject.c:54,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:55,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genobject.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts:
    - condition: (PyGen_Check(gen))
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: PyGen_GetCode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - PyGen_Check
    - Py_INCREF
    - _PyGen_GetCode
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyGen_GetCode(PyGenObject *gen)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:63,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:64,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:65,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:68,1
    - Dst: _PyFrame_Traverse
      Src: /src/cpython/Objects/genobject.c:70,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Objects/genobject.c:78,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: "(frame->frame_obj == NULL ||\n               frame->frame_obj->f_frame->owner
        == FRAME_OWNED_BY_GENERATOR)"
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 84
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 84
    functionName: gen_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _Py_VISIT_STACKREF
    - Py_VISIT
    - _PyFrame_Traverse
    - assert
    - _PyGen_CAST
    linkageType: ''
    returnType: int
    signature: int gen_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:91,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:96,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/genobject.c:101,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genobject.c:103,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/genobject.c:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:109,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/genobject.c:112,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/genobject.c:118,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:122,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:122,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:123,1
    - Dst: _PyErr_WarnUnawaitedCoroutine
      Src: /src/cpython/Objects/genobject.c:126,1
    - Dst: gen_close
      Src: /src/cpython/Objects/genobject.c:129,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:131,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/genobject.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:137,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/genobject.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyGen_GetCode(gen) != NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 143
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 143
    functionName: _PyGen_Finalize
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyAsyncGen_CheckExact
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - _PyErr_WarnUnawaitedCoroutine
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    - gen_close
    - FRAME_STATE_FINISHED
    - _PyGen_GetCode
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyGen_Finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_ClearExceptCode
      Src: /src/cpython/Objects/genobject.c:154,1
    - Dst: _PyErr_ClearExcState
      Src: /src/cpython/Objects/genobject.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: gen_clear_frame
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_ClearExceptCode
    - _PyErr_ClearExcState
    linkageType: ''
    returnType: void
    signature: void gen_clear_frame(PyGenObject *gen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:161,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:163,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/genobject.c:165,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:167,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/genobject.c:169,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:172,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:173,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:177,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:179,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:180,1
    - Dst: gen_clear_frame
      Src: /src/cpython/Objects/genobject.c:182,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:183,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/genobject.c:184,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:185,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:186,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genobject.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (gen->gi_exc_state.exc_value == NULL)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 189
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 189
    functionName: gen_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_clear_frame
    - PyAsyncGen_CheckExact
    - PyObject_CallFinalizerFromDealloc
    - _PyObject_GC_TRACK
    - FT_CLEAR_WEAKREFS
    - PyCoro_CheckExact
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - PyStackRef_CLEAR
    - Py_CLEAR
    - assert
    - _PyGen_CAST
    linkageType: ''
    returnType: void
    signature: void gen_dealloc(PyObject *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:195,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:202,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:205,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:209,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:214,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:217,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:220,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:223,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:224,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:228,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:235,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:241,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:242,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Objects/genobject.c:246,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/genobject.c:246,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:253,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:253,1
    - Dst: _PyErr_ChainStackItem
      Src: /src/cpython/Objects/genobject.c:254,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Objects/genobject.c:258,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Objects/genobject.c:259,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:260,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:261,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:262,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:263,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:268,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:272,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:272,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:273,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:275,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:279,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:279,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:280,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:280,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:281,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:284,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:285,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 5
    argNames:
    - gen
    - arg
    - presult
    - exc
    - closing
    argTypes:
    - PyGenObject*
    - PyObject*
    - PyObject**
    - int
    - int
    assertStmts:
    - condition: (tstate->exc_info == prev_exc_info)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Objects/genobject.c
    - condition: (gen->gi_exc_state.previous_item == NULL)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Objects/genobject.c
    - condition: "(!PyAsyncGen_CheckExact(gen) ||\n            !PyErr_ExceptionMatches(PyExc_StopAsyncIteration))"
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/cpython/Objects/genobject.c
    - condition: (!PyErr_ExceptionMatches(PyExc_StopIteration))
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/cpython/Objects/genobject.c
    - condition: "((gen->gi_frame_state == FRAME_CREATED) ||\n           FRAME_STATE_SUSPENDED(gen->gi_frame_state))"
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/cpython/Objects/genobject.c
    - condition: (gen->gi_frame_state == FRAME_CLEARED)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Objects/genobject.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/cpython/Objects/genobject.c
    - condition: (gen->gi_frame_state != FRAME_EXECUTING)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/cpython/Objects/genobject.c
    - condition: (result == Py_None || !PyAsyncGen_CheckExact(gen))
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Objects/genobject.c
    - condition: (frame->previous == NULL)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Objects/genobject.c
    - condition: (gen->gi_exc_state.exc_value == NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 288
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 288
    functionName: gen_send_ex2
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_EvalFrame
    - PyAsyncGen_CheckExact
    - Py_CLEAR
    - _PyFrame_StackPush
    - PyErr_SetString
    - PyCoro_CheckExact
    - _PyThreadState_GET
    - Py_NewRef
    - FRAME_STATE_SUSPENDED
    - PyStackRef_FromPyObjectNew
    - PyErr_ExceptionMatches
    - EVAL_CALL_STAT_INC
    - FRAME_STATE_FINISHED
    - _PyErr_ChainStackItem
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PySendResult
    signature: "PySendResult gen_send_ex2(PyGenObject *gen, PyObject *arg, PyObject
      **presult,\n             int exc, int closing)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:293,1
    - Dst: gen_send_ex2
      Src: /src/cpython/Objects/genobject.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: PyGen_am_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send_ex2
    - _PyGen_CAST
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult PyGen_am_send(PyObject *self, PyObject *arg, PyObject
      **result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gen_send_ex2
      Src: /src/cpython/Objects/genobject.c:301,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:302,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:303,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:304,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:307,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/genobject.c:310,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - gen
    - arg
    - exc
    - closing
    argTypes:
    - PyGenObject*
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (result == Py_None)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 315
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 315
    functionName: gen_send_ex
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyAsyncGen_CheckExact
    - _PyGen_SetStopIterationValue
    - gen_send_ex2
    - PyErr_SetNone
    - Py_CLEAR
    - assert
    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/cpython/Objects/genobject.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gen
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: gen_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_send(PyObject *gen, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:340,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:340,1
    - Dst: gen_close
      Src: /src/cpython/Objects/genobject.c:341,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genobject.c:347,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:347,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/genobject.c:348,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/genobject.c:352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:353,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - yf
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 360
    functionName: gen_close_iter
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - PyCoro_CheckExact
    - PyErr_FormatUnraisable
    - PyGen_CheckExact
    - gen_close
    linkageType: ''
    returnType: int
    signature: int gen_close_iter(PyObject *yf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_UINT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - instr
    argTypes:
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 371
    functionName: is_resume
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_UINT8_RELAXED
    linkageType: ''
    returnType: bool
    signature: bool is_resume(_Py_CODEUNIT *instr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Objects/genobject.c:381,1
    - Dst: _PyFrame_StackPeek
      Src: /src/cpython/Objects/genobject.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: _PyGen_yf
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectNew
    - _PyFrame_StackPeek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGen_yf(PyGenObject *gen)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:389,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:395,1
    - Dst: _PyGen_yf
      Src: /src/cpython/Objects/genobject.c:399,1
    - Dst: gen_close_iter
      Src: /src/cpython/Objects/genobject.c:404,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:406,1
    - Dst: is_resume
      Src: /src/cpython/Objects/genobject.c:409,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:416,1
    - Dst: gen_clear_frame
      Src: /src/cpython/Objects/genobject.c:418,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:423,1
    - Dst: gen_send_ex
      Src: /src/cpython/Objects/genobject.c:426,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:429,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:434,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:435,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:438,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:438,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:440,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:441,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/cpython/Objects/genobject.c:447,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((oparg & RESUME_OPARG_LOCATION_MASK) != RESUME_AT_FUNC_START)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/cpython/Objects/genobject.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 451
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 451
    functionName: gen_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - gen_clear_frame
    - gen_close_iter
    - Py_DECREF
    - PyAsyncGen_CheckExact
    - PyErr_Occurred
    - _PyGen_FetchStopIterationValue
    - PyErr_SetString
    - is_resume
    - PyCoro_CheckExact
    - gen_send_ex
    - PyErr_ExceptionMatches
    - PyErr_SetNone
    - _PyGen_yf
    - FRAME_STATE_FINISHED
    - PyErr_Clear
    - assert
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_close(PyObject *self, PyObject *args)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_yf
      Src: /src/cpython/Objects/genobject.c:467,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/genobject.c:473,1
    - Dst: gen_close_iter
      Src: /src/cpython/Objects/genobject.c:482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:484,1
    - Dst: gen_send_ex
      Src: /src/cpython/Objects/genobject.c:486,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:489,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:490,1
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:491,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:491,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:504,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genobject.c:512,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:517,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/genobject.c:526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:532,1
    - Dst: gen_send_ex
      Src: /src/cpython/Objects/genobject.c:534,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Objects/genobject.c:545,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:546,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genobject.c:551,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/genobject.c:552,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/genobject.c:553,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/genobject.c:555,1
    - Dst: PyErr_NormalizeException
      Src: /src/cpython/Objects/genobject.c:556,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/genobject.c:558,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:561,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/genobject.c:567,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:568,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Objects/genobject.c:568,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Objects/genobject.c:572,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:577,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genobject.c:580,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Objects/genobject.c:584,1
    - Dst: gen_send_ex
      Src: /src/cpython/Objects/genobject.c:585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:589,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:590,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:591,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 5
    argNames:
    - gen
    - close_on_genexit
    - typ
    - val
    - tb
    argTypes:
    - PyGenObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 593
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 593
    functionName: _gen_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyException_GetTraceback
    - PyErr_SetString
    - _PyThreadState_GET
    - PyGen_CheckExact
    - PyErr_NormalizeException
    - PyExceptionClass_Check
    - _gen_throw
    - PyExceptionInstance_Check
    - Py_INCREF
    - PyObject_CallFunctionObjArgs
    - _PyGen_yf
    - PyErr_Format
    - gen_close_iter
    - PyExceptionInstance_Class
    - Py_DECREF
    - _Py_ID
    - PyErr_GivenExceptionMatches
    - PyErr_Restore
    - Py_NewRef
    - PyTraceBack_Check
    - Py_TYPE
    - PyObject_GetOptionalAttr
    - PyCoro_CheckExact
    - gen_send_ex
    - Py_XSETREF
    - Py_XINCREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_gen_throw(PyGenObject *gen, int close_on_genexit,\n           PyObject
      *typ, PyObject *val, PyObject *tb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:599,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/genobject.c:604,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/genobject.c:608,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - op
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 624
    functionName: gen_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - _gen_throw
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_throw(PyObject *op, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:630,1
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:630,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:630,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:631,1
    - Dst: gen_send_ex2
      Src: /src/cpython/Objects/genobject.c:634,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/genobject.c:636,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyGen_CheckExact(self) || PyCoro_CheckExact(self))
      pos:
        line_end: 629
        line_start: 629
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 641
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 641
    functionName: gen_iternext
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_SetStopIterationValue
    - PyCoro_CheckExact
    - gen_send_ex2
    - PyGen_CheckExact
    - Py_CLEAR
    - assert
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_iternext(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:652,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:652,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/genobject.c:659,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genobject.c:660,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/genobject.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 666
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 666
    functionName: _PyGen_SetStopIterationValue
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 3
    functionsReached:
    - PyObject_CallNoArgs
    - PyErr_Occurred
    - PyObject_CallOneArg
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int _PyGen_SetStopIterationValue(PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:681,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/genobject.c:682,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:684,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:685,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pvalue
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 693
    functionName: _PyGen_FetchStopIterationValue
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - Py_NewRef
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int _PyGen_FetchStopIterationValue(PyObject **pvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:698,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/genobject.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 701
    functionName: gen_repr
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:706,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/genobject.c:707,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 709
    functionName: gen_get_name
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_get_name(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:714,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/genobject.c:717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:718,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:722,1
    - Dst: _PyObject_XSetRefDelayed
      Src: /src/cpython/Objects/genobject.c:725,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:725,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 728
    functionName: gen_set_name
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyObject_XSetRefDelayed
    - PyErr_SetString
    - Py_NewRef
    - PyUnicode_Check
    - _PyGen_CAST
    linkageType: ''
    returnType: int
    signature: int gen_set_name(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:733,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/genobject.c:734,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: gen_get_qualname
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_get_qualname(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:741,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/genobject.c:744,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:745,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:749,1
    - Dst: _PyObject_XSetRefDelayed
      Src: /src/cpython/Objects/genobject.c:752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:752,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 755
    functionName: gen_set_qualname
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyObject_XSetRefDelayed
    - PyErr_SetString
    - Py_NewRef
    - PyUnicode_Check
    - _PyGen_CAST
    linkageType: ''
    returnType: int
    signature: int gen_set_qualname(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_yf
      Src: /src/cpython/Objects/genobject.c:760,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gen
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: gen_getyieldfrom
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_yf
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getyieldfrom(PyObject *gen, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: gen_getrunning
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getrunning(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:781,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/genobject.c:782,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 783
    functionName: gen_getsuspended
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - FRAME_STATE_SUSPENDED
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getsuspended(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/genobject.c:788,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:791,1
    - Dst: _Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:794,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Objects/genobject.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - gen
    - name
    argTypes:
    - PyGenObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 795
    functionName: _gen_getframe
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _Py_XNewRef
    - FRAME_STATE_FINISHED
    - PySys_Audit
    - _PyFrame_GetFrameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gen_getframe(PyGenObject *gen, const char *const name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:800,1
    - Dst: _gen_getframe
      Src: /src/cpython/Objects/genobject.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 802
    functionName: gen_getframe
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _gen_getframe
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getframe(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/genobject.c:807,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:810,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gen
    - name
    argTypes:
    - PyGenObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 811
    functionName: _gen_getcode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySys_Audit
    - _PyGen_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gen_getcode(PyGenObject *gen, const char *const name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:816,1
    - Dst: _gen_getcode
      Src: /src/cpython/Objects/genobject.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 818
    functionName: gen_getcode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _gen_getcode
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getcode(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:841,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:844,1
    - Dst: _PyFrame_NumSlotsForCodeObject
      Src: /src/cpython/Objects/genobject.c:845,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/genobject.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 847
    functionName: gen_sizeof
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_NumSlotsForCodeObject
    - PyLong_FromSsize_t
    - _PyGen_GetCode
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_sizeof(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_NumSlotsForCodeObject
      Src: /src/cpython/Objects/genobject.c:926,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/genobject.c:927,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:935,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:936,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:937,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:938,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - type
    - func
    argTypes:
    - PyTypeObject*
    - PyFunctionObject*
    assertStmts:
    - condition: (func->func_qualname != NULL)
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/cpython/Objects/genobject.c
    - condition: (func->func_name != NULL)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 941
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 941
    functionName: make_gen
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_NumSlotsForCodeObject
    - _PyObject_GC_TRACK
    - PyObject_GC_NewVar
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_gen(PyTypeObject *type, PyFunctionObject *func)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:951,1
    - Dst: make_gen
      Src: /src/cpython/Objects/genobject.c:953,1
    - Dst: make_gen
      Src: /src/cpython/Objects/genobject.c:957,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:968,1
    - Dst: make_gen
      Src: /src/cpython/Objects/genobject.c:969,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:973,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:980,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:981,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/genobject.c:981,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Objects/genobject.c:982,1
    - Dst: compute_cr_origin
      Src: /src/cpython/Objects/genobject.c:983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:986,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyFunctionObject*
    assertStmts:
    - condition: (coro_flags)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/cpython/Objects/genobject.c
    - condition: (coro_flags == CO_COROUTINE)
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/cpython/Objects/genobject.c
    - condition: (frame)
      pos:
        line_end: 979
        line_start: 979
        source_file: /src/cpython/Objects/genobject.c
    - condition: (_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 991
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 991
    functionName: _Py_MakeCoro
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetFirstComplete
    - _PyFrame_IsIncomplete
    - Py_DECREF
    - make_gen
    - _PyThreadState_GET
    - compute_cr_origin
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_MakeCoro(PyFunctionObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/genobject.c:997,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/genobject.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1001,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1005,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1006,1
    - Dst: _PyFrame_Copy
      Src: /src/cpython/Objects/genobject.c:1008,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1010,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1013,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Objects/genobject.c:1013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1014,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1019,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1021,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:1021,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1023,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1025,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:1025,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:1026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - type
    - f
    - name
    - qualname
    argTypes:
    - PyTypeObject*
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (f->f_frame->frame_obj == NULL)
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/cpython/Objects/genobject.c
    - condition: (f->f_frame->owner == FRAME_OWNED_BY_FRAME_OBJECT)
      pos:
        line_end: 1005
        line_start: 1005
        source_file: /src/cpython/Objects/genobject.c
    - condition: (frame->frame_obj == f)
      pos:
        line_end: 1009
        line_start: 1009
        source_file: /src/cpython/Objects/genobject.c
    - condition: (PyObject_GC_IsTracked((PyObject *)f))
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1028
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1028
    functionName: gen_new_with_qualname
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_TRACK
    - _PyFrame_Copy
    - PyObject_GC_NewVar
    - _PyFrame_GetCode
    - Py_NewRef
    - _PyGen_GetCode
    - PyObject_GC_IsTracked
    - assert
    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/cpython/Objects/genobject.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1034
    functionName: PyGen_NewWithQualName
    functionSourceFile: /src/cpython/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/cpython/Objects/genobject.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1036
    functionDepth: 3
    functionLinenumber: 1036
    functionLinenumberEnd: 1040
    functionName: PyGen_New
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_new_with_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyGen_New(PyFrameObject *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1052
    functionName: _PyCoroWrapper_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCoroWrapper_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:1057,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:1058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1064
    functionName: gen_is_coroutine
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyGen_CheckExact
    - _PyGen_GetCode
    linkageType: ''
    returnType: int
    signature: int gen_is_coroutine(PyObject *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:1080,1
    - Dst: gen_is_coroutine
      Src: /src/cpython/Objects/genobject.c:1080,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1082,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genobject.c:1085,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:1092,1
    - Dst: gen_is_coroutine
      Src: /src/cpython/Objects/genobject.c:1092,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:1095,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1098,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/genobject.c:1099,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:1100,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1103,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:1109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1113
    functionName: _PyCoro_GetAwaitableIter
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - gen_is_coroutine
    - PyCoro_CheckExact
    - Py_NewRef
    - PyErr_Format
    - PyIter_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCoro_GetAwaitableIter(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroObject_CAST
      Src: /src/cpython/Objects/genobject.c:1118,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/genobject.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1121
    functionName: coro_repr
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyCoroObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:1126,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1130,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:1131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1133
    functionName: coro_await
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_await(PyObject *coro)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_yf
      Src: /src/cpython/Objects/genobject.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - coro
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1142
    functionName: coro_get_cr_await
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_yf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_get_cr_await(PyObject *coro, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroObject_CAST
      Src: /src/cpython/Objects/genobject.c:1147,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1152
    functionName: cr_getsuspended
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FRAME_STATE_SUSPENDED
    - _PyCoroObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cr_getsuspended(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroObject_CAST
      Src: /src/cpython/Objects/genobject.c:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1162
    functionName: cr_getrunning
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cr_getrunning(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gen_getframe
      Src: /src/cpython/Objects/genobject.c:1167,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - coro
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1164
    functionDepth: 2
    functionLinenumber: 1164
    functionLinenumberEnd: 1168
    functionName: cr_getframe
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _gen_getframe
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cr_getframe(PyObject *coro, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gen_getcode
      Src: /src/cpython/Objects/genobject.c:1173,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:1173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - coro
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1170
    functionDepth: 3
    functionLinenumber: 1170
    functionLinenumberEnd: 1174
    functionName: cr_getcode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _gen_getcode
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cr_getcode(PyObject *coro, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1283,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:1284,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1285,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genobject.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1287
    functionName: coro_wrapper_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroWrapper_CAST
    - Py_CLEAR
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void coro_wrapper_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1292,1
    - Dst: gen_iternext
      Src: /src/cpython/Objects/genobject.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1294
    functionName: coro_wrapper_iternext
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroWrapper_CAST
    - gen_iternext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_iternext(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1299,1
    - Dst: gen_send
      Src: /src/cpython/Objects/genobject.c:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1296
    functionDepth: 4
    functionLinenumber: 1296
    functionLinenumberEnd: 1301
    functionName: coro_wrapper_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroWrapper_CAST
    - gen_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_send(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1306,1
    - Dst: gen_throw
      Src: /src/cpython/Objects/genobject.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1303
    functionDepth: 5
    functionLinenumber: 1303
    functionLinenumberEnd: 1308
    functionName: coro_wrapper_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroWrapper_CAST
    - gen_throw
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_throw(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1313,1
    - Dst: gen_close
      Src: /src/cpython/Objects/genobject.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1310
    functionDepth: 4
    functionLinenumber: 1310
    functionLinenumberEnd: 1315
    functionName: coro_wrapper_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroWrapper_CAST
    - gen_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_close(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1320,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1323
    functionName: coro_wrapper_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroWrapper_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int coro_wrapper_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Objects/genobject.c:1382,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genobject.c:1386,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/genobject.c:1392,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Objects/genobject.c:1393,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genobject.c:1394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1397,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genobject.c:1400,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Objects/genobject.c:1401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - origin_depth
    - current_frame
    argTypes:
    - int
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1405
    functionName: compute_cr_origin
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_GetFirstComplete
    - PyUnstable_InterpreterFrame_GetLine
    - PyTuple_New
    - Py_BuildValue
    - Py_DECREF
    - PyTuple_SET_ITEM
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_cr_origin(int origin_depth, _PyInterpreterFrame *current_frame)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/cpython/Objects/genobject.c:1410,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:1415,1
    - Dst: compute_cr_origin
      Src: /src/cpython/Objects/genobject.c:1421,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Objects/genobject.c:1421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1407
    functionDepth: 3
    functionLinenumber: 1407
    functionLinenumberEnd: 1430
    functionName: PyCoro_New
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyEval_GetFrame
    - _PyThreadState_GET
    - gen_new_with_qualname
    - 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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1456
    functionName: _PyAsyncGenASend_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyAsyncGenASend_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1480
    functionName: _PyAsyncGenWrappedValue_CheckExact
    functionSourceFile: /src/cpython/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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1483
    functionName: _PyAsyncGenWrappedValue_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyAsyncGenWrappedValue_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenObject_CAST
      Src: /src/cpython/Objects/genobject.c:1488,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1489,1
    - Dst: gen_traverse
      Src: /src/cpython/Objects/genobject.c:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1491
    functionName: async_gen_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_traverse
    - Py_VISIT
    - _PyAsyncGenObject_CAST
    linkageType: ''
    returnType: int
    signature: int async_gen_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenObject_CAST
      Src: /src/cpython/Objects/genobject.c:1497,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/genobject.c:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1500
    functionName: async_gen_repr
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyAsyncGenObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_repr(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:1516,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1520,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genobject.c:1527,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genobject.c:1528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1537
    functionName: async_gen_init_hooks
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - _PyThreadState_GET
    - Py_NewRef
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int async_gen_init_hooks(PyAsyncGenObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenObject_CAST
      Src: /src/cpython/Objects/genobject.c:1543,1
    - Dst: async_gen_init_hooks
      Src: /src/cpython/Objects/genobject.c:1544,1
    - Dst: async_gen_asend_new
      Src: /src/cpython/Objects/genobject.c:1547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1540
    functionDepth: 2
    functionLinenumber: 1540
    functionLinenumberEnd: 1548
    functionName: async_gen_anext
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_asend_new
    - async_gen_init_hooks
    - _PyAsyncGenObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_anext(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_init_hooks
      Src: /src/cpython/Objects/genobject.c:1555,1
    - Dst: async_gen_asend_new
      Src: /src/cpython/Objects/genobject.c:1558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1551
    functionDepth: 2
    functionLinenumber: 1551
    functionLinenumberEnd: 1559
    functionName: async_gen_asend
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_asend_new
    - async_gen_init_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend(PyObject *op, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_init_hooks
      Src: /src/cpython/Objects/genobject.c:1566,1
    - Dst: async_gen_athrow_new
      Src: /src/cpython/Objects/genobject.c:1569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1570
    functionName: async_gen_aclose
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_new
    - async_gen_init_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_aclose(PyObject *op, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genobject.c:1576,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/genobject.c:1577,1
    - Dst: async_gen_init_hooks
      Src: /src/cpython/Objects/genobject.c:1584,1
    - Dst: async_gen_athrow_new
      Src: /src/cpython/Objects/genobject.c:1587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1572
    functionDepth: 2
    functionLinenumber: 1572
    functionLinenumberEnd: 1588
    functionName: async_gen_athrow
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_new
    - PyTuple_GET_SIZE
    - PyErr_WarnEx
    - async_gen_init_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gen_getframe
      Src: /src/cpython/Objects/genobject.c:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ag
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1594
    functionName: ag_getframe
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _gen_getframe
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ag_getframe(PyObject *ag, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gen_getcode
      Src: /src/cpython/Objects/genobject.c:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gen
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1596
    functionDepth: 3
    functionLinenumber: 1596
    functionLinenumberEnd: 1600
    functionName: ag_getcode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _gen_getcode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ag_getcode(PyObject *gen, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenObject_CAST
      Src: /src/cpython/Objects/genobject.c:1605,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:1606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1610
    functionName: ag_getsuspended
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FRAME_STATE_SUSPENDED
    - _PyAsyncGenObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ag_getsuspended(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/cpython/Objects/genobject.c:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1717
    functionDepth: 3
    functionLinenumber: 1717
    functionLinenumberEnd: 1732
    functionName: PyAsyncGen_New
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_new_with_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyAsyncGen_New(PyFrameObject *f, PyObject *name, PyObject *qualname)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:1738,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:1739,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:1742,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:1743,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:1752,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/genobject.c:1754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - gen
    - result
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1761
    functionName: async_gen_unwrap_value
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _PyGen_SetStopIterationValue
    - PyErr_ExceptionMatches
    - _PyAsyncGenWrappedValue_CheckExact
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_unwrap_value(PyAsyncGenObject *gen, PyObject *result)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1770,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Objects/genobject.c:1770,1
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1771,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/genobject.c:1773,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:1777,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1778,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1779,1
    - Dst: _PyGC_CLEAR_FINALIZED
      Src: /src/cpython/Objects/genobject.c:1781,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/genobject.c:1783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyAsyncGenASend_CheckExact(self))
      pos:
        line_end: 1769
        line_start: 1769
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1784
      start: 1767
    functionDepth: 3
    functionLinenumber: 1767
    functionLinenumberEnd: 1784
    functionName: async_gen_asend_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - PyAsyncGenASend_CheckExact
    - _PyObject_GC_UNTRACK
    - _PyAsyncGenASend_CAST
    - _PyGC_CLEAR_FINALIZED
    - Py_CLEAR
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void async_gen_asend_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1789,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1790,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1793
    functionName: async_gen_asend_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyAsyncGenASend_CAST
    linkageType: ''
    returnType: int
    signature: int async_gen_asend_traverse(PyObject *self, visitproc visit, void
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1799,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:1801,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:1810,1
    - Dst: gen_send
      Src: /src/cpython/Objects/genobject.c:1823,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:1824,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1796
    functionDepth: 4
    functionLinenumber: 1796
    functionLinenumberEnd: 1831
    functionName: async_gen_asend_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_unwrap_value
    - PyErr_SetString
    - _PyAsyncGenASend_CAST
    - gen_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_send(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_asend_send
      Src: /src/cpython/Objects/genobject.c:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ags
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1834
    functionDepth: 5
    functionLinenumber: 1834
    functionLinenumberEnd: 1838
    functionName: async_gen_asend_iternext
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_asend_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_iternext(PyObject *ags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1844,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:1847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:1856,1
    - Dst: gen_throw
      Src: /src/cpython/Objects/genobject.c:1866,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:1867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1841
    functionDepth: 5
    functionLinenumber: 1841
    functionLinenumberEnd: 1875
    functionName: async_gen_asend_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_unwrap_value
    - PyErr_SetString
    - gen_throw
    - _PyAsyncGenASend_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_throw(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1881,1
    - Dst: async_gen_asend_throw
      Src: /src/cpython/Objects/genobject.c:1886,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:1888,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:1889,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:1890,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:1892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1898,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:1899,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1878
    functionDepth: 6
    functionLinenumber: 1878
    functionLinenumberEnd: 1901
    functionName: async_gen_asend_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - async_gen_asend_throw
    - _PyAsyncGenASend_CAST
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_close(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1906,1
    - Dst: _PyErr_WarnUnawaitedAgenMethod
      Src: /src/cpython/Objects/genobject.c:1908,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1910
    functionName: async_gen_asend_finalize
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyErr_WarnUnawaitedAgenMethod
    - _Py_ID
    - _PyAsyncGenASend_CAST
    linkageType: ''
    returnType: void
    signature: void async_gen_asend_finalize(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/genobject.c:1975,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:1977,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1983,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:1984,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:1987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - gen
    - sendval
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1972
    functionDepth: 1
    functionLinenumber: 1972
    functionLinenumberEnd: 1989
    functionName: async_gen_asend_new
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_GC_TRACK
    - Py_NewRef
    - _Py_FREELIST_POP
    - Py_XNewRef
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_new(PyAsyncGenObject *gen, PyObject *sendval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenWrappedValue_CAST
      Src: /src/cpython/Objects/genobject.c:1998,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:1999,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:2000,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/genobject.c:2001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2002
    functionName: async_gen_wrapped_val_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenWrappedValue_CAST
    - Py_CLEAR
    - _Py_FREELIST_FREE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void async_gen_wrapped_val_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenWrappedValue_CAST
      Src: /src/cpython/Objects/genobject.c:2008,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2011
    functionName: async_gen_wrapped_val_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenWrappedValue_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int async_gen_wrapped_val_traverse(PyObject *self, visitproc visit,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:2060,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/genobject.c:2062,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:2064,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:2070,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2070,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:2071,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:2072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - tstate
    - val
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (val)
      pos:
        line_end: 2059
        line_start: 2059
        source_file: /src/cpython/Objects/genobject.c
    - condition: (_PyAsyncGenWrappedValue_CheckExact(o))
      pos:
        line_end: 2069
        line_start: 2069
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 2074
      start: 2057
    functionDepth: 1
    functionLinenumber: 2057
    functionLinenumberEnd: 2074
    functionName: _PyAsyncGenValueWrapperNew
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - Py_NewRef
    - _PyAsyncGenWrappedValue_CheckExact
    - _Py_FREELIST_POP
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAsyncGenValueWrapperNew(PyThreadState *tstate, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2082
    functionName: _PyAsyncGenAThrow_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyAsyncGenAThrow_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenAThrow_CAST
      Src: /src/cpython/Objects/genobject.c:2086,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/genobject.c:2087,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:2091,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:2092,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:2093,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:2094,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:2095,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genobject.c:2096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2083
    functionDepth: 3
    functionLinenumber: 2083
    functionLinenumberEnd: 2097
    functionName: async_gen_athrow_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallFinalizerFromDealloc
    - _PyAsyncGenAThrow_CAST
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void async_gen_athrow_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenAThrow_CAST
      Src: /src/cpython/Objects/genobject.c:2103,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2104,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2105,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2106,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2100
    functionDepth: 1
    functionLinenumber: 2100
    functionLinenumberEnd: 2109
    functionName: async_gen_athrow_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyAsyncGenAThrow_CAST
    linkageType: ''
    returnType: int
    signature: int async_gen_athrow_traverse(PyObject *self, visitproc visit, void
      *arg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenAThrow_CAST
      Src: /src/cpython/Objects/genobject.c:2115,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:2116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2120,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:2126,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2141,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2155,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:2166,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2171,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2172,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:2176,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:2180,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:2188,1
    - Dst: gen_send
      Src: /src/cpython/Objects/genobject.c:2190,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:2192,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2212,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2219,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2220,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:2228,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2229,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (o->agt_state == AWAITABLE_STATE_ITER)
      pos:
        line_end: 2187
        line_start: 2187
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 2233
      start: 2112
    functionDepth: 4
    functionLinenumber: 2112
    functionLinenumberEnd: 2233
    functionName: async_gen_athrow_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyAsyncGenAThrow_CAST
    - PyErr_SetString
    - gen_send
    - PyErr_ExceptionMatches
    - _PyAsyncGenWrappedValue_CheckExact
    - PyErr_SetNone
    - FRAME_STATE_FINISHED
    - async_gen_unwrap_value
    - PyErr_Clear
    - _gen_throw
    - assert
    - _PyGen_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_send(PyObject *self, PyObject *arg)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenAThrow_CAST
      Src: /src/cpython/Objects/genobject.c:2239,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2242,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2252,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2257,1
    - Dst: gen_throw
      Src: /src/cpython/Objects/genobject.c:2268,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:2270,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2282,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2283,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2290,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2291,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:2298,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2299,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2236
    functionDepth: 5
    functionLinenumber: 2236
    functionLinenumberEnd: 2303
    functionName: async_gen_athrow_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyAsyncGenAThrow_CAST
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - _PyAsyncGenWrappedValue_CheckExact
    - PyErr_SetNone
    - gen_throw
    - async_gen_unwrap_value
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_throw(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_athrow_send
      Src: /src/cpython/Objects/genobject.c:2309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - agt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2306
    functionDepth: 5
    functionLinenumber: 2306
    functionLinenumberEnd: 2310
    functionName: async_gen_athrow_iternext
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_iternext(PyObject *agt)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenAThrow_CAST
      Src: /src/cpython/Objects/genobject.c:2316,1
    - Dst: async_gen_athrow_throw
      Src: /src/cpython/Objects/genobject.c:2320,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2323,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2324,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2325,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:2327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2332,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2313
    functionDepth: 6
    functionLinenumber: 2313
    functionLinenumberEnd: 2336
    functionName: async_gen_athrow_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_throw
    - Py_DECREF
    - _PyAsyncGenAThrow_CAST
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_close(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:2344,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:2344,1
    - Dst: _PyErr_WarnUnawaitedAgenMethod
      Src: /src/cpython/Objects/genobject.c:2345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2339
    functionDepth: 1
    functionLinenumber: 2339
    functionLinenumberEnd: 2347
    functionName: async_gen_athrow_finalize
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyErr_WarnUnawaitedAgenMethod
    linkageType: ''
    returnType: void
    signature: void async_gen_athrow_finalize(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/genobject.c:2416,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:2421,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:2425,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:2426,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:2427,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:2428,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:2431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - gen
    - args
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2433
    functionName: async_gen_athrow_new
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_GC_TRACK
    - PyArg_UnpackTuple
    - Py_NewRef
    - Py_XNewRef
    - PyObject_GC_New
    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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: PyFrameObject_CAST
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrameObject_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: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: PyFrameLocalsProxyObject_CAST
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrameLocalsProxyObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/frameobject.c:45,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:46,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:48,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:64,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/frameobject.c:70,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/frameobject.c:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - frame
    - co
    - i
    argTypes:
    - _PyInterpreterFrame*
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 81
    functionName: framelocalsproxy_getval
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyCell_Check
    - _PyLocals_GetKind
    - PyCell_GetRef
    - _PyFrame_GetLocalsArray
    - PyStackRef_AsPyObjectBorrow
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_getval(_PyInterpreterFrame *frame, PyCodeObject *co, int i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:86,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - frame
    - co
    - i
    argTypes:
    - _PyInterpreterFrame*
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: framelocalsproxy_hasval
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_getval
    - Py_DECREF
    linkageType: ''
    returnType: bool
    signature: bool framelocalsproxy_hasval(_PyInterpreterFrame *frame, PyCodeObject
      *co, int i)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:109,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:111,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/frameobject.c:114,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:124,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:133,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:138,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:153,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/frameobject.c:154,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:155,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/frameobject.c:159,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:171,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:176,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 4
    argNames:
    - frame
    - key
    - read
    - value_ptr
    argTypes:
    - PyFrameObject*
    - PyObject*
    - bool
    - PyObject**
    assertStmts:
    - condition: (read || value_ptr == NULL)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (name_hash != -1)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 184
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 184
    functionName: framelocalsproxy_getkeyindex
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - _PyLocals_GetKind
    - PyObject_RichCompareBool
    - PyObject_Hash
    - PyTuple_GET_ITEM
    - framelocalsproxy_getval
    - _PyFrame_GetCode
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_getkeyindex(PyFrameObject *frame, PyObject *key,
      bool read, PyObject **value_ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:189,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:192,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:197,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:200,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/frameobject.c:206,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (value != NULL)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 8
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: framelocalsproxy_getitem
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxyObject_CAST
    - framelocalsproxy_getkeyindex
    - PyErr_Format
    - PyDict_GetItemRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_getitem(PyObject *self, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/frameobject.c:226,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/frameobject.c:232,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:237,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/frameobject.c:238,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:238,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/frameobject.c:240,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:240,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/frameobject.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - frame
    - obj
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 243
    functionName: add_overwritten_fast_local
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - PyTuple_Size
    linkageType: ''
    returnType: int
    signature: int add_overwritten_fast_local(PyFrameObject *frame, PyObject *obj)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:249,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/frameobject.c:250,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:251,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:253,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:259,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Objects/frameobject.c:263,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Objects/frameobject.c:263,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:265,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:271,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:271,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:271,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:271,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:272,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:273,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:274,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:275,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/frameobject.c:280,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Objects/frameobject.c:281,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:282,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:283,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/frameobject.c:284,1
    - Dst: add_overwritten_fast_local
      Src: /src/cpython/Objects/frameobject.c:285,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Objects/frameobject.c:288,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/frameobject.c:290,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/frameobject.c:301,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:304,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:311,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:311,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/frameobject.c:314,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/frameobject.c:316,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(extra))
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!PyStackRef_IsNull(oldvalue) && PyCell_Check(PyStackRef_AsPyObjectBorrow(oldvalue)))
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 318
      start: 245
    functionDepth: 10
    functionLinenumber: 245
    functionLinenumberEnd: 318
    functionName: framelocalsproxy_setitem
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - PyErr_SetString
    - PyDict_DelItem
    - framelocalsproxy_getkeyindex
    - _Py_Executors_InvalidateDependency
    - add_overwritten_fast_local
    - PyStackRef_FromPyObjectNew
    - _Py_IsImmortal
    - PyFrameLocalsProxyObject_CAST
    - PyCell_Check
    - PyStackRef_AsPyObjectBorrow
    - PyDict_Check
    - PyStackRef_CLOSE
    - PyCell_SetTakeRef
    - _PyErr_SetKeyError
    - _PyFrame_GetCode
    - PyDict_SetItem
    - _PyLocals_GetKind
    - _PyFrame_GetLocalsArray
    - PyDict_New
    - Py_XINCREF
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_setitem(PyObject *self, PyObject *key, PyObject
      *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:323,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:323,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Objects/frameobject.c:327,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/frameobject.c:332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:333,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/frameobject.c:341,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/frameobject.c:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:345,1
    - Dst: framelocalsproxy_setitem
      Src: /src/cpython/Objects/frameobject.c:349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:360,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/frameobject.c:362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 320
    functionDepth: 11
    functionLinenumber: 320
    functionLinenumberEnd: 367
    functionName: framelocalsproxy_merge
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - framelocalsproxy_setitem
    - PyFrameLocalsProxy_Check
    - PyObject_GetIter
    - PyErr_Occurred
    - PyMapping_Keys
    - PyObject_GetItem
    - PyIter_Next
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_merge(PyObject* self, PyObject* other)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:372,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:373,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/frameobject.c:374,1
    - Dst: framelocalsproxy_hasval
      Src: /src/cpython/Objects/frameobject.c:380,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:381,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:383,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:391,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:391,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/frameobject.c:397,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(frame->f_extra_locals))
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 406
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 406
    functionName: framelocalsproxy_keys
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - assert
    - PyFrameLocalsProxyObject_CAST
    - Py_DECREF
    - PyList_Append
    - PyDict_Next
    - PyTuple_GET_ITEM
    - framelocalsproxy_hasval
    - PyDict_Check
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_keys(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:411,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/frameobject.c:412,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:413,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/frameobject.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: framelocalsproxy_dealloc
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyFrameLocalsProxyObject_CAST
    - Py_CLEAR
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void framelocalsproxy_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/frameobject.c:420,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:421,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/frameobject.c:423,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:426,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Objects/frameobject.c:428,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:429,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/frameobject.c:434,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:435,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/frameobject.c:440,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 448
    functionName: framelocalsproxy_new
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyFrame_Check
    - PyErr_SetString
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - PyDict_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:453,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 456
    functionName: framelocalsproxy_tp_clear
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxyObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_tp_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:461,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/frameobject.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 464
    functionName: framelocalsproxy_visit
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxyObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_visit(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: framelocalsproxy_keys
      Src: /src/cpython/Objects/frameobject.c:469,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/frameobject.c:474,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/frameobject.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 466
    functionDepth: 5
    functionLinenumber: 466
    functionLinenumberEnd: 478
    functionName: framelocalsproxy_iter
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_XDECREF
    - framelocalsproxy_keys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_iter(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:483,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:484,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/frameobject.c:488,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/frameobject.c:490,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:492,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:493,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:499,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/frameobject.c:503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:504,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - lhs
    - rhs
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 480
    functionDepth: 10
    functionLinenumber: 480
    functionLinenumberEnd: 509
    functionName: framelocalsproxy_richcompare
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxyObject_CAST
    - Py_DECREF
    - PyFrameLocalsProxy_Check
    - PyObject_RichCompare
    - PyDict_Update
    - PyDict_New
    - PyBool_FromLong
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_richcompare(PyObject *lhs, PyObject *rhs, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/frameobject.c:514,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/frameobject.c:516,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:519,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/frameobject.c:521,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:526,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/frameobject.c:527,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/frameobject.c:531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:532,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/frameobject.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 511
    functionDepth: 10
    functionLinenumber: 511
    functionLinenumberEnd: 537
    functionName: framelocalsproxy_repr
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - Py_DECREF
    - Py_ReprLeave
    - Py_ReprEnter
    - PyDict_New
    - PyDict_Update
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_repr(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:542,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:542,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:546,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:552,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 539
    functionDepth: 10
    functionLinenumber: 539
    functionLinenumberEnd: 562
    functionName: framelocalsproxy_or
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyFrameLocalsProxy_Check
    - PyDict_New
    - PyDict_Update
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_or(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:567,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:567,1
    - Dst: framelocalsproxy_merge
      Src: /src/cpython/Objects/frameobject.c:571,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 12
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: framelocalsproxy_inplace_or
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxy_Check
    - PyDict_Check
    - Py_NewRef
    - framelocalsproxy_merge
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_inplace_or(PyObject *self, PyObject *other)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:581,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:582,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/frameobject.c:583,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:589,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:596,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/frameobject.c:605,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 614
    functionName: framelocalsproxy_values
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyFrameLocalsProxyObject_CAST
    - Py_DECREF
    - PyList_Append
    - PyDict_Next
    - framelocalsproxy_getval
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_values(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:619,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:620,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/frameobject.c:621,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:627,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:628,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/frameobject.c:631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:634,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:646,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/frameobject.c:655,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/frameobject.c:656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:658,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:668,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 673
    functionName: framelocalsproxy_items
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyFrameLocalsProxyObject_CAST
    - Py_DECREF
    - PyList_Append
    - PyDict_Next
    - PyTuple_GET_ITEM
    - PyTuple_Pack
    - framelocalsproxy_getval
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_items(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:678,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:679,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:683,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:683,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/frameobject.c:684,1
    - Dst: framelocalsproxy_hasval
      Src: /src/cpython/Objects/frameobject.c:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(frame->f_extra_locals))
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 693
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 693
    functionName: framelocalsproxy_length
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxyObject_CAST
    - _PyFrame_GetCode
    - PyDict_Size
    - PyDict_Check
    - framelocalsproxy_hasval
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t framelocalsproxy_length(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:698,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:700,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/frameobject.c:710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 695
    functionDepth: 5
    functionLinenumber: 695
    functionLinenumberEnd: 714
    functionName: framelocalsproxy_contains
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxyObject_CAST
    - PyDict_Contains
    - framelocalsproxy_getkeyindex
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_contains(PyObject *self, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: framelocalsproxy_contains
      Src: /src/cpython/Objects/frameobject.c:718,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/frameobject.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 716
    functionDepth: 6
    functionLinenumber: 716
    functionLinenumberEnd: 723
    functionName: framelocalsproxy___contains__
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - framelocalsproxy_contains
    linkageType: ''
    returnType: PyObject
    signature: PyObject * framelocalsproxy___contains__(PyObject *self, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: framelocalsproxy_merge
      Src: /src/cpython/Objects/frameobject.c:728,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 725
    functionDepth: 12
    functionLinenumber: 725
    functionLinenumberEnd: 734
    functionName: framelocalsproxy_update
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_merge
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_update(PyObject *self, PyObject *other)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:740,1
    - Dst: framelocalsproxy_getitem
      Src: /src/cpython/Objects/frameobject.c:751,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/frameobject.c:754,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/frameobject.c:755,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:756,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 736
    functionDepth: 9
    functionLinenumber: 736
    functionLinenumberEnd: 762
    functionName: framelocalsproxy_get
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - Py_XNewRef
    - framelocalsproxy_getitem
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_get(PyObject* self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:768,1
    - Dst: framelocalsproxy_getitem
      Src: /src/cpython/Objects/frameobject.c:779,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/frameobject.c:782,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/frameobject.c:783,1
    - Dst: framelocalsproxy_setitem
      Src: /src/cpython/Objects/frameobject.c:784,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:787,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 764
    functionDepth: 11
    functionLinenumber: 764
    functionLinenumberEnd: 793
    functionName: framelocalsproxy_setdefault
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_setitem
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - Py_XNewRef
    - framelocalsproxy_getitem
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_setdefault(PyObject* self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/frameobject.c:798,1
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:809,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:811,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:817,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:825,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/frameobject.c:827,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/frameobject.c:832,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:838,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/frameobject.c:840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 795
    functionDepth: 8
    functionLinenumber: 795
    functionLinenumberEnd: 846
    functionName: framelocalsproxy_pop
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrameLocalsProxyObject_CAST
    - PyErr_SetString
    - framelocalsproxy_getkeyindex
    - _PyArg_CheckPositional
    - _PyErr_SetKeyError
    - Py_XNewRef
    - PyDict_Pop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_pop(PyObject* self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:851,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 848
    functionDepth: 10
    functionLinenumber: 848
    functionLinenumberEnd: 863
    functionName: framelocalsproxy_copy
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: framelocalsproxy_keys
      Src: /src/cpython/Objects/frameobject.c:868,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Objects/frameobject.c:874,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 865
    functionDepth: 5
    functionLinenumber: 865
    functionLinenumberEnd: 879
    functionName: framelocalsproxy_reversed
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyList_Reverse
    - framelocalsproxy_keys
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_reversed(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/frameobject.c:951,1
    - Dst: framelocalsproxy_new
      Src: /src/cpython/Objects/frameobject.c:956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 959
    functionName: _PyFrameLocalsProxy_New
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - framelocalsproxy_new
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyFrameLocalsProxy_New(PyFrameObject *frame)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:978,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:978,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:980,1
    - Dst: _PyFrame_HasHiddenLocals
      Src: /src/cpython/Objects/frameobject.c:982,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:987,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:992,1
    - Dst: _PyFrameLocalsProxy_New
      Src: /src/cpython/Objects/frameobject.c:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(self->f_frame))
      pos:
        line_end: 977
        line_start: 977
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 996
      start: 974
    functionDepth: 10
    functionLinenumber: 974
    functionLinenumberEnd: 996
    functionName: frame_locals_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyFrame_IsIncomplete
    - Py_NewRef
    - PyDict_New
    - _PyFrame_HasHiddenLocals
    - _PyFrameLocalsProxy_New
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_locals_get_impl(PyFrameObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1001,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Objects/frameobject.c:1005,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Objects/frameobject.c:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (f != NULL)
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1016
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1016
    functionName: PyFrame_GetLineNumber
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - PyUnstable_InterpreterFrame_GetLine
    - assert
    linkageType: ''
    returnType: int
    signature: int PyFrame_GetLineNumber(PyFrameObject *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetLineNumber
      Src: /src/cpython/Objects/frameobject.c:1030,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/frameobject.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1035
    functionName: frame_lineno_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetLineNumber
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_lineno_get_impl(PyFrameObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/frameobject.c:1049,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/frameobject.c:1051,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/frameobject.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1054
    functionName: frame_lasti_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterFrame_LASTI
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_lasti_get_impl(PyFrameObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1073
    functionName: frame_globals_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_globals_get_impl(PyFrameObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1092
    functionName: frame_builtins_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_builtins_get_impl(PyFrameObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/frameobject.c:1105,1
    - Dst: PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1109
    functionName: frame_code_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_code_get_impl(PyFrameObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetBack
      Src: /src/cpython/Objects/frameobject.c:1121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1126
    functionName: frame_back_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetBack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_back_get_impl(PyFrameObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1141
    functionName: frame_trace_opcodes_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_trace_opcodes_get_impl(PyFrameObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/frameobject.c:1153,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1154,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Objects/frameobject.c:1161,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Objects/frameobject.c:1166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1169
    functionName: frame_trace_opcodes_set_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBool_Check
    - _PyEval_SetOpcodeTrace
    linkageType: ''
    returnType: int
    signature: int frame_trace_opcodes_set_impl(PyFrameObject *self, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - Kind
    - Kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1197
    functionName: compatible_kind
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compatible_kind(Kind from, Kind to)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stack
    - kind
    argTypes:
    - int64_t
    - Kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1218
    functionName: push_value
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t push_value(int64_t stack, Kind kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Objects/frameobject.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1224
    functionName: pop_value
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_ARITHMETIC_RIGHT_SHIFT
    linkageType: ''
    returnType: int64_t
    signature: int64_t pop_value(int64_t stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1232
    functionName: top_of_stack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Kind
    signature: Kind top_of_stack(int64_t stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - n
    argTypes:
    - int64_t
    - int
    assertStmts:
    - condition: (n >= 1)
      pos:
        line_end: 1236
        line_start: 1236
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1239
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1239
    functionName: peek
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Kind
    signature: Kind peek(int64_t stack, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1244,1
    - Dst: peek
      Src: /src/cpython/Objects/frameobject.c:1245,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - n
    argTypes:
    - int64_t
    - int
    assertStmts:
    - condition: (n >= 1)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1251
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1251
    functionName: stack_swap
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - peek
    - assert
    - top_of_stack
    linkageType: ''
    returnType: Kind
    signature: Kind stack_swap(int64_t stack, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - stack
    - level
    argTypes:
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1253
    functionDepth: 2
    functionLinenumber: 1253
    functionLinenumberEnd: 1264
    functionName: pop_to_level
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - pop_value
    linkageType: ''
    returnType: int64_t
    signature: int64_t pop_to_level(int64_t stack, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - stack
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1284
    functionName: tos_char
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - top_of_stack
    linkageType: ''
    returnType: char
    signature: char tos_char(int64_t stack)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1290,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1293,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1296,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1301,1
    - Dst: tos_char
      Src: /src/cpython/Objects/frameobject.c:1301,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - stack
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1286
    functionDepth: 2
    functionLinenumber: 1286
    functionLinenumberEnd: 1304
    functionName: print_stack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - pop_value
    - tos_char
    - printf
    linkageType: ''
    returnType: void
    signature: void print_stack(int64_t stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1309,1
    - Dst: print_stack
      Src: /src/cpython/Objects/frameobject.c:1310,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stacks
    - n
    argTypes:
    - int64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1306
    functionDepth: 3
    functionLinenumber: 1306
    functionLinenumberEnd: 1313
    functionName: print_stacks
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - printf
    - print_stack
    linkageType: ''
    returnType: void
    signature: void print_stacks(int64_t *stacks, int n)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Objects/frameobject.c:1320,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/frameobject.c:1324,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/frameobject.c:1327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:1328,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/frameobject.c:1342,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/frameobject.c:1348,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1366,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1367,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1369,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1376,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1377,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1383,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1384,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1390,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1391,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1395,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1399,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1399,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1400,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1404,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1404,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1409,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1412,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1413,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1418,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1418,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1422,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1426,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1426,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1427,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1431,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1431,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1432,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1432,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1437,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1437,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1441,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1447,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1449,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1456,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1456,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1459,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1460,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1461,1
    - Dst: stack_swap
      Src: /src/cpython/Objects/frameobject.c:1469,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1476,1
    - Dst: peek
      Src: /src/cpython/Objects/frameobject.c:1476,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1483,1
    - Dst: PyCompile_OpcodeStackEffect
      Src: /src/cpython/Objects/frameobject.c:1487,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1488,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1490,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1494,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/frameobject.c:1503,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/frameobject.c:1504,1
    - Dst: parse_varint
      Src: /src/cpython/Objects/frameobject.c:1508,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1509,1
    - Dst: parse_varint
      Src: /src/cpython/Objects/frameobject.c:1510,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1511,1
    - Dst: parse_varint
      Src: /src/cpython/Objects/frameobject.c:1512,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1513,1
    - Dst: parse_varint
      Src: /src/cpython/Objects/frameobject.c:1515,1
    - Dst: pop_to_level
      Src: /src/cpython/Objects/frameobject.c:1521,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1523,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:1531,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 178
    argCount: 2
    argNames:
    - code_obj
    - len
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == target_stack)
      pos:
        line_end: 1368
        line_start: 1368
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == next_stack)
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == next_stack)
      pos:
        line_end: 1394
        line_start: 1394
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (start_offset >= 0 && start_offset < len)
      pos:
        line_end: 1508
        line_start: 1508
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (delta != PY_INVALID_STACK_EFFECT)
      pos:
        line_end: 1487
        line_start: 1487
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (0)
      pos:
        line_end: 1482
        line_start: 1482
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1365
        line_start: 1365
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == next_stack)
      pos:
        line_end: 1383
        line_start: 1383
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j >= 0)
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == target_stack)
      pos:
        line_end: 1412
        line_start: 1412
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (pop_value(next_stack) == EMPTY_STACK)
      pos:
        line_end: 1430
        line_start: 1430
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Except)
      pos:
        line_end: 1436
        line_start: 1436
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Object)
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1382
        line_start: 1382
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1411
        line_start: 1411
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Except)
      pos:
        line_end: 1425
        line_start: 1425
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Object)
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (handler >= 0 && handler < len)
      pos:
        line_end: 1512
        line_start: 1512
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (size >= 0 && start_offset+size <= len)
      pos:
        line_end: 1510
        line_start: 1510
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1533
      start: 1317
    functionDepth: 3
    functionLinenumber: 1317
    functionLinenumberEnd: 1533
    functionName: mark_stacks
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - pop_to_level
    - _Py_GetBaseCodeUnit
    - Py_DECREF
    - push_value
    - parse_varint
    - top_of_stack
    - peek
    - pop_value
    - PyBytes_AS_STRING
    - PyMem_New
    - stack_swap
    - PyBytes_GET_SIZE
    - PyCompile_OpcodeStackEffect
    - _PyCode_GetCode
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int64_t
    signature: 'int64_t *

      mark_stacks(PyCodeObject *code_obj, int len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1542,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1545,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1546,1
    - Dst: compatible_kind
      Src: /src/cpython/Objects/frameobject.c:1547,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1550,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - from_stack
    - to_stack
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1535
    functionDepth: 2
    functionLinenumber: 1535
    functionLinenumberEnd: 1554
    functionName: compatible_stack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - pop_value
    - compatible_kind
    - top_of_stack
    linkageType: ''
    returnType: int
    signature: int compatible_stack(int64_t from_stack, int64_t to_stack)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1559,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1566,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/frameobject.c:1578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - to_stack
    argTypes:
    - int64_t
    assertStmts:
    - condition: (to_stack != 0)
      pos:
        line_end: 1558
        line_start: 1558
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1580
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1580
    functionName: explain_incompatible_stack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - assert
    - top_of_stack
    linkageType: ''
    returnType: char
    signature: 'char *

      explain_incompatible_stack(int64_t to_stack)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/frameobject.c:1586,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1587,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/frameobject.c:1590,1
    - Dst: _PyLineTable_NextAddressRange
      Src: /src/cpython/Objects/frameobject.c:1598,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - code
    - len
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (bounds.ar_start / (int)sizeof(_Py_CODEUNIT) < len)
      pos:
        line_end: 1598
        line_start: 1598
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (bounds.ar_end == 0)
      pos:
        line_end: 1586
        line_start: 1586
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1606
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1606
    functionName: marklines
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyLineTable_NextAddressRange
    - PyMem_New
    - _PyCode_InitAddressRange
    - assert
    linkageType: ''
    returnType: int
    signature: 'int *

      marklines(PyCodeObject *code, int len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - lines
    - len
    - line
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1621
    functionName: first_line_not_before
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int first_line_not_before(int *lines, int len, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1625,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:1625,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Objects/frameobject.c:1627,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/frameobject.c:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1631
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1631
    functionName: frame_is_suspended
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - FRAME_STATE_SUSPENDED
    - _PyFrame_IsIncomplete
    - assert
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: bool
    signature: bool frame_is_suspended(PyFrameObject *frame)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:1657,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1659,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/frameobject.c:1663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1664,1
    - Dst: frame_is_suspended
      Src: /src/cpython/Objects/frameobject.c:1669,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/frameobject.c:1678,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1680,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1695,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1700,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1710,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1714,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/frameobject.c:1724,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1731,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1738,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/frameobject.c:1746,1
    - Dst: marklines
      Src: /src/cpython/Objects/frameobject.c:1747,1
    - Dst: first_line_not_before
      Src: /src/cpython/Objects/frameobject.c:1752,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1754,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1757,1
    - Dst: mark_stacks
      Src: /src/cpython/Objects/frameobject.c:1761,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1763,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/frameobject.c:1769,1
    - Dst: compatible_stack
      Src: /src/cpython/Objects/frameobject.c:1775,1
    - Dst: explain_incompatible_stack
      Src: /src/cpython/Objects/frameobject.c:1790,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1796,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1799,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:1809,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/frameobject.c:1814,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:1820,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1825,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1829,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Objects/frameobject.c:1832,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1833,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:1835,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1836,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/frameobject.c:1836,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/frameobject.c:1837,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/frameobject.c:1838,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Objects/frameobject.c:1841,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1843,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Objects/frameobject.c:1847,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 118
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts:
    - condition: (unbound == 0)
      pos:
        line_end: 1824
        line_start: 1824
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (PyExceptionInstance_Check(exc) || exc == Py_None)
      pos:
        line_end: 1835
        line_start: 1835
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1849
      start: 1653
    functionDepth: 3
    functionLinenumber: 1653
    functionLinenumberEnd: 1849
    functionName: frame_lineno_set_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnFormat
    - first_line_not_before
    - frame_is_suspended
    - PyErr_SetString
    - _PyThreadState_GET
    - pop_value
    - PyLong_CheckExact
    - PyMem_Free
    - PyExceptionInstance_Check
    - top_of_stack
    - PyStackRef_AsPyObjectBorrow
    - PyErr_Format
    - PyLong_AsLongAndOverflow
    - PyThreadState_GET
    - Py_SIZE
    - _PyFrame_StackPop
    - _PyFrame_GetCode
    - explain_incompatible_stack
    - PyStackRef_XCLOSE
    - _PyFrame_GetBytecode
    - _PyInterpreterFrame_LASTI
    - mark_stacks
    - marklines
    - compatible_stack
    - Py_XSETREF
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: int
    signature: int frame_lineno_set_impl(PyFrameObject *self, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:1868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1869
    functionName: frame_trace_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_trace_get_impl(PyFrameObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/frameobject.c:1886,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:1886,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Objects/frameobject.c:1888,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1878
    functionDepth: 1
    functionLinenumber: 1878
    functionLinenumberEnd: 1892
    functionName: frame_trace_set_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - _PyEval_SetOpcodeTrace
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int frame_trace_set_impl(PyFrameObject *self, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Objects/frameobject.c:1907,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1911
    functionName: frame_generator_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_generator_get_impl(PyFrameObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameObject_CAST
      Src: /src/cpython/Objects/frameobject.c:1933,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/frameobject.c:1934,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/frameobject.c:1935,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1946,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1947,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1948,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/frameobject.c:1949,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1953,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1956,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1957,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1958,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1959,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1960,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/frameobject.c:1961,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1928
    functionDepth: 1
    functionLinenumber: 1928
    functionLinenumberEnd: 1962
    functionName: frame_dealloc
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - Py_CLEAR
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - _PyFrame_GetLocalsArray
    - PyStackRef_CLEAR
    - PyFrameObject_CAST
    linkageType: ''
    returnType: void
    signature: void frame_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameObject_CAST
      Src: /src/cpython/Objects/frameobject.c:1967,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/frameobject.c:1968,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/frameobject.c:1969,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/frameobject.c:1970,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/frameobject.c:1971,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/frameobject.c:1972,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1976,1
    - Dst: _PyFrame_Traverse
      Src: /src/cpython/Objects/frameobject.c:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (f->f_frame->frame_obj == NULL)
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1978
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1978
    functionName: frame_traverse
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyFrame_Traverse
    - PyFrameObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int frame_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameObject_CAST
      Src: /src/cpython/Objects/frameobject.c:1983,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1984,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1985,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1986,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1987,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/frameobject.c:1990,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1992,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1995,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (sp >= locals)
      pos:
        line_end: 1991
        line_start: 1991
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2000
      start: 1980
    functionDepth: 1
    functionLinenumber: 1980
    functionLinenumberEnd: 2000
    functionName: frame_tp_clear
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyFrame_GetLocalsArray
    - PyStackRef_CLEAR
    - PyFrameObject_CAST
    - assert
    linkageType: ''
    returnType: int
    signature: int frame_tp_clear(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Objects/frameobject.c:2014,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/frameobject.c:2018,1
    - Dst: _PyGen_Finalize
      Src: /src/cpython/Objects/frameobject.c:2021,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2027,1
    - Dst: frame_tp_clear
      Src: /src/cpython/Objects/frameobject.c:2028,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:2032,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:2036,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (self->f_frame->owner == FRAME_OWNED_BY_FRAME_OBJECT)
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2039
      start: 2009
    functionDepth: 3
    functionLinenumber: 2009
    functionLinenumberEnd: 2039
    functionName: frame_clear_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - FRAME_STATE_SUSPENDED
    - frame_tp_clear
    - _PyGen_Finalize
    - assert
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_clear_impl(PyFrameObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2054,1
    - Dst: _PyFrame_NumSlotsForCodeObject
      Src: /src/cpython/Objects/frameobject.c:2055,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/frameobject.c:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2057
    functionName: frame___sizeof___impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_NumSlotsForCodeObject
    - PyLong_FromSsize_t
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame___sizeof___impl(PyFrameObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameObject_CAST
      Src: /src/cpython/Objects/frameobject.c:2062,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/cpython/Objects/frameobject.c:2063,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2064,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/frameobject.c:2065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2059
    functionDepth: 1
    functionLinenumber: 2059
    functionLinenumberEnd: 2068
    functionName: frame_repr
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyFrameObject_CAST
    - _PyFrame_GetCode
    - PyFrame_GetLineNumber
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_Initialize
      Src: /src/cpython/Objects/frameobject.c:2117,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/frameobject.c:2117,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tstate
    - frame
    - func
    - locals
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2119
    functionName: init_frame
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - _PyFrame_Initialize
    - Py_XNewRef
    linkageType: ''
    returnType: void
    signature: "void init_frame(PyThreadState *tstate, _PyInterpreterFrame *frame,\n
      \          PyFunctionObject *func, PyObject *locals)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Objects/frameobject.c:2124,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/frameobject.c:2126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2121
    functionDepth: 1
    functionLinenumber: 2121
    functionLinenumberEnd: 2139
    functionName: _PyFrame_New_NoTrack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - CALL_STAT_INC
    - PyObject_GC_NewVar
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      _PyFrame_New_NoTrack(PyCodeObject *code)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_LoadBuiltinsFromGlobals
      Src: /src/cpython/Objects/frameobject.c:2146,1
    - Dst: _PyFunction_FromConstructor
      Src: /src/cpython/Objects/frameobject.c:2160,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Objects/frameobject.c:2161,1
    - Dst: _PyFrame_New_NoTrack
      Src: /src/cpython/Objects/frameobject.c:2165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:2167,1
    - Dst: init_frame
      Src: /src/cpython/Objects/frameobject.c:2170,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/frameobject.c:2174,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2175,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:2176,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/frameobject.c:2177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - tstate
    - code
    - globals
    - locals
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(f->f_frame))
      pos:
        line_end: 2174
        line_start: 2174
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2179
      start: 2142
    functionDepth: 8
    functionLinenumber: 2142
    functionLinenumberEnd: 2179
    functionName: PyFrame_New
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyFunction_FromConstructor
    - assert
    - _Py_DECREF_BUILTINS
    - Py_DECREF
    - init_frame
    - _PyFrame_IsIncomplete
    - _PyObject_GC_TRACK
    - _PyDict_LoadBuiltinsFromGlobals
    - _PyCode_CODE
    - _PyFrame_New_NoTrack
    linkageType: ''
    returnType: PyFrameObject
    signature: "PyFrameObject *\nPyFrame_New(PyThreadState *tstate, PyCodeObject *code,\n
      \           PyObject *globals, PyObject *locals)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2187,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/frameobject.c:2188,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Objects/frameobject.c:2190,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Objects/frameobject.c:2191,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Objects/frameobject.c:2198,1
    - Dst: PyUnstable_Code_GetFirstFree
      Src: /src/cpython/Objects/frameobject.c:2200,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:2202,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/frameobject.c:2203,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Objects/frameobject.c:2206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2207
    functionName: frame_init_get_vars
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetBytecode
    - PyStackRef_FunctionCheck
    - _PyInterpreterFrame_LASTI
    - PyStackRef_FromPyObjectNew
    - _PyFrame_GetFunction
    - PyTuple_GET_ITEM
    - PyUnstable_Code_GetFirstFree
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void frame_init_get_vars(_PyInterpreterFrame *frame)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:2214,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:2230,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2233,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:2233,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/frameobject.c:2234,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:2238,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2239,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2239,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/frameobject.c:2240,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/frameobject.c:2246,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/frameobject.c:2251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - frame
    - co
    - i
    - pvalue
    argTypes:
    - _PyInterpreterFrame*
    - PyCodeObject*
    - int
    - PyObject**
    assertStmts:
    - condition: (value != NULL && PyCell_Check(value))
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 2238
        line_start: 2238
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2256
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2256
    functionName: frame_get_var
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyFrame_IsIncomplete
    - PyCell_Check
    - _PyLocals_GetKind
    - PyCell_GetRef
    - PyStackRef_AsPyObjectBorrow
    - Py_XINCREF
    - assert
    linkageType: ''
    returnType: int
    signature: "int frame_get_var(_PyInterpreterFrame *frame, PyCodeObject *co, int
      i,\n              PyObject **pvalue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2266,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:2269,1
    - Dst: framelocalsproxy_hasval
      Src: /src/cpython/Objects/frameobject.c:2272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2259
    functionDepth: 3
    functionLinenumber: 2259
    functionLinenumberEnd: 2279
    functionName: _PyFrame_HasHiddenLocals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - framelocalsproxy_hasval
    - _PyLocals_GetKind
    - _PyFrame_GetCode
    linkageType: ''
    returnType: bool
    signature: bool _PyFrame_HasHiddenLocals(_PyInterpreterFrame *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2287,1
    - Dst: _PyFrame_HasHiddenLocals
      Src: /src/cpython/Objects/frameobject.c:2289,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:2294,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:2299,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Objects/frameobject.c:2302,1
    - Dst: _PyFrameLocalsProxy_New
      Src: /src/cpython/Objects/frameobject.c:2304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2282
    functionDepth: 10
    functionLinenumber: 2282
    functionLinenumberEnd: 2305
    functionName: _PyFrame_GetLocals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyDict_New
    - _PyFrame_GetFrameObject
    - _PyFrame_HasHiddenLocals
    - _PyFrameLocalsProxy_New
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyFrame_GetLocals(_PyInterpreterFrame *frame)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/frameobject.c:2311,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:2312,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/frameobject.c:2313,1
    - Dst: frame_init_get_vars
      Src: /src/cpython/Objects/frameobject.c:2318,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2320,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:2322,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/frameobject.c:2323,1
    - Dst: frame_get_var
      Src: /src/cpython/Objects/frameobject.c:2328,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:2337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - frame_obj
    - name
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2308
    functionDepth: 2
    functionLinenumber: 2308
    functionLinenumberEnd: 2339
    functionName: PyFrame_GetVar
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - frame_init_get_vars
    - _PyUnicode_Equal
    - frame_get_var
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetVar(PyFrameObject *frame_obj, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/frameobject.c:2345,1
    - Dst: PyFrame_GetVar
      Src: /src/cpython/Objects/frameobject.c:2349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:2350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - frame
    - name
    argTypes:
    - PyFrameObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2342
    functionDepth: 3
    functionLinenumber: 2342
    functionLinenumberEnd: 2352
    functionName: PyFrame_GetVarString
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyFrame_GetVar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetVarString(PyFrameObject *frame, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2355
    functionDepth: 0
    functionLinenumber: 2355
    functionLinenumberEnd: 2361
    functionName: PyFrame_FastToLocalsWithError
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyFrame_FastToLocalsWithError(PyFrameObject *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2363
    functionDepth: 0
    functionLinenumber: 2363
    functionLinenumberEnd: 2369
    functionName: PyFrame_FastToLocals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyFrame_FastToLocals(PyFrameObject *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - clear
    argTypes:
    - PyFrameObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2377
    functionName: PyFrame_LocalsToFast
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyFrame_LocalsToFast(PyFrameObject *f, int clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2382,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2384,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 2381
        line_start: 2381
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(f))
      pos:
        line_end: 2383
        line_start: 2383
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2386
      start: 2379
    functionDepth: 0
    functionLinenumber: 2379
    functionLinenumberEnd: 2386
    functionName: _PyFrame_IsEntryFrame
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_IsIncomplete
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyFrame_IsEntryFrame(PyFrameObject *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2391,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2393,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2394,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2394,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:2395,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2395,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 2390
        line_start: 2390
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2393
        line_start: 2393
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2398
      start: 2388
    functionDepth: 1
    functionLinenumber: 2388
    functionLinenumberEnd: 2398
    functionName: PyFrame_GetCode
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 19
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - assert
    - Py_END_CRITICAL_SECTION
    - _PyFrame_IsIncomplete
    - Py_NewRef
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyFrame_GetCode(PyFrameObject *frame)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2404,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2405,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2405,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Objects/frameobject.c:2409,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Objects/frameobject.c:2411,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:2414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 2403
        line_start: 2403
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2404
        line_start: 2404
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2415
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2415
    functionName: PyFrame_GetBack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_GetFirstComplete
    - _PyFrame_IsIncomplete
    - Py_XNewRef
    - _PyFrame_GetFrameObject
    - assert
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyFrame_GetBack(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2420,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2420,1
    - Dst: frame_locals_get
      Src: /src/cpython/Objects/frameobject.c:2421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2419
        line_start: 2419
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2422
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2422
    functionName: PyFrame_GetLocals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_IsIncomplete
    - assert
    - frame_locals_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetLocals(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2427,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2427,1
    - Dst: frame_globals_get
      Src: /src/cpython/Objects/frameobject.c:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2426
        line_start: 2426
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2429
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2429
    functionName: PyFrame_GetGlobals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_IsIncomplete
    - frame_globals_get
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetGlobals(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2434,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2434,1
    - Dst: frame_builtins_get
      Src: /src/cpython/Objects/frameobject.c:2435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2433
        line_start: 2433
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2436
      start: 2431
    functionDepth: 1
    functionLinenumber: 2431
    functionLinenumberEnd: 2436
    functionName: PyFrame_GetBuiltins
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - frame_builtins_get
    - _PyFrame_IsIncomplete
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetBuiltins(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2442,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2443,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2443,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/frameobject.c:2444,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2442
        line_start: 2442
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2448
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2448
    functionName: PyFrame_GetLasti
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyFrame_IsIncomplete
    - _PyInterpreterFrame_LASTI
    - assert
    linkageType: ''
    returnType: int
    signature: int PyFrame_GetLasti(PyFrameObject *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2453,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2453,1
    - Dst: frame_generator_get
      Src: /src/cpython/Objects/frameobject.c:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2452
        line_start: 2452
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2455
      start: 2450
    functionDepth: 1
    functionLinenumber: 2450
    functionLinenumberEnd: 2455
    functionName: PyFrame_GetGenerator
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_IsIncomplete
    - assert
    - frame_generator_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetGenerator(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/unionobject.c:24,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/unionobject.c:25,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:27,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:28,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:29,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:30,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unionobject.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: unionobject_dealloc
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void unionobject_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/unionobject.c:38,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/unionobject.c:39,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/unionobject.c:40,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/unionobject.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: union_traverse
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int union_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unionobject.c:53,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/unionobject.c:53,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unionobject.c:54,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:56,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/unionobject.c:57,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unionobject.c:64,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/unionobject.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(alias->unhashable_args))
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cpython/Objects/unionobject.c
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: union_hash
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTuple_GET_SIZE
    - PyObject_Hash
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyTuple_CheckExact
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t union_hash(PyObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/unionobject.c:73,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unionobject.c:81,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unionobject.c:82,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:86,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/unionobject.c:87,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:96,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/unionobject.c:97,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unionobject*
    - unionobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 110
    functionName: unions_equal
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - PyObject_RichCompareBool
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int unions_equal(unionobject *a, unionobject *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/unionobject.c:115,1
    - Dst: unions_equal
      Src: /src/cpython/Objects/unionobject.c:119,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unionobject.c:124,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unionobject.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 7
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: union_richcompare
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - unions_equal
    - _PyUnion_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_richcompare(PyObject *a, PyObject *b, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/unionobject.c:145,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/unionobject.c:149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ub
    - is_checked
    argTypes:
    - unionbuilder*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: unionbuilder_init
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PySet_New
    - Py_DECREF
    linkageType: ''
    returnType: bool
    signature: bool unionbuilder_init(unionbuilder *ub, bool is_checked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ub
    argTypes:
    - unionbuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: unionbuilder_finalize
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void unionbuilder_finalize(unionbuilder *ub)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/unionobject.c:170,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unionobject.c:172,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/unionobject.c:174,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/unionobject.c:180,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/unionobject.c:188,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/unionobject.c:193,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/unionobject.c:200,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/unionobject.c:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - ub
    - arg
    argTypes:
    - unionbuilder*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 167
    functionDepth: 6
    functionLinenumber: 167
    functionLinenumberEnd: 205
    functionName: unionbuilder_add_single_unchecked
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - PySequence_Contains
    - PySet_Add
    - PyObject_Hash
    - PySet_Contains
    - PyErr_Clear
    linkageType: ''
    returnType: bool
    signature: bool unionbuilder_add_single_unchecked(unionbuilder *ub, PyObject *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/unionobject.c:210,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/unionobject.c:213,1
    - Dst: unionbuilder_add_tuple
      Src: /src/cpython/Objects/unionobject.c:215,1
    - Dst: type_check
      Src: /src/cpython/Objects/unionobject.c:218,1
    - Dst: unionbuilder_add_single_unchecked
      Src: /src/cpython/Objects/unionobject.c:222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:223,1
    - Dst: unionbuilder_add_single_unchecked
      Src: /src/cpython/Objects/unionobject.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ub
    - arg
    argTypes:
    - unionbuilder*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 207
    functionDepth: 7
    functionLinenumber: 207
    functionLinenumberEnd: 229
    functionName: unionbuilder_add_single
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - unionbuilder_add_tuple
    - type_check
    - Py_IsNone
    - unionbuilder_add_single_unchecked
    - _PyUnion_Check
    linkageType: ''
    returnType: bool
    signature: bool unionbuilder_add_single(unionbuilder *ub, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unionobject.c:234,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:236,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ub
    - tuple
    argTypes:
    - unionbuilder*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 8
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: unionbuilder_add_tuple
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 1
    functionsReached:
    - unionbuilder_add_single
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: bool
    signature: bool unionbuilder_add_tuple(unionbuilder *ub, PyObject *tuple)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/unionobject.c:247,1
    - Dst: _PyGenericAlias_Check
      Src: /src/cpython/Objects/unionobject.c:248,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/unionobject.c:249,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/unionobject.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: is_unionable
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_IS_TYPE
    - _PyGenericAlias_Check
    - _PyUnion_Check
    linkageType: ''
    returnType: int
    signature: int is_unionable(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_unionable
      Src: /src/cpython/Objects/unionobject.c:259,1
    - Dst: is_unionable
      Src: /src/cpython/Objects/unionobject.c:259,1
    - Dst: unionbuilder_init
      Src: /src/cpython/Objects/unionobject.c:265,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:268,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:269,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:270,1
    - Dst: make_union
      Src: /src/cpython/Objects/unionobject.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 256
    functionDepth: 8
    functionLinenumber: 256
    functionLinenumberEnd: 276
    functionName: _Py_union_type_or
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - unionbuilder_add_single
    - make_union
    - unionbuilder_finalize
    - unionbuilder_init
    - is_unionable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_union_type_or(PyObject* self, PyObject* other)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unionobject.c:282,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/unionobject.c:286,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:292,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:295,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/unionobject.c:296,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:302,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/unionobject.c:303,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:304,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/unionobject.c:305,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:307,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/unionobject.c:308,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unionobject.c:312,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/unionobject.c:315,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 317
    functionName: union_repr
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - _Py_typing_type_repr
    - PyTuple_GET_ITEM
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/unionobject.c:329,1
    - Dst: _Py_make_parameters
      Src: /src/cpython/Objects/unionobject.c:331,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/unionobject.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - alias
    argTypes:
    - unionobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: union_init_parameters
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _Py_make_parameters
    linkageType: ''
    returnType: int
    signature: int union_init_parameters(unionobject *alias)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: union_init_parameters
      Src: /src/cpython/Objects/unionobject.c:344,1
    - Dst: _Py_subs_parameters
      Src: /src/cpython/Objects/unionobject.c:348,1
    - Dst: _Py_union_from_tuple
      Src: /src/cpython/Objects/unionobject.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 356
    functionName: union_getitem
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - _Py_union_from_tuple
    - _Py_subs_parameters
    - Py_DECREF
    - union_init_parameters
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_getitem(PyObject *self, PyObject *item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: union_init_parameters
      Src: /src/cpython/Objects/unionobject.c:366,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unionobject.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(unused)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: union_parameters
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - union_init_parameters
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_parameters(PyObject *self, void *Py_UNUSED(unused))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/unionobject.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: union_name
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_name(PyObject *Py_UNUSED(self), void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unionobject.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: union_origin
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_origin(PyObject *Py_UNUSED(self), void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unionobject.c:409,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/unionobject.c:414,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/unionobject.c:415,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unionobject.c:415,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/unionobject.c:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 420
    functionName: union_getattro
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyObject_GetAttr
    - PyObject_GenericGetAttr
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_getattro(PyObject *self, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unionobject.c:425,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/unionobject.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnion_Check(self))
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/cpython/Objects/unionobject.c
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: _Py_union_args
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 2
    functionsReached:
    - _PyUnion_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_union_args(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/unionobject.c:432,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/unionobject.c:436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:438,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/unionobject.c:441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - name
    - args
    - nargs
    argTypes:
    - char*
    - PyObject**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 445
    functionName: call_typing_func_object
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 6
    functionsReached:
    - PyObject_Vectorcall
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_ImportModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_typing_func_object(const char *name, PyObject **args, size_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/unionobject.c:450,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unionobject.c:452,1
    - Dst: is_unionable
      Src: /src/cpython/Objects/unionobject.c:455,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unionobject.c:456,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/unionobject.c:458,1
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/unionobject.c:463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - arg
    - msg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 466
    functionName: type_check
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - Py_NewRef
    - call_typing_func_object
    - Py_IsNone
    - Py_TYPE
    - is_unionable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_check(PyObject *arg, const char *msg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unionbuilder_init
      Src: /src/cpython/Objects/unionobject.c:472,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/unionobject.c:475,1
    - Dst: unionbuilder_add_tuple
      Src: /src/cpython/Objects/unionobject.c:476,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:481,1
    - Dst: make_union
      Src: /src/cpython/Objects/unionobject.c:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 468
    functionDepth: 9
    functionLinenumber: 468
    functionLinenumberEnd: 486
    functionName: _Py_union_from_tuple
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 2
    functionsReached:
    - unionbuilder_add_tuple
    - unionbuilder_add_single
    - make_union
    - unionbuilder_init
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_union_from_tuple(PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_union_from_tuple
      Src: /src/cpython/Objects/unionobject.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 10
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: union_class_getitem
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - _Py_union_from_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_class_getitem(PyObject *cls, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unionobject.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 499
    functionName: union_mro_entries
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_mro_entries(PyObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/unionobject.c:534,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unionobject.c:536,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:537,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:541,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unionobject.c:542,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:543,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/unionobject.c:548,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Objects/unionobject.c:552,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/unionobject.c:557,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/unionobject.c:563,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:567,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/unionobject.c:574,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:577,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:578,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:579,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:580,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - ub
    argTypes:
    - unionbuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 582
    functionName: make_union
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyList_GET_ITEM
    - _PyObject_GC_TRACK
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyFrozenSet_New
    - PyList_AsTuple
    - unionbuilder_finalize
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_union(unionbuilder *ub)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: PyFloat_GetMax
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    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: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: PyFloat_GetMin
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PyFloat_GetMin(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Objects/floatobject.c:87,1
    - Dst: SetDblFlag
      Src: /src/cpython/Objects/floatobject.c:105,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:106,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:107,1
    - Dst: SetDblFlag
      Src: /src/cpython/Objects/floatobject.c:108,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:109,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:110,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:111,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:112,1
    - Dst: SetDblFlag
      Src: /src/cpython/Objects/floatobject.c:113,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:114,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 121
    functionName: PyFloat_GetInfo
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - SetDblFlag
    - PyStructSequence_New
    - SetIntFlag
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_GetInfo(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: SetFlag
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetFlag(CALL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FLAG
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: SetIntFlag
    functionSourceFile: /src/cpython/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: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: SetDblFlag
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDblFlag(FLAG)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/floatobject.c:126,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/floatobject.c:128,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:130,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/floatobject.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fval
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: PyFloat_FromDouble
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 82
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - _Py_FREELIST_POP
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_FromDouble(double fval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Objects/floatobject.c:140,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Objects/floatobject.c:141,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/floatobject.c:142,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - left
    - right
    - value
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: _PyFloat_FromDouble_ConsumeInputs
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FromPyObjectSteal
    - PyFloat_FromDouble
    - PyStackRef_CLOSE_SPECIALIZED
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _PyFloat_FromDouble_ConsumeInputs(_PyStackRef left, _PyStackRef
      right, double value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:152,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:156,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:163,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Objects/floatobject.c:170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:172,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:177,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - s
    - len
    - obj
    argTypes:
    - char*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 183
    functionName: float_from_string_inner
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyOS_string_to_double
    - PyErr_Format
    - PyFloat_FromDouble
    - Py_ISSPACE
    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/cpython/Objects/floatobject.c:194,1
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/cpython/Objects/floatobject.c:195,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:198,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/floatobject.c:198,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/floatobject.c:200,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:201,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/floatobject.c:203,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/floatobject.c:204,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/floatobject.c:205,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/floatobject.c:207,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/floatobject.c:208,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/floatobject.c:209,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/floatobject.c:211,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/floatobject.c:215,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/floatobject.c:217,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/floatobject.c:220,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:223,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:225,1
    - Dst: _Py_string_to_number_with_underscores
      Src: /src/cpython/Objects/floatobject.c:228,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/floatobject.c:230,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(s_buffer))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (s != NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 233
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 233
    functionName: PyFloat_FromString
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 5
    functionsReached:
    - Py_XDECREF
    - PyUnicode_AsUTF8AndSize
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - PyByteArray_AS_STRING
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyUnicode_IS_ASCII
    - PyByteArray_Check
    - PyObject_GetBuffer
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyByteArray_GET_SIZE
    - PyUnicode_Check
    - PyErr_Format
    - PyBytes_AS_STRING
    - assert
    - _Py_string_to_number_with_underscores
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_FromString(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:238,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:238,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/floatobject.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyFloat_CheckExact(obj))
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: _PyFloat_ExactDealloc
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_CheckExact
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyFloat_ExactDealloc(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:245,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:245,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:246,1
    - Dst: _PyFloat_ExactDealloc
      Src: /src/cpython/Objects/floatobject.c:247,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyFloat_Check(op))
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: float_dealloc
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - PyFloat_CheckExact
    - _PyFloat_ExactDealloc
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void float_dealloc(PyObject *op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/floatobject.c:260,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:264,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:265,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:268,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/floatobject.c:271,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/floatobject.c:275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:276,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:279,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:280,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:288,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:289,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:293,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/floatobject.c:296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:301,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 309
    functionName: PyFloat_AsDouble
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 58
    functionsReached:
    - PyErr_WarnFormat
    - PyFloat_Check
    - Py_DECREF
    - _PyNumber_Index
    - PyFloat_CheckExact
    - PyFloat_AS_DOUBLE
    - PyErr_Format
    - PyLong_AsDouble
    - PyErr_BadArgument
    - Py_TYPE
    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: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: CONVERT_TO_DOUBLE
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_TO_DOUBLE(obj, dbl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/floatobject.c:330,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/floatobject.c:331,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:332,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/floatobject.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - v
    - dbl
    argTypes:
    - PyObject**
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: _Py_convert_int_to_double
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_NewRef
    - PyLong_AsDouble
    - PyLong_Check
    linkageType: ''
    returnType: int
    signature: int _Py_convert_int_to_double(PyObject **v, double *dbl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_CAST
      Src: /src/cpython/Objects/floatobject.c:347,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/floatobject.c:351,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:351,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:356,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/floatobject.c:357,1
    - Dst: strlen
      Src: /src/cpython/Objects/floatobject.c:357,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/floatobject.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 360
    functionName: float_repr
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyFloat_CAST
    - strlen
    - PyMem_Free
    - PyFloat_AS_DOUBLE
    - _PyUnicode_FromASCII
    - PyErr_NoMemory
    - PyOS_double_to_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_repr(PyObject *op)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:383,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:383,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:384,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:389,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:390,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:392,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/floatobject.c:393,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/floatobject.c:403,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Objects/floatobject.c:408,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Objects/floatobject.c:419,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:420,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:421,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:430,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/floatobject.c:436,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:438,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:438,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:441,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:442,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:453,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:454,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Objects/floatobject.c:480,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/floatobject.c:485,1
    - Dst: modf
      Src: /src/cpython/Objects/floatobject.c:487,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:488,1
    - Dst: _PyLong_Lshift
      Src: /src/cpython/Objects/floatobject.c:498,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:501,1
    - Dst: _PyLong_Lshift
      Src: /src/cpython/Objects/floatobject.c:503,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:506,1
    - Dst: PyNumber_Or
      Src: /src/cpython/Objects/floatobject.c:508,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/floatobject.c:508,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:511,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/floatobject.c:514,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/floatobject.c:517,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:519,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:520,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/floatobject.c:549,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 123
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (wsign != 0)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (j != -1.0 || ! PyErr_Occurred())
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (nbits64 >= 0)
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (i > 0.0)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (PyFloat_Check(v))
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (wsign != 0)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (vsign != 0)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 553
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 553
    functionName: float_richcompare
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyNumber_Or
    - Py_SETREF
    - PyBool_FromLong
    - PyNumber_Negative
    - Py_INCREF
    - _PyLong_Lshift
    - PyErr_Occurred
    - PyObject_RichCompareBool
    - modf
    - PyLong_FromDouble
    - _PyLong_NumBits
    - PyLong_Check
    - isfinite
    - PyFloat_AS_DOUBLE
    - frexp
    - PyLong_GetSign
    - PyFloat_Check
    - _PyLong_GetOne
    - PyLong_AsDouble
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_CAST
      Src: /src/cpython/Objects/floatobject.c:558,1
    - Dst: _Py_HashDouble
      Src: /src/cpython/Objects/floatobject.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: float_hash
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyFloat_CAST
    - _Py_HashDouble
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t float_hash(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:566,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:567,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 570
    functionName: float_add
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_add(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:576,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:577,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 580
    functionName: float_sub
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_sub(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:586,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:587,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: float_mul
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_mul(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:596,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:597,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:599,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 605
    functionName: float_div
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - 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/cpython/Objects/floatobject.c:612,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:613,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:615,1
    - Dst: fmod
      Src: /src/cpython/Objects/floatobject.c:619,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:630,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 633
    functionName: float_rem
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - fmod
    - copysign
    - PyErr_SetString
    - CONVERT_TO_DOUBLE
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_rem(PyObject *v, PyObject *w)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fmod
      Src: /src/cpython/Objects/floatobject.c:639,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:658,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:662,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - vx
    - wx
    - floordiv
    - mod
    argTypes:
    - double
    - double
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 671
    functionName: _float_div_mod
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - copysign
    - floor
    - fmod
    linkageType: ''
    returnType: void
    signature: void _float_div_mod(double vx, double wx, double *floordiv, double
      *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:678,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:679,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:681,1
    - Dst: _float_div_mod
      Src: /src/cpython/Objects/floatobject.c:684,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/floatobject.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 686
    functionName: float_divmod
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_BuildValue
    - _float_div_mod
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_divmod(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:693,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:694,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:696,1
    - Dst: _float_div_mod
      Src: /src/cpython/Objects/floatobject.c:699,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 701
    functionName: float_floor_div
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFloat_FromDouble
    - _float_div_mod
    - CONVERT_TO_DOUBLE
    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: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    functionName: DOUBLE_IS_ODD_INTEGER
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOUBLE_IS_ODD_INTEGER(x)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:714,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:719,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:720,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:724,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:726,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:727,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:729,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:730,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:732,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:739,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:741,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:743,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:743,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:745,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:747,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/cpython/Objects/floatobject.c:752,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:754,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:754,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:756,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:757,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/cpython/Objects/floatobject.c:762,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:764,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:769,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:776,1
    - Dst: tp_as_number::nb_power
      Src: /src/cpython/Objects/floatobject.c:780,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/cpython/Objects/floatobject.c:787,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:802,1
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:810,1
    - Dst: _Py_ADJUST_ERANGE1
      Src: /src/cpython/Objects/floatobject.c:811,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Objects/floatobject.c:819,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:823,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 824
    functionName: float_pow
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - DOUBLE_IS_ODD_INTEGER
    - tp_as_number::nb_power
    - pow
    - fabs
    - copysign
    - PyErr_SetString
    - floor
    - CONVERT_TO_DOUBLE
    - isinf
    - _Py_ADJUST_ERANGE1
    - isnan
    - PyErr_SetFromErrno
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_pow(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_CAST
      Src: /src/cpython/Objects/floatobject.c:831,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 833
    functionName: float_neg
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - _PyFloat_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_neg(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_CAST
      Src: /src/cpython/Objects/floatobject.c:838,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:839,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 840
    functionName: float_abs
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - fabs
    - PyFloat_FromDouble
    - _PyFloat_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_abs(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_CAST
      Src: /src/cpython/Objects/floatobject.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 847
    functionName: float_bool
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyFloat_CAST
    linkageType: ''
    returnType: int
    signature: int float_bool(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/floatobject.c:859,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:862,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:864,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:867,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Objects/floatobject.c:869,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/floatobject.c:873,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 874
    functionName: float_is_integer_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - floor
    - Py_NewRef
    - isfinite
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_is_integer_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:886,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 887
    functionName: float___trunc___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AS_DOUBLE
    - PyLong_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___trunc___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:899,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:900,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 901
    functionName: float___floor___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - floor
    - PyFloat_AS_DOUBLE
    - PyLong_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___floor___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:913,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:914,1
    - Dst: ceil
      Src: /src/cpython/Objects/floatobject.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 915
    functionName: float___ceil___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - ceil
    - PyFloat_AS_DOUBLE
    - PyLong_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___ceil___impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_dtoa
      Src: /src/cpython/Objects/floatobject.c:938,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:941,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/floatobject.c:950,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:952,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/floatobject.c:957,1
    - Dst: _Py_dg_strtod
      Src: /src/cpython/Objects/floatobject.c:963,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:965,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:966,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:969,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/floatobject.c:973,1
    - Dst: _Py_dg_freedtoa
      Src: /src/cpython/Objects/floatobject.c:975,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - x
    - ndigits
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 977
    functionName: double_round
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - fabs
    - PyErr_SetString
    - PyOS_snprintf
    - PyMem_Free
    - _Py_dg_dtoa
    - _Py_dg_freedtoa
    - _Py_dg_strtod
    - PyFloat_FromDouble
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_round(double x, int ndigits)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:991,1
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:995,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:1000,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1001,1
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:1004,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:1009,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:1010,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:1012,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:1020,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1021,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1026,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - x
    - ndigits
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 1027
    functionName: double_round
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - pow
    - fabs
    - round
    - PyErr_SetString
    - isfinite
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_round(double x, int ndigits)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/floatobject.c:1051,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:1055,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:1056,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:1058,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1059,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/floatobject.c:1063,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:1064,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:1068,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1069,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1078,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1081,1
    - Dst: double_round
      Src: /src/cpython/Objects/floatobject.c:1084,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - o_ndigits
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1044
    functionDepth: 4
    functionLinenumber: 1044
    functionLinenumberEnd: 1087
    functionName: float___round___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - fabs
    - round
    - PyLong_FromDouble
    - PyErr_Occurred
    - PyNumber_AsSsize_t
    - isfinite
    - PyFloat_FromDouble
    - double_round
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___round___impl(PyObject *self, PyObject *o_ndigits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:1092,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/floatobject.c:1093,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1089
    functionDepth: 3
    functionLinenumber: 1089
    functionLinenumberEnd: 1098
    functionName: float_float
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_CheckExact
    - Py_NewRef
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_float(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_float
      Src: /src/cpython/Objects/floatobject.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1106
    functionDepth: 4
    functionLinenumber: 1106
    functionLinenumberEnd: 1111
    functionName: float_conjugate_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/floatobject.c:1118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts:
    - condition: (0 <= x && x < 16)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 1120
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1120
    functionName: char_from_hex
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char char_from_hex(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1155
    functionName: hex_from_char
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_from_char(unsigned char c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:1184,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:1186,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:1186,1
    - Dst: float_repr
      Src: /src/cpython/Objects/floatobject.c:1187,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:1190,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1191,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1193,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:1196,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:1196,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/floatobject.c:1197,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1198,1
    - Dst: char_from_hex
      Src: /src/cpython/Objects/floatobject.c:1202,1
    - Dst: char_from_hex
      Src: /src/cpython/Objects/floatobject.c:1209,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/floatobject.c:1223,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/floatobject.c:1225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1226
    functionName: float_hex_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - fabs
    - float_repr
    - copysign
    - PyUnicode_FromFormat
    - CONVERT_TO_DOUBLE
    - char_from_hex
    - isinf
    - isnan
    - frexp
    - ldexp
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_hex_impl(PyObject *self)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/floatobject.c:1301,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:1311,1
    - Dst: _Py_parse_inf_or_nan
      Src: /src/cpython/Objects/floatobject.c:1315,1
    - Dst: hex_from_char
      Src: /src/cpython/Objects/floatobject.c:1341,1
    - Dst: hex_from_char
      Src: /src/cpython/Objects/floatobject.c:1346,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/floatobject.c:1358,1
    - Dst: strtol
      Src: /src/cpython/Objects/floatobject.c:1373,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1388,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1402,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/floatobject.c:1415,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1421,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1422,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1430,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1431,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1439,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1443,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1450,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1456,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:1460,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1464,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1466,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/floatobject.c:1466,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1471,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1481,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 137
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1245
    functionDepth: 3
    functionLinenumber: 1245
    functionLinenumberEnd: 1484
    functionName: float_fromhex_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_MAX
    - HEX_DIGIT
    - hex_from_char
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - Py_SETREF
    - PyObject_CallOneArg
    - _Py_parse_inf_or_nan
    - ldexp
    - PyFloat_FromDouble
    - strtol
    - Py_ISSPACE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_fromhex_impl(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: 1382
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1382
    functionName: HEX_DIGIT
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEX_DIGIT(j)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:1518,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:1520,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1521,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:1525,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1526,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:1531,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:1533,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1541,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/floatobject.c:1544,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/floatobject.c:1547,1
    - Dst: Py_ABS
      Src: /src/cpython/Objects/floatobject.c:1547,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1553,1
    - Dst: PyNumberMethods*::nb_lshift
      Src: /src/cpython/Objects/floatobject.c:1554,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1559,1
    - Dst: PyNumberMethods*::nb_lshift
      Src: /src/cpython/Objects/floatobject.c:1560,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/floatobject.c:1565,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:1568,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:1569,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:1570,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1572
    functionName: float_as_integer_ratio_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromDouble
    - PyErr_SetString
    - floor
    - CONVERT_TO_DOUBLE
    - Py_SETREF
    - isinf
    - Py_ABS
    - isnan
    - PyNumberMethods*::nb_lshift
    - PyLong_FromLong
    - frexp
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_as_integer_ratio_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/floatobject.c:1592,1
    - Dst: float_subtype_new
      Src: /src/cpython/Objects/floatobject.c:1594,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1598,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/floatobject.c:1602,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Objects/floatobject.c:1603,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Objects/floatobject.c:1604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - type
    - x
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1586
    functionDepth: 3
    functionLinenumber: 1586
    functionLinenumberEnd: 1605
    functionName: float_new_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - PyFloat_FromString
    - PyNumber_Float
    - PyUnicode_CheckExact
    - float_subtype_new
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_new_impl(PyTypeObject *type, PyObject *x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:1617,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/floatobject.c:1617,1
    - Dst: float_new_impl
      Src: /src/cpython/Objects/floatobject.c:1618,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:1621,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:1621,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/floatobject.c:1622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:1624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:1628,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: 1616
        line_start: 1616
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (PyFloat_Check(tmp))
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 1630
      start: 1612
    functionDepth: 4
    functionLinenumber: 1612
    functionLinenumberEnd: 1630
    functionName: float_subtype_new
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - PyFloat_Check
    - Py_DECREF
    - PyType_IsSubtype
    - float_new_impl
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_subtype_new(PyTypeObject *type, PyObject *x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/floatobject.c:1636,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/floatobject.c:1640,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/floatobject.c:1641,1
    - Dst: float_new_impl
      Src: /src/cpython/Objects/floatobject.c:1646,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/floatobject.c:1646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1632
    functionDepth: 4
    functionLinenumber: 1632
    functionLinenumberEnd: 1647
    functionName: float_vectorcall
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyType_CAST
    - float_new_impl
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfloat_vectorcall(PyObject *type, PyObject *const *args,\n
      \                size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:1664,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/floatobject.c:1665,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/floatobject.c:1668,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:1669,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1672,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1674,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/floatobject.c:1674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - type
    - number
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1660
    functionDepth: 3
    functionLinenumber: 1660
    functionLinenumberEnd: 1677
    functionName: float_from_number_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - Py_SETREF
    - PyObject_CallOneArg
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_from_number_impl(PyTypeObject *type, PyObject *number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/floatobject.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1689
    functionName: float___getnewargs___impl
    functionSourceFile: /src/cpython/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/cpython/Objects/floatobject.c:1725,1
    - Dst: strcmp
      Src: /src/cpython/Objects/floatobject.c:1728,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1732,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1740,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1742,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1744,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - type
    - typestr
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1750
    functionName: float___getformat___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_SetString
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___getformat___impl(PyTypeObject *type, const char *typestr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_float
      Src: /src/cpython/Objects/floatobject.c:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1753
    functionDepth: 4
    functionLinenumber: 1753
    functionLinenumberEnd: 1757
    functionName: float_getreal
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - float_float
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_getreal(PyObject *v, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(v)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1759
    functionDepth: 3
    functionLinenumber: 1759
    functionLinenumberEnd: 1763
    functionName: float_getimag
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_getimag(PyObject *Py_UNUSED(v), void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/floatobject.c:1781,1
    - Dst: _PyFloat_FormatAdvancedWriter
      Src: /src/cpython/Objects/floatobject.c:1782,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/floatobject.c:1785,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/floatobject.c:1787,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/floatobject.c:1790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1791
    functionName: float___format___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyFloat_FormatAdvancedWriter
    - _PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Objects/floatobject.c:1926,1
    - Dst: memcmp
      Src: /src/cpython/Objects/floatobject.c:1928,1
    - Dst: memcmp
      Src: /src/cpython/Objects/floatobject.c:1940,1
    - Dst: memcmp
      Src: /src/cpython/Objects/floatobject.c:1942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1953
    functionName: _init_global_state
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: void
    signature: void _init_global_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/floatobject.c:1958,1
    - Dst: _init_global_state
      Src: /src/cpython/Objects/floatobject.c:1961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1955
    functionDepth: 1
    functionLinenumber: 1955
    functionLinenumberEnd: 1962
    functionName: _PyFloat_InitState
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _init_global_state
    linkageType: ''
    returnType: void
    signature: void _PyFloat_InitState(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Objects/floatobject.c:1968,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/floatobject.c:1971,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/floatobject.c:1974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1975
    functionName: _PyFloat_InitTypes
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStructSequence_InitBuiltin
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyFloat_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Objects/floatobject.c:1980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1977
    functionDepth: 1
    functionLinenumber: 1977
    functionLinenumberEnd: 1981
    functionName: _PyFloat_FiniType
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyStructSequence_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PyFloat_FiniType(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/cpython/Objects/floatobject.c:1987,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/floatobject.c:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1984
    functionDepth: 2
    functionLinenumber: 1984
    functionLinenumberEnd: 1991
    functionName: _PyFloat_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - _Py_FREELIST_SIZE
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyFloat_DebugMallocStats(FILE *out)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:2016,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:2020,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:2025,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:2026,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2030,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:2040,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2042,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:2061,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:2072,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:2073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2104,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 3
    argNames:
    - x
    - data
    - le
    argTypes:
    - double
    - char*
    - int
    assertStmts:
    - condition: (bits < 1024)
      pos:
        line_end: 2071
        line_start: 2071
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (e < 31)
      pos:
        line_end: 2072
        line_start: 2072
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 2107
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2107
    functionName: PyFloat_Pack2
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 2
    functionsReached:
    - copysign
    - PyErr_SetString
    - memcpy
    - isinf
    - isnan
    - frexp
    - ldexp
    - assert
    linkageType: ''
    returnType: int
    signature: int PyFloat_Pack2(double x, char *data, int le)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:2132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2142,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:2151,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:2161,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:2193,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:2193,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:2197,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2200,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2204,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2206,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2211,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2226,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2231,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2246,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 3
    argNames:
    - x
    - data
    - le
    argTypes:
    - double
    - char*
    - int
    assertStmts:
    - condition: (fbits <= 8388608)
      pos:
        line_end: 2160
        line_start: 2160
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 2249
      start: 2109
    functionDepth: 1
    functionLinenumber: 2109
    functionLinenumberEnd: 2249
    functionName: PyFloat_Pack4
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 6
    functionsReached:
    - PyErr_SetString
    - memcpy
    - isinf
    - isnan
    - frexp
    - ldexp
    - assert
    linkageType: ''
    returnType: int
    signature: int PyFloat_Pack4(double x, char *data, int le)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:2274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2284,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:2293,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:2304,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:2309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2359,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2365,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 3
    argNames:
    - x
    - data
    - le
    argTypes:
    - double
    - char*
    - int
    assertStmts:
    - condition: (fhi < 268435456)
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (flo <= 16777216)
      pos:
        line_end: 2308
        line_start: 2308
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 2381
      start: 2251
    functionDepth: 1
    functionLinenumber: 2251
    functionLinenumberEnd: 2381
    functionName: PyFloat_Pack8
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 7
    functionsReached:
    - PyErr_SetString
    - memcpy
    - frexp
    - ldexp
    - assert
    linkageType: ''
    returnType: int
    signature: int PyFloat_Pack8(double x, char *data, int le)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2417,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:2431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - data
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2383
    functionDepth: 0
    functionLinenumber: 2383
    functionLinenumberEnd: 2437
    functionName: PyFloat_Unpack2
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 2
    functionsReached:
    - memcpy
    - ldexp
    linkageType: ''
    returnType: double
    signature: double PyFloat_Unpack2(const char *data, int le)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2466,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:2489,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2508,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2511,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:2515,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2517,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2523,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2525,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2532,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2544,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 2
    argNames:
    - data
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2551
    functionName: PyFloat_Unpack4
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 6
    functionsReached:
    - memcpy
    - ldexp
    - PyErr_SetString
    - isnan
    linkageType: ''
    returnType: double
    signature: double PyFloat_Unpack4(const char *data, int le)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2581,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:2620,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2639,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2642,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - data
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2647
    functionName: PyFloat_Unpack8
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 7
    functionsReached:
    - memcpy
    - ldexp
    - PyErr_SetString
    linkageType: ''
    returnType: double
    signature: double PyFloat_Unpack8(const char *data, int le)
  - 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: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: CHARACTER
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHARACTER(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:50,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/bytesobject.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_Py_IsImmortal(empty))
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: bytes_get_empty
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsImmortal
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bytes_get_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/bytesobject.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - hash
    argTypes:
    - PyBytesObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: set_ob_shash
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ssize_relaxed
    linkageType: ''
    returnType: void
    signature: void set_ob_shash(PyBytesObject *a, Py_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/bytesobject.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: get_ob_shash
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t get_ob_shash(PyBytesObject *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:108,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:111,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:115,1
    - Dst: PyObject_Calloc
      Src: /src/cpython/Objects/bytesobject.c:122,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/bytesobject.c:124,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:126,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/bytesobject.c:128,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - size
    - use_calloc
    argTypes:
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 134
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 134
    functionName: _PyBytes_FromSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - bytes_get_empty
    - PyErr_SetString
    - _PyObject_InitVar
    - set_ob_shash
    - PyObject_Calloc
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromSize(Py_ssize_t size, int use_calloc)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:141,1
    - Dst: CHARACTER
      Src: /src/cpython/Objects/bytesobject.c:146,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:147,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/bytesobject.c:147,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:151,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:154,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - str
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_IsImmortal(op))
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: PyBytes_FromStringAndSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 184
    functionsReached:
    - assert
    - CHARACTER
    - bytes_get_empty
    - PyErr_SetString
    - memcpy
    - _PyBytes_FromSize
    - _Py_IsImmortal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromStringAndSize(const char *str, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:170,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:171,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:173,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:179,1
    - Dst: CHARACTER
      Src: /src/cpython/Objects/bytesobject.c:182,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:183,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/bytesobject.c:183,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/bytesobject.c:188,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:190,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/bytesobject.c:192,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:193,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (_Py_IsImmortal(op))
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 196
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 196
    functionName: PyBytes_FromString
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 18
    functionsReached:
    - PyObject_Malloc
    - CHARACTER
    - bytes_get_empty
    - strlen
    - PyErr_SetString
    - _PyObject_InitVar
    - set_ob_shash
    - _Py_IsImmortal
    - memcpy
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromString(const char *str)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Objects/bytesobject.c:217,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Objects/bytesobject.c:219,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:219,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:240,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:247,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Objects/bytesobject.c:252,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:277,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:279,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:291,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:291,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:294,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:294,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:297,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:297,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:299,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:299,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:300,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:305,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:305,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:308,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:308,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:311,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:311,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:313,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:313,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:314,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:318,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:318,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:319,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:319,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:320,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:324,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:324,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:325,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:325,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:326,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:333,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:335,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/cpython/Objects/bytesobject.c:343,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:350,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:350,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:351,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:351,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytesobject.c:356,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:356,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:360,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:375,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:376,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:382,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:385,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 124
    argCount: 2
    argNames:
    - format
    - vargs
    argTypes:
    - char*
    - va_list
    assertStmts:
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 387
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 387
    functionName: PyBytes_FromFormatV
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - strlen
    - _PyBytesWriter_WriteBytes
    - Py_ISALPHA
    - _PyBytesWriter_Init
    - PyErr_SetString
    - sprintf
    - memmove
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Finish
    - WRITE_BYTES
    - _PyBytesWriter_Alloc
    - va_arg
    - Py_ISDIGIT
    - assert
    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: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: WRITE_BYTES
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_BYTES(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/bytesobject.c:395,1
    - Dst: PyBytes_FromFormatV
      Src: /src/cpython/Objects/bytesobject.c:396,1
    - Dst: va_end
      Src: /src/cpython/Objects/bytesobject.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: PyBytes_FromFormat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    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/cpython/Objects/bytesobject.c:412,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:414,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: 417
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 417
    functionName: getnextarg
    functionSourceFile: /src/cpython/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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/bytesobject.c:431,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:432,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:433,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:434,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/bytesobject.c:444,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:449,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/bytesobject.c:451,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytesobject.c:453,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:456,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytesobject.c:457,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:462,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytesobject.c:463,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 7
    argNames:
    - v
    - flags
    - prec
    - type
    - p_result
    - writer
    - str
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - PyObject**
    - _PyBytesWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 466
    functionName: formatfloat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - strlen
    - PyErr_Occurred
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_Prepare
    - PyErr_Format
    - memcpy
    - Py_TYPE
    - PyMem_Free
    - PyOS_double_to_string
    linkageType: ''
    returnType: char
    signature: "char *\nformatfloat(PyObject *v, int flags, int prec, int type,\n
      \           PyObject **p_result, _PyBytesWriter *writer, char *str)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:472,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/cpython/Objects/bytesobject.c:473,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Objects/bytesobject.c:474,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/bytesobject.c:477,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/bytesobject.c:479,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:481,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:481,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/cpython/Objects/bytesobject.c:482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:483,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:486,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:489,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:493,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - v
    - flags
    - prec
    - type
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (PyLong_Check(iobj))
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 495
      start: 468
    functionDepth: 4
    functionLinenumber: 468
    functionLinenumberEnd: 495
    functionName: formatlong
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyLong_Check
    - PyNumber_Check
    - PyErr_ExceptionMatches
    - PyNumber_Long
    - Py_TYPE
    - PyErr_Format
    - _PyUnicode_FormatLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatlong(PyObject *v, int flags, int prec, int type)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:500,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:501,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:502,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:505,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:508,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytesobject.c:511,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:512,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:513,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:516,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:519,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Objects/bytesobject.c:522,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/bytesobject.c:524,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:525,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:530,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:537,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - arg
    - p
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 541
    functionName: byte_converter
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - PyErr_SetString
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - PyIndex_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyByteArray_Check
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int byte_converter(PyObject *arg, char *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:550,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:551,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:552,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:553,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytesobject.c:555,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:556,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:558,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/bytesobject.c:561,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytesobject.c:561,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/bytesobject.c:563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:564,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:567,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:571,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:574,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:575,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytesobject.c:579,1
    - Dst: _PyBytes_FromBuffer
      Src: /src/cpython/Objects/bytesobject.c:581,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:584,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:585,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:588,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:591,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - v
    - pbuf
    - plen
    argTypes:
    - PyObject*
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 593
    functionName: format_obj
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PyObject_CheckBuffer
    - _Py_ID
    - _PyBytes_FromBuffer
    - PyByteArray_AS_STRING
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - Py_NewRef
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyByteArray_Check
    - PyErr_Format
    - PyBytes_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/cpython/Objects/bytesobject.c:610,1
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Objects/bytesobject.c:616,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Objects/bytesobject.c:619,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/bytesobject.c:625,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:626,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:633,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:633,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/bytesobject.c:634,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:634,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:634,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytesobject.c:635,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytesobject.c:644,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:649,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:651,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:685,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:702,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:711,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/bytesobject.c:714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:715,1
    - Dst: getnextarg
      Src: /src/cpython/Objects/bytesobject.c:738,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:741,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:742,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:747,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:756,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:759,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:760,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:763,1
    - Dst: getnextarg
      Src: /src/cpython/Objects/bytesobject.c:778,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:781,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:782,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/bytesobject.c:787,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:788,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:795,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:798,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:799,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:802,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:818,1
    - Dst: getnextarg
      Src: /src/cpython/Objects/bytesobject.c:822,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/bytesobject.c:837,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:840,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/bytesobject.c:840,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:841,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/bytesobject.c:842,1
    - Dst: format_obj
      Src: /src/cpython/Objects/bytesobject.c:850,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:863,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/bytesobject.c:875,1
    - Dst: _PyLong_FormatBytesWriter
      Src: /src/cpython/Objects/bytesobject.c:892,1
    - Dst: formatlong
      Src: /src/cpython/Objects/bytesobject.c:899,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:902,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/bytesobject.c:902,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:903,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/bytesobject.c:904,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/bytesobject.c:921,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/bytesobject.c:927,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:929,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:930,1
    - Dst: byte_converter
      Src: /src/cpython/Objects/bytesobject.c:938,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:949,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/bytesobject.c:977,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:997,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:998,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:1011,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1022,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1023,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:1030,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:1035,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1040,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:1042,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:1045,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1049,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1055,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1059,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:1065,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:1067,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:1070,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: (len != 0)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (writer.overallocate || fmtcnt == 0 || use_bytearray)
      pos:
        line_end: 1054
        line_start: 1054
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyUnicode_IS_ASCII(temp))
      pos:
        line_end: 839
        line_start: 839
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyUnicode_IS_ASCII(temp))
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[1] == c)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[0] == '0')
      pos:
        line_end: 996
        line_start: 996
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[0] == '0')
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: ((res - before) == alloc)
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[1] == c)
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1075
      start: 597
    functionDepth: 5
    functionLinenumber: 597
    functionLinenumberEnd: 1075
    functionName: _PyBytes_FormatEx
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_AsInt
    - PyErr_SetString
    - Py_CHARMASK
    - PyBytes_Check
    - PyUnicode_IS_ASCII
    - _PyLong_FormatBytesWriter
    - PyLong_CheckExact
    - PyBytes_GET_SIZE
    - formatlong
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - _PyBytesWriter_Dealloc
    - PyObject_GetItem
    - _PyBytesWriter_Prepare
    - _PyBytesWriter_Alloc
    - PyErr_Format
    - PyUnicode_Check
    - byte_converter
    - Py_DECREF
    - formatfloat
    - PyTuple_Check
    - PyLong_Check
    - PyBytes_FromStringAndSize
    - PyObject_ASCII
    - memcpy
    - Py_TYPE
    - PyUnicode_1BYTE_DATA
    - PyLong_AsSsize_t
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - Py_UNREACHABLE
    - PyErr_BadInternalCall
    - _PyBytesWriter_Init
    - format_obj
    - memset
    - _PyBytesWriter_Finish
    - getnextarg
    - memchr
    - PyByteArray_Check
    - Py_ISDIGIT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyBytes_FormatEx(const char *format, Py_ssize_t format_len,\n
      \                 PyObject *args, int use_bytearray)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Objects/bytesobject.c:1089,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Objects/bytesobject.c:1091,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1108,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1146,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1147,1
    - Dst: strcmp
      Src: /src/cpython/Objects/bytesobject.c:1156,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1157,1
    - Dst: strcmp
      Src: /src/cpython/Objects/bytesobject.c:1162,1
    - Dst: strcmp
      Src: /src/cpython/Objects/bytesobject.c:1164,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1167,1
    - Dst: Py_ISXDIGIT
      Src: /src/cpython/Objects/bytesobject.c:1174,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:1189,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:1192,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 116
    argCount: 5
    argNames:
    - s
    - len
    - errors
    - first_invalid_escape_char
    - first_invalid_escape_ptr
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1194
    functionName: _PyBytes_DecodeEscape2
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - PyErr_SetString
    - Py_CHARMASK
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Finish
    - strcmp
    - _PyBytesWriter_Alloc
    - PyErr_Format
    - Py_ISXDIGIT
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_PyBytes_DecodeEscape2(const char *s,\n                                Py_ssize_t
      len,\n                                const char *errors,\n                                int
      *first_invalid_escape_char,\n                                const char **first_invalid_escape_ptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_DecodeEscape2
      Src: /src/cpython/Objects/bytesobject.c:1204,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/bytesobject.c:1211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:1216,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/bytesobject.c:1221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:1226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - s
    - len
    - errors
    - Py_UNUSED
    - Py_UNUSED(recode_encoding)
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1232
    functionName: PyBytes_DecodeEscape
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - PyErr_WarnFormat
    - Py_DECREF
    - _PyBytes_DecodeEscape2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyBytes_DecodeEscape(const char *s,\n                                Py_ssize_t
      len,\n                                const char *errors,\n                                Py_ssize_t
      Py_UNUSED(unicode),\n                                const char *Py_UNUSED(recode_encoding))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1239,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1240,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1241,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1245
    functionName: PyBytes_Size
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 11
    functionsReached:
    - PyBytes_Check
    - Py_SIZE
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyBytes_Size(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1250,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1251,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1256
    functionName: PyBytes_AsString
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 24
    functionsReached:
    - PyBytes_Check
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: char
    signature: 'char *

      PyBytes_AsString(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:1264,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1268,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1269,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1270,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1274,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1276,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:1277,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1277,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - obj
    - s
    - len
    argTypes:
    - PyObject*
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1283
    functionName: PyBytes_AsStringAndSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 9
    functionsReached:
    - strlen
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyBytes_Check
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: "int PyBytes_AsStringAndSize(PyObject *obj,\n                         char
      **s,\n                         Py_ssize_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1289
    functionName: STRINGLIB_GET_EMPTY
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_GET_EMPTY()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1310,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1311,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1319,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/bytesobject.c:1320,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:1324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - haystack
    - len_haystack
    - needle
    - len_needle
    - offset
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (len_haystack >= 0)
      pos:
        line_end: 1309
        line_start: 1309
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (len_haystack >= 1)
      pos:
        line_end: 1318
        line_start: 1318
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (len_needle >= 0)
      pos:
        line_end: 1310
        line_start: 1310
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1329
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1329
    functionName: _PyBytes_Find
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - memcmp
    - assert
    - stringlib_find
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _PyBytes_Find(const char *haystack, Py_ssize_t len_haystack,\n
      \             const char *needle, Py_ssize_t len_needle,\n              Py_ssize_t
      offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_rfind
      Src: /src/cpython/Objects/bytesobject.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - haystack
    - len_haystack
    - needle
    - len_needle
    - offset
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1338
    functionName: _PyBytes_ReverseFind
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - stringlib_rfind
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _PyBytes_ReverseFind(const char *haystack, Py_ssize_t len_haystack,\n
      \                    const char *needle, Py_ssize_t len_needle,\n                     Py_ssize_t
      offset)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1344,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/bytesobject.c:1379,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:1383,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1406,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/bytesobject.c:1406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1410,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 2
    argNames:
    - obj
    - smartquotes
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(v, 1))
      pos:
        line_end: 1405
        line_start: 1405
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1413
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1413
    functionName: PyBytes_Repr
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - PyUnicode_New
    - _PyUnicode_CheckConsistency
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_Repr(PyObject *obj, int smartquotes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Repr
      Src: /src/cpython/Objects/bytesobject.c:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1415
    functionDepth: 2
    functionLinenumber: 1415
    functionLinenumberEnd: 1419
    functionName: bytes_repr
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/bytesobject.c:1424,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytesobject.c:1425,1
    - Dst: bytes_repr
      Src: /src/cpython/Objects/bytesobject.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1431
    functionName: bytes_str
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - bytes_repr
    - PyErr_WarnEx
    - _Py_GetConfig
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_str(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1436,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1438
    functionName: bytes_length
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t bytes_length(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:1449,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:1450,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1451,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1452,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1452,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1457,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1458,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1461,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1462,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:1467,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1471,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:1473,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1473,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:1474,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1474,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1479,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1481,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1441
    functionDepth: 4
    functionLinenumber: 1441
    functionLinenumberEnd: 1483
    functionName: bytes_concat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyObject_GetBuffer
    - PyBytes_AS_STRING
    - PyBuffer_Release
    - PyErr_Format
    - memcpy
    - PyBytes_CheckExact
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_concat(PyObject *a, PyObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1488,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1494,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1495,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1499,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1500,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1500,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1501,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1505,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/bytesobject.c:1509,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:1511,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/bytesobject.c:1513,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:1514,1
    - Dst: _PyBytes_Repeat
      Src: /src/cpython/Objects/bytesobject.c:1517,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1520
    functionName: bytes_repeat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - PyObject_Malloc
    - _PyBytes_Repeat
    - Py_SIZE
    - PyErr_SetString
    - Py_NewRef
    - _PyObject_InitVar
    - set_ob_shash
    - PyBytes_CheckExact
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_repeat(PyObject *self, Py_ssize_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_contains
      Src: /src/cpython/Objects/bytesobject.c:1525,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1525,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1522
    functionDepth: 2
    functionLinenumber: 1522
    functionLinenumberEnd: 1526
    functionName: bytes_contains
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - _Py_bytes_contains
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int bytes_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1531,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1532,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1533,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytesobject.c:1536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1537
    functionName: bytes_item
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - PyErr_SetString
    - Py_SIZE
    - _PyLong_FromUnsignedChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_item(PyObject *self, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1545,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1546,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:1552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyBytesObject*
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1554
    functionName: bytes_compare_eq
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - memcmp
    linkageType: ''
    returnType: int
    signature: int bytes_compare_eq(PyBytesObject *a, PyBytesObject *b)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1560,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1560,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/bytesobject.c:1561,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:1562,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:1562,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytesobject.c:1563,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:1567,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:1567,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytesobject.c:1568,1
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1576,1
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1577,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/bytesobject.c:1590,1
    - Dst: bytes_compare_eq
      Src: /src/cpython/Objects/bytesobject.c:1595,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytesobject.c:1597,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1600,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1601,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytesobject.c:1602,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1605,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1605,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:1607,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytesobject.c:1613,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytesobject.c:1615,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 3
    argNames:
    - aa
    - bb
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1556
    functionDepth: 2
    functionLinenumber: 1556
    functionLinenumberEnd: 1617
    functionName: bytes_richcompare
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - Py_MIN
    - Py_RETURN_RICHCOMPARE
    - _Py_GetConfig
    - Py_SIZE
    - PyBool_FromLong
    - PyLong_Check
    - bytes_compare_eq
    - Py_CHARMASK
    - PyBytes_Check
    - memcmp
    - PyUnicode_Check
    - PyErr_BadArgument
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_richcompare(PyObject *aa, PyObject *bb, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1622,1
    - Dst: get_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:1623,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/bytesobject.c:1626,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1626,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1630
    functionName: bytes_hash
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - Py_SIZE
    - Py_HashBuffer
    - set_ob_shash
    - get_ob_shash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t bytes_hash(PyObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1635,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytesobject.c:1636,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:1637,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:1638,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1641,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1642,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1643,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytesobject.c:1647,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/bytesobject.c:1649,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/bytesobject.c:1656,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/bytesobject.c:1659,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1659,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/bytesobject.c:1663,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1666,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1667,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1668,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1671,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1672,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1676,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1677,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1681,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1691,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1693,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1632
    functionDepth: 4
    functionLinenumber: 1632
    functionLinenumberEnd: 1696
    functionName: bytes_subscript
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - PySlice_AdjustIndices
    - PyErr_Occurred
    - _PyIndex_Check
    - PyErr_SetString
    - Py_GetConstant
    - PyBytes_FromStringAndSize
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - Py_NewRef
    - Py_TYPE
    - PyBytes_GET_SIZE
    - _PyLong_FromUnsignedChar
    - PyErr_Format
    - PySlice_Check
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_subscript(PyObject *op, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1701,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Objects/bytesobject.c:1702,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1698
    functionDepth: 2
    functionLinenumber: 1698
    functionLinenumberEnd: 1704
    functionName: bytes_buffer_getbuffer
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - PyBuffer_FillInfo
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int bytes_buffer_getbuffer(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1738,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1739,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1742,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1734
    functionDepth: 4
    functionLinenumber: 1734
    functionLinenumberEnd: 1744
    functionName: bytes___bytes___impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyBytes_CheckExact
    - PyBytes_FromStringAndSize
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes___bytes___impl(PyBytesObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1769,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1770,1
    - Dst: stringlib_split_whitespace
      Src: /src/cpython/Objects/bytesobject.c:1777,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:1778,1
    - Dst: stringlib_split
      Src: /src/cpython/Objects/bytesobject.c:1783,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1765
    functionDepth: 2
    functionLinenumber: 1765
    functionLinenumberEnd: 1786
    functionName: bytes_split_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - stringlib_split_whitespace
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - stringlib_split
    - PyBytes_AS_STRING
    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/cpython/Objects/bytesobject.c:1809,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1811,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1814
    functionName: bytes_partition_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - stringlib_partition
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_partition_impl(PyBytesObject *self, Py_buffer *sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_rpartition
      Src: /src/cpython/Objects/bytesobject.c:1837,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1839,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1842
    functionName: bytes_rpartition_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - stringlib_rpartition
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rpartition_impl(PyBytesObject *self, Py_buffer *sep)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1857,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1858,1
    - Dst: stringlib_rsplit_whitespace
      Src: /src/cpython/Objects/bytesobject.c:1865,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:1866,1
    - Dst: stringlib_rsplit
      Src: /src/cpython/Objects/bytesobject.c:1871,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1853
    functionDepth: 2
    functionLinenumber: 1853
    functionLinenumberEnd: 1874
    functionName: bytes_rsplit_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - stringlib_rsplit
    - PyBytes_GET_SIZE
    - stringlib_rsplit_whitespace
    - PyBuffer_Release
    - PyBytes_AS_STRING
    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/cpython/Objects/bytesobject.c:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1892
    functionDepth: 0
    functionLinenumber: 1892
    functionLinenumberEnd: 1897
    functionName: bytes_join_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_bytes_join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_join_impl(PyBytesObject *self, PyObject *iterable_of_bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:1903,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1906,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1907,1
    - Dst: stringlib_bytes_join
      Src: /src/cpython/Objects/bytesobject.c:1912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sep
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1899
    functionDepth: 1
    functionLinenumber: 1899
    functionLinenumberEnd: 1913
    functionName: PyBytes_Join
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 6
    functionsReached:
    - PyBytes_Check
    - PyErr_BadInternalCall
    - stringlib_bytes_join
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_Join(PyObject *sep, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_find
      Src: /src/cpython/Objects/bytesobject.c:1937,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1937,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1932
    functionDepth: 4
    functionLinenumber: 1932
    functionLinenumberEnd: 1939
    functionName: bytes_find_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_find
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_find_impl(PyBytesObject *self, PyObject *sub, Py_ssize_t
      start,\n                Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_index
      Src: /src/cpython/Objects/bytesobject.c:1955,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1955,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1950
    functionDepth: 4
    functionLinenumber: 1950
    functionLinenumberEnd: 1957
    functionName: bytes_index_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - _Py_bytes_index
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_index_impl(PyBytesObject *self, PyObject *sub, Py_ssize_t
      start,\n                 Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rfind
      Src: /src/cpython/Objects/bytesobject.c:1973,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1973,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1968
    functionDepth: 4
    functionLinenumber: 1968
    functionLinenumberEnd: 1975
    functionName: bytes_rfind_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_rfind
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_rfind_impl(PyBytesObject *self, PyObject *sub, Py_ssize_t
      start,\n                 Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rindex
      Src: /src/cpython/Objects/bytesobject.c:1991,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1991,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1986
    functionDepth: 4
    functionLinenumber: 1986
    functionLinenumberEnd: 1993
    functionName: bytes_rindex_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_rindex
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_rindex_impl(PyBytesObject *self, PyObject *sub,
      Py_ssize_t start,\n                  Py_ssize_t end)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2000,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2001,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2006,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytesobject.c:2013,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2013,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytesobject.c:2022,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2022,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2026,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2028,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2029,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2032,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - self
    - striptype
    - sepobj
    argTypes:
    - PyBytesObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 1997
    functionDepth: 4
    functionLinenumber: 1997
    functionLinenumberEnd: 2033
    functionName: do_xstrip
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_CHARMASK
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyObject_GetBuffer
    - memchr
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void do_xstrip(PyBytesObject *self, int striptype, PyObject *sepobj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2039,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2040,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2044,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2053,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2057,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2058,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2061,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - self
    - striptype
    argTypes:
    - PyBytesObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2037
    functionDepth: 4
    functionLinenumber: 2037
    functionLinenumberEnd: 2062
    functionName: do_strip
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyBytes_GET_SIZE
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    - Py_ISSPACE
    linkageType: ''
    returnType: void
    signature: void do_strip(PyBytesObject *self, int striptype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_xstrip
      Src: /src/cpython/Objects/bytesobject.c:2069,1
    - Dst: do_strip
      Src: /src/cpython/Objects/bytesobject.c:2071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - striptype
    - bytes
    argTypes:
    - PyBytesObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2066
    functionDepth: 5
    functionLinenumber: 2066
    functionLinenumberEnd: 2072
    functionName: do_argstrip
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - do_strip
    - do_xstrip
    linkageType: ''
    returnType: void
    signature: void do_argstrip(PyBytesObject *self, int striptype, PyObject *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/cpython/Objects/bytesobject.c:2090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2091
    functionName: bytes_strip_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytesobject.c:2108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2104
    functionDepth: 0
    functionLinenumber: 2104
    functionLinenumberEnd: 2109
    functionName: bytes_lstrip_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytesobject.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2122
    functionDepth: 0
    functionLinenumber: 2122
    functionLinenumberEnd: 2127
    functionName: bytes_rstrip_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytesobject.c:2142,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2142,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2137
    functionDepth: 3
    functionLinenumber: 2137
    functionLinenumberEnd: 2144
    functionName: bytes_count_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - _Py_bytes_count
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_count_impl(PyBytesObject *self, PyObject *sub, Py_ssize_t
      start,\n                 Py_ssize_t end)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:2178,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2179,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2180,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2187,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2194,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2196,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:2201,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2202,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2203,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2206,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2207,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2219,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2220,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2222,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2223,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2226,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2227,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2232,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2233,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2236,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:2237,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2237,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2239,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2240,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2246,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2249,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2251,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2254,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2255,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2258,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2260,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2265,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2266,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:2270,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 3
    argNames:
    - self
    - table
    - deletechars
    argTypes:
    - PyBytesObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2161
    functionDepth: 4
    functionLinenumber: 2161
    functionLinenumberEnd: 2272
    functionName: bytes_translate_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - Py_CHARMASK
    - PyBytes_FromStringAndSize
    - _PyBytes_Resize
    - PyBytes_Check
    - Py_SETREF
    - Py_NewRef
    - PyObject_GetBuffer
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    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/cpython/Objects/bytesobject.c:2298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2294
    functionDepth: 2
    functionLinenumber: 2294
    functionLinenumberEnd: 2299
    functionName: bytes_maketrans_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytesobject.c:2324,1
    - Dst: buf::buf
      Src: /src/cpython/Objects/bytesobject.c:2326,1
    - Dst: len::len
      Src: /src/cpython/Objects/bytesobject.c:2326,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: 2327
      start: 2319
    functionDepth: 1
    functionLinenumber: 2319
    functionLinenumberEnd: 2327
    functionName: bytes_replace_impl
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2347,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2348,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:2354,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2356,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2360,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2361,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2343
    functionDepth: 4
    functionLinenumber: 2343
    functionLinenumberEnd: 2365
    functionName: bytes_removeprefix_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyBytes_GET_SIZE
    - memcmp
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_removeprefix_impl(PyBytesObject *self, Py_buffer *prefix)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2384,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2385,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:2391,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2394,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2398,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2399,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - suffix
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2380
    functionDepth: 4
    functionLinenumber: 2380
    functionLinenumberEnd: 2403
    functionName: bytes_removesuffix_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyBytes_GET_SIZE
    - memcmp
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_removesuffix_impl(PyBytesObject *self, Py_buffer *suffix)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_startswith
      Src: /src/cpython/Objects/bytesobject.c:2426,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2426,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - subobj
    - start
    - end
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2421
    functionDepth: 3
    functionLinenumber: 2421
    functionLinenumberEnd: 2428
    functionName: bytes_startswith_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - _Py_bytes_startswith
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_startswith_impl(PyBytesObject *self, PyObject *subobj,\n
      \                     Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_endswith
      Src: /src/cpython/Objects/bytesobject.c:2451,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2451,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - subobj
    - start
    - end
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2446
    functionDepth: 3
    functionLinenumber: 2446
    functionLinenumberEnd: 2453
    functionName: bytes_endswith_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _Py_bytes_endswith
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_endswith_impl(PyBytesObject *self, PyObject *subobj,
      Py_ssize_t start,\n                    Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Objects/bytesobject.c:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyBytesObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2471
    functionDepth: 1
    functionLinenumber: 2471
    functionLinenumberEnd: 2477
    functionName: bytes_decode_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytesobject.c:2496,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2497,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyBytesObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2492
    functionDepth: 1
    functionLinenumber: 2492
    functionLinenumberEnd: 2500
    functionName: bytes_splitlines_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_splitlines
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_splitlines_impl(PyBytesObject *self, int keepends)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_FromHex
      Src: /src/cpython/Objects/bytesobject.c:2519,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:2521,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/bytesobject.c:2521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2515
    functionDepth: 1
    functionLinenumber: 2515
    functionLinenumberEnd: 2524
    functionName: bytes_fromhex_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_FromHex
    - PyObject_CallOneArg
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromhex_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Objects/bytesobject.c:2537,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2540,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/bytesobject.c:2541,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/bytesobject.c:2543,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/bytesobject.c:2544,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/bytesobject.c:2545,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/bytesobject.c:2550,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:2557,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/bytesobject.c:2557,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:2558,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytesobject.c:2560,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2561,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:2568,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Objects/bytesobject.c:2575,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2584,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2587,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2615,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:2617,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2621,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:2624,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:2628,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2632,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 2
    argNames:
    - string
    - use_bytearray
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_KIND(string) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2556
        line_start: 2556
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 2635
      start: 2526
    functionDepth: 2
    functionLinenumber: 2526
    functionLinenumberEnd: 2635
    functionName: _PyBytes_FromHex
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - PyObject_CheckBuffer
    - _PyBytesWriter_Init
    - PyErr_SetString
    - PyUnicode_READ
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Finish
    - PyUnicode_IS_ASCII
    - PyObject_GetBuffer
    - _PyBytesWriter_Alloc
    - PyBuffer_Release
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    - Py_ISSPACE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromHex(PyObject *string, int use_bytearray)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2664,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2665,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/bytesobject.c:2666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyBytesObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2660
    functionDepth: 1
    functionLinenumber: 2660
    functionLinenumberEnd: 2667
    functionName: bytes_hex_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - _Py_strhex_with_sep
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_hex_impl(PyBytesObject *self, PyObject *sep, int bytes_per_sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:2672,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytesobject.c:2673,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2669
    functionDepth: 1
    functionLinenumber: 2669
    functionLinenumberEnd: 2674
    functionName: bytes_getnewargs
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - Py_BuildValue
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_getnewargs(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:2739,1
    - Dst: _PyBytes_FormatEx
      Src: /src/cpython/Objects/bytesobject.c:2742,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2742,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2736
    functionDepth: 6
    functionLinenumber: 2736
    functionLinenumberEnd: 2744
    functionName: bytes_mod
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - _PyBytes_FormatEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_mod(PyObject *self, PyObject *arg)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2777,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2783,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2787,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2788,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Objects/bytesobject.c:2792,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2795,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2796,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/bytesobject.c:2804,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytesobject.c:2804,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/bytesobject.c:2805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2806,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:2809,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:2810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2813,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2817,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2819,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2820,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytesobject.c:2825,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:2826,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2827,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:2828,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytesobject.c:2830,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Objects/bytesobject.c:2831,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2835,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:2838,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Objects/bytesobject.c:2842,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:2846,1
    - Dst: bytes_subtype_new
      Src: /src/cpython/Objects/bytesobject.c:2846,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 4
    argNames:
    - type
    - x
    - encoding
    - errors
    argTypes:
    - PyTypeObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2766
    functionDepth: 4
    functionLinenumber: 2766
    functionLinenumberEnd: 2850
    functionName: bytes_new_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBytes_Check
    - Py_SETREF
    - PyErr_Occurred
    - PyErr_Format
    - PyUnicode_Check
    - bytes_subtype_new
    - PyErr_Clear
    - Py_DECREF
    - _Py_ID
    - PyBytes_FromStringAndSize
    - PyErr_ExceptionMatches
    - _PyBytes_FromSize
    - _PyObject_CallNoArgs
    - PyBytes_FromObject
    - _PyIndex_Check
    - _PyObject_LookupSpecial
    - PyNumber_AsSsize_t
    - PyUnicode_AsEncodedString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_new_impl(PyTypeObject *type, PyObject *x, const
      char *encoding,\n               const char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2858,1
    - Dst: PyBytes_FromStringAndSize::PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2861,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/bytesobject.c:2864,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2867,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2852
    functionDepth: 4
    functionLinenumber: 2852
    functionLinenumberEnd: 2874
    functionName: _PyBytes_FromBuffer
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GetBuffer
    - PyBytes_FromStringAndSize::PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyBuffer_ToContiguous
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromBuffer(PyObject *x)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2879,1
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Objects/bytesobject.c:2885,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Objects/bytesobject.c:2886,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2892,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/bytesobject.c:2893,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/bytesobject.c:2894,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:2895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2896,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2897,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2901,1
    - Dst: _PyBytesWriter_Resize
      Src: /src/cpython/Objects/bytesobject.c:2907,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:2914,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:2917,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2876
    functionDepth: 3
    functionLinenumber: 2876
    functionLinenumberEnd: 2919
    functionName: _PyBytes_FromList
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyErr_Occurred
    - _PyBytesWriter_Init
    - PyList_GET_SIZE
    - PyErr_SetString
    - _PyBytesWriter_Resize
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Finish
    - PyNumber_AsSsize_t
    - _PyBytesWriter_Alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromList(PyObject *x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2925,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2930,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/bytesobject.c:2936,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:2937,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2938,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2951,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2921
    functionDepth: 4
    functionLinenumber: 2921
    functionLinenumberEnd: 2953
    functionName: _PyBytes_FromTuple
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyNumber_AsSsize_t
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromTuple(PyObject *x)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_LengthHint
      Src: /src/cpython/Objects/bytesobject.c:2963,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2964,1
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Objects/bytesobject.c:2967,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Objects/bytesobject.c:2968,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/bytesobject.c:2980,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2982,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:2988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2990,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2995,1
    - Dst: _PyBytesWriter_Resize
      Src: /src/cpython/Objects/bytesobject.c:3002,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:3010,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:3013,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - it
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3015
      start: 2955
    functionDepth: 4
    functionLinenumber: 2955
    functionLinenumberEnd: 3015
    functionName: _PyBytes_FromIterator
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _PyBytesWriter_Init
    - PyErr_SetString
    - _PyBytesWriter_Resize
    - _PyBytesWriter_Dealloc
    - PyIter_Next
    - PyNumber_AsSsize_t
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Alloc
    - PyObject_LengthHint
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromIterator(PyObject *it, PyObject *x)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:3023,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3027,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:3028,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytesobject.c:3032,1
    - Dst: _PyBytes_FromBuffer
      Src: /src/cpython/Objects/bytesobject.c:3033,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3035,1
    - Dst: _PyBytes_FromList
      Src: /src/cpython/Objects/bytesobject.c:3036,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3038,1
    - Dst: _PyBytes_FromTuple
      Src: /src/cpython/Objects/bytesobject.c:3039,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:3041,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/bytesobject.c:3042,1
    - Dst: _PyBytes_FromIterator
      Src: /src/cpython/Objects/bytesobject.c:3044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3045,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:3048,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:3053,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:3055,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3017
    functionDepth: 5
    functionLinenumber: 3017
    functionLinenumberEnd: 3057
    functionName: PyBytes_FromObject
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - PyList_CheckExact
    - Py_DECREF
    - PyObject_CheckBuffer
    - PyErr_BadInternalCall
    - PyObject_GetIter
    - _PyBytes_FromBuffer
    - Py_NewRef
    - _PyBytes_FromList
    - _PyBytes_FromIterator
    - PyErr_ExceptionMatches
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - PyBytes_CheckExact
    - _PyBytes_FromTuple
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromObject(PyObject *x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/bytesobject.c:3067,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3064
    functionDepth: 1
    functionLinenumber: 3064
    functionLinenumberEnd: 3073
    functionName: bytes_alloc
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - set_ob_shash
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_alloc(PyTypeObject *self, Py_ssize_t nitems)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3081,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/bytesobject.c:3081,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3082,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:3082,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3083,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/bytesobject.c:3084,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3086,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3086,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3087,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3088,1
    - Dst: get_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - type
    - tmp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyBytes_Type))
      pos:
        line_end: 3080
        line_start: 3080
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyBytes_Check(tmp))
      pos:
        line_end: 3081
        line_start: 3081
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3092
      start: 3075
    functionDepth: 1
    functionLinenumber: 3075
    functionLinenumberEnd: 3092
    functionName: bytes_subtype_new
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyType_IsSubtype
    - memcpy
    - PyBytes_Check
    - set_ob_shash
    - get_ob_shash
    - PyBytes_GET_SIZE
    - PyTypeObject*::tp_alloc
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_subtype_new(PyTypeObject *type, PyObject *tmp)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3157,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3161,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/bytesobject.c:3165,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3165,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:3170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:3171,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:3172,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:3172,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3173,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3177,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3179,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:3182,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3185,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3185,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:3186,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:3190,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3191,1
    - Dst: bytes_concat
      Src: /src/cpython/Objects/bytesobject.c:3198,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:3199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - pv
    - w
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (pv != NULL)
      pos:
        line_end: 3156
        line_start: 3156
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3201
      start: 3154
    functionDepth: 2
    functionLinenumber: 3154
    functionLinenumberEnd: 3201
    functionName: PyBytes_Concat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - _PyBytes_Resize
    - PyErr_NoMemory
    - Py_SETREF
    - PyObject_GetBuffer
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyErr_Format
    - memcpy
    - PyBuffer_Release
    - bytes_concat
    - PyBytes_CheckExact
    - Py_CLEAR
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void PyBytes_Concat(PyObject **pv, PyObject *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Concat
      Src: /src/cpython/Objects/bytesobject.c:3206,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:3207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pv
    - w
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3208
      start: 3203
    functionDepth: 3
    functionLinenumber: 3203
    functionLinenumberEnd: 3208
    functionName: PyBytes_ConcatAndDel
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyBytes_Concat
    linkageType: ''
    returnType: void
    signature: void PyBytes_ConcatAndDel(PyObject **pv, PyObject *w)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:3229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3231,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:3232,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3235,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:3241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3242,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:3246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3247,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/bytesobject.c:3250,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:3252,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3254,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3254,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3254,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3258,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3260,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/bytesobject.c:3265,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/bytesobject.c:3267,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Objects/bytesobject.c:3269,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/bytesobject.c:3272,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/bytesobject.c:3272,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/bytesobject.c:3274,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3275,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/bytesobject.c:3278,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3280,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3282,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - pv
    - newsize
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3284
      start: 3223
    functionDepth: 5
    functionLinenumber: 3223
    functionLinenumberEnd: 3284
    functionName: _PyBytes_Resize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 40
    functionsReached:
    - Py_SET_SIZE
    - PyBytes_Check
    - _PyThreadState_GET
    - set_ob_shash
    - PyBytes_GET_SIZE
    - PyObject_Realloc
    - _Py_DecRefTotal
    - Py_DECREF
    - bytes_get_empty
    - PyObject_Free
    - _Py_NewReferenceNoTotal
    - PyBytes_FromStringAndSize
    - memcpy
    - _PyBytes_FromSize
    - _Py_ForgetReference
    - PyErr_NoMemory
    - PyBytes_AS_STRING
    - PyErr_BadInternalCall
    - Py_REFCNT
    - _PyReftracerTrack
    linkageType: ''
    returnType: int
    signature: int _PyBytes_Resize(PyObject **pv, Py_ssize_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3295
    functionDepth: 0
    functionLinenumber: 3295
    functionLinenumberEnd: 3296
    functionName: _striterobject_CAST
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _striterobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3300,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/bytesobject.c:3301,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:3302,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/bytesobject.c:3303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3304
      start: 3297
    functionDepth: 1
    functionLinenumber: 3297
    functionLinenumberEnd: 3304
    functionName: striter_dealloc
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _striterobject_CAST
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void striter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3309,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/bytesobject.c:3310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3312
      start: 3306
    functionDepth: 1
    functionLinenumber: 3306
    functionLinenumberEnd: 3312
    functionName: striter_traverse
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _striterobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int striter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3317,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3320,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3324,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:3324,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3326,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytesobject.c:3327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 3319
        line_start: 3319
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyBytes_Check(seq))
      pos:
        line_end: 3323
        line_start: 3323
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3334
      start: 3314
    functionDepth: 1
    functionLinenumber: 3314
    functionLinenumberEnd: 3334
    functionName: striter_next
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyBytes_Check
    - _striterobject_CAST
    - _PyLong_FromUnsignedChar
    - PyBytes_GET_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_next(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3339,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3342,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytesobject.c:3343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3344
      start: 3336
    functionDepth: 1
    functionLinenumber: 3336
    functionLinenumberEnd: 3344
    functionName: striter_len
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _striterobject_CAST
    - PyLong_FromSsize_t
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_len(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/bytesobject.c:3352,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytesobject.c:3352,1
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3357,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytesobject.c:3359,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytesobject.c:3361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3349
    functionDepth: 1
    functionLinenumber: 3349
    functionLinenumberEnd: 3363
    functionName: striter_reduce
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _striterobject_CAST
    - _Py_ID
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:3370,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:3371,1
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3373,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3377,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3367
    functionDepth: 1
    functionLinenumber: 3367
    functionLinenumberEnd: 3382
    functionName: striter_setstate
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _striterobject_CAST
    - PyBytes_GET_SIZE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_setstate(PyObject *op, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:3431,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:3432,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/bytesobject.c:3435,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:3439,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/bytesobject.c:3440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3426
    functionDepth: 1
    functionLinenumber: 3426
    functionLinenumberEnd: 3442
    functionName: bytes_iter
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - PyBytes_Check
    - Py_NewRef
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:3459,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:3461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3464
      start: 3455
    functionDepth: 0
    functionLinenumber: 3455
    functionLinenumberEnd: 3464
    functionName: _PyBytesWriter_Init
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 11
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_Init(_PyBytesWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3466
    functionDepth: 1
    functionLinenumber: 3466
    functionLinenumberEnd: 3470
    functionName: _PyBytesWriter_Dealloc
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 9
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_Dealloc(_PyBytesWriter *writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3476,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3480,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3481,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3484,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyBytesWriter*
    assertStmts:
    - condition: (writer->buffer == NULL)
      pos:
        line_end: 3475
        line_start: 3475
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (writer->buffer != NULL)
      pos:
        line_end: 3483
        line_start: 3483
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (writer->buffer != NULL)
      pos:
        line_end: 3479
        line_start: 3479
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3487
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3487
    functionName: _PyBytesWriter_AsString
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_AsString(_PyBytesWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_AsString
      Src: /src/cpython/Objects/bytesobject.c:3492,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3493,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3494,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyBytesWriter*
    - char*
    assertStmts:
    - condition: (str - start <= writer->allocated)
      pos:
        line_end: 3494
        line_start: 3494
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (str != NULL)
      pos:
        line_end: 3492
        line_start: 3492
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (str >= start)
      pos:
        line_end: 3493
        line_start: 3493
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3497
      start: 3490
    functionDepth: 2
    functionLinenumber: 3490
    functionLinenumberEnd: 3497
    functionName: _PyBytesWriter_GetSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_AsString
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_GetSize(_PyBytesWriter *writer, char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3506,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3509,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3511,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3511,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3513,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3513,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3514,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/bytesobject.c:3514,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3520,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3523,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3524,1
    - Dst: _PyBytesWriter_AsString
      Src: /src/cpython/Objects/bytesobject.c:3526,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3527,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3530,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyBytesWriter*
    - char*
    assertStmts:
    - condition: (writer->buffer == NULL)
      pos:
        line_end: 3505
        line_start: 3505
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyBytes_CheckExact(writer->buffer))
      pos:
        line_end: 3512
        line_start: 3512
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyByteArray_CheckExact(writer->buffer))
      pos:
        line_end: 3510
        line_start: 3510
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (writer->buffer != NULL)
      pos:
        line_end: 3508
        line_start: 3508
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (Py_REFCNT(writer->buffer) == 1)
      pos:
        line_end: 3513
        line_start: 3513
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (!writer->overallocate)
      pos:
        line_end: 3519
        line_start: 3519
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (0 <= writer->allocated)
      pos:
        line_end: 3522
        line_start: 3522
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (start[writer->allocated] == 0)
      pos:
        line_end: 3526
        line_start: 3526
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (start <= str && str <= end)
      pos:
        line_end: 3530
        line_start: 3530
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (str != NULL)
      pos:
        line_end: 3529
        line_start: 3529
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (0 <= writer->min_size && writer->min_size <= writer->allocated)
      pos:
        line_end: 3523
        line_start: 3523
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3533
      start: 3501
    functionDepth: 2
    functionLinenumber: 3501
    functionLinenumberEnd: 3533
    functionName: _PyBytesWriter_CheckConsistency
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_CheckExact
    - _PyBytesWriter_AsString
    - PyBytes_CheckExact
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_CheckConsistency(_PyBytesWriter *writer, char *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3541,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/cpython/Objects/bytesobject.c:3541,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3542,1
    - Dst: _PyBytesWriter_GetSize
      Src: /src/cpython/Objects/bytesobject.c:3551,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytesobject.c:3554,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:3563,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3569,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3572,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3574,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3581,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3583,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3584,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:3591,1
    - Dst: _PyBytesWriter_AsString
      Src: /src/cpython/Objects/bytesobject.c:3597,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3598,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/cpython/Objects/bytesobject.c:3598,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:3602,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: 3540
        line_start: 3540
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (writer->allocated < size)
      pos:
        line_end: 3541
        line_start: 3541
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (writer->buffer == NULL)
      pos:
        line_end: 3568
        line_start: 3568
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (_PyBytesWriter_CheckConsistency(writer, str))
      pos:
        line_end: 3597
        line_start: 3597
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3604
      start: 3536
    functionDepth: 6
    functionLinenumber: 3536
    functionLinenumberEnd: 3604
    functionName: _PyBytesWriter_Resize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_GetSize
    - _PyBytesWriter_CheckConsistency
    - PyByteArray_AS_STRING
    - memset
    - _PyBytesWriter_Dealloc
    - PyByteArray_Resize
    - _PyBytesWriter_AsString
    - PyByteArray_FromStringAndSize
    - memcpy
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyBytesWriter_Resize(_PyBytesWriter *writer, void *str, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3611,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/cpython/Objects/bytesobject.c:3611,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3612,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3620,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/bytesobject.c:3621,1
    - Dst: _PyBytesWriter_Resize
      Src: /src/cpython/Objects/bytesobject.c:3627,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: 3610
        line_start: 3610
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (size >= 0)
      pos:
        line_end: 3611
        line_start: 3611
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3631
      start: 3606
    functionDepth: 7
    functionLinenumber: 3606
    functionLinenumberEnd: 3631
    functionName: _PyBytesWriter_Prepare
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - _PyBytesWriter_Resize
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_CheckConsistency
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyBytesWriter_Prepare(_PyBytesWriter *writer, void *str, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3640,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3641,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytesobject.c:3656,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/bytesobject.c:3663,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: 3639
        line_start: 3639
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (size >= 0)
      pos:
        line_end: 3640
        line_start: 3640
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3664
      start: 3636
    functionDepth: 8
    functionLinenumber: 3636
    functionLinenumberEnd: 3664
    functionName: _PyBytesWriter_Alloc
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 11
    functionsReached:
    - Py_MIN
    - assert
    - _PyBytesWriter_Prepare
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyBytesWriter_Alloc(_PyBytesWriter *writer, Py_ssize_t size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3672,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/cpython/Objects/bytesobject.c:3672,1
    - Dst: _PyBytesWriter_GetSize
      Src: /src/cpython/Objects/bytesobject.c:3674,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3676,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3678,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3682,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3685,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytesobject.c:3694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3695,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:3700,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3701,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyBytesWriter*
    - void*
    assertStmts:
    - condition: (_PyBytesWriter_CheckConsistency(writer, str))
      pos:
        line_end: 3671
        line_start: 3671
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (result == NULL)
      pos:
        line_end: 3700
        line_start: 3700
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3708
      start: 3666
    functionDepth: 6
    functionLinenumber: 3666
    functionLinenumberEnd: 3708
    functionName: _PyBytesWriter_Finish
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 11
    functionsReached:
    - Py_DECREF
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_GetSize
    - _PyBytesWriter_CheckConsistency
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytesWriter_Finish(_PyBytesWriter *writer, void *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/bytesobject.c:3716,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3720,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: 3724
      start: 3710
    functionDepth: 8
    functionLinenumber: 3710
    functionLinenumberEnd: 3724
    functionName: _PyBytesWriter_WriteBytes
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    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: memset
      Src: /src/cpython/Objects/bytesobject.c:3735,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3739,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytesobject.c:3743,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - dest
    - len_dest
    - src
    - len_src
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3748
      start: 3727
    functionDepth: 1
    functionLinenumber: 3727
    functionLinenumberEnd: 3748
    functionName: _PyBytes_Repeat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - memcpy
    - Py_MIN
    - memset
    linkageType: ''
    returnType: void
    signature: "void _PyBytes_Repeat(char* dest, Py_ssize_t len_dest,\n    const char*
      src, Py_ssize_t len_src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/bytearrayobject.c:29,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:31,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - arg
    - value
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: _getbytevalue
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsLongAndOverflow
    linkageType: ''
    returnType: int
    signature: int _getbytevalue(PyObject* arg, int *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:49,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:50,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:52,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:57,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Objects/bytearrayobject.c:58,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: bytearray_getbuffer_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    - PyBuffer_FillInfo
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int bytearray_getbuffer_lock_held(PyObject *self, Py_buffer *view,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:69,1
    - Dst: bytearray_getbuffer_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:70,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: bytearray_getbuffer
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_getbuffer_lock_held
    linkageType: ''
    returnType: int
    signature: int bytearray_getbuffer(PyObject *self, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:78,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:79,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:81,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (obj->ob_exports >= 0)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: bytearray_releasebuffer
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - assert
    - Py_END_CRITICAL_SECTION
    - _PyByteArray_CAST
    linkageType: ''
    returnType: void
    signature: void bytearray_releasebuffer(PyObject *self, Py_buffer *view)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: _canresize
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _canresize(PyByteArrayObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/bytearrayobject.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: PyByteArray_FromObject
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyByteArray_FromObject(PyObject *input)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:112,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:115,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/bytearrayobject.c:117,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:117,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytearrayobject.c:120,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 124
    functionName: _PyByteArray_FromBufferObject
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - PyBuffer_ToContiguous
    - PyObject_GetBuffer
    - PyByteArray_FromStringAndSize
    - PyBuffer_Release
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyByteArray_FromBufferObject(PyObject *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:133,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:140,1
    - Dst: PyObject_New::PyObject_New
      Src: /src/cpython/Objects/bytearrayobject.c:143,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/bytearrayobject.c:153,1
    - Dst: ob_bytes::ob_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:154,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:156,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:159,1
    - Dst: ob_bytes::ob_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:159,1
    - Dst: ob_bytes::ob_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - bytes
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 168
    functionName: PyByteArray_FromStringAndSize
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 10
    functionsReached:
    - ob_bytes::ob_bytes
    - PyErr_SetString
    - memcpy
    - PyObject_New::PyObject_New
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyByteArray_FromStringAndSize(const char *bytes, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:173,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:174,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:174,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: PyByteArray_Size
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 2
    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/cpython/Objects/bytearrayobject.c:182,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:183,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:183,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: PyByteArray_AsString
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 3
    functionsReached:
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      PyByteArray_AsString(PyObject *self)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:191,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:200,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:201,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:201,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:202,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:205,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:210,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:213,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:226,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:227,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:243,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/bytearrayobject.c:248,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:250,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:253,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:253,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytearrayobject.c:254,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:254,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytearrayobject.c:255,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/bytearrayobject.c:258,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:260,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:266,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:267,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 2
    argNames:
    - self
    - requested_size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (logical_offset <= alloc)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (self != NULL)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 271
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 271
    functionName: bytearray_resize_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_SET_SIZE
    - PyMem_Realloc
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - Py_SIZE
    - memcpy
    - PyByteArray_AS_STRING
    - _canresize
    - PyMem_Free
    - PyErr_Format
    - PyByteArray_Check
    - PyMem_Malloc
    - PyErr_NoMemory
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int bytearray_resize_lock_held(PyObject *self, Py_ssize_t requested_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:277,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:278,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - requested_size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: PyByteArray_Resize
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 4
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_resize_lock_held
    linkageType: ''
    returnType: int
    signature: int PyByteArray_Resize(PyObject *self, Py_ssize_t requested_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:291,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:292,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:293,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:294,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:294,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:299,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:304,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:308,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:309,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:314,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:316,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 318
    functionName: PyByteArray_Concat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GetBuffer
    - PyByteArray_FromStringAndSize
    - PyBuffer_Release
    - PyErr_Format
    - memcpy
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyByteArray_Concat(PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: bytearray_length
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t bytearray_length(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:331,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:332,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:336,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:337,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:337,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:341,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:343,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:344,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:347,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:348,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:352,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:352,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:353,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - op
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 355
    functionName: bytearray_iconcat_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - bytearray_resize_lock_held
    - Py_SIZE
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    - Py_NewRef
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyErr_Format
    - memcpy
    - Py_TYPE
    - PyErr_NoMemory
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_iconcat_lock_held(PyObject *op, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:361,1
    - Dst: bytearray_iconcat_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:362,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: bytearray_iconcat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_iconcat_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_iconcat(PyObject *op, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:370,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:371,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:375,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:377,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:381,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:382,1
    - Dst: _PyBytes_Repeat
      Src: /src/cpython/Objects/bytearrayobject.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 387
    functionName: bytearray_repeat_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Repeat
    - Py_SIZE
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    - PyByteArray_FromStringAndSize
    - PyErr_NoMemory
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_repeat_lock_held(PyObject *op, Py_ssize_t count)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:393,1
    - Dst: bytearray_repeat_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:394,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: bytearray_repeat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_repeat_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_repeat(PyObject *op, Py_ssize_t count)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:402,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:403,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:408,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:411,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:413,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:416,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:420,1
    - Dst: _PyBytes_Repeat
      Src: /src/cpython/Objects/bytearrayobject.c:421,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 424
    functionName: bytearray_irepeat_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Repeat
    - bytearray_resize_lock_held
    - Py_SIZE
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    - Py_NewRef
    - PyErr_NoMemory
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_irepeat_lock_held(PyObject *op, Py_ssize_t count)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:430,1
    - Dst: bytearray_irepeat_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:431,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: bytearray_irepeat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_irepeat_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_irepeat(PyObject *op, Py_ssize_t count)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:439,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:440,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:441,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:442,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 446
    functionName: bytearray_getitem_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - _PyByteArray_CAST
    - _PyLong_FromUnsignedChar
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_getitem_lock_held(PyObject *op, Py_ssize_t i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:452,1
    - Dst: bytearray_getitem_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:453,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 456
    functionName: bytearray_getitem
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_getitem_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_getitem(PyObject *op, Py_ssize_t i)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:461,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:462,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytearrayobject.c:463,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:464,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:466,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:470,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:472,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:473,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:476,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/bytearrayobject.c:478,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/bytearrayobject.c:481,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/bytearrayobject.c:484,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:484,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:488,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:490,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:491,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:494,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:498,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:502,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:511,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:513,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 516
    functionName: bytearray_subscript_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PySlice_AdjustIndices
    - PyErr_Occurred
    - _PyIndex_Check
    - Py_SIZE
    - PyErr_SetString
    - PySlice_Check
    - PyByteArray_AS_STRING
    - PyNumber_AsSsize_t
    - _PyByteArray_CAST
    - PySlice_Unpack
    - _PyLong_FromUnsignedChar
    - PyByteArray_FromStringAndSize
    - PyErr_Format
    - PyByteArray_GET_SIZE
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_subscript_lock_held(PyObject *op, PyObject *index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:522,1
    - Dst: bytearray_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:523,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 527
    functionName: bytearray_subscript
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_subscript_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_subscript(PyObject *op, PyObject *index)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:534,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:536,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:539,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:542,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:562,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:563,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:565,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:566,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:582,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:582,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:585,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:588,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:589,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:593,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:594,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:597,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:605,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:606,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    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: 538
        line_start: 538
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 612
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 612
    functionName: bytearray_setslice_linear
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_SIZE
    - memmove
    - PyByteArray_AS_STRING
    - _canresize
    - PyErr_NoMemory
    - memcpy
    - bytearray_resize_lock_held
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    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: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:618,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:628,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:628,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:629,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:633,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:642,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:643,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:645,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:656,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:657,1
    - Dst: bytearray_setslice_linear
      Src: /src/cpython/Objects/bytearrayobject.c:659,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:661,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - self
    - lo
    - hi
    - values
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 663
    functionName: bytearray_setslice
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - bytearray_setslice
    - PyByteArray_AS_STRING
    - PyObject_GetBuffer
    - PyByteArray_FromStringAndSize
    - PyBuffer_Release
    - PyErr_Format
    - PyByteArray_GET_SIZE
    - bytearray_setslice_linear
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    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_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:668,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:669,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:674,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:679,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:682,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:683,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:688,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:691,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - op
    - i
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (0 <= ival && ival < 256)
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 694
      start: 665
    functionDepth: 5
    functionLinenumber: 665
    functionLinenumberEnd: 694
    functionName: bytearray_setitem_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    - bytearray_setslice
    - _getbytevalue
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int bytearray_setitem_lock_held(PyObject *op, Py_ssize_t i, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:700,1
    - Dst: bytearray_setitem_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:701,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - i
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 704
    functionName: bytearray_setitem
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_setitem_lock_held
    linkageType: ''
    returnType: int
    signature: int bytearray_setitem(PyObject *op, Py_ssize_t i, PyObject *value)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:709,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:710,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytearrayobject.c:716,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:717,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:719,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:727,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:732,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:735,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:736,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:748,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:749,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/bytearrayobject.c:753,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/bytearrayobject.c:754,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/bytearrayobject.c:757,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:757,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:761,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:763,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:773,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Objects/bytearrayobject.c:775,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:775,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:776,1
    - Dst: PyByteArray_FromObject
      Src: /src/cpython/Objects/bytearrayobject.c:782,1
    - Dst: bytearray_ass_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:786,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:790,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:790,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:791,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:792,1
    - Dst: bytearray_setslice_linear
      Src: /src/cpython/Objects/bytearrayobject.c:803,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:810,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:812,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:828,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:829,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:831,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:836,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:837,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:839,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:841,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:842,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:851,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:854,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 94
    argCount: 3
    argNames:
    - op
    - index
    - values
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyByteArray_Check(values))
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (0 <= ival && ival < 256)
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 865
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 865
    functionName: bytearray_ass_subscript_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _getbytevalue
    - PyErr_Occurred
    - _canresize
    - PySlice_Unpack
    - _PyByteArray_CAST
    - PyByteArray_Check
    - PyErr_Format
    - PyUnicode_Check
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - bytearray_ass_subscript_lock_held
    - PySlice_AdjustIndices
    - PyByteArray_FromObject
    - Py_DECREF
    - Py_SIZE
    - PyByteArray_AS_STRING
    - PyNumber_Check
    - PyByteArray_GET_SIZE
    - Py_TYPE
    - _PyIndex_Check
    - memmove
    - PyNumber_AsSsize_t
    - bytearray_setslice_linear
    - PySlice_Check
    - bytearray_resize_lock_held
    - assert
    linkageType: ''
    returnType: int
    signature: int bytearray_ass_subscript_lock_held(PyObject *op, PyObject *index,
      PyObject *values)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:871,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:872,1
    - Dst: bytearray_ass_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:873,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:874,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:877,1
    - Dst: bytearray_ass_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:878,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - index
    - values
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 867
    functionDepth: 5
    functionLinenumber: 867
    functionLinenumberEnd: 882
    functionName: bytearray_ass_subscript
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_ass_subscript_lock_held
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - PyByteArray_Check
    linkageType: ''
    returnType: int
    signature: int bytearray_ass_subscript(PyObject *op, PyObject *index, PyObject
      *values)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:902,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:904,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:911,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:920,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:924,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Objects/bytearrayobject.c:928,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:931,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytearrayobject.c:931,1
    - Dst: bytearray_iconcat::bytearray_iconcat
      Src: /src/cpython/Objects/bytearrayobject.c:932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:933,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:942,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytearrayobject.c:950,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:951,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:952,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:953,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:955,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:959,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:963,1
    - Dst: memset
      Src: /src/cpython/Objects/bytearrayobject.c:965,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:965,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:972,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:975,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:978,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/bytearrayobject.c:979,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:979,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:982,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:985,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/bytearrayobject.c:989,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/bytearrayobject.c:989,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:990,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:991,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/bytearrayobject.c:994,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:995,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/bytearrayobject.c:998,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1000,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1001,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:1007,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/bytearrayobject.c:1017,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:1019,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:1020,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1022,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1026,1
    - Dst: iternext
      Src: /src/cpython/Objects/bytearrayobject.c:1034,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:1036,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:1037,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:1039,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:1045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1046,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1051,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1052,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1052,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1053,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1053,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1055,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1055,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1057,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1066,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 129
    argCount: 4
    argNames:
    - self
    - arg
    - encoding
    - errors
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - char*
    - char*
    assertStmts:
    - condition: (PyBytes_Check(encoded))
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 1068
      start: 893
    functionDepth: 5
    functionLinenumber: 893
    functionLinenumberEnd: 1068
    functionName: bytearray___init___impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - PyObject_GetIter
    - PyErr_SetString
    - PyBytes_Check
    - PyLong_CheckExact
    - _getbytevalue
    - PyTuple_CheckExact
    - PyErr_Occurred
    - PyBuffer_ToContiguous
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - PyList_CheckExact
    - Py_DECREF
    - PySequence_Fast_ITEMS
    - Py_SIZE
    - PyByteArray_AS_STRING
    - PyErr_ExceptionMatches
    - PyObject_GetBuffer
    - Py_TYPE
    - PySequence_Fast_GET_SIZE
    - _PyIndex_Check
    - PyObject_CheckBuffer
    - memset
    - PyNumber_AsSsize_t
    - PyUnicode_AsEncodedString
    - PyByteArray_Resize
    - PyBuffer_Release
    - bytearray_iconcat::bytearray_iconcat
    - iternext
    - assert
    linkageType: ''
    returnType: int
    signature: "int bytearray___init___impl(PyByteArrayObject *self, PyObject *arg,\n
      \                       const char *encoding, const char *errors)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:1075,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:1076,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/bytearrayobject.c:1077,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1077,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1080,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytearrayobject.c:1092,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1094,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/bytearrayobject.c:1100,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:1102,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1108,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1125,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:1129,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:1150,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1156,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytearrayobject.c:1157,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (newsize - (p - buffer) >= 5)
      pos:
        line_end: 1128
        line_start: 1128
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (newsize - (p - buffer) >= 1)
      pos:
        line_end: 1149
        line_start: 1149
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 1159
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1159
    functionName: bytearray_repr_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - strlen
    - Py_SIZE
    - PyErr_SetString
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    - PyMem_Free
    - _PyType_Name
    - PyMem_Malloc
    - Py_TYPE
    - PyErr_NoMemory
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_repr_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1165,1
    - Dst: bytearray_repr_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:1166,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1161
    functionDepth: 3
    functionLinenumber: 1161
    functionLinenumberEnd: 1169
    functionName: bytearray_repr
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_repr_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/bytearrayobject.c:1174,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytearrayobject.c:1175,1
    - Dst: bytearray_repr
      Src: /src/cpython/Objects/bytearrayobject.c:1180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1171
    functionDepth: 4
    functionLinenumber: 1171
    functionLinenumberEnd: 1181
    functionName: bytearray_str
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - bytearray_repr
    - PyErr_WarnEx
    - _Py_GetConfig
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_str(PyObject *op)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1190,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1190,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:1191,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:1191,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/bytearrayobject.c:1192,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytearrayobject.c:1193,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1202,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:1203,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1208,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:1209,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1210,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1217,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1218,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytearrayobject.c:1219,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytearrayobject.c:1222,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytearrayobject.c:1223,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1226,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1227,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytearrayobject.c:1230,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytearrayobject.c:1233,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1236
    functionName: bytearray_richcompare
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_RETURN_RICHCOMPARE
    - _Py_GetConfig
    - PyObject_CheckBuffer
    - PyBool_FromLong
    - PyObject_GetBuffer
    - PyBuffer_Release
    - memcmp
    - PyUnicode_Check
    - PyErr_Clear
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:1241,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1243,1
    - Dst: PyErr_Print
      Src: /src/cpython/Objects/bytearrayobject.c:1245,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytearrayobject.c:1248,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1251
    functionName: bytearray_dealloc
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - PyErr_SetString
    - _PyByteArray_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void bytearray_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1260
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/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: 1267
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1267
    functionName: STRINGLIB_ISLINEBREAK
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_ISLINEBREAK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_find
      Src: /src/cpython/Objects/bytearrayobject.c:1304,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1304,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1299
    functionDepth: 4
    functionLinenumber: 1299
    functionLinenumberEnd: 1306
    functionName: bytearray_find_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_find
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_find_impl(PyByteArrayObject *self, PyObject
      *sub, Py_ssize_t start,\n                    Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_count
      Src: /src/cpython/Objects/bytearrayobject.c:1321,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1321,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1316
    functionDepth: 3
    functionLinenumber: 1316
    functionLinenumberEnd: 1323
    functionName: bytearray_count_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _Py_bytes_count
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_count_impl(PyByteArrayObject *self, PyObject
      *sub,\n                     Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1331
    functionDepth: 4
    functionLinenumber: 1331
    functionLinenumberEnd: 1338
    functionName: bytearray_clear_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytearrayobject.c:1351,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1351,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1347
    functionDepth: 3
    functionLinenumber: 1347
    functionLinenumberEnd: 1353
    functionName: bytearray_copy_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - PyByteArray_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_copy_impl(PyByteArrayObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_index
      Src: /src/cpython/Objects/bytearrayobject.c:1370,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1370,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1365
    functionDepth: 4
    functionLinenumber: 1365
    functionLinenumberEnd: 1372
    functionName: bytearray_index_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _Py_bytes_index
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_index_impl(PyByteArrayObject *self, PyObject
      *sub,\n                     Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rfind
      Src: /src/cpython/Objects/bytearrayobject.c:1389,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1389,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1384
    functionDepth: 4
    functionLinenumber: 1384
    functionLinenumberEnd: 1391
    functionName: bytearray_rfind_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - _Py_bytes_rfind
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_rfind_impl(PyByteArrayObject *self, PyObject
      *sub,\n                     Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rindex
      Src: /src/cpython/Objects/bytearrayobject.c:1408,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1408,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - sub
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1403
    functionDepth: 4
    functionLinenumber: 1403
    functionLinenumberEnd: 1410
    functionName: bytearray_rindex_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - _Py_bytes_rindex
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_rindex_impl(PyByteArrayObject *self, PyObject
      *sub,\n                      Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1416,1
    - Dst: _Py_bytes_contains
      Src: /src/cpython/Objects/bytearrayobject.c:1417,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1417,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1418,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1412
    functionDepth: 2
    functionLinenumber: 1412
    functionLinenumberEnd: 1422
    functionName: bytearray_contains
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _Py_bytes_contains
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int bytearray_contains(PyObject *self, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_startswith
      Src: /src/cpython/Objects/bytearrayobject.c:1446,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1446,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - subobj
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1441
    functionDepth: 3
    functionLinenumber: 1441
    functionLinenumberEnd: 1448
    functionName: bytearray_startswith_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _Py_bytes_startswith
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_startswith_impl(PyByteArrayObject *self, PyObject
      *subobj,\n                          Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_endswith
      Src: /src/cpython/Objects/bytearrayobject.c:1472,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1472,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - subobj
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1467
    functionDepth: 3
    functionLinenumber: 1467
    functionLinenumberEnd: 1474
    functionName: bytearray_endswith_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _Py_bytes_endswith
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_endswith_impl(PyByteArrayObject *self, PyObject
      *subobj,\n                        Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1494,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1495,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytearrayobject.c:1500,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1502,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - PyByteArrayObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1490
    functionDepth: 3
    functionLinenumber: 1490
    functionLinenumberEnd: 1507
    functionName: bytearray_removeprefix_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - PyByteArray_FromStringAndSize
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_removeprefix_impl(PyByteArrayObject *self, Py_buffer *prefix)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1527,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1528,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytearrayobject.c:1533,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1536,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - suffix
    argTypes:
    - PyByteArrayObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1523
    functionDepth: 3
    functionLinenumber: 1523
    functionLinenumberEnd: 1541
    functionName: bytearray_removesuffix_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - PyByteArray_FromStringAndSize
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_removesuffix_impl(PyByteArrayObject *self, Py_buffer *suffix)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1556,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1557,1
    - Dst: memset
      Src: /src/cpython/Objects/bytearrayobject.c:1563,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1552
    functionDepth: 4
    functionLinenumber: 1552
    functionLinenumberEnd: 1566
    functionName: bytearray_resize_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_Resize
    - memset
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_resize_impl(PyByteArrayObject *self, Py_ssize_t size)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1602,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1606,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1608,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1615,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1617,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1626,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1627,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1630,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1631,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1636,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1644,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1647,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1651,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1654,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1660,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytearrayobject.c:1661,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1667,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1669,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 3
    argNames:
    - self
    - table
    - deletechars
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1584
    functionDepth: 4
    functionLinenumber: 1584
    functionLinenumberEnd: 1671
    functionName: bytearray_translate_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_CHARMASK
    - PyByteArray_AS_STRING
    - PyObject_GetBuffer
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - PyBuffer_Release
    - PyByteArray_GET_SIZE
    - Py_CLEAR
    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/cpython/Objects/bytearrayobject.c:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1693
    functionDepth: 2
    functionLinenumber: 1693
    functionLinenumberEnd: 1698
    functionName: bytearray_maketrans_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytearrayobject.c:1724,1
    - Dst: buf::buf
      Src: /src/cpython/Objects/bytearrayobject.c:1726,1
    - Dst: len::len
      Src: /src/cpython/Objects/bytearrayobject.c:1726,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: 1727
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1727
    functionName: bytearray_replace_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytearrayobject.c:1750,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1751,1
    - Dst: stringlib_split_whitespace
      Src: /src/cpython/Objects/bytearrayobject.c:1759,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1761,1
    - Dst: stringlib_split
      Src: /src/cpython/Objects/bytearrayobject.c:1766,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1771
    functionName: bytearray_split_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_split
    - PyByteArray_AS_STRING
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyByteArray_GET_SIZE
    - stringlib_split_whitespace
    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/cpython/Objects/bytearrayobject.c:1797,1
    - Dst: stringlib_partition
      Src: /src/cpython/Objects/bytearrayobject.c:1801,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1803,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1803,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1805,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1810
    functionName: bytearray_partition_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyByteArray_AS_STRING
    - stringlib_partition
    - PyByteArray_GET_SIZE
    - _PyByteArray_FromBufferObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_partition_impl(PyByteArrayObject *self, PyObject *sep)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_FromBufferObject
      Src: /src/cpython/Objects/bytearrayobject.c:1837,1
    - Dst: stringlib_rpartition
      Src: /src/cpython/Objects/bytearrayobject.c:1841,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1843,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1843,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1845,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1831
    functionDepth: 3
    functionLinenumber: 1831
    functionLinenumberEnd: 1850
    functionName: bytearray_rpartition_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyByteArray_AS_STRING
    - stringlib_rpartition
    - PyByteArray_GET_SIZE
    - _PyByteArray_FromBufferObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rpartition_impl(PyByteArrayObject *self, PyObject *sep)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1868,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1869,1
    - Dst: stringlib_rsplit_whitespace
      Src: /src/cpython/Objects/bytearrayobject.c:1877,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1879,1
    - Dst: stringlib_rsplit
      Src: /src/cpython/Objects/bytearrayobject.c:1884,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1863
    functionDepth: 2
    functionLinenumber: 1863
    functionLinenumberEnd: 1889
    functionName: bytearray_rsplit_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - PyObject_GetBuffer
    - stringlib_rsplit
    - PyBuffer_Release
    - stringlib_rsplit_whitespace
    - PyByteArray_GET_SIZE
    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/cpython/Objects/bytearrayobject.c:1903,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1915
    functionName: bytearray_reverse_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytearrayobject.c:1943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1947,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:1951,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1953,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:1962,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - index
    - item
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1939
    functionDepth: 3
    functionLinenumber: 1939
    functionLinenumberEnd: 1966
    functionName: bytearray_insert_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - memmove
    - PyByteArray_AS_STRING
    - bytearray_resize_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_insert_impl(PyByteArrayObject *self, Py_ssize_t index, int item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1972,1
    - Dst: stringlib_isalnum
      Src: /src/cpython/Objects/bytearrayobject.c:1973,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 1976
    functionName: bytearray_isalnum
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_isalnum
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_isalnum(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1982,1
    - Dst: stringlib_isalpha
      Src: /src/cpython/Objects/bytearrayobject.c:1983,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 1986
    functionName: bytearray_isalpha
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_isalpha
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_isalpha(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1992,1
    - Dst: stringlib_isascii
      Src: /src/cpython/Objects/bytearrayobject.c:1993,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 1996
    functionName: bytearray_isascii
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_isascii
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_isascii(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2002,1
    - Dst: stringlib_isdigit
      Src: /src/cpython/Objects/bytearrayobject.c:2003,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1998
    functionDepth: 1
    functionLinenumber: 1998
    functionLinenumberEnd: 2006
    functionName: bytearray_isdigit
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_isdigit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_isdigit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2012,1
    - Dst: stringlib_islower
      Src: /src/cpython/Objects/bytearrayobject.c:2013,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2008
    functionDepth: 1
    functionLinenumber: 2008
    functionLinenumberEnd: 2016
    functionName: bytearray_islower
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_islower
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_islower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2022,1
    - Dst: stringlib_isspace
      Src: /src/cpython/Objects/bytearrayobject.c:2023,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2018
    functionDepth: 1
    functionLinenumber: 2018
    functionLinenumberEnd: 2026
    functionName: bytearray_isspace
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_isspace
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_isspace(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2032,1
    - Dst: stringlib_istitle
      Src: /src/cpython/Objects/bytearrayobject.c:2033,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2036
    functionName: bytearray_istitle
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_istitle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_istitle(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2042,1
    - Dst: stringlib_isupper
      Src: /src/cpython/Objects/bytearrayobject.c:2043,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2046
    functionName: bytearray_isupper
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_isupper
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2063,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:2066,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2070,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2059
    functionDepth: 3
    functionLinenumber: 2059
    functionLinenumberEnd: 2076
    functionName: bytearray_append_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - PyByteArray_AS_STRING
    - bytearray_resize_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_append_impl(PyByteArrayObject *self, int item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2082,1
    - Dst: stringlib_capitalize
      Src: /src/cpython/Objects/bytearrayobject.c:2083,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2078
    functionDepth: 1
    functionLinenumber: 2078
    functionLinenumberEnd: 2086
    functionName: bytearray_capitalize
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_capitalize
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_capitalize(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2092,1
    - Dst: stringlib_center
      Src: /src/cpython/Objects/bytearrayobject.c:2093,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2096
    functionName: bytearray_center
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_center
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2102,1
    - Dst: stringlib_expandtabs
      Src: /src/cpython/Objects/bytearrayobject.c:2103,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2106
    functionName: bytearray_expandtabs
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_expandtabs
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:2130,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:2131,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2131,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2131,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/bytearrayobject.c:2137,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:2139,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:2140,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2142,1
    - Dst: PyObject_LengthHint
      Src: /src/cpython/Objects/bytearrayobject.c:2148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2150,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:2154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2156,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2159,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/bytearrayobject.c:2161,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:2162,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:2163,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:2163,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:2164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2179,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:2180,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2189,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2197,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:2199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2200,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2206,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:2210,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2210,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2214,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:2216,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:2216,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 2
    argNames:
    - self
    - iterable_of_ints
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2215
        line_start: 2215
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 2218
      start: 2120
    functionDepth: 5
    functionLinenumber: 2120
    functionLinenumberEnd: 2218
    functionName: bytearray_extend_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - bytearray_resize_lock_held
    - PyObject_CheckBuffer
    - Py_SIZE
    - PyObject_GetIter
    - PyErr_Occurred
    - PyByteArray_AS_STRING
    - PyIter_Next
    - PyErr_ExceptionMatches
    - PyByteArray_FromStringAndSize
    - PyErr_Format
    - bytearray_setslice
    - _getbytevalue
    - PyUnicode_Check
    - PyObject_LengthHint
    - Py_TYPE
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_extend_impl(PyByteArrayObject *self, PyObject *iterable_of_ints)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2239,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:2243,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2248,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:2250,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:2253,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2256,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:2258,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2259,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:2262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2234
    functionDepth: 3
    functionLinenumber: 2234
    functionLinenumberEnd: 2263
    functionName: bytearray_pop_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - memmove
    - PyByteArray_AS_STRING
    - _canresize
    - _PyLong_FromUnsignedChar
    - bytearray_resize_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_pop_impl(PyByteArrayObject *self, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2280,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2281,1
    - Dst: stringlib_find_char
      Src: /src/cpython/Objects/bytearrayobject.c:2283,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:2285,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:2288,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:2291,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2276
    functionDepth: 3
    functionLinenumber: 2276
    functionLinenumberEnd: 2296
    functionName: bytearray_remove_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_find_char
    - Py_SIZE
    - PyErr_SetString
    - memmove
    - PyByteArray_AS_STRING
    - _canresize
    - bytearray_resize_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_remove_impl(PyByteArrayObject *self, int value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:2315,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2320,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2321,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytearrayobject.c:2325,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytearrayobject.c:2332,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:2336,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:2337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - bytes
    - striptype
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2302
    functionDepth: 3
    functionLinenumber: 2302
    functionLinenumberEnd: 2338
    functionName: bytearray_strip_impl_helper
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyByteArray_AS_STRING
    - PyObject_GetBuffer
    - memchr
    - PyBuffer_Release
    - PyByteArray_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_strip_impl_helper(PyByteArrayObject* self, PyObject* bytes, int striptype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_strip_impl_helper
      Src: /src/cpython/Objects/bytearrayobject.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2353
    functionDepth: 4
    functionLinenumber: 2353
    functionLinenumberEnd: 2358
    functionName: bytearray_strip_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - bytearray_strip_impl_helper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_strip_impl(PyByteArrayObject *self, PyObject *bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2364,1
    - Dst: stringlib_swapcase
      Src: /src/cpython/Objects/bytearrayobject.c:2365,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2368
    functionName: bytearray_swapcase
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_swapcase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_swapcase(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2374,1
    - Dst: stringlib_title
      Src: /src/cpython/Objects/bytearrayobject.c:2375,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2370
    functionDepth: 1
    functionLinenumber: 2370
    functionLinenumberEnd: 2378
    functionName: bytearray_title
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_title
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_title(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2384,1
    - Dst: stringlib_upper
      Src: /src/cpython/Objects/bytearrayobject.c:2385,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2380
    functionDepth: 1
    functionLinenumber: 2380
    functionLinenumberEnd: 2388
    functionName: bytearray_upper
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_upper
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_upper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2394,1
    - Dst: stringlib_lower
      Src: /src/cpython/Objects/bytearrayobject.c:2395,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2398
    functionName: bytearray_lower
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_lower
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_lower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2404,1
    - Dst: stringlib_zfill
      Src: /src/cpython/Objects/bytearrayobject.c:2405,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2400
    functionDepth: 1
    functionLinenumber: 2400
    functionLinenumberEnd: 2408
    functionName: bytearray_zfill
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_zfill
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_zfill(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_strip_impl_helper
      Src: /src/cpython/Objects/bytearrayobject.c:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2422
    functionDepth: 4
    functionLinenumber: 2422
    functionLinenumberEnd: 2427
    functionName: bytearray_lstrip_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - bytearray_strip_impl_helper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_lstrip_impl(PyByteArrayObject *self, PyObject *bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_strip_impl_helper
      Src: /src/cpython/Objects/bytearrayobject.c:2445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2441
    functionDepth: 4
    functionLinenumber: 2441
    functionLinenumberEnd: 2446
    functionName: bytearray_rstrip_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - bytearray_strip_impl_helper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rstrip_impl(PyByteArrayObject *self, PyObject *bytes)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/bytearrayobject.c:2470,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Objects/bytearrayobject.c:2471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyByteArrayObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2464
    functionDepth: 1
    functionLinenumber: 2464
    functionLinenumberEnd: 2472
    functionName: bytearray_decode_impl
    functionSourceFile: /src/cpython/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: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2482,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:2483,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2479
    functionDepth: 1
    functionLinenumber: 2479
    functionLinenumberEnd: 2484
    functionName: bytearray_alloc
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyByteArray_CAST
    - PyLong_FromSsize_t
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_alloc(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_bytes_join
      Src: /src/cpython/Objects/bytearrayobject.c:2506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2509
    functionName: bytearray_join_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_bytes_join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_join_impl(PyByteArrayObject *self, PyObject *iterable_of_bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2515,1
    - Dst: stringlib_ljust
      Src: /src/cpython/Objects/bytearrayobject.c:2516,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2511
    functionDepth: 1
    functionLinenumber: 2511
    functionLinenumberEnd: 2519
    functionName: bytearray_ljust
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_ljust
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_ljust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2525,1
    - Dst: stringlib_rjust
      Src: /src/cpython/Objects/bytearrayobject.c:2526,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2521
    functionDepth: 1
    functionLinenumber: 2521
    functionLinenumberEnd: 2529
    functionName: bytearray_rjust
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - stringlib_rjust
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_splitlines
      Src: /src/cpython/Objects/bytearrayobject.c:2549,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2550,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2545
    functionDepth: 1
    functionLinenumber: 2545
    functionLinenumberEnd: 2553
    functionName: bytearray_splitlines_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_splitlines
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_splitlines_impl(PyByteArrayObject *self, int keepends)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_FromHex
      Src: /src/cpython/Objects/bytearrayobject.c:2572,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytearrayobject.c:2574,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/bytearrayobject.c:2574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2568
    functionDepth: 3
    functionLinenumber: 2568
    functionLinenumberEnd: 2577
    functionName: bytearray_fromhex_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_FromHex
    - PyObject_CallOneArg
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_fromhex_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2607,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2608,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/bytearrayobject.c:2609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2603
    functionDepth: 1
    functionLinenumber: 2603
    functionLinenumberEnd: 2610
    functionName: bytearray_hex_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _Py_strhex_with_sep
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_hex_impl(PyByteArrayObject *self, PyObject *sep, int bytes_per_sep)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetState
      Src: /src/cpython/Objects/bytearrayobject.c:2618,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2623,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2624,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2624,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2626,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Objects/bytearrayobject.c:2629,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2629,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2630,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2630,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2634,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2634,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2612
    functionDepth: 1
    functionLinenumber: 2612
    functionLinenumberEnd: 2636
    functionName: _common_reduce
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetState
    - PyUnicode_DecodeLatin1
    - Py_BuildValue
    - Py_SIZE
    - PyByteArray_AS_STRING
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _common_reduce(PyByteArrayObject *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _common_reduce
      Src: /src/cpython/Objects/bytearrayobject.c:2649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2650
    functionName: bytearray_reduce_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytearrayobject.c:2666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2662
    functionDepth: 0
    functionLinenumber: 2662
    functionLinenumberEnd: 2667
    functionName: bytearray_reduce_ex_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/bytearrayobject.c:2679,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2679,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2680,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/bytearrayobject.c:2681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2682
    functionName: bytearray_sizeof_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_TYPE
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_sizeof_impl(PyByteArrayObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:2774,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:2775,1
    - Dst: _PyBytes_FormatEx
      Src: /src/cpython/Objects/bytearrayobject.c:2777,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2777,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2771
    functionDepth: 6
    functionLinenumber: 2771
    functionLinenumberEnd: 2778
    functionName: bytearray_mod_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - _PyBytes_FormatEx
    - PyByteArray_GET_SIZE
    - PyByteArray_Check
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_mod_lock_held(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:2784,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:2785,1
    - Dst: bytearray_mod_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2786,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:2787,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2790,1
    - Dst: bytearray_mod_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2791,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2780
    functionDepth: 7
    functionLinenumber: 2780
    functionLinenumberEnd: 2795
    functionName: bytearray_mod
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - bytearray_mod_lock_held
    - Py_END_CRITICAL_SECTION2
    - PyByteArray_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_mod(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2873
    functionDepth: 0
    functionLinenumber: 2873
    functionLinenumberEnd: 2874
    functionName: _bytesiterobject_CAST
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bytesiterobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2878,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/bytearrayobject.c:2879,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2880,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/bytearrayobject.c:2881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2875
    functionDepth: 1
    functionLinenumber: 2875
    functionLinenumberEnd: 2882
    functionName: bytearrayiter_dealloc
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _bytesiterobject_CAST
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void bytearrayiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2887,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/bytearrayobject.c:2888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 2890
    functionName: bytearrayiter_traverse
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytesiterobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bytearrayiter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2895,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:2898,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2899,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:2904,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:2904,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2906,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2907,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2908,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2913,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2916,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytearrayobject.c:2918,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2922,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:2923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 2897
        line_start: 2897
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(seq))
      pos:
        line_end: 2903
        line_start: 2903
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 2924
      start: 2892
    functionDepth: 1
    functionLinenumber: 2892
    functionLinenumberEnd: 2924
    functionName: bytearrayiter_next
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _bytesiterobject_CAST
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyByteArray_AS_STRING
    - _PyLong_FromUnsignedChar
    - PyByteArray_Check
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2929,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2931,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2933,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:2938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2926
    functionDepth: 1
    functionLinenumber: 2926
    functionLinenumberEnd: 2939
    functionName: bytearrayiter_length_hint
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyLong_FromSsize_t
    - _bytesiterobject_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_length_hint(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/bytearrayobject.c:2947,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytearrayobject.c:2947,1
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2952,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2953,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2955,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2944
    functionDepth: 1
    functionLinenumber: 2944
    functionLinenumberEnd: 2958
    functionName: bytearrayiter_reduce
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _bytesiterobject_CAST
    - Py_BuildValue
    - _Py_ID
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:2963,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:2964,1
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2968,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2969,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2974,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2960
    functionDepth: 1
    functionLinenumber: 2960
    functionLinenumberEnd: 2982
    functionName: bytearrayiter_setstate
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _bytesiterobject_CAST
    - PyErr_Occurred
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyByteArray_GET_SIZE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_setstate(PyObject *self, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:3034,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytearrayobject.c:3035,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/bytearrayobject.c:3038,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:3042,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/bytearrayobject.c:3043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 3029
    functionDepth: 1
    functionLinenumber: 3029
    functionLinenumberEnd: 3045
    functionName: bytearray_iter
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - Py_NewRef
    - PyByteArray_Check
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/exceptions.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: get_exc_state
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: struct _Py_exc_state
    signature: 'struct _Py_exc_state *

      get_exc_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:52,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: PyBaseExceptionObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: PyBaseExceptionObject
    signature: 'PyBaseExceptionObject *

      PyBaseExceptionObject_CAST(PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/exceptions.c:64,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:74,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:78,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 85
    functionName: BaseException_new
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - PyTuple_New
    - Py_NewRef
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:90,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/exceptions.c:91,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:91,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:94,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: BaseException_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionObject_CAST
    - _PyArg_NoKeywords
    - Py_NewRef
    - Py_XSETREF
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int BaseException_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/exceptions.c:103,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/exceptions.c:104,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/exceptions.c:109,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/exceptions.c:122,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/exceptions.c:122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - type_obj
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 129
    functionName: BaseException_vectorcall
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyTuple_FromArray
    - _PyType_CAST
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nBaseException_vectorcall(PyObject *type_obj, PyObject
      * const*args,\n                         size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:135,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:136,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:137,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:138,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:139,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:140,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: BaseException_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int BaseException_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:148,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/exceptions.c:149,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:153,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: BaseException_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyBaseExceptionObject_CAST
    - BaseException_clear
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void BaseException_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:160,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:161,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:162,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:163,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:164,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:165,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: BaseException_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int BaseException_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:173,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:176,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:177,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:179,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:182,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:182,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:185,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 190
    functionName: BaseException_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_Str
    - PyBaseExceptionObject_CAST
    - PyTuple_GET_SIZE
    - Py_END_CRITICAL_SECTION
    - Py_GetConstant
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_str(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:196,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:199,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/exceptions.c:200,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:200,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:201,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:202,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:203,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:206,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: BaseException_repr
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - PyTuple_GET_SIZE
    - Py_END_CRITICAL_SECTION
    - PyUnicode_FromFormat
    - _PyType_Name
    - PyTuple_GET_ITEM
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:224,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:224,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:226,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: BaseException___reduce___impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___reduce___impl(PyBaseExceptionObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/exceptions.c:250,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:251,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/exceptions.c:254,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:255,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:256,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/exceptions.c:257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 266
    functionName: BaseException___setstate___impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyErr_SetString
    - PyDict_Next
    - PyObject_SetAttr
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___setstate___impl(PyBaseExceptionObject *self, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BaseException___traceback___set_impl
      Src: /src/cpython/Objects/exceptions.c:282,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - tb
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: BaseException_with_traceback_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - BaseException___traceback___set_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_with_traceback_impl(PyBaseExceptionObject *self, PyObject *tb)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/exceptions.c:302,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:302,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:306,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/exceptions.c:310,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:311,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:316,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:317,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - note
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 326
    functionName: BaseException_add_note_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyList_Append
    - _Py_ID
    - PyErr_SetString
    - PyList_Check
    - PyObject_SetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_add_note_impl(PyBaseExceptionObject *self, PyObject *note)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: BaseException_args_get_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_args_get_impl(PyBaseExceptionObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:364,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/exceptions.c:367,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 372
    functionName: BaseException_args_set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PySequence_Tuple
    - PyErr_SetString
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int BaseException_args_set_impl(PyBaseExceptionObject *self, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: BaseException___traceback___get_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___traceback___get_impl(PyBaseExceptionObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:403,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Objects/exceptions.c:406,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:407,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:407,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:410,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 418
    functionName: BaseException___traceback___set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - Py_NewRef
    - Py_XSETREF
    - PyTraceBack_Check
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int BaseException___traceback___set_impl(PyBaseExceptionObject *self,\n
      \                                    PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: BaseException___context___get_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___context___get_impl(PyBaseExceptionObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:448,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:453,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:457,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 461
    functionName: BaseException___context___set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyExceptionInstance_Check
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: "int BaseException___context___set_impl(PyBaseExceptionObject *self,\n
      \                                  PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: BaseException___cause___get_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___cause___get_impl(PyBaseExceptionObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:491,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:496,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:501,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Objects/exceptions.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: BaseException___cause___set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyExceptionInstance_Check
    - PyException_SetCause
    linkageType: ''
    returnType: int
    signature: "int BaseException___cause___set_impl(PyBaseExceptionObject *self,\n
      \                                PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:522,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:523,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:523,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: PyException_GetTraceback
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 4
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetTraceback(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:533,1
    - Dst: BaseException___traceback___set_impl
      Src: /src/cpython/Objects/exceptions.c:534,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:534,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 537
    functionName: PyException_SetTraceback
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - BaseException___traceback___set_impl
    linkageType: ''
    returnType: int
    signature: int PyException_SetTraceback(PyObject *self, PyObject *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:543,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:544,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:544,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 547
    functionName: PyException_GetCause
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetCause(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:553,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:554,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:556,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cause
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: PyException_SetCause
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void PyException_SetCause(PyObject *self, PyObject *cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:564,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:565,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:565,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: PyException_GetContext
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetContext(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:574,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:575,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:575,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 577
    functionName: PyException_SetContext
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void PyException_SetContext(PyObject *self, PyObject *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:583,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:584,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:584,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 587
    functionName: PyException_GetArgs
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - Py_NewRef
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetArgs(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:592,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:593,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:594,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:594,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 596
    functionName: PyException_SetArgs
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_INCREF
    - PyBaseExceptionObject_CAST
    - Py_END_CRITICAL_SECTION
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void PyException_SetArgs(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:601,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionClass_Check(ob))
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: PyExceptionClass_Name
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyExceptionClass_Check
    - assert
    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: 676
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 676
    functionName: SimpleExtendsException
    functionSourceFile: /src/cpython/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: 11
    argNames:
    - (
    - EXCBASE
    - ','
    - EXCNAME
    - ','
    - PYEXCNAME
    - ','
    - EXCSTORE
    - ','
    - EXCDOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 690
    functionName: MiddlingExtendsExceptionEx
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MiddlingExtendsExceptionEx(EXCBASE, EXCNAME, PYEXCNAME, EXCSTORE, 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: 695
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: MiddlingExtendsException
    functionSourceFile: /src/cpython/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: 713
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 713
    functionName: ComplexExtendsException
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ComplexExtendsException(EXCBASE, EXCNAME, EXCSTORE, EXCNEW, \\\n                                EXCMETHODS,
      EXCMEMBERS, EXCGETSET, \\\n                                EXCSTR, EXCDOC)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:749,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_StopIteration))
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 751
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 751
    functionName: PyStopIterationObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: PyStopIterationObject
    signature: 'PyStopIterationObject *

      PyStopIterationObject_CAST(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:756,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:759,1
    - Dst: PyStopIterationObject_CAST
      Src: /src/cpython/Objects/exceptions.c:761,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:762,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:764,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: StopIteration_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_NewRef
    - BaseException_init
    - PyTuple_GET_ITEM
    - PyStopIterationObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int StopIteration_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStopIterationObject_CAST
      Src: /src/cpython/Objects/exceptions.c:774,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:775,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 777
    functionName: StopIteration_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    - PyStopIterationObject_CAST
    linkageType: ''
    returnType: int
    signature: int StopIteration_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/exceptions.c:782,1
    - Dst: StopIteration_clear
      Src: /src/cpython/Objects/exceptions.c:783,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 785
    functionName: StopIteration_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - StopIteration_clear
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void StopIteration_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStopIterationObject_CAST
      Src: /src/cpython/Objects/exceptions.c:790,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:791,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: StopIteration_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    - PyStopIterationObject_CAST
    linkageType: ''
    returnType: int
    signature: int StopIteration_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:814,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_SystemExit))
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 816
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 816
    functionName: PySystemExitObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: PySystemExitObject
    signature: 'PySystemExitObject *

      PySystemExitObject_CAST(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:821,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:823,1
    - Dst: PySystemExitObject_CAST
      Src: /src/cpython/Objects/exceptions.c:826,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:830,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:830,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:830,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:833,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 836
    functionName: SystemExit_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PySystemExitObject_CAST
    - Py_NewRef
    - BaseException_init
    - PyTuple_GET_ITEM
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int SystemExit_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySystemExitObject_CAST
      Src: /src/cpython/Objects/exceptions.c:841,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:842,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 844
    functionName: SystemExit_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - PySystemExitObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int SystemExit_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:849,1
    - Dst: SystemExit_clear
      Src: /src/cpython/Objects/exceptions.c:850,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 4
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: SystemExit_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - SystemExit_clear
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void SystemExit_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySystemExitObject_CAST
      Src: /src/cpython/Objects/exceptions.c:857,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:858,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 860
    functionName: SystemExit_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PySystemExitObject_CAST
    - BaseException_traverse
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int SystemExit_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:881,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyBaseExceptionGroup_Check(exc))
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 883
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 883
    functionName: PyBaseExceptionGroupObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyBaseExceptionGroup_Check
    - assert
    linkageType: ''
    returnType: PyBaseExceptionGroupObject
    signature: 'PyBaseExceptionGroupObject *

      PyBaseExceptionGroupObject_CAST(PyObject *exc)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:888,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:895,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/exceptions.c:902,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:903,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/exceptions.c:909,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:916,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:918,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:926,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:930,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:931,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Objects/exceptions.c:937,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:949,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Objects/exceptions.c:965,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:970,1
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:985,1
    - Dst: BaseException_new
      Src: /src/cpython/Objects/exceptions.c:985,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:994,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 885
    functionDepth: 7
    functionLinenumber: 885
    functionLinenumberEnd: 996
    functionName: BaseExceptionGroup_new
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - PyObject_IsSubclass
    - PyTuple_GET_SIZE
    - PySequence_Check
    - Py_DECREF
    - PyArg_ParseTuple
    - BaseException_new
    - PySequence_Tuple
    - PyErr_SetString
    - Py_NewRef
    - PyBaseExceptionGroupObject_CAST
    - PyTuple_GET_ITEM
    - PyErr_Format
    - get_exc_state
    - PyExceptionInstance_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseExceptionGroup_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/exceptions.c:1001,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:1005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1006,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Objects/exceptions.c:1010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - msg_str
    - excs
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1013
    functionName: _PyExc_CreateExceptionGroup
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyTuple_Pack
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyExc_CreateExceptionGroup(const char *msg_str, PyObject *excs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/exceptions.c:1018,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1018,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1025
    functionName: BaseExceptionGroup_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_init
    - _PyArg_NoKeywords
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int BaseExceptionGroup_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1030,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1031,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1032,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1034
    functionName: BaseExceptionGroup_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - PyBaseExceptionGroupObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int BaseExceptionGroup_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:1039,1
    - Dst: BaseExceptionGroup_clear
      Src: /src/cpython/Objects/exceptions.c:1040,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1036
    functionDepth: 4
    functionLinenumber: 1036
    functionLinenumberEnd: 1042
    functionName: BaseExceptionGroup_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - BaseExceptionGroup_clear
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void BaseExceptionGroup_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1047,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1048,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1049,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1044
    functionDepth: 3
    functionLinenumber: 1044
    functionLinenumberEnd: 1051
    functionName: BaseExceptionGroup_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionGroupObject_CAST
    - BaseException_traverse
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int BaseExceptionGroup_traverse(PyObject *op, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1056,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1057,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1058,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/exceptions.c:1058,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1060,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1060,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/exceptions.c:1061,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(self->excs))
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (self->msg)
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyUnicode_Check(self->msg))
      pos:
        line_end: 1057
        line_start: 1057
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1065
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1065
    functionName: BaseExceptionGroup_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_FromFormat
    - PyBaseExceptionGroupObject_CAST
    - PyTuple_Size
    - PyUnicode_Check
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseExceptionGroup_str(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:1079,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Objects/exceptions.c:1083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - excs
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1087
    functionName: BaseExceptionGroup_derive_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyTuple_Pack
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nBaseExceptionGroup_derive_impl(PyBaseExceptionGroupObject
      *self,\n                               PyObject *excs)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/exceptions.c:1104,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/exceptions.c:1112,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1118,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1119,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Objects/exceptions.c:1126,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Objects/exceptions.c:1128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1129,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Objects/exceptions.c:1134,1
    - Dst: PyException_GetContext
      Src: /src/cpython/Objects/exceptions.c:1134,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Objects/exceptions.c:1135,1
    - Dst: PyException_GetCause
      Src: /src/cpython/Objects/exceptions.c:1135,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/exceptions.c:1138,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1138,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/exceptions.c:1142,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/exceptions.c:1144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1145,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/exceptions.c:1149,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1167,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - _orig
    - excs
    - result
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1089
    functionDepth: 3
    functionLinenumber: 1089
    functionLinenumberEnd: 1169
    functionName: exceptiongroup_subset
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyException_SetCause
    - Py_DECREF
    - PyException_GetTraceback
    - PyObject_GetOptionalAttr
    - PySequence_Check
    - PyErr_SetString
    - _Py_ID
    - _PyBaseExceptionGroup_Check
    - PyObject_CallMethod
    - PyException_GetContext
    - PyException_SetContext
    - PySequence_Size
    - PySequence_List
    - PyObject_SetAttr
    - PyException_GetCause
    - PyException_SetTraceback
    linkageType: ''
    returnType: int
    signature: "int exceptiongroup_subset(\n    PyBaseExceptionGroupObject *_orig,
      PyObject *excs, PyObject **result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1187,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/exceptions.c:1189,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/exceptions.c:1189,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:1194,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1199,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1200,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:1202,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1202,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - value
    - type
    argTypes:
    - PyObject*
    - _exceptiongroup_split_matcher_type*
    assertStmts:
    - condition: (value)
      pos:
        line_end: 1186
        line_start: 1186
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1215
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1215
    functionName: get_matcher_type
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - assert
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - PyCallable_Check
    - PyTuple_GET_ITEM
    - PyExceptionClass_Check
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: "int get_matcher_type(PyObject *value,\n                 _exceptiongroup_split_matcher_type
      *type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1224,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:1224,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1225,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/exceptions.c:1226,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1229,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/exceptions.c:1229,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/exceptions.c:1229,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/exceptions.c:1230,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/exceptions.c:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1235,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1239,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/exceptions.c:1239,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1240,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/exceptions.c:1241,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/exceptions.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - exc
    - matcher_type
    - matcher_value
    argTypes:
    - PyObject*
    - _exceptiongroup_split_matcher_type
    - PyObject*
    assertStmts:
    - condition: "(PyExceptionClass_Check(matcher_value) ||\n               PyTuple_CheckExact(matcher_value))"
      pos:
        line_end: 1224
        line_start: 1223
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyCallable_Check(matcher_value) && !PyType_Check(matcher_value))
      pos:
        line_end: 1228
        line_start: 1228
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PySet_Check(matcher_value))
      pos:
        line_end: 1238
        line_start: 1238
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1253
      start: 1217
    functionDepth: 2
    functionLinenumber: 1217
    functionLinenumberEnd: 1253
    functionName: exceptiongroup_split_check_match
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - assert
    - PyObject_IsTrue
    - Py_DECREF
    - PyLong_FromVoidPtr
    - PySet_Check
    - PyErr_GivenExceptionMatches
    - PyCallable_Check
    - _PyBaseExceptionGroup_Check
    - PyObject_CallOneArg
    - PySet_Contains
    - PyExceptionClass_Check
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: "int exceptiongroup_split_check_match(PyObject *exc,\n                                 _exceptiongroup_split_matcher_type
      matcher_type,\n                                 PyObject *matcher_value)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: exceptiongroup_split_check_match
      Src: /src/cpython/Objects/exceptions.c:1270,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1278,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1281,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1284,1
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1291,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1292,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1292,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/exceptions.c:1293,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1297,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1300,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1307,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1314,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1316,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1319,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1322,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1323,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1324,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1327,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1329,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1329,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1331,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1335,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1338,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1339,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1339,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1344,1
    - Dst: exceptiongroup_subset
      Src: /src/cpython/Objects/exceptions.c:1349,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1354,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1354,1
    - Dst: exceptiongroup_subset
      Src: /src/cpython/Objects/exceptions.c:1355,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1362,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1363,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1365,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1366,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 5
    argNames:
    - exc
    - matcher_type
    - matcher_value
    - construct_rest
    - result
    argTypes:
    - PyObject*
    - _exceptiongroup_split_matcher_type
    - PyObject*
    - bool
    - _exceptiongroup_split_result*
    assertStmts:
    - condition: (!rec_result.match)
      pos:
        line_end: 1321
        line_start: 1321
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(rest_list))
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (!rec_result.rest)
      pos:
        line_end: 1322
        line_start: 1322
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(match_list))
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (construct_rest)
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyTuple_CheckExact(eg->excs))
      pos:
        line_end: 1291
        line_start: 1291
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (num_excs > 0)
      pos:
        line_end: 1296
        line_start: 1296
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(rest_list))
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1369
      start: 1260
    functionDepth: 4
    functionLinenumber: 1260
    functionLinenumberEnd: 1369
    functionName: exceptiongroup_split_recursive
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - PyList_CheckExact
    - Py_XDECREF
    - exceptiongroup_split_recursive
    - exceptiongroup_split_check_match
    - Py_DECREF
    - Py_CLEAR
    - PyList_Append
    - _PyBaseExceptionGroup_Check
    - Py_NewRef
    - PyBaseExceptionGroupObject_CAST
    - _Py_EnterRecursiveCall
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - _Py_LeaveRecursiveCall
    - PyTuple_CheckExact
    - exceptiongroup_subset
    - assert
    linkageType: ''
    returnType: int
    signature: "int exceptiongroup_split_recursive(PyObject *exc,\n                               _exceptiongroup_split_matcher_type
      matcher_type,\n                               PyObject *matcher_value,\n                               bool
      construct_rest,\n                               _exceptiongroup_split_result
      *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_matcher_type
      Src: /src/cpython/Objects/exceptions.c:1384,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1390,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:1396,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1401,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - matcher_value
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1378
    functionDepth: 5
    functionLinenumber: 1378
    functionLinenumberEnd: 1404
    functionName: BaseExceptionGroup_split_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_matcher_type
    - Py_XDECREF
    - PyTuple_Pack
    - exceptiongroup_split_recursive
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nBaseExceptionGroup_split_impl(PyBaseExceptionGroupObject
      *self,\n                              PyObject *matcher_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_matcher_type
      Src: /src/cpython/Objects/exceptions.c:1419,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1425,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1431,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1434,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - matcher_value
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    assertStmts:
    - condition: (!split_result.rest)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1437
      start: 1413
    functionDepth: 5
    functionLinenumber: 1413
    functionLinenumberEnd: 1437
    functionName: BaseExceptionGroup_subgroup_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - exceptiongroup_split_recursive
    - get_matcher_type
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nBaseExceptionGroup_subgroup_impl(PyBaseExceptionGroupObject
      *self,\n                                 PyObject *matcher_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1442,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1446,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1446,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1447,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/exceptions.c:1447,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1451,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/exceptions.c:1452,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/exceptions.c:1456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1457,1
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1460,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1461,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1464,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1465,1
    - Dst: collect_exception_group_leaf_ids
      Src: /src/cpython/Objects/exceptions.c:1468,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - exc
    - leaf_ids
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PySet_Check(leaf_ids))
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 1445
        line_start: 1445
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1475
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1475
    functionName: collect_exception_group_leaf_ids
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PyTuple_GET_SIZE
    - collect_exception_group_leaf_ids
    - PySet_Check
    - _PyBaseExceptionGroup_Check
    - PyBaseExceptionGroupObject_CAST
    - _Py_EnterRecursiveCall
    - Py_IsNone
    - PyTuple_GET_ITEM
    - _Py_LeaveRecursiveCall
    - PySet_Add
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int collect_exception_group_leaf_ids(PyObject *exc, PyObject *leaf_ids)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1486,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1486,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1487,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1487,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/exceptions.c:1489,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1494,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1496,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1497,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1498,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1498,1
    - Dst: collect_exception_group_leaf_ids
      Src: /src/cpython/Objects/exceptions.c:1499,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1500,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1516,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - eg
    - keep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyBaseExceptionGroup_Check(eg))
      pos:
        line_end: 1485
        line_start: 1485
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(keep))
      pos:
        line_end: 1486
        line_start: 1486
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (e != NULL)
      pos:
        line_end: 1496
        line_start: 1496
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (_PyBaseExceptionGroup_Check(e))
      pos:
        line_end: 1497
        line_start: 1497
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (split_result.rest == NULL)
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1519
      start: 1483
    functionDepth: 5
    functionLinenumber: 1483
    functionLinenumberEnd: 1519
    functionName: exception_group_projection
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyList_GET_ITEM
    - collect_exception_group_leaf_ids
    - Py_DECREF
    - exceptiongroup_split_recursive
    - PyList_GET_SIZE
    - _PyBaseExceptionGroup_Check
    - Py_NewRef
    - PySet_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      exception_group_projection(PyObject *eg, PyObject *keep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1524,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1524,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1525,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - exc1
    - exc2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc1))
      pos:
        line_end: 1523
        line_start: 1523
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyExceptionInstance_Check(exc2))
      pos:
        line_end: 1524
        line_start: 1524
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1534
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1534
    functionName: is_same_exception_metadata
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: bool
    signature: bool is_same_exception_metadata(PyObject *exc1, PyObject *exc2)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1556,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1556,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1557,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1557,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1559,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:1559,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1561,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1564,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1567,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1572,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1572,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1574,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1575,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1576,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1579,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1585,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1595,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1596,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1597,1
    - Dst: is_same_exception_metadata
      Src: /src/cpython/Objects/exceptions.c:1600,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1602,1
    - Dst: exception_group_projection
      Src: /src/cpython/Objects/exceptions.c:1607,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1612,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1613,1
    - Dst: is_same_exception_metadata
      Src: /src/cpython/Objects/exceptions.c:1613,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1615,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1621,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1624,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1628,1
    - Dst: _PyExc_CreateExceptionGroup
      Src: /src/cpython/Objects/exceptions.c:1629,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1632,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Objects/exceptions.c:1632,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1640,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1641,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 2
    argNames:
    - orig
    - excs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(excs))
      pos:
        line_end: 1558
        line_start: 1558
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (e != NULL)
      pos:
        line_end: 1574
        line_start: 1574
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (e != NULL)
      pos:
        line_end: 1595
        line_start: 1595
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyExceptionInstance_Check(orig))
      pos:
        line_end: 1555
        line_start: 1555
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyBaseExceptionObject_CAST(orig)->traceback != NULL)
      pos:
        line_end: 1556
        line_start: 1556
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (numexcs == 1 || (numexcs == 2 && PyList_GET_ITEM(excs, 1) == Py_None))
      pos:
        line_end: 1571
        line_start: 1571
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (is_same_exception_metadata(reraised_eg, orig))
      pos:
        line_end: 1612
        line_start: 1612
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1643
      start: 1552
    functionDepth: 6
    functionLinenumber: 1552
    functionLinenumberEnd: 1643
    functionName: _PyExc_PrepReraiseStar
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_GetItem
    - Py_XDECREF
    - PyBaseExceptionObject_CAST
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_Append
    - PyList_GET_SIZE
    - _PyBaseExceptionGroup_Check
    - is_same_exception_metadata
    - PyList_Check
    - Py_NewRef
    - _PyExc_CreateExceptionGroup
    - Py_IsNone
    - exception_group_projection
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyExc_PrepReraiseStar(PyObject *orig, PyObject *excs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1649,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:1652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1653,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1657,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1659,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1660,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1660,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:1661,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Objects/exceptions.c:1670,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:1673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1676,1
    - Dst: _PyExc_PrepReraiseStar
      Src: /src/cpython/Objects/exceptions.c:1678,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - orig
    - excs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1645
    functionDepth: 7
    functionLinenumber: 1645
    functionLinenumberEnd: 1679
    functionName: PyUnstable_Exc_PrepReraiseStar
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyException_GetTraceback
    - _PyExc_PrepReraiseStar
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyList_Check
    - Py_IsNone
    - PyErr_Format
    - PyExceptionInstance_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnstable_Exc_PrepReraiseStar(PyObject *orig, PyObject *excs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:1709,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:1711,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1717,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Objects/exceptions.c:1718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!state->PyExc_ExceptionGroup)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1723
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1723
    functionName: create_exception_group_class
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_NewException
    - get_exc_state
    - PyTuple_Pack
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_exception_group_class(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1739,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:1739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_ImportError))
      pos:
        line_end: 1738
        line_start: 1738
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1741
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1741
    functionName: PyImportErrorObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: PyImportErrorObject
    signature: 'PyImportErrorObject *

      PyImportErrorObject_CAST(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:1753,1
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1756,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:1757,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Objects/exceptions.c:1760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1765,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1767,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:1767,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1768,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:1768,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1769,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:1769,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1771,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1772,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1772,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1743
    functionDepth: 3
    functionLinenumber: 1743
    functionLinenumberEnd: 1777
    functionName: ImportError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    - BaseException_init
    - PyImportErrorObject_CAST
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - Py_XNewRef
    linkageType: ''
    returnType: int
    signature: int ImportError_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1782,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1783,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1784,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1785,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1786,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:1787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1788
    functionName: ImportError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - PyImportErrorObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ImportError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:1793,1
    - Dst: ImportError_clear
      Src: /src/cpython/Objects/exceptions.c:1794,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1790
    functionDepth: 4
    functionLinenumber: 1790
    functionLinenumberEnd: 1796
    functionName: ImportError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - ImportError_clear
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void ImportError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1801,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1802,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1803,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1804,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1805,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:1806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1798
    functionDepth: 3
    functionLinenumber: 1798
    functionLinenumberEnd: 1807
    functionName: ImportError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyImportErrorObject_CAST
    - BaseException_traverse
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ImportError_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1812,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1813,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1814,1
    - Dst: BaseException_str
      Src: /src/cpython/Objects/exceptions.c:1816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1809
    functionDepth: 5
    functionLinenumber: 1809
    functionLinenumberEnd: 1817
    functionName: ImportError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyUnicode_CheckExact
    - BaseException_str
    - PyImportErrorObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_str(PyObject *op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1822,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/exceptions.c:1825,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/exceptions.c:1825,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/exceptions.c:1828,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1829,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/exceptions.c:1832,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1833,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/exceptions.c:1836,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1837,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1843,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1819
    functionDepth: 12
    functionLinenumber: 1819
    functionLinenumberEnd: 1848
    functionName: ImportError_getstate
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - _Py_ID
    - PyDict_Copy
    - Py_NewRef
    - PyImportErrorObject_CAST
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_getstate(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ImportError_getstate
      Src: /src/cpython/Objects/exceptions.c:1855,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1858,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:1860,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1860,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:1862,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1851
    functionDepth: 13
    functionLinenumber: 1851
    functionLinenumberEnd: 1865
    functionName: ImportError_reduce
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionObject_CAST
    - Py_DECREF
    - ImportError_getstate
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1870,1
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1871,1
    - Dst: BaseException_repr
      Src: /src/cpython/Objects/exceptions.c:1873,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/exceptions.c:1875,1
    - Dst: BaseException_repr
      Src: /src/cpython/Objects/exceptions.c:1879,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/exceptions.c:1883,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:1884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1889,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/exceptions.c:1892,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Objects/exceptions.c:1896,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/exceptions.c:1903,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Objects/exceptions.c:1907,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/exceptions.c:1912,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/exceptions.c:1916,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/exceptions.c:1919,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1867
    functionDepth: 3
    functionLinenumber: 1867
    functionLinenumberEnd: 1921
    functionName: ImportError_repr
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_WriteSubstring
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_WriteChar
    - PyImportErrorObject_CAST
    - BaseException_repr
    - PyUnicodeWriter_Discard
    - PyUnicode_GET_LENGTH
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1975,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_OSError))
      pos:
        line_end: 1974
        line_start: 1974
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1977
      start: 1972
    functionDepth: 1
    functionLinenumber: 1972
    functionLinenumberEnd: 1977
    functionName: PyOSErrorObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: PyOSErrorObject
    signature: 'PyOSErrorObject *

      PyOSErrorObject_CAST(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:2020,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/exceptions.c:2023,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/exceptions.c:2028,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/exceptions.c:2033,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2034,1
    - Dst: winerror_to_errno
      Src: /src/cpython/Objects/exceptions.c:2036,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/exceptions.c:2037,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2040,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2043,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2045,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2046,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2048,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - p_args
    - myerrno
    - strerror
    - filename
    - filename2
    - winerror
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject**
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2055
    functionName: oserror_parse_args
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyArg_UnpackTuple
    - PyLong_Check
    - winerror_to_errno
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyLong_FromLong
    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/cpython/Objects/exceptions.c:2067,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/exceptions.c:2071,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Objects/exceptions.c:2072,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/exceptions.c:2076,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2077,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2081,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2084,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Objects/exceptions.c:2090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2094,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2099,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2100,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2102,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2106,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 7
    argNames:
    - self
    - p_args
    - myerrno
    - strerror
    - filename
    - filename2
    - winerror
    argTypes:
    - PyOSErrorObject*
    - PyObject**
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2057
    functionDepth: 3
    functionLinenumber: 2057
    functionLinenumberEnd: 2110
    functionName: oserror_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - PyNumber_AsSsize_t
    - Py_NewRef
    - Py_IS_TYPE
    - PyNumber_Check
    - Py_XNewRef
    - Py_XSETREF
    - 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/cpython/Objects/exceptions.c:2131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: ((PyObject *) type != PyExc_OSError)
      pos:
        line_end: 2130
        line_start: 2130
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2135
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2135
    functionName: oserror_use_init
    functionSourceFile: /src/cpython/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/cpython/Objects/exceptions.c:2147,1
    - Dst: oserror_use_init
      Src: /src/cpython/Objects/exceptions.c:2149,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/exceptions.c:2150,1
    - Dst: oserror_parse_args
      Src: /src/cpython/Objects/exceptions.c:2153,1
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:2161,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/exceptions.c:2162,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/exceptions.c:2165,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/exceptions.c:2167,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2169,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/exceptions.c:2174,1
    - Dst: oserror_use_init
      Src: /src/cpython/Objects/exceptions.c:2182,1
    - Dst: oserror_init
      Src: /src/cpython/Objects/exceptions.c:2183,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2191,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2196,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2200,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2201,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2137
    functionDepth: 7
    functionLinenumber: 2137
    functionLinenumberEnd: 2203
    functionName: OSError_new
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - oserror_use_init
    - _PyArg_NoKeywords
    - PyDict_GetItemWithError
    - PyTypeObject*::tp_alloc
    - PyTuple_New
    - Py_XDECREF
    - PyErr_Occurred
    - PyLong_Check
    - _PyType_CAST
    - get_exc_state
    - oserror_init
    - oserror_parse_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2208,1
    - Dst: oserror_use_init
      Src: /src/cpython/Objects/exceptions.c:2215,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2215,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/exceptions.c:2219,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2219,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2222,1
    - Dst: oserror_parse_args
      Src: /src/cpython/Objects/exceptions.c:2223,1
    - Dst: oserror_init
      Src: /src/cpython/Objects/exceptions.c:2230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2205
    functionDepth: 4
    functionLinenumber: 2205
    functionLinenumberEnd: 2242
    functionName: OSError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - oserror_use_init
    - Py_INCREF
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyOSErrorObject_CAST
    - Py_TYPE
    - oserror_init
    - oserror_parse_args
    linkageType: ''
    returnType: int
    signature: int OSError_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2247,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2248,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2249,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2250,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2251,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2253,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2244
    functionDepth: 3
    functionLinenumber: 2244
    functionLinenumberEnd: 2256
    functionName: OSError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - PyOSErrorObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int OSError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:2261,1
    - Dst: OSError_clear
      Src: /src/cpython/Objects/exceptions.c:2262,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2258
    functionDepth: 4
    functionLinenumber: 2258
    functionLinenumberEnd: 2264
    functionName: OSError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - OSError_clear
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void OSError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2269,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2270,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2271,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2272,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2273,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2275,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2266
    functionDepth: 3
    functionLinenumber: 2266
    functionLinenumberEnd: 2278
    functionName: OSError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyOSErrorObject_CAST
    - BaseException_traverse
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int OSError_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2283,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2289,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2290,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2291,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2295,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2296,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2297,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2302,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2308,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2309,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2310,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2314,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2315,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2316,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2321,1
    - Dst: BaseException_str
      Src: /src/cpython/Objects/exceptions.c:2323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2280
    functionDepth: 5
    functionLinenumber: 2280
    functionLinenumberEnd: 2324
    functionName: OSError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyOSErrorObject_CAST
    - BaseException_str
    - OR_NONE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_str(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2284
    functionDepth: 0
    functionLinenumber: 2284
    functionLinenumberEnd: 2285
    functionName: OR_NONE
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OR_NONE(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2329,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:2335,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2337,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2341,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2341,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2341,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2342,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2342,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2342,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2343,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2343,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2351,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2351,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2354,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2354,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2357,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:2360,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2360,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:2362,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2326
    functionDepth: 2
    functionLinenumber: 2326
    functionLinenumberEnd: 2365
    functionName: OSError_reduce
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyOSErrorObject_CAST
    - PyTuple_GET_ITEM
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:2372,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/exceptions.c:2375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2367
    functionDepth: 2
    functionLinenumber: 2367
    functionLinenumberEnd: 2376
    functionName: OSError_written_get
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyOSErrorObject_CAST
    - PyErr_SetString
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_written_get(PyObject *op, void *context)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2381,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:2384,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/exceptions.c:2391,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - op
    - arg
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2378
    functionDepth: 3
    functionLinenumber: 2378
    functionLinenumberEnd: 2396
    functionName: OSError_written_set
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyOSErrorObject_CAST
    - PyErr_SetString
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int OSError_written_set(PyObject *op, PyObject *arg, void *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:2503,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:2503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_NameError))
      pos:
        line_end: 2502
        line_start: 2502
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2505
      start: 2500
    functionDepth: 1
    functionLinenumber: 2500
    functionLinenumberEnd: 2505
    functionName: PyNameErrorObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: PyNameErrorObject
    signature: 'PyNameErrorObject *

      PyNameErrorObject_CAST(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:2513,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2517,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Objects/exceptions.c:2521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2526,1
    - Dst: PyNameErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2528,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2529,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2507
    functionDepth: 3
    functionLinenumber: 2507
    functionLinenumberEnd: 2532
    functionName: NameError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyNameErrorObject_CAST
    - PyArg_ParseTupleAndKeywords
    - BaseException_init
    - Py_XSETREF
    - Py_XNewRef
    linkageType: ''
    returnType: int
    signature: int NameError_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNameErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2537,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2538,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2534
    functionDepth: 3
    functionLinenumber: 2534
    functionLinenumberEnd: 2540
    functionName: NameError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - PyNameErrorObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int NameError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:2545,1
    - Dst: NameError_clear
      Src: /src/cpython/Objects/exceptions.c:2546,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2542
    functionDepth: 4
    functionLinenumber: 2542
    functionLinenumberEnd: 2548
    functionName: NameError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - NameError_clear
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void NameError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNameErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2553,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2554,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2550
    functionDepth: 3
    functionLinenumber: 2550
    functionLinenumberEnd: 2556
    functionName: NameError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyNameErrorObject_CAST
    - BaseException_traverse
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int NameError_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:2586,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:2586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_AttributeError))
      pos:
        line_end: 2585
        line_start: 2585
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2588
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2588
    functionName: PyAttributeErrorObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: PyAttributeErrorObject
    signature: 'PyAttributeErrorObject *

      PyAttributeErrorObject_CAST(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:2597,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2601,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Objects/exceptions.c:2605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2610,1
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2612,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2613,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2613,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2614,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2590
    functionDepth: 3
    functionLinenumber: 2590
    functionLinenumberEnd: 2617
    functionName: AttributeError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyArg_ParseTupleAndKeywords
    - BaseException_init
    - Py_XSETREF
    - Py_XNewRef
    - PyAttributeErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int AttributeError_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2622,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2623,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2624,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2619
    functionDepth: 3
    functionLinenumber: 2619
    functionLinenumberEnd: 2626
    functionName: AttributeError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyAttributeErrorObject_CAST
    - Py_CLEAR
    - BaseException_clear
    linkageType: ''
    returnType: int
    signature: int AttributeError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:2631,1
    - Dst: AttributeError_clear
      Src: /src/cpython/Objects/exceptions.c:2632,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2628
    functionDepth: 4
    functionLinenumber: 2628
    functionLinenumberEnd: 2634
    functionName: AttributeError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - AttributeError_clear
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void AttributeError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2639,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2640,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2641,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2636
    functionDepth: 3
    functionLinenumber: 2636
    functionLinenumberEnd: 2643
    functionName: AttributeError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyAttributeErrorObject_CAST
    - BaseException_traverse
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int AttributeError_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2649,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/exceptions.c:2652,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/exceptions.c:2652,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:2656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2657,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:2663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2664,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2670,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2646
    functionDepth: 12
    functionLinenumber: 2646
    functionLinenumberEnd: 2673
    functionName: AttributeError_getstate
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_Copy
    - Py_NewRef
    - PyDict_SetItemString
    - PyDict_New
    - PyAttributeErrorObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      AttributeError_getstate(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AttributeError_getstate
      Src: /src/cpython/Objects/exceptions.c:2678,1
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2683,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:2684,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2675
    functionDepth: 13
    functionLinenumber: 2675
    functionLinenumberEnd: 2687
    functionName: AttributeError_reduce
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyAttributeErrorObject_CAST
    - PyTuple_Pack
    - Py_TYPE
    - AttributeError_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      AttributeError_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:2713,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:2713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_SyntaxError))
      pos:
        line_end: 2712
        line_start: 2712
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2715
      start: 2710
    functionDepth: 1
    functionLinenumber: 2710
    functionLinenumberEnd: 2715
    functionName: PySyntaxErrorObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: PySyntaxErrorObject
    signature: 'PySyntaxErrorObject *

      PySyntaxErrorObject_CAST(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:2721,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:2723,1
    - Dst: PySyntaxErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2726,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2728,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2728,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2728,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2731,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/exceptions.c:2732,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:2739,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2743,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2747,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2748,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2749,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2750,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/exceptions.c:2751,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/exceptions.c:2752,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/exceptions.c:2753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2754,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:2757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2717
    functionDepth: 3
    functionLinenumber: 2717
    functionLinenumberEnd: 2762
    functionName: SyntaxError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PySyntaxErrorObject_CAST
    - PyArg_ParseTuple
    - PySequence_Tuple
    - PyErr_SetString
    - Py_NewRef
    - BaseException_init
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int SyntaxError_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySyntaxErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2767,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2768,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2769,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2770,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2771,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2772,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2773,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2774,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2775,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2776,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2764
    functionDepth: 3
    functionLinenumber: 2764
    functionLinenumberEnd: 2778
    functionName: SyntaxError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    - PySyntaxErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int SyntaxError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:2783,1
    - Dst: SyntaxError_clear
      Src: /src/cpython/Objects/exceptions.c:2784,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2780
    functionDepth: 4
    functionLinenumber: 2780
    functionLinenumberEnd: 2786
    functionName: SyntaxError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - SyntaxError_clear
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void SyntaxError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySyntaxErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2791,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2792,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2793,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2794,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2795,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2796,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2797,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2798,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2799,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2800,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2788
    functionDepth: 3
    functionLinenumber: 2788
    functionLinenumberEnd: 2802
    functionName: SyntaxError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    - PySyntaxErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int SyntaxError_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/exceptions.c:2814,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/exceptions.c:2815,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:2816,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/exceptions.c:2819,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/exceptions.c:2824,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2827,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2829
    functionName: my_basename
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_NewRef
    - PyUnicode_DATA
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      my_basename(PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySyntaxErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2835,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/exceptions.c:2847,1
    - Dst: my_basename
      Src: /src/cpython/Objects/exceptions.c:2848,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/exceptions.c:2854,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:2857,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2862,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/exceptions.c:2865,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2867,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2871,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/exceptions.c:2873,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2874,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2832
    functionDepth: 4
    functionLinenumber: 2832
    functionLinenumberEnd: 2876
    functionName: SyntaxError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - PySyntaxErrorObject_CAST
    - PyLong_AsLongAndOverflow
    - PyUnicode_FromFormat
    - my_basename
    - PyLong_CheckExact
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SyntaxError_str(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2955,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:2956,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/exceptions.c:2957,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2957,1
    - Dst: BaseException_str
      Src: /src/cpython/Objects/exceptions.c:2959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2943
    functionDepth: 5
    functionLinenumber: 2943
    functionLinenumberEnd: 2960
    functionName: KeyError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionObject_CAST
    - PyTuple_GET_SIZE
    - PyObject_Repr
    - BaseException_str
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      KeyError_str(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:2992,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:2994,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/exceptions.c:2999,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/exceptions.c:2999,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:3000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - attr
    - name
    - as_bytes
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (as_bytes == 0 || as_bytes == 1)
      pos:
        line_end: 2991
        line_start: 2991
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3006
      start: 2989
    functionDepth: 1
    functionLinenumber: 2989
    functionLinenumberEnd: 3006
    functionName: check_unicode_error_attribute
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyUnicode_Check
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_unicode_error_attribute(PyObject *attr, const char *name,
      int as_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3021,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - attr
    - name
    - as_bytes
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 3018
    functionDepth: 2
    functionLinenumber: 3018
    functionLinenumberEnd: 3023
    functionName: as_unicode_error_attribute
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - check_unicode_error_attribute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      as_unicode_error_attribute(PyObject *attr, const char *name, int as_bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3026
    functionDepth: 0
    functionLinenumber: 3026
    functionLinenumberEnd: 3028
    functionName: PyUnicodeError_Check
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicodeError_Check(PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 3028
    functionDepth: 0
    functionLinenumber: 3028
    functionLinenumberEnd: 3030
    functionName: PyUnicodeError_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicodeError_CAST(PTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3055,1
    - Dst: PyUnicodeError_Check
      Src: /src/cpython/Objects/exceptions.c:3056,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:3057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - expect_type
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3054
        line_start: 3054
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3062
      start: 3052
    functionDepth: 1
    functionLinenumber: 3052
    functionLinenumberEnd: 3062
    functionName: check_unicode_error_type
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_Check
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_unicode_error_type(PyObject *self, const char *expect_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3077,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3078,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3076
        line_start: 3076
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3080
      start: 3074
    functionDepth: 3
    functionLinenumber: 3074
    functionLinenumberEnd: 3080
    functionName: unicode_error_get_encoding_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_CAST
    - as_unicode_error_attribute
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_error_get_encoding_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3090,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3091,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - as_bytes
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3089
        line_start: 3089
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3093
      start: 3087
    functionDepth: 3
    functionLinenumber: 3087
    functionLinenumberEnd: 3093
    functionName: unicode_error_get_object_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_CAST
    - as_unicode_error_attribute
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_error_get_object_impl(PyObject *self, int as_bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3102,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3103,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3101
        line_start: 3101
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3105
      start: 3099
    functionDepth: 3
    functionLinenumber: 3099
    functionLinenumberEnd: 3105
    functionName: unicode_error_get_reason_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_CAST
    - as_unicode_error_attribute
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_error_get_reason_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3116,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/exceptions.c:3117,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3121,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3115
        line_start: 3115
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3124
      start: 3113
    functionDepth: 1
    functionLinenumber: 3113
    functionLinenumberEnd: 3124
    functionName: unicode_error_set_reason_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyUnicodeError_CAST
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: int
    signature: int unicode_error_set_reason_impl(PyObject *self, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3135,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3134
        line_start: 3134
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3139
      start: 3132
    functionDepth: 1
    functionLinenumber: 3132
    functionLinenumberEnd: 3139
    functionName: unicode_error_set_start_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_CAST
    - assert
    linkageType: ''
    returnType: int
    signature: int unicode_error_set_start_impl(PyObject *self, Py_ssize_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3150,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3149
        line_start: 3149
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3154
      start: 3147
    functionDepth: 1
    functionLinenumber: 3147
    functionLinenumberEnd: 3154
    functionName: unicode_error_set_end_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_CAST
    - assert
    linkageType: ''
    returnType: int
    signature: int unicode_error_set_end_impl(PyObject *self, Py_ssize_t end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - start
    - objlen
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (objlen >= 0)
      pos:
        line_end: 3169
        line_start: 3169
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3178
      start: 3167
    functionDepth: 0
    functionLinenumber: 3167
    functionLinenumberEnd: 3178
    functionName: unicode_error_adjust_start
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicode_error_adjust_start(Py_ssize_t start, Py_ssize_t
      objlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3186,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3189,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/exceptions.c:3191,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - start
    - objlen
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (objlen >= 0)
      pos:
        line_end: 3185
        line_start: 3185
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (start >= min_start)
      pos:
        line_end: 3188
        line_start: 3188
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (start <= max_start)
      pos:
        line_end: 3191
        line_start: 3191
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3193
      start: 3183
    functionDepth: 1
    functionLinenumber: 3183
    functionLinenumberEnd: 3193
    functionName: assert_adjusted_unicode_error_start
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_adjusted_unicode_error_start(Py_ssize_t start, Py_ssize_t
      objlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - end
    - objlen
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (objlen >= 0)
      pos:
        line_end: 3210
        line_start: 3210
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3219
      start: 3208
    functionDepth: 0
    functionLinenumber: 3208
    functionLinenumberEnd: 3219
    functionName: unicode_error_adjust_end
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicode_error_adjust_end(Py_ssize_t end, Py_ssize_t objlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3221
    functionDepth: 0
    functionLinenumber: 3221
    functionLinenumberEnd: 3223
    functionName: PyUnicodeError_Check
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicodeError_Check(PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3223
    functionDepth: 0
    functionLinenumber: 3223
    functionLinenumberEnd: 3225
    functionName: PyUnicodeErrorObject_CAST
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicodeErrorObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3231,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/exceptions.c:3233,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3234,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/exceptions.c:3236,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - end
    - objlen
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (objlen >= 0)
      pos:
        line_end: 3230
        line_start: 3230
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (end >= min_end)
      pos:
        line_end: 3233
        line_start: 3233
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (end <= max_end)
      pos:
        line_end: 3236
        line_start: 3236
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3238
      start: 3228
    functionDepth: 1
    functionLinenumber: 3228
    functionLinenumberEnd: 3238
    functionName: assert_adjusted_unicode_error_end
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_MAX
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_adjusted_unicode_error_end(Py_ssize_t end, Py_ssize_t objlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_adjusted_unicode_error_start
      Src: /src/cpython/Objects/exceptions.c:3257,1
    - Dst: assert_adjusted_unicode_error_end
      Src: /src/cpython/Objects/exceptions.c:3258,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - start
    - end
    - objlen
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ranlen <= objlen)
      pos:
        line_end: 3259
        line_start: 3259
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3262
      start: 3254
    functionDepth: 2
    functionLinenumber: 3254
    functionLinenumberEnd: 3262
    functionName: unicode_error_adjust_len
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert_adjusted_unicode_error_end
    - assert_adjusted_unicode_error_start
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicode_error_adjust_len(Py_ssize_t start, Py_ssize_t end,
      Py_ssize_t objlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3270,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3271,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ranlen
    - objlen
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (objlen >= 0)
      pos:
        line_end: 3269
        line_start: 3269
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (ranlen <= objlen)
      pos:
        line_end: 3271
        line_start: 3271
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (ranlen >= 0)
      pos:
        line_end: 3270
        line_start: 3270
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3273
      start: 3267
    functionDepth: 0
    functionLinenumber: 3267
    functionLinenumberEnd: 3273
    functionName: assert_adjusted_unicode_error_len
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_adjusted_unicode_error_len(Py_ssize_t ranlen, Py_ssize_t
      objlen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3313,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3314,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3315,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3316,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:3321,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:3321,1
    - Dst: unicode_error_adjust_start
      Src: /src/cpython/Objects/exceptions.c:3328,1
    - Dst: assert_adjusted_unicode_error_start
      Src: /src/cpython/Objects/exceptions.c:3331,1
    - Dst: unicode_error_adjust_end
      Src: /src/cpython/Objects/exceptions.c:3337,1
    - Dst: assert_adjusted_unicode_error_end
      Src: /src/cpython/Objects/exceptions.c:3340,1
    - Dst: unicode_error_adjust_len
      Src: /src/cpython/Objects/exceptions.c:3345,1
    - Dst: assert_adjusted_unicode_error_len
      Src: /src/cpython/Objects/exceptions.c:3346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:3353,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 7
    argNames:
    - self
    - obj
    - objlen
    - start
    - end
    - slen
    - as_bytes
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3312
        line_start: 3312
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (as_bytes == 0 || as_bytes == 1)
      pos:
        line_end: 3313
        line_start: 3313
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3356
      start: 3307
    functionDepth: 3
    functionLinenumber: 3307
    functionLinenumberEnd: 3356
    functionName: _PyUnicodeError_GetParams
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_CAST
    - Py_DECREF
    - assert_adjusted_unicode_error_len
    - unicode_error_adjust_start
    - assert_adjusted_unicode_error_start
    - PyBytes_GET_SIZE
    - as_unicode_error_attribute
    - unicode_error_adjust_end
    - assert_adjusted_unicode_error_end
    - PyUnicode_GET_LENGTH
    - unicode_error_adjust_len
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeError_GetParams(PyObject *self,\n                          PyObject
      **obj, Py_ssize_t *objlen,\n                          Py_ssize_t *start, Py_ssize_t
      *end, Py_ssize_t *slen,\n                          int as_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3365,1
    - Dst: unicode_error_get_encoding_impl
      Src: /src/cpython/Objects/exceptions.c:3366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3362
    functionDepth: 4
    functionLinenumber: 3362
    functionLinenumberEnd: 3367
    functionName: PyUnicodeEncodeError_GetEncoding
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_encoding_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetEncoding(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3373,1
    - Dst: unicode_error_get_encoding_impl
      Src: /src/cpython/Objects/exceptions.c:3374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3370
    functionDepth: 4
    functionLinenumber: 3370
    functionLinenumberEnd: 3375
    functionName: PyUnicodeDecodeError_GetEncoding
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_encoding_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetEncoding(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3383,1
    - Dst: unicode_error_get_object_impl
      Src: /src/cpython/Objects/exceptions.c:3384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3380
    functionDepth: 4
    functionLinenumber: 3380
    functionLinenumberEnd: 3385
    functionName: PyUnicodeEncodeError_GetObject
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_object_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetObject(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3391,1
    - Dst: unicode_error_get_object_impl
      Src: /src/cpython/Objects/exceptions.c:3392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3393
      start: 3388
    functionDepth: 4
    functionLinenumber: 3388
    functionLinenumberEnd: 3393
    functionName: PyUnicodeDecodeError_GetObject
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_object_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetObject(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3399,1
    - Dst: unicode_error_get_object_impl
      Src: /src/cpython/Objects/exceptions.c:3400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3401
      start: 3396
    functionDepth: 4
    functionLinenumber: 3396
    functionLinenumberEnd: 3401
    functionName: PyUnicodeTranslateError_GetObject
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_object_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeTranslateError_GetObject(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3415,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Objects/exceptions.c:3416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - start
    - as_bytes
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3414
        line_start: 3414
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3419
      start: 3412
    functionDepth: 4
    functionLinenumber: 3412
    functionLinenumberEnd: 3419
    functionName: unicode_error_get_start_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeError_GetParams
    - assert
    linkageType: ''
    returnType: int
    signature: int unicode_error_get_start_impl(PyObject *self, Py_ssize_t *start,
      int as_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3425,1
    - Dst: unicode_error_get_start_impl
      Src: /src/cpython/Objects/exceptions.c:3426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3427
      start: 3422
    functionDepth: 5
    functionLinenumber: 3422
    functionLinenumberEnd: 3427
    functionName: PyUnicodeEncodeError_GetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_start_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_GetStart(PyObject *self, Py_ssize_t *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3433,1
    - Dst: unicode_error_get_start_impl
      Src: /src/cpython/Objects/exceptions.c:3434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3430
    functionDepth: 5
    functionLinenumber: 3430
    functionLinenumberEnd: 3435
    functionName: PyUnicodeDecodeError_GetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_start_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_GetStart(PyObject *self, Py_ssize_t *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3441,1
    - Dst: unicode_error_get_start_impl
      Src: /src/cpython/Objects/exceptions.c:3442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3443
      start: 3438
    functionDepth: 5
    functionLinenumber: 3438
    functionLinenumberEnd: 3443
    functionName: PyUnicodeTranslateError_GetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_start_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_GetStart(PyObject *self, Py_ssize_t *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3451,1
    - Dst: unicode_error_set_start_impl
      Src: /src/cpython/Objects/exceptions.c:3452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3453
      start: 3448
    functionDepth: 2
    functionLinenumber: 3448
    functionLinenumberEnd: 3453
    functionName: PyUnicodeEncodeError_SetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - unicode_error_set_start_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_SetStart(PyObject *self, Py_ssize_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3459,1
    - Dst: unicode_error_set_start_impl
      Src: /src/cpython/Objects/exceptions.c:3460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3456
    functionDepth: 2
    functionLinenumber: 3456
    functionLinenumberEnd: 3461
    functionName: PyUnicodeDecodeError_SetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - unicode_error_set_start_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_SetStart(PyObject *self, Py_ssize_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3467,1
    - Dst: unicode_error_set_start_impl
      Src: /src/cpython/Objects/exceptions.c:3468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3469
      start: 3464
    functionDepth: 2
    functionLinenumber: 3464
    functionLinenumberEnd: 3469
    functionName: PyUnicodeTranslateError_SetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_set_start_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_SetStart(PyObject *self, Py_ssize_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3483,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Objects/exceptions.c:3484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - end
    - as_bytes
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3482
        line_start: 3482
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3487
      start: 3480
    functionDepth: 4
    functionLinenumber: 3480
    functionLinenumberEnd: 3487
    functionName: unicode_error_get_end_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeError_GetParams
    - assert
    linkageType: ''
    returnType: int
    signature: int unicode_error_get_end_impl(PyObject *self, Py_ssize_t *end, int
      as_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3493,1
    - Dst: unicode_error_get_end_impl
      Src: /src/cpython/Objects/exceptions.c:3494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3490
    functionDepth: 5
    functionLinenumber: 3490
    functionLinenumberEnd: 3495
    functionName: PyUnicodeEncodeError_GetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_get_end_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_GetEnd(PyObject *self, Py_ssize_t *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3501,1
    - Dst: unicode_error_get_end_impl
      Src: /src/cpython/Objects/exceptions.c:3502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3503
      start: 3498
    functionDepth: 5
    functionLinenumber: 3498
    functionLinenumberEnd: 3503
    functionName: PyUnicodeDecodeError_GetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_get_end_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_GetEnd(PyObject *self, Py_ssize_t *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3509,1
    - Dst: unicode_error_get_end_impl
      Src: /src/cpython/Objects/exceptions.c:3510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3506
    functionDepth: 5
    functionLinenumber: 3506
    functionLinenumberEnd: 3511
    functionName: PyUnicodeTranslateError_GetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_get_end_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_GetEnd(PyObject *self, Py_ssize_t *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3519,1
    - Dst: unicode_error_set_end_impl
      Src: /src/cpython/Objects/exceptions.c:3520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3516
    functionDepth: 2
    functionLinenumber: 3516
    functionLinenumberEnd: 3521
    functionName: PyUnicodeEncodeError_SetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - check_unicode_error_type
    - unicode_error_set_end_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_SetEnd(PyObject *self, Py_ssize_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3527,1
    - Dst: unicode_error_set_end_impl
      Src: /src/cpython/Objects/exceptions.c:3528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3529
      start: 3524
    functionDepth: 2
    functionLinenumber: 3524
    functionLinenumberEnd: 3529
    functionName: PyUnicodeDecodeError_SetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - check_unicode_error_type
    - unicode_error_set_end_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_SetEnd(PyObject *self, Py_ssize_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3535,1
    - Dst: unicode_error_set_end_impl
      Src: /src/cpython/Objects/exceptions.c:3536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3537
      start: 3532
    functionDepth: 2
    functionLinenumber: 3532
    functionLinenumberEnd: 3537
    functionName: PyUnicodeTranslateError_SetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - check_unicode_error_type
    - unicode_error_set_end_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_SetEnd(PyObject *self, Py_ssize_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3545,1
    - Dst: unicode_error_get_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3542
    functionDepth: 4
    functionLinenumber: 3542
    functionLinenumberEnd: 3547
    functionName: PyUnicodeEncodeError_GetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_reason_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetReason(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3553,1
    - Dst: unicode_error_get_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3550
    functionDepth: 4
    functionLinenumber: 3550
    functionLinenumberEnd: 3555
    functionName: PyUnicodeDecodeError_GetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_reason_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetReason(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3561,1
    - Dst: unicode_error_get_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3563
      start: 3558
    functionDepth: 4
    functionLinenumber: 3558
    functionLinenumberEnd: 3563
    functionName: PyUnicodeTranslateError_GetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_get_reason_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeTranslateError_GetReason(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3571,1
    - Dst: unicode_error_set_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3568
    functionDepth: 2
    functionLinenumber: 3568
    functionLinenumberEnd: 3573
    functionName: PyUnicodeEncodeError_SetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - check_unicode_error_type
    - unicode_error_set_reason_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_SetReason(PyObject *self, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3579,1
    - Dst: unicode_error_set_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3581
      start: 3576
    functionDepth: 2
    functionLinenumber: 3576
    functionLinenumberEnd: 3581
    functionName: PyUnicodeDecodeError_SetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - check_unicode_error_type
    - unicode_error_set_reason_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_SetReason(PyObject *self, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3587,1
    - Dst: unicode_error_set_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3584
    functionDepth: 2
    functionLinenumber: 3584
    functionLinenumberEnd: 3589
    functionName: PyUnicodeTranslateError_SetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - check_unicode_error_type
    - unicode_error_set_reason_impl
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_SetReason(PyObject *self, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3595,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:3596,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:3597,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:3598,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:3599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3592
    functionDepth: 3
    functionLinenumber: 3592
    functionLinenumberEnd: 3600
    functionName: UnicodeError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    - PyUnicodeErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int UnicodeError_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:3605,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:3606,1
    - Dst: UnicodeError_clear
      Src: /src/cpython/Objects/exceptions.c:3607,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Objects/exceptions.c:3608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3609
      start: 3602
    functionDepth: 4
    functionLinenumber: 3602
    functionLinenumberEnd: 3609
    functionName: UnicodeError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - UnicodeError_clear
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void UnicodeError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3614,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:3615,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:3616,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:3617,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:3618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3619
      start: 3611
    functionDepth: 3
    functionLinenumber: 3611
    functionLinenumberEnd: 3619
    functionName: UnicodeError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_traverse
    - Py_VISIT
    - PyUnicodeErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int UnicodeError_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:3643,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:3650,1
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3656,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3657,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3657,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3658,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3658,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3661,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3640
    functionDepth: 3
    functionLinenumber: 3640
    functionLinenumberEnd: 3663
    functionName: UnicodeEncodeError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_NewRef
    - BaseException_init
    - Py_XSETREF
    - PyUnicodeErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int UnicodeEncodeError_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3668,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:3675,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3680,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3684,1
    - Dst: check_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3689,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:3692,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Objects/exceptions.c:3696,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3707,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3715,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3723,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3724,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3665
    functionDepth: 4
    functionLinenumber: 3665
    functionLinenumberEnd: 3726
    functionName: UnicodeEncodeError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - check_unicode_error_attribute
    - Py_GetConstant
    - PyUnicode_FromFormat
    - PyUnicode_ReadChar
    - PyUnicodeErrorObject_CAST
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeEncodeError_str(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:3750,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:3757,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/exceptions.c:3763,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:3764,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/exceptions.c:3768,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/exceptions.c:3772,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/exceptions.c:3773,1
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3779,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3780,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3780,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3781,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3784,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3784,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3747
    functionDepth: 4
    functionLinenumber: 3747
    functionLinenumberEnd: 3786
    functionName: UnicodeDecodeError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - BaseException_init
    - Py_NewRef
    - PyObject_GetBuffer
    - PyBuffer_Release
    - Py_XSETREF
    - PyUnicodeErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int UnicodeDecodeError_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3791,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:3798,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3803,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3807,1
    - Dst: check_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3812,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:3815,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/exceptions.c:3819,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3820,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3828,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3836,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3837,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3788
    functionDepth: 4
    functionLinenumber: 3788
    functionLinenumberEnd: 3839
    functionName: UnicodeDecodeError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - check_unicode_error_attribute
    - Py_GetConstant
    - PyUnicode_FromFormat
    - PyBytes_GET_SIZE
    - PyUnicodeErrorObject_CAST
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeDecodeError_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/exceptions.c:3860,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: 3862
      start: 3855
    functionDepth: 1
    functionLinenumber: 3855
    functionLinenumberEnd: 3862
    functionName: PyUnicodeDecodeError_Create
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 3
    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/cpython/Objects/exceptions.c:3872,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:3879,1
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3883,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3884,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3884,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3887,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3869
    functionDepth: 3
    functionLinenumber: 3869
    functionLinenumberEnd: 3889
    functionName: UnicodeTranslateError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_NewRef
    - BaseException_init
    - Py_XSETREF
    - PyUnicodeErrorObject_CAST
    linkageType: ''
    returnType: int
    signature: int UnicodeTranslateError_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3895,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:3901,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3906,1
    - Dst: check_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3911,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:3914,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Objects/exceptions.c:3918,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3929,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3936,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3943,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3892
    functionDepth: 4
    functionLinenumber: 3892
    functionLinenumberEnd: 3945
    functionName: UnicodeTranslateError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - check_unicode_error_attribute
    - Py_GetConstant
    - PyUnicode_FromFormat
    - PyUnicode_ReadChar
    - PyUnicodeErrorObject_CAST
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeTranslateError_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/exceptions.c:3966,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: 3968
      start: 3961
    functionDepth: 1
    functionLinenumber: 3961
    functionLinenumberEnd: 3968
    functionName: _PyUnicodeTranslateError_Create
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 4029
    functionDepth: 0
    functionLinenumber: 4029
    functionLinenumberEnd: 4030
    functionName: MEMERRORS_LOCK
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMERRORS_LOCK(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4031
      start: 4030
    functionDepth: 0
    functionLinenumber: 4030
    functionLinenumberEnd: 4031
    functionName: MEMERRORS_UNLOCK
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMERRORS_UNLOCK(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4033
      start: 4032
    functionDepth: 0
    functionLinenumber: 4032
    functionLinenumberEnd: 4033
    functionName: MEMERRORS_LOCK
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMERRORS_LOCK(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4034
      start: 4033
    functionDepth: 0
    functionLinenumber: 4033
    functionLinenumberEnd: 4034
    functionName: MEMERRORS_UNLOCK
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMERRORS_UNLOCK(state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:4040,1
    - Dst: MEMERRORS_LOCK
      Src: /src/cpython/Objects/exceptions.c:4042,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/exceptions.c:4049,1
    - Dst: _Py_NewReference
      Src: /src/cpython/Objects/exceptions.c:4050,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/exceptions.c:4051,1
    - Dst: MEMERRORS_UNLOCK
      Src: /src/cpython/Objects/exceptions.c:4053,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/exceptions.c:4060,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:4061,1
    - Dst: _Py_INTERP_SINGLETON
      Src: /src/cpython/Objects/exceptions.c:4062,1
    - Dst: BaseException_new
      Src: /src/cpython/Objects/exceptions.c:4064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - allow_allocation
    - args
    - kwds
    argTypes:
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 4036
    functionDepth: 5
    functionLinenumber: 4036
    functionLinenumberEnd: 4065
    functionName: get_memory_error
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - _Py_SINGLETON
    - Py_NewRef
    - MEMERRORS_UNLOCK
    - _Py_INTERP_SINGLETON
    - BaseException_new
    - get_exc_state
    - MEMERRORS_LOCK
    - _Py_NewReference
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_memory_error(int allow_allocation, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_new
      Src: /src/cpython/Objects/exceptions.c:4073,1
    - Dst: get_memory_error
      Src: /src/cpython/Objects/exceptions.c:4075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4076
      start: 4067
    functionDepth: 6
    functionLinenumber: 4067
    functionLinenumberEnd: 4076
    functionName: MemoryError_new
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_memory_error
    - BaseException_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/exceptions.c:4081,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/exceptions.c:4084,1
    - Dst: get_memory_error
      Src: /src/cpython/Objects/exceptions.c:4087,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Objects/exceptions.c:4089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4092
      start: 4078
    functionDepth: 6
    functionLinenumber: 4078
    functionLinenumberEnd: 4092
    functionName: _PyErr_NoMemory
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - get_memory_error
    - Py_IS_TYPE
    - _PyErr_SetRaisedException
    - Py_FatalError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_NoMemory(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:4097,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:4098,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:4100,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/exceptions.c:4104,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4105,1
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:4109,1
    - Dst: MEMERRORS_LOCK
      Src: /src/cpython/Objects/exceptions.c:4110,1
    - Dst: MEMERRORS_UNLOCK
      Src: /src/cpython/Objects/exceptions.c:4115,1
    - Dst: MEMERRORS_UNLOCK
      Src: /src/cpython/Objects/exceptions.c:4118,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4094
    functionDepth: 3
    functionLinenumber: 4094
    functionLinenumberEnd: 4121
    functionName: MemoryError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionObject_CAST
    - BaseException_clear
    - _PyObject_GC_UNTRACK
    - Py_IS_TYPE
    - MEMERRORS_UNLOCK
    - get_exc_state
    - MEMERRORS_LOCK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void MemoryError_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryError_new
      Src: /src/cpython/Objects/exceptions.c:4132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:4139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4142
      start: 4123
    functionDepth: 7
    functionLinenumber: 4123
    functionLinenumberEnd: 4142
    functionName: preallocate_memerrors
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - MemoryError_new
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int preallocate_memerrors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _Py_exc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4152
      start: 4144
    functionDepth: 0
    functionLinenumber: 4144
    functionLinenumberEnd: 4152
    functionName: free_preallocated_memerrors
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void free_preallocated_memerrors(struct _Py_exc_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/exceptions.c:4421,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/exceptions.c:4423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4418
    functionDepth: 1
    functionLinenumber: 4418
    functionLinenumberEnd: 4433
    functionName: _PyExc_InitTypes
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - _PyStaticType_InitBuiltin
    linkageType: ''
    returnType: int
    signature: int _PyExc_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/exceptions.c:4439,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/exceptions.c:4441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4436
    functionDepth: 1
    functionLinenumber: 4436
    functionLinenumberEnd: 4443
    functionName: _PyExc_FiniTypes
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - _PyStaticType_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PyExc_FiniTypes(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: preallocate_memerrors
      Src: /src/cpython/Objects/exceptions.c:4449,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/exceptions.c:4450,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/exceptions.c:4452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4446
    functionDepth: 8
    functionLinenumber: 4446
    functionLinenumberEnd: 4453
    functionName: _PyExc_InitGlobalObjects
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - preallocate_memerrors
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyExc_InitGlobalObjects(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:4472,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/exceptions.c:4473,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/exceptions.c:4475,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4478,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4479,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4480,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4481,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4482,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4484,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4486,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4487,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4488,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4489,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4490,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4491,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4492,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4493,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4494,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4495,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4496,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4500,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4502,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4503,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4505,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/exceptions.c:4508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (state->errnomap == NULL)
      pos:
        line_end: 4471
        line_start: 4471
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 4511
      start: 4455
    functionDepth: 10
    functionLinenumber: 4455
    functionLinenumberEnd: 4511
    functionName: _PyExc_InitState
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - PyDict_New
    - ADD_ERRNO
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyExc_InitState(PyInterpreterState *interp)
  - 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: 4470
      start: 4460
    functionDepth: 0
    functionLinenumber: 4460
    functionLinenumberEnd: 4470
    functionName: ADD_ERRNO
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ERRNO(TYPE, CODE)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDict
      Src: /src/cpython/Objects/exceptions.c:4518,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/exceptions.c:4523,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:4526,1
    - Dst: create_exception_group_class
      Src: /src/cpython/Objects/exceptions.c:4531,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:4535,1
    - Dst: INIT_ALIAS
      Src: /src/cpython/Objects/exceptions.c:4547,1
    - Dst: INIT_ALIAS
      Src: /src/cpython/Objects/exceptions.c:4548,1
    - Dst: INIT_ALIAS
      Src: /src/cpython/Objects/exceptions.c:4550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - bltinmod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4556
      start: 4515
    functionDepth: 10
    functionLinenumber: 4515
    functionLinenumberEnd: 4556
    functionName: _PyBuiltins_AddExceptions
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - create_exception_group_class
    - PyModule_GetDict
    - PyDict_SetItemString
    - INIT_ALIAS
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: int
    signature: int _PyBuiltins_AddExceptions(PyObject *bltinmod)
  - 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: 4546
      start: 4539
    functionDepth: 0
    functionLinenumber: 4539
    functionLinenumberEnd: 4546
    functionName: INIT_ALIAS
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_ALIAS(NAME, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:4562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4563
      start: 4558
    functionDepth: 1
    functionLinenumber: 4558
    functionLinenumberEnd: 4563
    functionName: _PyExc_ClearExceptionGroupType
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyExc_ClearExceptionGroupType(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_preallocated_memerrors
      Src: /src/cpython/Objects/exceptions.c:4569,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:4570,1
    - Dst: _PyExc_FiniTypes
      Src: /src/cpython/Objects/exceptions.c:4572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4573
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4573
    functionName: _PyExc_Fini
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyExc_FiniTypes
    - free_preallocated_memerrors
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyExc_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:4578,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:4579,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4581,1
    - Dst: BaseException_add_note
      Src: /src/cpython/Objects/exceptions.c:4584,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:4586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - exc
    - note
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4575
    functionDepth: 1
    functionLinenumber: 4575
    functionLinenumberEnd: 4588
    functionName: _PyException_AddNote
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - BaseException_add_note
    - PyErr_Format
    - Py_TYPE
    - PyExceptionInstance_Check
    linkageType: ''
    returnType: int
    signature: int _PyException_AddNote(PyObject *exc, PyObject *note)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/structseq.c:30,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/structseq.c:30,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/structseq.c:31,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:32,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/structseq.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - tp
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 7
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: get_type_attr_as_size
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyErr_Format
    - _PyType_GetDict
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_type_attr_as_size(PyTypeObject *tp, PyObject *name)
  - 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: VISIBLE_SIZE
    functionSourceFile: /src/cpython/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: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: VISIBLE_SIZE_TP
    functionSourceFile: /src/cpython/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: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: REAL_SIZE_TP
    functionSourceFile: /src/cpython/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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: REAL_SIZE
    functionSourceFile: /src/cpython/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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: UNNAMED_FIELDS_TP
    functionSourceFile: /src/cpython/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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: UNNAMED_FIELDS
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNNAMED_FIELDS(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:56,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/structseq.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: get_real_size
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_real_size(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REAL_SIZE_TP
      Src: /src/cpython/Objects/structseq.c:64,1
    - Dst: VISIBLE_SIZE_TP
      Src: /src/cpython/Objects/structseq.c:68,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/structseq.c:73,1
    - Dst: _PyTuple_RESET_HASH_CACHE
      Src: /src/cpython/Objects/structseq.c:76,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/structseq.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 84
    functionName: PyStructSequence_New
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 25
    functionsReached:
    - Py_SET_SIZE
    - _PyTuple_RESET_HASH_CACHE
    - REAL_SIZE_TP
    - PyObject_GC_NewVar
    - VISIBLE_SIZE_TP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStructSequence_New(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/structseq.c:89,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:90,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:92,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:93,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (n_fields >= 0)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/cpython/Objects/structseq.c
    - condition: (0 <= index)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/cpython/Objects/structseq.c
    - condition: (index < n_fields)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: PyStructSequence_SetItem
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 8
    functionsReached:
    - _PyTuple_CAST
    - assert
    - REAL_SIZE
    linkageType: ''
    returnType: void
    signature: void PyStructSequence_SetItem(PyObject *op, Py_ssize_t index, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:102,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:104,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:105,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:106,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/structseq.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= index)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Objects/structseq.c
    - condition: (index < n_fields)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/cpython/Objects/structseq.c
    - condition: (n_fields >= 0)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: PyStructSequence_GetItem
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 2
    functionsReached:
    - REAL_SIZE
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStructSequence_GetItem(PyObject *op, Py_ssize_t index)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:116,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/structseq.c:117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:117,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:120,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/structseq.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: structseq_traverse
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - REAL_SIZE
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int structseq_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/structseq.c:132,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:134,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:138,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/structseq.c:140,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/structseq.c:142,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/structseq.c:143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: structseq_dealloc
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - REAL_SIZE
    - Py_TYPE
    - _PyType_HasFeature
    linkageType: ''
    returnType: void
    signature: void structseq_dealloc(PyObject *op)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: VISIBLE_SIZE_TP
      Src: /src/cpython/Objects/structseq.c:169,1
    - Dst: REAL_SIZE_TP
      Src: /src/cpython/Objects/structseq.c:173,1
    - Dst: UNNAMED_FIELDS_TP
      Src: /src/cpython/Objects/structseq.c:177,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/structseq.c:182,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/structseq.c:188,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:192,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:196,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:202,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:210,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:219,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Objects/structseq.c:224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:226,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/structseq.c:230,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:233,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:234,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Objects/structseq.c:239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:240,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:244,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:251,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:255,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:260,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/structseq.c:264,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 3
    argNames:
    - type
    - arg
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 162
    functionDepth: 9
    functionLinenumber: 162
    functionLinenumberEnd: 266
    functionName: structseq_new_impl
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Fast_GET_SIZE
    - PyDict_GET_SIZE
    - REAL_SIZE_TP
    - _PyObject_GC_TRACK
    - UNNAMED_FIELDS_TP
    - PySequence_Fast
    - Py_NewRef
    - PyDict_GetItemStringRef
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - PyDict_Check
    - VISIBLE_SIZE_TP
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_new_impl(PyTypeObject *type, PyObject *arg, PyObject *dict)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:273,1
    - Dst: strlen
      Src: /src/cpython/Objects/structseq.c:276,1
    - Dst: VISIBLE_SIZE
      Src: /src/cpython/Objects/structseq.c:278,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/structseq.c:279,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Objects/structseq.c:285,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:288,1
    - Dst: VISIBLE_SIZE
      Src: /src/cpython/Objects/structseq.c:292,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:295,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:298,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:306,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Objects/structseq.c:311,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:316,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Objects/structseq.c:319,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:320,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/structseq.c:321,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:326,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/structseq.c:330,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/structseq.c:333,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 335
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 335
    functionName: structseq_repr
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - VISIBLE_SIZE
    - strlen
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_WriteChar
    - PyErr_Format
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteUTF8
    - Py_TYPE
    - PyStructSequence_GetItem
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_repr(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:347,1
    - Dst: VISIBLE_SIZE
      Src: /src/cpython/Objects/structseq.c:351,1
    - Dst: UNNAMED_FIELDS
      Src: /src/cpython/Objects/structseq.c:352,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/structseq.c:356,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/structseq.c:360,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:365,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/structseq.c:366,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/structseq.c:370,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:373,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/structseq.c:378,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/structseq.c:379,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 338
    functionDepth: 10
    functionLinenumber: 338
    functionLinenumberEnd: 381
    functionName: structseq_reduce
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - UNNAMED_FIELDS
    - Py_BuildValue
    - VISIBLE_SIZE
    - _PyTuple_FromArray
    - Py_DECREF
    - PyDict_SetItemString
    - PyDict_New
    - REAL_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Objects/structseq.c:391,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:395,1
    - Dst: UNNAMED_FIELDS
      Src: /src/cpython/Objects/structseq.c:399,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:404,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:407,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Objects/structseq.c:411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:411,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Objects/structseq.c:421,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:421,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:426,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:431,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/structseq.c:432,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:435,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:451,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - op
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 384
    functionDepth: 9
    functionLinenumber: 384
    functionLinenumberEnd: 453
    functionName: structseq_replace
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - UNNAMED_FIELDS
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyDict_PopString
    - Py_NewRef
    - PyDict_Keys
    - REAL_SIZE
    - PyErr_Format
    - Py_TYPE
    - _PyArg_NoPositional
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_replace(PyObject *op, PyObject *args, PyObject *kwargs)'
  - 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: 474
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: count_members
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/cpython/Objects/structseq.c:494,1
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/cpython/Objects/structseq.c:495,1
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/cpython/Objects/structseq.c:496,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/structseq.c:500,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/structseq.c:509,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/structseq.c:513,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/structseq.c:517,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/structseq.c:521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:529,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    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: 531
      start: 476
    functionDepth: 10
    functionLinenumber: 476
    functionLinenumberEnd: 531
    functionName: initialize_structseq_dict
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - _PyTuple_Resize
    - PyTuple_SET_ITEM
    - SET_DICT_FROM_SIZE
    - PyDict_SetItemString
    - PyUnicode_FromString
    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: 493
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 493
    functionName: SET_DICT_FROM_SIZE
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DICT_FROM_SIZE(key, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/cpython/Objects/structseq.c:539,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/structseq.c:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - desc
    - n_members
    - n_unnamed_members
    argTypes:
    - PyStructSequence_Desc*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 564
    functionName: initialize_members
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyMemberDef
    signature: "PyMemberDef *\ninitialize_members(PyStructSequence_Desc *desc,\n                   Py_ssize_t
      n_members, Py_ssize_t n_unnamed_members)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - type
    - desc
    - tp_members
    - n_members
    - tp_flags
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    - PyMemberDef*
    - Py_ssize_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 587
    functionName: initialize_static_fields
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void initialize_static_fields(PyTypeObject *type, PyStructSequence_Desc
      *desc,\n                         PyMemberDef *tp_members, Py_ssize_t n_members,\n
      \                        unsigned long tp_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/structseq.c:593,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/structseq.c:596,1
    - Dst: initialize_structseq_dict
      Src: /src/cpython/Objects/structseq.c:598,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/structseq.c:599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - type
    - desc
    - n_members
    - n_unnamed_members
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 11
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: initialize_static_type
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyType_Ready
    - _PyType_GetDict
    - initialize_structseq_dict
    linkageType: ''
    returnType: int
    signature: "int initialize_static_type(PyTypeObject *type, PyStructSequence_Desc
      *desc,\n                       Py_ssize_t n_members, Py_ssize_t n_unnamed_members)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:613,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/structseq.c:614,1
    - Dst: count_members
      Src: /src/cpython/Objects/structseq.c:617,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:621,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:622,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:623,1
    - Dst: initialize_members
      Src: /src/cpython/Objects/structseq.c:625,1
    - Dst: initialize_static_fields
      Src: /src/cpython/Objects/structseq.c:629,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/structseq.c:631,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:636,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:637,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:638,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:639,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:640,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/structseq.c:640,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/structseq.c:644,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:645,1
    - Dst: initialize_structseq_dict
      Src: /src/cpython/Objects/structseq.c:651,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/structseq.c:652,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:661,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - interp
    - type
    - desc
    - tp_flags
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - PyStructSequence_Desc*
    - unsigned long
    assertStmts:
    - condition: (type->tp_base == NULL)
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/cpython/Objects/structseq.c
    - condition: (_Py_IsImmortal(type))
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_members == NULL)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/cpython/Objects/structseq.c
    - condition: ((type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 638
        line_start: 638
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_name != NULL)
      pos:
        line_end: 635
        line_start: 635
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_members != NULL)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_base == &PyTuple_Type)
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_name == NULL)
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 664
      start: 607
    functionDepth: 11
    functionLinenumber: 607
    functionLinenumberEnd: 664
    functionName: _PyStructSequence_InitBuiltinWithFlags
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_InitBuiltin
    - initialize_static_fields
    - count_members
    - Py_SET_TYPE
    - initialize_members
    - _Py_SetImmortal
    - _Py_IsImmortal
    - initialize_structseq_dict
    - _PyType_GetDict
    - PyErr_Format
    - Py_TYPE
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyStructSequence_InitBuiltinWithFlags(PyInterpreterState *interp,\n
      \                                      PyTypeObject *type,\n                                       PyStructSequence_Desc
      *desc,\n                                       unsigned long tp_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/structseq.c:675,1
    - Dst: _PyRefchain_IsTraced
      Src: /src/cpython/Objects/structseq.c:676,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/structseq.c:677,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/structseq.c:682,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/structseq.c:683,1
    - Dst: count_members
      Src: /src/cpython/Objects/structseq.c:687,1
    - Dst: initialize_members
      Src: /src/cpython/Objects/structseq.c:688,1
    - Dst: initialize_static_fields
      Src: /src/cpython/Objects/structseq.c:692,1
    - Dst: initialize_static_type
      Src: /src/cpython/Objects/structseq.c:693,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - type
    - desc
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 666
    functionDepth: 12
    functionLinenumber: 666
    functionLinenumberEnd: 698
    functionName: PyStructSequence_InitType2
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - initialize_static_fields
    - count_members
    - PyErr_BadInternalCall
    - initialize_members
    - _PyInterpreterState_GET
    - initialize_static_type
    - PyMem_Free
    - _PyRefchain_IsTraced
    - _Py_ForgetReference
    - Py_REFCNT
    linkageType: ''
    returnType: int
    signature: int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc
      *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_InitType2
      Src: /src/cpython/Objects/structseq.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - desc
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 700
    functionDepth: 13
    functionLinenumber: 700
    functionLinenumberEnd: 704
    functionName: PyStructSequence_InitType
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_InitType2
    linkageType: ''
    returnType: void
    signature: void PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc
      *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:715,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:716,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:717,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:718,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/structseq.c:718,1
    - Dst: _PyType_HasSubclasses
      Src: /src/cpython/Objects/structseq.c:721,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/structseq.c:726,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/structseq.c:728,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - interp
    - type
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_name != NULL)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_base == &PyTuple_Type)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/cpython/Objects/structseq.c
    - condition: (_Py_IsImmortal(type))
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/cpython/Objects/structseq.c
    - condition: ((type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 735
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 735
    functionName: _PyStructSequence_FiniBuiltin
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 1
    functionsReached:
    - _PyStaticType_FiniBuiltin
    - assert
    - _Py_IsMainInterpreter
    - _PyType_HasSubclasses
    - PyMem_Free
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: void _PyStructSequence_FiniBuiltin(PyInterpreterState *interp, PyTypeObject
      *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: count_members
      Src: /src/cpython/Objects/structseq.c:748,1
    - Dst: initialize_members
      Src: /src/cpython/Objects/structseq.c:749,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Objects/structseq.c:774,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:775,1
    - Dst: initialize_structseq_dict
      Src: /src/cpython/Objects/structseq.c:780,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/structseq.c:781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - desc
    - tp_flags
    argTypes:
    - PyStructSequence_Desc*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 738
    functionDepth: 11
    functionLinenumber: 738
    functionLinenumberEnd: 787
    functionName: _PyStructSequence_NewType
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 1
    functionsReached:
    - count_members
    - Py_DECREF
    - initialize_members
    - PyType_FromSpecWithBases
    - _PyType_GetDict
    - PyMem_Free
    - initialize_structseq_dict
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _PyStructSequence_NewType(PyStructSequence_Desc *desc, unsigned long tp_flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_NewType
      Src: /src/cpython/Objects/structseq.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 12
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: PyStructSequence_NewType
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 14
    functionsReached:
    - _PyStructSequence_NewType
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      PyStructSequence_NewType(PyStructSequence_Desc *desc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: gettyperecord
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: _PyUnicode_ToTitlecase
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: _PyUnicode_IsTitlecase
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: _PyUnicode_IsXidStart
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: _PyUnicode_IsXidContinue
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: _PyUnicode_ToDecimalDigit
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: _PyUnicode_IsDecimalDigit
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: _PyUnicode_ToDigit
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: _PyUnicode_IsDigit
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: _PyUnicode_IsNumeric
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: _PyUnicode_IsPrintable
    functionSourceFile: /src/cpython/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/cpython/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_IsLowercase
    functionSourceFile: /src/cpython/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/cpython/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_IsUppercase
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: _PyUnicode_ToUppercase
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: _PyUnicode_ToLowercase
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: _PyUnicode_ToLowerFull
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 231
    functionName: _PyUnicode_ToTitleFull
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: _PyUnicode_ToUpperFull
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:251,1
    - Dst: _PyUnicode_ToLowerFull
      Src: /src/cpython/Objects/unicodectype.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: _PyUnicode_ToFoldedFull
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: _PyUnicode_IsCased
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodectype.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: _PyUnicode_IsCaseIgnorable
    functionSourceFile: /src/cpython/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/cpython/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_IsAlpha
    functionSourceFile: /src/cpython/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsAlpha(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ID
      Src: /src/cpython/Objects/boolobject.c:16,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/boolobject.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: bool_repr
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ok
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: PyBool_FromLong
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 131
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyBool_FromLong(long ok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/boolobject.c:34,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/boolobject.c:36,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/boolobject.c:38,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/boolobject.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: bool_new
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyArg_UnpackTuple
    - PyObject_IsTrue
    - _PyArg_NoKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/boolobject.c:49,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/boolobject.c:53,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/boolobject.c:54,1
    - Dst: assert
      Src: /src/cpython/Objects/boolobject.c:58,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/boolobject.c:58,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/boolobject.c:60,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/boolobject.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Objects/boolobject.c
    constantsTouched: []
    func_position:
      end: 66
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 66
    functionName: bool_vectorcall
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyObject_IsTrue
    - _PyArg_CheckPositional
    - PyBool_FromLong
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbool_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/boolobject.c:73,1
    - Dst: tp_as_number::nb_invert
      Src: /src/cpython/Objects/boolobject.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: bool_invert
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - tp_as_number::nb_invert
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_invert(PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/boolobject.c:89,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/boolobject.c:89,1
    - Dst: tp_as_number::nb_and
      Src: /src/cpython/Objects/boolobject.c:90,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/boolobject.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: bool_and
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyBool_Check
    - tp_as_number::nb_and
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_and(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/boolobject.c:97,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/boolobject.c:97,1
    - Dst: tp_as_number::nb_or
      Src: /src/cpython/Objects/boolobject.c:98,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/boolobject.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: bool_or
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - tp_as_number::nb_or
    - PyBool_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_or(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/boolobject.c:105,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/boolobject.c:105,1
    - Dst: tp_as_number::nb_xor
      Src: /src/cpython/Objects/boolobject.c:106,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/boolobject.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: bool_xor
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/boolobject.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: bool_dealloc
    functionSourceFile: /src/cpython/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortal
    linkageType: ''
    returnType: void
    signature: void bool_dealloc(PyObject *boolean)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: list_allocate_array
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    linkageType: ''
    returnType: _PyListArray
    signature: '_PyListArray *

      list_allocate_array(size_t capacity)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CONTAINER_OF
      Src: /src/cpython/Objects/listobject.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - items
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: list_capacity
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _Py_CONTAINER_OF
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t list_capacity(PyObject **items)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CONTAINER_OF
      Src: /src/cpython/Objects/listobject.c:62,1
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/listobject.c:65,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:68,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - items
    - use_qsbr
    argTypes:
    - PyObject**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 7
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: free_list_items
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _Py_CONTAINER_OF
    - _PyMem_FreeDelayed
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_list_items(PyObject** items, bool use_qsbr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:82,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/listobject.c:82,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Objects/listobject.c:82,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/listobject.c:82,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/listobject.c:86,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:87,1
    - Dst: _PyObject_GC_SET_SHARED
      Src: /src/cpython/Objects/listobject.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts:
    - condition: (Py_REFCNT(self) == 1 || PyMutex_IsLocked(&_PyObject_CAST(self)->ob_mutex))
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: ensure_shared_on_resize
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 3
    functionsReached:
    - _Py_IsOwnedByCurrentThread
    - _PyObject_CAST
    - _PyObject_GC_IS_SHARED
    - _PyObject_GC_SET_SHARED
    - PyMutex_IsLocked
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void ensure_shared_on_resize(PyListObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:118,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:119,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:137,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/listobject.c:143,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:146,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:148,1
    - Dst: memcpy
      Src: /src/cpython/Objects/listobject.c:159,1
    - Dst: memset
      Src: /src/cpython/Objects/listobject.c:162,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/listobject.c:164,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:166,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:168,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:168,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/listobject.c:174,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:181,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - self
    - newsize
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->ob_item != NULL || newsize == 0)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 189
      start: 107
    functionDepth: 8
    functionLinenumber: 107
    functionLinenumberEnd: 189
    functionName: list_resize
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - Py_SET_SIZE
    - ensure_shared_on_resize
    - Py_SIZE
    - list_allocate_array
    - memset
    - _PyObject_GC_IS_SHARED
    - memcpy
    - free_list_items
    - PyErr_NoMemory
    - assert
    - _Py_atomic_store_ptr_release
    linkageType: ''
    returnType: int
    signature: int list_resize(PyListObject *self, Py_ssize_t newsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:195,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:196,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:205,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:207,1
    - Dst: memset
      Src: /src/cpython/Objects/listobject.c:211,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/listobject.c:213,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:215,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->ob_item == NULL)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/cpython/Objects/listobject.c
    - condition: (size > 0)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 222
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 222
    functionName: list_preallocate_exact
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_allocate_array
    - memset
    - PyMem_New
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int list_preallocate_exact(PyListObject *self, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/cpython/Objects/listobject.c:228,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/listobject.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: _PyList_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - _Py_FREELIST_SIZE
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyList_DebugMallocStats(FILE *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:238,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/listobject.c:242,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/listobject.c:244,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:256,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:257,1
    - Dst: memset
      Src: /src/cpython/Objects/listobject.c:259,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/listobject.c:262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:265,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:266,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:269,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/listobject.c:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 273
    functionName: PyList_New
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 143
    functionsReached:
    - Py_SET_SIZE
    - PyMem_Calloc
    - Py_DECREF
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - list_allocate_array
    - memset
    - _Py_FREELIST_POP
    - PyObject_GC_New
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_New(Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:278,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:279,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:283,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:287,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:288,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/listobject.c:292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:294,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Objects/listobject.c
    - condition: (op->ob_item == NULL)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 300
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 300
    functionName: list_new_prealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - list_allocate_array
    - PyMem_New
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_new_prealloc(Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:305,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:306,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: PyList_Size
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 12
    functionsReached:
    - PyErr_BadInternalCall
    - PyList_GET_SIZE
    - 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: 325
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: valid_index
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int valid_index(Py_ssize_t i, Py_ssize_t limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:333,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:334,1
    - Dst: _PyObject_GC_SET_SHARED
      Src: /src/cpython/Objects/listobject.c:335,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:337,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:338,1
    - Dst: _Py_NewRefWithLock
      Src: /src/cpython/Objects/listobject.c:341,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 345
    functionName: list_item_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - _Py_NewRefWithLock
    - _PyObject_GC_IS_SHARED
    - _PyObject_GC_SET_SHARED
    - valid_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_item_impl(PyListObject *self, Py_ssize_t idx)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/listobject.c:350,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:350,1
    - Dst: list_item_impl
      Src: /src/cpython/Objects/listobject.c:351,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:354,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:355,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/listobject.c:358,1
    - Dst: list_capacity
      Src: /src/cpython/Objects/listobject.c:362,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:363,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:364,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/listobject.c:367,1
    - Dst: list_item_impl
      Src: /src/cpython/Objects/listobject.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (cap != -1)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 372
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 372
    functionName: list_get_item_ref
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_capacity
    - _Py_IsOwnedByCurrentThread
    - PyList_GET_SIZE
    - _PyObject_GC_IS_SHARED
    - list_item_impl
    - _Py_TryXGetRef
    - valid_index
    - assert
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_get_item_ref(PyListObject *op, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:377,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:377,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:380,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: list_get_item_ref
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_NewRef
    - PyList_GET_ITEM
    - valid_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_get_item_ref(PyListObject *op, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:387,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:388,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:391,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:391,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/listobject.c:392,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:393,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: PyList_GetItem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 11
    functionsReached:
    - _Py_DECLARE_STR
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyErr_SetObject
    - _Py_STR
    - PyList_Check
    - valid_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_GetItem(PyObject *op, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:403,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:406,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/listobject.c:408,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:409,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: PyList_GetItemRef
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 3
    functionsReached:
    - list_get_item_ref
    - _Py_DECLARE_STR
    - PyErr_SetString
    - PyErr_SetObject
    - _Py_STR
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_GetItemRef(PyObject *op, Py_ssize_t i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - i
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: _PyList_GetItemRef
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_get_item_ref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_GetItemRef(PyListObject *list, Py_ssize_t i)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:425,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/listobject.c:425,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:426,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:427,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:427,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/listobject.c:430,1
    - Dst: list_capacity
      Src: /src/cpython/Objects/listobject.c:434,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:435,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:436,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/listobject.c:439,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Objects/listobject.c:440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - list
    - i
    - result
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - _PyStackRef*
    assertStmts:
    - condition: "(_Py_IsOwnedByCurrentThread((PyObject *)list) ||\n           _PyObject_GC_IS_SHARED(list))"
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/cpython/Objects/listobject.c
    - condition: (cap != -1)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 444
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 444
    functionName: _PyList_GetItemRefNoLock
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_capacity
    - _Py_IsOwnedByCurrentThread
    - PyList_GET_SIZE
    - _PyObject_GC_IS_SHARED
    - valid_index
    - _Py_TryIncrefCompareStackRef
    - assert
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: int
    signature: int _PyList_GetItemRefNoLock(PyListObject *list, Py_ssize_t i, _PyStackRef
      *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:451,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:452,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:453,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:458,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:459,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:459,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:461,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:467,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:468,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - op
    - i
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 473
    functionName: PyList_SetItem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 6
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XDECREF
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyList_Check
    - valid_index
    - FT_ATOMIC_STORE_PTR_RELEASE
    linkageType: ''
    returnType: int
    signature: "int PyList_SetItem(PyObject *op, Py_ssize_t i,\n               PyObject
      *newitem)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:478,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:481,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:485,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:486,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Objects/listobject.c:498,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:499,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: ((size_t)n + 1 < PY_SSIZE_T_MAX)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 501
      start: 475
    functionDepth: 9
    functionLinenumber: 475
    functionLinenumberEnd: 501
    functionName: ins1
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - Py_SIZE
    - PyErr_BadInternalCall
    - list_resize
    - Py_NewRef
    - FT_ATOMIC_STORE_PTR_RELAXED
    - FT_ATOMIC_STORE_PTR_RELEASE
    - assert
    linkageType: ''
    returnType: int
    signature: int ins1(PyListObject *self, Py_ssize_t where, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:506,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:507,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:512,1
    - Dst: ins1
      Src: /src/cpython/Objects/listobject.c:513,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - op
    - where
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 516
    functionName: PyList_Insert
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 8
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - ins1
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PyList_Insert(PyObject *op, Py_ssize_t where, PyObject *newitem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:522,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:523,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:525,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - newitem
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts:
    - condition: (self->allocated == -1 || self->allocated == len)
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 9
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: _PyList_AppendTakeRefListResize
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - list_resize
    - FT_ATOMIC_STORE_PTR_RELEASE
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyList_AppendTakeRefListResize(PyListObject *self, PyObject *newitem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:535,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:537,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Objects/listobject.c:538,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:538,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:539,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - newitem
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 544
    functionName: PyList_Append
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 91
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyList_Check
    - Py_NewRef
    - _PyList_AppendTakeRef
    linkageType: ''
    returnType: int
    signature: int PyList_Append(PyObject *op, PyObject *newitem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/listobject.c:553,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:559,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:561,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:563,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:566,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/listobject.c:567,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/listobject.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 548
    functionDepth: 8
    functionLinenumber: 548
    functionLinenumberEnd: 572
    functionName: list_dealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_SIZE
    - PyObject_GC_Del
    - free_list_items
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void list_dealloc(PyObject *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/listobject.c:577,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/listobject.c:579,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:583,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/listobject.c:584,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:590,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:596,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:598,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:601,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:604,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/listobject.c:609,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/listobject.c:612,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:615,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/listobject.c:619,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/listobject.c:620,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:623,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/listobject.c:624,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/listobject.c:625,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 627
    functionName: list_repr_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_ReprEnter
    - Py_ReprLeave
    - Py_SIZE
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_WriteChar
    - Py_NewRef
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteRepr
    - Py_CLEAR
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repr_impl(PyListObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:632,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/listobject.c:633,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:637,1
    - Dst: list_repr_impl
      Src: /src/cpython/Objects/listobject.c:638,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 641
    functionName: list_repr
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - list_repr_impl
    - PyList_GET_SIZE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: list_length
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t list_length(PyObject *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:654,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - aa
    - el
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 666
    functionName: list_contains
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - list_get_item_ref
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int list_contains(PyObject *aa, PyObject *el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:672,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:672,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:673,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:673,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:678,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:680,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:680,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - aa
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 687
    functionName: list_item
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_get_item_ref
    - PyList_GET_SIZE
    - PyErr_SetObject
    - _Py_STR
    - Py_NewRef
    - valid_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_item(PyObject *aa, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:697,1
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:707,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 711
    functionName: list_slice_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_SET_SIZE
    - Py_NewRef
    - list_new_prealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_slice_lock_held(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:716,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:717,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:721,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:725,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:726,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:731,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:732,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:734,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:735,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 713
    functionDepth: 6
    functionLinenumber: 713
    functionLinenumberEnd: 737
    functionName: PyList_GetSlice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    - list_slice_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_GetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:746,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:746,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:746,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:747,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:747,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:749,1
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:751,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:757,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:759,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:762,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:763,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:765,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyListObject*
    - PyListObject*
    assertStmts:
    - condition: ((size_t)Py_SIZE(a) + (size_t)Py_SIZE(b) < PY_SSIZE_T_MAX)
      pos:
        line_end: 745
        line_start: 745
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 769
      start: 739
    functionDepth: 5
    functionLinenumber: 739
    functionLinenumberEnd: 769
    functionName: list_concat_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_SET_SIZE
    - Py_SIZE
    - list_new_prealloc
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_concat_lock_held(PyListObject *a, PyListObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:774,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:775,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:777,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:783,1
    - Dst: list_concat_lock_held
      Src: /src/cpython/Objects/listobject.c:784,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - aa
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 771
    functionDepth: 6
    functionLinenumber: 771
    functionLinenumberEnd: 787
    functionName: list_concat
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - PyList_Check
    - Py_END_CRITICAL_SECTION2
    - PyErr_Format
    - list_concat_lock_held
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_concat(PyObject *aa, PyObject *bb)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:792,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:794,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:795,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:798,1
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:801,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/listobject.c:808,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/listobject.c:818,1
    - Dst: _Py_memory_repeat
      Src: /src/cpython/Objects/listobject.c:823,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:827,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 829
      start: 789
    functionDepth: 5
    functionLinenumber: 789
    functionLinenumberEnd: 829
    functionName: list_repeat_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_SET_SIZE
    - Py_SIZE
    - list_new_prealloc
    - _Py_memory_repeat
    - _Py_RefcntAdd
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repeat_lock_held(PyListObject *a, Py_ssize_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:836,1
    - Dst: list_repeat_lock_held
      Src: /src/cpython/Objects/listobject.c:837,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aa
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 831
    functionDepth: 6
    functionLinenumber: 831
    functionLinenumberEnd: 840
    functionName: list_repeat
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - list_repeat_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repeat(PyObject *aa, Py_ssize_t n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:852,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:853,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:854,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:857,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/listobject.c:861,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:863,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - a
    - is_resize
    argTypes:
    - PyListObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 842
    functionDepth: 8
    functionLinenumber: 842
    functionLinenumberEnd: 870
    functionName: list_clear_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_XDECREF
    - ensure_shared_on_resize
    - Py_SIZE
    - _PyObject_GC_IS_SHARED
    - FT_ATOMIC_STORE_PTR_RELEASE
    - free_list_items
    linkageType: ''
    returnType: void
    signature: void list_clear_impl(PyListObject *a, bool is_resize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_clear_impl
      Src: /src/cpython/Objects/listobject.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 872
    functionDepth: 9
    functionLinenumber: 872
    functionLinenumberEnd: 876
    functionName: list_clear
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_clear_impl
    linkageType: ''
    returnType: void
    signature: void list_clear(PyListObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_clear_impl
      Src: /src/cpython/Objects/listobject.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 878
    functionDepth: 9
    functionLinenumber: 878
    functionLinenumberEnd: 883
    functionName: list_clear_slot
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_clear_impl
    linkageType: ''
    returnType: int
    signature: int list_clear_slot(PyObject *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/listobject.c:915,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:918,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/listobject.c:919,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:923,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:924,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:928,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:929,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:932,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:934,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:935,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:936,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:945,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:947,1
    - Dst: memcpy
      Src: /src/cpython/Objects/listobject.c:951,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:956,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:959,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:960,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:960,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:961,1
    - Dst: memcpy
      Src: /src/cpython/Objects/listobject.c:962,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:968,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:969,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:974,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:979,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/listobject.c:979,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:982,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:986,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:987,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 4
    argNames:
    - a
    - ilow
    - ihigh
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (norig >= 0)
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 990
      start: 891
    functionDepth: 9
    functionLinenumber: 891
    functionLinenumberEnd: 990
    functionName: list_ass_slice_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast_ITEMS
    - Py_SIZE
    - memmove
    - list_resize
    - PySequence_Fast
    - list_clear
    - PyMem_Free
    - Py_XNewRef
    - memcpy
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int list_ass_slice_lock_held(PyListObject *a, Py_ssize_t ilow, Py_ssize_t
      ihigh, PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:997,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:998,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:999,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1005,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1007,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:1009,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1010,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1011,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1012,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1015,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1016,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1017,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - a
    - ilow
    - ihigh
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 992
    functionDepth: 10
    functionLinenumber: 992
    functionLinenumberEnd: 1020
    functionName: list_ass_slice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyList_CheckExact
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - Py_BEGIN_CRITICAL_SECTION2
    - PyList_GET_SIZE
    - Py_END_CRITICAL_SECTION2
    - list_slice_lock_held
    - list_ass_slice_lock_held
    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/cpython/Objects/listobject.c:1025,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:1026,1
    - Dst: list_ass_slice
      Src: /src/cpython/Objects/listobject.c:1029,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: 1030
      start: 1022
    functionDepth: 11
    functionLinenumber: 1022
    functionLinenumberEnd: 1030
    functionName: PyList_SetSlice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 7
    functionsReached:
    - PyErr_BadInternalCall
    - list_ass_slice
    - 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/cpython/Objects/listobject.c:1035,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:1041,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:1046,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1051,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/listobject.c:1057,1
    - Dst: _Py_memory_repeat
      Src: /src/cpython/Objects/listobject.c:1061,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1032
    functionDepth: 9
    functionLinenumber: 1032
    functionLinenumberEnd: 1064
    functionName: list_inplace_repeat_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - list_resize
    - list_clear
    - _Py_memory_repeat
    - _Py_RefcntAdd
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int list_inplace_repeat_lock_held(PyListObject *self, Py_ssize_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1071,1
    - Dst: list_inplace_repeat_lock_held
      Src: /src/cpython/Objects/listobject.c:1072,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1076,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - _self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1066
    functionDepth: 10
    functionLinenumber: 1066
    functionLinenumberEnd: 1080
    functionName: list_inplace_repeat
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - list_inplace_repeat_lock_held
    - Py_NewRef
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_inplace_repeat(PyObject *_self, Py_ssize_t n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:1085,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1085,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:1086,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1092,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Objects/listobject.c:1094,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1096,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1099,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - i
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1103
    functionName: list_ass_item_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_DECREF
    - Py_SIZE
    - PyErr_SetString
    - Py_NewRef
    - valid_index
    - FT_ATOMIC_STORE_PTR_RELAXED
    - FT_ATOMIC_STORE_PTR_RELEASE
    linkageType: ''
    returnType: int
    signature: int list_ass_item_lock_held(PyListObject *a, Py_ssize_t i, PyObject
      *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1110,1
    - Dst: list_ass_item_lock_held
      Src: /src/cpython/Objects/listobject.c:1111,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aa
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1114
    functionName: list_ass_item
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - list_ass_item_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int list_ass_item(PyObject *aa, Py_ssize_t i, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ins1
      Src: /src/cpython/Objects/listobject.c:1131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - index
    - object
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1135
    functionName: list_insert_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/listobject.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1150
    functionName: py_list_clear_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_list_clear_impl(PyListObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1163,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1159
    functionDepth: 6
    functionLinenumber: 1159
    functionLinenumberEnd: 1164
    functionName: list_copy_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - list_slice_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_copy_impl(PyListObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Objects/listobject.c:1180,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - object
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1184
    functionName: list_append_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyList_AppendTakeRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_append_impl(PyListObject *self, PyObject *object)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1189,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1195,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1198,1
    - Dst: list_preallocate_exact
      Src: /src/cpython/Objects/listobject.c:1200,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1203,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1205,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/listobject.c:1215,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1219,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts:
    - condition: (m < PY_SSIZE_T_MAX - n)
      pos:
        line_end: 1197
        line_start: 1197
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1222
      start: 1186
    functionDepth: 9
    functionLinenumber: 1186
    functionLinenumberEnd: 1222
    functionName: list_extend_fast
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast_ITEMS
    - Py_SIZE
    - list_resize
    - Py_NewRef
    - list_preallocate_exact
    - FT_ATOMIC_STORE_PTR_RELEASE
    - assert
    linkageType: ''
    returnType: int
    signature: int list_extend_fast(PyListObject *self, PyObject *iterable)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/listobject.c:1227,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:1231,1
    - Dst: PyObject_LengthHint
      Src: /src/cpython/Objects/listobject.c:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1236,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1240,1
    - Dst: list_preallocate_exact
      Src: /src/cpython/Objects/listobject.c:1248,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1253,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1258,1
    - Dst: iternext
      Src: /src/cpython/Objects/listobject.c:1263,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:1265,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/listobject.c:1266,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/listobject.c:1267,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1274,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1275,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1276,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1277,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Objects/listobject.c:1280,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1286,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1287,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1295,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1224
    functionDepth: 9
    functionLinenumber: 1224
    functionLinenumberEnd: 1297
    functionName: list_extend_iter_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_DECREF
    - Py_SIZE
    - PyObject_GetIter
    - PyErr_Occurred
    - list_resize
    - PyErr_Clear
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyErr_ExceptionMatches
    - list_preallocate_exact
    - iternext
    - PyObject_LengthHint
    - Py_TYPE
    - _PyList_AppendTakeRef
    linkageType: ''
    returnType: int
    signature: int list_extend_iter_lock_held(PyListObject *self, PyObject *iterable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/listobject.c:1302,1
    - Dst: list_extend_fast
      Src: /src/cpython/Objects/listobject.c:1307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1299
    functionDepth: 10
    functionLinenumber: 1299
    functionLinenumberEnd: 1310
    functionName: list_extend_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_extend_fast
    - Py_DECREF
    - PySequence_Fast
    linkageType: ''
    returnType: int
    signature: int list_extend_lock_held(PyListObject *self, PyObject *iterable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1315,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1316,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1321,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1325,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Objects/listobject.c:1331,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1332,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyListObject*
    - PySetObject*
    assertStmts:
    - condition: (self->ob_item != NULL)
      pos:
        line_end: 1324
        line_start: 1324
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1337
      start: 1312
    functionDepth: 9
    functionLinenumber: 1312
    functionLinenumberEnd: 1337
    functionName: list_extend_set
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_SIZE
    - PySet_GET_SIZE
    - list_resize
    - _PySet_NextEntryRef
    - FT_ATOMIC_STORE_PTR_RELEASE
    - assert
    linkageType: ''
    returnType: int
    signature: int list_extend_set(PyListObject *self, PySetObject *other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1343,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1344,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1349,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1353,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/listobject.c:1357,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:1359,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1360,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - dict
    - which_item
    argTypes:
    - PyListObject*
    - PyDictObject*
    - int
    assertStmts:
    - condition: (self->ob_item != NULL)
      pos:
        line_end: 1352
        line_start: 1352
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1366
      start: 1339
    functionDepth: 9
    functionLinenumber: 1339
    functionLinenumberEnd: 1366
    functionName: list_extend_dict
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_SET_SIZE
    - PyDict_GET_SIZE
    - Py_SIZE
    - list_resize
    - FT_ATOMIC_STORE_PTR_RELEASE
    - assert
    - _PyDict_Next
    linkageType: ''
    returnType: int
    signature: int list_extend_dict(PyListObject *self, PyDictObject *dict, int which_item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1371,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1372,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1377,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1381,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/listobject.c:1386,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/listobject.c:1387,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1389,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1392,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - dict
    argTypes:
    - PyListObject*
    - PyDictObject*
    assertStmts:
    - condition: (self->ob_item != NULL)
      pos:
        line_end: 1380
        line_start: 1380
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1399
      start: 1368
    functionDepth: 9
    functionLinenumber: 1368
    functionLinenumberEnd: 1399
    functionName: list_extend_dictitems
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - PyDict_GET_SIZE
    - Py_SIZE
    - list_resize
    - PyTuple_Pack
    - FT_ATOMIC_STORE_PTR_RELEASE
    - assert
    - _PyDict_Next
    linkageType: ''
    returnType: int
    signature: int list_extend_dictitems(PyListObject *self, PyDictObject *dict)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1408,1
    - Dst: list_inplace_repeat_lock_held
      Src: /src/cpython/Objects/listobject.c:1409,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1410,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:1412,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1413,1
    - Dst: list_extend_lock_held
      Src: /src/cpython/Objects/listobject.c:1414,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1415,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/listobject.c:1417,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1418,1
    - Dst: list_extend_lock_held
      Src: /src/cpython/Objects/listobject.c:1419,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1420,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Objects/listobject.c:1422,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1423,1
    - Dst: list_extend_set
      Src: /src/cpython/Objects/listobject.c:1424,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1425,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/listobject.c:1427,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1428,1
    - Dst: list_extend_dict
      Src: /src/cpython/Objects/listobject.c:1429,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1430,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:1432,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1434,1
    - Dst: list_extend_dict
      Src: /src/cpython/Objects/listobject.c:1435,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1436,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:1438,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1440,1
    - Dst: list_extend_dict
      Src: /src/cpython/Objects/listobject.c:1441,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1442,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:1444,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1446,1
    - Dst: list_extend_dictitems
      Src: /src/cpython/Objects/listobject.c:1447,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1448,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1451,1
    - Dst: list_extend_iter_lock_held
      Src: /src/cpython/Objects/listobject.c:1452,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1401
    functionDepth: 11
    functionLinenumber: 1401
    functionLinenumberEnd: 1456
    functionName: _list_extend
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyList_CheckExact
    - list_extend_dictitems
    - Py_END_CRITICAL_SECTION
    - PyDict_CheckExact
    - Py_BEGIN_CRITICAL_SECTION2
    - list_extend_iter_lock_held
    - PyAnySet_CheckExact
    - Py_END_CRITICAL_SECTION2
    - Py_IS_TYPE
    - list_extend_lock_held
    - list_inplace_repeat_lock_held
    - list_extend_set
    - list_extend_dict
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int _list_extend(PyListObject *self, PyObject *iterable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1467
    functionDepth: 12
    functionLinenumber: 1467
    functionLinenumberEnd: 1475
    functionName: list_extend_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _list_extend
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_extend_impl(PyListObject *self, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_extend
      Src: /src/cpython/Objects/listobject.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1481
    functionName: _PyList_Extend
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - list_extend
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_Extend(PyListObject *self, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:1486,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:1487,1
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:1490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1483
    functionDepth: 12
    functionLinenumber: 1483
    functionLinenumberEnd: 1491
    functionName: PyList_Extend
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 3
    functionsReached:
    - PyErr_BadInternalCall
    - _list_extend
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PyList_Extend(PyObject *self, PyObject *iterable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:1497,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:1498,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1501,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:1502,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1505
    functionName: PyList_Clear
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - list_clear
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PyList_Clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:1512,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1508
    functionDepth: 12
    functionLinenumber: 1508
    functionLinenumberEnd: 1516
    functionName: list_inplace_concat
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _list_extend
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_inplace_concat(PyObject *_self, PyObject *other)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1537,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:1539,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1543,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:1544,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1544,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:1545,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1551,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:1553,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:1554,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:1559,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1561,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:1568,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1530
    functionDepth: 9
    functionLinenumber: 1530
    functionLinenumberEnd: 1572
    functionName: list_pop_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_SIZE
    - PyErr_SetString
    - memmove
    - list_resize
    - list_clear
    - valid_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_pop_impl(PyListObject *self, Py_ssize_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - lo
    - hi
    argTypes:
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (lo && hi)
      pos:
        line_end: 1577
        line_start: 1577
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1588
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1588
    functionName: reverse_slice
    functionSourceFile: /src/cpython/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: 1614
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1614
    functionName: sortslice_copy
    functionSourceFile: /src/cpython/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: 1622
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1622
    functionName: sortslice_copy_incr
    functionSourceFile: /src/cpython/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: 1630
      start: 1625
    functionDepth: 0
    functionLinenumber: 1625
    functionLinenumberEnd: 1630
    functionName: sortslice_copy_decr
    functionSourceFile: /src/cpython/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/cpython/Objects/listobject.c:1637,1
    - Dst: memcpy
      Src: /src/cpython/Objects/listobject.c:1639,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: 1640
      start: 1634
    functionDepth: 0
    functionLinenumber: 1634
    functionLinenumberEnd: 1640
    functionName: sortslice_memcpy
    functionSourceFile: /src/cpython/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/cpython/Objects/listobject.c:1646,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:1648,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: 1649
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1649
    functionName: sortslice_memmove
    functionSourceFile: /src/cpython/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: 1657
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1657
    functionName: sortslice_advance
    functionSourceFile: /src/cpython/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: 1665
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1665
    functionName: ISLT
    functionSourceFile: /src/cpython/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: 1672
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1672
    functionName: IFLT
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IFLT(X, Y)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1777,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:1811,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1842,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:1848,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:1858,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1866,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 4
    argNames:
    - ms
    - ss
    - n
    - ok
    argTypes:
    - MergeState*
    - sortslice*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= ok && ok <= n && 1 <= n && n <= MAX_MINRUN)
      pos:
        line_end: 1776
        line_start: 1776
        source_file: /src/cpython/Objects/listobject.c
    - condition: (L < R)
      pos:
        line_end: 1841
        line_start: 1841
        source_file: /src/cpython/Objects/listobject.c
    - condition: (L == R)
      pos:
        line_end: 1865
        line_start: 1865
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1887
      start: 1767
    functionDepth: 1
    functionLinenumber: 1767
    functionLinenumberEnd: 1887
    functionName: binarysort
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - ISLT
    - assert
    - IFLT
    linkageType: ''
    returnType: int
    signature: int binarysort(MergeState *ms, const sortslice *ss, Py_ssize_t n, Py_ssize_t
      ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:1892,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:1894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - sortslice*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1895
    functionName: sortslice_reverse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - reverse_slice
    linkageType: ''
    returnType: void
    signature: void sortslice_reverse(sortslice *s, Py_ssize_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1935,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:1954,1
    - Dst: sortslice_reverse
      Src: /src/cpython/Objects/listobject.c:1956,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ms
    - slo
    - nremaining
    argTypes:
    - MergeState*
    - sortslice*
    - Py_ssize_t
    assertStmts:
    - condition: (nremaining)
      pos:
        line_end: 1934
        line_start: 1934
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1998
      start: 1905
    functionDepth: 2
    functionLinenumber: 1905
    functionLinenumberEnd: 1998
    functionName: count_run
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - sortslice_reverse
    - assert
    - IFLT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t count_run(MergeState *ms, sortslice *slo, Py_ssize_t nremaining)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2028,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2033,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2041,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2059,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2063,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: 2027
        line_start: 2027
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2040
        line_start: 2040
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2062
        line_start: 2062
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2072
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2072
    functionName: gallop_left
    functionSourceFile: /src/cpython/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/cpython/Objects/listobject.c:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2040
        line_start: 2040
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2043
      start: 2039
    functionDepth: 0
    functionLinenumber: 2039
    functionLinenumberEnd: 2043
    functionName: IFLT
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void IFLT(a[ofs], key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2117,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2122,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2128,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2130,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2149,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2153,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: 2116
        line_start: 2116
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2129
        line_start: 2129
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2152
        line_start: 2152
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2161
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2161
    functionName: gallop_right
    functionSourceFile: /src/cpython/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/cpython/Objects/listobject.c:2190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - ms
    - list_size
    - has_keyfunc
    - lo
    argTypes:
    - MergeState*
    - Py_ssize_t
    - int
    - sortslice*
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 2189
        line_start: 2189
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2223
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2223
    functionName: merge_init
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void merge_init(MergeState *ms, Py_ssize_t list_size, int has_keyfunc,\n
      \          sortslice *lo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2232,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:2234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 2231
        line_start: 2231
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2237
      start: 2229
    functionDepth: 2
    functionLinenumber: 2229
    functionLinenumberEnd: 2237
    functionName: merge_freemem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void merge_freemem(MergeState *ms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2247,1
    - Dst: merge_freemem
      Src: /src/cpython/Objects/listobject.c:2256,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:2258,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:2261,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:2269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ms
    - need
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 2246
        line_start: 2246
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2271
      start: 2242
    functionDepth: 3
    functionLinenumber: 2242
    functionLinenumberEnd: 2271
    functionName: merge_getmem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - merge_freemem
    - assert
    - PyMem_Malloc
    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: 2274
      start: 2272
    functionDepth: 0
    functionLinenumber: 2272
    functionLinenumberEnd: 2274
    functionName: MERGE_GETMEM
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_GETMEM(MS, NEED)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2290,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2291,1
    - Dst: MERGE_GETMEM
      Src: /src/cpython/Objects/listobject.c:2292,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2294,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2298,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2314,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:2315,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2319,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2329,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2347,1
    - Dst: gallop_right
      Src: /src/cpython/Objects/listobject.c:2350,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2355,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2356,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2357,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2368,1
    - Dst: gallop_left
      Src: /src/cpython/Objects/listobject.c:2373,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2378,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2379,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2380,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2385,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2397,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2400,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2402,1
    - Dst: sortslice_copy
      Src: /src/cpython/Objects/listobject.c:2403,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: (na > 1 && nb > 0)
      pos:
        line_end: 2346
        line_start: 2346
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na == 1 && nb > 0)
      pos:
        line_end: 2399
        line_start: 2399
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 2290
        line_start: 2290
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 1 && nb > 0)
      pos:
        line_end: 2313
        line_start: 2313
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms && ssa.keys && ssb.keys && na > 0 && nb > 0)
      pos:
        line_end: 2289
        line_start: 2289
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2405
      start: 2281
    functionDepth: 2
    functionLinenumber: 2281
    functionLinenumberEnd: 2405
    functionName: merge_lo
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - gallop_right
    - assert
    - ISLT
    - sortslice_copy
    - gallop_left
    - MERGE_GETMEM
    - sortslice_memmove
    - sortslice_advance
    - sortslice_memcpy
    - sortslice_copy_incr
    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/cpython/Objects/listobject.c:2422,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2423,1
    - Dst: MERGE_GETMEM
      Src: /src/cpython/Objects/listobject.c:2424,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2427,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2428,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2434,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2436,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2452,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:2453,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2457,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2467,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2485,1
    - Dst: gallop_right
      Src: /src/cpython/Objects/listobject.c:2488,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2494,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2495,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2496,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2501,1
    - Dst: gallop_left
      Src: /src/cpython/Objects/listobject.c:2506,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2512,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2513,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2514,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2525,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2537,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2540,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2542,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2543,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2544,1
    - Dst: sortslice_copy
      Src: /src/cpython/Objects/listobject.c:2545,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: (ms && ssa.keys && ssb.keys && na > 0 && nb > 0)
      pos:
        line_end: 2421
        line_start: 2421
        source_file: /src/cpython/Objects/listobject.c
    - condition: (nb == 1 && na > 0)
      pos:
        line_end: 2539
        line_start: 2539
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 0 && nb > 1)
      pos:
        line_end: 2451
        line_start: 2451
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 2422
        line_start: 2422
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 0 && nb > 1)
      pos:
        line_end: 2484
        line_start: 2484
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2547
      start: 2413
    functionDepth: 2
    functionLinenumber: 2413
    functionLinenumberEnd: 2547
    functionName: merge_hi
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - gallop_right
    - ISLT
    - sortslice_copy
    - gallop_left
    - MERGE_GETMEM
    - sortslice_memmove
    - sortslice_advance
    - sortslice_memcpy
    - sortslice_copy_decr
    - assert
    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/cpython/Objects/listobject.c:2559,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2560,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2561,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2562,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2568,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2569,1
    - Dst: gallop_right
      Src: /src/cpython/Objects/listobject.c:2583,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2586,1
    - Dst: gallop_left
      Src: /src/cpython/Objects/listobject.c:2594,1
    - Dst: merge_lo
      Src: /src/cpython/Objects/listobject.c:2602,1
    - Dst: merge_hi
      Src: /src/cpython/Objects/listobject.c:2604,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - ms
    - i
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 2558
        line_start: 2558
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 0 && nb > 0)
      pos:
        line_end: 2567
        line_start: 2567
        source_file: /src/cpython/Objects/listobject.c
    - condition: (i == ms->n - 2 || i == ms->n - 3)
      pos:
        line_end: 2561
        line_start: 2561
        source_file: /src/cpython/Objects/listobject.c
    - condition: (i >= 0)
      pos:
        line_end: 2560
        line_start: 2560
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms->n >= 2)
      pos:
        line_end: 2559
        line_start: 2559
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 2568
        line_start: 2568
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2605
      start: 2552
    functionDepth: 3
    functionLinenumber: 2552
    functionLinenumberEnd: 2605
    functionName: merge_at
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - gallop_right
    - gallop_left
    - merge_lo
    - sortslice_advance
    - merge_hi
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t merge_at(MergeState *ms, Py_ssize_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2616,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2617,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2618,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2634,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - s1
    - n1
    - n2
    - n
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (s1 >= 0)
      pos:
        line_end: 2615
        line_start: 2615
        source_file: /src/cpython/Objects/listobject.c
    - condition: (n1 > 0 && n2 > 0)
      pos:
        line_end: 2616
        line_start: 2616
        source_file: /src/cpython/Objects/listobject.c
    - condition: (s1 + n1 + n2 <= n)
      pos:
        line_end: 2617
        line_start: 2617
        source_file: /src/cpython/Objects/listobject.c
    - condition: (a < b && b < n)
      pos:
        line_end: 2640
        line_start: 2640
        source_file: /src/cpython/Objects/listobject.c
    - condition: (b >= a)
      pos:
        line_end: 2633
        line_start: 2633
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2646
      start: 2612
    functionDepth: 0
    functionLinenumber: 2612
    functionLinenumberEnd: 2646
    functionName: powerloop
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int powerloop(Py_ssize_t s1, Py_ssize_t n1, Py_ssize_t n2, Py_ssize_t
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2662,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2664,1
    - Dst: powerloop
      Src: /src/cpython/Objects/listobject.c:2668,1
    - Dst: merge_at
      Src: /src/cpython/Objects/listobject.c:2670,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ms
    - n2
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms)
      pos:
        line_end: 2661
        line_start: 2661
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms->n < 2 || p[ms->n - 2].power < power)
      pos:
        line_end: 2672
        line_start: 2672
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms->n > 0)
      pos:
        line_end: 2663
        line_start: 2663
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2677
      start: 2659
    functionDepth: 4
    functionLinenumber: 2659
    functionLinenumberEnd: 2677
    functionName: found_new_run
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - merge_at
    - assert
    - powerloop
    linkageType: ''
    returnType: int
    signature: int found_new_run(MergeState *ms, Py_ssize_t n2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2689,1
    - Dst: merge_at
      Src: /src/cpython/Objects/listobject.c:2694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms)
      pos:
        line_end: 2688
        line_start: 2688
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2698
      start: 2684
    functionDepth: 4
    functionLinenumber: 2684
    functionLinenumberEnd: 2698
    functionName: merge_force_collapse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - merge_at
    - assert
    linkageType: ''
    returnType: int
    signature: int merge_force_collapse(MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms->mr_current >= 0)
      pos:
        line_end: 2704
        line_start: 2704
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2709
      start: 2702
    functionDepth: 0
    functionLinenumber: 2702
    functionLinenumberEnd: 2709
    functionName: minrun_next
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void minrun_next(MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2721
    functionDepth: 4
    functionLinenumber: 2721
    functionLinenumberEnd: 2726
    functionName: safe_object_compare
    functionSourceFile: /src/cpython/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: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:2738,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2739,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2741,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:2745,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2746,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/listobject.c:2751,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/listobject.c:2755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:2757,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: 2740
        line_start: 2740
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2765
      start: 2732
    functionDepth: 4
    functionLinenumber: 2732
    functionLinenumberEnd: 2765
    functionName: unsafe_object_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_RichCompareBool
    - PyBool_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int unsafe_object_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2775,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2775,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2776,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2776,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2777,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:2777,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:2777,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2778,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:2778,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/listobject.c:2780,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2780,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2780,1
    - Dst: memcmp
      Src: /src/cpython/Objects/listobject.c:2781,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/listobject.c:2781,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/listobject.c:2781,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2785,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2785,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2787,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2786
        line_start: 2786
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(v, &PyUnicode_Type))
      pos:
        line_end: 2774
        line_start: 2774
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyUnicode_Type))
      pos:
        line_end: 2775
        line_start: 2775
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyUnicode_KIND(v) == PyUnicode_KIND(w))
      pos:
        line_end: 2776
        line_start: 2776
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyUnicode_KIND(v) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2777
        line_start: 2777
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2789
      start: 2768
    functionDepth: 4
    functionLinenumber: 2768
    functionLinenumberEnd: 2789
    functionName: unsafe_latin_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_MIN
    - Py_IS_TYPE
    - PyObject_RichCompareBool
    - memcmp
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int unsafe_latin_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2800,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2800,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2801,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2801,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2802,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/listobject.c:2802,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2803,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/listobject.c:2803,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/listobject.c:2808,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/listobject.c:2809,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2812,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (Py_IS_TYPE(v, &PyLong_Type))
      pos:
        line_end: 2799
        line_start: 2799
        source_file: /src/cpython/Objects/listobject.c
    - condition: (_PyLong_IsCompact((PyLongObject *)v))
      pos:
        line_end: 2801
        line_start: 2801
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyLong_Type))
      pos:
        line_end: 2800
        line_start: 2800
        source_file: /src/cpython/Objects/listobject.c
    - condition: (_PyLong_IsCompact((PyLongObject *)w))
      pos:
        line_end: 2802
        line_start: 2802
        source_file: /src/cpython/Objects/listobject.c
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2811
        line_start: 2811
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2814
      start: 2792
    functionDepth: 4
    functionLinenumber: 2792
    functionLinenumberEnd: 2814
    functionName: unsafe_long_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsCompact
    - Py_IS_TYPE
    - PyObject_RichCompareBool
    - assert
    linkageType: ''
    returnType: int
    signature: int unsafe_long_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2823,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2823,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2824,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2824,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/listobject.c:2826,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/listobject.c:2826,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2827,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (Py_IS_TYPE(v, &PyFloat_Type))
      pos:
        line_end: 2822
        line_start: 2822
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyFloat_Type))
      pos:
        line_end: 2823
        line_start: 2823
        source_file: /src/cpython/Objects/listobject.c
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2826
        line_start: 2826
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2829
      start: 2817
    functionDepth: 4
    functionLinenumber: 2817
    functionLinenumberEnd: 2829
    functionName: unsafe_float_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyObject_RichCompareBool
    - PyFloat_AS_DOUBLE
    - assert
    linkageType: ''
    returnType: int
    signature: int unsafe_float_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2845,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2845,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2846,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2846,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2847,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2847,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2848,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2848,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2853,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2854,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2857,1
    - Dst: MergeState*::tuple_elem_compare
      Src: /src/cpython/Objects/listobject.c:2868,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (Py_IS_TYPE(v, &PyTuple_Type))
      pos:
        line_end: 2844
        line_start: 2844
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyTuple_Type))
      pos:
        line_end: 2845
        line_start: 2845
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_SIZE(v) > 0)
      pos:
        line_end: 2846
        line_start: 2846
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_SIZE(w) > 0)
      pos:
        line_end: 2847
        line_start: 2847
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2871
      start: 2837
    functionDepth: 4
    functionLinenumber: 2837
    functionLinenumberEnd: 2871
    functionName: unsafe_tuple_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_IS_TYPE
    - PyObject_RichCompareBool
    - MergeState*::tuple_elem_compare
    - assert
    linkageType: ''
    returnType: int
    signature: int unsafe_tuple_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2913,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2914,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:2914,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2923,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:2926,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:2927,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:2940,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:2942,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/listobject.c:2948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:2951,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:2953,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2969,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2970,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:2973,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:2973,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:2974,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2984,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2984,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:2994,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2997,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/listobject.c:3009,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:3015,1
    - Dst: merge_init
      Src: /src/cpython/Objects/listobject.c:3060,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3070,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3071,1
    - Dst: count_run
      Src: /src/cpython/Objects/listobject.c:3081,1
    - Dst: minrun_next
      Src: /src/cpython/Objects/listobject.c:3085,1
    - Dst: binarysort
      Src: /src/cpython/Objects/listobject.c:3089,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3094,1
    - Dst: found_new_run
      Src: /src/cpython/Objects/listobject.c:3096,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3099,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:3104,1
    - Dst: merge_force_collapse
      Src: /src/cpython/Objects/listobject.c:3108,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3110,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3111,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3122,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:3124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:3131,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3136,1
    - Dst: merge_freemem
      Src: /src/cpython/Objects/listobject.c:3138,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3142,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3143,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:3144,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:3145,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:3150,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/listobject.c:3153,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:3154,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:3158,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/listobject.c:3160,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 161
    argCount: 3
    argNames:
    - self
    - keyfunc
    - reverse
    argTypes:
    - PyListObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (ms.n == 1)
      pos:
        line_end: 3109
        line_start: 3109
        source_file: /src/cpython/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: 3112
        line_start: 3110
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyList_Check(self))
      pos:
        line_end: 2913
        line_start: 2913
        source_file: /src/cpython/Objects/listobject.c
    - condition: "(ms.n == 0 || ms.pending[ms.n -1].base.keys +\n                            ms.pending[ms.n-1].len
        == lo.keys)"
      pos:
        line_end: 3094
        line_start: 3093
        source_file: /src/cpython/Objects/listobject.c
    - condition: (self != NULL)
      pos:
        line_end: 2912
        line_start: 2912
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms.pending[0].len == saved_ob_size)
      pos:
        line_end: 3113
        line_start: 3113
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms.n < MAX_MERGE_PENDING)
      pos:
        line_end: 3098
        line_start: 3098
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3161
      start: 2898
    functionDepth: 8
    functionLinenumber: 2898
    functionLinenumberEnd: 3161
    functionName: list_sort_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - merge_init
    - Py_SET_SIZE
    - Py_XDECREF
    - _PyLong_IsCompact
    - PyErr_SetString
    - PyList_Check
    - PyObject_CallOneArg
    - reverse_slice
    - PyMem_Free
    - PyUnicode_KIND
    - binarysort
    - Py_IS_TYPE
    - count_run
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - Py_DECREF
    - merge_freemem
    - ensure_shared_on_resize
    - Py_SIZE
    - minrun_next
    - _PyObject_GC_IS_SHARED
    - sortslice_advance
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_TYPE
    - PyErr_NoMemory
    - PyMem_Malloc
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - found_new_run
    - merge_force_collapse
    - free_list_items
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3168,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:3169,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3172,1
    - Dst: list_sort_impl
      Src: /src/cpython/Objects/listobject.c:3173,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3179
      start: 3165
    functionDepth: 9
    functionLinenumber: 3165
    functionLinenumberEnd: 3179
    functionName: PyList_Sort
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 4
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyErr_BadInternalCall
    - PyList_Check
    - list_sort_impl
    linkageType: ''
    returnType: int
    signature: int PyList_Sort(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3192,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3193,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3188
    functionDepth: 1
    functionLinenumber: 3188
    functionLinenumberEnd: 3195
    functionName: list_reverse_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - reverse_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_reverse_impl(PyListObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3202,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:3203,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3206,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3207,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3208,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3208,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3212
      start: 3197
    functionDepth: 1
    functionLinenumber: 3197
    functionLinenumberEnd: 3212
    functionName: PyList_Reverse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 5
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    - reverse_slice
    linkageType: ''
    returnType: int
    signature: int PyList_Reverse(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3217,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:3218,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3223,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/listobject.c:3224,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3224,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3214
    functionDepth: 1
    functionLinenumber: 3214
    functionLinenumberEnd: 3227
    functionName: PyList_AsTuple
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 8
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyTuple_FromArray
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_AsTuple(PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3232,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/listobject.c:3235,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3237,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3239,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3241,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Objects/listobject.c:3242,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:3243,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3231
        line_start: 3231
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3246
      start: 3229
    functionDepth: 8
    functionLinenumber: 3229
    functionLinenumberEnd: 3246
    functionName: _PyList_AsTupleAndClear
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SET_SIZE
    - PyTuple_New
    - Py_END_CRITICAL_SECTION
    - _PyTuple_FromArraySteal
    - Py_SIZE
    - free_list_items
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_AsTupleAndClear(PyListObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:3252,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:3255,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/listobject.c:3262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - _PyStackRef*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3248
    functionDepth: 4
    functionLinenumber: 3248
    functionLinenumberEnd: 3266
    functionName: _PyList_FromStackRefStealOnSuccess
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyStackRef_AsPyObjectSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_FromStackRefStealOnSuccess(const _PyStackRef *src, Py_ssize_t n)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3287,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3292,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:3297,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3303,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:3305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:3309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - self
    - value
    - start
    - stop
    argTypes:
    - PyListObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3281
    functionDepth: 4
    functionLinenumber: 3281
    functionLinenumberEnd: 3311
    functionName: list_index_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_get_item_ref
    - Py_DECREF
    - Py_SIZE
    - PyLong_FromSsize_t
    - PyErr_SetString
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlist_index_impl(PyListObject *self, PyObject *value, Py_ssize_t
      start,\n                Py_ssize_t stop)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:3328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3335,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3339,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:3345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3322
    functionDepth: 4
    functionLinenumber: 3322
    functionLinenumberEnd: 3346
    functionName: list_count_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyObject_RichCompareBool
    - list_get_item_ref
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_count_impl(PyListObject *self, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3366,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3368,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3370,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3372,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:3379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3360
    functionDepth: 10
    functionLinenumber: 3360
    functionLinenumberEnd: 3381
    functionName: list_remove_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - Py_SIZE
    - PyErr_SetString
    - PyObject_RichCompareBool
    - list_ass_slice_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_remove_impl(PyListObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3389,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/listobject.c:3390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3383
    functionDepth: 1
    functionLinenumber: 3383
    functionLinenumberEnd: 3392
    functionName: list_traverse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int list_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3400,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3400,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3406,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3406,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3415,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3415,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3422,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3423,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3426,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3433,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3433,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/listobject.c:3435,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3435,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3435,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3449,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3450,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/listobject.c:3451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3453,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3455
      start: 3394
    functionDepth: 4
    functionLinenumber: 3394
    functionLinenumberEnd: 3455
    functionName: list_richcompare_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - Py_INCREF
    - Py_DECREF
    - Py_SIZE
    - PyObject_RichCompare
    - PyList_Check
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_richcompare_impl(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:3461,1
    - Dst: list_richcompare_impl
      Src: /src/cpython/Objects/listobject.c:3462,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:3463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3457
    functionDepth: 5
    functionLinenumber: 3457
    functionLinenumberEnd: 3465
    functionName: list_richcompare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - list_richcompare_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3484,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3484,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3485,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3485,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3486,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3491,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:3492,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3493,1
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:3496,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts:
    - condition: (0 <= Py_SIZE(self))
      pos:
        line_end: 3483
        line_start: 3483
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_SIZE(self) <= self->allocated || self->allocated == -1)
      pos:
        line_end: 3484
        line_start: 3484
        source_file: /src/cpython/Objects/listobject.c
    - condition: "(self->ob_item != NULL ||\n           self->allocated == 0 || self->allocated
        == -1)"
      pos:
        line_end: 3486
        line_start: 3485
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3501
      start: 3479
    functionDepth: 12
    functionLinenumber: 3479
    functionLinenumberEnd: 3501
    functionName: list___init___impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _list_extend
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - list_clear
    - assert
    linkageType: ''
    returnType: int
    signature: int list___init___impl(PyListObject *self, PyObject *iterable)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/listobject.c:3507,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/listobject.c:3510,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/listobject.c:3511,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/listobject.c:3515,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/listobject.c:3515,1
    - Dst: list___init___impl
      Src: /src/cpython/Objects/listobject.c:3520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3503
    functionDepth: 13
    functionLinenumber: 3503
    functionLinenumberEnd: 3526
    functionName: list_vectorcall
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyType_CAST
    - list___init___impl
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlist_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/listobject.c:3539,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3539,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:3540,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/listobject.c:3542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3535
    functionDepth: 1
    functionLinenumber: 3535
    functionLinenumberEnd: 3543
    functionName: list___sizeof___impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_TYPE
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___sizeof___impl(PyListObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:3584,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:3595,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - a
    - start
    - step
    - len
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3599
      start: 3581
    functionDepth: 5
    functionLinenumber: 3581
    functionLinenumberEnd: 3599
    functionName: list_slice_step_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_SET_SIZE
    - list_new_prealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_slice_step_lock_held(PyListObject *a, Py_ssize_t start, Py_ssize_t step,
      Py_ssize_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3605,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/listobject.c:3606,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3606,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:3608,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3611,1
    - Dst: list_slice_step_lock_held
      Src: /src/cpython/Objects/listobject.c:3614,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - aa
    - start
    - stop
    - step
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3618
      start: 3601
    functionDepth: 6
    functionLinenumber: 3601
    functionLinenumberEnd: 3618
    functionName: list_slice_wrap
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyList_New
    - PySlice_AdjustIndices
    - Py_END_CRITICAL_SECTION
    - Py_SIZE
    - list_slice_step_lock_held
    - list_slice_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_slice_wrap(PyListObject *aa, Py_ssize_t start, Py_ssize_t stop, Py_ssize_t
      step)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3623,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3623,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3624,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/listobject.c:3624,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/listobject.c:3626,1
    - Dst: list_slice_wrap
      Src: /src/cpython/Objects/listobject.c:3629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(self))
      pos:
        line_end: 3622
        line_start: 3622
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PySlice_Check(item))
      pos:
        line_end: 3623
        line_start: 3623
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3630
      start: 3620
    functionDepth: 7
    functionLinenumber: 3620
    functionLinenumberEnd: 3630
    functionName: list_slice_subscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_slice_wrap
    - PySlice_Unpack
    - PyList_Check
    - PySlice_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_slice_subscript(PyObject* self, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_slice_subscript
      Src: /src/cpython/Objects/listobject.c:3635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3636
      start: 3632
    functionDepth: 8
    functionLinenumber: 3632
    functionLinenumberEnd: 3636
    functionName: _PyList_SliceSubscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_slice_subscript
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_SliceSubscript(PyObject* _self, PyObject* item)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/listobject.c:3642,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/listobject.c:3644,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:3645,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3648,1
    - Dst: list_item
      Src: /src/cpython/Objects/listobject.c:3649,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/listobject.c:3651,1
    - Dst: list_slice_subscript
      Src: /src/cpython/Objects/listobject.c:3652,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:3655,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - _self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3660
      start: 3638
    functionDepth: 8
    functionLinenumber: 3638
    functionLinenumberEnd: 3660
    functionName: list_subscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyIndex_Check
    - PyErr_Occurred
    - PyList_GET_SIZE
    - list_item
    - PyNumber_AsSsize_t
    - PyErr_Format
    - PySlice_Check
    - list_slice_subscript
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_subscript(PyObject* _self, PyObject* item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/listobject.c:3667,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 4
    argNames:
    - lst
    - start
    - stop
    - step
    argTypes:
    - PyListObject*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3662
    functionDepth: 1
    functionLinenumber: 3662
    functionLinenumberEnd: 3677
    functionName: adjust_slice_indexes
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PySlice_AdjustIndices
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t adjust_slice_indexes(PyListObject *lst,\n                     Py_ssize_t
      *start, Py_ssize_t *stop,\n                     Py_ssize_t step)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/listobject.c:3682,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/listobject.c:3685,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/listobject.c:3686,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:3687,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3690,1
    - Dst: list_ass_item_lock_held
      Src: /src/cpython/Objects/listobject.c:3691,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/listobject.c:3693,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/listobject.c:3696,1
    - Dst: adjust_slice_indexes
      Src: /src/cpython/Objects/listobject.c:3707,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3711,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:3723,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:3725,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:3740,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3742,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3743,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:3746,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3751,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:3752,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3754,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3758,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3758,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:3759,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3762,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:3764,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3777,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3778,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/listobject.c:3781,1
    - Dst: adjust_slice_indexes
      Src: /src/cpython/Objects/listobject.c:3788,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3793,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3797,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:3798,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3809,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:3814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3816,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:3817,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/listobject.c:3822,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:3826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3831,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:3834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3835,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:3841,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3843,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 91
    argCount: 3
    argNames:
    - _self
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3846
      start: 3679
    functionDepth: 10
    functionLinenumber: 3679
    functionLinenumberEnd: 3846
    functionName: list_ass_subscript_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - list_slice_lock_held
    - PyMem_Free
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PySlice_Unpack
    - PyErr_Format
    - list_ass_item_lock_held
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_DECREF
    - PySequence_Fast_ITEMS
    - Py_SIZE
    - list_resize
    - adjust_slice_indexes
    - Py_NewRef
    - list_ass_slice_lock_held
    - Py_TYPE
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyList_GET_ITEM
    - PySequence_Fast_GET_SIZE
    - _PyIndex_Check
    - memmove
    - PyNumber_AsSsize_t
    - PySequence_Fast
    - PySlice_Check
    linkageType: ''
    returnType: int
    signature: int list_ass_subscript_lock_held(PyObject *_self, PyObject *item, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/listobject.c:3853,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:3853,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:3854,1
    - Dst: list_ass_subscript_lock_held
      Src: /src/cpython/Objects/listobject.c:3855,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:3856,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3860,1
    - Dst: list_ass_subscript_lock_held
      Src: /src/cpython/Objects/listobject.c:3861,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3848
    functionDepth: 11
    functionLinenumber: 3848
    functionLinenumberEnd: 3864
    functionName: list_ass_subscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - list_ass_subscript_lock_held
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - PySlice_Check
    linkageType: ''
    returnType: int
    signature: int list_ass_subscript(PyObject *self, PyObject *item, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3976,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:3977,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/listobject.c:3980,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/listobject.c:3982,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:3988,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/listobject.c:3989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3973
    functionDepth: 1
    functionLinenumber: 3973
    functionLinenumberEnd: 3991
    functionName: list_iter
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - PyList_Check
    - Py_NewRef
    - _Py_FREELIST_POP
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/listobject.c:3997,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:3998,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3999,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:3999,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/listobject.c:4000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(self, &PyListIter_Type))
      pos:
        line_end: 3998
        line_start: 3998
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4001
      start: 3993
    functionDepth: 1
    functionLinenumber: 3993
    functionLinenumberEnd: 4001
    functionName: listiter_dealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyObject_GC_UNTRACK
    - Py_IS_TYPE
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void listiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/listobject.c:4006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4008
      start: 4003
    functionDepth: 1
    functionLinenumber: 4003
    functionLinenumberEnd: 4008
    functionName: listiter_traverse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int listiter_traverse(PyObject *it, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4014,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:4019,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:4026,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4010
    functionDepth: 1
    functionLinenumber: 4010
    functionLinenumberEnd: 4032
    functionName: listiter_next
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - list_get_item_ref
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4037,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4039,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4041,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:4043,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/listobject.c:4045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 4036
        line_start: 4036
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4046
      start: 4034
    functionDepth: 1
    functionLinenumber: 4034
    functionLinenumberEnd: 4046
    functionName: listiter_len
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_FromSsize_t
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_len(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listiter_reduce_general
      Src: /src/cpython/Objects/listobject.c:4051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4048
    functionDepth: 1
    functionLinenumber: 4048
    functionLinenumberEnd: 4052
    functionName: listiter_reduce
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - listiter_reduce_general
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_reduce(PyObject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/listobject.c:4058,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:4059,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4064,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4065,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4069
      start: 4054
    functionDepth: 1
    functionLinenumber: 4054
    functionLinenumberEnd: 4069
    functionName: listiter_setstate
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyList_GET_SIZE
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_setstate(PyObject *self, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/listobject.c:4138,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4141,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:4141,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4142,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:4143,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/listobject.c:4144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts:
    - condition: (PyList_Check(self))
      pos:
        line_end: 4140
        line_start: 4140
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4146
      start: 4132
    functionDepth: 1
    functionLinenumber: 4132
    functionLinenumberEnd: 4146
    functionName: list___reversed___impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - PyList_Check
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___reversed___impl(PyListObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/listobject.c:4152,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:4153,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/listobject.c:4154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4155
      start: 4148
    functionDepth: 0
    functionLinenumber: 4148
    functionLinenumberEnd: 4155
    functionName: listreviter_dealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void listreviter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/listobject.c:4160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4157
    functionDepth: 1
    functionLinenumber: 4157
    functionLinenumberEnd: 4162
    functionName: listreviter_traverse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int listreviter_traverse(PyObject *it, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4168,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4169,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4175,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:4175,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:4176,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4178,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:4184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 4167
        line_start: 4167
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyList_Check(seq))
      pos:
        line_end: 4174
        line_start: 4174
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4187
      start: 4164
    functionDepth: 1
    functionLinenumber: 4164
    functionLinenumberEnd: 4187
    functionName: listreviter_next
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - list_get_item_ref
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyList_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_next(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4193,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4195,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:4197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4198
      start: 4189
    functionDepth: 1
    functionLinenumber: 4189
    functionLinenumberEnd: 4198
    functionName: listreviter_len
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_len(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listiter_reduce_general
      Src: /src/cpython/Objects/listobject.c:4203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4204
      start: 4200
    functionDepth: 1
    functionLinenumber: 4200
    functionLinenumberEnd: 4204
    functionName: listreviter_reduce
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - listiter_reduce_general
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_reduce(PyObject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/listobject.c:4210,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:4211,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4216,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4217,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4221
      start: 4206
    functionDepth: 1
    functionLinenumber: 4206
    functionLinenumberEnd: 4221
    functionName: listreviter_setstate
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyList_GET_SIZE
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_setstate(PyObject *self, PyObject *state)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/listobject.c:4236,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/listobject.c:4236,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4238,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/listobject.c:4240,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/listobject.c:4243,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/listobject.c:4243,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4245,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/listobject.c:4247,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:4251,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/listobject.c:4254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - _it
    - forward
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4255
      start: 4225
    functionDepth: 4
    functionLinenumber: 4225
    functionLinenumberEnd: 4255
    functionName: listiter_reduce_general
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - _PyEval_GetBuiltin
    - PyList_New
    - Py_BuildValue
    - _Py_ID
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_reduce_general(void *_it, int forward)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/iterobject.c:22,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/iterobject.c:23,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/iterobject.c:26,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/iterobject.c:30,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/iterobject.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: PySeqIter_New
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 1
    functionsReached:
    - PySequence_Check
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - Py_NewRef
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySeqIter_New(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/iterobject.c:39,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/iterobject.c:40,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/iterobject.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: iter_dealloc
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void iter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/iterobject.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: iter_traverse
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int iter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/iterobject.c:59,1
    - Dst: PySeqIter_Check
      Src: /src/cpython/Objects/iterobject.c:59,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/iterobject.c:65,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/iterobject.c:70,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/iterobject.c:75,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/iterobject.c:76,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/iterobject.c:78,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/iterobject.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PySeqIter_Check(iterator))
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/cpython/Objects/iterobject.c
    constantsTouched: []
    func_position:
      end: 83
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 83
    functionName: iter_iternext
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_DECREF
    - PySeqIter_Check
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_iternext(PyObject *iterator)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HasLen
      Src: /src/cpython/Objects/iterobject.c:92,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/iterobject.c:93,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/iterobject.c:102,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/iterobject.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 105
    functionName: iter_len
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Size
    - _PyObject_HasLen
    - PyLong_FromSsize_t
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_len(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/iterobject.c:113,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/iterobject.c:113,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/iterobject.c:120,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/iterobject.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: iter_reduce
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _Py_ID
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/iterobject.c:131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/iterobject.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: iter_setstate
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_setstate(PyObject *op, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/iterobject.c:196,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/iterobject.c:199,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/iterobject.c:200,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/iterobject.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callable
    - sentinel
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: PyCallIter_New
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCallIter_New(PyObject *callable, PyObject *sentinel)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/iterobject.c:208,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/iterobject.c:209,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/iterobject.c:210,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/iterobject.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: calliter_dealloc
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void calliter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/iterobject.c:218,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/iterobject.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: calliter_traverse
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int calliter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/iterobject.c:233,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/iterobject.c:237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/iterobject.c:243,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/iterobject.c:244,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/iterobject.c:247,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/iterobject.c:248,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/iterobject.c:249,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/iterobject.c:250,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/iterobject.c:252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 254
    functionName: calliter_iternext
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_XDECREF
    - PyErr_ExceptionMatches
    - PyObject_RichCompareBool
    - PyErr_Clear
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calliter_iternext(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/iterobject.c:260,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/iterobject.c:260,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/iterobject.c:267,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/iterobject.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: calliter_reduce
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _Py_ID
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calliter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - 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: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: anextawaitableobject_CAST
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: anextawaitableobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: anextawaitableobject_CAST
      Src: /src/cpython/Objects/iterobject.c:323,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/iterobject.c:324,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/iterobject.c:325,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/iterobject.c:326,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/iterobject.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 328
    functionName: anextawaitable_dealloc
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - anextawaitableobject_CAST
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void anextawaitable_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: anextawaitableobject_CAST
      Src: /src/cpython/Objects/iterobject.c:333,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/iterobject.c:334,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/iterobject.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: anextawaitable_traverse
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - anextawaitableobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int anextawaitable_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/iterobject.c:342,1
    - Dst: _PyCoro_GetAwaitableIter
      Src: /src/cpython/Objects/iterobject.c:343,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/iterobject.c:347,1
    - Dst: assert
      Src: /src/cpython/Objects/iterobject.c:351,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/iterobject.c:351,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/iterobject.c:352,1
    - Dst: getter
      Src: /src/cpython/Objects/iterobject.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/iterobject.c:355,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/iterobject.c:358,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/iterobject.c:359,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/iterobject.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/iterobject.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - anextawaitableobject*
    assertStmts:
    - condition: (obj->wrapped != NULL)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Objects/iterobject.c
    - condition: (PyCoro_CheckExact(awaitable))
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/cpython/Objects/iterobject.c
    constantsTouched: []
    func_position:
      end: 368
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 368
    functionName: anextawaitable_getiter
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Format
    - PyCoro_CheckExact
    - Py_SETREF
    - getter
    - _PyCoro_GetAwaitableIter
    - PyIter_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anextawaitable_getiter(anextawaitableobject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: anextawaitableobject_CAST
      Src: /src/cpython/Objects/iterobject.c:393,1
    - Dst: anextawaitable_getiter
      Src: /src/cpython/Objects/iterobject.c:394,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/iterobject.c:398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/iterobject.c:399,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/iterobject.c:403,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/iterobject.c:404,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/iterobject.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 408
    functionName: anextawaitable_iternext
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyGen_SetStopIterationValue
    - anextawaitableobject_CAST
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_TYPE
    - anextawaitable_getiter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anextawaitable_iternext(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: anextawaitable_getiter
      Src: /src/cpython/Objects/iterobject.c:414,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/iterobject.c:421,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/iterobject.c:422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/iterobject.c:423,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/iterobject.c:427,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/iterobject.c:433,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/iterobject.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - obj
    - meth
    - arg
    argTypes:
    - anextawaitableobject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 411
    functionDepth: 5
    functionLinenumber: 411
    functionLinenumberEnd: 437
    functionName: anextawaitable_proxy
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyGen_SetStopIterationValue
    - PyObject_CallMethod
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - anextawaitable_getiter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anextawaitable_proxy(anextawaitableobject *obj, char *meth, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: anextawaitableobject_CAST
      Src: /src/cpython/Objects/iterobject.c:443,1
    - Dst: anextawaitable_proxy
      Src: /src/cpython/Objects/iterobject.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 6
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: anextawaitable_send
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - anextawaitableobject_CAST
    - anextawaitable_proxy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anextawaitable_send(PyObject *op, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: anextawaitableobject_CAST
      Src: /src/cpython/Objects/iterobject.c:451,1
    - Dst: anextawaitable_proxy
      Src: /src/cpython/Objects/iterobject.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 6
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: anextawaitable_throw
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - anextawaitableobject_CAST
    - anextawaitable_proxy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anextawaitable_throw(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: anextawaitableobject_CAST
      Src: /src/cpython/Objects/iterobject.c:459,1
    - Dst: anextawaitable_proxy
      Src: /src/cpython/Objects/iterobject.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: anextawaitable_close
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - anextawaitableobject_CAST
    - anextawaitable_proxy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anextawaitable_close(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/iterobject.c:533,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/iterobject.c:538,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/iterobject.c:539,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/iterobject.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - awaitable
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 542
    functionName: PyAnextAwaitable_New
    functionSourceFile: /src/cpython/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyAnextAwaitable_New(PyObject *awaitable, PyObject *default_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/descrobject.c:26,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:27,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:28,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:29,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/descrobject.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: descr_dealloc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void descr_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/descrobject.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: descr_name
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_name(PyDescrObject *descr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/descrobject.c:45,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/descrobject.c:49,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/descrobject.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - descr
    - kind
    argTypes:
    - PyDescrObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: descr_repr
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_repr(PyDescrObject *descr, const char *kind)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/cpython/Objects/descrobject.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: method_repr
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_repr(PyObject *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/cpython/Objects/descrobject.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: member_repr
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      member_repr(PyObject *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/cpython/Objects/descrobject.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: getset_repr
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getset_repr(PyObject *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/cpython/Objects/descrobject.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: wrapperdescr_repr
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_repr(PyObject *descr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/descrobject.c:82,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:83,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:86,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - descr
    - obj
    argTypes:
    - PyDescrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: descr_check
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_TypeCheck
    - descr_name
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int descr_check(PyDescrObject *descr, PyObject *obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:101,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:104,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:107,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:108,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/descrobject.c:112,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:113,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:116,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:118,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/descrobject.c:121,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:121,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:122,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:125,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:126,1
    - Dst: PyCMethod_New
      Src: /src/cpython/Objects/descrobject.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 135
    functionName: classmethod_get
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyType_IsSubtype
    - descr_name
    - PyDescr_TYPE
    - PyErr_Format
    - PyCMethod_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      classmethod_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:142,1
    - Dst: descr_check
      Src: /src/cpython/Objects/descrobject.c:144,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/descrobject.c:148,1
    - Dst: PyCMethod_New
      Src: /src/cpython/Objects/descrobject.c:149,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:151,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:153,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:154,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/descrobject.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 160
    functionName: method_get
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyCFunction_NewEx
    - descr_check
    - descr_name
    - Py_NewRef
    - PyErr_Format
    - PyCMethod_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:167,1
    - Dst: descr_check
      Src: /src/cpython/Objects/descrobject.c:169,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/descrobject.c:174,1
    - Dst: PyMember_GetOne
      Src: /src/cpython/Objects/descrobject.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 181
    functionName: member_get
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySys_Audit
    - PyMember_GetOne
    - descr_check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      member_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:188,1
    - Dst: descr_check
      Src: /src/cpython/Objects/descrobject.c:190,1
    - Dst: descr_get_trampoline_call
      Src: /src/cpython/Objects/descrobject.c:194,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:196,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:198,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: getset_get
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_check
    - descr_name
    - Py_NewRef
    - PyDescr_TYPE
    - PyErr_Format
    - descr_get_trampoline_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getset_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:208,1
    - Dst: descr_check
      Src: /src/cpython/Objects/descrobject.c:210,1
    - Dst: PyWrapper_New
      Src: /src/cpython/Objects/descrobject.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: wrapperdescr_get
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - descr_check
    - PyWrapper_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/descrobject.c:219,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/descrobject.c:220,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:221,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:224,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - descr
    - obj
    - value
    argTypes:
    - PyDescrObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: descr_setcheck
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - descr_name
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_setcheck
      Src: /src/cpython/Objects/descrobject.c:236,1
    - Dst: PyMember_SetOne
      Src: /src/cpython/Objects/descrobject.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: member_set
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_setcheck
    - PyMember_SetOne
    linkageType: ''
    returnType: int
    signature: int member_set(PyObject *self, PyObject *obj, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: descr_setcheck
      Src: /src/cpython/Objects/descrobject.c:246,1
    - Dst: descr_set_trampoline_call
      Src: /src/cpython/Objects/descrobject.c:250,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:254,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:256,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: getset_set
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_setcheck
    - descr_name
    - PyDescr_TYPE
    - descr_set_trampoline_call
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int getset_set(PyObject *self, PyObject *obj, PyObject *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/descrobject.c:269,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/descrobject.c:269,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Objects/descrobject.c:271,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:275,1
    - Dst: descr_check
      Src: /src/cpython/Objects/descrobject.c:280,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/descrobject.c:283,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Objects/descrobject.c:284,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - func
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/cpython/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 293
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 293
    functionName: method_check_args
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - descr_check
    - _PyObject_FunctionStr
    - PyErr_Format
    - 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_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/descrobject.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tstate
    - func
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: method_enter_call
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _Py_EnterRecursiveCallTstate
    linkageType: ''
    returnType: funcptr
    signature: funcptr method_enter_call(PyThreadState *tstate, PyObject *func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/descrobject.c:311,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/descrobject.c:312,1
    - Dst: method_check_args
      Src: /src/cpython/Objects/descrobject.c:313,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/descrobject.c:316,1
    - Dst: method_enter_call
      Src: /src/cpython/Objects/descrobject.c:320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:322,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Objects/descrobject.c:325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:327,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/descrobject.c:328,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: 330
      start: 307
    functionDepth: 6
    functionLinenumber: 307
    functionLinenumberEnd: 330
    functionName: method_vectorcall_VARARGS
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyCFunction_TrampolineCall
    - Py_DECREF
    - method_enter_call
    - _PyTuple_FromArray
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - PyVectorcall_NARGS
    - method_check_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_VARARGS(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/descrobject.c:336,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/descrobject.c:337,1
    - Dst: method_check_args
      Src: /src/cpython/Objects/descrobject.c:338,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/descrobject.c:341,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/descrobject.c:348,1
    - Dst: _PyStack_AsDict
      Src: /src/cpython/Objects/descrobject.c:349,1
    - Dst: method_enter_call
      Src: /src/cpython/Objects/descrobject.c:355,1
    - Dst: _PyCFunctionWithKeywords_TrampolineCall
      Src: /src/cpython/Objects/descrobject.c:359,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/descrobject.c:361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:363,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:364,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: 366
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 366
    functionName: method_vectorcall_VARARGS_KEYWORDS
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyCFunctionWithKeywords_TrampolineCall
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - method_enter_call
    - Py_DECREF
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - _PyStack_AsDict
    - PyVectorcall_NARGS
    - method_check_args
    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: _PyThreadState_GET
      Src: /src/cpython/Objects/descrobject.c:372,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/descrobject.c:373,1
    - Dst: method_check_args
      Src: /src/cpython/Objects/descrobject.c:374,1
    - Dst: method_enter_call
      Src: /src/cpython/Objects/descrobject.c:377,1
    - Dst: meth
      Src: /src/cpython/Objects/descrobject.c:381,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/descrobject.c:384,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: 386
      start: 368
    functionDepth: 6
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: method_vectorcall_FASTCALL_KEYWORDS_METHOD
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_enter_call
    - _PyThreadState_GET
    - meth
    - _Py_LeaveRecursiveCall
    - PyVectorcall_NARGS
    - method_check_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_FASTCALL_KEYWORDS_METHOD(\n    PyObject
      *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/descrobject.c:392,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/descrobject.c:393,1
    - Dst: method_check_args
      Src: /src/cpython/Objects/descrobject.c:394,1
    - Dst: method_enter_call
      Src: /src/cpython/Objects/descrobject.c:398,1
    - Dst: meth
      Src: /src/cpython/Objects/descrobject.c:402,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/descrobject.c:403,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: 405
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 405
    functionName: method_vectorcall_FASTCALL
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_enter_call
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - meth
    - PyVectorcall_NARGS
    - method_check_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_FASTCALL(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/descrobject.c:411,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/descrobject.c:412,1
    - Dst: method_check_args
      Src: /src/cpython/Objects/descrobject.c:413,1
    - Dst: method_enter_call
      Src: /src/cpython/Objects/descrobject.c:417,1
    - Dst: meth
      Src: /src/cpython/Objects/descrobject.c:421,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/descrobject.c:422,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: 424
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 424
    functionName: method_vectorcall_FASTCALL_KEYWORDS
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_enter_call
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - meth
    - PyVectorcall_NARGS
    - method_check_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_FASTCALL_KEYWORDS(\n    PyObject *func,
      PyObject *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/descrobject.c:430,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/descrobject.c:431,1
    - Dst: method_check_args
      Src: /src/cpython/Objects/descrobject.c:432,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Objects/descrobject.c:436,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:440,1
    - Dst: method_enter_call
      Src: /src/cpython/Objects/descrobject.c:444,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Objects/descrobject.c:448,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/descrobject.c:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 426
    functionDepth: 6
    functionLinenumber: 426
    functionLinenumberEnd: 451
    functionName: method_vectorcall_NOARGS
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyCFunction_TrampolineCall
    - Py_DECREF
    - method_enter_call
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - _PyObject_FunctionStr
    - PyErr_Format
    - PyVectorcall_NARGS
    - method_check_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_NOARGS(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/descrobject.c:457,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/descrobject.c:458,1
    - Dst: method_check_args
      Src: /src/cpython/Objects/descrobject.c:459,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Objects/descrobject.c:463,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:468,1
    - Dst: method_enter_call
      Src: /src/cpython/Objects/descrobject.c:472,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Objects/descrobject.c:476,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/descrobject.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 453
    functionDepth: 6
    functionLinenumber: 453
    functionLinenumberEnd: 479
    functionName: method_vectorcall_O
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyCFunction_TrampolineCall
    - Py_DECREF
    - method_enter_call
    - _Py_LeaveRecursiveCallTstate
    - _PyThreadState_GET
    - _PyObject_FunctionStr
    - PyErr_Format
    - PyVectorcall_NARGS
    - method_check_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_O(\n    PyObject *func, PyObject *const
      *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/descrobject.c:495,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:497,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:500,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:501,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/descrobject.c:504,1
    - Dst: classmethod_get
      Src: /src/cpython/Objects/descrobject.c:505,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Objects/descrobject.c:509,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/descrobject.c:509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - _descr
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 513
    functionName: classmethoddescr_call
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyObject_VectorcallDict
    - Py_DECREF
    - descr_name
    - classmethod_get
    - PyDescr_TYPE
    - PyTuple_GET_ITEM
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nclassmethoddescr_call(PyObject *_descr, PyObject *args,\n
      \                     PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FUNC_CAST
      Src: /src/cpython/Objects/descrobject.c:522,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/descrobject.c:526,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/descrobject.c:526,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - descr
    - self
    - args
    - kwds
    argTypes:
    - PyWrapperDescrObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 533
    functionName: wrapperdescr_raw_call
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - PyDict_GET_SIZE
    - _Py_FUNC_CAST
    - PyErr_Format
    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/cpython/Objects/descrobject.c:543,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/descrobject.c:543,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/descrobject.c:544,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:546,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:549,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:550,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/descrobject.c:553,1
    - Dst: _PyObject_RealIsSubclass
      Src: /src/cpython/Objects/descrobject.c:554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:554,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:555,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:556,1
    - Dst: descr_name
      Src: /src/cpython/Objects/descrobject.c:560,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:561,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:562,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Objects/descrobject.c:566,1
    - Dst: wrapperdescr_raw_call
      Src: /src/cpython/Objects/descrobject.c:570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - _descr
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/cpython/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 573
      start: 535
    functionDepth: 6
    functionLinenumber: 535
    functionLinenumberEnd: 573
    functionName: wrapperdescr_call
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_RealIsSubclass
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - descr_name
    - wrapperdescr_raw_call
    - PyDescr_TYPE
    - PyTuple_GET_ITEM
    - PyTuple_GetSlice
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_call(PyObject *_descr, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/cpython/Objects/descrobject.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _descr
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: method_get_doc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get_doc(PyObject *_descr, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/cpython/Objects/descrobject.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _descr
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 590
    functionName: method_get_text_signature
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get_text_signature(PyObject *_descr, void *closure)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/descrobject.c:597,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/descrobject.c:598,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/descrobject.c:603,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:604,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/descrobject.c:608,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/descrobject.c:609,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:611,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/descrobject.c:615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 618
    functionName: calculate_qualname
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyErr_SetString
    - _Py_ID
    - PyObject_GetAttr
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calculate_qualname(PyDescrObject *descr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calculate_qualname
      Src: /src/cpython/Objects/descrobject.c:625,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 620
    functionDepth: 4
    functionLinenumber: 620
    functionLinenumberEnd: 627
    functionName: descr_get_qualname
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - calculate_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_get_qualname(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/descrobject.c:633,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/descrobject.c:633,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:633,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:634,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/descrobject.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: descr_reduce
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - _Py_ID
    - PyDescr_TYPE
    - PyDescr_NAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/descrobject.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _descr
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 663
    functionName: member_get_doc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      member_get_doc(PyObject *_descr, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/descrobject.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 679
    functionName: getset_get_doc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getset_get_doc(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/cpython/Objects/descrobject.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: wrapperdescr_get_doc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_get_doc(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/cpython/Objects/descrobject.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 700
    functionName: wrapperdescr_get_text_signature
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_get_text_signature(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: descr_traverse
    functionSourceFile: /src/cpython/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/cpython/Objects/descrobject.c:911,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/descrobject.c:913,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:914,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Objects/descrobject.c:915,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/descrobject.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - descrtype
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 924
    functionName: descr_new
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    - Py_SETREF
    - _PyObject_SetDeferredRefcount
    - Py_XNewRef
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyDescrObject
    signature: 'PyDescrObject *

      descr_new(PyTypeObject *descrtype, PyTypeObject *type, const char *name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:956,1
    - Dst: descr_new
      Src: /src/cpython/Objects/descrobject.c:963,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - type
    - method
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 970
    functionName: PyDescr_NewMethod
    functionSourceFile: /src/cpython/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/cpython/Objects/descrobject.c:977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - method
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 982
    functionName: PyDescr_NewClassMethod
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 1
    functionsReached:
    - descr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/descrobject.c:990,1
    - Dst: descr_new
      Src: /src/cpython/Objects/descrobject.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - member
    argTypes:
    - PyTypeObject*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 1000
    functionName: PyDescr_NewMember
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - descr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDescr_NewMember(PyTypeObject *type, PyMemberDef *member)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_new
      Src: /src/cpython/Objects/descrobject.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - getset
    argTypes:
    - PyTypeObject*
    - PyGetSetDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1012
    functionName: PyDescr_NewGetSet
    functionSourceFile: /src/cpython/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/cpython/Objects/descrobject.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - base
    - wrapped
    argTypes:
    - PyTypeObject*
    - struct wrapperbase*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1014
    functionDepth: 3
    functionLinenumber: 1014
    functionLinenumberEnd: 1026
    functionName: PyDescr_NewWrapper
    functionSourceFile: /src/cpython/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: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1032
    functionName: PyDescr_IsData
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 3
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyDescr_IsData(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/descrobject.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: mappingproxy_len
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t mappingproxy_len(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/descrobject.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1056
    functionName: mappingproxy_getitem
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_getitem(PyObject *self, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/descrobject.c:1067,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/descrobject.c:1070,1
    - Dst: PyNumber_Or
      Src: /src/cpython/Objects/descrobject.c:1073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1074
    functionName: mappingproxy_or
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Or
    - PyObject_TypeCheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_or(PyObject *left, PyObject *right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:1079,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(other)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1081
    functionName: mappingproxy_ior
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_ior(PyObject *self, PyObject *Py_UNUSED(other))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/descrobject.c:1092,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/descrobject.c:1093,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/descrobject.c:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1088
    functionDepth: 6
    functionLinenumber: 1088
    functionLinenumberEnd: 1096
    functionName: mappingproxy_contains
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - PyDict_Contains
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int mappingproxy_contains(PyObject *self, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackStack
      Src: /src/cpython/Objects/descrobject.c:1120,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Objects/descrobject.c:1125,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1128
    functionName: mappingproxy_get
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackStack
    - _Py_ID
    - PyObject_VectorcallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_get(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/descrobject.c:1134,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1135
    functionName: mappingproxy_keys
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_keys(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/descrobject.c:1141,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1142
    functionName: mappingproxy_values
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_values(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/descrobject.c:1148,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1149
    functionName: mappingproxy_items
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_items(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/descrobject.c:1155,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1156
    functionName: mappingproxy_copy
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/descrobject.c:1162,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1163
    functionName: mappingproxy_reversed
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_CallMethodNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_reversed(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/descrobject.c:1191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:1192,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/descrobject.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1194
    functionName: mappingproxy_dealloc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void mappingproxy_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/descrobject.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1196
    functionDepth: 3
    functionLinenumber: 1196
    functionLinenumberEnd: 1201
    functionName: mappingproxy_getiter
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_getiter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/descrobject.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1203
    functionDepth: 3
    functionLinenumber: 1203
    functionLinenumberEnd: 1208
    functionName: mappingproxy_hash
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t mappingproxy_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/descrobject.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1210
    functionDepth: 4
    functionLinenumber: 1210
    functionLinenumberEnd: 1215
    functionName: mappingproxy_str
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/descrobject.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1222
    functionName: mappingproxy_repr
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1230
    functionName: mappingproxy_traverse
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int mappingproxy_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/descrobject.c:1237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1232
    functionDepth: 3
    functionLinenumber: 1232
    functionLinenumberEnd: 1240
    functionName: mappingproxy_richcompare
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_richcompare(PyObject *self, PyObject *w, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/cpython/Objects/descrobject.c:1245,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/descrobject.c:1246,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/descrobject.c:1247,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:1248,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1254
    functionName: mappingproxy_check_mapping
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyList_Check
    - PyErr_Format
    - PyMapping_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int mappingproxy_check_mapping(PyObject *mapping)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mappingproxy_check_mapping
      Src: /src/cpython/Objects/descrobject.c:1271,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/descrobject.c:1274,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1277,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/descrobject.c:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - mapping
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1280
    functionName: mappingproxy_new_impl
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - mappingproxy_check_mapping
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mappingproxy_check_mapping
      Src: /src/cpython/Objects/descrobject.c:1287,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/descrobject.c:1290,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1292,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/descrobject.c:1293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1296
    functionName: PyDictProxy_New
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 4
    functionsReached:
    - mappingproxy_check_mapping
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    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: 1311
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1311
    functionName: Wrapper_Check
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Wrapper_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/descrobject.c:1316,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1317,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1318,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/descrobject.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1320
    functionName: wrapper_dealloc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void wrapper_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/descrobject.c:1328,1
    - Dst: Wrapper_Check
      Src: /src/cpython/Objects/descrobject.c:1332,1
    - Dst: Wrapper_Check
      Src: /src/cpython/Objects/descrobject.c:1332,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: 1327
        line_start: 1327
        source_file: /src/cpython/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 1346
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1346
    functionName: wrapper_richcompare
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Wrapper_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_richcompare(PyObject *a, PyObject *b, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Objects/descrobject.c:1353,1
    - Dst: Py_HashPointer
      Src: /src/cpython/Objects/descrobject.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1359
    functionName: wrapper_hash
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_HashPointer
    - PyObject_GenericHash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t wrapper_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/descrobject.c:1365,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1369
    functionName: wrapper_repr
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/descrobject.c:1375,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/descrobject.c:1375,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1375,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/descrobject.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1377
    functionName: wrapper_reduce
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _Py_ID
    - Py_BuildValue
    - PyDescr_NAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:1392,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1395
    functionName: wrapper_objclass
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyDescr_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_objclass(PyObject *wp, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/descrobject.c:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1403
    functionName: wrapper_name
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_name(PyObject *wp, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/cpython/Objects/descrobject.c:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1410
    functionName: wrapper_doc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_doc(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/cpython/Objects/descrobject.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1418
    functionName: wrapper_text_signature
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_text_signature(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_get_qualname
      Src: /src/cpython/Objects/descrobject.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1420
    functionDepth: 5
    functionLinenumber: 1420
    functionLinenumberEnd: 1425
    functionName: wrapper_qualname
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_get_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_qualname(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrapperdescr_raw_call
      Src: /src/cpython/Objects/descrobject.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1436
    functionDepth: 2
    functionLinenumber: 1436
    functionLinenumberEnd: 1441
    functionName: wrapper_call
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - wrapperdescr_raw_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1447,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1450
    functionName: wrapper_traverse
    functionSourceFile: /src/cpython/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/cpython/Objects/descrobject.c:1496,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/descrobject.c:1496,1
    - Dst: assert
      Src: /src/cpython/Objects/descrobject.c:1498,1
    - Dst: _PyObject_RealIsSubclass
      Src: /src/cpython/Objects/descrobject.c:1498,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1498,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/descrobject.c:1499,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/descrobject.c:1501,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1503,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1504,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/descrobject.c:1505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(d, &PyWrapperDescr_Type))
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/cpython/Objects/descrobject.c
    - condition: "(_PyObject_RealIsSubclass((PyObject *)Py_TYPE(self),\n                                    (PyObject
        *)PyDescr_TYPE(descr)))"
      pos:
        line_end: 1498
        line_start: 1497
        source_file: /src/cpython/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 1508
      start: 1490
    functionDepth: 6
    functionLinenumber: 1490
    functionLinenumberEnd: 1508
    functionName: PyWrapper_New
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_RealIsSubclass
    - PyObject_TypeCheck
    - _PyObject_GC_TRACK
    - Py_NewRef
    - PyDescr_TYPE
    - PyObject_GC_New
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWrapper_New(PyObject *d, PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1514
    functionName: _propertyobject_CAST
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _propertyobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: property_copy
      Src: /src/cpython/Objects/descrobject.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - getter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1579
    functionName: property_getter
    functionSourceFile: /src/cpython/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/cpython/Objects/descrobject.c:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - setter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1589
    functionName: property_setter
    functionSourceFile: /src/cpython/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/cpython/Objects/descrobject.c:1598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - deleter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1599
    functionName: property_deleter
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - property_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_deleter(PyObject *self, PyObject *deleter)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/descrobject.c:1610,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:1611,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/descrobject.c:1614,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/descrobject.c:1619,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1621,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:1621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1624
    functionName: property_set_name
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - Py_XSETREF
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_set_name(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/descrobject.c:1640,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1641,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1642,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1643,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1644,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1645,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1647
    functionName: property_dealloc
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void property_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1653,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/descrobject.c:1660,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - prop
    - name
    argTypes:
    - propertyobject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1649
    functionDepth: 2
    functionLinenumber: 1649
    functionLinenumberEnd: 1661
    functionName: property_name
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _Py_ID
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int property_name(propertyobject *prop, PyObject **name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1667,1
    - Dst: property_name
      Src: /src/cpython/Objects/descrobject.c:1673,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Objects/descrobject.c:1676,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1676,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:1678,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:1684,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/descrobject.c:1688,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1691,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1692,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/descrobject.c:1696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1663
    functionDepth: 3
    functionLinenumber: 1663
    functionLinenumberEnd: 1697
    functionName: property_descr_get
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - Py_NewRef
    - PyObject_CallOneArg
    - PyErr_Format
    - Py_TYPE
    - PyType_GetQualName
    - property_name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: property_name
      Src: /src/cpython/Objects/descrobject.c:1714,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Objects/descrobject.c:1719,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/descrobject.c:1719,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:1722,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/descrobject.c:1730,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/descrobject.c:1737,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1742,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/descrobject.c:1743,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/descrobject.c:1748,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/descrobject.c:1751,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/descrobject.c:1753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:1760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - self
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1699
    functionDepth: 3
    functionLinenumber: 1699
    functionLinenumberEnd: 1762
    functionName: property_descr_set
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_SetString
    - PyObject_Vectorcall
    - PyObject_CallOneArg
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - PyErr_Format
    - Py_TYPE
    - PyType_GetQualName
    - property_name
    linkageType: ''
    returnType: int
    signature: int property_descr_set(PyObject *self, PyObject *obj, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Type
      Src: /src/cpython/Objects/descrobject.c:1770,1
    - Dst: PyObject_CallFunctionObjArgs::PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/descrobject.c:1791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:1792,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1797,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:1797,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - old
    - get
    - set
    - del
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1800
    functionName: property_copy
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 3
    functionsReached:
    - PyObject_CallFunctionObjArgs::PyObject_CallFunctionObjArgs
    - Py_DECREF
    - PyObject_Type
    - Py_XNewRef
    - Py_XSETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_copy(PyObject *old, PyObject *get, PyObject *set, PyObject *del)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1851,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:1851,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1852,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:1852,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1853,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:1853,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1854,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1855,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:1861,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/descrobject.c:1865,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:1871,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/descrobject.c:1881,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1882,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/descrobject.c:1889,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/descrobject.c:1891,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/descrobject.c:1892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/descrobject.c:1893,1
    - Dst: assert
      Src: /src/cpython/Objects/descrobject.c:1895,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/descrobject.c:1895,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/descrobject.c:1897,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/descrobject.c:1899,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 5
    argNames:
    - self
    - fget
    - fset
    - fdel
    - doc
    argTypes:
    - propertyobject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1894
        line_start: 1894
        source_file: /src/cpython/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 1915
      start: 1839
    functionDepth: 2
    functionLinenumber: 1839
    functionLinenumberEnd: 1915
    functionName: property_init_impl
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyErr_Occurred
    - _Py_ID
    - Py_NewRef
    - Py_IS_TYPE
    - PyObject_SetAttr
    - PyErr_ExceptionMatches
    - Py_XNewRef
    - Py_XSETREF
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: "int property_init_impl(propertyobject *self, PyObject *fget, PyObject
      *fset,\n                   PyObject *fdel, PyObject *doc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _propertyobject_CAST
      Src: /src/cpython/Objects/descrobject.c:1920,1
    - Dst: property_name
      Src: /src/cpython/Objects/descrobject.c:1922,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/descrobject.c:1926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1917
    functionDepth: 3
    functionLinenumber: 1917
    functionLinenumberEnd: 1930
    functionName: property_get__name__
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _propertyobject_CAST
    - PyErr_SetString
    - property_name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_get__name__(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _propertyobject_CAST
      Src: /src/cpython/Objects/descrobject.c:1935,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/descrobject.c:1936,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/descrobject.c:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1938
    functionName: property_set__name__
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - _propertyobject_CAST
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int property_set__name__(PyObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _propertyobject_CAST
      Src: /src/cpython/Objects/descrobject.c:1943,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Objects/descrobject.c:1944,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Objects/descrobject.c:1952,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Objects/descrobject.c:1960,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1940
    functionDepth: 2
    functionLinenumber: 1940
    functionLinenumberEnd: 1968
    functionName: property_get___isabstractmethod__
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsAbstract
    - _propertyobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_get___isabstractmethod__(PyObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1982,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1983,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1984,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1985,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/descrobject.c:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 1988
    functionName: property_traverse
    functionSourceFile: /src/cpython/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/cpython/Objects/descrobject.c:1994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 1996
    functionName: property_clear
    functionSourceFile: /src/cpython/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int property_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: _PyUnicode_CHECK
    functionSourceFile: /src/cpython/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: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: _PyUnicode_CHECK
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_CHECK(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/unicodeobject.c:119,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: _PyUnicode_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyCompactUnicodeObject_CAST
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    linkageType: ''
    returnType: char
    signature: char * _PyUnicode_UTF8(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:124,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:124,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:125,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:126,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(op))
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: PyUnicode_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyASCIIObject_CAST
    - _PyUnicode_CHECK
    - _PyUnicode_UTF8
    - PyUnicode_IS_COMPACT_ASCII
    - assert
    linkageType: ''
    returnType: char
    signature: char * PyUnicode_UTF8(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/unicodeobject.c:135,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - utf8
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: PyUnicode_SET_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyCompactUnicodeObject_CAST
    - FT_ATOMIC_STORE_PTR_RELEASE
    linkageType: ''
    returnType: void
    signature: void PyUnicode_SET_UTF8(PyObject *op, char *utf8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:140,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:140,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:141,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:142,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(op))
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - _PyCompactUnicodeObject_CAST
    - _PyUnicode_CHECK
    - PyUnicode_IS_COMPACT_ASCII
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyUnicode_UTF8_LENGTH(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: PyUnicode_SET_UTF8_LENGTH
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyCompactUnicodeObject_CAST
    linkageType: ''
    returnType: void
    signature: void PyUnicode_SET_UTF8_LENGTH(PyObject *op, Py_ssize_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: _PyUnicode_LENGTH
    functionSourceFile: /src/cpython/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: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: _PyUnicode_STATE
    functionSourceFile: /src/cpython/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: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: _PyUnicode_HASH
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_HASH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/unicodeobject.c:165,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - hash
    argTypes:
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: PyUnicode_SET_HASH
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _PyASCIIObject_CAST
    linkageType: ''
    returnType: void
    signature: void PyUnicode_SET_HASH(PyObject *op, Py_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: _PyUnicode_DATA_ANY
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_DATA_ANY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:173,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:173,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:174,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:174,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:175,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(op))
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!PyUnicode_IS_COMPACT_ASCII(op))
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: _PyUnicode_SHARE_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_CHECK
    - PyUnicode_DATA
    - _PyUnicode_UTF8
    - PyUnicode_IS_COMPACT_ASCII
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_SHARE_UTF8(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:182,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:183,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:184,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: _PyUnicode_HAS_UTF8_MEMORY
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_UTF8
    - PyUnicode_IS_COMPACT_ASCII
    - PyUnicode_DATA
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_HAS_UTF8_MEMORY(PyObject *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: 211
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 211
    functionName: _PyUnicode_CONVERT_BYTES
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_CONVERT_BYTES(from_type, to_type, begin, end, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/unicodeobject.c:248,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/unicodeobject.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: unicode_get_empty
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _Py_DECLARE_STR
    linkageType: ''
    returnType: PyObject
    signature: PyObject * unicode_get_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/unicodeobject.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: get_interned_dict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_INTERP_CACHED_OBJECT
    linkageType: ''
    returnType: PyObject
    signature: PyObject *get_interned_dict(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:269,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:269,1
    - Dst: _Py_hashtable_len
      Src: /src/cpython/Objects/unicodeobject.c:270,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: _PyUnicode_InternedSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - get_interned_dict
    - _Py_hashtable_len
    - PyDict_GET_SIZE
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyUnicode_InternedSize(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:277,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:277,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/unicodeobject.c:286,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:287,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:287,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:288,1
    - Dst: _Py_hashtable_len
      Src: /src/cpython/Objects/unicodeobject.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyUnicode_CHECK_INTERNED(key) != SSTATE_INTERNED_IMMORTAL_STATIC)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 293
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 293
    functionName: _PyUnicode_InternedSize_Immortal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_len
    - _PyInterpreterState_GET
    - PyDict_Next
    - PyUnicode_CHECK_INTERNED
    - get_interned_dict
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyUnicode_InternedSize_Immortal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_hash
      Src: /src/cpython/Objects/unicodeobject.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: hashtable_unicode_hash
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_hash
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_unicode_hash(const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unicode_eq
      Src: /src/cpython/Objects/unicodeobject.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: hashtable_unicode_compare
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_eq
    linkageType: ''
    returnType: int
    signature: int hashtable_unicode_compare(const void *key1, const void *key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/unicodeobject.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: has_shared_intern_dict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    linkageType: ''
    returnType: bool
    signature: bool has_shared_intern_dict(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:336,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:336,1
    - Dst: has_shared_intern_dict
      Src: /src/cpython/Objects/unicodeobject.c:338,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:339,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/unicodeobject.c:339,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:340,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/unicodeobject.c:343,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/unicodeobject.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (get_interned_dict(interp) == NULL)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 10
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: init_interned_dict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_INTERP_CACHED_OBJECT
    - has_shared_intern_dict
    - get_interned_dict
    - PyDict_New
    - _PyInterpreterState_Main
    - assert
    linkageType: ''
    returnType: int
    signature: int init_interned_dict(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:355,1
    - Dst: has_shared_intern_dict
      Src: /src/cpython/Objects/unicodeobject.c:357,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/unicodeobject.c:359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:361,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/unicodeobject.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 352
    functionDepth: 10
    functionLinenumber: 352
    functionLinenumberEnd: 364
    functionName: clear_interned_dict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_INTERP_CACHED_OBJECT
    - PyDict_Clear
    - has_shared_intern_dict
    - Py_DECREF
    - get_interned_dict
    linkageType: ''
    returnType: void
    signature: void clear_interned_dict(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:369,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Objects/unicodeobject.c:372,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:382,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:383,1
    - Dst: _PyUnicode_InitStaticStrings
      Src: /src/cpython/Objects/unicodeobject.c:393,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:396,1
    - Dst: _PyUnicode_InternStatic
      Src: /src/cpython/Objects/unicodeobject.c:397,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:398,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:398,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:401,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:401,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/unicodeobject.c:401,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:404,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:404,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:404,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (INTERNED_STRINGS == NULL)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (s == LATIN1(i))
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(&_Py_STR(empty), 1))
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(LATIN1(i), 1))
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 408
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 408
    functionName: init_global_interned_strings
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - LATIN1
    - _PyUnicode_CheckConsistency
    - _Py_STR
    - _Py_hashtable_new_full
    - _PyUnicode_InitStaticStrings
    - _PyUnicode_InternStatic
    - _PyStatus_ERR
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_global_interned_strings(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Objects/unicodeobject.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: clear_global_interned_strings
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: void
    signature: void clear_global_interned_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: _Py_RETURN_UNICODE_EMPTY
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_RETURN_UNICODE_EMPTY()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:427,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:430,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:433,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:437,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:445,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - kind
    - data
    - value
    - start
    - length
    argTypes:
    - int
    - void*
    - Py_UCS4
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= start)
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (value <= 0xffff)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (value <= MAX_UNICODE)
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (value <= 0xff)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 454
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 454
    functionName: unicode_fill
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_UNREACHABLE
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: "void unicode_fill(int kind, void *data, Py_UCS4 value,\n             Py_ssize_t
      start, Py_ssize_t length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:549,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:552,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:555,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:558,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:561,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:564,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:567,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - errors
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 571
    functionName: _Py_GetErrorHandler
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:577,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:580,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:583,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:586,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:589,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:592,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - errors
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 599
    functionName: get_error_handler_wide
    functionSourceFile: /src/cpython/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: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:609,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:612,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Objects/unicodeobject.c:627,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:635,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:636,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:637,1
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Objects/unicodeobject.c:639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:643,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:648,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:649,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:650,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:651,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:652,1
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Objects/unicodeobject.c:654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:658,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 661
    functionName: unicode_check_encoding_errors
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCodec_LookupError
    - _PyInterpreterState_GET
    - _PyCodec_Lookup
    - _PyInterpreterState_GetConfig
    - strcmp
    - _PyInterpreterState_GetFinalizing
    linkageType: ''
    returnType: int
    signature: int unicode_check_encoding_errors(const char *encoding, const char
      *errors)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:670,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:671,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:671,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:673,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:677,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:680,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:685,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:688,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:689,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:689,1
    - Dst: _PyUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:692,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:695,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:698,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:699,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:701,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:701,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:702,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:705,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:705,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:709,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:710,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:721,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:724,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:730,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:731,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:734,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:737,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:738,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:741,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:742,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:744,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:744,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:754,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:763,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:763,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:767,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:768,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:768,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:771,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:774,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:777,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 784
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 784
    functionName: _PyUnicode_CheckConsistency
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - _PyASCIIObject_CAST
    - _PyUnicode_UTF8
    - _PyCompactUnicodeObject_CAST
    - Py_UNREACHABLE
    - PyUnicode_READ
    - PyUnicode_CHECK_INTERNED
    - _PyUnicodeObject_CAST
    - _Py_IsImmortal
    - PyUnicode_DATA
    - CHECK
    - PyUnicode_Check
    - assert
    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: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: CHECK
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:789,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:789,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:791,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:793,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:795,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:801,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:803,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:807,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:813,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 815
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 815
    functionName: unicode_result
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_DECREF
    - LATIN1
    - unicode_get_empty
    - _PyUnicode_CHECK
    - _PyUnicode_CheckConsistency
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_result(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:820,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:821,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/unicodeobject.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 826
    functionName: unicode_result_unchanged
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyUnicode_CheckExact
    - _PyUnicode_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_result_unchanged(PyObject *unicode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:839,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:840,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:847,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:853,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:857,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:864,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 5
    argNames:
    - writer
    - str
    - unicode
    - collstart
    - collend
    argTypes:
    - _PyBytesWriter*
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 892
      start: 830
    functionDepth: 8
    functionLinenumber: 830
    functionLinenumberEnd: 892
    functionName: backslashreplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyErr_SetString
    - PyUnicode_READ
    - _PyBytesWriter_Prepare
    - 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: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:905,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:906,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:913,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:927,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:931,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:938,1
    - Dst: sprintf
      Src: /src/cpython/Objects/unicodeobject.c:944,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:944,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - writer
    - str
    - unicode
    - collstart
    - collend
    argTypes:
    - _PyBytesWriter*
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 926
        line_start: 926
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 951
      start: 896
    functionDepth: 8
    functionLinenumber: 896
    functionLinenumberEnd: 951
    functionName: xmlcharrefreplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - sprintf
    - PyErr_SetString
    - PyUnicode_READ
    - _PyBytesWriter_Prepare
    - PyUnicode_DATA
    - assert
    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: 976
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 976
    functionName: BLOOM
    functionSourceFile: /src/cpython/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: 980
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 980
    functionName: BLOOM_LINEBREAK
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOOM_LINEBREAK(ch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BLOOM_UPDATE
      Src: /src/cpython/Objects/unicodeobject.c:1003,1
    - Dst: BLOOM_UPDATE
      Src: /src/cpython/Objects/unicodeobject.c:1006,1
    - Dst: BLOOM_UPDATE
      Src: /src/cpython/Objects/unicodeobject.c:1009,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - kind
    - ptr
    - len
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1017
    functionName: make_bloom_mask
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - BLOOM_UPDATE
    linkageType: ''
    returnType: BLOOM_MASK
    signature: BLOOM_MASK make_bloom_mask(int kind, const 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: 995
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 995
    functionName: BLOOM_UPDATE
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:1022,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:1023,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1029
    functionName: ensure_unicode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int ensure_unicode(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1034
    functionName: STRINGLIB_GET_EMPTY
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_GET_EMPTY()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ucs1lib_find_char
      Src: /src/cpython/Objects/unicodeobject.c:1091,1
    - Dst: ucs1lib_rfind_char
      Src: /src/cpython/Objects/unicodeobject.c:1093,1
    - Dst: ucs2lib_find_char
      Src: /src/cpython/Objects/unicodeobject.c:1098,1
    - Dst: ucs2lib_rfind_char
      Src: /src/cpython/Objects/unicodeobject.c:1100,1
    - Dst: ucs4lib_find_char
      Src: /src/cpython/Objects/unicodeobject.c:1103,1
    - Dst: ucs4lib_rfind_char
      Src: /src/cpython/Objects/unicodeobject.c:1105,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1107,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: 1109
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1109
    functionName: findchar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs4lib_rfind_char
    - Py_UNREACHABLE
    - ucs4lib_find_char
    - ucs1lib_rfind_char
    - ucs2lib_rfind_char
    - ucs2lib_find_char
    - ucs1lib_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/cpython/Objects/unicodeobject.c:1121,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1122,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1123,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - unicode
    - old_length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1127
    functionName: unicode_fill_invalid
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:1136,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1136,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:1140,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1140,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - unicode
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1143
    functionName: resize_copy
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resize_copy(PyObject *unicode, Py_ssize_t length)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1153,1
    - Dst: unicode_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:1156,1
    - Dst: resize_copy
      Src: /src/cpython/Objects/unicodeobject.c:1157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:1161,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1164,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1164,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1166,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1167,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1173,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:1178,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1179,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1179,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1180,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1181,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/unicodeobject.c:1184,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/unicodeobject.c:1186,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:1188,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/unicodeobject.c:1190,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1191,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/unicodeobject.c:1195,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1197,1
    - Dst: unicode_fill_invalid
      Src: /src/cpython/Objects/unicodeobject.c:1199,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:1201,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1201,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1201,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1203,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - unicode
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_IS_COMPACT(unicode))
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 0))
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1205
      start: 1145
    functionDepth: 5
    functionLinenumber: 1145
    functionLinenumberEnd: 1205
    functionName: resize_compact
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_SET_UTF8_LENGTH
    - _PyUnicode_LENGTH
    - PyMem_Free
    - PyUnicode_KIND
    - _PyUnicode_HAS_UTF8_MEMORY
    - PyObject_Realloc
    - resize_copy
    - unicode_fill_invalid
    - Py_DECREF
    - _Py_NewReferenceNoTotal
    - _PyUnicode_CheckConsistency
    - _PyUnicode_UTF8
    - _Py_ForgetReference
    - PyErr_NoMemory
    - unicode_modifiable
    - PyUnicode_IS_COMPACT
    - PyUnicode_SET_UTF8
    - PyUnicode_WRITE
    - PyUnicode_DATA
    - assert
    - _PyReftracerTrack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resize_compact(PyObject *unicode, Py_ssize_t length)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1210,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1210,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1211,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1211,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1218,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1221,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1222,1
    - Dst: _PyUnicode_SHARE_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1223,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1226,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:1231,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1233,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1233,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1234,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1235,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:1238,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1240,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1243,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1245,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1246,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1248,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:1249,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1249,1
    - Dst: unicode_fill_invalid
      Src: /src/cpython/Objects/unicodeobject.c:1251,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1256,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1259,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - unicode
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (!PyUnicode_IS_COMPACT(unicode))
      pos:
        line_end: 1209
        line_start: 1209
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (Py_REFCNT(unicode) == 1)
      pos:
        line_end: 1210
        line_start: 1210
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 0))
      pos:
        line_end: 1258
        line_start: 1258
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1261
      start: 1207
    functionDepth: 3
    functionLinenumber: 1207
    functionLinenumberEnd: 1261
    functionName: resize_inplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - unicode_fill_invalid
    - _PyUnicode_HAS_UTF8_MEMORY
    - PyObject_Realloc
    - _PyUnicode_DATA_ANY
    - PyUnicode_IS_COMPACT
    - PyUnicode_SET_UTF8
    - PyErr_NoMemory
    - PyMem_Free
    - PyUnicode_SET_UTF8_LENGTH
    - PyUnicode_WRITE
    - _PyUnicode_CheckConsistency
    - _PyUnicode_SHARE_UTF8
    - _PyUnicode_UTF8
    - _PyUnicode_LENGTH
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: int
    signature: int resize_inplace(PyObject *unicode, Py_ssize_t length)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1268,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1270,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1273,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1285,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1298
    functionName: unicode_kind_name
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_IS_ASCII
    - PyUnicode_IS_COMPACT
    linkageType: ''
    returnType: char
    signature: 'char *

      unicode_kind_name(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1303,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1302
    functionDepth: 3
    functionLinenumber: 1302
    functionLinenumberEnd: 1305
    functionName: _PyUnicode_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CAST
    - PyUnicode_UTF8
    linkageType: ''
    returnType: char
    signature: char *_PyUnicode_utf8(void *unicode_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1308,1
    - Dst: _PyUnicode_COMPACT_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1310
    functionName: _PyUnicode_compact_data
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CAST
    - _PyUnicode_COMPACT_DATA
    linkageType: ''
    returnType: void
    signature: void *_PyUnicode_compact_data(void *unicode_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1312,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1313,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1314,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1314,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1315,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1315,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1316,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1316,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1317,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1317,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1318,1
    - Dst: _PyUnicode_COMPACT_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1318,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1320
    functionName: _PyUnicode_data
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - _PyCompactUnicodeObject_CAST
    - PyUnicode_IS_COMPACT
    - _PyObject_CAST
    - _PyUnicode_COMPACT_DATA
    - printf
    - PyUnicode_DATA
    - PyUnicode_IS_COMPACT_ASCII
    linkageType: ''
    returnType: void
    signature: void *_PyUnicode_data(void *unicode_raw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1325,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1326,1
    - Dst: _PyUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1327,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1339,1
    - Dst: unicode_kind_name
      Src: /src/cpython/Objects/unicodeobject.c:1339,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1342,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1345
    functionName: _PyUnicode_Dump
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - _PyCompactUnicodeObject_CAST
    - printf
    - _PyUnicodeObject_CAST
    - unicode_kind_name
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_Dump(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:1354,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1383,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1393,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1398,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:1404,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1406,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/unicodeobject.c:1408,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1415,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:1416,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1417,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1418,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1419,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1420,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1421,1
    - Dst: unicode_fill_invalid
      Src: /src/cpython/Objects/unicodeobject.c:1439,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1441,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1441,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 2
    argNames:
    - size
    - maxchar
    argTypes:
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency((PyObject*)unicode, 0))
      pos:
        line_end: 1440
        line_start: 1440
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1443
      start: 1349
    functionDepth: 3
    functionLinenumber: 1349
    functionLinenumberEnd: 1443
    functionName: PyUnicode_New
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - unicode_fill_invalid
    - PyErr_SetString
    - unicode_get_empty
    - _PyUnicode_HASH
    - _PyUnicode_CheckConsistency
    - _PyUnicode_STATE
    - _PyUnicode_LENGTH
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unicode_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:1448,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1454
    functionName: unicode_check_modifiable
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_modifiable
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int unicode_check_modifiable(PyObject *unicode)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1465,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1466,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1467,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1468,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1468,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1469,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1469,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1471,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1471,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1477,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1478,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1478,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1480,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1481,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1482,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1483,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1487,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1487,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1489,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:1493,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1494,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1501,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1501,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:1506,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:1511,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1518,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1520,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1521,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1522,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1528,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1530,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1531,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1532,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1538,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1540,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1541,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1542,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1546,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1546,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1546,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1552,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1554,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1555,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1556,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1562,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1564,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1565,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1566,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1572,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1574,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1575,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1576,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1580,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1584,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:1589,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:1592,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    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: (from_start + how_many <= PyUnicode_GET_LENGTH(from))
      pos:
        line_end: 1468
        line_start: 1468
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= from_start)
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(from))
      pos:
        line_end: 1467
        line_start: 1467
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (to == NULL || PyUnicode_Check(to))
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (to_start + how_many <= PyUnicode_GET_LENGTH(to))
      pos:
        line_end: 1477
        line_start: 1477
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= how_many)
      pos:
        line_end: 1464
        line_start: 1464
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= to_start)
      pos:
        line_end: 1466
        line_start: 1466
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= to_maxchar)
      pos:
        line_end: 1493
        line_start: 1493
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_MAX_CHAR_VALUE(from) > PyUnicode_MAX_CHAR_VALUE(to))
      pos:
        line_end: 1545
        line_start: 1545
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (to != NULL)
      pos:
        line_end: 1476
        line_start: 1476
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1597
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1597
    functionName: _copy_characters
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNREACHABLE
    - PyUnicode_4BYTE_DATA
    - PyUnicode_2BYTE_DATA
    - memcpy
    - PyUnicode_READ
    - _PyUnicode_CONVERT_BYTES
    - ucs1lib_find_max_char
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_IS_ASCII
    - PyUnicode_WRITE
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    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/cpython/Objects/unicodeobject.c:1604,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: 1605
      start: 1599
    functionDepth: 2
    functionLinenumber: 1599
    functionLinenumberEnd: 1605
    functionName: _PyUnicode_FastCopyCharacters
    functionSourceFile: /src/cpython/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: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1614,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1614,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:1615,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1619,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1620,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1623,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1628,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:1631,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1631,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1632,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:1633,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1636,1
    - Dst: unicode_check_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:1643,1
    - Dst: _copy_characters
      Src: /src/cpython/Objects/unicodeobject.c:1646,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:1648,1
    - Dst: unicode_kind_name
      Src: /src/cpython/Objects/unicodeobject.c:1651,1
    - Dst: unicode_kind_name
      Src: /src/cpython/Objects/unicodeobject.c:1652,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    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: 1656
      start: 1607
    functionDepth: 2
    functionLinenumber: 1607
    functionLinenumberEnd: 1656
    functionName: PyUnicode_CopyCharacters
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_MIN
    - _copy_characters
    - unicode_check_modifiable
    - PyErr_BadInternalCall
    - PyErr_SetString
    - unicode_kind_name
    - PyErr_Format
    - 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/cpython/Objects/unicodeobject.c:1670,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:1676,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:1678,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:1680,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:1693,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: 1669
        line_start: 1669
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1701
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1701
    functionName: find_maxchar_surrogates
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_LOW_SURROGATE
    - PyErr_Format
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - assert
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: unicode_is_finalizing
      Src: /src/cpython/Objects/unicodeobject.c:1707,1
    - Dst: unicode_is_singleton
      Src: /src/cpython/Objects/unicodeobject.c:1707,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Objects/unicodeobject.c:1708,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1711,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1717,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1719,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1722,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1730,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1730,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1731,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:1734,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1734,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:1735,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1735,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1737,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:1738,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1739,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/unicodeobject.c:1741,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/unicodeobject.c:1743,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1751,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1752,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1758,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1760,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1764,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1766,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1766,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1767,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:1770,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1770,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1776,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1778,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:1781,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1782,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1782,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1784,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1784,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1785,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1785,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:1788,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (popped == unicode)
      pos:
        line_end: 1763
        line_start: 1763
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (Py_REFCNT(unicode) == 1)
      pos:
        line_end: 1765
        line_start: 1765
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (Py_REFCNT(unicode) == 0)
      pos:
        line_end: 1729
        line_start: 1729
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (interned != NULL)
      pos:
        line_end: 1738
        line_start: 1738
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1789
      start: 1703
    functionDepth: 8
    functionLinenumber: 1703
    functionLinenumberEnd: 1789
    functionName: unicode_dealloc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - _Py_IncRefTotal
    - PyMem_Free
    - Py_SET_REFCNT
    - _PyUnicode_HAS_UTF8_MEMORY
    - _PyUnicode_STATE
    - PyDict_Pop
    - unicode_is_finalizing
    - _Py_DecRefTotal
    - unicode_is_singleton
    - get_interned_dict
    - _Py_SetImmortal
    - _Py_FatalRefcountError
    - _PyUnicode_UTF8
    - Py_TYPE
    - Py_UNREACHABLE
    - _PyUnicode_DATA_ANY
    - PyUnicode_IS_COMPACT
    - _PyInterpreterState_GET
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void unicode_dealloc(PyObject *unicode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_STR
      Src: /src/cpython/Objects/unicodeobject.c:1795,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1799,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:1801,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:1802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1807
    functionName: unicode_is_singleton
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyASCIIObject_CAST
    - _Py_STR
    - LATIN1
    - PyUnicode_READ_CHAR
    linkageType: ''
    returnType: int
    signature: int unicode_is_singleton(PyObject *unicode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1813,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:1813,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/unicodeobject.c:1814,1
    - Dst: PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:1816,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:1818,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:1820,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1824,1
    - Dst: unicode_is_singleton
      Src: /src/cpython/Objects/unicodeobject.c:1824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 1812
        line_start: 1812
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!unicode_is_singleton(unicode))
      pos:
        line_end: 1823
        line_start: 1823
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1827
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 1827
    functionName: unicode_modifiable
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - unicode_is_singleton
    - PyUnicode_CheckExact
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_HASH
    - _PyUnicode_CHECK
    - _PyObject_IsUniquelyReferenced
    - assert
    linkageType: ''
    returnType: int
    signature: int unicode_modifiable(PyObject *unicode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1835,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1838,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1839,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1839,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1840,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1842,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:1847,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:1848,1
    - Dst: unicode_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:1852,1
    - Dst: resize_copy
      Src: /src/cpython/Objects/unicodeobject.c:1853,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:1856,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1860,1
    - Dst: resize_compact
      Src: /src/cpython/Objects/unicodeobject.c:1861,1
    - Dst: resize_inplace
      Src: /src/cpython/Objects/unicodeobject.c:1867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - p_unicode
    - length
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (p_unicode != NULL)
      pos:
        line_end: 1834
        line_start: 1834
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (unicode != NULL)
      pos:
        line_end: 1837
        line_start: 1837
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= length)
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(unicode))
      pos:
        line_end: 1838
        line_start: 1838
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1868
      start: 1829
    functionDepth: 6
    functionLinenumber: 1829
    functionLinenumberEnd: 1868
    functionName: unicode_resize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_modifiable
    - resize_inplace
    - resize_compact
    - resize_copy
    - PyUnicode_IS_COMPACT
    - unicode_get_empty
    - Py_SETREF
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int unicode_resize(PyObject **p_unicode, Py_ssize_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:1875,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1879,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:1881,1
    - Dst: unicode_resize
      Src: /src/cpython/Objects/unicodeobject.c:1884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - p_unicode
    - length
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1885
    functionName: PyUnicode_Resize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - unicode_resize
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Resize(PyObject **p_unicode, Py_ssize_t length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1896,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1897,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1900,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1900,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1904,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:1905,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1908,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:1911,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1921,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1921,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1931,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1931,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1935,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    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: 1899
        line_start: 1899
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (maxchar < 128)
      pos:
        line_end: 1907
        line_start: 1907
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((ucs2 - start) <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 1920
        line_start: 1920
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((ucs4 - start) <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 1930
        line_start: 1930
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1937
      start: 1892
    functionDepth: 1
    functionLinenumber: 1892
    functionLinenumberEnd: 1937
    functionName: unicode_write_cstr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNREACHABLE
    - ucs1lib_find_max_char
    - PyUnicode_IS_ASCII
    - memcpy
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: void
    signature: "void unicode_write_cstr(PyObject *unicode, Py_ssize_t index,\n                   const
      char *str, Py_ssize_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS1
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1939
    functionDepth: 0
    functionLinenumber: 1939
    functionLinenumberEnd: 1944
    functionName: get_latin1_char
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - LATIN1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_latin1_char(Py_UCS1 ch)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1951,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:1954,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:1957,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1961,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1961,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1962,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1963,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1965,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1965,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1966,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1968,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 1950
        line_start: 1950
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) != PyUnicode_1BYTE_KIND)
      pos:
        line_end: 1960
        line_start: 1960
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 1964
        line_start: 1964
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 1967
        line_start: 1967
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1970
      start: 1946
    functionDepth: 4
    functionLinenumber: 1946
    functionLinenumberEnd: 1970
    functionName: unicode_char
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_CheckConsistency
    - PyUnicode_2BYTE_DATA
    - get_latin1_char
    - PyUnicode_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_char(Py_UCS4 ch)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1980,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:1985,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1987,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2002,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:2003,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:2005,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:2007,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2015,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2017,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2018,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2023,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - kind
    - data
    - u
    - size
    - num_surrogates
    argTypes:
    - int
    - void*
    - wchar_t*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ucs4_out < ucs4_end)
      pos:
        line_end: 2001
        line_start: 2001
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ucs4_out == ucs4_end)
      pos:
        line_end: 2014
        line_start: 2014
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (num_surrogates == 0)
      pos:
        line_end: 2016
        line_start: 2016
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2025
      start: 1973
    functionDepth: 1
    functionLinenumber: 1973
    functionLinenumberEnd: 2025
    functionName: unicode_write_widechar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - Py_UNICODE_IS_LOW_SURROGATE
    - _PyUnicode_CONVERT_BYTES
    - memcpy
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - assert
    linkageType: ''
    returnType: void
    signature: "void unicode_write_widechar(int kind, void *data,\n                       const
      wchar_t *u, Py_ssize_t size,\n                       Py_ssize_t num_surrogates)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:2036,1
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:2041,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:2049,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:2054,1
    - Dst: _Py_DecodeNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:2055,1
    - Dst: _PyUnicode_FromUCS4
      Src: /src/cpython/Objects/unicodeobject.c:2059,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:2060,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:2068,1
    - Dst: find_maxchar_surrogates
      Src: /src/cpython/Objects/unicodeobject.c:2072,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2076,1
    - Dst: unicode_write_widechar
      Src: /src/cpython/Objects/unicodeobject.c:2080,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2080,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2080,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:2083,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2028
    functionDepth: 4
    functionLinenumber: 2028
    functionLinenumberEnd: 2084
    functionName: PyUnicode_FromWideChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 63
    functionsReached:
    - PyUnicode_KIND
    - _Py_DecodeNonUnicodeWchar
    - unicode_write_widechar
    - find_maxchar_surrogates
    - PyErr_BadInternalCall
    - get_latin1_char
    - _Py_RETURN_UNICODE_EMPTY
    - _Py_LocaleUsesNonUnicodeWchar
    - wcslen
    - PyUnicode_New
    - unicode_result
    - _PyUnicode_FromUCS4
    - PyUnicode_DATA
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromWideChar(const wchar_t *u, Py_ssize_t size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:2095,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:2105,1
    - Dst: _Py_DecodeNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:2106,1
    - Dst: PyUnicodeWriter_WriteUCS4
      Src: /src/cpython/Objects/unicodeobject.c:2111,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:2112,1
    - Dst: find_maxchar_surrogates
      Src: /src/cpython/Objects/unicodeobject.c:2119,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:2124,1
    - Dst: unicode_write_widechar
      Src: /src/cpython/Objects/unicodeobject.c:2130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - pub_writer
    - str
    - size
    argTypes:
    - PyUnicodeWriter*
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2087
    functionDepth: 2
    functionLinenumber: 2087
    functionLinenumberEnd: 2134
    functionName: PyUnicodeWriter_WriteWideChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_DecodeNonUnicodeWchar
    - unicode_write_widechar
    - find_maxchar_surrogates
    - PyUnicodeWriter_WriteUCS4
    - _Py_LocaleUsesNonUnicodeWchar
    - wcslen
    - PyMem_Free
    - _PyUnicodeWriter_Prepare
    linkageType: ''
    returnType: int
    signature: "int PyUnicodeWriter_WriteWideChar(PyUnicodeWriter *pub_writer,\n                              const
      wchar_t *str,\n                              Py_ssize_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2141,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2146,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2149,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:2153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2154
    functionName: PyUnicode_FromStringAndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 35
    functionsReached:
    - PyErr_SetString
    - PyUnicode_DecodeUTF8Stateful
    - unicode_get_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromStringAndSize(const char *u, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:2159,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2161,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - u
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2156
    functionDepth: 1
    functionLinenumber: 2156
    functionLinenumberEnd: 2165
    functionName: PyUnicode_FromString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 176
    functionsReached:
    - PyErr_SetString
    - PyUnicode_DecodeUTF8Stateful
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromString(const char *u)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/unicodeobject.c:2171,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:2172,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Objects/unicodeobject.c:2175,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/unicodeobject.c:2179,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Objects/unicodeobject.c:2182,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2184,1
    - Dst: _Py_atomic_store_ssize
      Src: /src/cpython/Objects/unicodeobject.c:2187,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/unicodeobject.c:2189,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2191,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2202,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:2202,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/unicodeobject.c:2207,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2211,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:2213,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2215,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:2219,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/unicodeobject.c:2228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - id
    argTypes:
    - _Py_Identifier*
    assertStmts:
    - condition: (rt_ids->next_index < PY_SSIZE_T_MAX)
      pos:
        line_end: 2183
        line_start: 2183
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (index >= 0)
      pos:
        line_end: 2190
        line_start: 2190
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2231
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2231
    functionName: _PyUnicode_FromId
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - PyMem_Realloc
    - _Py_atomic_load_ssize
    - Py_MAX
    - _PyUnicode_InternImmortal
    - _Py_atomic_store_ssize
    - strlen
    - memset
    - _PyInterpreterState_GET
    - PyMutex_Lock
    - PyMutex_Unlock
    - PyUnicode_DecodeUTF8Stateful
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromId(_Py_Identifier *id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:2239,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:2242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _Py_unicode_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2234
    functionDepth: 2
    functionLinenumber: 2234
    functionLinenumberEnd: 2246
    functionName: unicode_clear_identifiers
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void unicode_clear_identifiers(struct _Py_unicode_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2258,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:2260,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2262,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2265,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2265,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2266,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2266,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: 2257
        line_start: 2257
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 2265
        line_start: 2265
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2268
      start: 2251
    functionDepth: 4
    functionLinenumber: 2251
    functionLinenumberEnd: 2268
    functionName: _PyUnicode_FromASCII
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_CheckConsistency
    - get_latin1_char
    - PyUnicode_New
    - memcpy
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromASCII(const char *buffer, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - kind
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2270
    functionDepth: 1
    functionLinenumber: 2270
    functionLinenumberEnd: 2283
    functionName: kind_maxchar_limit
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 kind_maxchar_limit(int kind)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:2292,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2294,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:2296,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2299,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2300,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2303,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2303,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2304,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - Py_UCS1*
    - Py_ssize_t
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 2293
        line_start: 2293
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2306
      start: 2285
    functionDepth: 4
    functionLinenumber: 2285
    functionLinenumberEnd: 2306
    functionName: _PyUnicode_FromUCS1
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_CheckConsistency
    - get_latin1_char
    - _Py_RETURN_UNICODE_EMPTY
    - ucs1lib_find_max_char
    - PyUnicode_New
    - memcpy
    - PyUnicode_1BYTE_DATA
    - assert
    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/cpython/Objects/unicodeobject.c:2315,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2316,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:2318,1
    - Dst: ucs2lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2320,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2321,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2325,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2325,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2327,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2328,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2330,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2330,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: 2315
        line_start: 2315
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2329
        line_start: 2329
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2332
      start: 2308
    functionDepth: 5
    functionLinenumber: 2308
    functionLinenumberEnd: 2332
    functionName: _PyUnicode_FromUCS2
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs2lib_find_max_char
    - _PyUnicode_CheckConsistency
    - PyUnicode_2BYTE_DATA
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicode_CONVERT_BYTES
    - unicode_char
    - PyUnicode_New
    - memcpy
    - PyUnicode_1BYTE_DATA
    - assert
    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/cpython/Objects/unicodeobject.c:2341,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2342,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:2344,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2346,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2347,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2351,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2352,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2354,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2355,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2357,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2357,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2358,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2358,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: 2341
        line_start: 2341
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2357
        line_start: 2357
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2360
      start: 2334
    functionDepth: 5
    functionLinenumber: 2334
    functionLinenumberEnd: 2360
    functionName: _PyUnicode_FromUCS4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_CheckConsistency
    - PyUnicode_2BYTE_DATA
    - _Py_RETURN_UNICODE_EMPTY
    - ucs4lib_find_max_char
    - _PyUnicode_CONVERT_BYTES
    - unicode_char
    - PyUnicode_New
    - memcpy
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromUCS4(const Py_UCS4 *u, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2371,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2380,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:2382,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2389,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2394,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - pub_writer
    - str
    - size
    argTypes:
    - PyUnicodeWriter*
    - Py_UCS4*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2404
    functionName: PyUnicodeWriter_WriteUCS4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyUnicode_CONVERT_BYTES
    - ucs4lib_find_max_char
    - memcpy
    - _PyUnicodeWriter_Prepare
    linkageType: ''
    returnType: int
    signature: "int PyUnicodeWriter_WriteUCS4(PyUnicodeWriter *pub_writer,\n                          Py_UCS4
      *str,\n                          Py_ssize_t size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2411,1
    - Dst: _PyUnicode_FromUCS1
      Src: /src/cpython/Objects/unicodeobject.c:2416,1
    - Dst: _PyUnicode_FromUCS2
      Src: /src/cpython/Objects/unicodeobject.c:2418,1
    - Dst: _PyUnicode_FromUCS4
      Src: /src/cpython/Objects/unicodeobject.c:2420,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - kind
    - buffer
    - size
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2407
    functionDepth: 6
    functionLinenumber: 2407
    functionLinenumberEnd: 2425
    functionName: PyUnicode_FromKindAndData
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - _PyUnicode_FromUCS4
    - PyErr_SetString
    - _PyUnicode_FromUCS2
    - _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/cpython/Objects/unicodeobject.c:2433,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2434,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2434,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2435,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2437,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:2438,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:2443,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2446,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2447,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2452,1
    - Dst: ucs2lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2454,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2456,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - unicode
    - start
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= start)
      pos:
        line_end: 2432
        line_start: 2432
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (end <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 2433
        line_start: 2433
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (start <= end)
      pos:
        line_end: 2434
        line_start: 2434
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2460
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2460
    functionName: _PyUnicode_FindMaxChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNREACHABLE
    - ucs2lib_find_max_char
    - ucs4lib_find_max_char
    - ucs1lib_find_max_char
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 _PyUnicode_FindMaxChar(PyObject *unicode, Py_ssize_t start,
      Py_ssize_t end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2473,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:2475,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2478,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2479,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2481,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2482,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2487,1
    - Dst: ucs2lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2488,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2493,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2494,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2499,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2501,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:2503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - p_unicode
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (p_unicode != NULL)
      pos:
        line_end: 2472
        line_start: 2472
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2506
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2506
    functionName: unicode_adjust_maxchar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNREACHABLE
    - PyUnicode_4BYTE_DATA
    - Py_DECREF
    - ucs2lib_find_max_char
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_2BYTE_DATA
    - ucs4lib_find_max_char
    - ucs1lib_find_max_char
    - PyUnicode_IS_ASCII
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: void
    signature: void unicode_adjust_maxchar(PyObject **p_unicode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:2514,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:2515,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2519,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2520,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:2520,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2523,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2523,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2523,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2525,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2525,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2525,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2526,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2527,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_KIND(copy) == PyUnicode_KIND(unicode))
      pos:
        line_end: 2522
        line_start: 2522
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(copy, 1))
      pos:
        line_end: 2526
        line_start: 2526
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2529
      start: 2508
    functionDepth: 4
    functionLinenumber: 2508
    functionLinenumberEnd: 2529
    functionName: _PyUnicode_Copy
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_CheckConsistency
    - PyErr_BadInternalCall
    - memcpy
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_New
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_Copy(PyObject *unicode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2540,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:2543,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2545,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2546,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2547,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:2554,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2556,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2558,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2565,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2566,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - skind
    - data
    - len
    - kind
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (skind < kind)
      pos:
        line_end: 2539
        line_start: 2539
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (skind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2545
        line_start: 2545
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (skind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2564
        line_start: 2564
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2577
      start: 2535
    functionDepth: 1
    functionLinenumber: 2535
    functionLinenumberEnd: 2577
    functionName: unicode_askind
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyUnicode_CONVERT_BYTES
    - PyMem_New
    - PyErr_NoMemory
    - Py_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: 'void *

      unicode_askind(int skind, void const *data, Py_ssize_t len, int kind)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2586,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2587,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2588,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:2593,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2595,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:2601,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2610,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2614,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2617,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2620,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - string
    - target
    - targetsize
    - copy_null
    argTypes:
    - PyObject*
    - Py_UCS4*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2625
    functionName: as_ucs4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_CONVERT_BYTES
    - PyMem_New
    - PyErr_Format
    - memcpy
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - Py_UNREACHABLE
    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/cpython/Objects/unicodeobject.c:2632,1
    - Dst: as_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:2635,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: 2636
      start: 2627
    functionDepth: 2
    functionLinenumber: 2627
    functionLinenumberEnd: 2636
    functionName: PyUnicode_AsUCS4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyErr_BadInternalCall
    - as_ucs4
    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/cpython/Objects/unicodeobject.c:2641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2638
    functionDepth: 2
    functionLinenumber: 2638
    functionLinenumberEnd: 2642
    functionName: PyUnicode_AsUCS4Copy
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - as_ucs4
    linkageType: ''
    returnType: Py_UCS4
    signature: 'Py_UCS4 *

      PyUnicode_AsUCS4Copy(PyObject *string)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2657,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:2660,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:2663,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2665,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:2666,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Objects/unicodeobject.c:2667,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:2671,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2674,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2676,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:2681,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2686,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - writer
    - str
    - width
    - precision
    - flags
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2650
    functionDepth: 3
    functionLinenumber: 2650
    functionLinenumberEnd: 2692
    functionName: unicode_fromformat_write_str
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_MAX
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_FindMaxChar
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_Fill
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Prepare
    linkageType: ''
    returnType: int
    signature: "int unicode_fromformat_write_str(_PyUnicodeWriter *writer, PyObject
      *str,\n                             Py_ssize_t width, Py_ssize_t precision,
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:2702,1
    - Dst: unicode_decode_utf8_writer
      Src: /src/cpython/Objects/unicodeobject.c:2720,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2724,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - writer
    - str
    - width
    - precision
    - flags
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2694
    functionDepth: 4
    functionLinenumber: 2694
    functionLinenumberEnd: 2733
    functionName: unicode_fromformat_write_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - unicode_decode_utf8_writer
    - unicode_fromformat_write_str
    - PyUnicode_DecodeUTF8Stateful
    linkageType: ''
    returnType: int
    signature: "int unicode_fromformat_write_utf8(_PyUnicodeWriter *writer, const
      char *str,\n                              Py_ssize_t width, Py_ssize_t precision,
      int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:2741,1
    - Dst: PyUnicodeWriter_WriteWideChar
      Src: /src/cpython/Objects/unicodeobject.c:2751,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Objects/unicodeobject.c:2755,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - writer
    - str
    - width
    - precision
    - flags
    argTypes:
    - _PyUnicodeWriter*
    - wchar_t*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2735
    functionDepth: 5
    functionLinenumber: 2735
    functionLinenumberEnd: 2762
    functionName: unicode_fromformat_write_wcstr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicodeWriter_WriteWideChar
    - wcslen
    - PyUnicode_FromWideChar
    - unicode_fromformat_write_str
    linkageType: ''
    returnType: int
    signature: "int unicode_fromformat_write_wcstr(_PyUnicodeWriter *writer, const
      wchar_t *str,\n                              Py_ssize_t width, Py_ssize_t precision,
      int flags)"
  - BBCount: 97
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:2783,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2807,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2814,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2819,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2831,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2837,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2840,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2842,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2896,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2898,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:2902,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2938,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2939,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2940,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2941,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2942,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2943,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2948,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2953,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2954,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2959,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2960,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:2962,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2966,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/unicodeobject.c:2972,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2977,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:2982,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2986,1
    - Dst: sprintf
      Src: /src/cpython/Objects/unicodeobject.c:2997,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2997,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2998,1
    - Dst: memmove
      Src: /src/cpython/Objects/unicodeobject.c:3004,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:3005,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:3011,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3019,1
    - Dst: unicode_fromformat_write_wcstr
      Src: /src/cpython/Objects/unicodeobject.c:3020,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3025,1
    - Dst: unicode_fromformat_write_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3026,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3034,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3035,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:3035,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3037,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3044,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3048,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3051,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3054,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:3054,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3055,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3059,1
    - Dst: unicode_fromformat_write_wcstr
      Src: /src/cpython/Objects/unicodeobject.c:3060,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3064,1
    - Dst: unicode_fromformat_write_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3065,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3073,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3075,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:3076,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3083,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3089,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3091,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/unicodeobject.c:3092,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3099,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3105,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3107,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:3108,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3115,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3121,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:3122,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3122,1
    - Dst: _PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:3126,1
    - Dst: PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:3129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3131,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3141,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3147,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3148,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/unicodeobject.c:3150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3151,1
    - Dst: _PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:3158,1
    - Dst: PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:3161,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3171,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3177,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 320
    argCount: 3
    argNames:
    - writer
    - f
    - vargs
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - va_list*
    assertStmts:
    - condition: (_PyUnicode_CHECK(obj))
      pos:
        line_end: 3053
        line_start: 3053
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 3106
        line_start: 3106
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (len >= 0)
      pos:
        line_end: 2947
        line_start: 2947
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (str != NULL)
      pos:
        line_end: 3063
        line_start: 3063
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 3074
        line_start: 3074
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj && _PyUnicode_CHECK(obj))
      pos:
        line_end: 3034
        line_start: 3034
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (type_raw != NULL)
      pos:
        line_end: 3147
        line_start: 3147
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (wstr != NULL)
      pos:
        line_end: 3058
        line_start: 3058
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 3090
        line_start: 3090
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (len >= 0)
      pos:
        line_end: 2997
        line_start: 2997
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3183
      start: 2770
    functionDepth: 6
    functionLinenumber: 2770
    functionLinenumberEnd: 3183
    functionName: unicode_fromformat_arg
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyObject_Repr
    - PyType_GetFullyQualifiedName
    - strlen
    - PyErr_SetString
    - _PyUnicode_CHECK
    - unicode_fromformat_write_utf8
    - PyUnicode_Fill
    - PyErr_Format
    - _PyUnicodeWriter_Prepare
    - PyType_Check
    - _PyType_GetFullyQualifiedName
    - PyObject_Str
    - Py_DECREF
    - unicode_fromformat_write_wcstr
    - Py_NewRef
    - PyObject_ASCII
    - unicode_fromformat_write_str
    - _PyUnicodeWriter_WriteCharInline
    - Py_TYPE
    - _PyUnicodeWriter_WriteASCIIString
    - sprintf
    - memmove
    - DO_SPRINTS
    - va_arg
    - _PyUnicodeWriter_WriteChar
    - Py_ISDIGIT
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\nunicode_fromformat_arg(_PyUnicodeWriter *writer,\n                       const
      char *f, va_list *vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SIZE_SPEC
    - ','
    - FMT_CHAR
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2923
    functionDepth: 0
    functionLinenumber: 2923
    functionLinenumberEnd: 2925
    functionName: SPRINT
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPRINT(SIZE_SPEC, FMT_CHAR, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SIZE_SPEC
    - ','
    - SIGNED_TYPE
    - ','
    - UNSIGNED_TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2927
    functionDepth: 0
    functionLinenumber: 2927
    functionLinenumberEnd: 2935
    functionName: DO_SPRINTS
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_SPRINTS(SIZE_SPEC, SIGNED_TYPE, UNSIGNED_TYPE)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:3188,1
    - Dst: va_copy
      Src: /src/cpython/Objects/unicodeobject.c:3194,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:3198,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3202,1
    - Dst: unicode_fromformat_arg
      Src: /src/cpython/Objects/unicodeobject.c:3211,1
    - Dst: strchr
      Src: /src/cpython/Objects/unicodeobject.c:3216,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:3221,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:3225,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3231,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3235,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - writer
    - format
    - vargs
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 3185
    functionDepth: 7
    functionLinenumber: 3185
    functionLinenumberEnd: 3237
    functionName: unicode_from_format
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_fromformat_arg
    - strlen
    - va_copy
    - _PyUnicodeWriter_WriteASCIIString
    - ucs1lib_find_max_char
    - PyErr_Format
    - strchr
    - va_end
    linkageType: ''
    returnType: int
    signature: int unicode_from_format(_PyUnicodeWriter *writer, const char *format,
      va_list vargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:3243,1
    - Dst: unicode_from_format
      Src: /src/cpython/Objects/unicodeobject.c:3245,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:3246,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:3249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - format
    - vargs
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3239
    functionDepth: 8
    functionLinenumber: 3239
    functionLinenumberEnd: 3250
    functionName: PyUnicode_FromFormatV
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicodeWriter_Init
    - unicode_from_format
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromFormatV(const char *format, va_list vargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/unicodeobject.c:3258,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Objects/unicodeobject.c:3259,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3252
    functionDepth: 9
    functionLinenumber: 3252
    functionLinenumberEnd: 3262
    functionName: PyUnicode_FromFormat
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 120
    functionsReached:
    - PyUnicode_FromFormatV
    - va_start
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromFormat(const char *format, ...)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/unicodeobject.c:3271,1
    - Dst: unicode_from_format
      Src: /src/cpython/Objects/unicodeobject.c:3272,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - PyUnicodeWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3279
      start: 3264
    functionDepth: 8
    functionLinenumber: 3264
    functionLinenumberEnd: 3279
    functionName: PyUnicodeWriter_Format
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - unicode_from_format
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int PyUnicodeWriter_Format(PyUnicodeWriter *writer, const char *format,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3286,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3287,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:3287,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:3289,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3291,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (unicode != NULL)
      pos:
        line_end: 3285
        line_start: 3285
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 3286
        line_start: 3286
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3302
      start: 3281
    functionDepth: 1
    functionLinenumber: 3281
    functionLinenumberEnd: 3302
    functionName: unicode_get_widechar_size
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_CHECK
    - _PyUnicode_LENGTH
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicode_get_widechar_size(PyObject *unicode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3307,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3308,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:3308,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3310,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:3311,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3311,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3315,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3316,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3323,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3323,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3324,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3329,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3329,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3330,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3334,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:3336,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:3339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - unicode
    - w
    - size
    argTypes:
    - PyObject*
    - wchar_t*
    - Py_ssize_t
    assertStmts:
    - condition: (unicode != NULL)
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 3307
        line_start: 3307
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_2BYTE_KIND)
      pos:
        line_end: 3322
        line_start: 3322
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 3333
        line_start: 3333
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 3328
        line_start: 3328
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3347
      start: 3304
    functionDepth: 1
    functionLinenumber: 3304
    functionLinenumberEnd: 3347
    functionName: unicode_copy_as_widechar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_LOW_SURROGATE
    - PyUnicode_4BYTE_DATA
    - PyUnicode_2BYTE_DATA
    - _PyUnicode_CHECK
    - Py_UNICODE_HIGH_SURROGATE
    - memcpy
    - PyUnicode_DATA
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: void
    signature: void unicode_copy_as_widechar(PyObject *unicode, wchar_t *w, Py_ssize_t
      size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:3367,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3370,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3371,1
    - Dst: unicode_get_widechar_size
      Src: /src/cpython/Objects/unicodeobject.c:3375,1
    - Dst: unicode_copy_as_widechar
      Src: /src/cpython/Objects/unicodeobject.c:3386,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:3391,1
    - Dst: _Py_EncodeNonUnicodeWchar_InPlace
      Src: /src/cpython/Objects/unicodeobject.c:3392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - unicode
    - w
    - size
    argTypes:
    - PyObject*
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3399
      start: 3359
    functionDepth: 2
    functionLinenumber: 3359
    functionLinenumberEnd: 3399
    functionName: PyUnicode_AsWideChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - _Py_EncodeNonUnicodeWchar_InPlace
    - PyErr_BadInternalCall
    - unicode_copy_as_widechar
    - _Py_LocaleUsesNonUnicodeWchar
    - PyUnicode_Check
    - PyErr_BadArgument
    - unicode_get_widechar_size
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_AsWideChar(PyObject *unicode,\n                     wchar_t
      *w,\n                     Py_ssize_t size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:3409,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3412,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3413,1
    - Dst: unicode_get_widechar_size
      Src: /src/cpython/Objects/unicodeobject.c:3417,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:3418,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:3420,1
    - Dst: unicode_copy_as_widechar
      Src: /src/cpython/Objects/unicodeobject.c:3423,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:3428,1
    - Dst: _Py_EncodeNonUnicodeWchar_InPlace
      Src: /src/cpython/Objects/unicodeobject.c:3429,1
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:3438,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3439,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - unicode
    - size
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3401
    functionDepth: 2
    functionLinenumber: 3401
    functionLinenumberEnd: 3445
    functionName: PyUnicode_AsWideCharString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 47
    functionsReached:
    - _Py_EncodeNonUnicodeWchar_InPlace
    - PyErr_BadInternalCall
    - PyErr_SetString
    - unicode_copy_as_widechar
    - _Py_LocaleUsesNonUnicodeWchar
    - wcslen
    - PyMem_Free
    - PyMem_New
    - PyUnicode_Check
    - PyErr_BadArgument
    - unicode_get_widechar_size
    - PyErr_NoMemory
    linkageType: ''
    returnType: wchar_t
    signature: "wchar_t *\nPyUnicode_AsWideCharString(PyObject *unicode,\n                           Py_ssize_t
      *size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3454,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3458,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:3459,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3465,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3469
      start: 3449
    functionDepth: 3
    functionLinenumber: 3449
    functionLinenumberEnd: 3469
    functionName: _PyUnicode_WideCharString_Converter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_WideCharString_Converter(PyObject *obj, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3476,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3484,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:3485,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3491,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3471
    functionDepth: 3
    functionLinenumber: 3471
    functionLinenumberEnd: 3495
    functionName: _PyUnicode_WideCharString_Opt_Converter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_WideCharString_Opt_Converter(PyObject *obj, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3501,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:3506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ordinal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3497
    functionDepth: 5
    functionLinenumber: 3497
    functionLinenumberEnd: 3507
    functionName: PyUnicode_FromOrdinal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - PyErr_SetString
    - unicode_char
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromOrdinal(int ordinal)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:3514,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:3515,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3517,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/unicodeobject.c:3520,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3522,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3509
    functionDepth: 5
    functionLinenumber: 3509
    functionLinenumberEnd: 3526
    functionName: PyUnicode_FromObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - _PyUnicode_Copy
    - PyUnicode_CheckExact
    - Py_NewRef
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromObject(PyObject *obj)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:3537,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:3542,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:3543,1
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3544,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:3547,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3549,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:3550,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:3550,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3554,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3555,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/unicodeobject.c:3561,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3562,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3564,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/unicodeobject.c:3569,1
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3570,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:3573,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3576,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/unicodeobject.c:3577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3579
      start: 3528
    functionDepth: 2
    functionLinenumber: 3528
    functionLinenumberEnd: 3579
    functionName: PyUnicode_FromEncodedObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - PyErr_BadInternalCall
    - PyErr_SetString
    - _Py_RETURN_UNICODE_EMPTY
    - PyBytes_Check
    - PyObject_GetBuffer
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_Decode
    - PyBytes_AS_STRING
    - unicode_check_encoding_errors
    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/cpython/Objects/unicodeobject.c:3594,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Objects/unicodeobject.c:3606,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Objects/unicodeobject.c:3618,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: 3593
        line_start: 3593
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3628
      start: 3584
    functionDepth: 1
    functionLinenumber: 3584
    functionLinenumberEnd: 3628
    functionName: _Py_normalize_encoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_ISALNUM
    - Py_TOLOWER
    - assert
    linkageType: ''
    returnType: int
    signature: "int _Py_normalize_encoding(const char *encoding,\n                       char
      *lower,\n                       size_t lower_len)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3640,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:3645,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:3649,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Objects/unicodeobject.c:3653,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:3665,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/cpython/Objects/unicodeobject.c:3668,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Objects/unicodeobject.c:3671,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3675,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3676,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Objects/unicodeobject.c:3677,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3680,1
    - Dst: PyUnicode_DecodeMBCS
      Src: /src/cpython/Objects/unicodeobject.c:3681,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3684,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3685,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3686,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3687,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Objects/unicodeobject.c:3688,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Objects/unicodeobject.c:3695,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Objects/unicodeobject.c:3697,1
    - Dst: _PyCodec_DecodeText
      Src: /src/cpython/Objects/unicodeobject.c:3700,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3703,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3704,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3709,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3712,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:3713,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:3716,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 59
    argCount: 4
    argNames:
    - s
    - size
    - encoding
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3718
      start: 3630
    functionDepth: 4
    functionLinenumber: 3630
    functionLinenumberEnd: 3718
    functionName: PyUnicode_Decode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - Py_XDECREF
    - _PyCodec_DecodeText
    - strcmp
    - _Py_normalize_encoding
    - PyMemoryView_FromBuffer
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_DecodeLatin1
    - Py_DECREF
    - PyUnicode_DecodeUTF16
    - unicode_result
    - PyUnicode_DecodeUTF32
    - Py_TYPE
    - unicode_check_encoding_errors
    - PyUnicode_DecodeMBCS
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_DecodeASCII
    - PyBuffer_FillInfo
    - PyUnicode_DecodeUTF8Stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_Decode(const char *s,\n                 Py_ssize_t
      size,\n                 const char *encoding,\n                 const char *errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3725,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3726,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:3731,1
    - Dst: PyCodec_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3735
      start: 3721
    functionDepth: 1
    functionLinenumber: 3721
    functionLinenumberEnd: 3735
    functionName: PyUnicode_AsDecodedObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_BadArgument
    - PyCodec_Decode
    - PyUnicode_GetDefaultEncoding
    linkageType: ''
    returnType: void
    signature: "void PyUnicode_AsDecodedObject(PyObject *unicode,\n                          const
      char *encoding,\n                          const char *errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3744,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3745,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:3750,1
    - Dst: PyCodec_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3753,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3756,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3757,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3762,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:3765,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3738
    functionDepth: 4
    functionLinenumber: 3738
    functionLinenumberEnd: 3769
    functionName: PyUnicode_AsDecodedUnicode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - unicode_result
    - PyUnicode_GetDefaultEncoding
    - PyCodec_Decode
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_BadArgument
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: "void PyUnicode_AsDecodedUnicode(PyObject *unicode,\n                           const
      char *encoding,\n                           const char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3778,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3779,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:3784,1
    - Dst: PyCodec_Encode
      Src: /src/cpython/Objects/unicodeobject.c:3787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3772
    functionDepth: 1
    functionLinenumber: 3772
    functionLinenumberEnd: 3794
    functionName: PyUnicode_AsEncodedObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_BadArgument
    - PyCodec_Encode
    - PyUnicode_GetDefaultEncoding
    linkageType: ''
    returnType: void
    signature: "void PyUnicode_AsEncodedObject(PyObject *unicode,\n                          const
      char *encoding,\n                          const char *errors)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:3802,1
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:3807,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3808,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3809,1
    - Dst: _Py_EncodeLocaleEx
      Src: /src/cpython/Objects/unicodeobject.c:3816,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3818,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/unicodeobject.c:3823,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:3829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3830,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3834,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:3837,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Objects/unicodeobject.c:3842,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:3843,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: 3845
      start: 3797
    functionDepth: 3
    functionLinenumber: 3797
    functionLinenumberEnd: 3845
    functionName: unicode_encode_locale
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - PyCodec_StrictErrors
    - Py_DECREF
    - PyMem_RawFree
    - PyErr_SetString
    - PyErr_NoMemory
    - wcslen
    - _Py_EncodeLocaleEx
    - PyMem_Free
    - PyBytes_FromString
    - PyUnicode_AsWideCharString
    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/cpython/Objects/unicodeobject.c:3850,1
    - Dst: unicode_encode_locale
      Src: /src/cpython/Objects/unicodeobject.c:3851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3852
      start: 3847
    functionDepth: 4
    functionLinenumber: 3847
    functionLinenumberEnd: 3852
    functionName: PyUnicode_EncodeLocale
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - unicode_encode_locale
    - _Py_GetErrorHandler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_EncodeLocale(PyObject *unicode, const char *errors)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:3857,1
    - Dst: unicode_encode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3860,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Objects/unicodeobject.c:3866,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:3875,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3877,1
    - Dst: get_error_handler_wide
      Src: /src/cpython/Objects/unicodeobject.c:3878,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3879,1
    - Dst: unicode_encode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3881,1
    - Dst: unicode_encode_locale
      Src: /src/cpython/Objects/unicodeobject.c:3883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (filesystem_errors != NULL)
      pos:
        line_end: 3876
        line_start: 3876
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (errors != _Py_ERROR_UNKNOWN)
      pos:
        line_end: 3878
        line_start: 3878
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3885
      start: 3854
    functionDepth: 4
    functionLinenumber: 3854
    functionLinenumberEnd: 3885
    functionName: PyUnicode_EncodeFSDefault
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 15
    functionsReached:
    - get_error_handler_wide
    - _PyInterpreterState_GET
    - unicode_encode_locale
    - _PyInterpreterState_GetConfig
    - PyUnicode_AsEncodedString
    - unicode_encode_utf8
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_EncodeFSDefault(PyObject *unicode)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3896,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3897,1
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3901,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Objects/unicodeobject.c:3906,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Objects/unicodeobject.c:3910,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Objects/unicodeobject.c:3922,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Objects/unicodeobject.c:3925,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Objects/unicodeobject.c:3928,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3932,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3933,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:3934,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3937,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Objects/unicodeobject.c:3938,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3941,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3942,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3943,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3944,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/cpython/Objects/unicodeobject.c:3945,1
    - Dst: _PyCodec_EncodeText
      Src: /src/cpython/Objects/unicodeobject.c:3951,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:3956,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/unicodeobject.c:3960,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/unicodeobject.c:3964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3969,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:3973,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:3973,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:3974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3975,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3979,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3984,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3986
      start: 3888
    functionDepth: 4
    functionLinenumber: 3888
    functionLinenumberEnd: 3986
    functionName: PyUnicode_AsEncodedString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 11
    functionsReached:
    - PyErr_WarnFormat
    - _PyUnicode_AsUTF8String
    - _PyCodec_EncodeText
    - PyBytes_Check
    - _PyUnicode_AsLatin1String
    - _PyUnicode_AsASCIIString
    - PyErr_BadArgument
    - strcmp
    - _Py_normalize_encoding
    - _PyUnicode_EncodeUTF32
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_EncodeCodePage
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - Py_TYPE
    - unicode_check_encoding_errors
    - PyByteArray_Check
    - _PyUnicode_EncodeUTF16
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsEncodedString(PyObject *unicode,\n                          const
      char *encoding,\n                          const char *errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3995,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3996,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:4001,1
    - Dst: PyCodec_Encode
      Src: /src/cpython/Objects/unicodeobject.c:4004,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:4007,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:4008,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:4012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4013,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 3989
    functionDepth: 1
    functionLinenumber: 3989
    functionLinenumberEnd: 4020
    functionName: PyUnicode_AsEncodedUnicode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_GetDefaultEncoding
    - PyCodec_Encode
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_BadArgument
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: "void PyUnicode_AsEncodedUnicode(PyObject *unicode,\n                           const
      char *encoding,\n                           const char *errors)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:4026,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4027,1
    - Dst: _Py_DecodeLocaleEx
      Src: /src/cpython/Objects/unicodeobject.c:4034,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/unicodeobject.c:4039,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:4045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4046,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4050,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:4053,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Objects/unicodeobject.c:4058,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:4059,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: 4061
      start: 4022
    functionDepth: 5
    functionLinenumber: 4022
    functionLinenumberEnd: 4061
    functionName: unicode_decode_locale
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyCodec_StrictErrors
    - PyObject_CallFunction
    - strlen
    - Py_DECREF
    - PyMem_RawFree
    - PyErr_SetString
    - _Py_DecodeLocaleEx
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    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/cpython/Objects/unicodeobject.c:4067,1
    - Dst: unicode_decode_locale
      Src: /src/cpython/Objects/unicodeobject.c:4068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4069
      start: 4063
    functionDepth: 6
    functionLinenumber: 4063
    functionLinenumberEnd: 4069
    functionName: PyUnicode_DecodeLocaleAndSize
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:4074,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:4075,1
    - Dst: unicode_decode_locale
      Src: /src/cpython/Objects/unicodeobject.c:4076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 4071
    functionDepth: 6
    functionLinenumber: 4071
    functionLinenumberEnd: 4077
    functionName: PyUnicode_DecodeLocale
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 15
    functionsReached:
    - unicode_decode_locale
    - strlen
    - _Py_GetErrorHandler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_DecodeLocale(const char *str, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:4082,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Objects/unicodeobject.c:4083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4084
      start: 4080
    functionDepth: 1
    functionLinenumber: 4080
    functionLinenumberEnd: 4084
    functionName: PyUnicode_DecodeFSDefault
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 18
    functionsReached:
    - PyUnicode_DecodeFSDefaultAndSize
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_DecodeFSDefault(const char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:4089,1
    - Dst: unicode_decode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:4092,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Objects/unicodeobject.c:4099,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:4108,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4110,1
    - Dst: get_error_handler_wide
      Src: /src/cpython/Objects/unicodeobject.c:4111,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4112,1
    - Dst: unicode_decode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:4114,1
    - Dst: unicode_decode_locale
      Src: /src/cpython/Objects/unicodeobject.c:4116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (filesystem_errors != NULL)
      pos:
        line_end: 4109
        line_start: 4109
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (errors != _Py_ERROR_UNKNOWN)
      pos:
        line_end: 4111
        line_start: 4111
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4118
      start: 4086
    functionDepth: 6
    functionLinenumber: 4086
    functionLinenumberEnd: 4118
    functionName: PyUnicode_DecodeFSDefaultAndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - unicode_decode_utf8
    - get_error_handler_wide
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetConfig
    - PyUnicode_Decode
    - assert
    - unicode_decode_locale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4130,1
    - Dst: PyOS_FSPath
      Src: /src/cpython/Objects/unicodeobject.c:4134,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:4138,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Objects/unicodeobject.c:4142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4143,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4147,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:4147,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4150,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4151,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:4152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyBytes_Check(output))
      pos:
        line_end: 4146
        line_start: 4146
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4159
      start: 4122
    functionDepth: 5
    functionLinenumber: 4122
    functionLinenumberEnd: 4159
    functionName: PyUnicode_FSConverter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 26
    functionsReached:
    - Py_DECREF
    - strlen
    - PyErr_SetString
    - PyOS_FSPath
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnicode_FSConverter(PyObject* arg, void* addr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4166,1
    - Dst: PyOS_FSPath
      Src: /src/cpython/Objects/unicodeobject.c:4171,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:4177,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:4180,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Objects/unicodeobject.c:4181,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4181,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4183,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:4189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:4191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4192,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:4196,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4196,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4196,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4204
      start: 4162
    functionDepth: 7
    functionLinenumber: 4162
    functionLinenumberEnd: 4204
    functionName: PyUnicode_FSDecoder
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - PyUnicode_KIND
    - Py_DECREF
    - PyErr_SetString
    - PyOS_FSPath
    - PyBytes_Check
    - Py_TYPE
    - findchar
    - PyBytes_GET_SIZE
    - PyUnicode_DecodeFSDefaultAndSize
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int PyUnicode_FSDecoder(PyObject* arg, void* addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:4214,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/unicodeobject.c:4215,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:4216,1
    - Dst: unicode_fill_utf8
      Src: /src/cpython/Objects/unicodeobject.c:4217,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/unicodeobject.c:4219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4210
    functionDepth: 3
    functionLinenumber: 4210
    functionLinenumberEnd: 4222
    functionName: unicode_ensure_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - unicode_fill_utf8
    - PyUnicode_UTF8
    linkageType: ''
    returnType: int
    signature: int unicode_ensure_utf8(PyObject *unicode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:4227,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4228,1
    - Dst: unicode_ensure_utf8
      Src: /src/cpython/Objects/unicodeobject.c:4235,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4243,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:4245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - unicode
    - psize
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4246
      start: 4224
    functionDepth: 4
    functionLinenumber: 4224
    functionLinenumberEnd: 4246
    functionName: PyUnicode_AsUTF8AndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 142
    functionsReached:
    - unicode_ensure_utf8
    - PyUnicode_UTF8_LENGTH
    - PyUnicode_Check
    - PyErr_BadArgument
    - PyUnicode_UTF8
    linkageType: ''
    returnType: char
    signature: 'char *

      PyUnicode_AsUTF8AndSize(PyObject *unicode, Py_ssize_t *psize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/unicodeobject.c:4251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4248
    functionDepth: 5
    functionLinenumber: 4248
    functionLinenumberEnd: 4252
    functionName: PyUnicode_AsUTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 38
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: char
    signature: 'char *

      PyUnicode_AsUTF8(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/unicodeobject.c:4258,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:4259,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4254
    functionDepth: 5
    functionLinenumber: 4254
    functionLinenumberEnd: 4264
    functionName: _PyUnicode_AsUTF8NoNUL
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyErr_SetString
    - strlen
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyUnicode_AsUTF8NoNUL(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4280
      start: 4275
    functionDepth: 1
    functionLinenumber: 4275
    functionLinenumberEnd: 4280
    functionName: PyUnicode_GetSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void PyUnicode_GetSize(PyObject *unicode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:4285,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4286,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4282
    functionDepth: 1
    functionLinenumber: 4282
    functionLinenumberEnd: 4290
    functionName: PyUnicode_GetLength
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 13
    functionsReached:
    - PyUnicode_Check
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyUnicode_GetLength(PyObject *unicode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:4298,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4299,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4302,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4303,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4306,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4307,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:4308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - unicode
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4292
    functionDepth: 1
    functionLinenumber: 4292
    functionLinenumberEnd: 4309
    functionName: PyUnicode_ReadChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_KIND
    - PyErr_SetString
    - PyUnicode_READ
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - 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/cpython/Objects/unicodeobject.c:4314,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:4314,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4315,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4319,1
    - Dst: unicode_check_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:4322,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:4324,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4325,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:4328,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4328,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4328,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - unicode
    - index
    - ch
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4311
    functionDepth: 2
    functionLinenumber: 4311
    functionLinenumberEnd: 4331
    functionName: PyUnicode_WriteChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_KIND
    - unicode_check_modifiable
    - PyUnicode_IS_COMPACT
    - PyErr_SetString
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_WRITE
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - 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: 4337
      start: 4333
    functionDepth: 0
    functionLinenumber: 4333
    functionLinenumberEnd: 4337
    functionName: PyUnicode_GetDefaultEncoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      PyUnicode_GetDefaultEncoding(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/cpython/Objects/unicodeobject.c:4348,1
    - Dst: PyUnicodeDecodeError_SetStart
      Src: /src/cpython/Objects/unicodeobject.c:4352,1
    - Dst: PyUnicodeDecodeError_SetEnd
      Src: /src/cpython/Objects/unicodeobject.c:4354,1
    - Dst: PyUnicodeDecodeError_SetReason
      Src: /src/cpython/Objects/unicodeobject.c:4356,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:4362,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: 4363
      start: 4340
    functionDepth: 3
    functionLinenumber: 4340
    functionLinenumberEnd: 4363
    functionName: make_decode_exception
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeDecodeError_SetEnd
    - PyUnicodeDecodeError_Create
    - PyUnicodeDecodeError_SetStart
    - PyUnicodeDecodeError_SetReason
    - Py_CLEAR
    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/cpython/Objects/unicodeobject.c:4371,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:4372,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: 4379
      start: 4366
    functionDepth: 1
    functionLinenumber: 4366
    functionLinenumberEnd: 4379
    functionName: widechar_resize
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:4408,1
    - Dst: make_decode_exception
      Src: /src/cpython/Objects/unicodeobject.c:4413,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:4421,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:4424,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4425,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:4428,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/cpython/Objects/unicodeobject.c:4433,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4436,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4441,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:4446,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Objects/unicodeobject.c:4450,1
    - Dst: widechar_resize
      Src: /src/cpython/Objects/unicodeobject.c:4469,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Objects/unicodeobject.c:4473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4479,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4483,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4487,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    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: 4489
      start: 4388
    functionDepth: 5
    functionLinenumber: 4388
    functionLinenumberEnd: 4489
    functionName: unicode_decode_call_errorhandler_wchar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyArg_ParseTuple
    - PyCodec_LookupError
    - PyTuple_Check
    - PyErr_SetString
    - PyUnicode_AsWideChar
    - PyUnicodeDecodeError_GetObject
    - PyObject_CallOneArg
    - widechar_resize
    - PyBytes_GET_SIZE
    - PyErr_Format
    - make_decode_exception
    - PyBytes_AS_STRING
    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/cpython/Objects/unicodeobject.c:4513,1
    - Dst: make_decode_exception
      Src: /src/cpython/Objects/unicodeobject.c:4518,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:4526,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:4529,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4530,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:4533,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/cpython/Objects/unicodeobject.c:4538,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4542,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4547,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:4552,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4556,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:4573,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:4574,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:4577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4584,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4588,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: 4590
      start: 4492
    functionDepth: 5
    functionLinenumber: 4492
    functionLinenumberEnd: 4590
    functionName: unicode_decode_call_errorhandler_writer
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyArg_ParseTuple
    - PyCodec_LookupError
    - PyTuple_Check
    - PyErr_SetString
    - PyUnicodeDecodeError_GetObject
    - PyUnicode_MAX_CHAR_VALUE
    - PyObject_CallOneArg
    - _PyUnicodeWriter_WriteStr
    - PyBytes_GET_SIZE
    - PyErr_Format
    - make_decode_exception
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - _PyUnicodeWriter_Prepare
    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: 4605
      start: 4600
    functionDepth: 0
    functionLinenumber: 4600
    functionLinenumberEnd: 4605
    functionName: IS_BASE64
    functionSourceFile: /src/cpython/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: 4613
      start: 4608
    functionDepth: 0
    functionLinenumber: 4608
    functionLinenumberEnd: 4613
    functionName: FROM_BASE64
    functionSourceFile: /src/cpython/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: 4618
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4618
    functionName: TO_BASE64
    functionSourceFile: /src/cpython/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: 4626
      start: 4624
    functionDepth: 0
    functionLinenumber: 4624
    functionLinenumberEnd: 4626
    functionName: DECODE_DIRECT
    functionSourceFile: /src/cpython/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: 4672
      start: 4667
    functionDepth: 0
    functionLinenumber: 4667
    functionLinenumberEnd: 4672
    functionName: ENCODE_DIRECT
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_DIRECT(c, directO, directWS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF7Stateful
      Src: /src/cpython/Objects/unicodeobject.c:4678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4679
      start: 4673
    functionDepth: 1
    functionLinenumber: 4673
    functionLinenumberEnd: 4679
    functionName: PyUnicode_DecodeUTF7
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    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/cpython/Objects/unicodeobject.c:4711,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:4715,1
    - Dst: IS_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4727,1
    - Dst: FROM_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4728,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4736,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4739,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:4740,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4741,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4747,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4752,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4757,1
    - Dst: DECODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4780,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4781,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4797,1
    - Dst: IS_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4800,1
    - Dst: DECODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4813,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4815,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:4827,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:4844,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Objects/unicodeobject.c:4860,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4862,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4863,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:4864,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4874,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4875,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:4876,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4879,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4880,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:4881,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: 4735
        line_start: 4735
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4883
      start: 4688
    functionDepth: 7
    functionLinenumber: 4688
    functionLinenumberEnd: 4883
    functionName: PyUnicode_DecodeUTF7Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - FROM_BASE64
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - Py_UNICODE_IS_LOW_SURROGATE
    - unicode_decode_call_errorhandler_writer
    - PyUnicode_FromKindAndData
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_WriteCharInline
    - DECODE_DIRECT
    - _PyUnicodeWriter_Finish
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - IS_BASE64
    - _PyUnicodeWriter_Dealloc
    - assert
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4903,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4904,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4905,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:4908,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:4912,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:4913,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4917,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:4919,1
    - Dst: ENCODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4922,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4925,1
    - Dst: IS_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4932,1
    - Dst: ENCODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4946,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4958,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4962,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4964,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4968,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4973,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4978,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:4981,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 4
    argNames:
    - str
    - base64SetO
    - base64WhiteSpace
    - errors
    argTypes:
    - PyObject*
    - int
    - int
    - char*
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 4957
        line_start: 4957
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4984
      start: 4886
    functionDepth: 6
    functionLinenumber: 4886
    functionLinenumberEnd: 4984
    functionName: _PyUnicode_EncodeUTF7
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_LOW_SURROGATE
    - assert
    - TO_BASE64
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyUnicode_READ
    - PyBytes_AS_STRING
    - Py_UNICODE_HIGH_SURROGATE
    - ENCODE_DIRECT
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - IS_BASE64
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeUTF7(PyObject *str,\n                      int
      base64SetO,\n                      int base64WhiteSpace,\n                      const
      char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:4999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5000
      start: 4994
    functionDepth: 1
    functionLinenumber: 4994
    functionLinenumberEnd: 5000
    functionName: PyUnicode_DecodeUTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 22
    functionsReached:
    - PyUnicode_DecodeUTF8Stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF8(const char *s,\n                     Py_ssize_t
      size,\n                     const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctzll
      Src: /src/cpython/Objects/unicodeobject.c:5038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5039
      start: 5035
    functionDepth: 0
    functionLinenumber: 5035
    functionLinenumberEnd: 5039
    functionName: ctz
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - __builtin_ctzll
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ctz(size_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward
      Src: /src/cpython/Objects/unicodeobject.c:5047,1
    - Dst: _BitScanForward64
      Src: /src/cpython/Objects/unicodeobject.c:5049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5052
      start: 5042
    functionDepth: 0
    functionLinenumber: 5042
    functionLinenumberEnd: 5052
    functionName: ctz
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _BitScanForward
    - _BitScanForward64
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ctz(size_t v)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5102
      start: 5059
    functionDepth: 0
    functionLinenumber: 5059
    functionLinenumberEnd: 5102
    functionName: load_unaligned
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t load_unaligned(const unsigned char *p, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5126,1
    - Dst: ctz
      Src: /src/cpython/Objects/unicodeobject.c:5129,1
    - Dst: _Py_ALIGN_DOWN
      Src: /src/cpython/Objects/unicodeobject.c:5131,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Objects/unicodeobject.c:5133,1
    - Dst: ctz
      Src: /src/cpython/Objects/unicodeobject.c:5147,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5158,1
    - Dst: load_unaligned
      Src: /src/cpython/Objects/unicodeobject.c:5160,1
    - Dst: ctz
      Src: /src/cpython/Objects/unicodeobject.c:5162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts:
    - condition: ((end - p) < SIZEOF_SIZE_T)
      pos:
        line_end: 5157
        line_start: 5157
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5174
      start: 5113
    functionDepth: 1
    functionLinenumber: 5113
    functionLinenumberEnd: 5174
    functionName: find_first_nonascii
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - load_unaligned
    - _Py_ALIGN_DOWN
    - _Py_ALIGN_UP
    - ctz
    - memcpy
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t find_first_nonascii(const unsigned char *start, const unsigned
      char *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5181
      start: 5176
    functionDepth: 0
    functionLinenumber: 5176
    functionLinenumberEnd: 5181
    functionName: scalar_utf8_start_char
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scalar_utf8_start_char(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5187
      start: 5183
    functionDepth: 0
    functionLinenumber: 5183
    functionLinenumberEnd: 5187
    functionName: vector_utf8_start_chars
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t vector_utf8_start_chars(size_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:5197,1
    - Dst: scalar_utf8_start_char
      Src: /src/cpython/Objects/unicodeobject.c:5198,1
    - Dst: vector_utf8_start_chars
      Src: /src/cpython/Objects/unicodeobject.c:5209,1
    - Dst: scalar_utf8_start_char
      Src: /src/cpython/Objects/unicodeobject.c:5222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5225
      start: 5191
    functionDepth: 1
    functionLinenumber: 5191
    functionLinenumberEnd: 5225
    functionName: utf8_count_codepoints
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - scalar_utf8_start_char
    - vector_utf8_start_chars
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t utf8_count_codepoints(const unsigned char *s, const unsigned
      char *end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:5231,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:5232,1
    - Dst: find_first_nonascii
      Src: /src/cpython/Objects/unicodeobject.c:5254,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - start
    - end
    - dest
    argTypes:
    - char*
    - char*
    - Py_UCS1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5258
      start: 5227
    functionDepth: 2
    functionLinenumber: 5227
    functionLinenumberEnd: 5258
    functionName: ascii_decode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _Py_IS_ALIGNED
    - find_first_nonascii
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t ascii_decode(const char *start, const char *end, Py_UCS1
      *dest)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:5277,1
    - Dst: asciilib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5278,1
    - Dst: ucs1lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5280,1
    - Dst: ucs2lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5282,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5284,1
    - Dst: ucs4lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5285,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:5318,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:5324,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:5332,1
    - Dst: _PyUnicodeWriter_PrepareKind
      Src: /src/cpython/Objects/unicodeobject.c:5341,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:5345,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:5354,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:5362,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5372,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5373,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5377,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5378,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 91
    argCount: 7
    argNames:
    - writer
    - starts
    - s
    - end
    - error_handler
    - errors
    - consumed
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - char*
    - char*
    - _Py_error_handler
    - char*
    - Py_ssize_t*
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 5283
        line_start: 5283
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5380
      start: 5260
    functionDepth: 6
    functionLinenumber: 5260
    functionLinenumberEnd: 5380
    functionName: unicode_decode_utf8_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyUnicodeWriter_PrepareKind
    - unicode_decode_call_errorhandler_writer
    - _Py_GetErrorHandler
    - _PyUnicodeWriter_Prepare
    - ucs4lib_utf8_decode
    - asciilib_utf8_decode
    - PyUnicode_IS_ASCII
    - ucs1lib_utf8_decode
    - PyUnicode_WRITE
    - _PyUnicodeWriter_WriteCharInline
    - assert
    - ucs2lib_utf8_decode
    linkageType: ''
    returnType: int
    signature: "int unicode_decode_utf8_impl(_PyUnicodeWriter *writer,\n                         const
      char *starts, const char *s, const char *end,\n                         _Py_error_handler
      error_handler,\n                         const char *errors,\n                         Py_ssize_t
      *consumed)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:5392,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:5400,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:5406,1
    - Dst: find_first_nonascii
      Src: /src/cpython/Objects/unicodeobject.c:5413,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:5415,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5419,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5419,1
    - Dst: utf8_count_codepoints
      Src: /src/cpython/Objects/unicodeobject.c:5441,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:5452,1
    - Dst: _PyUnicodeWriter_InitWithBuffer
      Src: /src/cpython/Objects/unicodeobject.c:5459,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5461,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5461,1
    - Dst: unicode_decode_utf8_impl
      Src: /src/cpython/Objects/unicodeobject.c:5467,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:5470,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:5473,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 5
    argNames:
    - s
    - size
    - error_handler
    - errors
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - _Py_error_handler
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5383
    functionDepth: 7
    functionLinenumber: 5383
    functionLinenumberEnd: 5474
    functionName: unicode_decode_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_InitWithBuffer
    - _PyUnicodeWriter_Dealloc
    - utf8_count_codepoints
    - get_latin1_char
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_1BYTE_DATA
    - unicode_decode_utf8_impl
    - _PyUnicodeWriter_Finish
    - PyUnicode_New
    - memcpy
    - find_first_nonascii
    - PyErr_NoMemory
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:5492,1
    - Dst: ascii_decode
      Src: /src/cpython/Objects/unicodeobject.c:5501,1
    - Dst: unicode_decode_utf8_impl
      Src: /src/cpython/Objects/unicodeobject.c:5514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - writer
    - s
    - size
    - error_handler
    - errors
    - consumed
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - Py_ssize_t
    - _Py_error_handler
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5516
      start: 5478
    functionDepth: 7
    functionLinenumber: 5478
    functionLinenumberEnd: 5516
    functionName: unicode_decode_utf8_writer
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - unicode_decode_utf8_impl
    - ascii_decode
    - _PyUnicodeWriter_Prepare
    linkageType: ''
    returnType: int
    signature: "int unicode_decode_utf8_writer(_PyUnicodeWriter *writer,\n                           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/cpython/Objects/unicodeobject.c:5525,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: 5528
      start: 5519
    functionDepth: 8
    functionLinenumber: 5519
    functionLinenumberEnd: 5528
    functionName: PyUnicode_DecodeUTF8Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    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/cpython/Objects/unicodeobject.c:5574,1
    - Dst: ucs4lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5585,1
    - Dst: ucs2lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5587,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:5591,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5593,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5595,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5596,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:5620,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: 5592
        line_start: 5592
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5649
      start: 5543
    functionDepth: 1
    functionLinenumber: 5543
    functionLinenumberEnd: 5649
    functionName: _Py_DecodeUTF8Ex
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_LOW_SURROGATE
    - Py_UNREACHABLE
    - PyMem_RawFree
    - ucs4lib_utf8_decode
    - PyMem_RawMalloc
    - Py_UNICODE_HIGH_SURROGATE
    - assert
    - ucs2lib_utf8_decode
    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/cpython/Objects/unicodeobject.c:5657,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5662,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: 5661
        line_start: 5661
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5669
      start: 5652
    functionDepth: 2
    functionLinenumber: 5652
    functionLinenumberEnd: 5669
    functionName: _Py_DecodeUTF8_surrogateescape
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_DecodeUTF8Ex
    - assert
    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/cpython/Objects/unicodeobject.c:5687,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5689,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/unicodeobject.c:5712,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:5715,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5728,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5730,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:5732,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5747,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:5757,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:5760,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5772,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Objects/unicodeobject.c:5785,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:5788,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:5795,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:5798,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: 5688
        line_start: 5688
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 5771
        line_start: 5771
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5804
      start: 5682
    functionDepth: 2
    functionLinenumber: 5682
    functionLinenumberEnd: 5804
    functionName: _Py_EncodeUTF8Ex
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyMem_RawFree
    - Py_UNICODE_IS_LOW_SURROGATE
    - wcslen
    - Py_UNICODE_IS_SURROGATE
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - PyMem_Free
    - assert
    - PyMem_Malloc
    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/cpython/Objects/unicodeobject.c:5818,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:5819,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:5823,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:5824,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:5824,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5825,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:5827,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5828,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5829,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:5836,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5839,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:5839,1
    - Dst: ucs1lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5840,1
    - Dst: ucs2lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5843,1
    - Dst: ucs4lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5846,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:5851,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:5854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - unicode
    - error_handler
    - errors
    argTypes:
    - PyObject*
    - _Py_error_handler
    - char*
    assertStmts:
    - condition: (!PyUnicode_IS_ASCII(unicode))
      pos:
        line_end: 5838
        line_start: 5838
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5855
      start: 5814
    functionDepth: 7
    functionLinenumber: 5814
    functionLinenumberEnd: 5855
    functionName: unicode_encode_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - assert
    - ucs2lib_utf8_encoder
    - PyBytes_FromStringAndSize
    - PyUnicode_GET_LENGTH
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Finish
    - PyUnicode_IS_ASCII
    - PyUnicode_UTF8_LENGTH
    - ucs1lib_utf8_encoder
    - ucs4lib_utf8_encoder
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - PyUnicode_UTF8
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_encode_utf8(PyObject *unicode, _Py_error_handler
      error_handler,\n                    const char *errors)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/unicodeobject.c:5860,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5862,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:5862,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:5864,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5865,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5866,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:5873,1
    - Dst: ucs1lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5875,1
    - Dst: ucs2lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5879,1
    - Dst: ucs4lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5883,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:5888,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:5893,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:5896,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:5898,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:5899,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5902,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5904,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:5905,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:5906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyUnicode_IS_ASCII(unicode))
      pos:
        line_end: 5861
        line_start: 5861
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5908
      start: 5857
    functionDepth: 2
    functionLinenumber: 5857
    functionLinenumberEnd: 5908
    functionName: unicode_fill_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - Py_UNREACHABLE
    - ucs2lib_utf8_encoder
    - PyMem_Malloc
    - _PyBytesWriter_Dealloc
    - PyUnicode_SET_UTF8
    - PyUnicode_IS_ASCII
    - PyUnicode_SET_UTF8_LENGTH
    - PyBytes_AS_STRING
    - ucs1lib_utf8_encoder
    - ucs4lib_utf8_encoder
    - memcpy
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int unicode_fill_utf8(PyObject *unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_encode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:5913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5914
      start: 5910
    functionDepth: 8
    functionLinenumber: 5910
    functionLinenumberEnd: 5914
    functionName: _PyUnicode_AsUTF8String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - unicode_encode_utf8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_AsUTF8String(PyObject *unicode, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Objects/unicodeobject.c:5920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5921
      start: 5917
    functionDepth: 9
    functionLinenumber: 5917
    functionLinenumberEnd: 5921
    functionName: PyUnicode_AsUTF8String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 13
    functionsReached:
    - _PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUTF8String(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF32Stateful
      Src: /src/cpython/Objects/unicodeobject.c:5931,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: 5932
      start: 5925
    functionDepth: 1
    functionLinenumber: 5925
    functionLinenumberEnd: 5932
    functionName: PyUnicode_DecodeUTF32
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    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/cpython/Objects/unicodeobject.c:5979,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:5989,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:5991,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:5996,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:6009,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:6011,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:6021,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:6023,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:6030,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:6045,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:6057,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6068,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6069,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:6070,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:6073,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6074,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6075,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: 6077
      start: 5934
    functionDepth: 6
    functionLinenumber: 5934
    functionLinenumberEnd: 6077
    functionName: PyUnicode_DecodeUTF32Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - unicode_decode_call_errorhandler_writer
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_MAX_CHAR_VALUE
    - Py_UNICODE_IS_SURROGATE
    - PyUnicode_WRITE
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_WriteCharInline
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_Prepare
    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: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6100,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:6101,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6104,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6105,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6106,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:6109,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:6111,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6116,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:6116,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6116,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6117,1
    - Dst: ucs1lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:6131,1
    - Dst: ucs2lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:6140,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6144,1
    - Dst: ucs4lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:6145,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:6151,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6158,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6159,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6161,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6169,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6169,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6170,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:6171,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6172,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6183,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6184,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:6186,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:6189,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6189,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6191,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6194,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:6195,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6195,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6198,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6198,1
    - Dst: ucs1lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:6199,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6199,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:6203,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6209,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6210,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:6211,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6212,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6213,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6217,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6218,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6219,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6220,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 99
    argCount: 3
    argNames:
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(v), 4))
      pos:
        line_end: 6115
        line_start: 6115
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 6143
        line_start: 6143
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 6168
        line_start: 6168
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 6197
        line_start: 6197
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6222
      start: 6079
    functionDepth: 6
    functionLinenumber: 6079
    functionLinenumberEnd: 6222
    functionName: _PyUnicode_EncodeUTF32
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - Py_XDECREF
    - PyBytes_Check
    - PyUnicode_IS_ASCII
    - PyBytes_GET_SIZE
    - unicode_encode_call_errorhandler
    - PyErr_BadArgument
    - Py_CLEAR
    - PyUnicode_KIND
    - ucs1lib_utf32_encode
    - PyUnicode_Check
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _Py_IS_ALIGNED
    - memcpy
    - ucs2lib_utf32_encode
    - PyBytes_AS_STRING
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - PyUnicode_1BYTE_DATA
    - ucs4lib_utf32_encode
    - raise_encode_exception
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeUTF32(PyObject *str,\n                       const
      char *errors,\n                       int byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Objects/unicodeobject.c:6227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6228
      start: 6224
    functionDepth: 7
    functionLinenumber: 6224
    functionLinenumberEnd: 6228
    functionName: PyUnicode_AsUTF32String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUTF32String(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/cpython/Objects/unicodeobject.c:6238,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: 6239
      start: 6232
    functionDepth: 1
    functionLinenumber: 6232
    functionLinenumberEnd: 6239
    functionName: PyUnicode_DecodeUTF16
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    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/cpython/Objects/unicodeobject.c:6287,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:6301,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:6303,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:6311,1
    - Dst: asciilib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6312,1
    - Dst: ucs1lib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6316,1
    - Dst: ucs2lib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6320,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6324,1
    - Dst: ucs4lib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6325,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:6362,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:6367,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6385,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6386,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:6387,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:6390,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6391,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6392,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: 6323
        line_start: 6323
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6394
      start: 6241
    functionDepth: 6
    functionLinenumber: 6241
    functionLinenumberEnd: 6394
    functionName: PyUnicode_DecodeUTF16Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - _PyUnicodeWriter_Init
    - assert
    - asciilib_utf16_decode
    - Py_XDECREF
    - unicode_decode_call_errorhandler_writer
    - _Py_RETURN_UNICODE_EMPTY
    - ucs1lib_utf16_decode
    - PyUnicode_IS_ASCII
    - ucs2lib_utf16_decode
    - ucs4lib_utf16_decode
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_WriteCharInline
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_Prepare
    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: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6418,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:6419,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6422,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6423,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6424,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:6437,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:6440,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6446,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:6446,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6446,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6447,1
    - Dst: ucs1lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6456,1
    - Dst: ucs2lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6475,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6479,1
    - Dst: ucs4lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6480,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:6486,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6493,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6494,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6496,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6504,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6504,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6505,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:6506,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6507,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6518,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6519,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:6521,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:6524,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6524,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6526,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6529,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:6530,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6530,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6533,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6533,1
    - Dst: ucs1lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6534,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6534,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:6538,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6544,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6545,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:6546,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6547,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6548,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6552,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6553,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6554,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6555,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 114
    argCount: 3
    argNames:
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 6478
        line_start: 6478
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 6503
        line_start: 6503
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 6532
        line_start: 6532
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(v), 2))
      pos:
        line_end: 6445
        line_start: 6445
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6558
      start: 6396
    functionDepth: 6
    functionLinenumber: 6396
    functionLinenumberEnd: 6558
    functionName: _PyUnicode_EncodeUTF16
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - Py_XDECREF
    - PyBytes_Check
    - PyUnicode_IS_ASCII
    - PyBytes_GET_SIZE
    - unicode_encode_call_errorhandler
    - ucs2lib_utf16_encode
    - PyErr_BadArgument
    - Py_CLEAR
    - PyUnicode_KIND
    - ucs1lib_utf16_encode
    - PyUnicode_Check
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - ucs4lib_utf16_encode
    - _Py_IS_ALIGNED
    - memcpy
    - PyBytes_AS_STRING
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - PyUnicode_1BYTE_DATA
    - raise_encode_exception
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeUTF16(PyObject *str,\n                       const
      char *errors,\n                       int byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Objects/unicodeobject.c:6563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6564
      start: 6560
    functionDepth: 7
    functionLinenumber: 6560
    functionLinenumberEnd: 6564
    functionName: PyUnicode_AsUTF16String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_EncodeUTF16
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUTF16String(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:6569,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/unicodeobject.c:6572,1
    - Dst: PyCapsule_Import
      Src: /src/cpython/Objects/unicodeobject.c:6574,1
    - Dst: _Py_atomic_store_ptr
      Src: /src/cpython/Objects/unicodeobject.c:6578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6581
      start: 6566
    functionDepth: 1
    functionLinenumber: 6566
    functionLinenumberEnd: 6581
    functionName: _PyUnicode_GetNameCAPI
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ptr
    - PyCapsule_Import
    - _PyInterpreterState_GET
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: _PyUnicode_Name_CAPI
    signature: '_PyUnicode_Name_CAPI *

      _PyUnicode_GetNameCAPI(void)'
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:6609,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:6616,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:6618,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6649,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6661,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6666,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6667,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6668,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6669,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6671,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6672,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6673,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6674,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6676,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6678,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6699,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6746,1
    - Dst: _PyUnicode_GetNameCAPI
      Src: /src/cpython/Objects/unicodeobject.c:6751,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:6753,1
    - Dst: _PyUnicode_Name_CAPI*::getcode
      Src: /src/cpython/Objects/unicodeobject.c:6779,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6781,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6782,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6798,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6799,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:6811,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6818,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6824,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6825,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:6826,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:6829,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6830,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6831,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 197
    argCount: 6
    argNames:
    - s
    - size
    - errors
    - consumed
    - first_invalid_escape_char
    - first_invalid_escape_ptr
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    - int*
    - char**
    assertStmts:
    - condition: (end - s <= writer.size - writer.pos)
      pos:
        line_end: 6817
        line_start: 6817
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (writer.pos < writer.size)
      pos:
        line_end: 6660
        line_start: 6660
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 6780
        line_start: 6780
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6833
      start: 6585
    functionDepth: 6
    functionLinenumber: 6585
    functionLinenumberEnd: 6833
    functionName: _PyUnicode_DecodeUnicodeEscapeInternal2
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - _PyUnicode_Name_CAPI*::getcode
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_Prepare
    - PyErr_SetString
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicode_GetNameCAPI
    - _PyUnicodeWriter_Finish
    - WRITE_ASCII_CHAR
    - WRITE_CHAR
    - _PyUnicodeWriter_Dealloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_DecodeUnicodeEscapeInternal2(const char *s,\n
      \                              Py_ssize_t size,\n                               const
      char *errors,\n                               Py_ssize_t *consumed,\n                               int
      *first_invalid_escape_char,\n                               const char **first_invalid_escape_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6635
      start: 6629
    functionDepth: 0
    functionLinenumber: 6629
    functionLinenumberEnd: 6635
    functionName: WRITE_ASCII_CHAR
    functionSourceFile: /src/cpython/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: 6646
      start: 6636
    functionDepth: 0
    functionLinenumber: 6636
    functionLinenumberEnd: 6646
    functionName: WRITE_CHAR
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_CHAR(ch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_DecodeUnicodeEscapeInternal2
      Src: /src/cpython/Objects/unicodeobject.c:6843,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/unicodeobject.c:6851,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:6856,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/unicodeobject.c:6861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:6866,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6872
      start: 6835
    functionDepth: 7
    functionLinenumber: 6835
    functionLinenumberEnd: 6872
    functionName: _PyUnicode_DecodeUnicodeEscapeStateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_WarnFormat
    - Py_DECREF
    - _PyUnicode_DecodeUnicodeEscapeInternal2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_DecodeUnicodeEscapeStateful(const char *s,\n
      \                             Py_ssize_t size,\n                              const
      char *errors,\n                              Py_ssize_t *consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_DecodeUnicodeEscapeStateful
      Src: /src/cpython/Objects/unicodeobject.c:6879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6880
      start: 6874
    functionDepth: 8
    functionLinenumber: 6874
    functionLinenumberEnd: 6880
    functionName: PyUnicode_DecodeUnicodeEscape
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_DecodeUnicodeEscapeStateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUnicodeEscape(const char *s,\n                              Py_ssize_t
      size,\n                              const char *errors)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6902,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:6903,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6907,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:6909,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6912,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6913,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:6918,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:6920,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6925,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:6927,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6978,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6992,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6992,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:6993,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6993,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (p - PyBytes_AS_STRING(repr) > 0)
      pos:
        line_end: 6991
        line_start: 6991
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE && MAX_UNICODE <= 0x10ffff)
      pos:
        line_end: 6977
        line_start: 6977
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6997
      start: 6884
    functionDepth: 6
    functionLinenumber: 6884
    functionLinenumberEnd: 6997
    functionName: PyUnicode_AsUnicodeEscapeString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyUnicode_READ
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUnicodeEscapeString(PyObject *unicode)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:7017,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:7024,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:7026,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:7050,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7057,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7074,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:7075,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:7076,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:7104,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:7115,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7122,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7126,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7127,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:7128,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:7131,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7132,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7133,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 91
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts:
    - condition: (consumed)
      pos:
        line_end: 7056
        line_start: 7056
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (writer.pos < writer.size)
      pos:
        line_end: 7073
        line_start: 7073
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (end - s <= writer.size - writer.pos)
      pos:
        line_end: 7121
        line_start: 7121
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7135
      start: 7001
    functionDepth: 6
    functionLinenumber: 7001
    functionLinenumberEnd: 7135
    functionName: _PyUnicode_DecodeRawUnicodeEscapeStateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_Prepare
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_WRITE
    - _PyUnicodeWriter_Finish
    - WRITE_CHAR
    - _PyUnicodeWriter_Dealloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,\n
      \                                         Py_ssize_t size,\n                                          const
      char *errors,\n                                          Py_ssize_t *consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7047
      start: 7037
    functionDepth: 0
    functionLinenumber: 7037
    functionLinenumberEnd: 7047
    functionName: WRITE_CHAR
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_CHAR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_DecodeRawUnicodeEscapeStateful
      Src: /src/cpython/Objects/unicodeobject.c:7142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7143
      start: 7137
    functionDepth: 7
    functionLinenumber: 7137
    functionLinenumberEnd: 7143
    functionName: PyUnicode_DecodeRawUnicodeEscape
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicode_DecodeRawUnicodeEscapeStateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeRawUnicodeEscape(const char *s,\n                                 Py_ssize_t
      size,\n                                 const char *errors)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7156,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:7157,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7160,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7161,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7162,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7164,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:7172,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7174,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:7182,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7184,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7201,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7215,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:7215,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:7216,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:7216,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (p > PyBytes_AS_STRING(repr))
      pos:
        line_end: 7214
        line_start: 7214
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE && MAX_UNICODE <= 0x10ffff)
      pos:
        line_end: 7200
        line_start: 7200
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7220
      start: 7146
    functionDepth: 6
    functionLinenumber: 7146
    functionLinenumberEnd: 7220
    functionName: PyUnicode_AsRawUnicodeEscapeString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyUnicode_READ
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromUCS1
      Src: /src/cpython/Objects/unicodeobject.c:7230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7231
      start: 7224
    functionDepth: 5
    functionLinenumber: 7224
    functionLinenumberEnd: 7231
    functionName: PyUnicode_DecodeLatin1
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    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/cpython/Objects/unicodeobject.c:7242,1
    - Dst: PyUnicodeEncodeError_SetStart
      Src: /src/cpython/Objects/unicodeobject.c:7247,1
    - Dst: PyUnicodeEncodeError_SetEnd
      Src: /src/cpython/Objects/unicodeobject.c:7249,1
    - Dst: PyUnicodeEncodeError_SetReason
      Src: /src/cpython/Objects/unicodeobject.c:7251,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:7255,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: 7257
      start: 7234
    functionDepth: 3
    functionLinenumber: 7234
    functionLinenumberEnd: 7257
    functionName: make_encode_exception
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - PyUnicodeEncodeError_SetStart
    - Py_CLEAR
    - PyUnicodeEncodeError_SetReason
    - PyUnicodeEncodeError_SetEnd
    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/cpython/Objects/unicodeobject.c:7267,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:7270,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: 7271
      start: 7260
    functionDepth: 4
    functionLinenumber: 7260
    functionLinenumberEnd: 7271
    functionName: raise_encode_exception
    functionSourceFile: /src/cpython/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: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Objects/unicodeobject.c:7291,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7296,1
    - Dst: make_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7298,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:7303,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:7306,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:7307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7308,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:7311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7313,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7316,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:7316,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:7317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7318,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:7324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7325,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:7328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7329,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    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: 7331
      start: 7277
    functionDepth: 4
    functionLinenumber: 7277
    functionLinenumberEnd: 7331
    functionName: unicode_encode_call_errorhandler
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyArg_ParseTuple
    - PyCodec_LookupError
    - PyTuple_Check
    - PyErr_SetString
    - PyBytes_Check
    - PyObject_CallOneArg
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - make_encode_exception
    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_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7353,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7354,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7355,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7359,1
    - Dst: _PyBytesWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:7361,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/cpython/Objects/unicodeobject.c:7362,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7367,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7382,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:7390,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7394,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:7398,1
    - Dst: backslashreplace
      Src: /src/cpython/Objects/unicodeobject.c:7408,1
    - Dst: xmlcharrefreplace
      Src: /src/cpython/Objects/unicodeobject.c:7418,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7427,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7438,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:7442,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:7450,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:7462,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/cpython/Objects/unicodeobject.c:7464,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:7465,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:7466,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7469,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7469,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7472,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:7473,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7476,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7480,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7480,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/cpython/Objects/unicodeobject.c:7481,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7482,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7483,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:7489,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7494,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7498,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7499,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:7500,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7503,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:7504,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7505,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7506,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 108
    argCount: 3
    argNames:
    - unicode
    - errors
    - limit
    argTypes:
    - PyObject*
    - char*
    - Py_UCS4
    assertStmts:
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 7468
        line_start: 7468
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (writer.overallocate || pos == size)
      pos:
        line_end: 7493
        line_start: 7493
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 7479
        line_start: 7479
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (collstart != collend)
      pos:
        line_end: 7437
        line_start: 7437
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7508
      start: 7333
    functionDepth: 9
    functionLinenumber: 7333
    functionLinenumberEnd: 7508
    functionName: unicode_encode_ucs1
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyBytes_Check
    - PyUnicode_IS_ASCII
    - PyBytes_GET_SIZE
    - unicode_encode_call_errorhandler
    - Py_CLEAR
    - PyUnicode_KIND
    - _PyBytesWriter_WriteBytes
    - PyUnicode_READ
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Prepare
    - _PyBytesWriter_Alloc
    - PyUnicode_Check
    - backslashreplace
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - PyUnicode_GET_LENGTH
    - _Py_GetErrorHandler
    - _PyBytesWriter_Init
    - memset
    - _PyBytesWriter_Finish
    - xmlcharrefreplace
    - raise_encode_exception
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_encode_ucs1(PyObject *unicode,\n                    const
      char *errors,\n                    const Py_UCS4 limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7513,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:7514,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7519,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7520,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7520,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7521,1
    - Dst: unicode_encode_ucs1
      Src: /src/cpython/Objects/unicodeobject.c:7524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7525
      start: 7510
    functionDepth: 10
    functionLinenumber: 7510
    functionLinenumberEnd: 7525
    functionName: _PyUnicode_AsLatin1String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_KIND
    - PyBytes_FromStringAndSize
    - unicode_encode_ucs1
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_AsLatin1String(PyObject *unicode, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/cpython/Objects/unicodeobject.c:7530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7531
      start: 7527
    functionDepth: 11
    functionLinenumber: 7527
    functionLinenumberEnd: 7531
    functionName: PyUnicode_AsLatin1String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - _PyUnicode_AsLatin1String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsLatin1String(PyObject *unicode)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:7547,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:7551,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:7555,1
    - Dst: ascii_decode
      Src: /src/cpython/Objects/unicodeobject.c:7559,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7559,1
    - Dst: _PyUnicodeWriter_InitWithBuffer
      Src: /src/cpython/Objects/unicodeobject.c:7565,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:7576,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:7585,1
    - Dst: _PyUnicodeWriter_PrepareKind
      Src: /src/cpython/Objects/unicodeobject.c:7593,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:7599,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:7601,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:7613,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7624,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:7625,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:7628,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7629,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7630,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7632
      start: 7535
    functionDepth: 6
    functionLinenumber: 7535
    functionLinenumberEnd: 7632
    functionName: PyUnicode_DecodeASCII
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - _PyUnicodeWriter_InitWithBuffer
    - _PyUnicodeWriter_PrepareKind
    - Py_XDECREF
    - _PyUnicodeWriter_Dealloc
    - ascii_decode
    - unicode_decode_call_errorhandler_writer
    - _Py_GetErrorHandler
    - get_latin1_char
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_WRITE
    - _PyUnicodeWriter_Finish
    - PyUnicode_New
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeASCII(const char *s,\n                      Py_ssize_t
      size,\n                      const char *errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7637,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:7638,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:7643,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7644,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7644,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7645,1
    - Dst: unicode_encode_ucs1
      Src: /src/cpython/Objects/unicodeobject.c:7646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7647
      start: 7634
    functionDepth: 10
    functionLinenumber: 7634
    functionLinenumberEnd: 7647
    functionName: _PyUnicode_AsASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyUnicode_IS_ASCII
    - unicode_encode_ucs1
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_AsASCIIString(PyObject *unicode, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:7652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7653
      start: 7649
    functionDepth: 11
    functionLinenumber: 7649
    functionLinenumberEnd: 7653
    functionName: PyUnicode_AsASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 11
    functionsReached:
    - _PyUnicode_AsASCIIString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsASCIIString(PyObject *unicode)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromFormat
      Src: /src/cpython/Objects/unicodeobject.c:7680,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:7683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - code_page
    - obj
    argTypes:
    - UINT
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7684
      start: 7673
    functionDepth: 3
    functionLinenumber: 7673
    functionLinenumberEnd: 7684
    functionName: code_page_name
    functionSourceFile: /src/cpython/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: 7695
      start: 7686
    functionDepth: 0
    functionLinenumber: 7686
    functionLinenumberEnd: 7695
    functionName: decode_code_page_flags
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:7716,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7717,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:7720,1
    - Dst: widechar_resize
      Src: /src/cpython/Objects/unicodeobject.c:7729,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7735,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:7741,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:7743,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: 7715
        line_start: 7715
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7745
      start: 7704
    functionDepth: 2
    functionLinenumber: 7704
    functionLinenumberEnd: 7745
    functionName: decode_code_page_strict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - GetLastError
    - PyErr_SetFromWindowsErr
    - widechar_resize
    - assert
    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/cpython/Objects/unicodeobject.c:7780,1
    - Dst: code_page_name
      Src: /src/cpython/Objects/unicodeobject.c:7782,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:7786,1
    - Dst: make_decode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7789,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:7791,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:7792,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7799,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:7800,1
    - Dst: widechar_resize
      Src: /src/cpython/Objects/unicodeobject.c:7803,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7803,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7815,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7817,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:7820,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:7829,1
    - Dst: unicode_decode_call_errorhandler_wchar
      Src: /src/cpython/Objects/unicodeobject.c:7847,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:7859,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7865,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/unicodeobject.c:7868,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7872,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7873,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: 7779
        line_start: 7779
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (out - *buf <= *bufsize)
      pos:
        line_end: 7864
        line_start: 7864
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7875
      start: 7754
    functionDepth: 6
    functionLinenumber: 7754
    functionLinenumberEnd: 7875
    functionName: decode_code_page_errors
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - code_page_name
    - MultiByteToWideChar
    - Py_XDECREF
    - PyCodec_StrictErrors
    - memcpy
    - GetLastError
    - PyErr_SetFromWindowsErr
    - strcmp
    - widechar_resize
    - make_decode_exception
    - unicode_decode_call_errorhandler_wchar
    - Py_ARRAY_LENGTH
    - Py_SAFE_DOWNCAST
    - Py_CLEAR
    - PyErr_NoMemory
    - assert
    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/cpython/Objects/unicodeobject.c:7887,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:7891,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:7917,1
    - Dst: decode_code_page_strict
      Src: /src/cpython/Objects/unicodeobject.c:7920,1
    - Dst: decode_code_page_errors
      Src: /src/cpython/Objects/unicodeobject.c:7923,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7926,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:7929,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7940,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:7941,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: 7925
        line_start: 7925
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7943
      start: 7877
    functionDepth: 7
    functionLinenumber: 7877
    functionLinenumberEnd: 7943
    functionName: decode_code_page_stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - decode_code_page_errors
    - PyErr_BadInternalCall
    - PyErr_SetString
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_FromWideChar
    - decode_code_page_strict
    - PyMem_Free
    - 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/cpython/Objects/unicodeobject.c:7952,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: 7953
      start: 7945
    functionDepth: 8
    functionLinenumber: 7945
    functionLinenumberEnd: 7953
    functionName: PyUnicode_DecodeCodePageStateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    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/cpython/Objects/unicodeobject.c:7961,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: 7962
      start: 7955
    functionDepth: 8
    functionLinenumber: 7955
    functionLinenumberEnd: 7962
    functionName: PyUnicode_DecodeMBCSStateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    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/cpython/Objects/unicodeobject.c:7969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7970
      start: 7964
    functionDepth: 9
    functionLinenumber: 7964
    functionLinenumberEnd: 7970
    functionName: PyUnicode_DecodeMBCS
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    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/cpython/Objects/unicodeobject.c:7983,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - code_page
    - errors
    argTypes:
    - UINT
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7988
      start: 7972
    functionDepth: 0
    functionLinenumber: 7972
    functionLinenumberEnd: 7988
    functionName: encode_code_page_flags
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:8007,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:8014,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:8021,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:8024,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:8025,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:8029,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Objects/unicodeobject.c:8032,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:8046,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8050,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Objects/unicodeobject.c:8054,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:8056,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8059,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8062,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Objects/unicodeobject.c:8066,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:8079,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:8083,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:8087,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    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: 8013
        line_start: 8013
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (size <= INT_MAX)
      pos:
        line_end: 8028
        line_start: 8028
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 8089
      start: 7997
    functionDepth: 6
    functionLinenumber: 7997
    functionLinenumberEnd: 8089
    functionName: encode_code_page_strict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - WideCharToMultiByte
    - encode_code_page_flags
    - PyBytes_FromStringAndSize
    - _PyBytes_Resize
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyMem_Free
    - PyBytes_AS_STRING
    - PyBytes_Size
    - PyUnicode_Substring
    - Py_CLEAR
    - PyErr_NoMemory
    - assert
    - PyUnicode_AsWideCharString
    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: 22
    BranchProfiles: []
    Callsites:
    - Dst: encode_code_page_flags
      Src: /src/cpython/Objects/unicodeobject.c:8103,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:8122,1
    - Dst: code_page_name
      Src: /src/cpython/Objects/unicodeobject.c:8124,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:8128,1
    - Dst: make_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8131,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:8133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8134,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8136,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8145,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:8146,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8149,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:8153,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8156,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Objects/unicodeobject.c:8160,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:8162,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8165,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8167,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8173,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:8181,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:8182,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Objects/unicodeobject.c:8186,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8188,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8194,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:8199,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:8200,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:8204,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:8212,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8213,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8216,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8217,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8219,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8222,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8224,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8224,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8232,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8235,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8236,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8238,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8241,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8243,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8244,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8246,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8260,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8264,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:8265,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8265,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8266,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8271,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8272,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8273,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 122
    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: 8121
        line_start: 8121
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (outsize <= PyBytes_GET_SIZE(*outbytes))
      pos:
        line_end: 8264
        line_start: 8264
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 8275
      start: 8098
    functionDepth: 6
    functionLinenumber: 8098
    functionLinenumberEnd: 8275
    functionName: encode_code_page_errors
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - unicode_encode_call_errorhandler
    - PyUnicode_KIND
    - PyCodec_StrictErrors
    - encode_code_page_flags
    - PyUnicode_READ
    - strcmp
    - PyUnicode_READ_CHAR
    - Py_UNICODE_HIGH_SURROGATE
    - make_encode_exception
    - code_page_name
    - Py_UNICODE_LOW_SURROGATE
    - WideCharToMultiByte
    - Py_DECREF
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - memcpy
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - PyUnicode_GET_LENGTH
    - PyUnicode_DATA
    - Py_ARRAY_LENGTH
    - raise_encode_exception
    - PyBytes_Size
    - assert
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:8287,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:8288,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8292,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:8295,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:8300,1
    - Dst: encode_code_page_strict
      Src: /src/cpython/Objects/unicodeobject.c:8317,1
    - Dst: encode_code_page_errors
      Src: /src/cpython/Objects/unicodeobject.c:8321,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8325,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - code_page
    - unicode
    - errors
    argTypes:
    - int
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8334
      start: 8277
    functionDepth: 7
    functionLinenumber: 8277
    functionLinenumberEnd: 8334
    functionName: encode_code_page
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - encode_code_page_strict
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - encode_code_page_errors
    - PyUnicode_Check
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nencode_code_page(int code_page,\n                 PyObject
      *unicode,\n                 const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_code_page
      Src: /src/cpython/Objects/unicodeobject.c:8341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - code_page
    - unicode
    - errors
    argTypes:
    - int
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8342
      start: 8336
    functionDepth: 8
    functionLinenumber: 8336
    functionLinenumberEnd: 8342
    functionName: PyUnicode_EncodeCodePage
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    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/cpython/Objects/unicodeobject.c:8347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8348
      start: 8344
    functionDepth: 9
    functionLinenumber: 8344
    functionLinenumberEnd: 8348
    functionName: PyUnicode_AsMBCSString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_EncodeCodePage
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsMBCSString(PyObject *unicode)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8373,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8374,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8375,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:8387,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:8392,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8439,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:8448,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:8458,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8462,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8463,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8467,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8468,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    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: 8386
        line_start: 8386
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 8470
      start: 8356
    functionDepth: 6
    functionLinenumber: 8356
    functionLinenumberEnd: 8470
    functionName: charmap_decode_string
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_XDECREF
    - assert
    - unicode_decode_call_errorhandler_writer
    - PyUnicode_READ
    - _PyUnicodeWriter_WriteCharInline
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Prepare
    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/cpython/Objects/unicodeobject.c:8492,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/unicodeobject.c:8496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8497,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:8503,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:8505,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:8514,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/unicodeobject.c:8515,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:8519,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:8525,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:8528,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8529,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8530,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:8533,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:8538,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:8544,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:8548,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:8554,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:8557,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8565,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8566,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8570,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8571,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8572,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: 8574
      start: 8472
    functionDepth: 9
    functionLinenumber: 8472
    functionLinenumberEnd: 8574
    functionName: charmap_decode_mapping
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - Py_CLEAR
    - unicode_decode_call_errorhandler_writer
    - PyLong_AsLong
    - PyErr_SetString
    - PyLong_Check
    - PyUnicode_GET_LENGTH
    - PyErr_ExceptionMatches
    - _PyUnicodeWriter_WriteCharInline
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_READ_CHAR
    - PyLong_FromLong
    - PyUnicode_Check
    - PyErr_Format
    - PyErr_Clear
    - PyMapping_GetOptionalItem
    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/cpython/Objects/unicodeobject.c:8586,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:8589,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:8590,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:8592,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:8595,1
    - Dst: charmap_decode_string
      Src: /src/cpython/Objects/unicodeobject.c:8596,1
    - Dst: charmap_decode_mapping
      Src: /src/cpython/Objects/unicodeobject.c:8600,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:8603,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:8606,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: 8608
      start: 8576
    functionDepth: 10
    functionLinenumber: 8576
    functionLinenumberEnd: 8608
    functionName: PyUnicode_DecodeCharmap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicodeWriter_Init
    - PyUnicode_DecodeLatin1
    - PyUnicode_CheckExact
    - charmap_decode_string
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Finish
    - charmap_decode_mapping
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_Prepare
    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/cpython/Objects/unicodeobject.c:8634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct encoding_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8636
      start: 8630
    functionDepth: 0
    functionLinenumber: 8630
    functionLinenumberEnd: 8636
    functionName: EncodingMap_size_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EncodingMap_size_impl(struct encoding_map *self)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:8668,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8668,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:8669,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8672,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8673,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:8674,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8674,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8675,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8676,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8681,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8685,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/unicodeobject.c:8705,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8709,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:8710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8712,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:8715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8718,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:8721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8725,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:8733,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:8736,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/unicodeobject.c:8739,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8746,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8747,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8748,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8752,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 1
    argNames:
    - string
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8766
      start: 8652
    functionDepth: 10
    functionLinenumber: 8652
    functionLinenumberEnd: 8766
    functionName: PyUnicode_BuildEncodingMap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - Py_MIN
    - PyObject_Malloc
    - _PyObject_Init
    - Py_DECREF
    - PyDict_SetItem
    - memcpy
    - memset
    - PyUnicode_READ
    - PyDict_New
    - PyLong_FromLong
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    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: 8797
      start: 8768
    functionDepth: 0
    functionLinenumber: 8768
    functionLinenumberEnd: 8797
    functionName: encoding_map_lookup
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int encoding_map_lookup(Py_UCS4 c, PyObject *mapping)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:8807,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/unicodeobject.c:8812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8813,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:8819,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:8821,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:8828,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/unicodeobject.c:8829,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:8831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8833,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:8839,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:8843,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:8845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8846,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - c
    - mapping
    - replace
    argTypes:
    - Py_UCS4
    - PyObject*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8849
      start: 8804
    functionDepth: 9
    functionLinenumber: 8804
    functionLinenumberEnd: 8849
    functionName: charmapencode_lookup
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_SetString
    - PyLong_Check
    - PyBytes_Check
    - PyErr_ExceptionMatches
    - Py_TYPE
    - PyLong_FromLong
    - PyErr_Format
    - PyErr_Clear
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      charmapencode_lookup(Py_UCS4 c, PyObject *mapping, unsigned char *replace)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8854,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8858,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: 8861
      start: 8851
    functionDepth: 6
    functionLinenumber: 8851
    functionLinenumberEnd: 8861
    functionName: charmapencode_resize
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:8879,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:8881,1
    - Dst: encoding_map_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8882,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8887,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8889,1
    - Dst: charmapencode_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8898,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:8901,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8905,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8908,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8912,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8913,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8917,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8920,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8925,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: 8927
      start: 8872
    functionDepth: 10
    functionLinenumber: 8872
    functionLinenumberEnd: 8927
    functionName: charmapencode_output
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - charmapencode_lookup
    - PyLong_Check
    - Py_IS_TYPE
    - encoding_map_lookup
    - charmapencode_resize
    - PyBytes_GET_SIZE
    - memcpy
    - 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: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8954,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:8959,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8960,1
    - Dst: encoding_map_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8961,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8968,1
    - Dst: charmapencode_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8969,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8976,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:8982,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8986,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:8991,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8996,1
    - Dst: sprintf
      Src: /src/cpython/Objects/unicodeobject.c:9010,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:9010,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:9012,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:9016,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:9025,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:9030,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Objects/unicodeobject.c:9032,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Objects/unicodeobject.c:9034,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:9038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9039,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:9042,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Objects/unicodeobject.c:9042,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Objects/unicodeobject.c:9043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9046,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9050,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9051,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9052,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9054,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:9055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9061,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:9062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9067,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    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: 9070
      start: 8931
    functionDepth: 11
    functionLinenumber: 8931
    functionLinenumberEnd: 9070
    functionName: charmap_encoding_error
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - encoding_map_lookup
    - unicode_encode_call_errorhandler
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_IS_TYPE
    - PyUnicode_READ_CHAR
    - Py_DECREF
    - charmapencode_lookup
    - PyBytes_AsString
    - charmapencode_resize
    - memcpy
    - PyUnicode_GET_LENGTH
    - _Py_GetErrorHandler
    - sprintf
    - PyUnicode_DATA
    - charmapencode_output
    - raise_encode_exception
    - PyBytes_Size
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9090,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9091,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9092,1
    - Dst: unicode_encode_ucs1
      Src: /src/cpython/Objects/unicodeobject.c:9096,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:9100,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9107,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:9109,1
    - Dst: charmap_encoding_error
      Src: /src/cpython/Objects/unicodeobject.c:9113,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:9126,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/unicodeobject.c:9127,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9130,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9131,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9135,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9136,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9137,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - unicode
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9139
      start: 9072
    functionDepth: 12
    functionLinenumber: 9072
    functionLinenumberEnd: 9139
    functionName: _PyUnicode_EncodeCharmap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - Py_XDECREF
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyUnicode_READ
    - charmap_encoding_error
    - unicode_encode_ucs1
    - PyBytes_GET_SIZE
    - charmapencode_output
    - PyUnicode_DATA
    - 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_Check
      Src: /src/cpython/Objects/unicodeobject.c:9145,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:9146,1
    - Dst: _PyUnicode_EncodeCharmap
      Src: /src/cpython/Objects/unicodeobject.c:9149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - unicode
    - mapping
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9150
      start: 9141
    functionDepth: 13
    functionLinenumber: 9141
    functionLinenumberEnd: 9150
    functionName: PyUnicode_AsCharmapString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_EncodeCharmap
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsCharmapString(PyObject *unicode,\n                          PyObject
      *mapping)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeTranslateError_Create
      Src: /src/cpython/Objects/unicodeobject.c:9160,1
    - Dst: PyUnicodeTranslateError_SetStart
      Src: /src/cpython/Objects/unicodeobject.c:9164,1
    - Dst: PyUnicodeTranslateError_SetEnd
      Src: /src/cpython/Objects/unicodeobject.c:9166,1
    - Dst: PyUnicodeTranslateError_SetReason
      Src: /src/cpython/Objects/unicodeobject.c:9168,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:9172,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: 9174
      start: 9153
    functionDepth: 3
    functionLinenumber: 9153
    functionLinenumberEnd: 9174
    functionName: make_translate_exception
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeTranslateError_SetReason
    - PyUnicodeTranslateError_SetEnd
    - _PyUnicodeTranslateError_Create
    - PyUnicodeTranslateError_SetStart
    - Py_CLEAR
    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/cpython/Objects/unicodeobject.c:9195,1
    - Dst: make_translate_exception
      Src: /src/cpython/Objects/unicodeobject.c:9200,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:9205,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:9208,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:9209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9210,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:9213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9215,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9219,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9222,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:9223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9224,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:9227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9228,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: 9230
      start: 9180
    functionDepth: 4
    functionLinenumber: 9180
    functionLinenumberEnd: 9230
    functionName: unicode_translate_call_errorhandler
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - make_translate_exception
    - Py_DECREF
    - PyArg_ParseTuple
    - PyCodec_LookupError
    - PyTuple_Check
    - PyErr_SetString
    - PyObject_CallOneArg
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:9240,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/unicodeobject.c:9245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9246,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:9253,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:9255,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:9265,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/unicodeobject.c:9266,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:9268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9271,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:9278,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:9284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9286,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - c
    - mapping
    - result
    - replace
    argTypes:
    - Py_UCS4
    - PyObject*
    - PyObject**
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9289
      start: 9237
    functionDepth: 9
    functionLinenumber: 9237
    functionLinenumberEnd: 9289
    functionName: charmaptranslate_lookup
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_SetString
    - PyLong_Check
    - PyErr_ExceptionMatches
    - PyLong_FromLong
    - PyUnicode_Check
    - PyErr_Format
    - PyErr_Clear
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: int
    signature: int charmaptranslate_lookup(Py_UCS4 c, PyObject *mapping, PyObject
      **result, Py_UCS4 *replace)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: charmaptranslate_lookup
      Src: /src/cpython/Objects/unicodeobject.c:9301,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:9306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9313,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:9317,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:9318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9322,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:9326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9327,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:9331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - ch
    - mapping
    - writer
    argTypes:
    - Py_UCS4
    - PyObject*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9338
      start: 9294
    functionDepth: 10
    functionLinenumber: 9294
    functionLinenumberEnd: 9338
    functionName: charmaptranslate_output
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - charmaptranslate_lookup
    - PyLong_Check
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_Check
    - _PyUnicodeWriter_WriteCharInline
    linkageType: ''
    returnType: int
    signature: "int charmaptranslate_output(Py_UCS4 ch, PyObject *mapping,\n                        _PyUnicodeWriter
      *writer)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: charmaptranslate_lookup
      Src: /src/cpython/Objects/unicodeobject.c:9348,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:9361,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:9369,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9370,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:9373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9385,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - mapping
    - ch
    - translate
    argTypes:
    - PyObject*
    - Py_UCS1
    - Py_UCS1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9387
      start: 9340
    functionDepth: 10
    functionLinenumber: 9340
    functionLinenumberEnd: 9387
    functionName: unicode_fast_translate_lookup
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - charmaptranslate_lookup
    - PyLong_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - 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/cpython/Objects/unicodeobject.c:9403,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:9405,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9407,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9410,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9410,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9411,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9411,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9412,1
    - Dst: unicode_fast_translate_lookup
      Src: /src/cpython/Objects/unicodeobject.c:9418,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9431,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9438,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9439,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: 9409
        line_start: 9409
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_GET_LENGTH(writer->buffer) == len)
      pos:
        line_end: 9410
        line_start: 9410
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch2 < 128)
      pos:
        line_end: 9430
        line_start: 9430
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9441
      start: 9392
    functionDepth: 11
    functionLinenumber: 9392
    functionLinenumberEnd: 9441
    functionName: unicode_fast_translate
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - memset
    - PyUnicode_IS_ASCII
    - unicode_fast_translate_lookup
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: int
    signature: "int unicode_fast_translate(PyObject *input, PyObject *mapping,\n                       _PyUnicodeWriter
      *writer, int ignore,\n                       Py_ssize_t *input_pos)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:9462,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9466,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9467,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9468,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Objects/unicodeobject.c:9471,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:9475,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:9476,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:9479,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9481,1
    - Dst: unicode_fast_translate
      Src: /src/cpython/Objects/unicodeobject.c:9482,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:9484,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:9488,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9504,1
    - Dst: charmaptranslate_output
      Src: /src/cpython/Objects/unicodeobject.c:9505,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9523,1
    - Dst: charmaptranslate_lookup
      Src: /src/cpython/Objects/unicodeobject.c:9524,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9526,1
    - Dst: unicode_translate_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:9536,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:9541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9545,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9549,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9550,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:9551,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:9554,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9555,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9556,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 3
    argNames:
    - input
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9443
    functionDepth: 12
    functionLinenumber: 9443
    functionLinenumberEnd: 9558
    functionName: _PyUnicode_TranslateCharmap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - Py_XDECREF
    - unicode_fast_translate
    - charmaptranslate_lookup
    - charmaptranslate_output
    - unicode_translate_call_errorhandler
    - PyUnicode_IS_ASCII
    - PyErr_BadArgument
    - PyUnicode_KIND
    - PyUnicode_READ
    - strcmp
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_Prepare
    - Py_DECREF
    - PyUnicode_FromObject
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_DATA
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_TranslateCharmap(PyObject *input,\n                            PyObject
      *mapping,\n                            const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9565,1
    - Dst: _PyUnicode_TranslateCharmap
      Src: /src/cpython/Objects/unicodeobject.c:9567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - str
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9560
    functionDepth: 13
    functionLinenumber: 9560
    functionLinenumberEnd: 9568
    functionName: PyUnicode_Translate
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_TranslateCharmap
    - ensure_unicode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_Translate(PyObject *str,\n                    PyObject
      *mapping,\n                    const char *errors)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:9573,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:9574,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9577,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:9579,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9582,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:9583,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9588,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9589,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9590,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9593,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:9597,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Objects/unicodeobject.c:9601,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9605,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9612,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:9612,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 9611
        line_start: 9611
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9614
      start: 9570
    functionDepth: 4
    functionLinenumber: 9570
    functionLinenumberEnd: 9614
    functionName: _PyUnicode_TransformDecimalAndSpaceToASCII
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_TODECIMAL
    - _PyUnicode_CheckConsistency
    - PyErr_BadInternalCall
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - Py_NewRef
    - PyUnicode_IS_ASCII
    - PyUnicode_New
    - PyUnicode_Check
    - PyUnicode_DATA
    - _PyUnicode_LENGTH
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_TransformDecimalAndSpaceToASCII(PyObject *unicode)'
  - 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: 9637
      start: 9619
    functionDepth: 0
    functionLinenumber: 9619
    functionLinenumberEnd: 9637
    functionName: ADJUST_INDICES
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_INDICES(start, end, len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9648,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9649,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9653,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9654,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/unicodeobject.c:9655,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9659,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9660,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9662,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:9663,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:9672,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9680,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9680,1
    - Dst: asciilib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9681,1
    - Dst: ucs1lib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9683,1
    - Dst: ucs2lib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9686,1
    - Dst: ucs4lib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9689,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:9692,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9698,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9698,1
    - Dst: asciilib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9699,1
    - Dst: ucs1lib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9701,1
    - Dst: ucs2lib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9704,1
    - Dst: ucs4lib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9707,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:9710,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9714,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9714,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:9716,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 5
    argNames:
    - s1
    - s2
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts:
    - condition: ((kind2 != kind1) == (buf2 != PyUnicode_DATA(s2)))
      pos:
        line_end: 9713
        line_start: 9713
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9719
      start: 9638
    functionDepth: 2
    functionLinenumber: 9638
    functionLinenumberEnd: 9719
    functionName: any_find_slice
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - asciilib_find_slice
    - ucs2lib_rfind_slice
    - PyUnicode_IS_ASCII
    - findchar
    - unicode_askind
    - PyMem_Free
    - PyUnicode_KIND
    - ucs1lib_rfind_slice
    - ucs4lib_rfind_slice
    - PyUnicode_READ
    - ucs4lib_find_slice
    - ADJUST_INDICES
    - PyUnicode_GET_LENGTH
    - Py_UNREACHABLE
    - ucs1lib_find_slice
    - asciilib_rfind_slice
    - ucs2lib_find_slice
    - PyUnicode_DATA
    - assert
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9760,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9762,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9763,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9766,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9767,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9769,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9770,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9771,1
    - Dst: GroupGenerator_init
      Src: /src/cpython/Objects/unicodeobject.c:9788,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9789,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9793,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9798,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9798,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9799,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9799,1
    - Dst: GroupGenerator_next
      Src: /src/cpython/Objects/unicodeobject.c:9809,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:9810,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9810,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9810,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9811,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9812,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:9812,1
    - Dst: InsertThousandsGrouping_fill
      Src: /src/cpython/Objects/unicodeobject.c:9820,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9841,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9841,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9842,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9843,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:9843,1
    - Dst: InsertThousandsGrouping_fill
      Src: /src/cpython/Objects/unicodeobject.c:9849,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 10
    argNames:
    - writer
    - n_buffer
    - digits
    - d_pos
    - n_digits
    - min_width
    - grouping
    - thousands_sep
    - maxchar
    - forward
    argTypes:
    - _PyUnicodeWriter*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    - PyObject*
    - Py_UCS4*
    - int
    assertStmts:
    - condition: (digits != NULL)
      pos:
        line_end: 9761
        line_start: 9761
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (digits == NULL)
      pos:
        line_end: 9765
        line_start: 9765
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (buffer_pos <= PyUnicode_GET_LENGTH(writer->buffer))
      pos:
        line_end: 9797
        line_start: 9797
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (digits_pos <= PyUnicode_GET_LENGTH(digits))
      pos:
        line_end: 9798
        line_start: 9798
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (maxchar != NULL)
      pos:
        line_end: 9766
        line_start: 9766
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (maxchar == NULL)
      pos:
        line_end: 9762
        line_start: 9762
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (grouping != NULL)
      pos:
        line_end: 9770
        line_start: 9770
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= d_pos)
      pos:
        line_end: 9768
        line_start: 9768
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= n_digits)
      pos:
        line_end: 9769
        line_start: 9769
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!(grouping[0] == CHAR_MAX && thousands_sep_len != 0))
      pos:
        line_end: 9792
        line_start: 9792
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9856
      start: 9747
    functionDepth: 1
    functionLinenumber: 9747
    functionLinenumberEnd: 9856
    functionName: _PyUnicode_InsertThousandsGrouping
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - GroupGenerator_next
    - Py_MAX
    - InsertThousandsGrouping_fill
    - GroupGenerator_init
    - PyUnicode_GET_LENGTH
    - assert
    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,\n    int forward)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9864,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9864,1
    - Dst: unicode_count_impl
      Src: /src/cpython/Objects/unicodeobject.c:9867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - str
    - substr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9868
      start: 9858
    functionDepth: 2
    functionLinenumber: 9858
    functionLinenumberEnd: 9868
    functionName: PyUnicode_Count
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - ensure_unicode
    - unicode_count_impl
    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/cpython/Objects/unicodeobject.c:9877,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9877,1
    - Dst: any_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9880,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: 9881
      start: 9870
    functionDepth: 3
    functionLinenumber: 9870
    functionLinenumberEnd: 9881
    functionName: PyUnicode_Find
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - any_find_slice
    - ensure_unicode
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9890,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/unicodeobject.c:9891,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9894,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:9895,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - str
    - ch
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - Py_UCS4
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9901
      start: 9883
    functionDepth: 1
    functionLinenumber: 9883
    functionLinenumberEnd: 9901
    functionName: PyUnicode_FindChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 13
    functionsReached:
    - PyUnicode_KIND
    - ADJUST_INDICES
    - findchar
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/unicodeobject.c:9918,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9918,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9919,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9923,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9926,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9927,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9928,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9929,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9930,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9937,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9938,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9939,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9940,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:9943,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9944,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9946,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9947,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9955,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9956,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - self
    - substring
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9964
      start: 9903
    functionDepth: 1
    functionLinenumber: 9903
    functionLinenumberEnd: 9964
    functionName: tailmatch
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - ADJUST_INDICES
    - memcmp
    - PyUnicode_DATA
    - 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/cpython/Objects/unicodeobject.c:9973,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9973,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:9976,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: 9977
      start: 9966
    functionDepth: 2
    functionLinenumber: 9966
    functionLinenumberEnd: 9977
    functionName: PyUnicode_Tailmatch
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - tailmatch
    - ensure_unicode
    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/cpython/Objects/unicodeobject.c:9982,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9983,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:9987,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9990,1
    - Dst: _Py_bytes_lower
      Src: /src/cpython/Objects/unicodeobject.c:9992,1
    - Dst: _Py_bytes_upper
      Src: /src/cpython/Objects/unicodeobject.c:9994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - lower
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9996
      start: 9979
    functionDepth: 4
    functionLinenumber: 9979
    functionLinenumberEnd: 9996
    functionName: ascii_upper_or_lower
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_upper
    - _Py_bytes_lower
    - PyUnicode_New
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_upper_or_lower(PyObject *self, int lower)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10011,1
    - Dst: _PyUnicode_IsCaseIgnorable
      Src: /src/cpython/Objects/unicodeobject.c:10012,1
    - Dst: _PyUnicode_IsCased
      Src: /src/cpython/Objects/unicodeobject.c:10015,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10018,1
    - Dst: _PyUnicode_IsCaseIgnorable
      Src: /src/cpython/Objects/unicodeobject.c:10019,1
    - Dst: _PyUnicode_IsCased
      Src: /src/cpython/Objects/unicodeobject.c:10022,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: 10025
      start: 9998
    functionDepth: 2
    functionLinenumber: 9998
    functionLinenumberEnd: 10025
    functionName: handle_capital_sigma
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - _PyUnicode_IsCaseIgnorable
    - _PyUnicode_IsCased
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 handle_capital_sigma(int kind, const void *data, Py_ssize_t
      length, Py_ssize_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_capital_sigma
      Src: /src/cpython/Objects/unicodeobject.c:10033,1
    - Dst: _PyUnicode_ToLowerFull
      Src: /src/cpython/Objects/unicodeobject.c:10036,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: 10037
      start: 10027
    functionDepth: 3
    functionLinenumber: 10027
    functionLinenumberEnd: 10037
    functionName: lower_ucs4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - handle_capital_sigma
    - _PyUnicode_ToLowerFull
    linkageType: ''
    returnType: int
    signature: "int lower_ucs4(int kind, const 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/cpython/Objects/unicodeobject.c:10046,1
    - Dst: _PyUnicode_ToTitleFull
      Src: /src/cpython/Objects/unicodeobject.c:10047,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10049,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10053,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:10054,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10056,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: 10061
      start: 10039
    functionDepth: 4
    functionLinenumber: 10039
    functionLinenumberEnd: 10061
    functionName: do_capitalize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_ToTitleFull
    - Py_MAX
    - PyUnicode_READ
    - lower_ucs4
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_capitalize(int kind, const void *data, Py_ssize_t length,
      Py_UCS4 *res, Py_UCS4 *maxchar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10068,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:10070,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:10071,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:10073,1
    - Dst: _PyUnicode_ToUpperFull
      Src: /src/cpython/Objects/unicodeobject.c:10074,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10081,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: 10086
      start: 10063
    functionDepth: 4
    functionLinenumber: 10063
    functionLinenumberEnd: 10086
    functionName: do_swapcase
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISLOWER
    - Py_MAX
    - PyUnicode_READ
    - Py_UNICODE_ISUPPER
    - lower_ucs4
    - _PyUnicode_ToUpperFull
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_swapcase(int kind, const void *data, Py_ssize_t length,
      Py_UCS4 *res, Py_UCS4 *maxchar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10095,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:10098,1
    - Dst: _PyUnicode_ToUpperFull
      Src: /src/cpython/Objects/unicodeobject.c:10100,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10102,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: 10107
      start: 10088
    functionDepth: 4
    functionLinenumber: 10088
    functionLinenumberEnd: 10107
    functionName: do_upper_or_lower
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - _PyUnicode_ToUpperFull
    - PyUnicode_READ
    - lower_ucs4
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t do_upper_or_lower(int kind, const 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/cpython/Objects/unicodeobject.c:10112,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: 10113
      start: 10109
    functionDepth: 5
    functionLinenumber: 10109
    functionLinenumberEnd: 10113
    functionName: do_upper
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_upper_or_lower
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_upper(int kind, const void *data, Py_ssize_t length,
      Py_UCS4 *res, Py_UCS4 *maxchar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_upper_or_lower
      Src: /src/cpython/Objects/unicodeobject.c:10118,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: 10119
      start: 10115
    functionDepth: 5
    functionLinenumber: 10115
    functionLinenumberEnd: 10119
    functionName: do_lower
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_upper_or_lower
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_lower(int kind, const void *data, Py_ssize_t length,
      Py_UCS4 *res, Py_UCS4 *maxchar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10127,1
    - Dst: _PyUnicode_ToFoldedFull
      Src: /src/cpython/Objects/unicodeobject.c:10129,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10131,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: 10136
      start: 10121
    functionDepth: 3
    functionLinenumber: 10121
    functionLinenumberEnd: 10136
    functionName: do_casefold
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyUnicode_READ
    - _PyUnicode_ToFoldedFull
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_casefold(int kind, const void *data, Py_ssize_t length,
      Py_UCS4 *res, Py_UCS4 *maxchar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10146,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:10151,1
    - Dst: _PyUnicode_ToTitleFull
      Src: /src/cpython/Objects/unicodeobject.c:10153,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10156,1
    - Dst: _PyUnicode_IsCased
      Src: /src/cpython/Objects/unicodeobject.c:10160,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: 10163
      start: 10138
    functionDepth: 4
    functionLinenumber: 10138
    functionLinenumberEnd: 10163
    functionName: do_title
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyUnicode_READ
    - _PyUnicode_IsCased
    - lower_ucs4
    - _PyUnicode_ToTitleFull
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_title(int kind, const void *data, Py_ssize_t length,
      Py_UCS4 *res, Py_UCS4 *maxchar)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10176,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10177,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10180,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:10183,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:10185,1
    - Dst: perform
      Src: /src/cpython/Objects/unicodeobject.c:10186,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10187,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10191,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10192,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:10195,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:10198,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10201,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10204,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10209
      start: 10165
    functionDepth: 4
    functionLinenumber: 10165
    functionLinenumberEnd: 10209
    functionName: case_operation
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyErr_SetString
    - memcpy
    - _PyUnicode_CONVERT_BYTES
    - PyMem_Free
    - PyUnicode_New
    - perform
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - Py_UNREACHABLE
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncase_operation(PyObject *self,\n               Py_ssize_t
      (*perform)(int, const void *, Py_ssize_t, Py_UCS4 *, Py_UCS4 *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/unicodeobject.c:10219,1
    - Dst: Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Objects/unicodeobject.c:10224,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/unicodeobject.c:10226,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:10227,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/cpython/Objects/unicodeobject.c:10228,1
    - Dst: Py_END_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Objects/unicodeobject.c:10230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:10232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - separator
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10234
      start: 10211
    functionDepth: 3
    functionLinenumber: 10211
    functionLinenumberEnd: 10234
    functionName: PyUnicode_Join
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - _PyUnicode_JoinArray
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - PySequence_Fast_ITEMS
    - Py_END_CRITICAL_SECTION_SEQUENCE_FAST
    - Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
    - PySequence_Fast
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Join(PyObject *separator, PyObject *seq)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:10253,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:10259,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:10261,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicodeobject.c:10270,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:10277,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:10278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:10281,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10285,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10286,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:10289,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:10308,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:10309,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:10312,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10315,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10316,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10317,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10322,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10328,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10328,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10334,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10343,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10344,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10346,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10356,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10362,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10364,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10365,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10370,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10370,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10371,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10380,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10384,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10386,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10390,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10390,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:10393,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10394,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:10394,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:10398,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:10399,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 109
    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: 10370
        line_start: 10369
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 10393
        line_start: 10393
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (res_offset == PyUnicode_GET_LENGTH(res))
      pos:
        line_end: 10389
        line_start: 10389
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10401
      start: 10236
    functionDepth: 6
    functionLinenumber: 10236
    functionLinenumberEnd: 10401
    functionName: _PyUnicode_JoinArray
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_MAX
    - _PyUnicode_FastCopyCharacters
    - PyErr_SetString
    - PyUnicode_KIND
    - Py_INCREF
    - PyUnicode_MAX_CHAR_VALUE
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_CheckExact
    - Py_NewRef
    - _PyUnicode_CheckConsistency
    - memcpy
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - PyUnicode_1BYTE_DATA
    - PyUnicode_FromOrdinal
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_New
    - PyUnicode_DATA
    - assert
    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/cpython/Objects/unicodeobject.c:10407,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10408,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10409,1
    - Dst: unicode_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:10409,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10410,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10410,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10411,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10412,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10412,1
    - Dst: unicode_fill
      Src: /src/cpython/Objects/unicodeobject.c:10413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - unicode
    - start
    - length
    - fill_char
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (fill_char <= PyUnicode_MAX_CHAR_VALUE(unicode))
      pos:
        line_end: 10409
        line_start: 10409
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (unicode_modifiable(unicode))
      pos:
        line_end: 10408
        line_start: 10408
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (start >= 0)
      pos:
        line_end: 10410
        line_start: 10410
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (start + length <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 10411
        line_start: 10411
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10414
      start: 10403
    functionDepth: 3
    functionLinenumber: 10403
    functionLinenumberEnd: 10414
    functionName: _PyUnicode_FastFill
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - unicode_modifiable
    - unicode_fill
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: void
    signature: "void _PyUnicode_FastFill(PyObject *unicode, Py_ssize_t start, Py_ssize_t
      length,\n                    Py_UCS4 fill_char)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:10422,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:10423,1
    - Dst: unicode_check_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:10426,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10430,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10433,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10434,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10440,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:10441,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Objects/unicodeobject.c:10445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - unicode
    - start
    - length
    - fill_char
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10447
      start: 10416
    functionDepth: 4
    functionLinenumber: 10416
    functionLinenumberEnd: 10447
    functionName: PyUnicode_Fill
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - Py_MIN
    - unicode_check_modifiable
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_FastFill
    - 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/cpython/Objects/unicodeobject.c:10466,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10468,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10469,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10470,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10473,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10474,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10475,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10475,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10479,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10480,1
    - Dst: unicode_fill
      Src: /src/cpython/Objects/unicodeobject.c:10482,1
    - Dst: unicode_fill
      Src: /src/cpython/Objects/unicodeobject.c:10484,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10484,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10485,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10485,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10486,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:10486,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: 10485
        line_start: 10485
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10488
      start: 10449
    functionDepth: 4
    functionLinenumber: 10449
    functionLinenumberEnd: 10488
    functionName: pad
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - PyUnicode_KIND
    - Py_MAX
    - unicode_result_unchanged
    - unicode_fill
    - _PyUnicode_FastCopyCharacters
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_New
    - PyUnicode_DATA
    - _PyUnicode_LENGTH
    - assert
    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/cpython/Objects/unicodeobject.c:10495,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10498,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10500,1
    - Dst: asciilib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10501,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10502,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10503,1
    - Dst: ucs1lib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10505,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10506,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10507,1
    - Dst: ucs2lib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10510,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10511,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10512,1
    - Dst: ucs4lib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10515,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10516,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10517,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - string
    - keepends
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10523
      start: 10490
    functionDepth: 2
    functionLinenumber: 10490
    functionLinenumberEnd: 10523
    functionName: PyUnicode_Splitlines
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_4BYTE_DATA
    - ensure_unicode
    - ucs1lib_splitlines
    - PyUnicode_2BYTE_DATA
    - asciilib_splitlines
    - ucs4lib_splitlines
    - PyUnicode_IS_ASCII
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - Py_UNREACHABLE
    - ucs2lib_splitlines
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Splitlines(PyObject *string, int keepends)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10534,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10535,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10543,1
    - Dst: asciilib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10544,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10545,1
    - Dst: ucs1lib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10549,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10550,1
    - Dst: ucs2lib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10554,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10555,1
    - Dst: ucs4lib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10559,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10560,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10564,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10568,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10569,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/unicodeobject.c:10577,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:10580,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:10580,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10583,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10584,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10586,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10593,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10593,1
    - Dst: asciilib_split
      Src: /src/cpython/Objects/unicodeobject.c:10594,1
    - Dst: ucs1lib_split
      Src: /src/cpython/Objects/unicodeobject.c:10597,1
    - Dst: ucs2lib_split
      Src: /src/cpython/Objects/unicodeobject.c:10601,1
    - Dst: ucs4lib_split
      Src: /src/cpython/Objects/unicodeobject.c:10605,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10611,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10611,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10613,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 3
    argNames:
    - self
    - substring
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: ((kind2 != kind1) == (buf2 != PyUnicode_DATA(substring)))
      pos:
        line_end: 10610
        line_start: 10610
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10615
      start: 10525
    functionDepth: 4
    functionLinenumber: 10525
    functionLinenumberEnd: 10615
    functionName: split
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - PyList_New
    - PyUnicode_4BYTE_DATA
    - asciilib_split_whitespace
    - PyUnicode_IS_ASCII
    - ucs4lib_split_whitespace
    - unicode_askind
    - ucs2lib_split
    - PyMem_Free
    - PyUnicode_KIND
    - PyUnicode_2BYTE_DATA
    - assert
    - asciilib_split
    - Py_NewRef
    - ucs2lib_split_whitespace
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - ucs1lib_split
    - PyList_SET_ITEM
    - ucs4lib_split
    - PyUnicode_DATA
    - ucs1lib_split_whitespace
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsplit(PyObject *self,\n      PyObject *substring,\n      Py_ssize_t
      maxcount)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10627,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10628,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10636,1
    - Dst: asciilib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10637,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10638,1
    - Dst: ucs1lib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10642,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10643,1
    - Dst: ucs2lib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10647,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10648,1
    - Dst: ucs4lib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10652,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10653,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10657,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10660,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10661,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/unicodeobject.c:10669,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:10672,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:10672,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10675,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10676,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10678,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10685,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10685,1
    - Dst: asciilib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10686,1
    - Dst: ucs1lib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10689,1
    - Dst: ucs2lib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10693,1
    - Dst: ucs4lib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10697,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10703,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10703,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10705,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 3
    argNames:
    - self
    - substring
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: ((kind2 != kind1) == (buf2 != PyUnicode_DATA(substring)))
      pos:
        line_end: 10702
        line_start: 10702
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10707
      start: 10617
    functionDepth: 4
    functionLinenumber: 10617
    functionLinenumberEnd: 10707
    functionName: rsplit
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyList_New
    - PyUnicode_4BYTE_DATA
    - PyUnicode_IS_ASCII
    - unicode_askind
    - PyMem_Free
    - PyUnicode_KIND
    - ucs1lib_rsplit_whitespace
    - PyUnicode_2BYTE_DATA
    - asciilib_rsplit
    - ucs4lib_rsplit
    - ucs2lib_rsplit_whitespace
    - assert
    - Py_NewRef
    - ucs2lib_rsplit
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - ucs4lib_rsplit_whitespace
    - asciilib_rsplit_whitespace
    - PyList_SET_ITEM
    - ucs1lib_rsplit
    - PyUnicode_DATA
    - Py_UNREACHABLE
    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/cpython/Objects/unicodeobject.c:10715,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10715,1
    - Dst: asciilib_find
      Src: /src/cpython/Objects/unicodeobject.c:10716,1
    - Dst: ucs1lib_find
      Src: /src/cpython/Objects/unicodeobject.c:10718,1
    - Dst: ucs2lib_find
      Src: /src/cpython/Objects/unicodeobject.c:10720,1
    - Dst: ucs4lib_find
      Src: /src/cpython/Objects/unicodeobject.c:10722,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10724,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: 10725
      start: 10709
    functionDepth: 1
    functionLinenumber: 10709
    functionLinenumberEnd: 10725
    functionName: anylib_find
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs1lib_find
    - ucs2lib_find
    - ucs4lib_find
    - PyUnicode_IS_ASCII
    - asciilib_find
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t anylib_find(int kind, PyObject *str1, const void *buf1,
      Py_ssize_t len1,\n            PyObject *str2, const void *buf2, Py_ssize_t len2,
      Py_ssize_t offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucs1lib_count
      Src: /src/cpython/Objects/unicodeobject.c:10733,1
    - Dst: ucs2lib_count
      Src: /src/cpython/Objects/unicodeobject.c:10735,1
    - Dst: ucs4lib_count
      Src: /src/cpython/Objects/unicodeobject.c:10737,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    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: 10740
      start: 10727
    functionDepth: 1
    functionLinenumber: 10727
    functionLinenumberEnd: 10740
    functionName: anylib_count
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs2lib_count
    - ucs4lib_count
    - ucs1lib_count
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t anylib_count(int kind, PyObject *sstr, const void* sbuf,
      Py_ssize_t slen,\n             PyObject *str1, const void *buf1, Py_ssize_t
      len1, Py_ssize_t maxcount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10746,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10747,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10748,1
    - Dst: ucs1lib_replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10750,1
    - Dst: ucs2lib_replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10755,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10760,1
    - Dst: ucs4lib_replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10761,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: 10759
        line_start: 10759
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10765
      start: 10742
    functionDepth: 1
    functionLinenumber: 10742
    functionLinenumberEnd: 10765
    functionName: replace_1char_inplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - ucs2lib_replace_1char_inplace
    - ucs4lib_replace_1char_inplace
    - ucs1lib_replace_1char_inplace
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    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/cpython/Objects/unicodeobject.c:10772,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10773,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10774,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10776,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10777,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10778,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10779,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10780,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10781,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10796,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10797,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10801,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10805,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10816,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:10817,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10820,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10821,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10825,1
    - Dst: replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10826,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10835,1
    - Dst: anylib_find
      Src: /src/cpython/Objects/unicodeobject.c:10839,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10844,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10852,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10852,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10853,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10854,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10857,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10860,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10864,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10867,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10867,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10868,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10870,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10872,1
    - Dst: anylib_find
      Src: /src/cpython/Objects/unicodeobject.c:10878,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10883,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10898,1
    - Dst: anylib_count
      Src: /src/cpython/Objects/unicodeobject.c:10902,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10907,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10914,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10918,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10918,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10919,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10920,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10923,1
    - Dst: len1 < len2 && len2 - len1 >
      Src: /src/cpython/Objects/unicodeobject.c:10929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10930,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:10936,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10940,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10944,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10947,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10947,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10948,1
    - Dst: anylib_find
      Src: /src/cpython/Objects/unicodeobject.c:10953,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10960,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10967,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10976,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10983,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10989,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10995,1
    - Dst: unicode_adjust_maxchar
      Src: /src/cpython/Objects/unicodeobject.c:11002,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11008,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11008,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11009,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11009,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11010,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11010,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11012,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11014,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11016,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11017,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:11017,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11022,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11022,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11023,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11023,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11024,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11024,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11026,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11028,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11030,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:11031,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11034,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11034,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11035,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11035,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11036,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11036,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11038,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11040,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11042,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 226
    argCount: 4
    argNames:
    - self
    - str1
    - str2
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (release2 == (buf2 != PyUnicode_DATA(str2)))
      pos:
        line_end: 11023
        line_start: 11023
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (buf1 != PyUnicode_DATA(str1))
      pos:
        line_end: 10917
        line_start: 10917
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (buf1 != PyUnicode_DATA(str1))
      pos:
        line_end: 10851
        line_start: 10851
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (srelease == (sbuf != PyUnicode_DATA(self)))
      pos:
        line_end: 11021
        line_start: 11021
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release1 == (buf1 != PyUnicode_DATA(str1)))
      pos:
        line_end: 11022
        line_start: 11022
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 11016
        line_start: 11016
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == rkind)
      pos:
        line_end: 10946
        line_start: 10946
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == rkind)
      pos:
        line_end: 10866
        line_start: 10866
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release2 == (buf2 != PyUnicode_DATA(str2)))
      pos:
        line_end: 11035
        line_start: 11035
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release2 == (buf2 != PyUnicode_DATA(str2)))
      pos:
        line_end: 11009
        line_start: 11009
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (srelease == (sbuf != PyUnicode_DATA(self)))
      pos:
        line_end: 11007
        line_start: 11007
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release1 == (buf1 != PyUnicode_DATA(str1)))
      pos:
        line_end: 11008
        line_start: 11008
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (srelease == (sbuf != PyUnicode_DATA(self)))
      pos:
        line_end: 11033
        line_start: 11033
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release1 == (buf1 != PyUnicode_DATA(str1)))
      pos:
        line_end: 11034
        line_start: 11034
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11044
      start: 10767
    functionDepth: 5
    functionLinenumber: 10767
    functionLinenumberEnd: 11044
    functionName: replace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - Py_MAX
    - _PyUnicode_FastCopyCharacters
    - PyErr_SetString
    - anylib_find
    - findchar
    - unicode_askind
    - anylib_count
    - PyMem_Free
    - PyUnicode_KIND
    - len1 < len2 && len2 - len1 >
    - PyUnicode_READ
    - unicode_get_empty
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_CheckConsistency
    - memcpy
    - PyUnicode_GET_LENGTH
    - replace_1char_inplace
    - unicode_result_unchanged
    - unicode_adjust_maxchar
    - PyUnicode_New
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreplace(PyObject *self, PyObject *str1,\n        PyObject
      *str2, Py_ssize_t maxcount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:11062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11063
      start: 11058
    functionDepth: 5
    functionLinenumber: 11058
    functionLinenumberEnd: 11063
    functionName: unicode_title_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_title_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11079,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:11080,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:11081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11082
      start: 11075
    functionDepth: 5
    functionLinenumber: 11075
    functionLinenumberEnd: 11082
    functionName: unicode_capitalize_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    - PyUnicode_GET_LENGTH
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_capitalize_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11094,1
    - Dst: ascii_upper_or_lower
      Src: /src/cpython/Objects/unicodeobject.c:11095,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:11096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11097
      start: 11090
    functionDepth: 5
    functionLinenumber: 11090
    functionLinenumberEnd: 11097
    functionName: unicode_casefold_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ascii_upper_or_lower
    - PyUnicode_IS_ASCII
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_casefold_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11107,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11108,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11110,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11114,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:11118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11120
      start: 11102
    functionDepth: 1
    functionLinenumber: 11102
    functionLinenumberEnd: 11120
    functionName: convert_uc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_TYPE
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int convert_uc(PyObject *obj, void *addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11140,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:11141,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11143,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:11146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11147
      start: 11134
    functionDepth: 2
    functionLinenumber: 11134
    functionLinenumberEnd: 11147
    functionName: unicode_center_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    - PyUnicode_GET_LENGTH
    - 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/cpython/Objects/unicodeobject.c:11173,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11174,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11175,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11176,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11177,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11178,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:11179,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11187,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11196,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11199,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11202,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11210,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11214,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11218,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11221,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11229,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11232,1
    - Dst: wmemcmp
      Src: /src/cpython/Objects/unicodeobject.c:11237,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11244,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11249,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11254,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11265
      start: 11151
    functionDepth: 1
    functionLinenumber: 11151
    functionLinenumberEnd: 11265
    functionName: unicode_compare
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_MIN
    - COMPARE
    - wmemcmp
    - memcmp
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - Py_UNREACHABLE
    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: 11168
      start: 11154
    functionDepth: 0
    functionLinenumber: 11154
    functionLinenumberEnd: 11168
    functionName: COMPARE
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE(TYPE1, TYPE2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11271,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11271,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11272,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11272,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/unicodeobject.c:11276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(str1))
      pos:
        line_end: 11270
        line_start: 11270
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(str2))
      pos:
        line_end: 11271
        line_start: 11271
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11277
      start: 11268
    functionDepth: 1
    functionLinenumber: 11268
    functionLinenumberEnd: 11277
    functionName: _PyUnicode_Equal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_Check
    - assert
    - unicode_eq
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_Equal(PyObject *str1, PyObject *str2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11283,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11284,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11288,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11289,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/unicodeobject.c:11294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11295
      start: 11280
    functionDepth: 2
    functionLinenumber: 11280
    functionLinenumberEnd: 11295
    functionName: PyUnicode_Equal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_Equal
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Equal(PyObject *str1, PyObject *str2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11301,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11301,1
    - Dst: unicode_compare
      Src: /src/cpython/Objects/unicodeobject.c:11306,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11308,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11310,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11313
      start: 11298
    functionDepth: 1
    functionLinenumber: 11298
    functionLinenumberEnd: 11313
    functionName: PyUnicode_Compare
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_Check
    - Py_TYPE
    - unicode_compare
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Compare(PyObject *left, PyObject *right)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11322,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:11322,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11323,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11325,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11326,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:11327,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:11330,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11331,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11345,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11347,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11352,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - uni
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (_PyUnicode_CHECK(uni))
      pos:
        line_end: 11321
        line_start: 11321
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11358
      start: 11315
    functionDepth: 1
    functionLinenumber: 11315
    functionLinenumberEnd: 11358
    functionName: PyUnicode_CompareWithASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - PyUnicode_KIND
    - Py_MIN
    - strlen
    - PyUnicode_READ
    - _PyUnicode_CHECK
    - memcmp
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnicode_CompareWithASCIIString(PyObject* uni, const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EqualToUTF8AndSize
      Src: /src/cpython/Objects/unicodeobject.c:11363,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:11363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11364
      start: 11360
    functionDepth: 1
    functionLinenumber: 11360
    functionLinenumberEnd: 11364
    functionName: PyUnicode_EqualToUTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - PyUnicode_EqualToUTF8AndSize
    - strlen
    linkageType: ''
    returnType: int
    signature: int PyUnicode_EqualToUTF8(PyObject *unicode, const char *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11369,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:11369,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11370,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11372,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11373,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11375,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11375,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:11377,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11378,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11380,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:11380,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11383,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11389,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11390,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11393,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:11410,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11421,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 39
    argCount: 3
    argNames:
    - unicode
    - str
    - size
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 11368
        line_start: 11368
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (str)
      pos:
        line_end: 11369
        line_start: 11369
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 11420
        line_start: 11420
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11434
      start: 11366
    functionDepth: 3
    functionLinenumber: 11366
    functionLinenumberEnd: 11434
    functionName: PyUnicode_EqualToUTF8AndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyUnicode_IS_ASCII
    - Py_UNICODE_IS_SURROGATE
    - PyUnicode_UTF8_LENGTH
    - _PyUnicode_CHECK
    - PyUnicode_DATA
    - memcmp
    - PyUnicode_UTF8
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnicode_EqualToUTF8AndSize(PyObject *unicode, const char *str,
      Py_ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11440,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:11440,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11441,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11444,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11447,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11449,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:11450,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11451,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - unicode
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 11439
        line_start: 11439
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (str)
      pos:
        line_end: 11440
        line_start: 11440
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((unsigned char)*p < 128)
      pos:
        line_end: 11443
        line_start: 11443
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11452
      start: 11436
    functionDepth: 1
    functionLinenumber: 11436
    functionLinenumberEnd: 11452
    functionName: _PyUnicode_EqualToASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - strlen
    - PyUnicode_IS_ASCII
    - _PyUnicode_CHECK
    - memcmp
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EqualToASCIIString(PyObject *unicode, const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11459,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:11459,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11460,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11463,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11467,1
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/unicodeobject.c:11470,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:11473,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:11474,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11480,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:11480,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:11481,1
    - Dst: PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:11485,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11486,1
    - Dst: PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:11487,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/unicodeobject.c:11492,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts:
    - condition: (_PyUnicode_CHECK(left))
      pos:
        line_end: 11458
        line_start: 11458
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((unsigned char)*p < 128)
      pos:
        line_end: 11462
        line_start: 11462
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (right->string)
      pos:
        line_end: 11459
        line_start: 11459
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_CHECK_INTERNED(right_uni))
      pos:
        line_end: 11479
        line_start: 11479
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (right_hash != -1)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11493
      start: 11454
    functionDepth: 2
    functionLinenumber: 11454
    functionLinenumberEnd: 11493
    functionName: _PyUnicode_EqualToASCIIId
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_eq
    - _PyUnicode_FromId
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_IS_ASCII
    - _PyUnicode_CHECK
    - PyUnicode_HASH
    - _PyUnicode_EqualToASCIIString
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EqualToASCIIId(PyObject *left, _Py_Identifier *right)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11500,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11500,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:11515,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/unicodeobject.c:11520,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11522,1
    - Dst: unicode_compare
      Src: /src/cpython/Objects/unicodeobject.c:11525,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11526,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - left
    - right
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11528
      start: 11495
    functionDepth: 1
    functionLinenumber: 11495
    functionLinenumberEnd: 11528
    functionName: PyUnicode_RichCompare
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - unicode_eq
    - PyBool_FromLong
    - unicode_compare
    - PyUnicode_Check
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_RichCompare(PyObject *left, PyObject *right, int op)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11538,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11539,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11541,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:11544,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11547,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11548,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11551,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11552,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11555,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11556,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11558,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:11559,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:11563,1
    - Dst: ucs1lib_find
      Src: /src/cpython/Objects/unicodeobject.c:11570,1
    - Dst: ucs2lib_find
      Src: /src/cpython/Objects/unicodeobject.c:11573,1
    - Dst: ucs4lib_find
      Src: /src/cpython/Objects/unicodeobject.c:11576,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11579,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11582,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11582,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11584,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - str
    - substr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((kind2 == kind1) == (buf2 == PyUnicode_DATA(substr)))
      pos:
        line_end: 11581
        line_start: 11581
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11587
      start: 11530
    functionDepth: 2
    functionLinenumber: 11530
    functionLinenumberEnd: 11587
    functionName: PyUnicode_Contains
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - ucs1lib_find
    - assert
    - ensure_unicode
    - PyUnicode_READ
    - ucs2lib_find
    - ucs4lib_find
    - findchar
    - unicode_askind
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - PyMem_Free
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Contains(PyObject *str, PyObject *substr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:11598,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11601,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11604,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:11609,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Objects/unicodeobject.c:11611,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Objects/unicodeobject.c:11614,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11617,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11618,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11620,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11626,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11627,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:11628,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:11631,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11634,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11635,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11636,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:11636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 11635
        line_start: 11635
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11638
      start: 11591
    functionDepth: 6
    functionLinenumber: 11591
    functionLinenumberEnd: 11638
    functionName: PyUnicode_Concat
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - Py_MAX
    - ensure_unicode
    - _PyUnicode_FastCopyCharacters
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - unicode_get_empty
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_New
    - PyUnicode_FromObject
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Concat(PyObject *left, PyObject *right)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:11648,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:11649,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11654,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:11655,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:11656,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:11661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:11663,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:11664,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11671,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11672,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11674,1
    - Dst: unicode_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:11680,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:11681,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11682,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11682,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11687,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11687,1
    - Dst: unicode_resize
      Src: /src/cpython/Objects/unicodeobject.c:11690,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11694,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11697,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11698,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:11699,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:11702,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11705,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:11707,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11710,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:11710,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:11714,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - p_left
    - right
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(*p_left, 1))
      pos:
        line_end: 11709
        line_start: 11709
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11715
      start: 11640
    functionDepth: 4
    functionLinenumber: 11640
    functionLinenumberEnd: 11715
    functionName: PyUnicode_Append
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_MAX
    - _PyUnicode_FastCopyCharacters
    - PyErr_SetString
    - PyUnicode_IS_ASCII
    - unicode_resize
    - Py_CLEAR
    - PyUnicode_KIND
    - PyErr_Occurred
    - unicode_get_empty
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_Check
    - Py_DECREF
    - PyUnicode_CheckExact
    - Py_NewRef
    - _PyUnicode_CheckConsistency
    - PyUnicode_GET_LENGTH
    - unicode_modifiable
    - PyErr_BadInternalCall
    - PyUnicode_New
    - assert
    linkageType: ''
    returnType: void
    signature: void PyUnicode_Append(PyObject **p_left, PyObject *right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Append
      Src: /src/cpython/Objects/unicodeobject.c:11720,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:11721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pleft
    - right
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11722
      start: 11717
    functionDepth: 5
    functionLinenumber: 11717
    functionLinenumberEnd: 11722
    functionName: PyUnicode_AppendAndDel
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - PyUnicode_Append
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyUnicode_AppendAndDel(PyObject **pleft, PyObject *right)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11745,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11745,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11746,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11746,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11753,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11754,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11758,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11759,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/unicodeobject.c:11760,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11764,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11765,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:11767,1
    - Dst: ucs1lib_count
      Src: /src/cpython/Objects/unicodeobject.c:11775,1
    - Dst: ucs2lib_count
      Src: /src/cpython/Objects/unicodeobject.c:11781,1
    - Dst: ucs4lib_count
      Src: /src/cpython/Objects/unicodeobject.c:11787,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11793,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11796,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11796,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11798,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11802,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11802,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11804,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - str
    - substr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_Check(str))
      pos:
        line_end: 11744
        line_start: 11744
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)))
      pos:
        line_end: 11795
        line_start: 11795
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)))
      pos:
        line_end: 11801
        line_start: 11801
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(substr))
      pos:
        line_end: 11745
        line_start: 11745
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11806
      start: 11740
    functionDepth: 2
    functionLinenumber: 11740
    functionLinenumberEnd: 11806
    functionName: unicode_count_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - ucs2lib_count
    - ucs4lib_count
    - Py_UNREACHABLE
    - ADJUST_INDICES
    - unicode_askind
    - ucs1lib_count
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t unicode_count_impl(PyObject *str, PyObject *substr, Py_ssize_t
      start,\n                   Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Objects/unicodeobject.c:11827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11828
      start: 11823
    functionDepth: 5
    functionLinenumber: 11823
    functionLinenumberEnd: 11828
    functionName: unicode_encode_impl
    functionSourceFile: /src/cpython/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: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11853,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11855,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11856,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11859,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:11880,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:11883,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11883,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11886,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11891,1
    - Dst: unicode_fill
      Src: /src/cpython/Objects/unicodeobject.c:11896,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:11902,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11908,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11908,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:11909,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11912,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - self
    - tabsize
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (j == PyUnicode_GET_LENGTH(u))
      pos:
        line_end: 11907
        line_start: 11907
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11914
      start: 11840
    functionDepth: 4
    functionLinenumber: 11840
    functionLinenumberEnd: 11914
    functionName: unicode_expandtabs_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - unicode_result_unchanged
    - unicode_fill
    - PyErr_SetString
    - PyUnicode_READ
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_WRITE
    - PyUnicode_New
    - unicode_result
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_expandtabs_impl(PyObject *self, int tabsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: any_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:11931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - str
    - substr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11936
      start: 11926
    functionDepth: 3
    functionLinenumber: 11926
    functionLinenumberEnd: 11936
    functionName: unicode_find_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - any_find_slice
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t unicode_find_impl(PyObject *str, PyObject *substr, Py_ssize_t
      start,\n                  Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11945,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:11946,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11949,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11950,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11953,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11954,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11955,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:11956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11957
      start: 11938
    functionDepth: 5
    functionLinenumber: 11938
    functionLinenumberEnd: 11957
    functionName: unicode_getitem
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyErr_SetString
    - PyUnicode_READ
    - unicode_char
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_getitem(PyObject *self, Py_ssize_t index)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11967,1
    - Dst: PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:11969,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/unicodeobject.c:11973,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11973,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11974,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11974,1
    - Dst: PyUnicode_SET_HASH
      Src: /src/cpython/Objects/unicodeobject.c:11976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_HashSecret_Initialized)
      pos:
        line_end: 11966
        line_start: 11966
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11978
      start: 11961
    functionDepth: 2
    functionLinenumber: 11961
    functionLinenumberEnd: 11978
    functionName: unicode_hash
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_SET_HASH
    - Py_HashBuffer
    - PyUnicode_HASH
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t unicode_hash(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: any_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:11995,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - str
    - substr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12003
      start: 11990
    functionDepth: 3
    functionLinenumber: 11990
    functionLinenumberEnd: 12003
    functionName: unicode_index_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - any_find_slice
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t unicode_index_impl(PyObject *str, PyObject *substr, Py_ssize_t
      start,\n                   Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12018,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12019
      start: 12014
    functionDepth: 1
    functionLinenumber: 12014
    functionLinenumberEnd: 12019
    functionName: unicode_isascii_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyUnicode_IS_ASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isascii_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12040,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12041,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12042,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12046,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:12047,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12047,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12055,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:12057,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:12057,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:12059,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12062,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12063
      start: 12031
    functionDepth: 1
    functionLinenumber: 12031
    functionLinenumberEnd: 12063
    functionName: unicode_islower_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - Py_UNICODE_ISUPPER
    - Py_UNICODE_ISTITLE
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_islower_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12084,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12085,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12086,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12090,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:12091,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12091,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12099,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:12101,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:12101,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:12103,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12107
      start: 12075
    functionDepth: 1
    functionLinenumber: 12075
    functionLinenumberEnd: 12107
    functionName: unicode_isupper_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - Py_UNICODE_ISUPPER
    - Py_UNICODE_ISTITLE
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isupper_impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12127,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12128,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12129,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12133,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12134,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:12134,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:12135,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12145,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:12147,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:12147,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:12153,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12163
      start: 12118
    functionDepth: 1
    functionLinenumber: 12118
    functionLinenumberEnd: 12163
    functionName: unicode_istitle_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - Py_UNICODE_ISUPPER
    - Py_UNICODE_ISTITLE
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_istitle_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12183,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12184,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12185,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12189,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:12190,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12190,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12197,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:12198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12202
      start: 12175
    functionDepth: 1
    functionLinenumber: 12175
    functionLinenumberEnd: 12202
    functionName: unicode_isspace_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isspace_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12222,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12223,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12224,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12228,1
    - Dst: Py_UNICODE_ISALPHA
      Src: /src/cpython/Objects/unicodeobject.c:12229,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12229,1
    - Dst: Py_UNICODE_ISALPHA
      Src: /src/cpython/Objects/unicodeobject.c:12236,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12240
      start: 12214
    functionDepth: 1
    functionLinenumber: 12214
    functionLinenumberEnd: 12240
    functionName: unicode_isalpha_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyBool_FromLong
    - PyUnicode_DATA
    - Py_UNICODE_ISALPHA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isalpha_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12260,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12261,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12262,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12266,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12267,1
    - Dst: Py_UNICODE_ISALNUM
      Src: /src/cpython/Objects/unicodeobject.c:12267,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12275,1
    - Dst: Py_UNICODE_ISALNUM
      Src: /src/cpython/Objects/unicodeobject.c:12276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12280
      start: 12252
    functionDepth: 1
    functionLinenumber: 12252
    functionLinenumberEnd: 12280
    functionName: unicode_isalnum_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_ISALNUM
    - PyUnicode_READ
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isalnum_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12300,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12301,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12302,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12306,1
    - Dst: Py_UNICODE_ISDECIMAL
      Src: /src/cpython/Objects/unicodeobject.c:12307,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12307,1
    - Dst: Py_UNICODE_ISDECIMAL
      Src: /src/cpython/Objects/unicodeobject.c:12314,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12318
      start: 12292
    functionDepth: 1
    functionLinenumber: 12292
    functionLinenumberEnd: 12318
    functionName: unicode_isdecimal_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISDECIMAL
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isdecimal_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12338,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12339,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12340,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12344,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12345,1
    - Dst: Py_UNICODE_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:12345,1
    - Dst: Py_UNICODE_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:12353,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12357
      start: 12330
    functionDepth: 1
    functionLinenumber: 12330
    functionLinenumberEnd: 12357
    functionName: unicode_isdigit_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISDIGIT
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isdigit_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12377,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12378,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12379,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12383,1
    - Dst: Py_UNICODE_ISNUMERIC
      Src: /src/cpython/Objects/unicodeobject.c:12384,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12384,1
    - Dst: Py_UNICODE_ISNUMERIC
      Src: /src/cpython/Objects/unicodeobject.c:12391,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12395
      start: 12369
    functionDepth: 1
    functionLinenumber: 12369
    functionLinenumberEnd: 12395
    functionName: unicode_isnumeric_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISNUMERIC
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isnumeric_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12401,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12407,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12408,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12409,1
    - Dst: _PyUnicode_IsXidStart
      Src: /src/cpython/Objects/unicodeobject.c:12418,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12423,1
    - Dst: _PyUnicode_IsXidContinue
      Src: /src/cpython/Objects/unicodeobject.c:12424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12429
      start: 12397
    functionDepth: 2
    functionLinenumber: 12397
    functionLinenumberEnd: 12429
    functionName: _PyUnicode_ScanIdentifier
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_IsXidStart
    - PyUnicode_READ
    - _PyUnicode_IsXidContinue
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyUnicode_ScanIdentifier(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_ScanIdentifier
      Src: /src/cpython/Objects/unicodeobject.c:12434,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12438
      start: 12431
    functionDepth: 3
    functionLinenumber: 12431
    functionLinenumberEnd: 12438
    functionName: PyUnicode_IsIdentifier
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_ScanIdentifier
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int PyUnicode_IsIdentifier(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12454,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/cpython/Objects/unicodeobject.c:12454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12455
      start: 12450
    functionDepth: 4
    functionLinenumber: 12450
    functionLinenumberEnd: 12455
    functionName: unicode_isidentifier_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyUnicode_IsIdentifier
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isidentifier_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12474,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12475,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12476,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12480,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/unicodeobject.c:12481,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12481,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/unicodeobject.c:12484,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12489
      start: 12466
    functionDepth: 1
    functionLinenumber: 12466
    functionLinenumberEnd: 12489
    functionName: unicode_isprintable_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_ISPRINTABLE
    - PyUnicode_READ
    - PyBool_FromLong
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isprintable_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Join
      Src: /src/cpython/Objects/unicodeobject.c:12510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12511
      start: 12506
    functionDepth: 4
    functionLinenumber: 12506
    functionLinenumberEnd: 12511
    functionName: unicode_join
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_join(PyObject *self, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12517
      start: 12513
    functionDepth: 1
    functionLinenumber: 12513
    functionLinenumberEnd: 12517
    functionName: unicode_length
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicode_length(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12535,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12536,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:12538,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12539
      start: 12531
    functionDepth: 2
    functionLinenumber: 12531
    functionLinenumberEnd: 12539
    functionName: unicode_ljust_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    - PyUnicode_GET_LENGTH
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_ljust_impl(PyObject *self, Py_ssize_t width, Py_UCS4 fillchar)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12551,1
    - Dst: ascii_upper_or_lower
      Src: /src/cpython/Objects/unicodeobject.c:12552,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:12553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12554
      start: 12547
    functionDepth: 5
    functionLinenumber: 12547
    functionLinenumberEnd: 12554
    functionName: unicode_lower_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ascii_upper_or_lower
    - PyUnicode_IS_ASCII
    - 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: 12564
      start: 12563
    functionDepth: 0
    functionLinenumber: 12563
    functionLinenumberEnd: 12564
    functionName: STRIPNAME
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRIPNAME(i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12575,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12576,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12577,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12578,1
    - Dst: make_bloom_mask
      Src: /src/cpython/Objects/unicodeobject.c:12579,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12579,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12580,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12586,1
    - Dst: BLOOM
      Src: /src/cpython/Objects/unicodeobject.c:12587,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Objects/unicodeobject.c:12589,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12599,1
    - Dst: BLOOM
      Src: /src/cpython/Objects/unicodeobject.c:12600,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Objects/unicodeobject.c:12602,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12610,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - striptype
    - sepobj
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12611
      start: 12566
    functionDepth: 2
    functionLinenumber: 12566
    functionLinenumberEnd: 12611
    functionName: _PyUnicode_XStrip
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - BLOOM
    - make_bloom_mask
    - PyUnicode_FindChar
    - PyUnicode_DATA
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_XStrip(PyObject *self, int striptype, PyObject *sepobj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12620,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:12621,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:12627,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:12631,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12634,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12635,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicodeobject.c:12636,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12639,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12640,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Objects/unicodeobject.c:12641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - start
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12645
      start: 12613
    functionDepth: 7
    functionLinenumber: 12613
    functionLinenumberEnd: 12645
    functionName: PyUnicode_Substring
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 17
    functionsReached:
    - Py_MIN
    - PyUnicode_KIND
    - unicode_result_unchanged
    - PyErr_SetString
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_IS_ASCII
    - _PyUnicode_FromASCII
    - PyUnicode_FromKindAndData
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Substring(PyObject *self, Py_ssize_t start, Py_ssize_t end)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12652,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12654,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12655,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12680,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12681,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12686,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:12687,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12697,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:12698,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12706,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 2
    argNames:
    - self
    - striptype
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12707
      start: 12647
    functionDepth: 8
    functionLinenumber: 12647
    functionLinenumberEnd: 12707
    functionName: do_strip
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_strip(PyObject *self, int striptype)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:12714,1
    - Dst: _PyUnicode_XStrip
      Src: /src/cpython/Objects/unicodeobject.c:12715,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:12717,1
    - Dst: STRIPNAME
      Src: /src/cpython/Objects/unicodeobject.c:12719,1
    - Dst: do_strip
      Src: /src/cpython/Objects/unicodeobject.c:12724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - striptype
    - sep
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12725
      start: 12710
    functionDepth: 3
    functionLinenumber: 12710
    functionLinenumberEnd: 12725
    functionName: do_argstrip
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - STRIPNAME
    - _PyUnicode_XStrip
    - do_strip
    - PyErr_Format
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_argstrip(PyObject *self, int striptype, PyObject *sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/cpython/Objects/unicodeobject.c:12744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12745
      start: 12740
    functionDepth: 0
    functionLinenumber: 12740
    functionLinenumberEnd: 12745
    functionName: unicode_strip_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:12763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12764
      start: 12759
    functionDepth: 0
    functionLinenumber: 12759
    functionLinenumberEnd: 12764
    functionName: unicode_lstrip_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:12782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12783
      start: 12778
    functionDepth: 0
    functionLinenumber: 12778
    functionLinenumberEnd: 12783
    functionName: unicode_rstrip_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_argstrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rstrip_impl(PyObject *self, PyObject *chars)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:12793,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12797,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12799,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:12800,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12804,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:12806,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:12806,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12809,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12809,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12809,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12811,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12812,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12813,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12813,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12815,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:12816,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12819,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12823,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12824,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12830,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12831,1
    - Dst: _PyBytes_Repeat
      Src: /src/cpython/Objects/unicodeobject.c:12832,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12832,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12833,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12836,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:12836,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 12823
        line_start: 12823
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 12835
        line_start: 12835
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == PyUnicode_KIND(str))
      pos:
        line_end: 12808
        line_start: 12808
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12838
      start: 12786
    functionDepth: 4
    functionLinenumber: 12786
    functionLinenumberEnd: 12838
    functionName: unicode_repeat
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyBytes_Repeat
    - PyUnicode_4BYTE_DATA
    - unicode_result_unchanged
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_2BYTE_DATA
    - PyUnicode_READ
    - _Py_RETURN_UNICODE_EMPTY
    - memset
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_New
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_repeat(PyObject *str, Py_ssize_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12846,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12846,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12847,1
    - Dst: replace
      Src: /src/cpython/Objects/unicodeobject.c:12849,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: 12850
      start: 12840
    functionDepth: 6
    functionLinenumber: 12840
    functionLinenumberEnd: 12850
    functionName: PyUnicode_Replace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - replace
    - ensure_unicode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_Replace(PyObject *str,\n                  PyObject
      *substr,\n                  PyObject *replstr,\n                  Py_ssize_t
      maxcount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace
      Src: /src/cpython/Objects/unicodeobject.c:12874,1
    - Dst: count::count
      Src: /src/cpython/Objects/unicodeobject.c:12874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - old
    - new
    - count
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12875
      start: 12869
    functionDepth: 6
    functionLinenumber: 12869
    functionLinenumberEnd: 12875
    functionName: unicode_replace_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - replace
    - count::count
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_replace_impl(PyObject *self, PyObject *old, PyObject
      *new,\n                     Py_ssize_t count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:12894,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12899,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12899,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12900,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12903
      start: 12890
    functionDepth: 8
    functionLinenumber: 12890
    functionLinenumberEnd: 12903
    functionName: unicode_removeprefix_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    - PyUnicode_GET_LENGTH
    - PyUnicode_Substring
    - tailmatch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_removeprefix_impl(PyObject *self, PyObject *prefix)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:12922,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12927,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12927,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12928,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - suffix
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12931
      start: 12918
    functionDepth: 8
    functionLinenumber: 12918
    functionLinenumberEnd: 12931
    functionName: unicode_removesuffix_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    - PyUnicode_GET_LENGTH
    - PyUnicode_Substring
    - tailmatch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_removesuffix_impl(PyObject *self, PyObject *suffix)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12936,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12937,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12945,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12947,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/unicodeobject.c:12961,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:12971,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:12991,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12994,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12995,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:12998,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:13000,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:13004,1
    - Dst: ucs1lib_repr
      Src: /src/cpython/Objects/unicodeobject.c:13009,1
    - Dst: ucs2lib_repr
      Src: /src/cpython/Objects/unicodeobject.c:13012,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13015,1
    - Dst: ucs4lib_repr
      Src: /src/cpython/Objects/unicodeobject.c:13016,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13020,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:13020,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (okind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 13014
        line_start: 13014
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(repr, 1))
      pos:
        line_end: 13019
        line_start: 13019
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13022
      start: 12933
    functionDepth: 4
    functionLinenumber: 12933
    functionLinenumberEnd: 13022
    functionName: unicode_repr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_ISPRINTABLE
    - _PyUnicode_FastCopyCharacters
    - _PyUnicode_CheckConsistency
    - ucs2lib_repr
    - ucs1lib_repr
    - PyErr_SetString
    - PyUnicode_READ
    - PyUnicode_WRITE
    - ucs4lib_repr
    - PyUnicode_New
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_repr(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: any_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:13039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - str
    - substr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13044
      start: 13034
    functionDepth: 3
    functionLinenumber: 13034
    functionLinenumberEnd: 13044
    functionName: unicode_rfind_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - any_find_slice
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t unicode_rfind_impl(PyObject *str, PyObject *substr, Py_ssize_t
      start,\n                   Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: any_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:13061,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - str
    - substr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13069
      start: 13056
    functionDepth: 3
    functionLinenumber: 13056
    functionLinenumberEnd: 13069
    functionName: unicode_rindex_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - any_find_slice
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t unicode_rindex_impl(PyObject *str, PyObject *substr, Py_ssize_t
      start,\n                    Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13087,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:13088,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:13090,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13091
      start: 13083
    functionDepth: 2
    functionLinenumber: 13083
    functionLinenumberEnd: 13091
    functionName: unicode_rjust_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    - PyUnicode_GET_LENGTH
    - 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/cpython/Objects/unicodeobject.c:13096,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:13096,1
    - Dst: split
      Src: /src/cpython/Objects/unicodeobject.c:13099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13100
      start: 13093
    functionDepth: 5
    functionLinenumber: 13093
    functionLinenumberEnd: 13100
    functionName: PyUnicode_Split
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - split
    - ensure_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Split(PyObject *s, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/cpython/Objects/unicodeobject.c:13131,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13132,1
    - Dst: split
      Src: /src/cpython/Objects/unicodeobject.c:13133,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13135,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13139
      start: 13126
    functionDepth: 5
    functionLinenumber: 13126
    functionLinenumberEnd: 13139
    functionName: unicode_split_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - split
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_split_impl(PyObject *self, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:13149,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:13149,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13152,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13153,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13154,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13155,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:13157,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/unicodeobject.c:13158,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13160,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13161,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:13163,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:13170,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:13170,1
    - Dst: asciilib_partition
      Src: /src/cpython/Objects/unicodeobject.c:13171,1
    - Dst: ucs1lib_partition
      Src: /src/cpython/Objects/unicodeobject.c:13173,1
    - Dst: ucs2lib_partition
      Src: /src/cpython/Objects/unicodeobject.c:13176,1
    - Dst: ucs4lib_partition
      Src: /src/cpython/Objects/unicodeobject.c:13179,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:13182,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13185,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13185,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:13187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - str_obj
    - sep_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((kind2 == kind1) == (buf2 == PyUnicode_DATA(sep_obj)))
      pos:
        line_end: 13184
        line_start: 13184
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13190
      start: 13141
    functionDepth: 2
    functionLinenumber: 13141
    functionLinenumberEnd: 13190
    functionName: PyUnicode_Partition
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - Py_UNREACHABLE
    - assert
    - ucs2lib_partition
    - ensure_unicode
    - ucs4lib_partition
    - unicode_get_empty
    - PyUnicode_IS_ASCII
    - unicode_askind
    - PyUnicode_DATA
    - asciilib_partition
    - PyTuple_Pack
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    - ucs1lib_partition
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Partition(PyObject *str_obj, PyObject *sep_obj)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:13201,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:13201,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13204,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13205,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13206,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13207,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:13209,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/unicodeobject.c:13210,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13212,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13213,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:13215,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:13222,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:13222,1
    - Dst: asciilib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:13223,1
    - Dst: ucs1lib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:13225,1
    - Dst: ucs2lib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:13228,1
    - Dst: ucs4lib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:13231,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:13234,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13237,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13237,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:13239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - str_obj
    - sep_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((kind2 == kind1) == (buf2 == PyUnicode_DATA(sep_obj)))
      pos:
        line_end: 13236
        line_start: 13236
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13242
      start: 13193
    functionDepth: 2
    functionLinenumber: 13193
    functionLinenumberEnd: 13242
    functionName: PyUnicode_RPartition
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - assert
    - ensure_unicode
    - unicode_get_empty
    - ucs2lib_rpartition
    - ucs4lib_rpartition
    - PyUnicode_IS_ASCII
    - unicode_askind
    - PyUnicode_DATA
    - asciilib_rpartition
    - ucs1lib_rpartition
    - PyTuple_Pack
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_RPartition(PyObject *str_obj, PyObject *sep_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Partition
      Src: /src/cpython/Objects/unicodeobject.c:13265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13266
      start: 13261
    functionDepth: 3
    functionLinenumber: 13261
    functionLinenumberEnd: 13266
    functionName: unicode_partition
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:13286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13287
      start: 13282
    functionDepth: 3
    functionLinenumber: 13282
    functionLinenumberEnd: 13287
    functionName: unicode_rpartition
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:13292,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:13292,1
    - Dst: rsplit
      Src: /src/cpython/Objects/unicodeobject.c:13295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13296
      start: 13289
    functionDepth: 5
    functionLinenumber: 13289
    functionLinenumberEnd: 13296
    functionName: PyUnicode_RSplit
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    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/cpython/Objects/unicodeobject.c:13312,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13313,1
    - Dst: rsplit
      Src: /src/cpython/Objects/unicodeobject.c:13314,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13316,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13320
      start: 13307
    functionDepth: 5
    functionLinenumber: 13307
    functionLinenumberEnd: 13320
    functionName: unicode_rsplit_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_Format
    - Py_TYPE
    - 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/cpython/Objects/unicodeobject.c:13338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13339
      start: 13334
    functionDepth: 3
    functionLinenumber: 13334
    functionLinenumberEnd: 13339
    functionName: unicode_splitlines_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:13344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13345
      start: 13341
    functionDepth: 2
    functionLinenumber: 13341
    functionLinenumberEnd: 13345
    functionName: unicode_str
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    linkageType: ''
    returnType: PyObject
    signature: PyObject *unicode_str(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:13358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13359
      start: 13354
    functionDepth: 5
    functionLinenumber: 13354
    functionLinenumberEnd: 13359
    functionName: unicode_swapcase_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_swapcase_impl(PyObject *self)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New::PyDict_New
      Src: /src/cpython/Objects/unicodeobject.c:13393,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13401,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13402,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13406,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13407,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13412,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13413,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13414,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13415,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13416,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13417,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13417,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13420,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13422,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13425,1
    - Dst: key::key
      Src: /src/cpython/Objects/unicodeobject.c:13425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13427,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13433,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13434,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13435,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13436,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13436,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13439,1
    - Dst: key::key
      Src: /src/cpython/Objects/unicodeobject.c:13439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13440,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:13450,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13451,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/unicodeobject.c:13456,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13457,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13461,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13465,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13466,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13467,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13467,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13470,1
    - Dst: newkey::newkey
      Src: /src/cpython/Objects/unicodeobject.c:13470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13471,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:13474,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13476,1
    - Dst: key::key
      Src: /src/cpython/Objects/unicodeobject.c:13476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13479,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13489
      start: 13385
    functionDepth: 10
    functionLinenumber: 13385
    functionLinenumberEnd: 13489
    functionName: unicode_maketrans_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_DECREF
    - PyDict_SetItem
    - PyDict_CheckExact
    - PyErr_SetString
    - PyLong_Check
    - PyUnicode_READ
    - PyDict_Next
    - newkey::newkey
    - key::key
    - PyUnicode_DATA
    - PyLong_FromLong
    - PyDict_New::PyDict_New
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_maketrans_impl(PyObject *x, PyObject *y, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_TranslateCharmap
      Src: /src/cpython/Objects/unicodeobject.c:13511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - table
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13512
      start: 13507
    functionDepth: 13
    functionLinenumber: 13507
    functionLinenumberEnd: 13512
    functionName: unicode_translate
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_TranslateCharmap
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_translate(PyObject *self, PyObject *table)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:13524,1
    - Dst: ascii_upper_or_lower
      Src: /src/cpython/Objects/unicodeobject.c:13525,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:13526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13527
      start: 13520
    functionDepth: 5
    functionLinenumber: 13520
    functionLinenumberEnd: 13527
    functionName: unicode_upper_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ascii_upper_or_lower
    - PyUnicode_IS_ASCII
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_upper_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13551,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:13552,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13554,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:13556,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13561,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13562,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13563,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:13567,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:13568,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13571,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:13571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - width
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 13570
        line_start: 13570
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13573
      start: 13541
    functionDepth: 3
    functionLinenumber: 13541
    functionLinenumberEnd: 13573
    functionName: unicode_zfill_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - unicode_result_unchanged
    - PyUnicode_READ
    - PyUnicode_WRITE
    - pad
    - _PyUnicode_CheckConsistency
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_zfill_impl(PyObject *self, Py_ssize_t width)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:13596,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:13598,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:13599,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13600,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13601,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13604,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13607,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13618,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13619,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13621,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13624,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13628,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - self
    - subobj
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13629
      start: 13591
    functionDepth: 1
    functionLinenumber: 13591
    functionLinenumberEnd: 13629
    functionName: unicode_startswith_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyBool_FromLong
    - tailmatch
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_startswith_impl(PyObject *self, PyObject *subobj,
      Py_ssize_t start,\n                        Py_ssize_t end)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:13653,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:13655,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:13656,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13657,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13658,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13661,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13664,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13674,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13675,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13677,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13680,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13684,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - self
    - subobj
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13685
      start: 13648
    functionDepth: 1
    functionLinenumber: 13648
    functionLinenumberEnd: 13685
    functionName: unicode_endswith_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyBool_FromLong
    - tailmatch
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_endswith_impl(PyObject *self, PyObject *subobj,
      Py_ssize_t start,\n                      Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:13691,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13692,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13695,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13696,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (writer->kind <= PyUnicode_1BYTE_KIND)
      pos:
        line_end: 13701
        line_start: 13701
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13709
      start: 13688
    functionDepth: 1
    functionLinenumber: 13688
    functionLinenumberEnd: 13709
    functionName: _PyUnicodeWriter_Update
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Update(_PyUnicodeWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:13715,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13722,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (writer->kind < PyUnicode_1BYTE_KIND)
      pos:
        line_end: 13722
        line_start: 13722
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (writer->kind == 0)
      pos:
        line_end: 13721
        line_start: 13721
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13724
      start: 13712
    functionDepth: 0
    functionLinenumber: 13712
    functionLinenumberEnd: 13724
    functionName: _PyUnicodeWriter_Init
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 12
    functionsReached:
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Init(_PyUnicodeWriter *writer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13731,1
    - Dst: _Py_FREELIST_POP_MEM
      Src: /src/cpython/Objects/unicodeobject.c:13738,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:13740,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:13742,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:13747,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:13748,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:13749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - length
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13755
      start: 13727
    functionDepth: 2
    functionLinenumber: 13727
    functionLinenumberEnd: 13755
    functionName: PyUnicodeWriter_Create
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - _PyUnicodeWriter_Init
    - PyErr_SetString
    - _Py_FREELIST_POP_MEM
    - PyUnicodeWriter_Discard
    - PyErr_NoMemory
    - _PyUnicodeWriter_Prepare
    - PyMem_Malloc
    linkageType: ''
    returnType: PyUnicodeWriter
    signature: 'PyUnicodeWriter *

      PyUnicodeWriter_Create(Py_ssize_t length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:13763,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/unicodeobject.c:13764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13765
      start: 13758
    functionDepth: 1
    functionLinenumber: 13758
    functionLinenumberEnd: 13765
    functionName: PyUnicodeWriter_Discard
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 17
    functionsReached:
    - _Py_FREELIST_FREE
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: void
    signature: void PyUnicodeWriter_Discard(PyUnicodeWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:13772,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicodeobject.c:13774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - buffer
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13776
      start: 13769
    functionDepth: 2
    functionLinenumber: 13769
    functionLinenumberEnd: 13776
    functionName: _PyUnicodeWriter_InitWithBuffer
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicodeWriter_Update
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_InitWithBuffer(_PyUnicodeWriter *writer, PyObject
      *buffer)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13786,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13787,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13790,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:13794,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:13799,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13802,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:13811,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:13826,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:13827,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:13830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13832,1
    - Dst: resize_compact
      Src: /src/cpython/Objects/unicodeobject.c:13836,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13843,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:13844,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:13847,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:13849,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicodeobject.c:13851,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - writer
    - length
    - maxchar
    argTypes:
    - _PyUnicodeWriter*
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 13785
        line_start: 13785
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: "((maxchar > writer->maxchar && length >= 0)\n           || length
        > 0)"
      pos:
        line_end: 13790
        line_start: 13789
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (maxchar <= MAX_UNICODE)
      pos:
        line_end: 13786
        line_start: 13786
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!writer->readonly)
      pos:
        line_end: 13801
        line_start: 13801
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!writer->readonly)
      pos:
        line_end: 13842
        line_start: 13842
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13855
      start: 13779
    functionDepth: 6
    functionLinenumber: 13779
    functionLinenumberEnd: 13855
    functionName: _PyUnicodeWriter_PrepareInternal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - Py_DECREF
    - _PyUnicode_FastCopyCharacters
    - _PyUnicodeWriter_Update
    - resize_compact
    - Py_SETREF
    - PyUnicode_New
    - PyErr_NoMemory
    - assert
    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/cpython/Objects/unicodeobject.c:13864,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:13872,1
    - Dst: _PyUnicodeWriter_PrepareInternal
      Src: /src/cpython/Objects/unicodeobject.c:13875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - writer
    - kind
    argTypes:
    - _PyUnicodeWriter*
    - int
    assertStmts:
    - condition: (writer->kind < kind)
      pos:
        line_end: 13863
        line_start: 13863
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13876
      start: 13857
    functionDepth: 7
    functionLinenumber: 13857
    functionLinenumberEnd: 13876
    functionName: _PyUnicodeWriter_PrepareKindInternal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_PrepareInternal
    - Py_UNREACHABLE
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer,\n
      \                                    int kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13881,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:13882,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:13884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - _PyUnicodeWriter*
    - Py_UCS4
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 13880
        line_start: 13880
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13887
      start: 13878
    functionDepth: 1
    functionLinenumber: 13878
    functionLinenumberEnd: 13887
    functionName: _PyUnicodeWriter_WriteCharInline
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - _PyUnicodeWriter_Prepare
    - PyUnicode_WRITE
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyUnicodeWriter_WriteCharInline(_PyUnicodeWriter *writer, Py_UCS4
      ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:13892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - _PyUnicodeWriter*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13893
      start: 13889
    functionDepth: 2
    functionLinenumber: 13889
    functionLinenumberEnd: 13893
    functionName: _PyUnicodeWriter_WriteChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicodeWriter_WriteCharInline
    linkageType: ''
    returnType: int
    signature: int _PyUnicodeWriter_WriteChar(_PyUnicodeWriter *writer, Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13899,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/unicodeobject.c:13904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - PyUnicodeWriter*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13905
      start: 13895
    functionDepth: 3
    functionLinenumber: 13895
    functionLinenumberEnd: 13905
    functionName: PyUnicodeWriter_WriteChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - PyErr_SetString
    - _PyUnicodeWriter_WriteChar
    linkageType: ''
    returnType: int
    signature: int PyUnicodeWriter_WriteChar(PyUnicodeWriter *writer, Py_UCS4 ch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13910,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13910,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13915,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:13918,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13921,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:13921,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:13923,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicodeobject.c:13924,1
    - Dst: _PyUnicodeWriter_PrepareInternal
      Src: /src/cpython/Objects/unicodeobject.c:13928,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:13931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(str))
      pos:
        line_end: 13909
        line_start: 13909
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(str, 1))
      pos:
        line_end: 13920
        line_start: 13920
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13935
      start: 13907
    functionDepth: 7
    functionLinenumber: 13907
    functionLinenumberEnd: 13935
    functionName: _PyUnicodeWriter_WriteStr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - _PyUnicodeWriter_Update
    - _PyUnicode_FastCopyCharacters
    - _PyUnicodeWriter_PrepareInternal
    - Py_NewRef
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_CheckConsistency
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyUnicodeWriter_WriteStr(_PyUnicodeWriter *writer, PyObject *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13940,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:13942,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicodeobject.c:13946,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:13949,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:13954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13955,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - writer
    - obj
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13957
      start: 13937
    functionDepth: 8
    functionLinenumber: 13937
    functionLinenumberEnd: 13957
    functionName: PyUnicodeWriter_WriteStr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 19
    functionsReached:
    - PyObject_Str
    - Py_DECREF
    - _PyLong_FormatWriter
    - _PyUnicodeWriter_WriteStr
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnicodeWriter_WriteStr(PyUnicodeWriter *writer, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13963,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicodeobject.c:13964,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/unicodeobject.c:13967,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:13972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - obj
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13975
      start: 13960
    functionDepth: 8
    functionLinenumber: 13960
    functionLinenumberEnd: 13975
    functionName: PyUnicodeWriter_WriteRepr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - PyObject_Repr
    - Py_DECREF
    - _PyLong_FormatWriter
    - _PyUnicodeWriter_WriteStr
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnicodeWriter_WriteRepr(PyUnicodeWriter *writer, PyObject *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13982,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13983,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13983,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13984,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13986,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:13987,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:13995,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Objects/unicodeobject.c:13996,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:14001,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:14005,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - writer
    - str
    - start
    - end
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= start)
      pos:
        line_end: 13981
        line_start: 13981
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (end <= PyUnicode_GET_LENGTH(str))
      pos:
        line_end: 13982
        line_start: 13982
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (start <= end)
      pos:
        line_end: 13983
        line_start: 13983
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14009
      start: 13978
    functionDepth: 8
    functionLinenumber: 13978
    functionLinenumberEnd: 14009
    functionName: _PyUnicodeWriter_WriteSubstring
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - _PyUnicodeWriter_Prepare
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_FindMaxChar
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_WriteSubstring(_PyUnicodeWriter *writer, PyObject
      *str,\n                                Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:14016,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14017,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14021,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14024,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14025,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/unicodeobject.c:14029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - writer
    - str
    - start
    - end
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14031
      start: 14012
    functionDepth: 9
    functionLinenumber: 14012
    functionLinenumberEnd: 14031
    functionName: PyUnicodeWriter_WriteSubstring
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - PyUnicode_Check
    - _PyUnicodeWriter_WriteSubstring
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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/cpython/Objects/unicodeobject.c:14039,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14041,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:14041,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicodeobject.c:14046,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicodeobject.c:14052,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:14057,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:14067,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:14072,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:14080,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:14087,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: 14040
        line_start: 14040
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14092
      start: 14034
    functionDepth: 5
    functionLinenumber: 14034
    functionLinenumberEnd: 14092
    functionName: _PyUnicodeWriter_WriteASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_UNREACHABLE
    - _PyUnicodeWriter_Update
    - strlen
    - _PyUnicodeWriter_Prepare
    - _PyUnicode_CONVERT_BYTES
    - ucs1lib_find_max_char
    - memcpy
    - _PyUnicode_FromASCII
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_WriteASCIIString(_PyUnicodeWriter *writer,\n
      \                                 const char *ascii, Py_ssize_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14100,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/unicodeobject.c:14101,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:14104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - writer
    - str
    - size
    argTypes:
    - PyUnicodeWriter*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 14099
        line_start: 14099
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14105
      start: 14095
    functionDepth: 6
    functionLinenumber: 14095
    functionLinenumberEnd: 14105
    functionName: PyUnicodeWriter_WriteASCII
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - _PyUnicodeWriter_WriteASCIIString
    - _Py_AssertHoldsTstate
    - assert
    linkageType: ''
    returnType: int
    signature: "int PyUnicodeWriter_WriteASCII(PyUnicodeWriter *writer,\n                           const
      char *str,\n                           Py_ssize_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:14114,1
    - Dst: unicode_decode_utf8_writer
      Src: /src/cpython/Objects/unicodeobject.c:14119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - str
    - size
    argTypes:
    - PyUnicodeWriter*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14125
      start: 14108
    functionDepth: 8
    functionLinenumber: 14108
    functionLinenumberEnd: 14125
    functionName: PyUnicodeWriter_WriteUTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - unicode_decode_utf8_writer
    - strlen
    linkageType: ''
    returnType: int
    signature: "int PyUnicodeWriter_WriteUTF8(PyUnicodeWriter *writer,\n                          const
      char *str,\n                          Py_ssize_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:14136,1
    - Dst: unicode_decode_utf8_writer
      Src: /src/cpython/Objects/unicodeobject.c:14141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - writer
    - string
    - length
    - errors
    - consumed
    argTypes:
    - PyUnicodeWriter*
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14150
      start: 14128
    functionDepth: 8
    functionLinenumber: 14128
    functionLinenumberEnd: 14150
    functionName: PyUnicodeWriter_DecodeUTF8Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - unicode_decode_utf8_writer
    - strlen
    linkageType: ''
    returnType: int
    signature: "int PyUnicodeWriter_DecodeUTF8Stateful(PyUnicodeWriter *writer,\n
      \                                  const char *string,\n                                   Py_ssize_t
      length,\n                                   const char *errors,\n                                   Py_ssize_t
      *consumed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:14159,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:14160,1
    - Dst: unicode_write_cstr
      Src: /src/cpython/Objects/unicodeobject.c:14162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - str
    - len
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14165
      start: 14153
    functionDepth: 2
    functionLinenumber: 14153
    functionLinenumberEnd: 14165
    functionName: _PyUnicodeWriter_WriteLatin1String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs1lib_find_max_char
    - unicode_write_cstr
    - _PyUnicodeWriter_Prepare
    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/cpython/Objects/unicodeobject.c:14173,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:14174,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14181,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14181,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14185,1
    - Dst: resize_compact
      Src: /src/cpython/Objects/unicodeobject.c:14187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14189,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14195,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:14195,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:14196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (PyUnicode_GET_LENGTH(str) == writer->pos)
      pos:
        line_end: 14180
        line_start: 14180
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(str, 1))
      pos:
        line_end: 14194
        line_start: 14194
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14197
      start: 14167
    functionDepth: 6
    functionLinenumber: 14167
    functionLinenumberEnd: 14197
    functionName: _PyUnicodeWriter_Finish
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - resize_compact
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicode_CheckConsistency
    - unicode_result
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicodeWriter_Finish(_PyUnicodeWriter *writer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:14203,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14204,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/unicodeobject.c:14205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyUnicodeWriter*
    assertStmts:
    - condition: (((_PyUnicodeWriter*)writer)->buffer == NULL)
      pos:
        line_end: 14203
        line_start: 14203
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14207
      start: 14200
    functionDepth: 7
    functionLinenumber: 14200
    functionLinenumberEnd: 14207
    functionName: PyUnicodeWriter_Finish
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 29
    functionsReached:
    - _Py_FREELIST_FREE
    - assert
    - _PyUnicodeWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeWriter_Finish(PyUnicodeWriter *writer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:14213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14214
      start: 14210
    functionDepth: 1
    functionLinenumber: 14210
    functionLinenumberEnd: 14214
    functionName: _PyUnicodeWriter_Dealloc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 15
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Dealloc(_PyUnicodeWriter *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:14248,1
    - Dst: _PyUnicode_FormatAdvancedWriter
      Src: /src/cpython/Objects/unicodeobject.c:14249,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14251,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:14253,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:14256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14257
      start: 14241
    functionDepth: 7
    functionLinenumber: 14241
    functionLinenumberEnd: 14257
    functionName: unicode___format___impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyUnicode_FormatAdvancedWriter
    - _PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:14273,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14274,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:14276,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14278,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:14278,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:14284,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14285,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:14286,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:14288,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14289,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:14291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14292
      start: 14265
    functionDepth: 3
    functionLinenumber: 14265
    functionLinenumberEnd: 14292
    functionName: unicode_sizeof_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_HAS_UTF8_MEMORY
    - _PyUnicode_DATA_ANY
    - PyUnicode_IS_COMPACT
    - PyLong_FromSsize_t
    - PyUnicode_UTF8_LENGTH
    - PyUnicode_IS_COMPACT_ASCII
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_sizeof_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/unicodeobject.c:14297,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/unicodeobject.c:14300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14301
      start: 14294
    functionDepth: 5
    functionLinenumber: 14294
    functionLinenumberEnd: 14301
    functionName: unicode_getnewargs
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _PyUnicode_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_getnewargs(PyObject *v, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14347,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14376,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - src
    - end
    - output
    argTypes:
    - char*
    - char*
    - char**
    assertStmts:
    - condition: (_len > 0)
      pos:
        line_end: 14346
        line_start: 14346
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_len >= 0)
      pos:
        line_end: 14375
        line_start: 14375
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14381
      start: 14309
    functionDepth: 0
    functionLinenumber: 14309
    functionLinenumberEnd: 14381
    functionName: search_longest_common_leading_whitespace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t search_longest_common_leading_whitespace(\n    const char
      *const src,\n    const char *const end,\n    const char **output)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/unicodeobject.c:14391,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14395,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:14397,1
    - Dst: search_longest_common_leading_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:14405,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:14409,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:14413,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:14415,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14445,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:14446,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:14455,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:14456,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (src_len >= 0)
      pos:
        line_end: 14394
        line_start: 14394
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (new_line_len >= 0)
      pos:
        line_end: 14444
        line_start: 14444
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14458
      start: 14387
    functionDepth: 5
    functionLinenumber: 14387
    functionLinenumberEnd: 14458
    functionName: _PyUnicode_Dedent
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyUnicode_AsUTF8AndSize
    - Py_NewRef
    - PyMem_Free
    - memcpy
    - search_longest_common_leading_whitespace
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_Dedent(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:14517,1
    - Dst: PyUnicode_Format
      Src: /src/cpython/Objects/unicodeobject.c:14519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14520
      start: 14514
    functionDepth: 1
    functionLinenumber: 14514
    functionLinenumberEnd: 14520
    functionName: unicode_mod
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_mod(PyObject *v, PyObject *w)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/unicodeobject.c:14543,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:14544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:14545,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14548,1
    - Dst: unicode_getitem
      Src: /src/cpython/Objects/unicodeobject.c:14549,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/unicodeobject.c:14550,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/unicodeobject.c:14559,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/unicodeobject.c:14562,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14562,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:14566,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14568,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:14569,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:14571,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:14575,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:14576,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:14577,1
    - Dst: kind_maxchar_limit
      Src: /src/cpython/Objects/unicodeobject.c:14578,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:14581,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:14591,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:14594,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:14595,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:14598,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:14599,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14601,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:14601,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14604,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:14605,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 14600
        line_start: 14600
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14608
      start: 14540
    functionDepth: 8
    functionLinenumber: 14540
    functionLinenumberEnd: 14608
    functionName: unicode_subscript
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_KIND
    - PyErr_Occurred
    - PyUnicode_READ
    - PySlice_Unpack
    - PyErr_Format
    - PyUnicode_Substring
    - PySlice_AdjustIndices
    - _PyUnicode_CheckConsistency
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - unicode_result_unchanged
    - kind_maxchar_limit
    - _PyIndex_Check
    - _Py_RETURN_UNICODE_EMPTY
    - PyNumber_AsSsize_t
    - unicode_getitem
    - PyUnicode_WRITE
    - PyUnicode_New
    - PySlice_Check
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_subscript(PyObject* self, PyObject* item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Objects/unicodeobject.c:14651,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:14653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct unicode_formatter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14656
      start: 14641
    functionDepth: 1
    functionLinenumber: 14641
    functionLinenumberEnd: 14656
    functionName: unicode_format_getnextarg
    functionSourceFile: /src/cpython/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/cpython/Objects/unicodeobject.c:14675,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:14676,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/unicodeobject.c:14685,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:14688,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:14690,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:14691,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicodeobject.c:14696,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:14697,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - v
    - arg
    - p_output
    - writer
    argTypes:
    - PyObject*
    - struct unicode_format_arg_t*
    - PyObject**
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14699
      start: 14664
    functionDepth: 6
    functionLinenumber: 14664
    functionLinenumberEnd: 14699
    functionName: formatfloat
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyFloat_AsDouble
    - strlen
    - PyErr_Occurred
    - _PyUnicodeWriter_WriteASCIIString
    - _PyUnicode_FromASCII
    - PyMem_Free
    - PyOS_double_to_string
    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/cpython/Objects/unicodeobject.c:14733,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14738,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:14738,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:14742,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Objects/unicodeobject.c:14748,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Objects/unicodeobject.c:14752,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Objects/unicodeobject.c:14757,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14763,1
    - Dst: unicode_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:14763,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14764,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:14764,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/unicodeobject.c:14767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14768,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:14769,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:14772,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14775,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:14776,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14784,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14789,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14790,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14797,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14798,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:14803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14807,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:14810,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:14818,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:14819,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:14831,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:14832,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicodeobject.c:14834,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:14835,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14837,1
    - Dst: PyUnicode_Resize
      Src: /src/cpython/Objects/unicodeobject.c:14838,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:14839,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 4
    argNames:
    - val
    - alt
    - prec
    - type
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(result))
      pos:
        line_end: 14763
        line_start: 14763
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: "(buf[sign+1] == 'x' || buf[sign+1] == 'X' ||\n               buf[sign+1]
        == 'o')"
      pos:
        line_end: 14790
        line_start: 14789
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (len == numnondigits + numdigits)
      pos:
        line_end: 14796
        line_start: 14796
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (numdigits > 0)
      pos:
        line_end: 14797
        line_start: 14797
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (unicode_modifiable(result))
      pos:
        line_end: 14762
        line_start: 14762
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyLong_Check(val))
      pos:
        line_end: 14737
        line_start: 14737
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (numdigits > 0)
      pos:
        line_end: 14783
        line_start: 14783
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (buf[sign] == '0')
      pos:
        line_end: 14788
        line_start: 14788
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14842
      start: 14719
    functionDepth: 5
    functionLinenumber: 14719
    functionLinenumberEnd: 14842
    functionName: _PyUnicode_FormatLong
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - Py_SETREF
    - PyUnicode_IS_ASCII
    - Py_CLEAR
    - _PyUnicode_FromASCII
    - PyNumber_ToBase
    - PyUnicode_Check
    - Py_DECREF
    - PyLong_Check
    - PyBytes_FromStringAndSize
    - PyBytes_AS_STRING
    - PyUnicode_GET_LENGTH
    - unicode_modifiable
    - Py_UNREACHABLE
    - PyErr_BadInternalCall
    - PyUnicode_Resize
    - _PyObject_IsUniquelyReferenced
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FormatLong(PyObject *val, int alt, int prec, int type)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/cpython/Objects/unicodeobject.c:14857,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:14861,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/unicodeobject.c:14863,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/unicodeobject.c:14866,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:14869,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14873,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:14873,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:14876,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:14879,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:14891,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicodeobject.c:14906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14910,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/cpython/Objects/unicodeobject.c:14914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14915,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14927,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:14930,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14933,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:14936,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    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: 14872
        line_start: 14872
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14940
      start: 14848
    functionDepth: 6
    functionLinenumber: 14848
    functionLinenumberEnd: 14940
    functionName: mainformatlong
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - Py_DECREF
    - _PyNumber_Index
    - _PyLong_FormatWriter
    - PyLong_Check
    - Py_NewRef
    - PyNumber_Check
    - PyErr_ExceptionMatches
    - PyNumber_Long
    - Py_TYPE
    - PyLong_CheckExact
    - PyErr_Format
    - _PyUnicode_FormatLong
    - assert
    linkageType: ''
    returnType: int
    signature: "int mainformatlong(PyObject *v,\n               struct unicode_format_arg_t
      *arg,\n               PyObject **p_output,\n               _PyUnicodeWriter
      *writer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:14946,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14947,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:14948,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14950,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14953,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/unicodeobject.c:14958,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:14959,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:14960,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14961,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:14971,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14978
      start: 14942
    functionDepth: 1
    functionLinenumber: 14942
    functionLinenumberEnd: 14978
    functionName: formatchar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 formatchar(PyObject *v)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15003,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15012,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15021,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:15025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15031,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/unicodeobject.c:15033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15034,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15044,1
    - Dst: unicode_format_getnextarg
      Src: /src/cpython/Objects/unicodeobject.c:15058,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:15061,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15062,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:15066,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:15067,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15074,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15081,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15089,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15101,1
    - Dst: unicode_format_getnextarg
      Src: /src/cpython/Objects/unicodeobject.c:15105,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:15108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15109,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/unicodeobject.c:15113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:15114,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15119,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15126,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15131,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicodeobject.c:15144,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15150,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: 15157
      start: 14986
    functionDepth: 8
    functionLinenumber: 14986
    functionLinenumberEnd: 15157
    functionName: unicode_format_arg_parse
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_SetString
    - FORMAT_READ
    - PyLong_Check
    - PyObject_GetItem
    - PyUnicode_Substring
    - unicode_format_getnextarg
    - PyLong_AsSsize_t
    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: 14992
      start: 14990
    functionDepth: 0
    functionLinenumber: 14990
    functionLinenumberEnd: 14992
    functionName: FORMAT_READ
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_READ(ctx)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: unicode_format_getnextarg
      Src: /src/cpython/Objects/unicodeobject.c:15184,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:15193,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicodeobject.c:15195,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:15200,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:15201,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:15205,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/unicodeobject.c:15207,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:15209,1
    - Dst: mainformatlong
      Src: /src/cpython/Objects/unicodeobject.c:15220,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/unicodeobject.c:15237,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/unicodeobject.c:15243,1
    - Dst: formatchar
      Src: /src/cpython/Objects/unicodeobject.c:15249,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:15254,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicodeobject.c:15258,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:15263,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15273,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:15273,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    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: 15272
        line_start: 15272
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15275
      start: 15173
    functionDepth: 7
    functionLinenumber: 15173
    functionLinenumberEnd: 15275
    functionName: unicode_format_arg_format
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - PyObject_Str
    - PyObject_Repr
    - formatfloat
    - _PyLong_FormatWriter
    - PyUnicode_CheckExact
    - formatchar
    - mainformatlong
    - Py_NewRef
    - PyObject_ASCII
    - _PyUnicodeWriter_WriteCharInline
    - PyLong_CheckExact
    - PyErr_Format
    - PyUnicode_Check
    - unicode_format_getnextarg
    - assert
    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: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15297,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:15303,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:15316,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:15317,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:15321,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:15342,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:15346,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:15349,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Objects/unicodeobject.c:15350,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:15351,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:15357,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:15363,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15374,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:15374,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15375,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:15375,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:15377,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:15378,1
    - Dst: unicode_fill
      Src: /src/cpython/Objects/unicodeobject.c:15391,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:15400,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15404,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:15404,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15405,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:15405,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:15406,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:15407,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:15415,1
    - Dst: unicode_fill
      Src: /src/cpython/Objects/unicodeobject.c:15423,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 102
    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: 15374
        line_start: 15374
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex) == '0')
      pos:
        line_end: 15403
        line_start: 15403
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex) == '0')
      pos:
        line_end: 15373
        line_start: 15373
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex+1) == arg->ch)
      pos:
        line_end: 15404
        line_start: 15404
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15427
      start: 15277
    functionDepth: 8
    functionLinenumber: 15277
    functionLinenumberEnd: 15427
    functionName: unicode_format_arg_output
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - assert
    - Py_MAX
    - unicode_fill
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_READ
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_FindMaxChar
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_WRITE
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Prepare
    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/cpython/Objects/unicodeobject.c:15438,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:15442,1
    - Dst: unicode_format_arg_parse
      Src: /src/cpython/Objects/unicodeobject.c:15452,1
    - Dst: unicode_format_arg_format
      Src: /src/cpython/Objects/unicodeobject.c:15456,1
    - Dst: unicode_format_arg_output
      Src: /src/cpython/Objects/unicodeobject.c:15461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct unicode_formatter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15473
      start: 15431
    functionDepth: 9
    functionLinenumber: 15431
    functionLinenumberEnd: 15473
    functionName: unicode_format_arg
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_format_arg_parse
    - Py_DECREF
    - PyErr_SetString
    - PyUnicode_READ
    - unicode_format_arg_format
    - unicode_format_arg_output
    - _PyUnicodeWriter_WriteCharInline
    linkageType: ''
    returnType: int
    signature: int unicode_format_arg(struct unicode_formatter_t *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:15481,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:15485,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:15489,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:15490,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15491,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:15494,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:15498,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/unicodeobject.c:15499,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Objects/unicodeobject.c:15507,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:15507,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:15507,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:15514,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:15519,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/unicodeobject.c:15528,1
    - Dst: unicode_format_arg
      Src: /src/cpython/Objects/unicodeobject.c:15534,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:15540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15546,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:15548,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:15551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15553,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15556
      start: 15475
    functionDepth: 10
    functionLinenumber: 15475
    functionLinenumberEnd: 15556
    functionName: PyUnicode_Format
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicodeWriter_Init
    - Py_DECREF
    - ensure_unicode
    - PyTuple_Check
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyUnicode_READ
    - _PyUnicodeWriter_WriteSubstring
    - unicode_format_arg
    - _PyUnicodeWriter_Finish
    - PyTuple_Size
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyMapping_Check
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Format(PyObject *format, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:15578,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:15581,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Objects/unicodeobject.c:15584,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:15588,1
    - Dst: unicode_subtype_new
      Src: /src/cpython/Objects/unicodeobject.c:15588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - type
    - x
    - encoding
    - errors
    argTypes:
    - PyTypeObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15591
      start: 15571
    functionDepth: 4
    functionLinenumber: 15571
    functionLinenumberEnd: 15591
    functionName: unicode_new_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_subtype_new
    - PyObject_Str
    - unicode_get_empty
    - Py_SETREF
    - PyUnicode_FromEncodedObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_new_impl(PyTypeObject *type, PyObject *x, const
      char *encoding,\n                 const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:15596,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:15597,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Objects/unicodeobject.c:15602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15603
      start: 15593
    functionDepth: 6
    functionLinenumber: 15593
    functionLinenumberEnd: 15603
    functionName: arg_as_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_AsUTF8NoNUL
    - PyErr_Format
    linkageType: ''
    returnType: char
    signature: 'char *

      arg_as_utf8(PyObject *obj, const char *name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15609,1
    - Dst: Py_Is
      Src: /src/cpython/Objects/unicodeobject.c:15609,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/unicodeobject.c:15609,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/unicodeobject.c:15611,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:15612,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/unicodeobject.c:15614,1
    - Dst: _PyStack_AsDict
      Src: /src/cpython/Objects/unicodeobject.c:15618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15620,1
    - Dst: unicode_new
      Src: /src/cpython/Objects/unicodeobject.c:15623,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/unicodeobject.c:15623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15625,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/unicodeobject.c:15628,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:15632,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:15636,1
    - Dst: arg_as_utf8
      Src: /src/cpython/Objects/unicodeobject.c:15638,1
    - Dst: arg_as_utf8
      Src: /src/cpython/Objects/unicodeobject.c:15644,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Objects/unicodeobject.c:15649,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (Py_Is(_PyType_CAST(type), &PyUnicode_Type))
      pos:
        line_end: 15608
        line_start: 15608
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15650
      start: 15605
    functionDepth: 7
    functionLinenumber: 15605
    functionLinenumberEnd: 15650
    functionName: unicode_vectorcall
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_Is
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - Py_DECREF
    - unicode_new
    - PyObject_Str
    - arg_as_utf8
    - _PyType_CAST
    - unicode_get_empty
    - _PyStack_AsDict
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - PyUnicode_FromEncodedObject
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_vectorcall(PyObject *type, PyObject *const *args,\n
      \                  size_t nargsf, PyObject *kwnames)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15661,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/unicodeobject.c:15661,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15662,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:15662,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/unicodeobject.c:15664,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:15668,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15669,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15671,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:15673,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:15675,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:15675,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15677,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15678,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15679,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15680,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15680,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15681,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15682,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:15683,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:15684,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:15689,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15696,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:15702,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:15705,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:15707,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:15711,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15713,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:15714,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:15717,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:15717,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15718,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:15718,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:15720,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:15720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15725,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 2
    argNames:
    - type
    - unicode
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyUnicode_Type))
      pos:
        line_end: 15660
        line_start: 15660
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(self, 1))
      pos:
        line_end: 15717
        line_start: 15717
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 15661
        line_start: 15661
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 15695
        line_start: 15695
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15727
      start: 15652
    functionDepth: 3
    functionLinenumber: 15652
    functionLinenumberEnd: 15727
    functionName: unicode_subtype_new
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_SET_UTF8_LENGTH
    - PyTypeObject*::tp_alloc
    - _PyUnicode_LENGTH
    - PyUnicode_KIND
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_HASH
    - _PyUnicode_CHECK
    - Py_DECREF
    - PyType_IsSubtype
    - _PyUnicode_CheckConsistency
    - memcpy
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - PyMem_Malloc
    - _PyUnicode_DATA_ANY
    - PyUnicode_SET_UTF8
    - PyUnicode_DATA
    - _PyUnicode_STATE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_subtype_new(PyTypeObject *type, PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15732,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:15732,1
    - Dst: unicode_dealloc
      Src: /src/cpython/Objects/unicodeobject.c:15733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(op))
      pos:
        line_end: 15731
        line_start: 15731
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15734
      start: 15729
    functionDepth: 9
    functionLinenumber: 15729
    functionLinenumberEnd: 15734
    functionName: _PyUnicode_ExactDealloc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CheckExact
    - assert
    - unicode_dealloc
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_ExactDealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_bloom_mask
      Src: /src/cpython/Objects/unicodeobject.c:15818,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15821
      start: 15798
    functionDepth: 2
    functionLinenumber: 15798
    functionLinenumberEnd: 15821
    functionName: _init_global_state
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_ARRAY_LENGTH
    - make_bloom_mask
    linkageType: ''
    returnType: void
    signature: void _init_global_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:15826,1
    - Dst: _init_global_state
      Src: /src/cpython/Objects/unicodeobject.c:15829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15830
      start: 15823
    functionDepth: 1
    functionLinenumber: 15823
    functionLinenumberEnd: 15830
    functionName: _PyUnicode_InitState
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _init_global_state
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_InitState(PyInterpreterState *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:15836,1
    - Dst: init_global_interned_strings
      Src: /src/cpython/Objects/unicodeobject.c:15837,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Objects/unicodeobject.c:15838,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15842,1
    - Dst: init_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:15844,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:15845,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:15846,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:15849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (INTERNED_STRINGS)
      pos:
        line_end: 15841
        line_start: 15841
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15850
      start: 15833
    functionDepth: 11
    functionLinenumber: 15833
    functionLinenumberEnd: 15850
    functionName: _PyUnicode_InitGlobalObjects
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - init_global_interned_strings
    - init_interned_dict
    - _PyStatus_ERR
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:15856,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:15859,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:15862,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:15865,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:15868,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15869
      start: 15853
    functionDepth: 1
    functionLinenumber: 15853
    functionLinenumberEnd: 15869
    functionName: _PyUnicode_InitTypes
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_InitBuiltin
    - _PyStatus_OK
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyUnicode_InitTypes(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15877,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15878,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:15878,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15879,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15879,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15880,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:15880,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:15886,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15887,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Objects/unicodeobject.c:15891,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15893,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15896,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15896,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15897,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:15897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15898,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:15899,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Objects/unicodeobject.c:15902,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/unicodeobject.c:15903,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - interp
    - s
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts:
    - condition: (interned == NULL)
      pos:
        line_end: 15886
        line_start: 15886
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(r).interned == SSTATE_INTERNED_IMMORTAL_STATIC)
      pos:
        line_end: 15895
        line_start: 15895
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!PyUnicode_CHECK_INTERNED(s))
      pos:
        line_end: 15879
        line_start: 15879
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(r))
      pos:
        line_end: 15896
        line_start: 15896
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (s != NULL)
      pos:
        line_end: 15876
        line_start: 15876
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(s).statically_allocated)
      pos:
        line_end: 15878
        line_start: 15878
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(s))
      pos:
        line_end: 15877
        line_start: 15877
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (r == NULL)
      pos:
        line_end: 15892
        line_start: 15892
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15908
      start: 15871
    functionDepth: 2
    functionLinenumber: 15871
    functionLinenumberEnd: 15908
    functionName: intern_static
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_FatalError
    - _Py_hashtable_get
    - PyUnicode_CHECK_INTERNED
    - get_interned_dict
    - Py_NewRef
    - _PyUnicode_CHECK
    - _Py_hashtable_set
    - _PyUnicode_STATE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      intern_static(PyInterpreterState *interp, PyObject *s /* stolen */)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15914,1
    - Dst: Py_IsInitialized
      Src: /src/cpython/Objects/unicodeobject.c:15914,1
    - Dst: intern_static
      Src: /src/cpython/Objects/unicodeobject.c:15916,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts:
    - condition: (!Py_IsInitialized())
      pos:
        line_end: 15913
        line_start: 15913
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (*p)
      pos:
        line_end: 15916
        line_start: 15916
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15918
      start: 15910
    functionDepth: 3
    functionLinenumber: 15910
    functionLinenumberEnd: 15918
    functionName: _PyUnicode_InternStatic
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_IsInitialized
    - intern_static
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_InternStatic(PyInterpreterState *interp, PyObject **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15923,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:15923,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15924,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:15924,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:15929,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:15930,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:15930,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Objects/unicodeobject.c:15933,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15933,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:15934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CHECK_INTERNED(s) == SSTATE_INTERNED_MORTAL)
      pos:
        line_end: 15922
        line_start: 15922
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!_Py_IsImmortal(s))
      pos:
        line_end: 15923
        line_start: 15923
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15935
      start: 15920
    functionDepth: 3
    functionLinenumber: 15920
    functionLinenumberEnd: 15935
    functionName: immortalize_interned
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_DecRefTotal
    - PyUnicode_CHECK_INTERNED
    - _PyThreadState_GET
    - _Py_SetImmortal
    - _PyUnicode_STATE
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - Py_REFCNT
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: void immortalize_interned(PyObject *s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15945,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15946,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:15946,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:15948,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:15955,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:15960,1
    - Dst: immortalize_interned
      Src: /src/cpython/Objects/unicodeobject.c:15967,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15976,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:15976,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:15984,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:15989,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:15990,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:15991,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:15991,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15992,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:15992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:15993,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:15997,1
    - Dst: unicode_is_singleton
      Src: /src/cpython/Objects/unicodeobject.c:15997,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Objects/unicodeobject.c:16002,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16004,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:16004,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16006,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:16007,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:16012,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16013,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Objects/unicodeobject.c:16017,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/unicodeobject.c:16020,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:16022,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/unicodeobject.c:16023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16028,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:16030,1
    - Dst: immortalize_interned
      Src: /src/cpython/Objects/unicodeobject.c:16031,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/unicodeobject.c:16033,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16039,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16045,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:16045,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:16047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16051,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Objects/unicodeobject.c:16053,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:16053,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:16058,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16059,1
    - Dst: immortalize_interned
      Src: /src/cpython/Objects/unicodeobject.c:16063,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/unicodeobject.c:16066,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 3
    argNames:
    - interp
    - s
    - immortalize
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - bool
    assertStmts:
    - condition: (PyUnicode_CHECK_INTERNED(r))
      pos:
        line_end: 15991
        line_start: 15991
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (s == t)
      pos:
        line_end: 16037
        line_start: 16037
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(s).interned == SSTATE_NOT_INTERNED)
      pos:
        line_end: 16044
        line_start: 16044
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (immortalize)
      pos:
        line_end: 16058
        line_start: 16058
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(s))
      pos:
        line_end: 15945
        line_start: 15945
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!_PyUnicode_STATE(s).statically_allocated)
      pos:
        line_end: 15975
        line_start: 15975
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!unicode_is_singleton(s))
      pos:
        line_end: 15996
        line_start: 15996
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (r != s)
      pos:
        line_end: 16004
        line_start: 16004
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (s != NULL)
      pos:
        line_end: 15944
        line_start: 15944
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(r).statically_allocated)
      pos:
        line_end: 16003
        line_start: 16003
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (interned != NULL)
      pos:
        line_end: 16012
        line_start: 16012
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16068
      start: 15937
    functionDepth: 7
    functionLinenumber: 15937
    functionLinenumberEnd: 16068
    functionName: intern_common
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsImmortal
    - PyUnicode_KIND
    - _PyUnicode_CHECK
    - PyUnicode_Check
    - _PyUnicode_STATE
    - PyErr_Clear
    - Py_DECREF
    - LATIN1
    - unicode_is_singleton
    - PyUnicode_CheckExact
    - PyUnicode_CHECK_INTERNED
    - Py_NewRef
    - get_interned_dict
    - PyDict_SetDefaultRef
    - PyUnicode_GET_LENGTH
    - immortalize_interned
    - FT_MUTEX_LOCK
    - FT_MUTEX_UNLOCK
    - PyUnicode_DATA
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - _Py_hashtable_get
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nintern_common(PyInterpreterState *interp, PyObject *s
      /* stolen */,\n              bool immortalize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intern_common
      Src: /src/cpython/Objects/unicodeobject.c:16073,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts:
    - condition: (*p)
      pos:
        line_end: 16073
        line_start: 16073
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16075
      start: 16070
    functionDepth: 8
    functionLinenumber: 16070
    functionLinenumberEnd: 16075
    functionName: _PyUnicode_InternImmortal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - intern_common
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_InternImmortal(PyInterpreterState *interp, PyObject
      **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intern_common
      Src: /src/cpython/Objects/unicodeobject.c:16080,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts:
    - condition: (*p)
      pos:
        line_end: 16080
        line_start: 16080
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16082
      start: 16077
    functionDepth: 8
    functionLinenumber: 16077
    functionLinenumberEnd: 16082
    functionName: _PyUnicode_InternMortal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - intern_common
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_InternMortal(PyInterpreterState *interp, PyObject **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/unicodeobject.c:16088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16090
      start: 16085
    functionDepth: 9
    functionLinenumber: 16085
    functionLinenumberEnd: 16090
    functionName: _PyUnicode_InternInPlace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_InternImmortal
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_InternInPlace(PyInterpreterState *interp, PyObject
      **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16095,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/unicodeobject.c:16096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16097
      start: 16092
    functionDepth: 9
    functionLinenumber: 16092
    functionLinenumberEnd: 16097
    functionName: PyUnicode_InternInPlace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicode_InternMortal
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void PyUnicode_InternInPlace(PyObject **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16104,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/unicodeobject.c:16105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16106
      start: 16101
    functionDepth: 9
    functionLinenumber: 16101
    functionLinenumberEnd: 16106
    functionName: PyUnicode_InternImmortal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - _PyUnicode_InternImmortal
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void PyUnicode_InternImmortal(PyObject **p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/unicodeobject.c:16111,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16115,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/unicodeobject.c:16116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16118
      start: 16108
    functionDepth: 9
    functionLinenumber: 16108
    functionLinenumberEnd: 16118
    functionName: PyUnicode_InternFromString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 20
    functionsReached:
    - _PyInterpreterState_GET
    - _PyUnicode_InternMortal
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_InternFromString(const char *cp)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:16124,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16128,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:16128,1
    - Dst: has_shared_intern_dict
      Src: /src/cpython/Objects/unicodeobject.c:16130,1
    - Dst: clear_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:16133,1
    - Dst: fprintf
      Src: /src/cpython/Objects/unicodeobject.c:16138,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:16139,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/unicodeobject.c:16145,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:16147,1
    - Dst: _Py_SetMortal
      Src: /src/cpython/Objects/unicodeobject.c:16153,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:16156,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16156,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:16157,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16157,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:16160,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:16169,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/unicodeobject.c:16176,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:16179,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16179,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:16180,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16180,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:16186,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Objects/unicodeobject.c:16189,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:16189,1
    - Dst: fprintf
      Src: /src/cpython/Objects/unicodeobject.c:16193,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/unicodeobject.c:16201,1
    - Dst: clear_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:16203,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:16204,1
    - Dst: clear_global_interned_strings
      Src: /src/cpython/Objects/unicodeobject.c:16205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyDict_CheckExact(interned))
      pos:
        line_end: 16127
        line_start: 16127
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16207
      start: 16121
    functionDepth: 11
    functionLinenumber: 16121
    functionLinenumberEnd: 16207
    functionName: _PyUnicode_ClearInterned
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_RefcntAdd
    - _Py_IncRefTotal
    - PyDict_CheckExact
    - fprintf
    - assert
    - PyDict_GET_SIZE
    - PyUnicode_CHECK_INTERNED
    - get_interned_dict
    - clear_global_interned_strings
    - PyUnicode_GET_LENGTH
    - clear_interned_dict
    - _Py_IsMainInterpreter
    - has_shared_intern_dict
    - PyDict_Next
    - _Py_SetMortal
    - Py_XINCREF
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - _PyUnicode_STATE
    - Py_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_ClearInterned(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/unicodeobject.c:16222,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:16223,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/unicodeobject.c:16224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16225
      start: 16218
    functionDepth: 0
    functionLinenumber: 16218
    functionLinenumberEnd: 16225
    functionName: unicodeiter_dealloc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void unicodeiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/unicodeobject.c:16231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16233
      start: 16227
    functionDepth: 1
    functionLinenumber: 16227
    functionLinenumberEnd: 16233
    functionName: unicodeiter_traverse
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int unicodeiter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16241,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16245,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:16245,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:16247,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:16248,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:16249,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:16250,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:16252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 16240
        line_start: 16240
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(seq))
      pos:
        line_end: 16244
        line_start: 16244
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16258
      start: 16235
    functionDepth: 5
    functionLinenumber: 16235
    functionLinenumberEnd: 16258
    functionName: unicodeiter_next
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_DECREF
    - PyUnicode_READ
    - unicode_char
    - _PyUnicode_CHECK
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16264,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16269,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:16269,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16270,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:16270,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:16271,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:16272,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:16273,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/unicodeobject.c:16276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 16263
        line_start: 16263
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(seq))
      pos:
        line_end: 16268
        line_start: 16268
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_COMPACT_ASCII(seq))
      pos:
        line_end: 16269
        line_start: 16269
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16281
      start: 16260
    functionDepth: 1
    functionLinenumber: 16260
    functionLinenumberEnd: 16281
    functionName: unicode_ascii_iter_next
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - Py_DECREF
    - PyUnicode_READ
    - _Py_SINGLETON
    - _PyUnicode_CHECK
    - PyUnicode_IS_COMPACT_ASCII
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_ascii_iter_next(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:16289,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:16290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16291
      start: 16283
    functionDepth: 1
    functionLinenumber: 16283
    functionLinenumberEnd: 16291
    functionName: unicodeiter_len
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_len(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:16299,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/unicodeobject.c:16299,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/unicodeobject.c:16306,1
    - Dst: unicode_get_empty
      Src: /src/cpython/Objects/unicodeobject.c:16308,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:16310,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/unicodeobject.c:16313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16315
      start: 16295
    functionDepth: 1
    functionLinenumber: 16295
    functionLinenumberEnd: 16315
    functionName: unicodeiter_reduce
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_XDECREF
    - Py_BuildValue
    - _Py_ID
    - unicode_get_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:16323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:16324,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:16329,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:16330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16334
      start: 16319
    functionDepth: 1
    functionLinenumber: 16319
    functionLinenumberEnd: 16334
    functionName: unicodeiter_setstate
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_GET_LENGTH
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_setstate(PyObject *op, PyObject *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:16396,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:16397,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:16400,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/unicodeobject.c:16401,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/unicodeobject.c:16404,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:16409,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/unicodeobject.c:16410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16412
      start: 16391
    functionDepth: 1
    functionLinenumber: 16391
    functionLinenumberEnd: 16412
    functionName: unicode_iter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - Py_NewRef
    - PyUnicode_Check
    - PyObject_GC_New
    - PyUnicode_IS_COMPACT_ASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_iter(PyObject *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Objects/unicodeobject.c:16418,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:16420,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:16424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - wstr
    - str
    - name
    argTypes:
    - wchar_t*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16428
      start: 16414
    functionDepth: 3
    functionLinenumber: 16414
    functionLinenumberEnd: 16428
    functionName: encode_wstr_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_EncodeUTF8Ex
    - PyErr_NoMemory
    - PyErr_Format
    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/cpython/Objects/unicodeobject.c:16435,1
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Objects/unicodeobject.c:16440,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16441,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/unicodeobject.c:16446,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:16447,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:16452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:16453,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Objects/unicodeobject.c:16458,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:16460,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:16461,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16465,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:16468,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:16472,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:16473,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - config_encoding
    argTypes:
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16475
      start: 16431
    functionDepth: 4
    functionLinenumber: 16431
    functionLinenumberEnd: 16475
    functionName: config_get_codec_name
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetAttrString
    - PyMem_RawFree
    - encode_wstr_utf8
    - _PyCodec_Lookup
    - PyErr_NoMemory
    - PyMem_Free
    - Py_CLEAR
    - _PyMem_RawWcsdup
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: int config_get_codec_name(wchar_t **config_encoding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:16482,1
    - Dst: config_get_codec_name
      Src: /src/cpython/Objects/unicodeobject.c:16483,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:16484,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:16487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16488
      start: 16478
    functionDepth: 5
    functionLinenumber: 16478
    functionLinenumberEnd: 16488
    functionName: init_stdio_encoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - _PyStatus_OK
    - config_get_codec_name
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_stdio_encoding(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:16494,1
    - Dst: get_error_handler_wide
      Src: /src/cpython/Objects/unicodeobject.c:16497,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:16499,1
    - Dst: encode_wstr_utf8
      Src: /src/cpython/Objects/unicodeobject.c:16504,1
    - Dst: encode_wstr_utf8
      Src: /src/cpython/Objects/unicodeobject.c:16510,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16513,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16518,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:16521,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16522,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16527,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:16536,1
    - Dst: _Py_SetFileSystemEncoding
      Src: /src/cpython/Objects/unicodeobject.c:16538,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:16540,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (fs_codec->utf8 == 1)
      pos:
        line_end: 16526
        line_start: 16526
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16545
      start: 16491
    functionDepth: 4
    functionLinenumber: 16491
    functionLinenumberEnd: 16545
    functionName: init_fs_codec
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - PyMem_RawFree
    - get_error_handler_wide
    - encode_wstr_utf8
    - PyErr_SetString
    - _PyInterpreterState_GetConfig
    - _Py_SetFileSystemEncoding
    - strcmp
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int init_fs_codec(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:16556,1
    - Dst: config_get_codec_name
      Src: /src/cpython/Objects/unicodeobject.c:16557,1
    - Dst: _Py_DumpPathConfig
      Src: /src/cpython/Objects/unicodeobject.c:16558,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:16559,1
    - Dst: init_fs_codec
      Src: /src/cpython/Objects/unicodeobject.c:16563,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:16564,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:16566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16567
      start: 16548
    functionDepth: 5
    functionLinenumber: 16548
    functionLinenumberEnd: 16567
    functionName: init_fs_encoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - init_fs_codec
    - _PyStatus_OK
    - _PyInterpreterState_GetConfig
    - _Py_DumpPathConfig
    - config_get_codec_name
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_fs_encoding(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_InitRegistry
      Src: /src/cpython/Objects/unicodeobject.c:16573,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Objects/unicodeobject.c:16574,1
    - Dst: init_fs_encoding
      Src: /src/cpython/Objects/unicodeobject.c:16577,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Objects/unicodeobject.c:16578,1
    - Dst: init_stdio_encoding
      Src: /src/cpython/Objects/unicodeobject.c:16582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16583
      start: 16570
    functionDepth: 6
    functionLinenumber: 16570
    functionLinenumberEnd: 16583
    functionName: _PyUnicode_InitEncodings
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - init_fs_encoding
    - _PyCodec_InitRegistry
    - init_stdio_encoding
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16589,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fs_codec
    argTypes:
    - struct _Py_unicode_fs_codec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16595
      start: 16586
    functionDepth: 1
    functionLinenumber: 16586
    functionLinenumberEnd: 16595
    functionName: _PyUnicode_FiniEncodings
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_FiniEncodings(struct _Py_unicode_fs_codec *fs_codec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:16602,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:16603,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Objects/unicodeobject.c:16606,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Objects/unicodeobject.c:16607,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16609,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16610,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:16611,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16615,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:16617,1
    - Dst: init_fs_codec
      Src: /src/cpython/Objects/unicodeobject.c:16620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16621
      start: 16599
    functionDepth: 5
    functionLinenumber: 16599
    functionLinenumberEnd: 16621
    functionName: _PyUnicode_EnableLegacyWindowsFSEncoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - init_fs_codec
    - PyMem_RawFree
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetConfig
    - PyErr_NoMemory
    - _PyMem_RawWcsdup
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EnableLegacyWindowsFSEncoding(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:16629,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/unicodeobject.c:16629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16630
      start: 16626
    functionDepth: 2
    functionLinenumber: 16626
    functionLinenumberEnd: 16630
    functionName: unicode_is_finalizing
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - get_interned_dict
    - _PyInterpreterState_Main
    linkageType: ''
    returnType: int
    signature: int unicode_is_finalizing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:16637,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:16638,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:16639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16640
      start: 16634
    functionDepth: 1
    functionLinenumber: 16634
    functionLinenumberEnd: 16640
    functionName: _PyUnicode_FiniTypes
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_FiniTypes(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_shared_intern_dict
      Src: /src/cpython/Objects/unicodeobject.c:16648,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:16650,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:16650,1
    - Dst: _PyUnicode_FiniEncodings
      Src: /src/cpython/Objects/unicodeobject.c:16653,1
    - Dst: unicode_clear_identifiers
      Src: /src/cpython/Objects/unicodeobject.c:16659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (get_interned_dict(interp) == NULL)
      pos:
        line_end: 16649
        line_start: 16649
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 16660
      start: 16643
    functionDepth: 3
    functionLinenumber: 16643
    functionLinenumberEnd: 16660
    functionName: _PyUnicode_Fini
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - has_shared_intern_dict
    - get_interned_dict
    - unicode_clear_identifiers
    - _PyUnicode_FiniEncodings
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_Fini(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Objects/unicodeobject.c:16691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16692
      start: 16688
    functionDepth: 1
    functionLinenumber: 16688
    functionLinenumberEnd: 16692
    functionName: PyInit__string
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__string(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:16698,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:16699,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:16702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16703
      start: 16696
    functionDepth: 1
    functionLinenumber: 16696
    functionLinenumberEnd: 16703
    functionName: PyUnicode_KIND
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 120
    functionsReached:
    - PyUnicode_Check
    - _PyASCIIObject_CAST
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyUnicode_KIND(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:16708,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:16709,1
    - Dst: _PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:16712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16713
      start: 16706
    functionDepth: 1
    functionLinenumber: 16706
    functionLinenumberEnd: 16713
    functionName: PyUnicode_DATA
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 116
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_DATA
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void * PyUnicode_DATA(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:97,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:100,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:101,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/setobject.c:102,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:105,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/setobject.c:106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:107,1
    - Dst: set_lookkey
      Src: /src/cpython/Objects/setobject.c:111,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (startkey != dummy)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: set_lookkey
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - set_lookkey
    - Py_DECREF
    - PyUnicode_CheckExact
    - PyObject_RichCompareBool
    - unicode_eq
    - assert
    linkageType: ''
    returnType: setentry
    signature: 'setentry *

      set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:152,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:155,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:156,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/setobject.c:157,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:160,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/setobject.c:161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:162,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:172,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:184,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:191,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:203,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (startkey != dummy)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/cpython/Objects/setobject.c
    - condition: (entry->key == dummy)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 205
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 205
    functionName: set_add_entry_takeref
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - Py_INCREF
    - Py_DECREF
    - set_table_resize
    - PyUnicode_CheckExact
    - PyObject_RichCompareBool
    - unicode_eq
    - assert
    linkageType: ''
    returnType: int
    signature: int set_add_entry_takeref(PySetObject *so, PyObject *key, Py_hash_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:210,1
    - Dst: set_add_entry_takeref
      Src: /src/cpython/Objects/setobject.c:212,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: set_add_entry
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - set_add_entry_takeref
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int set_add_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/setobject.c:218,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:219,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/setobject.c:220,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/setobject.c:221,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/setobject.c:225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: set_unhashable_type
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_IS_TYPE
    - PyErr_Format
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void set_unhashable_type(PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:234,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:237,1
    - Dst: set_add_entry_takeref
      Src: /src/cpython/Objects/setobject.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: _PySet_AddTakeRef
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HashFast
    - set_unhashable_type
    - Py_DECREF
    - set_add_entry_takeref
    linkageType: ''
    returnType: int
    signature: int _PySet_AddTakeRef(PySetObject *so, PyObject *key)
  - 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: 278
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: set_insert_clean
    functionSourceFile: /src/cpython/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/cpython/Objects/setobject.c:297,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:308,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:325,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:326,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Objects/setobject.c:331,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/setobject.c:333,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:339,1
    - Dst: memset
      Src: /src/cpython/Objects/setobject.c:340,1
    - Dst: set_insert_clean
      Src: /src/cpython/Objects/setobject.c:350,1
    - Dst: set_insert_clean
      Src: /src/cpython/Objects/setobject.c:357,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/setobject.c:363,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - so
    - minused
    argTypes:
    - PySetObject*
    - Py_ssize_t
    assertStmts:
    - condition: (minused >= 0)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/cpython/Objects/setobject.c
    - condition: (so->fill > so->used)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/cpython/Objects/setobject.c
    - condition: (oldtable != NULL)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/cpython/Objects/setobject.c
    - condition: (newtable != oldtable)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 365
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 365
    functionName: set_table_resize
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - memset
    - PyMem_Free
    - memcpy
    - set_insert_clean
    - PyMem_NEW
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int set_table_resize(PySetObject *so, Py_ssize_t minused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_lookkey
      Src: /src/cpython/Objects/setobject.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: set_contains_entry
    functionSourceFile: /src/cpython/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/cpython/Objects/setobject.c:387,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 398
    functionName: set_discard_entry
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - set_lookkey
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int set_discard_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:403,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:405,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 400
    functionDepth: 6
    functionLinenumber: 400
    functionLinenumberEnd: 409
    functionName: set_add_key
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HashFast
    - set_unhashable_type
    - set_add_entry
    linkageType: ''
    returnType: int
    signature: int set_add_key(PySetObject *so, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:414,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:416,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 6
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: set_contains_key
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_contains_entry
    - _PyObject_HashFast
    - set_unhashable_type
    linkageType: ''
    returnType: int
    signature: int set_contains_key(PySetObject *so, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:425,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:427,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: set_discard_key
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HashFast
    - set_unhashable_type
    - set_discard_entry
    linkageType: ''
    returnType: int
    signature: int set_discard_key(PySetObject *so, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/setobject.c:436,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:438,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 442
    functionName: set_empty_to_minsize
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - memset
    linkageType: ''
    returnType: void
    signature: void set_empty_to_minsize(PySetObject *so)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:447,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:455,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:455,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:456,1
    - Dst: set_empty_to_minsize
      Src: /src/cpython/Objects/setobject.c:465,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:472,1
    - Dst: set_empty_to_minsize
      Src: /src/cpython/Objects/setobject.c:474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:485,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/setobject.c:490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (table != NULL)
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/cpython/Objects/setobject.c
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 492
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 492
    functionName: set_clear_internal
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyAnySet_Check
    - _PySet_CAST
    - memcpy
    - set_empty_to_minsize
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int set_clear_internal(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:514,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:514,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:516,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:526,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: 513
        line_start: 513
        source_file: /src/cpython/Objects/setobject.c
    - condition: (i >= 0)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/cpython/Objects/setobject.c
    - condition: (entry != NULL)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 529
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 529
    functionName: set_next
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyAnySet_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int set_next(PySetObject *so, Py_ssize_t *pos_ptr, setentry **entry_ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:534,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/setobject.c:539,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/setobject.c:540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:545,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/setobject.c:549,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 551
    functionName: set_dealloc
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - _PySet_CAST
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void set_dealloc(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/setobject.c:557,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:562,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:562,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/setobject.c:567,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:568,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:568,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/setobject.c:573,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:580,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/setobject.c:581,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:581,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/setobject.c:585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:586,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/setobject.c:589,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/setobject.c:589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:590,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Objects/setobject.c:595,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:596,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:597,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:601,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/setobject.c:603,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 553
    functionDepth: 10
    functionLinenumber: 553
    functionLinenumberEnd: 605
    functionName: set_repr_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyObject_Repr
    - Py_DECREF
    - Py_ReprLeave
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - set_next
    - PyUnicode_GET_LENGTH
    - PyList_SET_ITEM
    - Py_NewRef
    - PySet_CheckExact
    - PyUnicode_Substring
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_repr_lock_held(PySetObject *so)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:610,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:612,1
    - Dst: set_repr_lock_held
      Src: /src/cpython/Objects/setobject.c:613,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 607
    functionDepth: 11
    functionLinenumber: 607
    functionLinenumberEnd: 616
    functionName: set_repr
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PySet_CAST
    - Py_END_CRITICAL_SECTION
    - set_repr_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:621,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 623
    functionName: set_len
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PySet_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t set_len(PyObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:634,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:634,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:635,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:636,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:638,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:647,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:659,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:660,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:665,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:674,1
    - Dst: set_insert_clean
      Src: /src/cpython/Objects/setobject.c:678,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:678,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:690,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - so
    - otherset
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 633
        line_start: 633
        source_file: /src/cpython/Objects/setobject.c
    - condition: (so_entry->key == NULL)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 695
      start: 625
    functionDepth: 6
    functionLinenumber: 625
    functionLinenumberEnd: 695
    functionName: set_merge_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - set_table_resize
    - PyAnySet_Check
    - Py_NewRef
    - _PySet_CAST
    - set_add_entry
    - set_insert_clean
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int set_merge_lock_held(PySetObject *so, PyObject *otherset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/setobject.c:717,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 731
    functionName: set_pop_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_pop_impl(PySetObject *so)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:736,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:740,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/setobject.c:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 743
    functionName: set_traverse
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PySet_CAST
    - set_next
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int set_traverse(PyObject *self, 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: 754
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 754
    functionName: _shuffle_bits
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t _shuffle_bits(Py_uhash_t h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:769,1
    - Dst: _shuffle_bits
      Src: /src/cpython/Objects/setobject.c:784,1
    - Dst: _shuffle_bits
      Src: /src/cpython/Objects/setobject.c:788,1
    - Dst: _shuffle_bits
      Src: /src/cpython/Objects/setobject.c:792,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 806
    functionName: frozenset_hash_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PySet_CAST
    - PySet_GET_SIZE
    - _shuffle_bits
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t frozenset_hash_impl(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:811,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:814,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:815,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:818,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 821
    functionName: frozenset_hash
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _PySet_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - frozenset_hash_impl
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t frozenset_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/setobject.c:838,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:839,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/setobject.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 841
    functionName: setiter_dealloc
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void setiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/setobject.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 849
    functionName: setiter_traverse
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int setiter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/setobject.c:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 859
    functionName: setiter_len
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setiter_len(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/setobject.c:870,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/setobject.c:873,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:874,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/setobject.c:878,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/setobject.c:878,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/setobject.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 879
    functionName: setiter_reduce
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_XDECREF
    - Py_BuildValue
    - _Py_ID
    - PySequence_List
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:899,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:899,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Objects/setobject.c:901,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Objects/setobject.c:902,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/setobject.c:904,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:910,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:912,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:919,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:925,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 898
        line_start: 898
        source_file: /src/cpython/Objects/setobject.c
    - condition: (i>=0)
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 930
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 930
    functionName: setiter_iternext
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyErr_SetString
    - PyAnySet_Check
    - Py_NewRef
    - FT_ATOMIC_LOAD_SSIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject *setiter_iternext(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_len
      Src: /src/cpython/Objects/setobject.c:968,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/setobject.c:969,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:972,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/setobject.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - so
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 965
    functionDepth: 2
    functionLinenumber: 965
    functionLinenumberEnd: 978
    functionName: set_iter
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_len
    - Py_NewRef
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_iter(PyObject *so)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:983,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:983,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:985,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:986,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:992,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:994,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/setobject.c:1003,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(other))
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1009
      start: 980
    functionDepth: 6
    functionLinenumber: 980
    functionLinenumberEnd: 1009
    functionName: set_update_dict_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyDict_CheckExact
    - _PyDict_Next
    - set_table_resize
    - set_add_entry
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int set_update_dict_lock_held(PySetObject *so, PyObject *other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1014,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1016,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1022,1
    - Dst: set_add_key
      Src: /src/cpython/Objects/setobject.c:1023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1030,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1011
    functionDepth: 7
    functionLinenumber: 1011
    functionLinenumberEnd: 1034
    functionName: set_update_iterable_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyIter_Next
    - set_add_key
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int set_update_iterable_lock_held(PySetObject *so, PyObject *other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1039,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1040,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1042,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1043,1
    - Dst: set_update_iterable_lock_held
      Src: /src/cpython/Objects/setobject.c:1045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1036
    functionDepth: 8
    functionLinenumber: 1036
    functionLinenumberEnd: 1046
    functionName: set_update_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - PyAnySet_Check
    - set_update_iterable_lock_held
    - set_merge_lock_held
    - set_update_dict_lock_held
    linkageType: ''
    returnType: int
    signature: int set_update_lock_held(PySetObject *so, PyObject *other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1052,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/setobject.c:1052,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1053,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1055,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1056,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1057,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1060,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1062,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1063,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1064,1
    - Dst: set_update_iterable_lock_held
      Src: /src/cpython/Objects/setobject.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(so) == 1)
      pos:
        line_end: 1051
        line_start: 1051
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1068
      start: 1049
    functionDepth: 8
    functionLinenumber: 1049
    functionLinenumberEnd: 1068
    functionName: set_update_local
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyDict_CheckExact
    - PyAnySet_Check
    - set_update_iterable_lock_held
    - set_update_dict_lock_held
    - Py_REFCNT
    - assert
    - set_merge_lock_held
    linkageType: ''
    returnType: int
    signature: int set_update_local(PySetObject *so, PyObject *other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1073,1
    - Dst: Py_Is
      Src: /src/cpython/Objects/setobject.c:1074,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1078,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1079,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1080,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1083,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1085,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1086,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1087,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1092,1
    - Dst: set_update_iterable_lock_held
      Src: /src/cpython/Objects/setobject.c:1093,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1070
    functionDepth: 8
    functionLinenumber: 1070
    functionLinenumberEnd: 1097
    functionName: set_update_internal
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_Is
    - Py_END_CRITICAL_SECTION
    - PyDict_CheckExact
    - Py_BEGIN_CRITICAL_SECTION2
    - PyAnySet_Check
    - set_update_iterable_lock_held
    - Py_END_CRITICAL_SECTION2
    - set_merge_lock_held
    - set_update_dict_lock_held
    linkageType: ''
    returnType: int
    signature: int set_update_internal(PySetObject *so, PyObject *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_update_internal
      Src: /src/cpython/Objects/setobject.c:1116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - so
    - others
    - others_length
    argTypes:
    - PySetObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1107
    functionDepth: 9
    functionLinenumber: 1107
    functionLinenumberEnd: 1120
    functionName: set_update_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_update_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_update_impl(PySetObject *so, PyObject * const *others,\n
      \               Py_ssize_t others_length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1131,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/setobject.c:1131,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/setobject.c:1134,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:1147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 1130
        line_start: 1130
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1154
      start: 1128
    functionDepth: 9
    functionLinenumber: 1128
    functionLinenumberEnd: 1154
    functionName: make_new_set
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - set_update_local
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_new_set(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/setobject.c:1160,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:1165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 10
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: make_new_set_basetype
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:1172,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1175,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1177,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1168
    functionDepth: 10
    functionLinenumber: 1168
    functionLinenumberEnd: 1180
    functionName: make_new_frozenset
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - make_new_set
    - PyFrozenSet_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_new_frozenset(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/setobject.c:1189,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/setobject.c:1193,1
    - Dst: make_new_frozenset
      Src: /src/cpython/Objects/setobject.c:1197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1182
    functionDepth: 11
    functionLinenumber: 1182
    functionLinenumberEnd: 1198
    functionName: frozenset_new
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    - _PyArg_NoKeywords
    - make_new_frozenset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/setobject.c:1204,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/setobject.c:1208,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/setobject.c:1209,1
    - Dst: make_new_frozenset
      Src: /src/cpython/Objects/setobject.c:1214,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/setobject.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1200
    functionDepth: 11
    functionLinenumber: 1200
    functionLinenumberEnd: 1215
    functionName: frozenset_vectorcall
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - make_new_frozenset
    - _PyType_CAST
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfrozenset_vectorcall(PyObject *type, PyObject * const*args,\n
      \                    size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1217
    functionDepth: 10
    functionLinenumber: 1217
    functionLinenumberEnd: 1221
    functionName: set_new
    functionSourceFile: /src/cpython/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: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1244,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1245,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:1257,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:1258,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:1259,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/setobject.c:1262,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1262,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/setobject.c:1263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1263,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1264,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1265,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1265,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1266,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1268,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PySetObject*
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1271
    functionName: set_swap_bodies
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyType_IsSubtype
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - memcpy
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void set_swap_bodies(PySetObject *a, PySetObject *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1285,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:1286,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1286,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1281
    functionDepth: 11
    functionLinenumber: 1281
    functionLinenumberEnd: 1295
    functionName: set_copy_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - make_new_set_basetype
    - Py_DECREF
    - Py_TYPE
    - set_merge_lock_held
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_copy_impl(PySetObject *so)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1309,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1310,1
    - Dst: set_copy_impl
      Src: /src/cpython/Objects/setobject.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1305
    functionDepth: 12
    functionLinenumber: 1305
    functionLinenumberEnd: 1313
    functionName: frozenset_copy_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - set_copy_impl
    - PyFrozenSet_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_copy_impl(PySetObject *so)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_clear_internal
      Src: /src/cpython/Objects/setobject.c:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1323
    functionDepth: 3
    functionLinenumber: 1323
    functionLinenumberEnd: 1329
    functionName: set_clear_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_clear_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_clear_impl(PySetObject *so)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_copy
      Src: /src/cpython/Objects/setobject.c:1348,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:1356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - so
    - others
    - others_length
    argTypes:
    - PySetObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1339
    functionDepth: 9
    functionLinenumber: 1339
    functionLinenumberEnd: 1362
    functionName: set_union_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_update_local
    - set_copy
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_union_impl(PySetObject *so, PyObject * const *others,\n
      \              Py_ssize_t others_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1369,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1369,1
    - Dst: set_copy
      Src: /src/cpython/Objects/setobject.c:1372,1
    - Dst: Py_Is
      Src: /src/cpython/Objects/setobject.c:1376,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:1379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1364
    functionDepth: 9
    functionLinenumber: 1364
    functionLinenumberEnd: 1384
    functionName: set_or
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_Is
    - Py_DECREF
    - set_copy
    - PyAnySet_Check
    - set_update_local
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_or(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1389,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1391,1
    - Dst: set_update_internal
      Src: /src/cpython/Objects/setobject.c:1393,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1386
    functionDepth: 9
    functionLinenumber: 1386
    functionLinenumberEnd: 1397
    functionName: set_ior
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PySet_CAST
    - PyAnySet_Check
    - set_update_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_ior(PyObject *self, PyObject *other)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: set_copy_impl
      Src: /src/cpython/Objects/setobject.c:1408,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:1410,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1410,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1414,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1418,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1418,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1424,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1427,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:1428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1431,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1441,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1448,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1452,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/setobject.c:1453,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:1456,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1460,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1462,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1469,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1478,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1399
    functionDepth: 12
    functionLinenumber: 1399
    functionLinenumberEnd: 1480
    functionName: set_intersection
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - make_new_set_basetype
    - Py_INCREF
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PySet_GET_SIZE
    - set_next
    - PyAnySet_Check
    - PyIter_Next
    - set_contains_entry
    - PyObject_Hash
    - set_copy_impl
    - set_add_entry
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_copy
      Src: /src/cpython/Objects/setobject.c:1498,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1501,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1505,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:1506,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1509,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/setobject.c:1512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - so
    - others
    - others_length
    argTypes:
    - PySetObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1490
    functionDepth: 13
    functionLinenumber: 1490
    functionLinenumberEnd: 1515
    functionName: set_intersection_multi_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_copy
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_NewRef
    - Py_SETREF
    - Py_END_CRITICAL_SECTION2
    - set_intersection
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_intersection_multi_impl(PySetObject *so, PyObject
      * const *others,\n                            Py_ssize_t others_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:1522,1
    - Dst: set_swap_bodies
      Src: /src/cpython/Objects/setobject.c:1525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1517
    functionDepth: 13
    functionLinenumber: 1517
    functionLinenumberEnd: 1528
    functionName: set_intersection_update
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_intersection
    - set_swap_bodies
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection_update(PySetObject *so, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_intersection_multi_impl
      Src: /src/cpython/Objects/setobject.c:1545,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1548,1
    - Dst: set_swap_bodies
      Src: /src/cpython/Objects/setobject.c:1549,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - so
    - others
    - others_length
    argTypes:
    - PySetObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1538
    functionDepth: 14
    functionLinenumber: 1538
    functionLinenumberEnd: 1553
    functionName: set_intersection_update_multi_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - set_swap_bodies
    - set_intersection_multi_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_intersection_update_multi_impl(PySetObject *so, PyObject
      * const *others,\n                                   Py_ssize_t others_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1558,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1558,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1560,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1563,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:1564,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1555
    functionDepth: 13
    functionLinenumber: 1555
    functionLinenumberEnd: 1568
    functionName: set_and
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - PyAnySet_Check
    - _PySet_CAST
    - Py_END_CRITICAL_SECTION2
    - set_intersection
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_and(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1575,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1577,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1579,1
    - Dst: set_intersection_update
      Src: /src/cpython/Objects/setobject.c:1580,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1585,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1570
    functionDepth: 14
    functionLinenumber: 1570
    functionLinenumberEnd: 1587
    functionName: set_iand
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_BEGIN_CRITICAL_SECTION2
    - PyAnySet_Check
    - set_intersection_update
    - Py_NewRef
    - _PySet_CAST
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_iand(PyObject *self, PyObject *other)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1607,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1613,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1617,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1617,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1622,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1624,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:1625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1626,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1637,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1641,1
    - Dst: set_contains_key
      Src: /src/cpython/Objects/setobject.c:1642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1653,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1654,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1599
    functionDepth: 7
    functionLinenumber: 1599
    functionLinenumberEnd: 1657
    functionName: set_isdisjoint_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PySet_GET_SIZE
    - set_next
    - PyIter_Next
    - set_contains_entry
    - PyAnySet_CheckExact
    - set_contains_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_isdisjoint_impl(PySetObject *so, PyObject *other)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1662,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1663,1
    - Dst: set_clear_internal
      Src: /src/cpython/Objects/setobject.c:1666,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1668,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1676,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1676,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:1677,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1681,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1684,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1686,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:1687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1695,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1698,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1702,1
    - Dst: set_discard_key
      Src: /src/cpython/Objects/setobject.c:1703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1705,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1710,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1711,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:1717,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1659
    functionDepth: 13
    functionLinenumber: 1659
    functionLinenumberEnd: 1718
    functionName: set_difference_update_internal
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - set_discard_entry
    - PyErr_Occurred
    - PyObject_GetIter
    - PySet_GET_SIZE
    - set_next
    - PyAnySet_Check
    - set_discard_key
    - PyIter_Next
    - set_table_resize
    - set_intersection
    - set_clear_internal
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int set_difference_update_internal(PySetObject *so, PyObject *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1738,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:1739,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - so
    - others
    - others_length
    argTypes:
    - PySetObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1728
    functionDepth: 14
    functionLinenumber: 1728
    functionLinenumberEnd: 1746
    functionName: set_difference_update_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - set_difference_update_internal
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_difference_update_impl(PySetObject *so, PyObject *
      const *others,\n                           Py_ssize_t others_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_copy_impl
      Src: /src/cpython/Objects/setobject.c:1753,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:1756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1748
    functionDepth: 14
    functionLinenumber: 1748
    functionLinenumberEnd: 1760
    functionName: set_copy_and_difference
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_difference_update_internal
    - set_copy_impl
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_copy_and_difference(PySetObject *so, PyObject *other)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1772,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1773,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1775,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1776,1
    - Dst: set_copy_and_difference
      Src: /src/cpython/Objects/setobject.c:1779,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1784,1
    - Dst: set_copy_and_difference
      Src: /src/cpython/Objects/setobject.c:1785,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:1788,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1788,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1792,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1793,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1796,1
    - Dst: _PyDict_Contains_KnownHash
      Src: /src/cpython/Objects/setobject.c:1797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1800,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1810,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1816,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1819,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:1820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1823,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1833,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1762
    functionDepth: 15
    functionLinenumber: 1762
    functionLinenumberEnd: 1836
    functionName: set_difference
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - make_new_set_basetype
    - Py_INCREF
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyDict_CheckExact
    - PySet_GET_SIZE
    - set_copy_and_difference
    - PyAnySet_Check
    - set_next
    - set_contains_entry
    - _PyDict_Contains_KnownHash
    - set_add_entry
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_difference(PySetObject *so, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_copy
      Src: /src/cpython/Objects/setobject.c:1855,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1859,1
    - Dst: set_difference
      Src: /src/cpython/Objects/setobject.c:1860,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1861,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1868,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:1869,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - so
    - others
    - others_length
    argTypes:
    - PySetObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1846
    functionDepth: 16
    functionLinenumber: 1846
    functionLinenumberEnd: 1877
    functionName: set_difference_multi_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - set_copy
    - Py_BEGIN_CRITICAL_SECTION2
    - set_difference
    - set_difference_update_internal
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_difference_multi_impl(PySetObject *so, PyObject *
      const *others,\n                          Py_ssize_t others_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1882,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1882,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1884,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1887,1
    - Dst: set_difference
      Src: /src/cpython/Objects/setobject.c:1888,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1879
    functionDepth: 16
    functionLinenumber: 1879
    functionLinenumberEnd: 1891
    functionName: set_sub
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - set_difference
    - PyAnySet_Check
    - _PySet_CAST
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_sub(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1896,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1898,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1901,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:1902,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1903,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1893
    functionDepth: 14
    functionLinenumber: 1893
    functionLinenumberEnd: 1908
    functionName: set_isub
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - PyAnySet_Check
    - set_difference_update_internal
    - Py_NewRef
    - _PySet_CAST
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_isub(PyObject *self, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1913,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1914,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/setobject.c:1919,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1920,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:1921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1923,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1910
    functionDepth: 6
    functionLinenumber: 1910
    functionLinenumberEnd: 1935
    functionName: set_symmetric_difference_update_dict
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - set_discard_entry
    - set_add_entry
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyDict_Next
    linkageType: ''
    returnType: int
    signature: int set_symmetric_difference_update_dict(PySetObject *so, PyObject
      *other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1940,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1941,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1945,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1946,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:1948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1950,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1937
    functionDepth: 6
    functionLinenumber: 1937
    functionLinenumberEnd: 1962
    functionName: set_symmetric_difference_update_set
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_discard_entry
    - set_next
    - Py_NewRef
    - set_add_entry
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int set_symmetric_difference_update_set(PySetObject *so, PySetObject
      *other)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_Is
      Src: /src/cpython/Objects/setobject.c:1978,1
    - Dst: set_clear
      Src: /src/cpython/Objects/setobject.c:1979,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1983,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1984,1
    - Dst: set_symmetric_difference_update_dict
      Src: /src/cpython/Objects/setobject.c:1985,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1986,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1988,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1989,1
    - Dst: set_symmetric_difference_update_set
      Src: /src/cpython/Objects/setobject.c:1990,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1991,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:1994,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1994,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1999,1
    - Dst: set_symmetric_difference_update_set
      Src: /src/cpython/Objects/setobject.c:2000,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1974
    functionDepth: 11
    functionLinenumber: 1974
    functionLinenumberEnd: 2009
    functionName: set_symmetric_difference_update_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - make_new_set_basetype
    - Py_Is
    - Py_END_CRITICAL_SECTION
    - set_symmetric_difference_update_dict
    - PyDict_CheckExact
    - Py_DECREF
    - Py_BEGIN_CRITICAL_SECTION2
    - PyAnySet_Check
    - Py_END_CRITICAL_SECTION2
    - set_symmetric_difference_update_set
    - Py_TYPE
    - set_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_symmetric_difference_update_impl(PySetObject *so, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:2025,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2025,1
    - Dst: set_update_lock_held
      Src: /src/cpython/Objects/setobject.c:2029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2030,1
    - Dst: set_symmetric_difference_update_set
      Src: /src/cpython/Objects/setobject.c:2033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2021
    functionDepth: 11
    functionLinenumber: 2021
    functionLinenumberEnd: 2038
    functionName: set_symmetric_difference_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - make_new_set_basetype
    - Py_DECREF
    - set_update_lock_held
    - set_symmetric_difference_update_set
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_symmetric_difference_impl(PySetObject *so, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2043,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2043,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2045,1
    - Dst: set_symmetric_difference
      Src: /src/cpython/Objects/setobject.c:2046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2047
    functionName: set_xor
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PySet_CAST
    - PyAnySet_Check
    - set_symmetric_difference
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_xor(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2054,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2056,1
    - Dst: set_symmetric_difference_update
      Src: /src/cpython/Objects/setobject.c:2058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2061,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:2062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2063
    functionName: set_ixor
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_symmetric_difference_update
    - Py_DECREF
    - PyAnySet_Check
    - Py_NewRef
    - _PySet_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_ixor(PyObject *self, PyObject *other)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2083,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:2084,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2088,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2089,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2090,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2092,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2092,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:2095,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:2097,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:2098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2099,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2075
    functionDepth: 13
    functionLinenumber: 2075
    functionLinenumberEnd: 2108
    functionName: set_issubset_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PySet_GET_SIZE
    - set_next
    - PyAnySet_Check
    - set_contains_entry
    - set_intersection
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_issubset_impl(PySetObject *so, PyObject *other)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2124,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2125,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:2128,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:2132,1
    - Dst: set_contains_key
      Src: /src/cpython/Objects/setobject.c:2133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2144,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:2145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2120
    functionDepth: 7
    functionLinenumber: 2120
    functionLinenumberEnd: 2149
    functionName: set_issuperset_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_issubset
    - PyErr_Occurred
    - PyObject_GetIter
    - PyAnySet_Check
    - PyIter_Next
    - set_contains_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_issuperset_impl(PySetObject *so, PyObject *other)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2154,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2158,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2163,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2163,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:2165,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:2166,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2169,1
    - Dst: set_richcompare
      Src: /src/cpython/Objects/setobject.c:2171,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/setobject.c:2174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2175,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2178,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2180,1
    - Dst: set_issuperset
      Src: /src/cpython/Objects/setobject.c:2182,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2184,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2184,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2186,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2188,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2188,1
    - Dst: set_issuperset
      Src: /src/cpython/Objects/setobject.c:2190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - self
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2151
    functionDepth: 2
    functionLinenumber: 2151
    functionLinenumberEnd: 2193
    functionName: set_richcompare
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - set_issubset
    - set_issuperset
    - PyBool_FromLong
    - PySet_GET_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyAnySet_Check
    - _PySet_CAST
    - set_richcompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_richcompare(PyObject *self, PyObject *w, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_add_key
      Src: /src/cpython/Objects/setobject.c:2211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2207
    functionDepth: 7
    functionLinenumber: 2207
    functionLinenumberEnd: 2214
    functionName: set_add_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_add_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_add_impl(PySetObject *so, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_contains_key
      Src: /src/cpython/Objects/setobject.c:2221,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2223,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/setobject.c:2223,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/setobject.c:2225,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2227,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:2228,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2229,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:2230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2216
    functionDepth: 7
    functionLinenumber: 2216
    functionLinenumberEnd: 2233
    functionName: set_contains_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PySet_Check
    - frozenset_hash_impl
    - set_contains_entry
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - set_contains_key
    linkageType: ''
    returnType: int
    signature: int set_contains_lock_held(PySetObject *so, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2239,1
    - Dst: set_contains_lock_held
      Src: /src/cpython/Objects/setobject.c:2240,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2235
    functionDepth: 8
    functionLinenumber: 2235
    functionLinenumberEnd: 2243
    functionName: _PySet_Contains
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set_contains_lock_held
    linkageType: ''
    returnType: int
    signature: int _PySet_Contains(PySetObject *so, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2248,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Objects/setobject.c:2249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2245
    functionDepth: 9
    functionLinenumber: 2245
    functionLinenumberEnd: 2250
    functionName: set_contains
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PySet_Contains
    - _PySet_CAST
    linkageType: ''
    returnType: int
    signature: int set_contains(PyObject *self, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_contains_lock_held
      Src: /src/cpython/Objects/setobject.c:2269,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2263
    functionDepth: 8
    functionLinenumber: 2263
    functionLinenumberEnd: 2273
    functionName: set___contains___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - set_contains_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___contains___impl(PySetObject *so, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_contains_lock_held
      Src: /src/cpython/Objects/setobject.c:2291,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2285
    functionDepth: 8
    functionLinenumber: 2285
    functionLinenumberEnd: 2295
    functionName: frozenset___contains___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - set_contains_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset___contains___impl(PySetObject *so, PyObject *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_discard_key
      Src: /src/cpython/Objects/setobject.c:2315,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2317,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/setobject.c:2317,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/setobject.c:2319,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2321,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:2322,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2323,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:2324,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/setobject.c:2330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2309
    functionDepth: 7
    functionLinenumber: 2309
    functionLinenumberEnd: 2334
    functionName: set_remove_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set_discard_entry
    - PySet_Check
    - PyErr_ExceptionMatches
    - _PyErr_SetKeyError
    - PyErr_Clear
    - frozenset_hash_impl
    - set_discard_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_remove_impl(PySetObject *so, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_discard_key
      Src: /src/cpython/Objects/setobject.c:2355,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2357,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/setobject.c:2357,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/setobject.c:2359,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2361,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:2362,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2363,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:2364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2349
    functionDepth: 7
    functionLinenumber: 2349
    functionLinenumberEnd: 2369
    functionName: set_discard_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set_discard_entry
    - PySet_Check
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - frozenset_hash_impl
    - set_discard_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_discard_impl(PySetObject *so, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/cpython/Objects/setobject.c:2385,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/setobject.c:2388,1
    - Dst: _PyObject_GetState
      Src: /src/cpython/Objects/setobject.c:2391,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/setobject.c:2394,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2394,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:2396,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:2397,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:2398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2379
    functionDepth: 2
    functionLinenumber: 2379
    functionLinenumberEnd: 2400
    functionName: set___reduce___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetState
    - Py_XDECREF
    - PySequence_List
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___reduce___impl(PySetObject *so)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/setobject.c:2414,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2414,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/setobject.c:2418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2419
    functionName: set___sizeof___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___sizeof___impl(PySetObject *so)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2424,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/setobject.c:2427,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/setobject.c:2429,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2429,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/setobject.c:2432,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:2437,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2439,1
    - Dst: set_clear_internal
      Src: /src/cpython/Objects/setobject.c:2441,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2443,1
    - Dst: set_update_internal
      Src: /src/cpython/Objects/setobject.c:2447,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - so
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2421
    functionDepth: 9
    functionLinenumber: 2421
    functionLinenumberEnd: 2448
    functionName: set_init
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_NoKeywords
    - Py_END_CRITICAL_SECTION
    - PyArg_UnpackTuple
    - set_update_internal
    - _PySet_CAST
    - set_update_local
    - Py_TYPE
    - Py_REFCNT
    - set_clear_internal
    linkageType: ''
    returnType: int
    signature: int set_init(PyObject *so, PyObject *args, PyObject *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:2454,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/setobject.c:2454,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/setobject.c:2456,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/setobject.c:2460,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/setobject.c:2461,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:2466,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/setobject.c:2466,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:2469,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/setobject.c:2469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 2453
        line_start: 2453
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 2470
      start: 2450
    functionDepth: 10
    functionLinenumber: 2450
    functionLinenumberEnd: 2470
    functionName: set_vectorcall
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - make_new_set
    - _PyType_CAST
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_vectorcall(PyObject *type, PyObject * const*args,\n
      \              size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:2692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2689
    functionDepth: 10
    functionLinenumber: 2689
    functionLinenumberEnd: 2693
    functionName: PySet_New
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 18
    functionsReached:
    - make_new_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySet_New(PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2695
    functionDepth: 10
    functionLinenumber: 2695
    functionLinenumberEnd: 2699
    functionName: PyFrozenSet_New
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 9
    functionsReached:
    - make_new_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrozenSet_New(PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2704,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2705,1
    - Dst: set_len
      Src: /src/cpython/Objects/setobject.c:2708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - anyset
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2709
    functionName: PySet_Size
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - set_len
    - 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/cpython/Objects/setobject.c:2714,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2715,1
    - Dst: set_clear
      Src: /src/cpython/Objects/setobject.c:2718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - set
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2711
    functionDepth: 1
    functionLinenumber: 2711
    functionLinenumberEnd: 2720
    functionName: PySet_Clear
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 4
    functionsReached:
    - PySet_Check
    - PyErr_BadInternalCall
    - set_clear
    linkageType: ''
    returnType: int
    signature: int PySet_Clear(PyObject *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_clear_internal
      Src: /src/cpython/Objects/setobject.c:2725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2722
    functionDepth: 3
    functionLinenumber: 2722
    functionLinenumberEnd: 2726
    functionName: _PySet_ClearInternal
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_clear_internal
    linkageType: ''
    returnType: void
    signature: void _PySet_ClearInternal(PySetObject *so)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2731,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2732,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2737,1
    - Dst: set_contains_key
      Src: /src/cpython/Objects/setobject.c:2738,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - anyset
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2728
    functionDepth: 7
    functionLinenumber: 2728
    functionLinenumberEnd: 2741
    functionName: PySet_Contains
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 7
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyAnySet_Check
    - set_contains_key
    linkageType: ''
    returnType: int
    signature: int PySet_Contains(PyObject *anyset, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2746,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2747,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2752,1
    - Dst: set_discard_key
      Src: /src/cpython/Objects/setobject.c:2753,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - set
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2743
    functionDepth: 7
    functionLinenumber: 2743
    functionLinenumberEnd: 2756
    functionName: PySet_Discard
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 6
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PySet_Check
    - PyErr_BadInternalCall
    - set_discard_key
    linkageType: ''
    returnType: int
    signature: int PySet_Discard(PyObject *set, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2761,1
    - Dst: PyFrozenSet_Check
      Src: /src/cpython/Objects/setobject.c:2762,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/setobject.c:2762,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2763,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2768,1
    - Dst: set_add_key
      Src: /src/cpython/Objects/setobject.c:2769,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - anyset
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2758
    functionDepth: 7
    functionLinenumber: 2758
    functionLinenumberEnd: 2772
    functionName: PySet_Add
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 20
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PySet_Check
    - PyErr_BadInternalCall
    - set_add_key
    - PyFrozenSet_Check
    - Py_REFCNT
    linkageType: ''
    returnType: int
    signature: int PySet_Add(PyObject *anyset, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2779,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2780,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:2783,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: 2788
      start: 2774
    functionDepth: 2
    functionLinenumber: 2774
    functionLinenumberEnd: 2788
    functionName: _PySet_NextEntry
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - set_next
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int _PySet_NextEntry(PyObject *set, Py_ssize_t *pos, PyObject **key,
      Py_hash_t *hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2795,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2796,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:2799,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:2800,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:2802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - set
    - pos
    - key
    - hash
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyObject**
    - Py_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2790
    functionDepth: 2
    functionLinenumber: 2790
    functionLinenumberEnd: 2805
    functionName: _PySet_NextEntryRef
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 4
    functionsReached:
    - PyErr_BadInternalCall
    - set_next
    - PyAnySet_Check
    - Py_NewRef
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int _PySet_NextEntryRef(PyObject *set, Py_ssize_t *pos, PyObject **key,
      Py_hash_t *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2810,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2811,1
    - Dst: set_pop
      Src: /src/cpython/Objects/setobject.c:2814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2815
    functionName: PySet_Pop
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PySet_Check
    - PyErr_BadInternalCall
    - set_pop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySet_Pop(PyObject *set)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2820,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:2821,1
    - Dst: set_update_internal
      Src: /src/cpython/Objects/setobject.c:2824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - set
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2817
    functionDepth: 9
    functionLinenumber: 2817
    functionLinenumberEnd: 2825
    functionName: _PySet_Update
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 4
    functionsReached:
    - PySet_Check
    - PyErr_BadInternalCall
    - set_update_internal
    linkageType: ''
    returnType: int
    signature: int _PySet_Update(PyObject *set, PyObject *iterable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/setobject.c:2835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2832
    functionDepth: 2
    functionLinenumber: 2832
    functionLinenumberEnd: 2836
    functionName: dummy_repr
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dummy_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::Py_FatalError
      Src: /src/cpython/Objects/setobject.c:2841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ignore
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2838
    functionDepth: 0
    functionLinenumber: 2838
    functionLinenumberEnd: 2842
    functionName: _Py_NO_RETURN::dummy_dealloc
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_NO_RETURN::Py_FatalError
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      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: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: MCACHE_HASH
    functionSourceFile: /src/cpython/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: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: MCACHE_HASH_METHOD
    functionSourceFile: /src/cpython/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: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: MCACHE_CACHEABLE_NAME
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCACHE_CACHEABLE_NAME(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: NEXT_VERSION_TAG
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_VERSION_TAG(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: BEGIN_TYPE_LOCK
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_TYPE_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: END_TYPE_LOCK
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: END_TYPE_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: BEGIN_TYPE_DICT_LOCK
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_TYPE_DICT_LOCK(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: END_TYPE_DICT_LOCK
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: END_TYPE_DICT_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: types_world_is_stopped
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: bool
    signature: bool types_world_is_stopped(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: TYPE_IS_REVEALED
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_IS_REVEALED(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: TYPE_IS_REVEALED
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_IS_REVEALED(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: ASSERT_TYPE_LOCK_HELD
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_TYPE_LOCK_HELD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: ASSERT_WORLD_STOPPED_OR_NEW_TYPE
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WORLD_STOPPED_OR_NEW_TYPE(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: ASSERT_NEW_TYPE_OR_LOCKED
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_NEW_TYPE_OR_LOCKED(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:123,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:123,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:124,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/typeobject.c:125,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:126,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!types_world_is_stopped())
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (types_world_is_stopped())
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: types_stop_world
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_StopTheWorld
    - _PyInterpreterState_GET
    - assert
    - types_world_is_stopped
    linkageType: ''
    returnType: void
    signature: void types_stop_world(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:132,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:132,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:133,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/typeobject.c:134,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:135,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (types_world_is_stopped())
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!types_world_is_stopped())
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: types_start_world
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - _PyInterpreterState_GET
    - assert
    - types_world_is_stopped
    linkageType: ''
    returnType: void
    signature: void types_start_world(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:143,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:147,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (c2->_cs_mutex2 == TYPE_LOCK)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (c->_cs_mutex == TYPE_LOCK)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 160
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 160
    functionName: type_lock_prevent_release
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void type_lock_prevent_release(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:165,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:169,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (c2->_cs_mutex2 == NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (c->_cs_mutex == NULL)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: type_lock_allow_release
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void type_lock_allow_release(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: TYPE_IS_REVEALED
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_IS_REVEALED(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: types_world_is_stopped
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: types_world_is_stopped()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: PyTypeObject_CAST
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTypeObject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/typeobject.c:220,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: type_from_ref
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_CAST
    - _PyWeakref_GET_REF
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      type_from_ref(PyObject *ref)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: managed_static_type_index_is_set
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int managed_static_type_index_is_set(PyTypeObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:241,1
    - Dst: managed_static_type_index_is_set
      Src: /src/cpython/Objects/typeobject.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (managed_static_type_index_is_set(self))
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: managed_static_type_index_get
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - managed_static_type_index_is_set
    linkageType: ''
    returnType: size_t
    signature: size_t managed_static_type_index_get(PyTypeObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyTypeObject*
    - size_t
    assertStmts:
    - condition: (index < _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: managed_static_type_index_set
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void managed_static_type_index_set(PyTypeObject *self, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: managed_static_type_index_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void managed_static_type_index_clear(PyTypeObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:264,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:265,1
    - Dst: _Py_atomic_load_int64
      Src: /src/cpython/Objects/typeobject.c:268,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:270,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:278,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:279,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:280,1
    - Dst: managed_static_type_index_is_set
      Src: /src/cpython/Objects/typeobject.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - interp
    - index
    - p_interp_count
    argTypes:
    - PyInterpreterState*
    - size_t
    - int64_t*
    assertStmts:
    - condition: (interp->runtime == &_PyRuntime)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!interp->types.for_extensions.initialized[index].isbuiltin)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Objects/typeobject.c
    - condition: "((interp_count == 0) ==\n            (_PyRuntime.types.managed_static.types[full_index].type
        == NULL))"
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (index < _Py_MAX_MANAGED_STATIC_EXT_TYPES)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type == _PyRuntime.types.managed_static.types[full_index].type)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (managed_static_type_index_is_set(type))
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 282
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 282
    functionName: static_ext_type_lookup
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int64
    - assert
    - managed_static_type_index_is_set
    linkageType: ''
    returnType: PyTypeObject
    signature: "PyTypeObject *\nstatic_ext_type_lookup(PyInterpreterState *interp,
      size_t index,\n                       int64_t *p_interp_count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: managed_static_type_index_get
      Src: /src/cpython/Objects/typeobject.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - self
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: managed_static_type_state_get
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - managed_static_type_index_get
    linkageType: ''
    returnType: managed_static_type_state
    signature: 'managed_static_type_state *

      managed_static_type_state_get(PyInterpreterState *interp, PyTypeObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:304,1
    - Dst: managed_static_type_state_get
      Src: /src/cpython/Objects/typeobject.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - self
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts:
    - condition: (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: _PyStaticType_GetState
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - assert
    - managed_static_type_state_get
    linkageType: ''
    returnType: managed_static_type_state
    signature: 'managed_static_type_state *

      _PyStaticType_GetState(PyInterpreterState *interp, PyTypeObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:313,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:317,1
    - Dst: managed_static_type_index_is_set
      Src: /src/cpython/Objects/typeobject.c:317,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:320,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/typeobject.c:323,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/typeobject.c:326,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:327,1
    - Dst: managed_static_type_index_set
      Src: /src/cpython/Objects/typeobject.c:329,1
    - Dst: managed_static_type_index_get
      Src: /src/cpython/Objects/typeobject.c:332,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:334,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:335,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:338,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:345,1
    - Dst: _Py_atomic_load_int64
      Src: /src/cpython/Objects/typeobject.c:346,1
    - Dst: _Py_atomic_add_int64
      Src: /src/cpython/Objects/typeobject.c:347,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:351,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:355,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 4
    argNames:
    - interp
    - self
    - isbuiltin
    - initial
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - int
    - int
    assertStmts:
    - condition: (interp->runtime == &_PyRuntime)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!managed_static_type_index_is_set(self))
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (index < _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (index < _Py_MAX_MANAGED_STATIC_EXT_TYPES)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (index == interp->types.builtins.num_initialized)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/cpython/Objects/typeobject.c
    - condition: "((initial == 1) ==\n            (_Py_atomic_load_int64(&_PyRuntime.types.managed_static.types[full_index].interp_count)
        == 0))"
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyRuntime.types.managed_static.types[full_index].type == NULL)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyRuntime.types.managed_static.types[full_index].type == self)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (state->type == NULL)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (index < _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (index < _Py_MAX_MANAGED_STATIC_EXT_TYPES)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 377
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 377
    functionName: managed_static_type_state_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - managed_static_type_index_get
    - _Py_atomic_load_int64
    - _Py_atomic_add_int64
    - managed_static_type_index_is_set
    - PyMutex_Lock
    - PyMutex_Unlock
    - assert
    - managed_static_type_index_set
    linkageType: ''
    returnType: void
    signature: "void managed_static_type_state_init(PyInterpreterState *interp, PyTypeObject
      *self,\n                               int isbuiltin, int initial)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: managed_static_type_index_get
      Src: /src/cpython/Objects/typeobject.c:385,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:393,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:395,1
    - Dst: _Py_atomic_load_int64
      Src: /src/cpython/Objects/typeobject.c:395,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:396,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:398,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:400,1
    - Dst: _Py_atomic_add_int64
      Src: /src/cpython/Objects/typeobject.c:402,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:405,1
    - Dst: _Py_atomic_load_int64
      Src: /src/cpython/Objects/typeobject.c:405,1
    - Dst: managed_static_type_index_clear
      Src: /src/cpython/Objects/typeobject.c:408,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:412,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/typeobject.c:416,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:417,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/typeobject.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - interp
    - self
    - isbuiltin
    - final
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - int
    - int
    assertStmts:
    - condition: (_Py_atomic_load_int64(&_PyRuntime.types.managed_static.types[full_index].interp_count)
        > 0)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (state != NULL)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyRuntime.types.managed_static.types[full_index].type == state->type)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (state->type != NULL)
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (state->tp_weaklist == NULL)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!_Py_atomic_load_int64(&_PyRuntime.types.managed_static.types[full_index].interp_count))
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.for_extensions.num_initialized > 0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.builtins.num_initialized > 0)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 424
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 424
    functionName: managed_static_type_state_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - managed_static_type_index_get
    - _Py_atomic_load_int64
    - _Py_atomic_add_int64
    - PyMutex_Lock
    - PyMutex_Unlock
    - managed_static_type_index_clear
    - assert
    linkageType: ''
    returnType: void
    signature: "void managed_static_type_state_clear(PyInterpreterState *interp, PyTypeObject
      *self,\n                                int isbuiltin, int final)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:431,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:433,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:435,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:441,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:442,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:443,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (interp->types.builtins.initialized[i].isbuiltin)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (count <= _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (cls != NULL)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 447
      start: 428
    functionDepth: 4
    functionLinenumber: 428
    functionLinenumberEnd: 447
    functionName: _PyStaticType_GetBuiltins
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - PyList_SET_ITEM
    - _PyInterpreterState_GET
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyStaticType_GetBuiltins(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_NEW_TYPE
      Src: /src/cpython/Objects/typeobject.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tp
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: type_set_flags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_NEW_TYPE
    linkageType: ''
    returnType: void
    signature: void type_set_flags(PyTypeObject *tp, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_NEW_TYPE
      Src: /src/cpython/Objects/typeobject.c:464,1
    - Dst: type_set_flags
      Src: /src/cpython/Objects/typeobject.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tp
    - mask
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: type_set_flags_with_mask
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_NEW_TYPE
    - type_set_flags
    linkageType: ''
    returnType: void
    signature: void type_set_flags_with_mask(PyTypeObject *tp, unsigned long mask,
      unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_set_flags
      Src: /src/cpython/Objects/typeobject.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - flag
    argTypes:
    - PyTypeObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: type_add_flags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_set_flags
    linkageType: ''
    returnType: void
    signature: void type_add_flags(PyTypeObject *tp, unsigned long flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_set_flags
      Src: /src/cpython/Objects/typeobject.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - flag
    argTypes:
    - PyTypeObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: type_clear_flags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_set_flags
    linkageType: ''
    returnType: void
    signature: void type_clear_flags(PyTypeObject *tp, unsigned long flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:485,1
    - Dst: managed_static_type_state_get
      Src: /src/cpython/Objects/typeobject.c:486,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:487,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:488,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:492,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: ((type->tp_flags & Py_TPFLAGS_READYING) == 0)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!state->readying)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (state != NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: start_readying
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_add_flags
    - assert
    - _PyInterpreterState_GET
    - managed_static_type_state_get
    linkageType: ''
    returnType: void
    signature: void start_readying(PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:500,1
    - Dst: managed_static_type_state_get
      Src: /src/cpython/Objects/typeobject.c:501,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:502,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:503,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:507,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_flags & Py_TPFLAGS_READYING)
      pos:
        line_end: 506
        line_start: 506
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (state->readying)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (state != NULL)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 509
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 509
    functionName: stop_readying
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_clear_flags
    - assert
    - _PyInterpreterState_GET
    - managed_static_type_state_get
    linkageType: ''
    returnType: void
    signature: void stop_readying(PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:515,1
    - Dst: managed_static_type_state_get
      Src: /src/cpython/Objects/typeobject.c:516,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 521
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 521
    functionName: is_readying
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyInterpreterState_GET
    - managed_static_type_state_get
    linkageType: ''
    returnType: int
    signature: int is_readying(PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:530,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:531,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 536
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 536
    functionName: lookup_tp_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_tp_dict(PyTypeObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 5
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: _PyType_GetDict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 9
    functionsReached:
    - lookup_tp_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetDict(PyTypeObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:548,1
    - Dst: _Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 5
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: PyType_GetDict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 13
    functionsReached:
    - lookup_tp_dict
    - _Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetDict(PyTypeObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:556,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:557,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 563
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 563
    functionName: set_tp_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void set_tp_dict(PyTypeObject *self, PyObject *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:569,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:570,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:571,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:572,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 576
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 576
    functionName: clear_tp_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GetState
    - Py_CLEAR
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_tp_dict(PyTypeObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: lookup_tp_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_tp_bases(PyTypeObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:590,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:591,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:592,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 596
    functionName: _PyType_GetBases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    - lookup_tp_bases
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetBases(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:601,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:601,1
    - Dst: ASSERT_NEW_TYPE_OR_LOCKED
      Src: /src/cpython/Objects/typeobject.c:602,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:606,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:606,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:607,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:608,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:609,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:610,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:613,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:613,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:614,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:614,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:615,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:616,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:616,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/typeobject.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - self
    - bases
    - initial
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_CheckExact(bases))
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (initial)
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_bases == NULL)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_base == NULL)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_SIZE(bases) == 1)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_base->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_ITEM(bases, 0) == (PyObject *)self->tp_base)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_Py_IsImmortal(self->tp_base))
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 621
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 621
    functionName: set_tp_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_NEW_TYPE_OR_LOCKED
    - assert
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - _Py_SetImmortal
    - _Py_IsImmortal
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void set_tp_bases(PyTypeObject *self, PyObject *bases, int initial)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:629,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:630,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:633,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:633,1
    - Dst: _Py_ClearImmortal
      Src: /src/cpython/Objects/typeobject.c:634,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - final
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (_Py_IsImmortal(self->tp_bases))
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 641
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 641
    functionName: clear_tp_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTuple_GET_SIZE
    - _Py_ClearImmortal
    - Py_CLEAR
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: void clear_tp_bases(PyTypeObject *self, int final)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NEW_TYPE_OR_LOCKED
      Src: /src/cpython/Objects/typeobject.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 649
    functionName: lookup_tp_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_NEW_TYPE_OR_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_tp_mro(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/typeobject.c:655,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/typeobject.c:659,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:663,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:664,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/typeobject.c:665,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:666,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:669,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 671
    functionName: _PyType_GetMRO
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - END_TYPE_LOCK
    - _Py_atomic_load_ptr_relaxed
    - BEGIN_TYPE_LOCK
    - Py_XNewRef
    - _Py_TryIncrefCompare
    - Py_XINCREF
    - lookup_tp_mro
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetMRO(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:677,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:677,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:681,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:682,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/typeobject.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - mro
    - initial
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyTuple_CheckExact(mro))
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (initial)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_mro == NULL)
      pos:
        line_end: 681
        line_start: 681
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 688
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 688
    functionName: set_tp_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortal
    - PyTuple_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void set_tp_mro(PyTypeObject *self, PyObject *mro, int initial)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:696,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:697,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:700,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:700,1
    - Dst: _Py_ClearImmortal
      Src: /src/cpython/Objects/typeobject.c:701,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - final
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (_Py_IsImmortal(self->tp_mro))
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 708
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 708
    functionName: clear_tp_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTuple_GET_SIZE
    - _Py_ClearImmortal
    - Py_CLEAR
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: void clear_tp_mro(PyTypeObject *self, int final)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:714,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:719,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 711
    functionDepth: 10
    functionLinenumber: 711
    functionLinenumberEnd: 726
    functionName: init_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - _PyStaticType_GetState
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      init_tp_subclasses(PyTypeObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:735,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:736,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:737,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 741
    functionName: clear_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GetState
    - Py_CLEAR
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void clear_tp_subclasses(PyTypeObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:747,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:748,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 753
      start: 743
    functionDepth: 4
    functionLinenumber: 743
    functionLinenumberEnd: 753
    functionName: lookup_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_tp_subclasses(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:758,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:761,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 755
    functionDepth: 5
    functionLinenumber: 755
    functionLinenumberEnd: 769
    functionName: _PyType_HasSubclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    - lookup_tp_subclasses
    linkageType: ''
    returnType: int
    signature: int _PyType_HasSubclasses(PyTypeObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:774,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:779,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:783,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:783,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:789,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:790,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/typeobject.c:795,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/typeobject.c:795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 803
      start: 771
    functionDepth: 5
    functionLinenumber: 771
    functionLinenumberEnd: 803
    functionName: _PyType_GetSubclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyDict_CheckExact
    - lookup_tp_subclasses
    - PyList_Append
    - type_from_ref
    - _PyObject_CAST
    - PyDict_Next
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetSubclasses(PyTypeObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:825,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:828,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:832,1
    - Dst: strncmp
      Src: /src/cpython/Objects/typeobject.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - name
    - doc
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 839
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 839
    functionName: find_signature
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - assert
    - strrchr
    linkageType: ''
    returnType: char
    signature: 'char *

      find_signature(const char *name, const char *doc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/cpython/Objects/typeobject.c:852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - doc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 859
    functionName: skip_signature
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      skip_signature(const char *doc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:867,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/typeobject.c:867,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:874,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:874,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:875,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:875,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:877,1
    - Dst: is_readying
      Src: /src/cpython/Objects/typeobject.c:877,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:878,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:878,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:883,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:887,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:888,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:888,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:888,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 861
    functionDepth: 5
    functionLinenumber: 861
    functionLinenumberEnd: 893
    functionName: _PyType_CheckConsistency
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - is_readying
    - _Py_ID
    - PyDict_Contains
    - lookup_tp_dict
    - _PyObject_IsFreed
    - CHECK
    - Py_REFCNT
    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: 866
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: CHECK
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_signature
      Src: /src/cpython/Objects/typeobject.c:898,1
    - Dst: skip_signature
      Src: /src/cpython/Objects/typeobject.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - internal_doc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 906
    functionName: _PyType_DocWithoutSignature
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:911,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - name
    - internal_doc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 918
    functionName: _PyType_GetDocFromInternalDoc
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 939
    functionName: signature_from_flags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      signature_from_flags(int flags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_signature
      Src: /src/cpython/Objects/typeobject.c:944,1
    - Dst: skip_signature
      Src: /src/cpython/Objects/typeobject.c:948,1
    - Dst: signature_from_flags
      Src: /src/cpython/Objects/typeobject.c:952,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:954,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:961,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:962,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:963,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/typeobject.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - name
    - internal_doc
    - flags
    argTypes:
    - char*
    - char*
    - int
    assertStmts:
    - condition: ((end - start) >= 2)
      pos:
        line_end: 960
        line_start: 960
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (end[-1] == ')')
      pos:
        line_end: 961
        line_start: 961
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (end[0] == '\n')
      pos:
        line_end: 962
        line_start: 962
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 965
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 965
    functionName: _PyType_GetTextSignatureFromInternalDoc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_FromStringAndSize
    - skip_signature
    - find_signature
    - signature_from_flags
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetTextSignatureFromInternalDoc(const char *name, const char *internal_doc,
      int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 973
    functionName: get_type_cache
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: struct type_cache
    signature: 'struct type_cache *

      get_type_cache(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySeqLock_LockWrite
      Src: /src/cpython/Objects/typeobject.c:982,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:985,1
    - Dst: _Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:985,1
    - Dst: _PySeqLock_UnlockWrite
      Src: /src/cpython/Objects/typeobject.c:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cache
    - value
    argTypes:
    - struct type_cache*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 991
    functionName: type_cache_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_XNewRef
    - _PySeqLock_UnlockWrite
    - _PySeqLock_LockWrite
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void type_cache_clear(struct type_cache *cache, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (entry->name == NULL)
      pos:
        line_end: 999
        line_start: 999
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1008
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1008
    functionName: _PyType_InitCache
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyType_InitCache(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_cache_clear
      Src: /src/cpython/Objects/typeobject.c:1017,1
    - Dst: NEXT_VERSION_TAG
      Src: /src/cpython/Objects/typeobject.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1020
    functionName: _PyType_ClearCache
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - NEXT_VERSION_TAG
    - type_cache_clear
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _PyType_ClearCache(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1026,1
    - Dst: _PyType_ClearCache
      Src: /src/cpython/Objects/typeobject.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1023
    functionDepth: 3
    functionLinenumber: 1023
    functionLinenumberEnd: 1028
    functionName: PyType_ClearCache
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GET
    - _PyType_ClearCache
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PyType_ClearCache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_cache_clear
      Src: /src/cpython/Objects/typeobject.c:1035,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1038,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1040,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1042,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp->types.for_extensions.num_initialized == 0)
      pos:
        line_end: 1037
        line_start: 1037
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.for_extensions.initialized[i].type == NULL)
      pos:
        line_end: 1039
        line_start: 1039
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.builtins.num_initialized == 0)
      pos:
        line_end: 1041
        line_start: 1041
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.builtins.initialized[i].type == NULL)
      pos:
        line_end: 1043
        line_start: 1043
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1046
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1046
    functionName: _PyTypes_Fini
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - type_cache_clear
    linkageType: ''
    returnType: void
    signature: void _PyTypes_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1052,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyType_WatchCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1064
    functionName: PyType_AddWatcher
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyType_AddWatcher(PyType_WatchCallback callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - interp
    - watcher_id
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1078
    functionName: validate_watcher_id
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_watcher_id(PyInterpreterState *interp, int watcher_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1083,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/typeobject.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1089
    functionName: PyType_ClearWatcher
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - validate_watcher_id
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyType_ClearWatcher(int watcher_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:1096,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1097,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1101,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/typeobject.c:1102,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1106,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:1107,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - watcher_id
    - obj
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1111
    functionName: PyType_Watch
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - END_TYPE_LOCK
    - PyErr_SetString
    - assign_version_tag
    - validate_watcher_id
    - _PyInterpreterState_GET
    - BEGIN_TYPE_LOCK
    linkageType: ''
    returnType: int
    signature: int PyType_Watch(int watcher_id, PyObject* obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:1116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1117,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1121,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/typeobject.c:1122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - watcher_id
    - obj
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1127
    functionName: PyType_Unwatch
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - validate_watcher_id
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyType_Unwatch(int watcher_id, PyObject* obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1132,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1134,1
    - Dst: _Py_atomic_add_uint16
      Src: /src/cpython/Objects/typeobject.c:1147,1
    - Dst: FT_ATOMIC_STORE_UINT_RELAXED
      Src: /src/cpython/Objects/typeobject.c:1150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - tp
    - version
    argTypes:
    - PyTypeObject*
    - unsigned int
    assertStmts:
    - condition: (version == 0 || (tp->tp_versions_used != _Py_ATTR_CACHE_UNUSED))
      pos:
        line_end: 1131
        line_start: 1131
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1159
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1159
    functionName: set_version_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT_RELAXED
    - _Py_atomic_add_uint16
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void set_version_unlocked(PyTypeObject *tp, unsigned int version)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NEW_TYPE_OR_LOCKED
      Src: /src/cpython/Objects/typeobject.c:1179,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1183,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:1183,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1189,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:1191,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1193,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:1193,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:1197,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:1198,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1203,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1209,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1213,1
    - Dst: cb
      Src: /src/cpython/Objects/typeobject.c:1218,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:1219,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1229,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1230,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Objects/typeobject.c:1233,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (!types_world_is_stopped())
      pos:
        line_end: 1182
        line_start: 1182
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) == 0)
      pos:
        line_end: 1188
        line_start: 1188
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (i < TYPE_MAX_WATCHERS)
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1236
      start: 1161
    functionDepth: 5
    functionLinenumber: 1161
    functionLinenumberEnd: 1236
    functionName: type_modified_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - ASSERT_NEW_TYPE_OR_LOCKED
    - Py_DECREF
    - lookup_tp_subclasses
    - PyDict_CheckExact
    - types_world_is_stopped
    - type_modified_unlocked
    - type_from_ref
    - cb
    - set_version_unlocked
    - _PyInterpreterState_GET
    - PyDict_Next
    - PyType_HasFeature
    - PyErr_FormatUnraisable
    - FT_ATOMIC_STORE_PTR_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void type_modified_unlocked(PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Objects/typeobject.c:1242,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1246,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1247,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1238
    functionDepth: 6
    functionLinenumber: 1238
    functionLinenumberEnd: 1249
    functionName: PyType_Modified
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - type_modified_unlocked
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    - FT_ATOMIC_LOAD_UINT_RELAXED
    linkageType: ''
    returnType: void
    signature: void PyType_Modified(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:1260,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:1261,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:1262,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:1264,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1264,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1264,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:1265,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1265,1
    - Dst: PyStackRef_Is
      Src: /src/cpython/Objects/typeobject.c:1267,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:1269,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1272
    functionName: has_custom_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_LookupStackRefAndVersion
    - _Py_ID
    - _PyThreadState_GET
    - PyStackRef_Is
    - _PyThreadState_PushCStackRef
    - Py_TYPE
    - _PyThreadState_PopCStackRef
    linkageType: ''
    returnType: int
    signature: int has_custom_mro(PyTypeObject *tp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:1291,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:1292,1
    - Dst: has_custom_mro
      Src: /src/cpython/Objects/typeobject.c:1292,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1295,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1297,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:1298,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:1304,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1304,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1311,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1312,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1314,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Objects/typeobject.c:1317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (!(type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 1310
        line_start: 1310
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1320
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1320
    functionName: type_mro_modified
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTuple_GET_SIZE
    - set_version_unlocked
    - _PyType_CAST
    - PyType_HasFeature
    - Py_IS_TYPE
    - is_subtype_with_mro
    - PyTuple_GET_ITEM
    - ASSERT_TYPE_LOCK_HELD
    - FT_ATOMIC_STORE_PTR_RELAXED
    - has_custom_mro
    - lookup_tp_mro
    linkageType: ''
    returnType: void
    signature: void type_mro_modified(PyTypeObject *type, PyObject *bases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1334,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1335,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tp
    - version
    argTypes:
    - PyTypeObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1337
    functionName: _PyType_SetVersion
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - set_version_unlocked
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    linkageType: ''
    returnType: void
    signature: void _PyType_SetVersion(PyTypeObject *tp, unsigned int version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1354
    functionName: _PyType_LookupByVersion
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _PyType_LookupByVersion(unsigned int version)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint_relaxed
      Src: /src/cpython/Objects/typeobject.c:1366,1
    - Dst: _Py_atomic_compare_exchange_uint
      Src: /src/cpython/Objects/typeobject.c:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1372
    functionName: next_global_version_tag
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uint
    - _Py_atomic_load_uint_relaxed
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int next_global_version_tag(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:1377,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1386,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1394,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1395,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1397,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:1398,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:1398,1
    - Dst: next_global_version_tag
      Src: /src/cpython/Objects/typeobject.c:1404,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1409,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1410,1
    - Dst: NEXT_VERSION_TAG
      Src: /src/cpython/Objects/typeobject.c:1414,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1418,1
    - Dst: NEXT_VERSION_TAG
      Src: /src/cpython/Objects/typeobject.c:1418,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1419,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - interp
    - type
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_version_tag <= _Py_MAX_GLOBAL_TYPE_VERSION_TAG)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_version_tag != 0)
      pos:
        line_end: 1418
        line_start: 1418
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1422
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1422
    functionName: assign_version_tag
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - next_global_version_tag
    - PyTuple_GET_SIZE
    - lookup_tp_bases
    - NEXT_VERSION_TAG
    - set_version_unlocked
    - assign_version_tag
    - _PyType_CAST
    - PyTuple_GET_ITEM
    - ASSERT_TYPE_LOCK_HELD
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: int
    signature: int assign_version_tag(PyInterpreterState *interp, PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1426,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1428,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:1429,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1424
    functionDepth: 3
    functionLinenumber: 1424
    functionLinenumberEnd: 1432
    functionName: PyUnstable_Type_AssignVersionTag
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - assign_version_tag
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Type_AssignVersionTag(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1452,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1453,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1459,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/typeobject.c:1465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - value
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1471
    functionName: check_set_special_type_attr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - _PyType_HasFeature
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_set_special_type_attr(PyTypeObject *type, PyObject *value,
      const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1476,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:1477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_name != NULL)
      pos:
        line_end: 1475
        line_start: 1475
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1485
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1485
    functionName: _PyType_Name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 25
    functionsReached:
    - assert
    - strrchr
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyType_Name(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1490,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1493,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:1496,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/typeobject.c:1496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1487
    functionDepth: 2
    functionLinenumber: 1487
    functionLinenumberEnd: 1498
    functionName: type_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTypeObject_CAST
    - _PyType_Name
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_name(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1503,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1506,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:1509,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/typeobject.c:1509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1511
    functionName: type_qualname
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTypeObject_CAST
    - _PyType_Name
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_qualname(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1516,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1520,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:1522,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1523,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1525,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/typeobject.c:1529,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:1532,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1533,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1538,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/typeobject.c:1539,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1542,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/typeobject.c:1543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1513
    functionDepth: 5
    functionLinenumber: 1513
    functionLinenumberEnd: 1546
    functionName: type_set_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyTypeObject_CAST
    - _PyInterpreterState_GET
    - Py_NewRef
    - check_set_special_type_attr
    - _PyEval_StopTheWorld
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: int
    signature: int type_set_name(PyObject *tp, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1551,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1554,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:1556,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1557,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1559,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:1564,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tp
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1548
    functionDepth: 2
    functionLinenumber: 1548
    functionLinenumberEnd: 1566
    functionName: type_set_qualname
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject_CAST
    - Py_SETREF
    - Py_NewRef
    - check_set_special_type_attr
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int type_set_qualname(PyObject *tp, PyObject *value, void *context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:1573,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:1574,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1574,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1575,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:1579,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/typeobject.c:1581,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1584,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/typeobject.c:1585,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1568
    functionDepth: 9
    functionLinenumber: 1568
    functionLinenumberEnd: 1593
    functionName: type_module
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - _PyUnicode_InternMortal
    - _Py_ID
    - _PyInterpreterState_GET
    - lookup_tp_dict
    - PyErr_Format
    - PyDict_GetItemRef
    - strrchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_module(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1598,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1595
    functionDepth: 10
    functionLinenumber: 1595
    functionLinenumberEnd: 1600
    functionName: type_get_module
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject_CAST
    - type_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_module(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1605,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1606,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:1609,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:1611,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:1612,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1612,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:1615,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1602
    functionDepth: 9
    functionLinenumber: 1602
    functionLinenumberEnd: 1616
    functionName: type_set_module
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - _Py_ID
    - PyTypeObject_CAST
    - PyType_Modified
    - lookup_tp_dict
    - check_set_special_type_attr
    - PyDict_Pop
    linkageType: ''
    returnType: int
    signature: int type_set_module(PyObject *tp, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:1623,1
    - Dst: type_qualname
      Src: /src/cpython/Objects/typeobject.c:1626,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:1631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1633,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:1638,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:1639,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1639,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:1640,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1640,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:1642,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - type
    - sep
    argTypes:
    - PyTypeObject*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1619
    functionDepth: 10
    functionLinenumber: 1619
    functionLinenumberEnd: 1650
    functionName: _PyType_GetFullyQualifiedName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_ID
    - PyUnicode_FromString
    - Py_NewRef
    - _PyUnicode_Equal
    - PyUnicode_Check
    - type_qualname
    - type_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetFullyQualifiedName(PyTypeObject *type, char sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/typeobject.c:1655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1652
    functionDepth: 11
    functionLinenumber: 1652
    functionLinenumberEnd: 1656
    functionName: PyType_GetFullyQualifiedName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - _PyType_GetFullyQualifiedName
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetFullyQualifiedName(PyTypeObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1661,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:1666,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1666,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:1669,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:1670,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1670,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:1671,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1658
    functionDepth: 8
    functionLinenumber: 1658
    functionLinenumberEnd: 1675
    functionName: type_abstractmethods
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyTypeObject_CAST
    - PyErr_SetObject
    - lookup_tp_dict
    - PyDict_GetItemRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_abstractmethods(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1680,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:1686,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:1688,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:1691,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1691,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:1695,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1695,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:1697,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1697,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1705,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1706,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:1707,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:1709,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:1711,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:1712,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:1713,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1677
    functionDepth: 9
    functionLinenumber: 1677
    functionLinenumberEnd: 1717
    functionName: type_set_abstractmethods
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - types_start_world
    - PyDict_SetItem
    - END_TYPE_LOCK
    - type_modified_unlocked
    - _Py_ID
    - PyTypeObject_CAST
    - PyErr_SetObject
    - type_clear_flags
    - lookup_tp_dict
    - types_stop_world
    - BEGIN_TYPE_LOCK
    - ASSERT_TYPE_LOCK_HELD
    - type_add_flags
    - PyDict_Pop
    linkageType: ''
    returnType: int
    signature: int type_set_abstractmethods(PyObject *tp, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1722,1
    - Dst: _PyType_GetBases
      Src: /src/cpython/Objects/typeobject.c:1723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1728
    functionName: type_get_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject_CAST
    - _PyType_GetBases
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_bases(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1733,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1736,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1737,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:1741,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1730
    functionDepth: 2
    functionLinenumber: 1730
    functionLinenumberEnd: 1746
    functionName: type_get_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - END_TYPE_LOCK
    - PyTypeObject_CAST
    - BEGIN_TYPE_LOCK
    - lookup_tp_mro
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_mro(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:1769,1
    - Dst: mro_internal
      Src: /src/cpython/Objects/typeobject.c:1772,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1777,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:1781,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:1784,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/typeobject.c:1788,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:1793,1
    - Dst: set_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1797,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:1800,1
    - Dst: _PyType_HasSubclasses
      Src: /src/cpython/Objects/typeobject.c:1803,1
    - Dst: _PyType_GetSubclasses
      Src: /src/cpython/Objects/typeobject.c:1814,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1819,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:1821,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1821,1
    - Dst: mro_hierarchy
      Src: /src/cpython/Objects/typeobject.c:1822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1827,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - type
    - temp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1766
    functionDepth: 6
    functionLinenumber: 1766
    functionLinenumberEnd: 1831
    functionName: mro_hierarchy
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - set_tp_mro
    - PyList_GET_ITEM
    - Py_DECREF
    - mro_hierarchy
    - PyList_Append
    - _PyType_GetSubclasses
    - PyList_GET_SIZE
    - _PyType_CAST
    - mro_internal
    - _PyType_HasSubclasses
    - ASSERT_TYPE_LOCK_HELD
    - PyTuple_Pack
    - lookup_tp_mro
    linkageType: ''
    returnType: int
    signature: int mro_hierarchy(PyTypeObject *type, PyObject *temp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1837,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1840,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:1842,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1843,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1845,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1848,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1849,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1854,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1856,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:1857,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1858,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1860,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:1865,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1865,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1875,1
    - Dst: type_is_subtype_base_chain
      Src: /src/cpython/Objects/typeobject.c:1876,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1878,1
    - Dst: find_best_base
      Src: /src/cpython/Objects/typeobject.c:1885,1
    - Dst: compatible_for_assignment
      Src: /src/cpython/Objects/typeobject.c:1889,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - type
    - new_bases
    - best_base
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyTypeObject**
    assertStmts:
    - condition: (new_bases != NULL)
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1894
      start: 1833
    functionDepth: 2
    functionLinenumber: 1833
    functionLinenumberEnd: 1894
    functionName: type_check_new_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - lookup_tp_mro
    - PyTuple_Check
    - type_is_subtype_base_chain
    - PyErr_SetString
    - compatible_for_assignment
    - find_best_base
    - is_subtype_with_mro
    - check_set_special_type_attr
    - PyTuple_GET_ITEM
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int type_check_new_bases(PyTypeObject *type, PyObject *new_bases, PyTypeObject
      **best_base)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:1899,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1902,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1903,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1906,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1906,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1907,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:1909,1
    - Dst: mro_hierarchy
      Src: /src/cpython/Objects/typeobject.c:1913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1916,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1921,1
    - Dst: remove_all_subclasses
      Src: /src/cpython/Objects/typeobject.c:1929,1
    - Dst: add_all_subclasses
      Src: /src/cpython/Objects/typeobject.c:1930,1
    - Dst: update_all_slots
      Src: /src/cpython/Objects/typeobject.c:1931,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1935,1
    - Dst: RARE_EVENT_INC
      Src: /src/cpython/Objects/typeobject.c:1941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1943,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1945,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:1945,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1949,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/typeobject.c:1954,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1954,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1957,1
    - Dst: set_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1958,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:1958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1962,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1965,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1966,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1976,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1979,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:1979,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 3
    argNames:
    - type
    - new_bases
    - best_base
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_base == best_base)
      pos:
        line_end: 1965
        line_start: 1965
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (old_bases != NULL)
      pos:
        line_end: 1902
        line_start: 1902
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 1944
        line_start: 1944
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 1978
        line_start: 1978
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1981
      start: 1896
    functionDepth: 7
    functionLinenumber: 1896
    functionLinenumberEnd: 1981
    functionName: type_set_bases_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - remove_all_subclasses
    - update_all_slots
    - add_all_subclasses
    - ASSERT_TYPE_LOCK_HELD
    - lookup_tp_mro
    - PyList_GET_SIZE
    - PyArg_UnpackTuple
    - RARE_EVENT_INC
    - Py_XNewRef
    - set_tp_bases
    - Py_DECREF
    - lookup_tp_bases
    - mro_hierarchy
    - type_modified_unlocked
    - Py_NewRef
    - set_tp_mro
    - PyList_GET_ITEM
    - _PyType_CheckConsistency
    - assert
    linkageType: ''
    returnType: int
    signature: int type_set_bases_unlocked(PyTypeObject *type, PyObject *new_bases,
      PyTypeObject *best_base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1986,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1989,1
    - Dst: type_check_new_bases
      Src: /src/cpython/Objects/typeobject.c:1990,1
    - Dst: type_set_bases_unlocked
      Src: /src/cpython/Objects/typeobject.c:1992,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tp
    - new_bases
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1983
    functionDepth: 8
    functionLinenumber: 1983
    functionLinenumberEnd: 1996
    functionName: type_set_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - END_TYPE_LOCK
    - type_check_new_bases
    - PyTypeObject_CAST
    - BEGIN_TYPE_LOCK
    - type_set_bases_unlocked
    linkageType: ''
    returnType: int
    signature: int type_set_bases(PyObject *tp, PyObject *new_bases, void *Py_UNUSED(closure))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2001,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2002,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Objects/typeobject.c:2006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1998
    functionDepth: 5
    functionLinenumber: 1998
    functionLinenumberEnd: 2007
    functionName: type_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - lookup_tp_dict
    - PyDictProxy_New
    - PyTypeObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_dict(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2012,1
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/cpython/Objects/typeobject.c:2015,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2017,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2018,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2018,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:2019,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2022,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2024,1
    - Dst: descr_get
      Src: /src/cpython/Objects/typeobject.c:2024,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2009
    functionDepth: 8
    functionLinenumber: 2009
    functionLinenumberEnd: 2028
    functionName: type_get_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyTypeObject_CAST
    - _PyType_GetDocFromInternalDoc
    - lookup_tp_dict
    - Py_NewRef
    - Py_SETREF
    - PyDict_GetItemRef
    - Py_TYPE
    - descr_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_doc(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2033,1
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/cpython/Objects/typeobject.c:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2030
    functionDepth: 3
    functionLinenumber: 2030
    functionLinenumberEnd: 2035
    functionName: type_get_text_signature
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject_CAST
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_text_signature(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2040,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:2041,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2043,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2044,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2045,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2037
    functionDepth: 9
    functionLinenumber: 2037
    functionLinenumberEnd: 2046
    functionName: type_set_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - _Py_ID
    - PyTypeObject_CAST
    - PyType_Modified
    - lookup_tp_dict
    - check_set_special_type_attr
    linkageType: ''
    returnType: int
    signature: int type_set_doc(PyObject *tp, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2051,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2053,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2058,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2060,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2061,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2065,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2065,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2066,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2071,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2073,1
    - Dst: get
      Src: /src/cpython/Objects/typeobject.c:2073,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2078,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2078,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2084,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2048
    functionDepth: 9
    functionLinenumber: 2048
    functionLinenumberEnd: 2086
    functionName: type_get_annotate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - get
    - Py_DECREF
    - PyDict_SetItem
    - _Py_ID
    - PyTypeObject_CAST
    - Py_SETREF
    - Py_TYPE
    - PyErr_Format
    - PyDict_GetItemRef
    - PyType_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_annotate(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2091,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2093,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:2096,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2097,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typeobject.c:2103,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/typeobject.c:2103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2104,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2108,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2109,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:2109,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2110,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2112,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typeobject.c:2115,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2116,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2117,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2122,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 2108
        line_start: 2108
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2125
      start: 2088
    functionDepth: 9
    functionLinenumber: 2088
    functionLinenumberEnd: 2125
    functionName: type_set_annotate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Pop
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_SetString
    - PyTypeObject_CAST
    - _Py_ID
    - PyCallable_Check
    - PyType_Modified
    - Py_IsNone
    - PyErr_Format
    - PyDict_Check
    - PyType_GetDict
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: int
    signature: int type_set_annotate(PyObject *tp, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2130,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2132,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2137,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2139,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2140,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2144,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2145,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2151,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2153,1
    - Dst: get
      Src: /src/cpython/Objects/typeobject.c:2153,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typeobject.c:2157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2159,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/typeobject.c:2162,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/typeobject.c:2163,1
    - Dst: _PyObject_CallOneArg
      Src: /src/cpython/Objects/typeobject.c:2164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2167,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:2170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2171,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2176,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:2181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2183,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2185,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2186,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2188,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2194,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2127
    functionDepth: 10
    functionLinenumber: 2127
    functionLinenumberEnd: 2196
    functionName: type_get_annotations
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - get
    - Py_DECREF
    - PyObject_GetAttrString
    - PyDict_SetItem
    - Py_CLEAR
    - _Py_ID
    - PyTypeObject_CAST
    - PyType_Modified
    - PyCallable_Check
    - _PyLong_GetOne
    - Py_SETREF
    - Py_TYPE
    - PyDict_New
    - PyErr_Format
    - _PyObject_CallOneArg
    - PyDict_GetItemRef
    - PyDict_Check
    - PyType_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_annotations(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2201,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:2202,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2203,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2209,1
    - Dst: PyDict_ContainsString
      Src: /src/cpython/Objects/typeobject.c:2210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2212,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2218,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2218,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2220,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2220,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2229,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2233,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2233,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2239,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2239,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2242,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2242,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2251,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2254,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2254,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2256,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2259,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2259,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2261,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2198
    functionDepth: 9
    functionLinenumber: 2198
    functionLinenumberEnd: 2268
    functionName: type_set_annotations
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_ContainsString
    - Py_DECREF
    - PyDict_SetItem
    - _Py_ID
    - PyTypeObject_CAST
    - PyErr_SetString
    - PyType_Modified
    - PyErr_Format
    - PyType_GetDict
    - _PyType_HasFeature
    - PyDict_Pop
    linkageType: ''
    returnType: int
    signature: int type_set_annotations(PyObject *tp, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2273,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:2275,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2279,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2279,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2279,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:2280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2270
    functionDepth: 8
    functionLinenumber: 2270
    functionLinenumberEnd: 2283
    functionName: type_get_type_params
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - _Py_ID
    - PyTypeObject_CAST
    - lookup_tp_dict
    - PyDict_GetItemRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_type_params(PyObject *tp, void *Py_UNUSED(closure))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2288,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:2289,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2293,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2294,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2294,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2285
    functionDepth: 9
    functionLinenumber: 2285
    functionLinenumberEnd: 2300
    functionName: type_set_type_params
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - _Py_ID
    - PyTypeObject_CAST
    - PyType_Modified
    - lookup_tp_dict
    - check_set_special_type_attr
    linkageType: ''
    returnType: int
    signature: int type_set_type_params(PyObject *tp, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_RealIsInstance
      Src: /src/cpython/Objects/typeobject.c:2316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - instance
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2312
    functionDepth: 6
    functionLinenumber: 2312
    functionLinenumberEnd: 2317
    functionName: type___instancecheck___impl
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:2332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - subclass
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2328
    functionDepth: 6
    functionLinenumber: 2328
    functionLinenumberEnd: 2333
    functionName: type___subclasscheck___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_RealIsSubclass
    linkageType: ''
    returnType: int
    signature: int type___subclasscheck___impl(PyTypeObject *self, PyObject *subclass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2356,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:2360,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:2363,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:2365,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:2367,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2368,1
    - Dst: type_qualname
      Src: /src/cpython/Objects/typeobject.c:2371,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:2373,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:2378,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2378,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:2379,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:2382,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:2384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2353
    functionDepth: 10
    functionLinenumber: 2353
    functionLinenumberEnd: 2388
    functionName: type_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_ID
    - PyTypeObject_CAST
    - _PyUnicode_Equal
    - PyUnicode_Check
    - type_qualname
    - PyErr_Clear
    - Py_CLEAR
    - type_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_repr(PyObject *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2393,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:2395,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2401,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:2401,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2407,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:2407,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2408,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:2408,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:2409,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:2411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2412,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:2412,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:2413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2420,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2427,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/cpython/Objects/typeobject.c:2432,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/cpython/Objects/typeobject.c:2433,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/typeobject.c:2439,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2442,1
    - Dst: PyTypeObject*::tp_init
      Src: /src/cpython/Objects/typeobject.c:2444,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2446,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:2446,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2447,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2450,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:2450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2400
        line_start: 2400
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 2406
        line_start: 2406
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 2407
        line_start: 2407
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2445
        line_start: 2445
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2449
        line_start: 2449
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2454
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2454
    functionName: type_call
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyObject_TypeCheck
    - PyTuple_Check
    - _PyErr_Format
    - PyErr_SetString
    - PyTypeObject_CAST
    - PyTypeObject*::tp_new
    - _PyThreadState_GET
    - Py_NewRef
    - Py_SETREF
    - PyTuple_GET_ITEM
    - _Py_CheckFunctionResult
    - PyTypeObject*::tp_init
    - PyDict_Check
    - Py_TYPE
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2459,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2460,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2460,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2461,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2462,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2463,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/typeobject.c:2464,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:2466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 2458
        line_start: 2458
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_new == PyBaseObject_Type.tp_new)
      pos:
        line_end: 2460
        line_start: 2460
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_alloc == PyType_GenericAlloc)
      pos:
        line_end: 2461
        line_start: 2461
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_IS_GC(type))
      pos:
        line_end: 2459
        line_start: 2459
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_itemsize == 0)
      pos:
        line_end: 2462
        line_start: 2462
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2469
      start: 2456
    functionDepth: 1
    functionLinenumber: 2456
    functionLinenumberEnd: 2469
    functionName: _PyType_NewManagedObject
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_IS_GC
    - PyErr_NoMemory
    - assert
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_NewManagedObject(PyTypeObject *type)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/typeobject.c:2481,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Objects/typeobject.c:2483,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2485,1
    - Dst: _PyInlineValuesSize
      Src: /src/cpython/Objects/typeobject.c:2486,1
    - Dst: _PyObject_MallocWithType
      Src: /src/cpython/Objects/typeobject.c:2488,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:2490,1
    - Dst: PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2497,1
    - Dst: _PyObject_GC_Link
      Src: /src/cpython/Objects/typeobject.c:2498,1
    - Dst: memset
      Src: /src/cpython/Objects/typeobject.c:2502,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/typeobject.c:2505,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/typeobject.c:2508,1
    - Dst: _PyObject_InitInlineValues
      Src: /src/cpython/Objects/typeobject.c:2511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - type
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts:
    - condition: (type->tp_itemsize == 0)
      pos:
        line_end: 2484
        line_start: 2484
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2514
      start: 2471
    functionDepth: 2
    functionLinenumber: 2471
    functionLinenumberEnd: 2514
    functionName: _PyType_AllocNoTrack
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - memset
    - _PyType_PreHeaderSize
    - _PyObject_VAR_SIZE
    - _PyObject_GC_Link
    - _PyObject_InitVar
    - _PyObject_MallocWithType
    - PyType_IS_GC
    - _PyObject_InitInlineValues
    - _PyInlineValuesSize
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_AllocNoTrack
      Src: /src/cpython/Objects/typeobject.c:2519,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2524,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2516
    functionDepth: 3
    functionLinenumber: 2516
    functionLinenumberEnd: 2528
    functionName: PyType_GenericAlloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 5
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyType_IS_GC
    - _PyType_AllocNoTrack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2530
    functionDepth: 0
    functionLinenumber: 2530
    functionLinenumberEnd: 2534
    functionName: PyType_GenericNew
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Objects/typeobject.c:2541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyHeapTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2542
    functionName: _PyHeapType_GET_MEMBERS
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItemData
    linkageType: ''
    returnType: PyMemberDef
    signature: 'PyMemberDef *

      _PyHeapType_GET_MEMBERS(PyHeapTypeObject* type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2550,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:2551,1
    - Dst: visit
      Src: /src/cpython/Objects/typeobject.c:2557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - type
    - self
    - visit
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2544
    functionDepth: 2
    functionLinenumber: 2544
    functionLinenumberEnd: 2564
    functionName: traverse_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - visit
    - _PyHeapType_GET_MEMBERS
    linkageType: ''
    returnType: int
    signature: int traverse_slots(PyTypeObject *type, PyObject *self, visitproc visit,
      void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2574,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2577,1
    - Dst: traverse_slots
      Src: /src/cpython/Objects/typeobject.c:2578,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2583,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2587,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2589,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typeobject.c:2590,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:2596,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:2598,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:2611,1
    - Dst: basetraverse
      Src: /src/cpython/Objects/typeobject.c:2615,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (base)
      pos:
        line_end: 2582
        line_start: 2582
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base->tp_dictoffset == 0)
      pos:
        line_end: 2586
        line_start: 2586
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_dictoffset == -1)
      pos:
        line_end: 2588
        line_start: 2588
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2617
      start: 2566
    functionDepth: 3
    functionLinenumber: 2566
    functionLinenumberEnd: 2617
    functionName: subtype_traverse
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ComputedDictPointer
    - Py_SIZE
    - basetraverse
    - traverse_slots
    - Py_VISIT
    - PyObject_VisitManagedDict
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int subtype_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2625,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:2626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - type
    - self
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2619
    functionDepth: 2
    functionLinenumber: 2619
    functionLinenumberEnd: 2637
    functionName: clear_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_DECREF
    - _PyHeapType_GET_MEMBERS
    linkageType: ''
    returnType: void
    signature: void clear_slots(PyTypeObject *type, PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2647,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2650,1
    - Dst: clear_slots
      Src: /src/cpython/Objects/typeobject.c:2651,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2653,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typeobject.c:2660,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2663,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:2668,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2670,1
    - Dst: baseclear
      Src: /src/cpython/Objects/typeobject.c:2674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (base)
      pos:
        line_end: 2652
        line_start: 2652
        source_file: /src/cpython/Objects/typeobject.c
    - condition: "((base->tp_flags & Py_TPFLAGS_INLINE_VALUES) ==\n                   (type->tp_flags
        & Py_TPFLAGS_INLINE_VALUES))"
      pos:
        line_end: 2663
        line_start: 2662
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2676
      start: 2639
    functionDepth: 6
    functionLinenumber: 2639
    functionLinenumberEnd: 2676
    functionName: subtype_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - baseclear
    - Py_CLEAR
    - _PyObject_ComputedDictPointer
    - Py_SIZE
    - PyObject_ClearManagedDict
    - clear_slots
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int subtype_clear(PyObject *self)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2686,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:2687,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2691,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/typeobject.c:2698,1
    - Dst: PyTypeObject*::tp_del
      Src: /src/cpython/Objects/typeobject.c:2702,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:2703,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2712,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2716,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2723,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2726,1
    - Dst: basedealloc
      Src: /src/cpython/Objects/typeobject.c:2727,1
    - Dst: _Py_DECREF_TYPE
      Src: /src/cpython/Objects/typeobject.c:2734,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/typeobject.c:2745,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2751,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2757,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/typeobject.c:2758,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:2762,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:2774,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2778,1
    - Dst: PyTypeObject*::tp_del
      Src: /src/cpython/Objects/typeobject.c:2779,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:2780,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:2784,1
    - Dst: _PyWeakref_ClearWeakRefsNoCallbacks
      Src: /src/cpython/Objects/typeobject.c:2792,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2799,1
    - Dst: clear_slots
      Src: /src/cpython/Objects/typeobject.c:2800,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2802,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typeobject.c:2807,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:2810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2814,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2821,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2826,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2827,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2835,1
    - Dst: basedealloc
      Src: /src/cpython/Objects/typeobject.c:2836,1
    - Dst: _Py_DECREF_TYPE
      Src: /src/cpython/Objects/typeobject.c:2843,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (basedealloc)
      pos:
        line_end: 2725
        line_start: 2725
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 2750
        line_start: 2750
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (basedealloc)
      pos:
        line_end: 2834
        line_start: 2834
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 2711
        line_start: 2711
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0)
      pos:
        line_end: 2722
        line_start: 2722
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 2801
        line_start: 2801
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2845
      start: 2678
    functionDepth: 6
    functionLinenumber: 2678
    functionLinenumberEnd: 2845
    functionName: subtype_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ComputedDictPointer
    - _PyObject_GC_TRACK
    - PyObject_ClearManagedDict
    - PyObject_CallFinalizerFromDealloc
    - PyObject_GC_UnTrack
    - PyObject_ClearWeakRefs
    - _PyObject_GC_UNTRACK
    - _PyWeakref_ClearWeakRefsNoCallbacks
    - clear_slots
    - _PyObject_ASSERT
    - Py_DECREF
    - Py_SIZE
    - PyTypeObject*::tp_del
    - Py_TYPE
    - _PyType_IS_GC
    - _Py_DECREF_TYPE
    - basedealloc
    - Py_REFCNT
    - assert
    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: 2861
      start: 2851
    functionDepth: 0
    functionLinenumber: 2851
    functionLinenumberEnd: 2861
    functionName: type_is_subtype_base_chain
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:2871,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:2871,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:2872,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:2875,1
    - Dst: type_is_subtype_base_chain
      Src: /src/cpython/Objects/typeobject.c:2883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - a_mro
    - a
    - b
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyTuple_Check(a_mro))
      pos:
        line_end: 2870
        line_start: 2870
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2886
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2886
    functionName: is_subtype_with_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - type_is_subtype_base_chain
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: int
    signature: int is_subtype_with_mro(PyObject *a_mro, PyTypeObject *a, PyTypeObject
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2888
    functionDepth: 2
    functionLinenumber: 2888
    functionLinenumberEnd: 2892
    functionName: PyType_IsSubtype
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 18
    functionsReached:
    - is_subtype_with_mro
    linkageType: ''
    returnType: int
    signature: int PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:2914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2917,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2918,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:2918,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2909
    functionDepth: 1
    functionLinenumber: 2909
    functionLinenumberEnd: 2922
    functionName: _PyObject_LookupSpecial
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 12
    functionsReached:
    - Py_SETREF
    - f
    - _PyType_LookupRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_LookupSpecial(PyObject *self, PyObject *attr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:2932,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:2933,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2933,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:2934,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:2939,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2939,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2944,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:2946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2946,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2950,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:2951,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - attr
    - method_and_self
    argTypes:
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2929
    functionDepth: 1
    functionLinenumber: 2929
    functionLinenumberEnd: 2955
    functionName: _PyObject_LookupSpecialMethod
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - f
    - _PyType_LookupStackRefAndVersion
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLEAR
    - Py_TYPE
    - _PyType_HasFeature
    linkageType: ''
    returnType: int
    signature: int _PyObject_LookupSpecialMethod(PyObject *attr, _PyStackRef *method_and_self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:2961,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2961,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:2962,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:2964,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:2969,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:2970,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2970,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2975,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:2977,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2977,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2978,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/typeobject.c:2981,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:2983,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:2987,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - self
    - attr
    - out
    - raise_attribute_error
    argTypes:
    - PyObject*
    - PyObject*
    - _PyStackRef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2957
    functionDepth: 1
    functionLinenumber: 2957
    functionLinenumberEnd: 2990
    functionName: lookup_method_ex
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - f
    - _PyType_LookupStackRefAndVersion
    - PyErr_Clear
    - PyErr_SetObject
    - PyStackRef_FromPyObjectSteal
    - PyErr_ExceptionMatches
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsNull
    - PyStackRef_CLEAR
    - Py_TYPE
    - _PyType_HasFeature
    linkageType: ''
    returnType: int
    signature: "int lookup_method_ex(PyObject *self, PyObject *attr, _PyStackRef *out,\n
      \                int raise_attribute_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_method_ex
      Src: /src/cpython/Objects/typeobject.c:2995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - out
    argTypes:
    - PyObject*
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2996
      start: 2992
    functionDepth: 2
    functionLinenumber: 2992
    functionLinenumberEnd: 2996
    functionName: lookup_maybe_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_method_ex
    linkageType: ''
    returnType: int
    signature: int lookup_maybe_method(PyObject *self, PyObject *attr, _PyStackRef
      *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_method_ex
      Src: /src/cpython/Objects/typeobject.c:3001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - out
    argTypes:
    - PyObject*
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2998
    functionDepth: 2
    functionLinenumber: 2998
    functionLinenumberEnd: 3002
    functionName: lookup_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_method_ex
    linkageType: ''
    returnType: int
    signature: int lookup_method(PyObject *self, PyObject *attr, _PyStackRef *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/typeobject.c:3016,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/typeobject.c:3017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tstate
    - unbound
    - func
    - args
    - nargs
    argTypes:
    - PyThreadState*
    - int
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3018
    functionName: vectorcall_unbound
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - _PyObject_VectorcallTstate
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nvectorcall_unbound(PyThreadState *tstate, int unbound,
      PyObject *func,\n                   PyObject *const *args, Py_ssize_t nargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/typeobject.c:3024,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:3027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unbound
    - func
    - self
    argTypes:
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3020
    functionDepth: 1
    functionLinenumber: 3020
    functionLinenumberEnd: 3029
    functionName: call_unbound_noarg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_unbound_noarg(int unbound, PyObject *func, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:3036,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3038,1
    - Dst: lookup_method
      Src: /src/cpython/Objects/typeobject.c:3040,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3042,1
    - Dst: call_unbound_noarg
      Src: /src/cpython/Objects/typeobject.c:3043,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3033
    functionDepth: 3
    functionLinenumber: 3033
    functionLinenumberEnd: 3047
    functionName: call_method_noarg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - lookup_method
    - call_unbound_noarg
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - _PyThreadState_PopCStackRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_method_noarg(PyObject *self, PyObject *attr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:3052,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3054,1
    - Dst: lookup_method
      Src: /src/cpython/Objects/typeobject.c:3056,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3058,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/cpython/Objects/typeobject.c:3060,1
    - Dst: _PyObject_Call
      Src: /src/cpython/Objects/typeobject.c:3063,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3066,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - attr
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3049
    functionDepth: 3
    functionLinenumber: 3049
    functionLinenumberEnd: 3068
    functionName: call_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Call_Prepend
    - _PyObject_Call
    - _PyThreadState_GET
    - lookup_method
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - _PyThreadState_PopCStackRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_method(PyObject *self, PyObject *attr, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3078,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:3080,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3084,1
    - Dst: lookup_method
      Src: /src/cpython/Objects/typeobject.c:3085,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3087,1
    - Dst: vectorcall_unbound
      Src: /src/cpython/Objects/typeobject.c:3088,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - name
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (nargs >= 1)
      pos:
        line_end: 3077
        line_start: 3077
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3092
      start: 3075
    functionDepth: 3
    functionLinenumber: 3075
    functionLinenumberEnd: 3092
    functionName: vectorcall_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - lookup_method
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - vectorcall_unbound
    - assert
    - _PyThreadState_PopCStackRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      vectorcall_method(PyObject *name, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3100,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3104,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:3105,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3106,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3108,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:3109,1
    - Dst: vectorcall_unbound
      Src: /src/cpython/Objects/typeobject.c:3114,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - tstate
    - name
    - args
    - nargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (nargs >= 1)
      pos:
        line_end: 3099
        line_start: 3099
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3117
      start: 3096
    functionDepth: 3
    functionLinenumber: 3096
    functionLinenumberEnd: 3117
    functionName: vectorcall_maybe
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - vectorcall_unbound
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - _PyThreadState_PopCStackRef
    - assert
    - lookup_maybe_method
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nvectorcall_maybe(PyThreadState *tstate, PyObject *name,\n
      \                PyObject *const *args, Py_ssize_t nargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:3126,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3128,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:3131,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3132,1
    - Dst: call_unbound_noarg
      Src: /src/cpython/Objects/typeobject.c:3137,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - attr
    - attr_is_none
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3141
      start: 3123
    functionDepth: 3
    functionLinenumber: 3123
    functionLinenumberEnd: 3141
    functionName: maybe_call_special_no_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - call_unbound_noarg
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - _PyThreadState_PopCStackRef
    - lookup_maybe_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      maybe_call_special_no_args(PyObject *self, PyObject *attr, int *attr_is_none)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:3147,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3149,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:3152,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3153,1
    - Dst: vectorcall_unbound
      Src: /src/cpython/Objects/typeobject.c:3159,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - self
    - attr
    - arg
    - attr_is_none
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3163
      start: 3143
    functionDepth: 3
    functionLinenumber: 3143
    functionLinenumberEnd: 3163
    functionName: maybe_call_special_one_arg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PopCStackRef
    - _PyThreadState_GET
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - vectorcall_unbound
    - lookup_maybe_method
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmaybe_call_special_one_arg(PyObject *self, PyObject *attr,
      PyObject *arg,\n                           int *attr_is_none)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_call_special_no_args
      Src: /src/cpython/Objects/typeobject.c:3168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3165
    functionDepth: 4
    functionLinenumber: 3165
    functionLinenumberEnd: 3169
    functionName: _PyObject_MaybeCallSpecialNoArgs
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - maybe_call_special_no_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_MaybeCallSpecialNoArgs(PyObject *self, PyObject *attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_call_special_one_arg
      Src: /src/cpython/Objects/typeobject.c:3174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3175
      start: 3171
    functionDepth: 4
    functionLinenumber: 3171
    functionLinenumberEnd: 3175
    functionName: _PyObject_MaybeCallSpecialOneArg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - maybe_call_special_one_arg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_MaybeCallSpecialOneArg(PyObject *self, PyObject *attr, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3209,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tuple
    - whence
    - o
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3205
    functionDepth: 1
    functionLinenumber: 3205
    functionLinenumberEnd: 3216
    functionName: tail_contains
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int tail_contains(PyObject *tuple, Py_ssize_t whence, PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:3223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:3223,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/typeobject.c:3224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3218
    functionDepth: 3
    functionLinenumber: 3218
    functionLinenumberEnd: 3227
    functionName: class_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyObject_Repr
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      class_name(PyObject *cls)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3236,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3238,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3240,1
    - Dst: class_name
      Src: /src/cpython/Objects/typeobject.c:3241,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:3243,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3229
    functionDepth: 4
    functionLinenumber: 3229
    functionLinenumberEnd: 3258
    functionName: check_duplicates
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - class_name
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int check_duplicates(PyObject *tuple)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:3275,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3280,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3281,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:3282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3283,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3288,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/typeobject.c:3290,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:3293,1
    - Dst: class_name
      Src: /src/cpython/Objects/typeobject.c:3294,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:3297,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/typeobject.c:3298,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3306,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/typeobject.c:3309,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3310,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3317,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - to_merge
    - to_merge_size
    - remain
    argTypes:
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3269
    functionDepth: 10
    functionLinenumber: 3269
    functionLinenumberEnd: 3318
    functionName: set_mro_error
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_SetItem
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyDict_GET_SIZE
    - class_name
    - PyOS_snprintf
    - PyErr_SetString
    - PyDict_Next
    - PyUnicode_AsUTF8
    - PyTuple_GET_ITEM
    - PyDict_New
    - PyUnicode_Check
    linkageType: ''
    returnType: void
    signature: void set_mro_error(PyObject **to_merge, Py_ssize_t to_merge_size, Py_ssize_t
      *remain)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/cpython/Objects/typeobject.c:3331,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:3333,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3346,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3358,1
    - Dst: tail_contains
      Src: /src/cpython/Objects/typeobject.c:3361,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/typeobject.c:3364,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3370,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3371,1
    - Dst: set_mro_error
      Src: /src/cpython/Objects/typeobject.c:3380,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:3385,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: 3388
      start: 3320
    functionDepth: 11
    functionLinenumber: 3320
    functionLinenumberEnd: 3388
    functionName: pmerge
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyList_Append
    - set_mro_error
    - PyMem_Free
    - PyTuple_GET_ITEM
    - PyMem_New
    - tail_contains
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int pmerge(PyObject *acc, PyObject **to_merge, Py_ssize_t to_merge_size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:3393,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:3395,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:3396,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:3400,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3401,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:3403,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3403,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3404,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3405,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3410,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:3410,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3410,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:3417,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3417,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3418,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3419,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:3420,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3426,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:3426,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3428,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3429,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:3429,1
    - Dst: check_duplicates
      Src: /src/cpython/Objects/typeobject.c:3435,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/typeobject.c:3447,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:3449,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:3454,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3454,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3455,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:3459,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:3461,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3465,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:3465,1
    - Dst: pmerge
      Src: /src/cpython/Objects/typeobject.c:3466,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:3467,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:3469,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyTuple_Check(lookup_tp_mro(base)))
      pos:
        line_end: 3409
        line_start: 3409
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3472
      start: 3390
    functionDepth: 12
    functionLinenumber: 3390
    functionLinenumberEnd: 3472
    functionName: mro_implementation_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyMem_New
    - ASSERT_TYPE_LOCK_HELD
    - _PyType_IsReady
    - PyMem_Free
    - lookup_tp_mro
    - Py_CLEAR
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyType_Ready
    - PyTuple_GET_ITEM
    - PyErr_Format
    - pmerge
    - lookup_tp_bases
    - PyTuple_Check
    - Py_NewRef
    - PyErr_NoMemory
    - PyTuple_SET_ITEM
    - _PyType_CAST
    - PyList_SET_ITEM
    - check_duplicates
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_implementation_unlocked(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:3478,1
    - Dst: mro_implementation_unlocked
      Src: /src/cpython/Objects/typeobject.c:3479,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:3480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3474
    functionDepth: 13
    functionLinenumber: 3474
    functionLinenumberEnd: 3482
    functionName: mro_implementation
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - mro_implementation_unlocked
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_implementation(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mro_implementation
      Src: /src/cpython/Objects/typeobject.c:3495,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:3496,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:3497,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/typeobject.c:3497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3490
    functionDepth: 14
    functionLinenumber: 3490
    functionLinenumberEnd: 3500
    functionName: type_mro_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - PySequence_List
    - mro_implementation
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_mro_impl(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: solid_base
      Src: /src/cpython/Objects/typeobject.c:3508,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3510,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3512,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:3513,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3514,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:3520,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3520,1
    - Dst: solid_base
      Src: /src/cpython/Objects/typeobject.c:3520,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - type
    - mro
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3502
    functionDepth: 2
    functionLinenumber: 3502
    functionLinenumberEnd: 3530
    functionName: mro_check
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - lookup_tp_mro
    - is_subtype_with_mro
    - PyTuple_GET_ITEM
    - PyErr_Format
    - solid_base
    linkageType: ''
    returnType: int
    signature: int mro_check(PyTypeObject *type, PyObject *mro)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:3552,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:3554,1
    - Dst: call_method_noarg
      Src: /src/cpython/Objects/typeobject.c:3559,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:3559,1
    - Dst: mro_implementation_unlocked
      Src: /src/cpython/Objects/typeobject.c:3564,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/typeobject.c:3569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3570,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3576,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3577,1
    - Dst: mro_check
      Src: /src/cpython/Objects/typeobject.c:3581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3546
    functionDepth: 13
    functionLinenumber: 3546
    functionLinenumberEnd: 3586
    functionName: mro_invoke
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - mro_check
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _Py_ID
    - PySequence_Tuple
    - Py_IS_TYPE
    - mro_implementation_unlocked
    - ASSERT_TYPE_LOCK_HELD
    - PyErr_Format
    - call_method_noarg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_invoke(PyTypeObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:3613,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:3621,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3621,1
    - Dst: mro_invoke
      Src: /src/cpython/Objects/typeobject.c:3622,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3630,1
    - Dst: set_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3634,1
    - Dst: type_mro_modified
      Src: /src/cpython/Objects/typeobject.c:3636,1
    - Dst: type_mro_modified
      Src: /src/cpython/Objects/typeobject.c:3639,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:3639,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:3643,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3648,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - type
    - initial
    - p_old_mro
    argTypes:
    - PyTypeObject*
    - int
    - PyObject**
    assertStmts:
    - condition: (type->tp_version_tag)
      pos:
        line_end: 3647
        line_start: 3647
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3657
      start: 3610
    functionDepth: 14
    functionLinenumber: 3610
    functionLinenumberEnd: 3657
    functionName: mro_internal
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - set_tp_mro
    - assert
    - Py_DECREF
    - lookup_tp_bases
    - type_modified_unlocked
    - mro_invoke
    - Py_XNewRef
    - ASSERT_TYPE_LOCK_HELD
    - type_mro_modified
    - lookup_tp_mro
    linkageType: ''
    returnType: int
    signature: int mro_internal(PyTypeObject *type, int initial, PyObject **p_old_mro)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3668,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:3668,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3669,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3670,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3674,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:3675,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3676,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:3683,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:3684,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:3687,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3688,1
    - Dst: solid_base
      Src: /src/cpython/Objects/typeobject.c:3693,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:3698,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:3700,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3705,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3712,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - bases
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 3667
        line_start: 3667
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (n > 0)
      pos:
        line_end: 3669
        line_start: 3669
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base != NULL)
      pos:
        line_end: 3711
        line_start: 3711
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3715
      start: 3662
    functionDepth: 3
    functionLinenumber: 3662
    functionLinenumberEnd: 3715
    functionName: find_best_base
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - PyType_IsSubtype
    - PyTuple_Check
    - PyErr_SetString
    - PyType_Ready
    - solid_base
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyType_IsReady
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      find_best_base(PyObject *bases)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3717
    functionDepth: 0
    functionLinenumber: 3717
    functionLinenumberEnd: 3724
    functionName: shape_differs
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int shape_differs(PyTypeObject *t1, PyTypeObject *t2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: solid_base
      Src: /src/cpython/Objects/typeobject.c:3732,1
    - Dst: shape_differs
      Src: /src/cpython/Objects/typeobject.c:3737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3743
    functionName: solid_base
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - shape_differs
    - solid_base
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      solid_base(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:3794,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:3796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3791
    functionDepth: 2
    functionLinenumber: 3791
    functionLinenumberEnd: 3802
    functionName: slot_update_new_chunk
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: slot_update_chunk_t
    signature: 'slot_update_chunk_t *

      slot_update_new_chunk(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:3810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - updates
    argTypes:
    - slot_update_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3804
    functionDepth: 2
    functionLinenumber: 3804
    functionLinenumberEnd: 3813
    functionName: slot_update_free_chunks
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void slot_update_free_chunks(slot_update_t *updates)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: slot_update_new_chunk
      Src: /src/cpython/Objects/typeobject.c:3823,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3835,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - updates
    - type
    - slot_ptr
    - slot_value
    argTypes:
    - slot_update_t*
    - PyTypeObject*
    - void**
    - void*
    assertStmts:
    - condition: (updates->head->n <= SLOT_UPDATE_CHUNK_SIZE)
      pos:
        line_end: 3834
        line_start: 3834
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3837
      start: 3815
    functionDepth: 3
    functionLinenumber: 3815
    functionLinenumberEnd: 3837
    functionName: queue_slot_update
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - slot_update_new_chunk
    linkageType: ''
    returnType: int
    signature: "int queue_slot_update(slot_update_t *updates, PyTypeObject *type,\n
      \                 void **slot_ptr, void *slot_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3842,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:3842,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:3850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - updates
    argTypes:
    - slot_update_t*
    assertStmts:
    - condition: (types_world_is_stopped())
      pos:
        line_end: 3841
        line_start: 3841
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3855
      start: 3839
    functionDepth: 3
    functionLinenumber: 3839
    functionLinenumberEnd: 3855
    functionName: apply_slot_updates
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_clear_flags
    - assert
    - types_world_is_stopped
    linkageType: ''
    returnType: void
    signature: void apply_slot_updates(slot_update_t *updates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_lock_prevent_release
      Src: /src/cpython/Objects/typeobject.c:3878,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:3879,1
    - Dst: apply_slot_updates
      Src: /src/cpython/Objects/typeobject.c:3880,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:3881,1
    - Dst: type_lock_allow_release
      Src: /src/cpython/Objects/typeobject.c:3882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - updates
    argTypes:
    - slot_update_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3857
    functionDepth: 4
    functionLinenumber: 3857
    functionLinenumberEnd: 3883
    functionName: apply_type_slot_updates
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_lock_allow_release
    - types_start_world
    - type_lock_prevent_release
    - types_stop_world
    - apply_slot_updates
    linkageType: ''
    returnType: void
    signature: void apply_type_slot_updates(slot_update_t *updates)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3912
    functionDepth: 0
    functionLinenumber: 3912
    functionLinenumberEnd: 3922
    functionName: get_builtin_base_with_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      get_builtin_base_with_dict(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_Lookup
      Src: /src/cpython/Objects/typeobject.c:3929,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:3929,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/typeobject.c:3930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3934
      start: 3924
    functionDepth: 1
    functionLinenumber: 3924
    functionLinenumberEnd: 3934
    functionName: get_dict_descriptor
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_Lookup
    - _Py_ID
    - PyDescr_IsData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dict_descriptor(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3939,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3936
    functionDepth: 1
    functionLinenumber: 3936
    functionLinenumberEnd: 3942
    functionName: raise_dict_descr_error
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void raise_dict_descr_error(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_builtin_base_with_dict
      Src: /src/cpython/Objects/typeobject.c:3949,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3949,1
    - Dst: get_dict_descriptor
      Src: /src/cpython/Objects/typeobject.c:3952,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:3954,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3957,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:3959,1
    - Dst: func
      Src: /src/cpython/Objects/typeobject.c:3962,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3962,1
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/typeobject.c:3964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3944
    functionDepth: 14
    functionLinenumber: 3944
    functionLinenumberEnd: 3965
    functionName: subtype_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - get_builtin_base_with_dict
    - func
    - get_dict_descriptor
    - PyObject_GenericGetDict
    - raise_dict_descr_error
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subtype_dict(PyObject *obj, void *context)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:3970,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3971,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3973,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3976,1
    - Dst: _PyObject_SetManagedDict
      Src: /src/cpython/Objects/typeobject.c:3977,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:3979,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3981,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/typeobject.c:3985,1
    - Dst: _PyObject_XSetRefDelayed
      Src: /src/cpython/Objects/typeobject.c:3988,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:3988,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/typeobject.c:3989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3967
    functionDepth: 5
    functionLinenumber: 3967
    functionLinenumberEnd: 3991
    functionName: _PyObject_SetDict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyObject_ComputedDictPointer
    - _PyObject_XSetRefDelayed
    - PyErr_SetString
    - _PyObject_SetManagedDict
    - Py_NewRef
    - PyErr_Format
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_SetDict(PyObject *obj, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_builtin_base_with_dict
      Src: /src/cpython/Objects/typeobject.c:3998,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3998,1
    - Dst: get_dict_descriptor
      Src: /src/cpython/Objects/typeobject.c:4001,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:4003,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4006,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:4008,1
    - Dst: func
      Src: /src/cpython/Objects/typeobject.c:4011,1
    - Dst: _PyObject_SetDict
      Src: /src/cpython/Objects/typeobject.c:4013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - obj
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 3993
    functionDepth: 6
    functionLinenumber: 3993
    functionLinenumberEnd: 4014
    functionName: subtype_setdict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - get_builtin_base_with_dict
    - func
    - get_dict_descriptor
    - raise_dict_descr_error
    - _PyObject_SetDict
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int subtype_setdict(PyObject *obj, PyObject *value, void *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4021,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4024,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:4028,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:4031,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4040
      start: 4016
    functionDepth: 1
    functionLinenumber: 4016
    functionLinenumberEnd: 4040
    functionName: subtype_getweakref
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    - Py_TYPE
    - _PyObject_ASSERT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subtype_getweakref(PyObject *obj, void *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4056,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4059,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/cpython/Objects/typeobject.c:4062,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4068
      start: 4053
    functionDepth: 4
    functionLinenumber: 4053
    functionLinenumberEnd: 4068
    functionName: valid_identifier
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_IsIdentifier
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int valid_identifier(PyObject *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4073,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:4073,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4074,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:4074,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4076,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4077,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4078,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4083,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4084,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - cls
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 4072
        line_start: 4072
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 4073
        line_start: 4073
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4090
      start: 4070
    functionDepth: 1
    functionLinenumber: 4070
    functionLinenumberEnd: 4090
    functionName: type_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyErr_SetString
    - PyDict_Check
    - assert
    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: 4097
      start: 4093
    functionDepth: 0
    functionLinenumber: 4093
    functionLinenumberEnd: 4097
    functionName: PyType_GetFlags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyType_GetFlags(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Objects/typeobject.c:4103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4104
      start: 4100
    functionDepth: 1
    functionLinenumber: 4100
    functionLinenumberEnd: 4104
    functionName: PyType_SUPPORTS_WEAKREFS
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 6
    functionsReached:
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: int
    signature: int PyType_SUPPORTS_WEAKREFS(PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4121,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4124,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4125,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:4126,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:4128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - metatype
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4108
    functionDepth: 3
    functionLinenumber: 4108
    functionLinenumberEnd: 4141
    functionName: _PyType_CalculateMetaclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyType_IsSubtype
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - Py_TYPE
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _PyType_CalculateMetaclass(PyTypeObject *metatype, PyObject *bases)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4172,1
    - Dst: valid_identifier
      Src: /src/cpython/Objects/typeobject.c:4173,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4176,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4176,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4177,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4177,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4179,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4186,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 4175
        line_start: 4175
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4197
      start: 4166
    functionDepth: 5
    functionLinenumber: 4166
    functionLinenumberEnd: 4197
    functionName: type_new_visit_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PyErr_SetString
    - _PyUnicode_Equal
    - valid_identifier
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int type_new_visit_slots(type_new_ctx *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:4211,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4218,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4219,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4219,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4220,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4220,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Objects/typeobject.c:4225,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4229,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:4231,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4239,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4239,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4240,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4240,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4241,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4241,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4243,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4252,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/typeobject.c:4254,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/typeobject.c:4258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4259,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4264,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4268,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - dict
    argTypes:
    - type_new_ctx*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_GET_SIZE(tuple) == new_nslot)
      pos:
        line_end: 4263
        line_start: 4263
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (j == new_nslot)
      pos:
        line_end: 4251
        line_start: 4251
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4270
      start: 4204
    functionDepth: 10
    functionLinenumber: 4204
    functionLinenumberEnd: 4270
    functionName: type_new_copy_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_Sort
    - PyTuple_GET_SIZE
    - _Py_ID
    - PyDict_Contains
    - PyList_SET_ITEM
    - PyList_AsTuple
    - _PyUnicode_Equal
    - _Py_Mangle
    - PyTuple_GET_ITEM
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_new_copy_slots(type_new_ctx *ctx, PyObject *dict)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4276,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4282,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:4287,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4273
    functionDepth: 1
    functionLinenumber: 4273
    functionLinenumberEnd: 4309
    functionName: type_new_slots_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_CAST
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: void
    signature: void type_new_slots_bases(type_new_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4317,1
    - Dst: type_new_visit_slots
      Src: /src/cpython/Objects/typeobject.c:4323,1
    - Dst: type_new_copy_slots
      Src: /src/cpython/Objects/typeobject.c:4327,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4331,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:4331,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:4333,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4334,1
    - Dst: type_new_slots_bases
      Src: /src/cpython/Objects/typeobject.c:4337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - dict
    argTypes:
    - type_new_ctx*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(new_slots))
      pos:
        line_end: 4330
        line_start: 4330
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4339
      start: 4312
    functionDepth: 11
    functionLinenumber: 4312
    functionLinenumberEnd: 4339
    functionName: type_new_slots_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTuple_GET_SIZE
    - type_new_visit_slots
    - type_new_copy_slots
    - Py_XSETREF
    - PyErr_Format
    - type_new_slots_bases
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int type_new_slots_impl(type_new_ctx *ctx, PyObject *dict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: type_new_slots_impl
      Src: /src/cpython/Objects/typeobject.c:4362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - dict
    argTypes:
    - type_new_ctx*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4367
      start: 4342
    functionDepth: 12
    functionLinenumber: 4342
    functionLinenumberEnd: 4367
    functionName: type_new_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_new_slots_impl
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t type_new_slots(type_new_ctx *ctx, PyObject *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:4377,1
    - Dst: type_set_flags
      Src: /src/cpython/Objects/typeobject.c:4386,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:4396,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4396,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4397,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4407,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/typeobject.c:4413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4370
    functionDepth: 4
    functionLinenumber: 4370
    functionLinenumberEnd: 4417
    functionName: type_new_alloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - set_tp_bases
    - type_set_flags
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    - _PyObject_AssignUniqueId
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      type_new_alloc(type_new_ctx *ctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/typeobject.c:4424,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:4428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - type_new_ctx*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4420
    functionDepth: 5
    functionLinenumber: 4420
    functionLinenumberEnd: 4434
    functionName: type_new_set_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - strlen
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: int
    signature: int type_new_set_name(const type_new_ctx *ctx, PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:4441,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4441,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Objects/typeobject.c:4449,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:4455,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4455,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:4457,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4461
      start: 4438
    functionDepth: 9
    functionLinenumber: 4438
    functionLinenumberEnd: 4461
    functionName: type_new_set_module
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyEval_GetGlobals
    - Py_DECREF
    - _Py_ID
    - PyDict_Contains
    - PyDict_GetItemRef
    linkageType: ''
    returnType: int
    signature: int type_new_set_module(PyObject *dict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:4471,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4471,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4475,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4476,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4479,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:4483,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4483,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - type
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4466
    functionDepth: 8
    functionLinenumber: 4466
    functionLinenumberEnd: 4491
    functionName: type_new_set_ht_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyDict_DelItem
    - Py_NewRef
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_GetItemRef
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int type_new_set_ht_name(PyTypeObject *type, PyObject *dict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/typeobject.c:4500,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4500,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4502,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4508,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/typeobject.c:4513,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:4519,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:4520,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:4522,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:4526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - type
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4497
    functionDepth: 7
    functionLinenumber: 4497
    functionLinenumberEnd: 4529
    functionName: type_new_set_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - strlen
    - PyErr_Occurred
    - _Py_ID
    - memcpy
    - PyUnicode_AsUTF8
    - PyUnicode_Check
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int type_new_set_doc(PyTypeObject *type, PyObject* dict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/typeobject.c:4535,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4537,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typeobject.c:4542,1
    - Dst: PyStaticMethod_New
      Src: /src/cpython/Objects/typeobject.c:4546,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:4550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4554,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dict
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4556
      start: 4532
    functionDepth: 9
    functionLinenumber: 4532
    functionLinenumberEnd: 4556
    functionName: type_new_staticmethod
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyStaticMethod_New
    - PyDict_GetItemWithError
    - PyFunction_Check
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int type_new_staticmethod(PyObject *dict, PyObject *attr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/typeobject.c:4562,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4564,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typeobject.c:4569,1
    - Dst: PyClassMethod_New
      Src: /src/cpython/Objects/typeobject.c:4573,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:4578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4579,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dict
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4584
      start: 4559
    functionDepth: 9
    functionLinenumber: 4559
    functionLinenumberEnd: 4584
    functionName: type_new_classmethod
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyFunction_Check
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_Occurred
    - PyClassMethod_New
    linkageType: ''
    returnType: int
    signature: int type_new_classmethod(PyObject *dict, PyObject *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/typeobject.c:4594,1
    - Dst: PyDescr_NewGetSet
      Src: /src/cpython/Objects/typeobject.c:4598,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/typeobject.c:4602,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:4607,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:4607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - interp
    - cache
    - getset_def
    - dict
    argTypes:
    - PyInterpreterState*
    - PyObject**
    - PyGetSetDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4611
      start: 4587
    functionDepth: 7
    functionLinenumber: 4587
    functionLinenumberEnd: 4611
    functionName: type_add_common_descriptor
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyDescr_NewGetSet
    - PyDict_SetDefaultRef
    - PyDescr_NAME
    - PyMutex_Unlock
    linkageType: ''
    returnType: int
    signature: "int type_add_common_descriptor(PyInterpreterState *interp,\n                           PyObject
      **cache,\n                           PyGetSetDef *getset_def,\n                           PyObject
      *dict)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:4620,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4621,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/typeobject.c:4623,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4624,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4632,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:4632,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4633,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:4633,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4640,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:4641,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4645,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:4646,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:4652,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:4654,1
    - Dst: type_add_common_descriptor
      Src: /src/cpython/Objects/typeobject.c:4657,1
    - Dst: type_add_common_descriptor
      Src: /src/cpython/Objects/typeobject.c:4667,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - ctx
    - type
    - dict
    argTypes:
    - type_new_ctx*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (strcmp(mp->name, "__dict__") != 0)
      pos:
        line_end: 4631
        line_start: 4631
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (strcmp(mp->name, "__weakref__") != 0)
      pos:
        line_end: 4632
        line_start: 4632
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF) == 0)
      pos:
        line_end: 4639
        line_start: 4639
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0)
      pos:
        line_end: 4644
        line_start: 4644
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4678
      start: 4614
    functionDepth: 8
    functionLinenumber: 4614
    functionLinenumberEnd: 4678
    functionName: type_new_descriptors
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyHeapType_GET_MEMBERS
    - type_add_common_descriptor
    - _PyInterpreterState_GET
    - PyUnicode_AsUTF8
    - strcmp
    - PyTuple_GET_ITEM
    - type_add_flags
    - assert
    linkageType: ''
    returnType: int
    signature: int type_new_descriptors(const type_new_ctx *ctx, PyTypeObject *type,
      PyObject *dict)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - type_new_ctx*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4696
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4696
    functionName: type_new_set_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void type_new_set_slots(const type_new_ctx *ctx, PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/typeobject.c:4703,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4703,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4705,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:4712,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4713,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4715,1
    - Dst: PyCell_Set
      Src: /src/cpython/Objects/typeobject.c:4719,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:4720,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - type
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4724
      start: 4700
    functionDepth: 7
    functionLinenumber: 4700
    functionLinenumberEnd: 4724
    functionName: type_new_set_classcell
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyCell_Check
    - _Py_ID
    - PyCell_Set
    - PyDict_DelItem
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int type_new_set_classcell(PyTypeObject *type, PyObject *dict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/typeobject.c:4729,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4729,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4731,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:4738,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4739,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4741,1
    - Dst: PyCell_Set
      Src: /src/cpython/Objects/typeobject.c:4745,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:4746,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4746,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4750
      start: 4726
    functionDepth: 7
    functionLinenumber: 4726
    functionLinenumberEnd: 4750
    functionName: type_new_set_classdictcell
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyCell_Check
    - _Py_ID
    - PyCell_Set
    - PyDict_DelItem
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int type_new_set_classdictcell(PyObject *dict)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: type_new_set_name
      Src: /src/cpython/Objects/typeobject.c:4755,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:4759,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4760,1
    - Dst: type_new_set_module
      Src: /src/cpython/Objects/typeobject.c:4762,1
    - Dst: type_new_set_ht_name
      Src: /src/cpython/Objects/typeobject.c:4766,1
    - Dst: type_new_set_doc
      Src: /src/cpython/Objects/typeobject.c:4770,1
    - Dst: type_new_staticmethod
      Src: /src/cpython/Objects/typeobject.c:4776,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4776,1
    - Dst: type_new_classmethod
      Src: /src/cpython/Objects/typeobject.c:4782,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4782,1
    - Dst: type_new_classmethod
      Src: /src/cpython/Objects/typeobject.c:4785,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4785,1
    - Dst: type_new_descriptors
      Src: /src/cpython/Objects/typeobject.c:4789,1
    - Dst: type_new_set_slots
      Src: /src/cpython/Objects/typeobject.c:4793,1
    - Dst: type_new_set_classcell
      Src: /src/cpython/Objects/typeobject.c:4795,1
    - Dst: type_new_set_classdictcell
      Src: /src/cpython/Objects/typeobject.c:4798,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - type_new_ctx*
    - PyTypeObject*
    assertStmts:
    - condition: (dict)
      pos:
        line_end: 4759
        line_start: 4759
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4802
      start: 4752
    functionDepth: 10
    functionLinenumber: 4752
    functionLinenumberEnd: 4802
    functionName: type_new_set_attrs
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_new_set_module
    - type_new_set_classdictcell
    - _Py_ID
    - type_new_set_classcell
    - type_new_set_ht_name
    - type_new_classmethod
    - lookup_tp_dict
    - type_new_set_slots
    - type_new_set_doc
    - type_new_staticmethod
    - type_new_descriptors
    - assert
    - type_new_set_name
    linkageType: ''
    returnType: int
    signature: int type_new_set_attrs(const type_new_ctx *ctx, PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/typeobject.c:4808,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4810,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4820,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:4821,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/typeobject.c:4824,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4829,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:4829,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - dict
    argTypes:
    - type_new_ctx*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(new_slots))
      pos:
        line_end: 4828
        line_start: 4828
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4833
      start: 4805
    functionDepth: 7
    functionLinenumber: 4805
    functionLinenumberEnd: 4833
    functionName: type_new_get_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - _Py_ID
    - PySequence_Tuple
    - PyUnicode_Check
    - PyTuple_Pack
    - PyTuple_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: int type_new_get_slots(type_new_ctx *ctx, PyObject *dict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/typeobject.c:4839,1
    - Dst: type_new_get_slots
      Src: /src/cpython/Objects/typeobject.c:4844,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4847,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4847,1
    - Dst: type_new_slots
      Src: /src/cpython/Objects/typeobject.c:4849,1
    - Dst: type_new_alloc
      Src: /src/cpython/Objects/typeobject.c:4853,1
    - Dst: set_tp_dict
      Src: /src/cpython/Objects/typeobject.c:4858,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:4867,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:4868,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4846
        line_start: 4846
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4870
      start: 4836
    functionDepth: 13
    functionLinenumber: 4836
    functionLinenumberEnd: 4870
    functionName: type_new_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - type_new_slots
    - type_new_get_slots
    - PyErr_Occurred
    - type_new_alloc
    - set_tp_dict
    - PyDict_Copy
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      type_new_init(type_new_ctx *ctx)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: type_new_init
      Src: /src/cpython/Objects/typeobject.c:4876,1
    - Dst: type_new_set_attrs
      Src: /src/cpython/Objects/typeobject.c:4881,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:4886,1
    - Dst: fixup_slot_dispatchers
      Src: /src/cpython/Objects/typeobject.c:4891,1
    - Dst: _PyDict_HasOnlyStringKeys
      Src: /src/cpython/Objects/typeobject.c:4893,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/typeobject.c:4894,1
    - Dst: type_new_set_names
      Src: /src/cpython/Objects/typeobject.c:4904,1
    - Dst: type_new_init_subclass
      Src: /src/cpython/Objects/typeobject.c:4908,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4912,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:4912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4921,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts:
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 4911
        line_start: 4911
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4923
      start: 4873
    functionDepth: 14
    functionLinenumber: 4873
    functionLinenumberEnd: 4923
    functionName: type_new_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_new_set_attrs
    - PyErr_WarnFormat
    - type_new_set_names
    - Py_DECREF
    - PyType_Ready
    - _PyDict_HasOnlyStringKeys
    - _PyType_CheckConsistency
    - fixup_slot_dispatchers
    - type_new_init_subclass
    - assert
    - type_new_init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_new_impl(type_new_ctx *ctx)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4929,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:4933,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4942,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:4943,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/typeobject.c:4946,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4946,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4951,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/cpython/Objects/typeobject.c:4960,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/cpython/Objects/typeobject.c:4968,1
    - Dst: find_best_base
      Src: /src/cpython/Objects/typeobject.c:4979,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4985,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - type_new_ctx*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4987
      start: 4926
    functionDepth: 4
    functionLinenumber: 4926
    functionLinenumberEnd: 4987
    functionName: type_new_get_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - PyObject_HasAttrWithError
    - _PyType_CalculateMetaclass
    - _Py_ID
    - PyErr_SetString
    - find_best_base
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTuple_Pack
    - PyTypeObject*::tp_new
    linkageType: ''
    returnType: int
    signature: int type_new_get_bases(type_new_ctx *ctx, PyObject **type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4993,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:4993,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4994,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:4994,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/typeobject.c:4998,1
    - Dst: type_new_get_bases
      Src: /src/cpython/Objects/typeobject.c:5021,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5023,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:5023,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5027,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5030,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5031,1
    - Dst: type_new_impl
      Src: /src/cpython/Objects/typeobject.c:5033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:5034,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - metatype
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 4992
        line_start: 4992
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 4993
        line_start: 4993
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 5022
        line_start: 5022
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type != NULL)
      pos:
        line_end: 5026
        line_start: 5026
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (ctx.base != NULL)
      pos:
        line_end: 5029
        line_start: 5029
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (ctx.bases != NULL)
      pos:
        line_end: 5030
        line_start: 5030
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5036
      start: 4990
    functionDepth: 15
    functionLinenumber: 4990
    functionLinenumberEnd: 5036
    functionName: type_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - PyTuple_Check
    - PyErr_Occurred
    - type_new_get_bases
    - type_new_impl
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/typeobject.c:5043,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/typeobject.c:5045,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5048,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:5048,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:5052,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/cpython/Objects/typeobject.c:5053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - metatype
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5054
      start: 5039
    functionDepth: 1
    functionLinenumber: 5039
    functionLinenumberEnd: 5054
    functionName: type_vectorcall
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_MakeTpCall
    - Py_NewRef
    - _PyThreadState_GET
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntype_vectorcall(PyObject *metatype, PyObject *const *args,\n
      \                size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5078
      start: 5074
    functionDepth: 0
    functionLinenumber: 5074
    functionLinenumberEnd: 5078
    functionName: _align_up
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _align_up(Py_ssize_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:5102,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:5104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5107,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:5110,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5111,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:5114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - bases_in
    - spec
    argTypes:
    - PyObject*
    - PyType_Spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5115
      start: 5083
    functionDepth: 1
    functionLinenumber: 5083
    functionLinenumberEnd: 5115
    functionName: get_bases_tuple
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyTuple_Pack
    - Py_NewRef
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_bases_tuple(PyObject *bases_in, PyType_Spec *spec)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5127,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5134,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5141,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5155
      start: 5117
    functionDepth: 1
    functionLinenumber: 5117
    functionLinenumberEnd: 5155
    functionName: check_basicsize_includes_size_and_offsets
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_basicsize_includes_size_and_offsets(PyTypeObject* type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5165,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5166,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type_name
    - bases
    - skip_first
    argTypes:
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5180
      start: 5157
    functionDepth: 1
    functionLinenumber: 5157
    functionLinenumberEnd: 5180
    functionName: check_immutable_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - _PyType_HasFeature
    linkageType: ''
    returnType: int
    signature: int check_immutable_bases(const char *type_name, PyObject *bases, int
      skip_first)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5197,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - memb
    - type_data_offset
    - dest
    argTypes:
    - PyMemberDef*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5216
      start: 5186
    functionDepth: 1
    functionLinenumber: 5186
    functionLinenumberEnd: 5216
    functionName: special_offset_from_member
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int special_offset_from_member(\n            const PyMemberDef *memb
      /* may be NULL */,\n            Py_ssize_t type_data_offset,\n            Py_ssize_t
      *dest /* not NULL */)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/typeobject.c:5250,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5266,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5272,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:5278,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:5281,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:5284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5293,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:5299,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:5303,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:5304,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:5306,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:5309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5318,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:5323,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:5331,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:5345,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:5346,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:5350,1
    - Dst: get_bases_tuple
      Src: /src/cpython/Objects/typeobject.c:5355,1
    - Dst: check_immutable_bases
      Src: /src/cpython/Objects/typeobject.c:5366,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/cpython/Objects/typeobject.c:5376,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5380,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5381,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5387,1
    - Dst: find_best_base
      Src: /src/cpython/Objects/typeobject.c:5394,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5400,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5400,1
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:5412,1
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:5413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5419,1
    - Dst: special_offset_from_member
      Src: /src/cpython/Objects/typeobject.c:5431,1
    - Dst: special_offset_from_member
      Src: /src/cpython/Objects/typeobject.c:5436,1
    - Dst: special_offset_from_member
      Src: /src/cpython/Objects/typeobject.c:5441,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:5454,1
    - Dst: type_set_flags
      Src: /src/cpython/Objects/typeobject.c:5462,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:5464,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5476,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:5477,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5483,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:5508,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:5509,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:5509,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:5510,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:5513,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/typeobject.c:5561,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:5570,1
    - Dst: check_basicsize_includes_size_and_offsets
      Src: /src/cpython/Objects/typeobject.c:5574,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:5578,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:5580,1
    - Dst: _PyType_DocWithoutSignature
      Src: /src/cpython/Objects/typeobject.c:5580,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:5584,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:5585,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:5592,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5592,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:5597,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5597,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:5603,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5603,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:5608,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/typeobject.c:5610,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:5615,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:5616,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/typeobject.c:5622,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5629,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:5629,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:5636,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:5637,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:5639,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:5640,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:5641,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:5642,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 272
    argCount: 4
    argNames:
    - metaclass
    - module
    - spec
    - bases_in
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyType_Spec*
    - PyObject*
    assertStmts:
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 5628
        line_start: 5628
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE))
      pos:
        line_end: 5399
        line_start: 5399
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5644
      start: 5218
    functionDepth: 9
    functionLinenumber: 5218
    functionLinenumberEnd: 5644
    functionName: PyType_FromMetaclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 8
    functionsReached:
    - PyErr_WarnFormat
    - Py_XDECREF
    - _PyHeapType_GET_MEMBERS
    - strlen
    - PyErr_SetString
    - PyDict_Contains
    - PyDict_DelItem
    - PyTypeObject*::tp_alloc
    - Py_CLEAR
    - PyMem_Free
    - strrchr
    - PyUnicode_FromStringAndSize
    - _PyType_DocWithoutSignature
    - PyErr_Occurred
    - PyType_Ready
    - get_bases_tuple
    - check_basicsize_includes_size_and_offsets
    - strcmp
    - check_immutable_bases
    - Py_XNewRef
    - PyErr_Format
    - _align_up
    - _PyType_HasFeature
    - PyType_Check
    - set_tp_bases
    - Py_DECREF
    - _Py_ID
    - type_set_flags
    - find_best_base
    - Py_NewRef
    - special_offset_from_member
    - memcpy
    - Py_TYPE
    - PyErr_NoMemory
    - PyMem_Malloc
    - _PyObject_AssignUniqueId
    - PyDict_SetItem
    - _PyType_CheckConsistency
    - lookup_tp_dict
    - Py_ARRAY_LENGTH
    - _PyType_CalculateMetaclass
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyType_FromMetaclass(\n    PyTypeObject *metaclass, PyObject
      *module,\n    PyType_Spec *spec, PyObject *bases_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Objects/typeobject.c:5649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - spec
    - bases
    argTypes:
    - PyObject*
    - PyType_Spec*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5646
    functionDepth: 10
    functionLinenumber: 5646
    functionLinenumberEnd: 5650
    functionName: PyType_FromModuleAndSpec
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 42
    functionsReached:
    - PyType_FromMetaclass
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Objects/typeobject.c:5655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spec
    - bases
    argTypes:
    - PyType_Spec*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5656
      start: 5652
    functionDepth: 10
    functionLinenumber: 5652
    functionLinenumberEnd: 5656
    functionName: PyType_FromSpecWithBases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 9
    functionsReached:
    - PyType_FromMetaclass
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Objects/typeobject.c:5661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyType_Spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5658
    functionDepth: 10
    functionLinenumber: 5658
    functionLinenumberEnd: 5662
    functionName: PyType_FromSpec
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 14
    functionsReached:
    - PyType_FromMetaclass
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromSpec(PyType_Spec *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_name
      Src: /src/cpython/Objects/typeobject.c:5667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5668
      start: 5664
    functionDepth: 3
    functionLinenumber: 5664
    functionLinenumberEnd: 5668
    functionName: PyType_GetName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - type_name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetName(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_qualname
      Src: /src/cpython/Objects/typeobject.c:5673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5674
      start: 5670
    functionDepth: 3
    functionLinenumber: 5670
    functionLinenumberEnd: 5674
    functionName: PyType_GetQualName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - type_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetQualName(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:5679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5676
    functionDepth: 10
    functionLinenumber: 5676
    functionLinenumberEnd: 5680
    functionName: PyType_GetModuleName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - type_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModuleName(PyTypeObject *type)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/typeobject.c:5686,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/typeobject.c:5689,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5695,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - type
    - slot
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5709
      start: 5682
    functionDepth: 1
    functionLinenumber: 5682
    functionLinenumberEnd: 5709
    functionName: PyType_GetSlot
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 14
    functionsReached:
    - Py_ARRAY_LENGTH
    - PyErr_BadInternalCall
    - _PyType_HasFeature
    linkageType: ''
    returnType: void
    signature: 'void *

      PyType_GetSlot(PyTypeObject *type, int slot)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5714,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5714,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5715,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5716,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 5713
        line_start: 5713
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5733
      start: 5711
    functionDepth: 1
    functionLinenumber: 5711
    functionLinenumberEnd: 5733
    functionName: PyType_GetModule
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 17
    functionsReached:
    - PyType_Check
    - _PyType_HasFeature
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModule(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Objects/typeobject.c:5738,1
    - Dst: _PyModule_GetState
      Src: /src/cpython/Objects/typeobject.c:5742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5743
      start: 5735
    functionDepth: 2
    functionLinenumber: 5735
    functionLinenumberEnd: 5743
    functionName: PyType_GetModuleState
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 81
    functionsReached:
    - _PyModule_GetState
    - PyType_GetModule
    linkageType: ''
    returnType: void
    signature: 'void *

      PyType_GetModuleState(PyTypeObject *type)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5752,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5752,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5754,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Objects/typeobject.c:5762,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:5768,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:5770,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5772,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5773,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:5773,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5775,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5775,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5778,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5778,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5780,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5782,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5783,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Objects/typeobject.c:5790,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:5795,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5801,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - type
    - def
    argTypes:
    - PyTypeObject*
    - PyModuleDef*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 5751
        line_start: 5751
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_ITEM(mro, 0) == (PyObject *)type)
      pos:
        line_end: 5777
        line_start: 5777
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 5772
        line_start: 5772
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_SIZE(mro) >= 1)
      pos:
        line_end: 5774
        line_start: 5774
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (mro != NULL)
      pos:
        line_end: 5771
        line_start: 5771
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5806
      start: 5749
    functionDepth: 2
    functionLinenumber: 5749
    functionLinenumberEnd: 5806
    functionName: PyType_GetModuleByDef
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 25
    functionsReached:
    - PyType_Check
    - END_TYPE_LOCK
    - PyTuple_GET_SIZE
    - lookup_tp_mro
    - PyTuple_Check
    - BEGIN_TYPE_LOCK
    - _PyModule_GetDef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModuleByDef(PyTypeObject *type, PyModuleDef *def)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5812,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5814,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:5816,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5816,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5817,1
    - Dst: get_base_by_token_recursive
      Src: /src/cpython/Objects/typeobject.c:5824,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:5824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - bases
    - token
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (bases != NULL)
      pos:
        line_end: 5811
        line_start: 5811
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5831
      start: 5809
    functionDepth: 1
    functionLinenumber: 5809
    functionLinenumberEnd: 5831
    functionName: get_base_by_token_recursive
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - get_base_by_token_recursive
    - PyTuple_GET_SIZE
    - lookup_tp_bases
    - _PyType_CAST
    - PyTuple_GET_ITEM
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      get_base_by_token_recursive(PyObject *bases, void *token)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5841,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5845,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5846,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5851,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5859,1
    - Dst: get_base_by_token_recursive
      Src: /src/cpython/Objects/typeobject.c:5867,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:5867,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5877,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5877,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5880,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5880,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5881,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5883,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5884,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - type
    - token
    - result
    argTypes:
    - PyTypeObject*
    - void*
    - PyTypeObject**
    assertStmts:
    - condition: (PyTuple_GET_SIZE(mro) >= 1)
      pos:
        line_end: 5876
        line_start: 5876
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_ITEM(mro, 0) == (PyObject *)type)
      pos:
        line_end: 5879
        line_start: 5879
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5891
      start: 5833
    functionDepth: 2
    functionLinenumber: 5833
    functionLinenumberEnd: 5891
    functionName: PyType_GetBaseByToken
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 6
    functionsReached:
    - PyType_Check
    - get_base_by_token_recursive
    - PyTuple_GET_SIZE
    - lookup_tp_bases
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: int
    signature: int PyType_GetBaseByToken(PyTypeObject *type, void *token, PyTypeObject
      **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5897,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/typeobject.c:5897,1
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:5898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(obj, cls))
      pos:
        line_end: 5896
        line_start: 5896
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5899
      start: 5894
    functionDepth: 1
    functionLinenumber: 5894
    functionLinenumberEnd: 5899
    functionName: PyObject_GetTypeData
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 9
    functionsReached:
    - _align_up
    - PyObject_TypeCheck
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_GetTypeData(PyObject *obj, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:5904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5909
      start: 5901
    functionDepth: 1
    functionLinenumber: 5901
    functionLinenumberEnd: 5909
    functionName: PyType_GetTypeDataSize
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - _align_up
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyType_GetTypeDataSize(PyTypeObject *cls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:5914,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5915,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:5917,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:5920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5921
      start: 5911
    functionDepth: 1
    functionLinenumber: 5911
    functionLinenumberEnd: 5921
    functionName: PyObject_GetItemData
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 6
    functionsReached:
    - Py_TYPE
    - PyType_HasFeature
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_GetItemData(PyObject *obj)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/typeobject.c:5929,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:5936,1
    - Dst: is_readying
      Src: /src/cpython/Objects/typeobject.c:5938,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:5939,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:5943,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:5954,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5955,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5957,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:5958,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:5958,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5959,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:5959,1
    - Dst: _PyDict_GetItemRef_KnownHash
      Src: /src/cpython/Objects/typeobject.c:5960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:5970,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - type
    - name
    - error
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (dict && PyDict_Check(dict))
      pos:
        line_end: 5958
        line_start: 5958
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5972
      start: 5926
    functionDepth: 7
    functionLinenumber: 5926
    functionLinenumberEnd: 5972
    functionName: find_name_in_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - assert
    - PyTuple_GET_SIZE
    - Py_DECREF
    - is_readying
    - _PyDict_GetItemRef_KnownHash
    - PyType_Ready
    - _PyType_CAST
    - lookup_tp_dict
    - PyTuple_GET_ITEM
    - _PyObject_HashFast
    - PyDict_Check
    - lookup_tp_mro
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      find_name_in_mro(PyTypeObject *type, PyObject *name, int *error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/typeobject.c:5979,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/typeobject.c:5980,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/typeobject.c:5983,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5990
      start: 5976
    functionDepth: 1
    functionLinenumber: 5976
    functionLinenumberEnd: 5990
    functionName: is_dunder_name
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Objects/typeobject.c:5995,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5996,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/typeobject.c:5996,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:5997,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Objects/typeobject.c:6001,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:6001,1
    - Dst: _Py_atomic_store_uint32_release
      Src: /src/cpython/Objects/typeobject.c:6007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - entry
    - name
    - version_tag
    - value
    argTypes:
    - struct type_cache_entry*
    - PyObject*
    - unsigned int
    - PyObject*
    assertStmts:
    - condition: (_PyASCIIObject_CAST(name)->hash != -1)
      pos:
        line_end: 5995
        line_start: 5995
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6009
      start: 5992
    functionDepth: 1
    functionLinenumber: 5992
    functionLinenumberEnd: 6009
    functionName: update_cache
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - _Py_atomic_store_ptr_relaxed
    - OBJECT_STAT_INC_COND
    - _Py_atomic_store_uint32_release
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      update_cache(struct type_cache_entry *entry, PyObject *name, unsigned int version_tag,
      PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySeqLock_LockWrite
      Src: /src/cpython/Objects/typeobject.c:6017,1
    - Dst: _PySeqLock_AbandonWrite
      Src: /src/cpython/Objects/typeobject.c:6024,1
    - Dst: update_cache
      Src: /src/cpython/Objects/typeobject.c:6028,1
    - Dst: _PySeqLock_UnlockWrite
      Src: /src/cpython/Objects/typeobject.c:6031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - entry
    - name
    - version_tag
    - value
    argTypes:
    - struct type_cache_entry*
    - PyObject*
    - unsigned int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6034
      start: 6013
    functionDepth: 2
    functionLinenumber: 6013
    functionLinenumberEnd: 6034
    functionName: update_cache_gil_disabled
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PySeqLock_LockWrite
    - update_cache
    - _PySeqLock_UnlockWrite
    - _PySeqLock_AbandonWrite
    linkageType: ''
    returnType: void
    signature: "void update_cache_gil_disabled(struct type_cache_entry *entry, PyObject
      *name,\n                          unsigned int version_tag, PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_type_cache
      Src: /src/cpython/Objects/typeobject.c:6042,1
    - Dst: _PySeqLock_AfterFork
      Src: /src/cpython/Objects/typeobject.c:6045,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:6048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6053
      start: 6038
    functionDepth: 2
    functionLinenumber: 6038
    functionLinenumberEnd: 6053
    functionName: _PyTypes_AfterFork
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - get_type_cache
    - Py_SETREF
    - _PySeqLock_AfterFork
    linkageType: ''
    returnType: void
    signature: void _PyTypes_AfterFork(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:6064,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:6068,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:6071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - type
    - name
    - version
    argTypes:
    - PyTypeObject*
    - PyObject*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6072
      start: 6060
    functionDepth: 1
    functionLinenumber: 6060
    functionLinenumberEnd: 6072
    functionName: _PyType_LookupRefAndVersion
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_LookupStackRefAndVersion
    - PyStackRef_IsNull
    - PyStackRef_AsPyObjectSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_LookupRefAndVersion(PyTypeObject *type, PyObject *name, unsigned int
      *version)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MCACHE_HASH_METHOD
      Src: /src/cpython/Objects/typeobject.c:6077,1
    - Dst: get_type_cache
      Src: /src/cpython/Objects/typeobject.c:6078,1
    - Dst: _PySeqLock_BeginRead
      Src: /src/cpython/Objects/typeobject.c:6083,1
    - Dst: _Py_atomic_load_uint32_acquire
      Src: /src/cpython/Objects/typeobject.c:6084,1
    - Dst: _Py_atomic_load_uint32_acquire
      Src: /src/cpython/Objects/typeobject.c:6085,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/typeobject.c:6087,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6088,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6088,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6089,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6089,1
    - Dst: _Py_TryXGetStackRef
      Src: /src/cpython/Objects/typeobject.c:6090,1
    - Dst: _PySeqLock_EndRead
      Src: /src/cpython/Objects/typeobject.c:6092,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Objects/typeobject.c:6095,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6109,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6110,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6110,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6111,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6111,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/typeobject.c:6112,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6116,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6116,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6117,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6117,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:6120,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:6127,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6130,1
    - Dst: MCACHE_CACHEABLE_NAME
      Src: /src/cpython/Objects/typeobject.c:6134,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:6135,1
    - Dst: find_name_in_mro
      Src: /src/cpython/Objects/typeobject.c:6138,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6139,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:6152,1
    - Dst: update_cache_gil_disabled
      Src: /src/cpython/Objects/typeobject.c:6160,1
    - Dst: update_cache
      Src: /src/cpython/Objects/typeobject.c:6162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6163,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:6166,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - type
    - name
    - out
    argTypes:
    - PyTypeObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (type->tp_version_tag)
      pos:
        line_end: 6108
        line_start: 6108
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 6119
        line_start: 6119
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6168
      start: 6074
    functionDepth: 8
    functionLinenumber: 6074
    functionLinenumberEnd: 6168
    functionName: _PyType_LookupStackRefAndVersion
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 7
    functionsReached:
    - find_name_in_mro
    - OBJECT_STAT_INC_COND
    - _Py_TryXGetStackRef
    - PyStackRef_FromPyObjectNew
    - update_cache
    - BEGIN_TYPE_LOCK
    - MCACHE_CACHEABLE_NAME
    - END_TYPE_LOCK
    - PyErr_Occurred
    - assign_version_tag
    - PyStackRef_FromPyObjectSteal
    - _Py_atomic_load_uint32_acquire
    - PyErr_Clear
    - _PySeqLock_BeginRead
    - update_cache_gil_disabled
    - Py_DECREF
    - _PySeqLock_EndRead
    - MCACHE_HASH_METHOD
    - get_type_cache
    - _Py_atomic_load_ptr_relaxed
    - PyStackRef_XCLOSE
    - _PyInterpreterState_GET
    - is_dunder_name
    - assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _PyType_LookupStackRefAndVersion(PyTypeObject *type, PyObject
      *name, _PyStackRef *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:6176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6173
    functionDepth: 2
    functionLinenumber: 6173
    functionLinenumberEnd: 6177
    functionName: _PyType_LookupRef
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 7
    functionsReached:
    - _PyType_LookupRefAndVersion
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_LookupRef(PyTypeObject *type, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:6184,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6181
    functionDepth: 2
    functionLinenumber: 6181
    functionLinenumberEnd: 6187
    functionName: _PyType_Lookup
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - _PyType_LookupRefAndVersion
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_Lookup(PyTypeObject *type, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6197,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:6200,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/typeobject.c:6203,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - type
    - init
    - tp_version
    argTypes:
    - PyHeapTypeObject*
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 6189
    functionDepth: 1
    functionLinenumber: 6189
    functionLinenumberEnd: 6207
    functionName: _PyType_CacheInitForSpecialization
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HasDeferredRefcount
    - FT_ATOMIC_STORE_PTR_RELEASE
    - BEGIN_TYPE_LOCK
    - END_TYPE_LOCK
    linkageType: ''
    returnType: int
    signature: "int _PyType_CacheInitForSpecialization(PyHeapTypeObject *type, PyObject
      *init,\n                                   unsigned int tp_version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6216,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Objects/typeobject.c:6221,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Objects/typeobject.c:6222,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:6224,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/typeobject.c:6227,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/typeobject.c:6228,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ht
    - descriptor
    - tp_version
    argTypes:
    - PyHeapTypeObject*
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6232
      start: 6209
    functionDepth: 1
    functionLinenumber: 6209
    functionLinenumberEnd: 6232
    functionName: _PyType_CacheGetItemForSpecialization
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - END_TYPE_LOCK
    - _PyFunction_IsVersionValid
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - _PyFunction_GetVersionForCurrentState
    - BEGIN_TYPE_LOCK
    - _PyObject_HasDeferredRefcount
    - FT_ATOMIC_STORE_PTR_RELEASE
    linkageType: ''
    returnType: int
    signature: int _PyType_CacheGetItemForSpecialization(PyHeapTypeObject *ht, PyObject
      *descriptor, uint32_t tp_version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:6239,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:6242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - mask
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6244
      start: 6234
    functionDepth: 3
    functionLinenumber: 6234
    functionLinenumberEnd: 6244
    functionName: _PyType_SetFlags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - types_stop_world
    - types_start_world
    linkageType: ''
    returnType: void
    signature: void _PyType_SetFlags(PyTypeObject *self, unsigned long mask, unsigned
      long flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6250,1
    - Dst: validate
      Src: /src/cpython/Objects/typeobject.c:6251,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:6253,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:6253,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ty
    - validate
    - tp_version
    argTypes:
    - PyTypeObject*
    - _py_validate_type
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6262
      start: 6246
    functionDepth: 3
    functionLinenumber: 6246
    functionLinenumberEnd: 6262
    functionName: _PyType_Validate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - END_TYPE_LOCK
    - assign_version_tag
    - _PyInterpreterState_GET
    - validate
    - BEGIN_TYPE_LOCK
    linkageType: ''
    returnType: int
    signature: int _PyType_Validate(PyTypeObject *ty, _py_validate_type validate,
      unsigned int *tp_version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6267,1
    - Dst: type_set_flags_with_mask
      Src: /src/cpython/Objects/typeobject.c:6273,1
    - Dst: _PyType_GetSubclasses
      Src: /src/cpython/Objects/typeobject.c:6275,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:6280,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:6281,1
    - Dst: set_flags_recursive
      Src: /src/cpython/Objects/typeobject.c:6282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - mask
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6264
    functionDepth: 6
    functionLinenumber: 6264
    functionLinenumberEnd: 6285
    functionName: set_flags_recursive
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - type_set_flags_with_mask
    - PyList_GET_ITEM
    - Py_DECREF
    - set_flags_recursive
    - _PyType_GetSubclasses
    - PyList_GET_SIZE
    - PyType_HasFeature
    linkageType: ''
    returnType: void
    signature: void set_flags_recursive(PyTypeObject *self, unsigned long mask, unsigned
      long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:6290,1
    - Dst: set_flags_recursive
      Src: /src/cpython/Objects/typeobject.c:6291,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:6292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - mask
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6293
      start: 6287
    functionDepth: 7
    functionLinenumber: 6287
    functionLinenumberEnd: 6293
    functionName: _PyType_SetFlagsRecursive
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - types_stop_world
    - types_start_world
    - set_flags_recursive
    linkageType: ''
    returnType: void
    signature: void _PyType_SetFlagsRecursive(PyTypeObject *self, unsigned long mask,
      unsigned long flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6310,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:6315,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6316,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6318,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:6323,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:6324,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:6332,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6335,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/typeobject.c:6337,1
    - Dst: meta_get
      Src: /src/cpython/Objects/typeobject.c:6342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6344,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:6351,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6354,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6356,1
    - Dst: local_get
      Src: /src/cpython/Objects/typeobject.c:6361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6363,1
    - Dst: meta_get
      Src: /src/cpython/Objects/typeobject.c:6374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6376,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6387,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - type
    - name
    - suppress_missing_attribute
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6307
    functionDepth: 3
    functionLinenumber: 6307
    functionLinenumberEnd: 6395
    functionName: _Py_type_getattro_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - local_get
    - meta_get
    - PyType_Ready
    - _PyType_LookupRef
    - Py_TYPE
    - PyDescr_IsData
    - PyErr_Format
    - PyUnicode_Check
    - _PyType_IsReady
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_type_getattro_impl(PyTypeObject *type, PyObject *name, int * suppress_missing_attribute)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6402,1
    - Dst: _Py_type_getattro_impl
      Src: /src/cpython/Objects/typeobject.c:6403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6404
      start: 6399
    functionDepth: 4
    functionLinenumber: 6399
    functionLinenumberEnd: 6404
    functionName: _Py_type_getattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_type_getattro_impl
    - PyTypeObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_type_getattro(PyObject *tp, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_GetItemRef_Unicode_LockHeld
      Src: /src/cpython/Objects/typeobject.c:6418,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:6427,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/typeobject.c:6429,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6430,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/typeobject.c:6433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - type
    - dict
    - name
    - value
    - old_value
    argTypes:
    - PyTypeObject*
    - PyDictObject*
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6408
    functionDepth: 9
    functionLinenumber: 6408
    functionLinenumberEnd: 6438
    functionName: type_update_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_LockHeld
    - type_modified_unlocked
    - _PyObject_SetAttributeErrorContext
    - _PyDict_GetItemRef_Unicode_LockHeld
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int type_update_dict(PyTypeObject *type, PyDictObject *dict, PyObject
      *name,\n                 PyObject *value, PyObject **old_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6445,1
    - Dst: update_slot
      Src: /src/cpython/Objects/typeobject.c:6449,1
    - Dst: apply_type_slot_updates
      Src: /src/cpython/Objects/typeobject.c:6453,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:6454,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6456,1
    - Dst: update_slot
      Src: /src/cpython/Objects/typeobject.c:6459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (SLOT_UPDATE_CHUNK_SIZE >= MAX_EQUIV)
      pos:
        line_end: 6444
        line_start: 6444
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (chunk.prev == NULL)
      pos:
        line_end: 6455
        line_start: 6455
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6462
      start: 6440
    functionDepth: 5
    functionLinenumber: 6440
    functionLinenumberEnd: 6462
    functionName: update_slot_after_setattr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - update_slot
    - apply_type_slot_updates
    - assert
    - ASSERT_TYPE_LOCK_HELD
    linkageType: ''
    returnType: int
    signature: int update_slot_after_setattr(PyTypeObject *type, PyObject *name)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6467,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6470,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:6476,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6477,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6479,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:6483,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:6484,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/typeobject.c:6487,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:6491,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:6492,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/typeobject.c:6493,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:6494,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:6495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6497,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6502,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6503,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6503,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6504,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6504,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:6507,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6509,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:6511,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6521,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:6524,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6526,1
    - Dst: BEGIN_TYPE_DICT_LOCK
      Src: /src/cpython/Objects/typeobject.c:6533,1
    - Dst: type_update_dict
      Src: /src/cpython/Objects/typeobject.c:6534,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6535,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:6535,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6537,1
    - Dst: has_slotdef
      Src: /src/cpython/Objects/typeobject.c:6537,1
    - Dst: update_slot_after_setattr
      Src: /src/cpython/Objects/typeobject.c:6539,1
    - Dst: END_TYPE_DICT_LOCK
      Src: /src/cpython/Objects/typeobject.c:6542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6545,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6546,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6547,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyType_HasFeature(metatype, Py_TPFLAGS_INLINE_VALUES))
      pos:
        line_end: 6502
        line_start: 6502
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 6534
        line_start: 6534
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!_PyType_HasFeature(metatype, Py_TPFLAGS_MANAGED_DICT))
      pos:
        line_end: 6503
        line_start: 6503
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6549
      start: 6464
    functionDepth: 10
    functionLinenumber: 6464
    functionLinenumberEnd: 6549
    functionName: type_setattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - BEGIN_TYPE_DICT_LOCK
    - _PyUnicode_InternMortal
    - PyErr_SetString
    - PyTypeObject_CAST
    - BEGIN_TYPE_LOCK
    - update_slot_after_setattr
    - Py_INCREF
    - END_TYPE_LOCK
    - END_TYPE_DICT_LOCK
    - _PyType_LookupRef
    - PyErr_Format
    - PyUnicode_Check
    - has_slotdef
    - _PyType_HasFeature
    - f
    - Py_DECREF
    - _PyUnicode_Copy
    - PyUnicode_CheckExact
    - PyUnicode_CHECK_INTERNED
    - Py_TYPE
    - type_update_dict
    - _PyInterpreterState_GET
    - _PyType_CheckConsistency
    - PyDict_New
    - is_dunder_name
    - assert
    linkageType: ''
    returnType: int
    signature: int type_setattro(PyObject *self, PyObject *name, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:6555,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/typeobject.c:6557,1
    - Dst: remove_all_subclasses
      Src: /src/cpython/Objects/typeobject.c:6558,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/typeobject.c:6559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6552
    functionDepth: 1
    functionLinenumber: 6552
    functionLinenumberEnd: 6561
    functionName: type_dealloc_common
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetRaisedException
    - lookup_tp_bases
    - PyErr_GetRaisedException
    - remove_all_subclasses
    linkageType: ''
    returnType: void
    signature: void type_dealloc_common(PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:6567,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:6596,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:6597,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6603,1
    - Dst: clear_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:6609,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - type
    - isbuiltin
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (!isbuiltin || !(subclass->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 6601
        line_start: 6601
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6610
      start: 6564
    functionDepth: 5
    functionLinenumber: 6564
    functionLinenumberEnd: 6610
    functionName: clear_static_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - lookup_tp_subclasses
    - type_from_ref
    - clear_tp_subclasses
    - PyDict_Next
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_static_tp_subclasses(PyTypeObject *type, int isbuiltin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6617,1
    - Dst: clear_tp_dict
      Src: /src/cpython/Objects/typeobject.c:6619,1
    - Dst: clear_tp_bases
      Src: /src/cpython/Objects/typeobject.c:6620,1
    - Dst: clear_tp_mro
      Src: /src/cpython/Objects/typeobject.c:6621,1
    - Dst: clear_static_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:6622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - interp
    - type
    - isbuiltin
    - final
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6623
      start: 6612
    functionDepth: 6
    functionLinenumber: 6612
    functionLinenumberEnd: 6623
    functionName: clear_static_type_objects
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - clear_tp_mro
    - clear_tp_bases
    - clear_static_tp_subclasses
    - clear_tp_dict
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: "void clear_static_type_objects(PyInterpreterState *interp, PyTypeObject
      *type,\n                          int isbuiltin, int final)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6630,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6631,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:6631,1
    - Dst: type_dealloc_common
      Src: /src/cpython/Objects/typeobject.c:6633,1
    - Dst: clear_static_type_objects
      Src: /src/cpython/Objects/typeobject.c:6635,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6638,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:6639,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:6640,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6641,1
    - Dst: _PyStaticType_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:6644,1
    - Dst: managed_static_type_state_clear
      Src: /src/cpython/Objects/typeobject.c:6645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - interp
    - type
    - isbuiltin
    - final
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - int
    - int
    assertStmts:
    - condition: (type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)
      pos:
        line_end: 6629
        line_start: 6629
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_Py_IsImmortal((PyObject *)type))
      pos:
        line_end: 6630
        line_start: 6630
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6647
      start: 6626
    functionDepth: 7
    functionLinenumber: 6626
    functionLinenumberEnd: 6647
    functionName: fini_static_type
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - END_TYPE_LOCK
    - managed_static_type_state_clear
    - set_version_unlocked
    - clear_static_type_objects
    - _PyStaticType_ClearWeakRefs
    - type_clear_flags
    - type_dealloc_common
    - BEGIN_TYPE_LOCK
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: "void fini_static_type(PyInterpreterState *interp, PyTypeObject *type,\n
      \                int isbuiltin, int final)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_ext_type_lookup
      Src: /src/cpython/Objects/typeobject.c:6657,1
    - Dst: fini_static_type
      Src: /src/cpython/Objects/typeobject.c:6662,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6664
      start: 6649
    functionDepth: 8
    functionLinenumber: 6649
    functionLinenumberEnd: 6664
    functionName: _PyTypes_FiniExtTypes
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - static_ext_type_lookup
    - fini_static_type
    linkageType: ''
    returnType: void
    signature: void _PyTypes_FiniExtTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fini_static_type
      Src: /src/cpython/Objects/typeobject.c:6669,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/typeobject.c:6669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - type
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6670
      start: 6666
    functionDepth: 8
    functionLinenumber: 6666
    functionLinenumberEnd: 6670
    functionName: _PyStaticType_FiniBuiltin
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - _Py_IsMainInterpreter
    - fini_static_type
    linkageType: ''
    returnType: void
    signature: void _PyStaticType_FiniBuiltin(PyInterpreterState *interp, PyTypeObject
      *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6678
      start: 6673
    functionDepth: 1
    functionLinenumber: 6673
    functionLinenumberEnd: 6678
    functionName: _PyTypes_FiniCachedDescriptors
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyTypes_FiniCachedDescriptors(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6684,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:6687,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:6689,1
    - Dst: type_dealloc_common
      Src: /src/cpython/Objects/typeobject.c:6690,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6693,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:6693,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:6694,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6696,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6697,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6698,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6699,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6700,1
    - Dst: clear_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:6701,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:6706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6709,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6710,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6711,1
    - Dst: _PyDictKeys_DecRef
      Src: /src/cpython/Objects/typeobject.c:6713,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6715,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:6716,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6718,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (et->unique_id == _Py_INVALID_UNIQUE_ID)
      pos:
        line_end: 6717
        line_start: 6717
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (Py_REFCNT(type) == 0)
      pos:
        line_end: 6692
        line_start: 6692
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6722
      start: 6681
    functionDepth: 5
    functionLinenumber: 6681
    functionLinenumberEnd: 6722
    functionName: type_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTypeObject_CAST
    - PyObject_ClearWeakRefs
    - clear_tp_subclasses
    - _PyObject_GC_UNTRACK
    - type_dealloc_common
    - _PyDictKeys_DecRef
    - PyMem_Free
    - _PyObject_ASSERT
    - Py_TYPE
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void type_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetSubclasses
      Src: /src/cpython/Objects/typeobject.c:6735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6736
      start: 6731
    functionDepth: 6
    functionLinenumber: 6731
    functionLinenumberEnd: 6736
    functionName: type___subclasses___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetSubclasses
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___subclasses___impl(PyTypeObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:6742,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: 6743
      start: 6738
    functionDepth: 10
    functionLinenumber: 6738
    functionLinenumberEnd: 6743
    functionName: type_prepare
    functionSourceFile: /src/cpython/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: assert
      Src: /src/cpython/Objects/typeobject.c:6760,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:6760,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6761,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:6764,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:6764,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/typeobject.c:6768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6769,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:6775,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:6775,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/typeobject.c:6781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6783,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/typeobject.c:6789,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6791,1
    - Dst: merge_class_dict
      Src: /src/cpython/Objects/typeobject.c:6794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6802,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - dict
    - aclass
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 6759
        line_start: 6759
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (aclass)
      pos:
        line_end: 6760
        line_start: 6760
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6805
      start: 6754
    functionDepth: 3
    functionLinenumber: 6754
    functionLinenumberEnd: 6805
    functionName: merge_class_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PySequence_GetItem
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - merge_class_dict
    - _Py_ID
    - PySequence_Size
    - PyDict_Update
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int merge_class_dict(PyObject *dict, PyObject *aclass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:6822,1
    - Dst: merge_class_dict
      Src: /src/cpython/Objects/typeobject.c:6824,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/typeobject.c:6825,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6829
      start: 6817
    functionDepth: 10
    functionLinenumber: 6817
    functionLinenumberEnd: 6829
    functionName: type___dir___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - merge_class_dict
    - Py_XDECREF
    - PyDict_Keys
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___dir___impl(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_KeysSize
      Src: /src/cpython/Objects/typeobject.c:6846,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/typeobject.c:6851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6852
      start: 6837
    functionDepth: 2
    functionLinenumber: 6837
    functionLinenumberEnd: 6852
    functionName: type___sizeof___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyDict_KeysSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___sizeof___impl(PyTypeObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6877,1
    - Dst: sprintf
      Src: /src/cpython/Objects/typeobject.c:6883,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/typeobject.c:6885,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:6888,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:6889,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:6890,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:6891,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:6892,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:6893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6903
      start: 6874
    functionDepth: 1
    functionLinenumber: 6874
    functionLinenumberEnd: 6903
    functionName: type_traverse
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - sprintf
    - PyTypeObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int type_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6908,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:6912,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:6943,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:6944,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/typeobject.c:6946,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6948,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6953
      start: 6905
    functionDepth: 10
    functionLinenumber: 6905
    functionLinenumberEnd: 6953
    functionName: type_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    - PyTypeObject_CAST
    - PyType_Modified
    - lookup_tp_dict
    - _PyObject_ASSERT
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int type_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6960
      start: 6955
    functionDepth: 1
    functionLinenumber: 6955
    functionLinenumberEnd: 6960
    functionName: type_is_gc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject_CAST
    linkageType: ''
    returnType: int
    signature: int type_is_gc(PyObject *tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7064,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:7065,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7066
      start: 7061
    functionDepth: 1
    functionLinenumber: 7061
    functionLinenumberEnd: 7066
    functionName: excess_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int excess_args(PyObject *args, PyObject *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7071,1
    - Dst: excess_args
      Src: /src/cpython/Objects/typeobject.c:7072,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7074,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7086
      start: 7068
    functionDepth: 2
    functionLinenumber: 7068
    functionLinenumberEnd: 7086
    functionName: object_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    - Py_TYPE
    - excess_args
    linkageType: ''
    returnType: int
    signature: int object_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: excess_args
      Src: /src/cpython/Objects/typeobject.c:7091,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7093,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7098,1
    - Dst: type_abstractmethods
      Src: /src/cpython/Objects/typeobject.c:7113,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/typeobject.c:7116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7117,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/typeobject.c:7120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7121,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:7124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7126,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Objects/typeobject.c:7129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7132,1
    - Dst: PyObject_Length
      Src: /src/cpython/Objects/typeobject.c:7135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7138,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7148,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:7151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7156
      start: 7088
    functionDepth: 10
    functionLinenumber: 7088
    functionLinenumberEnd: 7156
    functionName: object_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_Sort
    - PyUnicode_Join
    - excess_args
    - PyErr_SetString
    - type_abstractmethods
    - PyObject_Length
    - PySequence_List
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7162
      start: 7158
    functionDepth: 0
    functionLinenumber: 7158
    functionLinenumberEnd: 7162
    functionName: object_dealloc
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:7170,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:7171,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:7173,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:7174,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:7175,1
    - Dst: type_qualname
      Src: /src/cpython/Objects/typeobject.c:7177,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7179,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:7182,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7182,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:7183,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:7185,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7190
      start: 7164
    functionDepth: 10
    functionLinenumber: 7164
    functionLinenumberEnd: 7190
    functionName: object_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_ID
    - Py_SETREF
    - _PyUnicode_Equal
    - PyUnicode_Check
    - type_qualname
    - PyErr_Clear
    - Py_TYPE
    - type_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7197,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:7200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7201
      start: 7192
    functionDepth: 0
    functionLinenumber: 7192
    functionLinenumberEnd: 7201
    functionName: object_str
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - f
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_str(PyObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7214,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7220,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7221,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7224,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:7226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7227,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7232,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7234,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7203
    functionDepth: 2
    functionLinenumber: 7203
    functionLinenumberEnd: 7245
    functionName: object_richcompare
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_IsTrue
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_richcompare
      Src: /src/cpython/Objects/typeobject.c:7250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7251
      start: 7247
    functionDepth: 3
    functionLinenumber: 7247
    functionLinenumberEnd: 7251
    functionName: _Py_BaseObject_RichCompare
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - object_richcompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_BaseObject_RichCompare(PyObject* self, PyObject* other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7256,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7257
      start: 7253
    functionDepth: 0
    functionLinenumber: 7253
    functionLinenumberEnd: 7257
    functionName: object_get_class
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_TYPE
    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: 7272
      start: 7259
    functionDepth: 0
    functionLinenumber: 7259
    functionLinenumberEnd: 7272
    functionName: compatible_with_tp_base
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:7281,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/typeobject.c:7296,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (base == b->tp_base)
      pos:
        line_end: 7280
        line_start: 7280
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7301
      start: 7274
    functionDepth: 4
    functionLinenumber: 7274
    functionLinenumberEnd: 7301
    functionName: same_slots_added
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyTuple_GET_SIZE
    - assert
    linkageType: ''
    returnType: int
    signature: int same_slots_added(PyTypeObject *a, PyTypeObject *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7309,1
    - Dst: compatible_with_tp_base
      Src: /src/cpython/Objects/typeobject.c:7329,1
    - Dst: compatible_with_tp_base
      Src: /src/cpython/Objects/typeobject.c:7331,1
    - Dst: same_slots_added
      Src: /src/cpython/Objects/typeobject.c:7335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7350,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - oldto
    - newto
    - attr
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7357
      start: 7303
    functionDepth: 5
    functionLinenumber: 7303
    functionLinenumberEnd: 7357
    functionName: compatible_for_assignment
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - compatible_with_tp_base
    - same_slots_added
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int compatible_for_assignment(PyTypeObject* oldto, PyTypeObject* newto,
      const char* attr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7364,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:7415,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:7416,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:7417,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:7418,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7419,1
    - Dst: compatible_for_assignment
      Src: /src/cpython/Objects/typeobject.c:7425,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/typeobject.c:7429,1
    - Dst: _PyObject_MaterializeManagedDict_LockHeld
      Src: /src/cpython/Objects/typeobject.c:7431,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7437,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/typeobject.c:7437,1
    - Dst: _PyDict_DetachFromObject
      Src: /src/cpython/Objects/typeobject.c:7439,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:7445,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/typeobject.c:7448,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - self
    - newto
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (_PyObject_GetManagedDict(self) == dict)
      pos:
        line_end: 7436
        line_start: 7436
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7455
      start: 7361
    functionDepth: 11
    functionLinenumber: 7361
    functionLinenumberEnd: 7455
    functionName: object_set_class_world_stopped
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyType_IsSubtype
    - Py_SET_TYPE
    - compatible_for_assignment
    - _PyDict_DetachFromObject
    - _PyObject_GetManagedDict
    - PyErr_Format
    - _PyObject_MaterializeManagedDict_LockHeld
    - Py_TYPE
    - _PyType_HasFeature
    - assert
    linkageType: ''
    returnType: int
    signature: int object_set_class_world_stopped(PyObject *self, PyTypeObject *newto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7462,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:7466,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7467,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7469,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/typeobject.c:7474,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:7479,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7480,1
    - Dst: object_set_class_world_stopped
      Src: /src/cpython/Objects/typeobject.c:7481,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:7482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7485,1
    - Dst: RARE_EVENT_INC
      Src: /src/cpython/Objects/typeobject.c:7488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7492
      start: 7457
    functionDepth: 12
    functionLinenumber: 7457
    functionLinenumberEnd: 7492
    functionName: object_set_class
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - object_set_class_world_stopped
    - types_start_world
    - Py_DECREF
    - PyErr_SetString
    - types_stop_world
    - RARE_EVENT_INC
    - PyErr_Format
    - PySys_Audit
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int object_set_class(PyObject *self, PyObject *value, void *closure)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModule
      Src: /src/cpython/Objects/typeobject.c:7516,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7516,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:7520,1
    - Dst: PyImport_Import
      Src: /src/cpython/Objects/typeobject.c:7523,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7524
      start: 7508
    functionDepth: 1
    functionLinenumber: 7508
    functionLinenumberEnd: 7524
    functionName: import_copyreg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyImport_GetModule
    - PyImport_Import
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_copyreg(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7532,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:7532,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:7535,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:7536,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7536,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7540,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7541,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7545,1
    - Dst: import_copyreg
      Src: /src/cpython/Objects/typeobject.c:7552,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/typeobject.c:7559,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7561,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7565,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(cls))
      pos:
        line_end: 7531
        line_start: 7531
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7573
      start: 7526
    functionDepth: 8
    functionLinenumber: 7526
    functionLinenumberEnd: 7573
    functionName: _PyType_GetSlotNames
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - _Py_ID
    - PyErr_SetString
    - PyList_Check
    - lookup_tp_dict
    - import_copyreg
    - PyErr_Format
    - PyDict_GetItemRef
    - PyObject_CallMethodOneArg
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetSlotNames(PyTypeObject *cls)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7581,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7584,1
    - Dst: _PyObject_IsInstanceDictEmpty
      Src: /src/cpython/Objects/typeobject.c:7588,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7589,1
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/typeobject.c:7592,1
    - Dst: _PyType_GetSlotNames
      Src: /src/cpython/Objects/typeobject.c:7598,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7600,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7604,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7604,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7607,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7608,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7612,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7616,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7620,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7621,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7623,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7628,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:7632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7635,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7639,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7643,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:7643,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:7644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7649,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:7653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7655,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7663,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7674,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7681,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:7684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7695,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 2
    argNames:
    - obj
    - required
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (slotnames == Py_None || PyList_Check(slotnames))
      pos:
        line_end: 7603
        line_start: 7603
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7698
      start: 7575
    functionDepth: 14
    functionLinenumber: 7575
    functionLinenumberEnd: 7698
    functionName: object_getstate_default
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyDict_SetItem
    - _PyType_GetSlotNames
    - PyObject_GetOptionalAttr
    - PyDict_GET_SIZE
    - PyList_GET_SIZE
    - PyObject_GenericGetDict
    - Py_NewRef
    - PyList_Check
    - _PyObject_IsInstanceDictEmpty
    - PyDict_New
    - PyErr_Format
    - PyTuple_Pack
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getstate_default(PyObject *obj, int required)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:7705,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7705,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Objects/typeobject.c:7709,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/typeobject.c:7710,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Objects/typeobject.c:7711,1
    - Dst: object_getstate_default
      Src: /src/cpython/Objects/typeobject.c:7714,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:7717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - required
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7721
      start: 7700
    functionDepth: 15
    functionLinenumber: 7700
    functionLinenumberEnd: 7721
    functionName: object_getstate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - _PyObject_CallNoArgs
    - object_getstate_default
    - Py_DECREF
    - _Py_ID
    - PyCFunction_GET_FUNCTION
    - PyObject_GetAttr
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getstate(PyObject *obj, int required)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_getstate
      Src: /src/cpython/Objects/typeobject.c:7726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7727
      start: 7723
    functionDepth: 16
    functionLinenumber: 7723
    functionLinenumberEnd: 7727
    functionName: _PyObject_GetState
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - object_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GetState(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_getstate_default
      Src: /src/cpython/Objects/typeobject.c:7739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7740
      start: 7735
    functionDepth: 15
    functionLinenumber: 7735
    functionLinenumberEnd: 7740
    functionName: object___getstate___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - object_getstate_default
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___getstate___impl(PyObject *self)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/typeobject.c:7748,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/typeobject.c:7754,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7754,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:7756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7757,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:7761,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7762,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7765,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7768,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7769,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7772,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7775,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:7775,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7776,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:7776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7777,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:7780,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7784,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7785,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7786,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:7789,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7790,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7793,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7794,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7795,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:7799,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/typeobject.c:7805,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7805,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:7807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7808,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:7812,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7813,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7815,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7816,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:7821,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 3
    argNames:
    - obj
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7832
      start: 7742
    functionDepth: 2
    functionLinenumber: 7742
    functionLinenumberEnd: 7832
    functionName: _PyObject_GetNewArguments
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_CLEAR
    - PyTuple_Check
    - PyErr_BadInternalCall
    - _Py_ID
    - PyErr_Occurred
    - _PyObject_LookupSpecial
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_GetNewArguments(PyObject *obj, PyObject **args, PyObject
      **kwargs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/typeobject.c:7839,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7843,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7844,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/typeobject.c:7847,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:7852,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7853,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/typeobject.c:7856,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7856,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7858,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/typeobject.c:7861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7862,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7864,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7869,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - obj
    - listitems
    - dictitems
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (*listitems != NULL && *dictitems != NULL)
      pos:
        line_end: 7868
        line_start: 7868
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7872
      start: 7834
    functionDepth: 3
    functionLinenumber: 7834
    functionLinenumberEnd: 7872
    functionName: _PyObject_GetItemsIter
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_BadInternalCall
    - PyObject_GetIter
    - _Py_ID
    - PyList_Check
    - Py_NewRef
    - PyObject_CallMethodNoArgs
    - PyDict_Check
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GetItemsIter(PyObject *obj, PyObject **listitems,\n
      \                      PyObject **dictitems)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7883,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7884,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7886,1
    - Dst: _PyObject_GetNewArguments
      Src: /src/cpython/Objects/typeobject.c:7889,1
    - Dst: import_copyreg
      Src: /src/cpython/Objects/typeobject.c:7892,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7894,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7895,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7899,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7903,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:7904,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7905,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7907,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7910,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:7911,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7917,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:7918,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7918,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:7920,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:7921,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7921,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7923,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:7926,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7930,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:7933,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7934,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7944,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/typeobject.c:7945,1
    - Dst: object_getstate
      Src: /src/cpython/Objects/typeobject.c:7949,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7949,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:7949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7952,1
    - Dst: _PyObject_GetItemsIter
      Src: /src/cpython/Objects/typeobject.c:7955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7958,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:7962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7965,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7967,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 76
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7969
      start: 7874
    functionDepth: 16
    functionLinenumber: 7874
    functionLinenumberEnd: 7969
    functionName: reduce_newobj
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - object_getstate
    - PyList_Check
    - _PyObject_GetNewArguments
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyDict_Check
    - PyTuple_Pack
    - _PyObject_GetItemsIter
    - PyDict_GET_SIZE
    - Py_DECREF
    - _Py_ID
    - Py_NewRef
    - import_copyreg
    - Py_TYPE
    - PyErr_BadInternalCall
    - PyTuple_SET_ITEM
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reduce_newobj(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reduce_newobj
      Src: /src/cpython/Objects/typeobject.c:7992,1
    - Dst: import_copyreg
      Src: /src/cpython/Objects/typeobject.c:7994,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/typeobject.c:7998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8002
      start: 7986
    functionDepth: 17
    functionLinenumber: 7986
    functionLinenumberEnd: 8002
    functionName: _common_reduce
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - import_copyreg
    - Py_DECREF
    - PyObject_CallMethod
    - reduce_newobj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _common_reduce(PyObject *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _common_reduce
      Src: /src/cpython/Objects/typeobject.c:8014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8015
      start: 8010
    functionDepth: 0
    functionLinenumber: 8010
    functionLinenumberEnd: 8015
    functionName: object___reduce___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _common_reduce
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___reduce___impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:8031,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8031,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8038,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:8039,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8041,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:8045,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/typeobject.c:8046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8047,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:8049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8054,1
    - Dst: _common_reduce
      Src: /src/cpython/Objects/typeobject.c:8057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8058
      start: 8026
    functionDepth: 3
    functionLinenumber: 8026
    functionLinenumberEnd: 8058
    functionName: object___reduce_ex___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _common_reduce
    - _PyObject_CallNoArgs
    - _Py_INTERP_CACHED_OBJECT
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - _PyInterpreterState_GET
    - PyObject_GetAttr
    - Py_TYPE
    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: 8064
      start: 8060
    functionDepth: 0
    functionLinenumber: 8060
    functionLinenumberEnd: 8064
    functionName: object_subclasshook
    functionSourceFile: /src/cpython/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: 8078
      start: 8074
    functionDepth: 0
    functionLinenumber: 8074
    functionLinenumberEnd: 8078
    functionName: object_init_subclass
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:8103,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8104,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8106,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/typeobject.c:8109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8110
      start: 8097
    functionDepth: 4
    functionLinenumber: 8097
    functionLinenumberEnd: 8110
    functionName: object___format___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyUnicode_GET_LENGTH
    - PyObject_Str
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8125,1
    - Dst: _PyVarObject_CAST
      Src: /src/cpython/Objects/typeobject.c:8129,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8131,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/typeobject.c:8133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8134
      start: 8118
    functionDepth: 1
    functionLinenumber: 8118
    functionLinenumberEnd: 8134
    functionName: object___sizeof___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyVarObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___sizeof___impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:8154,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8154,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:8158,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:8160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8161,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:8162,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/typeobject.c:8166,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:8167,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:8174,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8174,1
    - Dst: merge_class_dict
      Src: /src/cpython/Objects/typeobject.c:8179,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/typeobject.c:8182,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8185,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8188
      start: 8145
    functionDepth: 12
    functionLinenumber: 8145
    functionLinenumberEnd: 8188
    functionName: object___dir___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - merge_class_dict
    - _Py_ID
    - PyDict_Copy
    - Py_SETREF
    - PyDict_Keys
    - PyDict_New
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___dir___impl(PyObject *self)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:8260,1
    - Dst: PyDescr_NewClassMethod
      Src: /src/cpython/Objects/typeobject.c:8264,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/typeobject.c:8267,1
    - Dst: PyStaticMethod_New
      Src: /src/cpython/Objects/typeobject.c:8271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8273,1
    - Dst: PyDescr_NewMethod
      Src: /src/cpython/Objects/typeobject.c:8276,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:8284,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:8287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8289,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8295,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:8297,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:8300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8305,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - type
    - meth
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8310
      start: 8253
    functionDepth: 9
    functionLinenumber: 8253
    functionLinenumberEnd: 8310
    functionName: type_add_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyStaticMethod_New
    - PyDescr_NewMethod
    - Py_DECREF
    - PyDict_SetItem
    - PyCFunction_NewEx
    - PyErr_SetString
    - lookup_tp_dict
    - PyDict_SetDefaultRef
    - PyDescr_NewClassMethod
    - PyDescr_NAME
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int type_add_method(PyTypeObject *type, PyMethodDef *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_add_method
      Src: /src/cpython/Objects/typeobject.c:8315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - meth
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8316
      start: 8312
    functionDepth: 10
    functionLinenumber: 8312
    functionLinenumberEnd: 8316
    functionName: _PyType_AddMethod
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - type_add_method
    linkageType: ''
    returnType: int
    signature: int _PyType_AddMethod(PyTypeObject *type, PyMethodDef *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_add_method
      Src: /src/cpython/Objects/typeobject.c:8329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8334
      start: 8320
    functionDepth: 10
    functionLinenumber: 8320
    functionLinenumberEnd: 8334
    functionName: type_add_methods
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_add_method
    linkageType: ''
    returnType: int
    signature: int type_add_methods(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8345,1
    - Dst: PyDescr_NewMember
      Src: /src/cpython/Objects/typeobject.c:8347,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:8351,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:8351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8358
      start: 8337
    functionDepth: 7
    functionLinenumber: 8337
    functionLinenumberEnd: 8358
    functionName: type_add_members
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - lookup_tp_dict
    - PyDict_SetDefaultRef
    - PyDescr_NAME
    - PyDescr_NewMember
    linkageType: ''
    returnType: int
    signature: int type_add_members(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8369,1
    - Dst: PyDescr_NewGetSet
      Src: /src/cpython/Objects/typeobject.c:8371,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:8376,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:8376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8383
      start: 8361
    functionDepth: 7
    functionLinenumber: 8361
    functionLinenumberEnd: 8383
    functionName: type_add_getset
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - lookup_tp_dict
    - PyDescr_NewGetSet
    - PyDict_SetDefaultRef
    - PyDescr_NAME
    linkageType: ''
    returnType: int
    signature: int type_add_getset(PyTypeObject *type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8393,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8399,1
    - Dst: COPYVAL
      Src: /src/cpython/Objects/typeobject.c:8409,1
    - Dst: COPYVAL
      Src: /src/cpython/Objects/typeobject.c:8410,1
    - Dst: COPYVAL
      Src: /src/cpython/Objects/typeobject.c:8411,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:8416,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8418,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8421,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8424,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8427,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8430,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8433,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8436,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8439,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8444,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8447,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8450,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8451
      start: 8386
    functionDepth: 3
    functionLinenumber: 8386
    functionLinenumberEnd: 8451
    functionName: inherit_special
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - COPYVAL
    - PyType_HasFeature
    - is_subtype_with_mro
    - type_add_flags
    - lookup_tp_mro
    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: 8408
      start: 8406
    functionDepth: 0
    functionLinenumber: 8406
    functionLinenumberEnd: 8408
    functionName: COPYVAL
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYVAL(SLOT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8456,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8458,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:8459,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8459,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:8461,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 8457
        line_start: 8457
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 8464
      start: 8453
    functionDepth: 5
    functionLinenumber: 8453
    functionLinenumberEnd: 8464
    functionName: overrides_hash
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_dict
    - _Py_ID
    - PyDict_Contains
    - assert
    linkageType: ''
    returnType: int
    signature: int overrides_hash(PyTypeObject *type)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8498,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8499,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8500,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8501,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8502,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8503,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8504,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8505,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8506,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8507,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8508,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8509,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8510,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8511,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8512,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8513,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8514,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8515,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8516,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8517,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8518,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8519,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8520,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8521,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8522,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8523,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8524,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8525,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8526,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8527,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8528,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8529,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8530,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8531,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8532,1
    - Dst: COPYASYNC
      Src: /src/cpython/Objects/typeobject.c:8539,1
    - Dst: COPYASYNC
      Src: /src/cpython/Objects/typeobject.c:8540,1
    - Dst: COPYASYNC
      Src: /src/cpython/Objects/typeobject.c:8541,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8548,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8549,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8550,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8551,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8552,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8553,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8554,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8555,1
    - Dst: COPYMAP
      Src: /src/cpython/Objects/typeobject.c:8562,1
    - Dst: COPYMAP
      Src: /src/cpython/Objects/typeobject.c:8563,1
    - Dst: COPYMAP
      Src: /src/cpython/Objects/typeobject.c:8564,1
    - Dst: COPYBUF
      Src: /src/cpython/Objects/typeobject.c:8571,1
    - Dst: COPYBUF
      Src: /src/cpython/Objects/typeobject.c:8572,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8577,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8586,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8592,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8596,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8598,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8600,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8602,1
    - Dst: overrides_hash
      Src: /src/cpython/Objects/typeobject.c:8609,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8620,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8621,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8624,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8629,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8630,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8632,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8634,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8635,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8636,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8637,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8638,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8639,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8643,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8660
      start: 8466
    functionDepth: 6
    functionLinenumber: 8466
    functionLinenumberEnd: 8660
    functionName: inherit_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_add_flags
    - COPYASYNC
    - COPYNUM
    - COPYSLOT
    - COPYSEQ
    - COPYMAP
    - COPYBUF
    - overrides_hash
    - _PyType_HasFeature
    linkageType: ''
    returnType: int
    signature: int 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: 8481
      start: 8478
    functionDepth: 0
    functionLinenumber: 8478
    functionLinenumberEnd: 8481
    functionName: SLOTDEFINED
    functionSourceFile: /src/cpython/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: 8484
      start: 8482
    functionDepth: 0
    functionLinenumber: 8482
    functionLinenumberEnd: 8484
    functionName: COPYSLOT
    functionSourceFile: /src/cpython/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: 8486
      start: 8485
    functionDepth: 0
    functionLinenumber: 8485
    functionLinenumberEnd: 8486
    functionName: COPYASYNC
    functionSourceFile: /src/cpython/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: 8487
      start: 8486
    functionDepth: 0
    functionLinenumber: 8486
    functionLinenumberEnd: 8487
    functionName: COPYNUM
    functionSourceFile: /src/cpython/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: 8488
      start: 8487
    functionDepth: 0
    functionLinenumber: 8487
    functionLinenumberEnd: 8488
    functionName: COPYSEQ
    functionSourceFile: /src/cpython/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: 8489
      start: 8488
    functionDepth: 0
    functionLinenumber: 8488
    functionLinenumberEnd: 8489
    functionName: COPYMAP
    functionSourceFile: /src/cpython/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: 8490
      start: 8489
    functionDepth: 0
    functionLinenumber: 8489
    functionLinenumberEnd: 8490
    functionName: COPYBUF
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYBUF(SLOT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:8677,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:8680,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:8681,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:8686,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8694
      start: 8667
    functionDepth: 1
    functionLinenumber: 8667
    functionLinenumberEnd: 8694
    functionName: type_ready_pre_checks
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _PyObject_ASSERT
    linkageType: ''
    returnType: int
    signature: int type_ready_pre_checks(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:8705,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8711,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:8717,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:8718,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_base != NULL || type == &PyBaseObject_Type)
      pos:
        line_end: 8710
        line_start: 8710
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 8724
      start: 8697
    functionDepth: 1
    functionLinenumber: 8697
    functionLinenumberEnd: 8724
    functionName: type_ready_set_base
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyType_Ready
    - _PyType_IsReady
    - assert
    linkageType: ''
    returnType: int
    signature: int type_ready_set_base(PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:8737,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/typeobject.c:8738,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8742
      start: 8726
    functionDepth: 1
    functionLinenumber: 8726
    functionLinenumberEnd: 8742
    functionName: type_ready_set_type
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - Py_SET_TYPE
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int type_ready_set_type(PyTypeObject *type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8749,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:8749,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8752,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:8752,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:8755,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:8759,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:8762,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:8767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - type
    - initial
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (lookup_tp_bases(type) != NULL)
      pos:
        line_end: 8748
        line_start: 8748
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (lookup_tp_bases(type) == NULL)
      pos:
        line_end: 8751
        line_start: 8751
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 8770
      start: 8744
    functionDepth: 4
    functionLinenumber: 8744
    functionLinenumberEnd: 8770
    functionName: type_ready_set_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - set_tp_bases
    - PyTuple_New
    - lookup_tp_bases
    - PyTuple_Pack
    - assert
    linkageType: ''
    returnType: int
    signature: int type_ready_set_bases(PyTypeObject *type, int initial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8776,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:8780,1
    - Dst: set_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8786
      start: 8773
    functionDepth: 10
    functionLinenumber: 8773
    functionLinenumberEnd: 8786
    functionName: type_ready_set_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_dict
    - set_tp_dict
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int type_ready_set_dict(PyTypeObject *type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8794,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:8795,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8795,1
    - Dst: _PyType_DocWithoutSignature
      Src: /src/cpython/Objects/typeobject.c:8805,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:8806,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:8811,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8815,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:8818,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8823
      start: 8791
    functionDepth: 9
    functionLinenumber: 8791
    functionLinenumberEnd: 8823
    functionName: type_dict_set_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - _PyType_DocWithoutSignature
    - Py_DECREF
    - _Py_ID
    - PyDict_Contains
    - lookup_tp_dict
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int type_dict_set_doc(PyTypeObject *type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: add_operators
      Src: /src/cpython/Objects/typeobject.c:8830,1
    - Dst: type_add_methods
      Src: /src/cpython/Objects/typeobject.c:8833,1
    - Dst: type_add_members
      Src: /src/cpython/Objects/typeobject.c:8836,1
    - Dst: type_add_getset
      Src: /src/cpython/Objects/typeobject.c:8839,1
    - Dst: type_dict_set_doc
      Src: /src/cpython/Objects/typeobject.c:8842,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8846
      start: 8826
    functionDepth: 11
    functionLinenumber: 8826
    functionLinenumberEnd: 8846
    functionName: type_ready_fill_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_dict_set_doc
    - type_add_members
    - type_add_getset
    - add_operators
    - type_add_methods
    linkageType: ''
    returnType: int
    signature: int type_ready_fill_dict(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8853,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8874
      start: 8848
    functionDepth: 1
    functionLinenumber: 8848
    functionLinenumberEnd: 8874
    functionName: type_ready_preheader
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int type_ready_preheader(PyTypeObject *type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:8879,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8883,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:8883,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8886,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:8886,1
    - Dst: mro_internal
      Src: /src/cpython/Objects/typeobject.c:8890,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:8893,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8894,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8895,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:8895,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8900,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:8901,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:8903,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:8903,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8905,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8911,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - type
    - initial
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (lookup_tp_mro(type) != NULL)
      pos:
        line_end: 8882
        line_start: 8882
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (lookup_tp_mro(type) == NULL)
      pos:
        line_end: 8885
        line_start: 8885
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (mro != NULL)
      pos:
        line_end: 8893
        line_start: 8893
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 8894
        line_start: 8894
        source_file: /src/cpython/Objects/typeobject.c
    - condition: "(!(type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) ||\n                   (base->tp_flags
        & _Py_TPFLAGS_STATIC_BUILTIN))"
      pos:
        line_end: 8911
        line_start: 8910
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_flags & Py_TPFLAGS_IMMUTABLETYPE)
      pos:
        line_end: 8899
        line_start: 8899
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 8916
      start: 8876
    functionDepth: 15
    functionLinenumber: 8876
    functionLinenumberEnd: 8916
    functionName: type_ready_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - _PyType_CAST
    - mro_internal
    - PyTuple_GET_ITEM
    - ASSERT_TYPE_LOCK_HELD
    - PyErr_Format
    - lookup_tp_mro
    linkageType: ''
    returnType: int
    signature: int type_ready_mro(PyTypeObject *type, int initial)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8942
      start: 8924
    functionDepth: 0
    functionLinenumber: 8924
    functionLinenumberEnd: 8942
    functionName: type_ready_inherit_as_structs
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void type_ready_inherit_as_structs(PyTypeObject *type, PyTypeObject
      *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8949
      start: 8944
    functionDepth: 3
    functionLinenumber: 8944
    functionLinenumberEnd: 8949
    functionName: inherit_patma_flags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_add_flags
    linkageType: ''
    returnType: void
    signature: void inherit_patma_flags(PyTypeObject *type, PyTypeObject *base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:8954,1
    - Dst: inherit_special
      Src: /src/cpython/Objects/typeobject.c:8959,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:8963,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:8964,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:8966,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:8967,1
    - Dst: inherit_slots
      Src: /src/cpython/Objects/typeobject.c:8968,1
    - Dst: inherit_patma_flags
      Src: /src/cpython/Objects/typeobject.c:8971,1
    - Dst: type_ready_inherit_as_structs
      Src: /src/cpython/Objects/typeobject.c:8976,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:8980,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8986,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8994
      start: 8951
    functionDepth: 7
    functionLinenumber: 8951
    functionLinenumberEnd: 8994
    functionName: type_ready_inherit
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - inherit_slots
    - _PyType_IS_GC
    - PyTuple_GET_SIZE
    - inherit_patma_flags
    - type_ready_inherit_as_structs
    - PyTuple_GET_ITEM
    - ASSERT_TYPE_LOCK_HELD
    - PyErr_Format
    - inherit_special
    - lookup_tp_mro
    linkageType: ''
    returnType: int
    signature: int type_ready_inherit(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:9009,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:9010,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:9010,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:9018,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:9018,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9023
      start: 9002
    functionDepth: 9
    functionLinenumber: 9002
    functionLinenumberEnd: 9023
    functionName: type_ready_set_hash
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_dict
    - _Py_ID
    - PyDict_Contains
    - PyDict_SetItem
    linkageType: ''
    returnType: int
    signature: int type_ready_set_hash(PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:9030,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9031,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9033,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:9034,1
    - Dst: add_subclass
      Src: /src/cpython/Objects/typeobject.c:9034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9039
      start: 9027
    functionDepth: 1
    functionLinenumber: 9027
    functionLinenumberEnd: 9039
    functionName: type_ready_add_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - lookup_tp_bases
    - PyTuple_GET_ITEM
    - add_subclass
    linkageType: ''
    returnType: int
    signature: int type_ready_add_subclasses(PyTypeObject *type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9063,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9065,1
    - Dst: add_tp_new_wrapper
      Src: /src/cpython/Objects/typeobject.c:9074,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - type
    - initial
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (type->tp_flags & Py_TPFLAGS_DISALLOW_INSTANTIATION)
      pos:
        line_end: 9064
        line_start: 9064
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9093
      start: 9044
    functionDepth: 3
    functionLinenumber: 9044
    functionLinenumberEnd: 9093
    functionName: type_ready_set_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_add_flags
    - assert
    - add_tp_new_wrapper
    linkageType: ''
    returnType: int
    signature: int type_ready_set_new(PyTypeObject *type, int initial)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9102,1
    - Dst: _PyDict_NewKeysForClass
      Src: /src/cpython/Objects/typeobject.c:9110,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:9112,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9120
      start: 9095
    functionDepth: 5
    functionLinenumber: 9095
    functionLinenumberEnd: 9120
    functionName: type_ready_managed_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - type_add_flags
    - _PyDict_NewKeysForClass
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int type_ready_managed_dict(PyTypeObject *type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9130,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9138,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9153
      start: 9122
    functionDepth: 1
    functionLinenumber: 9122
    functionLinenumberEnd: 9153
    functionName: type_ready_post_checks
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int type_ready_post_checks(PyTypeObject *type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:9159,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:9161,1
    - Dst: is_readying
      Src: /src/cpython/Objects/typeobject.c:9161,1
    - Dst: start_readying
      Src: /src/cpython/Objects/typeobject.c:9162,1
    - Dst: type_ready_pre_checks
      Src: /src/cpython/Objects/typeobject.c:9164,1
    - Dst: _Py_AddToAllObjects
      Src: /src/cpython/Objects/typeobject.c:9174,1
    - Dst: type_ready_set_dict
      Src: /src/cpython/Objects/typeobject.c:9178,1
    - Dst: type_ready_set_base
      Src: /src/cpython/Objects/typeobject.c:9181,1
    - Dst: type_ready_set_type
      Src: /src/cpython/Objects/typeobject.c:9184,1
    - Dst: type_ready_set_bases
      Src: /src/cpython/Objects/typeobject.c:9187,1
    - Dst: type_ready_mro
      Src: /src/cpython/Objects/typeobject.c:9190,1
    - Dst: type_ready_set_new
      Src: /src/cpython/Objects/typeobject.c:9193,1
    - Dst: type_ready_fill_dict
      Src: /src/cpython/Objects/typeobject.c:9196,1
    - Dst: type_ready_inherit
      Src: /src/cpython/Objects/typeobject.c:9200,1
    - Dst: type_ready_preheader
      Src: /src/cpython/Objects/typeobject.c:9203,1
    - Dst: type_ready_set_hash
      Src: /src/cpython/Objects/typeobject.c:9207,1
    - Dst: type_ready_add_subclasses
      Src: /src/cpython/Objects/typeobject.c:9210,1
    - Dst: type_ready_managed_dict
      Src: /src/cpython/Objects/typeobject.c:9214,1
    - Dst: type_ready_post_checks
      Src: /src/cpython/Objects/typeobject.c:9217,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9224,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9226,1
    - Dst: stop_readying
      Src: /src/cpython/Objects/typeobject.c:9229,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9231,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:9231,1
    - Dst: stop_readying
      Src: /src/cpython/Objects/typeobject.c:9235,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 77
    argCount: 2
    argNames:
    - type
    - initial
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (type->tp_flags & Py_TPFLAGS_READY)
      pos:
        line_end: 9225
        line_start: 9225
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 9230
        line_start: 9230
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9237
      start: 9156
    functionDepth: 16
    functionLinenumber: 9156
    functionLinenumberEnd: 9237
    functionName: type_ready
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - is_readying
    - type_ready_mro
    - type_ready_set_hash
    - ASSERT_TYPE_LOCK_HELD
    - type_ready_pre_checks
    - _Py_AddToAllObjects
    - type_add_flags
    - start_readying
    - type_ready_add_subclasses
    - type_ready_set_bases
    - type_ready_set_base
    - stop_readying
    - type_ready_post_checks
    - _PyObject_ASSERT
    - type_ready_set_new
    - type_ready_managed_dict
    - type_ready_fill_dict
    - type_ready_set_type
    - type_ready_preheader
    - type_ready_inherit
    - type_ready_set_dict
    - _PyType_CheckConsistency
    - assert
    linkageType: ''
    returnType: int
    signature: int type_ready(PyTypeObject *type, int initial)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9243,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:9243,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9246,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9250,1
    - Dst: _Py_SetImmortalUntracked
      Src: /src/cpython/Objects/typeobject.c:9252,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9256,1
    - Dst: type_ready
      Src: /src/cpython/Objects/typeobject.c:9258,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9261,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:9261,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 9242
        line_start: 9242
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 9245
        line_start: 9245
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 9260
        line_start: 9260
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9265
      start: 9239
    functionDepth: 17
    functionLinenumber: 9239
    functionLinenumberEnd: 9265
    functionName: PyType_Ready
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 32
    functionsReached:
    - END_TYPE_LOCK
    - _Py_SetImmortalUntracked
    - _PyType_CheckConsistency
    - type_ready
    - BEGIN_TYPE_LOCK
    - type_add_flags
    - assert
    linkageType: ''
    returnType: int
    signature: int PyType_Ready(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9272,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:9272,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9273,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9274,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9275,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9278,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9280,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9281,1
    - Dst: next_global_version_tag
      Src: /src/cpython/Objects/typeobject.c:9284,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9285,1
    - Dst: _PyType_SetVersion
      Src: /src/cpython/Objects/typeobject.c:9286,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9290,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9291,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9292,1
    - Dst: managed_static_type_state_init
      Src: /src/cpython/Objects/typeobject.c:9295,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9298,1
    - Dst: type_ready
      Src: /src/cpython/Objects/typeobject.c:9299,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9300,1
    - Dst: _PyStaticType_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:9302,1
    - Dst: managed_static_type_state_clear
      Src: /src/cpython/Objects/typeobject.c:9303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - interp
    - self
    - isbuiltin
    - initial
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - int
    - int
    assertStmts:
    - condition: (self->tp_version_tag != 0)
      pos:
        line_end: 9291
        line_start: 9291
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(self->tp_flags & Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 9272
        line_start: 9272
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(self->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF))
      pos:
        line_end: 9274
        line_start: 9274
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (next_version_tag != 0)
      pos:
        line_end: 9284
        line_start: 9284
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(self->tp_flags & Py_TPFLAGS_MANAGED_DICT))
      pos:
        line_end: 9273
        line_start: 9273
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)
      pos:
        line_end: 9290
        line_start: 9290
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_Py_IsImmortal((PyObject *)self))
      pos:
        line_end: 9271
        line_start: 9271
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((self->tp_flags & Py_TPFLAGS_READY) == 0)
      pos:
        line_end: 9277
        line_start: 9277
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!initial)
      pos:
        line_end: 9289
        line_start: 9289
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9306
      start: 9268
    functionDepth: 17
    functionLinenumber: 9268
    functionLinenumberEnd: 9306
    functionName: init_static_type
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - next_global_version_tag
    - END_TYPE_LOCK
    - _PyType_SetVersion
    - managed_static_type_state_clear
    - _PyStaticType_ClearWeakRefs
    - managed_static_type_state_init
    - type_ready
    - BEGIN_TYPE_LOCK
    - type_add_flags
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: "int init_static_type(PyInterpreterState *interp, PyTypeObject *self,\n
      \                int isbuiltin, int initial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_static_type
      Src: /src/cpython/Objects/typeobject.c:9311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - self
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9312
      start: 9308
    functionDepth: 18
    functionLinenumber: 9308
    functionLinenumberEnd: 9312
    functionName: _PyStaticType_InitForExtension
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - init_static_type
    linkageType: ''
    returnType: int
    signature: int _PyStaticType_InitForExtension(PyInterpreterState *interp, PyTypeObject
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_static_type
      Src: /src/cpython/Objects/typeobject.c:9317,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/typeobject.c:9317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - self
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9318
      start: 9314
    functionDepth: 18
    functionLinenumber: 9314
    functionLinenumberEnd: 9318
    functionName: _PyStaticType_InitBuiltin
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - _Py_IsMainInterpreter
    - init_static_type
    linkageType: ''
    returnType: int
    signature: int _PyStaticType_InitBuiltin(PyInterpreterState *interp, PyTypeObject
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/typeobject.c:9324,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Objects/typeobject.c:9328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9330,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9337,1
    - Dst: init_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9342,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9346,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:9346,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:9348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 9345
        line_start: 9345
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9352
      start: 9321
    functionDepth: 11
    functionLinenumber: 9321
    functionLinenumberEnd: 9352
    functionName: add_subclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyWeakref_NewRef
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PyDict_SetItem
    - lookup_tp_subclasses
    - PyDict_CheckExact
    - init_tp_subclasses
    - assert
    linkageType: ''
    returnType: int
    signature: int add_subclass(PyTypeObject *base, PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9357,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9360,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:9362,1
    - Dst: add_subclass
      Src: /src/cpython/Objects/typeobject.c:9363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9368
      start: 9354
    functionDepth: 12
    functionLinenumber: 9354
    functionLinenumberEnd: 9368
    functionName: add_all_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyType_CAST
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - add_subclass
    linkageType: ''
    returnType: int
    signature: int add_all_subclasses(PyTypeObject *type, PyObject *bases)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/typeobject.c:9373,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:9377,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9383,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:9385,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:9386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9391,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:9392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9399
      start: 9370
    functionDepth: 5
    functionLinenumber: 9370
    functionLinenumberEnd: 9399
    functionName: get_subclasses_key
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - Py_DECREF
    - lookup_tp_subclasses
    - type_from_ref
    - PyDict_Next
    - Py_NewRef
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_subclasses_key(PyTypeObject *type, PyTypeObject *base)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9404,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9408,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:9408,1
    - Dst: get_subclasses_key
      Src: /src/cpython/Objects/typeobject.c:9410,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:9411,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:9415,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:9417,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/typeobject.c:9419,1
    - Dst: clear_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 9407
        line_start: 9407
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9422
      start: 9401
    functionDepth: 6
    functionLinenumber: 9401
    functionLinenumberEnd: 9422
    functionName: remove_subclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_CheckExact
    - lookup_tp_subclasses
    - clear_tp_subclasses
    - PyDict_DelItem
    - get_subclasses_key
    - PyDict_Size
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: void
    signature: void remove_subclass(PyTypeObject *base, PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9427,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9429,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9429,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9431,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9432,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:9433,1
    - Dst: remove_subclass
      Src: /src/cpython/Objects/typeobject.c:9434,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9437,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (bases != NULL)
      pos:
        line_end: 9426
        line_start: 9426
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 9428
        line_start: 9428
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 9436
        line_start: 9436
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9438
      start: 9424
    functionDepth: 7
    functionLinenumber: 9424
    functionLinenumberEnd: 9438
    functionName: remove_all_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - remove_subclass
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: void
    signature: void remove_all_subclasses(PyTypeObject *type, PyObject *bases)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:9443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:9444,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9448,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9450,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ob
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9454
      start: 9440
    functionDepth: 1
    functionLinenumber: 9440
    functionLinenumberEnd: 9454
    functionName: check_num_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_num_args(PyObject *ob, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:9462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:9463,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9467,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9471,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9475
      start: 9456
    functionDepth: 1
    functionLinenumber: 9456
    functionLinenumberEnd: 9475
    functionName: check_pow_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t check_pow_args(PyObject *ob)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/cpython/Objects/typeobject.c:9491,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9494,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/typeobject.c:9496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9497
      start: 9485
    functionDepth: 2
    functionLinenumber: 9485
    functionLinenumberEnd: 9497
    functionName: wrap_lenfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyErr_Occurred
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_lenfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/cpython/Objects/typeobject.c:9505,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9508,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/typeobject.c:9510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9511
      start: 9499
    functionDepth: 2
    functionLinenumber: 9499
    functionLinenumberEnd: 9511
    functionName: wrap_inquirypred
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyBool_FromLong
    - 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/cpython/Objects/typeobject.c:9519,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9523
      start: 9513
    functionDepth: 2
    functionLinenumber: 9513
    functionLinenumberEnd: 9523
    functionName: wrap_binaryfunc
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9531,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9535
      start: 9525
    functionDepth: 2
    functionLinenumber: 9525
    functionLinenumberEnd: 9535
    functionName: wrap_binaryfunc_l
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9543,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9547
      start: 9537
    functionDepth: 2
    functionLinenumber: 9537
    functionLinenumberEnd: 9547
    functionName: wrap_binaryfunc_r
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_pow_args
      Src: /src/cpython/Objects/typeobject.c:9558,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9562,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9549
    functionDepth: 2
    functionLinenumber: 9549
    functionLinenumberEnd: 9568
    functionName: wrap_ternaryfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - check_pow_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_ternaryfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_pow_args
      Src: /src/cpython/Objects/typeobject.c:9579,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9583,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9589
      start: 9570
    functionDepth: 2
    functionLinenumber: 9570
    functionLinenumberEnd: 9589
    functionName: wrap_ternaryfunc_r
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - check_pow_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_ternaryfunc_r(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/cpython/Objects/typeobject.c:9596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9599
      start: 9591
    functionDepth: 2
    functionLinenumber: 9591
    functionLinenumberEnd: 9599
    functionName: wrap_unaryfunc
    functionSourceFile: /src/cpython/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: check_num_args
      Src: /src/cpython/Objects/typeobject.c:9608,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9610,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:9611,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9615
      start: 9601
    functionDepth: 3
    functionLinenumber: 9601
    functionLinenumberEnd: 9615
    functionName: wrap_indexargfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_indexargfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:9622,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9623,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:9626,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9630,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 9629
        line_start: 9629
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9637
      start: 9617
    functionDepth: 3
    functionLinenumber: 9617
    functionLinenumberEnd: 9637
    functionName: getindex
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - PyErr_Occurred
    - Py_TYPE
    - assert
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t getindex(PyObject *self, PyObject *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9646,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9647,1
    - Dst: getindex
      Src: /src/cpython/Objects/typeobject.c:9648,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9649,1
    - Dst: check_num_args
      Src: /src/cpython/Objects/typeobject.c:9653,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 9653
        line_start: 9653
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9656
      start: 9639
    functionDepth: 4
    functionLinenumber: 9639
    functionLinenumberEnd: 9656
    functionName: wrap_sq_item
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - getindex
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_sq_item(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/typeobject.c:9666,1
    - Dst: getindex
      Src: /src/cpython/Objects/typeobject.c:9668,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9669,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9672,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9675
      start: 9658
    functionDepth: 4
    functionLinenumber: 9658
    functionLinenumberEnd: 9675
    functionName: wrap_sq_setitem
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9685,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9687,1
    - Dst: getindex
      Src: /src/cpython/Objects/typeobject.c:9688,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9689,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9695
      start: 9677
    functionDepth: 4
    functionLinenumber: 9677
    functionLinenumberEnd: 9695
    functionName: wrap_sq_delitem
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyErr_Occurred
    - getindex
    - 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/cpython/Objects/typeobject.c:9705,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9707,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9709,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/typeobject.c:9712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9713
      start: 9698
    functionDepth: 2
    functionLinenumber: 9698
    functionLinenumberEnd: 9713
    functionName: wrap_objobjproc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyBool_FromLong
    - 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/cpython/Objects/typeobject.c:9722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9728
      start: 9715
    functionDepth: 1
    functionLinenumber: 9715
    functionLinenumberEnd: 9728
    functionName: wrap_objobjargproc
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9737,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9739,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9744
      start: 9730
    functionDepth: 2
    functionLinenumber: 9730
    functionLinenumberEnd: 9744
    functionName: wrap_delitem
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:9753,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:9755,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:9757,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9762,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:9762,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9767,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:9768,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9768,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9788,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - self
    - func
    - what
    argTypes:
    - PyObject*
    - setattrofunc
    - char*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 9761
        line_start: 9761
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9796
      start: 9750
    functionDepth: 2
    functionLinenumber: 9750
    functionLinenumberEnd: 9796
    functionName: hackcheck_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - lookup_tp_mro
    - PyTuple_Check
    - _PyType_CAST
    - PyTuple_GET_ITEM
    - ASSERT_TYPE_LOCK_HELD
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int hackcheck_unlocked(PyObject *self, setattrofunc func, const char
      *what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:9801,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9806,1
    - Dst: hackcheck_unlocked
      Src: /src/cpython/Objects/typeobject.c:9807,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - func
    - what
    argTypes:
    - PyObject*
    - setattrofunc
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9810
      start: 9798
    functionDepth: 3
    functionLinenumber: 9798
    functionLinenumberEnd: 9810
    functionName: hackcheck
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    - hackcheck_unlocked
    linkageType: ''
    returnType: int
    signature: int hackcheck(PyObject *self, setattrofunc func, const char *what)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/typeobject.c:9819,1
    - Dst: hackcheck
      Src: /src/cpython/Objects/typeobject.c:9821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9827
      start: 9812
    functionDepth: 4
    functionLinenumber: 9812
    functionLinenumberEnd: 9827
    functionName: wrap_setattr
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9836,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9838,1
    - Dst: hackcheck
      Src: /src/cpython/Objects/typeobject.c:9839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9845
      start: 9829
    functionDepth: 4
    functionLinenumber: 9829
    functionLinenumberEnd: 9845
    functionName: wrap_delattr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - hackcheck
    - 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/cpython/Objects/typeobject.c:9853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9856,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/typeobject.c:9858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9859
      start: 9847
    functionDepth: 2
    functionLinenumber: 9847
    functionLinenumberEnd: 9859
    functionName: wrap_hashfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyErr_Occurred
    - PyLong_FromSsize_t
    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: 9867
      start: 9861
    functionDepth: 0
    functionLinenumber: 9861
    functionLinenumberEnd: 9867
    functionName: wrap_call
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9879
      start: 9869
    functionDepth: 2
    functionLinenumber: 9869
    functionLinenumberEnd: 9879
    functionName: wrap_del
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9887,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - args
    - wrapped
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9891
      start: 9881
    functionDepth: 2
    functionLinenumber: 9881
    functionLinenumberEnd: 9891
    functionName: wrap_richcmpfunc
    functionSourceFile: /src/cpython/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: 9900
      start: 9894
    functionDepth: 0
    functionLinenumber: 9894
    functionLinenumberEnd: 9900
    functionName: RICHCMP_WRAPPER
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RICHCMP_WRAPPER(NAME, OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/cpython/Objects/typeobject.c:9914,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9917,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/typeobject.c:9918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9920
      start: 9908
    functionDepth: 2
    functionLinenumber: 9908
    functionLinenumberEnd: 9920
    functionName: wrap_next
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:9936,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9941
      start: 9922
    functionDepth: 1
    functionLinenumber: 9922
    functionLinenumberEnd: 9941
    functionName: wrap_descr_get
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9956
      start: 9943
    functionDepth: 1
    functionLinenumber: 9943
    functionLinenumberEnd: 9956
    functionName: wrap_descr_set
    functionSourceFile: /src/cpython/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/cpython/Objects/typeobject.c:9965,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9972
      start: 9958
    functionDepth: 2
    functionLinenumber: 9958
    functionLinenumberEnd: 9972
    functionName: wrap_descr_delete
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/typeobject.c:9979,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:9982,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9983,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:9987,1
    - Dst: _PyMemoryView_FromBufferProc
      Src: /src/cpython/Objects/typeobject.c:9992,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9994
      start: 9974
    functionDepth: 3
    functionLinenumber: 9974
    functionLinenumberEnd: 9994
    functionName: wrap_buffer
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyArg_UnpackTuple
    - _PyMemoryView_FromBufferProc
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_buffer(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/typeobject.c:10000,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/typeobject.c:10003,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10004,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10014,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10019,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/typeobject.c:10023,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10027,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10029
      start: 9996
    functionDepth: 1
    functionLinenumber: 9996
    functionLinenumberEnd: 10029
    functionName: wrap_releasebuffer
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyArg_UnpackTuple
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyMemoryView_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_releasebuffer(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/cpython/Objects/typeobject.c:10036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - args
    - wrapped
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10039
      start: 10031
    functionDepth: 0
    functionLinenumber: 10031
    functionLinenumberEnd: 10039
    functionName: wrap_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_init(PyObject *self, PyObject *args, void *wrapped, PyObject *kwds)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:10047,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10048,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:10054,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:10054,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10055,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10060,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:10061,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10062,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10065,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:10070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10071,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10090,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10094,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Objects/typeobject.c:10102,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:10102,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/cpython/Objects/typeobject.c:10105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10106,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10108
      start: 10041
    functionDepth: 3
    functionLinenumber: 10041
    functionLinenumberEnd: 10108
    functionName: tp_new_wrapper
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyType_IsSubtype
    - PyTuple_Check
    - PyTuple_GET_ITEM
    - PyTuple_GetSlice
    - PyErr_Format
    - Py_TYPE
    - PyTypeObject*::tp_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tp_new_wrapper(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:10121,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:10122,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10122,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/typeobject.c:10130,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:10134,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:10135,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10138
      start: 10118
    functionDepth: 9
    functionLinenumber: 10118
    functionLinenumberEnd: 10138
    functionName: add_tp_new_wrapper
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyCFunction_NewEx
    - _Py_ID
    - PyDict_Contains
    - lookup_tp_dict
    - _PyObject_SetDeferredRefcount
    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
    - ','
    - DUNDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10150
      start: 10143
    functionDepth: 0
    functionLinenumber: 10143
    functionLinenumberEnd: 10150
    functionName: SLOT0
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT0(FUNCNAME, DUNDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNCNAME
    - ','
    - DUNDER
    - ','
    - ARG1TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10158
      start: 10151
    functionDepth: 0
    functionLinenumber: 10151
    functionLinenumberEnd: 10158
    functionName: SLOT1
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT1(FUNCNAME, DUNDER, ARG1TYPE)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:10167,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10167,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:10175,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10180,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/typeobject.c:10185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - left
    - right
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10189
      start: 10161
    functionDepth: 4
    functionLinenumber: 10161
    functionLinenumberEnd: 10189
    functionName: method_is_overloaded
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_TYPE
    - PyObject_GetOptionalAttr
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int method_is_overloaded(PyObject *left, PyObject *right, PyObject
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - FUNCNAME
    - ','
    - TESTFUNC
    - ','
    - SLOTNAME
    - ','
    - DUNDER
    - ','
    - RDUNDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10234
      start: 10192
    functionDepth: 0
    functionLinenumber: 10192
    functionLinenumberEnd: 10234
    functionName: SLOT1BINFULL
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT1BINFULL(FUNCNAME, TESTFUNC, SLOTNAME, DUNDER, RDUNDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - FUNCNAME
    - ','
    - SLOTNAME
    - ','
    - DUNDER
    - ','
    - RDUNDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10237
      start: 10235
    functionDepth: 0
    functionLinenumber: 10235
    functionLinenumberEnd: 10237
    functionName: SLOT1BIN
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT1BIN(FUNCNAME, SLOTNAME, DUNDER, RDUNDER)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10242,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10242,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:10248,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/typeobject.c:10248,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10252,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/typeobject.c:10252,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/typeobject.c:10253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10254,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10255,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:10260,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10261,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/typeobject.c:10261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(res))
      pos:
        line_end: 10251
        line_start: 10251
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (len >= 0 || PyErr_ExceptionMatches(PyExc_OverflowError))
      pos:
        line_end: 10260
        line_start: 10260
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 10264
      start: 10238
    functionDepth: 4
    functionLinenumber: 10238
    functionLinenumberEnd: 10264
    functionName: slot_sq_length
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - Py_DECREF
    - _PyNumber_Index
    - _Py_ID
    - PyLong_Check
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - Py_SETREF
    - PyErr_ExceptionMatches
    - vectorcall_method
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t slot_sq_length(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/typeobject.c:10269,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10274,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10277
      start: 10266
    functionDepth: 4
    functionLinenumber: 10266
    functionLinenumberEnd: 10277
    functionName: slot_sq_item
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - vectorcall_method
    - _Py_ID
    - 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/cpython/Objects/typeobject.c:10286,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10294,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10294,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10298,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10307
      start: 10279
    functionDepth: 4
    functionLinenumber: 10279
    functionLinenumberEnd: 10307
    functionName: slot_sq_ass_item
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - vectorcall_method
    - _Py_ID
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: maybe_call_special_one_arg
      Src: /src/cpython/Objects/typeobject.c:10313,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10313,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10316,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10321,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/typeobject.c:10325,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:10327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10330
      start: 10309
    functionDepth: 5
    functionLinenumber: 10309
    functionLinenumberEnd: 10330
    functionName: slot_sq_contains
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - maybe_call_special_one_arg
    - Py_DECREF
    - PyErr_Occurred
    - _PySequence_IterSearch
    - _Py_ID
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int slot_sq_contains(PyObject *self, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10345,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10345,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10349,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10356
      start: 10336
    functionDepth: 4
    functionLinenumber: 10336
    functionLinenumberEnd: 10356
    functionName: slot_mp_ass_subscript
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int slot_mp_ass_subscript(PyObject *self, PyObject *key, PyObject *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: slot_nb_power_binary
      Src: /src/cpython/Objects/typeobject.c:10373,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:10377,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:10378,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10378,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10379,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10380,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10381,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10382,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:10384,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10384,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10384,1
    - Dst: method_is_overloaded
      Src: /src/cpython/Objects/typeobject.c:10385,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10385,1
    - Dst: vectorcall_maybe
      Src: /src/cpython/Objects/typeobject.c:10393,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10396,1
    - Dst: vectorcall_maybe
      Src: /src/cpython/Objects/typeobject.c:10403,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10403,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:10405,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10407,1
    - Dst: vectorcall_maybe
      Src: /src/cpython/Objects/typeobject.c:10413,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10413,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - self
    - other
    - modulus
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10416
      start: 10369
    functionDepth: 5
    functionLinenumber: 10369
    functionLinenumberEnd: 10416
    functionName: slot_nb_power
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_IsSubtype
    - _Py_ID
    - _PyThreadState_GET
    - Py_IS_TYPE
    - method_is_overloaded
    - vectorcall_maybe
    - Py_TYPE
    - slot_nb_power_binary
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_nb_power(PyObject *self, PyObject *other, PyObject *modulus)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: maybe_call_special_no_args
      Src: /src/cpython/Objects/typeobject.c:10427,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10427,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10430,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10432,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10435,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Objects/typeobject.c:10436,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10436,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10437,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:10450,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/typeobject.c:10452,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:10453,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10463
      start: 10422
    functionDepth: 5
    functionLinenumber: 10422
    functionLinenumberEnd: 10463
    functionName: slot_nb_bool
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - maybe_call_special_no_args
    - _PyObject_MaybeCallSpecialNoArgs
    - PyBool_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int slot_nb_bool(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10470,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10471
      start: 10466
    functionDepth: 4
    functionLinenumber: 10466
    functionLinenumberEnd: 10471
    functionName: slot_nb_index
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_nb_index(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10493,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg1
    - arg2
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10494
      start: 10489
    functionDepth: 4
    functionLinenumber: 10489
    functionLinenumberEnd: 10494
    functionName: slot_nb_inplace_power
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_nb_inplace_power(PyObject *self, PyObject * arg1, PyObject *arg2)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Objects/typeobject.c:10509,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10509,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10513,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:10516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10518
      start: 10506
    functionDepth: 10
    functionLinenumber: 10506
    functionLinenumberEnd: 10518
    functionName: slot_tp_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - _Py_ID
    - _PyObject_MaybeCallSpecialNoArgs
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_repr(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: maybe_call_special_no_args
      Src: /src/cpython/Objects/typeobject.c:10527,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10527,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10529,1
    - Dst: PyObject_HashNotImplemented
      Src: /src/cpython/Objects/typeobject.c:10532,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/typeobject.c:10534,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10535,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:10544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10545,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:10549,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/typeobject.c:10550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10557
      start: 10522
    functionDepth: 4
    functionLinenumber: 10522
    functionLinenumberEnd: 10557
    functionName: slot_tp_hash
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - tp_hash
    - PyErr_Occurred
    - PyObject_HashNotImplemented
    - _Py_ID
    - PyLong_Check
    - PyErr_SetString
    - maybe_call_special_no_args
    - PyErr_Clear
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t slot_tp_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_method
      Src: /src/cpython/Objects/typeobject.c:10562,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10563
      start: 10559
    functionDepth: 4
    functionLinenumber: 10559
    functionLinenumberEnd: 10563
    functionName: slot_tp_call
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10580,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10581
      start: 10576
    functionDepth: 4
    functionLinenumber: 10576
    functionLinenumberEnd: 10581
    functionName: _Py_slot_tp_getattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_slot_tp_getattro(PyObject *self, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:10588,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10588,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:10590,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10594,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:10597,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10597,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/typeobject.c:10603,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - attr
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10606
      start: 10583
    functionDepth: 1
    functionLinenumber: 10583
    functionLinenumberEnd: 10606
    functionName: call_attribute
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - f
    - Py_XDECREF
    - PyObject_Vectorcall
    - PyObject_CallOneArg
    - Py_TYPE
    - _PyType_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_attribute(PyObject *self, PyObject *attr, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10611,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:10619,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10619,1
    - Dst: _Py_slot_tp_getattro
      Src: /src/cpython/Objects/typeobject.c:10626,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:10633,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10633,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:10635,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10638,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Objects/typeobject.c:10639,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10642,1
    - Dst: call_attribute
      Src: /src/cpython/Objects/typeobject.c:10643,1
    - Dst: call_attribute
      Src: /src/cpython/Objects/typeobject.c:10647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10648,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/typeobject.c:10649,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:10650,1
    - Dst: call_attribute
      Src: /src/cpython/Objects/typeobject.c:10651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10657
      start: 10608
    functionDepth: 5
    functionLinenumber: 10608
    functionLinenumberEnd: 10657
    functionName: _Py_slot_tp_getattr_hook
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - _Py_slot_tp_getattro
    - _Py_ID
    - _PyType_LookupRef
    - _PyObject_GenericGetAttrWithDict
    - Py_IS_TYPE
    - call_attribute
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_slot_tp_getattr_hook(PyObject *self, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10668,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10668,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10672,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10678
      start: 10659
    functionDepth: 4
    functionLinenumber: 10659
    functionLinenumberEnd: 10678
    functionName: slot_tp_setattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_MaybeCallSpecialOneArg
      Src: /src/cpython/Objects/typeobject.c:10692,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10700
      start: 10689
    functionDepth: 5
    functionLinenumber: 10689
    functionLinenumberEnd: 10700
    functionName: slot_tp_richcompare
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyObject_MaybeCallSpecialOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:10705,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:10707,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:10708,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10708,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:10709,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:10710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10712
      start: 10702
    functionDepth: 3
    functionLinenumber: 10702
    functionLinenumberEnd: 10712
    functionName: has_dunder_getitem
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - _PyThreadState_GET
    - _PyThreadState_PushCStackRef
    - PyStackRef_IsNull
    - _PyThreadState_PopCStackRef
    - lookup_maybe_method
    linkageType: ''
    returnType: int
    signature: int has_dunder_getitem(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: maybe_call_special_no_args
      Src: /src/cpython/Objects/typeobject.c:10718,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10718,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10723,1
    - Dst: has_dunder_getitem
      Src: /src/cpython/Objects/typeobject.c:10726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10727,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10729,1
    - Dst: PySeqIter_New
      Src: /src/cpython/Objects/typeobject.c:10732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10733
      start: 10714
    functionDepth: 4
    functionLinenumber: 10714
    functionLinenumberEnd: 10733
    functionName: slot_tp_iter
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _Py_ID
    - PySeqIter_New
    - maybe_call_special_no_args
    - PyErr_Format
    - Py_TYPE
    - has_dunder_getitem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_iter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10739,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10740
      start: 10735
    functionDepth: 4
    functionLinenumber: 10735
    functionLinenumberEnd: 10740
    functionName: slot_tp_iternext
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_iternext(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10745,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:10748,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10748,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:10755,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:10762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10765
      start: 10742
    functionDepth: 3
    functionLinenumber: 10742
    functionLinenumberEnd: 10765
    functionName: slot_tp_descr_get
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - _PyType_LookupRef
    - PyObject_Vectorcall
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10776,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10776,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10780,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - target
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10786
      start: 10767
    functionDepth: 4
    functionLinenumber: 10767
    functionLinenumberEnd: 10786
    functionName: slot_tp_descr_set
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int slot_tp_descr_set(PyObject *self, PyObject *target, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: call_method
      Src: /src/cpython/Objects/typeobject.c:10791,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10791,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10803
      start: 10788
    functionDepth: 4
    functionLinenumber: 10788
    functionLinenumberEnd: 10803
    functionName: slot_tp_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - call_method
    - _Py_ID
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int slot_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:10808,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:10811,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10811,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/cpython/Objects/typeobject.c:10816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10819
      start: 10805
    functionDepth: 3
    functionLinenumber: 10805
    functionLinenumberEnd: 10819
    functionName: slot_tp_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Call_Prepend
    - Py_DECREF
    - _Py_ID
    - _PyThreadState_GET
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:10825,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/typeobject.c:10826,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:10829,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:10832,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10832,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:10834,1
    - Dst: call_unbound_noarg
      Src: /src/cpython/Objects/typeobject.c:10835,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:10837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10841,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:10845,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Objects/typeobject.c:10848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10849
      start: 10821
    functionDepth: 3
    functionLinenumber: 10821
    functionLinenumberEnd: 10849
    functionName: slot_tp_finalize
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyErr_SetRaisedException
    - _Py_ID
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - PyStackRef_AsPyObjectBorrow
    - call_unbound_noarg
    - _PyThreadState_PushCStackRef
    - _PyThreadState_PopCStackRef
    - _PyErr_GetRaisedException
    - lookup_maybe_method
    linkageType: ''
    returnType: void
    signature: void slot_tp_finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10858
      start: 10857
    functionDepth: 0
    functionLinenumber: 10857
    functionLinenumberEnd: 10858
    functionName: PyBufferWrapper_CAST
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyBufferWrapper_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBufferWrapper_CAST
      Src: /src/cpython/Objects/typeobject.c:10862,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:10863,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:10864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10866
      start: 10859
    functionDepth: 1
    functionLinenumber: 10859
    functionLinenumberEnd: 10866
    functionName: bufferwrapper_traverse
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyBufferWrapper_CAST
    linkageType: ''
    returnType: int
    signature: int bufferwrapper_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBufferWrapper_CAST
      Src: /src/cpython/Objects/typeobject.c:10871,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:10873,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10874,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10875,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10877
      start: 10868
    functionDepth: 1
    functionLinenumber: 10868
    functionLinenumberEnd: 10877
    functionName: bufferwrapper_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    - PyBufferWrapper_CAST
    linkageType: ''
    returnType: void
    signature: void bufferwrapper_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBufferWrapper_CAST
      Src: /src/cpython/Objects/typeobject.c:10882,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10892,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/typeobject.c:10892,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10893,1
    - Dst: bf_releasebuffer
      Src: /src/cpython/Objects/typeobject.c:10893,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10897,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10898,1
    - Dst: releasebuffer_call_python
      Src: /src/cpython/Objects/typeobject.c:10899,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:10902,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:10903,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (PyMemoryView_Check(mv))
      pos:
        line_end: 10891
        line_start: 10891
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 10904
      start: 10879
    functionDepth: 1
    functionLinenumber: 10879
    functionLinenumberEnd: 10904
    functionName: bufferwrapper_releasebuf
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - releasebuffer_call_python
    - Py_CLEAR
    - PyBufferWrapper_CAST
    - bf_releasebuffer
    - PyMemoryView_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void bufferwrapper_releasebuf(PyObject *self, Py_buffer *view)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/typeobject.c:10926,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10932,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10932,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/typeobject.c:10936,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10937,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/typeobject.c:10943,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10946,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typeobject.c:10948,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:10953,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:10954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10958,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10962,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10964,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - self
    - buffer
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (buffer->obj == ret)
      pos:
        line_end: 10945
        line_start: 10945
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 10966
      start: 10923
    functionDepth: 4
    functionLinenumber: 10923
    functionLinenumberEnd: 10966
    functionName: slot_bf_getbuffer
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyLong_FromLong
    - _PyObject_GC_TRACK
    - _Py_ID
    - Py_NewRef
    - vectorcall_method
    - PyMemoryView_Check
    - PyObject_GetBuffer
    - PyErr_Format
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: int
    signature: int slot_bf_getbuffer(PyObject *self, Py_buffer *buffer, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10971,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:10972,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10977,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:10977,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:10978,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10983,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10991,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:10992,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 10976
        line_start: 10976
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11004
      start: 10968
    functionDepth: 2
    functionLinenumber: 10968
    functionLinenumberEnd: 11004
    functionName: releasebuffer_maybe_call_super_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyTuple_GET_SIZE
    - lookup_tp_mro
    - PyTuple_Check
    - PyTuple_GET_ITEM
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: releasebufferproc
    signature: releasebufferproc releasebuffer_maybe_call_super_unlocked(PyObject
      *self, Py_buffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:11011,1
    - Dst: releasebuffer_maybe_call_super_unlocked
      Src: /src/cpython/Objects/typeobject.c:11012,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:11013,1
    - Dst: base_releasebuffer
      Src: /src/cpython/Objects/typeobject.c:11016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11018
      start: 11006
    functionDepth: 3
    functionLinenumber: 11006
    functionLinenumberEnd: 11018
    functionName: releasebuffer_maybe_call_super
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - base_releasebuffer
    - releasebuffer_maybe_call_super_unlocked
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    linkageType: ''
    returnType: void
    signature: void releasebuffer_maybe_call_super(PyObject *self, Py_buffer *buffer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/typeobject.c:11027,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11030,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:11038,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Objects/typeobject.c:11043,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:11045,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11045,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:11056,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11056,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:11058,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11061,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/typeobject.c:11064,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11064,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:11066,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11072,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11074,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11074,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/typeobject.c:11076,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 11073
        line_start: 11073
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11077
      start: 11020
    functionDepth: 4
    functionLinenumber: 11020
    functionLinenumberEnd: 11077
    functionName: releasebuffer_call_python
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - PyErr_FormatUnraisable
    - vectorcall_method
    - PyMemoryView_FromBuffer
    - Py_TYPE
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void releasebuffer_call_python(PyObject *self, Py_buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: releasebuffer_call_python
      Src: /src/cpython/Objects/typeobject.c:11093,1
    - Dst: releasebuffer_maybe_call_super
      Src: /src/cpython/Objects/typeobject.c:11094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11095
      start: 11090
    functionDepth: 5
    functionLinenumber: 11090
    functionLinenumberEnd: 11095
    functionName: slot_bf_releasebuffer
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - releasebuffer_maybe_call_super
    - releasebuffer_call_python
    linkageType: ''
    returnType: void
    signature: void slot_bf_releasebuffer(PyObject *self, Py_buffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Objects/typeobject.c:11100,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11101,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:11102,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11107
      start: 11097
    functionDepth: 5
    functionLinenumber: 11097
    functionLinenumberEnd: 11107
    functionName: slot_am_generic
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyObject_MaybeCallSpecialNoArgs
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_generic(PyObject *self, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slot_am_generic
      Src: /src/cpython/Objects/typeobject.c:11112,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11113
      start: 11109
    functionDepth: 6
    functionLinenumber: 11109
    functionLinenumberEnd: 11113
    functionName: slot_am_await
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - slot_am_generic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_await(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slot_am_generic
      Src: /src/cpython/Objects/typeobject.c:11118,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11119
      start: 11115
    functionDepth: 6
    functionLinenumber: 11115
    functionLinenumberEnd: 11119
    functionName: slot_am_aiter
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - slot_am_generic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_aiter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slot_am_generic
      Src: /src/cpython/Objects/typeobject.c:11124,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11125
      start: 11121
    functionDepth: 6
    functionLinenumber: 11121
    functionLinenumberEnd: 11125
    functionName: slot_am_anext
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - slot_am_generic
    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: 11154
      start: 11151
    functionDepth: 0
    functionLinenumber: 11151
    functionLinenumberEnd: 11154
    functionName: TPSLOT
    functionSourceFile: /src/cpython/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: 11157
      start: 11154
    functionDepth: 0
    functionLinenumber: 11154
    functionLinenumberEnd: 11157
    functionName: FLSLOT
    functionSourceFile: /src/cpython/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: 11160
      start: 11157
    functionDepth: 0
    functionLinenumber: 11157
    functionLinenumberEnd: 11160
    functionName: ETSLOT
    functionSourceFile: /src/cpython/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: 11162
      start: 11160
    functionDepth: 0
    functionLinenumber: 11160
    functionLinenumberEnd: 11162
    functionName: BUFSLOT
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUFSLOT(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: 11164
      start: 11162
    functionDepth: 0
    functionLinenumber: 11162
    functionLinenumberEnd: 11164
    functionName: AMSLOT
    functionSourceFile: /src/cpython/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: 11166
      start: 11164
    functionDepth: 0
    functionLinenumber: 11164
    functionLinenumberEnd: 11166
    functionName: SQSLOT
    functionSourceFile: /src/cpython/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: 11168
      start: 11166
    functionDepth: 0
    functionLinenumber: 11166
    functionLinenumberEnd: 11168
    functionName: MPSLOT
    functionSourceFile: /src/cpython/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: 11170
      start: 11168
    functionDepth: 0
    functionLinenumber: 11168
    functionLinenumberEnd: 11170
    functionName: NBSLOT
    functionSourceFile: /src/cpython/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: 11173
      start: 11170
    functionDepth: 0
    functionLinenumber: 11170
    functionLinenumberEnd: 11173
    functionName: UNSLOT
    functionSourceFile: /src/cpython/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: 11176
      start: 11173
    functionDepth: 0
    functionLinenumber: 11173
    functionLinenumberEnd: 11176
    functionName: IBSLOT
    functionSourceFile: /src/cpython/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: 11179
      start: 11176
    functionDepth: 0
    functionLinenumber: 11176
    functionLinenumberEnd: 11179
    functionName: BINSLOT
    functionSourceFile: /src/cpython/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: 11182
      start: 11179
    functionDepth: 0
    functionLinenumber: 11179
    functionLinenumberEnd: 11182
    functionName: RBINSLOT
    functionSourceFile: /src/cpython/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: 11185
      start: 11182
    functionDepth: 0
    functionLinenumber: 11182
    functionLinenumberEnd: 11185
    functionName: BINSLOTNOTINFIX
    functionSourceFile: /src/cpython/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: 11188
      start: 11185
    functionDepth: 0
    functionLinenumber: 11185
    functionLinenumberEnd: 11188
    functionName: RBINSLOTNOTINFIX
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RBINSLOTNOTINFIX(NAME, SLOT, FUNCTION, DOC)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11400,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (offset >= 0)
      pos:
        line_end: 11399
        line_start: 11399
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((size_t)offset < offsetof(PyHeapTypeObject, ht_name))
      pos:
        line_end: 11400
        line_start: 11400
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11428
      start: 11393
    functionDepth: 0
    functionLinenumber: 11393
    functionLinenumberEnd: 11428
    functionName: slotptr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: 'void **

      slotptr(PyTypeObject *type, int ioffset)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:11448,1
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:11471,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11483
      start: 11432
    functionDepth: 1
    functionLinenumber: 11432
    functionLinenumberEnd: 11483
    functionName: resolve_slotdups
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - slotptr
    linkageType: ''
    returnType: void
    signature: 'void **

      resolve_slotdups(PyTypeObject *type, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11496
      start: 11487
    functionDepth: 0
    functionLinenumber: 11487
    functionLinenumberEnd: 11496
    functionName: has_slotdef
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_slotdef(PyObject *name)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NEW_TYPE_OR_LOCKED
      Src: /src/cpython/Objects/typeobject.c:11564,1
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:11581,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11593,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11593,1
    - Dst: find_name_in_mro
      Src: /src/cpython/Objects/typeobject.c:11596,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:11602,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:11609,1
    - Dst: resolve_slotdups
      Src: /src/cpython/Objects/typeobject.c:11611,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:11617,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:11617,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/typeobject.c:11617,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:11632,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Objects/typeobject.c:11633,1
    - Dst: _PyCFunction_CAST
      Src: /src/cpython/Objects/typeobject.c:11634,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:11663,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:11674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11678,1
    - Dst: queue_slot_update
      Src: /src/cpython/Objects/typeobject.c:11691,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11700,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 4
    argNames:
    - type
    - p
    - next_p
    - queued_updates
    argTypes:
    - PyTypeObject*
    - pytype_slotdef*
    - pytype_slotdef**
    - slot_update_t*
    assertStmts:
    - condition: (queued_updates == NULL)
      pos:
        line_end: 11699
        line_start: 11699
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 11592
        line_start: 11592
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11708
      start: 11560
    functionDepth: 8
    functionLinenumber: 11560
    functionLinenumberEnd: 11708
    functionName: update_one_slot
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_NEW_TYPE_OR_LOCKED
    - Py_DECREF
    - find_name_in_mro
    - lookup_tp_mro
    - PyErr_Occurred
    - queue_slot_update
    - resolve_slotdups
    - type_clear_flags
    - PyCFunction_GET_FUNCTION
    - slotptr
    - _PyCFunction_CAST
    - Py_IS_TYPE
    - is_subtype_with_mro
    - PyDescr_TYPE
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: "int update_one_slot(PyTypeObject *type, pytype_slotdef *p, pytype_slotdef
      **next_p,\n                slot_update_t *queued_updates)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NEW_TYPE_OR_LOCKED
      Src: /src/cpython/Objects/typeobject.c:11715,1
    - Dst: update_one_slot
      Src: /src/cpython/Objects/typeobject.c:11720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - data
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11725
      start: 11712
    functionDepth: 9
    functionLinenumber: 11712
    functionLinenumberEnd: 11725
    functionName: update_slots_callback
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_NEW_TYPE_OR_LOCKED
    - update_one_slot
    linkageType: ''
    returnType: int
    signature: int update_slots_callback(PyTypeObject *type, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:11736,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11737,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:11737,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11738,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:11738,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11742,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:11742,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11743,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:11743,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11744,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:11744,1
    - Dst: update_subclasses
      Src: /src/cpython/Objects/typeobject.c:11764,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - type
    - name
    - queued_updates
    argTypes:
    - PyTypeObject*
    - PyObject*
    - slot_update_t*
    assertStmts:
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 11736
        line_start: 11736
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CHECK_INTERNED(name))
      pos:
        line_end: 11737
        line_start: 11737
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CheckExact(p->name_strobj))
      pos:
        line_end: 11741
        line_start: 11741
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CHECK_INTERNED(p->name_strobj))
      pos:
        line_end: 11742
        line_start: 11742
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 11743
        line_start: 11743
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11766
      start: 11728
    functionDepth: 1
    functionLinenumber: 11728
    functionLinenumberEnd: 11766
    functionName: update_slot
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CheckExact
    - PyUnicode_CHECK_INTERNED
    - ASSERT_TYPE_LOCK_HELD
    - update_subclasses
    - assert
    linkageType: ''
    returnType: int
    signature: int update_slot(PyTypeObject *type, PyObject *name, slot_update_t *queued_updates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11774,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11774,1
    - Dst: update_one_slot
      Src: /src/cpython/Objects/typeobject.c:11776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 11773
        line_start: 11773
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11778
      start: 11771
    functionDepth: 9
    functionLinenumber: 11771
    functionLinenumberEnd: 11778
    functionName: fixup_slot_dispatchers
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - update_one_slot
    - assert
    linkageType: ''
    returnType: void
    signature: void fixup_slot_dispatchers(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: update_slot
      Src: /src/cpython/Objects/typeobject.c:11793,1
    - Dst: slot_update_free_chunks
      Src: /src/cpython/Objects/typeobject.c:11795,1
    - Dst: apply_type_slot_updates
      Src: /src/cpython/Objects/typeobject.c:11801,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:11802,1
    - Dst: slot_update_free_chunks
      Src: /src/cpython/Objects/typeobject.c:11803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11806
      start: 11783
    functionDepth: 5
    functionLinenumber: 11783
    functionLinenumberEnd: 11806
    functionName: update_all_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - update_slot
    - apply_type_slot_updates
    - slot_update_free_chunks
    - ASSERT_TYPE_LOCK_HELD
    linkageType: ''
    returnType: int
    signature: int update_all_slots(PyTypeObject* type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_slot
      Src: /src/cpython/Objects/typeobject.c:11817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11811
    functionDepth: 2
    functionLinenumber: 11811
    functionLinenumberEnd: 11820
    functionName: update_all_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - update_slot
    linkageType: ''
    returnType: int
    signature: int update_all_slots(PyTypeObject* type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/typeobject.c:11828,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:11829,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11833,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11836,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:11837,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:11837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (slotdef->name != NULL)
      pos:
        line_end: 11835
        line_start: 11835
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (slotdefs[len].name == NULL)
      pos:
        line_end: 11832
        line_start: 11832
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11840
      start: 11825
    functionDepth: 4
    functionLinenumber: 11825
    functionLinenumberEnd: 11840
    functionName: _PyType_GetSlotWrapperNames
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - PyList_SET_ITEM
    - Py_NewRef
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetSlotWrapperNames(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:11848,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/typeobject.c:11849,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:11856,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/typeobject.c:11857,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11858,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11860,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/typeobject.c:11866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11867,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Objects/typeobject.c:11870,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11885,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11887
      start: 11845
    functionDepth: 12
    functionLinenumber: 11845
    functionLinenumberEnd: 11887
    functionName: type_new_set_names
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - PyDict_Copy
    - PyObject_CallFunctionObjArgs
    - _PyObject_LookupSpecial
    - PyDict_Next
    - lookup_tp_dict
    - Py_TYPE
    - _PyErr_FormatNote
    linkageType: ''
    returnType: int
    signature: int type_new_set_names(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:11895,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:11901,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11901,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11902,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Objects/typeobject.c:11907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - type
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11915
      start: 11891
    functionDepth: 3
    functionLinenumber: 11891
    functionLinenumberEnd: 11915
    functionName: type_new_init_subclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyObject_VectorcallDict
    - _Py_ID
    - PyObject_Vectorcall
    - PyObject_GetAttr
    linkageType: ''
    returnType: int
    signature: int type_new_init_subclass(PyTypeObject *type, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/cpython/Objects/typeobject.c:11926,1
    - Dst: recurse_down_subclasses
      Src: /src/cpython/Objects/typeobject.c:11929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - type
    - attr_name
    - callback
    - data
    argTypes:
    - PyTypeObject*
    - PyObject*
    - update_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11930
      start: 11922
    functionDepth: 1
    functionLinenumber: 11922
    functionLinenumberEnd: 11930
    functionName: update_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - recurse_down_subclasses
    - callback
    linkageType: ''
    returnType: int
    signature: "int update_subclasses(PyTypeObject *type, PyObject *attr_name,\n                  update_callback
      callback, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:11939,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11943,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:11943,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:11947,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:11948,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:11954,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:11955,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:11956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11962,1
    - Dst: update_subclasses
      Src: /src/cpython/Objects/typeobject.c:11967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11971,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - type
    - attr_name
    - callback
    - data
    argTypes:
    - PyTypeObject*
    - PyObject*
    - update_callback
    - void*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 11942
        line_start: 11942
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11974
      start: 11932
    functionDepth: 5
    functionLinenumber: 11932
    functionLinenumberEnd: 11974
    functionName: recurse_down_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyDict_CheckExact
    - lookup_tp_subclasses
    - type_from_ref
    - PyDict_Contains
    - PyDict_Next
    - lookup_tp_dict
    - PyDict_Check
    - update_subclasses
    - assert
    linkageType: ''
    returnType: int
    signature: "int recurse_down_subclasses(PyTypeObject *type, PyObject *attr_name,\n
      \                       update_callback callback, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:11979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - type
    - slotdef
    - slot
    argTypes:
    - PyTypeObject*
    - pytype_slotdef*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11994
      start: 11976
    functionDepth: 1
    functionLinenumber: 11976
    functionLinenumberEnd: 11994
    functionName: slot_inherited
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - slotptr
    linkageType: ''
    returnType: int
    signature: int slot_inherited(PyTypeObject *type, pytype_slotdef *slotdef, void
      **slot)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:12029,1
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:12037,1
    - Dst: slot_inherited
      Src: /src/cpython/Objects/typeobject.c:12043,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:12047,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:12057,1
    - Dst: PyDescr_NewWrapper
      Src: /src/cpython/Objects/typeobject.c:12061,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:12064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12065,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12068,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12072
      start: 12026
    functionDepth: 9
    functionLinenumber: 12026
    functionLinenumberEnd: 12072
    functionName: add_operators
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyDict_Contains
    - PyDescr_NewWrapper
    - slotptr
    - lookup_tp_dict
    - slot_inherited
    linkageType: ''
    returnType: int
    signature: int add_operators(PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_get_mro
      Src: /src/cpython/Objects/typeobject.c:12079,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:12080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12081,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12082,1
    - Dst: check_immutable_bases
      Src: /src/cpython/Objects/typeobject.c:12086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12087,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:12092,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:12093,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:12094,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:12095,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:12096,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:12097,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:12098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12101
      start: 12075
    functionDepth: 6
    functionLinenumber: 12075
    functionLinenumberEnd: 12101
    functionName: PyType_Freeze
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - types_start_world
    - Py_DECREF
    - END_TYPE_LOCK
    - PyTuple_Check
    - type_modified_unlocked
    - PyErr_SetString
    - types_stop_world
    - check_immutable_bases
    - BEGIN_TYPE_LOCK
    - ASSERT_TYPE_LOCK_HELD
    - type_add_flags
    - type_get_mro
    linkageType: ''
    returnType: int
    signature: int PyType_Freeze(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12114
      start: 12113
    functionDepth: 0
    functionLinenumber: 12113
    functionLinenumberEnd: 12114
    functionName: superobject_CAST
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: superobject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: superobject_CAST
      Src: /src/cpython/Objects/typeobject.c:12128,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:12130,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12131,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12132,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12133,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12135
      start: 12125
    functionDepth: 1
    functionLinenumber: 12125
    functionLinenumberEnd: 12135
    functionName: super_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - superobject_CAST
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void super_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: superobject_CAST
      Src: /src/cpython/Objects/typeobject.c:12140,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:12143,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:12148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12151
      start: 12137
    functionDepth: 10
    functionLinenumber: 12137
    functionLinenumberEnd: 12151
    functionName: super_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - superobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_repr(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:12163,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:12164,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/typeobject.c:12169,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:12170,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12175,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:12175,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:12176,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:12180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12185,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:12190,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:12191,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:12191,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12192,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:12192,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:12194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - su_type
    - su_obj_type
    - name
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 12174
        line_start: 12174
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (dict != NULL && PyDict_Check(dict))
      pos:
        line_end: 12191
        line_start: 12191
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12204
      start: 12157
    functionDepth: 8
    functionLinenumber: 12157
    functionLinenumberEnd: 12204
    functionName: _super_lookup_descr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - END_TYPE_LOCK
    - PyTuple_GET_SIZE
    - Py_DECREF
    - lookup_tp_mro
    - PyTuple_Check
    - _PyType_CAST
    - lookup_tp_dict
    - BEGIN_TYPE_LOCK
    - PyTuple_GET_ITEM
    - Py_XINCREF
    - PyDict_GetItemRef
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _super_lookup_descr(PyTypeObject *su_type, PyTypeObject *su_obj_type, PyObject
      *name)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _super_lookup_descr
      Src: /src/cpython/Objects/typeobject.c:12219,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:12221,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12221,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12225,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:12228,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:12233,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:12239,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:12246,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/typeobject.c:12252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 6
    argNames:
    - su
    - su_type
    - su_obj
    - su_obj_type
    - name
    - method
    argTypes:
    - superobject*
    - PyTypeObject*
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12257
      start: 12208
    functionDepth: 9
    functionLinenumber: 12208
    functionLinenumberEnd: 12257
    functionName: do_super_lookup
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - f
    - Py_DECREF
    - _super_lookup_descr
    - PyErr_Occurred
    - PyObject_Vectorcall
    - Py_SETREF
    - PyObject_GenericGetAttr
    - Py_TYPE
    - _PyType_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndo_super_lookup(superobject *su, PyTypeObject *su_type,
      PyObject *su_obj,\n                PyTypeObject *su_obj_type, PyObject *name,
      int *method)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: superobject_CAST
      Src: /src/cpython/Objects/typeobject.c:12262,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:12266,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/typeobject.c:12267,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:12268,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12268,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/typeobject.c:12269,1
    - Dst: do_super_lookup
      Src: /src/cpython/Objects/typeobject.c:12271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12272
      start: 12259
    functionDepth: 10
    functionLinenumber: 12259
    functionLinenumberEnd: 12272
    functionName: super_getattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - superobject_CAST
    - do_super_lookup
    - _PyUnicode_Equal
    - PyObject_GenericGetAttr
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_getattro(PyObject *self, PyObject *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12293,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:12293,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12294,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:12298,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12298,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12299,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12299,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:12305,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12305,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12309,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12310,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:12312,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12318,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12323,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12329,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:12332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - type
    - obj
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12338
      start: 12274
    functionDepth: 3
    functionLinenumber: 12274
    functionLinenumberEnd: 12338
    functionName: supercheck
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_XDECREF
    - PyObject_GetOptionalAttr
    - PyType_IsSubtype
    - _Py_ID
    - Py_NewRef
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      supercheck(PyTypeObject *type, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supercheck
      Src: /src/cpython/Objects/typeobject.c:12343,1
    - Dst: do_super_lookup
      Src: /src/cpython/Objects/typeobject.c:12347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - su_type
    - su_obj
    - name
    - method
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12350
      start: 12340
    functionDepth: 10
    functionLinenumber: 12340
    functionLinenumberEnd: 12350
    functionName: _PySuper_Lookup
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - do_super_lookup
    - Py_DECREF
    - supercheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySuper_Lookup(PyTypeObject *su_type, PyObject *su_obj, PyObject *name, int
      *method)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: superobject_CAST
      Src: /src/cpython/Objects/typeobject.c:12355,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12360,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:12362,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/typeobject.c:12365,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12365,1
    - Dst: supercheck
      Src: /src/cpython/Objects/typeobject.c:12369,1
    - Dst: tp_new
      Src: /src/cpython/Objects/typeobject.c:12372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12375,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12378,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12383
      start: 12352
    functionDepth: 4
    functionLinenumber: 12352
    functionLinenumberEnd: 12383
    functionName: super_descr_get
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - superobject_CAST
    - PyObject_CallFunctionObjArgs
    - Py_NewRef
    - Py_IS_TYPE
    - tp_new
    - Py_TYPE
    - supercheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/typeobject.c:12389,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12391,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12396,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/typeobject.c:12396,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:12397,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/typeobject.c:12397,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12399,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/typeobject.c:12405,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/typeobject.c:12406,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12409,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/typeobject.c:12409,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/typeobject.c:12410,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12411,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:12411,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/typeobject.c:12412,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12414,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:12419,1
    - Dst: PyUnstable_Code_GetFirstFree
      Src: /src/cpython/Objects/typeobject.c:12424,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12426,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/typeobject.c:12426,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:12427,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12428,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:12428,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:12429,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12429,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:12430,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/typeobject.c:12430,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:12431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12434,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/typeobject.c:12437,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12441,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12444,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:12445,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12449,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12458,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - cframe
    - type_p
    - obj_p
    argTypes:
    - _PyInterpreterFrame*
    - PyTypeObject**
    - PyObject**
    assertStmts:
    - condition: ((_PyLocals_GetKind(co->co_localspluskinds, i) & CO_FAST_FREE) !=
        0)
      pos:
        line_end: 12425
        line_start: 12425
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyCell_Check(firstarg))
      pos:
        line_end: 12410
        line_start: 12410
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 12427
        line_start: 12427
        source_file: /src/cpython/Objects/typeobject.c
    - condition: "(_PyCode_CODE(co)[0].op.code == MAKE_CELL ||\n                _PyCode_CODE(co)[0].op.code
        == COPY_FREE_VARS)"
      pos:
        line_end: 12409
        line_start: 12408
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyFrame_GetCode(cframe)->co_nlocalsplus > 0)
      pos:
        line_end: 12395
        line_start: 12395
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12465
      start: 12385
    functionDepth: 2
    functionLinenumber: 12385
    functionLinenumberEnd: 12465
    functionName: super_init_without_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    - PyCell_Check
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyUnstable_Code_GetFirstFree
    - PyType_Check
    - Py_DECREF
    - _Py_ID
    - Py_TYPE
    - _PyFrame_GetCode
    - _PyInterpreterFrame_LASTI
    - _PyLocals_GetKind
    - PyCell_GetRef
    - _PyFrame_GetLocalsArray
    - _PyUnicode_Equal
    - _PyCode_CODE
    - assert
    linkageType: ''
    returnType: int
    signature: "int super_init_without_args(_PyInterpreterFrame *cframe, PyTypeObject
      **type_p,\n                        PyObject **obj_p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/typeobject.c:12475,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/typeobject.c:12477,1
    - Dst: super_init_impl
      Src: /src/cpython/Objects/typeobject.c:12479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12483
      start: 12469
    functionDepth: 1
    functionLinenumber: 12469
    functionLinenumberEnd: 12483
    functionName: super_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - super_init_impl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: int super_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: superobject_CAST
      Src: /src/cpython/Objects/typeobject.c:12487,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:12492,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Objects/typeobject.c:12493,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12495,1
    - Dst: super_init_without_args
      Src: /src/cpython/Objects/typeobject.c:12499,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:12506,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/typeobject.c:12507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12511,1
    - Dst: supercheck
      Src: /src/cpython/Objects/typeobject.c:12515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12518,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:12522,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:12523,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:12524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - type
    - obj
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12526
      start: 12485
    functionDepth: 4
    functionLinenumber: 12485
    functionLinenumberEnd: 12526
    functionName: super_init_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - super_init_without_args
    - PyErr_SetString
    - _PyThreadState_GetFrame
    - _PyThreadState_GET
    - Py_XSETREF
    - Py_XINCREF
    - superobject_CAST
    - supercheck
    linkageType: ''
    returnType: int
    signature: int super_init_impl(PyObject *self, PyTypeObject *type, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: superobject_CAST
      Src: /src/cpython/Objects/typeobject.c:12546,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:12548,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:12549,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:12550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12553
      start: 12543
    functionDepth: 1
    functionLinenumber: 12543
    functionLinenumberEnd: 12553
    functionName: super_traverse
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - superobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int super_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12559,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12559,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/typeobject.c:12560,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/typeobject.c:12563,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/typeobject.c:12564,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:12570,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12577,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:12578,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12579,1
    - Dst: super_init_impl
      Src: /src/cpython/Objects/typeobject.c:12587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - self
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(self))
      pos:
        line_end: 12558
        line_start: 12558
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12594
      start: 12555
    functionDepth: 5
    functionLinenumber: 12555
    functionLinenumberEnd: 12594
    functionName: super_vectorcall
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - super_init_impl
    - _PyArg_CheckPositional
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsuper_vectorcall(PyObject *self, PyObject *const *args,\n
      \   size_t nargsf, PyObject *kwnames)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:40,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:43,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/tupleobject.c:46,1
    - Dst: _PyTuple_RESET_HASH_CACHE
      Src: /src/cpython/Objects/tupleobject.c:48,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/tupleobject.c:55,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/tupleobject.c:57,1
    - Dst: _PyTuple_RESET_HASH_CACHE
      Src: /src/cpython/Objects/tupleobject.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size != 0)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: tuple_alloc
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 2
    functionsReached:
    - _PyTuple_RESET_HASH_CACHE
    - PyErr_BadInternalCall
    - PyObject_GC_NewVar
    - _Py_FREELIST_POP
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyTupleObject
    signature: 'PyTupleObject *

      tuple_alloc(Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/tupleobject.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: tuple_get_empty
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _Py_SINGLETON
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_get_empty(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:79,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:81,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: PyTuple_New
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 133
    functionsReached:
    - tuple_alloc
    - _PyObject_GC_TRACK
    - tuple_get_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_New(Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:95,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:96,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: PyTuple_Size
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 28
    functionsReached:
    - PyTuple_Check
    - PyErr_BadInternalCall
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyTuple_Size(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:106,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:107,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:110,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/tupleobject.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: PyTuple_GetItem
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 16
    functionsReached:
    - PyTuple_Check
    - PyErr_BadInternalCall
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_GetItem(PyObject *op, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:121,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/tupleobject.c:121,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:122,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:123,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:126,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:127,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/tupleobject.c:128,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/tupleobject.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - op
    - i
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: PyTuple_SetItem
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 7
    functionsReached:
    - Py_XDECREF
    - PyTuple_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyErr_SetString
    - Py_XSETREF
    - Py_REFCNT
    linkageType: ''
    returnType: int
    signature: int PyTuple_SetItem(PyObject *op, Py_ssize_t i, PyObject *newitem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:143,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/tupleobject.c:143,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:146,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:148,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/cpython/Objects/tupleobject.c:153,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/tupleobject.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: _PyTuple_MaybeUntrack
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - Py_SIZE
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_MAY_BE_TRACKED
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void _PyTuple_MaybeUntrack(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:168,1
    - Dst: va_start
      Src: /src/cpython/Objects/tupleobject.c:171,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:172,1
    - Dst: va_end
      Src: /src/cpython/Objects/tupleobject.c:174,1
    - Dst: va_arg
      Src: /src/cpython/Objects/tupleobject.c:179,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:180,1
    - Dst: va_end
      Src: /src/cpython/Objects/tupleobject.c:182,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 185
    functionName: PyTuple_Pack
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 83
    functionsReached:
    - tuple_get_empty
    - _PyObject_GC_TRACK
    - tuple_alloc
    - Py_NewRef
    - va_arg
    - va_start
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_Pack(Py_ssize_t n, ...)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:193,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:194,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/tupleobject.c:196,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Objects/tupleobject.c:198,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:205,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:205,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/tupleobject.c:209,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:211,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:213,1
    - Dst: maybe_freelist_push
      Src: /src/cpython/Objects/tupleobject.c:216,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/tupleobject.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyTuple_CheckExact(op))
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 219
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 219
    functionName: tuple_dealloc
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTuple_CAST
    - PyObject_GC_UnTrack
    - Py_SIZE
    - maybe_freelist_push
    - _Py_SINGLETON
    - _Py_FatalRefcountError
    - PyTuple_CheckExact
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void tuple_dealloc(PyObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:224,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:225,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/tupleobject.c:227,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/tupleobject.c:234,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/tupleobject.c:236,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/tupleobject.c:248,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:253,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:260,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:263,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/tupleobject.c:268,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:274,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:278,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/tupleobject.c:282,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/tupleobject.c:283,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/tupleobject.c:286,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/tupleobject.c:287,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 221
    functionDepth: 9
    functionLinenumber: 221
    functionLinenumberEnd: 289
    functionName: tuple_repr
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - Py_ReprEnter
    - Py_ReprLeave
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_WriteChar
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteRepr
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:307,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:309,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:314,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/tupleobject.c:318,1
    - Dst: _PyTuple_HASH_XXROTATE
      Src: /src/cpython/Objects/tupleobject.c:323,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 337
    functionName: tuple_hash
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _PyTuple_CAST
    - Py_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyObject_Hash
    - _PyTuple_HASH_XXROTATE
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t tuple_hash(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:342,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: tuple_length
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _PyTuple_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t tuple_length(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:349,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:351,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:352,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - el
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: tuple_contains
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyTuple_GET_ITEM
    - _PyTuple_CAST
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int tuple_contains(PyObject *self, PyObject *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:360,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:361,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/tupleobject.c:362,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 366
    functionName: tuple_item
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_NewRef
    - PyErr_SetString
    - _PyTuple_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_item(PyObject *op, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:372,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:375,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:382,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: _PyTuple_FromArray
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 30
    functionsReached:
    - tuple_alloc
    - Py_NewRef
    - _PyObject_GC_TRACK
    - tuple_get_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:392,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:394,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/tupleobject.c:400,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - _PyStackRef*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 404
    functionName: _PyTuple_FromStackRefStealOnSuccess
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - tuple_alloc
    - PyStackRef_AsPyObjectSteal
    - _PyObject_GC_TRACK
    - tuple_get_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_FromStackRefStealOnSuccess(const _PyStackRef *src, Py_ssize_t n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:410,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:415,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 426
    functionName: _PyTuple_FromArraySteal
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 2
    functionsReached:
    - tuple_alloc
    - Py_DECREF
    - _PyObject_GC_TRACK
    - tuple_get_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_FromArraySteal(PyObject *const *src, Py_ssize_t n)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:434,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:435,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:438,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:438,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:439,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/tupleobject.c:441,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - PyTupleObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 442
    functionName: tuple_slice
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_NewRef
    - _PyTuple_FromArray
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntuple_slice(PyTupleObject *a, Py_ssize_t ilow,\n           Py_ssize_t
      ihigh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:447,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:448,1
    - Dst: tuple_slice
      Src: /src/cpython/Objects/tupleobject.c:451,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: 452
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: PyTuple_GetSlice
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 13
    functionsReached:
    - PyTuple_Check
    - PyErr_BadInternalCall
    - tuple_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_GetSlice(PyObject *op, Py_ssize_t i, Py_ssize_t j)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:457,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:458,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:458,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:459,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:461,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/tupleobject.c:462,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/tupleobject.c:464,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:469,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:469,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:470,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:472,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:472,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:472,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:473,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:473,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:475,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:478,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:485,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:487,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:491,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:492,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:494,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - aa
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((size_t)Py_SIZE(a) + (size_t)Py_SIZE(b) < PY_SSIZE_T_MAX)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 499
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 499
    functionName: tuple_concat
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyTuple_CAST
    - tuple_get_empty
    - Py_SIZE
    - PyTuple_Check
    - _PyObject_GC_TRACK
    - Py_NewRef
    - tuple_alloc
    - PyErr_Format
    - Py_TYPE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_concat(PyObject *aa, PyObject *bb)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:504,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:505,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:507,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:510,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:514,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:516,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/tupleobject.c:519,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:522,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/tupleobject.c:529,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/tupleobject.c:539,1
    - Dst: _Py_memory_repeat
      Src: /src/cpython/Objects/tupleobject.c:543,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:546,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (n>0)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 548
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 548
    functionName: tuple_repeat
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyTuple_CAST
    - tuple_get_empty
    - Py_SIZE
    - _PyObject_GC_TRACK
    - Py_NewRef
    - tuple_alloc
    - _Py_memory_repeat
    - _Py_RefcntAdd
    - PyErr_NoMemory
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_repeat(PyObject *self, Py_ssize_t n)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:571,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:576,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:578,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:579,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:582,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/tupleobject.c:584,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/tupleobject.c:588,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: 590
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 590
    functionName: tuple_index_impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyLong_FromSsize_t
    - 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/cpython/Objects/tupleobject.c:608,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:609,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/tupleobject.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyTupleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 616
    functionName: tuple_count_impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyLong_FromSsize_t
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_count_impl(PyTupleObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:621,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:622,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/tupleobject.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 626
    functionName: tuple_traverse
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _PyTuple_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tuple_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:635,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:635,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:641,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:642,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:656,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/tupleobject.c:666,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/tupleobject.c:678,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 679
    functionName: tuple_richcompare
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - PyTuple_Check
    - Py_SIZE
    - PyObject_RichCompare
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tuple_subtype_new
      Src: /src/cpython/Objects/tupleobject.c:703,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:706,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/tupleobject.c:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 711
    functionName: tuple_new_impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - tuple_subtype_new
    - PySequence_Tuple
    - tuple_get_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_new_impl(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/tupleobject.c:717,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/tupleobject.c:721,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/tupleobject.c:722,1
    - Dst: tuple_new_impl
      Src: /src/cpython/Objects/tupleobject.c:727,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/tupleobject.c:727,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 732
    functionName: tuple_vectorcall
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - tuple_new_impl
    - tuple_get_empty
    - _PyType_CAST
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntuple_vectorcall(PyObject *type, PyObject * const*args,\n
      \                size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:740,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/tupleobject.c:740,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:742,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/tupleobject.c:742,1
    - Dst: tuple_new_impl
      Src: /src/cpython/Objects/tupleobject.c:744,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:747,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:747,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/tupleobject.c:749,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:751,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:755,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:756,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:758,1
    - Dst: _PyTuple_RESET_HASH_CACHE
      Src: /src/cpython/Objects/tupleobject.c:760,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/tupleobject.c:763,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyTuple_Type))
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (_PyType_IS_GC(type))
      pos:
        line_end: 741
        line_start: 741
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (PyTuple_Check(tmp))
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 767
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 767
    functionName: tuple_subtype_new
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyType_IS_GC
    - PyTuple_GET_SIZE
    - tuple_new_impl
    - PyType_IsSubtype
    - Py_DECREF
    - PyTuple_Check
    - _PyTuple_RESET_HASH_CACHE
    - PyTuple_SET_ITEM
    - _PyObject_GC_TRACK
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_subtype_new(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:783,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/tupleobject.c:784,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/tupleobject.c:785,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/tupleobject.c:786,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:789,1
    - Dst: tuple_item
      Src: /src/cpython/Objects/tupleobject.c:790,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/tupleobject.c:792,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/tupleobject.c:798,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/tupleobject.c:801,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:801,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:805,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:808,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:809,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:810,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:813,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:820,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:824,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/tupleobject.c:829,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/tupleobject.c:831,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 834
    functionName: tuple_subscript
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PySlice_AdjustIndices
    - tuple_get_empty
    - _PyIndex_Check
    - PyErr_Occurred
    - tuple_item
    - _PyObject_GC_TRACK
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - Py_NewRef
    - tuple_alloc
    - PyErr_Format
    - PySlice_Check
    - Py_TYPE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_subscript(PyObject *op, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:844,1
    - Dst: tuple_slice
      Src: /src/cpython/Objects/tupleobject.c:844,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 840
    functionDepth: 4
    functionLinenumber: 840
    functionLinenumberEnd: 845
    functionName: tuple___getnewargs___impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_BuildValue
    - tuple_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple___getnewargs___impl(PyTupleObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/tupleobject.c:925,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:926,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/tupleobject.c:926,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:928,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:929,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:938,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:939,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:944,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/tupleobject.c:944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:948,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/tupleobject.c:949,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/tupleobject.c:953,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/tupleobject.c:954,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/tupleobject.c:957,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/tupleobject.c:961,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/tupleobject.c:963,1
    - Dst: PyObject_GC_Resize
      Src: /src/cpython/Objects/tupleobject.c:964,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/tupleobject.c:968,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/tupleobject.c:968,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/tupleobject.c:970,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/tupleobject.c:973,1
    - Dst: memset
      Src: /src/cpython/Objects/tupleobject.c:976,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:979,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - pv
    - newsize
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (v == &_Py_SINGLETON(tuple_empty))
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 981
      start: 916
    functionDepth: 5
    functionLinenumber: 916
    functionLinenumberEnd: 981
    functionName: _PyTuple_Resize
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 5
    functionsReached:
    - Py_XDECREF
    - _PyObject_GC_TRACK
    - _PyThreadState_GET
    - Py_CLEAR
    - _PyObject_GC_IS_TRACKED
    - PyTuple_New
    - tuple_get_empty
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - Py_IS_TYPE
    - _Py_DecRefTotal
    - Py_DECREF
    - _Py_NewReferenceNoTotal
    - Py_SIZE
    - _Py_ForgetReference
    - PyObject_GC_Resize
    - PyErr_BadInternalCall
    - memset
    - _Py_SINGLETON
    - Py_REFCNT
    - assert
    - _PyReftracerTrack
    linkageType: ''
    returnType: int
    signature: int _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 986
    functionName: _PyTupleIterObject_CAST
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyTupleIterObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:990,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/tupleobject.c:991,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:992,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:993,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/tupleobject.c:993,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/tupleobject.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(self, &PyTupleIter_Type))
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 995
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 995
    functionName: tupleiter_dealloc
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyObject_GC_UNTRACK
    - Py_IS_TYPE
    - _PyTupleIterObject_CAST
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void tupleiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1000,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/tupleobject.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1003
    functionName: tupleiter_traverse
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTupleIterObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tupleiter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1008,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:1012,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:1018,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:1018,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1020,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1021,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1022,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:1023,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:1024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:1029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (PyTuple_Check(seq))
      pos:
        line_end: 1017
        line_start: 1017
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 1032
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1032
    functionName: tupleiter_next
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_NewRef
    - _PyTupleIterObject_CAST
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1037,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1040,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1041,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1046,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/tupleobject.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1049
    functionName: tupleiter_len
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _PyTupleIterObject_CAST
    - PyTuple_GET_SIZE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_len(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/tupleobject.c:1056,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/tupleobject.c:1056,1
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1061,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1064,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1065,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:1066,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:1069,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:1071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1072
    functionName: tupleiter_reduce
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - PyTuple_GET_SIZE
    - _Py_ID
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PyTupleIterObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1077,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/tupleobject.c:1078,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/tupleobject.c:1079,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1084,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1085,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1086,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1089
    functionName: tupleiter_setstate
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - _PyTupleIterObject_CAST
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_setstate(PyObject *self, PyObject *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:1137,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:1138,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/tupleobject.c:1141,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/tupleobject.c:1143,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:1148,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:1149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1151
    functionName: tuple_iter
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyErr_BadInternalCall
    - _PyObject_GC_TRACK
    - Py_NewRef
    - _Py_FREELIST_POP
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_iter(PyObject *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/tupleobject.c:1161,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1164,1
    - Dst: _Py_FREELIST_PUSH
      Src: /src/cpython/Objects/tupleobject.c:1166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1169
    functionName: maybe_freelist_push
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - Py_SIZE
    - Py_IS_TYPE
    - _Py_FREELIST_PUSH
    linkageType: ''
    returnType: int
    signature: int maybe_freelist_push(PyTupleObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/tupleobject.c:1178,1
    - Dst: _PyDebugAllocatorStats
      Src: /src/cpython/Objects/tupleobject.c:1180,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1180,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1183
    functionName: _PyTuple_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_VAR_SIZE
    - _Py_FREELIST_SIZE
    - PyOS_snprintf
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyTuple_DebugMallocStats(FILE *out)
  - BBCount: 2003
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2157
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6671
      start: 4513
    functionDepth: 0
    functionLinenumber: 4513
    functionLinenumberEnd: 6671
    functionName: _PyUnicode_ToNumeric
    functionSourceFile: /src/cpython/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: 6711
      start: 6676
    functionDepth: 0
    functionLinenumber: 6676
    functionLinenumberEnd: 6711
    functionName: _PyUnicode_IsWhitespace
    functionSourceFile: /src/cpython/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: 6733
      start: 6717
    functionDepth: 0
    functionLinenumber: 6717
    functionLinenumberEnd: 6733
    functionName: _PyUnicode_IsLinebreak
    functionSourceFile: /src/cpython/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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: _PyODictObject_CAST
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyODictObject_CAST(op)
  - 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: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: _odictnode_KEY
    functionSourceFile: /src/cpython/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: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: _odictnode_HASH
    functionSourceFile: /src/cpython/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: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: _odictnode_VALUE
    functionSourceFile: /src/cpython/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: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: _odictnode_PREV
    functionSourceFile: /src/cpython/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: 528
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 528
    functionName: _odictnode_NEXT
    functionSourceFile: /src/cpython/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: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: _odict_FIRST
    functionSourceFile: /src/cpython/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: 531
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 531
    functionName: _odict_LAST
    functionSourceFile: /src/cpython/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: 532
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 532
    functionName: _odict_EMPTY
    functionSourceFile: /src/cpython/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: 534
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/odictobject.c:543,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:544,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/odictobject.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 536
    functionDepth: 6
    functionLinenumber: 536
    functionLinenumberEnd: 555
    functionName: _odict_get_index_raw
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_dict_lookup
    - Py_XDECREF
    - _Py_dict_lookup_threadsafe
    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/cpython/Objects/odictobject.c:568,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/odictobject.c:570,1
    - Dst: _odict_get_index_raw
      Src: /src/cpython/Objects/odictobject.c:578,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:578,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:579,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/odictobject.c:581,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/odictobject.c:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 560
    functionDepth: 7
    functionLinenumber: 560
    functionLinenumberEnd: 593
    functionName: _odict_resize
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_HASH
    - PyMem_NEW
    - _odictnode_KEY
    - PyMem_Free
    - _odict_get_index_raw
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int _odict_resize(PyODictObject *od)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _odict_get_index_raw
      Src: /src/cpython/Objects/odictobject.c:578,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:578,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:579,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/odictobject.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 577
    functionDepth: 7
    functionLinenumber: 577
    functionLinenumberEnd: 585
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_KEY
    - _odict_get_index_raw
    - PyMem_Free
    - _odictnode_HASH
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:601,1
    - Dst: _odict_resize
      Src: /src/cpython/Objects/odictobject.c:607,1
    - Dst: _odict_get_index_raw
      Src: /src/cpython/Objects/odictobject.c:612,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: 600
        line_start: 600
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 613
      start: 596
    functionDepth: 8
    functionLinenumber: 596
    functionLinenumberEnd: 613
    functionName: _odict_get_index
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_resize
    - _odict_get_index_raw
    - assert
    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/cpython/Objects/odictobject.c:621,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:623,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:626,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: 625
        line_start: 625
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 9
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: _odict_find_node_hash
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_get_index
    - _odict_EMPTY
    - assert
    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/cpython/Objects/odictobject.c:636,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/odictobject.c:638,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:641,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:644,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: 643
        line_start: 643
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 646
      start: 630
    functionDepth: 9
    functionLinenumber: 630
    functionLinenumberEnd: 646
    functionName: _odict_find_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_get_index
    - PyObject_Hash
    - _odict_EMPTY
    - assert
    linkageType: ''
    returnType: _ODictNode
    signature: '_ODictNode *

      _odict_find_node(PyODictObject *od, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:651,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:652,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:652,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:653,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:654,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:656,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:656,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 659
    functionName: _odict_add_head
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_LAST
    - _odictnode_NEXT
    - _odict_FIRST
    - _odictnode_PREV
    linkageType: ''
    returnType: void
    signature: void _odict_add_head(PyODictObject *od, _ODictNode *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:664,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:664,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:665,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:666,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:667,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:669,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:669,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 672
    functionName: _odict_add_tail
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_LAST
    - _odictnode_NEXT
    - _odict_FIRST
    - _odictnode_PREV
    linkageType: ''
    returnType: void
    signature: void _odict_add_tail(PyODictObject *od, _ODictNode *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:681,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:682,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:684,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:686,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:692,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/odictobject.c:697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:699,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/odictobject.c:700,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:704,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:705,1
    - Dst: _odict_add_tail
      Src: /src/cpython/Objects/odictobject.c:706,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: 688
        line_start: 688
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 709
      start: 675
    functionDepth: 9
    functionLinenumber: 675
    functionLinenumberEnd: 709
    functionName: _odict_add_new_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyErr_Occurred
    - _odict_add_tail
    - PyErr_SetObject
    - _odictnode_HASH
    - _odictnode_KEY
    - _odict_get_index
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    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: 717
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 717
    functionName: _odictnode_DEALLOC
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_DEALLOC(node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:722,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:723,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:723,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:724,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:725,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:725,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:725,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:727,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:728,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:728,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:729,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:730,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:730,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:730,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:732,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 735
    functionName: _odict_remove_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_LAST
    - _odictnode_NEXT
    - _odict_FIRST
    - _odictnode_PREV
    linkageType: ''
    returnType: void
    signature: void _odict_remove_node(PyODictObject *od, _ODictNode *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:759,1
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:760,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:765,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:767,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:769,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:772,1
    - Dst: _odict_remove_node
      Src: /src/cpython/Objects/odictobject.c:780,1
    - Dst: _odictnode_DEALLOC
      Src: /src/cpython/Objects/odictobject.c:781,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: 758
        line_start: 758
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (node == od->od_fast_nodes[i])
      pos:
        line_end: 771
        line_start: 771
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 783
      start: 753
    functionDepth: 9
    functionLinenumber: 753
    functionLinenumberEnd: 783
    functionName: _odict_clear_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_remove_node
    - PyErr_Occurred
    - _odictnode_DEALLOC
    - _odict_get_index
    - _odict_EMPTY
    - 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/cpython/Objects/odictobject.c:790,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:795,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:796,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:797,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:799,1
    - Dst: _odictnode_DEALLOC
      Src: /src/cpython/Objects/odictobject.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 804
    functionName: _odict_clear_nodes
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_NEXT
    - _odictnode_DEALLOC
    - _odict_FIRST
    - _odict_LAST
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _odict_clear_nodes(PyODictObject *od)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:818,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:819,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:830,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:830,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:831,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:831,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/odictobject.c:832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:834,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:839,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:850,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:851,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyODictObject*
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 809
    functionDepth: 4
    functionLinenumber: 809
    functionLinenumberEnd: 854
    functionName: _odict_keys_equal
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - _odictnode_NEXT
    - Py_NewRef
    - _odictnode_KEY
    - PyObject_RichCompareBool
    - _odict_FIRST
    linkageType: ''
    returnType: int
    signature: int _odict_keys_equal(PyODictObject *a, PyODictObject *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_DelItem
      Src: /src/cpython/Objects/odictobject.c:867,1
    - Dst: PyODict_SetItem
      Src: /src/cpython/Objects/odictobject.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - od
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: odict_mp_ass_sub
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyODict_DelItem
    - PyODict_SetItem
    linkageType: ''
    returnType: int
    signature: int odict_mp_ass_sub(PyObject *od, PyObject *v, PyObject *w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_Check
      Src: /src/cpython/Objects/odictobject.c:892,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:893,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:897,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/odictobject.c:900,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/odictobject.c:903,1
    - Dst: mutablemapping_update_arg
      Src: /src/cpython/Objects/odictobject.c:907,1
    - Dst: right::right
      Src: /src/cpython/Objects/odictobject.c:907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 912
    functionName: odict_or
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - mutablemapping_update_arg
    - right::right
    - PyODict_Check
    - PyObject_CallOneArg
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_or(PyObject *left, PyObject *right)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutablemapping_update_arg
      Src: /src/cpython/Objects/odictobject.c:917,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 921
    functionName: odict_inplace_or
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - mutablemapping_update_arg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_inplace_or(PyObject *self, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_FromKeys
      Src: /src/cpython/Objects/odictobject.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - seq
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 948
    functionDepth: 11
    functionLinenumber: 948
    functionLinenumberEnd: 953
    functionName: OrderedDict_fromkeys_impl
    functionSourceFile: /src/cpython/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: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:963,1
    - Dst: _PyDict_SizeOf
      Src: /src/cpython/Objects/odictobject.c:964,1
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:966,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:967,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/odictobject.c:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 960
    functionDepth: 3
    functionLinenumber: 960
    functionLinenumberEnd: 970
    functionName: odict_sizeof
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - PyODict_SIZE
    - PyLong_FromSsize_t
    - _PyDict_SizeOf
    - _odict_EMPTY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_sizeof(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:979,1
    - Dst: _PyObject_GetState
      Src: /src/cpython/Objects/odictobject.c:984,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/odictobject.c:989,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/odictobject.c:993,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:993,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/odictobject.c:997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:998,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/odictobject.c:1002,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1003,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1006,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1007,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 976
    functionDepth: 17
    functionLinenumber: 976
    functionLinenumberEnd: 1010
    functionName: odict_reduce
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetState
    - _PyODictObject_CAST
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - PyObject_GetIter
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:1033,1
    - Dst: PyODict_GetItemWithError
      Src: /src/cpython/Objects/odictobject.c:1034,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1036,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:1038,1
    - Dst: _odict_find_node
      Src: /src/cpython/Objects/odictobject.c:1038,1
    - Dst: PyODict_SetItem
      Src: /src/cpython/Objects/odictobject.c:1039,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1040,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:1044,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/odictobject.c:1048,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:1053,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:1055,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1056,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyODictObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_odict_find_node(self, key) == NULL)
      pos:
        line_end: 1037
        line_start: 1037
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 1061
      start: 1026
    functionDepth: 10
    functionLinenumber: 1026
    functionLinenumberEnd: 1061
    functionName: OrderedDict_setdefault_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Occurred
    - PySequence_Contains
    - PyObject_SetItem
    - PyODict_GetItemWithError
    - PyODict_SetItem
    - PyObject_GetItem
    - Py_NewRef
    - _odict_find_node
    - assert
    - PyODict_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nOrderedDict_setdefault_impl(PyODictObject *self, PyObject
      *key,\n                            PyObject *default_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1071,1
    - Dst: _odict_find_node_hash
      Src: /src/cpython/Objects/odictobject.c:1073,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1073,1
    - Dst: _odict_clear_node
      Src: /src/cpython/Objects/odictobject.c:1078,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1078,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1083,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1085,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1088,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1091,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1094,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1097,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - od
    - key
    - failobj
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1065
    functionDepth: 10
    functionLinenumber: 1065
    functionLinenumberEnd: 1101
    functionName: _odict_popkey_hash
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyODictObject_CAST
    - Py_END_CRITICAL_SECTION
    - PyErr_Occurred
    - PyErr_SetObject
    - Py_NewRef
    - _PyDict_Pop_KnownHash
    - _odict_clear_node
    - _odict_find_node_hash
    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/cpython/Objects/odictobject.c:1122,1
    - Dst: _odict_popkey_hash
      Src: /src/cpython/Objects/odictobject.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyODictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1117
    functionDepth: 11
    functionLinenumber: 1117
    functionLinenumberEnd: 1126
    functionName: OrderedDict_pop_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_popkey_hash
    - PyObject_Hash
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nOrderedDict_pop_impl(PyODictObject *self, PyObject *key,\n
      \                    PyObject *default_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:1150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:1151,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1155,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1156,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1156,1
    - Dst: _odict_popkey_hash
      Src: /src/cpython/Objects/odictobject.c:1157,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:1157,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/odictobject.c:1160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - last
    argTypes:
    - PyODictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1141
    functionDepth: 11
    functionLinenumber: 1141
    functionLinenumberEnd: 1164
    functionName: OrderedDict_popitem_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - _odict_popkey_hash
    - _odictnode_HASH
    - Py_NewRef
    - _odictnode_KEY
    - _odict_FIRST
    - _odict_LAST
    - PyTuple_Pack
    - _odict_EMPTY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_popitem_impl(PyODictObject *self, int last)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1205,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/odictobject.c:1206,1
    - Dst: _odict_clear_nodes
      Src: /src/cpython/Objects/odictobject.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1202
    functionDepth: 10
    functionLinenumber: 1202
    functionLinenumberEnd: 1209
    functionName: odict_clear
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_clear_nodes
    - _PyODictObject_CAST
    - PyDict_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_clear(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1222,1
    - Dst: PyODict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:1226,1
    - Dst: PyODict_New
      Src: /src/cpython/Objects/odictobject.c:1227,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/odictobject.c:1229,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1229,1
    - Dst: PyODict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:1233,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1235,1
    - Dst: _odictnode_VALUE
      Src: /src/cpython/Objects/odictobject.c:1236,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1238,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1239,1
    - Dst: _PyODict_SetItem_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1242,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:1243,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:1250,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1251,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:1254,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1219
    functionDepth: 3
    functionLinenumber: 1219
    functionLinenumberEnd: 1266
    functionName: odict_copy
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PyODict_New
    - PyErr_Occurred
    - _odictnode_VALUE
    - PyErr_SetObject
    - PyObject_SetItem
    - PyObject_GetItem
    - _odictnode_HASH
    - _odictnode_KEY
    - _PyODict_SetItem_KnownHash
    - Py_TYPE
    - PyODict_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_copy(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1235,1
    - Dst: _odictnode_VALUE
      Src: /src/cpython/Objects/odictobject.c:1236,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1238,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1239,1
    - Dst: _PyODict_SetItem_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1242,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:1243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1245
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetObject
    - _odictnode_HASH
    - _odictnode_KEY
    - _PyODict_SetItem_KnownHash
    - _odictnode_VALUE
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:1250,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1251,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:1254,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1248
    functionDepth: 3
    functionLinenumber: 1248
    functionLinenumberEnd: 1259
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_SetItem
    - _odictnode_KEY
    - Py_DECREF
    - PyObject_GetItem
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1283,1
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1285
    functionName: odict_reversed
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_reversed(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:1307,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1308,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1311,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1311,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1312,1
    - Dst: _odict_find_node
      Src: /src/cpython/Objects/odictobject.c:1313,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1315,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1316,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1321,1
    - Dst: _odict_remove_node
      Src: /src/cpython/Objects/odictobject.c:1322,1
    - Dst: _odict_add_tail
      Src: /src/cpython/Objects/odictobject.c:1323,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1328,1
    - Dst: _odict_remove_node
      Src: /src/cpython/Objects/odictobject.c:1329,1
    - Dst: _odict_add_head
      Src: /src/cpython/Objects/odictobject.c:1330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - key
    - last
    argTypes:
    - PyODictObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1301
    functionDepth: 10
    functionLinenumber: 1301
    functionLinenumberEnd: 1335
    functionName: OrderedDict_move_to_end_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_remove_node
    - PyErr_Occurred
    - _odict_add_tail
    - _odict_add_head
    - PyErr_SetObject
    - _odictnode_KEY
    - _odict_FIRST
    - _odict_LAST
    - _odict_find_node
    - _odict_EMPTY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_move_to_end_impl(PyODictObject *self, PyObject *key, int last)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1393,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/odictobject.c:1394,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1396,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/odictobject.c:1397,1
    - Dst: _odict_clear_nodes
      Src: /src/cpython/Objects/odictobject.c:1399,1
    - Dst: tp_dealloc
      Src: /src/cpython/Objects/odictobject.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1401
    functionName: odict_dealloc
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - Py_XDECREF
    - tp_dealloc
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - _odict_clear_nodes
    linkageType: ''
    returnType: void
    signature: void odict_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1408,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:1412,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/odictobject.c:1413,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/odictobject.c:1413,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1413,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/odictobject.c:1415,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/odictobject.c:1417,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/odictobject.c:1420,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/odictobject.c:1425,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/odictobject.c:1426,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1428,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/odictobject.c:1431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1405
    functionDepth: 12
    functionLinenumber: 1405
    functionLinenumberEnd: 1433
    functionName: odict_repr
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - PyODict_SIZE
    - Py_ReprEnter
    - Py_DECREF
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - PyDict_Copy
    - _PyType_Name
    - Py_TYPE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1445,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1448,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1450,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1450,1
    - Dst: tp_traverse
      Src: /src/cpython/Objects/odictobject.c:1452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1453
    functionName: odict_traverse
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - _PyODictObject_CAST
    - _odictnode_KEY
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int odict_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1450,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1451
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_KEY
    - Py_VISIT
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1460,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1461,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/odictobject.c:1462,1
    - Dst: _odict_clear_nodes
      Src: /src/cpython/Objects/odictobject.c:1463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1457
    functionDepth: 10
    functionLinenumber: 1457
    functionLinenumberEnd: 1465
    functionName: odict_tp_clear
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_clear_nodes
    - _PyODictObject_CAST
    - PyDict_Clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int odict_tp_clear(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_Check
      Src: /src/cpython/Objects/odictobject.c:1472,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/odictobject.c:1472,1
    - Dst: tp_richcompare
      Src: /src/cpython/Objects/odictobject.c:1480,1
    - Dst: PyODict_Check
      Src: /src/cpython/Objects/odictobject.c:1483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1489,1
    - Dst: _odict_keys_equal
      Src: /src/cpython/Objects/odictobject.c:1492,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1492,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1492,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1497,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1469
    functionDepth: 5
    functionLinenumber: 1469
    functionLinenumberEnd: 1501
    functionName: odict_richcompare
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - Py_DECREF
    - _odict_keys_equal
    - PyODict_Check
    - Py_NewRef
    - PyDict_Check
    - tp_richcompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:1508,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1509
    functionName: odict_iter
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_iter(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Length
      Src: /src/cpython/Objects/odictobject.c:1517,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/odictobject.c:1523,1
    - Dst: odict_update
      Src: /src/cpython/Objects/odictobject.c:1528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1513
    functionDepth: 3
    functionLinenumber: 1513
    functionLinenumberEnd: 1535
    functionName: odict_init
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Length
    - Py_DECREF
    - odict_update
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int odict_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_new
      Src: /src/cpython/Objects/odictobject.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1590
    functionName: PyODict_New
    functionSourceFile: /src/cpython/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/cpython/Objects/odictobject.c:1596,1
    - Dst: _odict_add_new_node
      Src: /src/cpython/Objects/odictobject.c:1598,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1598,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/odictobject.c:1601,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1602,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Objects/odictobject.c:1603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - od
    - key
    - value
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1592
    functionDepth: 10
    functionLinenumber: 1592
    functionLinenumberEnd: 1607
    functionName: _PyODict_SetItem_KnownHash
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - _PyODictObject_CAST
    - _PyErr_ChainExceptions1
    - PyErr_GetRaisedException
    - _odict_add_new_node
    - _PyDict_DelItem_KnownHash
    - _PyDict_SetItem_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/cpython/Objects/odictobject.c:1612,1
    - Dst: _PyODict_SetItem_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - od
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1609
    functionDepth: 11
    functionLinenumber: 1609
    functionLinenumberEnd: 1616
    functionName: PyODict_SetItem
    functionSourceFile: /src/cpython/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/cpython/Objects/odictobject.c:1622,1
    - Dst: _odict_clear_node
      Src: /src/cpython/Objects/odictobject.c:1625,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1625,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - od
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1618
    functionDepth: 10
    functionLinenumber: 1618
    functionLinenumberEnd: 1629
    functionName: PyODict_DelItem
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 1
    functionsReached:
    - _PyDict_DelItem_KnownHash
    - _PyODictObject_CAST
    - PyObject_Hash
    - _odict_clear_node
    linkageType: ''
    returnType: int
    signature: int PyODict_DelItem(PyObject *od, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/odictobject.c:1650,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1651,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1654,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/odictobject.c:1656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1646
    functionDepth: 0
    functionLinenumber: 1646
    functionLinenumberEnd: 1657
    functionName: odictiter_dealloc
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void odictiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1663,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1664,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1667
    functionName: odictiter_traverse
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int odictiter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:1685,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:1689,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:1690,1
    - Dst: _odict_find_node
      Src: /src/cpython/Objects/odictobject.c:1697,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1699,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1700,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1702,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:1708,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:1708,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1714,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1714,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1720,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - di
    argTypes:
    - odictiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1671
    functionDepth: 10
    functionLinenumber: 1671
    functionLinenumberEnd: 1722
    functionName: odictiter_nextkey
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyODict_SIZE
    - Py_CLEAR
    - _odictnode_PREV
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_SetObject
    - _odictnode_NEXT
    - Py_NewRef
    - _odictnode_KEY
    - _odict_find_node
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_nextkey(odictiterobject *di)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_nextkey
      Src: /src/cpython/Objects/odictobject.c:1729,1
    - Dst: PyODict_GetItem
      Src: /src/cpython/Objects/odictobject.c:1739,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1741,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1743,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:1746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1750,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/odictobject.c:1757,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:1760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1761,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1762,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1762,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/odictobject.c:1765,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/odictobject.c:1768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1771,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1776,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1777,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1781,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1724
    functionDepth: 11
    functionLinenumber: 1724
    functionLinenumberEnd: 1784
    functionName: odictiter_iternext
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_nextkey
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - _PyTuple_Recycle
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyErr_SetObject
    - PyTuple_GET_ITEM
    - Py_CLEAR
    - Py_REFCNT
    - PyODict_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_iternext(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/odictobject.c:1797,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/odictobject.c:1798,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/odictobject.c:1801,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1802,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1803,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/odictobject.c:1807,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/odictobject.c:1807,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:1807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1790
    functionDepth: 2
    functionLinenumber: 1790
    functionLinenumberEnd: 1808
    functionName: odictiter_reduce
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_XDECREF
    - Py_BuildValue
    - _Py_ID
    - PySequence_List
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/odictobject.c:1855,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/odictobject.c:1860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1862,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1871,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1871,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1872,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1872,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:1873,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1875,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/odictobject.c:1877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - od
    - kind
    argTypes:
    - PyODictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1848
    functionDepth: 3
    functionLinenumber: 1848
    functionLinenumberEnd: 1879
    functionName: odictiter_new
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyODict_SIZE
    - _PyObject_GC_TRACK
    - Py_NewRef
    - _odictnode_KEY
    - _odict_FIRST
    - _odict_LAST
    - PyTuple_Pack
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_new(PyODictObject *od, int kind)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:1890,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1883
    functionDepth: 4
    functionLinenumber: 1883
    functionLinenumberEnd: 1892
    functionName: odictkeys_iter
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictkeys_iter(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:1901,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1894
    functionDepth: 4
    functionLinenumber: 1894
    functionLinenumberEnd: 1903
    functionName: odictkeys_reversed
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictkeys_reversed(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/odictobject.c:1947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1944
    functionDepth: 2
    functionLinenumber: 1944
    functionLinenumberEnd: 1948
    functionName: odictkeys_new
    functionSourceFile: /src/cpython/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/cpython/Objects/odictobject.c:1959,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1952
    functionDepth: 4
    functionLinenumber: 1952
    functionLinenumberEnd: 1961
    functionName: odictitems_iter
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictitems_iter(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:1970,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1963
    functionDepth: 4
    functionLinenumber: 1963
    functionLinenumberEnd: 1972
    functionName: odictitems_reversed
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictitems_reversed(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/odictobject.c:2016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2013
    functionDepth: 2
    functionLinenumber: 2013
    functionLinenumberEnd: 2017
    functionName: odictitems_new
    functionSourceFile: /src/cpython/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/cpython/Objects/odictobject.c:2028,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:2028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2021
    functionDepth: 4
    functionLinenumber: 2021
    functionLinenumberEnd: 2030
    functionName: odictvalues_iter
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictvalues_iter(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:2039,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:2039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2032
    functionDepth: 4
    functionLinenumber: 2032
    functionLinenumberEnd: 2041
    functionName: odictvalues_reversed
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictvalues_reversed(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/odictobject.c:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2082
    functionDepth: 2
    functionLinenumber: 2082
    functionLinenumberEnd: 2086
    functionName: odictvalues_new
    functionSourceFile: /src/cpython/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/cpython/Objects/odictobject.c:2138,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/odictobject.c:2141,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2143,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/odictobject.c:2146,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2150,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:2153,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2158,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2160,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:2161,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2168,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:2169,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2173,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:2176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2179,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:2180,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:2181,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:2182,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2186,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2188,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 2
    argNames:
    - self
    - pairs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2132
    functionDepth: 3
    functionLinenumber: 2132
    functionLinenumberEnd: 2192
    functionName: mutablemapping_add_pairs
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyErr_SetString
    - PyObject_SetItem
    - PyIter_Next
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int mutablemapping_add_pairs(PyObject *self, PyObject *pairs)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:2198,1
    - Dst: PyDict_Items
      Src: /src/cpython/Objects/odictobject.c:2199,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2204,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/odictobject.c:2208,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:2208,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/odictobject.c:2212,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2213,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/odictobject.c:2217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2218,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2223,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:2224,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:2226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2234,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2235,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/odictobject.c:2240,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:2240,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/odictobject.c:2244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2245,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2250,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2253,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2194
    functionDepth: 5
    functionLinenumber: 2194
    functionLinenumberEnd: 2255
    functionName: mutablemapping_update_arg
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_CallNoArgs
    - PyDict_Items
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyDict_CheckExact
    - PyErr_Occurred
    - PyObject_GetIter
    - _Py_ID
    - PyObject_SetItem
    - PyObject_GetItem
    - PyIter_Next
    - mutablemapping_add_pairs
    linkageType: ''
    returnType: int
    signature: int mutablemapping_update_arg(PyObject *self, PyObject *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:2262,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/odictobject.c:2262,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/odictobject.c:2263,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/odictobject.c:2266,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/odictobject.c:2271,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:2272,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:2273,1
    - Dst: mutablemapping_update_arg
      Src: /src/cpython/Objects/odictobject.c:2274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2275,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:2282,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/odictobject.c:2282,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/odictobject.c:2283,1
    - Dst: PyDict_Items
      Src: /src/cpython/Objects/odictobject.c:2284,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (args == NULL || PyTuple_Check(args))
      pos:
        line_end: 2261
        line_start: 2261
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (other != NULL)
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 2294
      start: 2257
    functionDepth: 6
    functionLinenumber: 2257
    functionLinenumberEnd: 2294
    functionName: mutablemapping_update
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - mutablemapping_update_arg
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyDict_Items
    - PyTuple_Check
    - mutablemapping_add_pairs
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)'
  - 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: _PyCapsule_CAST
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCapsule_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_CheckExact
      Src: /src/cpython/Objects/capsule.c:27,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/capsule.c:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - op
    - invalid_capsule
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: _is_legal_capsule
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyCapsule_CheckExact
    linkageType: ''
    returnType: int
    signature: int _is_legal_capsule(PyObject *op, 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: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: is_legal_capsule
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_legal_capsule(capsule, name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Objects/capsule.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - name1
    - name2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: name_matches
    functionSourceFile: /src/cpython/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/cpython/Objects/capsule.c:65,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/capsule.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - pointer
    - name
    - destructor
    argTypes:
    - void*
    - char*
    - PyCapsule_Destructor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 83
    functionName: PyCapsule_New
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 14
    functionsReached:
    - PyErr_SetString
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCapsule_New(void *pointer, const char *name, PyCapsule_Destructor destructor)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_CheckExact
      Src: /src/cpython/Objects/capsule.c:92,1
    - Dst: name_matches
      Src: /src/cpython/Objects/capsule.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: PyCapsule_IsValid
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 4
    functionsReached:
    - PyCapsule_CheckExact
    - name_matches
    linkageType: ''
    returnType: int
    signature: int PyCapsule_IsValid(PyObject *op, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:101,1
    - Dst: name_matches
      Src: /src/cpython/Objects/capsule.c:106,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/capsule.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: PyCapsule_GetPointer
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 22
    functionsReached:
    - is_legal_capsule
    - PyErr_SetString
    - name_matches
    linkageType: ''
    returnType: void
    signature: 'void *

      PyCapsule_GetPointer(PyObject *op, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: PyCapsule_GetName
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: char
    signature: 'char *

      PyCapsule_GetName(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: PyCapsule_GetDestructor
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: PyCapsule_Destructor
    signature: PyCapsule_Destructor PyCapsule_GetDestructor(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: PyCapsule_GetContext
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: void
    signature: 'void *

      PyCapsule_GetContext(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/capsule.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - op
    - pointer
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: PyCapsule_SetPointer
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetPointer(PyObject *op, void *pointer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: PyCapsule_SetName
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 2
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetName(PyObject *op, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - destructor
    argTypes:
    - PyObject*
    - PyCapsule_Destructor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: PyCapsule_SetDestructor
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetDestructor(PyObject *op, PyCapsule_Destructor destructor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: PyCapsule_SetContext
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetContext(PyObject *op, void *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/cpython/Objects/capsule.c:208,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/capsule.c:214,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/capsule.c:219,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/capsule.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - op
    - traverse_func
    - clear_func
    argTypes:
    - PyObject*
    - traverseproc
    - inquiry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 226
    functionName: _PyCapsule_SetTraverse
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 2
    functionsReached:
    - is_legal_capsule
    - PyErr_SetString
    - _PyObject_GC_IS_TRACKED
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: int
    signature: int _PyCapsule_SetTraverse(PyObject *op, traverseproc traverse_func,
      inquiry clear_func)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/capsule.c:235,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/capsule.c:236,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/capsule.c:239,1
    - Dst: memcpy
      Src: /src/cpython/Objects/capsule.c:242,1
    - Dst: strchr
      Src: /src/cpython/Objects/capsule.c:246,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/capsule.c:252,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/capsule.c:254,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/capsule.c:257,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/capsule.c:258,1
    - Dst: PyCapsule_IsValid
      Src: /src/cpython/Objects/capsule.c:268,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/capsule.c:272,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/capsule.c:278,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/capsule.c:280,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - name
    - no_block
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 283
    functionName: PyCapsule_Import
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - PyObject_GetAttrString
    - strlen
    - PyImport_ImportModule
    - Py_SETREF
    - PyCapsule_IsValid
    - PyMem_Free
    - PyErr_Format
    - memcpy
    - PyErr_NoMemory
    - strchr
    - PyMem_Malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyCapsule_Import(const char *name, int no_block)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCapsule_CAST
      Src: /src/cpython/Objects/capsule.c:289,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/capsule.c:290,1
    - Dst: PyCapsule*::destructor
      Src: /src/cpython/Objects/capsule.c:292,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/capsule.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: capsule_dealloc
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - _PyCapsule_CAST
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - PyCapsule*::destructor
    linkageType: ''
    returnType: void
    signature: void capsule_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCapsule_CAST
      Src: /src/cpython/Objects/capsule.c:301,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/capsule.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 298
    functionDepth: 10
    functionLinenumber: 298
    functionLinenumberEnd: 315
    functionName: capsule_repr
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - _PyCapsule_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      capsule_repr(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCapsule_CAST
      Src: /src/cpython/Objects/capsule.c:324,1
    - Dst: PyCapsule*::traverse_func
      Src: /src/cpython/Objects/capsule.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 329
    functionName: capsule_traverse
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - _PyCapsule_CAST
    - PyCapsule*::traverse_func
    linkageType: ''
    returnType: int
    signature: int capsule_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCapsule_CAST
      Src: /src/cpython/Objects/capsule.c:337,1
    - Dst: assert
      Src: /src/cpython/Objects/capsule.c:338,1
    - Dst: PyCapsule*::clear_func
      Src: /src/cpython/Objects/capsule.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (capsule->clear_func != NULL)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/cpython/Objects/capsule.c
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: capsule_clear
    functionSourceFile: /src/cpython/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - _PyCapsule_CAST
    - PyCapsule*::clear_func
    - assert
    linkageType: ''
    returnType: int
    signature: int capsule_clear(PyObject *self)
  - 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: _enumobject_CAST
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _enumobject_CAST(op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/enumobject.c:53,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/enumobject.c:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:59,1
    - Dst: assert
      Src: /src/cpython/Objects/enumobject.c:62,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/enumobject.c:62,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/enumobject.c:63,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/enumobject.c:64,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/enumobject.c:65,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:70,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/enumobject.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:78,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/enumobject.c:81,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:83,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/enumobject.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - type
    - iterable
    - start
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(start))
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/cpython/Objects/enumobject.c
    constantsTouched: []
    func_position:
      end: 88
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 88
    functionName: enum_new_impl
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - PyObject_GetIter
    - PyLong_Check
    - _PyLong_GetOne
    - PyTypeObject*::tp_alloc
    - PyTuple_Pack
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_new_impl(PyTypeObject *type, PyObject *iterable, PyObject *start)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:93,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/enumobject.c:94,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/enumobject.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - kwnames
    - index
    - name
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: check_keyword
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyTuple_GET_ITEM
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int check_keyword(PyObject *kwnames, int index,\n                         const
      char *name)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/enumobject.c:107,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/enumobject.c:108,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/enumobject.c:111,1
    - Dst: check_keyword
      Src: /src/cpython/Objects/enumobject.c:117,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:121,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/enumobject.c:122,1
    - Dst: check_keyword
      Src: /src/cpython/Objects/enumobject.c:123,1
    - Dst: enum_new_impl
      Src: /src/cpython/Objects/enumobject.c:126,1
    - Dst: check_keyword
      Src: /src/cpython/Objects/enumobject.c:128,1
    - Dst: check_keyword
      Src: /src/cpython/Objects/enumobject.c:129,1
    - Dst: enum_new_impl
      Src: /src/cpython/Objects/enumobject.c:134,1
    - Dst: check_keyword
      Src: /src/cpython/Objects/enumobject.c:138,1
    - Dst: enum_new_impl
      Src: /src/cpython/Objects/enumobject.c:141,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/enumobject.c:145,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/enumobject.c:150,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 153
    functionName: enumerate_vectorcall
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - check_keyword
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _PyType_CAST
    - enum_new_impl
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyUnicode_EqualToASCIIString
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nenumerate_vectorcall(PyObject *type, PyObject *const *args,\n
      \                    size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _enumobject_CAST
      Src: /src/cpython/Objects/enumobject.c:158,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/enumobject.c:159,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/enumobject.c:160,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/enumobject.c:161,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/enumobject.c:162,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: enum_dealloc
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - _enumobject_CAST
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void enum_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _enumobject_CAST
      Src: /src/cpython/Objects/enumobject.c:169,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/enumobject.c:170,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/enumobject.c:171,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/enumobject.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: enum_traverse
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _enumobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int enum_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/enumobject.c:183,1
    - Dst: assert
      Src: /src/cpython/Objects/enumobject.c:188,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/enumobject.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - en
    argTypes:
    - enumobject*
    assertStmts:
    - condition: (next_index != NULL)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/cpython/Objects/enumobject.c
    constantsTouched: []
    func_position:
      end: 195
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 195
    functionName: increment_longindex_lock_held
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - assert
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      increment_longindex_lock_held(enumobject *en)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:206,1
    - Dst: increment_longindex_lock_held
      Src: /src/cpython/Objects/enumobject.c:207,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:210,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/enumobject.c:214,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/enumobject.c:215,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:216,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:217,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:218,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:221,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/enumobject.c:224,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/enumobject.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:230,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:233,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - en
    - next_item
    argTypes:
    - enumobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 236
    functionName: enum_next_long
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_INCREF
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - PyTuple_New
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - increment_longindex_lock_held
    - PyTuple_GET_ITEM
    - _PyObject_IsUniquelyReferenced
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_next_long(enumobject *en, PyObject* next_item)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _enumobject_CAST
      Src: /src/cpython/Objects/enumobject.c:241,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:249,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:253,1
    - Dst: enum_next_long
      Src: /src/cpython/Objects/enumobject.c:255,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/enumobject.c:257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:259,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:262,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/enumobject.c:264,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/enumobject.c:265,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:266,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:267,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:268,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:270,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:271,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/enumobject.c:274,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/enumobject.c:277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:280,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:283,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 286
    functionName: enum_next
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - Py_INCREF
    - PyTuple_New
    - _enumobject_CAST
    - Py_DECREF
    - _PyTuple_Recycle
    - PyLong_FromSsize_t
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyTuple_SET_ITEM
    - enum_next_long
    - PyTuple_GET_ITEM
    - _PyObject_IsUniquelyReferenced
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_next(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _enumobject_CAST
      Src: /src/cpython/Objects/enumobject.c:291,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:293,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:295,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:295,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:297,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:297,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 300
    functionName: enum_reduce
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_BuildValue
    - _enumobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: _reversedobject_CAST
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _reversedobject_CAST(op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/enumobject.c:384,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/enumobject.c:384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:386,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/enumobject.c:387,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:389,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/enumobject.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:394,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/enumobject.c:397,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/enumobject.c:400,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/enumobject.c:401,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:403,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/enumobject.c:407,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/enumobject.c:411,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/enumobject.c:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - type
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 418
    functionName: reversed_new_impl
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - PySequence_Check
    - PyErr_Occurred
    - _Py_ID
    - _PyObject_LookupSpecial
    - Py_NewRef
    - PySequence_Size
    - PyErr_Format
    - PyTypeObject*::tp_alloc
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_new_impl(PyTypeObject *type, PyObject *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/enumobject.c:424,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/enumobject.c:428,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/enumobject.c:429,1
    - Dst: reversed_new_impl
      Src: /src/cpython/Objects/enumobject.c:433,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/enumobject.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 420
    functionDepth: 4
    functionLinenumber: 420
    functionLinenumberEnd: 434
    functionName: reversed_vectorcall
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _PyType_CAST
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    - reversed_new_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreversed_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:439,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/enumobject.c:440,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/enumobject.c:441,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: reversed_dealloc
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - PyObject_GC_UnTrack
    - _reversedobject_CAST
    linkageType: ''
    returnType: void
    signature: void reversed_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:448,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/enumobject.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: reversed_traverse
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _reversedobject_CAST
    linkageType: ''
    returnType: int
    signature: int reversed_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:456,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:458,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/enumobject.c:461,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:463,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/enumobject.c:466,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/enumobject.c:467,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/enumobject.c:468,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:470,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/enumobject.c:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 475
    functionName: reversed_next
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _reversedobject_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:480,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:482,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/enumobject.c:485,1
    - Dst: assert
      Src: /src/cpython/Objects/enumobject.c:486,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/enumobject.c:487,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/enumobject.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (ro->seq != NULL)
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/cpython/Objects/enumobject.c
    constantsTouched: []
    func_position:
      end: 492
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 492
    functionName: reversed_len
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _reversedobject_CAST
    - PyLong_FromSsize_t
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PySequence_Size
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_len(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:499,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:500,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:502,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:502,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:505,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 507
    functionName: reversed_reduce
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_TYPE
    - Py_BuildValue
    - _reversedobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:512,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/enumobject.c:513,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/enumobject.c:514,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:516,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/enumobject.c:521,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 531
    functionName: reversed_setstate
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _reversedobject_CAST
    - PyErr_Occurred
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PySequence_Size
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_setstate(PyObject *op, PyObject *state)'
  - 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: _PyComplexObject_CAST
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyComplexObject_CAST(op)
  - 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_sum
    functionSourceFile: /src/cpython/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: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: _Py_cr_sum
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_cr_sum(Py_complex a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_cr_sum
      Src: /src/cpython/Objects/complexobject.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: _Py_rc_sum
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_cr_sum
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_rc_sum(double 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: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: _Py_c_diff
    functionSourceFile: /src/cpython/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: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: _Py_cr_diff
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_cr_diff(Py_complex a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: _Py_rc_diff
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_rc_diff(double 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: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: _Py_c_neg
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_neg(Py_complex a)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:98,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:98,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:101,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:101,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:103,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:103,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:104,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:104,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:105,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:106,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:108,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:109,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:113,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:113,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:115,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:115,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:116,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:116,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:117,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:118,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:120,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:121,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:125,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:125,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:125,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:125,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:127,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:128,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:130,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:131,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:133,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:134,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:136,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:137,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 2
    argNames:
    - z
    - w
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 148
    functionName: _Py_c_prod
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - copysign
    - isinf
    - isnan
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_prod(Py_complex z, Py_complex w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: _Py_cr_prod
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_cr_prod(Py_complex a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_cr_prod
      Src: /src/cpython/Objects/complexobject.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: _Py_rc_prod
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_cr_prod
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_rc_prod(double a, Py_complex b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:215,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:226,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:226,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:227,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:227,1
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:228,1
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:228,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:230,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:230,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:231,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:231,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:235,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:235,1
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:236,1
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:236,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:238,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:238,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:239,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts:
    - condition: (b.imag != 0.0)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 246
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 246
    functionName: _Py_c_quot
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 1
    functionsReached:
    - copysign
    - isinf
    - isnan
    - isfinite
    - assert
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_quot(Py_complex a, Py_complex b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: _Py_cr_quot
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_cr_quot(Py_complex a, double b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:286,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:294,1
    - Dst: isnan
      Src: /src/cpython/Objects/complexobject.c:294,1
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:294,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:295,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:295,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:297,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:297,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:298,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - Py_complex
    assertStmts:
    - condition: (b.imag != 0.0)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/cpython/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 304
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 304
    functionName: _Py_rc_quot
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - copysign
    - isinf
    - isnan
    - isfinite
    - assert
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_rc_quot(double a, Py_complex b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hypot
      Src: /src/cpython/Objects/complexobject.c:325,1
    - Dst: pow
      Src: /src/cpython/Objects/complexobject.c:326,1
    - Dst: atan2
      Src: /src/cpython/Objects/complexobject.c:327,1
    - Dst: exp
      Src: /src/cpython/Objects/complexobject.c:330,1
    - Dst: log
      Src: /src/cpython/Objects/complexobject.c:331,1
    - Dst: cos
      Src: /src/cpython/Objects/complexobject.c:333,1
    - Dst: sin
      Src: /src/cpython/Objects/complexobject.c:334,1
    - Dst: _Py_ADJUST_ERANGE2
      Src: /src/cpython/Objects/complexobject.c:336,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 339
    functionName: _Py_c_pow
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - pow
    - atan2
    - sin
    - hypot
    - _Py_ADJUST_ERANGE2
    - cos
    - exp
    - log
    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/cpython/Objects/complexobject.c:350,1
    - Dst: _Py_c_prod
      Src: /src/cpython/Objects/complexobject.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - Py_complex
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 355
    functionName: c_powu
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_c_prod
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_powu(Py_complex x, long n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_powu
      Src: /src/cpython/Objects/complexobject.c:361,1
    - Dst: _Py_c_quot
      Src: /src/cpython/Objects/complexobject.c:363,1
    - Dst: c_powu
      Src: /src/cpython/Objects/complexobject.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - Py_complex
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: c_powi
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - c_powu
    - _Py_c_quot
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_powi(Py_complex x, long n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:373,1
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:373,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:377,1
    - Dst: fabs
      Src: /src/cpython/Objects/complexobject.c:378,1
    - Dst: isinf
      Src: /src/cpython/Objects/complexobject.c:382,1
    - Dst: fabs
      Src: /src/cpython/Objects/complexobject.c:383,1
    - Dst: hypot
      Src: /src/cpython/Objects/complexobject.c:391,1
    - Dst: isfinite
      Src: /src/cpython/Objects/complexobject.c:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - z
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 397
    functionName: _Py_c_abs
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 3
    functionsReached:
    - isinf
    - isfinite
    - fabs
    - hypot
    linkageType: ''
    returnType: double
    signature: double _Py_c_abs(Py_complex z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/complexobject.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - cval
    argTypes:
    - PyTypeObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: complex_subtype_from_c_complex
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/complexobject.c:413,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/complexobject.c:417,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/complexobject.c:419,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/complexobject.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cval
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 425
    functionName: PyComplex_FromCComplex
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 22
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - _Py_FREELIST_POP
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyComplex_FromCComplex(Py_complex cval)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:430,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:430,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/complexobject.c:431,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/complexobject.c:432,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/complexobject.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyComplex_Check(op))
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 437
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 437
    functionName: complex_dealloc
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyComplex_CheckExact
    - PyComplex_Check
    - Py_TYPE
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void complex_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex_subtype_from_c_complex
      Src: /src/cpython/Objects/complexobject.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - type
    - real
    - imag
    argTypes:
    - PyTypeObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: complex_subtype_from_doubles
    functionSourceFile: /src/cpython/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/cpython/Objects/complexobject.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - real
    - imag
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 455
    functionName: PyComplex_FromDoubles
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 11
    functionsReached:
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyComplex_FromDoubles(double real, double imag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:464,1
    - Dst: try_complex_special_method
      Src: /src/cpython/Objects/complexobject.c:468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:471,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:472,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/complexobject.c:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 478
    functionName: PyComplex_RealAsDouble
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 1
    functionsReached:
    - PyFloat_AsDouble
    - Py_DECREF
    - PyErr_Occurred
    - PyComplex_Check
    - try_complex_special_method
    linkageType: ''
    returnType: double
    signature: double PyComplex_RealAsDouble(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:485,1
    - Dst: try_complex_special_method
      Src: /src/cpython/Objects/complexobject.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:492,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:493,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/complexobject.c:494,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 502
    functionName: PyComplex_ImagAsDouble
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 1
    functionsReached:
    - PyFloat_AsDouble
    - Py_DECREF
    - PyErr_Occurred
    - PyComplex_Check
    - try_complex_special_method
    linkageType: ''
    returnType: double
    signature: double PyComplex_ImagAsDouble(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/complexobject.c:509,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/complexobject.c:509,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/complexobject.c:511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:512,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/complexobject.c:513,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:516,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/complexobject.c:517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:520,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/complexobject.c:524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 535
    functionName: try_complex_special_method
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_CallNoArgs
    - PyErr_WarnFormat
    - Py_DECREF
    - PyComplex_CheckExact
    - _Py_ID
    - _PyObject_LookupSpecial
    - PyComplex_Check
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      try_complex_special_method(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:543,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:545,1
    - Dst: try_complex_special_method
      Src: /src/cpython/Objects/complexobject.c:554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:558,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:561,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/complexobject.c:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/cpython/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 571
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 571
    functionName: PyComplex_AsCComplex
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 37
    functionsReached:
    - PyFloat_AsDouble
    - Py_DECREF
    - PyErr_Occurred
    - PyComplex_Check
    - try_complex_special_method
    - assert
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex PyComplex_AsCComplex(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyComplexObject_CAST
      Src: /src/cpython/Objects/complexobject.c:579,1
    - Dst: copysign
      Src: /src/cpython/Objects/complexobject.c:592,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/complexobject.c:596,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/complexobject.c:599,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/complexobject.c:605,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/complexobject.c:608,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/complexobject.c:613,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/complexobject.c:616,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/complexobject.c:622,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/complexobject.c:624,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/complexobject.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 573
    functionDepth: 10
    functionLinenumber: 573
    functionLinenumberEnd: 628
    functionName: complex_repr
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - copysign
    - PyUnicode_FromFormat
    - PyMem_Free
    - _PyComplexObject_CAST
    - PyErr_NoMemory
    - PyOS_double_to_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_repr(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyComplexObject_CAST
      Src: /src/cpython/Objects/complexobject.c:634,1
    - Dst: _Py_HashDouble
      Src: /src/cpython/Objects/complexobject.c:635,1
    - Dst: _Py_HashDouble
      Src: /src/cpython/Objects/complexobject.c:638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 651
    functionName: complex_hash
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyComplexObject_CAST
    - _Py_HashDouble
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t complex_hash(PyObject *op)
  - 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: 659
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 659
    functionName: TO_COMPLEX
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_COMPLEX(obj, c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/complexobject.c:665,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/complexobject.c:666,1
    - Dst: _Py_convert_int_to_double
      Src: /src/cpython/Objects/complexobject.c:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pobj
    - dbl
    argTypes:
    - PyObject**
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 672
    functionName: real_to_double
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - _Py_convert_int_to_double
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: int
    signature: int real_to_double(PyObject **pobj, double *dbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: real_to_double
      Src: /src/cpython/Objects/complexobject.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pobj
    - pc
    argTypes:
    - PyObject**
    - Py_complex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: real_to_complex
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - real_to_double
    linkageType: ''
    returnType: int
    signature: int real_to_complex(PyObject **pobj, Py_complex *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 733
    functionName: COMPLEX_BINOP
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPLEX_BINOP(NAME, FUNC)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TO_COMPLEX
      Src: /src/cpython/Objects/complexobject.c:744,1
    - Dst: TO_COMPLEX
      Src: /src/cpython/Objects/complexobject.c:745,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/complexobject.c:748,1
    - Dst: floor
      Src: /src/cpython/Objects/complexobject.c:754,1
    - Dst: fabs
      Src: /src/cpython/Objects/complexobject.c:754,1
    - Dst: c_powi
      Src: /src/cpython/Objects/complexobject.c:755,1
    - Dst: _Py_ADJUST_ERANGE2
      Src: /src/cpython/Objects/complexobject.c:756,1
    - Dst: _Py_c_pow
      Src: /src/cpython/Objects/complexobject.c:759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/complexobject.c:763,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/complexobject.c:768,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Objects/complexobject.c:772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 773
    functionName: complex_pow
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - fabs
    - c_powi
    - TO_COMPLEX
    - PyErr_SetString
    - floor
    - _Py_ADJUST_ERANGE2
    - PyComplex_FromCComplex
    - _Py_c_pow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_pow(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyComplexObject_CAST
      Src: /src/cpython/Objects/complexobject.c:778,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Objects/complexobject.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 783
    functionName: complex_neg
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyComplexObject_CAST
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_neg(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyComplexObject_CAST
      Src: /src/cpython/Objects/complexobject.c:788,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/complexobject.c:789,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/complexobject.c:790,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Objects/complexobject.c:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 793
    functionName: complex_pos
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyComplex_CheckExact
    - _PyComplexObject_CAST
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_pos(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyComplexObject_CAST
      Src: /src/cpython/Objects/complexobject.c:798,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Objects/complexobject.c:799,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/complexobject.c:801,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/complexobject.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 806
    functionName: complex_abs
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyComplexObject_CAST
    - PyErr_SetString
    - PyFloat_FromDouble
    - _Py_c_abs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_abs(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyComplexObject_CAST
      Src: /src/cpython/Objects/complexobject.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 813
    functionName: complex_bool
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyComplexObject_CAST
    linkageType: ''
    returnType: int
    signature: int complex_bool(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:826,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:826,1
    - Dst: TO_COMPLEX
      Src: /src/cpython/Objects/complexobject.c:827,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/complexobject.c:829,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/complexobject.c:835,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/complexobject.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:840,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/complexobject.c:847,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/complexobject.c:848,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:850,1
    - Dst: TO_COMPLEX
      Src: /src/cpython/Objects/complexobject.c:853,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/complexobject.c:865,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyComplex_Check(v))
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/cpython/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 869
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 869
    functionName: complex_richcompare
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - PyFloat_AsDouble
    - Py_DECREF
    - TO_COMPLEX
    - PyLong_Check
    - PyObject_RichCompare
    - Py_NewRef
    - PyComplex_Check
    - PyFloat_FromDouble
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Objects/complexobject.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 885
    functionName: complex_conjugate_impl
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_conjugate_impl(PyComplexObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/complexobject.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 898
    functionName: complex___getnewargs___impl
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex___getnewargs___impl(PyComplexObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/complexobject.c:916,1
    - Dst: _PyComplex_FormatAdvancedWriter
      Src: /src/cpython/Objects/complexobject.c:917,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/complexobject.c:920,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/complexobject.c:922,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/complexobject.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyComplexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 910
    functionDepth: 7
    functionLinenumber: 910
    functionLinenumberEnd: 926
    functionName: complex___format___impl
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyComplex_FormatAdvancedWriter
    - _PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex___format___impl(PyComplexObject *self, PyObject *format_spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/complexobject.c:938,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/complexobject.c:939,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Objects/complexobject.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 934
    functionDepth: 3
    functionLinenumber: 934
    functionLinenumberEnd: 944
    functionName: complex___complex___impl
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyComplex_CheckExact
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex___complex___impl(PyComplexObject *self)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/complexobject.c:957,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/complexobject.c:963,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Objects/complexobject.c:989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:990,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/complexobject.c:991,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/complexobject.c:992,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Objects/complexobject.c:1002,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:1003,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/complexobject.c:1004,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/complexobject.c:1005,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/complexobject.c:1046,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/complexobject.c:1054,1
    - Dst: complex_subtype_from_doubles
      Src: /src/cpython/Objects/complexobject.c:1062,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/complexobject.c:1062,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/complexobject.c:1065,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 70
    argCount: 3
    argNames:
    - s
    - len
    - type
    argTypes:
    - char*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 1068
    functionName: complex_from_string_inner
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _PyType_CAST
    - complex_subtype_from_doubles
    - PyErr_ExceptionMatches
    - PyOS_string_to_double
    - PyErr_Clear
    - Py_ISSPACE
    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/cpython/Objects/complexobject.c:1077,1
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/cpython/Objects/complexobject.c:1078,1
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:1082,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/complexobject.c:1082,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/complexobject.c:1084,1
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:1085,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/complexobject.c:1088,1
    - Dst: _Py_string_to_number_with_underscores
      Src: /src/cpython/Objects/complexobject.c:1094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:1096,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: 1081
        line_start: 1081
        source_file: /src/cpython/Objects/complexobject.c
    - condition: (s != NULL)
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/cpython/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 1098
      start: 1070
    functionDepth: 5
    functionLinenumber: 1070
    functionLinenumberEnd: 1098
    functionName: complex_subtype_from_string
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - PyUnicode_IS_ASCII
    - PyErr_Format
    - PyUnicode_Check
    - assert
    - _Py_string_to_number_with_underscores
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_subtype_from_string(PyTypeObject *type, PyObject *v)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/complexobject.c:1116,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/complexobject.c:1116,1
    - Dst: complex_new
      Src: /src/cpython/Objects/complexobject.c:1117,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/complexobject.c:1119,1
    - Dst: complex_subtype_from_doubles
      Src: /src/cpython/Objects/complexobject.c:1120,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/complexobject.c:1123,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/complexobject.c:1125,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/complexobject.c:1131,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/complexobject.c:1133,1
    - Dst: complex_subtype_from_string
      Src: /src/cpython/Objects/complexobject.c:1134,1
    - Dst: try_complex_special_method
      Src: /src/cpython/Objects/complexobject.c:1136,1
    - Dst: complex_subtype_from_doubles
      Src: /src/cpython/Objects/complexobject.c:1139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:1140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:1142,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:1145,1
    - Dst: complex_subtype_from_doubles
      Src: /src/cpython/Objects/complexobject.c:1150,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/complexobject.c:1152,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/complexobject.c:1158,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:1159,1
    - Dst: complex_subtype_from_doubles
      Src: /src/cpython/Objects/complexobject.c:1160,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/complexobject.c:1164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1110
    functionDepth: 6
    functionLinenumber: 1110
    functionLinenumberEnd: 1169
    functionName: actual_complex_new
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - PyComplex_CheckExact
    - complex_subtype_from_string
    - complex_subtype_from_doubles
    - Py_NewRef
    - PyComplex_Check
    - PyTuple_GET_ITEM
    - complex_new
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - try_complex_special_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      actual_complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/complexobject.c:1197,1
    - Dst: try_complex_special_method
      Src: /src/cpython/Objects/complexobject.c:1203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:1208,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/complexobject.c:1212,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:1214,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/complexobject.c:1216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:1220,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/complexobject.c:1225,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:1227,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/complexobject.c:1229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:1233,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:1247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:1256,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/complexobject.c:1258,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/complexobject.c:1262,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Objects/complexobject.c:1273,1
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:1274,1
    - Dst: assert
      Src: /src/cpython/Objects/complexobject.c:1277,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/complexobject.c:1277,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/complexobject.c:1278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:1280,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/complexobject.c:1285,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/complexobject.c:1286,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Objects/complexobject.c:1297,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/complexobject.c:1300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/complexobject.c:1301,1
    - Dst: complex_subtype_from_doubles
      Src: /src/cpython/Objects/complexobject.c:1313,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 3
    argNames:
    - type
    - r
    - i
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!own_r)
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Objects/complexobject.c
    - condition: (PyFloat_Check(tmp))
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/cpython/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 1314
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1314
    functionName: complex_new_impl
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - PyErr_WarnFormat
    - PyFloat_Check
    - Py_DECREF
    - PyNumber_Float
    - PyFloat_AsDouble
    - PyErr_Occurred
    - complex_subtype_from_doubles
    - PyComplex_Check
    - PyErr_Format
    - Py_TYPE
    - try_complex_special_method
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_new_impl(PyTypeObject *type, PyObject *r, PyObject *i)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/complexobject.c:1330,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/complexobject.c:1331,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Objects/complexobject.c:1334,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/complexobject.c:1335,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Objects/complexobject.c:1338,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/complexobject.c:1340,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/complexobject.c:1340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - type
    - number
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 4
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: complex_from_number_impl
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Occurred
    - PyComplex_CheckExact
    - PyComplex_AsCComplex
    - Py_SETREF
    - PyObject_CallOneArg
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_from_number_impl(PyTypeObject *type, PyObject *number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genericaliasobject.c:36,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/genericaliasobject.c:37,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:38,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:39,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:40,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genericaliasobject.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: ga_dealloc
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void ga_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genericaliasobject.c:48,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genericaliasobject.c:49,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genericaliasobject.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: ga_traverse
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ga_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:57,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/genericaliasobject.c:57,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:59,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:61,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/genericaliasobject.c:67,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:71,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/genericaliasobject.c:72,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - writer
    - p
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(p))
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 82
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 82
    functionName: ga_repr_items_list
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - assert
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyUnicodeWriter_WriteChar
    - _Py_typing_type_repr
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: int
    signature: int ga_repr_items_list(PyUnicodeWriter *writer, PyObject *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:88,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/genericaliasobject.c:93,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:99,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/genericaliasobject.c:103,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:106,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/genericaliasobject.c:111,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:115,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/genericaliasobject.c:116,1
    - Dst: ga_repr_items_list
      Src: /src/cpython/Objects/genericaliasobject.c:118,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/genericaliasobject.c:122,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/genericaliasobject.c:128,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:132,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/genericaliasobject.c:135,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/genericaliasobject.c:138,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 84
    functionDepth: 8
    functionLinenumber: 84
    functionLinenumberEnd: 140
    functionName: ga_repr
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyTuple_GET_SIZE
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_WriteChar
    - ga_repr_items_list
    - _Py_typing_type_repr
    - PyTuple_GET_ITEM
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - len
    - item
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: tuple_index
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t tuple_index(PyObject *self, Py_ssize_t len, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tuple_index
      Src: /src/cpython/Objects/genericaliasobject.c:157,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:158,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - len
    - item
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: tuple_add
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTuple_SET_ITEM
    - tuple_index
    linkageType: ''
    returnType: int
    signature: int tuple_add(PyObject *self, Py_ssize_t len, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:168,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/genericaliasobject.c:169,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:169,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:172,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:172,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:175,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dst
    - dstindex
    - src
    - count
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (count >= 0)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/cpython/Objects/genericaliasobject.c
    - condition: (dstindex + count <= PyTuple_GET_SIZE(*dst))
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 6
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: tuple_extend
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_Resize
    - PyTuple_SET_ITEM
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t tuple_extend(PyObject **dst, Py_ssize_t dstindex,\n             PyObject
      **src, Py_ssize_t count)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:183,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:183,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:183,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:184,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/genericaliasobject.c:187,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:192,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genericaliasobject.c:194,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:196,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:201,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:203,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/genericaliasobject.c:206,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:208,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:209,1
    - Dst: tuple_add
      Src: /src/cpython/Objects/genericaliasobject.c:213,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:217,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:219,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:220,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:223,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:223,1
    - Dst: _Py_make_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:228,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:229,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:233,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:234,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/genericaliasobject.c:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:240,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:241,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:246,1
    - Dst: tuple_add
      Src: /src/cpython/Objects/genericaliasobject.c:247,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:250,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/genericaliasobject.c:254,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:255,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:256,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:260,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args) || PyList_Check(args))
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 262
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 262
    functionName: _Py_make_parameters
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 2
    functionsReached:
    - PyType_Check
    - Py_XDECREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyObject_HasAttrWithError
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyTuple_Check
    - _PyTuple_Resize
    - PySequence_Tuple
    - _Py_ID
    - tuple_add
    - PyList_Check
    - PyTuple_GET_ITEM
    - assert
    - _Py_make_parameters
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_make_parameters(PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:274,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:274,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:277,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:277,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:278,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:279,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genericaliasobject.c:280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:282,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:287,1
    - Dst: tuple_index
      Src: /src/cpython/Objects/genericaliasobject.c:288,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genericaliasobject.c:292,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:292,1
    - Dst: tuple_extend
      Src: /src/cpython/Objects/genericaliasobject.c:293,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:294,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:295,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:302,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:302,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:305,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:305,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/genericaliasobject.c:307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:309,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genericaliasobject.c:312,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - obj
    - params
    - argitems
    - nargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (j == PyTuple_GET_SIZE(subargs))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 316
      start: 269
    functionDepth: 7
    functionLinenumber: 269
    functionLinenumberEnd: 316
    functionName: subs_tvars
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyTuple_Check
    - _Py_ID
    - PyTuple_SET_ITEM
    - PyObject_GetItem
    - Py_NewRef
    - tuple_extend
    - PyTuple_GET_ITEM
    - tuple_index
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsubs_tvars(PyObject *obj, PyObject *params,\n           PyObject
      **argitems, Py_ssize_t nargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:322,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:325,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:325,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/genericaliasobject.c:327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: _is_unpacked_typevartuple
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _is_unpacked_typevartuple(PyObject *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:337,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:337,1
    - Dst: _PyGenericAlias_Check
      Src: /src/cpython/Objects/genericaliasobject.c:339,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:344,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:347,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyType_Check(arg))
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 355
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 355
    functionName: _unpacked_tuple_args
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - Py_NewRef
    - _PyGenericAlias_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _unpacked_tuple_args(PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/genericaliasobject.c:360,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:364,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:365,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:366,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:369,1
    - Dst: _unpacked_tuple_args
      Src: /src/cpython/Objects/genericaliasobject.c:370,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:372,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:373,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:374,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:374,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Objects/genericaliasobject.c:376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:381,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:384,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genericaliasobject.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:386,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/genericaliasobject.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:391,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:395,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/genericaliasobject.c:395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 357
    functionDepth: 12
    functionLinenumber: 357
    functionLinenumberEnd: 397
    functionName: _unpack_args
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyType_Check
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyErr_Occurred
    - PyList_Append
    - PyList_SetSlice
    - PySequence_Tuple
    - Py_SETREF
    - PyTuple_GET_ITEM
    - _unpacked_tuple_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _unpack_args(PyObject *item)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:402,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genericaliasobject.c:404,1
    - Dst: _unpack_args
      Src: /src/cpython/Objects/genericaliasobject.c:408,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:410,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:412,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:413,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:417,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/genericaliasobject.c:418,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/genericaliasobject.c:421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:423,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:424,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:430,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:431,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:434,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genericaliasobject.c:435,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:447,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:447,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:447,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:448,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/genericaliasobject.c:451,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:456,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genericaliasobject.c:457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:459,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:460,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:464,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:465,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:466,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:471,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:471,1
    - Dst: _Py_subs_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:475,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:476,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:479,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:480,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/genericaliasobject.c:485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:489,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:490,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:493,1
    - Dst: _is_unpacked_typevartuple
      Src: /src/cpython/Objects/genericaliasobject.c:498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:501,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:502,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:506,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:508,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:509,1
    - Dst: tuple_index
      Src: /src/cpython/Objects/genericaliasobject.c:513,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:514,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genericaliasobject.c:515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:516,1
    - Dst: subs_tvars
      Src: /src/cpython/Objects/genericaliasobject.c:519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:523,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:524,1
    - Dst: tuple_extend
      Src: /src/cpython/Objects/genericaliasobject.c:528,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:529,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:532,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:533,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:543,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:544,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 108
    argCount: 4
    argNames:
    - self
    - args
    - parameters
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args) || PyList_Check(args))
      pos:
        line_end: 446
        line_start: 446
        source_file: /src/cpython/Objects/genericaliasobject.c
    - condition: (iparam >= 0)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 546
      start: 399
    functionDepth: 13
    functionLinenumber: 399
    functionLinenumberEnd: 546
    functionName: _Py_subs_parameters
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - PyList_Check
    - Py_SETREF
    - PyObject_CallOneArg
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyObject_CallFunction
    - tuple_extend
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyType_Check
    - Py_DECREF
    - PyTuple_Check
    - _Py_ID
    - PySequence_Tuple
    - Py_NewRef
    - PySequence_List
    - PyObject_GetOptionalAttr
    - _Py_subs_parameters
    - _unpack_args
    - subs_tvars
    - PyTuple_SET_ITEM
    - _is_unpacked_typevartuple
    - tuple_index
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_subs_parameters(PyObject *self, PyObject *args, PyObject *parameters, PyObject
      *item)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_make_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:561,1
    - Dst: _Py_subs_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:567,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/genericaliasobject.c:572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 555
    functionDepth: 14
    functionLinenumber: 555
    functionLinenumberEnd: 581
    functionName: ga_getitem
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _Py_subs_parameters
    - Py_GenericAlias
    - _Py_make_parameters
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_getitem(PyObject *self, PyObject *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/genericaliasobject.c:592,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/genericaliasobject.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 601
    functionName: ga_hash
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t ga_hash(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/genericaliasobject.c:607,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:607,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genericaliasobject.c:608,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genericaliasobject.c:609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:611,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genericaliasobject.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 618
    functionName: set_orig_class
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyErr_ExceptionMatches
    - PyObject_SetAttr
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_orig_class(PyObject *obj, PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/cpython/Objects/genericaliasobject.c:624,1
    - Dst: set_orig_class
      Src: /src/cpython/Objects/genericaliasobject.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: ga_call
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - set_orig_class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_Function
      Src: /src/cpython/Objects/genericaliasobject.c:633,1
    - Dst: set_orig_class
      Src: /src/cpython/Objects/genericaliasobject.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 635
    functionName: ga_vectorcall
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_Function
    - set_orig_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nga_vectorcall(PyObject *self, PyObject *const *args,\n
      \             size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/genericaliasobject.c:657,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/genericaliasobject.c:660,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/genericaliasobject.c:662,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/genericaliasobject.c:667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 653
    functionDepth: 4
    functionLinenumber: 653
    functionLinenumberEnd: 668
    functionName: ga_getattro
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    - PyObject_GetAttr
    - PyObject_GenericGetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_getattro(PyObject *self, PyObject *name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyGenericAlias_Check
      Src: /src/cpython/Objects/genericaliasobject.c:673,1
    - Dst: ga_richcompare
      Src: /src/cpython/Objects/genericaliasobject.c:680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:683,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/genericaliasobject.c:697,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/genericaliasobject.c:704,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 670
    functionDepth: 4
    functionLinenumber: 670
    functionLinenumberEnd: 705
    functionName: ga_richcompare
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - ga_richcompare
    - PyObject_RichCompare
    - PyObject_RichCompareBool
    - _PyGenericAlias_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_richcompare(PyObject *a, PyObject *b, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/genericaliasobject.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: ga_mro_entries
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_mro_entries(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genericaliasobject.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: ga_instancecheck
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_instancecheck(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genericaliasobject.c:725,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: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: ga_subclasscheck
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_subclasscheck(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/genericaliasobject.c:735,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:737,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/genericaliasobject.c:737,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:742,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/genericaliasobject.c:742,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:742,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:744,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genericaliasobject.c:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 746
    functionName: ga_reduce
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_GenericAlias
    - Py_BuildValue
    - PyObject_GetIter
    - _Py_ID
    - Py_SETREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Dir
      Src: /src/cpython/Objects/genericaliasobject.c:752,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/genericaliasobject.c:763,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/genericaliasobject.c:767,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/genericaliasobject.c:771,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genericaliasobject.c:775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:781,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:782,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 748
    functionDepth: 6
    functionLinenumber: 748
    functionLinenumberEnd: 784
    functionName: ga_dir
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyList_Append
    - PySequence_Contains
    - PyObject_Dir
    - Py_CLEAR
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_dir(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_make_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:807,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 802
    functionDepth: 7
    functionLinenumber: 802
    functionLinenumberEnd: 813
    functionName: ga_parameters
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _Py_make_parameters
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_parameters(PyObject *self, void *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 823
    functionName: ga_unpacked_tuple_args
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_unpacked_tuple_args(PyObject *self, void *unused)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:836,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/genericaliasobject.c:837,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genericaliasobject.c:843,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:846,1
    - Dst: PyVectorcall_Function
      Src: /src/cpython/Objects/genericaliasobject.c:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - alias
    - origin
    - args
    argTypes:
    - gaobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 859
    functionName: setup_ga
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_Check
    - Py_NewRef
    - PyVectorcall_Function
    - PyTuple_Pack
    linkageType: ''
    returnType: int
    signature: int setup_ga(gaobject *alias, PyObject *origin, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/genericaliasobject.c:864,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/genericaliasobject.c:867,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:867,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:870,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:871,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/genericaliasobject.c:872,1
    - Dst: setup_ga
      Src: /src/cpython/Objects/genericaliasobject.c:876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 861
    functionDepth: 4
    functionLinenumber: 861
    functionLinenumberEnd: 881
    functionName: ga_new
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_DECREF
    - setup_ga
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genericaliasobject.c:892,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/genericaliasobject.c:896,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 903
    functionName: ga_iternext
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - PyErr_SetNone
    - Py_GenericAlias
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/genericaliasobject.c:909,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:910,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genericaliasobject.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 912
    functionName: ga_iter_dealloc
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void ga_iter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genericaliasobject.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 920
    functionName: ga_iter_traverse
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ga_iter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genericaliasobject.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 928
    functionName: ga_iter_clear
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ga_iter_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/genericaliasobject.c:933,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:933,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:941,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 944
    functionName: ga_iter_reduce
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _Py_ID
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_iter_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genericaliasobject.c:968,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:972,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/genericaliasobject.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 975
    functionName: ga_iter
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_iter(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/genericaliasobject.c:1009,1
    - Dst: setup_ga
      Src: /src/cpython/Objects/genericaliasobject.c:1014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - origin
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1019
    functionName: Py_GenericAlias
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 5
    functionsReached:
    - setup_ga
    - Py_DECREF
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_GenericAlias(PyObject *origin, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PY_FOREACH_CODE_EVENT
      Src: /src/cpython/Objects/codeobject.c:34,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/codeobject.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - event
    argTypes:
    - PyCodeEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: code_event_name
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PY_FOREACH_CODE_EVENT
    - Py_UNREACHABLE
    linkageType: ''
    returnType: char
    signature: 'char *

      code_event_name(PyCodeEvent event)'
  - 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: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: CASE
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:43,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/codeobject.c:43,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:44,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:45,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:49,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:53,1
    - Dst: cb
      Src: /src/cpython/Objects/codeobject.c:54,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/codeobject.c:55,1
    - Dst: code_event_name
      Src: /src/cpython/Objects/codeobject.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts:
    - condition: (Py_REFCNT(co) > 0)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (interp->_initialized)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (i < CODE_MAX_WATCHERS)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (cb != NULL)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: notify_code_watchers
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - cb
    - _PyInterpreterState_GET
    - PyErr_FormatUnraisable
    - code_event_name
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void notify_code_watchers(PyCodeEvent event, PyCodeObject *co)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:68,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:69,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyCode_WatchCallback
    assertStmts:
    - condition: (interp->_initialized)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: PyCode_AddWatcher
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCode_AddWatcher(PyCode_WatchCallback callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:87,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - interp
    - watcher_id
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: validate_watcher_id
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 6
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_watcher_id(PyInterpreterState *interp, int watcher_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:100,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:101,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/codeobject.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts:
    - condition: (interp->_initialized)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: PyCode_ClearWatcher
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - validate_watcher_id
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCode_ClearWatcher(int watcher_id)
  - 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: _PyCodeObject_CAST
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCodeObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/codeobject.c:126,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/codeobject.c:129,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/codeobject.c:130,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Objects/codeobject.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: should_intern_string
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_ISALNUM
    - PyUnicode_IS_ASCII
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: int
    signature: int should_intern_string(PyObject *o)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:151,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:152,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:153,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:153,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:159,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Objects/codeobject.c:163,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:164,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:170,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:172,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:173,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:174,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/codeobject.c:176,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/codeobject.c:176,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/codeobject.c:177,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/codeobject.c:177,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 178
    functionName: should_immortalize_constant
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyBytes_CheckExact
    - PyFrozenSet_CheckExact
    - PyFloat_CheckExact
    - _PySet_NextEntry
    - PyComplex_Check
    - PyTuple_GET_ITEM
    - PyLong_CheckExact
    - PySlice_Check
    - PyTuple_CheckExact
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: int should_immortalize_constant(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:184,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:187,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:188,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:190,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/codeobject.c:194,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/codeobject.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 181
    functionDepth: 9
    functionLinenumber: 181
    functionLinenumberEnd: 197
    functionName: intern_strings
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyUnicode_InternImmortal
    - _PyTuple_ITEMS
    - PyUnicode_CheckExact
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int intern_strings(PyObject *tuple)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:205,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:206,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:207,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:208,1
    - Dst: should_intern_string
      Src: /src/cpython/Objects/codeobject.c:209,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/codeobject.c:211,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:213,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:220,1
    - Dst: intern_constants
      Src: /src/cpython/Objects/codeobject.c:221,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:225,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/codeobject.c:227,1
    - Dst: intern_constants
      Src: /src/cpython/Objects/codeobject.c:232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:233,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Objects/codeobject.c:237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:239,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:249,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:254,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:258,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:258,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:259,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:259,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:260,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:260,1
    - Dst: intern_constants
      Src: /src/cpython/Objects/codeobject.c:262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:263,1
    - Dst: PySlice_New
      Src: /src/cpython/Objects/codeobject.c:267,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:267,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:268,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:271,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:280,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/codeobject.c:284,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:285,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:285,1
    - Dst: should_immortalize_constant
      Src: /src/cpython/Objects/codeobject.c:286,1
    - Dst: intern_one_constant
      Src: /src/cpython/Objects/codeobject.c:289,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:294,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/codeobject.c:295,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 2
    argNames:
    - tuple
    - modified
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 202
    functionDepth: 11
    functionLinenumber: 202
    functionLinenumberEnd: 304
    functionName: intern_constants
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyFrozenSet_CheckExact
    - _PyUnicode_InternMortal
    - _PyThreadState_GET
    - Py_SETREF
    - _Py_IsImmortal
    - PyTuple_CheckExact
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - intern_one_constant
    - should_immortalize_constant
    - Py_DECREF
    - PyUnicode_CheckExact
    - PySequence_Tuple
    - Py_NewRef
    - should_intern_string
    - PySlice_New
    - intern_constants
    - PyTuple_SET_ITEM
    - PyFrozenSet_New
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int intern_constants(PyObject *tuple, int *modified)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:254,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:258,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:258,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:259,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:259,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:260,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:260,1
    - Dst: intern_constants
      Src: /src/cpython/Objects/codeobject.c:262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:263,1
    - Dst: PySlice_New
      Src: /src/cpython/Objects/codeobject.c:267,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:267,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:268,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:271,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 252
    functionDepth: 12
    functionLinenumber: 252
    functionLinenumberEnd: 281
    functionName: if
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - intern_constants
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PySlice_New
    linkageType: ''
    returnType: else
    signature: else if (PySlice_Check(v))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:316,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:317,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:322,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:323,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/codeobject.c:324,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/codeobject.c:326,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:327,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:332,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/codeobject.c:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:338,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - tup
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 309
    functionDepth: 5
    functionLinenumber: 309
    functionLinenumberEnd: 346
    functionName: validate_and_copy_tuple
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyUnicode_Copy
    - PyUnicode_CheckExact
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      validate_and_copy_tuple(PyObject *tup)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Objects/codeobject.c:351,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:356,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/codeobject.c:359,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:361,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/codeobject.c:368,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 373
    functionName: init_co_cached
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - FT_ATOMIC_LOAD_PTR
    - FT_ATOMIC_STORE_PTR
    - PyMem_New
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int init_co_cached(PyCodeObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:384,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:384,1
    - Dst: _PyLocals_SetKind
      Src: /src/cpython/Objects/codeobject.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - offset
    - name
    - kind
    - names
    - kinds
    argTypes:
    - int
    - PyObject*
    - _PyLocals_Kind
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 386
    functionName: _Py_set_localsplus_info
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyLocals_SetKind
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: void
    signature: "void _Py_set_localsplus_info(int offset, PyObject *name, _PyLocals_Kind
      kind,\n                        PyObject *names, PyObject *kinds)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:396,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:398,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - names
    - kinds
    - pnlocals
    - pncellvars
    - pnfreevars
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 421
    functionName: get_localsplus_counts
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyLocals_GetKind
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: void
    signature: "void get_localsplus_counts(PyObject *names, PyObject *kinds,\n                      int
      *pnlocals, int *pncellvars,\n                      int *pnfreevars)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:426,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:432,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:436,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:437,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:438,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:438,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - co
    - kind
    - num
    argTypes:
    - PyCodeObject*
    - _PyLocals_Kind
    - int
    assertStmts:
    - condition: (index < num)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (index == num)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 443
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 443
    functionName: get_localsplus_names
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_SET_ITEM
    - _PyLocals_GetKind
    - Py_NewRef
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_localsplus_names(PyCodeObject *co, _PyLocals_Kind kind, int num)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/codeobject.c:452,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:453,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:454,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:455,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/codeobject.c:456,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:457,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:458,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/codeobject.c:459,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/codeobject.c:460,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/codeobject.c:461,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/codeobject.c:462,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/codeobject.c:463,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/codeobject.c:465,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:472,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:473,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:477,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/codeobject.c:478,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:480,1
    - Dst: get_localsplus_counts
      Src: /src/cpython/Objects/codeobject.c:488,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:496,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 19
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct _PyCodeConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 501
    functionName: _PyCode_Validate
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyBytes_Check
    - _Py_IS_ALIGNED
    - PyBytes_GET_SIZE
    - PyUnicode_Check
    - PyBytes_AS_STRING
    - get_localsplus_counts
    linkageType: ''
    returnType: int
    signature: int _PyCode_Validate(struct _PyCodeConstructor *con)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:513,1
    - Dst: get_localsplus_counts
      Src: /src/cpython/Objects/codeobject.c:515,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:521,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:522,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:523,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:524,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/codeobject.c:525,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/codeobject.c:526,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/codeobject.c:527,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:531,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:533,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:534,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:536,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:537,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:545,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Objects/codeobject.c:553,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/codeobject.c:558,1
    - Dst: memcpy
      Src: /src/cpython/Objects/codeobject.c:567,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:567,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:567,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:568,1
    - Dst: _PyCodeArray_New
      Src: /src/cpython/Objects/codeobject.c:570,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:577,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:578,1
    - Dst: _PyCode_Quicken
      Src: /src/cpython/Objects/codeobject.c:583,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:583,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:583,1
    - Dst: _PyCode_Quicken
      Src: /src/cpython/Objects/codeobject.c:585,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:585,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:585,1
    - Dst: notify_code_watchers
      Src: /src/cpython/Objects/codeobject.c:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 54
    argCount: 2
    argNames:
    - co
    - con
    argTypes:
    - PyCodeObject*
    - struct _PyCodeConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 510
    functionDepth: 9
    functionLinenumber: 510
    functionLinenumberEnd: 589
    functionName: init_code
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyCodeArray_New
    - Py_SIZE
    - _PyUnicode_InternMortal
    - FT_MUTEX_LOCK
    - notify_code_watchers
    - _PyInterpreterState_GET
    - FT_MUTEX_UNLOCK
    - Py_NewRef
    - _PyCode_CODE
    - PyBytes_GET_SIZE
    - memcpy
    - PyBytes_AS_STRING
    - _PyCode_Quicken
    - get_localsplus_counts
    linkageType: ''
    returnType: int
    signature: int init_code(PyCodeObject *co, struct _PyCodeConstructor *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 603
    functionName: scan_varint
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scan_varint(const uint8_t *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scan_varint
      Src: /src/cpython/Objects/codeobject.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 615
    functionName: scan_signed_varint
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - scan_varint
    linkageType: ''
    returnType: int
    signature: int scan_signed_varint(const uint8_t *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: scan_signed_varint
      Src: /src/cpython/Objects/codeobject.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 637
    functionName: get_line_delta
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - scan_signed_varint
    linkageType: ''
    returnType: int
    signature: int get_line_delta(const uint8_t *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:643,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:644,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:646,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:649,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:650,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:651,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:652,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:653,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:653,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:656,1
    - Dst: write_location_entry_start
      Src: /src/cpython/Objects/codeobject.c:664,1
    - Dst: get_line_delta
      Src: /src/cpython/Objects/codeobject.c:666,1
    - Dst: write_signed_varint
      Src: /src/cpython/Objects/codeobject.c:667,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:670,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:675,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - locations
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 680
    functionName: remove_column_info
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - write_signed_varint
    - get_line_delta
    - write_location_entry_start
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      remove_column_info(PyObject *locations)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:686,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Objects/codeobject.c:688,1
    - Dst: intern_strings
      Src: /src/cpython/Objects/codeobject.c:690,1
    - Dst: intern_constants
      Src: /src/cpython/Objects/codeobject.c:693,1
    - Dst: intern_strings
      Src: /src/cpython/Objects/codeobject.c:696,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/codeobject.c:699,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/codeobject.c:703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct _PyCodeConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 682
    functionDepth: 12
    functionLinenumber: 682
    functionLinenumberEnd: 705
    functionName: intern_code_constants
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - intern_strings
    - intern_constants
    - FT_MUTEX_LOCK
    - FT_MUTEX_UNLOCK
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int intern_code_constants(struct _PyCodeConstructor *con)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: intern_code_constants
      Src: /src/cpython/Objects/codeobject.c:712,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/codeobject.c:719,1
    - Dst: remove_column_info
      Src: /src/cpython/Objects/codeobject.c:720,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:727,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/codeobject.c:730,1
    - Dst: PyObject_NewVar
      Src: /src/cpython/Objects/codeobject.c:732,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:735,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:736,1
    - Dst: init_code
      Src: /src/cpython/Objects/codeobject.c:740,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:741,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/codeobject.c:746,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/codeobject.c:747,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:749,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct _PyCodeConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 709
    functionDepth: 13
    functionLinenumber: 709
    functionLinenumberEnd: 751
    functionName: _PyCode_New
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - intern_code_constants
    - _PyObject_AssignUniqueId
    - Py_DECREF
    - _Py_GetConfig
    - _PyObject_GC_TRACK
    - init_code
    - PyObject_GC_NewVar
    - PyObject_NewVar
    - PyBytes_GET_SIZE
    - PyErr_NoMemory
    - remove_column_info
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _PyCode_New(struct _PyCodeConstructor *con)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:773,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:774,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:775,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/codeobject.c:777,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:782,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:783,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:784,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:786,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:790,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:796,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Objects/codeobject.c:797,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:801,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Objects/codeobject.c:804,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:804,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:806,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:806,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:816,1
    - Dst: _PyLocals_SetKind
      Src: /src/cpython/Objects/codeobject.c:817,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Objects/codeobject.c:820,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:824,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Objects/codeobject.c:825,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:831,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:832,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:845,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:850,1
    - Dst: _PyLocals_SetKind
      Src: /src/cpython/Objects/codeobject.c:851,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:858,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/codeobject.c:859,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:860,1
    - Dst: _PyCode_Validate
      Src: /src/cpython/Objects/codeobject.c:890,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:893,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:893,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:894,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/codeobject.c:894,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:894,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:896,1
    - Dst: _PyCode_New
      Src: /src/cpython/Objects/codeobject.c:901,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:907,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:908,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 81
    argCount: 18
    argNames:
    - argcount
    - posonlyargcount
    - kwonlyargcount
    - nlocals
    - stacksize
    - flags
    - code
    - consts
    - names
    - varnames
    - freevars
    - cellvars
    - filename
    - name
    - qualname
    - firstlineno
    - linetable
    - exceptiontable
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(code), sizeof(_Py_CODEUNIT)))
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyBytes_GET_SIZE(code) % sizeof(_Py_CODEUNIT) == 0)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 805
        line_start: 805
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 910
      start: 758
    functionDepth: 14
    functionLinenumber: 758
    functionLinenumberEnd: 910
    functionName: PyUnstable_Code_NewWithPosOnlyArgs
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - Py_XDECREF
    - PyErr_SetString
    - PyBytes_GET_SIZE
    - _Py_set_localsplus_info
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - _PyTuple_Resize
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyCode_New
    - PyTuple_Check
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _Py_IS_ALIGNED
    - PyBytes_AS_STRING
    - _PyLocals_SetKind
    - _PyCode_Validate
    - PyErr_BadInternalCall
    - _PyLocals_GetKind
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nPyUnstable_Code_NewWithPosOnlyArgs(\n                          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,\n                          PyObject *qualname, int
      firstlineno,\n                          PyObject *linetable,\n                          PyObject
      *exceptiontable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/cpython/Objects/codeobject.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 17
    argNames:
    - argcount
    - kwonlyargcount
    - nlocals
    - stacksize
    - flags
    - code
    - consts
    - names
    - varnames
    - freevars
    - cellvars
    - filename
    - name
    - qualname
    - firstlineno
    - linetable
    - exceptiontable
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 928
    functionName: PyUnstable_Code_New
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_NewWithPosOnlyArgs
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nPyUnstable_Code_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,
      PyObject *qualname,\n           int firstlineno,\n           PyObject *linetable,\n
      \          PyObject *exceptiontable)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:956,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/codeobject.c:960,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Objects/codeobject.c:964,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:968,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:972,1
    - Dst: _PyCode_New
      Src: /src/cpython/Objects/codeobject.c:992,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:995,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:996,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:997,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:998,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:999,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - filename
    - funcname
    - firstlineno
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 946
    functionDepth: 14
    functionLinenumber: 946
    functionLinenumberEnd: 1001
    functionName: PyCode_NewEmpty
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - PyTuple_New
    - _PyCode_New
    - PyBytes_FromStringAndSize
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Objects/codeobject.c:1015,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1017,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:1017,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1019,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Objects/codeobject.c:1020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - co
    - addrq
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (addrq >= 0 && addrq < _PyCode_NBYTES(co))
      pos:
        line_end: 1016
        line_start: 1016
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1021
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1021
    functionName: PyCode_Addr2Line
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _Py_Instrumentation_GetLine
    - _PyCode_CheckLineNumber
    - _PyCode_NBYTES
    - _PyCode_InitAddressRange
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCode_Addr2Line(PyCodeObject *co, int addrq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - linetable
    - length
    - firstlineno
    - range
    argTypes:
    - char*
    - Py_ssize_t
    - int
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1032
    functionName: _PyLineTable_InitAddressRange
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyLineTable_InitAddressRange(const char *linetable, Py_ssize_t
      length, int firstlineno, PyCodeAddressRange *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1037,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:1038,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1039,1
    - Dst: _PyLineTable_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - co
    - bounds
    argTypes:
    - PyCodeObject*
    - PyCodeAddressRange*
    assertStmts:
    - condition: (co->co_linetable != NULL)
      pos:
        line_end: 1036
        line_start: 1036
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1042
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1042
    functionName: _PyCode_InitAddressRange
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - _PyLineTable_InitAddressRange
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCode_InitAddressRange(PyCodeObject* co, PyCodeAddressRange *bounds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLineTable_NextAddressRange
      Src: /src/cpython/Objects/codeobject.c:1050,1
    - Dst: _PyLineTable_PreviousAddressRange
      Src: /src/cpython/Objects/codeobject.c:1055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - lasti
    - bounds
    argTypes:
    - int
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1060
    functionName: _PyCode_CheckLineNumber
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _PyLineTable_NextAddressRange
    - _PyLineTable_PreviousAddressRange
    linkageType: ''
    returnType: int
    signature: int _PyCode_CheckLineNumber(int lasti, PyCodeAddressRange *bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1066
    functionName: is_no_line_marker
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_no_line_marker(uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bounds
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1074
    functionName: ASSERT_VALID_BOUNDS
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_VALID_BOUNDS(bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: ((*bounds->opaque.lo_next) & 128)
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1080
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1080
    functionName: next_code_delta
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int next_code_delta(PyCodeAddressRange *bounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1095
    functionName: previous_code_delta
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int previous_code_delta(PyCodeAddressRange *bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1101
    functionName: read_byte
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int read_byte(PyCodeAddressRange *bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1106,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1115
    functionName: read_varint
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - read_byte
    linkageType: ''
    returnType: int
    signature: int read_varint(PyCodeAddressRange *bounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_varint
      Src: /src/cpython/Objects/codeobject.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1127
    functionName: read_signed_varint
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - read_varint
    linkageType: ''
    returnType: int
    signature: int read_signed_varint(PyCodeAddressRange *bounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1132,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1133,1
    - Dst: get_line_delta
      Src: /src/cpython/Objects/codeobject.c:1137,1
    - Dst: previous_code_delta
      Src: /src/cpython/Objects/codeobject.c:1139,1
    - Dst: is_no_line_marker
      Src: /src/cpython/Objects/codeobject.c:1140,1
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: (bounds->ar_start >= 0)
      pos:
        line_end: 1132
        line_start: 1132
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1147
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1147
    functionName: retreat
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - get_line_delta
    - is_no_line_marker
    - ASSERT_VALID_BOUNDS
    - previous_code_delta
    - assert
    linkageType: ''
    returnType: void
    signature: void retreat(PyCodeAddressRange *bounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1152,1
    - Dst: get_line_delta
      Src: /src/cpython/Objects/codeobject.c:1153,1
    - Dst: is_no_line_marker
      Src: /src/cpython/Objects/codeobject.c:1154,1
    - Dst: next_code_delta
      Src: /src/cpython/Objects/codeobject.c:1161,1
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1167
    functionName: advance
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 6
    functionsReached:
    - next_code_delta
    - ASSERT_VALID_BOUNDS
    - get_line_delta
    - is_no_line_marker
    linkageType: ''
    returnType: void
    signature: void advance(PyCodeAddressRange *bounds)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1172,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1173,1
    - Dst: read_signed_varint
      Src: /src/cpython/Objects/codeobject.c:1184,1
    - Dst: read_varint
      Src: /src/cpython/Objects/codeobject.c:1186,1
    - Dst: read_varint
      Src: /src/cpython/Objects/codeobject.c:1187,1
    - Dst: read_varint
      Src: /src/cpython/Objects/codeobject.c:1188,1
    - Dst: read_signed_varint
      Src: /src/cpython/Objects/codeobject.c:1194,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1207,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1208,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1214,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1215,1
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 4
    argNames:
    - bounds
    - endline
    - column
    - endcolumn
    argTypes:
    - PyCodeAddressRange*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ((second_byte & 128) == 0)
      pos:
        line_end: 1214
        line_start: 1214
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1222
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1222
    functionName: advance_with_locations
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - read_byte
    - read_varint
    - ASSERT_VALID_BOUNDS
    - read_signed_varint
    - assert
    linkageType: ''
    returnType: void
    signature: void advance_with_locations(PyCodeAddressRange *bounds, int *endline,
      int *column, int *endcolumn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1233,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:1233,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1235,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Objects/codeobject.c:1236,1
    - Dst: retreat
      Src: /src/cpython/Objects/codeobject.c:1237,1
    - Dst: advance_with_locations
      Src: /src/cpython/Objects/codeobject.c:1238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - co
    - addrq
    - start_line
    - start_column
    - end_line
    - end_column
    argTypes:
    - PyCodeObject*
    - int
    - int*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (addrq >= 0 && addrq < _PyCode_NBYTES(co))
      pos:
        line_end: 1232
        line_start: 1232
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1241
      start: 1223
    functionDepth: 4
    functionLinenumber: 1223
    functionLinenumberEnd: 1241
    functionName: PyCode_Addr2Location
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - retreat
    - advance_with_locations
    - _PyCode_CheckLineNumber
    - _PyCode_NBYTES
    - _PyCode_InitAddressRange
    - assert
    linkageType: ''
    returnType: int
    signature: "int PyCode_Addr2Location(PyCodeObject *co, int addrq,\n                     int
      *start_line, int *start_column,\n                     int *end_line, int *end_column)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1247
    functionName: at_end
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int at_end(PyCodeAddressRange *bounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: retreat
      Src: /src/cpython/Objects/codeobject.c:1255,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: (range->ar_end > range->ar_start)
      pos:
        line_end: 1255
        line_start: 1255
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1258
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1258
    functionName: _PyLineTable_PreviousAddressRange
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - retreat
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: at_end
      Src: /src/cpython/Objects/codeobject.c:1263,1
    - Dst: advance
      Src: /src/cpython/Objects/codeobject.c:1266,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: (range->ar_end > range->ar_start)
      pos:
        line_end: 1266
        line_start: 1266
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1269
      start: 1260
    functionDepth: 2
    functionLinenumber: 1260
    functionLinenumberEnd: 1269
    functionName: _PyLineTable_NextAddressRange
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - at_end
    - advance
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyLineTable_NextAddressRange(PyCodeAddressRange *range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1274,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:1276,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bytes
    - offset
    - a
    - b
    argTypes:
    - PyObject**
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1271
    functionDepth: 6
    functionLinenumber: 1271
    functionLinenumberEnd: 1285
    functionName: emit_pair
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int emit_pair(PyObject **bytes, int *offset, int a, int b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: emit_pair
      Src: /src/cpython/Objects/codeobject.c:1291,1
    - Dst: emit_pair
      Src: /src/cpython/Objects/codeobject.c:1297,1
    - Dst: emit_pair
      Src: /src/cpython/Objects/codeobject.c:1304,1
    - Dst: emit_pair
      Src: /src/cpython/Objects/codeobject.c:1310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - bytes
    - bdelta
    - ldelta
    - offset
    argTypes:
    - PyObject**
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1287
    functionDepth: 7
    functionLinenumber: 1287
    functionLinenumberEnd: 1311
    functionName: emit_delta
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - emit_pair
    linkageType: ''
    returnType: int
    signature: int emit_delta(PyObject **bytes, int bdelta, int ldelta, int *offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:1321,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1325,1
    - Dst: _PyLineTable_NextAddressRange
      Src: /src/cpython/Objects/codeobject.c:1326,1
    - Dst: emit_delta
      Src: /src/cpython/Objects/codeobject.c:1330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:1331,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:1338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1313
    functionDepth: 8
    functionLinenumber: 1313
    functionLinenumberEnd: 1340
    functionName: decode_linetable
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - emit_delta
    - Py_DECREF
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - _PyLineTable_NextAddressRange
    - _PyCode_InitAddressRange
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_linetable(PyCodeObject *code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:1354,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1356
    functionName: lineiter_dealloc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void lineiter_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/codeobject.c:1364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1365
    functionName: _source_offset_converter
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _source_offset_converter(void *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLineTable_NextAddressRange
      Src: /src/cpython/Objects/codeobject.c:1372,1
    - Dst: _PyLineTable_NextAddressRange
      Src: /src/cpython/Objects/codeobject.c:1378,1
    - Dst: _PyLineTable_PreviousAddressRange
      Src: /src/cpython/Objects/codeobject.c:1380,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/codeobject.c:1384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1367
    functionDepth: 3
    functionLinenumber: 1367
    functionLinenumberEnd: 1386
    functionName: lineiter_next
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyLineTable_NextAddressRange
    - _PyLineTable_PreviousAddressRange
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lineiter_next(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/codeobject.c:1434,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:1438,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1431
    functionDepth: 4
    functionLinenumber: 1431
    functionLinenumberEnd: 1441
    functionName: new_linesiterator
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyCode_InitAddressRange
    - PyType_GenericAlloc
    linkageType: ''
    returnType: lineiterator
    signature: 'lineiterator *

      new_linesiterator(PyCodeObject *code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:1458,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1460
    functionName: positionsiter_dealloc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void positionsiter_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1467,1
    - Dst: at_end
      Src: /src/cpython/Objects/codeobject.c:1468,1
    - Dst: advance_with_locations
      Src: /src/cpython/Objects/codeobject.c:1471,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/codeobject.c:1474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (pi->pi_offset == pi->pi_range.ar_end)
      pos:
        line_end: 1466
        line_start: 1466
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1479
      start: 1462
    functionDepth: 4
    functionLinenumber: 1462
    functionLinenumberEnd: 1479
    functionName: positionsiter_next
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - advance_with_locations
    - at_end
    - Py_BuildValue
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      positionsiter_next(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/codeobject.c:1528,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:1532,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1524
    functionDepth: 4
    functionLinenumber: 1524
    functionLinenumberEnd: 1536
    functionName: code_positionsiterator
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyCode_InitAddressRange
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_positionsiterator(PyObject *self, PyObject* Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:1553,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/codeobject.c:1554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - code
    - index
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1568
    functionName: PyUnstable_Code_GetExtra
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyCode_Check
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Code_GetExtra(PyObject *code, Py_ssize_t index, void
      **extra)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:1574,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:1576,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/codeobject.c:1578,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/codeobject.c:1587,1
    - Dst: free
      Src: /src/cpython/Objects/codeobject.c:1604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - code
    - index
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1610
    functionName: PyUnstable_Code_SetExtra
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyMem_Realloc
    - PyCode_Check
    - PyErr_BadInternalCall
    - _PyInterpreterState_GET
    - free
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Code_SetExtra(PyObject *code, Py_ssize_t index, void
      *extra)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1621,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1622,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Objects/codeobject.c:1623,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:1625,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1628,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:1631,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/codeobject.c:1633,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1636,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/codeobject.c:1637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - co
    - cached_field
    - kind
    - num
    argTypes:
    - PyCodeObject*
    - PyObject**
    - _PyLocals_Kind
    - int
    assertStmts:
    - condition: (cached_field != NULL)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (co->_co_cached != NULL)
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1638
      start: 1617
    functionDepth: 4
    functionLinenumber: 1617
    functionLinenumberEnd: 1638
    functionName: get_cached_locals
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - FT_ATOMIC_LOAD_PTR
    - get_localsplus_names
    - Py_NewRef
    - FT_ATOMIC_STORE_PTR
    - Py_XNewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_cached_locals(PyCodeObject *co, PyObject **cached_field,\n
      \   _PyLocals_Kind kind, int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_co_cached
      Src: /src/cpython/Objects/codeobject.c:1643,1
    - Dst: get_cached_locals
      Src: /src/cpython/Objects/codeobject.c:1646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1640
    functionDepth: 5
    functionLinenumber: 1640
    functionLinenumberEnd: 1647
    functionName: _PyCode_GetVarnames
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - init_co_cached
    - get_cached_locals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetVarnames(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetVarnames
      Src: /src/cpython/Objects/codeobject.c:1652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1649
    functionDepth: 6
    functionLinenumber: 1649
    functionLinenumberEnd: 1653
    functionName: PyCode_GetVarnames
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - _PyCode_GetVarnames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCode_GetVarnames(PyCodeObject *code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_co_cached
      Src: /src/cpython/Objects/codeobject.c:1658,1
    - Dst: get_cached_locals
      Src: /src/cpython/Objects/codeobject.c:1661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1655
    functionDepth: 5
    functionLinenumber: 1655
    functionLinenumberEnd: 1662
    functionName: _PyCode_GetCellvars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - init_co_cached
    - get_cached_locals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetCellvars(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetCellvars
      Src: /src/cpython/Objects/codeobject.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1664
    functionDepth: 6
    functionLinenumber: 1664
    functionLinenumberEnd: 1668
    functionName: PyCode_GetCellvars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - _PyCode_GetCellvars
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCode_GetCellvars(PyCodeObject *code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_co_cached
      Src: /src/cpython/Objects/codeobject.c:1673,1
    - Dst: get_cached_locals
      Src: /src/cpython/Objects/codeobject.c:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1670
    functionDepth: 5
    functionLinenumber: 1670
    functionLinenumberEnd: 1677
    functionName: _PyCode_GetFreevars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - init_co_cached
    - get_cached_locals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetFreevars(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetFreevars
      Src: /src/cpython/Objects/codeobject.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1679
    functionDepth: 6
    functionLinenumber: 1679
    functionLinenumberEnd: 1683
    functionName: PyCode_GetFreevars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - _PyCode_GetFreevars
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCode_GetFreevars(PyCodeObject *code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - co
    - ','
    - i
    - ','
    - initial
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1687
    functionName: GET_OPARG
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_OPARG(co, i, initial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - oparg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1689
    functionDepth: 0
    functionLinenumber: 1689
    functionLinenumberEnd: 1690
    functionName: LOAD_GLOBAL_NAME_INDEX
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_GLOBAL_NAME_INDEX(oparg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - oparg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1691
    functionName: LOAD_ATTR_NAME_INDEX
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_ATTR_NAME_INDEX(oparg)
  - 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: 1694
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1694
    functionName: GETITEM
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETITEM(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1698,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:1698,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1699,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1700,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1700,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1701,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:1701,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyTuple_Check(v))
      pos:
        line_end: 1697
        line_start: 1697
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (i >= 0)
      pos:
        line_end: 1698
        line_start: 1698
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (i < PyTuple_GET_SIZE(v))
      pos:
        line_end: 1699
        line_start: 1699
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyTuple_GET_ITEM(v, i) != NULL)
      pos:
        line_end: 1700
        line_start: 1700
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1703
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1703
    functionName: GETITEM
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GETITEM(PyObject *v, Py_ssize_t i)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1715,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1716,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1716,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1717,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1717,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1718,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1719,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1719,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1720,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1720,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1721,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/codeobject.c:1721,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1722,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/codeobject.c:1722,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1723,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:1726,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Objects/codeobject.c:1727,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:1728,1
    - Dst: GET_OPARG
      Src: /src/cpython/Objects/codeobject.c:1730,1
    - Dst: LOAD_ATTR_NAME_INDEX
      Src: /src/cpython/Objects/codeobject.c:1731,1
    - Dst: GETITEM
      Src: /src/cpython/Objects/codeobject.c:1732,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1733,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1734,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/codeobject.c:1741,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1744,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1745,1
    - Dst: GET_OPARG
      Src: /src/cpython/Objects/codeobject.c:1752,1
    - Dst: LOAD_ATTR_NAME_INDEX
      Src: /src/cpython/Objects/codeobject.c:1753,1
    - Dst: GETITEM
      Src: /src/cpython/Objects/codeobject.c:1754,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1755,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1756,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/codeobject.c:1763,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1764,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/codeobject.c:1769,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1770,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/codeobject.c:1778,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1781,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1782,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 8
    argNames:
    - tstate
    - co
    - globalnames
    - attrnames
    - globalsns
    - builtinsns
    - counts
    - p_numdupes
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - struct co_unbound_counts*
    - int*
    assertStmts:
    - condition: (PySet_GET_SIZE(globalnames) == 0 || counts != NULL)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PySet_Check(attrnames))
      pos:
        line_end: 1718
        line_start: 1718
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (builtinsns == NULL || PyDict_Check(builtinsns))
      pos:
        line_end: 1721
        line_start: 1721
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PySet_Check(globalnames))
      pos:
        line_end: 1715
        line_start: 1715
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (counts == NULL || counts->total == 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (globalnames != NULL)
      pos:
        line_end: 1714
        line_start: 1714
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (attrnames != NULL)
      pos:
        line_end: 1717
        line_start: 1717
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PySet_GET_SIZE(attrnames) == 0 || counts != NULL)
      pos:
        line_end: 1719
        line_start: 1719
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (globalsns == NULL || PyDict_Check(globalsns))
      pos:
        line_end: 1720
        line_start: 1720
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1796
      start: 1706
    functionDepth: 8
    functionLinenumber: 1706
    functionLinenumberEnd: 1796
    functionName: identify_unbound_names
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_GetBaseCodeUnit
    - PySet_Check
    - Py_SIZE
    - PySet_GET_SIZE
    - LOAD_ATTR_NAME_INDEX
    - GETITEM
    - PyDict_Contains
    - GET_OPARG
    - _PyInstruction_GetLength
    - PySet_Contains
    - PyDict_Check
    - PySet_Add
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: "int identify_unbound_names(PyThreadState *tstate, PyCodeObject *co,\n
      \                      PyObject *globalnames, PyObject *attrnames,\n                       PyObject
      *globalsns, PyObject *builtinsns,\n                       struct co_unbound_counts
      *counts, int *p_numdupes)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1802,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1808,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:1810,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1812,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1813,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1814,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1819,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1825,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1826,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1830,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1831,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1844,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1852,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1873,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1877,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1878,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1879,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1880,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1881,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1882,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1883,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1884,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1887,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1887,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1888,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1888,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1889,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 2
    argNames:
    - co
    - counts
    argTypes:
    - PyCodeObject*
    - _PyCode_var_counts_t*
    assertStmts:
    - condition: (!(kind & CO_FAST_LOCAL))
      pos:
        line_end: 1811
        line_start: 1811
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!locals.args.varargs)
      pos:
        line_end: 1825
        line_start: 1825
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.total + locals.cells.numargs == co->co_nlocals + co->co_ncellvars)
      pos:
        line_end: 1881
        line_start: 1881
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyTuple_GET_SIZE(co->co_names) >= 0)
      pos:
        line_end: 1886
        line_start: 1886
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyTuple_GET_SIZE(co->co_names) < INT_MAX)
      pos:
        line_end: 1887
        line_start: 1887
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_HIDDEN))
      pos:
        line_end: 1812
        line_start: 1812
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!locals.args.varkwargs)
      pos:
        line_end: 1830
        line_start: 1830
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_HIDDEN))
      pos:
        line_end: 1851
        line_start: 1851
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (kind & CO_FAST_ARG_KW)
      pos:
        line_end: 1843
        line_start: 1843
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (numfree == co->co_nfreevars)
      pos:
        line_end: 1883
        line_start: 1883
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (counts != NULL)
      pos:
        line_end: 1801
        line_start: 1801
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_ARG_KW))
      pos:
        line_end: 1824
        line_start: 1824
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (kind & CO_FAST_ARG_KW)
      pos:
        line_end: 1829
        line_start: 1829
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.total + locals.numpure == co->co_nlocals)
      pos:
        line_end: 1880
        line_start: 1880
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_ARG))
      pos:
        line_end: 1813
        line_start: 1813
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (kind)
      pos:
        line_end: 1818
        line_start: 1818
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.numkwonly == co->co_kwonlyargcount)
      pos:
        line_end: 1878
        line_start: 1878
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.cells.total == co->co_ncellvars)
      pos:
        line_end: 1879
        line_start: 1879
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.numposonly + locals.args.numposorkw == co->co_argcount)
      pos:
        line_end: 1877
        line_start: 1877
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.numposonly == co->co_posonlyargcount)
      pos:
        line_end: 1876
        line_start: 1876
        source_file: /src/cpython/Objects/codeobject.c
    - condition: "(locals.args.total == (\n            co->co_argcount + co->co_kwonlyargcount\n
        \           + !!(co->co_flags & CO_VARARGS)\n            + !!(co->co_flags
        & CO_VARKEYWORDS)))"
      pos:
        line_end: 1875
        line_start: 1872
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.total + numfree == co->co_nlocalsplus)
      pos:
        line_end: 1882
        line_start: 1882
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1904
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1904
    functionName: _PyCode_GetVarCounts
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyLocals_GetKind
    - PyBytes_GET_SIZE
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyCode_GetVarCounts(PyCodeObject *co, _PyCode_var_counts_t *counts)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Objects/codeobject.c:1918,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1924,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:1925,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/codeobject.c:1930,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1936,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:1937,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1945,1
    - Dst: identify_unbound_names
      Src: /src/cpython/Objects/codeobject.c:1946,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1949,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1953,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1954,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1955,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:1965,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:1966,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 7
    argNames:
    - tstate
    - co
    - counts
    - globalnames
    - attrnames
    - globalsns
    - builtinsns
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - _PyCode_var_counts_t*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (unbound.numunknown == 0)
      pos:
        line_end: 1952
        line_start: 1952
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (counts->unbound.numunknown == counts->unbound.total)
      pos:
        line_end: 1954
        line_start: 1954
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (unbound.total - numdupes <= counts->unbound.total)
      pos:
        line_end: 1953
        line_start: 1953
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1968
      start: 1906
    functionDepth: 11
    functionLinenumber: 1906
    functionLinenumberEnd: 1968
    functionName: _PyCode_SetUnboundVarCounts
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XDECREF
    - Py_END_CRITICAL_SECTION
    - PySet_Check
    - _PyErr_Format
    - identify_unbound_names
    - PySet_New
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyCode_SetUnboundVarCounts(PyThreadState *tstate,\n                            PyCodeObject
      *co, _PyCode_var_counts_t *counts,\n                            PyObject *globalnames,
      PyObject *attrnames,\n                            PyObject *globalsns, PyObject
      *builtinsns)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - co
    - p_errmsg
    argTypes:
    - PyCodeObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1988
    functionName: _PyCode_CheckNoInternalState
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyCode_CheckNoInternalState(PyCodeObject *co, const char **p_errmsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - co
    - counts
    - p_errmsg
    argTypes:
    - PyCodeObject*
    - _PyCode_var_counts_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1990
    functionDepth: 0
    functionLinenumber: 1990
    functionLinenumberEnd: 2016
    functionName: _PyCode_CheckNoExternalState
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _PyCode_CheckNoExternalState(PyCodeObject *co, _PyCode_var_counts_t
      *counts,\n                             const char **p_errmsg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetVarCounts
      Src: /src/cpython/Objects/codeobject.c:2025,1
    - Dst: _PyCode_SetUnboundVarCounts
      Src: /src/cpython/Objects/codeobject.c:2026,1
    - Dst: _PyCode_CheckNoInternalState
      Src: /src/cpython/Objects/codeobject.c:2034,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2035,1
    - Dst: _PyCode_CheckNoExternalState
      Src: /src/cpython/Objects/codeobject.c:2043,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - tstate
    - co
    - globalnames
    - globalsns
    - builtinsns
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2018
    functionDepth: 12
    functionLinenumber: 2018
    functionLinenumberEnd: 2049
    functionName: _PyCode_VerifyStateless
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _PyCode_SetUnboundVarCounts
    - _PyCode_CheckNoExternalState
    - _PyCode_GetVarCounts
    - _PyCode_CheckNoInternalState
    - _PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int _PyCode_VerifyStateless(PyThreadState *tstate,\n                        PyCodeObject
      *co, PyObject *globalnames,\n                        PyObject *globalsns, PyObject
      *builtinsns)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - co
    - p_errmsg
    argTypes:
    - PyCodeObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2076
    functionName: _PyCode_CheckPureFunction
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyCode_CheckPureFunction(PyCodeObject *co, const char **p_errmsg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CheckPureFunction
      Src: /src/cpython/Objects/codeobject.c:2084,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2087,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2088,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2092,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/codeobject.c:2095,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:2098,1
    - Dst: IS_RETURN_OPCODE
      Src: /src/cpython/Objects/codeobject.c:2108,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2114,1
    - Dst: IS_RAISE_OPCODE
      Src: /src/cpython/Objects/codeobject.c:2114,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Objects/codeobject.c:2115,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2116,1
    - Dst: IS_RETURN_OPCODE
      Src: /src/cpython/Objects/codeobject.c:2117,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Objects/codeobject.c:2126,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2127,1
    - Dst: IS_RETURN_OPCODE
      Src: /src/cpython/Objects/codeobject.c:2128,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2129,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2131,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 2087
        line_start: 2087
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (IS_RAISE_OPCODE(final.op.code))
      pos:
        line_end: 2113
        line_start: 2113
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (i != 0)
      pos:
        line_end: 2128
        line_start: 2128
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2143
      start: 2081
    functionDepth: 2
    functionLinenumber: 2081
    functionLinenumberEnd: 2143
    functionName: code_returns_only_none
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_CheckPureFunction
    - IS_RAISE_OPCODE
    - _Py_GetBaseCodeUnit
    - IS_RETURN_OPCODE
    - Py_SIZE
    - PyTuple_GET_ITEM
    - _PyInstruction_GetLength
    - PyTuple_Size
    - assert
    linkageType: ''
    returnType: int
    signature: int code_returns_only_none(PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:2149,1
    - Dst: code_returns_only_none
      Src: /src/cpython/Objects/codeobject.c:2150,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2145
    functionDepth: 1
    functionLinenumber: 2145
    functionLinenumberEnd: 2153
    functionName: _PyCode_ReturnsOnlyNone
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - code_returns_only_none
    linkageType: ''
    returnType: int
    signature: int _PyCode_ReturnsOnlyNone(PyCodeObject *co)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2161,1
    - Dst: _Py_ExecutorDetach
      Src: /src/cpython/Objects/codeobject.c:2164,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2165,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (co->co_executors)
      pos:
        line_end: 2160
        line_start: 2160
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (co->co_executors->executors[i] == NULL)
      pos:
        line_end: 2164
        line_start: 2164
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2170
      start: 2158
    functionDepth: 2
    functionLinenumber: 2158
    functionLinenumberEnd: 2170
    functionName: clear_executors
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - assert
    - _Py_ExecutorDetach
    linkageType: ''
    returnType: void
    signature: void clear_executors(PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_executors
      Src: /src/cpython/Objects/codeobject.c:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2172
    functionDepth: 3
    functionLinenumber: 2172
    functionLinenumberEnd: 2176
    functionName: _PyCode_Clear_Executors
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - clear_executors
    linkageType: ''
    returnType: void
    signature: void _PyCode_Clear_Executors(PyCodeObject *code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2183,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2185,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - code
    - instructions
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 2185
        line_start: 2185
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2194
      start: 2180
    functionDepth: 1
    functionLinenumber: 2180
    functionLinenumberEnd: 2194
    functionName: deopt_code
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _Py_GetBaseCodeUnit
    - assert
    linkageType: ''
    returnType: void
    signature: void deopt_code(PyCodeObject *code, _Py_CODEUNIT *instructions)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_co_cached
      Src: /src/cpython/Objects/codeobject.c:2199,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Objects/codeobject.c:2204,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2206,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:2209,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:2212,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:2212,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:2213,1
    - Dst: deopt_code
      Src: /src/cpython/Objects/codeobject.c:2215,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:2215,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2216,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/codeobject.c:2217,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:2220,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/codeobject.c:2221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (cached->_co_code == NULL)
      pos:
        line_end: 2215
        line_start: 2215
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2222
      start: 2196
    functionDepth: 4
    functionLinenumber: 2196
    functionLinenumberEnd: 2222
    functionName: _PyCode_GetCode
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - init_co_cached
    - Py_END_CRITICAL_SECTION
    - deopt_code
    - FT_ATOMIC_LOAD_PTR
    - PyBytes_FromStringAndSize
    - _PyCode_NBYTES
    - Py_NewRef
    - FT_ATOMIC_STORE_PTR
    - _PyCode_CODE
    - Py_XNewRef
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetCode(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Objects/codeobject.c:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2224
    functionDepth: 5
    functionLinenumber: 2224
    functionLinenumberEnd: 2228
    functionName: PyCode_GetCode
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 3
    functionsReached:
    - _PyCode_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCode_GetCode(PyCodeObject *co)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/codeobject.c:2282,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2289,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2309,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2315,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2318,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2322,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:2324,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2328,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:2330,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/cpython/Objects/codeobject.c:2334,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2345,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2346,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2347,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2348,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 19
    argNames:
    - type
    - argcount
    - posonlyargcount
    - kwonlyargcount
    - nlocals
    - stacksize
    - flags
    - code
    - consts
    - names
    - varnames
    - filename
    - name
    - qualname
    - firstlineno
    - linetable
    - exceptiontable
    - freevars
    - cellvars
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2266
    functionDepth: 6
    functionLinenumber: 2266
    functionLinenumberEnd: 2350
    functionName: code_new_impl
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - validate_and_copy_tuple
    - PyErr_SetString
    - PyCode_NewWithPosOnlyArgs
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncode_new_impl(PyTypeObject *type, int argcount, int posonlyargcount,\n
      \             int kwonlyargcount, int nlocals, int stacksize, int flags,\n              PyObject
      *code, PyObject *consts, PyObject *names,\n              PyObject *varnames,
      PyObject *filename, PyObject *name,\n              PyObject *qualname, int firstlineno,
      PyObject *linetable,\n              PyObject *exceptiontable, PyObject *freevars,\n
      \             PyObject *cellvars)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2359,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2362,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2365,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2368,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2371,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCoMonitoringData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2352
    functionDepth: 2
    functionLinenumber: 2352
    functionLinenumberEnd: 2374
    functionName: free_monitoring_data
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_monitoring_data(_PyCoMonitoringData *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/codeobject.c:2379,1
    - Dst: _Py_atomic_add_uint64
      Src: /src/cpython/Objects/codeobject.c:2380,1
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2381,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/codeobject.c:2382,1
    - Dst: notify_code_watchers
      Src: /src/cpython/Objects/codeobject.c:2383,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/codeobject.c:2384,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/codeobject.c:2389,1
    - Dst: _PyFunction_ClearCodeByVersion
      Src: /src/cpython/Objects/codeobject.c:2392,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:2394,1
    - Dst: free_extra
      Src: /src/cpython/Objects/codeobject.c:2401,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2405,1
    - Dst: clear_executors
      Src: /src/cpython/Objects/codeobject.c:2409,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2413,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2414,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2415,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2416,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2417,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2418,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2419,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2420,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2421,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2423,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2426,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2427,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2428,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2429,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2430,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/codeobject.c:2432,1
    - Dst: free_monitoring_data
      Src: /src/cpython/Objects/codeobject.c:2433,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2440,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2443,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/codeobject.c:2445,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (co->_co_unique_id == _Py_INVALID_UNIQUE_ID)
      pos:
        line_end: 2422
        line_start: 2422
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2446
      start: 2376
    functionDepth: 3
    functionLinenumber: 2376
    functionLinenumberEnd: 2446
    functionName: code_dealloc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyObject_Free
    - _Py_atomic_add_uint64
    - PyThreadState_GET
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - notify_code_watchers
    - free_monitoring_data
    - _PyInterpreterState_GET
    - clear_executors
    - _PyCodeObject_CAST
    - free_extra
    - _PyFunction_ClearCodeByVersion
    - _PyObject_ResurrectStart
    - _PyObject_ResurrectEnd
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void code_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2452,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/codeobject.c:2453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2455
    functionName: code_traverse
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int code_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2461,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/codeobject.c:2467,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/codeobject.c:2468,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/codeobject.c:2472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2458
    functionDepth: 10
    functionLinenumber: 2458
    functionLinenumberEnd: 2476
    functionName: code_repr
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - PyUnicode_Check
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_repr(PyObject *self)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:2487,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:2488,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2495,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2507,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2507,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2511,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2512,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2513,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:2521,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:2524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2526,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2531,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2534,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2536,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2539,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2543,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2564,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 89
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2478
    functionDepth: 4
    functionLinenumber: 2478
    functionLinenumberEnd: 2565
    functionName: code_richcompare
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - _Py_GetBaseCodeUnit
    - Py_DECREF
    - Py_SIZE
    - Py_NewRef
    - PyObject_RichCompareBool
    - _PyCode_ConstantKey
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2570,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2584,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2585,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2586,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2587,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2588,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2589,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2590,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2591,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2592,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2593,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2594,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2595,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2595,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2596,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2597,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2598,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2567
    functionDepth: 1
    functionLinenumber: 2567
    functionLinenumberEnd: 2606
    functionName: code_hash
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _Py_GetBaseCodeUnit
    - Py_SIZE
    - _PyCodeObject_CAST
    - SCRAMBLE_IN
    - SCRAMBLE_IN_HASH
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t code_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2576
    functionName: SCRAMBLE_IN
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCRAMBLE_IN(H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXPR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2583
    functionName: SCRAMBLE_IN_HASH
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCRAMBLE_IN_HASH(EXPR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2609
    functionDepth: 0
    functionLinenumber: 2609
    functionLinenumberEnd: 2610
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2633,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/codeobject.c:2634,1
    - Dst: decode_linetable
      Src: /src/cpython/Objects/codeobject.c:2639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2630
    functionDepth: 9
    functionLinenumber: 2630
    functionLinenumberEnd: 2640
    functionName: code_getlnotab
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - decode_linetable
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getlnotab(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2645,1
    - Dst: _PyCode_GetVarnames
      Src: /src/cpython/Objects/codeobject.c:2646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2642
    functionDepth: 6
    functionLinenumber: 2642
    functionLinenumberEnd: 2647
    functionName: code_getvarnames
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - _PyCode_GetVarnames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getvarnames(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2652,1
    - Dst: _PyCode_GetCellvars
      Src: /src/cpython/Objects/codeobject.c:2653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2649
    functionDepth: 6
    functionLinenumber: 2649
    functionLinenumberEnd: 2654
    functionName: code_getcellvars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - _PyCode_GetCellvars
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getcellvars(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2659,1
    - Dst: _PyCode_GetFreevars
      Src: /src/cpython/Objects/codeobject.c:2660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2656
    functionDepth: 6
    functionLinenumber: 2656
    functionLinenumberEnd: 2661
    functionName: code_getfreevars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - _PyCode_GetFreevars
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getfreevars(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2666,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:2667,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:2668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2663
    functionDepth: 4
    functionLinenumber: 2663
    functionLinenumberEnd: 2669
    functionName: code_getcodeadaptive
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - PyBytes_FromStringAndSize
    - _PyCode_NBYTES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getcodeadaptive(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2674,1
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Objects/codeobject.c:2675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2671
    functionDepth: 5
    functionLinenumber: 2671
    functionLinenumberEnd: 2676
    functionName: code_getcode
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - _PyCode_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getcode(PyObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2693,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/codeobject.c:2694,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2694,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2694,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/codeobject.c:2700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2701
      start: 2690
    functionDepth: 1
    functionLinenumber: 2690
    functionLinenumberEnd: 2701
    functionName: code_sizeof
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _PyObject_VAR_SIZE
    - _PyCodeObject_CAST
    - PyLong_FromSize_t
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_sizeof(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2706,1
    - Dst: new_linesiterator
      Src: /src/cpython/Objects/codeobject.c:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2703
    functionDepth: 5
    functionLinenumber: 2703
    functionLinenumberEnd: 2708
    functionName: code_linesiterator
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - new_linesiterator
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_linesiterator(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2713,1
    - Dst: _PyInstrumentation_BranchesIterator
      Src: /src/cpython/Objects/codeobject.c:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2710
    functionDepth: 1
    functionLinenumber: 2710
    functionLinenumberEnd: 2715
    functionName: code_branchesiterator
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - _PyInstrumentation_BranchesIterator
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_branchesiterator(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2764,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2765,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2766,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2767,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2768,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2769,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2770,1
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Objects/codeobject.c:2776,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/codeobject.c:2783,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2787,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:2796,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:2803,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:2810,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/cpython/Objects/codeobject.c:2817,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2825,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2826,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2827,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2828,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 19
    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_qualname
    - co_linetable
    - co_exceptiontable
    argTypes:
    - PyCodeObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2745
    functionDepth: 5
    functionLinenumber: 2745
    functionLinenumberEnd: 2830
    functionName: code_replace_impl
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - CHECK_INT_ARG
    - get_localsplus_names
    - PyCode_NewWithPosOnlyArgs
    - PySys_Audit
    - _PyCode_GetCode
    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,
      PyObject *co_code, PyObject *co_consts,\n                  PyObject *co_names,
      PyObject *co_varnames,\n                  PyObject *co_freevars, PyObject *co_cellvars,\n
      \                 PyObject *co_filename, PyObject *co_name,\n                  PyObject
      *co_qualname, PyObject *co_linetable,\n                  PyObject *co_exceptiontable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ARG
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2757
    functionDepth: 0
    functionLinenumber: 2757
    functionLinenumberEnd: 2763
    functionName: CHECK_INT_ARG
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INT_ARG(ARG)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Objects/codeobject.c:2846,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - oparg
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2842
    functionDepth: 2
    functionLinenumber: 2842
    functionLinenumberEnd: 2851
    functionName: code__varname_from_oparg_impl
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTuple_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code__varname_from_oparg_impl(PyCodeObject *self, int oparg)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2929,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2930,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:2932,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2936,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/codeobject.c:2938,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2938,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2941,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2941,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2943,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/codeobject.c:2944,1
    - Dst: copysign
      Src: /src/cpython/Objects/codeobject.c:2948,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2949,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2949,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2951,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2951,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2953,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Objects/codeobject.c:2960,1
    - Dst: copysign
      Src: /src/cpython/Objects/codeobject.c:2961,1
    - Dst: copysign
      Src: /src/cpython/Objects/codeobject.c:2962,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2966,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2966,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2969,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2969,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2972,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2972,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2975,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2975,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2978,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:2982,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:2983,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:2990,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:2991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2993,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:2997,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:3000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3001,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3003,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3010,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:3011,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Objects/codeobject.c:3016,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3021,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3025,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:3026,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Objects/codeobject.c:3029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3030,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:3034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3035,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:3038,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3045,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3050,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3055,1
    - Dst: PySlice_New
      Src: /src/cpython/Objects/codeobject.c:3060,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:3065,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3066,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:3068,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:3069,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:3070,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/codeobject.c:3075,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:3079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3080,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (i < len)
      pos:
        line_end: 3024
        line_start: 3024
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3083
      start: 2922
    functionDepth: 11
    functionLinenumber: 2922
    functionLinenumberEnd: 3083
    functionName: _PyCode_ConstantKey
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - PyFrozenSet_CheckExact
    - PyLong_CheckExact
    - PyTuple_CheckExact
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyComplex_CheckExact
    - _PySet_NextEntry
    - PyTuple_GET_ITEM
    - PyTuple_Pack
    - PyBytes_CheckExact
    - Py_DECREF
    - PyUnicode_CheckExact
    - Py_NewRef
    - PyComplex_AsCComplex
    - PyBool_Check
    - PyFloat_AS_DOUBLE
    - PySlice_New
    - Py_TYPE
    - _PyCode_ConstantKey
    - PyCode_Check
    - PyLong_FromVoidPtr
    - PyFloat_CheckExact
    - copysign
    - PyTuple_SET_ITEM
    - PySet_GET_SIZE
    - PyFrozenSet_New
    - PySlice_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_ConstantKey(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:3089,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3092,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3092,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Objects/codeobject.c:3094,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Objects/codeobject.c:3096,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3097,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/codeobject.c:3102,1
    - Dst: _Py_AddRefTotal
      Src: /src/cpython/Objects/codeobject.c:3106,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/codeobject.c:3106,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/codeobject.c:3110,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3114,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:3114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyUnicode_CheckExact(op))
      pos:
        line_end: 3091
        line_start: 3091
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (_Py_IsImmortal(entry->value))
      pos:
        line_end: 3113
        line_start: 3113
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3116
      start: 3086
    functionDepth: 3
    functionLinenumber: 3086
    functionLinenumberEnd: 3116
    functionName: intern_one_constant
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _Py_AddRefTotal
    - PyUnicode_CheckExact
    - _PyInterpreterState_GET
    - _Py_hashtable_get_entry
    - _PyThreadState_GET
    - _Py_SetImmortal
    - _Py_IsImmortal
    - _Py_hashtable_set
    - Py_REFCNT
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      intern_one_constant(PyObject *op)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:3126,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:3126,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3131,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3132,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3133,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:3137,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:3137,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3143,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3144,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3144,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Objects/codeobject.c:3150,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Objects/codeobject.c:3151,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:3159,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3166,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3166,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:3167,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3169,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/codeobject.c:3171,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/codeobject.c:3172,1
    - Dst: memcmp
      Src: /src/cpython/Objects/codeobject.c:3173,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3175,1
    - Dst: memcmp
      Src: /src/cpython/Objects/codeobject.c:3178,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3118
    functionDepth: 4
    functionLinenumber: 3118
    functionLinenumberEnd: 3183
    functionName: compare_constants
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PyTuple_GET_SIZE
    - PyFrozenSet_CheckExact
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - PySet_GET_SIZE
    - _PySet_NextEntry
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - PyLong_CheckExact
    - PyFloat_AS_DOUBLE
    - PySlice_Check
    - PyBytes_CheckExact
    - Py_TYPE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int compare_constants(const void *key1, const void *key2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:3189,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/codeobject.c:3192,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3194,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3195,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/codeobject.c:3196,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/codeobject.c:3197,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/codeobject.c:3199,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/codeobject.c:3206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3185
    functionDepth: 3
    functionLinenumber: 3185
    functionLinenumberEnd: 3210
    functionName: hash_const
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - Py_HashBuffer
    - PyObject_Hash
    - PySlice_Check
    - PyErr_Clear
    - PyTuple_CheckExact
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hash_const(const void *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3219,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3220,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/codeobject.c:3221,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/codeobject.c:3221,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:3224,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/codeobject.c:3226,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/codeobject.c:3227,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/codeobject.c:3228,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3230,1
    - Dst: _PySet_ClearInternal
      Src: /src/cpython/Objects/codeobject.c:3231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ht
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3212
    functionDepth: 4
    functionLinenumber: 3212
    functionLinenumberEnd: 3234
    functionName: clear_containers
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyFrozenSet_CheckExact
    - _PySet_ClearInternal
    - Py_SETREF
    - PySlice_Check
    - Py_CLEAR
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: "int clear_containers(_Py_hashtable_t *ht, const void *key, const void
      *value,\n                 void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ClearImmortal
      Src: /src/cpython/Objects/codeobject.c:3239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3240
      start: 3236
    functionDepth: 1
    functionLinenumber: 3236
    functionLinenumberEnd: 3240
    functionName: destroy_key
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ClearImmortal
    linkageType: ''
    returnType: void
    signature: void destroy_key(void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Objects/codeobject.c:3248,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/codeobject.c:3251,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/codeobject.c:3254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3243
    functionDepth: 1
    functionLinenumber: 3243
    functionLinenumberEnd: 3255
    functionName: _PyCode_Init
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _Py_hashtable_new_full
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyCode_Init(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/codeobject.c:3264,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Objects/codeobject.c:3265,1
    - Dst: _PyIndexPool_Fini
      Src: /src/cpython/Objects/codeobject.c:3268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3270
      start: 3257
    functionDepth: 1
    functionLinenumber: 3257
    functionLinenumberEnd: 3270
    functionName: _PyCode_Fini
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyIndexPool_Fini
    - _Py_hashtable_foreach
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: void
    signature: void _PyCode_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndexPool_AllocIndex
      Src: /src/cpython/Objects/codeobject.c:3298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3294
    functionDepth: 1
    functionLinenumber: 3294
    functionLinenumberEnd: 3302
    functionName: _Py_ReserveTLBCIndex
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyIndexPool_AllocIndex
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_ReserveTLBCIndex(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndexPool_FreeIndex
      Src: /src/cpython/Objects/codeobject.c:3309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3304
    functionDepth: 1
    functionLinenumber: 3304
    functionLinenumberEnd: 3311
    functionName: _Py_ClearTLBCIndex
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyIndexPool_FreeIndex
    linkageType: ''
    returnType: void
    signature: void _Py_ClearTLBCIndex(_PyThreadStateImpl *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/codeobject.c:3316,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3313
    functionDepth: 2
    functionLinenumber: 3313
    functionLinenumberEnd: 3324
    functionName: _PyCodeArray_New
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: _PyCodeArray
    signature: '_PyCodeArray *

      _PyCodeArray_New(Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:3330,1
    - Dst: FT_ATOMIC_LOAD_UINT16_RELAXED
      Src: /src/cpython/Objects/codeobject.c:3332,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3336,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - code
    - i
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 3335
        line_start: 3335
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (inst.op.code != ENTER_EXECUTOR)
      pos:
        line_end: 3338
        line_start: 3338
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3341
      start: 3327
    functionDepth: 1
    functionLinenumber: 3327
    functionLinenumberEnd: 3341
    functionName: deopt_code_unit
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_UINT16_RELAXED
    - _PyCode_CODE
    - assert
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: _Py_CODEUNIT deopt_code_unit(PyCodeObject *code, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:3346,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Objects/codeobject.c:3347,1
    - Dst: deopt_code_unit
      Src: /src/cpython/Objects/codeobject.c:3348,1
    - Dst: _PyCode_Quicken
      Src: /src/cpython/Objects/codeobject.c:3350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - co
    argTypes:
    - _Py_CODEUNIT*
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3343
    functionDepth: 2
    functionLinenumber: 3343
    functionLinenumberEnd: 3351
    functionName: copy_code
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - deopt_code_unit
    - _PyCode_Quicken
    - _PyInstruction_GetLength
    linkageType: ''
    returnType: void
    signature: void copy_code(_Py_CODEUNIT *dst, PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - initial
    - limit
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (!(initial & (initial - 1)))
      pos:
        line_end: 3356
        line_start: 3356
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3363
      start: 3353
    functionDepth: 0
    functionLinenumber: 3353
    functionLinenumberEnd: 3363
    functionName: get_pow2_greater
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_pow2_greater(Py_ssize_t initial, Py_ssize_t limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_pow2_greater
      Src: /src/cpython/Objects/codeobject.c:3370,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3372,1
    - Dst: _PyCodeArray_New
      Src: /src/cpython/Objects/codeobject.c:3375,1
    - Dst: memcpy
      Src: /src/cpython/Objects/codeobject.c:3379,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/codeobject.c:3380,1
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/codeobject.c:3381,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/codeobject.c:3384,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:3384,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3386,1
    - Dst: copy_code
      Src: /src/cpython/Objects/codeobject.c:3389,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - co
    - idx
    argTypes:
    - PyCodeObject*
    - Py_ssize_t
    assertStmts:
    - condition: (tlbc->entries[idx] == NULL)
      pos:
        line_end: 3389
        line_start: 3389
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3393
      start: 3365
    functionDepth: 7
    functionLinenumber: 3365
    functionLinenumberEnd: 3393
    functionName: create_tlbc_lock_held
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - copy_code
    - _PyCodeArray_New
    - _PyMem_FreeDelayed
    - get_pow2_greater
    - _PyCode_NBYTES
    - memcpy
    - PyErr_NoMemory
    - assert
    - _Py_atomic_store_ptr_release
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: '_Py_CODEUNIT *

      create_tlbc_lock_held(PyCodeObject *co, Py_ssize_t idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/codeobject.c:3399,1
    - Dst: create_tlbc_lock_held
      Src: /src/cpython/Objects/codeobject.c:3404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3395
    functionDepth: 8
    functionLinenumber: 3395
    functionLinenumberEnd: 3405
    functionName: get_tlbc_lock_held
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - create_tlbc_lock_held
    - PyThreadState_GET
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: '_Py_CODEUNIT *

      get_tlbc_lock_held(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:3411,1
    - Dst: get_tlbc_lock_held
      Src: /src/cpython/Objects/codeobject.c:3412,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:3413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3407
    functionDepth: 9
    functionLinenumber: 3407
    functionLinenumberEnd: 3415
    functionName: _PyCode_GetTLBC
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - get_tlbc_lock_held
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: '_Py_CODEUNIT *

      _PyCode_GetTLBC(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - flags
    - idx
    argTypes:
    - struct flag_set*
    - Py_ssize_t
    assertStmts:
    - condition: (idx >= 0)
      pos:
        line_end: 3425
        line_start: 3425
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3428
      start: 3423
    functionDepth: 0
    functionLinenumber: 3423
    functionLinenumberEnd: 3428
    functionName: flag_is_set
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int flag_is_set(struct flag_set *flags, Py_ssize_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3434,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3435,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Objects/codeobject.c:3443,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/codeobject.c:3445,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Objects/codeobject.c:3452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - interp
    - in_use
    argTypes:
    - PyInterpreterState*
    - struct flag_set*
    assertStmts:
    - condition: (interp->stoptheworld.world_stopped)
      pos:
        line_end: 3433
        line_start: 3433
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (in_use->flags == NULL)
      pos:
        line_end: 3434
        line_start: 3434
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3454
      start: 3431
    functionDepth: 2
    functionLinenumber: 3431
    functionLinenumberEnd: 3454
    functionName: get_indices_in_use
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - assert
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: int
    signature: int get_indices_in_use(PyInterpreterState *interp, struct flag_set
      *in_use)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3437
    functionDepth: 0
    functionLinenumber: 3437
    functionLinenumberEnd: 3442
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3451
      start: 3449
    functionDepth: 0
    functionLinenumber: 3449
    functionLinenumberEnd: 3451
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:3466,1
    - Dst: _PyObjectStack_Clear
      Src: /src/cpython/Objects/codeobject.c:3469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct get_code_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3462
    functionDepth: 2
    functionLinenumber: 3462
    functionLinenumberEnd: 3470
    functionName: clear_get_code_args
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _PyObjectStack_Clear
    linkageType: ''
    returnType: void
    signature: void clear_get_code_args(struct get_code_args *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3476,1
    - Dst: flag_is_set
      Src: /src/cpython/Objects/codeobject.c:3477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - tlbc
    - idx
    - indices_in_use
    argTypes:
    - _PyCodeArray*
    - Py_ssize_t
    - struct flag_set*
    assertStmts:
    - condition: (idx > 0 && idx < tlbc->size)
      pos:
        line_end: 3475
        line_start: 3475
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3478
      start: 3472
    functionDepth: 1
    functionLinenumber: 3472
    functionLinenumberEnd: 3478
    functionName: is_bytecode_unused
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - flag_is_set
    linkageType: ''
    returnType: int
    signature: "int is_bytecode_unused(_PyCodeArray *tlbc, Py_ssize_t idx,\n                   struct
      flag_set *indices_in_use)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:3484,1
    - Dst: is_bytecode_unused
      Src: /src/cpython/Objects/codeobject.c:3492,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Objects/codeobject.c:3493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3480
    functionDepth: 2
    functionLinenumber: 3480
    functionLinenumberEnd: 3501
    functionName: get_code_with_unused_tlbc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - _PyObjectStack_Push
    - is_bytecode_unused
    linkageType: ''
    returnType: int
    signature: int get_code_with_unused_tlbc(PyObject *obj, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_bytecode_unused
      Src: /src/cpython/Objects/codeobject.c:3510,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:3511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - co
    - indices_in_use
    argTypes:
    - PyCodeObject*
    - struct flag_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3515
      start: 3503
    functionDepth: 2
    functionLinenumber: 3503
    functionLinenumberEnd: 3515
    functionName: free_unused_bytecode
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - is_bytecode_unused
    linkageType: ''
    returnType: void
    signature: void free_unused_bytecode(PyCodeObject *co, struct flag_set *indices_in_use)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/codeobject.c:3525,1
    - Dst: get_indices_in_use
      Src: /src/cpython/Objects/codeobject.c:3527,1
    - Dst: _PyGC_VisitObjectsWorldStopped
      Src: /src/cpython/Objects/codeobject.c:3531,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Objects/codeobject.c:3540,1
    - Dst: free_unused_bytecode
      Src: /src/cpython/Objects/codeobject.c:3541,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/codeobject.c:3543,1
    - Dst: clear_get_code_args
      Src: /src/cpython/Objects/codeobject.c:3544,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/codeobject.c:3548,1
    - Dst: clear_get_code_args
      Src: /src/cpython/Objects/codeobject.c:3549,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3552
      start: 3517
    functionDepth: 3
    functionLinenumber: 3517
    functionLinenumberEnd: 3552
    functionName: _Py_ClearUnusedTLBC
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Pop
    - free_unused_bytecode
    - get_indices_in_use
    - clear_get_code_args
    - _PyGC_VisitObjectsWorldStopped
    - _PyEval_StopTheWorld
    - PyErr_NoMemory
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: int
    signature: int _Py_ClearUnusedTLBC(PyInterpreterState *interp)
  - 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: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: templateiterobject_CAST
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: templateiterobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: templateiterobject_CAST
      Src: /src/cpython/Objects/templateobject.c:21,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/templateobject.c:24,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/templateobject.c:29,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/templateobject.c:30,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/templateobject.c:30,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/templateobject.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 39
    functionName: templateiter_next
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - templateiterobject_CAST
    - PyUnicode_GET_LENGTH
    - PyIter_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      templateiter_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/templateobject.c:44,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:45,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: templateiter_dealloc
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void templateiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: templateiterobject_CAST
      Src: /src/cpython/Objects/templateobject.c:52,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/templateobject.c:53,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/templateobject.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: templateiter_clear
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - templateiterobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int templateiter_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: templateiterobject_CAST
      Src: /src/cpython/Objects/templateobject.c:61,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/templateobject.c:62,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/templateobject.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: templateiter_traverse
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - templateiterobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int templateiter_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: templateobject_CAST
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: templateobject_CAST(op)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/templateobject.c:96,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:100,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:106,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/templateobject.c:107,1
    - Dst: _PyInterpolation_CheckExact
      Src: /src/cpython/Objects/templateobject.c:113,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/templateobject.c:121,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/templateobject.c:132,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/templateobject.c:137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:139,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:146,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/templateobject.c:147,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:149,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Objects/templateobject.c:150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:154,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:157,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:160,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:160,1
    - Dst: _PyInterpolation_CheckExact
      Src: /src/cpython/Objects/templateobject.c:164,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/templateobject.c:166,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:167,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/templateobject.c:167,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:169,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:169,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/templateobject.c:174,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:175,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/templateobject.c:175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:180,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 92
    functionDepth: 7
    functionLinenumber: 92
    functionLinenumberEnd: 182
    functionName: template_new
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpolation_CheckExact
    - PyTuple_GET_SIZE
    - PyTuple_New
    - Py_DECREF
    - _Py_DECLARE_STR
    - PyUnicode_Concat
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - _Py_STR
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/templateobject.c:187,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:188,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: template_dealloc
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void template_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:195,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/templateobject.c:196,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/templateobject.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: template_clear
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - templateobject_CAST
    linkageType: ''
    returnType: int
    signature: int template_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:204,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/templateobject.c:205,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/templateobject.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: template_traverse
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - templateobject_CAST
    linkageType: ''
    returnType: int
    signature: int template_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:213,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/templateobject.c:214,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/templateobject.c:215,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 10
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: template_repr
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - _PyType_Name
    - templateobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_repr(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:223,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/templateobject.c:224,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/templateobject.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:231,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/templateobject.c:235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:238,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/templateobject.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 247
    functionName: template_iter
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetIter
    - PyObject_GC_Track
    - PyObject_GC_New
    - templateobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_iter(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:252,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:253,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:254,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:255,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Objects/templateobject.c:257,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/templateobject.c:262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:264,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:270,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:270,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:270,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:272,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:274,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:274,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 278
    functionName: template_strings_concat
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyUnicode_Concat
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_strings_concat(PyObject *left, PyObject *right)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: template_strings_concat
      Src: /src/cpython/Objects/templateobject.c:283,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Objects/templateobject.c:288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:290,1
    - Dst: _PyTemplate_Build
      Src: /src/cpython/Objects/templateobject.c:294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - templateobject*
    - templateobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: template_concat_templates
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - _PyTemplate_Build
    - Py_DECREF
    - template_strings_concat
    - PySequence_Concat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_concat_templates(templateobject *self, templateobject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTemplate_CheckExact
      Src: /src/cpython/Objects/templateobject.c:303,1
    - Dst: _PyTemplate_CheckExact
      Src: /src/cpython/Objects/templateobject.c:303,1
    - Dst: template_concat_templates
      Src: /src/cpython/Objects/templateobject.c:304,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/templateobject.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 9
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: _PyTemplate_Concat
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - template_concat_templates
    - _PyTemplate_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTemplate_Concat(PyObject *self, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:316,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:318,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/templateobject.c:319,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:319,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:325,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:326,1
    - Dst: _PyInterpolation_GetValueRef
      Src: /src/cpython/Objects/templateobject.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(data)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: template_values_get
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    - _PyInterpolation_GetValueRef
    - templateobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_values_get(PyObject *op, void *Py_UNUSED(data))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/templateobject.c:351,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/templateobject.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:356,1
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:361,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/templateobject.c:362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 369
    functionName: template_reduce
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_ImportModule
    - templateobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_reduce(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:16,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/call.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: null_error
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 49
    functionsReached:
    - _PyErr_SetString
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_error(PyThreadState *tstate)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:28,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:31,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/call.c:33,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/call.c:37,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/call.c:43,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:49,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:50,1
    - Dst: _PyErr_FormatFromCauseTstate
      Src: /src/cpython/Objects/call.c:53,1
    - Dst: _PyErr_FormatFromCauseTstate
      Src: /src/cpython/Objects/call.c:58,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/call.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - tstate
    - callable
    - result
    - where
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - char*
    assertStmts:
    - condition: ((callable != NULL) ^ (where != NULL))
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 71
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 71
    functionName: _Py_CheckFunctionResult
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 2
    functionsReached:
    - _PyErr_FormatFromCauseTstate
    - Py_DECREF
    - Py_FatalError
    - _PyErr_Format
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_CheckFunctionResult(PyThreadState *tstate, PyObject
      *callable,\n                        PyObject *result, const char *where)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:77,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:79,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Objects/call.c:80,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:83,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:87,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Objects/call.c:88,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - slot_name
    - success
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: _Py_CheckSlotResult
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 28
    functionsReached:
    - _PyThreadState_GET
    - _Py_FatalErrorFormat
    - Py_TYPE
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _Py_CheckSlotResult(PyObject *obj, const char *slot_name, int success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/call.c:104,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:105,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: PyObject_CallNoArgs
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 67
    functionsReached:
    - _PyThreadState_GET
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - _PyObject_VectorcallTstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallNoArgs(PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:115,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:120,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:120,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/call.c:122,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:123,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:124,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:125,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/call.c:125,1
    - Dst: PyVectorcall_Function
      Src: /src/cpython/Objects/call.c:127,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/cpython/Objects/call.c:130,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/call.c:134,1
    - Dst: func
      Src: /src/cpython/Objects/call.c:135,1
    - Dst: _PyStack_UnpackDict
      Src: /src/cpython/Objects/call.c:140,1
    - Dst: func
      Src: /src/cpython/Objects/call.c:146,1
    - Dst: _PyStack_UnpackDict_Free
      Src: /src/cpython/Objects/call.c:148,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/cpython/Objects/call.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - tstate
    - callable
    - args
    - nargsf
    - kwargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (callable != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Objects/call.c
    - condition: (nargs >= 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Objects/call.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Objects/call.c
    - condition: (nargs == 0 || args != NULL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/cpython/Objects/call.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 151
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 151
    functionName: _PyObject_VectorcallDictTstate
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyObject_MakeTpCall
    - _PyStack_UnpackDict
    - PyDict_GET_SIZE
    - func
    - PyVectorcall_Function
    - _Py_CheckFunctionResult
    - _PyStack_UnpackDict_Free
    - PyVectorcall_NARGS
    - PyDict_Check
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_VectorcallDictTstate(PyThreadState *tstate,
      PyObject *callable,\n                               PyObject *const *args, size_t
      nargsf,\n                               PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:158,1
    - Dst: _PyObject_VectorcallDictTstate
      Src: /src/cpython/Objects/call.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: PyObject_VectorcallDict
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 5
    functionsReached:
    - _PyThreadState_GET
    - _PyObject_VectorcallDictTstate
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyObject_VectorcallDict(PyObject *callable, PyObject *const
      *args,\n                       size_t nargsf, PyObject *kwargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/call.c:165,1
    - Dst: PyModule_GetNameObject
      Src: /src/cpython/Objects/call.c:171,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/call.c:173,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/call.c:177,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/call.c:179,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/call.c:181,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/call.c:182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/call.c:190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:191,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/call.c:194,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - tstate
    - callable
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 196
    functionName: object_is_not_callable
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyModule_GetNameObject
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _PyErr_Format
    - _PyErr_Clear
    - PyCallable_Check
    - Py_IS_TYPE
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void object_is_not_callable(PyThreadState *tstate, PyObject *callable)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:204,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:205,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:206,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/call.c:206,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/call.c:206,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:210,1
    - Dst: object_is_not_callable
      Src: /src/cpython/Objects/call.c:212,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Objects/call.c:216,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/call.c:222,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:226,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:227,1
    - Dst: _PyStack_AsDict
      Src: /src/cpython/Objects/call.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:230,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/call.c:240,1
    - Dst: _PyCFunctionWithKeywords_TrampolineCall
      Src: /src/cpython/Objects/call.c:242,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/call.c:244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:249,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/cpython/Objects/call.c:252,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 5
    argNames:
    - tstate
    - callable
    - args
    - nargs
    - keywords
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (nargs >= 0)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/cpython/Objects/call.c
    - condition: (args != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/cpython/Objects/call.c
    - condition: (nargs == 0 || args != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/cpython/Objects/call.c
    - condition: (keywords == NULL || PyTuple_Check(keywords) || PyDict_Check(keywords))
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 253
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 253
    functionName: _PyObject_MakeTpCall
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 2
    functionsReached:
    - object_is_not_callable
    - PyTuple_GET_SIZE
    - _PyTuple_FromArray
    - Py_DECREF
    - PyTuple_Check
    - _Py_EnterRecursiveCallTstate
    - _Py_LeaveRecursiveCallTstate
    - _PyStack_AsDict
    - _Py_CheckFunctionResult
    - _PyCFunctionWithKeywords_TrampolineCall
    - PyDict_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_MakeTpCall(PyThreadState *tstate, PyObject *callable,\n
      \                    PyObject *const *args, Py_ssize_t nargs,\n                     PyObject
      *keywords)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyVectorcall_FunctionInline
      Src: /src/cpython/Objects/call.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: PyVectorcall_Function
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 4
    functionsReached:
    - _PyVectorcall_FunctionInline
    linkageType: ''
    returnType: vectorcallfunc
    signature: vectorcallfunc PyVectorcall_Function(PyObject *callable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:267,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:269,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/call.c:272,1
    - Dst: func
      Src: /src/cpython/Objects/call.c:273,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/call.c:273,1
    - Dst: _PyStack_UnpackDict
      Src: /src/cpython/Objects/call.c:279,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/call.c:280,1
    - Dst: func
      Src: /src/cpython/Objects/call.c:285,1
    - Dst: _PyStack_UnpackDict_Free
      Src: /src/cpython/Objects/call.c:287,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/cpython/Objects/call.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - tstate
    - func
    - callable
    - tuple
    - kwargs
    argTypes:
    - PyThreadState*
    - vectorcallfunc
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (func != NULL)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 290
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 290
    functionName: _PyVectorcall_Call
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyStack_UnpackDict
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - func
    - _Py_CheckFunctionResult
    - _PyStack_UnpackDict_Free
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyVectorcall_Call(PyThreadState *tstate, vectorcallfunc
      func,\n                   PyObject *callable, PyObject *tuple, PyObject *kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:296,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:300,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/call.c:302,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:304,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:307,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/call.c:307,1
    - Dst: memcpy
      Src: /src/cpython/Objects/call.c:310,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/call.c:312,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:314,1
    - Dst: _PyVectorcall_Call
      Src: /src/cpython/Objects/call.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - callable
    - tuple
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyCallable_Check(callable))
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 319
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 319
    functionName: PyVectorcall_Call
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 3
    functionsReached:
    - _PyErr_Format
    - PyCallable_Check
    - _PyThreadState_GET
    - _PyVectorcall_Call
    - memcpy
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:326,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:327,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: 329
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: PyObject_Vectorcall
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 32
    functionsReached:
    - _PyThreadState_GET
    - _PyObject_VectorcallTstate
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyObject_Vectorcall(PyObject *callable, PyObject *const
      *args,\n                     size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:342,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:342,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:343,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/call.c:343,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:344,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/call.c:344,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/call.c:345,1
    - Dst: PyVectorcall_Function
      Src: /src/cpython/Objects/call.c:346,1
    - Dst: _PyVectorcall_Call
      Src: /src/cpython/Objects/call.c:348,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:351,1
    - Dst: object_is_not_callable
      Src: /src/cpython/Objects/call.c:353,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/call.c:357,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/call.c:363,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/cpython/Objects/call.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - tstate
    - callable
    - args
    - kwargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Objects/call.c
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Objects/call.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 367
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 367
    functionName: _PyObject_Call
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 2
    functionsReached:
    - object_is_not_callable
    - PyTuple_Check
    - _Py_EnterRecursiveCallTstate
    - _Py_LeaveRecursiveCallTstate
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - PyVectorcall_Function
    - _PyVectorcall_Call
    - _Py_CheckFunctionResult
    - PyDict_Check
    - Py_TYPE
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_Call(PyThreadState *tstate, PyObject *callable,\n
      \              PyObject *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:372,1
    - Dst: _PyObject_Call
      Src: /src/cpython/Objects/call.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - callable
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: PyObject_Call
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 27
    functionsReached:
    - _PyThreadState_GET
    - _PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Call(PyObject *callable, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/cpython/Objects/call.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - callable
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 5
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: PyCFunction_Call
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 1
    functionsReached:
    - PyObject_Call
    linkageType: ''
    returnType: void
    signature: void PyCFunction_Call(PyObject *callable, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/call.c:388,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:389,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:393,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: PyObject_CallOneArg
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 88
    functionsReached:
    - _PyThreadState_GET
    - _PyObject_VectorcallTstate
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallOneArg(PyObject *func, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:405,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/call.c:405,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/call.c:407,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:408,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:409,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:410,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Objects/call.c:411,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Objects/call.c:413,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Objects/call.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - func
    - stack
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/cpython/Objects/call.c
    - condition: (nargs >= 0)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/cpython/Objects/call.c
    - condition: (nargs == 0 || stack != NULL)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 418
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 418
    functionName: _PyFunction_Vectorcall
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - _PyThreadState_GET
    - EVAL_CALL_STAT_INC
    - PyVectorcall_NARGS
    - _PyEval_Vector
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyFunction_Vectorcall(PyObject *func, PyObject* const*
      stack,\n                       size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:429,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:434,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:434,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/call.c:437,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/call.c:438,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/call.c:443,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/call.c:444,1
    - Dst: _PyObject_VectorcallDictTstate
      Src: /src/cpython/Objects/call.c:450,1
    - Dst: _PyObject_Call
      Src: /src/cpython/Objects/call.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - callable
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 456
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 456
    functionName: PyEval_CallObjectWithKeywords
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - _PyObject_Call
    - PyTuple_Check
    - _PyObject_VectorcallDictTstate
    - _PyThreadState_GET
    - _PyErr_SetString
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: "void PyEval_CallObjectWithKeywords(PyObject *callable,\n                              PyObject
      *args, PyObject *kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:462,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:463,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/call.c:463,1
    - Dst: _PyObject_CallNoArgsTstate
      Src: /src/cpython/Objects/call.c:465,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/call.c:467,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/call.c:468,1
    - Dst: _PyObject_Call
      Src: /src/cpython/Objects/call.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - callable
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: PyObject_CallObject
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 20
    functionsReached:
    - _PyObject_Call
    - _PyErr_Occurred
    - PyTuple_Check
    - _PyThreadState_GET
    - _PyErr_SetString
    - _PyObject_CallNoArgsTstate
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallObject(PyObject *callable, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:481,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/call.c:481,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:486,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/call.c:487,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/call.c:491,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:493,1
    - Dst: memcpy
      Src: /src/cpython/Objects/call.c:500,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/call.c:501,1
    - Dst: _PyObject_VectorcallDictTstate
      Src: /src/cpython/Objects/call.c:504,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - tstate
    - callable
    - obj
    - args
    - kwargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 511
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 511
    functionName: _PyObject_Call_Prepend
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyTuple_Check
    - memcpy
    - _PyObject_VectorcallDictTstate
    - PyMem_Free
    - Py_ARRAY_LENGTH
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_Call_Prepend(PyThreadState *tstate, PyObject
      *callable,\n                       PyObject *obj, PyObject *args, PyObject *kwargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/call.c:521,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:527,1
    - Dst: _PyObject_CallNoArgsTstate
      Src: /src/cpython/Objects/call.c:531,1
    - Dst: _Py_VaBuildStack
      Src: /src/cpython/Objects/call.c:534,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/call.c:539,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/call.c:540,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:546,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/call.c:547,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:548,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:557,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - tstate
    - callable
    - format
    - va
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 563
    functionName: _PyObject_CallFunctionVa
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - null_error
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - Py_DECREF
    - _Py_VaBuildStack
    - PyTuple_Check
    - PyMem_Free
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - _PyObject_VectorcallTstate
    - Py_ARRAY_LENGTH
    - _PyObject_CallNoArgsTstate
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallFunctionVa(PyThreadState *tstate, PyObject
      *callable,\n                         const char *format, va_list va)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:571,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:573,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/cpython/Objects/call.c:574,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - callable
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 578
    functionName: PyObject_CallFunction
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 46
    functionsReached:
    - _PyThreadState_GET
    - va_start
    - _PyObject_CallFunctionVa
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallFunction(PyObject *callable, const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:588,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:590,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/cpython/Objects/call.c:591,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - callable
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: PyEval_CallFunction
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - va_start
    - _PyObject_CallFunctionVa
    - va_end
    linkageType: ''
    returnType: void
    signature: void PyEval_CallFunction(PyObject *callable, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:604,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:607,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/cpython/Objects/call.c:608,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - callable
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 612
    functionName: _PyObject_CallFunction_SizeT
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - va_start
    - _PyObject_CallFunctionVa
    - va_end
    linkageType: ''
    returnType: void
    signature: void _PyObject_CallFunction_SizeT(PyObject *callable, const char *format,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:618,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/call.c:619,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/call.c:620,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:622,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/cpython/Objects/call.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - tstate
    - callable
    - format
    - va
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - va_list
    assertStmts:
    - condition: (callable != NULL)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 627
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 627
    functionName: callmethod
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallFunctionVa
    - _PyErr_Format
    - PyCallable_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      callmethod(PyThreadState *tstate, PyObject* callable, const char *format, va_list
      va)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:632,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:635,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/call.c:638,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:644,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:645,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 650
    functionName: PyObject_CallMethod
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 40
    functionsReached:
    - null_error
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyThreadState_GET
    - va_start
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallMethod(PyObject *obj, const char *name, const char *format, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:658,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:660,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/call.c:663,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:669,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:670,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 656
    functionDepth: 4
    functionLinenumber: 656
    functionLinenumberEnd: 675
    functionName: PyEval_CallMethod
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - null_error
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyThreadState_GET
    - va_start
    - callmethod
    - va_end
    linkageType: ''
    returnType: void
    signature: void PyEval_CallMethod(PyObject *obj, const char *name, const char
      *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:682,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:684,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/call.c:687,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:693,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:694,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:695,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 678
    functionDepth: 4
    functionLinenumber: 678
    functionLinenumberEnd: 699
    functionName: _PyObject_CallMethod
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 13
    functionsReached:
    - null_error
    - Py_DECREF
    - _PyThreadState_GET
    - PyObject_GetAttr
    - va_start
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethod(PyObject *obj, PyObject *name,\n
      \                    const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:706,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:708,1
    - Dst: _PyObject_GetAttrId
      Src: /src/cpython/Objects/call.c:711,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:717,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:718,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 702
    functionDepth: 4
    functionLinenumber: 702
    functionLinenumberEnd: 723
    functionName: _PyObject_CallMethodId
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - null_error
    - Py_DECREF
    - _PyThreadState_GET
    - va_start
    - _PyObject_GetAttrId
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethodId(PyObject *obj, _Py_Identifier *name,\n
      \                      const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:730,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:731,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tstate
    - callable
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 734
    functionName: _PyObject_CallMethodFormat
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - callmethod
    - va_start
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * _PyObject_CallMethodFormat(PyThreadState *tstate, PyObject
      *callable,\n                                      const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:743,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:745,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/call.c:748,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:754,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:755,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 760
    functionName: _PyObject_CallMethod_SizeT
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - null_error
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyThreadState_GET
    - va_start
    - callmethod
    - va_end
    linkageType: ''
    returnType: void
    signature: "void _PyObject_CallMethod_SizeT(PyObject *obj, const char *name,\n
      \                          const char *format, ...)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:777,1
    - Dst: va_copy
      Src: /src/cpython/Objects/call.c:781,1
    - Dst: va_arg
      Src: /src/cpython/Objects/call.c:784,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:790,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/call.c:793,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/call.c:797,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:799,1
    - Dst: va_arg
      Src: /src/cpython/Objects/call.c:810,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/call.c:814,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Objects/call.c:815,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:819,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:822,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - tstate
    - base
    - callable
    - vargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 825
    functionName: object_vacall
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - null_error
    - PyFunction_Check
    - va_copy
    - EVAL_CALL_STAT_INC
    - PyMem_Free
    - va_arg
    - _PyObject_VectorcallTstate
    - Py_ARRAY_LENGTH
    - PyMem_Malloc
    - PyErr_NoMemory
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nobject_vacall(PyThreadState *tstate, PyObject *base,\n
      \             PyObject *callable, va_list vargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:832,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:833,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:834,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/call.c:834,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:836,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/call.c:838,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Objects/call.c:840,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/call.c:841,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:842,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/call.c:845,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/call.c:858,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:859,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - name
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Objects/call.c
    - condition: (PyVectorcall_NARGS(nargsf) >= 1)
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/cpython/Objects/call.c
    - condition: (args != NULL)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 863
      start: 828
    functionDepth: 4
    functionLinenumber: 828
    functionLinenumberEnd: 863
    functionName: PyObject_VectorcallMethod
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 5
    functionsReached:
    - _PyObject_GetMethodStackRef
    - _PyThreadState_GET
    - PyStackRef_IsNull
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - _PyObject_VectorcallTstate
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - PyVectorcall_NARGS
    - assert
    - _PyThreadState_PopCStackRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyObject_VectorcallMethod(PyObject *name, PyObject *const
      *args,\n                           size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:869,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:871,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/call.c:875,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Objects/call.c:876,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/call.c:877,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:878,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/call.c:881,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:885,1
    - Dst: object_vacall
      Src: /src/cpython/Objects/call.c:886,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:887,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 866
    functionDepth: 4
    functionLinenumber: 866
    functionLinenumberEnd: 891
    functionName: PyObject_CallMethodObjArgs
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 20
    functionsReached:
    - _PyObject_GetMethodStackRef
    - null_error
    - object_vacall
    - va_end
    - _PyThreadState_GET
    - va_start
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - PyStackRef_IsNull
    - _PyThreadState_PopCStackRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallMethodObjArgs(PyObject *obj, PyObject *name, ...)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:897,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:899,1
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/call.c:902,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/call.c:907,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Objects/call.c:908,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/call.c:909,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:910,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/call.c:913,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:918,1
    - Dst: object_vacall
      Src: /src/cpython/Objects/call.c:919,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:920,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 894
    functionDepth: 4
    functionLinenumber: 894
    functionLinenumberEnd: 924
    functionName: _PyObject_CallMethodIdObjArgs
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetMethodStackRef
    - null_error
    - object_vacall
    - va_end
    - _PyThreadState_GET
    - va_start
    - PyStackRef_AsPyObjectBorrow
    - _PyThreadState_PushCStackRef
    - PyStackRef_IsNull
    - _PyUnicode_FromId
    - _PyThreadState_PopCStackRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_CallMethodIdObjArgs(PyObject *obj, _Py_Identifier *name, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:930,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:934,1
    - Dst: object_vacall
      Src: /src/cpython/Objects/call.c:935,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 939
    functionName: PyObject_CallFunctionObjArgs
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 31
    functionsReached:
    - _PyThreadState_GET
    - va_end
    - va_start
    - object_vacall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallFunctionObjArgs(PyObject *callable, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:949,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:950,1
    - Dst: _PyDict_FromItems
      Src: /src/cpython/Objects/call.c:951,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/call.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - values
    - kwnames
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (kwnames != NULL)
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 953
      start: 944
    functionDepth: 12
    functionLinenumber: 944
    functionLinenumberEnd: 953
    functionName: _PyStack_AsDict
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 3
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    - _PyDict_FromItems
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyStack_AsDict(PyObject *const *values, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:973,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:974,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:975,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/call.c:975,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/call.c:977,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:983,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/call.c:988,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:990,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/call.c:994,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:996,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/call.c:1004,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/call.c:1014,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:1015,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/call.c:1016,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/call.c:1016,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/call.c:1017,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/call.c:1027,1
    - Dst: _PyStack_UnpackDict_Free
      Src: /src/cpython/Objects/call.c:1029,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nargs >= 0)
      pos:
        line_end: 972
        line_start: 972
        source_file: /src/cpython/Objects/call.c
    - condition: (kwargs != NULL)
      pos:
        line_end: 973
        line_start: 973
        source_file: /src/cpython/Objects/call.c
    - condition: (PyDict_Check(kwargs))
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 1035
      start: 968
    functionDepth: 7
    functionLinenumber: 968
    functionLinenumberEnd: 1035
    functionName: _PyStack_UnpackDict
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 2
    functionsReached:
    - PyTuple_New
    - PyDict_GET_SIZE
    - PyTuple_SET_ITEM
    - PyDict_Next
    - Py_NewRef
    - _PyErr_NoMemory
    - _PyStack_UnpackDict_Free
    - _PyErr_SetString
    - PyDict_Check
    - Py_TYPE
    - PyMem_Free
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *const *\n_PyStack_UnpackDict(PyThreadState *tstate,\n                    PyObject
      *const *args, Py_ssize_t nargs,\n                    PyObject *kwargs, PyObject
      **p_kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:1041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:1043,1
    - Dst: _PyStack_UnpackDict_FreeNoDecRef
      Src: /src/cpython/Objects/call.c:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - stack
    - nargs
    - kwnames
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1046
    functionName: _PyStack_UnpackDict_Free
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 3
    functionsReached:
    - _PyStack_UnpackDict_FreeNoDecRef
    - PyTuple_GET_SIZE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: "void _PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs,\n
      \                        PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:1051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - kwnames
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1053
    functionName: _PyStack_UnpackDict_FreeNoDecRef
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _PyStack_UnpackDict_FreeNoDecRef(PyObject *const *stack, PyObject
      *kwnames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyVectorcall_NARGS
      Src: /src/cpython/Objects/call.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1061
    functionName: PyVectorcall_NARGS
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 40
    functionsReached:
    - _PyVectorcall_NARGS
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyVectorcall_NARGS(size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/memoryobject.c:77,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/memoryobject.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: mbuf_alloc
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    linkageType: ''
    returnType: _PyManagedBufferObject
    signature: '_PyManagedBufferObject *

      mbuf_alloc(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mbuf_alloc
      Src: /src/cpython/Objects/memoryobject.c:93,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/memoryobject.c:97,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: _PyManagedBuffer_FromObject
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - Py_DECREF
    - mbuf_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyManagedBuffer_FromObject(PyObject *base, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/memoryobject.c:115,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/memoryobject.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyManagedBufferObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: mbuf_release
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void mbuf_release(_PyManagedBufferObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:123,1
    - Dst: mbuf_release
      Src: /src/cpython/Objects/memoryobject.c:124,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:126,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/memoryobject.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->exports == 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: mbuf_dealloc
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - mbuf_release
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void mbuf_dealloc(PyObject *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/memoryobject.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: mbuf_traverse
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int mbuf_traverse(PyObject *_self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:142,1
    - Dst: mbuf_release
      Src: /src/cpython/Objects/memoryobject.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->exports >= 0)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: mbuf_clear
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - mbuf_release
    - assert
    linkageType: ''
    returnType: int
    signature: int mbuf_clear(PyObject *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: BASE_INACCESSIBLE
    functionSourceFile: /src/cpython/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: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: CHECK_RELEASED
    functionSourceFile: /src/cpython/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: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: CHECK_RELEASED_INT
    functionSourceFile: /src/cpython/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:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: CHECK_RESTRICTED
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RESTRICTED(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: CHECK_RESTRICTED_INT
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RESTRICTED_INT(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: CHECK_RELEASED_AGAIN
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RELEASED_AGAIN(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: CHECK_RELEASED_INT_AGAIN
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RELEASED_INT_AGAIN(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: CHECK_LIST_OR_TUPLE
    functionSourceFile: /src/cpython/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: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: VIEW_ADDR
    functionSourceFile: /src/cpython/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: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: HAVE_PTR
    functionSourceFile: /src/cpython/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: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: ADJUST_PTR
    functionSourceFile: /src/cpython/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: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: MV_C_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: MV_F_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: MV_ANY_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: MV_CONTIGUOUS_NDIM1
    functionSourceFile: /src/cpython/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: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: REQ_INDIRECT
    functionSourceFile: /src/cpython/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: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: REQ_C_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: REQ_F_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: REQ_ANY_CONTIGUOUS
    functionSourceFile: /src/cpython/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: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: REQ_STRIDES
    functionSourceFile: /src/cpython/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: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: REQ_SHAPE
    functionSourceFile: /src/cpython/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: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: REQ_WRITABLE
    functionSourceFile: /src/cpython/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: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: REQ_FORMAT
    functionSourceFile: /src/cpython/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: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: HAVE_SUBOFFSETS_IN_LAST_DIM
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVE_SUBOFFSETS_IN_LAST_DIM(view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:274,1
    - Dst: HAVE_SUBOFFSETS_IN_LAST_DIM
      Src: /src/cpython/Objects/memoryobject.c:275,1
    - Dst: HAVE_SUBOFFSETS_IN_LAST_DIM
      Src: /src/cpython/Objects/memoryobject.c:276,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: 273
        line_start: 273
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: last_dim_is_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - HAVE_SUBOFFSETS_IN_LAST_DIM
    - assert
    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/cpython/Objects/memoryobject.c:292,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:296,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: 291
        line_start: 291
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: equiv_format
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - strcmp
    - assert
    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: 323
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: equiv_shape
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:330,1
    - Dst: equiv_shape
      Src: /src/cpython/Objects/memoryobject.c:331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 339
    functionName: equiv_structure
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - equiv_format
    - PyErr_SetString
    - 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/cpython/Objects/memoryobject.c:353,1
    - Dst: memmove
      Src: /src/cpython/Objects/memoryobject.c:355,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:361,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:362,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:365,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:366,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: 370
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 370
    functionName: copy_base
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ADJUST_PTR
    - memmove
    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/cpython/Objects/memoryobject.c:382,1
    - Dst: copy_base
      Src: /src/cpython/Objects/memoryobject.c:385,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:393,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:394,1
    - Dst: copy_rec
      Src: /src/cpython/Objects/memoryobject.c:396,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: 381
        line_start: 381
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 401
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 401
    functionName: copy_rec
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 3
    functionsReached:
    - ADJUST_PTR
    - copy_rec
    - copy_base
    - 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:407,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:410,1
    - Dst: equiv_structure
      Src: /src/cpython/Objects/memoryobject.c:412,1
    - Dst: last_dim_is_contiguous
      Src: /src/cpython/Objects/memoryobject.c:415,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:416,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:418,1
    - Dst: copy_base
      Src: /src/cpython/Objects/memoryobject.c:423,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - dest
    - src
    argTypes:
    - PyMemoryViewObject*
    - Py_buffer*
    - Py_buffer*
    assertStmts:
    - condition: (dest->ndim == 1)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 432
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 432
    functionName: copy_single
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED_INT_AGAIN
    - equiv_structure
    - last_dim_is_contiguous
    - PyMem_Free
    - copy_base
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int copy_single(PyMemoryViewObject *self, const Py_buffer *dest, const
      Py_buffer *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:442,1
    - Dst: equiv_structure
      Src: /src/cpython/Objects/memoryobject.c:444,1
    - Dst: last_dim_is_contiguous
      Src: /src/cpython/Objects/memoryobject.c:447,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:448,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:450,1
    - Dst: copy_rec
      Src: /src/cpython/Objects/memoryobject.c:455,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:461,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: 441
        line_start: 441
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 464
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 464
    functionName: copy_buffer
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 2
    functionsReached:
    - equiv_structure
    - copy_rec
    - last_dim_is_contiguous
    - PyMem_Free
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int copy_buffer(const Py_buffer *dest, const Py_buffer *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->ndim > 0)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 477
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 477
    functionName: init_strides_from_shape
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->ndim > 0)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: init_fortran_strides_from_shape
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:502,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:503,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:504,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:506,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:508,1
    - Dst: init_strides_from_shape
      Src: /src/cpython/Objects/memoryobject.c:522,1
    - Dst: init_fortran_strides_from_shape
      Src: /src/cpython/Objects/memoryobject.c:525,1
    - Dst: copy_buffer
      Src: /src/cpython/Objects/memoryobject.c:530,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:532,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: 501
        line_start: 501
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (src->strides != NULL)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (src->shape != NULL)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 534
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 534
    functionName: buffer_to_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - copy_buffer
    - init_strides_from_shape
    - init_fortran_strides_from_shape
    - PyMem_Free
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int buffer_to_contiguous(char *mem, const 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: 552
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 552
    functionName: init_shared_values
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 580
    functionName: init_shape_strides
    functionSourceFile: /src/cpython/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: 593
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 593
    functionName: init_suboffsets
    functionSourceFile: /src/cpython/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: 607
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: init_len
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:622,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/memoryobject.c:626,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/memoryobject.c:628,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - mv
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 639
    functionName: init_flags
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 3
    functionsReached:
    - PyBuffer_IsContiguous
    - MV_CONTIGUOUS_NDIM1
    linkageType: ''
    returnType: void
    signature: void init_flags(PyMemoryViewObject *mv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/memoryobject.c:649,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/memoryobject.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ndim
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 665
    functionName: memory_alloc
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:685,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Objects/memoryobject.c:687,1
    - Dst: memory_alloc
      Src: /src/cpython/Objects/memoryobject.c:691,1
    - Dst: init_shared_values
      Src: /src/cpython/Objects/memoryobject.c:696,1
    - Dst: init_shape_strides
      Src: /src/cpython/Objects/memoryobject.c:697,1
    - Dst: init_suboffsets
      Src: /src/cpython/Objects/memoryobject.c:698,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - mbuf
    - src
    argTypes:
    - _PyManagedBufferObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 705
    functionName: mbuf_add_view
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - init_shape_strides
    - memory_alloc
    - PyErr_SetString
    - Py_NewRef
    - init_suboffsets
    - init_flags
    - init_shared_values
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mbuf_add_view(_PyManagedBufferObject *mbuf, const Py_buffer *src)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:722,1
    - Dst: memory_alloc
      Src: /src/cpython/Objects/memoryobject.c:724,1
    - Dst: init_shared_values
      Src: /src/cpython/Objects/memoryobject.c:729,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - mbuf
    - src
    - ndim
    argTypes:
    - _PyManagedBufferObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (ndim <= PyBUF_MAX_NDIM)
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 735
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 735
    functionName: mbuf_add_incomplete_view
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - init_shared_values
    - memory_alloc
    - assert
    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/cpython/Objects/memoryobject.c:747,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:748,1
    - Dst: mbuf_alloc
      Src: /src/cpython/Objects/memoryobject.c:750,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Objects/memoryobject.c:755,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:759,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: 746
        line_start: 746
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (flags == PyBUF_READ || flags == PyBUF_WRITE)
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 762
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 762
    functionName: PyMemoryView_FromMemory
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - mbuf_alloc
    - PyBuffer_FillInfo
    - mbuf_add_view
    - 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/cpython/Objects/memoryobject.c:776,1
    - Dst: mbuf_alloc
      Src: /src/cpython/Objects/memoryobject.c:781,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:790,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - info
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 769
    functionDepth: 3
    functionLinenumber: 769
    functionLinenumberEnd: 794
    functionName: PyMemoryView_FromBuffer
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 8
    functionsReached:
    - PyErr_SetString
    - Py_DECREF
    - mbuf_add_view
    - mbuf_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_FromBuffer(const Py_buffer *info)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/memoryobject.c:805,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:807,1
    - Dst: CHECK_RESTRICTED
      Src: /src/cpython/Objects/memoryobject.c:808,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:809,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/memoryobject.c:811,1
    - Dst: _PyManagedBuffer_FromObject
      Src: /src/cpython/Objects/memoryobject.c:813,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:817,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:821,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/memoryobject.c:823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 825
    functionName: PyMemoryView_FromObjectAndFlags
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CHECK_RELEASED
    - _PyManagedBuffer_FromObject
    - PyObject_CheckBuffer
    - CHECK_RESTRICTED
    - PyMemoryView_Check
    - PyErr_Format
    - Py_TYPE
    - mbuf_add_view
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_FromObjectAndFlags(PyObject *v, int flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mbuf_alloc
      Src: /src/cpython/Objects/memoryobject.c:834,1
    - Dst: bufferproc
      Src: /src/cpython/Objects/memoryobject.c:838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:841,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - v
    - flags
    - bufferproc
    argTypes:
    - PyObject*
    - int
    - getbufferproc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 848
    functionName: _PyMemoryView_FromBufferProc
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - bufferproc
    - Py_DECREF
    - mbuf_add_view
    - mbuf_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMemoryView_FromBufferProc(PyObject *v, int flags, getbufferproc bufferproc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_FromObjectAndFlags
      Src: /src/cpython/Objects/memoryobject.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 853
    functionDepth: 4
    functionLinenumber: 853
    functionLinenumberEnd: 857
    functionName: PyMemoryView_FromObject
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 6
    functionsReached:
    - PyMemoryView_FromObjectAndFlags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_FromObject(PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:864,1
    - Dst: strlen
      Src: /src/cpython/Objects/memoryobject.c:864,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:866,1
    - Dst: strcpy
      Src: /src/cpython/Objects/memoryobject.c:869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mbuf
    - fmt
    argTypes:
    - _PyManagedBufferObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 874
    functionName: mbuf_copy_format
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyErr_NoMemory
    - strlen
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int mbuf_copy_format(_PyManagedBufferObject *mbuf, const char *fmt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:897,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:898,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/memoryobject.c:900,1
    - Dst: _PyManagedBuffer_FromObject
      Src: /src/cpython/Objects/memoryobject.c:904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:905,1
    - Dst: mbuf_copy_format
      Src: /src/cpython/Objects/memoryobject.c:909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:910,1
    - Dst: mbuf_add_incomplete_view
      Src: /src/cpython/Objects/memoryobject.c:914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:915,1
    - Dst: init_strides_from_shape
      Src: /src/cpython/Objects/memoryobject.c:929,1
    - Dst: init_fortran_strides_from_shape
      Src: /src/cpython/Objects/memoryobject.c:932,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:938,1
    - Dst: copy_buffer
      Src: /src/cpython/Objects/memoryobject.c:940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:941,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - src
    - order
    argTypes:
    - Py_buffer*
    - char
    assertStmts:
    - condition: (src->ndim > 0)
      pos:
        line_end: 896
        line_start: 896
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (src->shape != NULL)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 946
      start: 888
    functionDepth: 4
    functionLinenumber: 888
    functionLinenumberEnd: 946
    functionName: memory_from_contiguous_copy
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - copy_buffer
    - Py_DECREF
    - _PyManagedBuffer_FromObject
    - mbuf_add_incomplete_view
    - init_strides_from_shape
    - mbuf_copy_format
    - init_fortran_strides_from_shape
    - PyBytes_FromStringAndSize
    - init_flags
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_from_contiguous_copy(const Py_buffer *src, char order)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:972,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:973,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Objects/memoryobject.c:975,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:983,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/memoryobject.c:987,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:994,1
    - Dst: memory_from_contiguous_copy
      Src: /src/cpython/Objects/memoryobject.c:998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:999,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: 971
        line_start: 971
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (order == 'C' || order == 'F' || order == 'A')
      pos:
        line_end: 972
        line_start: 972
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1001
      start: 965
    functionDepth: 5
    functionLinenumber: 965
    functionLinenumberEnd: 1001
    functionName: PyMemoryView_GetContiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyBuffer_IsContiguous
    - PyMemoryView_FromObject
    - PyErr_SetString
    - memory_from_contiguous_copy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Objects/memoryobject.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - object
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1013
    functionDepth: 5
    functionLinenumber: 1013
    functionLinenumberEnd: 1018
    functionName: memoryview_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_impl(PyTypeObject *type, PyObject *object)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_FromObjectAndFlags
      Src: /src/cpython/Objects/memoryobject.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - object
    - flags
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: memoryview__from_flags_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_FromObjectAndFlags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview__from_flags_impl(PyTypeObject *type, PyObject *object, int flags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1054,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1057,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/memoryobject.c:1062,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:1063,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:1068,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:1070,1
    - Dst: init_shared_values
      Src: /src/cpython/Objects/memoryobject.c:1078,1
    - Dst: init_shape_strides
      Src: /src/cpython/Objects/memoryobject.c:1079,1
    - Dst: init_suboffsets
      Src: /src/cpython/Objects/memoryobject.c:1080,1
    - Dst: buffer_to_contiguous
      Src: /src/cpython/Objects/memoryobject.c:1084,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:1085,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: 1053
        line_start: 1053
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1087
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1087
    functionName: PyBuffer_ToContiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 5
    functionsReached:
    - init_shape_strides
    - PyBuffer_IsContiguous
    - PyErr_SetString
    - buffer_to_contiguous
    - PyMem_Free
    - init_shared_values
    - init_suboffsets
    - memcpy
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int PyBuffer_ToContiguous(void *buf, const Py_buffer *src, Py_ssize_t
      len, char order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/memoryobject.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1097
    functionName: get_exports
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_exports(PyMemoryViewObject *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1111,1
    - Dst: get_exports
      Src: /src/cpython/Objects/memoryobject.c:1111,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1116,1
    - Dst: mbuf_release
      Src: /src/cpython/Objects/memoryobject.c:1118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts:
    - condition: (get_exports(self) == 0)
      pos:
        line_end: 1110
        line_start: 1110
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (self->mbuf->exports > 0)
      pos:
        line_end: 1115
        line_start: 1115
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1120
      start: 1108
    functionDepth: 2
    functionLinenumber: 1108
    functionLinenumberEnd: 1120
    functionName: _memory_release
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - mbuf_release
    - assert
    - get_exports
    linkageType: ''
    returnType: void
    signature: void _memory_release(PyMemoryViewObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_exports
      Src: /src/cpython/Objects/memoryobject.c:1132,1
    - Dst: _memory_release
      Src: /src/cpython/Objects/memoryobject.c:1134,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1139,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1148
    functionName: memoryview_release_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _memory_release
    - PyErr_Format
    - PyErr_SetString
    - get_exports
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_release_impl(PyMemoryViewObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1154,1
    - Dst: get_exports
      Src: /src/cpython/Objects/memoryobject.c:1154,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/memoryobject.c:1155,1
    - Dst: _memory_release
      Src: /src/cpython/Objects/memoryobject.c:1156,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/memoryobject.c:1157,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/memoryobject.c:1159,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/memoryobject.c:1160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (get_exports(self) == 0)
      pos:
        line_end: 1153
        line_start: 1153
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1161
      start: 1150
    functionDepth: 4
    functionLinenumber: 1150
    functionLinenumberEnd: 1161
    functionName: memory_dealloc
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _memory_release
    - PyObject_ClearWeakRefs
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - get_exports
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: void
    signature: void memory_dealloc(PyObject *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/memoryobject.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    functionName: memory_traverse
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int memory_traverse(PyObject *_self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_exports
      Src: /src/cpython/Objects/memoryobject.c:1175,1
    - Dst: _memory_release
      Src: /src/cpython/Objects/memoryobject.c:1176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/memoryobject.c:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1171
    functionDepth: 3
    functionLinenumber: 1171
    functionLinenumberEnd: 1180
    functionName: memory_clear
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _memory_release
    - Py_CLEAR
    - get_exports
    linkageType: ''
    returnType: int
    signature: int memory_clear(PyObject *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:1185,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1187
    functionName: memory_enter
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_enter(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memoryview_release_impl
      Src: /src/cpython/Objects/memoryobject.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1189
    functionDepth: 4
    functionLinenumber: 1189
    functionLinenumberEnd: 1193
    functionName: memory_exit
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - memoryview_release_impl
    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: 1201
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1201
    functionName: IS_BYTE_FORMAT
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BYTE_FORMAT(f)
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - result
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1229
    functionName: get_native_fmtchar
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_native_fmtchar(char *result, const char *fmt)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1247,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1248,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1249,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1250,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1251,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1252,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1253,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1254,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1255,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1256,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1257,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1258,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1259,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1260,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1261,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1262,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1263,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1268
    functionName: get_native_fmtstr
    functionSourceFile: /src/cpython/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: 1245
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1245
    functionName: RETURN
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN(s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1284,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1285,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/memoryobject.c:1285,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1286,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1287,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1288,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Objects/memoryobject.c:1290,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:1294,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:1294,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1296,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:1302,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:1303,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:1303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1304,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1309,1
    - Dst: get_native_fmtstr
      Src: /src/cpython/Objects/memoryobject.c:1314,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:1314,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1317,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:1328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1333,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - mv
    - format
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts:
    - condition: (view->ndim >= 1)
      pos:
        line_end: 1283
        line_start: 1283
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->strides == mv->ob_array + view->ndim)
      pos:
        line_end: 1286
        line_start: 1286
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (Py_SIZE(mv) == 3*view->ndim)
      pos:
        line_end: 1284
        line_start: 1284
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->suboffsets == mv->ob_array + 2*view->ndim)
      pos:
        line_end: 1287
        line_start: 1287
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->shape == mv->ob_array)
      pos:
        line_end: 1285
        line_start: 1285
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1335
      start: 1275
    functionDepth: 12
    functionLinenumber: 1275
    functionLinenumberEnd: 1335
    functionName: cast_to_1D
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_native_fmtchar
    - Py_SIZE
    - PyErr_SetString
    - PyUnicode_AsASCIIString
    - get_native_fmtstr
    - IS_BYTE_FORMAT
    - init_flags
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: int
    signature: int cast_to_1D(PyMemoryViewObject *mv, PyObject *format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:1346,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/memoryobject.c:1347,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1348,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:1352,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1353,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1358,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1363,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: 1372
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1372
    functionName: copy_shape
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_Check
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - PyLong_AsSsize_t
    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/cpython/Objects/memoryobject.c:1383,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1384,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/memoryobject.c:1384,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1385,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1386,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1387,1
    - Dst: copy_shape
      Src: /src/cpython/Objects/memoryobject.c:1396,1
    - Dst: init_strides_from_shape
      Src: /src/cpython/Objects/memoryobject.c:1399,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1403,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:1408,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: 1382
        line_start: 1382
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->strides == mv->ob_array + (ndim==0?1:ndim))
      pos:
        line_end: 1385
        line_start: 1385
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (Py_SIZE(mv) == 3*(ndim==0?1:ndim))
      pos:
        line_end: 1383
        line_start: 1383
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->shape == mv->ob_array)
      pos:
        line_end: 1384
        line_start: 1384
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->suboffsets == NULL)
      pos:
        line_end: 1386
        line_start: 1386
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1411
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1411
    functionName: cast_to_ND
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - copy_shape
    - Py_SIZE
    - init_strides_from_shape
    - PyErr_SetString
    - init_flags
    - assert
    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: 1424
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1424
    functionName: zero_in_shape
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zero_in_shape(PyMemoryViewObject *mv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:1455,1
    - Dst: CHECK_RESTRICTED
      Src: /src/cpython/Objects/memoryobject.c:1456,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1459,1
    - Dst: zero_in_shape
      Src: /src/cpython/Objects/memoryobject.c:1463,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1464,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/cpython/Objects/memoryobject.c:1469,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:1470,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1472,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Objects/memoryobject.c:1474,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1478,1
    - Dst: mbuf_add_incomplete_view
      Src: /src/cpython/Objects/memoryobject.c:1485,1
    - Dst: cast_to_1D
      Src: /src/cpython/Objects/memoryobject.c:1489,1
    - Dst: cast_to_ND
      Src: /src/cpython/Objects/memoryobject.c:1491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1497,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - self
    - format
    - shape
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1447
    functionDepth: 13
    functionLinenumber: 1447
    functionLinenumberEnd: 1499
    functionName: memoryview_cast_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - cast_to_1D
    - Py_STRINGIFY
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - CHECK_RELEASED
    - mbuf_add_incomplete_view
    - cast_to_ND
    - PyErr_SetString
    - CHECK_RESTRICTED
    - MV_C_CONTIGUOUS
    - CHECK_LIST_OR_TUPLE
    - zero_in_shape
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmemoryview_cast_impl(PyMemoryViewObject *self, PyObject
      *format,\n                     PyObject *shape)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:1511,1
    - Dst: CHECK_RESTRICTED
      Src: /src/cpython/Objects/memoryobject.c:1512,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:1516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1507
    functionDepth: 3
    functionLinenumber: 1507
    functionLinenumberEnd: 1521
    functionName: memoryview_toreadonly_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RESTRICTED
    - mbuf_add_view
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_toreadonly_impl(PyMemoryViewObject *self)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/cpython/Objects/memoryobject.c:1535,1
    - Dst: CHECK_RESTRICTED_INT
      Src: /src/cpython/Objects/memoryobject.c:1536,1
    - Dst: REQ_WRITABLE
      Src: /src/cpython/Objects/memoryobject.c:1542,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1543,1
    - Dst: REQ_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:1547,1
    - Dst: REQ_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1556,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1556,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1557,1
    - Dst: REQ_F_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1561,1
    - Dst: MV_F_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1562,1
    - Dst: REQ_ANY_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1566,1
    - Dst: MV_ANY_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1566,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1567,1
    - Dst: REQ_INDIRECT
      Src: /src/cpython/Objects/memoryobject.c:1571,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1572,1
    - Dst: REQ_STRIDES
      Src: /src/cpython/Objects/memoryobject.c:1576,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1577,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1578,1
    - Dst: REQ_SHAPE
      Src: /src/cpython/Objects/memoryobject.c:1584,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1590,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:1602,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Objects/memoryobject.c:1604,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - _self
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1610
    functionName: memory_getbuf
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - REQ_FORMAT
    - REQ_C_CONTIGUOUS
    - MV_F_CONTIGUOUS
    - REQ_ANY_CONTIGUOUS
    - PyErr_Format
    - PyErr_SetString
    - REQ_INDIRECT
    - _Py_atomic_add_ssize
    - Py_NewRef
    - REQ_SHAPE
    - MV_C_CONTIGUOUS
    - CHECK_RELEASED_INT
    - REQ_STRIDES
    - MV_ANY_CONTIGUOUS
    - REQ_WRITABLE
    - REQ_F_CONTIGUOUS
    - CHECK_RESTRICTED_INT
    linkageType: ''
    returnType: int
    signature: int memory_getbuf(PyObject *_self, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Objects/memoryobject.c:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - _self
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1623
    functionName: memory_releasebuf
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_ssize
    linkageType: ''
    returnType: void
    signature: void memory_releasebuf(PyObject *_self, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1648
    functionName: type_error_int
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1656
    functionName: value_error_int
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 8
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int value_error_int(const char *fmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1661,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1661,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:1662,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:1663,1
    - Dst: type_error_int
      Src: /src/cpython/Objects/memoryobject.c:1664,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:1666,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:1667,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:1668,1
    - Dst: value_error_int
      Src: /src/cpython/Objects/memoryobject.c:1669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1660
        line_start: 1660
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1673
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1673
    functionName: fix_error_int
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_int
    - PyErr_ExceptionMatches
    - type_error_int
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: int fix_error_int(const char *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/memoryobject.c:1682,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/memoryobject.c:1686,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1689
    functionName: pylong_as_ld
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsLong
    linkageType: ''
    returnType: long
    signature: long pylong_as_ld(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/memoryobject.c:1697,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Objects/memoryobject.c:1701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1691
    functionDepth: 2
    functionLinenumber: 1691
    functionLinenumberEnd: 1704
    functionName: pylong_as_lu
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyNumber_Index
    - PyLong_AsUnsignedLong
    - Py_DECREF
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pylong_as_lu(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/memoryobject.c:1712,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/memoryobject.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1706
    functionDepth: 2
    functionLinenumber: 1706
    functionLinenumberEnd: 1719
    functionName: pylong_as_lld
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:1727,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Objects/memoryobject.c:1731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1734
    functionName: pylong_as_llu
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyNumber_Index
    - PyLong_AsUnsignedLongLong
    - Py_DECREF
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long pylong_as_llu(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/memoryobject.c:1742,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:1746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1749
    functionName: pylong_as_zd
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:1757,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Objects/memoryobject.c:1761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1751
    functionDepth: 2
    functionLinenumber: 1751
    functionLinenumberEnd: 1764
    functionName: pylong_as_zu
    functionSourceFile: /src/cpython/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: 1775
      start: 1769
    functionDepth: 0
    functionLinenumber: 1769
    functionLinenumberEnd: 1775
    functionName: UNPACK_SINGLE
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_SINGLE(dest, ptr, type)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1792,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1805,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1806,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1807,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1810,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1813,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1814,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1815,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1818,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1819,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1822,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1823,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1826,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1827,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Objects/memoryobject.c:1828,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1834,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/memoryobject.c:1842,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/memoryobject.c:1844,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Objects/memoryobject.c:1846,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Objects/memoryobject.c:1848,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Objects/memoryobject.c:1850,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:1852,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/memoryobject.c:1854,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/memoryobject.c:1856,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:1858,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/memoryobject.c:1860,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/memoryobject.c:1862,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1864,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 115
    argCount: 3
    argNames:
    - self
    - ptr
    - fmt
    argTypes:
    - PyMemoryViewObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1779
    functionDepth: 4
    functionLinenumber: 1779
    functionLinenumberEnd: 1867
    functionName: unpack_single
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 3
    functionsReached:
    - PyLong_FromVoidPtr
    - PyFloat_Unpack2
    - PyLong_FromSsize_t
    - PyBytes_FromStringAndSize
    - PyFloat_FromDouble
    - PyLong_FromUnsignedLongLong
    - PyLong_FromUnsignedLong
    - PyLong_FromSize_t
    - PyLong_FromLong
    - PyBool_FromLong
    - PyErr_Format
    - PyLong_FromLongLong
    - UNPACK_SINGLE
    - CHECK_RELEASED_AGAIN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_single(PyMemoryViewObject *self, 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: 1875
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1875
    functionName: PACK_SINGLE
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_SINGLE(ptr, src, type)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: pylong_as_ld
      Src: /src/cpython/Objects/memoryobject.c:1898,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1899,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1901,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1908,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1911,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1913,1
    - Dst: pylong_as_lu
      Src: /src/cpython/Objects/memoryobject.c:1919,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1920,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1922,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1929,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1932,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1934,1
    - Dst: pylong_as_lld
      Src: /src/cpython/Objects/memoryobject.c:1940,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1941,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1943,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1944,1
    - Dst: pylong_as_llu
      Src: /src/cpython/Objects/memoryobject.c:1947,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1948,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1950,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1951,1
    - Dst: pylong_as_zd
      Src: /src/cpython/Objects/memoryobject.c:1956,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1957,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1959,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1960,1
    - Dst: pylong_as_zu
      Src: /src/cpython/Objects/memoryobject.c:1963,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1964,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1966,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1967,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/memoryobject.c:1972,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1973,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1975,1
    - Dst: PyFloat_Pack2
      Src: /src/cpython/Objects/memoryobject.c:1983,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/memoryobject.c:1991,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1994,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1995,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/memoryobject.c:2000,1
    - Dst: type_error_int
      Src: /src/cpython/Objects/memoryobject.c:2001,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2002,1
    - Dst: value_error_int
      Src: /src/cpython/Objects/memoryobject.c:2003,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:2004,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Objects/memoryobject.c:2009,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2010,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:2012,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2013,1
    - Dst: fix_error_int
      Src: /src/cpython/Objects/memoryobject.c:2023,1
    - Dst: value_error_int
      Src: /src/cpython/Objects/memoryobject.c:2025,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2027,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 157
    argCount: 4
    argNames:
    - self
    - ptr
    - item
    - fmt
    argTypes:
    - PyMemoryViewObject*
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1878
    functionDepth: 3
    functionLinenumber: 1878
    functionLinenumberEnd: 2030
    functionName: pack_single
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 4
    functionsReached:
    - CHECK_RELEASED_INT_AGAIN
    - pylong_as_zu
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - pylong_as_llu
    - pylong_as_zd
    - PyFloat_AsDouble
    - PyErr_Occurred
    - value_error_int
    - type_error_int
    - PyErr_Format
    - pylong_as_lld
    - PyLong_AsVoidPtr
    - fix_error_int
    - PyFloat_Pack2
    - pylong_as_lu
    - PyBytes_AS_STRING
    - PACK_SINGLE
    - PyObject_IsTrue
    - pylong_as_ld
    linkageType: ''
    returnType: int
    signature: int pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item,
      const char *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:2051,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:2054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2048
    functionDepth: 2
    functionLinenumber: 2048
    functionLinenumberEnd: 2064
    functionName: unpacker_new
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: struct unpacker
    signature: 'struct unpacker *

      unpacker_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2070,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2071,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:2072,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:2073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2066
    functionDepth: 2
    functionLinenumber: 2066
    functionLinenumberEnd: 2075
    functionName: unpacker_free
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void unpacker_free(struct unpacker *x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Objects/memoryobject.c:2086,1
    - Dst: unpacker_new
      Src: /src/cpython/Objects/memoryobject.c:2090,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Objects/memoryobject.c:2094,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/memoryobject.c:2098,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/memoryobject.c:2102,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:2106,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:2108,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Objects/memoryobject.c:2113,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2119,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2120,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2121,1
    - Dst: unpacker_free
      Src: /src/cpython/Objects/memoryobject.c:2125,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - fmt
    - itemsize
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2078
    functionDepth: 4
    functionLinenumber: 2078
    functionLinenumberEnd: 2128
    functionName: struct_get_unpacker
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyImport_ImportModuleAttrString
    - PyObject_GetAttrString
    - unpacker_new
    - PyObject_CallOneArg
    - PyMemoryView_FromMemory
    - unpacker_free
    - PyErr_NoMemory
    - PyBytes_FromString
    - PyMem_Malloc
    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/cpython/Objects/memoryobject.c:2136,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/memoryobject.c:2137,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2141,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:2142,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptr
    - x
    argTypes:
    - char*
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2131
    functionDepth: 2
    functionLinenumber: 2131
    functionLinenumberEnd: 2148
    functionName: struct_unpack_single
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - Py_NewRef
    - PyObject_CallOneArg
    - PyTuple_GET_ITEM
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      struct_unpack_single(const char *ptr, struct unpacker *x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2156
    functionDepth: 1
    functionLinenumber: 2156
    functionLinenumberEnd: 2168
    functionName: adjust_fmt
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:2179,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:2184,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2187,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - self
    - ptr
    - shape
    - strides
    - suboffsets
    - fmt
    argTypes:
    - PyMemoryViewObject*
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2171
    functionDepth: 4
    functionLinenumber: 2171
    functionLinenumberEnd: 2194
    functionName: tolist_base
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - ADJUST_PTR
    - unpack_single
    - Py_DECREF
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntolist_base(PyMemoryViewObject *self, 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/cpython/Objects/memoryobject.c:2206,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2207,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2208,1
    - Dst: tolist_base
      Src: /src/cpython/Objects/memoryobject.c:2211,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/memoryobject.c:2213,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:2218,1
    - Dst: tolist_rec
      Src: /src/cpython/Objects/memoryobject.c:2219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2223,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - self
    - ptr
    - ndim
    - shape
    - strides
    - suboffsets
    - fmt
    argTypes:
    - PyMemoryViewObject*
    - char*
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    assertStmts:
    - condition: (ndim >= 1)
      pos:
        line_end: 2205
        line_start: 2205
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (strides != NULL)
      pos:
        line_end: 2207
        line_start: 2207
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (shape != NULL)
      pos:
        line_end: 2206
        line_start: 2206
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2230
      start: 2198
    functionDepth: 5
    functionLinenumber: 2198
    functionLinenumberEnd: 2230
    functionName: tolist_rec
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - ADJUST_PTR
    - Py_DECREF
    - tolist_base
    - PyList_SET_ITEM
    - tolist_rec
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntolist_rec(PyMemoryViewObject *self, 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/cpython/Objects/memoryobject.c:2247,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2249,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2253,1
    - Dst: tolist_base
      Src: /src/cpython/Objects/memoryobject.c:2256,1
    - Dst: tolist_rec
      Src: /src/cpython/Objects/memoryobject.c:2261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2240
    functionDepth: 6
    functionLinenumber: 2240
    functionLinenumberEnd: 2265
    functionName: memoryview_tolist_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - adjust_fmt
    - unpack_single
    - CHECK_RELEASED
    - tolist_base
    - tolist_rec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_tolist_impl(PyMemoryViewObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VIEW_ADDR
      Src: /src/cpython/Objects/memoryobject.c:2286,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2290,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:2293,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:2296,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:2299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2300,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/memoryobject.c:2306,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/memoryobject.c:2310,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:2310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - order
    argTypes:
    - PyMemoryViewObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2282
    functionDepth: 4
    functionLinenumber: 2282
    functionLinenumberEnd: 2316
    functionName: memoryview_tobytes_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CHECK_RELEASED
    - VIEW_ADDR
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyBuffer_ToContiguous
    - strcmp
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_tobytes_impl(PyMemoryViewObject *self, const char *order)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VIEW_ADDR
      Src: /src/cpython/Objects/memoryobject.c:2346,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2350,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:2352,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/memoryobject.c:2353,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/memoryobject.c:2356,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/memoryobject.c:2360,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:2360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2361,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/memoryobject.c:2365,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:2366,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2341
    functionDepth: 4
    functionLinenumber: 2341
    functionLinenumberEnd: 2371
    functionName: memoryview_hex_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CHECK_RELEASED
    - VIEW_ADDR
    - PyBytes_FromStringAndSize
    - PyBuffer_ToContiguous
    - MV_C_CONTIGUOUS
    - _Py_strhex_with_sep
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    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/cpython/Objects/memoryobject.c:2378,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/memoryobject.c:2380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2373
    functionDepth: 10
    functionLinenumber: 2373
    functionLinenumberEnd: 2381
    functionName: memory_repr
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_repr(PyObject *_self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2393,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2394,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2401,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:2408,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: 2392
        line_start: 2392
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->strides)
      pos:
        line_end: 2393
        line_start: 2393
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2411
      start: 2388
    functionDepth: 1
    functionLinenumber: 2388
    functionLinenumberEnd: 2411
    functionName: lookup_dimension
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - ADJUST_PTR
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: char
    signature: 'char *

      lookup_dimension(const Py_buffer *view, char *ptr, int dim, Py_ssize_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_dimension
      Src: /src/cpython/Objects/memoryobject.c:2418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - view
    - index
    argTypes:
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2414
    functionDepth: 2
    functionLinenumber: 2414
    functionLinenumberEnd: 2419
    functionName: ptr_from_index
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 2
    functionsReached:
    - lookup_dimension
    linkageType: ''
    returnType: char
    signature: 'char *

      ptr_from_index(const Py_buffer *view, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2426,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2429,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2437,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2437,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2439,1
    - Dst: lookup_dimension
      Src: /src/cpython/Objects/memoryobject.c:2441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - view
    - tup
    argTypes:
    - Py_buffer*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2422
    functionDepth: 3
    functionLinenumber: 2422
    functionLinenumberEnd: 2446
    functionName: ptr_from_tuple
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyNumber_AsSsize_t
    - PyTuple_GET_ITEM
    - PyErr_Format
    - lookup_dimension
    linkageType: ''
    returnType: char
    signature: 'char *

      ptr_from_tuple(const Py_buffer *view, PyObject *tup)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2458,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2465,1
    - Dst: ptr_from_index
      Src: /src/cpython/Objects/memoryobject.c:2469,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2472,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - _self
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2451
    functionDepth: 2
    functionLinenumber: 2451
    functionLinenumberEnd: 2478
    functionName: memory_item
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - adjust_fmt
    - unpack_single
    - CHECK_RELEASED
    - PyErr_SetString
    - ptr_from_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_item(PyObject *_self, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2486,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2489,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2491,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2496,1
    - Dst: ptr_from_tuple
      Src: /src/cpython/Objects/memoryobject.c:2500,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - tup
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2481
    functionDepth: 4
    functionLinenumber: 2481
    functionLinenumberEnd: 2504
    functionName: memory_item_multi
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - adjust_fmt
    - unpack_single
    - PyTuple_GET_SIZE
    - CHECK_RELEASED
    - PyErr_SetString
    - ptr_from_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_item_multi(PyMemoryViewObject *self, PyObject *tup)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/memoryobject.c:2511,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/memoryobject.c:2514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - base
    - key
    - dim
    argTypes:
    - Py_buffer*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2506
    functionDepth: 2
    functionLinenumber: 2506
    functionLinenumberEnd: 2533
    functionName: init_slice
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:2540,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2542,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2547,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2535
    functionDepth: 1
    functionLinenumber: 2535
    functionLinenumberEnd: 2552
    functionName: is_multislice
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PySlice_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int is_multislice(PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/memoryobject.c:2559,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2561,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2563,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/memoryobject.c:2564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2569
    functionName: is_multiindex
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - _PyIndex_Check
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t is_multiindex(PyObject *key)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2584,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/memoryobject.c:2587,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2587,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2588,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2591,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:2594,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2597,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/memoryobject.c:2603,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2605,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2606,1
    - Dst: memory_item
      Src: /src/cpython/Objects/memoryobject.c:2608,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2610,1
    - Dst: CHECK_RESTRICTED
      Src: /src/cpython/Objects/memoryobject.c:2611,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:2614,1
    - Dst: init_slice
      Src: /src/cpython/Objects/memoryobject.c:2618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2619,1
    - Dst: init_len
      Src: /src/cpython/Objects/memoryobject.c:2622,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:2623,1
    - Dst: is_multiindex
      Src: /src/cpython/Objects/memoryobject.c:2627,1
    - Dst: memory_item_multi
      Src: /src/cpython/Objects/memoryobject.c:2628,1
    - Dst: is_multislice
      Src: /src/cpython/Objects/memoryobject.c:2630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2631,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2636,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - _self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2577
    functionDepth: 5
    functionLinenumber: 2577
    functionLinenumberEnd: 2638
    functionName: memory_subscript
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyErr_SetString
    - init_flags
    - memory_item
    - memory_item_multi
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - unpack_single
    - Py_DECREF
    - is_multiindex
    - PyTuple_Check
    - init_slice
    - Py_NewRef
    - CHECK_RESTRICTED
    - mbuf_add_view
    - init_len
    - adjust_fmt
    - is_multislice
    - _PyIndex_Check
    - PyNumber_AsSsize_t
    - PySlice_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_subscript(PyObject *_self, PyObject *key)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/cpython/Objects/memoryobject.c:2649,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2651,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2656,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2660,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/memoryobject.c:2665,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2665,1
    - Dst: pack_single
      Src: /src/cpython/Objects/memoryobject.c:2667,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2670,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/memoryobject.c:2676,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2679,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2683,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2684,1
    - Dst: ptr_from_index
      Src: /src/cpython/Objects/memoryobject.c:2686,1
    - Dst: pack_single
      Src: /src/cpython/Objects/memoryobject.c:2689,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2692,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/memoryobject.c:2698,1
    - Dst: init_slice
      Src: /src/cpython/Objects/memoryobject.c:2708,1
    - Dst: copy_single
      Src: /src/cpython/Objects/memoryobject.c:2712,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/memoryobject.c:2715,1
    - Dst: is_multiindex
      Src: /src/cpython/Objects/memoryobject.c:2718,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2720,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2721,1
    - Dst: ptr_from_tuple
      Src: /src/cpython/Objects/memoryobject.c:2725,1
    - Dst: pack_single
      Src: /src/cpython/Objects/memoryobject.c:2728,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2730,1
    - Dst: is_multislice
      Src: /src/cpython/Objects/memoryobject.c:2730,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2733,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2739,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 3
    argNames:
    - _self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2640
    functionDepth: 4
    functionLinenumber: 2640
    functionLinenumberEnd: 2741
    functionName: memory_ass_sub
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - adjust_fmt
    - is_multislice
    - PyTuple_GET_SIZE
    - is_multiindex
    - PyTuple_Check
    - _PyIndex_Check
    - PyErr_SetString
    - PyErr_Occurred
    - ptr_from_index
    - pack_single
    - init_slice
    - PyNumber_AsSsize_t
    - copy_single
    - ptr_from_tuple
    - PyObject_GetBuffer
    - CHECK_RELEASED_INT
    - PyBuffer_Release
    - PySlice_Check
    linkageType: ''
    returnType: int
    signature: int memory_ass_sub(PyObject *_self, PyObject *key, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/cpython/Objects/memoryobject.c:2747,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2753
    functionName: memory_length
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - CHECK_RELEASED_INT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t memory_length(PyObject *_self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/memoryobject.c:2788,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/memoryobject.c:2788,1
    - Dst: PyIter_NextItem
      Src: /src/cpython/Objects/memoryobject.c:2795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2801,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/memoryobject.c:2805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2815,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2816,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2784
    functionDepth: 4
    functionLinenumber: 2784
    functionLinenumberEnd: 2817
    functionName: memoryview_count_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyIter_NextItem
    - PyObject_GetIter
    - PyLong_FromSsize_t
    - _PyObject_CAST
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_count_impl(PyMemoryViewObject *self, PyObject *value)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2843,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2846,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/memoryobject.c:2854,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/memoryobject.c:2858,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/memoryobject.c:2861,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2862,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2863,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/memoryobject.c:2865,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2866,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2867,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/memoryobject.c:2869,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2875,1
    - Dst: memory_item
      Src: /src/cpython/Objects/memoryobject.c:2877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2882,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2883,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/memoryobject.c:2885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2886,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2888,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2899,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - self
    - value
    - start
    - stop
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (stop >= 0)
      pos:
        line_end: 2861
        line_start: 2861
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (0 <= start)
      pos:
        line_end: 2865
        line_start: 2865
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (stop <= n)
      pos:
        line_end: 2862
        line_start: 2862
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (start <= stop)
      pos:
        line_end: 2866
        line_start: 2866
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (index < n)
      pos:
        line_end: 2874
        line_start: 2874
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2903
      start: 2837
    functionDepth: 4
    functionLinenumber: 2837
    functionLinenumberEnd: 2903
    functionName: memoryview_index_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_MAX
    - Py_DECREF
    - CHECK_RELEASED
    - PyErr_SetString
    - _PyObject_CAST
    - PyLong_FromSsize_t
    - PyObject_RichCompareBool
    - memory_item
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmemoryview_index_impl(PyMemoryViewObject *self, PyObject
      *value,\n                      Py_ssize_t start, Py_ssize_t stop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2917,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2917,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:2919,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:2920,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:2924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2916
        line_start: 2916
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2926
      start: 2914
    functionDepth: 1
    functionLinenumber: 2914
    functionLinenumberEnd: 2926
    functionName: fix_struct_error_int
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: int fix_struct_error_int(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct_unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2938,1
    - Dst: struct_unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2944,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/memoryobject.c:2949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2951,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: 2954
      start: 2929
    functionDepth: 4
    functionLinenumber: 2929
    functionLinenumberEnd: 2954
    functionName: struct_unpack_cmp
    functionSourceFile: /src/cpython/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: 2970
      start: 2962
    functionDepth: 0
    functionLinenumber: 2962
    functionLinenumberEnd: 2970
    functionName: CMP_SINGLE
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_SINGLE(p, q, type)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2982,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2983,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2984,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2987,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2990,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2991,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2992,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2995,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2996,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2999,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3000,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3004,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3005,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Objects/memoryobject.c:3013,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Objects/memoryobject.c:3014,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3022,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3026,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3027,1
    - Dst: struct_unpack_cmp
      Src: /src/cpython/Objects/memoryobject.c:3028,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    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: 3025
        line_start: 3025
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (unpack_q)
      pos:
        line_end: 3026
        line_start: 3026
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 3035
      start: 2971
    functionDepth: 5
    functionLinenumber: 2971
    functionLinenumberEnd: 3035
    functionName: unpack_cmp
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - PyFloat_Unpack2
    - CMP_SINGLE
    - struct_unpack_cmp
    - PyErr_SetString
    - assert
    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/cpython/Objects/memoryobject.c:3048,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3049,1
    - Dst: unpack_cmp
      Src: /src/cpython/Objects/memoryobject.c:3050,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: 3056
      start: 3038
    functionDepth: 6
    functionLinenumber: 3038
    functionLinenumberEnd: 3056
    functionName: cmp_base
    functionSourceFile: /src/cpython/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/cpython/Objects/memoryobject.c:3070,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3071,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3072,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3073,1
    - Dst: cmp_base
      Src: /src/cpython/Objects/memoryobject.c:3076,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3083,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3084,1
    - Dst: cmp_rec
      Src: /src/cpython/Objects/memoryobject.c:3085,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: 3069
        line_start: 3069
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (pstrides != NULL)
      pos:
        line_end: 3071
        line_start: 3071
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (shape != NULL)
      pos:
        line_end: 3070
        line_start: 3070
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (qstrides != NULL)
      pos:
        line_end: 3072
        line_start: 3072
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 3094
      start: 3060
    functionDepth: 7
    functionLinenumber: 3060
    functionLinenumberEnd: 3094
    functionName: cmp_rec
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - cmp_rec
    - ADJUST_PTR
    - cmp_base
    - assert
    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/cpython/Objects/memoryobject.c:3110,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/memoryobject.c:3110,1
    - Dst: BASE_INACCESSIBLE
      Src: /src/cpython/Objects/memoryobject.c:3111,1
    - Dst: VIEW_ADDR
      Src: /src/cpython/Objects/memoryobject.c:3115,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/memoryobject.c:3117,1
    - Dst: BASE_INACCESSIBLE
      Src: /src/cpython/Objects/memoryobject.c:3118,1
    - Dst: VIEW_ADDR
      Src: /src/cpython/Objects/memoryobject.c:3122,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/memoryobject.c:3125,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:3126,1
    - Dst: equiv_shape
      Src: /src/cpython/Objects/memoryobject.c:3132,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:3133,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:3139,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:3141,1
    - Dst: struct_get_unpacker
      Src: /src/cpython/Objects/memoryobject.c:3149,1
    - Dst: fix_struct_error_int
      Src: /src/cpython/Objects/memoryobject.c:3151,1
    - Dst: struct_get_unpacker
      Src: /src/cpython/Objects/memoryobject.c:3154,1
    - Dst: fix_struct_error_int
      Src: /src/cpython/Objects/memoryobject.c:3156,1
    - Dst: unpack_cmp
      Src: /src/cpython/Objects/memoryobject.c:3162,1
    - Dst: cmp_base
      Src: /src/cpython/Objects/memoryobject.c:3166,1
    - Dst: cmp_rec
      Src: /src/cpython/Objects/memoryobject.c:3172,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/memoryobject.c:3191,1
    - Dst: unpacker_free
      Src: /src/cpython/Objects/memoryobject.c:3193,1
    - Dst: unpacker_free
      Src: /src/cpython/Objects/memoryobject.c:3194,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/memoryobject.c:3196,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyMemoryView_Check(v))
      pos:
        line_end: 3109
        line_start: 3109
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 3197
      start: 3096
    functionDepth: 8
    functionLinenumber: 3096
    functionLinenumberEnd: 3197
    functionName: memory_richcompare
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - BASE_INACCESSIBLE
    - get_native_fmtchar
    - cmp_rec
    - VIEW_ADDR
    - unpack_cmp
    - fix_struct_error_int
    - PyMemoryView_Check
    - PyObject_GetBuffer
    - cmp_base
    - equiv_shape
    - PyBuffer_Release
    - Py_XNewRef
    - unpacker_free
    - PyErr_Clear
    - struct_get_unpacker
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/cpython/Objects/memoryobject.c:3213,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3216,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:3220,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:3221,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3222,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/memoryobject.c:3226,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3231,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:3232,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:3234,1
    - Dst: buffer_to_contiguous
      Src: /src/cpython/Objects/memoryobject.c:3237,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:3238,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/memoryobject.c:3244,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:3247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3203
    functionDepth: 3
    functionLinenumber: 3203
    functionLinenumberEnd: 3251
    functionName: memory_hash
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - get_native_fmtchar
    - PyErr_SetString
    - Py_HashBuffer
    - buffer_to_contiguous
    - MV_C_CONTIGUOUS
    - PyMem_Free
    - IS_BYTE_FORMAT
    - CHECK_RELEASED_INT
    - PyObject_Hash
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t memory_hash(PyObject *_self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/memoryobject.c:3266,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/memoryobject.c:3268,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:3272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:3274,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:3277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - len
    - vals
    argTypes:
    - int
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3258
    functionDepth: 3
    functionLinenumber: 3258
    functionLinenumberEnd: 3280
    functionName: _IntTupleFromSsizet
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _IntTupleFromSsizet(int len, Py_ssize_t *vals)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3288,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:3292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3282
    functionDepth: 1
    functionLinenumber: 3282
    functionLinenumberEnd: 3293
    functionName: memory_obj_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_obj_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3299,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:3300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3295
    functionDepth: 1
    functionLinenumber: 3295
    functionLinenumberEnd: 3301
    functionName: memory_nbytes_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_nbytes_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3307,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/memoryobject.c:3308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3303
    functionDepth: 2
    functionLinenumber: 3303
    functionLinenumberEnd: 3309
    functionName: memory_format_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_format_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3315,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:3316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3311
    functionDepth: 1
    functionLinenumber: 3311
    functionLinenumberEnd: 3317
    functionName: memory_itemsize_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_itemsize_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3323,1
    - Dst: _IntTupleFromSsizet
      Src: /src/cpython/Objects/memoryobject.c:3324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3319
    functionDepth: 4
    functionLinenumber: 3319
    functionLinenumberEnd: 3325
    functionName: memory_shape_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _IntTupleFromSsizet
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_shape_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3331,1
    - Dst: _IntTupleFromSsizet
      Src: /src/cpython/Objects/memoryobject.c:3332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3333
      start: 3327
    functionDepth: 4
    functionLinenumber: 3327
    functionLinenumberEnd: 3333
    functionName: memory_strides_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _IntTupleFromSsizet
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_strides_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3339,1
    - Dst: _IntTupleFromSsizet
      Src: /src/cpython/Objects/memoryobject.c:3340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3335
    functionDepth: 4
    functionLinenumber: 3335
    functionLinenumberEnd: 3341
    functionName: memory_suboffsets_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _IntTupleFromSsizet
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_suboffsets_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3347,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3343
    functionDepth: 1
    functionLinenumber: 3343
    functionLinenumberEnd: 3349
    functionName: memory_readonly_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_readonly_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3355,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3351
    functionDepth: 1
    functionLinenumber: 3351
    functionLinenumberEnd: 3357
    functionName: memory_ndim_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_ndim_get(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3363,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3364,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3359
    functionDepth: 1
    functionLinenumber: 3359
    functionLinenumberEnd: 3365
    functionName: memory_c_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - MV_C_CONTIGUOUS
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_c_contiguous(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3371,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3372,1
    - Dst: MV_F_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3367
    functionDepth: 1
    functionLinenumber: 3367
    functionLinenumberEnd: 3373
    functionName: memory_f_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - MV_F_CONTIGUOUS
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_f_contiguous(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3379,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3380,1
    - Dst: MV_ANY_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3381
    functionName: memory_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - CHECK_RELEASED
    - MV_ANY_CONTIGUOUS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_contiguous(PyObject *_self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/memoryobject.c:3468,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:3469,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/memoryobject.c:3470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3464
    functionDepth: 0
    functionLinenumber: 3464
    functionLinenumberEnd: 3471
    functionName: memoryiter_dealloc
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void memoryiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/memoryobject.c:3477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3479
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3479
    functionName: memoryiter_traverse
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int memoryiter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3492,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3497,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:3501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:3505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3481
    functionDepth: 1
    functionLinenumber: 3481
    functionLinenumberEnd: 3507
    functionName: memoryiter_next
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - ADJUST_PTR
    - unpack_single
    - Py_DECREF
    - CHECK_RELEASED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryiter_next(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/memoryobject.c:3512,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/memoryobject.c:3513,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3516,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3520,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3524,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:3529,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/memoryobject.c:3535,1
    - Dst: memory_length
      Src: /src/cpython/Objects/memoryobject.c:3540,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:3542,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/memoryobject.c:3543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3509
    functionDepth: 2
    functionLinenumber: 3509
    functionLinenumberEnd: 3545
    functionName: memory_iter
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - adjust_fmt
    - CHECK_RELEASED
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - PyErr_SetString
    - Py_NewRef
    - memory_length
    - PyMemoryView_Check
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_iter(PyObject *seq)'
  - 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: medium_value
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: medium_value(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ival
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: IS_SMALL_INT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SMALL_INT(ival)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ival
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: IS_SMALL_UINT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SMALL_UINT(ival)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:47,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:47,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Objects/longobject.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts:
    - condition: (PyLong_CheckExact(op))
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: _Py_DECREF_INT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _Py_DECREF_SPECIALIZED
    - PyLong_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_DECREF_INT(PyLongObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - stwodigits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: is_medium_int
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_medium_int(stwodigits x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:62,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ival
    argTypes:
    - sdigit
    assertStmts:
    - condition: (IS_SMALL_INT(ival))
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: get_small_int
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - IS_SMALL_INT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_small_int(sdigit ival)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:69,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:70,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:71,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:72,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: maybe_small_long
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - IS_SMALL_INT
    - get_small_int
    - medium_value
    - _Py_DECREF_INT
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      maybe_small_long(PyLongObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PyTryBlock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: SIGCHECK
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGCHECK(PyTryBlock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:127,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:134,1
    - Dst: _PyLong_SetDigitCount
      Src: /src/cpython/Objects/longobject.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: long_normalize
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_SetDigitCount
    - _PyLong_DigitCount
    - _PyLong_SetSignAndDigitCount
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_normalize(PyLongObject *v)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:160,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:163,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/longobject.c:172,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/longobject.c:180,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/longobject.c:183,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/longobject.c:186,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 193
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 193
    functionName: long_alloc
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - _PyLong_SetSignAndDigitCount
    - PyErr_SetString
    - _Py_FREELIST_POP
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_alloc(Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: _PyLong_New
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_alloc
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      _PyLong_New(Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:204,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:206,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:208,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:212,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - negative
    - digit_count
    - digits
    argTypes:
    - int
    - Py_ssize_t
    - digit*
    assertStmts:
    - condition: (digit_count >= 0)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: _PyLong_FromDigits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - _PyLong_SetSignAndDigitCount
    - memcpy
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      _PyLong_FromDigits(int negative, Py_ssize_t digit_count, digit *digits)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:220,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:223,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:224,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:225,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:226,1
    - Dst: _PyLong_CompactSign
      Src: /src/cpython/Objects/longobject.c:228,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:231,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:234,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:235,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:240,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - src
    argTypes:
    - PyLongObject*
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 244
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 244
    functionName: _PyLong_Copy
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - _PyLong_CompactSign
    - _PyLong_SetSignAndDigitCount
    - _PyLong_IsCompact
    - memcpy
    - IS_SMALL_INT
    - get_small_int
    - _PyLong_NonCompactSign
    - _PyLong_DigitCount
    - medium_value
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Copy(PyLongObject *src)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:249,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:249,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:250,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:250,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/longobject.c:252,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/longobject.c:254,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/longobject.c:256,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/longobject.c:259,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - sdigit
    assertStmts:
    - condition: (!IS_SMALL_INT(x))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/cpython/Objects/longobject.c
    - condition: (is_medium_int(x))
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: _PyLong_FromMedium
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - _PyLong_SetSignAndDigitCount
    - is_medium_int
    - IS_SMALL_INT
    - _Py_FREELIST_POP
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromMedium(sdigit x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:272,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:272,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:285,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:292,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:295,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/longobject.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ival
    argTypes:
    - stwodigits
    assertStmts:
    - condition: (!is_medium_int(ival))
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Objects/longobject.c
    - condition: (abs_ival >> PyLong_SHIFT != 0)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 304
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 304
    functionName: _PyLong_FromLarge
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_SetSignAndDigitCount
    - is_medium_int
    - Py_SAFE_DOWNCAST
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromLarge(stwodigits ival)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:310,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:311,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:313,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:314,1
    - Dst: _PyLong_FromMedium
      Src: /src/cpython/Objects/longobject.c:315,1
    - Dst: _PyLong_FromLarge
      Src: /src/cpython/Objects/longobject.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - stwodigits
    assertStmts:
    - condition: (x != 0)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 318
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 318
    functionName: _PyLong_FromSTwoDigits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - is_medium_int
    - IS_SMALL_INT
    - get_small_int
    - _PyLong_FromMedium
    - _PyLong_FromLarge
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      _PyLong_FromSTwoDigits(stwodigits x)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:325,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Objects/longobject.c:326,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:326,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:328,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:329,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/longobject.c:332,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/longobject.c:334,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/longobject.c:338,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:341,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Objects/longobject.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - x
    argTypes:
    - stwodigits
    assertStmts:
    - condition: (x != 0)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: medium_from_stwodigits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - PyObject_Malloc
    - _PyLong_SetSignAndDigitCount
    - PyStackRef_FromPyObjectStealMortal
    - is_medium_int
    - get_small_int
    - IS_SMALL_INT
    - _Py_FREELIST_POP
    - assert
    - PyStackRef_FromPyObjectBorrow
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef medium_from_stwodigits(stwodigits x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:355,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:356,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:360,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x_p
    argTypes:
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 350
    functionDepth: 5
    functionLinenumber: 350
    functionLinenumberEnd: 362
    functionName: _PyLong_Negate
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - medium_value
    - Py_REFCNT
    linkageType: ''
    returnType: void
    signature: void _PyLong_Negate(PyLongObject **x_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - UINT_TYPE
    - ','
    - INT_TYPE
    - ','
    - ival
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: PYLONG_FROM_INT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYLONG_FROM_INT(UINT_TYPE, INT_TYPE, ival)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - INT_TYPE
    - ','
    - ival
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: PYLONG_FROM_UINT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYLONG_FROM_UINT(INT_TYPE, ival)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ival
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: PyLong_FromUnsignedLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnsignedLongLong(unsigned long long ival)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ival
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: PyLong_FromSize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromSize_t(size_t ival)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:477,1
    - Dst: isinf
      Src: /src/cpython/Objects/longobject.c:484,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:485,1
    - Dst: isnan
      Src: /src/cpython/Objects/longobject.c:489,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:490,1
    - Dst: frexp
      Src: /src/cpython/Objects/longobject.c:498,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:499,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:501,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:504,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:509,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - dval
    argTypes:
    - double
    assertStmts:
    - condition: (expo > 0)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 515
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 515
    functionName: PyLong_FromDouble
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 11
    functionsReached:
    - PyErr_SetString
    - isinf
    - _PyLong_FlipSign
    - isnan
    - PyLong_FromLong
    - frexp
    - ldexp
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromDouble(double dval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:532,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - iptr
    argTypes:
    - PyLongObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (ULONG_MAX >= ((1UL << PyLong_SHIFT) - 1))
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Objects/longobject.c
    - condition: (i >= 2)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 551
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 551
    functionName: unroll_digits_ulong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long unroll_digits_ulong(PyLongObject *v, Py_ssize_t *iptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:556,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - iptr
    argTypes:
    - PyLongObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (SIZE_MAX >= ((1UL << PyLong_SHIFT) - 1))
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/cpython/Objects/longobject.c
    - condition: (i >= 2)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 575
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 575
    functionName: unroll_digits_size_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t unroll_digits_size_t(PyLongObject *v, Py_ssize_t *iptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:598,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:602,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:606,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:611,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:613,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:626,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:631,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:632,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:658,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - vv
    - overflow
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 661
    functionName: PyLong_AsLongAndOverflow
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 27
    functionsReached:
    - _PyLong_CompactValue
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - _PyLong_IsCompact
    - PyLong_Check
    - _PyLong_NonCompactSign
    - _PyLong_DigitCount
    - unroll_digits_ulong
    linkageType: ''
    returnType: long
    signature: long PyLong_AsLongAndOverflow(PyObject *vv, int *overflow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:670,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 666
    functionDepth: 3
    functionLinenumber: 666
    functionLinenumberEnd: 678
    functionName: PyLong_AsLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 97
    functionsReached:
    - PyErr_SetString
    - PyLong_AsLongAndOverflow
    linkageType: ''
    returnType: long
    signature: long PyLong_AsLong(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:687,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 696
    functionName: PyLong_AsInt
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 293
    functionsReached:
    - PyErr_SetString
    - PyLong_AsLongAndOverflow
    linkageType: ''
    returnType: int
    signature: int PyLong_AsInt(PyObject *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:708,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:711,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:712,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:717,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:718,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:720,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:721,1
    - Dst: unroll_digits_size_t
      Src: /src/cpython/Objects/longobject.c:723,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:742,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 745
    functionName: PyLong_AsSsize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 136
    functionsReached:
    - _PyLong_CompactValue
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_IsCompact
    - _PyLong_NonCompactSign
    - unroll_digits_size_t
    - _PyLong_DigitCount
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyLong_AsSsize_t(PyObject *vv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:757,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:760,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:761,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:766,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:768,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:775,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:778,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:779,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:783,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:785,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:794,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 798
    functionName: PyLong_AsUnsignedLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 12
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsNegative
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_IsNonNegativeCompact
    - _PyLong_DigitCount
    - unroll_digits_ulong
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyLong_AsUnsignedLong(PyObject *vv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:810,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:813,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:814,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:819,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:820,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:822,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:823,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:827,1
    - Dst: unroll_digits_size_t
      Src: /src/cpython/Objects/longobject.c:829,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:832,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 839
    functionName: PyLong_AsSize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 5
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsNegative
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyLong_Check
    - unroll_digits_size_t
    - _PyLong_IsNonNegativeCompact
    - _PyLong_DigitCount
    linkageType: ''
    returnType: size_t
    signature: size_t PyLong_AsSize_t(PyObject *vv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:850,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:851,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:855,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:857,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:859,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:862,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:863,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 869
    functionName: _PyLong_AsUnsignedLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - PyErr_BadInternalCall
    - _PyLong_IsCompact
    - PyLong_Check
    - _PyLong_NonCompactSign
    - _PyLong_DigitCount
    - unroll_digits_ulong
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _PyLong_AsUnsignedLongMask(PyObject *vv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:878,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:882,1
    - Dst: _PyLong_AsUnsignedLongMask
      Src: /src/cpython/Objects/longobject.c:883,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:886,1
    - Dst: _PyLong_AsUnsignedLongMask
      Src: /src/cpython/Objects/longobject.c:890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 893
    functionName: PyLong_AsUnsignedLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 9
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyLong_AsUnsignedLongMask(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:898,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:899,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:900,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 904
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 904
    functionName: PyLong_IsPositive
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - _PyLong_IsPositive
    - PyLong_Check
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyLong_IsPositive(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:909,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:910,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:911,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 915
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 915
    functionName: PyLong_IsNegative
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 17
    functionsReached:
    - PyLong_Check
    - _PyLong_IsNegative
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyLong_IsNegative(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:920,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:921,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:922,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 926
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 926
    functionName: PyLong_IsZero
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 6
    functionsReached:
    - _PyLong_IsZero
    - PyLong_Check
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyLong_IsZero(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:931,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:932,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:932,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:935,1
    - Dst: _PyLong_CompactSign
      Src: /src/cpython/Objects/longobject.c:936,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (vv != NULL)
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(vv))
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 939
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 939
    functionName: long_sign
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactSign
    - _PyLong_IsCompact
    - PyLong_Check
    - _PyLong_NonCompactSign
    - assert
    linkageType: ''
    returnType: int
    signature: int long_sign(PyObject *vv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_sign
      Src: /src/cpython/Objects/longobject.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 945
    functionName: _PyLong_Sign
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_sign
    linkageType: ''
    returnType: int
    signature: int _PyLong_Sign(PyObject *vv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:950,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:951,1
    - Dst: long_sign
      Src: /src/cpython/Objects/longobject.c:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vv
    - sign
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 957
    functionName: PyLong_GetSign
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 5
    functionsReached:
    - long_sign
    - PyLong_Check
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyLong_GetSign(PyObject *vv, int *sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bit_length
      Src: /src/cpython/Objects/longobject.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 967
    functionName: bit_length_digit
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _Py_bit_length
    linkageType: ''
    returnType: int
    signature: int bit_length_digit(digit x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:977,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:978,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:978,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:979,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:980,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:984,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 976
        line_start: 976
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ndigits == 0 || v->long_value.ob_digit[ndigits - 1] != 0)
      pos:
        line_end: 979
        line_start: 979
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 977
        line_start: 977
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ndigits <= INT64_MAX / PyLong_SHIFT)
      pos:
        line_end: 983
        line_start: 983
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 991
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 991
    functionName: _PyLong_NumBits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 5
    functionsReached:
    - PyLong_Check
    - bit_length_digit
    - _PyLong_DigitCount
    - assert
    linkageType: ''
    returnType: int64_t
    signature: int64_t _PyLong_NumBits(PyObject *vv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:1006,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:1048,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1077,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1082,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1085,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1087,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:1097,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:1098,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:1098,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 4
    argNames:
    - bytes
    - n
    - little_endian
    - is_signed
    argTypes:
    - unsigned char*
    - size_t
    - int
    - int
    assertStmts:
    - condition: (accumbits < PyLong_SHIFT)
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/cpython/Objects/longobject.c
    - condition: (idigit < ndigits)
      pos:
        line_end: 1076
        line_start: 1076
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits < PyLong_SHIFT)
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/cpython/Objects/longobject.c
    - condition: (idigit < ndigits)
      pos:
        line_end: 1086
        line_start: 1086
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1099
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 1099
    functionName: _PyLong_FromByteArray
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - _PyLong_SetSignAndDigitCount
    - long_normalize
    - maybe_small_long
    - PyLong_FromLong
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyLong_FromByteArray(const unsigned char* bytes, size_t
      n,\n                      int little_endian, int is_signed)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1117,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1117,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:1119,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1120,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1123,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1152,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1197,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1198,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1219,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1237,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 6
    argNames:
    - v
    - bytes
    - n
    - little_endian
    - is_signed
    - with_exceptions
    argTypes:
    - PyLongObject*
    - unsigned char*
    - size_t
    - int
    - int
    - int
    assertStmts:
    - condition: (v != NULL && PyLong_Check(v))
      pos:
        line_end: 1116
        line_start: 1116
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ndigits == 0 || v->long_value.ob_digit[ndigits - 1] != 0)
      pos:
        line_end: 1151
        line_start: 1151
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits < 8)
      pos:
        line_end: 1196
        line_start: 1196
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry == 0)
      pos:
        line_end: 1197
        line_start: 1197
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits == 0)
      pos:
        line_end: 1218
        line_start: 1218
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1241
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1241
    functionName: _PyLong_AsByteArray
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 11
    functionsReached:
    - _PyLong_IsNegative
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_DigitCount
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyLong_AsByteArray(PyLongObject* v,\n                    unsigned
      char* bytes, size_t n,\n                    int little_endian, int is_signed,\n
      \                   int with_exceptions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1254
    functionName: _fits_in_n_bits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _fits_in_n_bits(Py_ssize_t v, Py_ssize_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - endianness
    argTypes:
    - int*
    assertStmts:
    - condition: (*endianness == 0 || *endianness == 1)
      pos:
        line_end: 1263
        line_start: 1263
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1266
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1266
    functionName: _resolve_endianness
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _resolve_endianness(int *endianness)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1280,1
    - Dst: _resolve_endianness
      Src: /src/cpython/Objects/longobject.c:1285,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1289,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1293,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:1300,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1308,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1313,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1315,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1326,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1340,1
    - Dst: _fits_in_n_bits
      Src: /src/cpython/Objects/longobject.c:1345,1
    - Dst: _fits_in_n_bits
      Src: /src/cpython/Objects/longobject.c:1347,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1362,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:1363,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:1385,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1386,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:1393,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Objects/longobject.c:1398,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1399,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1446,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 119
    argCount: 4
    argNames:
    - vv
    - buffer
    - n
    - flags
    argTypes:
    - PyObject*
    - void*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (nb >= 0)
      pos:
        line_end: 1398
        line_start: 1398
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1450
      start: 1268
    functionDepth: 3
    functionLinenumber: 1268
    functionLinenumberEnd: 1450
    functionName: PyLong_AsNativeBytes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 24
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsNegative
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_IsCompact
    - memset
    - _PyLong_NumBits
    - _PyLong_AsByteArray
    - _fits_in_n_bits
    - PyErr_Format
    - memcpy
    - _resolve_endianness
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyLong_AsNativeBytes(PyObject* vv, void* buffer, Py_ssize_t
      n, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1457,1
    - Dst: _resolve_endianness
      Src: /src/cpython/Objects/longobject.c:1462,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:1466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - buffer
    - n
    - flags
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1453
    functionDepth: 4
    functionLinenumber: 1453
    functionLinenumberEnd: 1472
    functionName: PyLong_FromNativeBytes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - _PyLong_FromByteArray
    - _resolve_endianness
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromNativeBytes(const void* buffer, size_t n, int flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1479,1
    - Dst: _resolve_endianness
      Src: /src/cpython/Objects/longobject.c:1484,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:1488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buffer
    - n
    - flags
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1475
    functionDepth: 4
    functionLinenumber: 1475
    functionLinenumberEnd: 1489
    functionName: PyLong_FromUnsignedNativeBytes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - PyErr_BadInternalCall
    - _PyLong_FromByteArray
    - _resolve_endianness
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnsignedNativeBytes(const void* buffer, size_t n, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Objects/longobject.c:1498,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Objects/longobject.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1507
    functionName: PyLong_FromVoidPtr
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 33
    functionsReached:
    - PyLong_FromUnsignedLongLong
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromVoidPtr(void *p)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1517,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1517,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/longobject.c:1518,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Objects/longobject.c:1521,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1530,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1530,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/longobject.c:1531,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Objects/longobject.c:1534,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:1539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1511
    functionDepth: 4
    functionLinenumber: 1511
    functionLinenumberEnd: 1542
    functionName: PyLong_AsVoidPtr
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 47
    functionsReached:
    - _PyLong_IsNegative
    - PyLong_AsLongLong
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - PyLong_AsUnsignedLongLong
    linkageType: ''
    returnType: void
    signature: 'void *

      PyLong_AsVoidPtr(PyObject *vv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ival
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1556
    functionName: PyLong_FromLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromLongLong(long long ival)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ival
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1564
    functionName: PyLong_FromSsize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 164
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromSsize_t(Py_ssize_t ival)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1578,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1582,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1586,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1592,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1594,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:1597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1609
    functionName: PyLong_AsLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 17
    functionsReached:
    - _PyLong_CompactValue
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - _PyLong_IsCompact
    - PyLong_Check
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: long long
    signature: long long PyLong_AsLongLong(PyObject *vv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1622,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1625,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1626,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:1631,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1634,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1637,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1643,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:1647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1614
    functionDepth: 2
    functionLinenumber: 1614
    functionLinenumberEnd: 1656
    functionName: PyLong_AsUnsignedLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 11
    functionsReached:
    - _PyLong_CompactValue
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_AsByteArray
    - _PyLong_IsNonNegativeCompact
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long PyLong_AsUnsignedLongLong(PyObject *vv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1668,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1669,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1673,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1675,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1677,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:1680,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:1681,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:1682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1687
    functionName: _PyLong_AsUnsignedLongLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - PyErr_BadInternalCall
    - _PyLong_IsCompact
    - PyLong_Check
    - _PyLong_NonCompactSign
    - _PyLong_DigitCount
    - unroll_digits_ulong
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long _PyLong_AsUnsignedLongLongMask(PyObject *vv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1696,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1700,1
    - Dst: _PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Objects/longobject.c:1701,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1704,1
    - Dst: _PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Objects/longobject.c:1708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1711
    functionName: PyLong_AsUnsignedLongLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 6
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_AsUnsignedLongLongMask
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long PyLong_AsUnsignedLongLongMask(PyObject *op)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1735,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1739,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1743,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1748,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1750,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1763,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:1767,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:1768,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:1769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1794,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 2
    argNames:
    - vv
    - overflow
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1797
    functionName: PyLong_AsLongLongAndOverflow
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - _PyLong_CompactValue
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - _PyLong_IsCompact
    - PyLong_Check
    - _PyLong_NonCompactSign
    - _PyLong_DigitCount
    - unroll_digits_ulong
    linkageType: ''
    returnType: long long
    signature: long long PyLong_AsLongLongAndOverflow(PyObject *vv, int *overflow)
  - 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: 1818
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1818
    functionName: UNSIGNED_INT_CONVERTER
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSIGNED_INT_CONVERTER(NAME, TYPE)
  - 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: 1835
      start: 1830
    functionDepth: 0
    functionLinenumber: 1830
    functionLinenumberEnd: 1835
    functionName: CHECK_BINOP
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_BINOP(v,w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1846,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1851,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1857,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: 1845
        line_start: 1845
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((carry & 1) == carry)
      pos:
        line_end: 1856
        line_start: 1856
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((carry & 1) == carry)
      pos:
        line_end: 1850
        line_start: 1850
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1860
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1860
    functionName: v_iadd
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:1872,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: 1871
        line_start: 1871
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1886
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1886
    functionName: v_isub
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:1897,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: 1896
        line_start: 1896
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1904
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1904
    functionName: v_lshift
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:1916,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: 1915
        line_start: 1915
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1923
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1923
    functionName: v_rshift
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:1951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pout
    - pin
    - size
    - n
    argTypes:
    - digit*
    - digit*
    - Py_ssize_t
    - digit
    assertStmts:
    - condition: (n > 0 && n <= PyLong_MASK)
      pos:
        line_end: 1950
        line_start: 1950
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1961
      start: 1946
    functionDepth: 0
    functionLinenumber: 1946
    functionLinenumberEnd: 1961
    functionName: inplace_divrem1
    functionSourceFile: /src/cpython/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: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:1971,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1974,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:1975,1
    - Dst: inplace_divrem1
      Src: /src/cpython/Objects/longobject.c:1978,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:1979,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: 1973
        line_start: 1973
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1980
      start: 1968
    functionDepth: 3
    functionLinenumber: 1968
    functionLinenumberEnd: 1980
    functionName: divrem1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - inplace_divrem1
    - long_normalize
    - _PyLong_DigitCount
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      divrem1(PyLongObject *a, digit n, digit *prem)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - pin
    - size
    - n
    argTypes:
    - digit*
    - Py_ssize_t
    - digit
    assertStmts:
    - condition: (n > 0 && n <= PyLong_MASK)
      pos:
        line_end: 1989
        line_start: 1989
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1994
      start: 1985
    functionDepth: 0
    functionLinenumber: 1985
    functionLinenumberEnd: 1994
    functionName: inplace_rem1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: digit
    signature: digit inplace_rem1(digit *pin, Py_ssize_t size, digit n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2003,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2005,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:2006,1
    - Dst: inplace_rem1
      Src: /src/cpython/Objects/longobject.c:2007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyLongObject*
    - digit
    assertStmts:
    - condition: (n > 0 && n <= PyLong_MASK)
      pos:
        line_end: 2004
        line_start: 2004
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2009
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2009
    functionName: rem1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - assert
    - inplace_rem1
    - _PyLong_DigitCount
    - PyLong_FromLong
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      rem1(PyLongObject *a, digit n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/longobject.c:2021,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/longobject.c:2025,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/longobject.c:2029,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2030,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/longobject.c:2035,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2036,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/longobject.c:2039,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/longobject.c:2045,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/longobject.c:2046,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/longobject.c:2047,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2048,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/longobject.c:2054,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:2061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2066,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:2067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2072,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 5
    argNames:
    - aa
    - p_output
    - writer
    - bytes_writer
    - bytes_str
    argTypes:
    - PyObject*
    - PyObject**
    - _PyUnicodeWriter*
    - _PyBytesWriter*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2013
    functionDepth: 8
    functionLinenumber: 2013
    functionLinenumberEnd: 2074
    functionName: pylong_int_to_decimal_string
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_XDECREF
    - Py_DECREF
    - PyErr_SetString
    - PyUnicode_READ
    - PyObject_CallMethod
    - _PyBytesWriter_Prepare
    - PyImport_ImportModule
    - Py_NewRef
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Prepare
    linkageType: ''
    returnType: int
    signature: "int pylong_int_to_decimal_string(PyObject *aa,\n                             PyObject
      **p_output,\n                             _PyUnicodeWriter *writer,\n                             _PyBytesWriter
      *bytes_writer,\n                             char **bytes_str)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2096,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:2099,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:2100,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2103,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:2104,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/longobject.c:2113,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:2117,1
    - Dst: pylong_int_to_decimal_string
      Src: /src/cpython/Objects/longobject.c:2126,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2150,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2152,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:2175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2176,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/longobject.c:2194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2198,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:2199,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2206,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2213,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/longobject.c:2218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2220,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 5
    argNames:
    - aa
    - p_output
    - writer
    - bytes_writer
    - bytes_str
    argTypes:
    - PyObject*
    - PyObject**
    - _PyUnicodeWriter*
    - _PyBytesWriter*
    - char**
    assertStmts:
    - condition: (writer == NULL || bytes_writer == NULL)
      pos:
        line_end: 2095
        line_start: 2095
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_a < PY_SSIZE_T_MAX/2)
      pos:
        line_end: 2149
        line_start: 2149
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2246
      start: 2081
    functionDepth: 9
    functionLinenumber: 2081
    functionLinenumberEnd: 2246
    functionName: long_to_decimal_string_internal
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - Py_DECREF
    - SIGCHECK
    - PyErr_BadInternalCall
    - _PyUnicodeWriter_Prepare
    - PyLong_Check
    - _PyInterpreterState_GET
    - _PyBytesWriter_Prepare
    - pylong_int_to_decimal_string
    - PyUnicode_New
    - _PyLong_DigitCount
    - PyErr_Format
    - long_alloc
    - assert
    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: 2228
      start: 2225
    functionDepth: 0
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: WRITE_DIGITS
    functionSourceFile: /src/cpython/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: 2257
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2257
    functionName: WRITE_UNICODE_DIGITS
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:2308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aa
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2304
    functionDepth: 10
    functionLinenumber: 2304
    functionLinenumberEnd: 2311
    functionName: long_to_decimal_string
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:2330,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2332,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:2333,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:2334,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2337,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:2338,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/longobject.c:2352,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2363,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:2368,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2378,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2382,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/longobject.c:2387,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2405,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    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: 2329
        line_start: 2329
        source_file: /src/cpython/Objects/longobject.c
    - condition: (writer == NULL || bytes_writer == NULL)
      pos:
        line_end: 2331
        line_start: 2331
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits >= bits)
      pos:
        line_end: 2404
        line_start: 2404
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2415
      start: 2318
    functionDepth: 8
    functionLinenumber: 2318
    functionLinenumberEnd: 2415
    functionName: long_format_binary
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - _PyLong_IsNegative
    - bit_length_digit
    - _PyUnicodeWriter_Prepare
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyLong_Check
    - _PyBytesWriter_Prepare
    - _PyLong_DigitCount
    - PyUnicode_New
    - assert
    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: 2398
      start: 2392
    functionDepth: 0
    functionLinenumber: 2392
    functionLinenumberEnd: 2398
    functionName: WRITE_DIGITS
    functionSourceFile: /src/cpython/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: 2444
      start: 2430
    functionDepth: 0
    functionLinenumber: 2430
    functionLinenumberEnd: 2444
    functionName: WRITE_UNICODE_DIGITS
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:2489,1
    - Dst: long_format_binary
      Src: /src/cpython/Objects/longobject.c:2491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2483
    functionDepth: 10
    functionLinenumber: 2483
    functionLinenumberEnd: 2495
    functionName: _PyLong_Format
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:2503,1
    - Dst: long_format_binary
      Src: /src/cpython/Objects/longobject.c:2506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - writer
    - obj
    - base
    - alternate
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2497
    functionDepth: 10
    functionLinenumber: 2497
    functionLinenumberEnd: 2508
    functionName: _PyLong_FormatWriter
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 4
    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/cpython/Objects/longobject.c:2519,1
    - Dst: long_format_binary
      Src: /src/cpython/Objects/longobject.c:2522,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2526,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: 2525
        line_start: 2525
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2528
      start: 2510
    functionDepth: 10
    functionLinenumber: 2510
    functionLinenumberEnd: 2528
    functionName: _PyLong_FormatBytesWriter
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - long_format_binary
    - long_to_decimal_string_internal
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\n_PyLong_FormatBytesWriter(_PyBytesWriter *writer, char *str,\n
      \                         PyObject *obj,\n                          int base,
      int alternate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2580,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2589,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2595,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/longobject.c:2612,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2613,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2618,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2621,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2625,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2627,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - start
    - end
    - digits
    - base
    - res
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - int
    - PyLongObject**
    assertStmts:
    - condition: (base >= 2 && base <= 32 && (base & (base - 1)) == 0)
      pos:
        line_end: 2579
        line_start: 2579
        source_file: /src/cpython/Objects/longobject.c
    - condition: (k >= 0 && k < base)
      pos:
        line_end: 2612
        line_start: 2612
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pdigit - z->long_value.ob_digit <= n)
      pos:
        line_end: 2617
        line_start: 2617
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bits_in_accum < PyLong_SHIFT)
      pos:
        line_end: 2620
        line_start: 2620
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bits_in_accum <= PyLong_SHIFT)
      pos:
        line_end: 2624
        line_start: 2624
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pdigit - z->long_value.ob_digit <= n)
      pos:
        line_end: 2626
        line_start: 2626
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2633
      start: 2569
    functionDepth: 3
    functionLinenumber: 2569
    functionLinenumberEnd: 2633
    functionName: long_from_binary_base
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_CHARMASK
    - long_alloc
    - assert
    linkageType: ''
    returnType: int
    signature: int long_from_binary_base(const char *start, const char *end, Py_ssize_t
      digits, int base, PyLongObject **res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/longobject.c:2640,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/longobject.c:2644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2646,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/longobject.c:2649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2651,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:2655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2656,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - start
    - end
    - res
    argTypes:
    - char*
    - char*
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2637
    functionDepth: 5
    functionLinenumber: 2637
    functionLinenumberEnd: 2666
    functionName: pylong_int_from_string
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - PyErr_SetString
    - PyLong_Check
    - PyObject_CallMethod
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int pylong_int_from_string(const char *start, const char *end, PyLongObject
      **res)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2821,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2831,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2839,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2840,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:2845,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/longobject.c:2861,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/longobject.c:2868,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2869,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2885,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2893,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2894,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2896,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:2896,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:2897,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2897,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2902,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2902,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2905,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:2909,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:2912,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 5
    argNames:
    - start
    - end
    - digits
    - base
    - res
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - int
    - PyLongObject**
    assertStmts:
    - condition: (size_z > 0)
      pos:
        line_end: 2838
        line_start: 2838
        source_file: /src/cpython/Objects/longobject.c
    - condition: (c < PyLong_BASE)
      pos:
        line_end: 2868
        line_start: 2868
        source_file: /src/cpython/Objects/longobject.c
    - condition: (c < PyLong_BASE)
      pos:
        line_end: 2892
        line_start: 2892
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(z))
      pos:
        line_end: 2895
        line_start: 2895
        source_file: /src/cpython/Objects/longobject.c
    - condition: (log_base_BASE[base] != 0.0)
      pos:
        line_end: 2820
        line_start: 2820
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(z) == size_z)
      pos:
        line_end: 2901
        line_start: 2901
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2920
      start: 2809
    functionDepth: 3
    functionLinenumber: 2809
    functionLinenumberEnd: 2920
    functionName: long_from_non_binary_base
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - Py_DECREF
    - _PyLong_SetSignAndDigitCount
    - PyErr_SetString
    - Py_CHARMASK
    - Py_SETREF
    - _PyLong_DigitCount
    - memcpy
    - long_alloc
    - assert
    linkageType: ''
    returnType: int
    signature: int long_from_non_binary_base(const char *start, const char *end, Py_ssize_t
      digits, int base, PyLongObject **res)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/longobject.c:2962,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/longobject.c:2986,1
    - Dst: long_from_binary_base
      Src: /src/cpython/Objects/longobject.c:3000,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/longobject.c:3006,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3009,1
    - Dst: pylong_int_from_string
      Src: /src/cpython/Objects/longobject.c:3018,1
    - Dst: long_from_non_binary_base
      Src: /src/cpython/Objects/longobject.c:3022,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 3
    argNames:
    - str
    - base
    - res
    argTypes:
    - char**
    - int
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3024
      start: 2941
    functionDepth: 6
    functionLinenumber: 2941
    functionLinenumberEnd: 3024
    functionName: long_from_string_base
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_from_non_binary_base
    - long_from_binary_base
    - Py_CHARMASK
    - _PyInterpreterState_GET
    - pylong_int_from_string
    - PyErr_Format
    - Py_ISSPACE
    linkageType: ''
    returnType: int
    signature: int long_from_string_base(const char **str, int base, PyLongObject
      **res)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3044,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/longobject.c:3048,1
    - Dst: long_from_string_base
      Src: /src/cpython/Objects/longobject.c:3090,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3104,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:3113,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3115,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3116,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3127,1
    - Dst: strlen
      Src: /src/cpython/Objects/longobject.c:3128,1
    - Dst: strlen
      Src: /src/cpython/Objects/longobject.c:3128,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/longobject.c:3129,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3136,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 75
    argCount: 3
    argNames:
    - str
    - pend
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3034
    functionDepth: 7
    functionLinenumber: 3034
    functionLinenumberEnd: 3138
    functionName: PyLong_FromString
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - Py_XDECREF
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - strlen
    - PyErr_SetString
    - long_normalize
    - _PyLong_FlipSign
    - maybe_small_long
    - PyErr_Format
    - _PyLong_IsZero
    - long_from_string_base
    - Py_ISSPACE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromString(const char *str, char **pend, int base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromString
      Src: /src/cpython/Objects/longobject.c:3151,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3154,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/longobject.c:3155,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/longobject.c:3155,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - s
    - len
    - base
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3163
      start: 3145
    functionDepth: 8
    functionLinenumber: 3145
    functionLinenumberEnd: 3163
    functionName: _PyLong_FromBytes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - PyLong_FromString
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromBytes(const char *s, Py_ssize_t len, int base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/cpython/Objects/longobject.c:3173,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3176,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/longobject.c:3176,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/longobject.c:3178,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3179,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Objects/longobject.c:3181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3187,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - u
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(asciidig))
      pos:
        line_end: 3175
        line_start: 3175
        source_file: /src/cpython/Objects/longobject.c
    - condition: (buffer != NULL)
      pos:
        line_end: 3178
        line_start: 3178
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3192
      start: 3165
    functionDepth: 8
    functionLinenumber: 3165
    functionLinenumberEnd: 3192
    functionName: PyLong_FromUnicodeObject
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - PyUnicode_IS_ASCII
    - PyLong_FromString
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnicodeObject(PyObject *u, int base)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3200,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3200,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3204,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:3211,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:3215,1
    - Dst: divrem1
      Src: /src/cpython/Objects/longobject.c:3220,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:3223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3225,1
    - Dst: x_divrem
      Src: /src/cpython/Objects/longobject.c:3230,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3231,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3239,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3239,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:3240,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:3242,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3246,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3246,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:3247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3249,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:3250,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3254,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - a
    - b
    - pdiv
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3196
    functionDepth: 6
    functionLinenumber: 3196
    functionLinenumberEnd: 3256
    functionName: long_divrem
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - Py_DECREF
    - _PyLong_IsNegative
    - _PyLong_Negate
    - PyErr_SetString
    - long_long
    - divrem1
    - maybe_small_long
    - _PyLong_DigitCount
    - PyLong_FromLong
    - x_divrem
    - _PyLong_IsZero
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int long_divrem(PyLongObject *a, PyLongObject *b,\n            PyLongObject
      **pdiv, PyLongObject **prem)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3263,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3263,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3266,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:3274,1
    - Dst: rem1
      Src: /src/cpython/Objects/longobject.c:3278,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3284,1
    - Dst: x_divrem
      Src: /src/cpython/Objects/longobject.c:3284,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3285,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3290,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3290,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:3291,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:3293,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - a
    - b
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3298
      start: 3260
    functionDepth: 6
    functionLinenumber: 3260
    functionLinenumberEnd: 3298
    functionName: long_rem
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - rem1
    - Py_XDECREF
    - _PyLong_IsNegative
    - _PyLong_Negate
    - PyErr_SetString
    - long_long
    - maybe_small_long
    - _PyLong_DigitCount
    - x_divrem
    - _PyLong_IsZero
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int long_rem(PyLongObject *a, PyLongObject *b, PyLongObject **prem)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3321,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3322,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3323,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3324,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3331,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:3338,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:3339,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3340,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:3341,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3350,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3354,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:3366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3369,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3376,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3394,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Objects/longobject.c:3404,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3409,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3421,1
    - Dst: v_rshift
      Src: /src/cpython/Objects/longobject.c:3426,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3428,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3430,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3431,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 80
    argCount: 3
    argNames:
    - v1
    - w1
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    assertStmts:
    - condition: (vtop <= wm1)
      pos:
        line_end: 3375
        line_start: 3375
        source_file: /src/cpython/Objects/longobject.c
    - condition: (q <= PyLong_BASE)
      pos:
        line_end: 3393
        line_start: 3393
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((sdigit)vtop + zhi == -1 || (sdigit)vtop + zhi == 0)
      pos:
        line_end: 3408
        line_start: 3408
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry==0)
      pos:
        line_end: 3426
        line_start: 3426
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry == 0)
      pos:
        line_end: 3339
        line_start: 3339
        source_file: /src/cpython/Objects/longobject.c
    - condition: (k >= 0)
      pos:
        line_end: 3349
        line_start: 3349
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_v >= size_w && size_w >= 2)
      pos:
        line_end: 3322
        line_start: 3322
        source_file: /src/cpython/Objects/longobject.c
    - condition: (q < PyLong_BASE)
      pos:
        line_end: 3420
        line_start: 3420
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3432
      start: 3303
    functionDepth: 3
    functionLinenumber: 3303
    functionLinenumberEnd: 3432
    functionName: x_divrem
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - bit_length_digit
    - Py_DECREF
    - SIGCHECK
    - long_normalize
    - v_lshift
    - v_rshift
    - Py_ARITHMETIC_RIGHT_SHIFT
    - _PyLong_DigitCount
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_divrem(PyLongObject *v1, PyLongObject *w1, PyLongObject **prem)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3461,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Objects/longobject.c:3467,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:3498,1
    - Dst: v_rshift
      Src: /src/cpython/Objects/longobject.c:3506,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3522,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/longobject.c:3522,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3533,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - PyLongObject*
    - int64_t*
    assertStmts:
    - condition: (1 <= x_size && x_size <= (Py_ssize_t)Py_ARRAY_LENGTH(x_digits))
      pos:
        line_end: 3521
        line_start: 3521
        source_file: /src/cpython/Objects/longobject.c
    - condition: (a_bits < INT64_MAX)
      pos:
        line_end: 3532
        line_start: 3532
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3540
      start: 3446
    functionDepth: 3
    functionLinenumber: 3446
    functionLinenumberEnd: 3540
    functionName: _PyLong_Frexp
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - _PyLong_IsNegative
    - _PyLong_NumBits
    - v_lshift
    - v_rshift
    - _PyLong_DigitCount
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: double
    signature: double _PyLong_Frexp(PyLongObject *a, int64_t *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:3552,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:3555,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3556,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3559,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3564,1
    - Dst: _PyLong_Frexp
      Src: /src/cpython/Objects/longobject.c:3566,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3567,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3568,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:3568,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3570,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:3574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (exponent >= 0)
      pos:
        line_end: 3566
        line_start: 3566
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3567
        line_start: 3567
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3575
      start: 3545
    functionDepth: 4
    functionLinenumber: 3545
    functionLinenumberEnd: 3575
    functionName: PyLong_AsDouble
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 9
    functionsReached:
    - _PyLong_Frexp
    - PyErr_Occurred
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyLong_Check
    - _PyLong_IsCompact
    - medium_value
    - ldexp
    - assert
    linkageType: ''
    returnType: double
    signature: double PyLong_AsDouble(PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3586,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:3587,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:3587,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:3589,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:3589,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3591,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3583
    functionDepth: 1
    functionLinenumber: 3583
    functionLinenumberEnd: 3602
    functionName: long_compare
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsNegative
    - _PyLong_BothAreCompact
    - _PyLong_DigitCount
    - _PyLong_SignedDigitCount
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t long_compare(PyLongObject *a, PyLongObject *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:3608,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:3612,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/longobject.c:3613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3604
    functionDepth: 2
    functionLinenumber: 3604
    functionLinenumberEnd: 3614
    functionName: long_richcompare
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - long_compare
    - CHECK_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3622,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:3622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: ((!is_small_int) || PyLong_CheckExact(op))
      pos:
        line_end: 3621
        line_start: 3621
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3624
      start: 3616
    functionDepth: 1
    functionLinenumber: 3616
    functionLinenumberEnd: 3624
    functionName: _long_is_small_int
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: int _long_is_small_int(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3629,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:3629,1
    - Dst: _long_is_small_int
      Src: /src/cpython/Objects/longobject.c:3630,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/longobject.c:3632,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3635,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/longobject.c:3636,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/longobject.c:3639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_CheckExact(self))
      pos:
        line_end: 3628
        line_start: 3628
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3640
      start: 3626
    functionDepth: 3
    functionLinenumber: 3626
    functionLinenumberEnd: 3640
    functionName: _PyLong_ExactDealloc
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - _PyLong_IsCompact
    - _Py_SetImmortal
    - PyLong_CheckExact
    - _long_is_small_int
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyLong_ExactDealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _long_is_small_int
      Src: /src/cpython/Objects/longobject.c:3645,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/longobject.c:3652,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:3655,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3655,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/longobject.c:3656,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/longobject.c:3659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3660
      start: 3642
    functionDepth: 3
    functionLinenumber: 3642
    functionLinenumberEnd: 3660
    functionName: long_dealloc
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - _Py_SetImmortal
    - Py_TYPE
    - PyLong_CheckExact
    - _long_is_small_int
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void long_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3670,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:3671,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3677,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:3678,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3716
      start: 3662
    functionDepth: 1
    functionLinenumber: 3662
    functionLinenumberEnd: 3716
    functionName: long_hash
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - _PyLong_CompactValue
    - _PyLong_DigitCount
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t long_hash(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3724,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3724,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3736,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3721
    functionDepth: 3
    functionLinenumber: 3721
    functionLinenumberEnd: 3751
    functionName: x_add
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_normalize
    - long_alloc
    - _PyLong_DigitCount
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_add(PyLongObject *a, PyLongObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3758,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3758,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:3778,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3785,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3802,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:3804,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3806,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3806,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (borrow == 0)
      pos:
        line_end: 3801
        line_start: 3801
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3807
      start: 3755
    functionDepth: 3
    functionLinenumber: 3755
    functionLinenumberEnd: 3807
    functionName: x_sub
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_normalize
    - _PyLong_FlipSign
    - maybe_small_long
    - _PyLong_DigitCount
    - PyLong_FromLong
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_sub(PyLongObject *a, PyLongObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3812,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3813,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3813,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:3814,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3818,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3819,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3820,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3826,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:3826,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:3827,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3831,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3834,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3835,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3837,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_REFCNT(z) == 1)
      pos:
        line_end: 3825
        line_start: 3825
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3840
      start: 3809
    functionDepth: 5
    functionLinenumber: 3809
    functionLinenumberEnd: 3840
    functionName: long_add
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - x_sub
    - x_add
    - _PyLong_BothAreCompact
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - medium_value
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_add(PyLongObject *a, PyLongObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3845,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3845,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3846,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3846,1
    - Dst: medium_from_stwodigits
      Src: /src/cpython/Objects/longobject.c:3847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_BothAreCompact(a, b))
      pos:
        line_end: 3844
        line_start: 3844
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3848
      start: 3842
    functionDepth: 3
    functionLinenumber: 3842
    functionLinenumberEnd: 3848
    functionName: _PyCompactLong_Add
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - medium_value
    - medium_from_stwodigits
    - _PyLong_BothAreCompact
    - assert
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _PyCompactLong_Add(PyLongObject *a, PyLongObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:3853,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:3854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3850
    functionDepth: 6
    functionLinenumber: 3850
    functionLinenumberEnd: 3855
    functionName: long_add_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_add
    - CHECK_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_add_method(PyObject *a, PyObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3861,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:3862,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3862,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3862,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3866,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3867,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3868,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3871,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3873,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3873,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:3873,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:3874,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3879,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3880,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_IsZero(z) || Py_REFCNT(z) == 1)
      pos:
        line_end: 3872
        line_start: 3872
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3885
      start: 3858
    functionDepth: 5
    functionLinenumber: 3858
    functionLinenumberEnd: 3885
    functionName: long_sub
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - x_sub
    - x_add
    - _PyLong_BothAreCompact
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - medium_value
    - _PyLong_IsZero
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_sub(PyLongObject *a, PyLongObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3890,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3890,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3891,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3891,1
    - Dst: medium_from_stwodigits
      Src: /src/cpython/Objects/longobject.c:3892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_BothAreCompact(a, b))
      pos:
        line_end: 3889
        line_start: 3889
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3893
      start: 3887
    functionDepth: 3
    functionLinenumber: 3887
    functionLinenumberEnd: 3893
    functionName: _PyCompactLong_Subtract
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - medium_value
    - medium_from_stwodigits
    - _PyLong_BothAreCompact
    - assert
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _PyCompactLong_Subtract(PyLongObject *a, PyLongObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:3898,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:3899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3895
    functionDepth: 6
    functionLinenumber: 3895
    functionLinenumberEnd: 3900
    functionName: long_sub_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_sub
    - CHECK_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_sub_method(PyObject *a, PyObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3910,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3911,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3914,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:3918,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3918,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:3933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3934,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3941,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3951,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3958,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3970,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3971,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:3985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3986,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3994,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3998,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4001,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (*pz <= 1)
      pos:
        line_end: 3957
        line_start: 3957
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((carry >> PyLong_SHIFT) == 0)
      pos:
        line_end: 3997
        line_start: 3997
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pz[1] == 0)
      pos:
        line_end: 3970
        line_start: 3970
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry <= PyLong_MASK)
      pos:
        line_end: 3940
        line_start: 3940
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry == 1)
      pos:
        line_end: 3969
        line_start: 3969
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry <= PyLong_MASK)
      pos:
        line_end: 3993
        line_start: 3993
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry <= (PyLong_MASK << 1))
      pos:
        line_end: 3950
        line_start: 3950
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4002
      start: 3906
    functionDepth: 3
    functionLinenumber: 3906
    functionLinenumberEnd: 4002
    functionName: x_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - SIGCHECK
    - long_normalize
    - memset
    - _PyLong_DigitCount
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4019,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/longobject.c:4021,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4024,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4027,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4031,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4032,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4034,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4035,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: 4037
      start: 4011
    functionDepth: 3
    functionLinenumber: 4011
    functionLinenumberEnd: 4037
    functionName: kmul_split
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_DECREF
    - long_normalize
    - _PyLong_DigitCount
    - memcpy
    - long_alloc
    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: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4048,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4049,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:4084,1
    - Dst: x_mul
      Src: /src/cpython/Objects/longobject.c:4086,1
    - Dst: k_lopsided_mul
      Src: /src/cpython/Objects/longobject.c:4096,1
    - Dst: kmul_split
      Src: /src/cpython/Objects/longobject.c:4100,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4101,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4101,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4105,1
    - Dst: kmul_split
      Src: /src/cpython/Objects/longobject.c:4107,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4126,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:4130,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4130,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4134,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4135,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4135,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4136,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4136,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4136,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4137,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4138,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4141,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4141,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:4143,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4143,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4148,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4151,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4151,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4152,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4152,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4153,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4153,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4156,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:4158,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4158,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4163,1
    - Dst: v_isub
      Src: /src/cpython/Objects/longobject.c:4164,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4164,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4165,1
    - Dst: v_isub
      Src: /src/cpython/Objects/longobject.c:4167,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4167,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4168,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:4171,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4172,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4173,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4177,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:4179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4180,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4183,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4184,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4187,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4188,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4189,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4191,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4191,1
    - Dst: v_iadd
      Src: /src/cpython/Objects/longobject.c:4196,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4196,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4197,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4199,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4202,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4203,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4204,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4205,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4206,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 94
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_IsPositive(ah))
      pos:
        line_end: 4100
        line_start: 4100
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(t3))
      pos:
        line_end: 4190
        line_start: 4190
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(t1))
      pos:
        line_end: 4134
        line_start: 4134
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(t2))
      pos:
        line_end: 4150
        line_start: 4150
        source_file: /src/cpython/Objects/longobject.c
    - condition: (2*shift + _PyLong_DigitCount(t1) <= _PyLong_DigitCount(ret))
      pos:
        line_end: 4135
        line_start: 4135
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(t2) <= 2*shift)
      pos:
        line_end: 4151
        line_start: 4151
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4208
      start: 4045
    functionDepth: 4
    functionLinenumber: 4045
    functionLinenumberEnd: 4208
    functionName: k_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyLong_IsNegative
    - PyLong_FromLong
    - v_iadd
    - long_alloc
    - x_add
    - k_lopsided_mul
    - long_normalize
    - x_mul
    - Py_DECREF
    - Py_NewRef
    - kmul_split
    - _PyLong_IsPositive
    - _PyLong_DigitCount
    - memcpy
    - k_mul
    - _Py_DECREF_INT
    - memset
    - v_isub
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      k_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4266,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4267,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4272,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4273,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4276,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:4279,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4279,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4282,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/longobject.c:4289,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4292,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4294,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:4295,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4296,1
    - Dst: v_iadd
      Src: /src/cpython/Objects/longobject.c:4301,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4301,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4302,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4303,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4309,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4313,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (asize > KARATSUBA_CUTOFF)
      pos:
        line_end: 4271
        line_start: 4271
        source_file: /src/cpython/Objects/longobject.c
    - condition: (2 * asize <= bsize)
      pos:
        line_end: 4272
        line_start: 4272
        source_file: /src/cpython/Objects/longobject.c
    - condition: (nbtouse >= 0)
      pos:
        line_end: 4293
        line_start: 4293
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4316
      start: 4263
    functionDepth: 5
    functionLinenumber: 4263
    functionLinenumberEnd: 4316
    functionName: k_lopsided_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - Py_DECREF
    - _PyLong_SetSignAndDigitCount
    - long_normalize
    - memset
    - _Py_DECREF_INT
    - v_iadd
    - _PyLong_DigitCount
    - memcpy
    - k_mul
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      k_lopsided_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:4323,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4324,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4324,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:4325,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4328,1
    - Dst: _PyLong_SameSign
      Src: /src/cpython/Objects/longobject.c:4330,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:4331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4319
    functionDepth: 6
    functionLinenumber: 4319
    functionLinenumberEnd: 4334
    functionName: long_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_Negate
    - _PyLong_BothAreCompact
    - _PyLong_FromSTwoDigits
    - medium_value
    - k_mul
    - _PyLong_SameSign
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4341,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:4341,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4342,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4342,1
    - Dst: medium_from_stwodigits
      Src: /src/cpython/Objects/longobject.c:4343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_BothAreCompact(a, b))
      pos:
        line_end: 4340
        line_start: 4340
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4344
      start: 4338
    functionDepth: 3
    functionLinenumber: 4338
    functionLinenumberEnd: 4344
    functionName: _PyCompactLong_Multiply
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - medium_value
    - medium_from_stwodigits
    - _PyLong_BothAreCompact
    - assert
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _PyCompactLong_Multiply(PyLongObject *a, PyLongObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4349,1
    - Dst: long_mul
      Src: /src/cpython/Objects/longobject.c:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4346
    functionDepth: 7
    functionLinenumber: 4346
    functionLinenumberEnd: 4351
    functionName: long_mul_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_mul
    - CHECK_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_mul_method(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4361,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4361,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4362,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4362,1
    - Dst: _PyLong_CompactSign
      Src: /src/cpython/Objects/longobject.c:4363,1
    - Dst: _PyLong_SameSign
      Src: /src/cpython/Objects/longobject.c:4364,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:4372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_DigitCount(a) == 1)
      pos:
        line_end: 4360
        line_start: 4360
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(b) == 1)
      pos:
        line_end: 4361
        line_start: 4361
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4373
      start: 4354
    functionDepth: 1
    functionLinenumber: 4354
    functionLinenumberEnd: 4373
    functionName: fast_mod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactSign
    - _PyLong_DigitCount
    - PyLong_FromLong
    - _PyLong_SameSign
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fast_mod(PyLongObject *a, PyLongObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4383,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4383,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4384,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4384,1
    - Dst: _PyLong_SameSign
      Src: /src/cpython/Objects/longobject.c:4386,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:4394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_DigitCount(a) == 1)
      pos:
        line_end: 4382
        line_start: 4382
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(b) == 1)
      pos:
        line_end: 4383
        line_start: 4383
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4395
      start: 4376
    functionDepth: 1
    functionLinenumber: 4376
    functionLinenumberEnd: 4395
    functionName: fast_floor_div
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_SameSign
    - _PyLong_DigitCount
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fast_floor_div(PyLongObject *a, PyLongObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/longobject.c:4403,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/longobject.c:4407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4408,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/longobject.c:4412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4414,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/longobject.c:4418,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/longobject.c:4419,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:4420,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:4420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4422,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4427,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4432,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - v
    - w
    - pdiv
    - pmod
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4399
    functionDepth: 5
    functionLinenumber: 4399
    functionLinenumberEnd: 4434
    functionName: pylong_int_divmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_Check
    - PyErr_SetString
    - PyLong_Check
    - PyObject_CallMethod
    - PyImport_ImportModule
    - Py_NewRef
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int pylong_int_divmod(PyLongObject *v, PyLongObject *w,\n                  PyLongObject
      **pdiv, PyLongObject **pmod)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4464,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4464,1
    - Dst: fast_floor_div
      Src: /src/cpython/Objects/longobject.c:4468,1
    - Dst: fast_mod
      Src: /src/cpython/Objects/longobject.c:4474,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4476,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4489,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4490,1
    - Dst: pylong_int_divmod
      Src: /src/cpython/Objects/longobject.c:4497,1
    - Dst: long_divrem
      Src: /src/cpython/Objects/longobject.c:4500,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4502,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4502,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4503,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4503,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:4505,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4508,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:4511,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:4511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4514,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4527,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 4
    argNames:
    - v
    - w
    - pdiv
    - pmod
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4458
    functionDepth: 7
    functionLinenumber: 4458
    functionLinenumberEnd: 4530
    functionName: l_divmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyLong_IsNegative
    - fast_floor_div
    - Py_DECREF
    - long_sub
    - long_add
    - pylong_int_divmod
    - _PyLong_GetOne
    - Py_SETREF
    - _PyLong_IsPositive
    - _PyLong_DigitCount
    - long_divrem
    - fast_mod
    linkageType: ''
    returnType: int
    signature: "int l_divmod(PyLongObject *v, PyLongObject *w,\n         PyLongObject
      **pdiv, PyLongObject **pmod)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4541,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4542,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4542,1
    - Dst: fast_mod
      Src: /src/cpython/Objects/longobject.c:4544,1
    - Dst: long_rem
      Src: /src/cpython/Objects/longobject.c:4547,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4549,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4549,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4550,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4550,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:4552,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - v
    - w
    - pmod
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    assertStmts:
    - condition: (pmod)
      pos:
        line_end: 4540
        line_start: 4540
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4560
      start: 4536
    functionDepth: 7
    functionLinenumber: 4536
    functionLinenumberEnd: 4560
    functionName: l_mod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - long_rem
    - long_add
    - Py_SETREF
    - _PyLong_IsPositive
    - _PyLong_DigitCount
    - assert
    - fast_mod
    linkageType: ''
    returnType: int
    signature: int l_mod(PyLongObject *v, PyLongObject *w, PyLongObject **pmod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4567,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4569,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4569,1
    - Dst: fast_floor_div
      Src: /src/cpython/Objects/longobject.c:4570,1
    - Dst: l_divmod
      Src: /src/cpython/Objects/longobject.c:4573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4576
      start: 4562
    functionDepth: 8
    functionLinenumber: 4562
    functionLinenumberEnd: 4576
    functionName: long_div
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - l_divmod
    - fast_floor_div
    - _PyLong_DigitCount
    - CHECK_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_div(PyObject *a, PyObject *b)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4592,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4684,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4685,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4686,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4686,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4688,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:4726,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:4727,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/longobject.c:4735,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4748,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4752,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:4757,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4765,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4766,1
    - Dst: v_rshift
      Src: /src/cpython/Objects/longobject.c:4769,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4778,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:4779,1
    - Dst: inplace_divrem1
      Src: /src/cpython/Objects/longobject.c:4784,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4786,1
    - Dst: x_divrem
      Src: /src/cpython/Objects/longobject.c:4792,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4793,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:4796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4798,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4800,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4801,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:4802,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/longobject.c:4805,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4819,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:4823,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:4825,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/longobject.c:4828,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/longobject.c:4831,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4834,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 117
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (x_size > 0)
      pos:
        line_end: 4800
        line_start: 4800
        source_file: /src/cpython/Objects/longobject.c
    - condition: (extra_bits == 2 || extra_bits == 3)
      pos:
        line_end: 4805
        line_start: 4805
        source_file: /src/cpython/Objects/longobject.c
    - condition: (a_size >= shift_digits)
      pos:
        line_end: 4764
        line_start: 4764
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4838
      start: 4583
    functionDepth: 4
    functionLinenumber: 4583
    functionLinenumberEnd: 4838
    functionName: long_true_divide
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - _PyLong_IsNegative
    - bit_length_digit
    - PyErr_SetString
    - Py_SETREF
    - _PyLong_IsZero
    - PyFloat_FromDouble
    - long_alloc
    - v_rshift
    - inplace_divrem1
    - CHECK_BINOP
    - long_normalize
    - Py_DECREF
    - v_lshift
    - _PyLong_DigitCount
    - _PyLong_SignedDigitCount
    - x_divrem
    - ldexp
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_true_divide(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4845,1
    - Dst: l_mod
      Src: /src/cpython/Objects/longobject.c:4847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4840
    functionDepth: 8
    functionLinenumber: 4840
    functionLinenumberEnd: 4850
    functionName: long_mod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - l_mod
    - CHECK_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_mod(PyObject *a, PyObject *b)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4858,1
    - Dst: l_divmod
      Src: /src/cpython/Objects/longobject.c:4860,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/longobject.c:4863,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:4865,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:4866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4852
    functionDepth: 8
    functionLinenumber: 4852
    functionLinenumberEnd: 4873
    functionName: long_divmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - l_divmod
    - CHECK_BINOP
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_divmod(PyObject *a, PyObject *b)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4900,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4900,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:4902,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4903,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:4903,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4904,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:4904,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:4905,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:4908,1
    - Dst: l_divmod
      Src: /src/cpython/Objects/longobject.c:4911,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4914,1
    - Dst: long_mul
      Src: /src/cpython/Objects/longobject.c:4916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4917,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:4921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4922,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4932,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:4933,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:4933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4936,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4951,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_IsPositive(n))
      pos:
        line_end: 4899
        line_start: 4899
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4953
      start: 4896
    functionDepth: 8
    functionLinenumber: 4896
    functionLinenumberEnd: 4953
    functionName: long_invmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyLong_GetZero
    - Py_DECREF
    - long_sub
    - l_divmod
    - PyErr_SetString
    - _PyLong_GetOne
    - long_mul
    - Py_NewRef
    - Py_SETREF
    - _PyLong_IsPositive
    - long_compare
    - _PyLong_IsZero
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_invmod(PyLongObject *a, PyLongObject *n)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4980,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4981,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4982,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:4983,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4990,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4994,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5000,1
    - Dst: tp_as_number::nb_power
      Src: /src/cpython/Objects/longobject.c:5001,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5007,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5008,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5016,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5018,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5021,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:5023,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:5030,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5031,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5037,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5038,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5041,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:5043,1
    - Dst: long_invmod
      Src: /src/cpython/Objects/longobject.c:5047,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5050,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5063,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5063,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5063,1
    - Dst: l_mod
      Src: /src/cpython/Objects/longobject.c:5064,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5066,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5074,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:5105,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5111,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5113,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5121,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5132,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5133,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5133,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5136,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5138,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5144,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5146,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5160,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5162,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5166,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:5169,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5178,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5179,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5180,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5185,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5188,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5190,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5192,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5193,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:5197,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5208,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 150
    argCount: 3
    argNames:
    - v
    - w
    - x
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (pending >> (blen - 1))
      pos:
        line_end: 5178
        line_start: 5178
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pending >> blen == 0)
      pos:
        line_end: 5179
        line_start: 5179
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ntz < blen)
      pos:
        line_end: 5184
        line_start: 5184
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((bi & bit) == 0)
      pos:
        line_end: 5135
        line_start: 5135
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bi & bit)
      pos:
        line_end: 5137
        line_start: 5137
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bi)
      pos:
        line_end: 5131
        line_start: 5131
        source_file: /src/cpython/Objects/longobject.c
    - condition: (blen == 0)
      pos:
        line_end: 5192
        line_start: 5192
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pending && blen)
      pos:
        line_end: 5177
        line_start: 5177
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5213
      start: 4957
    functionDepth: 9
    functionLinenumber: 4957
    functionLinenumberEnd: 5213
    functionName: long_pow
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - PyErr_SetString
    - l_mod
    - _PyLong_Copy
    - long_invmod
    - Py_SETREF
    - PyLong_FromLong
    - _PyLong_IsZero
    - Py_CLEAR
    - tp_as_number::nb_power
    - CHECK_BINOP
    - Py_DECREF
    - PyLong_Check
    - Py_NewRef
    - _PyLong_DigitCount
    - _PyLong_SignedDigitCount
    - MULT
    - _PyLong_Negate
    - _PyLong_IsNonNegativeCompact
    - assert
    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: 5091
      start: 5081
    functionDepth: 0
    functionLinenumber: 5081
    functionLinenumberEnd: 5091
    functionName: REDUCE
    functionSourceFile: /src/cpython/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: 5104
      start: 5094
    functionDepth: 0
    functionLinenumber: 5094
    functionLinenumberEnd: 5104
    functionName: MULT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT(X, Y, result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5241,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5244,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5245,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5245,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:5247,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:5247,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:5250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5254
      start: 5238
    functionDepth: 6
    functionLinenumber: 5238
    functionLinenumberEnd: 5254
    functionName: long_invert
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CAST
    - _PyLong_Negate
    - _PyLong_IsCompact
    - long_add
    - _PyLong_GetOne
    - _PyLong_FromSTwoDigits
    - medium_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_invert(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5259,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5260,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5260,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5263,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:5265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5268
      start: 5256
    functionDepth: 5
    functionLinenumber: 5256
    functionLinenumberEnd: 5268
    functionName: long_neg
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - _PyLong_Copy
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - medium_value
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_neg(PyLongObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:5273,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5274
      start: 5270
    functionDepth: 6
    functionLinenumber: 5270
    functionLinenumberEnd: 5274
    functionName: long_neg_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_neg
    - _PyLong_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_neg_method(PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5279,1
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:5280,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:5282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5283
      start: 5276
    functionDepth: 6
    functionLinenumber: 5276
    functionLinenumberEnd: 5283
    functionName: long_abs
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_neg
    - _PyLong_IsNegative
    - long_long
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_abs(PyLongObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_abs
      Src: /src/cpython/Objects/longobject.c:5288,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5289
      start: 5285
    functionDepth: 7
    functionLinenumber: 5285
    functionLinenumberEnd: 5289
    functionName: long_abs_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CAST
    - long_abs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_abs_method(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5294,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5295
      start: 5291
    functionDepth: 1
    functionLinenumber: 5291
    functionLinenumberEnd: 5295
    functionName: long_bool
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsZero
    - _PyLong_CAST
    linkageType: ''
    returnType: int
    signature: int long_bool(PyObject *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5310,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5311,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5314,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5317,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5320,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5323,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5324,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:5333,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5340,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5344,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5346,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5365,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5380,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:5383,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 3
    argNames:
    - a
    - wordshift
    - remshift
    argTypes:
    - PyLongObject*
    - Py_ssize_t
    - digit
    assertStmts:
    - condition: (wordshift >= 0)
      pos:
        line_end: 5309
        line_start: 5309
        source_file: /src/cpython/Objects/longobject.c
    - condition: (remshift < PyLong_SHIFT)
      pos:
        line_end: 5310
        line_start: 5310
        source_file: /src/cpython/Objects/longobject.c
    - condition: (wordshift >= 0)
      pos:
        line_end: 5339
        line_start: 5339
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accum <= PyLong_MASK)
      pos:
        line_end: 5379
        line_start: 5379
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5385
      start: 5301
    functionDepth: 5
    functionLinenumber: 5301
    functionLinenumberEnd: 5385
    functionName: long_rshift1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - _PyLong_SetSignAndDigitCount
    - _PyLong_IsCompact
    - long_normalize
    - long_long
    - maybe_small_long
    - _PyLong_FromSTwoDigits
    - _PyLong_DigitCount
    - PyLong_FromLong
    - medium_value
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_rshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:5392,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5394,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5395,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5398,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5399,1
    - Dst: PyLong_AsInt64
      Src: /src/cpython/Objects/longobject.c:5401,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/longobject.c:5402,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/longobject.c:5405,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5406,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5407,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5410,1
    - Dst: _PyLong_Rshift
      Src: /src/cpython/Objects/longobject.c:5413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5414
      start: 5387
    functionDepth: 1
    functionLinenumber: 5387
    functionLinenumberEnd: 5414
    functionName: long_rshift
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_Rshift
    - _PyLong_IsNegative
    - CHECK_BINOP
    - PyErr_Clear
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyLong_FromLong
    - _PyLong_IsZero
    - PyLong_AsInt64
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_rshift(PyObject *a, PyObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5423,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:5423,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5424,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5425,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5426,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5430,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5431,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5434,1
    - Dst: long_rshift1
      Src: /src/cpython/Objects/longobject.c:5440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyObject*
    - int64_t
    assertStmts:
    - condition: (PyLong_Check(a))
      pos:
        line_end: 5422
        line_start: 5422
        source_file: /src/cpython/Objects/longobject.c
    - condition: (shiftby >= 0)
      pos:
        line_end: 5423
        line_start: 5423
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5441
      start: 5417
    functionDepth: 6
    functionLinenumber: 5417
    functionLinenumberEnd: 5441
    functionName: _PyLong_Rshift
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - _PyLong_IsNegative
    - PyLong_Check
    - long_rshift1
    - PyLong_FromLong
    - _PyLong_IsZero
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Rshift(PyObject *a, int64_t shiftby)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5450,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5451,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5454,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5457,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5461,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5464,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5465,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5465,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:5466,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5479,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5480,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:5481,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - a
    - wordshift
    - remshift
    argTypes:
    - PyLongObject*
    - Py_ssize_t
    - digit
    assertStmts:
    - condition: (Py_REFCNT(z) == 1)
      pos:
        line_end: 5464
        line_start: 5464
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!accum)
      pos:
        line_end: 5478
        line_start: 5478
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5482
      start: 5443
    functionDepth: 5
    functionLinenumber: 5443
    functionLinenumberEnd: 5482
    functionName: long_lshift1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - _PyLong_IsCompact
    - long_normalize
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - maybe_small_long
    - Py_REFCNT
    - _PyLong_DigitCount
    - medium_value
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:5488,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5492,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5493,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5496,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5497,1
    - Dst: PyLong_AsInt64
      Src: /src/cpython/Objects/longobject.c:5501,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/longobject.c:5502,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5503,1
    - Dst: long_lshift_int64
      Src: /src/cpython/Objects/longobject.c:5508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - aa
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5509
      start: 5485
    functionDepth: 1
    functionLinenumber: 5485
    functionLinenumberEnd: 5509
    functionName: long_lshift_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsNegative
    - CHECK_BINOP
    - PyErr_SetString
    - long_lshift_int64
    - PyErr_ExceptionMatches
    - PyLong_FromLong
    - _PyLong_IsZero
    - PyLong_AsInt64
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lshift_method(PyObject *aa, PyObject *bb)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5515,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5517,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5522,1
    - Dst: long_lshift1
      Src: /src/cpython/Objects/longobject.c:5529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyLongObject*
    - int64_t
    assertStmts:
    - condition: (shiftby >= 0)
      pos:
        line_end: 5514
        line_start: 5514
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5530
      start: 5512
    functionDepth: 6
    functionLinenumber: 5512
    functionLinenumberEnd: 5530
    functionName: long_lshift_int64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - PyLong_FromLong
    - _PyLong_IsZero
    - long_lshift1
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lshift_int64(PyLongObject *a, int64_t shiftby)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_lshift_int64
      Src: /src/cpython/Objects/longobject.c:5535,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5532
    functionDepth: 7
    functionLinenumber: 5532
    functionLinenumberEnd: 5536
    functionName: _PyLong_Lshift
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - long_lshift_int64
    - _PyLong_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Lshift(PyObject *a, int64_t shiftby)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5553,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: 5552
        line_start: 5552
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5554
      start: 5543
    functionDepth: 0
    functionLinenumber: 5543
    functionLinenumberEnd: 5554
    functionName: v_complement
    functionSourceFile: /src/cpython/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: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5573,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5574,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5576,1
    - Dst: v_complement
      Src: /src/cpython/Objects/longobject.c:5579,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5584,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5587,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5588,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5592,1
    - Dst: v_complement
      Src: /src/cpython/Objects/longobject.c:5595,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5599,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/longobject.c:5629,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5637,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/longobject.c:5656,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:5664,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:5669,1
    - Dst: v_complement
      Src: /src/cpython/Objects/longobject.c:5671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5675,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:5676,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5676,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 3
    argNames:
    - a
    - op
    - b
    argTypes:
    - PyLongObject*
    - char
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5677
      start: 5558
    functionDepth: 3
    functionLinenumber: 5558
    functionLinenumberEnd: 5677
    functionName: long_bitwise
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyLong_IsNegative
    - Py_DECREF
    - long_normalize
    - v_complement
    - _PyLong_FlipSign
    - maybe_small_long
    - _PyLong_DigitCount
    - memcpy
    - long_alloc
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlong_bitwise(PyLongObject *a,\n             char op,  /*
      '&', '|', '^' */\n             PyLongObject *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:5682,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5685,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5685,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5686,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5686,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5686,1
    - Dst: long_bitwise
      Src: /src/cpython/Objects/longobject.c:5688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5689
      start: 5679
    functionDepth: 5
    functionLinenumber: 5679
    functionLinenumberEnd: 5689
    functionName: long_and
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - _PyLong_IsCompact
    - _PyLong_FromSTwoDigits
    - long_bitwise
    - medium_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_and(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:5694,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5697,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5697,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5698,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5698,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5698,1
    - Dst: long_bitwise
      Src: /src/cpython/Objects/longobject.c:5700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5691
    functionDepth: 5
    functionLinenumber: 5691
    functionLinenumberEnd: 5701
    functionName: long_xor
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - _PyLong_IsCompact
    - _PyLong_FromSTwoDigits
    - long_bitwise
    - medium_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_xor(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:5706,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5709,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5709,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5710,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5710,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5710,1
    - Dst: long_bitwise
      Src: /src/cpython/Objects/longobject.c:5712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5713
      start: 5703
    functionDepth: 5
    functionLinenumber: 5703
    functionLinenumberEnd: 5713
    functionName: long_or
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - _PyLong_IsCompact
    - _PyLong_FromSTwoDigits
    - long_bitwise
    - medium_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_or(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:5718,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5719,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5724
      start: 5715
    functionDepth: 4
    functionLinenumber: 5715
    functionLinenumberEnd: 5724
    functionName: long_long
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 4
    functionsReached:
    - Py_NewRef
    - PyLong_CheckExact
    - _PyLong_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long(PyObject *v)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5737,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5737,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5738,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5739,1
    - Dst: long_abs
      Src: /src/cpython/Objects/longobject.c:5744,1
    - Dst: long_abs
      Src: /src/cpython/Objects/longobject.c:5747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5749,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:5752,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5760,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5761,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5763,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:5764,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5767,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5768,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5776,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5777,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5778,1
    - Dst: l_mod
      Src: /src/cpython/Objects/longobject.c:5806,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5808,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5811,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5824,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5825,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5827,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5828,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5832,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5838,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5839,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5841,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5842,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5843,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5844,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5848,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5878,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5879,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5881,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5884,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5885,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5886,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5888,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5889,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5892,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5892,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5893,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5893,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/longobject.c:5898,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/longobject.c:5899,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/longobject.c:5901,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/longobject.c:5902,1
    - Dst: Py_ABS
      Src: /src/cpython/Objects/longobject.c:5906,1
    - Dst: Py_ABS
      Src: /src/cpython/Objects/longobject.c:5907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5909,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5918,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Objects/longobject.c:5920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5927,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5928,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5929,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 168
    argCount: 2
    argNames:
    - aarg
    - barg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (size_a >= 0)
      pos:
        line_end: 5837
        line_start: 5837
        source_file: /src/cpython/Objects/longobject.c
    - condition: (Py_REFCNT(b) > 0)
      pos:
        line_end: 5892
        line_start: 5892
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_a >= 0)
      pos:
        line_end: 5823
        line_start: 5823
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_a >= 0)
      pos:
        line_end: 5842
        line_start: 5842
        source_file: /src/cpython/Objects/longobject.c
    - condition: (c_carry == 0)
      pos:
        line_end: 5877
        line_start: 5877
        source_file: /src/cpython/Objects/longobject.c
    - condition: (d_carry == 0)
      pos:
        line_end: 5878
        line_start: 5878
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_b <= size_a)
      pos:
        line_end: 5767
        line_start: 5767
        source_file: /src/cpython/Objects/longobject.c
    - condition: (Py_REFCNT(a) > 0)
      pos:
        line_end: 5891
        line_start: 5891
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5931
      start: 5726
    functionDepth: 8
    functionLinenumber: 5726
    functionLinenumberEnd: 5931
    functionName: _PyLong_GCD
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - bit_length_digit
    - _PyLong_SetSignAndDigitCount
    - l_mod
    - _PyLong_Copy
    - Py_SETREF
    - PyLong_FromLong
    - long_alloc
    - Py_INCREF
    - PyLong_AsLong
    - long_normalize
    - long_compare
    - PyLong_FromLongLong
    - Py_DECREF
    - long_abs
    - Py_NewRef
    - _PyLong_DigitCount
    - PyLong_AsLongLong
    - Py_ABS
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_GCD(PyObject *aarg, PyObject *barg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/longobject.c:5937,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:5938,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/longobject.c:5940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5941
      start: 5933
    functionDepth: 5
    functionLinenumber: 5933
    functionLinenumberEnd: 5941
    functionName: long_float
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsDouble
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_float(PyObject *v)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: long_subtype_new
      Src: /src/cpython/Objects/longobject.c:5961,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5964,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5968,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/longobject.c:5972,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/longobject.c:5974,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:5975,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5978,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/longobject.c:5983,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/cpython/Objects/longobject.c:5984,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/longobject.c:5985,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/longobject.c:5985,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/longobject.c:5987,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/longobject.c:5988,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/longobject.c:5990,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/longobject.c:5991,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/longobject.c:5991,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5994,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - type
    - x
    - obase
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5954
    functionDepth: 9
    functionLinenumber: 5954
    functionLinenumberEnd: 5998
    functionName: long_new_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_subtype_new
    - PyErr_Occurred
    - PyErr_SetString
    - Py_SIZE
    - PyByteArray_AS_STRING
    - PyNumber_AsSsize_t
    - PyByteArray_Check
    - PyBytes_Check
    - _PyLong_FromBytes
    - PyNumber_Long
    - PyLong_FromLong
    - PyUnicode_Check
    - PyLong_FromUnicodeObject
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6011,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/longobject.c:6011,1
    - Dst: long_new_impl
      Src: /src/cpython/Objects/longobject.c:6012,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6015,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6015,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6016,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/longobject.c:6022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6024,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6027,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - type
    - x
    - obase
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyLong_Type))
      pos:
        line_end: 6010
        line_start: 6010
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(tmp))
      pos:
        line_end: 6014
        line_start: 6014
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(newobj))
      pos:
        line_end: 6026
        line_start: 6026
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6034
      start: 6005
    functionDepth: 10
    functionLinenumber: 6005
    functionLinenumberEnd: 6034
    functionName: long_subtype_new
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyType_IsSubtype
    - PyLong_Check
    - _PyLong_DigitCount
    - PyTypeObject*::tp_alloc
    - long_new_impl
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_subtype_new(PyTypeObject *type, PyObject *x, PyObject *obase)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/longobject.c:6044,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:6044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6045
      start: 6040
    functionDepth: 4
    functionLinenumber: 6040
    functionLinenumberEnd: 6045
    functionName: int___getnewargs___impl
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:6050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6051
      start: 6047
    functionDepth: 0
    functionLinenumber: 6047
    functionLinenumberEnd: 6051
    functionName: long_get0
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:6056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6057
      start: 6053
    functionDepth: 0
    functionLinenumber: 6053
    functionLinenumberEnd: 6057
    functionName: long_get1
    functionSourceFile: /src/cpython/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/cpython/Objects/longobject.c:6075,1
    - Dst: _PyLong_FormatAdvancedWriter
      Src: /src/cpython/Objects/longobject.c:6076,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/longobject.c:6079,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/longobject.c:6081,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/longobject.c:6084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6068
    functionDepth: 7
    functionLinenumber: 6068
    functionLinenumberEnd: 6085
    functionName: int___format___impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyLong_FormatAdvancedWriter
    - _PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6115,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6116,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6122,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6122,1
    - Dst: long_divrem
      Src: /src/cpython/Objects/longobject.c:6124,1
    - Dst: long_lshift_int64
      Src: /src/cpython/Objects/longobject.c:6129,1
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:6133,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6134,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:6138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6139,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6142,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:6144,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:6146,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:6148,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6149,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:6154,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:6156,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6157,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/longobject.c:6162,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6167,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6168,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:6172,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:6173,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6092
    functionDepth: 7
    functionLinenumber: 6092
    functionLinenumberEnd: 6175
    functionName: _PyLong_DivmodNear
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - long_neg
    - Py_XDECREF
    - PyTuple_New
    - _PyLong_IsNegative
    - Py_DECREF
    - long_sub
    - PyErr_SetString
    - long_lshift_int64
    - PyLong_Check
    - _PyLong_GetOne
    - long_add
    - PyTuple_SET_ITEM
    - Py_SETREF
    - long_compare
    - long_divrem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_DivmodNear(PyObject *a, PyObject *b)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:6207,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:6209,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6215,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:6216,1
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:6220,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6221,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6227,1
    - Dst: long_pow
      Src: /src/cpython/Objects/longobject.c:6231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6232,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6233,1
    - Dst: _PyLong_DivmodNear
      Src: /src/cpython/Objects/longobject.c:6237,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6238,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:6242,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/longobject.c:6243,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - o_ndigits
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6247
      start: 6188
    functionDepth: 10
    functionLinenumber: 6188
    functionLinenumberEnd: 6247
    functionName: int___round___impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_neg
    - _PyLong_IsNegative
    - Py_DECREF
    - long_sub
    - _PyNumber_Index
    - long_long
    - _PyLong_DivmodNear
    - Py_SETREF
    - long_pow
    - PyTuple_GET_ITEM
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___round___impl(PyObject *self, PyObject *o_ndigits)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Objects/longobject.c:6261,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6261,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/longobject.c:6262,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/longobject.c:6262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6263
      start: 6255
    functionDepth: 1
    functionLinenumber: 6255
    functionLinenumberEnd: 6263
    functionName: int___sizeof___impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - Py_TYPE
    - _PyLong_DigitCount
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t int___sizeof___impl(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Objects/longobject.c:6280,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6281,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6282,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:6282,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Objects/longobject.c:6283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (nbits >= 0)
      pos:
        line_end: 6280
        line_start: 6280
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 6281
        line_start: 6281
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6284
      start: 6276
    functionDepth: 3
    functionLinenumber: 6276
    functionLinenumberEnd: 6284
    functionName: int_bit_length_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyLong_NumBits
    - PyLong_FromInt64
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_bit_length_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_popcount32
      Src: /src/cpython/Objects/longobject.c:6292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6293
      start: 6286
    functionDepth: 1
    functionLinenumber: 6286
    functionLinenumberEnd: 6293
    functionName: popcount_digit
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    linkageType: ''
    returnType: int
    signature: int popcount_digit(digit d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6313,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6314,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6314,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6317,1
    - Dst: popcount_digit
      Src: /src/cpython/Objects/longobject.c:6321,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Objects/longobject.c:6324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 6312
        line_start: 6312
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(self))
      pos:
        line_end: 6313
        line_start: 6313
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6325
      start: 6309
    functionDepth: 2
    functionLinenumber: 6309
    functionLinenumberEnd: 6325
    functionName: int_bit_count_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - PyLong_Check
    - popcount_digit
    - _PyLong_DigitCount
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_bit_count_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:6347,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/longobject.c:6351,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:6351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6354
      start: 6342
    functionDepth: 5
    functionLinenumber: 6342
    functionLinenumberEnd: 6354
    functionName: int_as_integer_ratio_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetOne
    - PyTuple_Pack
    - Py_DECREF
    - long_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_as_integer_ratio_impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6388,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6388,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6390,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6393,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6399,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/longobject.c:6404,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:6408,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/longobject.c:6409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - self
    - length
    - byteorder
    - is_signed
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6416
      start: 6378
    functionDepth: 4
    functionLinenumber: 6378
    functionLinenumberEnd: 6416
    functionName: int_to_bytes_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - _PyLong_AsByteArray
    - _PyUnicode_Equal
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nint_to_bytes_impl(PyObject *self, Py_ssize_t length, PyObject
      *byteorder,\n                  int is_signed)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6450,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6450,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6452,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6455,1
    - Dst: PyObject_Bytes
      Src: /src/cpython/Objects/longobject.c:6460,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:6464,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/longobject.c:6465,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/longobject.c:6465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6467,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6470,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/longobject.c:6470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - type
    - bytes_obj
    - byteorder
    - is_signed
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6474
      start: 6440
    functionDepth: 4
    functionLinenumber: 6440
    functionLinenumberEnd: 6474
    functionName: int_from_bytes_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_FromByteArray
    - Py_SIZE
    - PyObject_Bytes
    - _Py_ID
    - PyErr_SetString
    - Py_SETREF
    - _PyUnicode_Equal
    - PyObject_CallOneArg
    - PyBytes_AS_STRING
    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/cpython/Objects/longobject.c:6479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6480
      start: 6476
    functionDepth: 5
    functionLinenumber: 6476
    functionLinenumberEnd: 6480
    functionName: long_long_meth
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long_meth(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:6485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6486
      start: 6482
    functionDepth: 5
    functionLinenumber: 6482
    functionLinenumberEnd: 6486
    functionName: long_long_getter
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long_getter(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6499
      start: 6494
    functionDepth: 0
    functionLinenumber: 6494
    functionLinenumberEnd: 6499
    functionName: int_is_integer_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_is_integer_impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/longobject.c:6505,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/longobject.c:6507,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/cpython/Objects/longobject.c:6508,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:6512,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/longobject.c:6514,1
    - Dst: long_new_impl
      Src: /src/cpython/Objects/longobject.c:6516,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/longobject.c:6516,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:6518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6522
      start: 6501
    functionDepth: 10
    functionLinenumber: 6501
    functionLinenumberEnd: 6522
    functionName: long_vectorcall
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - _PyObject_MakeTpCall
    - PyThreadState_GET
    - _PyType_CAST
    - PyNumber_Long
    - PyErr_Format
    - PyVectorcall_NARGS
    - long_new_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlong_vectorcall(PyObject *type, PyObject * const*args,\n
      \                size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Objects/longobject.c:6693,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6696,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6697,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6698,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6699,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6707,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6708,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6709,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6710,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:6711,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:6712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6716
      start: 6688
    functionDepth: 2
    functionLinenumber: 6688
    functionLinenumberEnd: 6716
    functionName: PyLong_GetInfo
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyStructSequence_SET_ITEM
    - PyLong_FromLong
    - Py_CLEAR
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_GetInfo(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Objects/longobject.c:6725,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/longobject.c:6728,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/longobject.c:6731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6732
      start: 6721
    functionDepth: 1
    functionLinenumber: 6721
    functionLinenumberEnd: 6732
    functionName: _PyLong_InitTypes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStructSequence_InitBuiltin
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyLong_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Objects/longobject.c:6738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6739
      start: 6735
    functionDepth: 3
    functionLinenumber: 6735
    functionLinenumberEnd: 6739
    functionName: _PyLong_FiniTypes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyStructSequence_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PyLong_FiniTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:6745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6746
      start: 6743
    functionDepth: 1
    functionLinenumber: 6743
    functionLinenumberEnd: 6746
    functionName: PyUnstable_Long_IsCompact
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - _PyLong_IsCompact
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Long_IsCompact(const PyLongObject* op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:6752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6753
      start: 6750
    functionDepth: 1
    functionLinenumber: 6750
    functionLinenumberEnd: 6753
    functionName: PyUnstable_Long_CompactValue
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - _PyLong_CompactValue
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyUnstable_Long_CompactValue(const PyLongObject* op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6759
      start: 6756
    functionDepth: 0
    functionLinenumber: 6756
    functionLinenumberEnd: 6759
    functionName: PyLong_FromInt32
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyLong_FromInt32(int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6764
      start: 6761
    functionDepth: 0
    functionLinenumber: 6761
    functionLinenumberEnd: 6764
    functionName: PyLong_FromUInt32
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyLong_FromUInt32(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6769
      start: 6766
    functionDepth: 0
    functionLinenumber: 6766
    functionLinenumberEnd: 6769
    functionName: PyLong_FromInt64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyLong_FromInt64(int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6774
      start: 6771
    functionDepth: 0
    functionLinenumber: 6771
    functionLinenumberEnd: 6774
    functionName: PyLong_FromUInt64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyLong_FromUInt64(uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - value
    - ','
    - type_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6791
      start: 6776
    functionDepth: 0
    functionLinenumber: 6776
    functionLinenumberEnd: 6791
    functionName: LONG_TO_INT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LONG_TO_INT(obj, value, type_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LONG_TO_INT
      Src: /src/cpython/Objects/longobject.c:6794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6795
      start: 6792
    functionDepth: 1
    functionLinenumber: 6792
    functionLinenumberEnd: 6795
    functionName: PyLong_AsInt32
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - LONG_TO_INT
    linkageType: ''
    returnType: int
    signature: int PyLong_AsInt32(PyObject *obj, int32_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LONG_TO_INT
      Src: /src/cpython/Objects/longobject.c:6799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6800
      start: 6797
    functionDepth: 1
    functionLinenumber: 6797
    functionLinenumberEnd: 6800
    functionName: PyLong_AsInt64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - LONG_TO_INT
    linkageType: ''
    returnType: int
    signature: int PyLong_AsInt64(PyObject *obj, int64_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - value
    - ','
    - type_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6819
      start: 6802
    functionDepth: 0
    functionLinenumber: 6802
    functionLinenumberEnd: 6819
    functionName: LONG_TO_UINT
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LONG_TO_UINT(obj, value, type_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LONG_TO_UINT
      Src: /src/cpython/Objects/longobject.c:6822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6823
      start: 6820
    functionDepth: 1
    functionLinenumber: 6820
    functionLinenumberEnd: 6823
    functionName: PyLong_AsUInt32
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - LONG_TO_UINT
    linkageType: ''
    returnType: int
    signature: int PyLong_AsUInt32(PyObject *obj, uint32_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LONG_TO_UINT
      Src: /src/cpython/Objects/longobject.c:6827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6828
      start: 6825
    functionDepth: 1
    functionLinenumber: 6825
    functionLinenumberEnd: 6828
    functionName: PyLong_AsUInt64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - LONG_TO_UINT
    linkageType: ''
    returnType: int
    signature: int PyLong_AsUInt64(PyObject *obj, uint64_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6843
      start: 6839
    functionDepth: 0
    functionLinenumber: 6839
    functionLinenumberEnd: 6843
    functionName: PyLong_GetNativeLayout
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: PyLongLayout
    signature: 'PyLongLayout *

      PyLong_GetNativeLayout(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6849,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:6850,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:6851,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:6858,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:6861,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Objects/longobject.c:6863,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6865,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:6865,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6877,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6878,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:6883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - obj
    - export_long
    argTypes:
    - PyObject*
    - PyLongExport*
    assertStmts:
    - condition: (!(value == -1 && PyErr_Occurred()))
      pos:
        line_end: 6864
        line_start: 6864
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6886
      start: 6846
    functionDepth: 3
    functionLinenumber: 6846
    functionLinenumberEnd: 6886
    functionName: PyLong_Export
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - _PyLong_IsNegative
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - Py_BUILD_ASSERT
    - PyLong_AsLongLongAndOverflow
    - PyLong_Check
    - memset
    - Py_NewRef
    - _PyLong_DigitCount
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int PyLong_Export(PyObject *obj, PyLongExport *export_long)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - export_long
    argTypes:
    - PyLongExport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6897
      start: 6889
    functionDepth: 0
    functionLinenumber: 6889
    functionLinenumberEnd: 6897
    functionName: PyLong_FreeExport
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void PyLong_FreeExport(PyLongExport *export_long)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6906,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6909,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:6911,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:6916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - negative
    - ndigits
    - digits
    argTypes:
    - int
    - Py_ssize_t
    - void**
    assertStmts:
    - condition: (digits != NULL)
      pos:
        line_end: 6908
        line_start: 6908
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6925
      start: 6902
    functionDepth: 3
    functionLinenumber: 6902
    functionLinenumberEnd: 6925
    functionName: PyLongWriter_Create
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyLong_FlipSign
    - long_alloc
    - assert
    linkageType: ''
    returnType: PyLongWriter
    signature: 'PyLongWriter *

      PyLongWriter_Create(int negative, Py_ssize_t ndigits, void **digits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6936,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:6936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyLongWriter*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 6935
        line_start: 6935
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6938
      start: 6928
    functionDepth: 0
    functionLinenumber: 6928
    functionLinenumberEnd: 6938
    functionName: PyLongWriter_Discard
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void PyLongWriter_Discard(PyLongWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6945,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:6945,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:6948,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:6948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyLongWriter*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 6944
        line_start: 6944
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6951
      start: 6941
    functionDepth: 3
    functionLinenumber: 6941
    functionLinenumberEnd: 6951
    functionName: PyLongWriter_Finish
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - maybe_small_long
    - long_normalize
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLongWriter_Finish(PyLongWriter *writer)'
  - 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: _PyNamespace_CAST
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyNamespace_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/namespaceobject.c:31,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/namespaceobject.c:32,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/namespaceobject.c:35,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:37,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: 30
        line_start: 30
        source_file: /src/cpython/Objects/namespaceobject.c
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 10
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: namespace_new
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - PyDict_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_CAST
      Src: /src/cpython/Objects/namespaceobject.c:48,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/namespaceobject.c:50,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/namespaceobject.c:50,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:50,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/namespaceobject.c:55,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/namespaceobject.c:56,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/namespaceobject.c:59,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/cpython/Objects/namespaceobject.c:64,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:65,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:66,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/cpython/Objects/namespaceobject.c:74,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 78
    functionName: namespace_init
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - _PyNamespace_CAST
    - Py_DECREF
    - PyDict_CheckExact
    - PyArg_ValidateKeywordArguments
    - PyArg_UnpackTuple
    - Py_NewRef
    - PyObject_CallOneArg
    - _PyType_Name
    - PyDict_Update
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int namespace_init(PyObject *op, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_CAST
      Src: /src/cpython/Objects/namespaceobject.c:84,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/namespaceobject.c:85,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/namespaceobject.c:86,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: namespace_dealloc
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - _PyNamespace_CAST
    - Py_TYPE
    - Py_CLEAR
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void namespace_dealloc(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:100,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:101,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/namespaceobject.c:103,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/namespaceobject.c:105,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/namespaceobject.c:108,1
    - Dst: assert
      Src: /src/cpython/Objects/namespaceobject.c:112,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/namespaceobject.c:113,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/namespaceobject.c:115,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/namespaceobject.c:119,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/namespaceobject.c:123,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/namespaceobject.c:124,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/namespaceobject.c:124,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/namespaceobject.c:127,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/namespaceobject.c:129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:130,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/namespaceobject.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:144,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/namespaceobject.c:149,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/namespaceobject.c:153,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Objects/namespaceobject.c:157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:158,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/namespaceobject.c:162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/namespaceobject.c:166,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/namespaceobject.c:167,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/namespaceobject.c:168,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/namespaceobject.c:169,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/namespaceobject.c:170,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 1
    argNames:
    - ns
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (((_PyNamespaceObject *)ns)->ns_dict != NULL)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/cpython/Objects/namespaceobject.c
    constantsTouched: []
    func_position:
      end: 173
      start: 91
    functionDepth: 10
    functionLinenumber: 91
    functionLinenumberEnd: 173
    functionName: namespace_repr
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyUnicode_Join
    - PyObject_GetIter
    - PyIter_Next
    - PyDict_GetItemRef
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - PyList_Append
    - PyErr_Occurred
    - Py_IS_TYPE
    - PyUnicode_Check
    - Py_DECREF
    - Py_NewRef
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    - Py_ReprEnter
    - PyDict_Keys
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_repr(PyObject *ns)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_CAST
      Src: /src/cpython/Objects/namespaceobject.c:179,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/namespaceobject.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: namespace_traverse
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - _PyNamespace_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int namespace_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_CAST
      Src: /src/cpython/Objects/namespaceobject.c:188,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/namespaceobject.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: namespace_clear
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - _PyNamespace_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int namespace_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/namespaceobject.c:199,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/namespaceobject.c:200,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/namespaceobject.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: namespace_richcompare
    functionSourceFile: /src/cpython/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/cpython/Objects/namespaceobject.c:215,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/namespaceobject.c:220,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: namespace_reduce
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - PyTuple_New
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Objects/namespaceobject.c:229,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/namespaceobject.c:233,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:233,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:240,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: namespace_replace
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallNoArgs
    - Py_DECREF
    - _PyArg_NoPositional
    - PyDict_Update
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_replace(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: namespace_new
      Src: /src/cpython/Objects/namespaceobject.c:315,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - kwds
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 312
    functionDepth: 11
    functionLinenumber: 312
    functionLinenumberEnd: 327
    functionName: _PyNamespace_New
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 3
    functionsReached:
    - namespace_new
    - PyDict_Update
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyNamespace_New(PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PY_FOREACH_FUNC_EVENT
      Src: /src/cpython/Objects/funcobject.c:22,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/funcobject.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - event
    argTypes:
    - PyFunction_WatchEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: func_event_name
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PY_FOREACH_FUNC_EVENT
    - Py_UNREACHABLE
    linkageType: ''
    returnType: char
    signature: 'char *

      func_event_name(PyFunction_WatchEvent event)'
  - 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: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: CASE
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:35,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:39,1
    - Dst: cb
      Src: /src/cpython/Objects/funcobject.c:40,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/funcobject.c:41,1
    - Dst: func_event_name
      Src: /src/cpython/Objects/funcobject.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - interp
    - event
    - func
    - new_value
    argTypes:
    - PyInterpreterState*
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts:
    - condition: (i < FUNC_MAX_WATCHERS)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (cb != NULL)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: notify_func_watchers
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - func_event_name
    - assert
    - cb
    linkageType: ''
    returnType: void
    signature: "void notify_func_watchers(PyInterpreterState *interp, PyFunction_WatchEvent
      event,\n                     PyFunctionObject *func, PyObject *new_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:55,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/funcobject.c:55,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:56,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:57,1
    - Dst: notify_func_watchers
      Src: /src/cpython/Objects/funcobject.c:59,1
    - Dst: RARE_EVENT_INTERP_INC
      Src: /src/cpython/Objects/funcobject.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - event
    - func
    - new_value
    argTypes:
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(func) > 0)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (interp->_initialized)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 70
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 70
    functionName: handle_func_event
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyInterpreterState_GET
    - RARE_EVENT_INTERP_INC
    - Py_REFCNT
    - notify_func_watchers
    linkageType: ''
    returnType: void
    signature: "void handle_func_event(PyFunction_WatchEvent event, PyFunctionObject
      *func,\n                  PyObject *new_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:75,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:76,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyFunction_WatchCallback
    assertStmts:
    - condition: (interp->_initialized)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: PyFunction_AddWatcher
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: int
    signature: int PyFunction_AddWatcher(PyFunction_WatchCallback callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:91,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:93,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: PyFunction_ClearWatcher
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - _PyInterpreterState_GET
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyFunction_ClearWatcher(int watcher_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/funcobject.c:110,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:110,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/funcobject.c:114,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:116,1
    - Dst: _Py_INCREF_DICT
      Src: /src/cpython/Objects/funcobject.c:119,1
    - Dst: _Py_INCREF_BUILTINS
      Src: /src/cpython/Objects/funcobject.c:121,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:123,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:124,1
    - Dst: _Py_INCREF_CODE
      Src: /src/cpython/Objects/funcobject.c:125,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:127,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:128,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:129,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:130,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/funcobject.c:142,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - constr
    argTypes:
    - PyFrameConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 106
    functionDepth: 8
    functionLinenumber: 106
    functionLinenumberEnd: 145
    functionName: _PyFunction_FromConstructor
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _Py_INCREF_BUILTINS
    - _PyObject_GC_TRACK
    - _Py_ID
    - _Py_INCREF_CODE
    - _Py_INCREF_DICT
    - Py_NewRef
    - handle_func_event
    - Py_XNewRef
    - PyDict_GetItemRef
    - PyObject_GC_New
    linkageType: ''
    returnType: PyFunctionObject
    signature: 'PyFunctionObject *

      _PyFunction_FromConstructor(PyFrameConstructor *constr)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:150,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:151,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:151,1
    - Dst: _Py_INCREF_DICT
      Src: /src/cpython/Objects/funcobject.c:152,1
    - Dst: _Py_INCREF_CODE
      Src: /src/cpython/Objects/funcobject.c:155,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:157,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:158,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:163,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:164,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:167,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:167,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:170,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/funcobject.c:170,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Objects/funcobject.c:171,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/funcobject.c:172,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:179,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/funcobject.c:184,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:184,1
    - Dst: _PyDict_LoadBuiltinsFromGlobals
      Src: /src/cpython/Objects/funcobject.c:188,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/funcobject.c:193,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/funcobject.c:225,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/funcobject.c:227,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:236,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:237,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:238,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 68
    argCount: 3
    argNames:
    - code
    - globals
    - qualname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(globals))
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (code_obj->co_name != NULL)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (qualname != NULL)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Check(consts))
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (globals != NULL)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Size(consts) >= 1)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 240
      start: 147
    functionDepth: 8
    functionLinenumber: 147
    functionLinenumberEnd: 240
    functionName: PyFunction_NewWithQualName
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyObject_GC_TRACK
    - handle_func_event
    - PyDict_GetItemRef
    - Py_INCREF
    - _Py_INCREF_CODE
    - PyTuple_Size
    - PyUnicode_Check
    - PyDict_Check
    - Py_DECREF
    - PyTuple_Check
    - _Py_ID
    - _Py_INCREF_DICT
    - Py_NewRef
    - _PyDict_LoadBuiltinsFromGlobals
    - _PyObject_SetDeferredRefcount
    - PyTuple_GetItem
    - PyObject_GC_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - version
    argTypes:
    - PyInterpreterState*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: get_cache_item
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct _func_version_cache_item
    signature: 'struct _func_version_cache_item *

      get_cache_item(PyInterpreterState *interp, uint32_t version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:312,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:313,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:318,1
    - Dst: get_cache_item
      Src: /src/cpython/Objects/funcobject.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - func
    - version
    argTypes:
    - PyFunctionObject*
    - uint32_t
    assertStmts:
    - condition: (func->func_version == FUNC_VERSION_UNSET)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (version >= FUNC_VERSION_FIRST_VALID)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: _PyFunction_SetVersion
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - assert
    - get_cache_item
    linkageType: ''
    returnType: void
    signature: void _PyFunction_SetVersion(PyFunctionObject *func, uint32_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cache_item
      Src: /src/cpython/Objects/funcobject.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - func
    argTypes:
    - PyInterpreterState*
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 341
    functionName: func_clear_version
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - get_cache_item
    linkageType: ''
    returnType: void
    signature: void func_clear_version(PyInterpreterState *interp, PyFunctionObject
      *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:351,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/funcobject.c:352,1
    - Dst: func_clear_version
      Src: /src/cpython/Objects/funcobject.c:353,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/funcobject.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: _PyFunction_ClearVersion
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - func_clear_version
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: void
    signature: void _PyFunction_ClearVersion(PyFunctionObject *func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:361,1
    - Dst: get_cache_item
      Src: /src/cpython/Objects/funcobject.c:362,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:364,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/funcobject.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts:
    - condition: (PyCode_Check(slot->code))
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 372
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 372
    functionName: _PyFunction_ClearCodeByVersion
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - PyCode_Check
    - _PyInterpreterState_GET
    - assert
    - get_cache_item
    linkageType: ''
    returnType: void
    signature: void _PyFunction_ClearCodeByVersion(uint32_t version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:380,1
    - Dst: get_cache_item
      Src: /src/cpython/Objects/funcobject.c:381,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:383,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/funcobject.c:383,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - version
    - p_code
    argTypes:
    - uint32_t
    - PyObject**
    assertStmts:
    - condition: (slot->func->func_code == slot->code)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyCode_Check(slot->code))
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 398
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 398
    functionName: _PyFunction_LookupByVersion
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - _PyInterpreterState_GET
    - assert
    - get_cache_item
    linkageType: ''
    returnType: PyFunctionObject
    signature: 'PyFunctionObject *

      _PyFunction_LookupByVersion(uint32_t version, PyObject **p_code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: _PyFunction_GetVersionForCurrentState
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_NewWithQualName
      Src: /src/cpython/Objects/funcobject.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - globals
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 9
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: PyFunction_New
    functionSourceFile: /src/cpython/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/cpython/Objects/funcobject.c:415,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: PyFunction_GetCode
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 3
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetCode(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:425,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: PyFunction_GetGlobals
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetGlobals(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:435,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 440
    functionName: PyFunction_GetModule
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 3
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetModule(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:445,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: PyFunction_GetDefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetDefaults(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:455,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:456,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:461,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:465,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:468,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:470,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - op
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 473
    functionName: PyFunction_SetDefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - PyTuple_Check
    - PyErr_BadInternalCall
    - PyErr_SetString
    - _PyFunction_ClearVersion
    - handle_func_event
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:478,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - vectorcall
    argTypes:
    - PyFunctionObject*
    - vectorcallfunc
    assertStmts:
    - condition: (func != NULL)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 481
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 481
    functionName: PyFunction_SetVectorcall
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - _PyFunction_ClearVersion
    - assert
    linkageType: ''
    returnType: void
    signature: void PyFunction_SetVectorcall(PyFunctionObject *func, vectorcallfunc
      vectorcall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:486,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 491
    functionName: PyFunction_GetKwDefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetKwDefaults(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:496,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:497,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:502,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:506,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:510,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:512,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - op
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 515
    functionName: PyFunction_SetKwDefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - PyErr_BadInternalCall
    - PyErr_SetString
    - _PyFunction_ClearVersion
    - handle_func_event
    - Py_XSETREF
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetKwDefaults(PyObject *op, PyObject *defaults)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:520,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: PyFunction_GetClosure
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetClosure(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:530,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:531,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:536,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:537,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:540,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:542,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:545,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 548
    functionName: PyFunction_SetClosure
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - PyTuple_Check
    - PyErr_BadInternalCall
    - _PyFunction_ClearVersion
    - Py_XSETREF
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetClosure(PyObject *op, PyObject *closure)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/funcobject.c:554,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/funcobject.c:557,1
    - Dst: _PyObject_CallOneArg
      Src: /src/cpython/Objects/funcobject.c:558,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:562,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:566,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:569,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/funcobject.c:572,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/funcobject.c:574,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:579,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:579,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:581,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/funcobject.c:582,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/funcobject.c:583,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/funcobject.c:584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:587,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:591,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:593,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:593,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyFunctionObject*
    assertStmts:
    - condition: (PyDict_Check(op->func_annotations))
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_GET_SIZE(ann_tuple) % 2 == 0)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 595
      start: 550
    functionDepth: 10
    functionLinenumber: 550
    functionLinenumberEnd: 595
    functionName: func_get_annotation_dict
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyDict_SetItem
    - _PyLong_GetOne
    - PyCallable_Check
    - Py_SETREF
    - PyDict_New
    - Py_XSETREF
    - PyErr_Format
    - _PyObject_CallOneArg
    - PyTuple_GET_ITEM
    - PyDict_Check
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_annotation_dict(PyFunctionObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:600,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:601,1
    - Dst: func_get_annotation_dict
      Src: /src/cpython/Objects/funcobject.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 597
    functionDepth: 11
    functionLinenumber: 597
    functionLinenumberEnd: 605
    functionName: PyFunction_GetAnnotations
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    - func_get_annotation_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetAnnotations(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:610,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:611,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:616,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:617,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:620,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:625,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - op
    - annotations
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 628
    functionName: PyFunction_SetAnnotations
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - PyErr_BadInternalCall
    - PyErr_SetString
    - Py_XSETREF
    - PyDict_Check
    - Py_CLEAR
    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: 633
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 633
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:653,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:654,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 659
    functionName: func_get_code
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySys_Audit
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_code(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:664,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/funcobject.c:668,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:669,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:674,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:681,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:683,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Objects/funcobject.c:691,1
    - Dst: PyErr_Warn
      Src: /src/cpython/Objects/funcobject.c:696,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:704,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:705,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:706,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:706,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 708
    functionName: func_set_code
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyTuple_GET_SIZE
    - _PyFunction_CAST
    - PyErr_SetString
    - PyFunction_GET_CODE
    - PyErr_Warn
    - _PyFunction_ClearVersion
    - handle_func_event
    - Py_NewRef
    - Py_XSETREF
    - PyErr_Format
    - PySys_Audit
    linkageType: ''
    returnType: int
    signature: int func_set_code(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:713,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: func_get_name
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_name(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:720,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/funcobject.c:723,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:724,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:728,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 730
    functionName: func_set_name
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_CAST
    - PyErr_SetString
    - Py_NewRef
    - Py_XSETREF
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int func_set_name(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:735,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 737
    functionName: func_get_qualname
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_qualname(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:742,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/funcobject.c:745,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:746,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:750,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 752
    functionName: func_set_qualname
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_CAST
    - PyErr_SetString
    - Py_NewRef
    - Py_XSETREF
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int func_set_qualname(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:757,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:758,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 765
    functionName: func_get_defaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySys_Audit
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_defaults(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:772,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:775,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:776,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:781,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:785,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:790,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:791,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:792,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:792,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 794
    functionName: func_set_defaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_CAST
    - PyTuple_Check
    - PyErr_SetString
    - _PyFunction_ClearVersion
    - handle_func_event
    - Py_XSETREF
    - Py_XNewRef
    - PySys_Audit
    linkageType: ''
    returnType: int
    signature: int func_set_defaults(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:799,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:800,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 808
    functionName: func_get_kwdefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PySys_Audit
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_kwdefaults(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:813,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:818,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:819,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:824,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:828,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:833,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:834,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:835,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:835,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 837
    functionName: func_set_kwdefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_CAST
    - PyErr_SetString
    - PySys_Audit
    - _PyFunction_ClearVersion
    - handle_func_event
    - Py_XSETREF
    - Py_XNewRef
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int func_set_kwdefaults(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 855
    functionName: function___annotate___get_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function___annotate___get_impl(PyFunctionObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:868,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/funcobject.c:872,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:873,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/funcobject.c:876,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:877,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:877,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 886
    functionName: function___annotate___set_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyCallable_Check
    - Py_IsNone
    - Py_XNewRef
    - Py_XSETREF
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int function___annotate___set_impl(PyFunctionObject *self, PyObject
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/funcobject.c:902,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/funcobject.c:903,1
    - Dst: func_get_annotation_dict
      Src: /src/cpython/Objects/funcobject.c:907,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 896
    functionDepth: 11
    functionLinenumber: 896
    functionLinenumberEnd: 909
    functionName: function___annotations___get_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - func_get_annotation_dict
    - PyCallable_Check
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function___annotations___get_impl(PyFunctionObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:926,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:927,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:931,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:931,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 934
    functionName: function___annotations___set_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_XNewRef
    - Py_XSETREF
    - PyDict_Check
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int function___annotations___set_impl(PyFunctionObject *self, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/funcobject.c:949,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:952,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:952,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFunctionObject*
    assertStmts:
    - condition: (PyTuple_Check(self->func_typeparams))
      pos:
        line_end: 951
        line_start: 951
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 954
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 954
    functionName: function___type_params___get_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - Py_NewRef
    - PyTuple_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function___type_params___get_impl(PyFunctionObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:968,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:969,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:973,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 975
    functionName: function___type_params___set_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyErr_SetString
    - Py_NewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int function___type_params___set_impl(PyFunctionObject *self, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:981,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:981,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:982,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:982,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:984,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:984,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - Py_UNUSED(ignored)
    - func
    - type_params
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Check(type_params))
      pos:
        line_end: 981
        line_start: 981
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 986
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 986
    functionName: _Py_set_function_type_params
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - PyTuple_Check
    - Py_NewRef
    - Py_XSETREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_set_function_type_params(PyThreadState *Py_UNUSED(ignored),
      PyObject *func,\n                             PyObject *type_params)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/funcobject.c:1039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1040,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1044,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1045,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1049,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1051,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1056,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1061,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1062,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:1068,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1070,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/funcobject.c:1076,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/funcobject.c:1077,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1078,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1080,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:1084,1
    - Dst: PyFunction_New
      Src: /src/cpython/Objects/funcobject.c:1088,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:1094,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1094,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1097,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1100,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1103,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 7
    argNames:
    - type
    - code
    - globals
    - name
    - defaults
    - closure
    - kwdefaults
    argTypes:
    - PyTypeObject*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1030
    functionDepth: 10
    functionLinenumber: 1030
    functionLinenumberEnd: 1107
    functionName: func_new_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyFunction_New
    - PyTuple_Check
    - PyCell_Check
    - PyErr_SetString
    - PySys_Audit
    - Py_SETREF
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfunc_new_impl(PyTypeObject *type, PyCodeObject *code,
      PyObject *globals,\n              PyObject *name, PyObject *defaults, PyObject
      *closure,\n              PyObject *kwdefaults)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:1112,1
    - Dst: func_clear_version
      Src: /src/cpython/Objects/funcobject.c:1113,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:1113,1
    - Dst: _Py_DECREF_DICT
      Src: /src/cpython/Objects/funcobject.c:1117,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Objects/funcobject.c:1122,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1124,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1125,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1126,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1127,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1128,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1129,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1130,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1131,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1132,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:1138,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/funcobject.c:1138,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:1139,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/funcobject.c:1139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1109
    functionDepth: 2
    functionLinenumber: 1109
    functionLinenumberEnd: 1141
    functionName: func_clear
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _Py_DECREF_BUILTINS
    - _Py_DECREF_DICT
    - _PyFunction_CAST
    - func_clear_version
    - _Py_STR
    - _PyInterpreterState_GET
    - Py_SETREF
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int func_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:1146,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/funcobject.c:1147,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:1148,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/funcobject.c:1149,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/funcobject.c:1152,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/funcobject.c:1153,1
    - Dst: func_clear
      Src: /src/cpython/Objects/funcobject.c:1154,1
    - Dst: _Py_DECREF_CODE
      Src: /src/cpython/Objects/funcobject.c:1156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1158,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/funcobject.c:1159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1143
    functionDepth: 4
    functionLinenumber: 1143
    functionLinenumberEnd: 1160
    functionName: func_dealloc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyFunction_CAST
    - FT_CLEAR_WEAKREFS
    - _Py_DECREF_CODE
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - handle_func_event
    - func_clear
    - _PyObject_ResurrectStart
    - _PyObject_ResurrectEnd
    linkageType: ''
    returnType: void
    signature: void func_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:1165,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/funcobject.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1162
    functionDepth: 10
    functionLinenumber: 1162
    functionLinenumberEnd: 1168
    functionName: func_repr
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:1173,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1174,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1175,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1176,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1177,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1178,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1179,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1180,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1181,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1182,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1183,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1184,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1185,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1186,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1189
    functionName: func_traverse
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyFunction_CAST
    linkageType: ''
    returnType: int
    signature: int func_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1196,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/funcobject.c:1198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - func
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1192
    functionDepth: 2
    functionLinenumber: 1192
    functionLinenumberEnd: 1199
    functionName: func_descr_get
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_descr_get(PyObject *func, PyObject *obj, PyObject *type)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1248,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/funcobject.c:1248,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1249,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:1249,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Objects/funcobject.c:1252,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1253,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1254,1
    - Dst: _PyFunction_GET_BUILTINS
      Src: /src/cpython/Objects/funcobject.c:1259,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1260,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1261,1
    - Dst: PyFunction_GET_DEFAULTS
      Src: /src/cpython/Objects/funcobject.c:1266,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1268,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1268,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:1269,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1270,1
    - Dst: PyFunction_GET_KW_DEFAULTS
      Src: /src/cpython/Objects/funcobject.c:1276,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1278,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1278,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/funcobject.c:1279,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1280,1
    - Dst: PyFunction_GET_CLOSURE
      Src: /src/cpython/Objects/funcobject.c:1286,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1288,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1288,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:1289,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1290,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Objects/funcobject.c:1295,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Objects/funcobject.c:1296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - tstate
    - func
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(closure))
      pos:
        line_end: 1287
        line_start: 1287
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1247
        line_start: 1247
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Check(defaults))
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyDict_Check(kwdefaults))
      pos:
        line_end: 1277
        line_start: 1277
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 1248
        line_start: 1248
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 1300
      start: 1245
    functionDepth: 13
    functionLinenumber: 1245
    functionLinenumberEnd: 1300
    functionName: _PyFunction_VerifyStateless
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_GET_CLOSURE
    - _PyFunction_GET_BUILTINS
    - PyFunction_Check
    - PyTuple_GET_SIZE
    - PyFunction_GET_DEFAULTS
    - PyErr_Occurred
    - _PyErr_Format
    - PyTuple_Check
    - PyFunction_GET_CODE
    - _PyCode_VerifyStateless
    - PyFunction_GET_GLOBALS
    - PyDict_Size
    - _PyErr_SetString
    - PyDict_Check
    - assert
    - PyFunction_GET_KW_DEFAULTS
    linkageType: ''
    returnType: int
    signature: int _PyFunction_VerifyStateless(PyThreadState *tstate, PyObject *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/funcobject.c:1307,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/funcobject.c:1309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - wrapper
    - wrapped
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1313
    functionName: functools_copy_attr
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - Py_DECREF
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int functools_copy_attr(PyObject *wrapper, PyObject *wrapped, PyObject
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/cpython/Objects/funcobject.c:1326,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Objects/funcobject.c:1327,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Objects/funcobject.c:1328,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Objects/funcobject.c:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - wrapper
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1333
    functionName: functools_wraps
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - COPY_ATTR
    linkageType: ''
    returnType: int
    signature: int functools_wraps(PyObject *wrapper, PyObject *wrapped)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1326
    functionName: COPY_ATTR
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/funcobject.c:1340,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/funcobject.c:1345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1350,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/funcobject.c:1353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1355,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/funcobject.c:1358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - wrapped
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1337
    functionDepth: 14
    functionLinenumber: 1337
    functionLinenumberEnd: 1365
    functionName: descriptor_get_wrapped_attribute
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItem
    - PyObject_GenericGetDict
    - PyObject_GetAttr
    - PyDict_GetItemRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descriptor_get_wrapped_attribute(PyObject *wrapped, PyObject *obj, PyObject
      *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/funcobject.c:1371,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/funcobject.c:1376,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/funcobject.c:1377,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/funcobject.c:1378,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1394,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/funcobject.c:1395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - oobj
    - name
    - value
    - type_name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1367
    functionDepth: 14
    functionLinenumber: 1367
    functionLinenumberEnd: 1397
    functionName: descriptor_set_wrapped_attribute
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItem
    - PyDict_DelItem
    - PyObject_GenericGetDict
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int descriptor_set_wrapped_attribute(PyObject *oobj, PyObject *name,
      PyObject *value,\n                                 char *type_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1429
    functionName: _PyClassMethod_CAST
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyClassMethod_CAST(cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1433,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/funcobject.c:1434,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1435,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1436,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1438
    functionName: cm_dealloc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyClassMethod_CAST
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void cm_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1443,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1444,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1447
    functionName: cm_traverse
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyClassMethod_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cm_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1452,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1453,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1456
    functionName: cm_clear
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyClassMethod_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int cm_clear(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1465,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1470,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/funcobject.c:1471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1459
    functionDepth: 2
    functionLinenumber: 1459
    functionLinenumberEnd: 1472
    functionName: cm_descr_get
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_TYPE
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/funcobject.c:1480,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/funcobject.c:1482,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:1484,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1484,1
    - Dst: functools_wraps
      Src: /src/cpython/Objects/funcobject.c:1486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1490
    functionName: cm_init
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyArg_UnpackTuple
    - functools_wraps
    - Py_NewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int cm_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1501,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Objects/funcobject.c:1502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1510
    functionName: cm_get___isabstractmethod__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsAbstract
    - _PyClassMethod_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_get___isabstractmethod__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1515,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1516,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1512
    functionDepth: 15
    functionLinenumber: 1512
    functionLinenumberEnd: 1517
    functionName: cm_get___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyClassMethod_CAST
    - descriptor_get_wrapped_attribute
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_get___annotations__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descriptor_set_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1522,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1519
    functionDepth: 15
    functionLinenumber: 1519
    functionLinenumberEnd: 1523
    functionName: cm_set___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - descriptor_set_wrapped_attribute
    linkageType: ''
    returnType: int
    signature: int cm_set___annotations__(PyObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1528,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1529,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1525
    functionDepth: 15
    functionLinenumber: 1525
    functionLinenumberEnd: 1530
    functionName: cm_get___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyClassMethod_CAST
    - descriptor_get_wrapped_attribute
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_get___annotate__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descriptor_set_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1535,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1532
    functionDepth: 15
    functionLinenumber: 1532
    functionLinenumberEnd: 1536
    functionName: cm_set___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - descriptor_set_wrapped_attribute
    linkageType: ''
    returnType: int
    signature: int cm_set___annotate__(PyObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1555,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/funcobject.c:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1552
    functionDepth: 10
    functionLinenumber: 1552
    functionLinenumberEnd: 1557
    functionName: cm_repr
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyClassMethod_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/funcobject.c:1628,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1624
    functionDepth: 4
    functionLinenumber: 1624
    functionLinenumberEnd: 1633
    functionName: PyClassMethod_New
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyClassMethod_New(PyObject *callable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1663
    functionName: _PyStaticMethod_CAST
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStaticMethod_CAST(cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1667,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/funcobject.c:1668,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1669,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1670,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1672
    functionName: sm_dealloc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticMethod_CAST
    - Py_XDECREF
    - Py_TYPE
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void sm_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1677,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1678,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1681
    functionName: sm_traverse
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticMethod_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int sm_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1686,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1687,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1683
    functionDepth: 1
    functionLinenumber: 1683
    functionLinenumberEnd: 1690
    functionName: sm_clear
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticMethod_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int sm_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1698,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1703
    functionName: sm_descr_get
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/funcobject.c:1711,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/funcobject.c:1713,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:1715,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1715,1
    - Dst: functools_wraps
      Src: /src/cpython/Objects/funcobject.c:1717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1705
    functionDepth: 1
    functionLinenumber: 1705
    functionLinenumberEnd: 1721
    functionName: sm_init
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyArg_UnpackTuple
    - functools_wraps
    - Py_NewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int sm_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/cpython/Objects/funcobject.c:1727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - callable
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1723
    functionDepth: 5
    functionLinenumber: 1723
    functionLinenumberEnd: 1728
    functionName: sm_call
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_call(PyObject *callable, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1739,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Objects/funcobject.c:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1748
    functionName: sm_get___isabstractmethod__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticMethod_CAST
    - _PyObject_IsAbstract
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_get___isabstractmethod__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1753,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1754,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1750
    functionDepth: 15
    functionLinenumber: 1750
    functionLinenumberEnd: 1755
    functionName: sm_get___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticMethod_CAST
    - _Py_ID
    - descriptor_get_wrapped_attribute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_get___annotations__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descriptor_set_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1760,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1757
    functionDepth: 15
    functionLinenumber: 1757
    functionLinenumberEnd: 1761
    functionName: sm_set___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - descriptor_set_wrapped_attribute
    linkageType: ''
    returnType: int
    signature: int sm_set___annotations__(PyObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1766,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1767,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1763
    functionDepth: 15
    functionLinenumber: 1763
    functionLinenumberEnd: 1768
    functionName: sm_get___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticMethod_CAST
    - _Py_ID
    - descriptor_get_wrapped_attribute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_get___annotate__(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descriptor_set_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1773,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1770
    functionDepth: 15
    functionLinenumber: 1770
    functionLinenumberEnd: 1774
    functionName: sm_set___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - descriptor_set_wrapped_attribute
    linkageType: ''
    returnType: int
    signature: int sm_set___annotate__(PyObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1792,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/funcobject.c:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1789
    functionDepth: 10
    functionLinenumber: 1789
    functionLinenumberEnd: 1794
    functionName: sm_repr
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticMethod_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/funcobject.c:1863,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1859
    functionDepth: 4
    functionLinenumber: 1859
    functionLinenumberEnd: 1868
    functionName: PyStaticMethod_New
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - Py_NewRef
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStaticMethod_New(PyObject *callable)'
  - 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: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: _PyModule_CAST
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyModule_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: _PyModule_IsExtension
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int _PyModule_IsExtension(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:55,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Objects/moduleobject.c:57,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/moduleobject.c:58,1
    - Dst: _PyImport_GetNextModuleIndex
      Src: /src/cpython/Objects/moduleobject.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts:
    - condition: (PyModuleDef_Type.tp_flags & Py_TPFLAGS_READY)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: PyModuleDef_Init
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 127
    functionsReached:
    - Py_SET_TYPE
    - Py_SET_REFCNT
    - _PyImport_GetNextModuleIndex
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModuleDef_Init(PyModuleDef* def)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:68,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:72,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:72,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:74,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:74,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:76,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:76,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:78,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:78,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:80,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:80,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/moduleobject.c:82,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/moduleobject.c:83,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/moduleobject.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - mod
    - md_dict
    - name
    - doc
    argTypes:
    - PyModuleObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (md_dict != NULL)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 9
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: module_init_dict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - _Py_ID
    - PyUnicode_CheckExact
    - Py_NewRef
    - Py_XSETREF
    - assert
    linkageType: ''
    returnType: int
    signature: "int module_init_dict(PyModuleObject *mod, PyObject *md_dict,\n                 PyObject
      *name, PyObject *doc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_AllocNoTrack
      Src: /src/cpython/Objects/moduleobject.c:93,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/moduleobject.c:100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - mt
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 10
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: new_module_notrack
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyType_AllocNoTrack
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyModuleObject
    signature: 'PyModuleObject *

      new_module_notrack(PyTypeObject *mt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_EnablePerThreadRefcounting
      Src: /src/cpython/Objects/moduleobject.c:111,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/moduleobject.c:112,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/moduleobject.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: track_module
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - _PyObject_SetDeferredRefcount
    - _PyDict_EnablePerThreadRefcounting
    linkageType: ''
    returnType: void
    signature: void track_module(PyModuleObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_module_notrack
      Src: /src/cpython/Objects/moduleobject.c:119,1
    - Dst: track_module
      Src: /src/cpython/Objects/moduleobject.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mt
    - args
    - kws
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 11
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: new_module
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - new_module_notrack
    - track_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_module(PyTypeObject *mt, PyObject *args, PyObject *kws)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_module_notrack
      Src: /src/cpython/Objects/moduleobject.c:129,1
    - Dst: module_init_dict
      Src: /src/cpython/Objects/moduleobject.c:132,1
    - Dst: track_module
      Src: /src/cpython/Objects/moduleobject.c:134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: PyModule_NewObject
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - new_module_notrack
    - Py_DECREF
    - module_init_dict
    - track_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_NewObject(PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/moduleobject.c:146,1
    - Dst: PyModule_NewObject
      Src: /src/cpython/Objects/moduleobject.c:149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 12
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: PyModule_New
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 4
    functionsReached:
    - PyModule_NewObject
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_New(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/moduleobject.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - name
    - module_api_version
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: check_api_version
    functionSourceFile: /src/cpython/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/cpython/Objects/moduleobject.c:183,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/moduleobject.c:188,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/moduleobject.c:192,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/moduleobject.c:193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - module
    - name
    - functions
    argTypes:
    - PyObject*
    - PyObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: _add_methods_to_object
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCFunction_NewEx
    - PyErr_SetString
    - PyObject_SetAttrString
    - _PyObject_SetDeferredRefcount
    linkageType: ''
    returnType: int
    signature: int _add_methods_to_object(PyObject *module, PyObject *name, PyMethodDef
      *functions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_IsInitialized
      Src: /src/cpython/Objects/moduleobject.c:206,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/moduleobject.c:206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:207,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Objects/moduleobject.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - module_api_version
    argTypes:
    - PyModuleDef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: PyModule_Create2
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyImport_IsInitialized
    - PyErr_SetString
    - _PyInterpreterState_GET
    - _PyModule_CreateInitialized
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_Create2(PyModuleDef* module, int module_api_version)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Objects/moduleobject.c:220,1
    - Dst: check_api_version
      Src: /src/cpython/Objects/moduleobject.c:223,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:227,1
    - Dst: _PyImport_ResolveNameWithPackageContext
      Src: /src/cpython/Objects/moduleobject.c:232,1
    - Dst: PyModule_New
      Src: /src/cpython/Objects/moduleobject.c:234,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/moduleobject.c:239,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/moduleobject.c:241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:242,1
    - Dst: memset
      Src: /src/cpython/Objects/moduleobject.c:245,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Objects/moduleobject.c:249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:250,1
    - Dst: PyModule_SetDocString
      Src: /src/cpython/Objects/moduleobject.c:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:256,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - module
    - module_api_version
    argTypes:
    - PyModuleDef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 214
    functionDepth: 13
    functionLinenumber: 214
    functionLinenumberEnd: 265
    functionName: _PyModule_CreateInitialized
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - check_api_version
    - Py_DECREF
    - _PyImport_ResolveNameWithPackageContext
    - memset
    - PyModule_SetDocString
    - PyModuleDef_Init
    - PyErr_Format
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyModule_AddFunctions
    - PyModule_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyModule_CreateInitialized(PyModuleDef* module, int module_api_version)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/moduleobject.c:281,1
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Objects/moduleobject.c:283,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/moduleobject.c:285,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:289,1
    - Dst: check_api_version
      Src: /src/cpython/Objects/moduleobject.c:294,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:299,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:310,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:323,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:334,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:344,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:345,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/moduleobject.c:359,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Objects/moduleobject.c:360,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/moduleobject.c:367,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Objects/moduleobject.c:368,1
    - Dst: create
      Src: /src/cpython/Objects/moduleobject.c:374,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:376,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:377,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:384,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Objects/moduleobject.c:385,1
    - Dst: PyModule_NewObject
      Src: /src/cpython/Objects/moduleobject.c:393,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:399,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:409,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:416,1
    - Dst: _add_methods_to_object
      Src: /src/cpython/Objects/moduleobject.c:426,1
    - Dst: PyModule_SetDocString
      Src: /src/cpython/Objects/moduleobject.c:433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:443,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:444,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 131
    argCount: 3
    argNames:
    - def
    - spec
    - module_api_version
    argTypes:
    - PyModuleDef*
    - PyObject*
    - int
    assertStmts:
    - condition: (cur_slot->slot < 0 || cur_slot->slot > _Py_mod_LAST_SLOT)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 446
      start: 267
    functionDepth: 12
    functionLinenumber: 267
    functionLinenumberEnd: 446
    functionName: PyModule_FromDefAndSpec2
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - check_api_version
    - _Py_IsMainInterpreter
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyErr_FormatFromCause
    - _add_methods_to_object
    - PyErr_Occurred
    - create
    - _PyInterpreterState_GET
    - PyModule_SetDocString
    - PyModuleDef_Init
    - PyModule_NewObject
    - PyUnicode_AsUTF8
    - PyErr_Format
    - PyModule_Check
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_FromDefAndSpec2(PyModuleDef* def, PyObject *spec, int module_api_version)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:452,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/moduleobject.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - gil
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: PyUnstable_Module_SetGIL
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 13
    functionsReached:
    - PyModule_Check
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Module_SetGIL(PyObject *module, void *gil)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetName
      Src: /src/cpython/Objects/moduleobject.c:468,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/moduleobject.c:478,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/moduleobject.c:480,1
    - Dst: memset
      Src: /src/cpython/Objects/moduleobject.c:483,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:499,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:500,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:507,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Objects/moduleobject.c:508,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:520,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - module
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 528
    functionName: PyModule_ExecDef
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatFromCause
    - PyErr_Occurred
    - PyModule_GetName
    - memset
    - PyErr_Format
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int PyModule_ExecDef(PyObject *module, PyModuleDef *def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetNameObject
      Src: /src/cpython/Objects/moduleobject.c:534,1
    - Dst: _add_methods_to_object
      Src: /src/cpython/Objects/moduleobject.c:539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - functions
    argTypes:
    - PyObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 542
    functionName: PyModule_AddFunctions
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 62
    functionsReached:
    - PyModule_GetNameObject
    - Py_DECREF
    - _add_methods_to_object
    linkageType: ''
    returnType: int
    signature: int PyModule_AddFunctions(PyObject *m, PyMethodDef *functions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/moduleobject.c:549,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/moduleobject.c:550,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:550,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - m
    - doc
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 556
    functionName: PyModule_SetDocString
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    - PyObject_SetAttr
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyModule_SetDocString(PyObject *m, const char *doc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:561,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/moduleobject.c:562,1
    - Dst: _PyModule_GetDict
      Src: /src/cpython/Objects/moduleobject.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 566
    functionName: PyModule_GetDict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 16
    functionsReached:
    - PyModule_Check
    - PyErr_BadInternalCall
    - _PyModule_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetDict(PyObject *m)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:571,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:572,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:576,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:580,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:580,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:585,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:591,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 568
    functionDepth: 8
    functionLinenumber: 568
    functionLinenumberEnd: 595
    functionName: PyModule_GetNameObject
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - PyErr_SetString
    - PyUnicode_Check
    - PyModule_Check
    - PyDict_GetItemRef
    - PyDict_Check
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetNameObject(PyObject *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetNameObject
      Src: /src/cpython/Objects/moduleobject.c:600,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:604,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/moduleobject.c:604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:605,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(name) >= 2)
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 607
      start: 597
    functionDepth: 9
    functionLinenumber: 597
    functionLinenumberEnd: 607
    functionName: PyModule_GetName
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyModule_GetNameObject
    - Py_DECREF
    - PyUnicode_AsUTF8
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      PyModule_GetName(PyObject *m)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:613,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:614,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:623,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:623,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 609
    functionDepth: 8
    functionLinenumber: 609
    functionLinenumberEnd: 641
    functionName: _PyModule_GetFilenameObject
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyModule_Check
    - PyDict_GetItemRef
    - PyUnicode_Check
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyModule_GetFilenameObject(PyObject *mod)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetFilenameObject
      Src: /src/cpython/Objects/moduleobject.c:646,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 643
    functionDepth: 9
    functionLinenumber: 643
    functionLinenumberEnd: 655
    functionName: PyModule_GetFilenameObject
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyModule_GetFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetFilenameObject(PyObject *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetFilenameObject
      Src: /src/cpython/Objects/moduleobject.c:662,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 657
    functionDepth: 10
    functionLinenumber: 657
    functionLinenumberEnd: 668
    functionName: PyModule_GetFilename
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - Py_DECREF
    - PyModule_GetFilenameObject
    linkageType: ''
    returnType: char
    signature: 'char *

      PyModule_GetFilename(PyObject *m)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:675,1
    - Dst: _PyModule_GetFilenameObject
      Src: /src/cpython/Objects/moduleobject.c:677,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/moduleobject.c:687,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:688,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:691,1
    - Dst: strcpy
      Src: /src/cpython/Objects/moduleobject.c:694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - mod
    - buffer
    - maxlen
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (maxlen >= 0)
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (size >= 0)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 699
      start: 670
    functionDepth: 9
    functionLinenumber: 670
    functionLinenumberEnd: 699
    functionName: _PyModule_GetFilenameUTF8
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyModule_GetFilenameObject
    - strcpy
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyModule_GetFilenameUTF8(PyObject *mod, char *buffer, Py_ssize_t
      maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:704,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:705,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Objects/moduleobject.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 709
    functionName: PyModule_GetDef
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 9
    functionsReached:
    - PyModule_Check
    - PyErr_BadArgument
    - _PyModule_GetDef
    linkageType: ''
    returnType: PyModuleDef
    signature: 'PyModuleDef *

      PyModule_GetDef(PyObject* m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:714,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:715,1
    - Dst: _PyModule_GetState
      Src: /src/cpython/Objects/moduleobject.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 719
    functionName: PyModule_GetState
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 83
    functionsReached:
    - PyModule_Check
    - PyErr_BadArgument
    - _PyModule_GetState
    linkageType: ''
    returnType: void
    signature: 'void *

      PyModule_GetState(PyObject* m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_ClearDict
      Src: /src/cpython/Objects/moduleobject.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: _PyModule_Clear
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyModule_ClearDict
    linkageType: ''
    returnType: void
    signature: void _PyModule_Clear(PyObject *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/moduleobject.c:742,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/moduleobject.c:746,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:747,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/moduleobject.c:748,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/moduleobject.c:749,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:751,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Objects/moduleobject.c:753,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:755,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:757,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/moduleobject.c:758,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/moduleobject.c:767,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:768,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/moduleobject.c:769,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/moduleobject.c:770,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:773,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Objects/moduleobject.c:775,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:777,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:779,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/moduleobject.c:780,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - d
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 729
    functionDepth: 9
    functionLinenumber: 729
    functionLinenumberEnd: 791
    functionName: _PyModule_ClearDict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyDict_SetItem
    - _Py_GetConfig
    - _PyUnicode_EqualToASCIIString
    - PyDict_Next
    - PyErr_FormatUnraisable
    - PyUnicode_AsUTF8
    - PySys_WriteStderr
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void _PyModule_ClearDict(PyObject *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_init_dict
      Src: /src/cpython/Objects/moduleobject.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - name
    - doc
    argTypes:
    - PyModuleObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 812
    functionDepth: 10
    functionLinenumber: 812
    functionLinenumberEnd: 817
    functionName: module___init___impl
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - module_init_dict
    linkageType: ''
    returnType: int
    signature: int module___init___impl(PyModuleObject *self, PyObject *name, PyObject
      *doc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:822,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/moduleobject.c:824,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/moduleobject.c:826,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Objects/moduleobject.c:828,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/moduleobject.c:830,1
    - Dst: PyModuleObject*::md_def::m_free
      Src: /src/cpython/Objects/moduleobject.c:836,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:839,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:840,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/moduleobject.c:842,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/moduleobject.c:843,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 844
    functionName: module_dealloc
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_GetConfig
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - PyModuleObject*::md_def::m_free
    - _PyModule_CAST
    - PySys_FormatStderr
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void module_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:849,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/moduleobject.c:850,1
    - Dst: _PyImport_ImportlibModuleRepr
      Src: /src/cpython/Objects/moduleobject.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: module_repr
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyImport_ImportlibModuleRepr
    - _PyModule_CAST
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/moduleobject.c:863,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:863,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/moduleobject.c:865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 869
    functionName: _PyModuleSpec_IsInitializing
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - Py_DECREF
    - PyObject_IsTrue
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int _PyModuleSpec_IsInitializing(PyObject *spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/moduleobject.c:882,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:882,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/moduleobject.c:884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - spec
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 874
    functionDepth: 6
    functionLinenumber: 874
    functionLinenumberEnd: 888
    functionName: _PyModuleSpec_IsUninitializedSubmodule
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PySequence_Contains
    - PyObject_GetOptionalAttr
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PyModuleSpec_IsUninitializedSubmodule(PyObject *spec, PyObject
      *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/moduleobject.c:894,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:894,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/moduleobject.c:901,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:902,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/moduleobject.c:908,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:908,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:912,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - spec
    - p_origin
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (origin != NULL)
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 919
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 919
    functionName: _PyModuleSpec_GetFileOrigin
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyModuleSpec_GetFileOrigin(PyObject *spec, PyObject **p_origin)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/moduleobject.c:936,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Objects/moduleobject.c:943,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:947,1
    - Dst: wcsrchr
      Src: /src/cpython/Objects/moduleobject.c:950,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/moduleobject.c:955,1
    - Dst: wcsrchr
      Src: /src/cpython/Objects/moduleobject.c:957,1
    - Dst: _Py_wgetcwd
      Src: /src/cpython/Objects/moduleobject.c:973,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/moduleobject.c:981,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - origin
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (size <= MAXPATHLEN)
      pos:
        line_end: 946
        line_start: 946
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 983
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 983
    functionName: _PyModule_IsPossiblyShadowing
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _Py_GetConfig
    - wcsrchr
    - PyUnicode_AsWideChar
    - wcscmp
    - _Py_wgetcwd
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyModule_IsPossiblyShadowing(PyObject *origin)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Objects/moduleobject.c:990,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:995,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/moduleobject.c:1001,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1005,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1007,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1008,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1008,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/moduleobject.c:1012,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/moduleobject.c:1013,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1017,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1026,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1026,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:1029,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1030,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1031,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1036,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1037,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1044,1
    - Dst: _PyModuleSpec_GetFileOrigin
      Src: /src/cpython/Objects/moduleobject.c:1049,1
    - Dst: _PyModule_IsPossiblyShadowing
      Src: /src/cpython/Objects/moduleobject.c:1053,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Objects/moduleobject.c:1060,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/moduleobject.c:1063,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/moduleobject.c:1064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1066,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1070,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1074,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1075,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Objects/moduleobject.c:1083,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1089,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1092,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1099,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1106,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1114,1
    - Dst: _PyModuleSpec_IsUninitializedSubmodule
      Src: /src/cpython/Objects/moduleobject.c:1115,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1117,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1123,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1133,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 104
    argCount: 3
    argNames:
    - m
    - name
    - suppress
    argTypes:
    - PyModuleObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (rc == 0)
      pos:
        line_end: 1113
        line_start: 1113
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (origin)
      pos:
        line_end: 1088
        line_start: 1088
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (m->md_dict != NULL)
      pos:
        line_end: 1006
        line_start: 1006
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (origin)
      pos:
        line_end: 1073
        line_start: 1073
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 1135
      start: 985
    functionDepth: 8
    functionLinenumber: 985
    functionLinenumberEnd: 1135
    functionName: _Py_module_getattro_impl
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyObject_GenericGetAttrWithDict
    - PyObject_CallOneArg
    - PyDict_GetItemRef
    - PyErr_Occurred
    - PyErr_Format
    - PySet_Contains
    - PyUnicode_Check
    - PyErr_Clear
    - _PyModuleSpec_GetFileOrigin
    - assert
    - Py_DECREF
    - _PyModuleSpec_IsInitializing
    - _Py_ID
    - PyAnySet_Check
    - PyErr_ExceptionMatches
    - PySys_GetOptionalAttrString
    - _PyModule_IsPossiblyShadowing
    - _PyModuleSpec_IsUninitializedSubmodule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_module_getattro_impl(PyModuleObject *m, PyObject *name, int suppress)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1141,1
    - Dst: _Py_module_getattro_impl
      Src: /src/cpython/Objects/moduleobject.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1138
    functionDepth: 9
    functionLinenumber: 1138
    functionLinenumberEnd: 1143
    functionName: _Py_module_getattro
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyModule_CAST
    - _Py_module_getattro_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_module_getattro(PyObject *self, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1148,1
    - Dst: PyModuleObject*::md_def::m_traverse
      Src: /src/cpython/Objects/moduleobject.c:1154,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/moduleobject.c:1159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1161
    functionName: module_traverse
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyModule_CAST
    - Py_VISIT
    - PyModuleObject*::md_def::m_traverse
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1166,1
    - Dst: PyModuleObject*::md_def::m_clear
      Src: /src/cpython/Objects/moduleobject.c:1172,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:1173,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/moduleobject.c:1174,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/moduleobject.c:1181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1183
    functionName: module_clear
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 22
    functionsReached:
    - Py_CLEAR
    - PyErr_Occurred
    - PyErr_FormatUnraisable
    - _PyModule_CAST
    - PyModuleObject*::md_def::m_clear
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/moduleobject.c:1189,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1189,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:1192,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/moduleobject.c:1193,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1193,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/moduleobject.c:1195,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:1197,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/moduleobject.c:1198,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1202,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1185
    functionDepth: 7
    functionLinenumber: 1185
    functionLinenumberEnd: 1208
    functionName: module_dir
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - PyDict_GetItemWithError
    - Py_XDECREF
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetAttr
    - PyDict_Keys
    - PyErr_Format
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_dir(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/moduleobject.c:1219,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1219,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:1223,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1216
    functionDepth: 3
    functionLinenumber: 1216
    functionLinenumberEnd: 1229
    functionName: module_get_dict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyObject_GetAttr
    - PyErr_Format
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_get_dict(PyModuleObject *m)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1234,1
    - Dst: module_get_dict
      Src: /src/cpython/Objects/moduleobject.c:1236,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1242,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1242,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1244,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1244,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/moduleobject.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1231
    functionDepth: 9
    functionLinenumber: 1231
    functionLinenumberEnd: 1250
    functionName: module_get_annotate
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - module_get_dict
    - PyDict_SetItem
    - Py_DECREF
    - _Py_ID
    - _PyModule_CAST
    - PyDict_GetItemRef
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_get_annotate(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1255,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:1257,1
    - Dst: module_get_dict
      Src: /src/cpython/Objects/moduleobject.c:1261,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/moduleobject.c:1266,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/moduleobject.c:1266,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:1267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1268,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1272,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1273,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/moduleobject.c:1276,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/moduleobject.c:1277,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1252
    functionDepth: 9
    functionLinenumber: 1252
    functionLinenumberEnd: 1284
    functionName: module_set_annotate
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - module_get_dict
    - Py_DECREF
    - PyDict_SetItem
    - PyErr_SetString
    - _Py_ID
    - PyCallable_Check
    - _PyModule_CAST
    - Py_IsNone
    - PyDict_Pop
    linkageType: ''
    returnType: int
    signature: int module_set_annotate(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1289,1
    - Dst: module_get_dict
      Src: /src/cpython/Objects/moduleobject.c:1291,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1297,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1297,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1299,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1300,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Objects/moduleobject.c:1305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1311,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1318,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1320,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/moduleobject.c:1323,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/moduleobject.c:1324,1
    - Dst: _PyObject_CallOneArg
      Src: /src/cpython/Objects/moduleobject.c:1325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1328,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:1331,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1337,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/moduleobject.c:1342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1344,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1347,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1348,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/moduleobject.c:1350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1354,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1286
    functionDepth: 10
    functionLinenumber: 1286
    functionLinenumberEnd: 1356
    functionName: module_get_annotations
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - module_get_dict
    - Py_DECREF
    - PyDict_SetItem
    - _PyModuleSpec_IsInitializing
    - _Py_ID
    - PyCallable_Check
    - _PyLong_GetOne
    - _PyModule_CAST
    - PyDict_New
    - PyErr_Format
    - _PyObject_CallOneArg
    - PyDict_GetItemRef
    - PyDict_Check
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_get_annotations(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1361,1
    - Dst: module_get_dict
      Src: /src/cpython/Objects/moduleobject.c:1363,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1371,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1371,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/moduleobject.c:1375,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1375,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/moduleobject.c:1377,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1377,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/moduleobject.c:1384,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1388,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1358
    functionDepth: 9
    functionLinenumber: 1358
    functionLinenumberEnd: 1390
    functionName: module_set_annotations
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - module_get_dict
    - PyDict_SetItem
    - Py_DECREF
    - _Py_ID
    - PyErr_SetObject
    - _PyModule_CAST
    - PyDict_Pop
    linkageType: ''
    returnType: int
    signature: int module_set_annotations(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment-map.c:32,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment-map.c:32,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment-map.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - segment
    - bitidx
    argTypes:
    - mi_segment_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: mi_segment_map_index_of
    functionSourceFile: /src/cpython/Objects/mimalloc/segment-map.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_segment_map_index_of(const mi_segment_t* segment, size_t* bitidx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_segment_map_index_of
      Src: /src/cpython/Objects/mimalloc/segment-map.c:48,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment-map.c:49,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment-map.c:51,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/segment-map.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - segment
    argTypes:
    - mi_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: _mi_segment_map_allocated_at
    functionSourceFile: /src/cpython/Objects/mimalloc/segment-map.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - mi_atomic_cas_weak_release
    - mi_atomic_load_relaxed
    - mi_segment_map_index_of
    linkageType: ''
    returnType: void
    signature: void _mi_segment_map_allocated_at(const mi_segment_t* segment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_segment_map_index_of
      Src: /src/cpython/Objects/mimalloc/segment-map.c:60,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment-map.c:61,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment-map.c:63,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/segment-map.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - segment
    argTypes:
    - mi_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: _mi_segment_map_freed_at
    functionSourceFile: /src/cpython/Objects/mimalloc/segment-map.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - mi_atomic_cas_weak_release
    - mi_atomic_load_relaxed
    - mi_segment_map_index_of
    linkageType: ''
    returnType: void
    signature: void _mi_segment_map_freed_at(const mi_segment_t* segment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment-map.c:73,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment-map.c:74,1
    - Dst: mi_segment_map_index_of
      Src: /src/cpython/Objects/mimalloc/segment-map.c:76,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment-map.c:78,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/segment-map.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: _mi_segment_of
    functionSourceFile: /src/cpython/Objects/mimalloc/segment-map.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_likely
    - mi_segment_map_index_of
    - mi_atomic_load_relaxed
    - mi_assert_internal
    linkageType: ''
    returnType: mi_segment_t
    signature: mi_segment_t * _mi_segment_of(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_segment_of
      Src: /src/cpython/Objects/mimalloc/segment-map.c:128,1
    - Dst: _mi_arena_contains
      Src: /src/cpython/Objects/mimalloc/segment-map.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: mi_is_valid_pointer
    functionSourceFile: /src/cpython/Objects/mimalloc/segment-map.c
    functionUses: 0
    functionsReached:
    - _mi_segment_of
    - _mi_arena_contains
    linkageType: ''
    returnType: bool
    signature: bool mi_is_valid_pointer(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_is_valid_pointer
      Src: /src/cpython/Objects/mimalloc/segment-map.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/segment-map.c
    functionUses: 0
    functionsReached:
    - mi_is_valid_pointer
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_attr_noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: _mi_os_has_overcommit
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_has_overcommit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: _mi_os_has_virtual_reserve
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_has_virtual_reserve(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: _mi_os_page_size
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_os_page_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: _mi_os_large_page_size
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_page_size
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_os_large_page_size(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/os.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: _mi_os_use_large_page
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_option_is_enabled
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_use_large_page(size_t size, size_t alignment)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:56,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/os.c:61,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/os.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: _mi_os_good_alloc_size
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_page_size
    - mi_unlikely
    - _mi_align_up
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_os_good_alloc_size(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_mem_init
      Src: /src/cpython/Objects/mimalloc/os.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: _mi_os_init
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_prim_mem_init
    linkageType: ''
    returnType: void
    signature: void _mi_os_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/os.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - alignment
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: mi_align_up_ptr
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_align_up
    linkageType: ''
    returnType: void
    signature: void * mi_align_up_ptr(void* p, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_align_down
      Src: /src/cpython/Objects/mimalloc/os.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - alignment
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: mi_align_down_ptr
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_align_down
    linkageType: ''
    returnType: void
    signature: void * mi_align_down_ptr(void* p, size_t alignment)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/os.c:108,1
    - Dst: mi_atomic_add_acq_rel
      Src: /src/cpython/Objects/mimalloc/os.c:114,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/os.c:118,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/os.c:120,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/os.c:121,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/os.c:126,1
    - Dst: mi_atomic_add_acq_rel
      Src: /src/cpython/Objects/mimalloc/os.c:127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - try_alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: _mi_os_get_aligned_hint
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_heap_is_initialized
    - mi_atomic_cas_strong_acq_rel
    - _mi_heap_random_next
    - _mi_align_up
    - mi_atomic_add_acq_rel
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: void
    signature: void * _mi_os_get_aligned_hint(size_t try_alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:134,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - try_alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: _mi_os_get_aligned_hint
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _mi_os_get_aligned_hint(size_t try_alignment, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:147,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:148,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:148,1
    - Dst: _mi_prim_free
      Src: /src/cpython/Objects/mimalloc/os.c:150,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:152,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/os.c:155,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/os.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - addr
    - size
    - still_committed
    - tld_stats
    argTypes:
    - void*
    - size_t
    - bool
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: mi_os_prim_free
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - MI_UNUSED
    - _mi_warning_message
    - _mi_stat_decrease
    - _mi_prim_free
    - _mi_os_page_size
    linkageType: ''
    returnType: void
    signature: void mi_os_prim_free(void* addr, size_t size, bool still_committed,
      mi_stats_t* tld_stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_memkind_is_os
      Src: /src/cpython/Objects/mimalloc/os.c:160,1
    - Dst: _mi_os_good_alloc_size
      Src: /src/cpython/Objects/mimalloc/os.c:161,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:165,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:166,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:172,1
    - Dst: mi_os_free_huge_os_pages
      Src: /src/cpython/Objects/mimalloc/os.c:173,1
    - Dst: mi_os_prim_free
      Src: /src/cpython/Objects/mimalloc/os.c:176,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - addr
    - size
    - still_committed
    - memid
    - tld_stats
    argTypes:
    - void*
    - size_t
    - bool
    - mi_memid_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 183
    functionName: _mi_os_free_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_good_alloc_size
    - mi_memkind_is_os
    - mi_os_prim_free
    - mi_assert
    - mi_os_free_huge_os_pages
    linkageType: ''
    returnType: void
    signature: void _mi_os_free_ex(void* addr, size_t size, bool still_committed,
      mi_memid_t memid, mi_stats_t* tld_stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_free_ex
      Src: /src/cpython/Objects/mimalloc/os.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - size
    - memid
    - tld_stats
    argTypes:
    - void*
    - size_t
    - mi_memid_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: _mi_os_free
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_free_ex
    linkageType: ''
    returnType: void
    signature: void _mi_os_free(void* p, size_t size, mi_memid_t memid, mi_stats_t*
      tld_stats)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:196,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:196,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:197,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:198,1
    - Dst: _mi_prim_alloc
      Src: /src/cpython/Objects/mimalloc/os.c:205,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:207,1
    - Dst: mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/os.c:209,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/os.c:211,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/os.c:213,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/os.c:216,1
    - Dst: mi_track_mem_undefined
      Src: /src/cpython/Objects/mimalloc/os.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 7
    argNames:
    - size
    - try_alignment
    - commit
    - allow_large
    - is_large
    - is_zero
    - stats
    argTypes:
    - size_t
    - size_t
    - bool
    - bool
    - bool*
    - bool*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 222
    functionName: mi_os_prim_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_prim_alloc
    - mi_track_mem_defined
    - mi_track_mem_undefined
    - mi_assert_internal
    - mi_stat_counter_increase
    - _mi_warning_message
    - _mi_os_page_size
    - _mi_stat_increase
    linkageType: ''
    returnType: void
    signature: void * mi_os_prim_alloc(size_t size, size_t try_alignment, bool commit,
      bool allow_large, bool* is_large, bool* is_zero, mi_stats_t* stats)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:228,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:228,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:229,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:229,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:230,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:231,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:232,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:234,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/os.c:235,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:235,1
    - Dst: mi_os_prim_alloc
      Src: /src/cpython/Objects/mimalloc/os.c:238,1
    - Dst: mi_os_prim_free
      Src: /src/cpython/Objects/mimalloc/os.c:249,1
    - Dst: mi_os_prim_alloc
      Src: /src/cpython/Objects/mimalloc/os.c:255,1
    - Dst: mi_align_up_ptr
      Src: /src/cpython/Objects/mimalloc/os.c:262,1
    - Dst: _mi_os_commit
      Src: /src/cpython/Objects/mimalloc/os.c:266,1
    - Dst: mi_os_prim_alloc
      Src: /src/cpython/Objects/mimalloc/os.c:271,1
    - Dst: mi_align_up_ptr
      Src: /src/cpython/Objects/mimalloc/os.c:275,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/os.c:277,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:277,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:279,1
    - Dst: mi_os_prim_free
      Src: /src/cpython/Objects/mimalloc/os.c:280,1
    - Dst: mi_os_prim_free
      Src: /src/cpython/Objects/mimalloc/os.c:281,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:288,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 8
    argNames:
    - size
    - alignment
    - commit
    - allow_large
    - is_large
    - is_zero
    - base
    - stats
    argTypes:
    - size_t
    - size_t
    - bool
    - bool
    - bool*
    - bool*
    - void**
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 290
    functionName: mi_os_prim_alloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_align_up_ptr
    - _mi_os_commit
    - mi_assert_internal
    - mi_os_prim_free
    - _mi_align_up
    - mi_os_prim_alloc
    - _mi_os_page_size
    linkageType: ''
    returnType: void
    signature: void * mi_os_prim_alloc_aligned(size_t size, size_t alignment, bool
      commit, bool allow_large, bool* is_large, bool* is_zero, void** base, mi_stats_t*
      stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:298,1
    - Dst: _mi_memid_none
      Src: /src/cpython/Objects/mimalloc/os.c:299,1
    - Dst: _mi_os_good_alloc_size
      Src: /src/cpython/Objects/mimalloc/os.c:302,1
    - Dst: mi_os_prim_alloc
      Src: /src/cpython/Objects/mimalloc/os.c:305,1
    - Dst: _mi_memid_create_os
      Src: /src/cpython/Objects/mimalloc/os.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - size
    - memid
    - tld_stats
    argTypes:
    - size_t
    - mi_memid_t*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: _mi_os_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_good_alloc_size
    - _mi_memid_create_os
    - _mi_memid_none
    - MI_UNUSED
    - mi_os_prim_alloc
    linkageType: ''
    returnType: void
    signature: void * _mi_os_alloc(size_t size, mi_memid_t* memid, mi_stats_t* tld_stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:314,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:315,1
    - Dst: _mi_memid_none
      Src: /src/cpython/Objects/mimalloc/os.c:316,1
    - Dst: _mi_os_good_alloc_size
      Src: /src/cpython/Objects/mimalloc/os.c:318,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/os.c:319,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:319,1
    - Dst: mi_os_prim_alloc_aligned
      Src: /src/cpython/Objects/mimalloc/os.c:324,1
    - Dst: _mi_memid_create_os
      Src: /src/cpython/Objects/mimalloc/os.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - size
    - alignment
    - commit
    - allow_large
    - memid
    - tld_stats
    argTypes:
    - size_t
    - size_t
    - bool
    - bool
    - mi_memid_t*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 331
    functionName: _mi_os_alloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_good_alloc_size
    - mi_os_prim_alloc_aligned
    - _mi_memid_create_os
    - _mi_memid_none
    - MI_UNUSED
    - _mi_align_up
    - _mi_os_page_size
    linkageType: ''
    returnType: void
    signature: void * _mi_os_alloc_aligned(size_t size, size_t alignment, bool commit,
      bool allow_large, mi_memid_t* memid, mi_stats_t* tld_stats)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:342,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:343,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:344,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:344,1
    - Dst: _mi_memid_none
      Src: /src/cpython/Objects/mimalloc/os.c:345,1
    - Dst: _mi_os_alloc_aligned
      Src: /src/cpython/Objects/mimalloc/os.c:349,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/os.c:353,1
    - Dst: _mi_os_alloc_aligned
      Src: /src/cpython/Objects/mimalloc/os.c:355,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:359,1
    - Dst: _mi_is_aligned
      Src: /src/cpython/Objects/mimalloc/os.c:359,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:361,1
    - Dst: _mi_os_decommit
      Src: /src/cpython/Objects/mimalloc/os.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - size
    - alignment
    - offset
    - commit
    - allow_large
    - memid
    - tld_stats
    argTypes:
    - size_t
    - size_t
    - size_t
    - bool
    - bool
    - mi_memid_t*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 366
    functionName: _mi_os_alloc_aligned_at_offset
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_alloc_aligned
    - _mi_align_up
    - _mi_memid_none
    - mi_assert
    - _mi_os_decommit
    - _mi_os_page_size
    - _mi_is_aligned
    linkageType: ''
    returnType: void
    signature: void * _mi_os_alloc_aligned_at_offset(size_t size, size_t alignment,
      size_t offset, bool commit, bool allow_large, mi_memid_t* memid, mi_stats_t*
      tld_stats)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:375,1
    - Dst: mi_align_up_ptr
      Src: /src/cpython/Objects/mimalloc/os.c:380,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:380,1
    - Dst: mi_align_down_ptr
      Src: /src/cpython/Objects/mimalloc/os.c:381,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:381,1
    - Dst: mi_align_down_ptr
      Src: /src/cpython/Objects/mimalloc/os.c:382,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:382,1
    - Dst: mi_align_up_ptr
      Src: /src/cpython/Objects/mimalloc/os.c:383,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/os.c:383,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 4
    argNames:
    - conservative
    - addr
    - size
    - newsize
    argTypes:
    - bool
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 390
    functionName: mi_os_page_align_areax
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_align_up_ptr
    - mi_assert_internal
    - mi_assert
    - _mi_os_page_size
    - mi_align_down_ptr
    linkageType: ''
    returnType: void
    signature: void * mi_os_page_align_areax(bool conservative, void* addr, size_t
      size, size_t* newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_os_page_align_areax
      Src: /src/cpython/Objects/mimalloc/os.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - size
    - newsize
    argTypes:
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: mi_os_page_align_area_conservative
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_os_page_align_areax
    linkageType: ''
    returnType: void
    signature: void * mi_os_page_align_area_conservative(void* addr, size_t size,
      size_t* newsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:397,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/os.c:400,1
    - Dst: _mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/os.c:401,1
    - Dst: mi_os_page_align_areax
      Src: /src/cpython/Objects/mimalloc/os.c:405,1
    - Dst: _mi_prim_commit
      Src: /src/cpython/Objects/mimalloc/os.c:410,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:412,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/os.c:417,1
    - Dst: mi_mem_is_zero
      Src: /src/cpython/Objects/mimalloc/os.c:417,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/os.c:421,1
    - Dst: mi_track_mem_undefined
      Src: /src/cpython/Objects/mimalloc/os.c:422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - addr
    - size
    - is_zero
    - tld_stats
    argTypes:
    - void*
    - size_t
    - bool*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 425
    functionName: _mi_os_commit
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 1
    functionsReached:
    - mi_track_mem_defined
    - _mi_stat_counter_increase
    - mi_assert_expensive
    - MI_UNUSED
    - _mi_warning_message
    - _mi_prim_commit
    - mi_os_page_align_areax
    - mi_track_mem_undefined
    - _mi_stat_increase
    - mi_mem_is_zero
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_commit(void* addr, size_t size, bool* is_zero, mi_stats_t*
      tld_stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:428,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:430,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/os.c:431,1
    - Dst: mi_os_page_align_area_conservative
      Src: /src/cpython/Objects/mimalloc/os.c:435,1
    - Dst: _mi_prim_decommit
      Src: /src/cpython/Objects/mimalloc/os.c:440,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:442,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - addr
    - size
    - needs_recommit
    - tld_stats
    argTypes:
    - void*
    - size_t
    - bool*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 446
    functionName: mi_os_decommit_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_prim_decommit
    - mi_assert_internal
    - mi_os_page_align_area_conservative
    - MI_UNUSED
    - _mi_warning_message
    - _mi_stat_decrease
    linkageType: ''
    returnType: bool
    signature: bool mi_os_decommit_ex(void* addr, size_t size, bool* needs_recommit,
      mi_stats_t* tld_stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_os_decommit_ex
      Src: /src/cpython/Objects/mimalloc/os.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - size
    - tld_stats
    argTypes:
    - void*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 5
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: _mi_os_decommit
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 1
    functionsReached:
    - mi_os_decommit_ex
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_decommit(void* addr, size_t size, mi_stats_t* tld_stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_os_page_align_area_conservative
      Src: /src/cpython/Objects/mimalloc/os.c:461,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/os.c:463,1
    - Dst: _mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/os.c:464,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/os.c:467,1
    - Dst: _mi_prim_reset
      Src: /src/cpython/Objects/mimalloc/os.c:470,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - addr
    - size
    - stats
    argTypes:
    - void*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 475
    functionName: _mi_os_reset
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_stat_counter_increase
    - memset
    - mi_os_page_align_area_conservative
    - _mi_warning_message
    - _mi_prim_reset
    - _mi_stat_increase
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_reset(void* addr, size_t size, mi_stats_t* stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/os.c:482,1
    - Dst: _mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/os.c:483,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/os.c:484,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/os.c:486,1
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/os.c:487,1
    - Dst: mi_os_decommit_ex
      Src: /src/cpython/Objects/mimalloc/os.c:490,1
    - Dst: _mi_os_reset
      Src: /src/cpython/Objects/mimalloc/os.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - p
    - size
    - allow_reset
    - stats
    argTypes:
    - void*
    - size_t
    - bool
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 480
    functionDepth: 5
    functionLinenumber: 480
    functionLinenumberEnd: 499
    functionName: _mi_os_purge_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_preloading
    - mi_option_is_enabled
    - mi_os_decommit_ex
    - _mi_stat_counter_increase
    - _mi_os_reset
    - mi_option_get
    - _mi_stat_increase
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_purge_ex(void* p, size_t size, bool allow_reset, mi_stats_t*
      stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_purge_ex
      Src: /src/cpython/Objects/mimalloc/os.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - size
    - stats
    argTypes:
    - void*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 6
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: _mi_os_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_os_purge_ex
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_purge(void* p, size_t size, mi_stats_t * stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_os_page_align_area_conservative
      Src: /src/cpython/Objects/mimalloc/os.c:511,1
    - Dst: _mi_prim_protect
      Src: /src/cpython/Objects/mimalloc/os.c:518,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - size
    - protect
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 523
    functionName: mi_os_protectx
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_prim_protect
    - mi_os_page_align_area_conservative
    - _mi_warning_message
    linkageType: ''
    returnType: bool
    signature: bool mi_os_protectx(void* addr, size_t size, bool protect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_os_protectx
      Src: /src/cpython/Objects/mimalloc/os.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 525
    functionDepth: 5
    functionLinenumber: 525
    functionLinenumberEnd: 527
    functionName: _mi_os_protect
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_os_protectx
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_protect(void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_os_protectx
      Src: /src/cpython/Objects/mimalloc/os.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 529
    functionDepth: 5
    functionLinenumber: 529
    functionLinenumberEnd: 531
    functionName: _mi_os_unprotect
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_os_protectx
    linkageType: ''
    returnType: bool
    signature: bool _mi_os_unprotect(void* addr, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/os.c:553,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/os.c:560,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/os.c:562,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/os.c:563,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:569,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/os.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - pages
    - total_size
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 574
    functionName: mi_os_claim_huge_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_heap_is_initialized
    - mi_atomic_cas_strong_acq_rel
    - mi_assert_internal
    - mi_atomic_load_relaxed
    - _mi_heap_random_next
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * mi_os_claim_huge_pages(size_t pages, size_t* total_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pages
    - total_size
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: mi_os_claim_huge_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * mi_os_claim_huge_pages(size_t pages, size_t* total_size)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memid_none
      Src: /src/cpython/Objects/mimalloc/os.c:585,1
    - Dst: mi_os_claim_huge_pages
      Src: /src/cpython/Objects/mimalloc/os.c:589,1
    - Dst: _mi_clock_start
      Src: /src/cpython/Objects/mimalloc/os.c:595,1
    - Dst: _mi_prim_alloc_huge_os_pages
      Src: /src/cpython/Objects/mimalloc/os.c:603,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:606,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:614,1
    - Dst: mi_os_prim_free
      Src: /src/cpython/Objects/mimalloc/os.c:615,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/os.c:622,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/os.c:623,1
    - Dst: _mi_clock_end
      Src: /src/cpython/Objects/mimalloc/os.c:627,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/os.c:635,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/os.c:640,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:644,1
    - Dst: _mi_memid_create_os
      Src: /src/cpython/Objects/mimalloc/os.c:645,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/os.c:647,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/os.c:649,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 6
    argNames:
    - pages
    - numa_node
    - max_msecs
    - pages_reserved
    - psize
    - memid
    argTypes:
    - size_t
    - int
    - mi_msecs_t
    - size_t*
    - size_t*
    - mi_memid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 653
    functionName: _mi_os_alloc_huge_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_os_claim_huge_pages
    - _mi_clock_start
    - mi_track_mem_defined
    - mi_assert_internal
    - _mi_memid_create_os
    - _mi_prim_alloc_huge_os_pages
    - mi_os_prim_free
    - _mi_memid_none
    - _mi_warning_message
    - _mi_clock_end
    - mi_assert
    - _mi_stat_increase
    linkageType: ''
    returnType: void
    signature: void * _mi_os_alloc_huge_os_pages(size_t pages, int numa_node, mi_msecs_t
      max_msecs, size_t* pages_reserved, size_t* psize, mi_memid_t* memid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_os_prim_free
      Src: /src/cpython/Objects/mimalloc/os.c:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - p
    - size
    - stats
    argTypes:
    - void*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 665
    functionName: mi_os_free_huge_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 1
    functionsReached:
    - mi_os_prim_free
    linkageType: ''
    returnType: void
    signature: void mi_os_free_huge_os_pages(void* p, size_t size, mi_stats_t* stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/os.c:674,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/os.c:676,1
    - Dst: _mi_prim_numa_node_count
      Src: /src/cpython/Objects/mimalloc/os.c:681,1
    - Dst: mi_atomic_store_release
      Src: /src/cpython/Objects/mimalloc/os.c:684,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/os.c:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 688
    functionName: _mi_os_numa_node_count_get
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - mi_atomic_store_release
    - _mi_verbose_message
    - mi_atomic_load_acquire
    - mi_option_get
    - _mi_prim_numa_node_count
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_os_numa_node_count_get(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/os.c:691,1
    - Dst: _mi_os_numa_node_count
      Src: /src/cpython/Objects/mimalloc/os.c:692,1
    - Dst: _mi_prim_numa_node
      Src: /src/cpython/Objects/mimalloc/os.c:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tld
    argTypes:
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 698
    functionName: _mi_os_numa_node_get
    functionSourceFile: /src/cpython/Objects/mimalloc/os.c
    functionUses: 0
    functionsReached:
    - _mi_prim_numa_node
    - _mi_os_numa_node_count
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_os_numa_node_get(mi_os_tld_t* tld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - stat
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: mi_is_in_main
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_is_in_main(void* stat)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_is_in_main
      Src: /src/cpython/Objects/mimalloc/stats.c:30,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:33,1
    - Dst: mi_atomic_maxi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:34,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:36,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - stat
    - amount
    argTypes:
    - mi_stat_count_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 53
    functionName: mi_stat_update
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_atomic_maxi64_relaxed
    - mi_is_in_main
    - mi_atomic_addi64_relaxed
    linkageType: ''
    returnType: void
    signature: void mi_stat_update(mi_stat_count_t* stat, int64_t amount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_is_in_main
      Src: /src/cpython/Objects/mimalloc/stats.c:56,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:57,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - stat
    - amount
    argTypes:
    - mi_stat_counter_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: _mi_stat_counter_increase
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 3
    functionsReached:
    - mi_is_in_main
    - mi_atomic_addi64_relaxed
    linkageType: ''
    returnType: void
    signature: void _mi_stat_counter_increase(mi_stat_counter_t* stat, size_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_stat_update
      Src: /src/cpython/Objects/mimalloc/stats.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stat
    - amount
    argTypes:
    - mi_stat_count_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: _mi_stat_increase
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 5
    functionsReached:
    - mi_stat_update
    linkageType: ''
    returnType: void
    signature: void _mi_stat_increase(mi_stat_count_t* stat, size_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_stat_update
      Src: /src/cpython/Objects/mimalloc/stats.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stat
    - amount
    argTypes:
    - mi_stat_count_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: _mi_stat_decrease
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 2
    functionsReached:
    - mi_stat_update
    linkageType: ''
    returnType: void
    signature: void _mi_stat_decrease(mi_stat_count_t* stat, size_t amount)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:78,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:79,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:80,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - stat
    - src
    - unit
    argTypes:
    - mi_stat_count_t*
    - mi_stat_count_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: mi_stat_add
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_atomic_addi64_relaxed
    linkageType: ''
    returnType: void
    signature: void mi_stat_add(mi_stat_count_t* stat, const mi_stat_count_t* src,
      int64_t unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:87,1
    - Dst: mi_atomic_addi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - stat
    - src
    - unit
    argTypes:
    - mi_stat_counter_t*
    - mi_stat_counter_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: mi_stat_counter_add
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_atomic_addi64_relaxed
    linkageType: ''
    returnType: void
    signature: void mi_stat_counter_add(mi_stat_counter_t* stat, const mi_stat_counter_t*
      src, int64_t unit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:94,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:95,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:96,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:97,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:98,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:99,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:100,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:102,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:103,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:104,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:106,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:107,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:108,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:109,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:110,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:112,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:113,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:114,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:115,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:116,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:118,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:119,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:120,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:121,1
    - Dst: mi_stat_counter_add
      Src: /src/cpython/Objects/mimalloc/stats.c:122,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - stats
    - src
    argTypes:
    - mi_stats_t*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 130
    functionName: mi_stats_add
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stat_add
    - mi_stat_counter_add
    linkageType: ''
    returnType: void
    signature: void mi_stats_add(mi_stats_t* stats, const mi_stats_t* src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:149,1
    - Dst: snprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:161,1
    - Dst: snprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:162,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - n
    - unit
    - out
    - arg
    - fmt
    argTypes:
    - int64_t
    - int64_t
    - mi_output_fun*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: mi_printf_amount
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_fprintf
    - snprintf
    linkageType: ''
    returnType: void
    signature: void mi_printf_amount(int64_t n, int64_t unit, mi_output_fun* out,
      void* arg, const char* fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_printf_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - n
    - unit
    - out
    - arg
    argTypes:
    - int64_t
    - int64_t
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: mi_print_amount
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_printf_amount
    linkageType: ''
    returnType: void
    signature: void mi_print_amount(int64_t n, int64_t unit, mi_output_fun* out, void*
      arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:173,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - n
    - unit
    - out
    - arg
    argTypes:
    - int64_t
    - int64_t
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: mi_print_count
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_fprintf
    - mi_print_amount
    linkageType: ''
    returnType: void
    signature: void mi_print_count(int64_t n, int64_t unit, mi_output_fun* out, void*
      arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:178,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:180,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:181,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:182,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:183,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:184,1
    - Dst: mi_print_count
      Src: /src/cpython/Objects/mimalloc/stats.c:185,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:187,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:188,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:189,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:192,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:196,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:197,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:198,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:199,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:201,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:204,1
    - Dst: mi_print_count
      Src: /src/cpython/Objects/mimalloc/stats.c:205,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:208,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:210,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:213,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:214,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:215,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:216,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 6
    argNames:
    - stat
    - msg
    - unit
    - out
    - arg
    - notok
    argTypes:
    - mi_stat_count_t*
    - char*
    - int64_t
    - mi_output_fun*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 219
    functionName: mi_stat_print_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_print_count
    - _mi_fprintf
    - mi_print_amount
    linkageType: ''
    returnType: void
    signature: void mi_stat_print_ex(const mi_stat_count_t* stat, const char* msg,
      int64_t unit, mi_output_fun* out, void* arg, const char* notok )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_stat_print_ex
      Src: /src/cpython/Objects/mimalloc/stats.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - stat
    - msg
    - unit
    - out
    - arg
    argTypes:
    - mi_stat_count_t*
    - char*
    - int64_t
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: mi_stat_print
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stat_print_ex
    linkageType: ''
    returnType: void
    signature: void mi_stat_print(const mi_stat_count_t* stat, const char* msg, int64_t
      unit, mi_output_fun* out, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:226,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:227,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - stat
    - msg
    - unit
    - out
    - arg
    argTypes:
    - mi_stat_count_t*
    - char*
    - int64_t
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: mi_stat_peak_print
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_fprintf
    - mi_print_amount
    linkageType: ''
    returnType: void
    signature: void mi_stat_peak_print(const mi_stat_count_t* stat, const char* msg,
      int64_t unit, mi_output_fun* out, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:232,1
    - Dst: mi_print_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:233,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - stat
    - msg
    - out
    - arg
    argTypes:
    - mi_stat_counter_t*
    - char*
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: mi_stat_counter_print
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_fprintf
    - mi_print_amount
    linkageType: ''
    returnType: void
    signature: void mi_stat_counter_print(const mi_stat_counter_t* stat, const char*
      msg, mi_output_fun* out, void* arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - stat
    - msg
    - out
    - arg
    argTypes:
    - mi_stat_counter_t*
    - char*
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: mi_stat_counter_print_avg
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_fprintf
    linkageType: ''
    returnType: void
    signature: void mi_stat_counter_print_avg(const mi_stat_counter_t* stat, const
      char* msg, mi_output_fun* out, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - arg
    argTypes:
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: mi_print_header
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_fprintf
    linkageType: ''
    returnType: void
    signature: void mi_print_header(mi_output_fun* out, void* arg )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_bin_size
      Src: /src/cpython/Objects/mimalloc/stats.c:257,1
    - Dst: snprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:258,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:259,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:263,1
    - Dst: mi_print_header
      Src: /src/cpython/Objects/mimalloc/stats.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - bins
    - max
    - fmt
    - out
    - arg
    argTypes:
    - mi_stat_count_t*
    - size_t
    - char*
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 6
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: mi_stats_print_bins
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stat_print
    - _mi_fprintf
    - snprintf
    - _mi_bin_size
    - mi_print_header
    linkageType: ''
    returnType: void
    signature: void mi_stats_print_bins(const mi_stat_count_t* bins, size_t max, const
      char* fmt, mi_output_fun* out, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fputs
      Src: /src/cpython/Objects/mimalloc/stats.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - buffered_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: mi_buffered_flush
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_fputs
    linkageType: ''
    returnType: void
    signature: void mi_buffered_flush(buffered_t* buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_buffered_flush
      Src: /src/cpython/Objects/mimalloc/stats.c:294,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/stats.c:295,1
    - Dst: mi_buffered_flush
      Src: /src/cpython/Objects/mimalloc/stats.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - arg
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: mi_buffered_out
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_buffered_flush
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_buffered_out(const char* msg, void* arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_print_header
      Src: /src/cpython/Objects/mimalloc/stats.c:314,1
    - Dst: mi_stats_print_bins
      Src: /src/cpython/Objects/mimalloc/stats.c:316,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:319,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:320,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:321,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:323,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:324,1
    - Dst: mi_stat_add
      Src: /src/cpython/Objects/mimalloc/stats.c:325,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:326,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:329,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:330,1
    - Dst: mi_stat_print_ex
      Src: /src/cpython/Objects/mimalloc/stats.c:332,1
    - Dst: mi_stat_print_ex
      Src: /src/cpython/Objects/mimalloc/stats.c:333,1
    - Dst: mi_stat_peak_print
      Src: /src/cpython/Objects/mimalloc/stats.c:334,1
    - Dst: mi_stat_peak_print
      Src: /src/cpython/Objects/mimalloc/stats.c:335,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:336,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:337,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:338,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:339,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:340,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:341,1
    - Dst: mi_stat_counter_print
      Src: /src/cpython/Objects/mimalloc/stats.c:342,1
    - Dst: mi_stat_counter_print
      Src: /src/cpython/Objects/mimalloc/stats.c:343,1
    - Dst: mi_stat_counter_print
      Src: /src/cpython/Objects/mimalloc/stats.c:344,1
    - Dst: mi_stat_counter_print
      Src: /src/cpython/Objects/mimalloc/stats.c:345,1
    - Dst: mi_stat_counter_print
      Src: /src/cpython/Objects/mimalloc/stats.c:346,1
    - Dst: mi_stat_counter_print
      Src: /src/cpython/Objects/mimalloc/stats.c:347,1
    - Dst: mi_stat_print
      Src: /src/cpython/Objects/mimalloc/stats.c:348,1
    - Dst: mi_stat_counter_print_avg
      Src: /src/cpython/Objects/mimalloc/stats.c:349,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:350,1
    - Dst: _mi_os_numa_node_count
      Src: /src/cpython/Objects/mimalloc/stats.c:350,1
    - Dst: mi_process_info
      Src: /src/cpython/Objects/mimalloc/stats.c:360,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:361,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:362,1
    - Dst: mi_printf_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:364,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:366,1
    - Dst: mi_printf_amount
      Src: /src/cpython/Objects/mimalloc/stats.c:367,1
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/stats.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 3
    argNames:
    - stats
    - out0
    - arg0
    argTypes:
    - mi_stats_t*
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 305
    functionDepth: 7
    functionLinenumber: 305
    functionLinenumberEnd: 370
    functionName: _mi_stats_print
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stat_print
    - mi_stat_peak_print
    - mi_stat_print_ex
    - mi_stats_print_bins
    - _mi_os_numa_node_count
    - mi_stat_counter_print_avg
    - _mi_fprintf
    - mi_stat_add
    - mi_printf_amount
    - mi_process_info
    - mi_stat_counter_print
    - mi_print_header
    linkageType: ''
    returnType: void
    signature: void _mi_stats_print(mi_stats_t* stats, mi_output_fun* out0, void*
      arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/stats.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: mi_stats_get_default
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_heap_get_default
    linkageType: ''
    returnType: mi_stats_t
    signature: mi_stats_t * mi_stats_get_default(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_stats_add
      Src: /src/cpython/Objects/mimalloc/stats.c:381,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/stats.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stats
    argTypes:
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: mi_stats_merge_from
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - memset
    - mi_stats_add
    linkageType: ''
    returnType: void
    signature: void mi_stats_merge_from(mi_stats_t* stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_stats_get_default
      Src: /src/cpython/Objects/mimalloc/stats.c:387,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/stats.c:388,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/stats.c:389,1
    - Dst: _mi_clock_start
      Src: /src/cpython/Objects/mimalloc/stats.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: mi_stats_reset
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stats_get_default
    - _mi_clock_start
    - memset
    linkageType: ''
    returnType: void
    signature: void mi_stats_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_stats_merge_from
      Src: /src/cpython/Objects/mimalloc/stats.c:394,1
    - Dst: mi_stats_get_default
      Src: /src/cpython/Objects/mimalloc/stats.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: mi_stats_merge
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stats_get_default
    - mi_stats_merge_from
    linkageType: ''
    returnType: void
    signature: void mi_stats_merge(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_stats_merge_from
      Src: /src/cpython/Objects/mimalloc/stats.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stats
    argTypes:
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: _mi_stats_done
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stats_merge_from
    linkageType: ''
    returnType: void
    signature: void _mi_stats_done(mi_stats_t* stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_stats_merge_from
      Src: /src/cpython/Objects/mimalloc/stats.c:402,1
    - Dst: mi_stats_get_default
      Src: /src/cpython/Objects/mimalloc/stats.c:402,1
    - Dst: _mi_stats_print
      Src: /src/cpython/Objects/mimalloc/stats.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - arg
    argTypes:
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 8
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: mi_stats_print_out
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stats_get_default
    - mi_stats_merge_from
    - _mi_stats_print
    linkageType: ''
    returnType: void
    signature: void mi_stats_print_out(mi_output_fun* out, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_stats_print_out
      Src: /src/cpython/Objects/mimalloc/stats.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 9
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: mi_stats_print
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 1
    functionsReached:
    - mi_stats_print_out
    linkageType: ''
    returnType: void
    signature: void mi_stats_print(void* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_stats_print
      Src: /src/cpython/Objects/mimalloc/stats.c:412,1
    - Dst: mi_stats_get_default
      Src: /src/cpython/Objects/mimalloc/stats.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - arg
    argTypes:
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 8
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: mi_thread_stats_print_out
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - mi_stats_get_default
    - _mi_stats_print
    linkageType: ''
    returnType: void
    signature: void mi_thread_stats_print_out(mi_output_fun* out, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_clock_now
      Src: /src/cpython/Objects/mimalloc/stats.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: _mi_clock_now
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_prim_clock_now
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_clock_now(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/stats.c:428,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/stats.c:429,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/stats.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: _mi_clock_start
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 2
    functionsReached:
    - _mi_clock_now
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_clock_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/stats.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - start
    argTypes:
    - mi_msecs_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: _mi_clock_end
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 1
    functionsReached:
    - _mi_clock_now
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_clock_end(mi_msecs_t start)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memzero_var
      Src: /src/cpython/Objects/mimalloc/stats.c:447,1
    - Dst: _mi_clock_end
      Src: /src/cpython/Objects/mimalloc/stats.c:448,1
    - Dst: mi_atomic_loadi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:449,1
    - Dst: mi_atomic_loadi64_relaxed
      Src: /src/cpython/Objects/mimalloc/stats.c:450,1
    - Dst: _mi_prim_process_info
      Src: /src/cpython/Objects/mimalloc/stats.c:457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 467
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/stats.c
    functionUses: 0
    functionsReached:
    - _mi_prim_process_info
    - _mi_memzero_var
    - _mi_clock_end
    - mi_atomic_loadi64_relaxed
    linkageType: ''
    returnType: mi_decl_export
    signature: mi_decl_export mi_attr_noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - mi_arena_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: mi_arena_id_index
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mi_arena_id_index(mi_arena_id_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arena_index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: mi_arena_id_create
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: mi_arena_id_t
    signature: mi_arena_id_t mi_arena_id_create(size_t arena_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: _mi_arena_id_none
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_arena_id_t
    signature: mi_arena_id_t _mi_arena_id_none(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - arena_id
    - arena_is_exclusive
    - req_arena_id
    argTypes:
    - mi_arena_id_t
    - bool
    - mi_arena_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: mi_arena_id_is_suitable
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_arena_id_none
    linkageType: ''
    returnType: bool
    signature: bool mi_arena_id_is_suitable(mi_arena_id_t arena_id, bool arena_is_exclusive,
      mi_arena_id_t req_arena_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_arena_id_is_suitable
      Src: /src/cpython/Objects/mimalloc/arena.c:94,1
    - Dst: mi_arena_id_is_suitable
      Src: /src/cpython/Objects/mimalloc/arena.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - memid
    - request_arena_id
    argTypes:
    - mi_memid_t
    - mi_arena_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: _mi_arena_memid_is_suitable
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_id_is_suitable
    linkageType: ''
    returnType: bool
    signature: bool _mi_arena_memid_is_suitable(mi_memid_t memid, mi_arena_id_t request_arena_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memid
    argTypes:
    - mi_memid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: _mi_arena_memid_is_os_allocated
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _mi_arena_memid_is_os_allocated(mi_memid_t memid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_divide_up
      Src: /src/cpython/Objects/mimalloc/arena.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: mi_block_count_of_size
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_divide_up
    linkageType: ''
    returnType: size_t
    signature: size_t mi_block_count_of_size(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bcount
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: mi_arena_block_size
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mi_arena_block_size(size_t bcount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_arena_block_size
      Src: /src/cpython/Objects/mimalloc/arena.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arena
    argTypes:
    - mi_arena_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: mi_arena_size
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t mi_arena_size(mi_arena_t* arena)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memid_create
      Src: /src/cpython/Objects/mimalloc/arena.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - id
    - is_exclusive
    - bitmap_index
    argTypes:
    - mi_arena_id_t
    - bool
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: mi_memid_create_arena
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_memid_create
    linkageType: ''
    returnType: mi_memid_t
    signature: mi_memid_t mi_memid_create_arena(mi_arena_id_t id, bool is_exclusive,
      mi_bitmap_index_t bitmap_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:131,1
    - Dst: mi_arena_id_index
      Src: /src/cpython/Objects/mimalloc/arena.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - memid
    - arena_index
    - bitmap_index
    argTypes:
    - mi_memid_t
    - size_t*
    - mi_bitmap_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: mi_arena_memid_indices
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_id_index
    - mi_assert_internal
    linkageType: ''
    returnType: bool
    signature: bool mi_arena_memid_indices(mi_memid_t memid, size_t* arena_index,
      mi_bitmap_index_t* bitmap_index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memid_none
      Src: /src/cpython/Objects/mimalloc/arena.c:150,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:152,1
    - Dst: mi_atomic_add_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:158,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:162,1
    - Dst: _mi_memid_create
      Src: /src/cpython/Objects/mimalloc/arena.c:167,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/arena.c:168,1
    - Dst: _mi_memzero
      Src: /src/cpython/Objects/mimalloc/arena.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - size
    - alignment
    - memid
    argTypes:
    - size_t
    - size_t
    - mi_memid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: mi_arena_static_zalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_atomic_cas_strong_acq_rel
    - _mi_memzero
    - _mi_memid_create
    - mi_atomic_load_relaxed
    - _mi_memid_none
    - _mi_align_up
    - mi_atomic_add_acq_rel
    linkageType: ''
    returnType: void
    signature: void * mi_arena_static_zalloc(size_t size, size_t alignment, mi_memid_t*
      memid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memid_none
      Src: /src/cpython/Objects/mimalloc/arena.c:175,1
    - Dst: mi_arena_static_zalloc
      Src: /src/cpython/Objects/mimalloc/arena.c:178,1
    - Dst: _mi_os_alloc
      Src: /src/cpython/Objects/mimalloc/arena.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - size
    - memid
    - stats
    argTypes:
    - size_t
    - mi_memid_t*
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: mi_arena_meta_zalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_static_zalloc
    - _mi_memid_none
    - _mi_os_alloc
    linkageType: ''
    returnType: void
    signature: void * mi_arena_meta_zalloc(size_t size, mi_memid_t* memid, mi_stats_t*
      stats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_memkind_is_os
      Src: /src/cpython/Objects/mimalloc/arena.c:186,1
    - Dst: _mi_os_free
      Src: /src/cpython/Objects/mimalloc/arena.c:187,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/arena.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - memid
    - size
    - stats
    argTypes:
    - void*
    - mi_memid_t
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: mi_arena_meta_free
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_memkind_is_os
    - _mi_os_free
    - mi_assert
    linkageType: ''
    returnType: void
    signature: void mi_arena_meta_free(void* p, mi_memid_t memid, size_t size, mi_stats_t*
      stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_arena_block_size
      Src: /src/cpython/Objects/mimalloc/arena.c:195,1
    - Dst: mi_bitmap_index_bit
      Src: /src/cpython/Objects/mimalloc/arena.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - bindex
    argTypes:
    - mi_arena_t*
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: mi_arena_block_start
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_block_size
    - mi_bitmap_index_bit
    linkageType: ''
    returnType: void
    signature: void * mi_arena_block_start(mi_arena_t* arena, mi_bitmap_index_t bindex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_bitmap_try_find_from_claim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:207,1
    - Dst: mi_atomic_store_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:208,1
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/arena.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arena
    - blocks
    - bitmap_idx
    argTypes:
    - mi_arena_t*
    - size_t
    - mi_bitmap_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: mi_arena_try_claim
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_atomic_store_relaxed
    - _mi_bitmap_try_find_from_claim_across
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool mi_arena_try_claim(mi_arena_t* arena, size_t blocks, mi_bitmap_index_t*
      bitmap_idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/arena.c:222,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:223,1
    - Dst: mi_arena_id_index
      Src: /src/cpython/Objects/mimalloc/arena.c:223,1
    - Dst: mi_arena_try_claim
      Src: /src/cpython/Objects/mimalloc/arena.c:226,1
    - Dst: mi_arena_block_start
      Src: /src/cpython/Objects/mimalloc/arena.c:229,1
    - Dst: mi_memid_create_arena
      Src: /src/cpython/Objects/mimalloc/arena.c:230,1
    - Dst: _mi_bitmap_unclaim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:236,1
    - Dst: _mi_bitmap_claim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:241,1
    - Dst: _mi_bitmap_claim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:253,1
    - Dst: _mi_os_commit
      Src: /src/cpython/Objects/mimalloc/arena.c:256,1
    - Dst: mi_arena_block_size
      Src: /src/cpython/Objects/mimalloc/arena.c:256,1
    - Dst: _mi_bitmap_is_claimed_across
      Src: /src/cpython/Objects/mimalloc/arena.c:266,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - arena
    - arena_index
    - needed_bcount
    - commit
    - memid
    - tld
    argTypes:
    - mi_arena_t*
    - size_t
    - size_t
    - bool
    - mi_memid_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 270
    functionName: mi_arena_try_alloc_at
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_id_index
    - mi_memid_create_arena
    - _mi_os_commit
    - mi_assert_internal
    - _mi_bitmap_claim_across
    - mi_arena_block_size
    - MI_UNUSED
    - _mi_bitmap_unclaim_across
    - mi_arena_try_claim
    - mi_arena_block_start
    - _mi_bitmap_is_claimed_across
    linkageType: ''
    returnType: mi_decl_noinline
    signature: "mi_decl_noinline * mi_arena_try_alloc_at(mi_arena_t* arena, size_t
      arena_index, size_t needed_bcount,\n                                                    bool
      commit, mi_memid_t* memid, mi_os_tld_t* tld)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED_RELEASE
      Src: /src/cpython/Objects/mimalloc/arena.c:276,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:277,1
    - Dst: mi_block_count_of_size
      Src: /src/cpython/Objects/mimalloc/arena.c:278,1
    - Dst: mi_arena_id_index
      Src: /src/cpython/Objects/mimalloc/arena.c:279,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:280,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:280,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:281,1
    - Dst: mi_arena_block_size
      Src: /src/cpython/Objects/mimalloc/arena.c:281,1
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:284,1
    - Dst: mi_arena_id_is_suitable
      Src: /src/cpython/Objects/mimalloc/arena.c:287,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:288,1
    - Dst: mi_arena_try_alloc_at
      Src: /src/cpython/Objects/mimalloc/arena.c:295,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:296,1
    - Dst: _mi_is_aligned
      Src: /src/cpython/Objects/mimalloc/arena.c:296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 10
    argNames:
    - arena_id
    - match_numa_node
    - numa_node
    - size
    - alignment
    - commit
    - allow_large
    - req_arena_id
    - memid
    - tld
    argTypes:
    - mi_arena_id_t
    - bool
    - int
    - size_t
    - size_t
    - bool
    - bool
    - mi_arena_id_t
    - mi_memid_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: mi_arena_try_alloc_at_id
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_id_index
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_arena_try_alloc_at
    - mi_arena_id_is_suitable
    - MI_UNUSED_RELEASE
    - mi_arena_block_size
    - _mi_arena_id_none
    - mi_atomic_load_ptr_acquire
    - _mi_is_aligned
    - mi_block_count_of_size
    linkageType: ''
    returnType: void
    signature: "void * mi_arena_try_alloc_at_id(mi_arena_id_t arena_id, bool match_numa_node,
      int numa_node, size_t size, size_t alignment,\n                                       bool
      commit, bool allow_large, mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t*
      tld )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/arena.c:306,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:307,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:308,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/arena.c:309,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:311,1
    - Dst: mi_arena_id_index
      Src: /src/cpython/Objects/mimalloc/arena.c:313,1
    - Dst: mi_arena_try_alloc_at_id
      Src: /src/cpython/Objects/mimalloc/arena.c:314,1
    - Dst: mi_arena_try_alloc_at_id
      Src: /src/cpython/Objects/mimalloc/arena.c:321,1
    - Dst: mi_arena_id_create
      Src: /src/cpython/Objects/mimalloc/arena.c:321,1
    - Dst: mi_arena_try_alloc_at_id
      Src: /src/cpython/Objects/mimalloc/arena.c:328,1
    - Dst: mi_arena_id_create
      Src: /src/cpython/Objects/mimalloc/arena.c:328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 8
    argNames:
    - numa_node
    - size
    - alignment
    - commit
    - allow_large
    - req_arena_id
    - memid
    - tld
    argTypes:
    - int
    - size_t
    - size_t
    - bool
    - bool
    - mi_arena_id_t
    - mi_memid_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 302
    functionDepth: 6
    functionLinenumber: 302
    functionLinenumberEnd: 334
    functionName: mi_arena_try_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_id_index
    - mi_likely
    - mi_arena_id_create
    - mi_assert_internal
    - mi_atomic_load_relaxed
    - _mi_arena_id_none
    - MI_UNUSED
    - mi_arena_try_alloc_at_id
    linkageType: ''
    returnType: mi_decl_noinline
    signature: "mi_decl_noinline * mi_arena_try_alloc(int numa_node, size_t size,
      size_t alignment,\n                                                  bool commit,
      bool allow_large,\n                                                  mi_arena_id_t
      req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/arena.c:339,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:340,1
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:342,1
    - Dst: mi_option_get_size
      Src: /src/cpython/Objects/mimalloc/arena.c:345,1
    - Dst: _mi_os_has_virtual_reserve
      Src: /src/cpython/Objects/mimalloc/arena.c:348,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/arena.c:351,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/arena.c:359,1
    - Dst: _mi_os_has_overcommit
      Src: /src/cpython/Objects/mimalloc/arena.c:359,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/arena.c:360,1
    - Dst: mi_reserve_os_memory_ex
      Src: /src/cpython/Objects/mimalloc/arena.c:362,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - req_size
    - allow_large
    - req_arena_id
    - arena_id
    argTypes:
    - size_t
    - bool
    - mi_arena_id_t
    - mi_arena_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 363
    functionName: mi_arena_reserve
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_preloading
    - mi_option_get_size
    - mi_atomic_load_acquire
    - _mi_os_has_virtual_reserve
    - _mi_arena_id_none
    - _mi_align_up
    - _mi_os_has_overcommit
    - mi_option_get
    - mi_reserve_os_memory_ex
    linkageType: ''
    returnType: bool
    signature: bool mi_arena_reserve(size_t req_size, bool allow_large, mi_arena_id_t
      req_arena_id, mi_arena_id_t *arena_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:369,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:370,1
    - Dst: _mi_memid_none
      Src: /src/cpython/Objects/mimalloc/arena.c:371,1
    - Dst: _mi_os_numa_node
      Src: /src/cpython/Objects/mimalloc/arena.c:373,1
    - Dst: mi_arena_try_alloc
      Src: /src/cpython/Objects/mimalloc/arena.c:377,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:381,1
    - Dst: mi_arena_reserve
      Src: /src/cpython/Objects/mimalloc/arena.c:383,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:385,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:385,1
    - Dst: mi_arena_try_alloc_at_id
      Src: /src/cpython/Objects/mimalloc/arena.c:386,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/arena.c:393,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:393,1
    - Dst: _mi_os_alloc_aligned_at_offset
      Src: /src/cpython/Objects/mimalloc/arena.c:400,1
    - Dst: _mi_os_alloc_aligned
      Src: /src/cpython/Objects/mimalloc/arena.c:403,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 8
    argNames:
    - size
    - alignment
    - align_offset
    - commit
    - allow_large
    - req_arena_id
    - memid
    - tld
    argTypes:
    - size_t
    - size_t
    - size_t
    - bool
    - bool
    - mi_arena_id_t
    - mi_memid_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 366
    functionDepth: 7
    functionLinenumber: 366
    functionLinenumberEnd: 405
    functionName: _mi_arena_alloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_reserve
    - mi_option_is_enabled
    - _mi_os_alloc_aligned
    - _mi_os_alloc_aligned_at_offset
    - mi_assert_internal
    - _mi_memid_none
    - _mi_arena_id_none
    - _mi_os_numa_node
    - mi_arena_try_alloc_at_id
    - mi_arena_try_alloc
    linkageType: ''
    returnType: void
    signature: "void * _mi_arena_alloc_aligned(size_t size, size_t alignment, size_t
      align_offset, bool commit, bool allow_large,\n                              mi_arena_id_t
      req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_arena_alloc_aligned
      Src: /src/cpython/Objects/mimalloc/arena.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - size
    - commit
    - allow_large
    - req_arena_id
    - memid
    - tld
    argTypes:
    - size_t
    - bool
    - bool
    - mi_arena_id_t
    - mi_memid_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 8
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: _mi_arena_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_arena_alloc_aligned
    linkageType: ''
    returnType: void
    signature: void * _mi_arena_alloc(size_t size, bool commit, bool allow_large,
      mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_arena_id_index
      Src: /src/cpython/Objects/mimalloc/arena.c:415,1
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:417,1
    - Dst: mi_arena_block_size
      Src: /src/cpython/Objects/mimalloc/arena.c:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - arena_id
    - size
    argTypes:
    - mi_arena_id_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 421
    functionName: mi_arena_area
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_id_index
    - mi_arena_block_size
    - mi_atomic_load_ptr_acquire
    linkageType: ''
    returnType: void
    signature: void * mi_arena_area(mi_arena_id_t arena_id, size_t* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/arena.c:430,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/arena.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: mi_arena_purge_delay
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_option_get
    linkageType: ''
    returnType: long
    signature: long mi_arena_purge_delay(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:436,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:437,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:438,1
    - Dst: mi_arena_block_size
      Src: /src/cpython/Objects/mimalloc/arena.c:439,1
    - Dst: mi_arena_block_start
      Src: /src/cpython/Objects/mimalloc/arena.c:440,1
    - Dst: _mi_bitmap_is_claimed_across
      Src: /src/cpython/Objects/mimalloc/arena.c:442,1
    - Dst: _mi_os_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:444,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:451,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/arena.c:451,1
    - Dst: _mi_os_purge_ex
      Src: /src/cpython/Objects/mimalloc/arena.c:452,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/arena.c:453,1
    - Dst: _mi_bitmap_unclaim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:457,1
    - Dst: _mi_bitmap_unclaim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - arena
    - bitmap_idx
    - blocks
    - stats
    argTypes:
    - mi_arena_t*
    - size_t
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 462
    functionName: mi_arena_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_option_is_enabled
    - mi_assert_internal
    - mi_arena_block_size
    - _mi_bitmap_unclaim_across
    - _mi_os_purge
    - _mi_os_purge_ex
    - _mi_stat_increase
    - mi_arena_block_start
    - _mi_bitmap_is_claimed_across
    linkageType: ''
    returnType: void
    signature: void mi_arena_purge(mi_arena_t* arena, size_t bitmap_idx, size_t blocks,
      mi_stats_t* stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:467,1
    - Dst: mi_arena_purge_delay
      Src: /src/cpython/Objects/mimalloc/arena.c:468,1
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/arena.c:471,1
    - Dst: mi_arena_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:473,1
    - Dst: mi_atomic_loadi64_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:477,1
    - Dst: mi_atomic_addi64_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:479,1
    - Dst: mi_atomic_storei64_release
      Src: /src/cpython/Objects/mimalloc/arena.c:482,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/arena.c:482,1
    - Dst: _mi_bitmap_claim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - arena
    - bitmap_idx
    - blocks
    - stats
    argTypes:
    - mi_arena_t*
    - size_t
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 466
    functionDepth: 8
    functionLinenumber: 466
    functionLinenumberEnd: 486
    functionName: mi_arena_schedule_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_preloading
    - mi_atomic_addi64_acq_rel
    - mi_atomic_storei64_release
    - mi_assert_internal
    - _mi_bitmap_claim_across
    - _mi_clock_now
    - mi_arena_purge
    - mi_atomic_loadi64_relaxed
    - mi_arena_purge_delay
    linkageType: ''
    returnType: void
    signature: void mi_arena_schedule_purge(mi_arena_t* arena, size_t bitmap_idx,
      size_t blocks, mi_stats_t* stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_create
      Src: /src/cpython/Objects/mimalloc/arena.c:503,1
    - Dst: mi_arena_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - arena
    - idx
    - startidx
    - bitlen
    - purge
    - stats
    argTypes:
    - mi_arena_t*
    - size_t
    - size_t
    - size_t
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 491
    functionDepth: 8
    functionLinenumber: 491
    functionLinenumberEnd: 512
    functionName: mi_arena_purge_range
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_bitmap_index_create
    - mi_arena_purge
    linkageType: ''
    returnType: bool
    signature: bool mi_arena_purge_range(mi_arena_t* arena, size_t idx, size_t startidx,
      size_t bitlen, size_t purge, mi_stats_t* stats)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_loadi64_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:518,1
    - Dst: mi_atomic_casi64_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:523,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:529,1
    - Dst: mi_bitmap_index_create
      Src: /src/cpython/Objects/mimalloc/arena.c:539,1
    - Dst: _mi_bitmap_try_claim
      Src: /src/cpython/Objects/mimalloc/arena.c:541,1
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:549,1
    - Dst: mi_arena_purge_range
      Src: /src/cpython/Objects/mimalloc/arena.c:550,1
    - Dst: _mi_bitmap_unclaim
      Src: /src/cpython/Objects/mimalloc/arena.c:555,1
    - Dst: mi_arena_purge_delay
      Src: /src/cpython/Objects/mimalloc/arena.c:563,1
    - Dst: mi_atomic_casi64_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:565,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/arena.c:565,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - arena
    - now
    - force
    - stats
    argTypes:
    - mi_arena_t*
    - mi_msecs_t
    - bool
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 515
    functionDepth: 9
    functionLinenumber: 515
    functionLinenumberEnd: 568
    functionName: mi_arena_try_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_bitmap_try_claim
    - mi_atomic_casi64_strong_acq_rel
    - _mi_bitmap_unclaim
    - mi_bitmap_index_create
    - mi_atomic_load_relaxed
    - _mi_clock_now
    - mi_atomic_load_acquire
    - mi_atomic_loadi64_relaxed
    - mi_arena_purge_range
    - mi_arena_purge_delay
    linkageType: ''
    returnType: bool
    signature: bool mi_arena_try_purge(mi_arena_t* arena, mi_msecs_t now, bool force,
      mi_stats_t* stats)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/arena.c:571,1
    - Dst: mi_arena_purge_delay
      Src: /src/cpython/Objects/mimalloc/arena.c:571,1
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:573,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/arena.c:580,1
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:583,1
    - Dst: mi_arena_try_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:585,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - force
    - visit_all
    - stats
    argTypes:
    - bool
    - bool
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 570
    functionDepth: 10
    functionLinenumber: 570
    functionLinenumberEnd: 592
    functionName: mi_arenas_try_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_preloading
    - mi_arena_try_purge
    - _mi_clock_now
    - mi_atomic_load_acquire
    - mi_atomic_load_ptr_acquire
    - mi_arena_purge_delay
    linkageType: ''
    returnType: void
    signature: void mi_arenas_try_purge( bool force, bool visit_all, mi_stats_t* stats
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/arena.c:580,1
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:583,1
    - Dst: mi_arena_try_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 578
    functionDepth: 10
    functionLinenumber: 578
    functionLinenumberEnd: 591
    functionName: (&purge_guard)
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_clock_now
    - mi_arena_try_purge
    - mi_atomic_load_ptr_acquire
    linkageType: ''
    returnType: mi_atomic_guard
    signature: mi_atomic_guard (&purge_guard)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:600,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:601,1
    - Dst: mi_memkind_is_os
      Src: /src/cpython/Objects/mimalloc/arena.c:606,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/arena.c:610,1
    - Dst: _mi_os_free
      Src: /src/cpython/Objects/mimalloc/arena.c:612,1
    - Dst: mi_arena_memid_indices
      Src: /src/cpython/Objects/mimalloc/arena.c:618,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:619,1
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:620,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:621,1
    - Dst: mi_block_count_of_size
      Src: /src/cpython/Objects/mimalloc/arena.c:622,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/arena.c:626,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:629,1
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/arena.c:629,1
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/arena.c:630,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/arena.c:631,1
    - Dst: mi_track_mem_undefined
      Src: /src/cpython/Objects/mimalloc/arena.c:636,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:640,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:643,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:644,1
    - Dst: _mi_bitmap_unclaim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:648,1
    - Dst: mi_track_mem_noaccess
      Src: /src/cpython/Objects/mimalloc/arena.c:649,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/arena.c:653,1
    - Dst: mi_arena_schedule_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:660,1
    - Dst: _mi_bitmap_unclaim_across
      Src: /src/cpython/Objects/mimalloc/arena.c:664,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/arena.c:666,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:672,1
    - Dst: mi_arenas_try_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:676,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 5
    argNames:
    - p
    - size
    - committed_size
    - memid
    - stats
    argTypes:
    - void*
    - size_t
    - size_t
    - mi_memid_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 599
    functionDepth: 11
    functionLinenumber: 599
    functionLinenumberEnd: 677
    functionName: _mi_arena_free
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_track_mem_undefined
    - mi_track_mem_noaccess
    - mi_assert_internal
    - mi_memkind_is_os
    - mi_atomic_load_ptr_acquire
    - _mi_bitmap_unclaim_across
    - mi_arena_schedule_purge
    - _mi_os_free
    - _mi_stat_decrease
    - mi_arena_memid_indices
    - _mi_error_message
    - mi_arenas_try_purge
    - mi_block_count_of_size
    - mi_bitmap_index_field
    linkageType: ''
    returnType: void
    signature: void _mi_arena_free(void* p, size_t size, size_t committed_size, mi_memid_t
      memid, mi_stats_t* stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:682,1
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:685,1
    - Dst: mi_memkind_is_os
      Src: /src/cpython/Objects/mimalloc/arena.c:687,1
    - Dst: mi_atomic_store_ptr_release
      Src: /src/cpython/Objects/mimalloc/arena.c:688,1
    - Dst: _mi_os_free
      Src: /src/cpython/Objects/mimalloc/arena.c:689,1
    - Dst: mi_arena_size
      Src: /src/cpython/Objects/mimalloc/arena.c:689,1
    - Dst: mi_arena_meta_free
      Src: /src/cpython/Objects/mimalloc/arena.c:694,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 681
    functionDepth: 5
    functionLinenumber: 681
    functionLinenumberEnd: 701
    functionName: mi_arenas_unsafe_destroy
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arena_size
    - mi_atomic_cas_strong_acq_rel
    - mi_arena_meta_free
    - mi_atomic_load_relaxed
    - mi_memkind_is_os
    - mi_atomic_store_ptr_release
    - mi_atomic_load_ptr_acquire
    - _mi_os_free
    linkageType: ''
    returnType: void
    signature: void mi_arenas_unsafe_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_arenas_try_purge
      Src: /src/cpython/Objects/mimalloc/arena.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - force_purge
    - stats
    argTypes:
    - bool
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 11
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: _mi_arena_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_arenas_try_purge
    linkageType: ''
    returnType: void
    signature: void _mi_arena_collect(bool force_purge, mi_stats_t* stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_arenas_unsafe_destroy
      Src: /src/cpython/Objects/mimalloc/arena.c:711,1
    - Dst: _mi_arena_collect
      Src: /src/cpython/Objects/mimalloc/arena.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stats
    argTypes:
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 710
    functionDepth: 12
    functionLinenumber: 710
    functionLinenumberEnd: 713
    functionName: _mi_arena_unsafe_destroy_all
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_arena_collect
    - mi_arenas_unsafe_destroy
    linkageType: ''
    returnType: void
    signature: void _mi_arena_unsafe_destroy_all(mi_stats_t* stats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:717,1
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/arena.c:719,1
    - Dst: mi_arena_block_size
      Src: /src/cpython/Objects/mimalloc/arena.c:720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 725
    functionName: _mi_arena_contains
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 1
    functionsReached:
    - mi_atomic_load_ptr_acquire
    - mi_arena_block_size
    - mi_atomic_load_relaxed
    linkageType: ''
    returnType: bool
    signature: bool _mi_arena_contains(const void* p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:733,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:734,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:734,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:735,1
    - Dst: mi_atomic_increment_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:738,1
    - Dst: mi_atomic_decrement_acq_rel
      Src: /src/cpython/Objects/mimalloc/arena.c:740,1
    - Dst: mi_arena_id_create
      Src: /src/cpython/Objects/mimalloc/arena.c:743,1
    - Dst: mi_atomic_store_ptr_release
      Src: /src/cpython/Objects/mimalloc/arena.c:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - arena
    - arena_id
    argTypes:
    - mi_arena_t*
    - mi_arena_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 747
    functionName: mi_arena_add
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_atomic_decrement_acq_rel
    - mi_arena_id_create
    - mi_atomic_increment_acq_rel
    - mi_assert_internal
    - mi_atomic_store_ptr_release
    - mi_atomic_load_ptr_relaxed
    linkageType: ''
    returnType: bool
    signature: bool mi_arena_add(mi_arena_t* arena, mi_arena_id_t* arena_id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:751,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:755,1
    - Dst: _mi_divide_up
      Src: /src/cpython/Objects/mimalloc/arena.c:759,1
    - Dst: mi_arena_meta_zalloc
      Src: /src/cpython/Objects/mimalloc/arena.c:763,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:768,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/arena.c:785,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/arena.c:790,1
    - Dst: mi_bitmap_index_create
      Src: /src/cpython/Objects/mimalloc/arena.c:793,1
    - Dst: _mi_bitmap_claim
      Src: /src/cpython/Objects/mimalloc/arena.c:794,1
    - Dst: mi_arena_add
      Src: /src/cpython/Objects/mimalloc/arena.c:796,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 7
    argNames:
    - start
    - size
    - is_large
    - numa_node
    - exclusive
    - memid
    - arena_id
    argTypes:
    - void*
    - size_t
    - bool
    - int
    - bool
    - mi_memid_t
    - mi_arena_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 749
    functionDepth: 4
    functionLinenumber: 749
    functionLinenumberEnd: 798
    functionName: mi_manage_os_memory_ex2
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_bitmap_claim
    - _mi_divide_up
    - mi_arena_add
    - mi_bitmap_index_create
    - memset
    - mi_assert_internal
    - _mi_arena_id_none
    - mi_arena_meta_zalloc
    linkageType: ''
    returnType: bool
    signature: bool mi_manage_os_memory_ex2(void* start, size_t size, bool is_large,
      int numa_node, bool exclusive, mi_memid_t memid, mi_arena_id_t* arena_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memid_create
      Src: /src/cpython/Objects/mimalloc/arena.c:801,1
    - Dst: mi_manage_os_memory_ex2
      Src: /src/cpython/Objects/mimalloc/arena.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - start
    - size
    - is_committed
    - is_large
    - is_zero
    - numa_node
    - exclusive
    - arena_id
    argTypes:
    - void*
    - size_t
    - bool
    - bool
    - bool
    - int
    - bool
    - mi_arena_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 800
    functionDepth: 5
    functionLinenumber: 800
    functionLinenumberEnd: 806
    functionName: mi_manage_os_memory_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_manage_os_memory_ex2
    - _mi_memid_create
    linkageType: ''
    returnType: bool
    signature: bool mi_manage_os_memory_ex(void* start, size_t size, bool is_committed,
      bool is_large, bool is_zero, int numa_node, bool exclusive, mi_arena_id_t* arena_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/arena.c:810,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/arena.c:811,1
    - Dst: _mi_os_alloc_aligned
      Src: /src/cpython/Objects/mimalloc/arena.c:813,1
    - Dst: mi_manage_os_memory_ex2
      Src: /src/cpython/Objects/mimalloc/arena.c:816,1
    - Dst: _mi_os_free_ex
      Src: /src/cpython/Objects/mimalloc/arena.c:817,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/arena.c:818,1
    - Dst: _mi_divide_up
      Src: /src/cpython/Objects/mimalloc/arena.c:818,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/arena.c:821,1
    - Dst: _mi_divide_up
      Src: /src/cpython/Objects/mimalloc/arena.c:821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - size
    - commit
    - allow_large
    - exclusive
    - arena_id
    argTypes:
    - size_t
    - bool
    - bool
    - bool
    - mi_arena_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 809
    functionDepth: 5
    functionLinenumber: 809
    functionLinenumberEnd: 823
    functionName: mi_reserve_os_memory_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 1
    functionsReached:
    - _mi_os_free_ex
    - _mi_os_alloc_aligned
    - _mi_divide_up
    - mi_manage_os_memory_ex2
    - _mi_verbose_message
    - _mi_align_up
    - _mi_arena_id_none
    linkageType: ''
    returnType: int
    signature: int mi_reserve_os_memory_ex(size_t size, bool commit, bool allow_large,
      bool exclusive, mi_arena_id_t* arena_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_manage_os_memory_ex
      Src: /src/cpython/Objects/mimalloc/arena.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - start
    - size
    - is_committed
    - is_large
    - is_zero
    - numa_node
    argTypes:
    - void*
    - size_t
    - bool
    - bool
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 827
    functionDepth: 6
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: mi_manage_os_memory
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_manage_os_memory_ex
    linkageType: ''
    returnType: bool
    signature: bool mi_manage_os_memory(void* start, size_t size, bool is_committed,
      bool is_large, bool is_zero, int numa_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_reserve_os_memory_ex
      Src: /src/cpython/Objects/mimalloc/arena.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - size
    - commit
    - allow_large
    argTypes:
    - size_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 832
    functionDepth: 6
    functionLinenumber: 832
    functionLinenumberEnd: 834
    functionName: mi_reserve_os_memory
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_reserve_os_memory_ex
    linkageType: ''
    returnType: int
    signature: int mi_reserve_os_memory(size_t size, bool commit, bool allow_large)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:845,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/arena.c:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - prefix
    - fields
    - field_count
    argTypes:
    - char*
    - mi_bitmap_field_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 855
    functionName: mi_debug_show_bitmap
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_verbose_message
    - mi_atomic_load_relaxed
    linkageType: ''
    returnType: size_t
    signature: size_t mi_debug_show_bitmap(const char* prefix, mi_bitmap_field_t*
      fields, size_t field_count )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:858,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/arena.c:860,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/arena.c:863,1
    - Dst: mi_debug_show_bitmap
      Src: /src/cpython/Objects/mimalloc/arena.c:864,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/arena.c:865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: mi_debug_show_arenas
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_verbose_message
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_load_relaxed
    - mi_debug_show_bitmap
    linkageType: ''
    returnType: void
    signature: void mi_debug_show_arenas(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_numa_node_count
      Src: /src/cpython/Objects/mimalloc/arena.c:878,1
    - Dst: _mi_os_alloc_huge_os_pages
      Src: /src/cpython/Objects/mimalloc/arena.c:882,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/arena.c:884,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/arena.c:887,1
    - Dst: mi_manage_os_memory_ex2
      Src: /src/cpython/Objects/mimalloc/arena.c:889,1
    - Dst: _mi_os_free
      Src: /src/cpython/Objects/mimalloc/arena.c:890,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - pages
    - numa_node
    - timeout_msecs
    - exclusive
    - arena_id
    argTypes:
    - size_t
    - int
    - size_t
    - bool
    - mi_arena_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 874
    functionDepth: 5
    functionLinenumber: 874
    functionLinenumberEnd: 894
    functionName: mi_reserve_huge_os_pages_at_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_os_numa_node_count
    - _mi_os_alloc_huge_os_pages
    - _mi_verbose_message
    - mi_manage_os_memory_ex2
    - _mi_warning_message
    - _mi_os_free
    linkageType: ''
    returnType: int
    signature: int mi_reserve_huge_os_pages_at_ex(size_t pages, int numa_node, size_t
      timeout_msecs, bool exclusive, mi_arena_id_t* arena_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_reserve_huge_os_pages_at_ex
      Src: /src/cpython/Objects/mimalloc/arena.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pages
    - numa_node
    - timeout_msecs
    argTypes:
    - size_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 6
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: mi_reserve_huge_os_pages_at
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_reserve_huge_os_pages_at_ex
    linkageType: ''
    returnType: int
    signature: int mi_reserve_huge_os_pages_at(size_t pages, int numa_node, size_t
      timeout_msecs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_numa_node_count
      Src: /src/cpython/Objects/mimalloc/arena.c:905,1
    - Dst: mi_reserve_huge_os_pages_at
      Src: /src/cpython/Objects/mimalloc/arena.c:915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - pages
    - numa_nodes
    - timeout_msecs
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 901
    functionDepth: 7
    functionLinenumber: 901
    functionLinenumberEnd: 926
    functionName: mi_reserve_huge_os_pages_interleave
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - _mi_os_numa_node_count
    - mi_reserve_huge_os_pages_at
    linkageType: ''
    returnType: int
    signature: int mi_reserve_huge_os_pages_interleave(size_t pages, size_t numa_nodes,
      size_t timeout_msecs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/arena.c:929,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/arena.c:930,1
    - Dst: mi_reserve_huge_os_pages_interleave
      Src: /src/cpython/Objects/mimalloc/arena.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pages
    - max_secs
    - pages_reserved
    argTypes:
    - size_t
    - double
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 928
    functionDepth: 8
    functionLinenumber: 928
    functionLinenumberEnd: 935
    functionName: mi_reserve_huge_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/arena.c
    functionUses: 0
    functionsReached:
    - mi_reserve_huge_os_pages_interleave
    - MI_UNUSED
    - _mi_warning_message
    linkageType: ''
    returnType: int
    signature: int mi_reserve_huge_os_pages(size_t pages, double max_secs, size_t*
      pages_reserved)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - shift
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: rotl
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotl(uint32_t x, uint32_t shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl
      Src: /src/cpython/Objects/mimalloc/random.c:41,1
    - Dst: rotl
      Src: /src/cpython/Objects/mimalloc/random.c:42,1
    - Dst: rotl
      Src: /src/cpython/Objects/mimalloc/random.c:43,1
    - Dst: rotl
      Src: /src/cpython/Objects/mimalloc/random.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - x
    - a
    - b
    - c
    - d
    argTypes:
    - uint32_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: qround
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - rotl
    linkageType: ''
    returnType: void
    signature: void qround(uint32_t x[16], size_t a, size_t b, size_t c, size_t d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:55,1
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:56,1
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:57,1
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:58,1
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:59,1
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:60,1
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:61,1
    - Dst: qround
      Src: /src/cpython/Objects/mimalloc/random.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 79
    functionName: chacha_block
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - qround
    linkageType: ''
    returnType: void
    signature: void chacha_block(mi_random_ctx_t* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chacha_block
      Src: /src/cpython/Objects/mimalloc/random.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: chacha_next32
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - chacha_block
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t chacha_next32(mi_random_ctx_t* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - idx32
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: read32
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read32(const uint8_t* p, size_t idx32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/random.c:102,1
    - Dst: read32
      Src: /src/cpython/Objects/mimalloc/random.c:105,1
    - Dst: read32
      Src: /src/cpython/Objects/mimalloc/random.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - key
    - nonce
    argTypes:
    - mi_random_ctx_t*
    - uint8_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: chacha_init
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - memset
    - read32
    linkageType: ''
    returnType: void
    signature: void chacha_init(mi_random_ctx_t* ctx, const uint8_t key[32], uint64_t
      nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/random.c:117,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/mimalloc/random.c:118,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/random.c:123,1
    - Dst: chacha_block
      Src: /src/cpython/Objects/mimalloc/random.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - nonce
    - ctx_new
    argTypes:
    - mi_random_ctx_t*
    - uint64_t
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: chacha_split
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - _mi_memcpy
    - memset
    - mi_assert_internal
    - chacha_block
    linkageType: ''
    returnType: void
    signature: void chacha_split(mi_random_ctx_t* ctx, uint64_t nonce, mi_random_ctx_t*
      ctx_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: mi_random_is_initialized
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_random_is_initialized(mi_random_ctx_t* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/random.c:139,1
    - Dst: mi_random_is_initialized
      Src: /src/cpython/Objects/mimalloc/random.c:139,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/random.c:140,1
    - Dst: chacha_split
      Src: /src/cpython/Objects/mimalloc/random.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ctx_new
    argTypes:
    - mi_random_ctx_t*
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: _mi_random_split
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - chacha_split
    - mi_assert_internal
    - mi_random_is_initialized
    linkageType: ''
    returnType: void
    signature: void _mi_random_split(mi_random_ctx_t* ctx, mi_random_ctx_t* ctx_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/random.c:145,1
    - Dst: mi_random_is_initialized
      Src: /src/cpython/Objects/mimalloc/random.c:145,1
    - Dst: chacha_next32
      Src: /src/cpython/Objects/mimalloc/random.c:147,1
    - Dst: chacha_next32
      Src: /src/cpython/Objects/mimalloc/random.c:149,1
    - Dst: chacha_next32
      Src: /src/cpython/Objects/mimalloc/random.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: _mi_random_next
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - chacha_next32
    - mi_assert_internal
    - mi_random_is_initialized
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _mi_random_next(mi_random_ctx_t* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_clock_now
      Src: /src/cpython/Objects/mimalloc/random.c:163,1
    - Dst: _mi_random_shuffle
      Src: /src/cpython/Objects/mimalloc/random.c:167,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/random.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - extra_seed
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: _mi_os_random_weak
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - _mi_random_shuffle
    - mi_assert_internal
    - _mi_prim_clock_now
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _mi_os_random_weak(uintptr_t extra_seed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_random_buf
      Src: /src/cpython/Objects/mimalloc/random.c:175,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/random.c:179,1
    - Dst: _mi_os_random_weak
      Src: /src/cpython/Objects/mimalloc/random.c:181,1
    - Dst: _mi_random_shuffle
      Src: /src/cpython/Objects/mimalloc/random.c:183,1
    - Dst: chacha_init
      Src: /src/cpython/Objects/mimalloc/random.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - use_weak
    argTypes:
    - mi_random_ctx_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 192
    functionName: mi_random_init_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - _mi_random_shuffle
    - _mi_prim_random_buf
    - _mi_warning_message
    - chacha_init
    - _mi_os_random_weak
    linkageType: ''
    returnType: void
    signature: void mi_random_init_ex(mi_random_ctx_t* ctx, bool use_weak)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_random_init_ex
      Src: /src/cpython/Objects/mimalloc/random.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: _mi_random_init
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - mi_random_init_ex
    linkageType: ''
    returnType: void
    signature: void _mi_random_init(mi_random_ctx_t* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_random_init_ex
      Src: /src/cpython/Objects/mimalloc/random.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: _mi_random_init_weak
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - mi_random_init_ex
    linkageType: ''
    returnType: void
    signature: void _mi_random_init_weak(mi_random_ctx_t * ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_random_init
      Src: /src/cpython/Objects/mimalloc/random.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mi_random_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: _mi_random_reinit_if_weak
    functionSourceFile: /src/cpython/Objects/mimalloc/random.c
    functionUses: 0
    functionsReached:
    - _mi_random_init
    linkageType: ''
    returnType: void
    signature: void _mi_random_reinit_if_weak(mi_random_ctx_t * ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:21,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:22,1
    - Dst: _mi_is_power_of_two
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:22,1
    - Dst: _mi_heap_malloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:29,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:30,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:36,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:40,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:43,1
    - Dst: _mi_heap_malloc_zero_ex
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:48,1
    - Dst: _mi_heap_malloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - heap
    - size
    - alignment
    - offset
    - zero
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 57
    functionName: mi_heap_malloc_zero_aligned_at_fallback
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - _mi_heap_malloc_zero_ex
    - mi_unlikely
    - _mi_error_message
    - _mi_is_power_of_two
    - _mi_heap_malloc_zero
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline * mi_heap_malloc_zero_aligned_at_fallback(mi_heap_t*
      const heap, const size_t size, const size_t alignment, const size_t offset,
      const bool zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc_zero_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - heap
    - size
    - alignment
    - offset
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: mi_heap_malloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc_zero_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_malloc_aligned_at(mi_heap_t* heap, size_t
      size, size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc_zero_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - heap
    - size
    - alignment
    - offset
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: mi_heap_zalloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc_zero_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_zalloc_aligned_at(mi_heap_t* heap, size_t
      size, size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_zalloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - heap
    - size
    - alignment
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: mi_heap_zalloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_zalloc_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_zalloc_aligned(mi_heap_t* heap, size_t
      size, size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:179,1
    - Dst: mi_heap_zalloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - heap
    - count
    - size
    - alignment
    - offset
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: mi_heap_calloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_zalloc_aligned_at
    - mi_count_size_overflow
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_calloc_aligned_at(mi_heap_t* heap, size_t
      count, size_t size, size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_calloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - heap
    - count
    - size
    - alignment
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: mi_heap_calloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_calloc_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_calloc_aligned(mi_heap_t* heap, size_t
      count, size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:188,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - size
    - alignment
    - offset
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: mi_malloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc_aligned_at
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_malloc_aligned_at(size_t size, size_t alignment,
      size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:192,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: mi_malloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_malloc_aligned
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_malloc_aligned(size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_zalloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:196,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - size
    - alignment
    - offset
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: mi_zalloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_zalloc_aligned_at
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_zalloc_aligned_at(size_t size, size_t alignment,
      size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_zalloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:200,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: mi_zalloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_zalloc_aligned
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_zalloc_aligned(size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_calloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:204,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - count
    - size
    - alignment
    - offset
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: mi_calloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_calloc_aligned_at
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_calloc_aligned_at(size_t count, size_t size,
      size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_calloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:208,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - count
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: mi_calloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_calloc_aligned
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_calloc_aligned(size_t count, size_t size, size_t
      alignment)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:217,1
    - Dst: _mi_heap_realloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:218,1
    - Dst: mi_heap_malloc_zero_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:219,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:220,1
    - Dst: mi_heap_malloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:227,1
    - Dst: _mi_memzero
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:232,1
    - Dst: _mi_memcpy_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:234,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - heap
    - p
    - newsize
    - alignment
    - offset
    - zero
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 239
    functionName: mi_heap_realloc_zero_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_free
    - _mi_memcpy_aligned
    - _mi_memzero
    - _mi_heap_realloc_zero
    - mi_assert
    - mi_heap_malloc_aligned_at
    - mi_heap_malloc_zero_aligned_at
    - mi_usable_size
    linkageType: ''
    returnType: void
    signature: void * mi_heap_realloc_zero_aligned_at(mi_heap_t* heap, void* p, size_t
      newsize, size_t alignment, size_t offset, bool zero)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:242,1
    - Dst: _mi_heap_realloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:243,1
    - Dst: mi_heap_realloc_zero_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - heap
    - p
    - newsize
    - alignment
    - zero
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: mi_heap_realloc_zero_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - _mi_heap_realloc_zero
    - mi_heap_realloc_zero_aligned_at
    - mi_assert
    linkageType: ''
    returnType: void
    signature: void * mi_heap_realloc_zero_aligned(mi_heap_t* heap, void* p, size_t
      newsize, size_t alignment, bool zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc_zero_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - heap
    - p
    - newsize
    - alignment
    - offset
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: mi_heap_realloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc_zero_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_realloc_aligned_at(mi_heap_t* heap, void*
      p, size_t newsize, size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc_zero_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - heap
    - p
    - newsize
    - alignment
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: mi_heap_realloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc_zero_aligned
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_realloc_aligned(mi_heap_t* heap, void*
      p, size_t newsize, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc_zero_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - heap
    - p
    - newsize
    - alignment
    - offset
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: mi_heap_rezalloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc_zero_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_rezalloc_aligned_at(mi_heap_t* heap, void*
      p, size_t newsize, size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc_zero_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - heap
    - p
    - newsize
    - alignment
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: mi_heap_rezalloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc_zero_aligned
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_rezalloc_aligned(mi_heap_t* heap, void*
      p, size_t newsize, size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:266,1
    - Dst: mi_heap_rezalloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - heap
    - p
    - newcount
    - size
    - alignment
    - offset
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: mi_heap_recalloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_count_size_overflow
    - mi_heap_rezalloc_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_recalloc_aligned_at(mi_heap_t* heap, void*
      p, size_t newcount, size_t size, size_t alignment, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:272,1
    - Dst: mi_heap_rezalloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - heap
    - p
    - newcount
    - size
    - alignment
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: mi_heap_recalloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_count_size_overflow
    - mi_heap_rezalloc_aligned
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_recalloc_aligned(mi_heap_t* heap, void*
      p, size_t newcount, size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:277,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - newsize
    - alignment
    - offset
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: mi_realloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc_aligned_at
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_realloc_aligned_at(void* p, size_t newsize,
      size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:281,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - newsize
    - alignment
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: mi_realloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc_aligned
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_realloc_aligned(void* p, size_t newsize, size_t
      alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_rezalloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:285,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - newsize
    - alignment
    - offset
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: mi_rezalloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_rezalloc_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_rezalloc_aligned_at(void* p, size_t newsize,
      size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_rezalloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:289,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - newsize
    - alignment
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: mi_rezalloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_rezalloc_aligned
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_rezalloc_aligned(void* p, size_t newsize, size_t
      alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_recalloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:293,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - newcount
    - size
    - alignment
    - offset
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: mi_recalloc_aligned_at
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_recalloc_aligned_at
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_recalloc_aligned_at(void* p, size_t newcount,
      size_t size, size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_recalloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:297,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc-aligned.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - newcount
    - size
    - alignment
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 5
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: mi_recalloc_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-aligned.c
    functionUses: 0
    functionsReached:
    - mi_heap_recalloc_aligned
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_recalloc_aligned(void* p, size_t newcount, size_t
      size, size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - commit
    - cm
    argTypes:
    - mi_commit_mask_t*
    - mi_commit_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: mi_commit_mask_all_set
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_commit_mask_all_set(const mi_commit_mask_t* commit, const mi_commit_mask_t*
      cm)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - commit
    - cm
    argTypes:
    - mi_commit_mask_t*
    - mi_commit_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: mi_commit_mask_any_set
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_commit_mask_any_set(const mi_commit_mask_t* commit, const mi_commit_mask_t*
      cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - commit
    - cm
    - res
    argTypes:
    - mi_commit_mask_t*
    - mi_commit_mask_t*
    - mi_commit_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: mi_commit_mask_create_intersect
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi_commit_mask_create_intersect(const mi_commit_mask_t* commit,
      const mi_commit_mask_t* cm, mi_commit_mask_t* res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - res
    - cm
    argTypes:
    - mi_commit_mask_t*
    - mi_commit_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: mi_commit_mask_clear
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi_commit_mask_clear(mi_commit_mask_t* res, const mi_commit_mask_t*
      cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - res
    - cm
    argTypes:
    - mi_commit_mask_t*
    - mi_commit_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: mi_commit_mask_set
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi_commit_mask_set(mi_commit_mask_t* res, const mi_commit_mask_t*
      cm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:56,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:57,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:59,1
    - Dst: mi_commit_mask_create_full
      Src: /src/cpython/Objects/mimalloc/segment.c:60,1
    - Dst: mi_commit_mask_create_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:63,1
    - Dst: mi_commit_mask_create_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:66,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - bitidx
    - bitcount
    - cm
    argTypes:
    - size_t
    - size_t
    - mi_commit_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: mi_commit_mask_create
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_commit_mask_create_empty
    - mi_assert_internal
    - mi_commit_mask_create_full
    linkageType: ''
    returnType: void
    signature: void mi_commit_mask_create(size_t bitidx, size_t bitcount, mi_commit_mask_t*
      cm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - cm
    - total
    argTypes:
    - mi_commit_mask_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: _mi_commit_mask_committed_size
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_commit_mask_committed_size(const mi_commit_mask_t* cm, size_t
      total)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:129,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:141,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - cm
    - idx
    argTypes:
    - mi_commit_mask_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 144
    functionName: _mi_commit_mask_next_run
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_commit_mask_next_run(const mi_commit_mask_t* cm, size_t*
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - segment
    argTypes:
    - mi_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: mi_segment_slices_end
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_slice_t
    signature: mi_slice_t * mi_segment_slices_end(const mi_segment_t* segment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:166,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:167,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - slice
    argTypes:
    - mi_slice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: mi_slice_start
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_segment_slices_end
    - mi_assert_internal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * mi_slice_start(const mi_slice_t* slice)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:179,1
    - Dst: mi_bsr
      Src: /src/cpython/Objects/mimalloc/segment.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - slice_count
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: mi_slice_bin8
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_bsr
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t mi_slice_bin8(size_t slice_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:188,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:189,1
    - Dst: mi_slice_bin8
      Src: /src/cpython/Objects/mimalloc/segment.c:189,1
    - Dst: mi_slice_bin8
      Src: /src/cpython/Objects/mimalloc/segment.c:190,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - slice_count
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: mi_slice_bin
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_slice_bin8
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t mi_slice_bin(size_t slice_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:196,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - slice
    argTypes:
    - mi_slice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: mi_slice_index
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t mi_slice_index(const mi_slice_t* slice)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sq
    - slice
    argTypes:
    - mi_span_queue_t*
    - mi_slice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: mi_span_queue_push
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_span_queue_push(mi_span_queue_t* sq, mi_slice_t* slice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_slice_bin
      Src: /src/cpython/Objects/mimalloc/segment.c:219,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slice_count
    - tld
    argTypes:
    - size_t
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: mi_span_queue_for
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_slice_bin
    - mi_assert_internal
    linkageType: ''
    returnType: mi_span_queue_t
    signature: mi_span_queue_t * mi_span_queue_for(size_t slice_count, mi_segments_tld_t*
      tld)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - sq
    - slice
    argTypes:
    - mi_span_queue_t*
    - mi_slice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: mi_span_queue_delete
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_span_queue_delete(mi_span_queue_t* sq, mi_slice_t* slice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slice
    argTypes:
    - mi_slice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: mi_slice_is_used
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_slice_is_used(const mi_slice_t* slice)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sq
    - slice
    argTypes:
    - mi_span_queue_t*
    - mi_slice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: mi_span_queue_contains
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_span_queue_contains(mi_span_queue_t* sq, mi_slice_t* slice)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:256,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:257,1
    - Dst: _mi_ptr_cookie
      Src: /src/cpython/Objects/mimalloc/segment.c:257,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:258,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:259,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/segment.c:259,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:260,1
    - Dst: mi_commit_mask_all_set
      Src: /src/cpython/Objects/mimalloc/segment.c:260,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:263,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:267,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:268,1
    - Dst: mi_slice_index
      Src: /src/cpython/Objects/mimalloc/segment.c:269,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:271,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:274,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:275,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:276,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:280,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:281,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:282,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:283,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:289,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:291,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:292,1
    - Dst: mi_span_queue_for
      Src: /src/cpython/Objects/mimalloc/segment.c:294,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:295,1
    - Dst: mi_span_queue_contains
      Src: /src/cpython/Objects/mimalloc/segment.c:295,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:300,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:301,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - segment
    - tld
    argTypes:
    - mi_segment_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 303
    functionName: mi_segment_is_valid
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_slices_end
    - mi_slice_index
    - mi_assert_internal
    - _mi_ptr_cookie
    - mi_span_queue_contains
    - mi_span_queue_for
    - mi_slice_is_used
    - _mi_thread_id
    - mi_commit_mask_all_set
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_is_valid(mi_segment_t* segment, mi_segments_tld_t*
      tld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - segment
    argTypes:
    - mi_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: mi_segment_info_size
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mi_segment_info_size(mi_segment_t* segment)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - segment
    - slice
    - xblock_size
    - page_size
    argTypes:
    - mi_segment_t*
    - mi_slice_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 328
    functionName: _mi_segment_page_start_from_slice
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * _mi_segment_page_start_from_slice(const mi_segment_t* segment,
      const mi_slice_t* slice, size_t xblock_size, size_t* page_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_to_slice
      Src: /src/cpython/Objects/mimalloc/segment.c:333,1
    - Dst: _mi_segment_page_start_from_slice
      Src: /src/cpython/Objects/mimalloc/segment.c:334,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:335,1
    - Dst: _mi_ptr_page
      Src: /src/cpython/Objects/mimalloc/segment.c:335,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:336,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - segment
    - page
    - page_size
    argTypes:
    - mi_segment_t*
    - mi_page_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: _mi_segment_page_start
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_page_to_slice
    - mi_assert_internal
    - _mi_segment_page_start_from_slice
    - _mi_ptr_page
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * _mi_segment_page_start(const mi_segment_t* segment, const
      mi_page_t* page, size_t* page_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/segment.c:342,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:343,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:351,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:356,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:358,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - required
    - pre_size
    - info_slices
    argTypes:
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 361
    functionName: mi_segment_calculate_slices
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_os_page_size
    - mi_assert_internal
    - _mi_align_up
    linkageType: ''
    returnType: size_t
    signature: size_t mi_segment_calculate_slices(size_t required, size_t* pre_size,
      size_t* info_slices)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/segment.c:371,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - segment_size
    - tld
    argTypes:
    - long
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: mi_segments_track_size
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_stat_decrease
    - _mi_stat_increase
    linkageType: ''
    returnType: void
    signature: void mi_segments_track_size(long segment_size, mi_segments_tld_t* tld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_segment_map_freed_at
      Src: /src/cpython/Objects/mimalloc/segment.c:381,1
    - Dst: mi_segments_track_size
      Src: /src/cpython/Objects/mimalloc/segment.c:382,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:382,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/segment.c:386,1
    - Dst: _mi_os_unprotect
      Src: /src/cpython/Objects/mimalloc/segment.c:387,1
    - Dst: mi_segment_info_size
      Src: /src/cpython/Objects/mimalloc/segment.c:387,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:388,1
    - Dst: _mi_os_unprotect
      Src: /src/cpython/Objects/mimalloc/segment.c:389,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:395,1
    - Dst: _mi_commit_mask_committed_size
      Src: /src/cpython/Objects/mimalloc/segment.c:396,1
    - Dst: _mi_abandoned_await_readers
      Src: /src/cpython/Objects/mimalloc/segment.c:398,1
    - Dst: _mi_arena_free
      Src: /src/cpython/Objects/mimalloc/segment.c:399,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - segment
    - tld
    argTypes:
    - mi_segment_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 379
    functionDepth: 12
    functionLinenumber: 379
    functionLinenumberEnd: 400
    functionName: mi_segment_os_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_segment_map_freed_at
    - mi_segments_track_size
    - mi_segment_size
    - _mi_arena_free
    - _mi_abandoned_await_readers
    - _mi_commit_mask_committed_size
    - _mi_os_page_size
    - mi_segment_info_size
    - _mi_os_unprotect
    linkageType: ''
    returnType: void
    signature: void mi_segment_os_free(mi_segment_t* segment, mi_segments_tld_t* tld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/segment.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tld
    argTypes:
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: _mi_segment_thread_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void _mi_segment_thread_collect(mi_segments_tld_t* tld)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:414,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:414,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:415,1
    - Dst: mi_commit_mask_create_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:416,1
    - Dst: mi_segment_info_size
      Src: /src/cpython/Objects/mimalloc/segment.c:418,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:419,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:423,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:429,1
    - Dst: _mi_align_down
      Src: /src/cpython/Objects/mimalloc/segment.c:430,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:431,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:432,1
    - Dst: _mi_align_down
      Src: /src/cpython/Objects/mimalloc/segment.c:436,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:437,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:446,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:447,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:453,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/segment.c:457,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:459,1
    - Dst: mi_commit_mask_create
      Src: /src/cpython/Objects/mimalloc/segment.c:460,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 7
    argNames:
    - segment
    - conservative
    - p
    - size
    - start_p
    - full_size
    - cm
    argTypes:
    - mi_segment_t*
    - bool
    - uint8_t*
    - size_t
    - uint8_t**
    - size_t*
    - mi_commit_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 461
    functionName: mi_segment_commit_mask
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_assert_internal
    - mi_segment_size
    - _mi_align_down
    - _mi_align_up
    - _mi_warning_message
    - mi_commit_mask_create_empty
    - mi_commit_mask_create
    - mi_segment_info_size
    linkageType: ''
    returnType: void
    signature: void mi_segment_commit_mask(mi_segment_t* segment, bool conservative,
      uint8_t* p, size_t size, uint8_t** start_p, size_t* full_size, mi_commit_mask_t*
      cm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:464,1
    - Dst: mi_commit_mask_all_set
      Src: /src/cpython/Objects/mimalloc/segment.c:464,1
    - Dst: mi_segment_commit_mask
      Src: /src/cpython/Objects/mimalloc/segment.c:470,1
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:471,1
    - Dst: mi_commit_mask_all_set
      Src: /src/cpython/Objects/mimalloc/segment.c:473,1
    - Dst: mi_commit_mask_create_intersect
      Src: /src/cpython/Objects/mimalloc/segment.c:477,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:478,1
    - Dst: _mi_commit_mask_committed_size
      Src: /src/cpython/Objects/mimalloc/segment.c:478,1
    - Dst: _mi_os_commit
      Src: /src/cpython/Objects/mimalloc/segment.c:479,1
    - Dst: mi_commit_mask_set
      Src: /src/cpython/Objects/mimalloc/segment.c:480,1
    - Dst: mi_commit_mask_any_set
      Src: /src/cpython/Objects/mimalloc/segment.c:484,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/segment.c:485,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:485,1
    - Dst: mi_commit_mask_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - segment
    - p
    - size
    - stats
    argTypes:
    - mi_segment_t*
    - uint8_t*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 491
    functionName: mi_segment_commit
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_os_commit
    - mi_commit_mask_any_set
    - mi_segment_commit_mask
    - mi_commit_mask_is_empty
    - mi_commit_mask_create_intersect
    - mi_assert_internal
    - mi_commit_mask_set
    - mi_commit_mask_clear
    - _mi_clock_now
    - _mi_commit_mask_committed_size
    - mi_option_get
    - _mi_stat_decrease
    - mi_commit_mask_all_set
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_commit(mi_segment_t* segment, uint8_t* p, size_t size,
      mi_stats_t* stats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:494,1
    - Dst: mi_commit_mask_all_set
      Src: /src/cpython/Objects/mimalloc/segment.c:494,1
    - Dst: mi_commit_mask_is_full
      Src: /src/cpython/Objects/mimalloc/segment.c:496,1
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:496,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:497,1
    - Dst: mi_segment_commit
      Src: /src/cpython/Objects/mimalloc/segment.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - segment
    - p
    - size
    - stats
    argTypes:
    - mi_segment_t*
    - uint8_t*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: mi_segment_ensure_committed
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_commit_mask_is_full
    - mi_segment_commit
    - mi_commit_mask_is_empty
    - mi_assert_internal
    - mi_commit_mask_all_set
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_ensure_committed(mi_segment_t* segment, uint8_t* p,
      size_t size, mi_stats_t* stats)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:502,1
    - Dst: mi_commit_mask_all_set
      Src: /src/cpython/Objects/mimalloc/segment.c:502,1
    - Dst: mi_segment_commit_mask
      Src: /src/cpython/Objects/mimalloc/segment.c:509,1
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:510,1
    - Dst: mi_commit_mask_any_set
      Src: /src/cpython/Objects/mimalloc/segment.c:512,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:514,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:515,1
    - Dst: _mi_os_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:516,1
    - Dst: mi_commit_mask_create_intersect
      Src: /src/cpython/Objects/mimalloc/segment.c:519,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/segment.c:520,1
    - Dst: _mi_commit_mask_committed_size
      Src: /src/cpython/Objects/mimalloc/segment.c:520,1
    - Dst: mi_commit_mask_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:521,1
    - Dst: mi_commit_mask_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - segment
    - p
    - size
    - stats
    argTypes:
    - mi_segment_t*
    - uint8_t*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 501
    functionDepth: 7
    functionLinenumber: 501
    functionLinenumberEnd: 528
    functionName: mi_segment_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_commit_mask_any_set
    - mi_segment_commit_mask
    - mi_commit_mask_is_empty
    - mi_commit_mask_create_intersect
    - mi_assert_internal
    - mi_commit_mask_clear
    - _mi_commit_mask_committed_size
    - _mi_os_purge
    - _mi_stat_increase
    - mi_commit_mask_all_set
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_purge(mi_segment_t* segment, uint8_t* p, size_t size,
      mi_stats_t* stats)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:533,1
    - Dst: mi_segment_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:534,1
    - Dst: mi_segment_commit_mask
      Src: /src/cpython/Objects/mimalloc/segment.c:541,1
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:542,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:545,1
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:545,1
    - Dst: mi_commit_mask_create_intersect
      Src: /src/cpython/Objects/mimalloc/segment.c:547,1
    - Dst: mi_commit_mask_set
      Src: /src/cpython/Objects/mimalloc/segment.c:548,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/segment.c:549,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:552,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:556,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:557,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:560,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - segment
    - p
    - size
    - stats
    argTypes:
    - mi_segment_t*
    - uint8_t*
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 530
    functionDepth: 8
    functionLinenumber: 530
    functionLinenumberEnd: 568
    functionName: mi_segment_schedule_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_purge
    - mi_segment_commit_mask
    - mi_commit_mask_is_empty
    - mi_commit_mask_create_intersect
    - mi_assert_internal
    - mi_commit_mask_set
    - _mi_clock_now
    - mi_option_get
    - mi_segment_try_purge
    linkageType: ''
    returnType: void
    signature: void mi_segment_schedule_purge(mi_segment_t* segment, uint8_t* p, size_t
      size, mi_stats_t* stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:571,1
    - Dst: _mi_clock_now
      Src: /src/cpython/Objects/mimalloc/segment.c:572,1
    - Dst: mi_commit_mask_create_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:577,1
    - Dst: mi_commit_mask_foreach
      Src: /src/cpython/Objects/mimalloc/segment.c:581,1
    - Dst: mi_segment_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:586,1
    - Dst: mi_commit_mask_foreach_end
      Src: /src/cpython/Objects/mimalloc/segment.c:589,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:590,1
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:590,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - segment
    - force
    - stats
    argTypes:
    - mi_segment_t*
    - bool
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 570
    functionDepth: 8
    functionLinenumber: 570
    functionLinenumberEnd: 591
    functionName: mi_segment_try_purge
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 1
    functionsReached:
    - mi_commit_mask_foreach_end
    - mi_segment_purge
    - mi_commit_mask_is_empty
    - mi_commit_mask_foreach
    - mi_assert_internal
    - _mi_clock_now
    - mi_commit_mask_create_empty
    linkageType: ''
    returnType: void
    signature: void mi_segment_try_purge(mi_segment_t* segment, bool force, mi_stats_t*
      stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - segment
    argTypes:
    - mi_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    functionName: mi_segment_is_abandoned
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_is_abandoned(mi_segment_t* segment)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:604,1
    - Dst: mi_segment_is_abandoned
      Src: /src/cpython/Objects/mimalloc/segment.c:605,1
    - Dst: mi_span_queue_for
      Src: /src/cpython/Objects/mimalloc/segment.c:606,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:608,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:613,1
    - Dst: mi_segment_schedule_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:624,1
    - Dst: mi_slice_start
      Src: /src/cpython/Objects/mimalloc/segment.c:624,1
    - Dst: mi_span_queue_push
      Src: /src/cpython/Objects/mimalloc/segment.c:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - segment
    - slice_index
    - slice_count
    - allow_purge
    - tld
    argTypes:
    - mi_segment_t*
    - size_t
    - size_t
    - bool
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 603
    functionDepth: 9
    functionLinenumber: 603
    functionLinenumberEnd: 630
    functionName: mi_segment_span_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_is_abandoned
    - mi_span_queue_push
    - mi_slice_start
    - mi_assert_internal
    - mi_span_queue_for
    - mi_segment_schedule_purge
    linkageType: ''
    returnType: void
    signature: void mi_segment_span_free(mi_segment_t* segment, size_t slice_index,
      size_t slice_count, bool allow_purge, mi_segments_tld_t* tld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:643,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:644,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:644,1
    - Dst: mi_span_queue_for
      Src: /src/cpython/Objects/mimalloc/segment.c:645,1
    - Dst: mi_span_queue_delete
      Src: /src/cpython/Objects/mimalloc/segment.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - slice
    - tld
    argTypes:
    - mi_slice_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 4
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: mi_segment_span_remove_from_queue
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_span_queue_for
    - mi_span_queue_delete
    - _mi_ptr_segment
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_segment_span_remove_from_queue(mi_slice_t* slice, mi_segments_tld_t*
      tld)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:651,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:652,1
    - Dst: mi_segment_is_abandoned
      Src: /src/cpython/Objects/mimalloc/segment.c:653,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:658,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:668,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:668,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:669,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:671,1
    - Dst: mi_segment_span_remove_from_queue
      Src: /src/cpython/Objects/mimalloc/segment.c:673,1
    - Dst: mi_slice_first
      Src: /src/cpython/Objects/mimalloc/segment.c:676,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:677,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:680,1
    - Dst: mi_segment_span_remove_from_queue
      Src: /src/cpython/Objects/mimalloc/segment.c:682,1
    - Dst: mi_segment_span_free
      Src: /src/cpython/Objects/mimalloc/segment.c:688,1
    - Dst: mi_slice_index
      Src: /src/cpython/Objects/mimalloc/segment.c:688,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - slice
    - tld
    argTypes:
    - mi_slice_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 650
    functionDepth: 10
    functionLinenumber: 650
    functionLinenumberEnd: 690
    functionName: mi_segment_span_free_coalesce
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_segment_span_remove_from_queue
    - mi_segment_slices_end
    - mi_segment_span_free
    - mi_slice_first
    - mi_segment_is_abandoned
    - mi_slice_index
    - mi_assert_internal
    linkageType: ''
    returnType: mi_slice_t
    signature: mi_slice_t * mi_segment_span_free_coalesce(mi_slice_t* slice, mi_segments_tld_t*
      tld)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:700,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:702,1
    - Dst: mi_segment_ensure_committed
      Src: /src/cpython/Objects/mimalloc/segment.c:705,1
    - Dst: _mi_segment_page_start_from_slice
      Src: /src/cpython/Objects/mimalloc/segment.c:705,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:712,1
    - Dst: mi_slice_to_page
      Src: /src/cpython/Objects/mimalloc/segment.c:715,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:716,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/segment.c:716,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:733,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - segment
    - slice_index
    - slice_count
    - tld
    argTypes:
    - mi_segment_t*
    - size_t
    - size_t
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 699
    functionDepth: 6
    functionLinenumber: 699
    functionLinenumberEnd: 745
    functionName: mi_segment_span_allocate
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_slice_to_page
    - mi_segment_slices_end
    - mi_page_block_size
    - mi_assert_internal
    - _mi_segment_page_start_from_slice
    - mi_segment_ensure_committed
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_segment_span_allocate(mi_segment_t* segment, size_t
      slice_index, size_t slice_count, mi_segments_tld_t* tld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:748,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:748,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:749,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:750,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:752,1
    - Dst: mi_slice_index
      Src: /src/cpython/Objects/mimalloc/segment.c:753,1
    - Dst: mi_segment_span_free
      Src: /src/cpython/Objects/mimalloc/segment.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - segment
    - slice
    - slice_count
    - tld
    argTypes:
    - mi_segment_t*
    - mi_slice_t*
    - size_t
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 747
    functionDepth: 10
    functionLinenumber: 747
    functionLinenumberEnd: 757
    functionName: mi_segment_slice_split
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_segment_span_free
    - mi_slice_index
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_segment_slice_split(mi_segment_t* segment, mi_slice_t* slice,
      size_t slice_count, mi_segments_tld_t* tld)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:760,1
    - Dst: mi_span_queue_for
      Src: /src/cpython/Objects/mimalloc/segment.c:762,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:768,1
    - Dst: _mi_arena_memid_is_suitable
      Src: /src/cpython/Objects/mimalloc/segment.c:769,1
    - Dst: mi_span_queue_delete
      Src: /src/cpython/Objects/mimalloc/segment.c:771,1
    - Dst: mi_segment_slice_split
      Src: /src/cpython/Objects/mimalloc/segment.c:774,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:776,1
    - Dst: mi_segment_span_allocate
      Src: /src/cpython/Objects/mimalloc/segment.c:777,1
    - Dst: mi_slice_index
      Src: /src/cpython/Objects/mimalloc/segment.c:777,1
    - Dst: mi_segment_span_free_coalesce
      Src: /src/cpython/Objects/mimalloc/segment.c:780,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - slice_count
    - req_arena_id
    - tld
    argTypes:
    - size_t
    - mi_arena_id_t
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 759
    functionDepth: 11
    functionLinenumber: 759
    functionLinenumberEnd: 791
    functionName: mi_segments_page_find_and_allocate
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - mi_segment_span_allocate
    - mi_assert_internal
    - mi_slice_index
    - mi_span_queue_for
    - mi_span_queue_delete
    - mi_segment_slice_split
    - mi_segment_span_free_coalesce
    - _mi_arena_memid_is_suitable
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_segments_page_find_and_allocate(size_t slice_count,
      mi_arena_id_t req_arena_id, mi_segments_tld_t* tld)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:810,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:813,1
    - Dst: mi_segment_calculate_slices
      Src: /src/cpython/Objects/mimalloc/segment.c:816,1
    - Dst: _mi_arena_alloc_aligned
      Src: /src/cpython/Objects/mimalloc/segment.c:823,1
    - Dst: mi_commit_mask_create_full
      Src: /src/cpython/Objects/mimalloc/segment.c:831,1
    - Dst: _mi_divide_up
      Src: /src/cpython/Objects/mimalloc/segment.c:835,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:836,1
    - Dst: mi_commit_mask_create
      Src: /src/cpython/Objects/mimalloc/segment.c:837,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:838,1
    - Dst: _mi_os_commit
      Src: /src/cpython/Objects/mimalloc/segment.c:839,1
    - Dst: _mi_arena_free
      Src: /src/cpython/Objects/mimalloc/segment.c:840,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:844,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:848,1
    - Dst: mi_commit_mask_create_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:852,1
    - Dst: mi_atomic_store_ptr_release
      Src: /src/cpython/Objects/mimalloc/segment.c:853,1
    - Dst: mi_segments_track_size
      Src: /src/cpython/Objects/mimalloc/segment.c:855,1
    - Dst: _mi_segment_map_allocated_at
      Src: /src/cpython/Objects/mimalloc/segment.c:856,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 10
    argNames:
    - required
    - page_alignment
    - eager_delayed
    - req_arena_id
    - psegment_slices
    - ppre_size
    - pinfo_slices
    - commit
    - tld
    - os_tld
    argTypes:
    - size_t
    - size_t
    - bool
    - mi_arena_id_t
    - size_t*
    - size_t*
    - size_t*
    - bool
    - mi_segments_tld_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 798
    functionDepth: 12
    functionLinenumber: 798
    functionLinenumberEnd: 858
    functionName: mi_segment_os_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_os_commit
    - _mi_divide_up
    - _mi_arena_alloc_aligned
    - mi_segment_calculate_slices
    - mi_segments_track_size
    - _mi_segment_map_allocated_at
    - mi_assert_internal
    - _mi_arena_free
    - _mi_align_up
    - mi_atomic_store_ptr_release
    - mi_commit_mask_create_full
    - mi_commit_mask_create_empty
    - mi_option_get
    - mi_commit_mask_create
    linkageType: ''
    returnType: mi_segment_t
    signature: "mi_segment_t * mi_segment_os_alloc( size_t required, size_t page_alignment,
      bool eager_delayed, mi_arena_id_t req_arena_id,\n                                          size_t*
      psegment_slices, size_t* ppre_size, size_t* pinfo_slices,\n                                          bool
      commit, mi_segments_tld_t* tld, mi_os_tld_t* os_tld)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:864,1
    - Dst: mi_segment_calculate_slices
      Src: /src/cpython/Objects/mimalloc/segment.c:869,1
    - Dst: _mi_current_thread_count
      Src: /src/cpython/Objects/mimalloc/segment.c:876,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/segment.c:877,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/segment.c:878,1
    - Dst: mi_segment_os_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:882,1
    - Dst: _mi_memzero
      Src: /src/cpython/Objects/mimalloc/segment.c:891,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/segment.c:898,1
    - Dst: _mi_ptr_cookie
      Src: /src/cpython/Objects/mimalloc/segment.c:899,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/segment.c:904,1
    - Dst: mi_segment_info_size
      Src: /src/cpython/Objects/mimalloc/segment.c:904,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/segment.c:911,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:912,1
    - Dst: mi_segment_info_size
      Src: /src/cpython/Objects/mimalloc/segment.c:912,1
    - Dst: _mi_os_protect
      Src: /src/cpython/Objects/mimalloc/segment.c:913,1
    - Dst: mi_segment_info_size
      Src: /src/cpython/Objects/mimalloc/segment.c:913,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:914,1
    - Dst: mi_segment_ensure_committed
      Src: /src/cpython/Objects/mimalloc/segment.c:915,1
    - Dst: _mi_os_protect
      Src: /src/cpython/Objects/mimalloc/segment.c:916,1
    - Dst: mi_segment_span_allocate
      Src: /src/cpython/Objects/mimalloc/segment.c:922,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:923,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:924,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:929,1
    - Dst: mi_segment_span_free
      Src: /src/cpython/Objects/mimalloc/segment.c:930,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:933,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:934,1
    - Dst: mi_commit_mask_is_empty
      Src: /src/cpython/Objects/mimalloc/segment.c:934,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:935,1
    - Dst: mi_commit_mask_is_full
      Src: /src/cpython/Objects/mimalloc/segment.c:935,1
    - Dst: mi_segment_span_allocate
      Src: /src/cpython/Objects/mimalloc/segment.c:936,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:937,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/segment.c:940,1
    - Dst: mi_segment_is_valid
      Src: /src/cpython/Objects/mimalloc/segment.c:940,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 6
    argNames:
    - required
    - page_alignment
    - req_arena_id
    - tld
    - os_tld
    - huge_page
    argTypes:
    - size_t
    - size_t
    - mi_arena_id_t
    - mi_segments_tld_t*
    - mi_os_tld_t*
    - mi_page_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 862
    functionDepth: 13
    functionLinenumber: 862
    functionLinenumberEnd: 942
    functionName: mi_segment_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_option_is_enabled
    - mi_assert_expensive
    - _mi_current_thread_count
    - mi_segment_span_allocate
    - _mi_ptr_cookie
    - mi_segment_size
    - _mi_os_protect
    - mi_segment_ensure_committed
    - mi_segment_info_size
    - mi_commit_mask_is_full
    - _mi_memzero
    - mi_assert_internal
    - mi_option_get
    - _mi_os_page_size
    - _mi_stat_increase
    - _mi_thread_id
    - mi_segment_span_free
    - mi_commit_mask_is_empty
    - mi_segment_calculate_slices
    - mi_segment_os_alloc
    - mi_segment_is_valid
    linkageType: ''
    returnType: mi_segment_t
    signature: mi_segment_t * mi_segment_alloc(size_t required, size_t page_alignment,
      mi_arena_id_t req_arena_id, mi_segments_tld_t* tld, mi_os_tld_t* os_tld, mi_page_t**
      huge_page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/segment.c:946,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:947,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:948,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:949,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:953,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:958,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:959,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:960,1
    - Dst: mi_slice_index
      Src: /src/cpython/Objects/mimalloc/segment.c:960,1
    - Dst: mi_segment_span_remove_from_queue
      Src: /src/cpython/Objects/mimalloc/segment.c:962,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:969,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:972,1
    - Dst: mi_segment_info_size
      Src: /src/cpython/Objects/mimalloc/segment.c:972,1
    - Dst: mi_segment_os_free
      Src: /src/cpython/Objects/mimalloc/segment.c:975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - segment
    - force
    - tld
    argTypes:
    - mi_segment_t*
    - bool
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 945
    functionDepth: 13
    functionLinenumber: 945
    functionLinenumberEnd: 976
    functionName: mi_segment_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_slices_end
    - mi_segment_span_remove_from_queue
    - mi_slice_index
    - mi_assert_internal
    - MI_UNUSED
    - _mi_stat_decrease
    - mi_segment_os_free
    - mi_segment_info_size
    linkageType: ''
    returnType: void
    signature: void mi_segment_free(mi_segment_t* segment, bool force, mi_segments_tld_t*
      tld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:987,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:988,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/segment.c:988,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:989,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:990,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:992,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:993,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/segment.c:996,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:997,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:998,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/segment.c:1001,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/segment.c:1003,1
    - Dst: _mi_os_reset
      Src: /src/cpython/Objects/mimalloc/segment.c:1004,1
    - Dst: _mi_memzero
      Src: /src/cpython/Objects/mimalloc/segment.c:1010,1
    - Dst: mi_segment_span_free_coalesce
      Src: /src/cpython/Objects/mimalloc/segment.c:1014,1
    - Dst: mi_page_to_slice
      Src: /src/cpython/Objects/mimalloc/segment.c:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - page
    - tld
    argTypes:
    - mi_page_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 986
    functionDepth: 11
    functionLinenumber: 986
    functionLinenumberEnd: 1019
    functionName: mi_segment_page_clear
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - _mi_page_start
    - mi_option_is_enabled
    - mi_page_block_size
    - _mi_memzero
    - mi_page_to_slice
    - mi_assert_internal
    - mi_page_all_free
    - mi_segment_span_free_coalesce
    - _mi_os_reset
    - _mi_stat_decrease
    linkageType: ''
    returnType: mi_slice_t
    signature: mi_slice_t * mi_segment_page_clear(mi_page_t* page, mi_segments_tld_t*
      tld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/segment.c:1023,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1025,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/segment.c:1026,1
    - Dst: mi_segment_is_valid
      Src: /src/cpython/Objects/mimalloc/segment.c:1026,1
    - Dst: mi_segment_page_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:1029,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/segment.c:1030,1
    - Dst: mi_segment_is_valid
      Src: /src/cpython/Objects/mimalloc/segment.c:1030,1
    - Dst: mi_segment_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1034,1
    - Dst: mi_segment_abandon
      Src: /src/cpython/Objects/mimalloc/segment.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - page
    - force
    - tld
    argTypes:
    - mi_page_t*
    - bool
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1021
    functionDepth: 14
    functionLinenumber: 1021
    functionLinenumberEnd: 1040
    functionName: _mi_segment_page_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_free
    - mi_assert_expensive
    - mi_assert
    - mi_segment_page_clear
    - mi_segment_abandon
    - _mi_page_segment
    - mi_segment_is_valid
    linkageType: ''
    returnType: void
    signature: void _mi_segment_page_free(mi_page_t* page, bool force, mi_segments_tld_t*
      tld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - mi_tagged_segment_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1075
    functionName: mi_tagged_segment_ptr
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_segment_t
    signature: mi_segment_t * mi_tagged_segment_ptr(mi_tagged_segment_t ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - segment
    - ts
    argTypes:
    - mi_segment_t*
    - mi_tagged_segment_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1081
    functionName: mi_tagged_segment
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: mi_tagged_segment_t
    signature: mi_tagged_segment_t mi_tagged_segment(mi_segment_t* segment, mi_tagged_segment_t
      ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1087,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1088,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1088,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1089,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1090,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1091,1
    - Dst: mi_atomic_store_ptr_release
      Src: /src/cpython/Objects/mimalloc/segment.c:1093,1
    - Dst: mi_atomic_cas_ptr_weak_release
      Src: /src/cpython/Objects/mimalloc/segment.c:1094,1
    - Dst: mi_atomic_increment_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - segment
    argTypes:
    - mi_abandoned_pool_t*
    - mi_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1096
    functionName: mi_abandoned_visited_push
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - mi_atomic_store_ptr_release
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_cas_ptr_weak_release
    - mi_atomic_increment_relaxed
    linkageType: ''
    returnType: void
    signature: void mi_abandoned_visited_push(mi_abandoned_pool_t *pool, mi_segment_t*
      segment)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1102,1
    - Dst: mi_atomic_exchange_ptr_acq_rel
      Src: /src/cpython/Objects/mimalloc/segment.c:1105,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1110,1
    - Dst: mi_tagged_segment_ptr
      Src: /src/cpython/Objects/mimalloc/segment.c:1111,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1112,1
    - Dst: mi_tagged_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1113,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/segment.c:1114,1
    - Dst: mi_atomic_add_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1115,1
    - Dst: mi_atomic_sub_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1116,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1124,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1130,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1133,1
    - Dst: mi_atomic_store_ptr_release
      Src: /src/cpython/Objects/mimalloc/segment.c:1134,1
    - Dst: mi_tagged_segment_ptr
      Src: /src/cpython/Objects/mimalloc/segment.c:1134,1
    - Dst: mi_tagged_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1135,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/segment.c:1136,1
    - Dst: mi_atomic_add_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1137,1
    - Dst: mi_atomic_sub_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pool
    argTypes:
    - mi_abandoned_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1140
    functionName: mi_abandoned_visited_revisit
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_cas_weak_release
    - mi_atomic_load_relaxed
    - mi_tagged_segment
    - mi_atomic_store_ptr_release
    - mi_atomic_load_ptr_relaxed
    - mi_tagged_segment_ptr
    - mi_atomic_exchange_ptr_acq_rel
    - mi_atomic_add_relaxed
    - mi_atomic_sub_relaxed
    linkageType: ''
    returnType: bool
    signature: bool mi_abandoned_visited_revisit(mi_abandoned_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1144,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1145,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1145,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1146,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1147,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1149,1
    - Dst: mi_atomic_store_ptr_release
      Src: /src/cpython/Objects/mimalloc/segment.c:1151,1
    - Dst: mi_tagged_segment_ptr
      Src: /src/cpython/Objects/mimalloc/segment.c:1151,1
    - Dst: mi_tagged_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1152,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/segment.c:1153,1
    - Dst: mi_atomic_increment_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pool
    - segment
    argTypes:
    - mi_abandoned_pool_t*
    - mi_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1155
    functionName: mi_abandoned_push
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_tagged_segment
    - mi_atomic_store_ptr_release
    - mi_atomic_load_ptr_relaxed
    - mi_tagged_segment_ptr
    - mi_atomic_cas_weak_release
    - mi_atomic_increment_relaxed
    linkageType: ''
    returnType: void
    signature: void mi_abandoned_push(mi_abandoned_pool_t* pool, mi_segment_t* segment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/segment.c:1162,1
    - Dst: mi_atomic_yield
      Src: /src/cpython/Objects/mimalloc/segment.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - mi_abandoned_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1165
    functionName: _mi_abandoned_await_readers
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 1
    functionsReached:
    - mi_atomic_load_acquire
    - mi_atomic_yield
    linkageType: ''
    returnType: void
    signature: void _mi_abandoned_await_readers(mi_abandoned_pool_t* pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1171,1
    - Dst: mi_tagged_segment_ptr
      Src: /src/cpython/Objects/mimalloc/segment.c:1172,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/segment.c:1173,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/segment.c:1174,1
    - Dst: mi_abandoned_visited_revisit
      Src: /src/cpython/Objects/mimalloc/segment.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - mi_abandoned_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1177
    functionName: mi_abandoned_pop
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_likely
    - mi_atomic_load_relaxed
    - mi_abandoned_visited_revisit
    - mi_tagged_segment_ptr
    linkageType: ''
    returnType: mi_segment_t
    signature: mi_segment_t * mi_abandoned_pop(mi_abandoned_pool_t* pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1206,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1207,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1208,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1208,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1209,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/segment.c:1210,1
    - Dst: mi_segment_is_valid
      Src: /src/cpython/Objects/mimalloc/segment.c:1210,1
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:1214,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1216,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1217,1
    - Dst: mi_segment_span_remove_from_queue
      Src: /src/cpython/Objects/mimalloc/segment.c:1219,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:1226,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/segment.c:1226,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/segment.c:1229,1
    - Dst: mi_segments_track_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1230,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1230,1
    - Dst: mi_atomic_store_ptr_release
      Src: /src/cpython/Objects/mimalloc/segment.c:1232,1
    - Dst: mi_abandoned_push
      Src: /src/cpython/Objects/mimalloc/segment.c:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - segment
    - tld
    argTypes:
    - mi_segment_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1205
    functionDepth: 9
    functionLinenumber: 1205
    functionLinenumberEnd: 1235
    functionName: mi_segment_abandon
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 1
    functionsReached:
    - mi_segment_slices_end
    - mi_segment_span_remove_from_queue
    - mi_option_is_enabled
    - mi_abandoned_push
    - mi_assert_internal
    - mi_segment_size
    - mi_assert_expensive
    - mi_atomic_store_ptr_release
    - mi_atomic_load_ptr_relaxed
    - mi_segment_try_purge
    - mi_segments_track_size
    - _mi_stat_increase
    - mi_segment_is_valid
    linkageType: ''
    returnType: void
    signature: void mi_segment_abandon(mi_segment_t* segment, mi_segments_tld_t* tld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/segment.c:1238,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1239,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/segment.c:1239,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1240,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/segment.c:1240,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1241,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/segment.c:1243,1
    - Dst: mi_segment_is_valid
      Src: /src/cpython/Objects/mimalloc/segment.c:1243,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/segment.c:1246,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1247,1
    - Dst: mi_segment_abandon
      Src: /src/cpython/Objects/mimalloc/segment.c:1250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - page
    - tld
    argTypes:
    - mi_page_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1237
    functionDepth: 10
    functionLinenumber: 1237
    functionLinenumberEnd: 1252
    functionName: _mi_segment_page_abandon
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_page_thread_free_flag
    - mi_assert_internal
    - mi_assert_expensive
    - mi_assert
    - mi_segment_abandon
    - _mi_page_segment
    - mi_page_heap
    - _mi_stat_increase
    - mi_segment_is_valid
    linkageType: ''
    returnType: void
    signature: void _mi_segment_page_abandon(mi_page_t* page, mi_segments_tld_t* tld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_segment_slices_end
      Src: /src/cpython/Objects/mimalloc/segment.c:1260,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - segment
    - end
    argTypes:
    - mi_segment_t*
    - mi_slice_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1264
    functionName: mi_slices_start_iterate
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_slices_end
    - mi_assert_internal
    linkageType: ''
    returnType: mi_slice_t
    signature: mi_slice_t * mi_slices_start_iterate(mi_segment_t* segment, const mi_slice_t**
      end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1269,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1270,1
    - Dst: mi_segment_is_abandoned
      Src: /src/cpython/Objects/mimalloc/segment.c:1270,1
    - Dst: mi_slices_start_iterate
      Src: /src/cpython/Objects/mimalloc/segment.c:1275,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1277,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1278,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:1279,1
    - Dst: mi_slice_to_page
      Src: /src/cpython/Objects/mimalloc/segment.c:1281,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/segment.c:1282,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1283,1
    - Dst: _PyMem_mi_page_is_safe_to_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1283,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1285,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:1286,1
    - Dst: mi_segment_page_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:1291,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1292,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:1292,1
    - Dst: mi_page_has_any_available
      Src: /src/cpython/Objects/mimalloc/segment.c:1298,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - segment
    - slices_needed
    - block_size
    - tld
    argTypes:
    - mi_segment_t*
    - size_t
    - size_t
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1267
    functionDepth: 12
    functionLinenumber: 1267
    functionLinenumberEnd: 1313
    functionName: mi_segment_check_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_slice_to_page
    - mi_page_has_any_available
    - mi_segment_is_abandoned
    - mi_assert_internal
    - mi_page_all_free
    - _PyMem_mi_page_is_safe_to_free
    - mi_segment_page_clear
    - _mi_stat_decrease
    - mi_slice_is_used
    - _mi_page_free_collect
    - mi_slices_start_iterate
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_check_free(mi_segment_t* segment, size_t slices_needed,
      size_t block_size, mi_segments_tld_t* tld)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - heap
    - tag
    argTypes:
    - mi_heap_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1325
    functionName: mi_heap_by_tag
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_heap_t
    signature: mi_heap_t * mi_heap_by_tag(mi_heap_t* heap, uint8_t tag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1330,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1330,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/segment.c:1331,1
    - Dst: mi_segment_is_valid
      Src: /src/cpython/Objects/mimalloc/segment.c:1331,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/segment.c:1334,1
    - Dst: mi_segments_track_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1336,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1336,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1337,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:1338,1
    - Dst: mi_slices_start_iterate
      Src: /src/cpython/Objects/mimalloc/segment.c:1342,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1344,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1345,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:1346,1
    - Dst: mi_slice_to_page
      Src: /src/cpython/Objects/mimalloc/segment.c:1348,1
    - Dst: mi_heap_by_tag
      Src: /src/cpython/Objects/mimalloc/segment.c:1349,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1350,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1351,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/segment.c:1351,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1352,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/segment.c:1352,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1353,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:1354,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/segment.c:1357,1
    - Dst: _mi_page_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1358,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/segment.c:1359,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1360,1
    - Dst: _PyMem_mi_page_is_safe_to_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1360,1
    - Dst: mi_segment_page_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:1365,1
    - Dst: _mi_page_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1369,1
    - Dst: mi_page_has_any_available
      Src: /src/cpython/Objects/mimalloc/segment.c:1370,1
    - Dst: mi_segment_span_free_coalesce
      Src: /src/cpython/Objects/mimalloc/segment.c:1378,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1380,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/segment.c:1384,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1386,1
    - Dst: mi_segment_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1387,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - segment
    - heap
    - requested_block_size
    - right_page_reclaimed
    - tld
    argTypes:
    - mi_segment_t*
    - mi_heap_t*
    - size_t
    - bool*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1329
    functionDepth: 14
    functionLinenumber: 1329
    functionLinenumberEnd: 1393
    functionName: mi_segment_reclaim
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_heap_by_tag
    - mi_segment_free
    - mi_assert_expensive
    - _PyMem_mi_page_is_safe_to_free
    - mi_segment_is_valid
    - mi_page_set_heap
    - mi_segment_size
    - mi_segment_page_clear
    - _mi_stat_decrease
    - mi_page_heap
    - _mi_page_free_collect
    - mi_slice_to_page
    - mi_assert_internal
    - mi_segment_span_free_coalesce
    - _mi_page_use_delayed_free
    - mi_slice_is_used
    - mi_segments_track_size
    - _mi_thread_id
    - mi_page_thread_free_flag
    - mi_page_has_any_available
    - _mi_page_reclaim
    - mi_page_all_free
    - mi_atomic_load_ptr_relaxed
    - mi_assert
    - mi_slices_start_iterate
    linkageType: ''
    returnType: mi_segment_t
    signature: mi_segment_t * mi_segment_reclaim(mi_segment_t* segment, mi_heap_t*
      heap, size_t requested_block_size, bool* right_page_reclaimed, mi_segments_tld_t*
      tld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_abandoned_pop
      Src: /src/cpython/Objects/mimalloc/segment.c:1398,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - heap
    - tld
    argTypes:
    - mi_heap_t*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1396
    functionDepth: 15
    functionLinenumber: 1396
    functionLinenumberEnd: 1401
    functionName: _mi_abandoned_reclaim_all
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_reclaim
    - mi_abandoned_pop
    linkageType: ''
    returnType: void
    signature: void _mi_abandoned_reclaim_all(mi_heap_t* heap, mi_segments_tld_t*
      tld)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get_clamp
      Src: /src/cpython/Objects/mimalloc/segment.c:1407,1
    - Dst: mi_abandoned_pop
      Src: /src/cpython/Objects/mimalloc/segment.c:1408,1
    - Dst: _mi_heap_memid_is_suitable
      Src: /src/cpython/Objects/mimalloc/segment.c:1412,1
    - Dst: mi_segment_check_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1413,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1420,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1426,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1430,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:1434,1
    - Dst: mi_abandoned_visited_push
      Src: /src/cpython/Objects/mimalloc/segment.c:1435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - heap
    - needed_slices
    - block_size
    - reclaimed
    - tld
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - bool*
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1403
    functionDepth: 15
    functionLinenumber: 1403
    functionLinenumberEnd: 1439
    functionName: mi_segment_try_reclaim
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_abandoned_visited_push
    - mi_option_get_clamp
    - mi_abandoned_pop
    - mi_segment_reclaim
    - _mi_heap_memid_is_suitable
    - mi_segment_check_free
    - mi_segment_try_purge
    linkageType: ''
    returnType: mi_segment_t
    signature: mi_segment_t * mi_segment_try_reclaim(mi_heap_t* heap, size_t needed_slices,
      size_t block_size, bool* reclaimed, mi_segments_tld_t* tld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_abandoned_visited_revisit
      Src: /src/cpython/Objects/mimalloc/segment.c:1448,1
    - Dst: mi_abandoned_pop
      Src: /src/cpython/Objects/mimalloc/segment.c:1450,1
    - Dst: mi_segment_check_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1451,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1456,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:1461,1
    - Dst: mi_abandoned_visited_push
      Src: /src/cpython/Objects/mimalloc/segment.c:1462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - heap
    - force
    - tld
    argTypes:
    - mi_heap_t*
    - bool
    - mi_segments_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1442
    functionDepth: 15
    functionLinenumber: 1442
    functionLinenumberEnd: 1465
    functionName: _mi_abandoned_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_abandoned_visited_push
    - mi_abandoned_pop
    - mi_segment_reclaim
    - mi_abandoned_visited_revisit
    - mi_segment_check_free
    - mi_segment_try_purge
    linkageType: ''
    returnType: void
    signature: void _mi_abandoned_collect(mi_heap_t* heap, bool force, mi_segments_tld_t*
      tld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1473,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1474,1
    - Dst: mi_segment_try_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1478,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1481,1
    - Dst: mi_segment_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - heap
    - needed_slices
    - block_size
    - tld
    - os_tld
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - mi_segments_tld_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1471
    functionDepth: 16
    functionLinenumber: 1471
    functionLinenumberEnd: 1490
    functionName: mi_segment_reclaim_or_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_alloc
    - mi_segment_try_reclaim
    - mi_assert_internal
    linkageType: ''
    returnType: mi_segment_t
    signature: mi_segment_t * mi_segment_reclaim_or_alloc(mi_heap_t* heap, size_t
      needed_slices, size_t block_size, mi_segments_tld_t* tld, mi_os_tld_t* os_tld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1499,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:1502,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1504,1
    - Dst: mi_segments_page_find_and_allocate
      Src: /src/cpython/Objects/mimalloc/segment.c:1505,1
    - Dst: mi_segment_reclaim_or_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1508,1
    - Dst: mi_segments_page_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1514,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1517,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1518,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1518,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/segment.c:1518,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:1519,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - heap
    - page_kind
    - required
    - block_size
    - tld
    - os_tld
    argTypes:
    - mi_heap_t*
    - mi_page_kind_t
    - size_t
    - size_t
    - mi_segments_tld_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1497
    functionDepth: 17
    functionLinenumber: 1497
    functionLinenumberEnd: 1521
    functionName: mi_segments_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 1
    functionsReached:
    - mi_segments_page_find_and_allocate
    - _mi_ptr_segment
    - _mi_thread_id
    - mi_assert_internal
    - mi_segment_reclaim_or_alloc
    - _mi_align_up
    - mi_segment_try_purge
    - mi_segments_page_alloc
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_segments_page_alloc(mi_heap_t* heap, mi_page_kind_t
      page_kind, size_t required, size_t block_size, mi_segments_tld_t* tld, mi_os_tld_t*
      os_tld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_segment_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1532,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1534,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1535,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1535,1
    - Dst: _mi_segment_page_start
      Src: /src/cpython/Objects/mimalloc/segment.c:1543,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:1548,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1549,1
    - Dst: _mi_is_aligned
      Src: /src/cpython/Objects/mimalloc/segment.c:1549,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1550,1
    - Dst: _mi_os_reset
      Src: /src/cpython/Objects/mimalloc/segment.c:1553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - size
    - page_alignment
    - req_arena_id
    - tld
    - os_tld
    argTypes:
    - size_t
    - size_t
    - mi_arena_id_t
    - mi_segments_tld_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1529
    functionDepth: 14
    functionLinenumber: 1529
    functionLinenumberEnd: 1557
    functionName: mi_segment_huge_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - mi_segment_alloc
    - mi_assert_internal
    - _mi_align_up
    - _mi_os_reset
    - _mi_segment_page_start
    - _mi_is_aligned
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_segment_huge_page_alloc(size_t size, size_t page_alignment,
      mi_arena_id_t req_arena_id, mi_segments_tld_t* tld, mi_os_tld_t* os_tld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1563,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1564,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1564,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1565,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1565,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/segment.c:1568,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/segment.c:1571,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/segment.c:1572,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/segment.c:1576,1
    - Dst: _mi_segment_page_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1578,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - segment
    - page
    - block
    argTypes:
    - mi_segment_t*
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1561
    functionDepth: 15
    functionLinenumber: 1561
    functionLinenumberEnd: 1585
    functionName: _mi_segment_huge_page_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_segment_page_free
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_heap_get_default
    - mi_assert
    - _mi_page_segment
    - mi_block_set_next
    linkageType: ''
    returnType: void
    signature: void _mi_segment_huge_page_free(mi_segment_t* segment, mi_page_t* page,
      mi_block_t* block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/segment.c:1590,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1591,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1592,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1592,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1593,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1594,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1596,1
    - Dst: _mi_os_reset
      Src: /src/cpython/Objects/mimalloc/segment.c:1600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - segment
    - page
    - block
    argTypes:
    - mi_segment_t*
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1589
    functionDepth: 5
    functionLinenumber: 1589
    functionLinenumberEnd: 1603
    functionName: _mi_segment_huge_page_reset
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - MI_UNUSED
    - _mi_os_reset
    - _mi_page_segment
    - mi_usable_size
    linkageType: ''
    returnType: void
    signature: void _mi_segment_huge_page_reset(mi_segment_t* segment, mi_page_t*
      page, mi_block_t* block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/segment.c:1611,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1612,1
    - Dst: _mi_is_power_of_two
      Src: /src/cpython/Objects/mimalloc/segment.c:1612,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1613,1
    - Dst: mi_segment_huge_page_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - heap
    - block_size
    - page_alignment
    - tld
    - os_tld
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    - mi_segments_tld_t*
    - mi_os_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1609
    functionDepth: 15
    functionLinenumber: 1609
    functionLinenumberEnd: 1616
    functionName: _mi_segment_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - mi_segment_huge_page_alloc
    - _mi_is_power_of_two
    - mi_unlikely
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * _mi_segment_page_alloc(mi_heap_t* heap, size_t block_size,
      size_t page_alignment, mi_segments_tld_t* tld, mi_os_tld_t* os_tld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_area_init
      Src: /src/cpython/Objects/mimalloc/segment.c:1641,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/segment.c:1642,1
    - Dst: _mi_heap_area_visit_blocks
      Src: /src/cpython/Objects/mimalloc/segment.c:1644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - segment
    - page
    - visit_blocks
    - visitor
    - arg
    argTypes:
    - mi_segment_t*
    - mi_page_t*
    - bool
    - mi_block_visit_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1638
    functionDepth: 1
    functionLinenumber: 1638
    functionLinenumberEnd: 1649
    functionName: mi_segment_visit_page
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_heap_area_init
    - _mi_heap_area_visit_blocks
    - visitor
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_visit_page(mi_segment_t* segment, mi_page_t* page,
      bool visit_blocks, mi_block_visit_fun* visitor, void* arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_slices_start_iterate
      Src: /src/cpython/Objects/mimalloc/segment.c:1653,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:1655,1
    - Dst: mi_slice_to_page
      Src: /src/cpython/Objects/mimalloc/segment.c:1656,1
    - Dst: mi_segment_visit_page
      Src: /src/cpython/Objects/mimalloc/segment.c:1658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - segment
    - page_tag
    - visit_blocks
    - visitor
    - arg
    argTypes:
    - mi_segment_t*
    - uint8_t
    - bool
    - mi_block_visit_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1651
    functionDepth: 2
    functionLinenumber: 1651
    functionLinenumberEnd: 1664
    functionName: mi_segment_visit_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_slice_to_page
    - mi_slice_is_used
    - mi_segment_visit_page
    - mi_slices_start_iterate
    linkageType: ''
    returnType: bool
    signature: bool mi_segment_visit_pages(mi_segment_t* segment, uint8_t page_tag,
      bool visit_blocks, mi_block_visit_fun* visitor, void* arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_tagged_segment_ptr
      Src: /src/cpython/Objects/mimalloc/segment.c:1669,1
    - Dst: mi_segment_visit_pages
      Src: /src/cpython/Objects/mimalloc/segment.c:1671,1
    - Dst: mi_segment_visit_pages
      Src: /src/cpython/Objects/mimalloc/segment.c:1677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - pool
    - page_tag
    - visit_blocks
    - visitor
    - arg
    argTypes:
    - mi_abandoned_pool_t*
    - uint8_t
    - bool
    - mi_block_visit_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1667
    functionDepth: 3
    functionLinenumber: 1667
    functionLinenumberEnd: 1682
    functionName: _mi_abandoned_pool_visit_blocks
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 1
    functionsReached:
    - mi_tagged_segment_ptr
    - mi_segment_visit_pages
    linkageType: ''
    returnType: bool
    signature: bool _mi_abandoned_pool_visit_blocks(mi_abandoned_pool_t* pool, uint8_t
      page_tag, bool visit_blocks, mi_block_visit_fun* visitor, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/page.c:33,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:34,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - page
    - page_start
    - block_size
    - i
    argTypes:
    - mi_page_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: mi_page_block_at
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - mi_assert_internal
    linkageType: ''
    returnType: mi_block_t
    signature: mi_block_t * mi_page_block_at(const mi_page_t* page, void* page_start,
      size_t block_size, size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:46,1
    - Dst: _mi_ptr_page
      Src: /src/cpython/Objects/mimalloc/page.c:46,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: mi_page_list_count
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_page
    - mi_assert_internal
    - mi_block_next
    linkageType: ''
    returnType: size_t
    signature: size_t mi_page_list_count(mi_page_t* page, mi_block_t* head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:62,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:62,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:67,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:71,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:72,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:73,1
    - Dst: mi_mem_is_zero
      Src: /src/cpython/Objects/mimalloc/page.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - page
    - p
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: mi_page_list_is_valid
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_start
    - mi_assert_expensive
    - mi_page_usable_block_size
    - mi_block_next
    - _mi_page_segment
    - mi_mem_is_zero
    linkageType: ''
    returnType: bool
    signature: bool mi_page_list_is_valid(mi_page_t* page, mi_block_t* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:81,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:82,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:83,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:85,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:86,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:87,1
    - Dst: _mi_segment_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:87,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:91,1
    - Dst: mi_page_list_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:91,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:92,1
    - Dst: mi_page_list_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:92,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:96,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:97,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:98,1
    - Dst: mi_mem_is_zero
      Src: /src/cpython/Objects/mimalloc/page.c:98,1
    - Dst: mi_page_thread_free
      Src: /src/cpython/Objects/mimalloc/page.c:104,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:105,1
    - Dst: mi_page_list_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:105,1
    - Dst: mi_page_list_count
      Src: /src/cpython/Objects/mimalloc/page.c:110,1
    - Dst: mi_page_list_count
      Src: /src/cpython/Objects/mimalloc/page.c:110,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 114
    functionName: mi_page_is_valid_init
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_start
    - mi_page_thread_free
    - mi_assert_internal
    - mi_page_list_is_valid
    - mi_assert_expensive
    - mi_page_usable_block_size
    - mi_block_next
    - mi_page_list_count
    - _mi_page_segment
    - _mi_segment_page_start
    - mi_mem_is_zero
    linkageType: ''
    returnType: bool
    signature: bool mi_page_is_valid_init(mi_page_t* page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:119,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:119,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:121,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:123,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:124,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:126,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:126,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:131,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:132,1
    - Dst: mi_page_queue_contains
      Src: /src/cpython/Objects/mimalloc/page.c:132,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:133,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:133,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:133,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:133,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:134,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page.c:134,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: _mi_page_is_valid
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_queue_of
    - mi_page_block_size
    - mi_page_is_in_full
    - mi_page_queue_contains
    - mi_assert_internal
    - mi_heap_contains_queue
    - _mi_page_segment
    - mi_page_heap
    - mi_page_is_valid_init
    linkageType: ''
    returnType: bool
    signature: bool _mi_page_is_valid(mi_page_t* page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_page_try_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/page.c:142,1
    - Dst: mi_atomic_yield
      Src: /src/cpython/Objects/mimalloc/page.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - page
    - delay
    - override_never
    argTypes:
    - mi_page_t*
    - mi_delayed_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: _mi_page_use_delayed_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - _mi_page_try_use_delayed_free
    - mi_atomic_yield
    linkageType: ''
    returnType: void
    signature: void _mi_page_use_delayed_free(mi_page_t* page, mi_delayed_t delay,
      bool override_never)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/page.c:153,1
    - Dst: mi_tf_set_delayed
      Src: /src/cpython/Objects/mimalloc/page.c:154,1
    - Dst: mi_tf_delayed
      Src: /src/cpython/Objects/mimalloc/page.c:155,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:156,1
    - Dst: mi_atomic_yield
      Src: /src/cpython/Objects/mimalloc/page.c:159,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/page.c:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - page
    - delay
    - override_never
    argTypes:
    - mi_page_t*
    - mi_delayed_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 172
    functionName: _mi_page_try_use_delayed_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_atomic_yield
    - mi_tf_set_delayed
    - mi_atomic_load_acquire
    - mi_unlikely
    - mi_atomic_cas_weak_release
    - mi_tf_delayed
    linkageType: ''
    returnType: bool
    signature: bool _mi_page_try_use_delayed_free(mi_page_t* page, mi_delayed_t delay,
      bool override_never)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/page.c:186,1
    - Dst: mi_tf_block
      Src: /src/cpython/Objects/mimalloc/page.c:188,1
    - Dst: mi_tf_set_block
      Src: /src/cpython/Objects/mimalloc/page.c:189,1
    - Dst: mi_atomic_cas_weak_acq_rel
      Src: /src/cpython/Objects/mimalloc/page.c:190,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:200,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/page.c:206,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 216
    functionName: _mi_page_thread_free_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_tf_set_block
    - mi_atomic_cas_weak_acq_rel
    - mi_atomic_load_relaxed
    - mi_tf_block
    - mi_block_next
    - _mi_error_message
    - mi_block_set_next
    linkageType: ''
    returnType: void
    signature: void _mi_page_thread_free_collect(mi_page_t* page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:219,1
    - Dst: mi_page_thread_free
      Src: /src/cpython/Objects/mimalloc/page.c:222,1
    - Dst: _mi_page_thread_free_collect
      Src: /src/cpython/Objects/mimalloc/page.c:223,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:229,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/page.c:231,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:241,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:244,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - page
    - force
    argTypes:
    - mi_page_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 252
    functionName: _mi_page_free_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 2
    functionsReached:
    - mi_likely
    - mi_page_thread_free
    - mi_assert_internal
    - _mi_page_thread_free_collect
    - _PyMem_mi_page_clear_qsbr
    - mi_block_next
    - mi_block_set_next
    linkageType: ''
    returnType: void
    signature: void _mi_page_free_collect(mi_page_t* page, bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:241,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: if
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 2
    functionsReached:
    - mi_block_set_next
    - mi_block_next
    linkageType: ''
    returnType: else
    signature: else if (force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:262,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:262,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:264,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:264,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:265,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/page.c:265,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:267,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:267,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:271,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:271,1
    - Dst: mi_page_queue_push
      Src: /src/cpython/Objects/mimalloc/page.c:272,1
    - Dst: _PyMem_mi_page_reclaimed
      Src: /src/cpython/Objects/mimalloc/page.c:273,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:274,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - page
    argTypes:
    - mi_heap_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 275
    functionName: _mi_page_reclaim
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - _mi_page_is_valid
    - mi_page_queue
    - mi_page_thread_free_flag
    - mi_page_block_size
    - mi_assert_internal
    - mi_assert_expensive
    - mi_page_queue_push
    - _PyMem_mi_page_reclaimed
    - _mi_page_segment
    - mi_page_heap
    - mi_page_is_valid_init
    linkageType: ''
    returnType: void
    signature: void _mi_page_reclaim(mi_heap_t* heap, mi_page_t* page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:280,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:281,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page.c:281,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:282,1
    - Dst: _mi_segment_page_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:284,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:289,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:289,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:290,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:291,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:291,1
    - Dst: mi_page_queue_is_huge
      Src: /src/cpython/Objects/mimalloc/page.c:293,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:293,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:294,1
    - Dst: mi_page_init
      Src: /src/cpython/Objects/mimalloc/page.c:295,1
    - Dst: mi_heap_stat_increase
      Src: /src/cpython/Objects/mimalloc/page.c:296,1
    - Dst: mi_page_queue_push
      Src: /src/cpython/Objects/mimalloc/page.c:297,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:298,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:298,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - heap
    - pq
    - block_size
    - page_alignment
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 278
    functionDepth: 16
    functionLinenumber: 278
    functionLinenumberEnd: 300
    functionName: mi_page_fresh_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_init
    - _mi_segment_page_alloc
    - _mi_page_is_valid
    - mi_page_block_size
    - mi_page_queue_is_huge
    - mi_assert_internal
    - mi_heap_stat_increase
    - mi_assert_expensive
    - mi_heap_contains_queue
    - mi_page_queue_push
    - _mi_page_segment
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_page_fresh_alloc(mi_heap_t* heap, mi_page_queue_t* pq,
      size_t block_size, size_t page_alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:304,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page.c:304,1
    - Dst: mi_page_fresh_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:305,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:307,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:307,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:308,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:308,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - heap
    - pq
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 17
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: mi_page_fresh
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - mi_assert_internal
    - mi_heap_contains_queue
    - mi_page_fresh_alloc
    - mi_page_queue
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_page_fresh(mi_heap_t* heap, mi_page_queue_t* pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_delayed_free_partial
      Src: /src/cpython/Objects/mimalloc/page.c:317,1
    - Dst: mi_atomic_yield
      Src: /src/cpython/Objects/mimalloc/page.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: _mi_heap_delayed_free_all
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_heap_delayed_free_partial
    - mi_atomic_yield
    linkageType: ''
    returnType: void
    signature: void _mi_heap_delayed_free_all(mi_heap_t* heap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/page.c:325,1
    - Dst: mi_atomic_cas_ptr_weak_acq_rel
      Src: /src/cpython/Objects/mimalloc/page.c:326,1
    - Dst: mi_block_nextx
      Src: /src/cpython/Objects/mimalloc/page.c:331,1
    - Dst: _mi_free_delayed_block
      Src: /src/cpython/Objects/mimalloc/page.c:333,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/page.c:338,1
    - Dst: mi_block_set_nextx
      Src: /src/cpython/Objects/mimalloc/page.c:340,1
    - Dst: mi_atomic_cas_ptr_weak_release
      Src: /src/cpython/Objects/mimalloc/page.c:341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 346
    functionName: _mi_heap_delayed_free_partial
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_block_set_nextx
    - _mi_free_delayed_block
    - mi_atomic_cas_ptr_weak_acq_rel
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_cas_ptr_weak_release
    - mi_block_nextx
    linkageType: ''
    returnType: bool
    signature: bool _mi_heap_delayed_free_partial(mi_heap_t* heap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:354,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:355,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:355,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:356,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:356,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:357,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:359,1
    - Dst: mi_page_set_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:361,1
    - Dst: mi_heap_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:362,1
    - Dst: mi_page_set_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:363,1
    - Dst: mi_page_queue_enqueue_from
      Src: /src/cpython/Objects/mimalloc/page.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: _mi_page_unfull
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_is_valid
    - mi_page_queue_enqueue_from
    - mi_page_is_in_full
    - mi_page_set_in_full
    - mi_assert_internal
    - mi_assert_expensive
    - mi_heap_page_queue_of
    - mi_page_heap
    linkageType: ''
    returnType: void
    signature: void _mi_page_unfull(mi_page_t* page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:368,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:368,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:369,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:369,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:370,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:370,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:372,1
    - Dst: mi_page_queue_enqueue_from
      Src: /src/cpython/Objects/mimalloc/page.c:373,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:373,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/page.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - page
    - pq
    argTypes:
    - mi_page_t*
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: mi_page_to_full
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_queue_of
    - mi_page_queue_enqueue_from
    - mi_page_immediate_available
    - mi_page_is_in_full
    - mi_assert_internal
    - mi_page_heap
    - _mi_page_free_collect
    linkageType: ''
    returnType: void
    signature: void mi_page_to_full(mi_page_t* page, mi_page_queue_t* pq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:383,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:384,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:384,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:385,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:385,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:386,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:386,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:388,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/mimalloc/page.c:393,1
    - Dst: mi_page_queue_remove
      Src: /src/cpython/Objects/mimalloc/page.c:399,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:402,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/page.c:402,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:403,1
    - Dst: mi_block_nextx
      Src: /src/cpython/Objects/mimalloc/page.c:407,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:408,1
    - Dst: _mi_ptr_page
      Src: /src/cpython/Objects/mimalloc/page.c:408,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:413,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:413,1
    - Dst: _mi_segment_page_abandon
      Src: /src/cpython/Objects/mimalloc/page.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - page
    - pq
    argTypes:
    - mi_page_t*
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 382
    functionDepth: 11
    functionLinenumber: 382
    functionLinenumberEnd: 415
    functionName: _mi_page_abandon
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_is_valid
    - llist_remove
    - mi_page_queue_of
    - mi_page_thread_free_flag
    - mi_assert_internal
    - mi_assert_expensive
    - _mi_segment_page_abandon
    - _mi_ptr_page
    - mi_block_nextx
    - mi_page_heap
    - mi_page_queue_remove
    - mi_page_set_heap
    linkageType: ''
    returnType: void
    signature: void _mi_page_abandon(mi_page_t* page, mi_page_queue_t* pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:420,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:421,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:421,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:422,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:422,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:423,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/page.c:423,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:424,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/page.c:424,1
    - Dst: mi_page_set_has_aligned
      Src: /src/cpython/Objects/mimalloc/page.c:427,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:429,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:432,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:433,1
    - Dst: mi_page_queue_remove
      Src: /src/cpython/Objects/mimalloc/page.c:439,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:442,1
    - Dst: _mi_segment_page_free
      Src: /src/cpython/Objects/mimalloc/page.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - page
    - pq
    - force
    argTypes:
    - mi_page_t*
    - mi_page_queue_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 15
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: _mi_page_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 3
    functionsReached:
    - _mi_page_is_valid
    - _mi_segment_page_free
    - mi_page_queue_of
    - mi_page_thread_free_flag
    - mi_page_set_has_aligned
    - mi_assert_internal
    - mi_page_all_free
    - mi_assert_expensive
    - mi_page_heap
    - mi_page_queue_remove
    - mi_page_set_heap
    linkageType: ''
    returnType: void
    signature: void _mi_page_free(mi_page_t* page, mi_page_queue_t* pq, bool force)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:457,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:458,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:458,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:459,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/page.c:459,1
    - Dst: mi_page_set_has_aligned
      Src: /src/cpython/Objects/mimalloc/page.c:461,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:464,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:472,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/page.c:473,1
    - Dst: mi_page_queue_is_special
      Src: /src/cpython/Objects/mimalloc/page.c:473,1
    - Dst: mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:475,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:477,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:478,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:480,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:483,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/page.c:483,1
    - Dst: _PyMem_mi_page_maybe_free
      Src: /src/cpython/Objects/mimalloc/page.c:487,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 488
    functionName: _mi_page_retire
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_is_valid
    - mi_page_queue_of
    - mi_likely
    - mi_page_set_has_aligned
    - mi_assert_internal
    - mi_page_all_free
    - mi_assert_expensive
    - _PyMem_mi_page_clear_qsbr
    - mi_stat_counter_increase
    - _PyMem_mi_page_maybe_free
    - mi_page_queue_is_special
    - mi_page_heap
    linkageType: ''
    returnType: void
    signature: void _mi_page_retire(mi_page_t* page)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/page.c:499,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:503,1
    - Dst: _PyMem_mi_page_maybe_free
      Src: /src/cpython/Objects/mimalloc/page.c:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - heap
    - force
    argTypes:
    - mi_heap_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 520
    functionName: _mi_heap_collect_retired
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_all_free
    - _PyMem_mi_page_maybe_free
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void _mi_heap_collect_retired(mi_heap_t* heap, bool force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/page.c:534,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:536,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:537,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:539,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:540,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:540,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:541,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:541,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:551,1
    - Dst: mi_page_block_at
      Src: /src/cpython/Objects/mimalloc/page.c:555,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:562,1
    - Dst: _mi_random_shuffle
      Src: /src/cpython/Objects/mimalloc/page.c:567,1
    - Dst: _mi_random_shuffle
      Src: /src/cpython/Objects/mimalloc/page.c:571,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:582,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:586,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - heap
    - page
    - bsize
    - extend
    - stats
    argTypes:
    - mi_heap_t*
    - mi_page_t*
    - size_t
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 588
    functionName: mi_page_free_list_extend_secure
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_random_shuffle
    - _mi_page_start
    - mi_page_block_size
    - mi_assert_internal
    - MI_UNUSED
    - _mi_page_segment
    - _mi_heap_random_next
    - mi_block_set_next
    - mi_page_block_at
    linkageType: ''
    returnType: void
    signature: void mi_page_free_list_extend_secure(mi_heap_t* const heap, mi_page_t*
      const page, const size_t bsize, const size_t extend, mi_stats_t* const stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/page.c:592,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:594,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:595,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:597,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:598,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:598,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:599,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:599,1
    - Dst: mi_page_block_at
      Src: /src/cpython/Objects/mimalloc/page.c:601,1
    - Dst: mi_page_block_at
      Src: /src/cpython/Objects/mimalloc/page.c:604,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:608,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - page
    - bsize
    - extend
    - stats
    argTypes:
    - mi_page_t*
    - size_t
    - size_t
    - mi_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 614
    functionName: mi_page_free_list_extend
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_start
    - mi_page_block_size
    - mi_assert_internal
    - MI_UNUSED
    - _mi_page_segment
    - mi_block_set_next
    - mi_page_block_at
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline mi_page_free_list_extend( mi_page_t* const page, const
      size_t bsize, const size_t extend, mi_stats_t* const stats)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/page.c:633,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:634,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:634,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:636,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:637,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:643,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:643,1
    - Dst: mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:644,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:649,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:653,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:661,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:662,1
    - Dst: mi_page_free_list_extend
      Src: /src/cpython/Objects/mimalloc/page.c:666,1
    - Dst: mi_page_free_list_extend_secure
      Src: /src/cpython/Objects/mimalloc/page.c:669,1
    - Dst: mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/page.c:673,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:674,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - heap
    - page
    - tld
    argTypes:
    - mi_heap_t*
    - mi_page_t*
    - mi_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 675
    functionName: mi_page_extend_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_start
    - mi_stat_increase
    - mi_assert_internal
    - mi_assert_expensive
    - mi_stat_counter_increase
    - MI_UNUSED
    - mi_assert
    - _mi_page_segment
    - mi_page_free_list_extend_secure
    - mi_page_free_list_extend
    - mi_page_is_valid_init
    linkageType: ''
    returnType: void
    signature: void mi_page_extend_free(mi_heap_t* heap, mi_page_t* page, mi_tld_t*
      tld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:679,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:680,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:681,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:682,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:684,1
    - Dst: _mi_segment_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:690,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/page.c:691,1
    - Dst: mi_track_mem_noaccess
      Src: /src/cpython/Objects/mimalloc/page.c:692,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:693,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:693,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:694,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:695,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:697,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:699,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:700,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/page.c:705,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:706,1
    - Dst: mi_mem_is_zero
      Src: /src/cpython/Objects/mimalloc/page.c:706,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:710,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:711,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:712,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:713,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:714,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:715,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:716,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:718,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:719,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:721,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:722,1
    - Dst: mi_page_has_aligned
      Src: /src/cpython/Objects/mimalloc/page.c:722,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:724,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:725,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:727,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:727,1
    - Dst: mi_page_extend_free
      Src: /src/cpython/Objects/mimalloc/page.c:730,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:731,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 4
    argNames:
    - heap
    - page
    - block_size
    - tld
    argTypes:
    - mi_heap_t*
    - mi_page_t*
    - size_t
    - mi_tld_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 678
    functionDepth: 4
    functionLinenumber: 678
    functionLinenumberEnd: 732
    functionName: mi_page_init
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_track_mem_defined
    - mi_track_mem_noaccess
    - mi_page_block_size
    - mi_page_has_aligned
    - mi_page_immediate_available
    - _mi_heap_random_next
    - mi_assert_internal
    - mi_assert_expensive
    - MI_UNUSED
    - mi_assert
    - mi_page_extend_free
    - _mi_page_segment
    - _mi_segment_page_start
    - mi_page_set_heap
    - mi_page_is_valid_init
    - mi_mem_is_zero
    linkageType: ''
    returnType: void
    signature: void mi_page_init(mi_heap_t* heap, mi_page_t* page, size_t block_size,
      mi_tld_t* tld)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/page.c:755,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:758,1
    - Dst: mi_page_extend_free
      Src: /src/cpython/Objects/mimalloc/page.c:764,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:765,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:765,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:771,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:771,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:771,1
    - Dst: mi_page_to_full
      Src: /src/cpython/Objects/mimalloc/page.c:772,1
    - Dst: mi_heap_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:777,1
    - Dst: _PyMem_mi_heap_collect_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:780,1
    - Dst: _mi_heap_collect_retired
      Src: /src/cpython/Objects/mimalloc/page.c:781,1
    - Dst: mi_page_fresh
      Src: /src/cpython/Objects/mimalloc/page.c:782,1
    - Dst: mi_page_queue_find_free_ex
      Src: /src/cpython/Objects/mimalloc/page.c:785,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:789,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:791,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:793,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:793,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - heap
    - pq
    - first_try
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 740
    functionDepth: 18
    functionLinenumber: 740
    functionLinenumberEnd: 795
    functionName: mi_page_queue_find_free_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_page_immediate_available
    - mi_page_is_in_full
    - mi_heap_stat_counter_increase
    - mi_assert_internal
    - mi_page_to_full
    - _PyMem_mi_heap_collect_qsbr
    - mi_page_extend_free
    - _mi_heap_collect_retired
    - mi_assert
    - _PyMem_mi_page_clear_qsbr
    - mi_page_fresh
    - mi_page_queue_find_free_ex
    - _mi_page_free_collect
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_page_queue_find_free_ex(mi_heap_t* heap, mi_page_queue_t*
      pq, bool first_try)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:801,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:805,1
    - Dst: mi_page_extend_free
      Src: /src/cpython/Objects/mimalloc/page.c:806,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:807,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:807,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/page.c:812,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:815,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:817,1
    - Dst: mi_page_queue_find_free_ex
      Src: /src/cpython/Objects/mimalloc/page.c:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - heap
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 800
    functionDepth: 19
    functionLinenumber: 800
    functionLinenumberEnd: 822
    functionName: mi_find_free_page
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_immediate_available
    - mi_assert_internal
    - _PyMem_mi_page_clear_qsbr
    - mi_page_extend_free
    - mi_page_queue
    - _mi_heap_random_next
    - mi_page_queue_find_free_ex
    - _mi_page_free_collect
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_find_free_page(mi_heap_t* heap, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deferred_free
      Src: /src/cpython/Objects/mimalloc/page.c:839,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/page.c:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - heap
    - force
    argTypes:
    - mi_heap_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 842
    functionName: _mi_deferred_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - deferred_free
    - mi_atomic_load_ptr_relaxed
    linkageType: ''
    returnType: void
    signature: void _mi_deferred_free(mi_heap_t* heap, bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - arg
    argTypes:
    - mi_deferred_free_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 847
    functionName: mi_register_deferred_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi_register_deferred_free(mi_deferred_free_fun* fn, void* arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_good_alloc_size
      Src: /src/cpython/Objects/mimalloc/page.c:861,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:862,1
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page.c:862,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:865,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:867,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:868,1
    - Dst: mi_page_queue_is_huge
      Src: /src/cpython/Objects/mimalloc/page.c:868,1
    - Dst: mi_page_fresh_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:870,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:872,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:872,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:875,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:875,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:876,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:876,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:878,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:878,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:879,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:883,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:883,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:886,1
    - Dst: mi_heap_stat_increase
      Src: /src/cpython/Objects/mimalloc/page.c:888,1
    - Dst: mi_heap_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:889,1
    - Dst: mi_heap_stat_increase
      Src: /src/cpython/Objects/mimalloc/page.c:892,1
    - Dst: mi_heap_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - heap
    - size
    - page_alignment
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 860
    functionDepth: 17
    functionLinenumber: 860
    functionLinenumberEnd: 897
    functionName: mi_large_huge_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_bin
    - mi_page_immediate_available
    - mi_page_queue_is_huge
    - mi_heap_stat_counter_increase
    - _mi_os_good_alloc_size
    - mi_assert_internal
    - mi_heap_stat_increase
    - _mi_page_segment
    - mi_page_usable_block_size
    - mi_page_fresh_alloc
    - mi_page_queue
    - mi_page_set_heap
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_large_huge_page_alloc(mi_heap_t* heap, size_t size,
      size_t page_alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:905,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:906,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/page.c:907,1
    - Dst: _PyMem_mi_heap_collect_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:911,1
    - Dst: mi_large_huge_page_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - heap
    - size
    - huge_alignment
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 902
    functionDepth: 18
    functionLinenumber: 902
    functionLinenumberEnd: 913
    functionName: mi_find_page
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_error_message
    - _PyMem_mi_heap_collect_qsbr
    - mi_unlikely
    - mi_large_huge_page_alloc
    linkageType: ''
    returnType: mi_page_t
    signature: mi_page_t * mi_find_page(mi_heap_t* heap, size_t size, size_t huge_alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:930,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:933,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/page.c:933,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/page.c:934,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:935,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/page.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - heap
    - size
    - zero
    - huge_alignment
    argTypes:
    - mi_heap_t*
    - size_t
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 935
    functionName: _mi_malloc_generic
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_unlikely
    - mi_heap_get_default
    - mi_assert_internal
    - mi_heap_is_initialized
    linkageType: ''
    returnType: void
    signature: void * _mi_malloc_generic(mi_heap_t* heap, size_t size, bool zero,
      size_t huge_alignment)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:29,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - count
    - bitidx
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: mi_bitmap_mask_
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t mi_bitmap_mask_(size_t count, size_t bitidx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:45,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:46,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:47,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:49,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:53,1
    - Dst: mi_ctz
      Src: /src/cpython/Objects/mimalloc/bitmap.c:57,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:67,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:69,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:70,1
    - Dst: mi_bitmap_index_create
      Src: /src/cpython/Objects/mimalloc/bitmap.c:76,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:83,1
    - Dst: mi_clz
      Src: /src/cpython/Objects/mimalloc/bitmap.c:84,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - bitmap
    - idx
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 95
    functionName: _mi_bitmap_try_find_claim_field
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_clz
    - mi_atomic_cas_strong_acq_rel
    - mi_ctz
    - mi_bitmap_index_create
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_bitmap_mask_
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_try_find_claim_field(mi_bitmap_t bitmap, size_t idx,
      const size_t count, mi_bitmap_index_t* bitmap_idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_bitmap_try_find_claim_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - bitmap
    - bitmap_fields
    - start_field_idx
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - size_t
    - mi_bitmap_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: _mi_bitmap_try_find_from_claim
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - _mi_bitmap_try_find_claim_field
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_try_find_from_claim(mi_bitmap_t bitmap, const size_t
      bitmap_fields, const size_t start_field_idx, const size_t count, mi_bitmap_index_t*
      bitmap_idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mi_bitmap_try_find_claim_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:119,1
    - Dst: pred_fun
      Src: /src/cpython/Objects/mimalloc/bitmap.c:120,1
    - Dst: _mi_bitmap_unclaim
      Src: /src/cpython/Objects/mimalloc/bitmap.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 7
    argNames:
    - bitmap
    - bitmap_fields
    - start_field_idx
    - count
    - pred_fun
    - pred_arg
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - size_t
    - mi_bitmap_pred_fun_t
    - void*
    - mi_bitmap_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: _mi_bitmap_try_find_from_claim_pred
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - _mi_bitmap_try_find_claim_field
    - pred_fun
    - _mi_bitmap_unclaim
    linkageType: ''
    returnType: bool
    signature: "bool _mi_bitmap_try_find_from_claim_pred(mi_bitmap_t bitmap, const
      size_t bitmap_fields,\n            const size_t start_field_idx, const size_t
      count,\n            mi_bitmap_pred_fun_t pred_fun, void* pred_arg,\n            mi_bitmap_index_t*
      bitmap_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:133,1
    - Dst: mi_bitmap_index_bit_in_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:134,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:135,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:136,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/bitmap.c:136,1
    - Dst: mi_atomic_and_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: _mi_bitmap_unclaim
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 2
    functionsReached:
    - mi_atomic_and_acq_rel
    - mi_assert_internal
    - mi_bitmap_mask_
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_unclaim(mi_bitmap_t bitmap, size_t bitmap_fields, size_t
      count, mi_bitmap_index_t bitmap_idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:146,1
    - Dst: mi_bitmap_index_bit_in_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:147,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:148,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:149,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/bitmap.c:149,1
    - Dst: mi_atomic_or_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    - any_zero
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: _mi_bitmap_claim
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 1
    functionsReached:
    - mi_assert_internal
    - mi_atomic_or_acq_rel
    - mi_bitmap_mask_
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_claim(mi_bitmap_t bitmap, size_t bitmap_fields, size_t
      count, mi_bitmap_index_t bitmap_idx, bool* any_zero)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:158,1
    - Dst: mi_bitmap_index_bit_in_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:159,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:160,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:161,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/bitmap.c:161,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    - any_ones
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: mi_bitmap_is_claimedx
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - mi_atomic_load_relaxed
    - mi_bitmap_mask_
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool mi_bitmap_is_claimedx(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx, bool* any_ones)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:170,1
    - Dst: mi_bitmap_index_bit_in_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:171,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:172,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:173,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/bitmap.c:173,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:174,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:178,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: _mi_bitmap_try_claim
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 1
    functionsReached:
    - mi_atomic_cas_strong_acq_rel
    - mi_assert_internal
    - mi_atomic_load_relaxed
    - mi_bitmap_mask_
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_try_claim(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_is_claimedx
      Src: /src/cpython/Objects/mimalloc/bitmap.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: _mi_bitmap_is_claimed
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_bitmap_is_claimedx
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_is_claimed(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_is_claimedx
      Src: /src/cpython/Objects/mimalloc/bitmap.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: _mi_bitmap_is_any_claimed
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_bitmap_is_claimedx
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_is_any_claimed(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:205,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:209,1
    - Dst: mi_clz
      Src: /src/cpython/Objects/mimalloc/bitmap.c:210,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:211,1
    - Dst: _mi_bitmap_try_find_claim_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:213,1
    - Dst: _mi_divide_up
      Src: /src/cpython/Objects/mimalloc/bitmap.c:214,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:221,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:223,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:224,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:228,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:236,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:241,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:245,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:251,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:255,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:256,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:260,1
    - Dst: mi_bitmap_index_create
      Src: /src/cpython/Objects/mimalloc/bitmap.c:263,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:272,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:272,1
    - Dst: mi_atomic_store_release
      Src: /src/cpython/Objects/mimalloc/bitmap.c:273,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:276,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:278,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:280,1
    - Dst: mi_bitmap_try_find_claim_field_across
      Src: /src/cpython/Objects/mimalloc/bitmap.c:284,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 6
    argNames:
    - bitmap
    - bitmap_fields
    - idx
    - count
    - retries
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - size_t
    - size_t
    - mi_bitmap_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 289
    functionName: mi_bitmap_try_find_claim_field_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 1
    functionsReached:
    - mi_clz
    - _mi_divide_up
    - mi_bitmap_try_find_claim_field_across
    - mi_atomic_cas_strong_acq_rel
    - mi_bitmap_index_create
    - mi_atomic_store_release
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_bitmap_mask_
    - _mi_bitmap_try_find_claim_field
    linkageType: ''
    returnType: bool
    signature: bool mi_bitmap_try_find_claim_field_across(mi_bitmap_t bitmap, size_t
      bitmap_fields, size_t idx, const size_t count, const size_t retries, mi_bitmap_index_t*
      bitmap_idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:295,1
    - Dst: _mi_bitmap_try_find_from_claim
      Src: /src/cpython/Objects/mimalloc/bitmap.c:298,1
    - Dst: _mi_bitmap_try_find_claim_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:307,1
    - Dst: mi_bitmap_try_find_claim_field_across
      Src: /src/cpython/Objects/mimalloc/bitmap.c:312,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - bitmap
    - bitmap_fields
    - start_field_idx
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - size_t
    - mi_bitmap_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 317
    functionName: _mi_bitmap_try_find_from_claim_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 1
    functionsReached:
    - _mi_bitmap_try_find_claim_field
    - mi_assert_internal
    - _mi_bitmap_try_find_from_claim
    - mi_bitmap_try_find_claim_field_across
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_try_find_from_claim_across(mi_bitmap_t bitmap, const
      size_t bitmap_fields, const size_t start_field_idx, const size_t count, mi_bitmap_index_t*
      bitmap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/bitmap.c:321,1
    - Dst: mi_bitmap_index_bit_in_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:322,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/bitmap.c:323,1
    - Dst: mi_bitmap_mask_
      Src: /src/cpython/Objects/mimalloc/bitmap.c:324,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.c:327,1
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - bitmap_idx
    - bitmap_fields
    - count
    - pre_mask
    - mid_mask
    - post_mask
    argTypes:
    - mi_bitmap_index_t
    - size_t
    - size_t
    - size_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: mi_bitmap_mask_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_likely
    - mi_assert_internal
    - mi_bitmap_mask_
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_bitmap_index_field
    linkageType: ''
    returnType: size_t
    signature: size_t mi_bitmap_mask_across(mi_bitmap_index_t bitmap_idx, size_t bitmap_fields,
      size_t count, size_t* pre_mask, size_t* mid_mask, size_t* post_mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:347,1
    - Dst: mi_bitmap_mask_across
      Src: /src/cpython/Objects/mimalloc/bitmap.c:351,1
    - Dst: mi_atomic_and_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:354,1
    - Dst: mi_atomic_and_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:357,1
    - Dst: mi_atomic_and_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: _mi_bitmap_unclaim_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 3
    functionsReached:
    - mi_atomic_and_acq_rel
    - mi_bitmap_mask_across
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_unclaim_across(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:370,1
    - Dst: mi_bitmap_mask_across
      Src: /src/cpython/Objects/mimalloc/bitmap.c:374,1
    - Dst: mi_atomic_or_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:378,1
    - Dst: mi_atomic_or_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:382,1
    - Dst: mi_atomic_or_acq_rel
      Src: /src/cpython/Objects/mimalloc/bitmap.c:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    - pany_zero
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 393
    functionName: _mi_bitmap_claim_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 2
    functionsReached:
    - mi_atomic_or_acq_rel
    - mi_bitmap_mask_across
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_claim_across(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx, bool* pany_zero)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_field
      Src: /src/cpython/Objects/mimalloc/bitmap.c:399,1
    - Dst: mi_bitmap_mask_across
      Src: /src/cpython/Objects/mimalloc/bitmap.c:403,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:407,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:411,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/bitmap.c:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    - pany_ones
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 422
    functionName: mi_bitmap_is_claimedx_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_atomic_load_relaxed
    - mi_bitmap_mask_across
    - mi_bitmap_index_field
    linkageType: ''
    returnType: bool
    signature: bool mi_bitmap_is_claimedx_across(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx, bool* pany_ones)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_is_claimedx_across
      Src: /src/cpython/Objects/mimalloc/bitmap.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 426
    functionName: _mi_bitmap_is_claimed_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 2
    functionsReached:
    - mi_bitmap_is_claimedx_across
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_is_claimed_across(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_is_claimedx_across
      Src: /src/cpython/Objects/mimalloc/bitmap.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bitmap
    - bitmap_fields
    - count
    - bitmap_idx
    argTypes:
    - mi_bitmap_t
    - size_t
    - size_t
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: _mi_bitmap_is_any_claimed_across
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.c
    functionUses: 0
    functionsReached:
    - mi_bitmap_is_claimedx_across
    linkageType: ''
    returnType: bool
    signature: bool _mi_bitmap_is_any_claimed_across(mi_bitmap_t bitmap, size_t bitmap_fields,
      size_t count, mi_bitmap_index_t bitmap_idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:42,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:42,1
    - Dst: fn
      Src: /src/cpython/Objects/mimalloc/heap.c:46,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - heap
    - fn
    - arg1
    - arg2
    argTypes:
    - mi_heap_t*
    - heap_page_visitor_fun*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: mi_heap_visit_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - fn
    - mi_page_heap
    - mi_assert_internal
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_visit_pages(mi_heap_t* heap, heap_page_visitor_fun* fn,
      void* arg1, void* arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:57,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:58,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:59,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:60,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:60,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:61,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:62,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/heap.c:63,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - heap
    - pq
    - page
    - arg1
    - arg2
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: mi_heap_page_is_valid
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_page_is_valid
    - mi_assert_internal
    - mi_assert_expensive
    - MI_UNUSED
    - _mi_page_segment
    - mi_page_heap
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_page_is_valid(mi_heap_t* heap, mi_page_queue_t* pq, mi_page_t*
      page, void* arg1, void* arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:69,1
    - Dst: mi_heap_visit_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: mi_heap_is_valid
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - mi_heap_visit_pages
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_is_valid(mi_heap_t* heap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:93,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:94,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:95,1
    - Dst: mi_heap_page_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:95,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/heap.c:97,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/heap.c:98,1
    - Dst: _PyMem_mi_page_maybe_free
      Src: /src/cpython/Objects/mimalloc/heap.c:101,1
    - Dst: _mi_page_abandon
      Src: /src/cpython/Objects/mimalloc/heap.c:103,1
    - Dst: _mi_page_abandon
      Src: /src/cpython/Objects/mimalloc/heap.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - heap
    - pq
    - page
    - arg_collect
    - arg2
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 92
    functionDepth: 12
    functionLinenumber: 92
    functionLinenumberEnd: 111
    functionName: mi_heap_page_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - mi_page_all_free
    - MI_UNUSED
    - _PyMem_mi_page_maybe_free
    - _mi_page_abandon
    - mi_heap_page_is_valid
    - _mi_page_free_collect
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_page_collect(mi_heap_t* heap, mi_page_queue_t* pq, mi_page_t*
      page, void* arg_collect, void* arg2 )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:114,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:115,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:116,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:117,1
    - Dst: _mi_page_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/heap.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - heap
    - pq
    - page
    - arg1
    - arg2
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: mi_heap_page_never_delayed_free
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - _mi_page_use_delayed_free
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_page_never_delayed_free(mi_heap_t* heap, mi_page_queue_t*
      pq, mi_page_t* page, void* arg1, void* arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_collect_ex
      Src: /src/cpython/Objects/mimalloc/heap.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: _mi_heap_collect_abandon
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_collect_ex
    linkageType: ''
    returnType: void
    signature: void _mi_heap_collect_abandon(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_collect_ex
      Src: /src/cpython/Objects/mimalloc/heap.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - force
    argTypes:
    - mi_heap_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: mi_heap_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_collect_ex
    linkageType: ''
    returnType: void
    signature: void mi_heap_collect(mi_heap_t* heap, bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_collect
      Src: /src/cpython/Objects/mimalloc/heap.c:191,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: mi_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_collect
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: void
    signature: void mi_collect(bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_thread_init
      Src: /src/cpython/Objects/mimalloc/heap.c:200,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: mi_heap_get_default
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 5
    functionsReached:
    - mi_prim_get_default_heap
    - mi_thread_init
    linkageType: ''
    returnType: mi_heap_t
    signature: mi_heap_t * mi_heap_get_default(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: mi_heap_is_default
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_is_default(const mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/heap.c:210,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:211,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:213,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:214,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/heap.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: mi_heap_get_backing
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - _mi_thread_id
    - mi_heap_get_default
    linkageType: ''
    returnType: mi_heap_t
    signature: mi_heap_t * mi_heap_get_backing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memcpy_aligned
      Src: /src/cpython/Objects/mimalloc/heap.c:220,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/heap.c:222,1
    - Dst: _mi_random_init
      Src: /src/cpython/Objects/mimalloc/heap.c:225,1
    - Dst: _mi_random_split
      Src: /src/cpython/Objects/mimalloc/heap.c:228,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/heap.c:230,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/heap.c:231,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/heap.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 5
    argNames:
    - heap
    - tld
    - arena_id
    - no_reclaim
    - tag
    argTypes:
    - mi_heap_t*
    - mi_tld_t*
    - mi_arena_id_t
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: _mi_heap_init_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_random_init
    - _mi_memcpy_aligned
    - _mi_random_split
    - _mi_heap_random_next
    - _mi_thread_id
    linkageType: ''
    returnType: void
    signature: void _mi_heap_init_ex(mi_heap_t* heap, mi_tld_t* tld, mi_arena_id_t
      arena_id, bool no_reclaim, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_get_backing
      Src: /src/cpython/Objects/mimalloc/heap.c:241,1
    - Dst: mi_heap_malloc_tp
      Src: /src/cpython/Objects/mimalloc/heap.c:242,1
    - Dst: _mi_heap_init_ex
      Src: /src/cpython/Objects/mimalloc/heap.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arena_id
    argTypes:
    - mi_arena_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 6
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: mi_heap_new_in_arena
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc_tp
    - mi_heap_get_backing
    - _mi_heap_init_ex
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_new_in_arena(mi_arena_id_t arena_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_new_in_arena
      Src: /src/cpython/Objects/mimalloc/heap.c:250,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/heap.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: mi_heap_new
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_new_in_arena
    - _mi_arena_id_none
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_arena_memid_is_suitable
      Src: /src/cpython/Objects/mimalloc/heap.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - memid
    argTypes:
    - mi_heap_t*
    - mi_memid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: _mi_heap_memid_is_suitable
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 1
    functionsReached:
    - _mi_arena_memid_is_suitable
    linkageType: ''
    returnType: bool
    signature: bool _mi_heap_memid_is_suitable(mi_heap_t* heap, mi_memid_t memid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_random_next
      Src: /src/cpython/Objects/mimalloc/heap.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: _mi_heap_random_next
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 6
    functionsReached:
    - _mi_random_next
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _mi_heap_random_next(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:263,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:264,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:264,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/heap.c:266,1
    - Dst: _mi_memcpy_aligned
      Src: /src/cpython/Objects/mimalloc/heap.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 270
    functionName: mi_heap_reset_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_memcpy_aligned
    - memset
    - mi_assert_internal
    - mi_heap_is_initialized
    linkageType: ''
    returnType: void
    signature: void mi_heap_reset_pages(mi_heap_t* heap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:274,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:275,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:275,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:276,1
    - Dst: mi_heap_is_backing
      Src: /src/cpython/Objects/mimalloc/heap.c:277,1
    - Dst: mi_heap_is_default
      Src: /src/cpython/Objects/mimalloc/heap.c:280,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/heap.c:281,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:292,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:297,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/heap.c:300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 301
    functionName: mi_heap_free
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_heap_set_default_direct
    - mi_free
    - mi_heap_is_initialized
    - mi_heap_is_default
    - mi_assert_internal
    - mi_assert
    - mi_heap_is_backing
    linkageType: ''
    returnType: void
    signature: void mi_heap_free(mi_heap_t* heap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:309,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:310,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:311,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:312,1
    - Dst: _mi_page_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/heap.c:315,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:318,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:321,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:324,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/heap.c:328,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:331,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:333,1
    - Dst: _mi_bin
      Src: /src/cpython/Objects/mimalloc/heap.c:333,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:336,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:340,1
    - Dst: mi_page_thread_free
      Src: /src/cpython/Objects/mimalloc/heap.c:340,1
    - Dst: _mi_segment_page_free
      Src: /src/cpython/Objects/mimalloc/heap.c:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 5
    argNames:
    - heap
    - pq
    - page
    - arg1
    - arg2
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 308
    functionDepth: 15
    functionLinenumber: 308
    functionLinenumberEnd: 350
    functionName: _mi_heap_page_destroy
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_stat_decrease
    - _mi_segment_page_free
    - mi_page_thread_free
    - mi_page_block_size
    - _mi_bin
    - mi_assert_internal
    - MI_UNUSED
    - _mi_page_use_delayed_free
    - _mi_page_free_collect
    linkageType: ''
    returnType: bool
    signature: bool _mi_heap_page_destroy(mi_heap_t* heap, mi_page_queue_t* pq, mi_page_t*
      page, void* arg1, void* arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_visit_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:353,1
    - Dst: mi_heap_reset_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: _mi_heap_destroy_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_reset_pages
    - mi_heap_visit_pages
    linkageType: ''
    returnType: void
    signature: void _mi_heap_destroy_pages(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:359,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:359,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:359,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:359,1
    - Dst: mi_track_free_size
      Src: /src/cpython/Objects/mimalloc/heap.c:360,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/heap.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - arg
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: mi_heap_track_block_free
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_track_free_size
    - MI_UNUSED
    - mi_usable_size
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_track_block_free(const mi_heap_t* heap, const mi_heap_area_t*
      area, void* block, size_t block_size, void* arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:366,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:367,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:367,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:368,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/heap.c:369,1
    - Dst: mi_heap_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:369,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:370,1
    - Dst: mi_heap_delete
      Src: /src/cpython/Objects/mimalloc/heap.c:373,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/mimalloc/heap.c:378,1
    - Dst: _mi_heap_destroy_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:381,1
    - Dst: mi_heap_free
      Src: /src/cpython/Objects/mimalloc/heap.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 384
    functionName: mi_heap_destroy
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_delete
    - mi_heap_is_initialized
    - mi_heap_free
    - _mi_heap_destroy_pages
    - mi_assert_expensive
    - mi_heap_is_valid
    - mi_assert
    - mi_heap_visit_blocks
    linkageType: ''
    returnType: void
    signature: void mi_heap_destroy(mi_heap_t* heap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_get_backing
      Src: /src/cpython/Objects/mimalloc/heap.c:388,1
    - Dst: mi_heap_destroy
      Src: /src/cpython/Objects/mimalloc/heap.c:393,1
    - Dst: _mi_heap_destroy_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 387
    functionDepth: 4
    functionLinenumber: 387
    functionLinenumberEnd: 400
    functionName: _mi_heap_unsafe_destroy_all
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_heap_destroy_pages
    - mi_heap_get_backing
    - mi_heap_destroy
    linkageType: ''
    returnType: void
    signature: void _mi_heap_unsafe_destroy_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:408,1
    - Dst: _mi_heap_delayed_free_partial
      Src: /src/cpython/Objects/mimalloc/heap.c:412,1
    - Dst: _mi_page_queue_append
      Src: /src/cpython/Objects/mimalloc/heap.c:421,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:425,1
    - Dst: _mi_heap_delayed_free_all
      Src: /src/cpython/Objects/mimalloc/heap.c:431,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:433,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/heap.c:433,1
    - Dst: mi_heap_reset_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - heap
    - from
    argTypes:
    - mi_heap_t*
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 438
    functionName: mi_heap_absorb
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    - _mi_page_queue_append
    - _mi_heap_delayed_free_partial
    - mi_atomic_load_ptr_relaxed
    - mi_heap_reset_pages
    - _mi_heap_delayed_free_all
    linkageType: ''
    returnType: void
    signature: void mi_heap_absorb(mi_heap_t* heap, mi_heap_t* from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:443,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:444,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:444,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/heap.c:445,1
    - Dst: mi_heap_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:445,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:446,1
    - Dst: mi_heap_is_backing
      Src: /src/cpython/Objects/mimalloc/heap.c:448,1
    - Dst: mi_heap_absorb
      Src: /src/cpython/Objects/mimalloc/heap.c:450,1
    - Dst: _mi_heap_collect_abandon
      Src: /src/cpython/Objects/mimalloc/heap.c:454,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:456,1
    - Dst: mi_heap_free
      Src: /src/cpython/Objects/mimalloc/heap.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 458
    functionName: mi_heap_delete
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 1
    functionsReached:
    - _mi_heap_collect_abandon
    - mi_heap_is_initialized
    - mi_heap_free
    - mi_heap_absorb
    - mi_assert_internal
    - mi_assert_expensive
    - mi_heap_is_valid
    - mi_assert
    - mi_heap_is_backing
    linkageType: ''
    returnType: void
    signature: void mi_heap_delete(mi_heap_t* heap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:461,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:462,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:462,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:463,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/heap.c:464,1
    - Dst: mi_heap_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:464,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:465,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/heap.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: mi_heap_set_default
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_heap_set_default_direct
    - mi_heap_is_initialized
    - mi_assert_expensive
    - mi_heap_is_valid
    - mi_assert
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_heap_t
    signature: mi_heap_t * mi_heap_set_default(mi_heap_t* heap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:480,1
    - Dst: _mi_ptr_cookie
      Src: /src/cpython/Objects/mimalloc/heap.c:481,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:482,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/heap.c:483,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:484,1
    - Dst: _mi_segment_page_of
      Src: /src/cpython/Objects/mimalloc/heap.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 485
    functionName: mi_heap_of_block
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - _mi_segment_page_of
    - mi_assert_internal
    - _mi_ptr_cookie
    - mi_unlikely
    - mi_page_heap
    linkageType: ''
    returnType: mi_heap_t
    signature: mi_heap_t * mi_heap_of_block(const void* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:488,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:489,1
    - Dst: mi_heap_of_block
      Src: /src/cpython/Objects/mimalloc/heap.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - heap
    - p
    argTypes:
    - mi_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 491
    functionName: mi_heap_contains_block
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_of_block
    - mi_assert
    - mi_heap_is_initialized
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_contains_block(mi_heap_t* heap, const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:495,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:496,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:498,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/heap.c:499,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - heap
    - pq
    - page
    - p
    - vfound
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 503
    functionName: mi_heap_page_check_owned
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - _mi_page_segment
    - MI_UNUSED
    - _mi_page_start
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_page_check_owned(mi_heap_t* heap, mi_page_queue_t* pq,
      mi_page_t* page, void* p, void* vfound)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:506,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:507,1
    - Dst: mi_heap_visit_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - p
    argTypes:
    - mi_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: mi_heap_check_owned
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_visit_pages
    - mi_assert
    - mi_heap_is_initialized
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_check_owned(mi_heap_t* heap, const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_check_owned
      Src: /src/cpython/Objects/mimalloc/heap.c:515,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: mi_check_owned
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_check_owned
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: bool
    signature: bool mi_check_owned(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:531,1
    - Dst: mi_clz
      Src: /src/cpython/Objects/mimalloc/heap.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - divisor
    - magic
    - shift
    argTypes:
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: mi_fast_divisor
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_clz
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_fast_divisor(size_t divisor, size_t* magic, size_t* shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - n
    - magic
    - shift
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 539
    functionName: mi_fast_divide
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t mi_fast_divide(size_t n, size_t magic, size_t shift)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:542,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:544,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:547,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:550,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:551,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/heap.c:553,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:553,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:554,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:558,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:559,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:566,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/heap.c:576,1
    - Dst: mi_fast_divisor
      Src: /src/cpython/Objects/mimalloc/heap.c:586,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/heap.c:591,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:595,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:597,1
    - Dst: mi_fast_divide
      Src: /src/cpython/Objects/mimalloc/heap.c:598,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:599,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:600,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:605,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:619,1
    - Dst: mi_ctz
      Src: /src/cpython/Objects/mimalloc/heap.c:629,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:630,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:636,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - area
    - page
    - visitor
    - arg
    argTypes:
    - mi_heap_area_t*
    - mi_page_t*
    - mi_block_visit_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 638
    functionName: _mi_heap_area_visit_blocks
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 1
    functionsReached:
    - mi_fast_divide
    - _mi_page_start
    - mi_page_block_size
    - mi_ctz
    - memset
    - mi_assert_internal
    - visitor
    - mi_page_usable_block_size
    - mi_assert
    - mi_block_next
    - _mi_page_segment
    - mi_page_heap
    - mi_fast_divisor
    linkageType: ''
    returnType: bool
    signature: bool _mi_heap_area_visit_blocks(const mi_heap_area_t* area, mi_page_t
      *page, mi_block_visit_fun* visitor, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/heap.c:643,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:644,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:645,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/heap.c:648,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - area
    - page
    argTypes:
    - mi_heap_area_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 652
    functionName: _mi_heap_area_init
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 1
    functionsReached:
    - _mi_page_start
    - mi_page_block_size
    - mi_page_usable_block_size
    - _mi_page_segment
    - _mi_page_free_collect
    linkageType: ''
    returnType: void
    signature: void _mi_heap_area_init(mi_heap_area_t* area, mi_page_t* page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:655,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:656,1
    - Dst: _mi_heap_area_init
      Src: /src/cpython/Objects/mimalloc/heap.c:660,1
    - Dst: fun
      Src: /src/cpython/Objects/mimalloc/heap.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - heap
    - pq
    - page
    - vfun
    - arg
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: mi_heap_visit_areas_page
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_heap_area_init
    - fun
    - MI_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_visit_areas_page(mi_heap_t* heap, mi_page_queue_t* pq,
      mi_page_t* page, void* vfun, void* arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_visit_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - heap
    - visitor
    - arg
    argTypes:
    - mi_heap_t*
    - mi_heap_area_visit_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: mi_heap_visit_areas
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_visit_pages
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_visit_areas(const mi_heap_t* heap, mi_heap_area_visit_fun*
      visitor, void* arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_visit_blocks_args_t*::visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:679,1
    - Dst: _mi_heap_area_visit_blocks
      Src: /src/cpython/Objects/mimalloc/heap.c:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - heap
    - xarea
    - arg
    argTypes:
    - mi_heap_t*
    - mi_heap_area_ex_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 686
    functionName: mi_heap_area_visitor
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_heap_area_visit_blocks
    - mi_visit_blocks_args_t*::visitor
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_area_visitor(const mi_heap_t* heap, const mi_heap_area_ex_t*
      xarea, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_delayed_free_partial
      Src: /src/cpython/Objects/mimalloc/heap.c:691,1
    - Dst: mi_heap_visit_areas
      Src: /src/cpython/Objects/mimalloc/heap.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - heap
    - visit_blocks
    - visitor
    - arg
    argTypes:
    - mi_heap_t*
    - bool
    - mi_block_visit_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: mi_heap_visit_blocks
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 4
    functionsReached:
    - _mi_heap_delayed_free_partial
    - mi_heap_visit_areas
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_visit_blocks(const mi_heap_t* heap, bool visit_blocks,
      mi_block_visit_fun* visitor, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mi_version
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mi_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: MI_OPTION
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_OPTION(opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opt
    - ','
    - legacy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MI_OPTION_LEGACY
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_OPTION_LEGACY(opt,legacy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_add_stderr_output
      Src: /src/cpython/Objects/mimalloc/options.c:100,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/options.c:103,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/options.c:103,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/options.c:107,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/options.c:110,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/options.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: _mi_options_init
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_option_get
    - _mi_verbose_message
    - MI_UNUSED
    - mi_add_stderr_output
    linkageType: ''
    returnType: void
    signature: void _mi_options_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/options.c:115,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/options.c:118,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/options.c:119,1
    - Dst: mi_option_init
      Src: /src/cpython/Objects/mimalloc/options.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - option
    argTypes:
    - mi_option_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: mi_option_get
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 9
    functionsReached:
    - mi_unlikely
    - mi_option_init
    - mi_assert
    linkageType: ''
    returnType: mi_decl_nodiscard long
    signature: mi_decl_nodiscard long mi_option_get(mi_option_t option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/options.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - option
    - min
    - max
    argTypes:
    - mi_option_t
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: mi_option_get_clamp
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 1
    functionsReached:
    - mi_option_get
    linkageType: ''
    returnType: mi_decl_nodiscard long
    signature: mi_decl_nodiscard long mi_option_get_clamp(mi_option_t option, long
      min, long max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/options.c:131,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/options.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - option
    argTypes:
    - mi_option_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: mi_option_get_size
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 1
    functionsReached:
    - mi_option_get
    - mi_assert_internal
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_option_get_size(mi_option_t option)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/options.c:137,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/options.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - option
    - value
    argTypes:
    - mi_option_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: mi_option_set
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_assert
    linkageType: ''
    returnType: void
    signature: void mi_option_set(mi_option_t option, long value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/options.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - option
    - value
    argTypes:
    - mi_option_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: mi_option_set_default
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_assert
    linkageType: ''
    returnType: void
    signature: void mi_option_set_default(mi_option_t option, long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/options.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - option
    argTypes:
    - mi_option_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: mi_option_is_enabled
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 7
    functionsReached:
    - mi_option_get
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_option_is_enabled(mi_option_t option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_set
      Src: /src/cpython/Objects/mimalloc/options.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - option
    - enable
    argTypes:
    - mi_option_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: mi_option_set_enabled
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_option_set
    linkageType: ''
    returnType: void
    signature: void mi_option_set_enabled(mi_option_t option, bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_set_default
      Src: /src/cpython/Objects/mimalloc/options.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - option
    - enable
    argTypes:
    - mi_option_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: mi_option_set_enabled_default
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_option_set_default
    linkageType: ''
    returnType: void
    signature: void mi_option_set_enabled_default(mi_option_t option, bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_set_enabled
      Src: /src/cpython/Objects/mimalloc/options.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - option
    argTypes:
    - mi_option_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: mi_option_enable
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_option_set_enabled
    linkageType: ''
    returnType: void
    signature: void mi_option_enable(mi_option_t option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_set_enabled
      Src: /src/cpython/Objects/mimalloc/options.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - option
    argTypes:
    - mi_option_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: mi_option_disable
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_option_set_enabled
    linkageType: ''
    returnType: void
    signature: void mi_option_disable(mi_option_t option)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/options.c:175,1
    - Dst: _mi_prim_out_stderr
      Src: /src/cpython/Objects/mimalloc/options.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - arg
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mi_out_stderr
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_prim_out_stderr
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_out_stderr(const char* msg, void* arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/options.c:192,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/options.c:194,1
    - Dst: _mi_strlen
      Src: /src/cpython/Objects/mimalloc/options.c:195,1
    - Dst: mi_atomic_add_acq_rel
      Src: /src/cpython/Objects/mimalloc/options.c:198,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/mimalloc/options.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - msg
    - arg
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: mi_out_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_atomic_load_relaxed
    - _mi_strlen
    - MI_UNUSED
    - _mi_memcpy
    - mi_atomic_add_acq_rel
    linkageType: ''
    returnType: void
    signature: void mi_out_buf(const char* msg, void* arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_add_acq_rel
      Src: /src/cpython/Objects/mimalloc/options.c:210,1
    - Dst: out
      Src: /src/cpython/Objects/mimalloc/options.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - out
    - no_more_buf
    - arg
    argTypes:
    - mi_output_fun*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: mi_out_buf_flush
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - out
    - mi_atomic_add_acq_rel
    linkageType: ''
    returnType: void
    signature: void mi_out_buf_flush(mi_output_fun* out, bool no_more_buf, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_out_stderr
      Src: /src/cpython/Objects/mimalloc/options.c:224,1
    - Dst: mi_out_buf
      Src: /src/cpython/Objects/mimalloc/options.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - arg
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: mi_out_buf_stderr
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_out_stderr
    - mi_out_buf
    linkageType: ''
    returnType: void
    signature: void mi_out_buf_stderr(const char* msg, void* arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/mimalloc/options.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - parg
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: mi_out_get_default
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_atomic_load_ptr_acquire
    linkageType: ''
    returnType: mi_output_fun
    signature: mi_output_fun * mi_out_get_default(void** parg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_out_buf_flush
      Src: /src/cpython/Objects/mimalloc/options.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - arg
    argTypes:
    - mi_output_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: mi_register_output
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_out_buf_flush
    linkageType: ''
    returnType: void
    signature: void mi_register_output(mi_output_fun* out, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/options.c:253,1
    - Dst: mi_out_buf_flush
      Src: /src/cpython/Objects/mimalloc/options.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: mi_add_stderr_output
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 1
    functionsReached:
    - mi_out_buf_flush
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void mi_add_stderr_output(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: mi_recurse_enter_prim
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline mi_recurse_enter_prim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: mi_recurse_exit_prim
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline mi_recurse_exit_prim(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/options.c:287,1
    - Dst: mi_recurse_enter_prim
      Src: /src/cpython/Objects/mimalloc/options.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: mi_recurse_enter
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_preloading
    - mi_recurse_enter_prim
    linkageType: ''
    returnType: bool
    signature: bool mi_recurse_enter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/options.c:294,1
    - Dst: mi_recurse_exit_prim
      Src: /src/cpython/Objects/mimalloc/options.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: mi_recurse_exit
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_preloading
    - mi_recurse_exit_prim
    linkageType: ''
    returnType: void
    signature: void mi_recurse_exit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_recurse_enter
      Src: /src/cpython/Objects/mimalloc/options.c:301,1
    - Dst: mi_out_get_default
      Src: /src/cpython/Objects/mimalloc/options.c:302,1
    - Dst: out
      Src: /src/cpython/Objects/mimalloc/options.c:303,1
    - Dst: out
      Src: /src/cpython/Objects/mimalloc/options.c:304,1
    - Dst: mi_recurse_exit
      Src: /src/cpython/Objects/mimalloc/options.c:305,1
    - Dst: out
      Src: /src/cpython/Objects/mimalloc/options.c:308,1
    - Dst: out
      Src: /src/cpython/Objects/mimalloc/options.c:309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - out
    - arg
    - prefix
    - message
    argTypes:
    - mi_output_fun*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 311
    functionName: _mi_fputs
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 1
    functionsReached:
    - mi_out_get_default
    - out
    - mi_recurse_enter
    - mi_recurse_exit
    linkageType: ''
    returnType: void
    signature: void _mi_fputs(mi_output_fun* out, void* arg, const char* prefix, const
      char* message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_recurse_enter
      Src: /src/cpython/Objects/mimalloc/options.c:318,1
    - Dst: vsnprintf
      Src: /src/cpython/Objects/mimalloc/options.c:319,1
    - Dst: mi_recurse_exit
      Src: /src/cpython/Objects/mimalloc/options.c:320,1
    - Dst: _mi_fputs
      Src: /src/cpython/Objects/mimalloc/options.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - out
    - arg
    - prefix
    - fmt
    - args
    argTypes:
    - mi_output_fun*
    - void*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 322
    functionName: mi_vfprintf
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - mi_recurse_exit
    - _mi_fputs
    - mi_recurse_enter
    linkageType: ''
    returnType: void
    signature: void mi_vfprintf( mi_output_fun* out, void* arg, const char* prefix,
      const char* fmt, va_list args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/mimalloc/options.c:326,1
    - Dst: mi_vfprintf
      Src: /src/cpython/Objects/mimalloc/options.c:327,1
    - Dst: va_end
      Src: /src/cpython/Objects/mimalloc/options.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - arg
    - fmt
    argTypes:
    - mi_output_fun*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: _mi_fprintf
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 9
    functionsReached:
    - mi_vfprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void _mi_fprintf( mi_output_fun* out, void* arg, const char* fmt, ...
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_strnlen
      Src: /src/cpython/Objects/mimalloc/options.c:332,1
    - Dst: _mi_is_main_thread
      Src: /src/cpython/Objects/mimalloc/options.c:332,1
    - Dst: snprintf
      Src: /src/cpython/Objects/mimalloc/options.c:334,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/options.c:334,1
    - Dst: mi_vfprintf
      Src: /src/cpython/Objects/mimalloc/options.c:335,1
    - Dst: mi_vfprintf
      Src: /src/cpython/Objects/mimalloc/options.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - out
    - arg
    - prefix
    - fmt
    - args
    argTypes:
    - mi_output_fun*
    - void*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: mi_vfprintf_thread
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_strnlen
    - mi_vfprintf
    - snprintf
    - _mi_thread_id
    - _mi_is_main_thread
    linkageType: ''
    returnType: void
    signature: void mi_vfprintf_thread(mi_output_fun* out, void* arg, const char*
      prefix, const char* fmt, va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/options.c:343,1
    - Dst: va_start
      Src: /src/cpython/Objects/mimalloc/options.c:345,1
    - Dst: mi_vfprintf_thread
      Src: /src/cpython/Objects/mimalloc/options.c:346,1
    - Dst: va_end
      Src: /src/cpython/Objects/mimalloc/options.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 5
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: _mi_trace_message
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_option_get
    - va_start
    - mi_vfprintf_thread
    - va_end
    linkageType: ''
    returnType: void
    signature: void _mi_trace_message(const char* fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/options.c:351,1
    - Dst: va_start
      Src: /src/cpython/Objects/mimalloc/options.c:353,1
    - Dst: mi_vfprintf
      Src: /src/cpython/Objects/mimalloc/options.c:354,1
    - Dst: va_end
      Src: /src/cpython/Objects/mimalloc/options.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: _mi_verbose_message
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 6
    functionsReached:
    - mi_vfprintf
    - va_start
    - mi_option_is_enabled
    - va_end
    linkageType: ''
    returnType: void
    signature: void _mi_verbose_message(const char* fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/options.c:359,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/options.c:360,1
    - Dst: mi_atomic_increment_acq_rel
      Src: /src/cpython/Objects/mimalloc/options.c:361,1
    - Dst: mi_vfprintf_thread
      Src: /src/cpython/Objects/mimalloc/options.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - fmt
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: mi_show_error_message
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - mi_vfprintf_thread
    - mi_atomic_increment_acq_rel
    - mi_option_is_enabled
    linkageType: ''
    returnType: void
    signature: void mi_show_error_message(const char* fmt, va_list args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/options.c:367,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/options.c:368,1
    - Dst: mi_atomic_increment_acq_rel
      Src: /src/cpython/Objects/mimalloc/options.c:369,1
    - Dst: va_start
      Src: /src/cpython/Objects/mimalloc/options.c:372,1
    - Dst: mi_vfprintf_thread
      Src: /src/cpython/Objects/mimalloc/options.c:373,1
    - Dst: va_end
      Src: /src/cpython/Objects/mimalloc/options.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: _mi_warning_message
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 11
    functionsReached:
    - mi_option_is_enabled
    - mi_atomic_increment_acq_rel
    - va_start
    - mi_vfprintf_thread
    - va_end
    linkageType: ''
    returnType: void
    signature: void _mi_warning_message(const char* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_fprintf
      Src: /src/cpython/Objects/mimalloc/options.c:380,1
    - Dst: abort
      Src: /src/cpython/Objects/mimalloc/options.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - assertion
    - fname
    - line
    - func
    argTypes:
    - char*
    - char*
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 5
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: _mi_assert_fail
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_fprintf
    - abort
    linkageType: ''
    returnType: void
    signature: void _mi_assert_fail(const char* assertion, const char* fname, unsigned
      line, const char* func )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/options.c:393,1
    - Dst: __debugbreak
      Src: /src/cpython/Objects/mimalloc/options.c:397,1
    - Dst: abort
      Src: /src/cpython/Objects/mimalloc/options.c:399,1
    - Dst: abort
      Src: /src/cpython/Objects/mimalloc/options.c:404,1
    - Dst: abort
      Src: /src/cpython/Objects/mimalloc/options.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 412
    functionName: mi_error_default
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - __debugbreak
    - abort
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_error_default(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fun
    - arg
    argTypes:
    - mi_error_fun*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: mi_register_error
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi_register_error(mi_error_fun* fun, void* arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/mimalloc/options.c:422,1
    - Dst: mi_show_error_message
      Src: /src/cpython/Objects/mimalloc/options.c:423,1
    - Dst: va_end
      Src: /src/cpython/Objects/mimalloc/options.c:424,1
    - Dst: mi_error_default
      Src: /src/cpython/Objects/mimalloc/options.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - err
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: _mi_error_message
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 4
    functionsReached:
    - mi_show_error_message
    - mi_error_default
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void _mi_error_message(int err, const char* fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: _mi_toupper
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char _mi_toupper(char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_toupper
      Src: /src/cpython/Objects/mimalloc/options.c:445,1
    - Dst: _mi_toupper
      Src: /src/cpython/Objects/mimalloc/options.c:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - s
    - t
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: _mi_strnicmp
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_toupper
    linkageType: ''
    returnType: int
    signature: int _mi_strnicmp(const char* s, const char* t, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - dest
    - src
    - dest_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: _mi_strlcpy
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_strlcpy(char* dest, const char* src, size_t dest_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_strlcpy
      Src: /src/cpython/Objects/mimalloc/options.c:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - dest
    - src
    - dest_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 470
    functionName: _mi_strlcat
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_strlcpy
    linkageType: ''
    returnType: void
    signature: void _mi_strlcat(char* dest, const char* src, size_t dest_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: _mi_strlen
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_strlen(const char* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - s
    - max_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: _mi_strnlen
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_strnlen(const char* s, size_t max_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/options.c:488,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/options.c:489,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/options.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - name
    - result
    - result_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 492
    functionName: mi_getenv
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool mi_getenv(const char* name, char* result, size_t result_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_getenv
      Src: /src/cpython/Objects/mimalloc/options.c:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - name
    - result
    - result_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: mi_getenv
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 0
    functionsReached:
    - _mi_prim_getenv
    linkageType: ''
    returnType: bool
    signature: bool mi_getenv(const char* name, char* result, size_t result_size)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _mi_strlcpy
      Src: /src/cpython/Objects/mimalloc/options.c:509,1
    - Dst: _mi_strlcat
      Src: /src/cpython/Objects/mimalloc/options.c:510,1
    - Dst: mi_getenv
      Src: /src/cpython/Objects/mimalloc/options.c:511,1
    - Dst: _mi_strlcpy
      Src: /src/cpython/Objects/mimalloc/options.c:513,1
    - Dst: _mi_strlcat
      Src: /src/cpython/Objects/mimalloc/options.c:514,1
    - Dst: mi_getenv
      Src: /src/cpython/Objects/mimalloc/options.c:515,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/options.c:517,1
    - Dst: _mi_strnlen
      Src: /src/cpython/Objects/mimalloc/options.c:522,1
    - Dst: _mi_toupper
      Src: /src/cpython/Objects/mimalloc/options.c:524,1
    - Dst: strstr
      Src: /src/cpython/Objects/mimalloc/options.c:527,1
    - Dst: strstr
      Src: /src/cpython/Objects/mimalloc/options.c:531,1
    - Dst: strtol
      Src: /src/cpython/Objects/mimalloc/options.c:537,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/options.c:558,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/options.c:562,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/options.c:566,1
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/options.c:568,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 1
    argNames:
    - desc
    argTypes:
    - mi_option_desc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 505
    functionDepth: 6
    functionLinenumber: 505
    functionLinenumberEnd: 571
    functionName: mi_option_init
    functionSourceFile: /src/cpython/Objects/mimalloc/options.c
    functionUses: 1
    functionsReached:
    - _mi_preloading
    - strstr
    - _mi_strnlen
    - mi_assert_internal
    - _mi_strlcat
    - mi_getenv
    - _mi_warning_message
    - _mi_strlcpy
    - _mi_toupper
    - strtol
    linkageType: ''
    returnType: void
    signature: void mi_option_init(mi_option_desc_t* desc)
  - 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: MI_PAGE_EMPTY
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_PAGE_EMPTY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: QNULL
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QNULL(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MI_STAT_COUNT_NULL
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_STAT_COUNT_NULL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MI_STAT_COUNT_END_NULL
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_STAT_COUNT_END_NULL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: SQNULL
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQNULL(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_thread_id
      Src: /src/cpython/Objects/mimalloc/init.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: _mi_thread_id
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 7
    functionsReached:
    - _mi_prim_thread_id
    linkageType: ''
    returnType: mi_threadid_t
    signature: mi_threadid_t _mi_thread_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/init.c:161,1
    - Dst: _mi_random_init_weak
      Src: /src/cpython/Objects/mimalloc/init.c:164,1
    - Dst: _mi_random_init
      Src: /src/cpython/Objects/mimalloc/init.c:166,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/init.c:168,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/init.c:169,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/init.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 6
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: mi_heap_main_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - _mi_random_init
    - _mi_heap_random_next
    - _mi_random_init_weak
    - _mi_thread_id
    linkageType: ''
    returnType: void
    signature: void mi_heap_main_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_main_init
      Src: /src/cpython/Objects/mimalloc/init.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 7
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: _mi_heap_main_get
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_heap_main_init
    linkageType: ''
    returnType: mi_heap_t
    signature: mi_heap_t * _mi_heap_main_get(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/init.c:205,1
    - Dst: mi_atomic_exchange_ptr_acq_rel
      Src: /src/cpython/Objects/mimalloc/init.c:208,1
    - Dst: _mi_os_alloc
      Src: /src/cpython/Objects/mimalloc/init.c:218,1
    - Dst: _mi_os_alloc
      Src: /src/cpython/Objects/mimalloc/init.c:221,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/init.c:224,1
    - Dst: _mi_memzero_aligned
      Src: /src/cpython/Objects/mimalloc/init.c:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 200
    functionDepth: 7
    functionLinenumber: 200
    functionLinenumberEnd: 237
    functionName: mi_thread_data_zalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - _mi_memzero_aligned
    - mi_atomic_load_ptr_relaxed
    - _mi_os_alloc
    - _mi_error_message
    - mi_atomic_exchange_ptr_acq_rel
    linkageType: ''
    returnType: mi_thread_data_t
    signature: mi_thread_data_t * mi_thread_data_zalloc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/init.c:242,1
    - Dst: mi_atomic_cas_ptr_weak_acq_rel
      Src: /src/cpython/Objects/mimalloc/init.c:245,1
    - Dst: _mi_os_free
      Src: /src/cpython/Objects/mimalloc/init.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tdfree
    argTypes:
    - mi_thread_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: mi_thread_data_free
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - _mi_os_free
    - mi_atomic_cas_ptr_weak_acq_rel
    - mi_atomic_load_ptr_relaxed
    linkageType: ''
    returnType: void
    signature: void mi_thread_data_free( mi_thread_data_t* tdfree )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/init.c:257,1
    - Dst: mi_atomic_exchange_ptr_acq_rel
      Src: /src/cpython/Objects/mimalloc/init.c:259,1
    - Dst: _mi_os_free
      Src: /src/cpython/Objects/mimalloc/init.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: _mi_thread_data_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - _mi_os_free
    - mi_atomic_exchange_ptr_acq_rel
    - mi_atomic_load_ptr_relaxed
    linkageType: ''
    returnType: void
    signature: void _mi_thread_data_collect(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/init.c:269,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/init.c:269,1
    - Dst: _mi_is_main_thread
      Src: /src/cpython/Objects/mimalloc/init.c:270,1
    - Dst: mi_heap_main_init
      Src: /src/cpython/Objects/mimalloc/init.c:273,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/init.c:274,1
    - Dst: mi_thread_data_zalloc
      Src: /src/cpython/Objects/mimalloc/init.c:279,1
    - Dst: _mi_tld_init
      Src: /src/cpython/Objects/mimalloc/init.c:282,1
    - Dst: _mi_heap_init_ex
      Src: /src/cpython/Objects/mimalloc/init.c:283,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/init.c:283,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/init.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 8
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: _mi_heap_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - _mi_heap_set_default_direct
    - mi_heap_main_init
    - mi_heap_is_initialized
    - _mi_arena_id_none
    - _mi_tld_init
    - _mi_heap_init_ex
    - mi_thread_data_zalloc
    - mi_prim_get_default_heap
    - _mi_is_main_thread
    linkageType: ''
    returnType: bool
    signature: bool _mi_heap_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_memcpy_aligned
      Src: /src/cpython/Objects/mimalloc/init.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - tld
    - bheap
    argTypes:
    - mi_tld_t*
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: _mi_tld_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 1
    functionsReached:
    - _mi_memcpy_aligned
    linkageType: ''
    returnType: void
    signature: void _mi_tld_init(mi_tld_t* tld, mi_heap_t* bheap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/init.c:300,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/init.c:303,1
    - Dst: _mi_is_main_thread
      Src: /src/cpython/Objects/mimalloc/init.c:303,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/init.c:307,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/init.c:314,1
    - Dst: mi_heap_is_backing
      Src: /src/cpython/Objects/mimalloc/init.c:314,1
    - Dst: mi_heap_delete
      Src: /src/cpython/Objects/mimalloc/init.c:315,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/init.c:319,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/init.c:320,1
    - Dst: mi_heap_is_backing
      Src: /src/cpython/Objects/mimalloc/init.c:320,1
    - Dst: _mi_heap_collect_abandon
      Src: /src/cpython/Objects/mimalloc/init.c:324,1
    - Dst: _mi_stats_done
      Src: /src/cpython/Objects/mimalloc/init.c:328,1
    - Dst: mi_thread_data_free
      Src: /src/cpython/Objects/mimalloc/init.c:336,1
    - Dst: _mi_heap_destroy_pages
      Src: /src/cpython/Objects/mimalloc/init.c:342,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/init.c:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 347
    functionName: _mi_heap_done
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - _mi_heap_set_default_direct
    - _mi_heap_collect_abandon
    - mi_heap_is_backing
    - mi_heap_is_initialized
    - mi_heap_delete
    - mi_thread_data_free
    - mi_assert_internal
    - _mi_heap_destroy_pages
    - _mi_stats_done
    - _mi_is_main_thread
    linkageType: ''
    returnType: bool
    signature: bool _mi_heap_done(mi_heap_t* heap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_thread_init_auto_done
      Src: /src/cpython/Objects/mimalloc/init.c:372,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/init.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: mi_process_setup_auto_thread_done
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - _mi_heap_set_default_direct
    - _mi_prim_thread_init_auto_done
    linkageType: ''
    returnType: void
    signature: void mi_process_setup_auto_thread_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/init.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: _mi_is_main_thread
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 3
    functionsReached:
    - _mi_thread_id
    linkageType: ''
    returnType: bool
    signature: bool _mi_is_main_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/init.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: _mi_current_thread_count
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 1
    functionsReached:
    - mi_atomic_load_relaxed
    linkageType: ''
    returnType: void
    signature: void _mi_current_thread_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_process_init
      Src: /src/cpython/Objects/mimalloc/init.c:391,1
    - Dst: _mi_heap_init
      Src: /src/cpython/Objects/mimalloc/init.c:396,1
    - Dst: _mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/init.c:398,1
    - Dst: mi_atomic_increment_relaxed
      Src: /src/cpython/Objects/mimalloc/init.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 9
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: mi_thread_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 1
    functionsReached:
    - mi_process_init
    - _mi_stat_increase
    - _mi_heap_init
    - mi_atomic_increment_relaxed
    linkageType: ''
    returnType: void
    signature: void mi_thread_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_thread_done
      Src: /src/cpython/Objects/mimalloc/init.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: mi_thread_done
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 1
    functionsReached:
    - _mi_thread_done
    linkageType: ''
    returnType: void
    signature: void mi_thread_done(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/init.c:411,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/init.c:416,1
    - Dst: mi_atomic_decrement_relaxed
      Src: /src/cpython/Objects/mimalloc/init.c:421,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/init.c:422,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/init.c:425,1
    - Dst: _mi_heap_done
      Src: /src/cpython/Objects/mimalloc/init.c:428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 429
    functionName: _mi_thread_done
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 1
    functionsReached:
    - mi_heap_is_initialized
    - _mi_heap_done
    - mi_atomic_decrement_relaxed
    - _mi_stat_decrease
    - _mi_thread_id
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: void
    signature: void _mi_thread_done(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/init.c:432,1
    - Dst: mi_prim_tls_slot_set
      Src: /src/cpython/Objects/mimalloc/init.c:434,1
    - Dst: mi_tls_pthread_heap_slot
      Src: /src/cpython/Objects/mimalloc/init.c:436,1
    - Dst: _mi_prim_thread_associate_default_heap
      Src: /src/cpython/Objects/mimalloc/init.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 446
    functionName: _mi_heap_set_default_direct
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 5
    functionsReached:
    - mi_tls_pthread_heap_slot
    - _mi_prim_thread_associate_default_heap
    - mi_assert_internal
    - mi_prim_tls_slot_set
    linkageType: ''
    returnType: void
    signature: void _mi_heap_set_default_direct(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: mi_decl_noinline::_mi_preloading
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_decl_noinline _mi_preloading(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_attr_noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_thread_done
      Src: /src/cpython/Objects/mimalloc/init.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - reason
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 482
    functionName: _mi_redirect_entry
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_thread_done
    linkageType: ''
    returnType: mi_decl_export
    signature: mi_decl_export _mi_redirect_entry(DWORD reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: mi_allocator_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_allocator_init(const char** message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 495
    functionName: mi_allocator_done
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi_allocator_done(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_main_init
      Src: /src/cpython/Objects/mimalloc/init.c:500,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/init.c:506,1
    - Dst: _mi_is_main_thread
      Src: /src/cpython/Objects/mimalloc/init.c:506,1
    - Dst: atexit
      Src: /src/cpython/Objects/mimalloc/init.c:508,1
    - Dst: _mi_options_init
      Src: /src/cpython/Objects/mimalloc/init.c:510,1
    - Dst: mi_process_setup_auto_thread_done
      Src: /src/cpython/Objects/mimalloc/init.c:511,1
    - Dst: mi_process_init
      Src: /src/cpython/Objects/mimalloc/init.c:512,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/init.c:513,1
    - Dst: mi_allocator_init
      Src: /src/cpython/Objects/mimalloc/init.c:517,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/init.c:518,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/init.c:518,1
    - Dst: _mi_fputs
      Src: /src/cpython/Objects/mimalloc/init.c:519,1
    - Dst: _mi_random_reinit_if_weak
      Src: /src/cpython/Objects/mimalloc/init.c:523,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 499
    functionDepth: 7
    functionLinenumber: 499
    functionLinenumberEnd: 524
    functionName: mi_process_load
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_heap_main_init
    - mi_allocator_init
    - mi_option_is_enabled
    - atexit
    - _mi_random_reinit_if_weak
    - _mi_fputs
    - mi_assert_internal
    - _mi_verbose_message
    - mi_process_setup_auto_thread_done
    - mi_process_init
    - _mi_options_init
    - _mi_is_main_thread
    linkageType: ''
    returnType: void
    signature: void mi_process_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/cpython/Objects/mimalloc/init.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: mi_detect_cpu_features
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - __cpuid
    linkageType: ''
    returnType: void
    signature: void mi_detect_cpu_features(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 539
    functionName: mi_detect_cpu_features
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi_detect_cpu_features(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_main_init
      Src: /src/cpython/Objects/mimalloc/init.c:547,1
    - Dst: mi_atomic_once
      Src: /src/cpython/Objects/mimalloc/init.c:549,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/init.c:551,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/init.c:551,1
    - Dst: mi_process_setup_auto_thread_done
      Src: /src/cpython/Objects/mimalloc/init.c:552,1
    - Dst: mi_detect_cpu_features
      Src: /src/cpython/Objects/mimalloc/init.c:554,1
    - Dst: _mi_os_init
      Src: /src/cpython/Objects/mimalloc/init.c:555,1
    - Dst: mi_heap_main_init
      Src: /src/cpython/Objects/mimalloc/init.c:556,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/init.c:558,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/init.c:560,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/init.c:561,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/init.c:563,1
    - Dst: mi_thread_init
      Src: /src/cpython/Objects/mimalloc/init.c:565,1
    - Dst: _mi_prim_thread_associate_default_heap
      Src: /src/cpython/Objects/mimalloc/init.c:571,1
    - Dst: mi_stats_reset
      Src: /src/cpython/Objects/mimalloc/init.c:574,1
    - Dst: mi_track_init
      Src: /src/cpython/Objects/mimalloc/init.c:575,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/init.c:577,1
    - Dst: mi_option_get_clamp
      Src: /src/cpython/Objects/mimalloc/init.c:578,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/init.c:579,1
    - Dst: mi_reserve_huge_os_pages_at
      Src: /src/cpython/Objects/mimalloc/init.c:581,1
    - Dst: mi_reserve_huge_os_pages_interleave
      Src: /src/cpython/Objects/mimalloc/init.c:583,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/init.c:586,1
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/init.c:587,1
    - Dst: mi_reserve_os_memory
      Src: /src/cpython/Objects/mimalloc/init.c:589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 543
    functionDepth: 10
    functionLinenumber: 543
    functionLinenumberEnd: 592
    functionName: mi_process_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 2
    functionsReached:
    - mi_heap_main_init
    - mi_atomic_once
    - mi_detect_cpu_features
    - mi_track_init
    - mi_option_get_clamp
    - mi_thread_init
    - mi_stats_reset
    - mi_option_is_enabled
    - mi_reserve_os_memory
    - _mi_verbose_message
    - _mi_prim_thread_associate_default_heap
    - mi_reserve_huge_os_pages_at
    - mi_process_setup_auto_thread_done
    - mi_reserve_huge_os_pages_interleave
    - mi_option_get
    - _mi_thread_id
    - _mi_os_init
    linkageType: ''
    returnType: void
    signature: void mi_process_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_thread_done_auto_done
      Src: /src/cpython/Objects/mimalloc/init.c:604,1
    - Dst: mi_collect
      Src: /src/cpython/Objects/mimalloc/init.c:611,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/init.c:618,1
    - Dst: mi_collect
      Src: /src/cpython/Objects/mimalloc/init.c:619,1
    - Dst: _mi_heap_unsafe_destroy_all
      Src: /src/cpython/Objects/mimalloc/init.c:620,1
    - Dst: _mi_arena_unsafe_destroy_all
      Src: /src/cpython/Objects/mimalloc/init.c:621,1
    - Dst: _mi_heap_main_get
      Src: /src/cpython/Objects/mimalloc/init.c:621,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/init.c:624,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/init.c:624,1
    - Dst: mi_stats_print
      Src: /src/cpython/Objects/mimalloc/init.c:625,1
    - Dst: mi_allocator_done
      Src: /src/cpython/Objects/mimalloc/init.c:627,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/init.c:628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 595
    functionDepth: 13
    functionLinenumber: 595
    functionLinenumberEnd: 630
    functionName: mi_process_done
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_allocator_done
    - mi_option_is_enabled
    - _mi_prim_thread_done_auto_done
    - _mi_verbose_message
    - mi_collect
    - _mi_heap_unsafe_destroy_all
    - _mi_heap_main_get
    - mi_stats_print
    - _mi_arena_unsafe_destroy_all
    linkageType: ''
    returnType: void
    signature: void mi_process_done(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/init.c:637,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/init.c:638,1
    - Dst: mi_process_load
      Src: /src/cpython/Objects/mimalloc/init.c:640,1
    - Dst: mi_process_done
      Src: /src/cpython/Objects/mimalloc/init.c:643,1
    - Dst: mi_is_redirected
      Src: /src/cpython/Objects/mimalloc/init.c:646,1
    - Dst: mi_thread_done
      Src: /src/cpython/Objects/mimalloc/init.c:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - inst
    - reason
    - reserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 636
    functionDepth: 14
    functionLinenumber: 636
    functionLinenumberEnd: 651
    functionName: DllMain
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_process_load
    - mi_process_done
    - mi_thread_done
    - mi_is_redirected
    - MI_UNUSED
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_process_load
      Src: /src/cpython/Objects/mimalloc/init.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 656
    functionDepth: 8
    functionLinenumber: 656
    functionLinenumberEnd: 659
    functionName: _mi_process_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_process_load
    linkageType: ''
    returnType: int
    signature: int _mi_process_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_process_load
      Src: /src/cpython/Objects/mimalloc/init.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 8
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: _mi_process_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_process_load
    linkageType: ''
    returnType: bool
    signature: bool _mi_process_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_process_load
      Src: /src/cpython/Objects/mimalloc/init.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 681
    functionDepth: 8
    functionLinenumber: 681
    functionLinenumberEnd: 683
    functionName: _mi_process_init
    functionSourceFile: /src/cpython/Objects/mimalloc/init.c
    functionUses: 0
    functionsReached:
    - mi_process_load
    linkageType: ''
    returnType: void
    signature: void _mi_process_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/bitmap.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - bitidx
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: mi_bitmap_index_create
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.h
    functionUses: 5
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: mi_bitmap_index_t
    signature: mi_bitmap_index_t mi_bitmap_index_create(size_t idx, size_t bitidx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_bitmap_index_create
      Src: /src/cpython/Objects/mimalloc/bitmap.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - full_bitidx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: mi_bitmap_index_create_from_bit
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.h
    functionUses: 0
    functionsReached:
    - mi_bitmap_index_create
    linkageType: ''
    returnType: mi_bitmap_index_t
    signature: mi_bitmap_index_t mi_bitmap_index_create_from_bit(size_t full_bitidx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitmap_idx
    argTypes:
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: mi_bitmap_index_field
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mi_bitmap_index_field(mi_bitmap_index_t bitmap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitmap_idx
    argTypes:
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: mi_bitmap_index_bit_in_field
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mi_bitmap_index_bit_in_field(mi_bitmap_index_t bitmap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitmap_idx
    argTypes:
    - mi_bitmap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mi_bitmap_index_bit
    functionSourceFile: /src/cpython/Objects/mimalloc/bitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mi_bitmap_index_bit(mi_bitmap_index_t bitmap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: MI_FORWARD
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD(fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: MI_FORWARD
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD(fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fun
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MI_FORWARD1
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD1(fun,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fun
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: MI_FORWARD2
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD2(fun,x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fun
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: MI_FORWARD3
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD3(fun,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fun
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MI_FORWARD0
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD0(fun,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fun
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MI_FORWARD02
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD02(fun,x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fun
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: MI_FORWARD1
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD1(fun,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fun
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MI_FORWARD2
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD2(fun,x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fun
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: MI_FORWARD3
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD3(fun,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fun
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: MI_FORWARD0
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD0(fun,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fun
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: MI_FORWARD02
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_FORWARD02(fun,x,y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_is_in_heap_region
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:61,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: mi_malloc_size_checked
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_is_in_heap_region
    - mi_usable_size
    linkageType: ''
    returnType: mi_decl_externc
    signature: mi_decl_externc mi_malloc_size_checked(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - oldfun
    - ','
    - newfun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: MI_INTERPOSE_FUN
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_INTERPOSE_FUN(oldfun,newfun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: MI_INTERPOSE_MI
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_INTERPOSE_MI(fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:161,1
    - Dst: mi_new_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - ' tag'
    argTypes:
    - std::size_t
    - std::nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: '* operator new  (std::size_t n, const std::nothrow_t& tag) noexcept'
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * operator new  (std::size_t n, const std::nothrow_t& tag) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:162,1
    - Dst: mi_new_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - ' tag'
    argTypes:
    - std::size_t
    - std::nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: '* operator new[](std::size_t n, const std::nothrow_t& tag) noexcept'
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * operator new[](std::size_t n, const std::nothrow_t& tag) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:171,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - al
    argTypes:
    - void*
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: operator delete  (void* p, std::align_val_t al) noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void operator delete  (void* p, std::align_val_t al) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:172,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - al
    argTypes:
    - void*
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: operator delete[](void* p, std::align_val_t al) noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void operator delete[](void* p, std::align_val_t al) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_size_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:173,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - al
    argTypes:
    - void*
    - std::size_t
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: operator delete  (void* p, std::size_t n, std::align_val_t al) noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_size_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void operator delete  (void* p, std::size_t n, std::align_val_t al)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_size_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:174,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - al
    argTypes:
    - void*
    - std::size_t
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: operator delete[](void* p, std::size_t n, std::align_val_t al) noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_size_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void operator delete[](void* p, std::size_t n, std::align_val_t al)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:175,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - al
    argTypes:
    - void*
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: operator delete  (void* p, std::align_val_t al, const std::nothrow_t&)
      noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void operator delete  (void* p, std::align_val_t al, const std::nothrow_t&)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:176,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - al
    argTypes:
    - void*
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: operator delete[](void* p, std::align_val_t al, const std::nothrow_t&)
      noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void operator delete[](void* p, std::align_val_t al, const std::nothrow_t&)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_new_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:178,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - al
    argTypes:
    - std::size_t
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: '* operator new( std::size_t n, std::align_val_t al)   noexcept(false)'
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void * operator new( std::size_t n, std::align_val_t al)   noexcept(false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_new_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:179,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - al
    argTypes:
    - std::size_t
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: '* operator new[]( std::size_t n, std::align_val_t al) noexcept(false)'
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void * operator new[]( std::size_t n, std::align_val_t al) noexcept(false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_new_aligned_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:180,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - al
    argTypes:
    - std::size_t
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: '* operator new  (std::size_t n, std::align_val_t al, const std::nothrow_t&)
      noexcept'
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned_nothrow
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void * operator new  (std::size_t n, std::align_val_t al, const std::nothrow_t&)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_new_aligned_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:181,1
    - Dst: static_cast<size_t>
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - al
    argTypes:
    - std::size_t
    - std::align_val_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: '* operator new[](std::size_t n, std::align_val_t al, const std::nothrow_t&)
      noexcept'
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned_nothrow
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void * operator new[](std::size_t n, std::align_val_t al, const std::nothrow_t&)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - al
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: _ZdlPvSt11align_val_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_aligned
    linkageType: ''
    returnType: void
    signature: void _ZdlPvSt11align_val_t(void* p, size_t al)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - al
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: _ZdaPvSt11align_val_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_aligned
    linkageType: ''
    returnType: void
    signature: void _ZdaPvSt11align_val_t(void* p, size_t al)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_size_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - al
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: _ZdlPvmSt11align_val_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_size_aligned
    linkageType: ''
    returnType: void
    signature: void _ZdlPvmSt11align_val_t(void* p, size_t n, size_t al)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free_size_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - al
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: _ZdaPvmSt11align_val_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free_size_aligned
    linkageType: ''
    returnType: void
    signature: void _ZdaPvmSt11align_val_t(void* p, size_t n, size_t al)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:203,1
    - Dst: mi_new_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - tag
    argTypes:
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: _ZnwmRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnwmRKSt9nothrow_t(size_t n, mi_nothrow_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:204,1
    - Dst: mi_new_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - tag
    argTypes:
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: _ZnamRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnamRKSt9nothrow_t(size_t n, mi_nothrow_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:207,1
    - Dst: mi_new_aligned_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - n
    - al
    - tag
    argTypes:
    - size_t
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: _ZnwmSt11align_val_tRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnwmSt11align_val_tRKSt9nothrow_t(size_t n, size_t al, mi_nothrow_t
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:208,1
    - Dst: mi_new_aligned_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - n
    - al
    - tag
    argTypes:
    - size_t
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: _ZnamSt11align_val_tRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnamSt11align_val_tRKSt9nothrow_t(size_t n, size_t al, mi_nothrow_t
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:212,1
    - Dst: mi_new_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - tag
    argTypes:
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: _ZnwjRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnwjRKSt9nothrow_t(size_t n, mi_nothrow_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:213,1
    - Dst: mi_new_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - tag
    argTypes:
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: _ZnajRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnajRKSt9nothrow_t(size_t n, mi_nothrow_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:216,1
    - Dst: mi_new_aligned_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - n
    - al
    - tag
    argTypes:
    - size_t
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: _ZnwjSt11align_val_tRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnwjSt11align_val_tRKSt9nothrow_t(size_t n, size_t al, mi_nothrow_t
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:217,1
    - Dst: mi_new_aligned_nothrow
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - n
    - al
    - tag
    argTypes:
    - size_t
    - size_t
    - mi_nothrow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: _ZnajSt11align_val_tRKSt9nothrow_t
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_new_aligned_nothrow
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * _ZnajSt11align_val_tRKSt9nothrow_t(size_t n, size_t al, mi_nothrow_t
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_valloc
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: valloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 1
    functionsReached:
    - mi_valloc
    linkageType: ''
    returnType: void
    signature: void *  valloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: vfree
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free
    linkageType: ''
    returnType: void
    signature: void vfree(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_malloc_good_size
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 244
    functionName: malloc_good_size
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 1
    functionsReached:
    - mi_malloc_good_size
    linkageType: ''
    returnType: size_t
    signature: size_t malloc_good_size(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_posix_memalign
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - alignment
    - size
    argTypes:
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: posix_memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 1
    functionsReached:
    - mi_posix_memalign
    linkageType: ''
    returnType: int
    signature: int posix_memalign(void** p, size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_aligned_alloc
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: aligned_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 1
    functionsReached:
    - mi_aligned_alloc
    linkageType: ''
    returnType: void
    signature: void * aligned_alloc(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: cfree
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_free
    linkageType: ''
    returnType: void
    signature: void cfree(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_pvalloc
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: pvalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 1
    functionsReached:
    - mi_pvalloc
    linkageType: ''
    returnType: void
    signature: void * pvalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_reallocarray
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - count
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: reallocarray
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 1
    functionsReached:
    - mi_reallocarray
    linkageType: ''
    returnType: void
    signature: void * reallocarray(void* p, size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_reallocarr
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - count
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    functionName: reallocarr
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 1
    functionsReached:
    - mi_reallocarr
    linkageType: ''
    returnType: int
    signature: int reallocarr(void* p, size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_memalign
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 2
    functionsReached:
    - mi_memalign
    linkageType: ''
    returnType: void
    signature: void * memalign(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_aligned_alloc
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: _aligned_malloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_aligned_alloc
    linkageType: ''
    returnType: void
    signature: void * _aligned_malloc(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_memalign
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 273
    functionName: __libc_memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_memalign
    linkageType: ''
    returnType: void
    signature: void * __libc_memalign(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_valloc
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: __libc_valloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_valloc
    linkageType: ''
    returnType: void
    signature: void * __libc_valloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_pvalloc
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: __libc_pvalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_pvalloc
    linkageType: ''
    returnType: void
    signature: void * __libc_pvalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_memalign
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: __libc_memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_memalign
    linkageType: ''
    returnType: void
    signature: void * __libc_memalign(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_posix_memalign
      Src: /src/cpython/Objects/mimalloc/alloc-override.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - alignment
    - size
    argTypes:
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: __posix_memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-override.c
    functionUses: 0
    functionsReached:
    - mi_posix_memalign
    linkageType: ''
    returnType: int
    signature: int __posix_memalign(void** p, size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: mi_page_queue_is_huge
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_page_queue_is_huge(const mi_page_queue_t* pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: mi_page_queue_is_full
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_page_queue_is_full(const mi_page_queue_t* pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: mi_page_queue_is_special
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_page_queue_is_special(const mi_page_queue_t* pq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_wsize_from_size
      Src: /src/cpython/Objects/mimalloc/page-queue.c:57,1
    - Dst: mi_bsr
      Src: /src/cpython/Objects/mimalloc/page-queue.c:84,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 90
    functionName: mi_bin
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 2
    functionsReached:
    - mi_bsr
    - _mi_wsize_from_size
    - mi_assert_internal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mi_bin(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page-queue.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: _mi_bin
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 1
    functionsReached:
    - mi_bin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _mi_bin(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bin
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: _mi_bin_size
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_bin_size(uint8_t bin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_bin_size
      Src: /src/cpython/Objects/mimalloc/page-queue.c:112,1
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page-queue.c:112,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/page-queue.c:115,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/page-queue.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: mi_good_size
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 0
    functionsReached:
    - _mi_os_page_size
    - _mi_align_up
    - _mi_bin_size
    - mi_bin
    linkageType: ''
    returnType: size_t
    signature: size_t mi_good_size(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:121,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:124,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - queue
    - page
    argTypes:
    - mi_page_queue_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: mi_page_queue_contains
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 1
    functionsReached:
    - mi_assert_internal
    linkageType: ''
    returnType: bool
    signature: bool mi_page_queue_contains(mi_page_queue_t* queue, const mi_page_t*
      page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - pq
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: mi_heap_contains_queue
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mi_heap_contains_queue(const mi_heap_t* heap, const mi_page_queue_t*
      pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:141,1
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page-queue.c:141,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page-queue.c:142,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:143,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:145,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page-queue.c:146,1
    - Dst: mi_page_queue_contains
      Src: /src/cpython/Objects/mimalloc/page-queue.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: mi_page_queue_of
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 7
    functionsReached:
    - mi_bin
    - mi_page_is_in_full
    - mi_page_queue_contains
    - mi_assert_internal
    - mi_assert_expensive
    - mi_page_heap
    linkageType: ''
    returnType: mi_page_queue_t
    signature: mi_page_queue_t * mi_page_queue_of(const mi_page_t* page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:151,1
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page-queue.c:151,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:152,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:154,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - heap
    - page
    argTypes:
    - mi_heap_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: mi_heap_page_queue_of
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 1
    functionsReached:
    - mi_page_is_in_full
    - mi_assert_internal
    - mi_bin
    linkageType: ''
    returnType: mi_page_queue_t
    signature: mi_page_queue_t * mi_heap_page_queue_of(mi_heap_t* heap, const mi_page_t*
      page)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:164,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page-queue.c:164,1
    - Dst: _mi_wsize_from_size
      Src: /src/cpython/Objects/mimalloc/page-queue.c:173,1
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page-queue.c:184,1
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page-queue.c:186,1
    - Dst: _mi_wsize_from_size
      Src: /src/cpython/Objects/mimalloc/page-queue.c:189,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page-queue.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - heap
    - pq
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 198
    functionName: mi_heap_queue_first_update
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 0
    functionsReached:
    - mi_bin
    - mi_assert_internal
    - _mi_wsize_from_size
    - mi_heap_contains_queue
    - mi_assert
    linkageType: ''
    returnType: void
    signature: void mi_heap_queue_first_update(mi_heap_t* heap, const mi_page_queue_t*
      pq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:207,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page-queue.c:208,1
    - Dst: mi_page_queue_contains
      Src: /src/cpython/Objects/mimalloc/page-queue.c:208,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:209,1
    - Dst: mi_page_queue_is_huge
      Src: /src/cpython/Objects/mimalloc/page-queue.c:209,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:209,1
    - Dst: mi_page_queue_is_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:209,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page-queue.c:210,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:218,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page-queue.c:218,1
    - Dst: mi_heap_queue_first_update
      Src: /src/cpython/Objects/mimalloc/page-queue.c:219,1
    - Dst: mi_page_set_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - queue
    - page
    argTypes:
    - mi_page_queue_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 226
    functionName: mi_page_queue_remove
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 2
    functionsReached:
    - mi_page_queue_is_huge
    - mi_page_is_in_full
    - mi_page_queue_contains
    - mi_heap_queue_first_update
    - mi_assert_internal
    - mi_page_set_in_full
    - mi_assert_expensive
    - mi_page_queue_is_full
    - mi_heap_contains_queue
    - mi_page_heap
    linkageType: ''
    returnType: void
    signature: void mi_page_queue_remove(mi_page_queue_t* queue, mi_page_t* page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:230,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page-queue.c:230,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:231,1
    - Dst: mi_page_queue_contains
      Src: /src/cpython/Objects/mimalloc/page-queue.c:231,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:233,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page-queue.c:233,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:235,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:237,1
    - Dst: mi_page_queue_is_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:237,1
    - Dst: mi_page_set_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:239,1
    - Dst: mi_page_queue_is_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:239,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:244,1
    - Dst: mi_heap_queue_first_update
      Src: /src/cpython/Objects/mimalloc/page-queue.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - heap
    - queue
    - page
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 255
    functionName: mi_page_queue_push
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 2
    functionsReached:
    - mi_page_is_in_full
    - mi_page_queue_contains
    - mi_page_set_in_full
    - mi_assert_internal
    - mi_heap_queue_first_update
    - mi_page_queue_is_full
    - _mi_page_segment
    - mi_page_heap
    linkageType: ''
    returnType: void
    signature: void mi_page_queue_push(mi_heap_t* heap, mi_page_queue_t* queue, mi_page_t*
      page)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:259,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page-queue.c:260,1
    - Dst: mi_page_queue_contains
      Src: /src/cpython/Objects/mimalloc/page-queue.c:260,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page-queue.c:261,1
    - Dst: mi_page_queue_contains
      Src: /src/cpython/Objects/mimalloc/page-queue.c:261,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:263,1
    - Dst: mi_page_queue_is_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:264,1
    - Dst: mi_page_queue_is_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:265,1
    - Dst: mi_page_queue_is_huge
      Src: /src/cpython/Objects/mimalloc/page-queue.c:266,1
    - Dst: mi_page_queue_is_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:267,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page-queue.c:269,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:276,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page-queue.c:276,1
    - Dst: mi_heap_queue_first_update
      Src: /src/cpython/Objects/mimalloc/page-queue.c:277,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:283,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page-queue.c:283,1
    - Dst: mi_heap_queue_first_update
      Src: /src/cpython/Objects/mimalloc/page-queue.c:290,1
    - Dst: mi_page_set_in_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:293,1
    - Dst: mi_page_queue_is_full
      Src: /src/cpython/Objects/mimalloc/page-queue.c:293,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 3
    argNames:
    - to
    - from
    - page
    argTypes:
    - mi_page_queue_t*
    - mi_page_queue_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 294
    functionName: mi_page_queue_enqueue_from
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 2
    functionsReached:
    - mi_page_queue_is_huge
    - mi_page_queue_contains
    - mi_heap_queue_first_update
    - mi_assert_internal
    - mi_page_set_in_full
    - mi_assert_expensive
    - mi_page_queue_is_full
    - mi_heap_contains_queue
    - mi_page_heap
    linkageType: ''
    returnType: void
    signature: void mi_page_queue_enqueue_from(mi_page_queue_t* to, mi_page_queue_t*
      from, mi_page_t* page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:298,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page-queue.c:298,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:299,1
    - Dst: mi_atomic_store_release
      Src: /src/cpython/Objects/mimalloc/page-queue.c:308,1
    - Dst: _mi_page_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/page-queue.c:312,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:318,1
    - Dst: mi_heap_queue_first_update
      Src: /src/cpython/Objects/mimalloc/page-queue.c:321,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:325,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page-queue.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - heap
    - pq
    - append
    argTypes:
    - mi_heap_t*
    - mi_page_queue_t*
    - mi_page_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 332
    functionName: _mi_page_queue_append
    functionSourceFile: /src/cpython/Objects/mimalloc/page-queue.c
    functionUses: 1
    functionsReached:
    - mi_heap_queue_first_update
    - mi_atomic_store_release
    - mi_assert_internal
    - mi_heap_contains_queue
    - _mi_page_use_delayed_free
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_page_queue_append(mi_heap_t* heap, mi_page_queue_t* pq,
      mi_page_queue_t* append)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/alloc.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - page
    - block
    - c
    - size
    argTypes:
    - mi_page_t*
    - mi_block_t*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: mi_debug_fill
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mi_debug_fill(mi_page_t* page, mi_block_t* block, int c, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:41,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:41,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc.c:43,1
    - Dst: _mi_malloc_generic
      Src: /src/cpython/Objects/mimalloc/alloc.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - heap
    - page
    - size
    - zero
    argTypes:
    - mi_heap_t*
    - mi_page_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: _mi_page_malloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - _mi_malloc_generic
    - mi_assert_internal
    - mi_unlikely
    linkageType: ''
    returnType: void
    signature: void * _mi_page_malloc(mi_heap_t* heap, mi_page_t* page, size_t size,
      bool zero)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:64,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:65,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/alloc.c:68,1
    - Dst: _mi_memzero_aligned
      Src: /src/cpython/Objects/mimalloc/alloc.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: mi_unlikely
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 9
    functionsReached:
    - _mi_memzero_aligned
    - mi_assert_internal
    - mi_track_mem_defined
    linkageType: ''
    returnType: void
    signature: void mi_unlikely(zero)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc.c:117,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/alloc.c:119,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc.c:120,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc.c:122,1
    - Dst: _mi_heap_get_free_small_page
      Src: /src/cpython/Objects/mimalloc/alloc.c:126,1
    - Dst: _mi_page_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:127,1
    - Dst: mi_track_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:128,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/alloc.c:131,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:131,1
    - Dst: mi_heap_stat_increase
      Src: /src/cpython/Objects/mimalloc/alloc.c:132,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:132,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/alloc.c:137,1
    - Dst: mi_mem_is_zero
      Src: /src/cpython/Objects/mimalloc/alloc.c:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - heap
    - size
    - zero
    argTypes:
    - mi_heap_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 141
    functionName: mi_heap_malloc_small_zero
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_is_initialized
    - mi_prim_get_default_heap
    - mi_heap_stat_increase
    - mi_assert_expensive
    - mi_assert
    - mi_track_malloc
    - mi_mem_is_zero
    - _mi_heap_get_free_small_page
    - _mi_thread_id
    - _mi_page_malloc
    - mi_usable_size
    linkageType: ''
    returnType: mi_decl_restrict
    signature: mi_decl_restrict * mi_heap_malloc_small_zero(mi_heap_t* heap, size_t
      size, bool zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc_small_zero
      Src: /src/cpython/Objects/mimalloc/alloc.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: mi_heap_malloc_small
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc_small_zero
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_malloc_small(mi_heap_t* heap, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc_small
      Src: /src/cpython/Objects/mimalloc/alloc.c:149,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: mi_malloc_small
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc_small
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_malloc_small(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_malloc_zero_ex
      Src: /src/cpython/Objects/mimalloc/alloc.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - heap
    - size
    - zero
    argTypes:
    - mi_heap_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: _mi_heap_malloc_zero
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 1
    functionsReached:
    - _mi_heap_malloc_zero_ex
    linkageType: ''
    returnType: void
    signature: void * _mi_heap_malloc_zero(mi_heap_t* heap, size_t size, bool zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_malloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: mi_heap_malloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - _mi_heap_malloc_zero
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_malloc(mi_heap_t* heap, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:187,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: mi_malloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - mi_heap_malloc
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc_small_zero
      Src: /src/cpython/Objects/mimalloc/alloc.c:192,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: mi_zalloc_small
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc_small_zero
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_zalloc_small(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_malloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: mi_heap_zalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _mi_heap_malloc_zero
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_zalloc(mi_heap_t* heap, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_zalloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:200,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: mi_zalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_zalloc
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_zalloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/alloc.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - page
    - list
    - elem
    argTypes:
    - mi_page_t*
    - mi_block_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: mi_list_contains
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_block_next
    linkageType: ''
    returnType: bool
    signature: bool mi_list_contains(const mi_page_t* page, const mi_block_t* list,
      const mi_block_t* elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_list_contains
      Src: /src/cpython/Objects/mimalloc/alloc.c:222,1
    - Dst: mi_list_contains
      Src: /src/cpython/Objects/mimalloc/alloc.c:223,1
    - Dst: mi_list_contains
      Src: /src/cpython/Objects/mimalloc/alloc.c:224,1
    - Dst: mi_page_thread_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:224,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/alloc.c:226,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 7
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: mi_check_is_double_freex
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _mi_error_message
    - mi_page_block_size
    - mi_list_contains
    - mi_page_thread_free
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline mi_check_is_double_freex(const mi_page_t* page, const
      mi_block_t* block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - access
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: mi_track_page
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mi_track_page(page,access)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_block_nextx
      Src: /src/cpython/Objects/mimalloc/alloc.c:236,1
    - Dst: mi_is_in_same_page
      Src: /src/cpython/Objects/mimalloc/alloc.c:238,1
    - Dst: mi_check_is_double_freex
      Src: /src/cpython/Objects/mimalloc/alloc.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 8
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: mi_check_is_double_free
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_block_nextx
    - mi_check_is_double_freex
    - mi_is_in_same_page
    linkageType: ''
    returnType: bool
    signature: bool mi_check_is_double_free(const mi_page_t* page, const mi_block_t*
      block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:248,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mi_check_is_double_free
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool mi_check_is_double_free(const mi_page_t* page, const mi_block_t*
      block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:260,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/alloc.c:262,1
    - Dst: mi_ptr_encode
      Src: /src/cpython/Objects/mimalloc/alloc.c:268,1
    - Dst: mi_track_mem_noaccess
      Src: /src/cpython/Objects/mimalloc/alloc.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - page
    - block
    - delta
    - bsize
    argTypes:
    - mi_page_t*
    - mi_block_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: mi_page_decode_padding
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_track_mem_noaccess
    - mi_ptr_encode
    - mi_page_usable_block_size
    - mi_track_mem_defined
    linkageType: ''
    returnType: bool
    signature: bool mi_page_decode_padding(const mi_page_t* page, const mi_block_t*
      block, size_t* delta, size_t* bsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_decode_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:277,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:278,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: mi_page_usable_size_of
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_page_decode_padding
    - mi_assert_internal
    linkageType: ''
    returnType: size_t
    signature: size_t mi_page_usable_size_of(const mi_page_t* page, const mi_block_t*
      block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_decode_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:289,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:290,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:292,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:295,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/alloc.c:297,1
    - Dst: mi_track_mem_noaccess
      Src: /src/cpython/Objects/mimalloc/alloc.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - page
    - block
    - min_size
    argTypes:
    - mi_page_t*
    - mi_block_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 300
    functionName: _mi_padding_shrink
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_page_decode_padding
    - mi_track_mem_noaccess
    - mi_assert_internal
    - mi_track_mem_defined
    linkageType: ''
    returnType: void
    signature: void _mi_padding_shrink(const mi_page_t* page, const mi_block_t* block,
      const size_t min_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:303,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: mi_page_usable_size_of
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_page_usable_block_size
    - MI_UNUSED
    linkageType: ''
    returnType: size_t
    signature: size_t mi_page_usable_size_of(const mi_page_t* page, const mi_block_t*
      block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:308,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:309,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - page
    - block
    - min_size
    argTypes:
    - mi_page_t*
    - mi_block_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: _mi_padding_shrink
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void _mi_padding_shrink(const mi_page_t* page, const mi_block_t* block,
      const size_t min_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_decode_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:319,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:322,1
    - Dst: mi_page_is_huge
      Src: /src/cpython/Objects/mimalloc/alloc.c:324,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/alloc.c:327,1
    - Dst: mi_track_mem_noaccess
      Src: /src/cpython/Objects/mimalloc/alloc.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - page
    - block
    - size
    - wrong
    argTypes:
    - mi_page_t*
    - mi_block_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 338
    functionName: mi_verify_padding
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_track_mem_defined
    - mi_page_decode_padding
    - mi_track_mem_noaccess
    - mi_page_is_huge
    - mi_assert_internal
    linkageType: ''
    returnType: bool
    signature: bool mi_verify_padding(const mi_page_t* page, const mi_block_t* block,
      size_t* size, size_t* wrong)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_verify_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:343,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/alloc.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 7
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: mi_check_padding
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _mi_error_message
    - mi_verify_padding
    linkageType: ''
    returnType: void
    signature: void mi_check_padding(const mi_page_t* page, const mi_block_t* block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:351,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: mi_check_padding
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_check_padding(const mi_page_t* page, const mi_block_t* block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:361,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/alloc.c:363,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:364,1
    - Dst: mi_page_usable_size_of
      Src: /src/cpython/Objects/mimalloc/alloc.c:366,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/alloc.c:367,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/alloc.c:370,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/alloc.c:372,1
    - Dst: _mi_bin
      Src: /src/cpython/Objects/mimalloc/alloc.c:372,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/alloc.c:376,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/alloc.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 381
    functionName: mi_stat_free
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_stat_decrease
    - _mi_bin
    - mi_page_usable_block_size
    - mi_page_usable_size_of
    - MI_UNUSED
    - mi_heap_get_default
    linkageType: ''
    returnType: void
    signature: void mi_stat_free(const mi_page_t* page, const mi_block_t* block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:384,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: mi_stat_free
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_stat_free(const mi_page_t* page, const mi_block_t* block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/alloc.c:392,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:393,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/alloc.c:395,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/alloc.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 400
    functionName: mi_stat_huge_free
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - mi_heap_get_default
    - mi_heap_stat_decrease
    linkageType: ''
    returnType: void
    signature: void mi_stat_huge_free(const mi_page_t* page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: mi_stat_huge_free
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_stat_huge_free(const mi_page_t* page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_check_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:417,1
    - Dst: _mi_padding_shrink
      Src: /src/cpython/Objects/mimalloc/alloc.c:418,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/alloc.c:421,1
    - Dst: mi_stat_huge_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:425,1
    - Dst: _mi_segment_huge_page_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:426,1
    - Dst: _mi_segment_huge_page_reset
      Src: /src/cpython/Objects/mimalloc/alloc.c:432,1
    - Dst: mi_debug_fill
      Src: /src/cpython/Objects/mimalloc/alloc.c:438,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:438,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/alloc.c:445,1
    - Dst: mi_tf_delayed
      Src: /src/cpython/Objects/mimalloc/alloc.c:447,1
    - Dst: mi_tf_set_delayed
      Src: /src/cpython/Objects/mimalloc/alloc.c:450,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/alloc.c:454,1
    - Dst: mi_tf_block
      Src: /src/cpython/Objects/mimalloc/alloc.c:454,1
    - Dst: mi_tf_set_block
      Src: /src/cpython/Objects/mimalloc/alloc.c:455,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/alloc.c:457,1
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/alloc.c:461,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:462,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/alloc.c:465,1
    - Dst: mi_block_set_nextx
      Src: /src/cpython/Objects/mimalloc/alloc.c:467,1
    - Dst: mi_atomic_cas_ptr_weak_release
      Src: /src/cpython/Objects/mimalloc/alloc.c:468,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/alloc.c:472,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:475,1
    - Dst: mi_tf_delayed
      Src: /src/cpython/Objects/mimalloc/alloc.c:475,1
    - Dst: mi_tf_set_delayed
      Src: /src/cpython/Objects/mimalloc/alloc.c:476,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/alloc.c:477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - page
    - block
    argTypes:
    - mi_page_t*
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 413
    functionDepth: 16
    functionLinenumber: 413
    functionLinenumberEnd: 479
    functionName: _mi_free_block_mt
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _mi_segment_huge_page_reset
    - mi_tf_block
    - mi_atomic_cas_weak_release
    - _mi_padding_shrink
    - _mi_segment_huge_page_free
    - mi_check_padding
    - mi_debug_fill
    - mi_usable_size
    - mi_tf_set_block
    - mi_stat_huge_free
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_tf_set_delayed
    - mi_atomic_cas_ptr_weak_release
    - _mi_page_segment
    - mi_block_set_nextx
    - mi_atomic_load_acquire
    - mi_atomic_load_ptr_relaxed
    - mi_block_set_next
    - mi_tf_delayed
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline _mi_free_block_mt(mi_page_t* page, mi_block_t* block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_tf_set_delayed
      Src: /src/cpython/Objects/mimalloc/alloc.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: mi_unlikely
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 9
    functionsReached:
    - mi_tf_set_delayed
    linkageType: ''
    returnType: void
    signature: void mi_unlikely(use_delayed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/alloc.c:461,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:462,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/alloc.c:465,1
    - Dst: mi_block_set_nextx
      Src: /src/cpython/Objects/mimalloc/alloc.c:467,1
    - Dst: mi_atomic_cas_ptr_weak_release
      Src: /src/cpython/Objects/mimalloc/alloc.c:468,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/alloc.c:472,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:475,1
    - Dst: mi_tf_delayed
      Src: /src/cpython/Objects/mimalloc/alloc.c:475,1
    - Dst: mi_tf_set_delayed
      Src: /src/cpython/Objects/mimalloc/alloc.c:476,1
    - Dst: mi_atomic_cas_weak_release
      Src: /src/cpython/Objects/mimalloc/alloc.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 478
    functionName: mi_unlikely
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 9
    functionsReached:
    - mi_block_set_nextx
    - mi_assert_internal
    - mi_atomic_load_relaxed
    - mi_tf_set_delayed
    - mi_atomic_load_acquire
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_cas_ptr_weak_release
    - mi_atomic_cas_weak_release
    - mi_tf_delayed
    linkageType: ''
    returnType: void
    signature: void mi_unlikely(use_delayed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_check_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:489,1
    - Dst: mi_page_is_huge
      Src: /src/cpython/Objects/mimalloc/alloc.c:491,1
    - Dst: mi_debug_fill
      Src: /src/cpython/Objects/mimalloc/alloc.c:492,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:492,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/alloc.c:495,1
    - Dst: _mi_page_retire
      Src: /src/cpython/Objects/mimalloc/alloc.c:499,1
    - Dst: _mi_page_unfull
      Src: /src/cpython/Objects/mimalloc/alloc.c:502,1
    - Dst: _mi_free_block_mt
      Src: /src/cpython/Objects/mimalloc/alloc.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - page
    - local
    - block
    argTypes:
    - mi_page_t*
    - bool
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 482
    functionDepth: 17
    functionLinenumber: 482
    functionLinenumberEnd: 508
    functionName: _mi_free_block
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - mi_page_is_huge
    - mi_check_padding
    - _mi_page_unfull
    - _mi_free_block_mt
    - _mi_page_retire
    - mi_block_set_next
    - mi_debug_fill
    linkageType: ''
    returnType: void
    signature: void _mi_free_block(mi_page_t* page, bool local, mi_block_t* block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_check_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:489,1
    - Dst: mi_page_is_huge
      Src: /src/cpython/Objects/mimalloc/alloc.c:491,1
    - Dst: mi_debug_fill
      Src: /src/cpython/Objects/mimalloc/alloc.c:492,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:492,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/alloc.c:495,1
    - Dst: _mi_page_retire
      Src: /src/cpython/Objects/mimalloc/alloc.c:499,1
    - Dst: _mi_page_unfull
      Src: /src/cpython/Objects/mimalloc/alloc.c:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 486
    functionDepth: 8
    functionLinenumber: 486
    functionLinenumberEnd: 504
    functionName: mi_likely
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 6
    functionsReached:
    - mi_page_block_size
    - mi_page_is_huge
    - mi_check_padding
    - _mi_page_unfull
    - _mi_page_retire
    - mi_block_set_next
    - mi_debug_fill
    linkageType: ''
    returnType: void
    signature: void mi_likely(local)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_page_retire
      Src: /src/cpython/Objects/mimalloc/alloc.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: mi_unlikely
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 9
    functionsReached:
    - _mi_page_retire
    linkageType: ''
    returnType: void
    signature: void mi_unlikely(mi_page_all_free(page))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_page_unfull
      Src: /src/cpython/Objects/mimalloc/alloc.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 5
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: mi_unlikely
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 9
    functionsReached:
    - _mi_page_unfull
    linkageType: ''
    returnType: else
    signature: else mi_unlikely(mi_page_is_in_full(page))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:513,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/alloc.c:514,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - segment
    - page
    - p
    argTypes:
    - mi_segment_t*
    - mi_page_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: _mi_page_ptr_unalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - mi_assert_internal
    - _mi_page_start
    linkageType: ''
    returnType: mi_block_t
    signature: mi_block_t * _mi_page_ptr_unalign(const mi_segment_t* segment, const
      mi_page_t* page, const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_page_has_aligned
      Src: /src/cpython/Objects/mimalloc/alloc.c:521,1
    - Dst: _mi_page_ptr_unalign
      Src: /src/cpython/Objects/mimalloc/alloc.c:521,1
    - Dst: mi_stat_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:522,1
    - Dst: mi_track_free_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:523,1
    - Dst: mi_page_usable_size_of
      Src: /src/cpython/Objects/mimalloc/alloc.c:523,1
    - Dst: _mi_free_block
      Src: /src/cpython/Objects/mimalloc/alloc.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - segment
    - page
    - is_local
    - p
    argTypes:
    - mi_segment_t*
    - mi_page_t*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 520
    functionDepth: 18
    functionLinenumber: 520
    functionLinenumberEnd: 525
    functionName: mi_decl_noinline::_mi_free_generic
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_track_free_size
    - _mi_free_block
    - mi_page_has_aligned
    - mi_stat_free
    - _mi_page_ptr_unalign
    - mi_page_usable_size_of
    linkageType: ''
    returnType: void
    signature: void mi_decl_noinline _mi_free_generic(const mi_segment_t* segment,
      mi_page_t* page, bool is_local, void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/alloc.c:580,1
    - Dst: mi_check_padding
      Src: /src/cpython/Objects/mimalloc/alloc.c:584,1
    - Dst: mi_stat_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:585,1
    - Dst: mi_debug_fill
      Src: /src/cpython/Objects/mimalloc/alloc.c:587,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:587,1
    - Dst: mi_track_free_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:589,1
    - Dst: mi_page_usable_size_of
      Src: /src/cpython/Objects/mimalloc/alloc.c:589,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/alloc.c:590,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc.c:592,1
    - Dst: _mi_page_retire
      Src: /src/cpython/Objects/mimalloc/alloc.c:593,1
    - Dst: _mi_free_generic
      Src: /src/cpython/Objects/mimalloc/alloc.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 579
    functionDepth: 8
    functionLinenumber: 579
    functionLinenumberEnd: 600
    functionName: mi_likely
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 7
    functionsReached:
    - mi_track_free_size
    - mi_likely
    - mi_page_block_size
    - _mi_free_generic
    - mi_check_padding
    - mi_stat_free
    - _mi_page_retire
    - mi_page_usable_size_of
    - mi_unlikely
    - mi_block_set_next
    - mi_debug_fill
    linkageType: ''
    returnType: void
    signature: void mi_likely(is_local)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/alloc.c:610,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:611,1
    - Dst: _mi_ptr_cookie
      Src: /src/cpython/Objects/mimalloc/alloc.c:611,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:614,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/alloc.c:614,1
    - Dst: _mi_segment_page_of
      Src: /src/cpython/Objects/mimalloc/alloc.c:616,1
    - Dst: _mi_page_try_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:623,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/alloc.c:628,1
    - Dst: _mi_free_block
      Src: /src/cpython/Objects/mimalloc/alloc.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - block
    argTypes:
    - mi_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 608
    functionDepth: 18
    functionLinenumber: 608
    functionLinenumberEnd: 633
    functionName: _mi_free_delayed_block
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 1
    functionsReached:
    - _mi_ptr_segment
    - _mi_page_try_use_delayed_free
    - _mi_free_block
    - _mi_segment_page_of
    - mi_assert_internal
    - _mi_ptr_cookie
    - _mi_thread_id
    - _mi_page_free_collect
    linkageType: ''
    returnType: bool
    signature: bool _mi_free_delayed_block(mi_block_t* block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_page_ptr_unalign
      Src: /src/cpython/Objects/mimalloc/alloc.c:637,1
    - Dst: mi_page_usable_size_of
      Src: /src/cpython/Objects/mimalloc/alloc.c:638,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _mi_page_ptr_unalign
    - mi_page_usable_size_of
    - mi_assert_internal
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline mi_attr_noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_checked_ptr_segment
      Src: /src/cpython/Objects/mimalloc/alloc.c:646,1
    - Dst: _mi_segment_page_of
      Src: /src/cpython/Objects/mimalloc/alloc.c:647,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/alloc.c:648,1
    - Dst: mi_page_has_aligned
      Src: /src/cpython/Objects/mimalloc/alloc.c:648,1
    - Dst: mi_page_usable_size_of
      Src: /src/cpython/Objects/mimalloc/alloc.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - msg
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 651
    functionName: _mi_usable_size
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_likely
    - mi_page_has_aligned
    - _mi_segment_page_of
    - mi_checked_ptr_segment
    - mi_page_usable_size_of
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_usable_size(const void* p, const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED_RELEASE
      Src: /src/cpython/Objects/mimalloc/alloc.c:668,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc.c:669,1
    - Dst: _mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:669,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: mi_free_size
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED_RELEASE
    - mi_free
    - mi_assert
    - _mi_usable_size
    linkageType: ''
    returnType: void
    signature: void mi_free_size(void* p, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED_RELEASE
      Src: /src/cpython/Objects/mimalloc/alloc.c:674,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc.c:675,1
    - Dst: mi_free_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - size
    - alignment
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 673
    functionDepth: 5
    functionLinenumber: 673
    functionLinenumberEnd: 677
    functionName: mi_free_size_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 4
    functionsReached:
    - MI_UNUSED_RELEASE
    - mi_free_size
    - mi_assert
    linkageType: ''
    returnType: void
    signature: void mi_free_size_aligned(void* p, size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED_RELEASE
      Src: /src/cpython/Objects/mimalloc/alloc.c:680,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc.c:681,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - alignment
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 683
    functionName: mi_free_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 6
    functionsReached:
    - MI_UNUSED_RELEASE
    - mi_free
    - mi_assert
    linkageType: ''
    returnType: void
    signature: void mi_free_aligned(void* p, size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc.c:687,1
    - Dst: mi_heap_zalloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - heap
    - count
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: mi_heap_calloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - mi_heap_zalloc
    - mi_count_size_overflow
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_calloc(mi_heap_t* heap, size_t count, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_calloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:692,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 693
    functionName: mi_calloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - mi_heap_calloc
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_calloc(size_t count, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc.c:698,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - heap
    - count
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 700
    functionName: mi_heap_mallocn
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc
    - mi_count_size_overflow
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_mallocn(mi_heap_t* heap, size_t count,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_mallocn
      Src: /src/cpython/Objects/mimalloc/alloc.c:703,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: mi_mallocn
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_mallocn
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_mallocn(size_t count, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:710,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/alloc.c:710,1
    - Dst: _mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - newsize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 718
    functionName: mi_expand
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - _mi_usable_size
    linkageType: ''
    returnType: void
    signature: void * mi_expand(void* p, size_t newsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc.c:724,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc.c:725,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:726,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:732,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/alloc.c:733,1
    - Dst: _mi_memzero
      Src: /src/cpython/Objects/mimalloc/alloc.c:737,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/alloc.c:742,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/alloc.c:744,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/mimalloc/alloc.c:745,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - heap
    - p
    - newsize
    - zero
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 747
    functionName: _mi_heap_realloc_zero
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - mi_likely
    - mi_free
    - _mi_usable_size
    - mi_track_mem_defined
    - _mi_memzero
    - mi_assert_internal
    - mi_heap_malloc
    - _mi_memcpy
    - mi_unlikely
    linkageType: ''
    returnType: void
    signature: void * _mi_heap_realloc_zero(mi_heap_t* heap, void* p, size_t newsize,
      bool zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_realloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - heap
    - p
    - newsize
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 752
    functionDepth: 5
    functionLinenumber: 752
    functionLinenumberEnd: 754
    functionName: mi_heap_realloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - _mi_heap_realloc_zero
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_realloc(mi_heap_t* heap, void* p, size_t
      newsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc.c:758,1
    - Dst: mi_heap_realloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - heap
    - p
    - count
    - size
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 756
    functionDepth: 6
    functionLinenumber: 756
    functionLinenumberEnd: 760
    functionName: mi_heap_reallocn
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc
    - mi_count_size_overflow
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_reallocn(mi_heap_t* heap, void* p, size_t
      count, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:765,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc.c:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - heap
    - p
    - newsize
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 764
    functionDepth: 6
    functionLinenumber: 764
    functionLinenumberEnd: 768
    functionName: mi_heap_reallocf
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_realloc
    - mi_free
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_reallocf(mi_heap_t* heap, void* p, size_t
      newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_realloc_zero
      Src: /src/cpython/Objects/mimalloc/alloc.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - heap
    - p
    - newsize
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 5
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: mi_heap_rezalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _mi_heap_realloc_zero
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_rezalloc(mi_heap_t* heap, void* p, size_t
      newsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc.c:776,1
    - Dst: mi_heap_rezalloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - heap
    - p
    - count
    - size
    argTypes:
    - mi_heap_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 774
    functionDepth: 6
    functionLinenumber: 774
    functionLinenumberEnd: 778
    functionName: mi_heap_recalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_rezalloc
    - mi_count_size_overflow
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_recalloc(mi_heap_t* heap, void* p, size_t
      count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:782,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - newsize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 781
    functionDepth: 6
    functionLinenumber: 781
    functionLinenumberEnd: 783
    functionName: mi_realloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - mi_heap_realloc
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_realloc(void* p, size_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_reallocn
      Src: /src/cpython/Objects/mimalloc/alloc.c:786,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - count
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 785
    functionDepth: 7
    functionLinenumber: 785
    functionLinenumberEnd: 787
    functionName: mi_reallocn
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_reallocn
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_reallocn(void* p, size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_reallocf
      Src: /src/cpython/Objects/mimalloc/alloc.c:791,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - newsize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 7
    functionLinenumber: 790
    functionLinenumberEnd: 792
    functionName: mi_reallocf
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_reallocf
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_reallocf(void* p, size_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_rezalloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:795,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - newsize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 794
    functionDepth: 6
    functionLinenumber: 794
    functionLinenumberEnd: 796
    functionName: mi_rezalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_rezalloc
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_rezalloc(void* p, size_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_recalloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:799,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - count
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 798
    functionDepth: 7
    functionLinenumber: 798
    functionLinenumberEnd: 800
    functionName: mi_recalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_recalloc
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_recalloc(void* p, size_t count, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/mimalloc/alloc.c:811,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:812,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/mimalloc/alloc.c:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - s
    argTypes:
    - mi_heap_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 817
    functionName: mi_heap_strdup
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc
    - _mi_memcpy
    - strlen
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_strdup(mi_heap_t* heap, const char* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_strdup
      Src: /src/cpython/Objects/mimalloc/alloc.c:820,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 821
    functionName: mi_strdup
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_strdup
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_strdup(const char* s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Objects/mimalloc/alloc.c:826,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc.c:828,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:829,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/mimalloc/alloc.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - heap
    - s
    - n
    argTypes:
    - mi_heap_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 834
    functionName: mi_heap_strndup
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc
    - _mi_memcpy
    - memchr
    - mi_assert_internal
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_strndup(mi_heap_t* heap, const char* s,
      size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_strndup
      Src: /src/cpython/Objects/mimalloc/alloc.c:837,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 836
    functionDepth: 3
    functionLinenumber: 836
    functionLinenumberEnd: 838
    functionName: mi_strndup
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_strndup
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_strndup(const char* s, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFullPathNameA
      Src: /src/cpython/Objects/mimalloc/alloc.c:850,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/alloc.c:852,1
    - Dst: mi_heap_strndup
      Src: /src/cpython/Objects/mimalloc/alloc.c:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - heap
    - fname
    - resolved_name
    argTypes:
    - mi_heap_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 863
    functionName: mi_heap_realpath
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - GetFullPathNameA
    - GetLastError
    - mi_heap_strndup
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_realpath(mi_heap_t* heap, const char* fname,
      char* resolved_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/cpython/Objects/mimalloc/alloc.c:880,1
    - Dst: realpath
      Src: /src/cpython/Objects/mimalloc/alloc.c:883,1
    - Dst: mi_heap_strdup
      Src: /src/cpython/Objects/mimalloc/alloc.c:885,1
    - Dst: free
      Src: /src/cpython/Objects/mimalloc/alloc.c:886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - heap
    - fname
    - resolved_name
    argTypes:
    - mi_heap_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 902
    functionName: mi_heap_realpath
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - realpath
    - free
    - mi_heap_strdup
    linkageType: ''
    returnType: char
    signature: char * mi_heap_realpath(mi_heap_t* heap, const char* fname, char* resolved_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_realpath
      Src: /src/cpython/Objects/mimalloc/alloc.c:906,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fname
    - resolved_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 4
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: mi_realpath
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_realpath
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_realpath(const char* fname, char* resolved_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::get_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:923,1
    - Dst: std::set_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:925,1
    - Dst: std::set_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:926,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/alloc.c:929,1
    - Dst: std::bad_alloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:931,1
    - Dst: h
      Src: /src/cpython/Objects/mimalloc/alloc.c:936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - nothrow
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 921
    functionDepth: 7
    functionLinenumber: 921
    functionLinenumberEnd: 939
    functionName: mi_try_new_handler
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - std::bad_alloc
    - std::set_new_handler
    - h
    - std::get_new_handler
    - _mi_error_message
    linkageType: ''
    returnType: bool
    signature: bool mi_try_new_handler(bool nothrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 946
    functionName: _ZSt15get_new_handlerv
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std_new_handler_t
    signature: std_new_handler_t _ZSt15get_new_handlerv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ZSt15get_new_handlerv
      Src: /src/cpython/Objects/mimalloc/alloc.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 949
    functionName: mi_get_new_handler
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _ZSt15get_new_handlerv
    linkageType: ''
    returnType: std_new_handler_t
    signature: std_new_handler_t mi_get_new_handler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 954
    functionName: mi_get_new_handler
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std_new_handler_t
    signature: std_new_handler_t mi_get_new_handler()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_get_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:958,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/alloc.c:960,1
    - Dst: abort
      Src: /src/cpython/Objects/mimalloc/alloc.c:962,1
    - Dst: h
      Src: /src/cpython/Objects/mimalloc/alloc.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - nothrow
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 957
    functionDepth: 7
    functionLinenumber: 957
    functionLinenumberEnd: 970
    functionName: mi_try_new_handler
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - _mi_error_message
    - mi_get_new_handler
    - abort
    - h
    linkageType: ''
    returnType: bool
    signature: bool mi_try_new_handler(bool nothrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_try_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:975,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - heap
    - size
    - nothrow
    argTypes:
    - mi_heap_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 973
    functionDepth: 8
    functionLinenumber: 973
    functionLinenumberEnd: 979
    functionName: mi_heap_try_new
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc
    - mi_try_new_handler
    linkageType: ''
    returnType: mi_decl_export
    signature: mi_decl_export * mi_heap_try_new(mi_heap_t* heap, size_t size, bool
      nothrow )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_try_new
      Src: /src/cpython/Objects/mimalloc/alloc.c:982,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - nothrow
    argTypes:
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 9
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: mi_try_new
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_try_new
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_noinline
    signature: mi_decl_noinline * mi_try_new(size_t size, bool nothrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:987,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc.c:988,1
    - Dst: mi_heap_try_new
      Src: /src/cpython/Objects/mimalloc/alloc.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - heap
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 986
    functionDepth: 9
    functionLinenumber: 986
    functionLinenumberEnd: 990
    functionName: mi_heap_alloc_new
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_malloc
    - mi_heap_try_new
    - mi_unlikely
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_alloc_new(mi_heap_t* heap, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_alloc_new
      Src: /src/cpython/Objects/mimalloc/alloc.c:993,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 992
    functionDepth: 10
    functionLinenumber: 992
    functionLinenumberEnd: 994
    functionName: mi_new
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_heap_alloc_new
    - mi_prim_get_default_heap
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_new(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc.c:999,1
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc.c:999,1
    - Dst: mi_try_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - heap
    - count
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 997
    functionDepth: 8
    functionLinenumber: 997
    functionLinenumberEnd: 1002
    functionName: mi_heap_alloc_new_n
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_count_size_overflow
    - mi_try_new_handler
    - mi_unlikely
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_heap_alloc_new_n(mi_heap_t* heap, size_t count,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_heap_alloc_new_n
      Src: /src/cpython/Objects/mimalloc/alloc.c:1009,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/alloc.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1008
    functionDepth: 9
    functionLinenumber: 1008
    functionLinenumberEnd: 1010
    functionName: mi_new_n
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_alloc_new_n
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_new_n(size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_malloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:1014,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc.c:1015,1
    - Dst: mi_try_new
      Src: /src/cpython/Objects/mimalloc/alloc.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1013
    functionDepth: 10
    functionLinenumber: 1013
    functionLinenumberEnd: 1017
    functionName: mi_new_nothrow
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 6
    functionsReached:
    - mi_try_new
    - mi_unlikely
    - mi_malloc
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_new_nothrow(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc.c:1022,1
    - Dst: mi_try_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1019
    functionDepth: 8
    functionLinenumber: 1019
    functionLinenumberEnd: 1026
    functionName: mi_new_aligned
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 2
    functionsReached:
    - mi_malloc_aligned
    - mi_try_new_handler
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_new_aligned(size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc.c:1031,1
    - Dst: mi_try_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:1033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1028
    functionDepth: 8
    functionLinenumber: 1028
    functionLinenumberEnd: 1035
    functionName: mi_new_aligned_nothrow
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 6
    functionsReached:
    - mi_malloc_aligned
    - mi_try_new_handler
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_new_aligned_nothrow(size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_realloc
      Src: /src/cpython/Objects/mimalloc/alloc.c:1040,1
    - Dst: mi_try_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - newsize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1037
    functionDepth: 8
    functionLinenumber: 1037
    functionLinenumberEnd: 1043
    functionName: mi_new_realloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_realloc
    - mi_try_new_handler
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_new_realloc(void* p, size_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc.c:1047,1
    - Dst: mi_count_size_overflow
      Src: /src/cpython/Objects/mimalloc/alloc.c:1047,1
    - Dst: mi_try_new_handler
      Src: /src/cpython/Objects/mimalloc/alloc.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - newcount
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1045
    functionDepth: 8
    functionLinenumber: 1045
    functionLinenumberEnd: 1050
    functionName: mi_new_reallocn
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc.c
    functionUses: 0
    functionsReached:
    - mi_count_size_overflow
    - mi_try_new_handler
    - mi_unlikely
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_new_reallocn(void* p, size_t newcount, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_usable_size
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_attr_noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_usable_size
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_attr_noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_good_size
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_good_size
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_attr_noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_is_in_heap_region
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:50,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: mi_cfree
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_free
    - mi_is_in_heap_region
    linkageType: ''
    returnType: void
    signature: void mi_cfree(void* p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mi_is_power_of_two
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:61,1
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:62,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - p
    - alignment
    - size
    argTypes:
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: mi_posix_memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 2
    functionsReached:
    - _mi_is_power_of_two
    - mi_malloc_aligned
    - mi_assert_internal
    linkageType: ''
    returnType: int
    signature: int mi_posix_memalign(void** p, size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:70,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: mi_memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 3
    functionsReached:
    - mi_malloc_aligned
    - mi_assert_internal
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_memalign(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_memalign
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:76,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: mi_valloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 2
    functionsReached:
    - _mi_os_page_size
    - mi_memalign
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_valloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:80,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:82,1
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: mi_pvalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 2
    functionsReached:
    - mi_malloc_aligned
    - _mi_os_page_size
    - _mi_align_up
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_pvalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:97,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: mi_aligned_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 2
    functionsReached:
    - mi_malloc_aligned
    - mi_assert_internal
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_aligned_alloc(size_t alignment, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_reallocn
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - count
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 8
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: mi_reallocarray
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 1
    functionsReached:
    - mi_reallocn
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_reallocarray( void* p, size_t count, size_t
      size )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:109,1
    - Dst: mi_reallocarray
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:115,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 9
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: mi_attr_noexcept
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_unlikely
    - mi_reallocarray
    - mi_assert
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard mi_attr_noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_expand
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - newsize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: mi__expand
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_expand
    linkageType: ''
    returnType: void
    signature: void * mi__expand(void* p, size_t newsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mi_malloc
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:132,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: mi_wcsdup
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - _mi_memcpy
    - mi_malloc
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_wcsdup(const unsigned short* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_strdup
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: mi_mbsdup
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_strdup
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_mbsdup(const unsigned char* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:146,1
    - Dst: mi_strdup
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:151,1
    - Dst: _mi_strlen
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - size
    - name
    argTypes:
    - char**
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: mi_dupenv_s
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - getenv
    - _mi_strlen
    - mi_strdup
    linkageType: ''
    returnType: int
    signature: int mi_dupenv_s(char** buf, size_t* size, const char* name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:166,1
    - Dst: mi_wcsdup
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:171,1
    - Dst: wcslen
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - size
    - name
    argTypes:
    - unsigned short**
    - size_t*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: mi_wdupenv_s
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_wcsdup
    - _wgetenv
    - wcslen
    linkageType: ''
    returnType: int
    signature: int mi_wdupenv_s(unsigned short** buf, size_t* size, const unsigned
      short* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_recalloc_aligned_at
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - newcount
    - size
    - alignment
    - offset
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: mi_aligned_offset_recalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_recalloc_aligned_at
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_aligned_offset_recalloc(void* p, size_t newcount,
      size_t size, size_t alignment, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_recalloc_aligned
      Src: /src/cpython/Objects/mimalloc/alloc-posix.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - newcount
    - size
    - alignment
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: mi_aligned_recalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/alloc-posix.c
    functionUses: 0
    functionsReached:
    - mi_recalloc_aligned
    linkageType: ''
    returnType: mi_decl_nodiscard
    signature: mi_decl_nodiscard * mi_aligned_recalloc(void* p, size_t newcount, size_t
      size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fpath
    - open_flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: mi_prim_open
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int mi_prim_open(const char* fpath, int open_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - bufsize
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: mi_prim_read
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mi_prim_read(int fd, void* buf, size_t bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: mi_prim_close
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int mi_prim_close(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fpath
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: mi_prim_access
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int mi_prim_access(const char *fpath, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fpath
    - open_flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: mi_prim_open
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int mi_prim_open(const char* fpath, int open_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - bufsize
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: mi_prim_read
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mi_prim_read(int fd, void* buf, size_t bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: mi_prim_close
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int mi_prim_close(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fpath
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: mi_prim_access
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - access
    linkageType: ''
    returnType: int
    signature: int mi_prim_access(const char *fpath, int mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mi_prim_open
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:106,1
    - Dst: mi_prim_read
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:109,1
    - Dst: mi_prim_close
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:110,1
    - Dst: sysctlbyname
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: unix_detect_overcommit
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - mi_prim_close
    - mi_prim_open
    - sysctlbyname
    - mi_prim_read
    linkageType: ''
    returnType: bool
    signature: bool unix_detect_overcommit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:130,1
    - Dst: unix_detect_overcommit
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - mi_os_mem_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: _mi_prim_mem_init
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - sysconf
    - unix_detect_overcommit
    linkageType: ''
    returnType: void
    signature: void _mi_prim_mem_init( mi_os_mem_config_t* config )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: _mi_prim_free
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: int _mi_prim_free(void* addr, size_t size )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: madvise
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:158,1
    - Dst: madvise
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - size
    - advice
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: unix_madvise
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - madvise
    linkageType: ''
    returnType: int
    signature: int unix_madvise(void* addr, size_t size, int advice)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:165,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:168,1
    - Dst: mi_bsr
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:169,1
    - Dst: mmap
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:171,1
    - Dst: MAP_ALIGNED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:171,1
    - Dst: _mi_is_aligned
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:172,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:174,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:181,1
    - Dst: mmap
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:182,1
    - Dst: _mi_os_get_aligned_hint
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:190,1
    - Dst: mmap
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:192,1
    - Dst: _mi_is_aligned
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:193,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:199,1
    - Dst: mmap
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:207,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 6
    argNames:
    - addr
    - size
    - try_alignment
    - protect_flags
    - flags
    - fd
    argTypes:
    - void*
    - size_t
    - size_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 211
    functionName: unix_mmap_prim
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - mi_bsr
    - MAP_ALIGNED
    - mmap
    - _mi_verbose_message
    - MI_UNUSED
    - _mi_os_page_size
    - _mi_is_aligned
    - _mi_os_get_aligned_hint
    linkageType: ''
    returnType: void
    signature: void * unix_mmap_prim(void* addr, size_t size, size_t try_alignment,
      int protect_flags, int flags, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_option_get
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:216,1
    - Dst: VM_MAKE_TAG
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: unix_mmap_fd
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - mi_option_get
    - VM_MAKE_TAG
    linkageType: ''
    returnType: int
    signature: int unix_mmap_fd(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unix_mmap_fd
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:232,1
    - Dst: _mi_os_has_overcommit
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:234,1
    - Dst: PROT_MAX
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:238,1
    - Dst: _mi_os_use_large_page
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:241,1
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:243,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:249,1
    - Dst: unix_mmap_prim
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:278,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:282,1
    - Dst: unix_mmap_prim
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:284,1
    - Dst: mi_atomic_store_release
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:289,1
    - Dst: unix_mmap_prim
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:297,1
    - Dst: _mi_os_use_large_page
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:306,1
    - Dst: unix_madvise
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:307,1
    - Dst: _mi_os_use_large_page
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:312,1
    - Dst: memcntl
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:316,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 7
    argNames:
    - addr
    - size
    - try_alignment
    - protect_flags
    - large_only
    - allow_large
    - is_large
    argTypes:
    - void*
    - size_t
    - size_t
    - int
    - bool
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 224
    functionDepth: 6
    functionLinenumber: 224
    functionLinenumberEnd: 324
    functionName: unix_mmap
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - unix_mmap_fd
    - memcntl
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_store_release
    - mi_atomic_load_acquire
    - _mi_warning_message
    - _mi_os_has_overcommit
    - PROT_MAX
    - _mi_os_use_large_page
    - unix_mmap_prim
    - unix_madvise
    linkageType: ''
    returnType: void
    signature: void * unix_mmap(void* addr, size_t size, size_t try_alignment, int
      protect_flags, bool large_only, bool allow_large, bool* is_large)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:328,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:328,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:329,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:330,1
    - Dst: unix_mmap
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - size
    - try_alignment
    - commit
    - allow_large
    - is_large
    - is_zero
    - addr
    argTypes:
    - size_t
    - size_t
    - bool
    - bool
    - bool*
    - bool*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 327
    functionDepth: 7
    functionLinenumber: 327
    functionLinenumberEnd: 336
    functionName: _mi_prim_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - _mi_os_page_size
    - unix_mmap
    - mi_assert_internal
    linkageType: ''
    returnType: int
    signature: int _mi_prim_alloc(size_t size, size_t try_alignment, bool commit,
      bool allow_large, bool* is_large, bool* is_zero, void** addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:346,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 343
    functionDepth: 6
    functionLinenumber: 343
    functionLinenumberEnd: 353
    functionName: unix_mprotect_hint
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - _mi_warning_message
    linkageType: ''
    returnType: void
    signature: void unix_mprotect_hint(int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mprotect
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:362,1
    - Dst: unix_mprotect_hint
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - start
    - size
    - is_zero
    argTypes:
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 355
    functionDepth: 7
    functionLinenumber: 355
    functionLinenumberEnd: 368
    functionName: _mi_prim_commit
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - mprotect
    - unix_mprotect_hint
    linkageType: ''
    returnType: int
    signature: int _mi_prim_commit(void* start, size_t size, bool* is_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unix_madvise
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:373,1
    - Dst: mprotect
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - start
    - size
    - needs_recommit
    argTypes:
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 388
    functionName: _mi_prim_decommit
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - mprotect
    - unix_madvise
    linkageType: ''
    returnType: int
    signature: int _mi_prim_decommit(void* start, size_t size, bool* needs_recommit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unix_madvise
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:399,1
    - Dst: mi_atomic_store_release
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:402,1
    - Dst: unix_madvise
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:403,1
    - Dst: unix_madvise
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - start
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 409
    functionName: _mi_prim_reset
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - mi_atomic_store_release
    - unix_madvise
    linkageType: ''
    returnType: int
    signature: int _mi_prim_reset(void* start, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mprotect
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:412,1
    - Dst: unix_mprotect_hint
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - start
    - size
    - protect
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 7
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: _mi_prim_protect
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - mprotect
    - unix_mprotect_hint
    linkageType: ''
    returnType: int
    signature: int _mi_prim_protect(void* start, size_t size, bool protect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - start
    - len
    - mode
    - nmask
    - maxnode
    - flags
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - unsigned long*
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: mi_prim_mbind
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: long
    signature: long mi_prim_mbind(void* start, unsigned long len, unsigned long mode,
      const unsigned long* nmask, unsigned long maxnode, unsigned flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:436,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:436,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:436,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:436,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:436,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - start
    - len
    - mode
    - nmask
    - maxnode
    - flags
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - unsigned long*
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: mi_prim_mbind
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: long
    signature: long mi_prim_mbind(void* start, unsigned long len, unsigned long mode,
      const unsigned long* nmask, unsigned long maxnode, unsigned flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unix_mmap
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:444,1
    - Dst: mi_prim_mbind
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:450,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - hint_addr
    - size
    - numa_node
    - is_zero
    - addr
    argTypes:
    - void*
    - size_t
    - int
    - bool*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 457
    functionName: _mi_prim_alloc_huge_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - unix_mmap
    - mi_prim_mbind
    - _mi_warning_message
    linkageType: ''
    returnType: int
    signature: int _mi_prim_alloc_huge_os_pages(void* hint_addr, size_t size, int
      numa_node, bool* is_zero, void** addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:462,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:462,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - hint_addr
    - size
    - numa_node
    - is_zero
    - addr
    argTypes:
    - void*
    - size_t
    - int
    - bool*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: _mi_prim_alloc_huge_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_alloc_huge_os_pages(void* hint_addr, size_t size, int
      numa_node, bool* is_zero, void** addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: _mi_prim_numa_node
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:495,1
    - Dst: mi_prim_access
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 499
    functionName: _mi_prim_numa_node_count
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - snprintf
    - mi_prim_access
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuset_getdomain
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:507,1
    - Dst: DOMAINSET_ISSET
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: _mi_prim_numa_node
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - DOMAINSET_ISSET
    - cpuset_getdomain
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: _mi_prim_numa_node_count
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - sysctlbyname
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: _mi_prim_numa_node
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:531,1
    - Dst: sysctlbyname
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: _mi_prim_numa_node_count
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - sysctlbyname
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: _mi_prim_numa_node
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: _mi_prim_numa_node_count
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:559,1
    - Dst: clock_gettime
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 564
    functionName: _mi_prim_clock_now
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 2
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_prim_clock_now(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:571,1
    - Dst: clock
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:573,1
    - Dst: clock
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 577
    functionName: _mi_prim_clock_now
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 2
    functionsReached:
    - clock
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_prim_clock_now(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: timeval_secs
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t timeval_secs(const struct timeval* tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrusage
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:608,1
    - Dst: timeval_secs
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:609,1
    - Dst: timeval_secs
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:610,1
    - Dst: get_thread_info
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:620,1
    - Dst: find_thread
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:620,1
    - Dst: get_next_area_info
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:621,1
    - Dst: task_info
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:630,1
    - Dst: mach_task_self
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:630,1
    - Dst: task_info
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:636,1
    - Dst: mach_task_self
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - mi_process_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 644
    functionName: _mi_prim_process_info
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - find_thread
    - get_thread_info
    - timeval_secs
    - getrusage
    - mach_task_self
    - task_info
    - get_next_area_info
    linkageType: ''
    returnType: void
    signature: void _mi_prim_process_info(mi_process_info_t* pinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - mi_process_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: _mi_prim_process_info
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void _mi_prim_process_info(mi_process_info_t* pinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 668
    functionName: _mi_prim_out_stderr
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void _mi_prim_out_stderr( const char* msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _NSGetEnviron
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: mi_get_environ
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - _NSGetEnviron
    linkageType: ''
    returnType: char
    signature: char ** mi_get_environ(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: mi_get_environ
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char ** mi_get_environ(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mi_strlen
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:691,1
    - Dst: mi_get_environ
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:693,1
    - Dst: _mi_strnicmp
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:698,1
    - Dst: _mi_strlcpy
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:700,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - name
    - result
    - result_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 705
    functionName: _mi_prim_getenv
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - mi_get_environ
    - _mi_strlcpy
    - _mi_strnicmp
    - _mi_strlen
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_getenv(const char* name, char* result, size_t result_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:710,1
    - Dst: getenv
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:711,1
    - Dst: _mi_strnlen
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:715,1
    - Dst: _mi_toupper
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:717,1
    - Dst: getenv
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:720,1
    - Dst: _mi_strnlen
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:722,1
    - Dst: _mi_strlcpy
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - name
    - result
    - result_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 725
    functionName: _mi_prim_getenv
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - _mi_preloading
    - _mi_strnlen
    - getenv
    - _mi_strlcpy
    - _mi_toupper
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_getenv(const char* name, char* result, size_t result_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CCRandomGenerateBytes
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:744,1
    - Dst: arc4random_buf
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 750
    functionName: _mi_prim_random_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - CCRandomGenerateBytes
    - arc4random_buf
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_random_buf(void* buf, size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: _mi_prim_random_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - arc4random_buf
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_random_buf(void* buf, size_t buf_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:779,1
    - Dst: syscall
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:780,1
    - Dst: mi_atomic_store_release
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:783,1
    - Dst: mi_prim_open
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:790,1
    - Dst: mi_prim_read
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:794,1
    - Dst: mi_prim_close
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:802,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 804
    functionName: _mi_prim_random_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - mi_prim_read
    - syscall
    - mi_atomic_store_release
    - mi_atomic_load_acquire
    - mi_prim_open
    - mi_prim_close
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_random_buf(void* buf, size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 810
    functionName: _mi_prim_random_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_random_buf(void* buf, size_t buf_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_thread_done
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 7
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: mi_pthread_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 0
    functionsReached:
    - _mi_thread_done
    linkageType: ''
    returnType: void
    signature: void mi_pthread_done(void* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:832,1
    - Dst: pthread_key_create
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 834
    functionName: _mi_prim_thread_init_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached:
    - pthread_key_create
    - mi_assert_internal
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_init_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 838
    functionName: _mi_prim_thread_done_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_done_auto_done(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 844
    functionName: _mi_prim_thread_associate_default_heap
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 2
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_associate_default_heap(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 850
    functionName: _mi_prim_thread_init_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_init_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 854
    functionName: _mi_prim_thread_done_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_done_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/unix/prim.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: _mi_prim_thread_associate_default_heap
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/unix/prim.c
    functionUses: 2
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_associate_default_heap(mi_heap_t* heap)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_large_page_size
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:73,1
    - Dst: OpenProcessToken
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:82,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:82,1
    - Dst: LookupPrivilegeValue
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:85,1
    - Dst: TEXT
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:85,1
    - Dst: AdjustTokenPrivileges
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:89,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:91,1
    - Dst: GetLargePageMinimum
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:94,1
    - Dst: CloseHandle
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:98,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:101,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - large_page_size
    argTypes:
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 105
    functionName: win_enable_large_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 0
    functionsReached:
    - TEXT
    - _mi_os_large_page_size
    - OpenProcessToken
    - AdjustTokenPrivileges
    - LookupPrivilegeValue
    - GetLastError
    - GetCurrentProcess
    - _mi_warning_message
    - GetLargePageMinimum
    - CloseHandle
    linkageType: ''
    returnType: bool
    signature: bool win_enable_large_os_pages(size_t* large_page_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:119,1
    - Dst: LoadLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:124,1
    - Dst: TEXT
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:124,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:127,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:128,1
    - Dst: FreeLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:129,1
    - Dst: LoadLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:132,1
    - Dst: TEXT
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:132,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:134,1
    - Dst: FreeLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:135,1
    - Dst: LoadLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:138,1
    - Dst: TEXT
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:138,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:140,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:141,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:142,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:143,1
    - Dst: FreeLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:144,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:146,1
    - Dst: mi_option_is_enabled
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:146,1
    - Dst: win_enable_large_os_pages
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:147,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - config
    argTypes:
    - mi_os_mem_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 112
    functionDepth: 7
    functionLinenumber: 112
    functionLinenumberEnd: 149
    functionName: _mi_prim_mem_init
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - TEXT
    - mi_option_is_enabled
    - LoadLibrary
    - GetSystemInfo
    - FreeLibrary
    - GetProcAddress
    - win_enable_large_os_pages
    linkageType: ''
    returnType: void
    signature: void _mi_prim_mem_init( mi_os_mem_config_t* config )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:157,1
    - Dst: VirtualFree
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:159,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:160,1
    - Dst: VirtualQuery
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:166,1
    - Dst: VirtualFree
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:169,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: _mi_prim_free
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - VirtualQuery
    - VirtualFree
    - MI_UNUSED
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int _mi_prim_free(void* addr, size_t size )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mi_os_get_aligned_hint
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:185,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:187,1
    - Dst: _mi_verbose_message
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:189,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:189,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:195,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:201,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:203,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:203,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - addr
    - size
    - try_alignment
    - flags
    argTypes:
    - void*
    - size_t
    - size_t
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 208
    functionName: win_virtual_alloc_prim
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 0
    functionsReached:
    - VirtualAlloc
    - GetLastError
    - _mi_verbose_message
    - GetCurrentProcess
    - _mi_warning_message
    - _mi_os_page_size
    - _mi_os_get_aligned_hint
    linkageType: ''
    returnType: void
    signature: void * win_virtual_alloc_prim(void* addr, size_t size, size_t try_alignment,
      DWORD flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:211,1
    - Dst: _mi_os_use_large_page
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:215,1
    - Dst: mi_atomic_load_acquire
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:217,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:221,1
    - Dst: win_virtual_alloc_prim
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:226,1
    - Dst: mi_atomic_store_release
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:230,1
    - Dst: win_virtual_alloc_prim
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:237,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 7
    argNames:
    - addr
    - size
    - try_alignment
    - flags
    - large_only
    - allow_large
    - is_large
    argTypes:
    - void*
    - size_t
    - size_t
    - DWORD
    - bool
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 241
    functionName: win_virtual_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 0
    functionsReached:
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_store_release
    - mi_assert_internal
    - mi_atomic_load_acquire
    - win_virtual_alloc_prim
    - _mi_os_use_large_page
    linkageType: ''
    returnType: void
    signature: void * win_virtual_alloc(void* addr, size_t size, size_t try_alignment,
      DWORD flags, bool large_only, bool allow_large, bool* is_large)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:244,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:244,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:245,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:246,1
    - Dst: win_virtual_alloc
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:250,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - size
    - try_alignment
    - commit
    - allow_large
    - is_large
    - is_zero
    - addr
    argTypes:
    - size_t
    - size_t
    - bool
    - bool
    - bool*
    - bool*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 8
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: _mi_prim_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - GetLastError
    - _mi_os_page_size
    - mi_assert_internal
    - win_virtual_alloc
    linkageType: ''
    returnType: int
    signature: int _mi_prim_alloc(size_t size, size_t try_alignment, bool commit,
      bool allow_large, bool* is_large, bool* is_zero, void** addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:274,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - size
    - is_zero
    argTypes:
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: _mi_prim_commit
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - GetLastError
    - VirtualAlloc
    linkageType: ''
    returnType: int
    signature: int _mi_prim_commit(void* addr, size_t size, bool* is_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VirtualFree
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:280,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - size
    - needs_recommit
    argTypes:
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: _mi_prim_decommit
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - VirtualFree
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int _mi_prim_decommit(void* addr, size_t size, bool* needs_recommit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:286,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:287,1
    - Dst: VirtualUnlock
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:290,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: _mi_prim_reset
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - VirtualUnlock
    - GetLastError
    - mi_assert_internal
    - VirtualAlloc
    linkageType: ''
    returnType: int
    signature: int _mi_prim_reset(void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VirtualProtect
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:298,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - size
    - protect
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: _mi_prim_protect
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - VirtualProtect
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int _mi_prim_protect(void* addr, size_t size, bool protect)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: win_enable_large_os_pages
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:311,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:327,1
    - Dst: _mi_warning_message
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:334,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:341,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - hint_addr
    - size
    - numa_node
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 307
    functionDepth: 7
    functionLinenumber: 307
    functionLinenumberEnd: 346
    functionName: _mi_prim_alloc_huge_os_pagesx
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - _mi_warning_message
    - VirtualAlloc
    - win_enable_large_os_pages
    linkageType: ''
    returnType: void
    signature: void * _mi_prim_alloc_huge_os_pagesx(void* hint_addr, size_t size,
      int numa_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mi_prim_alloc_huge_os_pagesx
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:350,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hint_addr
    - size
    - numa_node
    - is_zero
    - addr
    argTypes:
    - void*
    - size_t
    - int
    - bool*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 8
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: _mi_prim_alloc_huge_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - _mi_prim_alloc_huge_os_pagesx
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int _mi_prim_alloc_huge_os_pages(void* hint_addr, size_t size, int
      numa_node, bool* is_zero, void** addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcessorNumber
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:371,1
    - Dst: pGetNumaProcessorNode
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 377
    functionName: _mi_prim_numa_node
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - pGetNumaProcessorNode
    - GetCurrentProcessorNumber
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetNumaHighestNodeNumber
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:381,1
    - Dst: GetNumaNodeProcessorMask
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 402
    functionName: _mi_prim_numa_node_count
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - GetNumaHighestNodeNumber
    - GetNumaNodeProcessorMask
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 418
    functionName: mi_to_msecs
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 0
    functionsReached:
    - QueryPerformanceFrequency
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t mi_to_msecs(LARGE_INTEGER t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:422,1
    - Dst: mi_to_msecs
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: _mi_prim_clock_now
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 2
    functionsReached:
    - mi_to_msecs
    - QueryPerformanceCounter
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_prim_clock_now(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ftime
    argTypes:
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: filetime_msecs
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t filetime_msecs(const FILETIME* ftime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessTimes
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:451,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:451,1
    - Dst: filetime_msecs
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:452,1
    - Dst: filetime_msecs
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:453,1
    - Dst: LoadLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:457,1
    - Dst: TEXT
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:457,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:459,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:465,1
    - Dst: pGetProcessMemoryInfo
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:467,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - mi_process_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 474
    functionName: _mi_prim_process_info
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - TEXT
    - pGetProcessMemoryInfo
    - LoadLibrary
    - memset
    - GetCurrentProcess
    - filetime_msecs
    - GetProcAddress
    - GetProcessTimes
    linkageType: ''
    returnType: void
    signature: void _mi_prim_process_info(mi_process_info_t* pinfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:484,1
    - Dst: GetStdHandle
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:490,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:491,1
    - Dst: _mi_strlen
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:493,1
    - Dst: WriteConsoleA
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:497,1
    - Dst: WriteFile
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:501,1
    - Dst: fputs
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:505,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 509
    functionName: _mi_prim_out_stderr
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - _mi_preloading
    - WriteFile
    - GetStdHandle
    - WriteConsoleA
    - GetConsoleScreenBufferInfo
    - fputs
    - _mi_strlen
    linkageType: ''
    returnType: void
    signature: void _mi_prim_out_stderr( const char* msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableA
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - name
    - result
    - result_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 524
    functionName: _mi_prim_getenv
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - GetEnvironmentVariableA
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_getenv(const char* name, char* result, size_t result_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RtlGenRandom
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: _mi_prim_random_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - RtlGenRandom
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_random_buf(void* buf, size_t buf_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:557,1
    - Dst: TEXT
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:557,1
    - Dst: GetProcAddress
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:559,1
    - Dst: pBCryptGenRandom
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 564
    functionName: _mi_prim_random_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - pBCryptGenRandom
    - TEXT
    - LoadLibrary
    - GetProcAddress
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_random_buf(void* buf, size_t buf_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_thread_done
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:588,1
    - Dst: FlsSetValue
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - PVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 585
    functionDepth: 7
    functionLinenumber: 585
    functionLinenumberEnd: 591
    functionName: mi_fls_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 0
    functionsReached:
    - _mi_thread_done
    - FlsSetValue
    linkageType: ''
    returnType: void
    signature: void mi_fls_done(PVOID value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlsAlloc
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: _mi_prim_thread_init_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - FlsAlloc
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_init_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlsFree
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: _mi_prim_thread_done_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached:
    - FlsFree
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_done_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:604,1
    - Dst: FlsSetValue
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: _mi_prim_thread_associate_default_heap
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 2
    functionsReached:
    - mi_assert_internal
    - FlsSetValue
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_associate_default_heap(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 613
    functionName: _mi_prim_thread_init_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_init_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 616
    functionName: _mi_prim_thread_done_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_done_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/windows/prim.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 620
    functionName: _mi_prim_thread_associate_default_heap
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/prim.c
    functionUses: 2
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_associate_default_heap(mi_heap_t* heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EventName
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: MCGEN_EVENT_ENABLED
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCGEN_EVENT_ENABLED(EventName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pContext
    - ','
    - EventName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: MCGEN_EVENT_ENABLED_FORCONTEXT
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCGEN_EVENT_ENABLED_FORCONTEXT(pContext, EventName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Context
    - ','
    - Descriptor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: MCGEN_ENABLE_CHECK
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCGEN_ENABLE_CHECK(Context, Descriptor)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - PMCGEN_TRACE_CONTEXT
    - UCHAR
    - ULONGLONG
    argTypes:
    - _In_
    - _In_
    - _In_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 298
    functionName: McGenLevelKeywordEnabled
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCEINLINE
    signature: "FORCEINLINE McGenLevelKeywordEnabled(\n    _In_ PMCGEN_TRACE_CONTEXT
      EnableInfo,\n    _In_ UCHAR Level,\n    _In_ ULONGLONG Keyword\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: McGenLevelKeywordEnabled
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - PMCGEN_TRACE_CONTEXT
    - PCEVENT_DESCRIPTOR EventDescriptor
    argTypes:
    - _In_
    - _In_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 316
    functionName: McGenEventEnabled
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached:
    - McGenLevelKeywordEnabled
    linkageType: ''
    returnType: FORCEINLINE
    signature: "FORCEINLINE McGenEventEnabled(\n    _In_ PMCGEN_TRACE_CONTEXT EnableInfo,\n
      \   _In_ PCEVENT_DESCRIPTOR EventDescriptor\n    )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UNREFERENCED_PARAMETER
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:370,1
    - Dst: UNREFERENCED_PARAMETER
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:371,1
    - Dst: McGenLevelKeywordEnabled
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:387,1
    - Dst: RtlZeroMemory
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:402,1
    - Dst: MCGEN_PRIVATE_ENABLE_CALLBACK_V2
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 7
    argNames:
    - SourceId
    - ControlCode
    - UCHAR
    - MatchAnyKeyword
    - MatchAllKeyword
    - PEVENT_FILTER_DESCRIPTOR
    - CallbackContext
    argTypes:
    - _In_
    - _In_
    - _In_
    - _In_
    - _In_
    - _In_opt_
    - _Inout_opt_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 426
    functionName: McGenControlCallbackV2
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached:
    - McGenLevelKeywordEnabled
    - RtlZeroMemory
    - MCGEN_PRIVATE_ENABLE_CALLBACK_V2
    - UNREFERENCED_PARAMETER
    linkageType: ''
    returnType: DECLSPEC_NOINLINE
    signature: "DECLSPEC_NOINLINE McGenControlCallbackV2(\n    _In_ LPCGUID SourceId,\n
      \   _In_ ULONG ControlCode,\n    _In_ UCHAR Level,\n    _In_ ULONGLONG MatchAnyKeyword,\n
      \   _In_ ULONGLONG MatchAllKeyword,\n    _In_opt_ PEVENT_FILTER_DESCRIPTOR FilterData,\n
      \   _Inout_opt_ PVOID CallbackContext\n    )"
  - 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: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: _mcgen_PASTE2
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mcgen_PASTE2(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: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: _mcgen_PASTE2_imp
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mcgen_PASTE2_imp(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: _mcgen_PASTE3
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mcgen_PASTE3(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: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: _mcgen_PASTE3_imp
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mcgen_PASTE3_imp(a, b, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNREFERENCED_PARAMETER
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:526,1
    - Dst: MCGEN_EVENTWRITETRANSFER
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - PMCGEN_TRACE_CONTEXT
    - PCEVENT_DESCRIPTOR
    - ActivityId
    - EventDataCount
    - EventData
    argTypes:
    - _In_
    - _In_
    - _In_opt_
    - _In_range_
    - _Pre_cap_*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 547
    functionName: McGenEventWrite
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached:
    - MCGEN_EVENTWRITETRANSFER
    - UNREFERENCED_PARAMETER
    linkageType: ''
    returnType: DECLSPEC_NOINLINE
    signature: "DECLSPEC_NOINLINE McGenEventWrite(\n    _In_ PMCGEN_TRACE_CONTEXT
      Context,\n    _In_ PCEVENT_DESCRIPTOR Descriptor,\n    _In_opt_ LPCGUID ActivityId,\n
      \   _In_range_(1, 128) ULONG EventDataCount,\n    _Pre_cap_(EventDataCount)
      EVENT_DATA_DESCRIPTOR* EventData\n    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MCGEN_EVENTREGISTER
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ProviderId
    - _mcgen_PENABLECALLBACK EnableCallback
    - CallbackContext
    - PREGHANDLE
    argTypes:
    - _In_
    - _In_opt_
    - _In_opt_
    - _Inout_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 604
    functionName: McGenEventRegister
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached:
    - MCGEN_EVENTREGISTER
    linkageType: ''
    returnType: DECLSPEC_NOINLINE
    signature: "DECLSPEC_NOINLINE McGenEventRegister(\n    _In_ LPCGUID ProviderId,\n
      \   _In_opt_ _mcgen_PENABLECALLBACK EnableCallback,\n    _In_opt_ PVOID CallbackContext,\n
      \   _Inout_ PREGHANDLE RegHandle\n    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MCGEN_EVENTUNREGISTER
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - PREGHANDLE
    argTypes:
    - _Inout_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 645
    functionName: McGenEventUnregister
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached:
    - MCGEN_EVENTUNREGISTER
    linkageType: ''
    returnType: DECLSPEC_NOINLINE
    signature: DECLSPEC_NOINLINE McGenEventUnregister(_Inout_ PREGHANDLE RegHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - EnableBits
    - ','
    - BitPosition
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 653
    functionName: _mcgen_EVENT_BIT_SET
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mcgen_EVENT_BIT_SET(EnableBits, BitPosition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - EnableBits
    - ','
    - BitPosition
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 656
    functionName: _mcgen_EVENT_BIT_SET
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mcgen_EVENT_BIT_SET(EnableBits, BitPosition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 722
    functionName: EventRegistermicrosoft_windows_mimalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventRegistermicrosoft_windows_mimalloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Guid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 730
    functionName: EventRegisterByGuidmicrosoft_windows_mimalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventRegisterByGuidmicrosoft_windows_mimalloc(Guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 742
    functionName: EventUnregistermicrosoft_windows_mimalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventUnregistermicrosoft_windows_mimalloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pContext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 775
    functionName: EventRegistermicrosoft_windows_mimalloc_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventRegistermicrosoft_windows_mimalloc_ForContext(pContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Guid
    - ','
    - pContext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 776
    functionName: EventRegisterByGuidmicrosoft_windows_mimalloc_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventRegisterByGuidmicrosoft_windows_mimalloc_ForContext(Guid, pContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pContext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 777
    functionName: EventUnregistermicrosoft_windows_mimalloc_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventUnregistermicrosoft_windows_mimalloc_ForContext(pContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pContext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 782
    functionName: microsoft_windows_mimallocHandle_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: microsoft_windows_mimallocHandle_ForContext(pContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RtlZeroMemory
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:791,1
    - Dst: McGenEventRegister
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pProviderId
    - McGenContext_microsoft_windows_mimalloc* pContext
    argTypes:
    - _In_
    - _Out_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 802
    functionName: _mcgen_PASTE2
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached:
    - RtlZeroMemory
    - McGenEventRegister
    linkageType: ''
    returnType: ULONG
    signature: "ULONG _mcgen_PASTE2(_mcgen_RegisterForContext_microsoft_windows_mimalloc_,
      MCGEN_EVENTREGISTER)(\n    _In_ LPCGUID pProviderId,\n    _Out_ McGenContext_microsoft_windows_mimalloc*
      pContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - McGenContext_microsoft_windows_mimalloc* pContext
    argTypes:
    - _In_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 811
    functionName: _mcgen_CheckContextType_microsoft_windows_mimalloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCEINLINE
    signature: 'FORCEINLINE *

      _mcgen_CheckContextType_microsoft_windows_mimalloc(_In_ McGenContext_microsoft_windows_mimalloc*
      pContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 819
    functionName: EventEnabledETW_MI_ALLOC
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventEnabledETW_MI_ALLOC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pContext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 820
    functionName: EventEnabledETW_MI_ALLOC_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventEnabledETW_MI_ALLOC_ForContext(pContext)
  - 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: 827
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: EventWriteETW_MI_ALLOC
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_ALLOC(Address, Size)
  - 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: 829
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: EventWriteETW_MI_ALLOC_AssumeEnabled
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_ALLOC_AssumeEnabled(Address, Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pContext
    - ','
    - Address
    - ','
    - Size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 832
    functionName: EventWriteETW_MI_ALLOC_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_ALLOC_ForContext(pContext, Address, Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pContext
    - ','
    - Address
    - ','
    - Size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 834
    functionName: EventWriteETW_MI_ALLOC_ForContextAssumeEnabled
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_ALLOC_ForContextAssumeEnabled(pContext, Address, Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 842
    functionName: EventEnabledETW_MI_FREE
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventEnabledETW_MI_FREE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pContext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 843
    functionName: EventEnabledETW_MI_FREE_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventEnabledETW_MI_FREE_ForContext(pContext)
  - 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: 850
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: EventWriteETW_MI_FREE
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_FREE(Address, Size)
  - 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: 852
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 852
    functionName: EventWriteETW_MI_FREE_AssumeEnabled
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_FREE_AssumeEnabled(Address, Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pContext
    - ','
    - Address
    - ','
    - Size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: EventWriteETW_MI_FREE_ForContext
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_FREE_ForContext(pContext, Address, Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pContext
    - ','
    - Address
    - ','
    - Size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 857
    functionName: EventWriteETW_MI_FREE_ForContextAssumeEnabled
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EventWriteETW_MI_FREE_ForContextAssumeEnabled(pContext, Address, Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EventDataDescCreate
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:893,1
    - Dst: EventDataDescCreate
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:895,1
    - Dst: McGenEventWrite
      Src: /src/cpython/Objects/mimalloc/prim/windows/etw.h:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - PMCGEN_TRACE_CONTEXT
    - PCEVENT_DESCRIPTOR
    - unsigned
    - unsigned
    argTypes:
    - _In_
    - _In_
    - _In_
    - _In_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 898
    functionName: _mcgen_PASTE2
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/windows/etw.h
    functionUses: 0
    functionsReached:
    - McGenEventWrite
    - EventDataDescCreate
    linkageType: ''
    returnType: ETW_INLINE
    signature: "ETW_INLINE _mcgen_PASTE2(McTemplateU0xx_, MCGEN_EVENTWRITETRANSFER)(\n
      \   _In_ PMCGEN_TRACE_CONTEXT Context,\n    _In_ PCEVENT_DESCRIPTOR Descriptor,\n
      \   _In_ const unsigned __int64  _Arg0,\n    _In_ const unsigned __int64  _Arg1\n
      \   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - mi_os_mem_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: _mi_prim_mem_init
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_mem_init( mi_os_mem_config_t* config )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:33,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: _mi_prim_free
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_free(void* addr, size_t size )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbrk
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:45,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: mi_memory_grow
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 0
    functionsReached:
    - memset
    - sbrk
    linkageType: ''
    returnType: void
    signature: void * mi_memory_grow( size_t size )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_wasm_memory_grow
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:54,1
    - Dst: _mi_divide_up
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:54,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:54,1
    - Dst: __builtin_wasm_memory_size
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:55,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: mi_memory_grow
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 0
    functionsReached:
    - __builtin_wasm_memory_size
    - _mi_os_page_size
    - __builtin_wasm_memory_grow
    - _mi_divide_up
    linkageType: ''
    returnType: void
    signature: void * mi_memory_grow( size_t size )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:70,1
    - Dst: mi_memory_grow
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:72,1
    - Dst: pthread_mutex_unlock
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:74,1
    - Dst: pthread_mutex_lock
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:84,1
    - Dst: mi_memory_grow
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:87,1
    - Dst: mi_align_up_ptr
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:89,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:90,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:90,1
    - Dst: mi_memory_grow
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:91,1
    - Dst: pthread_mutex_unlock
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:95,1
    - Dst: mi_align_up_ptr
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:98,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - size
    - try_alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 116
    functionName: mi_prim_mem_grow
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - mi_assert_internal
    - mi_memory_grow
    - _mi_align_up
    - pthread_mutex_unlock
    - _mi_os_page_size
    - mi_align_up_ptr
    linkageType: ''
    returnType: void
    signature: void * mi_prim_mem_grow(size_t size, size_t try_alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:120,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:120,1
    - Dst: mi_prim_mem_grow
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 7
    argNames:
    - size
    - try_alignment
    - commit
    - allow_large
    - is_large
    - is_zero
    - addr
    argTypes:
    - size_t
    - size_t
    - bool
    - bool
    - bool*
    - bool*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: _mi_prim_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - mi_prim_mem_grow
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_alloc(size_t size, size_t try_alignment, bool commit,
      bool allow_large, bool* is_large, bool* is_zero, void** addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:133,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - size
    - is_zero
    argTypes:
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: _mi_prim_commit
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_commit(void* addr, size_t size, bool* is_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:139,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - size
    - needs_recommit
    argTypes:
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: _mi_prim_decommit
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_decommit(void* addr, size_t size, bool* needs_recommit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:145,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: _mi_prim_reset
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_reset(void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:150,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:150,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - size
    - protect
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: _mi_prim_protect
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_protect(void* addr, size_t size, bool protect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:160,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:160,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - hint_addr
    - size
    - numa_node
    - is_zero
    - addr
    argTypes:
    - void*
    - size_t
    - int
    - bool*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: _mi_prim_alloc_huge_os_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int _mi_prim_alloc_huge_os_pages(void* hint_addr, size_t size, int
      numa_node, bool* is_zero, void** addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: _mi_prim_numa_node
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: _mi_prim_numa_node_count
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _mi_prim_numa_node_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:186,1
    - Dst: clock_gettime
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: _mi_prim_clock_now
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 2
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_prim_clock_now(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:198,1
    - Dst: clock
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:200,1
    - Dst: clock
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: _mi_prim_clock_now
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 2
    functionsReached:
    - clock
    linkageType: ''
    returnType: mi_msecs_t
    signature: mi_msecs_t _mi_prim_clock_now(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - mi_process_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: _mi_prim_process_info
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void _mi_prim_process_info(mi_process_info_t* pinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: _mi_prim_out_stderr
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void _mi_prim_out_stderr( const char* msg )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mi_preloading
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:235,1
    - Dst: getenv
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:236,1
    - Dst: _mi_strnlen
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:240,1
    - Dst: _mi_toupper
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:242,1
    - Dst: getenv
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:245,1
    - Dst: _mi_strnlen
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:247,1
    - Dst: _mi_strlcpy
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - name
    - result
    - result_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: _mi_prim_getenv
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached:
    - _mi_preloading
    - _mi_strnlen
    - getenv
    - _mi_strlcpy
    - _mi_toupper
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_getenv(const char* name, char* result, size_t result_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: _mi_prim_random_buf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _mi_prim_random_buf(void* buf, size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: _mi_prim_thread_init_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_init_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: _mi_prim_thread_done_auto_done
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_done_auto_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/wasi/prim.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: _mi_prim_thread_associate_default_heap
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/wasi/prim.c
    functionUses: 2
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void _mi_prim_thread_associate_default_heap(mi_heap_t* heap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:45,1
    - Dst: mi_is_in_heap_region
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:46,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - zone
    - p
    argTypes:
    - malloc_zone_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: zone_size
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_is_in_heap_region
    - MI_UNUSED
    - mi_usable_size
    linkageType: ''
    returnType: size_t
    signature: size_t zone_size(malloc_zone_t* zone, const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:51,1
    - Dst: mi_malloc
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - size
    argTypes:
    - malloc_zone_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: zone_malloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - mi_malloc
    linkageType: ''
    returnType: void
    signature: void * zone_malloc(malloc_zone_t* zone, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:56,1
    - Dst: mi_calloc
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zone
    - count
    - size
    argTypes:
    - malloc_zone_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: zone_calloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_calloc
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * zone_calloc(malloc_zone_t* zone, size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:61,1
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:62,1
    - Dst: _mi_os_page_size
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - size
    argTypes:
    - malloc_zone_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: zone_valloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_malloc_aligned
    - _mi_os_page_size
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * zone_valloc(malloc_zone_t* zone, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:66,1
    - Dst: mi_cfree
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - p
    argTypes:
    - malloc_zone_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: zone_free
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_cfree
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_free(malloc_zone_t* zone, void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:71,1
    - Dst: mi_realloc
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zone
    - p
    - newsize
    argTypes:
    - malloc_zone_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: zone_realloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_realloc
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * zone_realloc(malloc_zone_t* zone, void* p, size_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:76,1
    - Dst: mi_malloc_aligned
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zone
    - alignment
    - size
    argTypes:
    - malloc_zone_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: zone_memalign
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_malloc_aligned
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void * zone_memalign(malloc_zone_t* zone, size_t alignment, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: zone_destroy
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_destroy(malloc_zone_t* zone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zone_malloc
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - zone
    - size
    - ps
    - count
    argTypes:
    - malloc_zone_t*
    - size_t
    - void**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: zone_batch_malloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - zone_malloc
    linkageType: ''
    returnType: unsigned
    signature: unsigned zone_batch_malloc(malloc_zone_t* zone, size_t size, void**
      ps, unsigned count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zone_free
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - zone
    - ps
    - count
    argTypes:
    - malloc_zone_t*
    - void**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: zone_batch_free
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - zone_free
    linkageType: ''
    returnType: void
    signature: void zone_batch_free(malloc_zone_t* zone, void** ps, unsigned count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:102,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:102,1
    - Dst: mi_collect
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - zone
    - size
    argTypes:
    - malloc_zone_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: zone_pressure_relief
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_collect
    - MI_UNUSED
    linkageType: ''
    returnType: size_t
    signature: size_t zone_pressure_relief(malloc_zone_t* zone, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:108,1
    - Dst: zone_free
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zone
    - p
    - size
    argTypes:
    - malloc_zone_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: zone_free_definite_size
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - zone_free
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_free_definite_size(malloc_zone_t* zone, void* p, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:113,1
    - Dst: mi_is_in_heap_region
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - p
    argTypes:
    - malloc_zone_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: zone_claimed_address
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_is_in_heap_region
    - MI_UNUSED
    linkageType: ''
    returnType: boolean_t
    signature: boolean_t zone_claimed_address(malloc_zone_t* zone, void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:128,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:128,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:128,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:128,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:129,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - task
    - p
    - type_mask
    - zone_address
    - reader
    - recorder
    argTypes:
    - task_t
    - void*
    - unsigned
    - vm_address_t
    - memory_reader_t
    - vm_range_recorder_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: intro_enumerator
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: kern_return_t
    signature: "kern_return_t intro_enumerator(task_t task, void* p,\n                            unsigned
      type_mask, vm_address_t zone_address,\n                            memory_reader_t
      reader,\n                            vm_range_recorder_t recorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:134,1
    - Dst: mi_good_size
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - size
    argTypes:
    - malloc_zone_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: intro_good_size
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - mi_good_size
    linkageType: ''
    returnType: size_t
    signature: size_t intro_good_size(malloc_zone_t* zone, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: intro_check
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: boolean_t
    signature: boolean_t intro_check(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:144,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:144,1
    - Dst: mi_stats_print
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - zone
    - verbose
    argTypes:
    - malloc_zone_t*
    - boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 10
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: intro_print
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - mi_stats_print
    linkageType: ''
    returnType: void
    signature: void intro_print(malloc_zone_t* zone, boolean_t verbose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:149,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - p
    argTypes:
    - malloc_zone_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: intro_log
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void intro_log(malloc_zone_t* zone, void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: intro_force_lock
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void intro_force_lock(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: intro_force_unlock
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void intro_force_unlock(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - zone
    - stats
    argTypes:
    - malloc_zone_t*
    - malloc_statistics_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: intro_statistics
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void intro_statistics(malloc_zone_t* zone, malloc_statistics_t* stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: intro_zone_locked
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: boolean_t
    signature: boolean_t intro_zone_locked(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:257,1
    - Dst: malloc_zone_register
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: mi_get_default_zone
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - malloc_zone_register
    - mi_unlikely
    linkageType: ''
    returnType: malloc_zone_t
    signature: malloc_zone_t * mi_get_default_zone(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:271,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:271,1
    - Dst: mi_get_default_zone
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - size
    - flags
    argTypes:
    - vm_size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: mi_malloc_create_zone
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - mi_get_default_zone
    linkageType: ''
    returnType: malloc_zone_t
    signature: malloc_zone_t * mi_malloc_create_zone(vm_size_t size, unsigned flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_get_default_zone
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: mi_malloc_default_zone
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_get_default_zone
    linkageType: ''
    returnType: malloc_zone_t
    signature: malloc_zone_t * mi_malloc_default_zone (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_get_default_zone
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: mi_malloc_default_purgeable_zone
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - mi_get_default_zone
    linkageType: ''
    returnType: malloc_zone_t
    signature: malloc_zone_t * mi_malloc_default_purgeable_zone(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: mi_malloc_destroy_zone
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_malloc_destroy_zone(malloc_zone_t* zone)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:289,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - task
    - mr
    - addresses
    - count
    argTypes:
    - task_t
    - memory_reader_t
    - vm_address_t**
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: mi_malloc_get_all_zones
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: kern_return_t
    signature: kern_return_t mi_malloc_get_all_zones (task_t task, memory_reader_t
      mr, vm_address_t** addresses, unsigned* count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: mi_malloc_get_zone_name
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * mi_malloc_get_zone_name(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:300,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - name
    argTypes:
    - malloc_zone_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: mi_malloc_set_zone_name
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_malloc_set_zone_name(malloc_zone_t* zone, const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: mi_malloc_jumpstart
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: int
    signature: int mi_malloc_jumpstart(uintptr_t cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: mi__malloc_fork_prepare
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi__malloc_fork_prepare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: mi__malloc_fork_parent
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi__malloc_fork_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: mi__malloc_fork_child
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mi__malloc_fork_child(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: mi_malloc_printf
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void mi_malloc_printf(const char* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: zone_check
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool zone_check(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:328,1
    - Dst: mi_get_default_zone
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: zone_from_ptr
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    - mi_get_default_zone
    linkageType: ''
    returnType: malloc_zone_t
    signature: malloc_zone_t * zone_from_ptr(const void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:333,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - p
    argTypes:
    - malloc_zone_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: zone_log
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_log(malloc_zone_t* zone, void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:337,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zone
    - b
    argTypes:
    - malloc_zone_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: zone_print
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_print(malloc_zone_t* zone, bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: zone_print_ptr_info
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_print_ptr_info(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: zone_register
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 1
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_register(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zone
    argTypes:
    - malloc_zone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: zone_unregister
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - MI_UNUSED
    linkageType: ''
    returnType: void
    signature: void zone_unregister(malloc_zone_t* zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - oldfun
    - ','
    - newfun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: MI_INTERPOSE_FUN
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_INTERPOSE_FUN(oldfun,newfun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: MI_INTERPOSE_MI
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_INTERPOSE_MI(fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: MI_INTERPOSE_ZONE
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MI_INTERPOSE_ZONE(fun)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc_get_all_zones
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:408,1
    - Dst: malloc_default_zone
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 416
    functionName: mi_get_default_zone
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 4
    functionsReached:
    - malloc_default_zone
    - malloc_get_all_zones
    linkageType: ''
    returnType: malloc_zone_t
    signature: malloc_zone_t * mi_get_default_zone(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: constructor
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:419,1
    - Dst: malloc_default_purgeable_zone
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:429,1
    - Dst: malloc_zone_register
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:435,1
    - Dst: mi_get_default_zone
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:438,1
    - Dst: malloc_zone_unregister
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:442,1
    - Dst: malloc_zone_register
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:445,1
    - Dst: malloc_zone_unregister
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:451,1
    - Dst: malloc_zone_register
      Src: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 455
    functionName: _mi_macos_override_malloc
    functionSourceFile: /src/cpython/Objects/mimalloc/prim/osx/alloc-override-zone.c
    functionUses: 0
    functionsReached:
    - malloc_zone_unregister
    - mi_get_default_zone
    - malloc_default_purgeable_zone
    - malloc_zone_register
    - constructor
    linkageType: ''
    returnType: void
    signature: void _mi_macos_override_malloc(void)
  - 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/cpython/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/cpython/Objects/stringlib/localeutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t GroupGenerator_next(GroupGenerator *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/stringlib/localeutil.h:55,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/stringlib/localeutil.h:56,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/stringlib/localeutil.h:66,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/stringlib/localeutil.h:78,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/stringlib/localeutil.h:90,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/stringlib/localeutil.h:91,1
    - Dst: unicode_fill
      Src: /src/cpython/Objects/stringlib/localeutil.h:92,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 10
    argNames:
    - writer
    - buffer_pos
    - digits
    - digits_pos
    - n_chars
    - n_zeros
    - thousands_sep
    - thousands_sep_len
    - maxchar
    - forward
    argTypes:
    - _PyUnicodeWriter*
    - Py_ssize_t*
    - PyObject*
    - Py_ssize_t*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_UCS4*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: InsertThousandsGrouping_fill
    functionSourceFile: /src/cpython/Objects/stringlib/localeutil.h
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - Py_MAX
    - _PyUnicode_FastCopyCharacters
    - unicode_fill
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_DATA
    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, int forward)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/eq.h:9,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/eq.h:10,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/stringlib/eq.h:14,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/stringlib/eq.h:15,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/stringlib/eq.h:19,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/stringlib/eq.h:20,1
    - Dst: memcmp
      Src: /src/cpython/Objects/stringlib/eq.h:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 22
    functionName: unicode_eq
    functionSourceFile: /src/cpython/Objects/stringlib/eq.h
    functionUses: 8
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - memcmp
    linkageType: ''
    returnType: void
    signature: void unicode_eq(PyObject *str1, PyObject *str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: IS_CONTINUATION_BYTE
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CONTINUATION_BYTE(ch)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/stringlib/codecs.h:42,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:112,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/codecs.h:117,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:136,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:144,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:161,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/codecs.h:167,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:186,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:193,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:200,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:214,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/cpython/Objects/stringlib/codecs.h:218,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/codecs.h:224,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 > 0x007F) && (ch <= 0x07FF))
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/cpython/Objects/stringlib/codecs.h
    - condition: ((ch > 0xFFFF) && (ch <= 0x10FFFF))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Objects/stringlib/codecs.h
    - condition: ((ch > 0x07FF) && (ch <= 0xFFFF))
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/cpython/Objects/stringlib/codecs.h
    constantsTouched: []
    func_position:
      end: 252
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 252
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - IS_CONTINUATION_BYTE
    - assert
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(utf8_decode)(const char **inptr, const char *end,\n
      \                      STRINGLIB_CHAR *dest,\n                       Py_ssize_t
      *outpos)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/stringlib/codecs.h:317,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:323,1
    - Dst: memset
      Src: /src/cpython/Objects/stringlib/codecs.h:332,1
    - Dst: backslashreplace
      Src: /src/cpython/Objects/stringlib/codecs.h:352,1
    - Dst: xmlcharrefreplace
      Src: /src/cpython/Objects/stringlib/codecs.h:362,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/codecs.h:381,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/stringlib/codecs.h:384,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/cpython/Objects/stringlib/codecs.h:392,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/stringlib/codecs.h:404,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/cpython/Objects/stringlib/codecs.h:405,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/stringlib/codecs.h:406,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/codecs.h:407,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/stringlib/codecs.h:411,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/stringlib/codecs.h:412,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/cpython/Objects/stringlib/codecs.h:418,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/stringlib/codecs.h:419,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/codecs.h:420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/stringlib/codecs.h:425,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/codecs.h:432,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (startpos < endpos)
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/cpython/Objects/stringlib/codecs.h
    - condition: (writer->overallocate || i == size)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Objects/stringlib/codecs.h
    constantsTouched: []
    func_position:
      end: 433
      start: 313
    functionDepth: 9
    functionLinenumber: 313
    functionLinenumberEnd: 433
    functionName: if
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 2
    functionsReached:
    - Py_CLEAR
    - _Py_GetErrorHandler
    - _PyBytesWriter_WriteBytes
    - memset
    - _PyBytesWriter_Prepare
    - PyBytes_Check
    - xmlcharrefreplace
    - PyUnicode_IS_ASCII
    - Py_UNICODE_IS_SURROGATE
    - PyBytes_GET_SIZE
    - unicode_encode_call_errorhandler
    - raise_encode_exception
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - assert
    - backslashreplace
    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: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: SWAB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB(value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/stringlib/codecs.h:520,1
    - Dst: SWAB
      Src: /src/cpython/Objects/stringlib/codecs.h:532,1
    - Dst: SWAB
      Src: /src/cpython/Objects/stringlib/codecs.h:537,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:571,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:582,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:588,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/stringlib/codecs.h:590,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: 612
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 612
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - SWAB
    - Py_UNICODE_IS_LOW_SURROGATE
    - _Py_IS_ALIGNED
    - Py_UNICODE_IS_SURROGATE
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    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/cpython/Objects/stringlib/codecs.h:630,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:643,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:645,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:646,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:647,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:648,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:653,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:662,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:687,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:688,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:698,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:706,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:707,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:708,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:709,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:716,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:722,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:723,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:724,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:725,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: 740
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 740
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - Py_UNICODE_HIGH_SURROGATE
    - Py_UNICODE_LOW_SURROGATE
    - SWAB2
    - _Py_SIZE_ROUND_DOWN
    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: 643
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 643
    functionName: SWAB2
    functionSourceFile: /src/cpython/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: 697
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 697
    functionName: SWAB2
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB2(CH)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bswap32
      Src: /src/cpython/Objects/stringlib/codecs.h:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - STRINGLIB_CHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 755
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - _Py_bswap32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t STRINGLIB(SWAB4)(STRINGLIB_CHAR ch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:766,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:786,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:794,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:804,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:805,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:806,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:807,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:813,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:818,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - in
    - len
    - outptr
    - native_ordering
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - uint32_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 828
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 1
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - STRINGLIB
    - _Py_SIZE_ROUND_DOWN
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(utf32_encode)(const STRINGLIB_CHAR *in,\n                        Py_ssize_t
      len,\n                        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: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: AutoNumber_Init
    functionSourceFile: /src/cpython/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: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: SubString_init
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: SubString_new_object
    functionSourceFile: /src/cpython/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: Py_GetConstant
      Src: /src/cpython/Objects/stringlib/unicode_format.h:76,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 9
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: SubString_new_object_or_empty
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - SubString_new_object
    linkageType: ''
    returnType: void
    signature: void SubString_new_object_or_empty(SubString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:89,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - field_name_is_empty
    argTypes:
    - AutoNumberState
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: autonumber_state_error
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:123,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:123,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 140
    functionName: get_integer
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_UNICODE_TODECIMAL
    - PyUnicode_READ_CHAR
    - PyErr_Format
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_integer(const SubString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:151,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 9
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: getattr
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 3
    functionsReached:
    - PyObject_GetAttr
    - SubString_new_object
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getattr(PyObject *obj, SubString *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: getitem_sequence
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:171,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: getitem_idx
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:184,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 9
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: getitem_str
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - SubString_new_object
    - Py_DECREF
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getitem_str(PyObject *obj, SubString *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:207,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: 210
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: FieldNameIterator_init
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FieldNameIterator*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 237
    functionName: _FieldNameIterator_attr
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:250,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FieldNameIterator*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: _FieldNameIterator_item
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_READ_CHAR
    linkageType: ''
    returnType: int
    signature: int _FieldNameIterator_item(FieldNameIterator *self, SubString *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:281,1
    - Dst: _FieldNameIterator_attr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:284,1
    - Dst: _FieldNameIterator_item
      Src: /src/cpython/Objects/stringlib/unicode_format.h:290,1
    - Dst: get_integer
      Src: /src/cpython/Objects/stringlib/unicode_format.h:292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/unicode_format.h:293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:298,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:305,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: 310
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 310
    functionName: FieldNameIterator_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyUnicode_READ_CHAR
    - _FieldNameIterator_attr
    - _FieldNameIterator_item
    - 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/cpython/Objects/stringlib/unicode_format.h:331,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:345,1
    - Dst: FieldNameIterator_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:346,1
    - Dst: get_integer
      Src: /src/cpython/Objects/stringlib/unicode_format.h:349,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/unicode_format.h:350,1
    - Dst: autonumber_state_error
      Src: /src/cpython/Objects/stringlib/unicode_format.h:378,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: 388
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 388
    functionName: field_name_split
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - FieldNameIterator_init
    - PyErr_Occurred
    - autonumber_state_error
    - PyUnicode_READ_CHAR
    - SubString_init
    - 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/cpython/Objects/stringlib/unicode_format.h:408,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:415,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/stringlib/unicode_format.h:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:421,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:439,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:445,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:447,1
    - Dst: FieldNameIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:456,1
    - Dst: getattr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:462,1
    - Dst: getitem_str
      Src: /src/cpython/Objects/stringlib/unicode_format.h:466,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/stringlib/unicode_format.h:468,1
    - Dst: getitem_sequence
      Src: /src/cpython/Objects/stringlib/unicode_format.h:469,1
    - Dst: getitem_idx
      Src: /src/cpython/Objects/stringlib/unicode_format.h:472,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:483,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 4
    argNames:
    - input
    - args
    - kwargs
    - auto_number
    argTypes:
    - SubString*
    - PyObject*
    - PyObject*
    - AutoNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 396
    functionDepth: 10
    functionLinenumber: 396
    functionLinenumberEnd: 485
    functionName: get_field_object
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - getattr
    - Py_XDECREF
    - field_name_split
    - Py_DECREF
    - PySequence_Check
    - getitem_sequence
    - PyErr_SetString
    - PyErr_SetObject
    - getitem_idx
    - PyObject_GetItem
    - Py_SETREF
    - SubString_new_object
    - getitem_str
    - PyErr_Format
    - 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/cpython/Objects/stringlib/unicode_format.h:510,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/stringlib/unicode_format.h:512,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/stringlib/unicode_format.h:514,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/stringlib/unicode_format.h:516,1
    - Dst: formatter
      Src: /src/cpython/Objects/stringlib/unicode_format.h:522,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/stringlib/unicode_format.h:530,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/stringlib/unicode_format.h:534,1
    - Dst: PyObject_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:538,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:543,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:548,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:549,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - fieldobj
    - format_spec
    - writer
    argTypes:
    - PyObject*
    - SubString*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 499
    functionDepth: 8
    functionLinenumber: 499
    functionLinenumberEnd: 551
    functionName: render_field
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Format
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - PyUnicode_CheckExact
    - Py_GetConstant
    - _PyUnicodeWriter_WriteStr
    - PyLong_CheckExact
    - PyUnicode_Substring
    - formatter
    linkageType: ''
    returnType: int
    signature: int render_field(PyObject *fieldobj, SubString *format_spec, _PyUnicodeWriter
      *writer)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:565,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:572,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:574,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:578,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:601,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:606,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:613,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:623,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:640,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:644,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: 649
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 649
    functionName: parse_field
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - SubString_init
    - PyUnicode_READ_CHAR
    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/cpython/Objects/stringlib/unicode_format.h:668,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: 670
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 670
    functionName: MarkupIterator_init
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:687,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:688,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:689,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:709,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:724,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:726,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:731,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:736,1
    - Dst: parse_field
      Src: /src/cpython/Objects/stringlib/unicode_format.h:756,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: 760
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 760
    functionName: MarkupIterator_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - SubString_init
    - parse_field
    - PyUnicode_READ_CHAR
    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/cpython/Objects/stringlib/unicode_format.h:771,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/stringlib/unicode_format.h:773,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/stringlib/unicode_format.h:775,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:781,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - conversion
    argTypes:
    - PyObject*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 790
    functionName: do_conversion
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyObject_ASCII
    - PyObject_Repr
    - PyObject_Str
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_conversion(PyObject *obj, Py_UCS4 conversion)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_field_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:818,1
    - Dst: do_conversion
      Src: /src/cpython/Objects/stringlib/unicode_format.h:823,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:828,1
    - Dst: build_string
      Src: /src/cpython/Objects/stringlib/unicode_format.h:834,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:842,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:842,1
    - Dst: render_field
      Src: /src/cpython/Objects/stringlib/unicode_format.h:848,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:854,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:855,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    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: 858
      start: 805
    functionDepth: 11
    functionLinenumber: 805
    functionLinenumberEnd: 858
    functionName: output_markup
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - build_string
    - get_field_object
    - PyUnicode_GET_LENGTH
    - Py_SETREF
    - render_field
    - do_conversion
    - SubString_init
    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/cpython/Objects/stringlib/unicode_format.h:879,1
    - Dst: MarkupIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:880,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/stringlib/unicode_format.h:887,1
    - Dst: output_markup
      Src: /src/cpython/Objects/stringlib/unicode_format.h:895,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: 902
      start: 866
    functionDepth: 12
    functionLinenumber: 866
    functionLinenumberEnd: 902
    functionName: do_markup
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteSubstring
    - MarkupIterator_next
    - MarkupIterator_init
    - output_markup
    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/cpython/Objects/stringlib/unicode_format.h:917,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:922,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:924,1
    - Dst: do_markup
      Src: /src/cpython/Objects/stringlib/unicode_format.h:926,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/stringlib/unicode_format.h:928,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/stringlib/unicode_format.h:932,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: 933
      start: 909
    functionDepth: 13
    functionLinenumber: 909
    functionLinenumberEnd: 933
    functionName: build_string
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_Init
    - PyErr_SetString
    - do_markup
    - _PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuild_string(SubString *input, PyObject *args, PyObject
      *kwargs,\n             int recursion_depth, AutoNumber *auto_number)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AutoNumber_Init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:952,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:953,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:953,1
    - Dst: build_string
      Src: /src/cpython/Objects/stringlib/unicode_format.h:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 940
    functionDepth: 14
    functionLinenumber: 940
    functionLinenumberEnd: 955
    functionName: do_string_format
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - SubString_init
    - AutoNumber_Init
    - build_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_string_format(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_string_format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 957
    functionDepth: 15
    functionLinenumber: 957
    functionLinenumberEnd: 961
    functionName: do_string_format_map
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/unicode_format.h:983,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/stringlib/unicode_format.h:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 985
    functionName: formatteriter_dealloc
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void formatteriter_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MarkupIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1005,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1011,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1022,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1026,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1042,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1045,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1050,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1053,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1054,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1055,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1056,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (0 <= result && result <= 2)
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/cpython/Objects/stringlib/unicode_format.h
    constantsTouched: []
    func_position:
      end: 1059
      start: 995
    functionDepth: 9
    functionLinenumber: 995
    functionLinenumberEnd: 1059
    functionName: formatteriter_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - MarkupIterator_next
    - Py_NewRef
    - SubString_new_object
    - PyUnicode_FromKindAndData
    - PyTuple_Pack
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatteriter_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1107,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1108,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1108,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1112,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1117,1
    - Dst: MarkupIterator_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1120,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1122
    functionName: formatter_parser
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - MarkupIterator_init
    - PyObject_New
    - Py_NewRef
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatter_parser(PyObject *Py_UNUSED(module), PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1144,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1146
    functionName: fieldnameiter_dealloc
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void fieldnameiter_dealloc(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FieldNameIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1163,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1173,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1179,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1181,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1189,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1154
    functionDepth: 9
    functionLinenumber: 1154
    functionLinenumberEnd: 1193
    functionName: fieldnameiter_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromSsize_t
    - SubString_new_object
    - PyBool_FromLong
    - FieldNameIterator_next
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fieldnameiter_next(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1248,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1249,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1249,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1253,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1259,1
    - Dst: field_name_split
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1263,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1263,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1269,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1272,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1277,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1280,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1238
    functionDepth: 9
    functionLinenumber: 1238
    functionLinenumberEnd: 1283
    functionName: formatter_field_name_split
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - field_name_split
    - PyObject_New
    - PyLong_FromSsize_t
    - Py_NewRef
    - SubString_new_object
    - PyErr_Format
    - PyUnicode_Check
    - PyTuple_Pack
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatter_field_name_split(PyObject *Py_UNUSED(module), 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/cpython/Objects/stringlib/asciilib.h
    functionUses: 1
    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: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: STRINGLIB_NEW
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/stringdefs.h
    functionUses: 1
    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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: STRINGLIB_ISLINEBREAK
    functionSourceFile: /src/cpython/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: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: STRINGLIB_ISDECIMAL
    functionSourceFile: /src/cpython/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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: STRINGLIB_TODECIMAL
    functionSourceFile: /src/cpython/Objects/stringlib/stringdefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_TODECIMAL(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/transmogrify.h:19,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/transmogrify.h:20,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:23,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:23,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: return_self
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_CHECK_EXACT
    - STRINGLIB_LEN
    - Py_NewRef
    - STRINGLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      return_self(PyObject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:47,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:47,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:48,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:74,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:79,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:81,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/transmogrify.h:100,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 2
    argNames:
    - self
    - tabsize
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 102
    functionName: stringlib_expandtabs_impl
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - 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/cpython/Objects/stringlib/transmogrify.h:115,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:118,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:118,1
    - Dst: memset
      Src: /src/cpython/Objects/stringlib/transmogrify.h:121,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:121,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:122,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:122,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:123,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:124,1
    - Dst: memset
      Src: /src/cpython/Objects/stringlib/transmogrify.h:126,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:126,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:126,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: 131
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: pad
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 14
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - memset
    - STRINGLIB_NEW
    - memcpy
    - return_self
    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/cpython/Objects/stringlib/transmogrify.h:149,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:150,1
    - Dst: pad
      Src: /src/cpython/Objects/stringlib/transmogrify.h:153,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: stringlib_ljust_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h:173,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:174,1
    - Dst: pad
      Src: /src/cpython/Objects/stringlib/transmogrify.h:177,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: stringlib_rjust_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h:199,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:200,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:203,1
    - Dst: pad
      Src: /src/cpython/Objects/stringlib/transmogrify.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: stringlib_center_impl
    functionSourceFile: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h:229,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:230,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:233,1
    - Dst: pad
      Src: /src/cpython/Objects/stringlib/transmogrify.h:235,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - 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/cpython/Objects/stringlib/transmogrify.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: findchar(target, target_len, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: findchar
      Src: /src/cpython/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/cpython/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/cpython/Objects/stringlib/transmogrify.h:289,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/transmogrify.h:303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/transmogrify.h:305,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:310,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:315,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:316,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:320,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:326,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 345
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 345
    functionName: stringlib_replace_interleave
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - PyErr_SetString
    - STRINGLIB_NEW
    - memcpy
    - 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/cpython/Objects/stringlib/transmogrify.h:359,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:360,1
    - Dst: countchar
      Src: /src/cpython/Objects/stringlib/transmogrify.h:362,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:364,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/transmogrify.h:368,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:370,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:374,1
    - Dst: findchar
      Src: /src/cpython/Objects/stringlib/transmogrify.h:379,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:382,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/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/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - findchar
    - countchar
    - memcpy
    - return_self
    - assert
    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/cpython/Objects/stringlib/transmogrify.h:404,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:405,1
    - Dst: stringlib_count
      Src: /src/cpython/Objects/stringlib/transmogrify.h:407,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:413,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/transmogrify.h:417,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:419,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:423,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/stringlib/transmogrify.h:428,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:435,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 442
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 442
    functionName: stringlib_replace_delete_substring
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - stringlib_find
    - STRINGLIB_LEN
    - stringlib_count
    - STRINGLIB_NEW
    - memcpy
    - return_self
    - 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/cpython/Objects/stringlib/transmogrify.h:456,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:457,1
    - Dst: findchar
      Src: /src/cpython/Objects/stringlib/transmogrify.h:459,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:463,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:467,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:471,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:472,1
    - Dst: findchar
      Src: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - findchar
    - memcpy
    - return_self
    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/cpython/Objects/stringlib/transmogrify.h:505,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:506,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/stringlib/transmogrify.h:508,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:513,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:517,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:521,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:522,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:526,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/stringlib/transmogrify.h:531,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - stringlib_find
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - memcpy
    - return_self
    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/cpython/Objects/stringlib/transmogrify.h:556,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:557,1
    - Dst: countchar
      Src: /src/cpython/Objects/stringlib/transmogrify.h:559,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:562,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/transmogrify.h:567,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/transmogrify.h:569,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:574,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:578,1
    - Dst: findchar
      Src: /src/cpython/Objects/stringlib/transmogrify.h:583,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:589,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:594,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:596,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 605
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 605
    functionName: stringlib_replace_single_character
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - PyErr_SetString
    - STRINGLIB_NEW
    - findchar
    - countchar
    - memcpy
    - return_self
    - assert
    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/cpython/Objects/stringlib/transmogrify.h:620,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/transmogrify.h:621,1
    - Dst: stringlib_count
      Src: /src/cpython/Objects/stringlib/transmogrify.h:623,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:629,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/transmogrify.h:634,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/transmogrify.h:636,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/transmogrify.h:641,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/transmogrify.h:645,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/stringlib/transmogrify.h:650,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:658,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:663,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/transmogrify.h:665,1
    - Dst: memcpy
      Src: /src/cpython/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/cpython/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 674
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 674
    functionName: stringlib_replace_substring
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_STR
    - stringlib_find
    - STRINGLIB_LEN
    - PyErr_SetString
    - stringlib_count
    - STRINGLIB_NEW
    - memcpy
    - return_self
    - 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/cpython/Objects/stringlib/transmogrify.h:683,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:685,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:691,1
    - Dst: return_self
      Src: /src/cpython/Objects/stringlib/transmogrify.h:698,1
    - Dst: stringlib_replace_interleave
      Src: /src/cpython/Objects/stringlib/transmogrify.h:703,1
    - Dst: stringlib_replace_delete_single_character
      Src: /src/cpython/Objects/stringlib/transmogrify.h:709,1
    - Dst: stringlib_replace_delete_substring
      Src: /src/cpython/Objects/stringlib/transmogrify.h:712,1
    - Dst: stringlib_replace_single_character_in_place
      Src: /src/cpython/Objects/stringlib/transmogrify.h:721,1
    - Dst: stringlib_replace_substring_in_place
      Src: /src/cpython/Objects/stringlib/transmogrify.h:724,1
    - Dst: stringlib_replace_single_character
      Src: /src/cpython/Objects/stringlib/transmogrify.h:731,1
    - Dst: stringlib_replace_substring
      Src: /src/cpython/Objects/stringlib/transmogrify.h:735,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    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: 738
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 738
    functionName: stringlib_replace
    functionSourceFile: /src/cpython/Objects/stringlib/transmogrify.h
    functionUses: 2
    functionsReached:
    - stringlib_replace_single_character_in_place
    - stringlib_replace_single_character
    - STRINGLIB_LEN
    - stringlib_replace_substring_in_place
    - stringlib_replace_delete_substring
    - stringlib_replace_substring
    - stringlib_replace_delete_single_character
    - stringlib_replace_interleave
    - return_self
    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/cpython/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/cpython/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/cpython/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/cpython/Objects/stringlib/split.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIX_PREALLOC_SIZE(list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/stringlib/split.h:59,1
    - Dst: PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:59,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/cpython/Objects/stringlib/split.h:67,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/cpython/Objects/stringlib/split.h:71,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/split.h:74,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/split.h:76,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/stringlib/split.h:77,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:82,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/cpython/Objects/stringlib/split.h:88,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:91,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:93,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: 4
    functionLinenumber: 54
    functionLinenumberEnd: 99
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/split.h
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_INCREF
    - SPLIT_ADD
    - FIX_PREALLOC_SIZE
    - Py_DECREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - STRINGLIB_ISSPACE
    - 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/cpython/Objects/stringlib/split.h:108,1
    - Dst: PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:108,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:119,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/split.h:126,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/split.h:128,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/stringlib/split.h:129,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:134,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: 4
    functionLinenumber: 102
    functionLinenumberEnd: 142
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/split.h
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_INCREF
    - SPLIT_ADD
    - FIX_PREALLOC_SIZE
    - Py_DECREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - 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/cpython/Objects/stringlib/split.h:154,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/split.h:158,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/stringlib/split.h:160,1
    - Dst: PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:160,1
    - Dst: FASTSEARCH
      Src: /src/cpython/Objects/stringlib/split.h:166,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:170,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/split.h:174,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/split.h:176,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/stringlib/split.h:177,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:182,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:184,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: 4
    functionLinenumber: 145
    functionLinenumberEnd: 190
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/split.h
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_INCREF
    - SPLIT_ADD
    - FIX_PREALLOC_SIZE
    - Py_DECREF
    - STRINGLIB_CHECK_EXACT
    - PyErr_SetString
    - PyList_SET_ITEM
    - FASTSEARCH
    - STRINGLIB
    - 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/cpython/Objects/stringlib/split.h:198,1
    - Dst: PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:198,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/cpython/Objects/stringlib/split.h:206,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/cpython/Objects/stringlib/split.h:210,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/split.h:213,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/split.h:215,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/stringlib/split.h:216,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:221,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/cpython/Objects/stringlib/split.h:227,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:230,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:232,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Objects/stringlib/split.h:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: 4
    functionLinenumber: 193
    functionLinenumberEnd: 240
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/split.h
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_INCREF
    - SPLIT_ADD
    - FIX_PREALLOC_SIZE
    - PyList_Reverse
    - Py_DECREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - STRINGLIB_ISSPACE
    - 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/cpython/Objects/stringlib/split.h:249,1
    - Dst: PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:249,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:259,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/split.h:266,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/split.h:268,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/stringlib/split.h:269,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:274,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:276,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Objects/stringlib/split.h:277,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: 4
    functionLinenumber: 243
    functionLinenumberEnd: 284
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/split.h
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_INCREF
    - SPLIT_ADD
    - FIX_PREALLOC_SIZE
    - PyList_Reverse
    - Py_DECREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - 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/cpython/Objects/stringlib/split.h:296,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/split.h:300,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/stringlib/split.h:302,1
    - Dst: PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:302,1
    - Dst: FASTSEARCH
      Src: /src/cpython/Objects/stringlib/split.h:308,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:311,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/split.h:315,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/split.h:317,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/stringlib/split.h:318,1
    - Dst: SPLIT_ADD
      Src: /src/cpython/Objects/stringlib/split.h:323,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/cpython/Objects/stringlib/split.h:325,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Objects/stringlib/split.h:326,1
    - Dst: Py_DECREF
      Src: /src/cpython/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: 4
    functionLinenumber: 287
    functionLinenumberEnd: 333
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/split.h
    functionUses: 3
    functionsReached:
    - PyList_New
    - Py_INCREF
    - SPLIT_ADD
    - FIX_PREALLOC_SIZE
    - PyList_Reverse
    - Py_DECREF
    - STRINGLIB_CHECK_EXACT
    - PyErr_SetString
    - PyList_SET_ITEM
    - FASTSEARCH
    - STRINGLIB
    - 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/cpython/Objects/stringlib/split.h:350,1
    - Dst: STRINGLIB_ISLINEBREAK
      Src: /src/cpython/Objects/stringlib/split.h:360,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/split.h:374,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/stringlib/split.h:376,1
    - Dst: SPLIT_APPEND
      Src: /src/cpython/Objects/stringlib/split.h:381,1
    - Dst: Py_DECREF
      Src: /src/cpython/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/cpython/Objects/stringlib/split.h
    functionUses: 3
    functionsReached:
    - PyList_New
    - Py_DECREF
    - STRINGLIB_CHECK_EXACT
    - PyList_Append
    - SPLIT_APPEND
    - STRINGLIB_ISLINEBREAK
    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/cpython/Objects/stringlib/partition.h:22,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/stringlib/partition.h:26,1
    - Dst: FASTSEARCH
      Src: /src/cpython/Objects/stringlib/partition.h:30,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:34,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:34,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:35,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:35,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:36,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:36,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/partition.h:38,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/partition.h:39,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:43,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:44,1
    - Dst: STRINGLIB_GET_EMPTY
      Src: /src/cpython/Objects/stringlib/partition.h:45,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/partition.h:46,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:47,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:48,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:49,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:50,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:55,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:55,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:56,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:57,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:59,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:59,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/partition.h:61,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/partition.h:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    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:
    - condition: (empty != NULL)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/cpython/Objects/stringlib/partition.h
    constantsTouched: []
    func_position:
      end: 67
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 67
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/partition.h
    functionUses: 3
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - FASTSEARCH
    - STRINGLIB_NEW
    - STRINGLIB_GET_EMPTY
    - assert
    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/cpython/Objects/stringlib/partition.h:79,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/stringlib/partition.h:83,1
    - Dst: FASTSEARCH
      Src: /src/cpython/Objects/stringlib/partition.h:87,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:91,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:91,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:92,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:92,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:93,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:93,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/partition.h:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/partition.h:96,1
    - Dst: STRINGLIB_GET_EMPTY
      Src: /src/cpython/Objects/stringlib/partition.h:100,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/partition.h:101,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:102,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:103,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:104,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:105,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:106,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:107,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:112,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:112,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/partition.h:113,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:114,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/stringlib/partition.h:116,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/partition.h:116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/partition.h:118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/partition.h:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    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:
    - condition: (empty != NULL)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/cpython/Objects/stringlib/partition.h
    constantsTouched: []
    func_position:
      end: 124
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 124
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/partition.h
    functionUses: 3
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - FASTSEARCH
    - STRINGLIB_NEW
    - STRINGLIB_GET_EMPTY
    - assert
    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: 5
    argNames:
    - (
    - mask
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: STRINGLIB_BLOOM_ADD
    functionSourceFile: /src/cpython/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: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: STRINGLIB_BLOOM
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_BLOOM(mask, ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_FAST_MEMCHR
      Src: /src/cpython/Objects/stringlib/fastsearch.h:58,1
    - Dst: memchr
      Src: /src/cpython/Objects/stringlib/fastsearch.h:72,1
    - Dst: _Py_ALIGN_DOWN
      Src: /src/cpython/Objects/stringlib/fastsearch.h:78,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: 104
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 104
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 3
    functionsReached:
    - _Py_ALIGN_DOWN
    - memchr
    - STRINGLIB_FAST_MEMCHR
    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/cpython/Objects/stringlib/fastsearch.h:127,1
    - Dst: memrchr
      Src: /src/cpython/Objects/stringlib/fastsearch.h:142,1
    - Dst: _Py_ALIGN_DOWN
      Src: /src/cpython/Objects/stringlib/fastsearch.h:148,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: 177
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 177
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 3
    functionsReached:
    - _Py_ALIGN_DOWN
    - memrchr
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(rfind_char)(const STRINGLIB_CHAR* s, Py_ssize_t n, STRINGLIB_CHAR
      ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: LOG
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: LOG_STRING
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_STRING(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: LOG_LINEUP
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_LINEUP()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - needle
    - len_needle
    - return_period
    - invert_alphabet
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 246
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(_lex_search)(const STRINGLIB_CHAR *needle, Py_ssize_t
      len_needle,\n                       Py_ssize_t *return_period, int invert_alphabet)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:286,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:287,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:299,1
    - Dst: LOG_STRING
      Src: /src/cpython/Objects/stringlib/fastsearch.h:299,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:300,1
    - Dst: LOG_STRING
      Src: /src/cpython/Objects/stringlib/fastsearch.h:300,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - needle
    - len_needle
    - return_period
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 305
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 4
    functionsReached:
    - LOG_STRING
    - LOG
    - STRINGLIB
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(_factorize)(const STRINGLIB_CHAR *needle,\n                      Py_ssize_t
      len_needle,\n                      Py_ssize_t *return_period)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:332,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:333,1
    - Dst: memcmp
      Src: /src/cpython/Objects/stringlib/fastsearch.h:334,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:338,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:339,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/stringlib/fastsearch.h:343,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/stringlib/fastsearch.h:357,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/stringlib/fastsearch.h:359,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/stringlib/fastsearch.h:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - needle
    - len_needle
    - p
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB*
    assertStmts:
    - condition: (p->cut <= len_needle/2)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: (p->period + p->cut <= len_needle)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: (p->cut < p->period)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    constantsTouched: []
    func_position:
      end: 367
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 367
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 5
    functionsReached:
    - Py_MIN
    - Py_MAX
    - STRINGLIB
    - memcmp
    - Py_SAFE_DOWNCAST
    - assert
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(_preprocess)(const STRINGLIB_CHAR *needle, Py_ssize_t
      len_needle,\n                       STRINGLIB(prework) *p)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:383,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/stringlib/fastsearch.h:386,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:388,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:392,1
    - Dst: LOG_LINEUP
      Src: /src/cpython/Objects/stringlib/fastsearch.h:394,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:403,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:407,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/stringlib/fastsearch.h:409,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:413,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:414,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:418,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:419,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:428,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/stringlib/fastsearch.h:440,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:441,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/stringlib/fastsearch.h:443,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:449,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/stringlib/fastsearch.h:454,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:455,1
    - Dst: LOG_LINEUP
      Src: /src/cpython/Objects/stringlib/fastsearch.h:459,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:468,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:471,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:477,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:478,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:482,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/fastsearch.h:483,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:491,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:496,1
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:500,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 109
    argCount: 3
    argNames:
    - haystack
    - len_haystack
    - p
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB*
    assertStmts:
    - condition: (memory == 0)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: (i - cut + 1 > gap)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: "((window[len_needle - 1] & TABLE_MASK) ==\n                   (needle[len_needle
        - 1] & TABLE_MASK))"
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: (gap >= i - cut + 1)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: (i - cut + 1 > gap)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: "((window[len_needle - 1] & TABLE_MASK) ==\n                   (needle[len_needle
        - 1] & TABLE_MASK))"
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    - condition: (gap >= i - cut + 1)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/cpython/Objects/stringlib/fastsearch.h
    constantsTouched: []
    func_position:
      end: 502
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 502
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 5
    functionsReached:
    - Py_MIN
    - Py_MAX
    - LOG
    - LOG_LINEUP
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(_two_way)(const STRINGLIB_CHAR *haystack, Py_ssize_t
      len_haystack,\n                    STRINGLIB(prework) *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:511,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:512,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:513,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - haystack
    - len_haystack
    - needle
    - len_needle
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 515
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 6
    functionsReached:
    - LOG
    - STRINGLIB
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(_two_way_find)(const STRINGLIB_CHAR *haystack,\n
      \                        Py_ssize_t len_haystack,\n                         const
      STRINGLIB_CHAR *needle,\n                         Py_ssize_t len_needle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/cpython/Objects/stringlib/fastsearch.h:525,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:526,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:527,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - haystack
    - len_haystack
    - needle
    - len_needle
    - maxcount
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 543
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 7
    functionsReached:
    - LOG
    - STRINGLIB
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(_two_way_count)(const STRINGLIB_CHAR *haystack,\n
      \                         Py_ssize_t len_haystack,\n                          const
      STRINGLIB_CHAR *needle,\n                          Py_ssize_t len_needle,\n
      \                         Py_ssize_t maxcount)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/cpython/Objects/stringlib/fastsearch.h:569,1
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/cpython/Objects/stringlib/fastsearch.h:574,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/cpython/Objects/stringlib/fastsearch.h:598,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/cpython/Objects/stringlib/fastsearch.h:607,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    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: 613
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 613
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 7
    functionsReached:
    - STRINGLIB_BLOOM
    - STRINGLIB_BLOOM_ADD
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(default_find)(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: 11
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/cpython/Objects/stringlib/fastsearch.h:630,1
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/cpython/Objects/stringlib/fastsearch.h:635,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:661,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:665,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/cpython/Objects/stringlib/fastsearch.h:671,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/cpython/Objects/stringlib/fastsearch.h:680,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    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: 686
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 686
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 8
    functionsReached:
    - STRINGLIB_BLOOM
    - STRINGLIB_BLOOM_ADD
    - STRINGLIB
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(adaptive_find)(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: 7
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/cpython/Objects/stringlib/fastsearch.h:699,1
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/cpython/Objects/stringlib/fastsearch.h:702,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/cpython/Objects/stringlib/fastsearch.h:721,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/cpython/Objects/stringlib/fastsearch.h:730,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    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: 736
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 736
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 8
    functionsReached:
    - STRINGLIB_BLOOM
    - STRINGLIB_BLOOM_ADD
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(default_rfind)(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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - s
    - n
    - p0
    - maxcount
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 753
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(count_char)(const STRINGLIB_CHAR *s, Py_ssize_t
      n,\n                      const STRINGLIB_CHAR p0, Py_ssize_t maxcount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - n
    - p0
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 769
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t STRINGLIB(count_char_no_maxcount)(const STRINGLIB_CHAR
      *s, Py_ssize_t n,\n                                  const STRINGLIB_CHAR p0)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:788,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:790,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:793,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:795,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:801,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:810,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:813,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:822,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/fastsearch.h:827,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    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: 829
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 829
    functionName: FASTSEARCH
    functionSourceFile: /src/cpython/Objects/stringlib/fastsearch.h
    functionUses: 4
    functionsReached:
    - 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: 20
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/join.h:10,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/join.h:11,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/stringlib/join.h:25,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/stringlib/join.h:30,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/join.h:32,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/join.h:33,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/stringlib/join.h:37,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/cpython/Objects/stringlib/join.h:38,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/stringlib/join.h:39,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/join.h:40,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Objects/stringlib/join.h:46,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/join.h:48,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/stringlib/join.h:49,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/stringlib/join.h:63,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/stringlib/join.h:64,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/join.h:66,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/stringlib/join.h:67,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/join.h:68,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/stringlib/join.h:71,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/join.h:72,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/stringlib/join.h:75,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/join.h:89,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/join.h:96,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/stringlib/join.h:102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/join.h:103,1
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/join.h:110,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/join.h:115,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Objects/stringlib/join.h:120,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/join.h:127,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/join.h:136,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/join.h:141,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Objects/stringlib/join.h:146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/join.h:153,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/stringlib/join.h:155,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/stringlib/join.h:157,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 108
    argCount: 2
    argNames:
    - sep
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 159
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/join.h
    functionUses: 9
    functionsReached:
    - STRINGLIB_CHECK_EXACT
    - PyErr_SetString
    - PyEval_SaveThread
    - PyBytes_GET_SIZE
    - PyMem_Free
    - Py_INCREF
    - STRINGLIB_LEN
    - PyErr_Format
    - PyBytes_CheckExact
    - PyMem_NEW
    - PyEval_RestoreThread
    - Py_DECREF
    - Py_NewRef
    - PyObject_GetBuffer
    - PySequence_Fast_GET_ITEM
    - memcpy
    - PyBytes_AS_STRING
    - Py_TYPE
    - PyErr_NoMemory
    - STRINGLIB_STR
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - STRINGLIB_NEW
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isspace
      Src: /src/cpython/Objects/stringlib/ctype.h:10,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:10,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - _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/cpython/Objects/stringlib/ctype.h:16,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:16,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - _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/cpython/Objects/stringlib/ctype.h:22,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:22,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - _Py_bytes_isalnum
    - STRINGLIB_LEN
    - STRINGLIB_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isalnum(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isascii
      Src: /src/cpython/Objects/stringlib/ctype.h:28,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:28,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: stringlib_isascii
    functionSourceFile: /src/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - _Py_bytes_isascii
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isascii(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isdigit
      Src: /src/cpython/Objects/stringlib/ctype.h:34,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:34,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - _Py_bytes_isdigit
    - STRINGLIB_LEN
    - STRINGLIB_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isdigit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_islower
      Src: /src/cpython/Objects/stringlib/ctype.h:40,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:40,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - _Py_bytes_islower
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_islower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isupper
      Src: /src/cpython/Objects/stringlib/ctype.h:46,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:46,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - _Py_bytes_isupper
    - STRINGLIB_LEN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_istitle
      Src: /src/cpython/Objects/stringlib/ctype.h:52,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:52,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - _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/cpython/Objects/stringlib/ctype.h:62,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/ctype.h:62,1
    - Dst: _Py_bytes_lower
      Src: /src/cpython/Objects/stringlib/ctype.h:65,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:65,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:65,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - _Py_bytes_lower
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_lower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/ctype.h:74,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/ctype.h:74,1
    - Dst: _Py_bytes_upper
      Src: /src/cpython/Objects/stringlib/ctype.h:77,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:77,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:77,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - 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/cpython/Objects/stringlib/ctype.h:86,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/ctype.h:86,1
    - Dst: _Py_bytes_title
      Src: /src/cpython/Objects/stringlib/ctype.h:89,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:89,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:89,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - 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/cpython/Objects/stringlib/ctype.h:98,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/ctype.h:98,1
    - Dst: _Py_bytes_capitalize
      Src: /src/cpython/Objects/stringlib/ctype.h:101,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:101,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:101,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - _Py_bytes_capitalize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_capitalize(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/cpython/Objects/stringlib/ctype.h:110,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/ctype.h:110,1
    - Dst: _Py_bytes_swapcase
      Src: /src/cpython/Objects/stringlib/ctype.h:113,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:113,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/ctype.h:113,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/ctype.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - 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/cpython/Objects/stringlib/ucs1lib.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/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: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 44
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/find_max_char.h
    functionUses: 9
    functionsReached:
    - _Py_IS_ALIGNED
    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/cpython/Objects/stringlib/find_max_char.h:74,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/find_max_char.h:92,1
    - Dst: assert
      Src: /src/cpython/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: 112
        line_start: 112
        source_file: /src/cpython/Objects/stringlib/find_max_char.h
    - condition: (mask == MASK_UCS1)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/cpython/Objects/stringlib/find_max_char.h
    constantsTouched: []
    func_position:
      end: 123
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 123
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/find_max_char.h
    functionUses: 9
    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/cpython/Objects/stringlib/find.h:14,1
    - Dst: FASTSEARCH
      Src: /src/cpython/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/cpython/Objects/stringlib/find.h
    constantsTouched: []
    func_position:
      end: 24
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 24
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/find.h
    functionUses: 9
    functionsReached:
    - FASTSEARCH
    - assert
    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/cpython/Objects/stringlib/find.h:33,1
    - Dst: FASTSEARCH
      Src: /src/cpython/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/cpython/Objects/stringlib/find.h
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/find.h
    functionUses: 9
    functionsReached:
    - FASTSEARCH
    - assert
    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/cpython/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/cpython/Objects/stringlib/find.h
    functionUses: 10
    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/cpython/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/cpython/Objects/stringlib/find.h
    functionUses: 11
    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/cpython/Objects/stringlib/find.h:66,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/find.h:67,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/Objects/stringlib/find.h:67,1
    - Dst: STRINGLIB_STR
      Src: /src/cpython/Objects/stringlib/find.h:68,1
    - Dst: STRINGLIB_LEN
      Src: /src/cpython/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/cpython/Objects/stringlib/find.h
    functionUses: 12
    functionsReached:
    - STRINGLIB_STR
    - STRINGLIB_LEN
    - STRINGLIB
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(contains_obj)(PyObject* str, PyObject* sub)
  - 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/cpython/Objects/stringlib/ucs4lib.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: STRINGLIB_FAST_MEMCHR
    functionSourceFile: /src/cpython/Objects/stringlib/ucs4lib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_FAST_MEMCHR(s, c, n)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/repr.h:12,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/stringlib/repr.h:13,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/stringlib/repr.h:14,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/stringlib/repr.h:18,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/stringlib/repr.h:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 3
    argNames:
    - unicode
    - quote
    - odata
    argTypes:
    - PyObject*
    - Py_UCS4
    - STRINGLIB_CHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 95
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/repr.h
    functionUses: 12
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_ISPRINTABLE
    - PyUnicode_READ
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(repr)(PyObject *unicode, Py_UCS4 quote,\n                STRINGLIB_CHAR
      *odata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FASTSEARCH
      Src: /src/cpython/Objects/stringlib/count.h:24,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: 30
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 30
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/count.h
    functionUses: 12
    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: STRINGLIB_FAST_MEMCHR
      Src: /src/cpython/Objects/stringlib/replace.h:34,1
    - Dst: FASTSEARCH
      Src: /src/cpython/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: 1
    functionLinenumber: 8
    functionLinenumberEnd: 53
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/replace.h
    functionUses: 12
    functionsReached:
    - FASTSEARCH
    - STRINGLIB_FAST_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/cpython/Objects/stringlib/ucs2lib.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: STRINGLIB_FAST_MEMCHR
    functionSourceFile: /src/cpython/Objects/stringlib/ucs2lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_FAST_MEMCHR(s, c, n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:39,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:41,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:58,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:61,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:69,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:70,1
    - Dst: stringlib_expandtabs_impl
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 78
    functionName: stringlib_expandtabs
    functionSourceFile: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - stringlib_expandtabs_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:101,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:106,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:109,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:111,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:119,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:120,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:121,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:124,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:127,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:129,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:130,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:131,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:134,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:137,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:140,1
    - Dst: stringlib_ljust_impl
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:144,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 148
    functionName: stringlib_ljust
    functionSourceFile: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - PyByteArray_AS_STRING
    - stringlib_ljust_impl
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - _PyArg_CheckPositional
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyErr_Format
    - PyByteArray_Check
    - PyBytes_AS_STRING
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_ljust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:171,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:176,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:179,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:181,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:189,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:190,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:191,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:194,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:197,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:199,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:200,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:201,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:204,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:207,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:210,1
    - Dst: stringlib_rjust_impl
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:214,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 218
    functionName: stringlib_rjust
    functionSourceFile: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - stringlib_rjust_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - _PyArg_CheckPositional
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyErr_Format
    - PyByteArray_Check
    - PyBytes_AS_STRING
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:241,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:246,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:249,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:251,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:259,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:260,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:261,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:264,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:267,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:269,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:270,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:271,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:274,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:277,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:280,1
    - Dst: stringlib_center_impl
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:284,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 288
    functionName: stringlib_center
    functionSourceFile: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - stringlib_center_impl
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - _PyArg_CheckPositional
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyErr_Format
    - PyByteArray_Check
    - PyBytes_AS_STRING
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:312,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:315,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:317,1
    - Dst: stringlib_zfill_impl
      Src: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 326
    functionName: stringlib_zfill
    functionSourceFile: /src/cpython/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - stringlib_zfill_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_zfill(PyObject *self, PyObject *arg)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/clinic/codeobject.c.h:54,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/codeobject.c.h:57,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/codeobject.c.h:57,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:60,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:60,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:61,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:64,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:64,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:65,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:68,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:68,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:69,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:72,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:72,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:73,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:76,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:76,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:77,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:80,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:80,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:81,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:84,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:84,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:85,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:85,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:88,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:89,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:89,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:90,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:90,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:93,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:94,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:94,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:95,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:95,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:98,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:99,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:99,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:100,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:100,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:103,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:104,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:104,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:105,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:105,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:108,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:109,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:109,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:110,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:110,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:113,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:114,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:114,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:115,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:115,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:118,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:119,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:120,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:123,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:123,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:124,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:124,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:127,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:128,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:128,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:129,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:129,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:132,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/codeobject.c.h:133,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:136,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:136,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:137,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:137,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:140,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/codeobject.c.h:141,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:144,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:144,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:145,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:145,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/codeobject.c.h:148,1
    - Dst: code_new_impl
      Src: /src/cpython/Objects/clinic/codeobject.c.h:150,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 124
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 154
    functionName: code_new
    functionSourceFile: /src/cpython/Objects/clinic/codeobject.c.h
    functionUses: 1
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyLong_AsInt
    - PyErr_Occurred
    - PyTuple_Check
    - PyBytes_Check
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _PyArg_BadArgument
    - PyUnicode_Check
    - code_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/codeobject.c.h:189,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:191,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/codeobject.c.h:208,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/codeobject.c.h:228,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:237,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:238,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:246,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:247,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:255,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:256,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:264,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:265,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:273,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:274,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:282,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:283,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:291,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:292,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:300,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:301,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:310,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:311,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:320,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:321,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:330,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:331,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:340,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:341,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:350,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:351,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:360,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:361,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:370,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:371,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:380,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:381,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:390,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:391,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/clinic/codeobject.c.h:399,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/codeobject.c.h:400,1
    - Dst: code_replace_impl
      Src: /src/cpython/Objects/clinic/codeobject.c.h:405,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 219
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 409
    functionName: code_replace
    functionSourceFile: /src/cpython/Objects/clinic/codeobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyTuple_Check
    - _Py_ID
    - code_replace_impl
    - PyBytes_Check
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/codeobject.c.h:438,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:440,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/codeobject.c.h:459,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:464,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:465,1
    - Dst: code__varname_from_oparg_impl
      Src: /src/cpython/Objects/clinic/codeobject.c.h:468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 472
    functionName: code__varname_from_oparg
    functionSourceFile: /src/cpython/Objects/clinic/codeobject.c.h
    functionUses: 0
    functionsReached:
    - code__varname_from_oparg_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code__varname_from_oparg(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:36,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:38,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:56,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:57,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:57,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:66,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:66,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:71,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:72,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:92,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:101,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:109,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:114,1
    - Dst: typevar_new_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:118,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:122,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 125
    functionName: typevar_new
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - typevar_new_impl
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevar_typing_subst_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: typevar_typing_subst
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevar_typing_subst_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_typing_subst(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:167,1
    - Dst: typevar_typing_prepare_subst_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: typevar_typing_prepare_subst
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevar_typing_prepare_subst_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_typing_prepare_subst(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevar_reduce_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: typevar_reduce
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevar_reduce_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevar_has_default_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: typevar_has_default
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevar_has_default_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_has_default(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:234,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:236,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:254,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:257,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:257,1
    - Dst: paramspecargs_new_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 267
    functionName: paramspecargs_new
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - paramspecargs_new_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspecargs_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:291,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:293,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:311,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:314,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:314,1
    - Dst: paramspeckwargs_new_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 324
    functionName: paramspeckwargs_new
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - paramspeckwargs_new_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspeckwargs_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:351,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:353,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:353,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:353,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:353,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:353,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:353,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:371,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:372,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:380,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:380,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:385,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:386,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:406,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:415,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:423,1
    - Dst: paramspec_new_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:428,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 432
    functionName: paramspec_new
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - paramspec_new_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspec_typing_subst_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: paramspec_typing_subst
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - paramspec_typing_subst_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_typing_subst(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:474,1
    - Dst: paramspec_typing_prepare_subst_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 483
    functionName: paramspec_typing_prepare_subst
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - paramspec_typing_prepare_subst_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_typing_prepare_subst(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspec_reduce_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 500
    functionName: paramspec_reduce
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - paramspec_reduce_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspec_has_default_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: paramspec_has_default
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - paramspec_has_default_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_has_default(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:542,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:544,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:544,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:562,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:563,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:567,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:567,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:572,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:573,1
    - Dst: typevartuple_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:582,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 586
    functionName: typevartuple
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 2
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - typevartuple_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevartuple_typing_subst_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: typevartuple_typing_subst
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevartuple_typing_subst_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_typing_subst(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:628,1
    - Dst: typevartuple_typing_prepare_subst_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 637
    functionName: typevartuple_typing_prepare_subst
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevartuple_typing_prepare_subst_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_typing_prepare_subst(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevartuple_reduce_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: typevartuple_reduce
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevartuple_reduce_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typevartuple_has_default_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: typevartuple_has_default
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typevartuple_has_default_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_has_default(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typealias_reduce_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: typealias_reduce
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - typealias_reduce_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:713,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:715,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:715,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:715,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:733,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:734,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:739,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:739,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:744,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:745,1
    - Dst: typealias_new_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 700
    functionDepth: 5
    functionLinenumber: 700
    functionLinenumberEnd: 759
    functionName: typealias_new
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - typealias_new_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/structseq.c.h:27,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/structseq.c.h:29,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/structseq.c.h:29,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/structseq.c.h:47,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/structseq.c.h:48,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/structseq.c.h:52,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/structseq.c.h:52,1
    - Dst: structseq_new_impl
      Src: /src/cpython/Objects/clinic/structseq.c.h:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 14
    functionDepth: 10
    functionLinenumber: 14
    functionLinenumberEnd: 67
    functionName: structseq_new
    functionSourceFile: /src/cpython/Objects/clinic/structseq.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - structseq_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type___instancecheck___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:25,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/typeobject.c.h:26,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/clinic/typeobject.c.h:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - instance
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 7
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: type___instancecheck__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type___instancecheck___impl
    - PyBool_FromLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___instancecheck__(PyObject *self, PyObject *instance)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type___subclasscheck___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:53,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/typeobject.c.h:54,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/clinic/typeobject.c.h:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - subclass
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 7
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: type___subclasscheck__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - type___subclasscheck___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___subclasscheck__(PyObject *self, PyObject *subclass)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_mro_impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 15
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: type_mro
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type_mro_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_mro(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type___subclasses___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 7
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: type___subclasses__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type___subclasses___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___subclasses__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type___dir___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 11
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: type___dir__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type___dir___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___dir__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type___sizeof___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: type___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object___getstate___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 16
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: object___getstate__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - object___getstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___getstate__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object___reduce___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: object___reduce__
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/typeobject.c.h:189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/typeobject.c.h:190,1
    - Dst: object___reduce_ex___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: object___reduce_ex__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - object___reduce_ex___impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___reduce_ex__(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/typeobject.c.h:219,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/typeobject.c.h:220,1
    - Dst: object___format___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: object___format__
    functionSourceFile: /src/cpython/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - object___format___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___format__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object___sizeof___impl
      Src: /src/cpython/Objects/clinic/typeobject.c.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: object___sizeof__
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/typeobject.c.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 13
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: object___dir__
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/descrobject.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/descrobject.c.h:35,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/descrobject.c.h:53,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/descrobject.c.h:56,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/descrobject.c.h:56,1
    - Dst: mappingproxy_new_impl
      Src: /src/cpython/Objects/clinic/descrobject.c.h:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 66
    functionName: mappingproxy_new
    functionSourceFile: /src/cpython/Objects/clinic/descrobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - mappingproxy_new_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/descrobject.c.h:122,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/descrobject.c.h:124,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/descrobject.c.h:124,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/descrobject.c.h:124,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/descrobject.c.h:124,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/descrobject.c.h:142,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/descrobject.c.h:143,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/descrobject.c.h:149,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/descrobject.c.h:149,1
    - Dst: property_init_impl
      Src: /src/cpython/Objects/clinic/descrobject.c.h:177,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 181
    functionName: property_init
    functionSourceFile: /src/cpython/Objects/clinic/descrobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - property_init_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int property_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes___bytes___impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: bytes___bytes__
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes___bytes___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes___bytes__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:63,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:65,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:65,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:82,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:86,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:102,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:107,1
    - Dst: bytes_split_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 117
    functionName: bytes_split
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - bytes_split_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:144,1
    - Dst: bytes_partition_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:147,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: bytes_partition
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_partition_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_partition(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:183,1
    - Dst: bytes_rpartition_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:186,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: bytes_rpartition
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_rpartition_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rpartition(PyObject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:232,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:234,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:234,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:251,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:255,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:271,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:274,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:276,1
    - Dst: bytes_rsplit_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 286
    functionName: bytes_rsplit
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - bytes_rsplit_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes_join_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: bytes_join
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 3
    functionsReached:
    - bytes_join_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_join(PyObject *self, PyObject *iterable_of_bytes)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:344,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:351,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:357,1
    - Dst: bytes_find_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:361,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 365
    functionName: bytes_find
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - bytes_find_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_find(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:395,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:402,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:408,1
    - Dst: bytes_index_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:412,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 416
    functionName: bytes_index
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - bytes_index_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_index(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:446,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:453,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:459,1
    - Dst: bytes_rfind_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:463,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 438
    functionDepth: 5
    functionLinenumber: 438
    functionLinenumberEnd: 467
    functionName: bytes_rfind
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - bytes_rfind_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rfind(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:497,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:504,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:510,1
    - Dst: bytes_rindex_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:514,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 489
    functionDepth: 5
    functionLinenumber: 489
    functionLinenumberEnd: 518
    functionName: bytes_rindex
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - _PyArg_CheckPositional
    - bytes_rindex_impl
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rindex(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:540,1
    - Dst: bytes_strip_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 552
    functionName: bytes_strip
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytes_strip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_strip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:574,1
    - Dst: bytes_lstrip_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 586
    functionName: bytes_lstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_lstrip_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_lstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:608,1
    - Dst: bytes_rstrip_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 620
    functionName: bytes_rstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_rstrip_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:648,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:655,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:661,1
    - Dst: bytes_count_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:665,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 640
    functionDepth: 4
    functionLinenumber: 640
    functionLinenumberEnd: 669
    functionName: bytes_count
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - bytes_count_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_count(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:703,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:705,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:722,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:726,1
    - Dst: bytes_translate_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 690
    functionDepth: 5
    functionLinenumber: 690
    functionLinenumberEnd: 741
    functionName: bytes_translate
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - bytes_translate_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_translate(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:767,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:770,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:773,1
    - Dst: bytes_maketrans_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:776,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:781,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:785,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 760
    functionDepth: 3
    functionLinenumber: 760
    functionLinenumberEnd: 789
    functionName: bytes_maketrans
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - bytes_maketrans_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_maketrans(PyObject *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:819,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:822,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:825,1
    - Dst: PyBUF_SIMPLE::PyBUF_SIMPLE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:825,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:833,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:836,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:838,1
    - Dst: bytes_replace_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:844,1
    - Dst: count::count
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:844,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:849,1
    - Dst: obj::obj
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:852,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 857
    functionName: bytes_replace
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyBUF_SIMPLE::PyBUF_SIMPLE
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - obj::obj
    - count::count
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - bytes_replace_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:880,1
    - Dst: bytes_removeprefix_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:883,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 874
    functionDepth: 5
    functionLinenumber: 874
    functionLinenumberEnd: 892
    functionName: bytes_removeprefix
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - bytes_removeprefix_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_removeprefix(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:916,1
    - Dst: bytes_removesuffix_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:919,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 910
    functionDepth: 5
    functionLinenumber: 910
    functionLinenumberEnd: 928
    functionName: bytes_removesuffix
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_removesuffix_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_removesuffix(PyObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:958,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:965,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:971,1
    - Dst: bytes_startswith_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:975,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 950
    functionDepth: 4
    functionLinenumber: 950
    functionLinenumberEnd: 979
    functionName: bytes_startswith
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - bytes_startswith_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_startswith(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1009,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1016,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1022,1
    - Dst: bytes_endswith_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1026,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1001
    functionDepth: 4
    functionLinenumber: 1001
    functionLinenumberEnd: 1030
    functionName: bytes_endswith
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - bytes_endswith_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_endswith(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1067,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1069,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1069,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1086,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1090,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1099,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1100,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1104,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1109,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1116,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1117,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1121,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1125,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1126,1
    - Dst: bytes_decode_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1130,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1054
    functionDepth: 5
    functionLinenumber: 1054
    functionLinenumberEnd: 1134
    functionName: bytes_decode
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - bytes_decode_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_decode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1164,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1166,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1183,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1186,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1194,1
    - Dst: bytes_splitlines_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1203
    functionName: bytes_splitlines
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - bytes_splitlines_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes_fromhex_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1228
    functionName: bytes_fromhex
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_fromhex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromhex(PyObject *type, PyObject *string)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1272,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1274,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1274,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1291,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1295,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1309,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1310,1
    - Dst: bytes_hex_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1259
    functionDepth: 4
    functionLinenumber: 1259
    functionLinenumberEnd: 1318
    functionName: bytes_hex
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - bytes_hex_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_hex(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1337,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1339,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1339,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1339,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1357,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1358,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1363,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1363,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1378,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1379,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1383,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1387,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1388,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1395,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1396,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1400,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1404,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1405,1
    - Dst: bytes_new_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1409,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1324
    functionDepth: 5
    functionLinenumber: 1324
    functionLinenumberEnd: 1413
    functionName: bytes_new
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - bytes_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:35,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:37,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:55,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:60,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:60,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:65,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:66,1
    - Dst: module___init___impl
      Src: /src/cpython/Objects/clinic/moduleobject.c.h:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 79
    functionName: module___init__
    functionSourceFile: /src/cpython/Objects/clinic/moduleobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - module___init___impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int module___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:30,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:37,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:43,1
    - Dst: tuple_index_impl
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:47,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 51
    functionName: tuple_index
    functionSourceFile: /src/cpython/Objects/clinic/tupleobject.c.h
    functionUses: 3
    functionsReached:
    - _PyEval_SliceIndexNotNone
    - _PyArg_CheckPositional
    - tuple_index_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_index(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tuple_count_impl
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: tuple_count
    functionSourceFile: /src/cpython/Objects/clinic/tupleobject.c.h
    functionUses: 0
    functionsReached:
    - tuple_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_count(PyObject *self, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:97,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:100,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:100,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:103,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:106,1
    - Dst: tuple_new_impl
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: tuple_new
    functionSourceFile: /src/cpython/Objects/clinic/tupleobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - tuple_new_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tuple___getnewargs___impl
      Src: /src/cpython/Objects/clinic/tupleobject.c.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: tuple___getnewargs__
    functionSourceFile: /src/cpython/Objects/clinic/tupleobject.c.h
    functionUses: 0
    functionsReached:
    - tuple___getnewargs___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple___getnewargs__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/odictobject.c.h:36,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:38,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:55,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:59,1
    - Dst: OrderedDict_fromkeys_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 23
    functionDepth: 12
    functionLinenumber: 23
    functionLinenumberEnd: 74
    functionName: OrderedDict_fromkeys
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - OrderedDict_fromkeys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_fromkeys(PyObject *type, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/odictobject.c.h:104,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:106,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:106,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:123,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:127,1
    - Dst: OrderedDict_setdefault_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 91
    functionDepth: 11
    functionLinenumber: 91
    functionLinenumberEnd: 142
    functionName: OrderedDict_setdefault
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - OrderedDict_setdefault_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_setdefault(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/odictobject.c.h:173,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:175,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:175,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:192,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:196,1
    - Dst: OrderedDict_pop_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 160
    functionDepth: 12
    functionLinenumber: 160
    functionLinenumberEnd: 211
    functionName: OrderedDict_pop
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - OrderedDict_pop_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_pop(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/odictobject.c.h:240,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:242,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:259,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:262,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/odictobject.c.h:270,1
    - Dst: OrderedDict_popitem_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 227
    functionDepth: 12
    functionLinenumber: 227
    functionLinenumberEnd: 279
    functionName: OrderedDict_popitem
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - OrderedDict_popitem_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_popitem(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/odictobject.c.h:308,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:310,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:310,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:327,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:331,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/odictobject.c.h:340,1
    - Dst: OrderedDict_move_to_end_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 295
    functionDepth: 11
    functionLinenumber: 295
    functionLinenumberEnd: 349
    functionName: OrderedDict_move_to_end
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - OrderedDict_move_to_end_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_move_to_end(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:32,1
    - Dst: frame_locals_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:33,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 11
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: frame_locals_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame_locals_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_locals_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:64,1
    - Dst: frame_lineno_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:65,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: frame_lineno_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_lineno_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_lineno_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:96,1
    - Dst: frame_lasti_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:97,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: frame_lasti_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_lasti_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_lasti_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:128,1
    - Dst: frame_globals_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:129,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: frame_globals_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame_globals_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_globals_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:160,1
    - Dst: frame_builtins_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:161,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: frame_builtins_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_builtins_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_builtins_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_code_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: frame_code_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - frame_code_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_code_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:211,1
    - Dst: frame_back_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:212,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: frame_back_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame_back_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_back_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:243,1
    - Dst: frame_trace_opcodes_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:244,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: frame_trace_opcodes_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_trace_opcodes_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_trace_opcodes_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:268,1
    - Dst: frame_trace_opcodes_set_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:269,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: frame_trace_opcodes_set
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_trace_opcodes_set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int frame_trace_opcodes_set(PyObject *self, PyObject *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:293,1
    - Dst: frame_lineno_set_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:294,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 298
    functionName: frame_lineno_set
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame_lineno_set_impl
    linkageType: ''
    returnType: int
    signature: int frame_lineno_set(PyObject *self, PyObject *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:325,1
    - Dst: frame_trace_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:326,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 330
    functionName: frame_trace_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_trace_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_trace_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:350,1
    - Dst: frame_trace_set_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:351,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: frame_trace_set
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame_trace_set_impl
    linkageType: ''
    returnType: int
    signature: int frame_trace_set(PyObject *self, PyObject *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:382,1
    - Dst: frame_generator_get_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:383,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 387
    functionName: frame_generator_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame_generator_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_generator_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:406,1
    - Dst: frame_clear_impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:407,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 411
    functionName: frame_clear
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:430,1
    - Dst: frame___sizeof___impl
      Src: /src/cpython/Objects/clinic/frameobject.c.h:431,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/frameobject.c.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 435
    functionName: frame___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frame___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:37,1
    - Dst: function___annotate___get_impl
      Src: /src/cpython/Objects/clinic/funcobject.c.h:38,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: function___annotate___get
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - function___annotate___get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function___annotate___get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:62,1
    - Dst: function___annotate___set_impl
      Src: /src/cpython/Objects/clinic/funcobject.c.h:63,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: function___annotate___set
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - function___annotate___set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int function___annotate___set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:94,1
    - Dst: function___annotations___get_impl
      Src: /src/cpython/Objects/clinic/funcobject.c.h:95,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 12
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: function___annotations___get
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - function___annotations___get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function___annotations___get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:119,1
    - Dst: function___annotations___set_impl
      Src: /src/cpython/Objects/clinic/funcobject.c.h:120,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: function___annotations___set
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - function___annotations___set_impl
    linkageType: ''
    returnType: int
    signature: int function___annotations___set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:151,1
    - Dst: function___type_params___get_impl
      Src: /src/cpython/Objects/clinic/funcobject.c.h:152,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: function___type_params___get
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - function___type_params___get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function___type_params___get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:176,1
    - Dst: function___type_params___set_impl
      Src: /src/cpython/Objects/clinic/funcobject.c.h:177,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/funcobject.c.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: function___type_params___set
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - function___type_params___set_impl
    linkageType: ''
    returnType: int
    signature: int function___type_params___set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/funcobject.c.h:221,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/funcobject.c.h:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/funcobject.c.h:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/funcobject.c.h:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/funcobject.c.h:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/funcobject.c.h:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/funcobject.c.h:223,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/funcobject.c.h:241,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/funcobject.c.h:242,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/funcobject.c.h:250,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/funcobject.c.h:250,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/clinic/funcobject.c.h:255,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/funcobject.c.h:256,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/clinic/funcobject.c.h:260,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/funcobject.c.h:261,1
    - Dst: func_new_impl
      Src: /src/cpython/Objects/clinic/funcobject.c.h:288,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 208
    functionDepth: 11
    functionLinenumber: 208
    functionLinenumberEnd: 292
    functionName: func_new
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyObject_TypeCheck
    - _Py_ID
    - func_new_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/longobject.c.h:28,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:30,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/longobject.c.h:48,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/longobject.c.h:49,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/longobject.c.h:53,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/longobject.c.h:53,1
    - Dst: long_new_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 15
    functionDepth: 10
    functionLinenumber: 15
    functionLinenumberEnd: 73
    functionName: long_new
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - 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/cpython/Objects/clinic/longobject.c.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: int___getnewargs__
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/longobject.c.h:110,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/longobject.c.h:111,1
    - Dst: int___format___impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 8
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: int___format__
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - int___format___impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___format__(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/longobject.c.h:141,1
    - Dst: int___round___impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 11
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: int___round__
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int___round___impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___round__(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int___sizeof___impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/longobject.c.h:174,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/longobject.c.h:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: int___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - int___sizeof___impl
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_bit_length_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: int_bit_length
    functionSourceFile: /src/cpython/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_bit_count_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: int_bit_count
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int_bit_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_bit_count(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_as_integer_ratio_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: int_as_integer_ratio
    functionSourceFile: /src/cpython/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: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/longobject.c.h:299,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:301,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:301,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:301,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/longobject.c.h:318,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/longobject.c.h:323,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/longobject.c.h:334,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/longobject.c.h:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/longobject.c.h:337,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/longobject.c.h:339,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/longobject.c.h:349,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/longobject.c.h:350,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/longobject.c.h:362,1
    - Dst: int_to_bytes_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:367,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 371
    functionName: int_to_bytes
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - int_to_bytes_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/longobject.c.h:413,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:415,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:415,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:415,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/longobject.c.h:432,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/longobject.c.h:437,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/longobject.c.h:447,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/longobject.c.h:448,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/longobject.c.h:460,1
    - Dst: int_from_bytes_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:465,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 400
    functionDepth: 5
    functionLinenumber: 400
    functionLinenumberEnd: 469
    functionName: int_from_bytes
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - int_from_bytes_impl
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_from_bytes(PyObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_is_integer_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: int_is_integer
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int_is_integer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_is_integer(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:26,1
    - Dst: set_pop_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:27,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: set_pop
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set_pop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_pop(PyObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_update_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - so
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 10
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: set_update
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - set_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_update(PyObject *so, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:77,1
    - Dst: set_copy_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:78,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 12
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: set_copy
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 4
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set_copy_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_copy(PyObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:101,1
    - Dst: frozenset_copy_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:102,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 13
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: frozenset_copy
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - frozenset_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_copy(PyObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:125,1
    - Dst: set_clear_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:126,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: set_clear
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set_clear_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_clear(PyObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_union_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - so
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 10
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: set_union
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - set_union_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_union(PyObject *so, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_intersection_multi_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - so
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 14
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: set_intersection_multi
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - set_intersection_multi_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection_multi(PyObject *so, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_intersection_update_multi_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - so
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 15
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: set_intersection_update_multi
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - set_intersection_update_multi_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection_update_multi(PyObject *so, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:230,1
    - Dst: set_isdisjoint_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:231,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 8
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: set_isdisjoint
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - set_isdisjoint_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_isdisjoint(PyObject *so, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_difference_update_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - so
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 15
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: set_difference_update
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - set_difference_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_difference_update(PyObject *so, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_difference_multi_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - so
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 17
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: set_difference_multi
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - set_difference_multi_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_difference_multi(PyObject *so, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_symmetric_difference_update_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 12
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: set_symmetric_difference_update
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 1
    functionsReached:
    - set_symmetric_difference_update_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_symmetric_difference_update(PyObject *so, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:330,1
    - Dst: set_symmetric_difference_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:331,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 12
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: set_symmetric_difference
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - set_symmetric_difference_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_symmetric_difference(PyObject *so, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:354,1
    - Dst: set_issubset_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:355,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 14
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: set_issubset
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - set_issubset_impl
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_issubset(PyObject *so, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:378,1
    - Dst: set_issuperset_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:379,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/clinic/setobject.c.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 8
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: set_issuperset
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - set_issuperset_impl
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_issuperset(PyObject *so, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:404,1
    - Dst: set_add_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:405,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 8
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: set_add
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set_add_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_add(PyObject *so, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:428,1
    - Dst: set___contains___impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:429,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 423
    functionDepth: 9
    functionLinenumber: 423
    functionLinenumberEnd: 433
    functionName: set___contains__
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set___contains___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___contains__(PyObject *so, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frozenset___contains___impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 9
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: frozenset___contains__
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - frozenset___contains___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset___contains__(PyObject *so, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:476,1
    - Dst: set_remove_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:477,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 471
    functionDepth: 8
    functionLinenumber: 471
    functionLinenumberEnd: 481
    functionName: set_remove
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set_remove_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_remove(PyObject *so, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:503,1
    - Dst: set_discard_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:504,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 8
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: set_discard
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set_discard_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_discard(PyObject *so, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:527,1
    - Dst: set___reduce___impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:528,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: set___reduce__
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set___reduce___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___reduce__(PyObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:551,1
    - Dst: set___sizeof___impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:552,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 556
    functionName: set___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - set___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___sizeof__(PyObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex_conjugate_impl
      Src: /src/cpython/Objects/clinic/complexobject.c.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: complex_conjugate
    functionSourceFile: /src/cpython/Objects/clinic/complexobject.c.h
    functionUses: 0
    functionsReached:
    - complex_conjugate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_conjugate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex___getnewargs___impl
      Src: /src/cpython/Objects/clinic/complexobject.c.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: complex___getnewargs__
    functionSourceFile: /src/cpython/Objects/clinic/complexobject.c.h
    functionUses: 0
    functionsReached:
    - complex___getnewargs___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex___getnewargs__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/complexobject.c.h:64,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/complexobject.c.h:65,1
    - Dst: complex___format___impl
      Src: /src/cpython/Objects/clinic/complexobject.c.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 8
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: complex___format__
    functionSourceFile: /src/cpython/Objects/clinic/complexobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - complex___format___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex___format__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex___complex___impl
      Src: /src/cpython/Objects/clinic/complexobject.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: complex___complex__
    functionSourceFile: /src/cpython/Objects/clinic/complexobject.c.h
    functionUses: 0
    functionsReached:
    - complex___complex___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex___complex__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/complexobject.c.h:120,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/complexobject.c.h:122,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/complexobject.c.h:122,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/complexobject.c.h:140,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/complexobject.c.h:141,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/complexobject.c.h:145,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/complexobject.c.h:145,1
    - Dst: complex_new_impl
      Src: /src/cpython/Objects/clinic/complexobject.c.h:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 165
    functionName: complex_new
    functionSourceFile: /src/cpython/Objects/clinic/complexobject.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - complex_new_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex_from_number_impl
      Src: /src/cpython/Objects/clinic/complexobject.c.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: complex_from_number
    functionSourceFile: /src/cpython/Objects/clinic/complexobject.c.h
    functionUses: 0
    functionsReached:
    - complex_from_number_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_from_number(PyObject *type, PyObject *number)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/dictobject.c.h:27,1
    - Dst: dict_fromkeys_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 12
    functionLinenumber: 20
    functionLinenumberEnd: 40
    functionName: dict_fromkeys
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 1
    functionsReached:
    - dict_fromkeys_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_fromkeys(PyObject *type, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_copy_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: dict_copy
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict___contains___impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: dict___contains__
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict___contains___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___contains__(PyObject *self, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/dictobject.c.h:101,1
    - Dst: dict_get_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 7
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: dict_get
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict_get_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_get(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/dictobject.c.h:138,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/dictobject.c.h:147,1
    - Dst: dict_setdefault_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:148,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/dictobject.c.h:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 131
    functionDepth: 7
    functionLinenumber: 131
    functionLinenumberEnd: 153
    functionName: dict_setdefault
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - dict_setdefault_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_setdefault(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_clear_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 11
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: dict_clear
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/dictobject.c.h:195,1
    - Dst: dict_pop_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 188
    functionDepth: 10
    functionLinenumber: 188
    functionLinenumberEnd: 208
    functionName: dict_pop
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - dict_pop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_pop(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/dictobject.c.h:230,1
    - Dst: dict_popitem_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:231,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/dictobject.c.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 10
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: dict_popitem
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - dict_popitem_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_popitem(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict___sizeof___impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: dict___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict___reversed___impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: dict___reversed__
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict___reversed___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___reversed__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_keys_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: dict_keys
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 2
    functionsReached:
    - dict_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_keys(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_items_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: dict_items
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict_items_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_items(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_values_impl
      Src: /src/cpython/Objects/clinic/dictobject.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: dict_values
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict_values_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_values(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/enumobject.c.h:42,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/enumobject.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/enumobject.c.h:44,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/enumobject.c.h:62,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/enumobject.c.h:63,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/enumobject.c.h:67,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/enumobject.c.h:67,1
    - Dst: enum_new_impl
      Src: /src/cpython/Objects/clinic/enumobject.c.h:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 82
    functionName: enum_new
    functionSourceFile: /src/cpython/Objects/clinic/enumobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - enum_new_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/clinic/enumobject.c.h:101,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/enumobject.c.h:104,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/enumobject.c.h:104,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/enumobject.c.h:107,1
    - Dst: reversed_new_impl
      Src: /src/cpython/Objects/clinic/enumobject.c.h:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: reversed_new
    functionSourceFile: /src/cpython/Objects/clinic/enumobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - reversed_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:29,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:31,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:31,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:31,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:31,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:49,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:50,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:52,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:54,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:56,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:56,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:66,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:67,1
    - Dst: _conversion_converter
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:76,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:83,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:84,1
    - Dst: interpolation_new_impl
      Src: /src/cpython/Objects/clinic/interpolationobject.c.h:89,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 93
    functionName: interpolation_new
    functionSourceFile: /src/cpython/Objects/clinic/interpolationobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _Py_STR
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - interpolation_new_impl
    - _conversion_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpolation_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/listobject.c.h:32,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/listobject.c.h:37,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/listobject.c.h:39,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/listobject.c.h:40,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/listobject.c.h:42,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:48,1
    - Dst: list_insert_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:49,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 54
    functionName: list_insert
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - list_insert_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_insert(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:73,1
    - Dst: py_list_clear_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:74,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: py_list_clear
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - py_list_clear_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_list_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:97,1
    - Dst: list_copy_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:98,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 7
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: list_copy
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - list_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:121,1
    - Dst: list_append_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:122,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: list_append
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - list_append_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_append(PyObject *self, PyObject *object)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_extend_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 13
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: list_extend
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 6
    functionsReached:
    - list_extend_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_extend(PyObject *self, PyObject *iterable)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/listobject.c.h:170,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/listobject.c.h:178,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/listobject.c.h:180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/listobject.c.h:181,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/listobject.c.h:183,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:189,1
    - Dst: list_pop_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:190,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 164
    functionDepth: 10
    functionLinenumber: 164
    functionLinenumberEnd: 195
    functionName: list_pop
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - list_pop_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_pop(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/listobject.c.h:230,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/listobject.c.h:232,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/listobject.c.h:232,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/listobject.c.h:249,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/listobject.c.h:253,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/listobject.c.h:267,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:272,1
    - Dst: list_sort_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:273,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:274,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 217
    functionDepth: 9
    functionLinenumber: 217
    functionLinenumberEnd: 278
    functionName: list_sort
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - list_sort_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_sort(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:297,1
    - Dst: list_reverse_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:298,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: list_reverse
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - list_reverse_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_reverse(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/listobject.c.h:327,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/listobject.c.h:334,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/listobject.c.h:340,1
    - Dst: list_index_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:344,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 319
    functionDepth: 5
    functionLinenumber: 319
    functionLinenumberEnd: 348
    functionName: list_index
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - _PyEval_SliceIndexNotNone
    - list_index_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_index(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_count_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: list_count
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 1
    functionsReached:
    - list_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_count(PyObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:391,1
    - Dst: list_remove_impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:392,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/listobject.c.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 386
    functionDepth: 11
    functionLinenumber: 386
    functionLinenumberEnd: 396
    functionName: list_remove
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 10
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - list_remove_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_remove(PyObject *self, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/clinic/listobject.c.h:417,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/clinic/listobject.c.h:418,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/clinic/listobject.c.h:419,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/listobject.c.h:422,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/listobject.c.h:422,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/listobject.c.h:425,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/listobject.c.h:428,1
    - Dst: list___init___impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 410
    functionDepth: 13
    functionLinenumber: 410
    functionLinenumberEnd: 434
    functionName: list___init__
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_IS_TYPE
    - list___init___impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int list___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list___sizeof___impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: list___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - list___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list___reversed___impl
      Src: /src/cpython/Objects/clinic/listobject.c.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: list___reversed__
    functionSourceFile: /src/cpython/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - list___reversed___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___reversed__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:33,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:35,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:53,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:56,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:56,1
    - Dst: memoryview_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 66
    functionName: memoryview
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - memoryview_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:93,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:95,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:95,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:115,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:121,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:122,1
    - Dst: memoryview__from_flags_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 129
    functionName: memoryview__from_flags
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - memoryview__from_flags_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview__from_flags(PyObject *type, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memoryview_release_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: memoryview_release
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - memoryview_release_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_release(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:175,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:177,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:177,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:194,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:198,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:203,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:204,1
    - Dst: memoryview_cast_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 162
    functionDepth: 14
    functionLinenumber: 162
    functionLinenumberEnd: 217
    functionName: memoryview_cast
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - memoryview_cast_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_cast(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memoryview_toreadonly_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: memoryview_toreadonly
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - memoryview_toreadonly_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_toreadonly(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memoryview_tolist_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: memoryview_tolist
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - memoryview_tolist_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_tolist(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:286,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:288,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:305,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:308,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:319,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:321,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:325,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:326,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:331,1
    - Dst: memoryview_tobytes_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:335,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 339
    functionName: memoryview_tobytes
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - memoryview_tobytes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_tobytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:384,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:386,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:386,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:403,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:407,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:422,1
    - Dst: memoryview_hex_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:426,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 430
    functionName: memoryview_hex
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - memoryview_hex_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_hex(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memoryview_count_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 444
    functionDepth: 5
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: memoryview_count
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - memoryview_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_count(PyObject *self, PyObject *value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:477,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:484,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:490,1
    - Dst: memoryview_index_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:494,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 498
    functionName: memoryview_index
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - _PyEval_SliceIndexNotNone
    - _PyArg_CheckPositional
    - memoryview_index_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_index(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncodingMap_size_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: EncodingMap_size
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - EncodingMap_size_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EncodingMap_size(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_title_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: unicode_title
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: unicode_capitalize
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: unicode_casefold
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:111,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:116,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:121,1
    - Dst: convert_uc
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:129,1
    - Dst: unicode_center_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 137
    functionName: unicode_center
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - convert_uc
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - unicode_center_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:163,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:166,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:167,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:174,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:180,1
    - Dst: unicode_count_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:184,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:185,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:188,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 192
    functionName: unicode_count
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - unicode_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_count(PyObject *str, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:228,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:230,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:230,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:247,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:251,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:260,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:261,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:265,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:269,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:270,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:277,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:278,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:282,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:286,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:287,1
    - Dst: unicode_encode_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:291,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 295
    functionName: unicode_encode
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - unicode_encode_impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:324,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:326,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:343,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:346,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:354,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:355,1
    - Dst: unicode_expandtabs_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 363
    functionName: unicode_expandtabs
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - unicode_expandtabs_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:390,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:393,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:394,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:401,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:407,1
    - Dst: unicode_find_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:411,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:412,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:415,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 419
    functionName: unicode_find
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - unicode_find_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_find(PyObject *str, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:446,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:449,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:450,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:457,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:463,1
    - Dst: unicode_index_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:467,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:468,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:471,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 475
    functionName: unicode_index
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_index_impl
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_index(PyObject *str, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isascii_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: unicode_isascii
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: unicode_islower
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: unicode_isupper
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: unicode_istitle
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: unicode_isspace
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: unicode_isalpha
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: unicode_isalnum
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: unicode_isdecimal
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: unicode_isdigit
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: unicode_isnumeric
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 5
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: unicode_isidentifier
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 726
    functionName: unicode_isprintable
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:763,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:768,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:771,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:773,1
    - Dst: convert_uc
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:781,1
    - Dst: unicode_ljust_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:785,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 789
    functionName: unicode_ljust
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - unicode_ljust_impl
    - convert_uc
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    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/cpython/Objects/clinic/unicodeobject.c.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 6
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: unicode_lower
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:829,1
    - Dst: unicode_strip_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:837,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 841
    functionName: unicode_strip
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:863,1
    - Dst: unicode_lstrip_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 875
    functionName: unicode_lstrip
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/unicodeobject.c.h:897,1
    - Dst: unicode_rstrip_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:905,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 909
    functionName: unicode_rstrip
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_rstrip_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:944,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:946,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:963,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:968,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:973,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:974,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:978,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:979,1
    - Dst: args::args
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:982,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:988,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:991,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:993,1
    - Dst: unicode_replace_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:999,1
    - Dst: count::count
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:999,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: 1003
      start: 931
    functionDepth: 7
    functionLinenumber: 931
    functionLinenumberEnd: 1003
    functionName: unicode_replace
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - unicode_replace_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - args::args
    - count::count
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1026,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1027,1
    - Dst: unicode_removeprefix_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1020
    functionDepth: 9
    functionLinenumber: 1020
    functionLinenumberEnd: 1035
    functionName: unicode_removeprefix
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - unicode_removeprefix_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_removeprefix(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1059,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1060,1
    - Dst: unicode_removesuffix_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1053
    functionDepth: 9
    functionLinenumber: 1053
    functionLinenumberEnd: 1068
    functionName: unicode_removesuffix
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - unicode_removesuffix_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_removesuffix(PyObject *self, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1095,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1098,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1099,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1106,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1112,1
    - Dst: unicode_rfind_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1117,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1120,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1124
    functionName: unicode_rfind
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - unicode_rfind_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rfind(PyObject *str, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1151,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1154,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1155,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1162,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1168,1
    - Dst: unicode_rindex_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1172,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1173,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1176,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1142
    functionDepth: 4
    functionLinenumber: 1142
    functionLinenumberEnd: 1180
    functionName: unicode_rindex
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - _PyEval_SliceIndex
    - unicode_rindex_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rindex(PyObject *str, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1203,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1208,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1211,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1213,1
    - Dst: convert_uc
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1221,1
    - Dst: unicode_rjust_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1196
    functionDepth: 3
    functionLinenumber: 1196
    functionLinenumberEnd: 1229
    functionName: unicode_rjust
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - unicode_rjust_impl
    - convert_uc
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1272,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1274,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1274,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1291,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1295,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1311,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1314,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1316,1
    - Dst: unicode_split_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1322,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1259
    functionDepth: 6
    functionLinenumber: 1259
    functionLinenumberEnd: 1326
    functionName: unicode_split
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - unicode_split_impl
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1397,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1399,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1399,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1416,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1420,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1436,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1439,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1441,1
    - Dst: unicode_rsplit_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1447,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1384
    functionDepth: 6
    functionLinenumber: 1384
    functionLinenumberEnd: 1451
    functionName: unicode_rsplit
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - unicode_rsplit_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1481,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1483,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1500,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1503,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1511,1
    - Dst: unicode_splitlines_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1468
    functionDepth: 4
    functionLinenumber: 1468
    functionLinenumberEnd: 1520
    functionName: unicode_splitlines
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - unicode_splitlines_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    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/cpython/Objects/clinic/unicodeobject.c.h:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1534
    functionDepth: 6
    functionLinenumber: 1534
    functionLinenumberEnd: 1538
    functionName: unicode_swapcase
    functionSourceFile: /src/cpython/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1568,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1575,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1576,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1583,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1584,1
    - Dst: unicode_maketrans_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1589,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1560
    functionDepth: 11
    functionLinenumber: 1560
    functionLinenumberEnd: 1593
    functionName: unicode_maketrans
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - unicode_maketrans_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_maketrans(PyObject *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_upper_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1624
    functionDepth: 6
    functionLinenumber: 1624
    functionLinenumberEnd: 1628
    functionName: unicode_upper
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1652,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1655,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1657,1
    - Dst: unicode_zfill_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1662,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1644
    functionDepth: 4
    functionLinenumber: 1644
    functionLinenumberEnd: 1666
    functionName: unicode_zfill
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - unicode_zfill_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_zfill(PyObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1696,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1703,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1709,1
    - Dst: unicode_startswith_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1713,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1717
    functionName: unicode_startswith
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - unicode_startswith_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_startswith(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1747,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1754,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1760,1
    - Dst: unicode_endswith_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1764,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1739
    functionDepth: 2
    functionLinenumber: 1739
    functionLinenumberEnd: 1768
    functionName: unicode_endswith
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_endswith_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_endswith(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1788,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1789,1
    - Dst: unicode___format___impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1782
    functionDepth: 8
    functionLinenumber: 1782
    functionLinenumberEnd: 1797
    functionName: unicode___format__
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - unicode___format___impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode___format__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_sizeof_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1811
    functionDepth: 4
    functionLinenumber: 1811
    functionLinenumberEnd: 1815
    functionName: unicode_sizeof
    functionSourceFile: /src/cpython/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: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1834,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1836,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1836,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1836,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1854,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1855,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1860,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1860,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1875,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1876,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1880,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1885,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1892,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1893,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1897,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1901,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1902,1
    - Dst: unicode_new_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1906,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1821
    functionDepth: 5
    functionLinenumber: 1821
    functionLinenumberEnd: 1910
    functionName: unicode_new
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - unicode_new_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:24,1
    - Dst: BaseException___reduce___impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:25,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: BaseException___reduce__
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:47,1
    - Dst: BaseException___setstate___impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:48,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: BaseException___setstate__
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException___setstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___setstate__(PyObject *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:71,1
    - Dst: BaseException_with_traceback_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:72,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: BaseException_with_traceback
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException_with_traceback_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_with_traceback(PyObject *self, PyObject *tb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/exceptions.c.h:96,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/exceptions.c.h:97,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:101,1
    - Dst: BaseException_add_note_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:102,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 107
    functionName: BaseException_add_note
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException_add_note_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_add_note(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:127,1
    - Dst: BaseException_args_get_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:128,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: BaseException_args_get
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException_args_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_args_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:152,1
    - Dst: BaseException_args_set_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:153,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: BaseException_args_set
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException_args_set_impl
    linkageType: ''
    returnType: int
    signature: int BaseException_args_set(PyObject *self, PyObject *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:177,1
    - Dst: BaseException___traceback___get_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:178,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: BaseException___traceback___get
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException___traceback___get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___traceback___get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:203,1
    - Dst: BaseException___traceback___set_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:204,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: BaseException___traceback___set
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException___traceback___set_impl
    linkageType: ''
    returnType: int
    signature: int BaseException___traceback___set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:228,1
    - Dst: BaseException___context___get_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:229,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: BaseException___context___get
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - BaseException___context___get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___context___get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:254,1
    - Dst: BaseException___context___set_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:255,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: BaseException___context___set
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - BaseException___context___set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int BaseException___context___set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:279,1
    - Dst: BaseException___cause___get_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:280,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: BaseException___cause___get
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseException___cause___get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException___cause___get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:305,1
    - Dst: BaseException___cause___set_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:306,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: BaseException___cause___set
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - BaseException___cause___set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int BaseException___cause___set(PyObject *self, PyObject *value, void
      *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:329,1
    - Dst: BaseExceptionGroup_derive_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:330,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - excs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 334
    functionName: BaseExceptionGroup_derive
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - BaseExceptionGroup_derive_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseExceptionGroup_derive(PyObject *self, PyObject *excs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:353,1
    - Dst: BaseExceptionGroup_split_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:354,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - matcher_value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 348
    functionDepth: 6
    functionLinenumber: 348
    functionLinenumberEnd: 358
    functionName: BaseExceptionGroup_split
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseExceptionGroup_split_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseExceptionGroup_split(PyObject *self, PyObject *matcher_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:377,1
    - Dst: BaseExceptionGroup_subgroup_impl
      Src: /src/cpython/Objects/clinic/exceptions.c.h:378,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/exceptions.c.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - matcher_value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 6
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: BaseExceptionGroup_subgroup
    functionSourceFile: /src/cpython/Objects/clinic/exceptions.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - BaseExceptionGroup_subgroup_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseExceptionGroup_subgroup(PyObject *self, PyObject *matcher_value)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:30,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:32,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:32,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:32,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:50,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:51,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:56,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:56,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:71,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:72,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:76,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:80,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:81,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:88,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:89,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:93,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:97,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:98,1
    - Dst: bytearray___init___impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:102,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 106
    functionName: bytearray___init__
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - bytearray___init___impl
    linkageType: ''
    returnType: int
    signature: int bytearray___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:136,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:143,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:149,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:153,1
    - Dst: bytearray_find_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:154,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 159
    functionName: bytearray_find
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - bytearray_find_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_find(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:187,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:194,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:200,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:204,1
    - Dst: bytearray_count_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:205,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:206,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 210
    functionName: bytearray_count
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_count_impl
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_count(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_clear_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 5
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: bytearray_clear
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:247,1
    - Dst: bytearray_copy_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:248,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: bytearray_copy
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_copy_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:282,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:289,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:295,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:299,1
    - Dst: bytearray_index_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:300,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:301,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 5
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: bytearray_index
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_index_impl
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_index(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:335,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:342,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:348,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:352,1
    - Dst: bytearray_rfind_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:353,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 358
    functionName: bytearray_rfind
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    - bytearray_rfind_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rfind(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:388,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:395,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:401,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:405,1
    - Dst: bytearray_rindex_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:406,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:407,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 411
    functionName: bytearray_rindex
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_rindex_impl
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rindex(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:441,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:448,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:454,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:458,1
    - Dst: bytearray_startswith_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:459,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:460,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 433
    functionDepth: 4
    functionLinenumber: 433
    functionLinenumberEnd: 464
    functionName: bytearray_startswith
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_startswith_impl
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_startswith(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:494,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:501,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:507,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:511,1
    - Dst: bytearray_endswith_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:512,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 517
    functionName: bytearray_endswith
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_endswith_impl
    - _PyEval_SliceIndex
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_endswith(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:541,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:544,1
    - Dst: bytearray_removeprefix_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:545,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:546,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 555
    functionName: bytearray_removeprefix
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyObject_GetBuffer
    - PyBuffer_Release
    - bytearray_removeprefix_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_removeprefix(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:579,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:582,1
    - Dst: bytearray_removesuffix_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:583,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:584,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 573
    functionDepth: 4
    functionLinenumber: 573
    functionLinenumberEnd: 593
    functionName: bytearray_removesuffix
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_removesuffix_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_removesuffix(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:618,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:621,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:623,1
    - Dst: bytearray_resize_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:628,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 610
    functionDepth: 5
    functionLinenumber: 610
    functionLinenumberEnd: 632
    functionName: bytearray_resize
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - bytearray_resize_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_resize(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:666,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:668,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:685,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:689,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:700,1
    - Dst: bytearray_translate_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:701,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:702,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 653
    functionDepth: 5
    functionLinenumber: 653
    functionLinenumberEnd: 706
    functionName: bytearray_translate
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - bytearray_translate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_translate(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:732,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:735,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:738,1
    - Dst: bytearray_maketrans_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:741,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:746,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:750,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 754
    functionName: bytearray_maketrans
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_maketrans_impl
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_maketrans(PyObject *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:784,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:787,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:790,1
    - Dst: PyBUF_SIMPLE::PyBUF_SIMPLE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:790,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:798,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:801,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:803,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:809,1
    - Dst: bytearray_replace_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:810,1
    - Dst: count::count
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:810,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:811,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:816,1
    - Dst: obj::obj
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:819,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 824
    functionName: bytearray_replace
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyBUF_SIMPLE::PyBUF_SIMPLE
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - bytearray_replace_impl
    - obj::obj
    - count::count
    - PyObject_GetBuffer
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:860,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:862,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:862,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:879,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:883,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:899,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:901,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:902,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:904,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:910,1
    - Dst: bytearray_split_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:911,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:912,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 916
    functionName: bytearray_split
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_split_impl
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:942,1
    - Dst: bytearray_partition_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:943,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 937
    functionDepth: 4
    functionLinenumber: 937
    functionLinenumberEnd: 947
    functionName: bytearray_partition
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_partition_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_partition(PyObject *self, PyObject *sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:974,1
    - Dst: bytearray_rpartition_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:975,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 969
    functionDepth: 4
    functionLinenumber: 969
    functionLinenumberEnd: 979
    functionName: bytearray_rpartition
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_rpartition_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rpartition(PyObject *self, PyObject *sep)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1017,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1019,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1019,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1036,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1040,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1056,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1059,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1061,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1067,1
    - Dst: bytearray_rsplit_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1068,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1069,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1073
    functionName: bytearray_rsplit
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - bytearray_rsplit_impl
    - PyVarObject_HEAD_INIT
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1092,1
    - Dst: bytearray_reverse_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1093,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1097
    functionName: bytearray_reverse
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_reverse_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reverse(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1123,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1128,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1133,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1138,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1141,1
    - Dst: bytearray_insert_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1142,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1116
    functionDepth: 4
    functionLinenumber: 1116
    functionLinenumberEnd: 1147
    functionName: bytearray_insert
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - bytearray_insert_impl
    - _PyArg_CheckPositional
    - _getbytevalue
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_insert(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1170,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1173,1
    - Dst: bytearray_append_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1174,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1164
    functionDepth: 4
    functionLinenumber: 1164
    functionLinenumberEnd: 1179
    functionName: bytearray_append
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _getbytevalue
    - bytearray_append_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_append(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1201,1
    - Dst: bytearray_extend_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1202,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable_of_ints
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1196
    functionDepth: 6
    functionLinenumber: 1196
    functionLinenumberEnd: 1206
    functionName: bytearray_extend
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_extend_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_extend(PyObject *self, PyObject *iterable_of_ints)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1232,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1240,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1245,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1251,1
    - Dst: bytearray_pop_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1252,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1226
    functionDepth: 4
    functionLinenumber: 1226
    functionLinenumberEnd: 1257
    functionName: bytearray_pop
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - bytearray_pop_impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_pop(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1280,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1283,1
    - Dst: bytearray_remove_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1284,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1289
    functionName: bytearray_remove
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _getbytevalue
    - Py_END_CRITICAL_SECTION
    - bytearray_remove_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_remove(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1311,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1319,1
    - Dst: bytearray_strip_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1320,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1305
    functionDepth: 5
    functionLinenumber: 1305
    functionLinenumberEnd: 1325
    functionName: bytearray_strip
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - bytearray_strip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_strip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1347,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1355,1
    - Dst: bytearray_lstrip_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1356,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1341
    functionDepth: 5
    functionLinenumber: 1341
    functionLinenumberEnd: 1361
    functionName: bytearray_lstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - bytearray_lstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_lstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1383,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1391,1
    - Dst: bytearray_rstrip_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1392,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1377
    functionDepth: 5
    functionLinenumber: 1377
    functionLinenumberEnd: 1397
    functionName: bytearray_rstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - bytearray_rstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1434,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1436,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1436,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1453,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1457,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1466,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1467,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1471,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1475,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1476,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1483,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1484,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1488,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1492,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1493,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1497,1
    - Dst: bytearray_decode_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1498,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1499,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1421
    functionDepth: 5
    functionLinenumber: 1421
    functionLinenumberEnd: 1503
    functionName: bytearray_decode
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - bytearray_decode_impl
    - _Py_ID
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_decode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1526,1
    - Dst: bytearray_join_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1527,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1531
    functionName: bytearray_join
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_join_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_join(PyObject *self, PyObject *iterable_of_bytes)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1561,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1563,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1580,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1583,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1591,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1596,1
    - Dst: bytearray_splitlines_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1597,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1548
    functionDepth: 2
    functionLinenumber: 1548
    functionLinenumberEnd: 1602
    functionName: bytearray_splitlines
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - bytearray_splitlines_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_fromhex_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1619
    functionDepth: 4
    functionLinenumber: 1619
    functionLinenumberEnd: 1627
    functionName: bytearray_fromhex
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_fromhex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_fromhex(PyObject *type, PyObject *string)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1671,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1673,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1673,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1690,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1694,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1708,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1709,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1713,1
    - Dst: bytearray_hex_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1714,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1715,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1658
    functionDepth: 4
    functionLinenumber: 1658
    functionLinenumberEnd: 1719
    functionName: bytearray_hex
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - bytearray_hex_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_hex(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1738,1
    - Dst: bytearray_reduce_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1739,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1743
    functionName: bytearray_reduce
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - bytearray_reduce_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1763,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1769,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1770,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1774,1
    - Dst: bytearray_reduce_ex_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1775,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1757
    functionDepth: 4
    functionLinenumber: 1757
    functionLinenumberEnd: 1780
    functionName: bytearray_reduce_ex
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - bytearray_reduce_ex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reduce_ex(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_sizeof_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1794
    functionDepth: 2
    functionLinenumber: 1794
    functionLinenumberEnd: 1798
    functionName: bytearray_sizeof
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_sizeof_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_sizeof(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: method___reduce___impl
      Src: /src/cpython/Objects/clinic/classobject.c.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: method___reduce__
    functionSourceFile: /src/cpython/Objects/clinic/classobject.c.h
    functionUses: 0
    functionsReached:
    - method___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/clinic/classobject.c.h:42,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/classobject.c.h:45,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/classobject.c.h:45,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/classobject.c.h:48,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/classobject.c.h:49,1
    - Dst: method_new_impl
      Src: /src/cpython/Objects/clinic/classobject.c.h:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: method_new
    functionSourceFile: /src/cpython/Objects/clinic/classobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - method_new_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/clinic/classobject.c.h:73,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/classobject.c.h:76,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/classobject.c.h:76,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/classobject.c.h:79,1
    - Dst: instancemethod_new_impl
      Src: /src/cpython/Objects/clinic/classobject.c.h:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 84
    functionName: instancemethod_new
    functionSourceFile: /src/cpython/Objects/clinic/classobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - instancemethod_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_is_integer_impl
      Src: /src/cpython/Objects/clinic/floatobject.c.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: 4
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: float_is_integer
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/floatobject.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: 2
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: float___trunc__
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: float___floor___impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: float___floor__
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float___floor___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___floor__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float___ceil___impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: float___ceil__
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float___ceil___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___ceil__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/floatobject.c.h:99,1
    - Dst: float___round___impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: float___round__
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/floatobject.c.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: float_conjugate
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/floatobject.c.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: float_hex
    functionSourceFile: /src/cpython/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_fromhex_impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: float_fromhex
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float_fromhex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_fromhex(PyObject *type, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_as_integer_ratio_impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: float_as_integer_ratio
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/floatobject.c.h:226,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/floatobject.c.h:229,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/floatobject.c.h:229,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/floatobject.c.h:232,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/clinic/floatobject.c.h:235,1
    - Dst: float_new_impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 241
    functionName: float_new
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - float_new_impl
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_from_number_impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: float_from_number
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float_from_number_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_from_number(PyObject *type, PyObject *number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float___getnewargs___impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: float___getnewargs__
    functionSourceFile: /src/cpython/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/cpython/Objects/clinic/floatobject.c.h:309,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/floatobject.c.h:310,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/floatobject.c.h:314,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/floatobject.c.h:318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/floatobject.c.h:319,1
    - Dst: float___getformat___impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 326
    functionName: float___getformat__
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float___getformat___impl
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___getformat__(PyObject *type, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/floatobject.c.h:346,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/floatobject.c.h:347,1
    - Dst: float___format___impl
      Src: /src/cpython/Objects/clinic/floatobject.c.h:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 355
    functionName: float___format__
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - float___format___impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___format__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: TOK_GET_MODE
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOK_GET_MODE(tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: TOK_GET_STRING_PREFIX
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOK_GET_STRING_PREFIX(tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Parser/pegen.h:195,1
    - Dst: _PyPegen_raise_error_known_location
      Src: /src/cpython/Parser/pegen.h:198,1
    - Dst: va_end
      Src: /src/cpython/Parser/pegen.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - p
    - errtype
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - errmsg
    argTypes:
    - Parser*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: RAISE_ERROR_KNOWN_LOCATION
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - _PyPegen_raise_error_known_location
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void *\nRAISE_ERROR_KNOWN_LOCATION(Parser *p, PyObject *errtype,\n
      \                          Py_ssize_t lineno, Py_ssize_t col_offset,\n                           Py_ssize_t
      end_lineno, Py_ssize_t end_col_offset,\n                           const char
      *errmsg, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: RAISE_SYNTAX_ERROR
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_SYNTAX_ERROR(msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: RAISE_INDENTATION_ERROR
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_INDENTATION_ERROR(msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN(msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: RAISE_SYNTAX_ERROR_KNOWN_RANGE
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: RAISE_SYNTAX_ERROR_STARTING_FROM
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_SYNTAX_ERROR_STARTING_FROM(a, msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: RAISE_SYNTAX_ERROR_INVALID_TARGET
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAISE_SYNTAX_ERROR_INVALID_TARGET(type, e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.h:217,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - result
    argTypes:
    - Parser*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/cpython/Parser/pegen.h
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: CHECK_CALL
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void CHECK_CALL(Parser *p, void *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.h:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - result
    argTypes:
    - Parser*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: CHECK_CALL_NULL_ALLOWED
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: void CHECK_CALL_NULL_ALLOWED(Parser *p, void *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: CHECK
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(type, result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: CHECK_NULL_ALLOWED
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NULL_ALLOWED(type, result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_NULL_ALLOWED
      Src: /src/cpython/Parser/pegen.h:242,1
    - Dst: _PyPegen_get_invalid_target
      Src: /src/cpython/Parser/pegen.h:242,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.h:251,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/pegen.h:254,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.h:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - type
    - e
    argTypes:
    - Parser*
    - TARGETS_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 259
    functionName: _RAISE_SYNTAX_ERROR_INVALID_TARGET
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - CHECK_NULL_ALLOWED
    - _PyPegen_get_expr_name
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _PyPegen_get_invalid_target
    linkageType: ''
    returnType: void
    signature: void _RAISE_SYNTAX_ERROR_INVALID_TARGET(Parser *p, TARGETS_TYPE type,
      void *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - seq
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: PyPegen_last_item
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyPegen_last_item(seq, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - seq
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: PyPegen_first_item
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyPegen_first_item(seq, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: UNUSED
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - tail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: EXTRA_EXPR
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_EXPR(head, tail)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/pegen.h:279,1
    - Dst: _PyPegen_new_type_comment
      Src: /src/cpython/Parser/pegen.h:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - tc
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: NEW_TYPE_COMMENT
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - PyBytes_AsString
    - _PyPegen_new_type_comment
    linkageType: ''
    returnType: void
    signature: void NEW_TYPE_COMMENT(Parser *p, Token *tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen.h:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - version
    - msg
    - node
    argTypes:
    - Parser*
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: INVALID_VERSION_CHECK
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - RAISE_SYNTAX_ERROR
    linkageType: ''
    returnType: void
    signature: void INVALID_VERSION_CHECK(Parser *p, int version, char *msg, void
      *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - version
    - ','
    - msg
    - ','
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: CHECK_VERSION
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VERSION(type, version, msg, node)
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - c1
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: _PyToken_OneChar
    functionSourceFile: /src/cpython/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: 197
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 197
    functionName: _PyToken_TwoChars
    functionSourceFile: /src/cpython/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: 250
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 250
    functionName: _PyToken_ThreeChars
    functionSourceFile: /src/cpython/Parser/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyToken_ThreeChars(int c1, int c2, int c3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: D
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1670
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:984,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:984,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:985,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:998,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:998,1
    - Dst: statements_rule
      Src: /src/cpython/Parser/parser.c:1002,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1004,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1007,1
    - Dst: _PyPegen_make_module
      Src: /src/cpython/Parser/parser.c:1008,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1009,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1017,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1017,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1024
    functionName: file_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - statements_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_make_module
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty file_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1030,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1030,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1031,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1044,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1044,1
    - Dst: statement_newline_rule
      Src: /src/cpython/Parser/parser.c:1047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1050,1
    - Dst: _PyAST_Interactive
      Src: /src/cpython/Parser/parser.c:1051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1067
    functionName: interactive_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - D
    - _PyAST_Interactive
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - statement_newline_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty interactive_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1073,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1073,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1087,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1087,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:1092,1
    - Dst: _loop0_1_rule
      Src: /src/cpython/Parser/parser.c:1094,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1099,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1099,1
    - Dst: _PyAST_Expression
      Src: /src/cpython/Parser/parser.c:1100,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1101,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1116
    functionName: eval_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _loop0_1_rule
    - expressions_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _PyAST_Expression
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty eval_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1122,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1122,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1123,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1136,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1136,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1145,1
    - Dst: type_expressions_rule
      Src: /src/cpython/Parser/parser.c:1147,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1149,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1151,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:1153,1
    - Dst: _loop0_1_rule
      Src: /src/cpython/Parser/parser.c:1155,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1157,1
    - Dst: _PyAST_FunctionType
      Src: /src/cpython/Parser/parser.c:1161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1170,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1172
    functionName: func_type_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - type_expressions_rule
    - expression_rule
    - _loop0_1_rule
    - PyErr_Occurred
    - D
    - _PyAST_FunctionType
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty func_type_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1183,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1183,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1197,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1197,1
    - Dst: _loop1_2_rule
      Src: /src/cpython/Parser/parser.c:1200,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1203,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1203,1
    - Dst: _PyPegen_seq_flatten
      Src: /src/cpython/Parser/parser.c:1204,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1205,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1213,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1220
    functionName: statements_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _loop1_2_rule
    - _PyPegen_seq_flatten
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      statements_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1226,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1226,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1227,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1240,1
    - Dst: compound_stmt_rule
      Src: /src/cpython/Parser/parser.c:1243,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1246,1
    - Dst: _PyPegen_register_stmts
      Src: /src/cpython/Parser/parser.c:1247,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1248,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1256,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1256,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1264,1
    - Dst: simple_stmts_rule
      Src: /src/cpython/Parser/parser.c:1267,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1270,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1270,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1280,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1280,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1287
    functionName: statement_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - compound_stmt_rule
    - PyErr_Occurred
    - simple_stmts_rule
    - _PyPegen_register_stmts
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      statement_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1293,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1293,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1307,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1307,1
    - Dst: compound_stmt_rule
      Src: /src/cpython/Parser/parser.c:1310,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1313,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1313,1
    - Dst: _PyPegen_register_stmts
      Src: /src/cpython/Parser/parser.c:1314,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1314,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1315,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1323,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1330
    functionName: single_compound_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - compound_stmt_rule
    - PyErr_Occurred
    - _PyPegen_register_stmts
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      single_compound_stmt_rule(Parser *p)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1336,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1336,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1337,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:1345,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1351,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1353,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1359,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1359,1
    - Dst: single_compound_stmt_rule
      Src: /src/cpython/Parser/parser.c:1363,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1365,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1368,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1368,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1370,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1378,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1378,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1386,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1386,1
    - Dst: simple_stmts_rule
      Src: /src/cpython/Parser/parser.c:1389,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1392,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1392,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1397,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1397,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1405,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1408,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1411,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1411,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:1412,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1418,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1420,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1421,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:1421,1
    - Dst: _PyAST_Pass
      Src: /src/cpython/Parser/parser.c:1421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1422,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1430,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1430,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1438,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1438,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1441,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1444,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1444,1
    - Dst: _PyPegen_interactive_exit
      Src: /src/cpython/Parser/parser.c:1445,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1446,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1454,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 97
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1461
    functionName: statement_newline_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - simple_stmts_rule
    - _PyAST_Pass
    - D
    - single_compound_stmt_rule
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_interactive_exit
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      statement_newline_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1467,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1467,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1468,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1481,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1481,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:1485,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1487,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1489,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1492,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1492,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1493,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1494,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1502,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1510,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1510,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1512,1
    - Dst: _gather_4_rule
      Src: /src/cpython/Parser/parser.c:1516,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1518,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1523,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1525,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1533,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1533,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1540
    functionName: simple_stmts_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - UNUSED
    - _gather_4_rule
    - _PyPegen_lookahead_with_int
    - simple_stmt_rule
    - PyErr_Occurred
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      simple_stmts_rule(Parser *p)'
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1560,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1560,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1561,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:1568,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:1573,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1579,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1587,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1587,1
    - Dst: assignment_rule
      Src: /src/cpython/Parser/parser.c:1590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1593,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1593,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1598,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1606,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1606,1
    - Dst: _PyPegen_lookahead_with_string
      Src: /src/cpython/Parser/parser.c:1609,1
    - Dst: type_alias_rule
      Src: /src/cpython/Parser/parser.c:1611,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1614,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1614,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1619,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1627,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:1630,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1633,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1633,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:1634,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1640,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1642,1
    - Dst: _PyAST_Expr
      Src: /src/cpython/Parser/parser.c:1643,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1644,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1652,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1652,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1660,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1660,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1663,1
    - Dst: return_stmt_rule
      Src: /src/cpython/Parser/parser.c:1665,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1668,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1668,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1673,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1673,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1681,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1681,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:1684,1
    - Dst: import_stmt_rule
      Src: /src/cpython/Parser/parser.c:1686,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1689,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1694,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1694,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1702,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1702,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1705,1
    - Dst: raise_stmt_rule
      Src: /src/cpython/Parser/parser.c:1707,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1710,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1710,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1715,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1723,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1723,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1726,1
    - Dst: pass_stmt_rule
      Src: /src/cpython/Parser/parser.c:1728,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1731,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1736,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1744,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1744,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1747,1
    - Dst: del_stmt_rule
      Src: /src/cpython/Parser/parser.c:1749,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1752,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1757,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1757,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1765,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1765,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1768,1
    - Dst: yield_stmt_rule
      Src: /src/cpython/Parser/parser.c:1770,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1773,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1773,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1778,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1786,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1786,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1789,1
    - Dst: assert_stmt_rule
      Src: /src/cpython/Parser/parser.c:1791,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1794,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1794,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1799,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1807,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1810,1
    - Dst: break_stmt_rule
      Src: /src/cpython/Parser/parser.c:1812,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1815,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1815,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1820,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1820,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1828,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1828,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1831,1
    - Dst: continue_stmt_rule
      Src: /src/cpython/Parser/parser.c:1833,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1836,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1836,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1841,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1841,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1849,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1849,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1852,1
    - Dst: global_stmt_rule
      Src: /src/cpython/Parser/parser.c:1854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1857,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1862,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1862,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1870,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1870,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1873,1
    - Dst: nonlocal_stmt_rule
      Src: /src/cpython/Parser/parser.c:1875,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1878,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1878,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1883,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1883,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:1888,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 232
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1891
    functionName: simple_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_expressions_rule
    - yield_stmt_rule
    - UNUSED
    - _Pypegen_stack_overflow
    - _PyPegen_lookahead_with_string
    - assert_stmt_rule
    - PyErr_Occurred
    - _PyAST_Expr
    - pass_stmt_rule
    - _PyPegen_insert_memo
    - fprintf
    - continue_stmt_rule
    - _PyPegen_fill_token
    - del_stmt_rule
    - type_alias_rule
    - nonlocal_stmt_rule
    - return_stmt_rule
    - raise_stmt_rule
    - assignment_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_is_memoized
    - _PyPegen_lookahead_with_int
    - global_stmt_rule
    - import_stmt_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - break_stmt_rule
    - PyThreadState_Get
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty simple_stmt_rule(Parser *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1905,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1905,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1906,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1919,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1919,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:1922,1
    - Dst: function_def_rule
      Src: /src/cpython/Parser/parser.c:1924,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1932,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1940,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1940,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1943,1
    - Dst: if_stmt_rule
      Src: /src/cpython/Parser/parser.c:1945,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1948,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1948,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1953,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1953,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1961,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1961,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:1964,1
    - Dst: class_def_rule
      Src: /src/cpython/Parser/parser.c:1966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1974,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1982,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1982,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:1985,1
    - Dst: with_stmt_rule
      Src: /src/cpython/Parser/parser.c:1987,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1990,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1990,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1995,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1995,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2003,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2003,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:2006,1
    - Dst: for_stmt_rule
      Src: /src/cpython/Parser/parser.c:2008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2011,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2011,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2016,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2016,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2024,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:2027,1
    - Dst: try_stmt_rule
      Src: /src/cpython/Parser/parser.c:2029,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2037,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2045,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:2048,1
    - Dst: while_stmt_rule
      Src: /src/cpython/Parser/parser.c:2050,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2053,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2053,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2058,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2066,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2066,1
    - Dst: match_stmt_rule
      Src: /src/cpython/Parser/parser.c:2069,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2072,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2072,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2077,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 125
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 2084
    functionName: compound_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - try_stmt_rule
    - _PyPegen_lookahead_with_int
    - if_stmt_rule
    - class_def_rule
    - while_stmt_rule
    - for_stmt_rule
    - function_def_rule
    - D
    - match_stmt_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - fprintf
    - with_stmt_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty compound_stmt_rule(Parser *p)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:2095,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2095,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2096,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:2104,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2110,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2118,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2118,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:2124,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2126,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2128,1
    - Dst: _tmp_10_rule
      Src: /src/cpython/Parser/parser.c:2130,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2133,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2133,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2134,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2140,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2142,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:2143,1
    - Dst: _PyAST_AnnAssign
      Src: /src/cpython/Parser/parser.c:2143,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:2143,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:2143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2144,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2152,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2152,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2160,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2160,1
    - Dst: _tmp_11_rule
      Src: /src/cpython/Parser/parser.c:2166,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2168,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2170,1
    - Dst: _tmp_10_rule
      Src: /src/cpython/Parser/parser.c:2172,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2175,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2175,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2176,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2182,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2184,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:2185,1
    - Dst: _PyAST_AnnAssign
      Src: /src/cpython/Parser/parser.c:2185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2186,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2194,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2194,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2202,1
    - Dst: _loop1_12_rule
      Src: /src/cpython/Parser/parser.c:2207,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:2209,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:2211,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2213,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2216,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2216,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2217,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2223,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2225,1
    - Dst: _PyAST_Assign
      Src: /src/cpython/Parser/parser.c:2226,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:2226,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2227,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2235,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2243,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2243,1
    - Dst: single_target_rule
      Src: /src/cpython/Parser/parser.c:2249,1
    - Dst: augassign_rule
      Src: /src/cpython/Parser/parser.c:2251,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:2255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2258,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2258,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2259,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2265,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2267,1
    - Dst: _PyAST_AugAssign
      Src: /src/cpython/Parser/parser.c:2268,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2269,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2277,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2277,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2289,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2289,1
    - Dst: invalid_assignment_rule
      Src: /src/cpython/Parser/parser.c:2292,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2295,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2295,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2300,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2300,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2092
    functionDepth: 3
    functionLinenumber: 2092
    functionLinenumberEnd: 2307
    functionName: assignment_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - CHECK
    - _PyPegen_set_expr_context
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - CHECK_VERSION
    - fprintf
    - _PyAST_Assign
    - augassign_rule
    - annotated_rhs_rule
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - invalid_assignment_rule
    - _PyAST_AugAssign
    - _tmp_10_rule
    - NEW_TYPE_COMMENT
    - _PyPegen_expect_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _tmp_11_rule
    - expression_rule
    - single_target_rule
    - _PyPegen_lookahead_with_int
    - D
    - _loop1_12_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_AnnAssign
    - PyThreadState_Get
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty assignment_rule(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:2313,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2313,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2314,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2327,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2327,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:2330,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2338,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2346,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2346,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:2349,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2352,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2357,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2357,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2310
    functionDepth: 1
    functionLinenumber: 2310
    functionLinenumberEnd: 2364
    functionName: annotated_rhs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_expressions_rule
    - D
    - yield_expr_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty annotated_rhs_rule(Parser *p)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:2383,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2383,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2384,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2397,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2397,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2400,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2403,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2403,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2404,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2405,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2413,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2413,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2421,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2421,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2424,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2427,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2427,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2428,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2437,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2437,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2445,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2448,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2451,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2452,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2453,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2461,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2461,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2469,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2469,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2472,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2475,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2475,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:2476,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2476,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2485,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2485,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2493,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2493,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2496,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2499,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2499,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2500,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2509,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2517,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2517,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2523,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2524,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2525,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2533,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2533,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2541,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2541,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2544,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2547,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2548,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2549,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2557,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2565,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2565,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2568,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2571,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2571,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2572,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2573,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2581,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2589,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2592,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2595,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2595,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2596,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2597,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2605,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2613,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2616,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2619,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2620,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2621,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2629,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2629,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2637,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2637,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2640,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2643,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2644,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2645,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2653,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2653,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2661,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2661,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2664,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2667,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2668,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2669,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2677,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2677,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2685,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2685,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2688,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2691,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2691,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2692,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2693,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2701,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 260
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2380
    functionDepth: 1
    functionLinenumber: 2380
    functionLinenumberEnd: 2708
    functionName: augassign_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_augoperator
    - PyErr_Occurred
    - CHECK_VERSION
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: AugOperator
    signature: 'AugOperator *

      augassign_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:2714,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2714,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2715,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:2723,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2729,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2737,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2737,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2741,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:2743,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2746,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2746,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2747,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2753,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2755,1
    - Dst: _PyAST_Return
      Src: /src/cpython/Parser/parser.c:2756,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2757,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2765,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2765,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2711
    functionDepth: 1
    functionLinenumber: 2711
    functionLinenumberEnd: 2772
    functionName: return_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - star_expressions_rule
    - _PyAST_Return
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty return_stmt_rule(Parser *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:2782,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2782,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2783,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:2791,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2797,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2805,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2805,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2811,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2813,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2815,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2820,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2820,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2821,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2827,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2829,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Parser/parser.c:2830,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2839,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2839,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2847,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2847,1
    - Dst: invalid_raise_stmt_rule
      Src: /src/cpython/Parser/parser.c:2850,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2853,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2853,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2858,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2858,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2866,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2866,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2870,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2872,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2875,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2875,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2876,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2882,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2884,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Parser/parser.c:2885,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2886,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2894,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2902,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2905,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2908,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2908,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2909,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2915,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2917,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Parser/parser.c:2918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2919,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2927,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 110
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2779
    functionDepth: 1
    functionLinenumber: 2779
    functionLinenumberEnd: 2934
    functionName: raise_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_Raise
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - invalid_raise_stmt_rule
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty raise_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:2940,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2940,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2941,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:2949,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2955,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2963,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2963,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2969,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2970,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2976,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2978,1
    - Dst: _PyAST_Pass
      Src: /src/cpython/Parser/parser.c:2979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2980,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2988,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2988,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2937
    functionDepth: 1
    functionLinenumber: 2937
    functionLinenumberEnd: 2995
    functionName: pass_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_Pass
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty pass_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3001,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3001,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3002,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3010,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3016,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3018,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3024,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3027,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3030,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3030,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3031,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3037,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3039,1
    - Dst: _PyAST_Break
      Src: /src/cpython/Parser/parser.c:3040,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3049,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3049,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 2998
    functionDepth: 1
    functionLinenumber: 2998
    functionLinenumberEnd: 3056
    functionName: break_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_Break
    - _PyPegen_fill_token
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty break_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3062,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3062,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3063,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3071,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3077,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3079,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3085,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3085,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3088,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3091,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3091,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3092,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3098,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3100,1
    - Dst: _PyAST_Continue
      Src: /src/cpython/Parser/parser.c:3101,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3102,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3110,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3059
    functionDepth: 1
    functionLinenumber: 3059
    functionLinenumberEnd: 3117
    functionName: continue_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - D
    - _PyAST_Continue
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty continue_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3123,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3123,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3124,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3132,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3138,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3140,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3146,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3146,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3150,1
    - Dst: _gather_14_rule
      Src: /src/cpython/Parser/parser.c:3152,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3155,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3155,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3156,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3162,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3164,1
    - Dst: _PyAST_Global
      Src: /src/cpython/Parser/parser.c:3165,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:3165,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:3165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3166,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3174,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3120
    functionDepth: 1
    functionLinenumber: 3120
    functionLinenumberEnd: 3181
    functionName: global_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _gather_14_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_Global
    - _PyPegen_map_names_to_ids
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty global_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3187,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3187,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3188,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3196,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3202,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3204,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3210,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3214,1
    - Dst: _gather_14_rule
      Src: /src/cpython/Parser/parser.c:3216,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3219,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3219,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3220,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3226,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3228,1
    - Dst: _PyAST_Nonlocal
      Src: /src/cpython/Parser/parser.c:3229,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:3229,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:3229,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3230,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3238,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3184
    functionDepth: 1
    functionLinenumber: 3184
    functionLinenumberEnd: 3245
    functionName: nonlocal_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _gather_14_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Nonlocal
    - PyErr_Occurred
    - _PyPegen_map_names_to_ids
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty nonlocal_stmt_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3251,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3251,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3252,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3260,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3266,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3268,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3274,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3274,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3278,1
    - Dst: del_targets_rule
      Src: /src/cpython/Parser/parser.c:3280,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:3282,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3285,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3285,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3286,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3292,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3294,1
    - Dst: _PyAST_Delete
      Src: /src/cpython/Parser/parser.c:3295,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3296,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3304,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3312,1
    - Dst: invalid_del_stmt_rule
      Src: /src/cpython/Parser/parser.c:3315,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3318,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3318,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3323,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3323,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3248
    functionDepth: 1
    functionLinenumber: 3248
    functionLinenumberEnd: 3330
    functionName: del_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Delete
    - PyErr_Occurred
    - invalid_del_stmt_rule
    - del_targets_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty del_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3336,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3336,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3337,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3345,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3351,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3353,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3359,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3359,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:3362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3365,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3365,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3366,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3372,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3374,1
    - Dst: _PyAST_Expr
      Src: /src/cpython/Parser/parser.c:3375,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3384,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3384,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3333
    functionDepth: 1
    functionLinenumber: 3333
    functionLinenumberEnd: 3391
    functionName: yield_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_Expr
    - D
    - yield_expr_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty yield_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3397,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3397,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3398,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3406,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3412,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3414,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3420,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3425,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:3427,1
    - Dst: _tmp_16_rule
      Src: /src/cpython/Parser/parser.c:3429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3432,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3433,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3439,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3441,1
    - Dst: _PyAST_Assert
      Src: /src/cpython/Parser/parser.c:3442,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3451,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3458
      start: 3394
    functionDepth: 1
    functionLinenumber: 3394
    functionLinenumberEnd: 3458
    functionName: assert_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Assert
    - _tmp_16_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty assert_stmt_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3464,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3464,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3478,1
    - Dst: invalid_import_rule
      Src: /src/cpython/Parser/parser.c:3481,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3484,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3484,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3489,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3489,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3497,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3497,1
    - Dst: import_name_rule
      Src: /src/cpython/Parser/parser.c:3500,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3503,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3508,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3508,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3516,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3516,1
    - Dst: import_from_rule
      Src: /src/cpython/Parser/parser.c:3519,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3522,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3522,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3527,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3527,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3461
    functionDepth: 1
    functionLinenumber: 3461
    functionLinenumberEnd: 3534
    functionName: import_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - import_from_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - import_name_rule
    - invalid_import_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty import_stmt_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3540,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3540,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3541,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3549,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3555,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3563,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3563,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3567,1
    - Dst: dotted_as_names_rule
      Src: /src/cpython/Parser/parser.c:3569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3572,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3572,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3573,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3579,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3581,1
    - Dst: _PyAST_Import
      Src: /src/cpython/Parser/parser.c:3582,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3583,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3591,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3537
    functionDepth: 1
    functionLinenumber: 3537
    functionLinenumberEnd: 3598
    functionName: import_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - dotted_as_names_rule
    - _PyAST_Import
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty import_name_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3606,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3606,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3607,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3615,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3621,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3623,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3629,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3629,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3636,1
    - Dst: _loop0_17_rule
      Src: /src/cpython/Parser/parser.c:3638,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:3640,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3642,1
    - Dst: import_from_targets_rule
      Src: /src/cpython/Parser/parser.c:3644,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3647,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3647,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3648,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3654,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3656,1
    - Dst: _PyPegen_checked_future_import
      Src: /src/cpython/Parser/parser.c:3657,1
    - Dst: _PyPegen_seq_count_dots
      Src: /src/cpython/Parser/parser.c:3657,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3666,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3666,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3674,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3674,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3680,1
    - Dst: _loop1_18_rule
      Src: /src/cpython/Parser/parser.c:3682,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3684,1
    - Dst: import_from_targets_rule
      Src: /src/cpython/Parser/parser.c:3686,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3689,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3690,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3696,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3698,1
    - Dst: _PyAST_ImportFrom
      Src: /src/cpython/Parser/parser.c:3699,1
    - Dst: _PyPegen_seq_count_dots
      Src: /src/cpython/Parser/parser.c:3699,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3700,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3708,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3715
      start: 3603
    functionDepth: 1
    functionLinenumber: 3603
    functionLinenumberEnd: 3715
    functionName: import_from_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - dotted_name_rule
    - _PyPegen_fill_token
    - _loop1_18_rule
    - _PyPegen_checked_future_import
    - PyErr_Occurred
    - _loop0_17_rule
    - _PyAST_ImportFrom
    - import_from_targets_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_count_dots
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty import_from_rule(Parser *p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3725,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3725,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3726,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3734,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3740,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3742,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3748,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3748,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3752,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3755,1
    - Dst: import_from_as_names_rule
      Src: /src/cpython/Parser/parser.c:3757,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3759,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3761,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3764,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3774,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3774,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3782,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3782,1
    - Dst: import_from_as_names_rule
      Src: /src/cpython/Parser/parser.c:3785,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:3787,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3790,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3790,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3795,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3803,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3803,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3806,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3809,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3809,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3810,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3816,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3818,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:3819,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:3819,1
    - Dst: _PyPegen_alias_for_star
      Src: /src/cpython/Parser/parser.c:3819,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3820,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3828,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3836,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3836,1
    - Dst: invalid_import_from_targets_rule
      Src: /src/cpython/Parser/parser.c:3839,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3842,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3842,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3847,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3847,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 94
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3854
      start: 3722
    functionDepth: 1
    functionLinenumber: 3722
    functionLinenumberEnd: 3854
    functionName: import_from_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - invalid_import_from_targets_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - import_from_as_names_rule
    - _PyPegen_alias_for_star
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: asdl_alias_seq
    signature: 'asdl_alias_seq *

      import_from_targets_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3860,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3860,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3861,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3874,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3874,1
    - Dst: _gather_20_rule
      Src: /src/cpython/Parser/parser.c:3877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3880,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3880,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3882,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3890,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3890,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3857
    functionDepth: 1
    functionLinenumber: 3857
    functionLinenumberEnd: 3897
    functionName: import_from_as_names_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _gather_20_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_alias_seq
    signature: 'asdl_alias_seq *

      import_from_as_names_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3903,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3903,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3904,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3912,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3918,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3920,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3926,1
    - Dst: invalid_import_from_as_name_rule
      Src: /src/cpython/Parser/parser.c:3929,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3932,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3937,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3945,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:3949,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:3951,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3954,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3954,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3955,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3961,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3963,1
    - Dst: _PyAST_alias
      Src: /src/cpython/Parser/parser.c:3964,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3965,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3973,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3973,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3980
      start: 3900
    functionDepth: 1
    functionLinenumber: 3900
    functionLinenumberEnd: 3980
    functionName: import_from_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_alias
    - PyErr_Occurred
    - _tmp_21_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - invalid_import_from_as_name_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: alias_ty
    signature: alias_ty import_from_as_name_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3986,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3986,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3987,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4000,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4000,1
    - Dst: _gather_23_rule
      Src: /src/cpython/Parser/parser.c:4003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4006,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4006,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4016,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4016,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4023
      start: 3983
    functionDepth: 1
    functionLinenumber: 3983
    functionLinenumberEnd: 4023
    functionName: dotted_as_names_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _gather_23_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_alias_seq
    signature: 'asdl_alias_seq *

      dotted_as_names_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4029,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4029,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4030,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:4038,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4044,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4046,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4052,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4052,1
    - Dst: invalid_dotted_as_name_rule
      Src: /src/cpython/Parser/parser.c:4055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4058,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4063,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4071,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4071,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:4075,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:4077,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4080,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4080,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:4081,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4087,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4089,1
    - Dst: _PyAST_alias
      Src: /src/cpython/Parser/parser.c:4090,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4091,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4099,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4099,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4106
      start: 4026
    functionDepth: 1
    functionLinenumber: 4026
    functionLinenumberEnd: 4106
    functionName: dotted_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - dotted_name_rule
    - _PyPegen_fill_token
    - _PyAST_alias
    - PyErr_Occurred
    - _tmp_21_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - invalid_dotted_as_name_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: alias_ty
    signature: alias_ty dotted_as_name_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4114,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4114,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4115,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:4118,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:4125,1
    - Dst: dotted_name_raw
      Src: /src/cpython/Parser/parser.c:4131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4144
      start: 4111
    functionDepth: 1
    functionLinenumber: 4111
    functionLinenumberEnd: 4144
    functionName: dotted_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - dotted_name_raw
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty dotted_name_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4148,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4148,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4162,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:4167,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4169,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4171,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4174,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4174,1
    - Dst: _PyPegen_join_names_with_dot
      Src: /src/cpython/Parser/parser.c:4175,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4184,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4192,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4195,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4198,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4198,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4203,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4203,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4145
    functionDepth: 2
    functionLinenumber: 4145
    functionLinenumberEnd: 4210
    functionName: dotted_name_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - dotted_name_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_join_names_with_dot
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty dotted_name_raw(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4216,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4216,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4217,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:4224,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4234,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4234,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4240,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4242,1
    - Dst: statements_rule
      Src: /src/cpython/Parser/parser.c:4244,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4246,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4249,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4249,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4251,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4259,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4267,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4267,1
    - Dst: simple_stmts_rule
      Src: /src/cpython/Parser/parser.c:4270,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4273,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4273,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4278,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4278,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4286,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4286,1
    - Dst: invalid_block_rule
      Src: /src/cpython/Parser/parser.c:4289,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4292,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4297,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:4302,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4213
    functionDepth: 2
    functionLinenumber: 4213
    functionLinenumberEnd: 4305
    functionName: block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - invalid_block_rule
    - statements_rule
    - PyErr_Occurred
    - simple_stmts_rule
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      block_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4311,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4311,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4325,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4325,1
    - Dst: _loop1_24_rule
      Src: /src/cpython/Parser/parser.c:4328,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4331,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4331,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4341,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4308
    functionDepth: 1
    functionLinenumber: 4308
    functionLinenumberEnd: 4348
    functionName: decorators_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - D
    - _loop1_24_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      decorators_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4354,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4354,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4368,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4368,1
    - Dst: decorators_rule
      Src: /src/cpython/Parser/parser.c:4372,1
    - Dst: class_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4377,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4377,1
    - Dst: _PyPegen_class_def_decorators
      Src: /src/cpython/Parser/parser.c:4378,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4379,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4387,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4395,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4395,1
    - Dst: class_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4398,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4401,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4401,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4406,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4406,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4351
    functionDepth: 2
    functionLinenumber: 4351
    functionLinenumberEnd: 4413
    functionName: class_def_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - class_def_raw_rule
    - _PyPegen_class_def_decorators
    - decorators_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty class_def_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4421,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4421,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4422,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:4430,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4436,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4438,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4444,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4444,1
    - Dst: invalid_class_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4463,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4463,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4471,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4473,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:4475,1
    - Dst: _tmp_25_rule
      Src: /src/cpython/Parser/parser.c:4477,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4479,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:4481,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4484,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4484,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:4485,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4491,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4493,1
    - Dst: _PyAST_ClassDef
      Src: /src/cpython/Parser/parser.c:4494,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4495,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4503,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4503,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4510
      start: 4418
    functionDepth: 3
    functionLinenumber: 4418
    functionLinenumberEnd: 4510
    functionName: class_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - invalid_class_def_raw_rule
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - _PyPegen_get_last_nonnwhitespace_token
    - PyErr_Occurred
    - _PyAST_ClassDef
    - type_params_rule
    - block_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _tmp_25_rule
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty class_def_raw_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4516,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4516,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4517,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4530,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4530,1
    - Dst: decorators_rule
      Src: /src/cpython/Parser/parser.c:4534,1
    - Dst: function_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4536,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4539,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4539,1
    - Dst: _PyPegen_function_def_decorators
      Src: /src/cpython/Parser/parser.c:4540,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4541,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4549,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4549,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4557,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4557,1
    - Dst: function_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4560,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4563,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4563,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4568,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4568,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4575
      start: 4513
    functionDepth: 2
    functionLinenumber: 4513
    functionLinenumberEnd: 4575
    functionName: function_def_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - function_def_raw_rule
    - PyErr_Occurred
    - decorators_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - _PyPegen_function_def_decorators
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty function_def_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4584,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4584,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4585,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:4593,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4599,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4601,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4607,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4607,1
    - Dst: invalid_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4610,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4618,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4626,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4626,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4638,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4640,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:4642,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4644,1
    - Dst: params_rule
      Src: /src/cpython/Parser/parser.c:4646,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4648,1
    - Dst: _tmp_26_rule
      Src: /src/cpython/Parser/parser.c:4650,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4652,1
    - Dst: func_type_comment_rule
      Src: /src/cpython/Parser/parser.c:4654,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:4656,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:4660,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4666,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4668,1
    - Dst: _PyAST_FunctionDef
      Src: /src/cpython/Parser/parser.c:4669,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:4669,1
    - Dst: _PyPegen_empty_arguments
      Src: /src/cpython/Parser/parser.c:4669,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:4669,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4670,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4678,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4678,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4581
    functionDepth: 3
    functionLinenumber: 4581
    functionLinenumberEnd: 4680
    functionName: function_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - params_rule
    - type_params_rule
    - CHECK
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - _tmp_26_rule
    - block_rule
    - fprintf
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - _PyAST_FunctionDef
    - _PyPegen_empty_arguments
    - NEW_TYPE_COMMENT
    - invalid_def_raw_rule
    - _PyPegen_expect_token
    - _PyPegen_get_last_nonnwhitespace_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - func_type_comment_rule
    - PyThreadState_Get
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty function_def_raw_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4754,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4754,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4768,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4768,1
    - Dst: invalid_parameters_rule
      Src: /src/cpython/Parser/parser.c:4771,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4774,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4774,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4779,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4787,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4787,1
    - Dst: parameters_rule
      Src: /src/cpython/Parser/parser.c:4790,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4793,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4793,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4798,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4805
      start: 4751
    functionDepth: 1
    functionLinenumber: 4751
    functionLinenumberEnd: 4805
    functionName: params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - parameters_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_parameters_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arguments_ty
    signature: arguments_ty params_rule(Parser *p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4816,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4816,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4830,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4830,1
    - Dst: slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:4836,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:4838,1
    - Dst: _loop0_28_rule
      Src: /src/cpython/Parser/parser.c:4840,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4842,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4845,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4845,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:4846,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4846,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4847,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4855,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4855,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4863,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4863,1
    - Dst: slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:4868,1
    - Dst: _loop0_28_rule
      Src: /src/cpython/Parser/parser.c:4870,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4872,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4875,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4875,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:4876,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4876,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4885,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4885,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4893,1
    - Dst: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:4898,1
    - Dst: _loop0_28_rule
      Src: /src/cpython/Parser/parser.c:4900,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4902,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4905,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4905,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4906,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4907,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4915,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4915,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4923,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4923,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:4927,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4929,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4932,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4933,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4942,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4950,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4953,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4956,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4957,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4958,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4966,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4966,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4973
      start: 4813
    functionDepth: 1
    functionLinenumber: 4813
    functionLinenumberEnd: 4973
    functionName: parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - slash_with_default_rule
    - PyErr_Occurred
    - CHECK_VERSION
    - _loop1_30_rule
    - _loop0_28_rule
    - star_etc_rule
    - _PyPegen_make_arguments
    - slash_no_default_rule
    - _loop1_29_rule
    - D
    - _loop0_27_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arguments_ty
    signature: arguments_ty parameters_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:4979,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4979,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4980,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4993,1
    - Dst: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:4998,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5000,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5002,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5005,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5005,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5015,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5015,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5023,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5023,1
    - Dst: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:5027,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5029,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5031,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5034,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5034,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5036,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5044,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5044,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5051
      start: 4976
    functionDepth: 1
    functionLinenumber: 4976
    functionLinenumberEnd: 5051
    functionName: slash_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - _loop1_29_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_arg_seq
    signature: 'asdl_arg_seq *

      slash_no_default_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5059,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5059,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5060,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5073,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5073,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:5079,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:5081,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5083,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5085,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5088,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:5089,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5090,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5098,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5106,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5106,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:5111,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:5113,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5115,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5117,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5120,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5120,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:5121,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5122,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5130,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5130,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5137
      start: 5056
    functionDepth: 1
    functionLinenumber: 5056
    functionLinenumberEnd: 5137
    functionName: slash_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - _loop1_30_rule
    - PyErr_Occurred
    - D
    - _PyPegen_slash_with_default
    - _loop0_27_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: SlashWithDefault
    signature: 'SlashWithDefault *

      slash_with_default_rule(Parser *p)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5148,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5148,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5162,1
    - Dst: invalid_star_etc_rule
      Src: /src/cpython/Parser/parser.c:5165,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5173,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5173,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5181,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5181,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5187,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:5189,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:5191,1
    - Dst: kwds_rule
      Src: /src/cpython/Parser/parser.c:5193,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5196,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5196,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:5197,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5198,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5206,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5206,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5214,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5214,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5220,1
    - Dst: param_no_default_star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5222,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:5224,1
    - Dst: kwds_rule
      Src: /src/cpython/Parser/parser.c:5226,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5229,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:5230,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5231,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5239,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5239,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5247,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5247,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5253,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5255,1
    - Dst: _loop1_32_rule
      Src: /src/cpython/Parser/parser.c:5257,1
    - Dst: kwds_rule
      Src: /src/cpython/Parser/parser.c:5259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5262,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5262,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:5263,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5264,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5272,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5280,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5280,1
    - Dst: kwds_rule
      Src: /src/cpython/Parser/parser.c:5283,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5286,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5286,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:5287,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5288,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5296,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5296,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5303
      start: 5145
    functionDepth: 1
    functionLinenumber: 5145
    functionLinenumberEnd: 5303
    functionName: star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - param_no_default_star_annotation_rule
    - invalid_star_etc_rule
    - PyErr_Occurred
    - param_no_default_rule
    - _loop1_32_rule
    - kwds_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_31_rule
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_star_etc
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: StarEtc
    signature: 'StarEtc *

      star_etc_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5309,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5309,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5310,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5323,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5323,1
    - Dst: invalid_kwds_rule
      Src: /src/cpython/Parser/parser.c:5326,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5329,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5329,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5334,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5334,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5342,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5342,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5346,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:5348,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5351,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5353,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5361,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5361,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5368
      start: 5306
    functionDepth: 1
    functionLinenumber: 5306
    functionLinenumberEnd: 5368
    functionName: kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - invalid_kwds_rule
    - PyErr_Occurred
    - param_no_default_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty kwds_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5374,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5374,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5375,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5388,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5388,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5393,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5395,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5397,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5400,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5400,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5401,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5402,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5410,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5410,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5418,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5418,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5422,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5424,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5426,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5429,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5429,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5430,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5431,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5439,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5439,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5446
      start: 5371
    functionDepth: 1
    functionLinenumber: 5371
    functionLinenumberEnd: 5446
    functionName: param_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - _PyPegen_add_type_comment_to_arg
    - D
    - param_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty param_no_default_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5454,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5454,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5468,1
    - Dst: param_star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5473,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5475,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5480,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5480,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5481,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5490,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5498,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5498,1
    - Dst: param_star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5502,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5504,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5506,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5509,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5510,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5511,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5519,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5519,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5526
      start: 5451
    functionDepth: 1
    functionLinenumber: 5451
    functionLinenumberEnd: 5526
    functionName: param_no_default_star_annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - _PyPegen_add_type_comment_to_arg
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - param_star_annotation_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty param_no_default_star_annotation_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5532,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5532,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5533,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5546,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5546,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5552,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5554,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5556,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5558,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5561,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5561,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5562,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5563,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5571,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5571,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5579,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5584,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5586,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5588,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5593,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5593,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5594,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5595,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5603,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5603,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5610
      start: 5529
    functionDepth: 1
    functionLinenumber: 5529
    functionLinenumberEnd: 5610
    functionName: param_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - default_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - D
    - param_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_name_default_pair
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: NameDefaultPair
    signature: 'NameDefaultPair *

      param_with_default_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5618,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5618,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5619,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5632,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5632,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5638,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5640,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5642,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5644,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5647,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5647,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5648,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5657,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5657,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5665,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5665,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5670,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5672,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5674,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5676,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5679,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5679,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5680,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5681,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5689,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5696
      start: 5615
    functionDepth: 1
    functionLinenumber: 5615
    functionLinenumberEnd: 5696
    functionName: param_maybe_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - default_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - D
    - param_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_name_default_pair
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: NameDefaultPair
    signature: 'NameDefaultPair *

      param_maybe_default_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5702,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5702,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5703,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:5711,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5717,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5725,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5725,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:5729,1
    - Dst: annotation_rule
      Src: /src/cpython/Parser/parser.c:5731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5734,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:5735,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5741,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5743,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/parser.c:5744,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5745,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5753,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5753,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5760
      start: 5699
    functionDepth: 1
    functionLinenumber: 5699
    functionLinenumberEnd: 5760
    functionName: param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - annotation_rule
    - D
    - _PyAST_arg
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty param_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5766,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5766,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5767,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:5775,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5781,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5783,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5789,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5789,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:5793,1
    - Dst: star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5798,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:5799,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5805,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5807,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/parser.c:5808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5817,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5817,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5824
      start: 5763
    functionDepth: 1
    functionLinenumber: 5763
    functionLinenumberEnd: 5824
    functionName: param_star_annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - D
    - _PyAST_arg
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - star_annotation_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty param_star_annotation_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5830,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5830,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5844,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5844,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5848,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:5850,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5853,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5855,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5863,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5863,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5870
      start: 5827
    functionDepth: 1
    functionLinenumber: 5827
    functionLinenumberEnd: 5870
    functionName: annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 4
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty annotation_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5876,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5876,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5890,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5890,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5894,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:5896,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5899,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5901,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5909,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5909,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5916
      start: 5873
    functionDepth: 1
    functionLinenumber: 5873
    functionLinenumberEnd: 5916
    functionName: star_annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - star_expression_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_annotation_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5922,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5922,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5923,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5936,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5936,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5940,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:5942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5945,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5947,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5955,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5955,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5963,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5963,1
    - Dst: invalid_default_rule
      Src: /src/cpython/Parser/parser.c:5966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5974,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5981
      start: 5919
    functionDepth: 1
    functionLinenumber: 5919
    functionLinenumberEnd: 5981
    functionName: default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 6
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - invalid_default_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty default_rule(Parser *p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5990,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5990,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5991,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:5999,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6005,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6013,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6013,1
    - Dst: invalid_if_stmt_rule
      Src: /src/cpython/Parser/parser.c:6016,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6019,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6032,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6039,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6041,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6043,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6045,1
    - Dst: elif_stmt_rule
      Src: /src/cpython/Parser/parser.c:6047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6050,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6051,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6057,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6059,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6060,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:6060,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:6060,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6069,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6069,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6077,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6084,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6086,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6088,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6090,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6092,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6095,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6095,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6096,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6102,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6104,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6106,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6114,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6114,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6121
      start: 5987
    functionDepth: 3
    functionLinenumber: 5987
    functionLinenumberEnd: 6121
    functionName: if_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyPegen_expect_token
    - _PyAST_If
    - block_rule
    - D
    - named_expression_rule
    - elif_stmt_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_singleton_seq
    - invalid_if_stmt_rule
    - CHECK
    - fprintf
    - else_block_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty if_stmt_rule(Parser *p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:6130,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6130,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6131,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6139,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6145,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6147,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6153,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6153,1
    - Dst: invalid_elif_stmt_rule
      Src: /src/cpython/Parser/parser.c:6156,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6159,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6159,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6164,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6164,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6172,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6172,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6179,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6181,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6183,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6185,1
    - Dst: elif_stmt_rule
      Src: /src/cpython/Parser/parser.c:6187,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6190,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6190,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6191,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6197,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6199,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6200,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:6200,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:6200,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6201,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6209,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6217,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6217,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6224,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6226,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6228,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6230,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6232,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6235,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6236,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6242,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6244,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6245,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6246,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6254,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6254,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6261
      start: 6127
    functionDepth: 3
    functionLinenumber: 6127
    functionLinenumberEnd: 6261
    functionName: elif_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - invalid_elif_stmt_rule
    - PyErr_Occurred
    - _PyAST_If
    - block_rule
    - D
    - named_expression_rule
    - elif_stmt_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_singleton_seq
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - else_block_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty elif_stmt_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:6267,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6267,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6268,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6281,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6281,1
    - Dst: invalid_else_stmt_rule
      Src: /src/cpython/Parser/parser.c:6284,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6287,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6287,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6292,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6300,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6300,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6305,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:6307,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6309,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6312,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6314,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6322,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6329
      start: 6264
    functionDepth: 3
    functionLinenumber: 6264
    functionLinenumberEnd: 6329
    functionName: else_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - _PyPegen_expect_forced_token
    - block_rule
    - D
    - invalid_else_stmt_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      else_block_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:6335,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6335,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6336,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6344,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6350,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6358,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6358,1
    - Dst: invalid_while_stmt_rule
      Src: /src/cpython/Parser/parser.c:6361,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6364,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6364,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6369,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6377,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6377,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6384,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6386,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6388,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6390,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6392,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6395,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6395,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6396,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6402,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6404,1
    - Dst: _PyAST_While
      Src: /src/cpython/Parser/parser.c:6405,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6406,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6414,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6414,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6421
      start: 6332
    functionDepth: 4
    functionLinenumber: 6332
    functionLinenumberEnd: 6421
    functionName: while_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_While
    - block_rule
    - D
    - named_expression_rule
    - else_block_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - invalid_while_stmt_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty while_stmt_rule(Parser *p)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:6431,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6431,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6432,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6440,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6446,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6448,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6454,1
    - Dst: invalid_for_stmt_rule
      Src: /src/cpython/Parser/parser.c:6457,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6460,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6460,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6465,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6473,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6473,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6484,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:6486,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6488,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:6492,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6494,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6496,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6498,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6500,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6503,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6503,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6504,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6510,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6512,1
    - Dst: _PyAST_For
      Src: /src/cpython/Parser/parser.c:6513,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6513,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6522,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6522,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6534,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6534,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6546,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6548,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:6550,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6552,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:6556,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6558,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6560,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6562,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6564,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6567,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6567,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6568,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6574,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6576,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:6577,1
    - Dst: _PyAST_AsyncFor
      Src: /src/cpython/Parser/parser.c:6577,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6577,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6578,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6586,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6586,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6598,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6598,1
    - Dst: invalid_for_target_rule
      Src: /src/cpython/Parser/parser.c:6601,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6604,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6604,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6609,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6609,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6616
      start: 6428
    functionDepth: 4
    functionLinenumber: 6428
    functionLinenumberEnd: 6616
    functionName: for_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - star_expressions_rule
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - CHECK_VERSION
    - invalid_for_stmt_rule
    - block_rule
    - else_block_rule
    - _PyAST_AsyncFor
    - fprintf
    - _PyPegen_fill_token
    - NEW_TYPE_COMMENT
    - invalid_for_target_rule
    - _PyPegen_expect_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_For
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - star_targets_rule
    - PyThreadState_Get
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty for_stmt_rule(Parser *p)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:6628,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6628,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6629,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6637,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6643,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6645,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6651,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6651,1
    - Dst: invalid_with_stmt_indent_rule
      Src: /src/cpython/Parser/parser.c:6654,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6657,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6657,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6662,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6662,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6670,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6670,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6676,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6681,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6683,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6685,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6687,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6689,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6691,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6693,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6695,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6698,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6698,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6699,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6705,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6707,1
    - Dst: _PyAST_With
      Src: /src/cpython/Parser/parser.c:6708,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6708,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6709,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6717,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6725,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6725,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6732,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6734,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6736,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6738,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6740,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6743,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6743,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6744,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6750,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6752,1
    - Dst: _PyAST_With
      Src: /src/cpython/Parser/parser.c:6753,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6753,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6754,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6762,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6770,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6770,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6777,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6781,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6783,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6785,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6787,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6789,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6791,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6793,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6798,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6799,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6805,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6807,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:6808,1
    - Dst: _PyAST_AsyncWith
      Src: /src/cpython/Parser/parser.c:6808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6817,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6825,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6825,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6833,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6835,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6837,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6839,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6841,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6843,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6846,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6846,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6847,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6853,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6855,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:6856,1
    - Dst: _PyAST_AsyncWith
      Src: /src/cpython/Parser/parser.c:6856,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6856,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6865,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6873,1
    - Dst: invalid_with_stmt_rule
      Src: /src/cpython/Parser/parser.c:6876,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6879,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6879,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6884,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6884,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 152
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6891
      start: 6625
    functionDepth: 3
    functionLinenumber: 6625
    functionLinenumberEnd: 6891
    functionName: with_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - CHECK_VERSION
    - _PyAST_With
    - _PyAST_AsyncWith
    - invalid_with_stmt_indent_rule
    - block_rule
    - NEW_TYPE_COMMENT
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - invalid_with_stmt_rule
    - fprintf
    - PyThreadState_Get
    - _gather_34_rule
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty with_stmt_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:6900,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6900,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6901,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6914,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6914,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:6919,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6921,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:6923,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:6925,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6928,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6928,1
    - Dst: _PyAST_withitem
      Src: /src/cpython/Parser/parser.c:6929,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6938,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6938,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6946,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6946,1
    - Dst: invalid_with_item_rule
      Src: /src/cpython/Parser/parser.c:6949,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6952,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6952,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6965,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6965,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:6968,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6971,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6971,1
    - Dst: _PyAST_withitem
      Src: /src/cpython/Parser/parser.c:6972,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6973,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6981,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6981,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6988
      start: 6897
    functionDepth: 1
    functionLinenumber: 6897
    functionLinenumberEnd: 6988
    functionName: with_item_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - star_target_rule
    - _PyAST_withitem
    - invalid_with_item_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: withitem_ty
    signature: withitem_ty with_item_rule(Parser *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:6998,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6998,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6999,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7007,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7013,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7015,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7021,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7021,1
    - Dst: invalid_try_stmt_rule
      Src: /src/cpython/Parser/parser.c:7024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7027,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7027,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7040,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7040,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7046,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7048,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7050,1
    - Dst: finally_block_rule
      Src: /src/cpython/Parser/parser.c:7052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7055,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7055,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7056,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7062,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7064,1
    - Dst: _PyAST_Try
      Src: /src/cpython/Parser/parser.c:7065,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7066,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7074,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7082,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7082,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7090,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7092,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7094,1
    - Dst: _loop1_36_rule
      Src: /src/cpython/Parser/parser.c:7096,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:7098,1
    - Dst: finally_block_rule
      Src: /src/cpython/Parser/parser.c:7100,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7103,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7103,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7104,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7110,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7112,1
    - Dst: _PyAST_Try
      Src: /src/cpython/Parser/parser.c:7113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7114,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7122,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7122,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7130,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7130,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7138,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7140,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7142,1
    - Dst: _loop1_37_rule
      Src: /src/cpython/Parser/parser.c:7144,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:7146,1
    - Dst: finally_block_rule
      Src: /src/cpython/Parser/parser.c:7148,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7151,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7151,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7152,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7158,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7160,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7161,1
    - Dst: _PyAST_TryStar
      Src: /src/cpython/Parser/parser.c:7161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7170,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 110
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7177
      start: 6995
    functionDepth: 4
    functionLinenumber: 6995
    functionLinenumberEnd: 7177
    functionName: try_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - invalid_try_stmt_rule
    - finally_block_rule
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - _PyAST_Try
    - _PyPegen_expect_forced_token
    - CHECK_VERSION
    - block_rule
    - else_block_rule
    - _loop1_37_rule
    - _PyAST_TryStar
    - fprintf
    - _loop1_36_rule
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_get_last_nonnwhitespace_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty try_stmt_rule(Parser *p)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:7189,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7189,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7190,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7198,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7204,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7206,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7212,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7212,1
    - Dst: invalid_except_stmt_indent_rule
      Src: /src/cpython/Parser/parser.c:7215,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7218,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7218,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7223,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7223,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7231,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7231,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7237,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7239,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7241,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7243,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7246,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7247,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7253,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7255,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7257,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7265,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7265,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7273,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7273,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7281,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7283,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7285,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:7287,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7289,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7294,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7294,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7295,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7301,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7303,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7304,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7305,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7313,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7313,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7321,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7321,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7327,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:7329,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7331,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7336,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7336,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7337,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7343,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7345,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7346,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7346,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7355,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7363,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7368,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7370,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7372,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7375,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7375,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7376,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7382,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7384,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7385,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7386,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7394,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7402,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7402,1
    - Dst: invalid_except_stmt_rule
      Src: /src/cpython/Parser/parser.c:7405,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7408,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7408,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7413,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7413,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 150
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7420
      start: 7186
    functionDepth: 3
    functionLinenumber: 7186
    functionLinenumberEnd: 7420
    functionName: except_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyPegen_name_token
    - expressions_rule
    - PyErr_Occurred
    - CHECK_VERSION
    - invalid_except_stmt_indent_rule
    - _PyAST_ExceptHandler
    - block_rule
    - D
    - invalid_except_stmt_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: excepthandler_ty
    signature: excepthandler_ty except_block_rule(Parser *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:7431,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7431,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7432,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7440,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7446,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7448,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7454,1
    - Dst: invalid_except_star_stmt_indent_rule
      Src: /src/cpython/Parser/parser.c:7457,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7460,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7460,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7465,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7473,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7473,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7480,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7482,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7484,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7486,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7488,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7491,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7491,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7492,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7498,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7500,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7501,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7502,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7510,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7510,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7518,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7518,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7527,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7529,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7531,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7533,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:7535,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7537,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7539,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7542,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7542,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7543,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7549,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7551,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7553,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7561,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7561,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7569,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7576,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7578,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:7580,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7582,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7584,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7587,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7587,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7588,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7594,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7596,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7597,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7597,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7606,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7614,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7614,1
    - Dst: invalid_except_star_stmt_rule
      Src: /src/cpython/Parser/parser.c:7617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7625,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7625,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 125
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7632
      start: 7428
    functionDepth: 3
    functionLinenumber: 7428
    functionLinenumberEnd: 7632
    functionName: except_star_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyPegen_name_token
    - expressions_rule
    - PyErr_Occurred
    - invalid_except_star_stmt_indent_rule
    - CHECK_VERSION
    - invalid_except_star_stmt_rule
    - _PyAST_ExceptHandler
    - block_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: excepthandler_ty
    signature: excepthandler_ty except_star_block_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:7638,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7638,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7639,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7652,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7652,1
    - Dst: invalid_finally_stmt_rule
      Src: /src/cpython/Parser/parser.c:7655,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7658,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7663,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7663,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7671,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7671,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7676,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7678,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7680,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7683,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7683,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7685,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7693,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7693,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7700
      start: 7635
    functionDepth: 3
    functionLinenumber: 7635
    functionLinenumberEnd: 7700
    functionName: finally_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _PyPegen_expect_forced_token
    - block_rule
    - D
    - invalid_finally_stmt_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      finally_block_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:7708,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7708,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7709,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7717,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7723,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7725,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7731,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7731,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:7740,1
    - Dst: subject_expr_rule
      Src: /src/cpython/Parser/parser.c:7742,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7744,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7746,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7748,1
    - Dst: _loop1_38_rule
      Src: /src/cpython/Parser/parser.c:7750,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7755,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7756,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7762,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7764,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7765,1
    - Dst: _PyAST_Match
      Src: /src/cpython/Parser/parser.c:7765,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7774,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7774,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7782,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7782,1
    - Dst: invalid_match_stmt_rule
      Src: /src/cpython/Parser/parser.c:7785,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7788,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7788,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7793,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7793,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7800
      start: 7705
    functionDepth: 1
    functionLinenumber: 7705
    functionLinenumberEnd: 7800
    functionName: match_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - CHECK_VERSION
    - _PyPegen_expect_token
    - invalid_match_stmt_rule
    - _PyAST_Match
    - subject_expr_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_soft_keyword
    - fprintf
    - PyThreadState_Get
    - _loop1_38_rule
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty match_stmt_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:7806,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7806,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7807,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7815,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7821,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7829,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:7834,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7836,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:7838,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7841,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7841,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7842,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7848,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7850,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:7851,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:7851,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:7851,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7852,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7860,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7860,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7868,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7868,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:7871,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7874,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7879,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7879,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7886
      start: 7803
    functionDepth: 1
    functionLinenumber: 7803
    functionLinenumberEnd: 7886
    functionName: subject_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - star_named_expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - star_named_expressions_rule
    - _PyAST_Tuple
    - _PyPegen_seq_insert_in_front
    - PyErr_Occurred
    - D
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty subject_expr_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:7892,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7892,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7893,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7906,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7906,1
    - Dst: invalid_case_block_rule
      Src: /src/cpython/Parser/parser.c:7909,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7912,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7917,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7917,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7925,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7925,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:7932,1
    - Dst: patterns_rule
      Src: /src/cpython/Parser/parser.c:7934,1
    - Dst: guard_rule
      Src: /src/cpython/Parser/parser.c:7936,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7938,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7940,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7943,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7943,1
    - Dst: _PyAST_match_case
      Src: /src/cpython/Parser/parser.c:7944,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7945,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7953,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7953,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7960
      start: 7889
    functionDepth: 3
    functionLinenumber: 7889
    functionLinenumberEnd: 7960
    functionName: case_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - guard_rule
    - PyErr_Occurred
    - _PyPegen_expect_token
    - patterns_rule
    - block_rule
    - D
    - invalid_case_block_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_soft_keyword
    - fprintf
    - _PyAST_match_case
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: match_case_ty
    signature: match_case_ty case_block_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:7966,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7966,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7967,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7980,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7980,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7984,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:7986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8006
      start: 7963
    functionDepth: 1
    functionLinenumber: 7963
    functionLinenumberEnd: 8006
    functionName: guard_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty guard_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8012,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8012,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8013,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8021,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8027,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8029,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8035,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8035,1
    - Dst: open_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:8038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8041,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8042,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8048,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8050,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Parser/parser.c:8051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8060,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8068,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8068,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:8071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8074,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8079,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8079,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8086
      start: 8009
    functionDepth: 1
    functionLinenumber: 8009
    functionLinenumberEnd: 8086
    functionName: patterns_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - open_sequence_pattern_rule
    - PyErr_Occurred
    - _PyAST_MatchSequence
    - D
    - pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty patterns_rule(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8092,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8092,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8093,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8106,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8106,1
    - Dst: as_pattern_rule
      Src: /src/cpython/Parser/parser.c:8109,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8112,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8117,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8117,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8125,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8125,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:8128,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8131,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8131,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8136,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8143
      start: 8089
    functionDepth: 1
    functionLinenumber: 8089
    functionLinenumberEnd: 8143
    functionName: pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - as_pattern_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - or_pattern_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty pattern_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8149,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8149,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8150,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8158,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8164,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8166,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8172,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8172,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:8177,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8179,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:8181,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8184,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8184,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8185,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8191,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8193,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Parser/parser.c:8194,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8195,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8203,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8203,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8211,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8211,1
    - Dst: invalid_as_pattern_rule
      Src: /src/cpython/Parser/parser.c:8214,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8217,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8217,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8222,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8222,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8229
      start: 8146
    functionDepth: 1
    functionLinenumber: 8146
    functionLinenumberEnd: 8229
    functionName: as_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - invalid_as_pattern_rule
    - PyErr_Occurred
    - _PyAST_MatchAs
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - or_pattern_rule
    - _PyPegen_expect_token
    - fprintf
    - pattern_capture_target_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty as_pattern_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8235,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8235,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8236,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8244,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8250,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8258,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8258,1
    - Dst: _gather_40_rule
      Src: /src/cpython/Parser/parser.c:8261,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8264,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8265,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8271,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8273,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/parser.c:8274,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/parser.c:8274,1
    - Dst: _PyAST_MatchOr
      Src: /src/cpython/Parser/parser.c:8274,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8275,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8283,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8283,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8290
      start: 8232
    functionDepth: 1
    functionLinenumber: 8232
    functionLinenumberEnd: 8290
    functionName: or_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - asdl_seq_GET
    - PyErr_Occurred
    - asdl_seq_LEN
    - _gather_40_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_MatchOr
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty or_pattern_rule(Parser *p)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8304,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8304,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8305,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:8312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8322,1
    - Dst: literal_pattern_rule
      Src: /src/cpython/Parser/parser.c:8325,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8328,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8328,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8341,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8341,1
    - Dst: capture_pattern_rule
      Src: /src/cpython/Parser/parser.c:8344,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8347,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8352,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8360,1
    - Dst: wildcard_pattern_rule
      Src: /src/cpython/Parser/parser.c:8363,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8366,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8366,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8371,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8371,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8379,1
    - Dst: value_pattern_rule
      Src: /src/cpython/Parser/parser.c:8382,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8385,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8385,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8390,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8390,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8398,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8398,1
    - Dst: group_pattern_rule
      Src: /src/cpython/Parser/parser.c:8401,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8404,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8404,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8409,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8409,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8417,1
    - Dst: sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:8420,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8423,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8423,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8428,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8428,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8436,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8436,1
    - Dst: mapping_pattern_rule
      Src: /src/cpython/Parser/parser.c:8439,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8442,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8442,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8447,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8455,1
    - Dst: class_pattern_rule
      Src: /src/cpython/Parser/parser.c:8458,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8461,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8461,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8466,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8466,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:8471,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 130
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8474
      start: 8301
    functionDepth: 1
    functionLinenumber: 8301
    functionLinenumberEnd: 8474
    functionName: closed_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_is_memoized
    - value_pattern_rule
    - capture_pattern_rule
    - group_pattern_rule
    - class_pattern_rule
    - literal_pattern_rule
    - wildcard_pattern_rule
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - sequence_pattern_rule
    - mapping_pattern_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty closed_pattern_rule(Parser *p)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8486,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8486,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8487,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8495,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8501,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8509,1
    - Dst: signed_number_rule
      Src: /src/cpython/Parser/parser.c:8512,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:8514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8517,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8517,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8518,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8524,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8526,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:8527,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8528,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8536,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8536,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8544,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8544,1
    - Dst: complex_number_rule
      Src: /src/cpython/Parser/parser.c:8547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8550,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8550,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8551,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8557,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8559,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:8560,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8561,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8577,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8577,1
    - Dst: strings_rule
      Src: /src/cpython/Parser/parser.c:8580,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8583,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8583,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8584,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8590,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8592,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:8593,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8594,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8602,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8602,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8610,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8610,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8616,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8616,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8617,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8623,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8625,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Parser/parser.c:8626,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8643,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8646,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8649,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8650,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8656,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8658,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Parser/parser.c:8659,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8660,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8668,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8668,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8676,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8676,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8679,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8682,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8682,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8683,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8689,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8691,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Parser/parser.c:8692,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8693,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8701,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 170
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8708
      start: 8483
    functionDepth: 1
    functionLinenumber: 8483
    functionLinenumberEnd: 8708
    functionName: literal_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - signed_number_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - complex_number_rule
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - _PyAST_MatchValue
    - strings_rule
    - _PyAST_MatchSingleton
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty literal_pattern_rule(Parser *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8720,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8720,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8721,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8729,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8735,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8737,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8743,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8743,1
    - Dst: signed_number_rule
      Src: /src/cpython/Parser/parser.c:8746,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:8748,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8751,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8751,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8756,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8756,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8764,1
    - Dst: complex_number_rule
      Src: /src/cpython/Parser/parser.c:8767,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8770,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8770,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8775,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8775,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8783,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8783,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:8786,1
    - Dst: strings_rule
      Src: /src/cpython/Parser/parser.c:8788,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8791,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8791,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8796,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8796,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8804,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8804,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8807,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8810,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8810,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8811,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8817,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8819,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:8820,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8821,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8829,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8837,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8837,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8843,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8844,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8850,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8852,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:8853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8862,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8862,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8870,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8870,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8873,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8876,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8876,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8877,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8883,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8885,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:8886,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8887,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8895,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8895,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 137
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8902
      start: 8717
    functionDepth: 1
    functionLinenumber: 8717
    functionLinenumberEnd: 8902
    functionName: literal_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - signed_number_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - complex_number_rule
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - strings_rule
    - _PyAST_Constant
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty literal_expr_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:8910,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8910,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8911,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8919,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8925,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8933,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8933,1
    - Dst: signed_real_number_rule
      Src: /src/cpython/Parser/parser.c:8938,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8940,1
    - Dst: imaginary_number_rule
      Src: /src/cpython/Parser/parser.c:8942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8945,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8946,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8952,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8954,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:8955,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8956,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8964,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8964,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8972,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8972,1
    - Dst: signed_real_number_rule
      Src: /src/cpython/Parser/parser.c:8977,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8979,1
    - Dst: imaginary_number_rule
      Src: /src/cpython/Parser/parser.c:8981,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8984,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8984,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8985,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8991,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8993,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:8994,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8995,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9003,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9003,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9010
      start: 8907
    functionDepth: 1
    functionLinenumber: 8907
    functionLinenumberEnd: 9010
    functionName: complex_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyPegen_expect_token
    - D
    - imaginary_number_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - signed_real_number_rule
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty complex_number_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9016,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9016,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9017,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9025,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9031,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9033,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9039,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9039,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9042,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9045,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9050,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9058,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9062,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9064,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9067,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9067,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9068,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9074,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9076,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:9077,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9078,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9086,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9086,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9093
      start: 9013
    functionDepth: 1
    functionLinenumber: 9013
    functionLinenumberEnd: 9093
    functionName: signed_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_number_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_UnaryOp
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty signed_number_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9099,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9099,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9100,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9108,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9114,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9116,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9122,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9122,1
    - Dst: real_number_rule
      Src: /src/cpython/Parser/parser.c:9125,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9128,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9128,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9133,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9133,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9141,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9141,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9145,1
    - Dst: real_number_rule
      Src: /src/cpython/Parser/parser.c:9147,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9150,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9150,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9151,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9157,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9159,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:9160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9169,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9176
      start: 9096
    functionDepth: 1
    functionLinenumber: 9096
    functionLinenumberEnd: 9176
    functionName: signed_real_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - real_number_rule
    - PyErr_Occurred
    - _PyAST_UnaryOp
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty signed_real_number_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9182,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9182,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9183,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9196,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9196,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9202,1
    - Dst: _PyPegen_ensure_real
      Src: /src/cpython/Parser/parser.c:9203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9204,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9212,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9212,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9219
      start: 9179
    functionDepth: 1
    functionLinenumber: 9179
    functionLinenumberEnd: 9219
    functionName: real_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_number_token
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_ensure_real
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty real_number_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9225,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9225,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9226,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9239,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9239,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9242,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9245,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9245,1
    - Dst: _PyPegen_ensure_imaginary
      Src: /src/cpython/Parser/parser.c:9246,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9247,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9255,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9255,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9262
      start: 9222
    functionDepth: 1
    functionLinenumber: 9222
    functionLinenumberEnd: 9262
    functionName: imaginary_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_number_token
    - PyErr_Occurred
    - _PyPegen_ensure_imaginary
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty imaginary_number_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9268,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9268,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9269,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9277,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9283,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9285,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9291,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:9294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9297,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9298,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9304,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9306,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Parser/parser.c:9307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9308,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9316,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9323
      start: 9265
    functionDepth: 1
    functionLinenumber: 9265
    functionLinenumberEnd: 9323
    functionName: capture_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_MatchAs
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - pattern_capture_target_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty capture_pattern_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9329,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9329,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9330,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9343,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9343,1
    - Dst: _PyPegen_lookahead_with_string
      Src: /src/cpython/Parser/parser.c:9346,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:9348,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:9350,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9353,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9353,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:9354,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9363,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9370
      start: 9326
    functionDepth: 1
    functionLinenumber: 9326
    functionLinenumberEnd: 9370
    functionName: pattern_capture_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_name_token
    - _PyPegen_lookahead_with_string
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty pattern_capture_target_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9376,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9376,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9377,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9385,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9391,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9393,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9399,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:9402,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9405,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9406,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9412,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9414,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Parser/parser.c:9415,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9416,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9424,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9424,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9431
      start: 9373
    functionDepth: 1
    functionLinenumber: 9373
    functionLinenumberEnd: 9431
    functionName: wildcard_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_MatchAs
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_soft_keyword
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty wildcard_pattern_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9437,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9437,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9438,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9446,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9452,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9454,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9460,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9460,1
    - Dst: attr_rule
      Src: /src/cpython/Parser/parser.c:9463,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:9465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9468,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9469,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9475,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9477,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:9478,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9479,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9487,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9494
      start: 9434
    functionDepth: 1
    functionLinenumber: 9434
    functionLinenumberEnd: 9494
    functionName: value_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - D
    - attr_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - fprintf
    - _PyAST_MatchValue
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty value_pattern_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9502,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9502,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9503,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:9506,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:9513,1
    - Dst: attr_raw
      Src: /src/cpython/Parser/parser.c:9519,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9532
      start: 9499
    functionDepth: 1
    functionLinenumber: 9499
    functionLinenumberEnd: 9532
    functionName: attr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - attr_raw
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty attr_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9536,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9536,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9537,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9545,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9551,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9553,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9559,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9559,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:9564,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9566,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:9568,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9571,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9571,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9572,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9578,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9580,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:9581,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9582,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9590,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9590,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9597
      start: 9533
    functionDepth: 1
    functionLinenumber: 9533
    functionLinenumberEnd: 9597
    functionName: attr_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - name_or_attr_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_Attribute
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty attr_raw(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9604,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9604,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9618,1
    - Dst: attr_rule
      Src: /src/cpython/Parser/parser.c:9621,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9624,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9624,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9629,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9629,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9637,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9637,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:9640,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9643,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9648,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9648,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9655
      start: 9601
    functionDepth: 2
    functionLinenumber: 9601
    functionLinenumberEnd: 9655
    functionName: name_or_attr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - D
    - attr_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty name_or_attr_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9661,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9661,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9662,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9675,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9675,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9680,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:9682,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9687,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9687,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9689,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9697,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9697,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9704
      start: 9658
    functionDepth: 2
    functionLinenumber: 9658
    functionLinenumberEnd: 9704
    functionName: group_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty group_pattern_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9710,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9710,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9711,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9719,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9725,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9733,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9733,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9738,1
    - Dst: maybe_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:9740,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9742,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9745,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9745,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9746,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9752,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9754,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Parser/parser.c:9755,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9756,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9764,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9772,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9777,1
    - Dst: open_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:9779,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9784,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9784,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9785,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9791,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9793,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Parser/parser.c:9794,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9803,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9803,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9810
      start: 9707
    functionDepth: 1
    functionLinenumber: 9707
    functionLinenumberEnd: 9810
    functionName: sequence_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - maybe_sequence_pattern_rule
    - open_sequence_pattern_rule
    - PyErr_Occurred
    - _PyAST_MatchSequence
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty sequence_pattern_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9816,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9816,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9830,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9830,1
    - Dst: maybe_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:9835,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9837,1
    - Dst: maybe_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:9839,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9842,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9842,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:9843,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9844,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9852,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9859
      start: 9813
    functionDepth: 1
    functionLinenumber: 9813
    functionLinenumberEnd: 9859
    functionName: open_sequence_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - maybe_sequence_pattern_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - maybe_star_pattern_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      open_sequence_pattern_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9865,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9865,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9866,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9879,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9879,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9881,1
    - Dst: _gather_45_rule
      Src: /src/cpython/Parser/parser.c:9884,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9886,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9889,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9889,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9891,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9899,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9906
      start: 9862
    functionDepth: 1
    functionLinenumber: 9862
    functionLinenumberEnd: 9906
    functionName: maybe_sequence_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - UNUSED
    - PyErr_Occurred
    - _gather_45_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      maybe_sequence_pattern_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9912,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9912,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9913,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9926,1
    - Dst: star_pattern_rule
      Src: /src/cpython/Parser/parser.c:9929,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9932,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9937,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9945,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:9948,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9951,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9956,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9963
      start: 9909
    functionDepth: 2
    functionLinenumber: 9909
    functionLinenumberEnd: 9963
    functionName: maybe_star_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_pattern_rule
    - D
    - pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty maybe_star_pattern_rule(Parser *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9969,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9969,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9970,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:9977,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9982,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9988,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9990,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9996,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9996,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10000,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:10002,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10005,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10005,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10006,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10012,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10014,1
    - Dst: _PyAST_MatchStar
      Src: /src/cpython/Parser/parser.c:10015,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10016,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10032,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10036,1
    - Dst: wildcard_pattern_rule
      Src: /src/cpython/Parser/parser.c:10038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10041,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10042,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10048,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10050,1
    - Dst: _PyAST_MatchStar
      Src: /src/cpython/Parser/parser.c:10051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10060,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:10065,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10068
      start: 9966
    functionDepth: 2
    functionLinenumber: 9966
    functionLinenumberEnd: 10068
    functionName: star_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - UNUSED
    - PyErr_Occurred
    - wildcard_pattern_rule
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_MatchStar
    - _PyPegen_expect_token
    - fprintf
    - pattern_capture_target_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty star_pattern_rule(Parser *p)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10078,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10078,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10079,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10087,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10093,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10095,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10101,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10101,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10105,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10107,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10110,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10110,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10111,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10117,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10119,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10121,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10129,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10129,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10137,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10137,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10141,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10144,1
    - Dst: double_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:10146,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10148,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10150,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10153,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10153,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10154,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10160,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10162,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10163,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10164,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10172,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10172,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10180,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10180,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10185,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10189,1
    - Dst: items_pattern_rule
      Src: /src/cpython/Parser/parser.c:10191,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10193,1
    - Dst: double_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:10195,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10197,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10202,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10203,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10209,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10211,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10212,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10212,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10212,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10212,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10213,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10221,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10229,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10233,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10236,1
    - Dst: items_pattern_rule
      Src: /src/cpython/Parser/parser.c:10238,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10240,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10242,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10245,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10245,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10246,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10252,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10254,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10255,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10255,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10255,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10255,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10255,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10256,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10264,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 123
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10271
      start: 10075
    functionDepth: 1
    functionLinenumber: 10075
    functionLinenumberEnd: 10271
    functionName: mapping_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - double_star_pattern_rule
    - PyErr_Occurred
    - _PyPegen_get_patterns
    - _PyAST_MatchMapping
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - items_pattern_rule
    - _PyPegen_get_pattern_keys
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty mapping_pattern_rule(Parser *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10277,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10277,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10278,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10291,1
    - Dst: _gather_47_rule
      Src: /src/cpython/Parser/parser.c:10294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10297,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10309
      start: 10274
    functionDepth: 1
    functionLinenumber: 10274
    functionLinenumberEnd: 10309
    functionName: items_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_47_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      items_pattern_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10315,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10315,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10329,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10329,1
    - Dst: _tmp_48_rule
      Src: /src/cpython/Parser/parser.c:10334,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10336,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:10338,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10341,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10341,1
    - Dst: _PyPegen_key_pattern_pair
      Src: /src/cpython/Parser/parser.c:10342,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10351,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10358
      start: 10312
    functionDepth: 2
    functionLinenumber: 10312
    functionLinenumberEnd: 10358
    functionName: key_value_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _tmp_48_rule
    - PyErr_Occurred
    - D
    - _PyPegen_key_pattern_pair
    - pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: KeyPatternPair
    signature: 'KeyPatternPair *

      key_value_pattern_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10364,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10364,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10365,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10378,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10378,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10382,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:10384,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10387,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10389,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10397,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10404
      start: 10361
    functionDepth: 2
    functionLinenumber: 10361
    functionLinenumberEnd: 10404
    functionName: double_star_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - pattern_capture_target_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty double_star_pattern_rule(Parser *p)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10415,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10415,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10416,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10424,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10430,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10438,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10438,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10443,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10445,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10450,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10451,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10457,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10459,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10460,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10461,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10469,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10469,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10477,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10477,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10481,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10485,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10487,1
    - Dst: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:10489,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10491,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10493,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10496,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10497,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10503,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10505,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10506,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10507,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10515,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10523,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10527,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10531,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10533,1
    - Dst: keyword_patterns_rule
      Src: /src/cpython/Parser/parser.c:10535,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10537,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10539,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10542,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10542,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10543,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10549,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10551,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10552,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10552,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:10552,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10552,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10552,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10552,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10553,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10561,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10561,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10569,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10574,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10579,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10581,1
    - Dst: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:10583,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10585,1
    - Dst: keyword_patterns_rule
      Src: /src/cpython/Parser/parser.c:10587,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10589,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10591,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10594,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10594,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10595,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10601,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10603,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10604,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10604,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:10604,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10604,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10604,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10604,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10621,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10621,1
    - Dst: invalid_class_pattern_rule
      Src: /src/cpython/Parser/parser.c:10624,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10632,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10632,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 138
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10639
      start: 10412
    functionDepth: 3
    functionLinenumber: 10412
    functionLinenumberEnd: 10639
    functionName: class_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - name_or_attr_rule
    - CHECK
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - invalid_class_pattern_rule
    - _PyAST_MatchClass
    - fprintf
    - _PyPegen_fill_token
    - _PyPegen_get_patterns
    - positional_patterns_rule
    - _PyPegen_map_names_to_ids
    - _PyPegen_expect_token
    - _PyPegen_get_pattern_keys
    - _PyPegen_get_last_nonnwhitespace_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - keyword_patterns_rule
    - PyThreadState_Get
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty class_pattern_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10645,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10645,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10646,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10659,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10659,1
    - Dst: _gather_50_rule
      Src: /src/cpython/Parser/parser.c:10662,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10665,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10667,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10675,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10675,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10682
      start: 10642
    functionDepth: 1
    functionLinenumber: 10642
    functionLinenumberEnd: 10682
    functionName: positional_patterns_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _gather_50_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_pattern_seq
    signature: 'asdl_pattern_seq *

      positional_patterns_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10688,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10688,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10689,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10702,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10702,1
    - Dst: _gather_52_rule
      Src: /src/cpython/Parser/parser.c:10705,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10708,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10713,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10720
      start: 10685
    functionDepth: 1
    functionLinenumber: 10685
    functionLinenumberEnd: 10720
    functionName: keyword_patterns_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _gather_52_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      keyword_patterns_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10726,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10726,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10740,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:10745,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10747,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:10749,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10752,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10752,1
    - Dst: _PyPegen_key_pattern_pair
      Src: /src/cpython/Parser/parser.c:10753,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10754,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10762,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10769
      start: 10723
    functionDepth: 2
    functionLinenumber: 10723
    functionLinenumberEnd: 10769
    functionName: keyword_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_name_token
    - PyErr_Occurred
    - D
    - _PyPegen_key_pattern_pair
    - pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: KeyPatternPair
    signature: 'KeyPatternPair *

      keyword_pattern_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10775,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10775,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10776,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10784,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10790,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10792,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10798,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:10805,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:10807,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:10809,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10811,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:10813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10816,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10816,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10817,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10823,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10825,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:10826,1
    - Dst: _PyAST_TypeAlias
      Src: /src/cpython/Parser/parser.c:10826,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10826,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:10826,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10835,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10835,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10842
      start: 10772
    functionDepth: 1
    functionLinenumber: 10772
    functionLinenumberEnd: 10842
    functionName: type_alias_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - expression_rule
    - _PyPegen_fill_token
    - _PyPegen_get_last_nonnwhitespace_token
    - PyErr_Occurred
    - CHECK_VERSION
    - _PyPegen_expect_token
    - type_params_rule
    - D
    - _PyAST_TypeAlias
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_soft_keyword
    - CHECK
    - fprintf
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - UNUSED
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty type_alias_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10848,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10848,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10849,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10862,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10862,1
    - Dst: invalid_type_params_rule
      Src: /src/cpython/Parser/parser.c:10865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10868,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10868,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10873,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10881,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10881,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10886,1
    - Dst: type_param_seq_rule
      Src: /src/cpython/Parser/parser.c:10888,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10890,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10893,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:10894,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10903,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10903,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10910
      start: 10845
    functionDepth: 1
    functionLinenumber: 10845
    functionLinenumberEnd: 10910
    functionName: type_params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 4
    functionsReached:
    - invalid_type_params_rule
    - PyErr_Occurred
    - CHECK_VERSION
    - type_param_seq_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_type_param_seq
    signature: 'asdl_type_param_seq *

      type_params_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10916,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10916,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10917,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10930,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10932,1
    - Dst: _gather_54_rule
      Src: /src/cpython/Parser/parser.c:10935,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10937,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10940,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10940,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10950,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10957
      start: 10913
    functionDepth: 1
    functionLinenumber: 10913
    functionLinenumberEnd: 10957
    functionName: type_param_seq_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - PyErr_Occurred
    - _gather_54_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_type_param_seq
    signature: 'asdl_type_param_seq *

      type_param_seq_rule(Parser *p)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10967,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10967,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10968,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:10975,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10980,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10986,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10994,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10994,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:10999,1
    - Dst: type_param_bound_rule
      Src: /src/cpython/Parser/parser.c:11001,1
    - Dst: type_param_default_rule
      Src: /src/cpython/Parser/parser.c:11003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11006,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11006,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11007,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11013,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11015,1
    - Dst: _PyAST_TypeVar
      Src: /src/cpython/Parser/parser.c:11016,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11017,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11025,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11025,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11033,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11033,1
    - Dst: invalid_type_param_rule
      Src: /src/cpython/Parser/parser.c:11036,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11039,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11039,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11044,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11044,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11052,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11052,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11057,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:11059,1
    - Dst: type_param_starred_default_rule
      Src: /src/cpython/Parser/parser.c:11061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11064,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11064,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11065,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11071,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11073,1
    - Dst: _PyAST_TypeVarTuple
      Src: /src/cpython/Parser/parser.c:11074,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11075,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11083,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11083,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11091,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11091,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11096,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:11098,1
    - Dst: type_param_default_rule
      Src: /src/cpython/Parser/parser.c:11100,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11103,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11103,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11104,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11110,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11112,1
    - Dst: _PyAST_ParamSpec
      Src: /src/cpython/Parser/parser.c:11113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11114,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11122,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11122,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:11127,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11130
      start: 10964
    functionDepth: 1
    functionLinenumber: 10964
    functionLinenumberEnd: 11130
    functionName: type_param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyAST_ParamSpec
    - UNUSED
    - invalid_type_param_rule
    - type_param_bound_rule
    - type_param_default_rule
    - _Pypegen_stack_overflow
    - PyErr_Occurred
    - _PyPegen_insert_memo
    - fprintf
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - type_param_starred_default_rule
    - _PyAST_TypeVarTuple
    - _PyPegen_expect_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_is_memoized
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_TypeVar
    - PyThreadState_Get
    linkageType: ''
    returnType: type_param_ty
    signature: type_param_ty type_param_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11136,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11136,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11137,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11150,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11150,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11154,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11156,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11159,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11159,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11169,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11176
      start: 11133
    functionDepth: 1
    functionLinenumber: 11133
    functionLinenumberEnd: 11176
    functionName: type_param_bound_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty type_param_bound_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11182,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11182,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11183,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11196,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11196,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11200,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11202,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11205,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11205,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:11206,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11207,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11215,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11222
      start: 11179
    functionDepth: 1
    functionLinenumber: 11179
    functionLinenumberEnd: 11222
    functionName: type_param_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - CHECK_VERSION
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty type_param_default_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11228,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11228,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11229,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11242,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11242,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11246,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11248,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11251,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11251,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:11252,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11253,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11268
      start: 11225
    functionDepth: 1
    functionLinenumber: 11225
    functionLinenumberEnd: 11268
    functionName: type_param_starred_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - CHECK_VERSION
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - star_expression_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty type_param_starred_default_rule(Parser *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11274,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11274,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11275,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11283,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11289,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11297,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11299,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11303,1
    - Dst: _loop1_55_rule
      Src: /src/cpython/Parser/parser.c:11305,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11307,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11310,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11311,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11317,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11319,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11320,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11320,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:11320,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11321,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11329,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11329,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11337,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11337,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11341,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11346,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11346,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11347,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11353,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11355,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11356,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11356,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:11356,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11365,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11365,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11373,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11373,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11379,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11384,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11384,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11391
      start: 11271
    functionDepth: 1
    functionLinenumber: 11271
    functionLinenumberEnd: 11391
    functionName: expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 9
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Tuple
    - _PyPegen_seq_insert_in_front
    - PyErr_Occurred
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - _loop1_55_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty expressions_rule(Parser *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11402,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11402,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11403,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:11410,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11415,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11421,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11423,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11429,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11429,1
    - Dst: invalid_expression_rule
      Src: /src/cpython/Parser/parser.c:11432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11435,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11435,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11440,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11440,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11448,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11448,1
    - Dst: invalid_legacy_expression_rule
      Src: /src/cpython/Parser/parser.c:11451,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11454,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11459,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11459,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11467,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11467,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:11474,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11476,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:11478,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11480,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11485,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11485,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11486,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11492,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11494,1
    - Dst: _PyAST_IfExp
      Src: /src/cpython/Parser/parser.c:11495,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11496,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11504,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11512,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11512,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:11515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11518,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11518,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11523,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11531,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11531,1
    - Dst: lambdef_rule
      Src: /src/cpython/Parser/parser.c:11534,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11537,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11542,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11542,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:11547,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11550
      start: 11399
    functionDepth: 1
    functionLinenumber: 11399
    functionLinenumberEnd: 11550
    functionName: expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 21
    functionsReached:
    - _PyPegen_is_memoized
    - disjunction_rule
    - expression_rule
    - _PyPegen_fill_token
    - UNUSED
    - _PyPegen_get_last_nonnwhitespace_token
    - PyErr_Occurred
    - _PyAST_IfExp
    - D
    - invalid_legacy_expression_rule
    - invalid_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - lambdef_rule
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty expression_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11556,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11556,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11557,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11565,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11571,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11573,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11579,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11584,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11586,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11588,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11591,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11591,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11592,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11598,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11600,1
    - Dst: _PyAST_YieldFrom
      Src: /src/cpython/Parser/parser.c:11601,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11602,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11610,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11610,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11618,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11622,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:11624,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11627,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11628,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11634,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11636,1
    - Dst: _PyAST_Yield
      Src: /src/cpython/Parser/parser.c:11637,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11638,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11646,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11646,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11653
      start: 11553
    functionDepth: 2
    functionLinenumber: 11553
    functionLinenumberEnd: 11653
    functionName: yield_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Yield
    - PyErr_Occurred
    - star_expressions_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _PyAST_YieldFrom
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty yield_expr_rule(Parser *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11662,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11662,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11663,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11671,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11677,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11679,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11685,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11685,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11687,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11691,1
    - Dst: _loop1_56_rule
      Src: /src/cpython/Parser/parser.c:11693,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11695,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11698,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11698,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11699,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11705,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11707,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11708,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11708,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:11708,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11709,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11717,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11725,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11725,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11729,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11734,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11735,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11741,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11743,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11744,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11744,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:11744,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11745,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11753,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11753,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11761,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11761,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11764,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11767,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11767,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11772,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11779
      start: 11659
    functionDepth: 1
    functionLinenumber: 11659
    functionLinenumberEnd: 11779
    functionName: star_expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 5
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Tuple
    - _PyPegen_seq_insert_in_front
    - _loop1_56_rule
    - PyErr_Occurred
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - star_expression_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_expressions_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11785,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11785,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11786,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:11793,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11798,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11804,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11806,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11812,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11816,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:11818,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11821,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11822,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11828,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11830,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:11831,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11832,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11840,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11848,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11851,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11854,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11859,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11859,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:11864,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11867
      start: 11782
    functionDepth: 2
    functionLinenumber: 11782
    functionLinenumberEnd: 11867
    functionName: star_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - expression_rule
    - _PyPegen_fill_token
    - UNUSED
    - bitwise_or_rule
    - PyErr_Occurred
    - _PyAST_Starred
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_expression_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11873,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11873,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11887,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11887,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11889,1
    - Dst: _gather_58_rule
      Src: /src/cpython/Parser/parser.c:11892,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11897,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11897,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11899,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11907,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11907,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11870
    functionDepth: 1
    functionLinenumber: 11870
    functionLinenumberEnd: 11914
    functionName: star_named_expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - _gather_58_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      star_named_expressions_rule(Parser *p)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11920,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11920,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11921,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11929,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11935,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11937,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11943,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11943,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11947,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:11949,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11952,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11952,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11953,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11959,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11961,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:11962,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11963,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11971,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11979,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11979,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:11982,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11985,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11990,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11990,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11997
      start: 11917
    functionDepth: 1
    functionLinenumber: 11917
    functionLinenumberEnd: 11997
    functionName: star_named_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - bitwise_or_rule
    - PyErr_Occurred
    - _PyAST_Starred
    - D
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_named_expression_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12003,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12003,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12004,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12012,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12018,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12020,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12026,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:12032,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12034,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:12038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12041,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12042,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12048,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12050,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:12051,1
    - Dst: _PyAST_NamedExpr
      Src: /src/cpython/Parser/parser.c:12051,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12051,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:12051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12060,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12071
      start: 12000
    functionDepth: 2
    functionLinenumber: 12000
    functionLinenumberEnd: 12071
    functionName: assignment_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - expression_rule
    - _PyPegen_fill_token
    - _PyPegen_get_last_nonnwhitespace_token
    - PyErr_Occurred
    - CHECK_VERSION
    - _PyAST_NamedExpr
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty assignment_expression_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12077,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12077,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12078,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12091,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12091,1
    - Dst: assignment_expression_rule
      Src: /src/cpython/Parser/parser.c:12094,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12097,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12097,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12102,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12102,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12110,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12110,1
    - Dst: invalid_named_expression_rule
      Src: /src/cpython/Parser/parser.c:12113,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12116,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12116,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12121,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12121,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12129,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12129,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:12132,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:12134,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12137,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12137,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12142,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12142,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12149
      start: 12074
    functionDepth: 3
    functionLinenumber: 12074
    functionLinenumberEnd: 12149
    functionName: named_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 7
    functionsReached:
    - expression_rule
    - invalid_named_expression_rule
    - _PyPegen_lookahead_with_int
    - D
    - assignment_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty named_expression_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12155,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12155,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12156,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:12163,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12168,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12174,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12182,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12182,1
    - Dst: conjunction_rule
      Src: /src/cpython/Parser/parser.c:12186,1
    - Dst: _loop1_59_rule
      Src: /src/cpython/Parser/parser.c:12188,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12191,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12191,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12192,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12198,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12200,1
    - Dst: _PyAST_BoolOp
      Src: /src/cpython/Parser/parser.c:12201,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12201,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:12201,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12202,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12210,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12218,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12218,1
    - Dst: conjunction_rule
      Src: /src/cpython/Parser/parser.c:12221,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12224,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12224,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12229,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:12234,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12237
      start: 12152
    functionDepth: 1
    functionLinenumber: 12152
    functionLinenumberEnd: 12237
    functionName: disjunction_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - conjunction_rule
    - _PyPegen_fill_token
    - UNUSED
    - _loop1_59_rule
    - _PyPegen_seq_insert_in_front
    - PyErr_Occurred
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - CHECK
    - fprintf
    - _PyAST_BoolOp
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty disjunction_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12243,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12243,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12244,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:12251,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12256,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12262,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12264,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12270,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12270,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:12274,1
    - Dst: _loop1_60_rule
      Src: /src/cpython/Parser/parser.c:12276,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12279,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12279,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12280,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12286,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12288,1
    - Dst: _PyAST_BoolOp
      Src: /src/cpython/Parser/parser.c:12289,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12289,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:12289,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12290,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12298,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12298,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12306,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12306,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:12309,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12317,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12317,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:12322,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12325
      start: 12240
    functionDepth: 1
    functionLinenumber: 12240
    functionLinenumberEnd: 12325
    functionName: conjunction_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - UNUSED
    - _PyPegen_seq_insert_in_front
    - PyErr_Occurred
    - inversion_rule
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - CHECK
    - fprintf
    - _PyAST_BoolOp
    - PyThreadState_Get
    - _loop1_60_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty conjunction_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12331,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12331,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12332,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:12339,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12344,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12350,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12358,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12358,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12362,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:12364,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12367,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12367,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12368,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12374,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12376,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:12377,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12378,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12386,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12386,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12394,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12394,1
    - Dst: comparison_rule
      Src: /src/cpython/Parser/parser.c:12397,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12400,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12400,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12405,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:12410,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12413
      start: 12328
    functionDepth: 1
    functionLinenumber: 12328
    functionLinenumberEnd: 12413
    functionName: inversion_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - UNUSED
    - PyErr_Occurred
    - inversion_rule
    - _PyAST_UnaryOp
    - D
    - comparison_rule
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty inversion_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12419,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12419,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12420,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12428,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12434,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12436,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12442,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12442,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12446,1
    - Dst: _loop1_61_rule
      Src: /src/cpython/Parser/parser.c:12448,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12451,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12452,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12458,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12460,1
    - Dst: _PyAST_Compare
      Src: /src/cpython/Parser/parser.c:12461,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12461,1
    - Dst: _PyPegen_get_cmpops
      Src: /src/cpython/Parser/parser.c:12461,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12461,1
    - Dst: _PyPegen_get_exprs
      Src: /src/cpython/Parser/parser.c:12461,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12462,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12470,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12470,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12478,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12481,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12484,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12484,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12489,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12489,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12496
      start: 12416
    functionDepth: 1
    functionLinenumber: 12416
    functionLinenumberEnd: 12496
    functionName: comparison_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyPegen_get_cmpops
    - bitwise_or_rule
    - PyErr_Occurred
    - _PyAST_Compare
    - _PyPegen_get_exprs
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_61_rule
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty comparison_rule(Parser *p)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12512,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12512,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12513,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12526,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12526,1
    - Dst: eq_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12529,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12532,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12537,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12545,1
    - Dst: noteq_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12548,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12551,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12556,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12556,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12564,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12564,1
    - Dst: lte_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12567,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12570,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12570,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12575,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12575,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12583,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12583,1
    - Dst: lt_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12586,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12589,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12594,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12594,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12602,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12602,1
    - Dst: gte_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12608,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12608,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12621,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12621,1
    - Dst: gt_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12624,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12632,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12632,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12640,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12640,1
    - Dst: notin_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12643,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12646,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12646,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12651,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12651,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12659,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12659,1
    - Dst: in_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12662,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12665,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12665,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12670,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12670,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12678,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12678,1
    - Dst: isnot_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12681,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12684,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12689,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12697,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12697,1
    - Dst: is_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12700,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12703,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12703,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12708,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 153
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12715
      start: 12509
    functionDepth: 1
    functionLinenumber: 12509
    functionLinenumberEnd: 12715
    functionName: compare_op_bitwise_or_pair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - eq_bitwise_or_rule
    - lte_bitwise_or_rule
    - lt_bitwise_or_rule
    - gte_bitwise_or_rule
    - is_bitwise_or_rule
    - noteq_bitwise_or_rule
    - D
    - notin_bitwise_or_rule
    - in_bitwise_or_rule
    - _Py_ReachedRecursionLimitWithMargin
    - isnot_bitwise_or_rule
    - fprintf
    - gt_bitwise_or_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      compare_op_bitwise_or_pair_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12721,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12721,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12722,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12735,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12735,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12739,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12741,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12744,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12744,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:12745,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12746,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12754,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12754,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12761
      start: 12718
    functionDepth: 1
    functionLinenumber: 12718
    functionLinenumberEnd: 12761
    functionName: eq_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      eq_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12767,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12767,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12768,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12781,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12781,1
    - Dst: _tmp_62_rule
      Src: /src/cpython/Parser/parser.c:12785,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12787,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12790,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12790,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:12791,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12792,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12800,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12800,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12807
      start: 12764
    functionDepth: 1
    functionLinenumber: 12764
    functionLinenumberEnd: 12807
    functionName: noteq_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _tmp_62_rule
    - bitwise_or_rule
    - _PyPegen_cmpop_expr_pair
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      noteq_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12813,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12813,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12814,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12827,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12827,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12831,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12833,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12836,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12836,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:12837,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12838,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12846,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12846,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12853
      start: 12810
    functionDepth: 1
    functionLinenumber: 12810
    functionLinenumberEnd: 12853
    functionName: lte_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      lte_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12859,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12859,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12860,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12873,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12877,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12879,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12882,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12882,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:12883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12892,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12899
      start: 12856
    functionDepth: 1
    functionLinenumber: 12856
    functionLinenumberEnd: 12899
    functionName: lt_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      lt_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12905,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12905,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12906,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12919,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12919,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12923,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12925,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12928,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12928,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:12929,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12938,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12938,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12945
      start: 12902
    functionDepth: 1
    functionLinenumber: 12902
    functionLinenumberEnd: 12945
    functionName: gte_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      gte_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12951,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12951,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12952,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12965,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12965,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12969,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12974,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:12975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12976,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12984,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12984,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12991
      start: 12948
    functionDepth: 1
    functionLinenumber: 12948
    functionLinenumberEnd: 12991
    functionName: gt_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      gt_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12997,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12997,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12998,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13011,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13011,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13016,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13018,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13020,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13023,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13023,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13024,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13025,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13033,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13033,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13040
      start: 12994
    functionDepth: 1
    functionLinenumber: 12994
    functionLinenumberEnd: 13040
    functionName: notin_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      notin_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13046,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13046,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13060,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13064,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13066,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13069,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13069,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13070,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13079,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13079,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13086
      start: 13043
    functionDepth: 1
    functionLinenumber: 13043
    functionLinenumberEnd: 13086
    functionName: in_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      in_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13092,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13092,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13093,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13106,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13106,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13111,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13113,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13115,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13118,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13118,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13128,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13135
      start: 13089
    functionDepth: 1
    functionLinenumber: 13089
    functionLinenumberEnd: 13135
    functionName: isnot_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      isnot_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13141,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13141,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13142,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13155,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13155,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13159,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13164,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13164,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13166,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13174,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13181
      start: 13138
    functionDepth: 1
    functionLinenumber: 13138
    functionLinenumberEnd: 13181
    functionName: is_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_cmpop_expr_pair
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      is_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13189,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13189,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13190,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13193,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13200,1
    - Dst: bitwise_or_raw
      Src: /src/cpython/Parser/parser.c:13206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13219
      start: 13186
    functionDepth: 1
    functionLinenumber: 13186
    functionLinenumberEnd: 13219
    functionName: bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 14
    functionsReached:
    - _PyPegen_is_memoized
    - bitwise_or_raw
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty bitwise_or_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13223,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13223,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13224,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13232,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13238,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13246,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13251,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13253,1
    - Dst: bitwise_xor_rule
      Src: /src/cpython/Parser/parser.c:13255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13258,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13258,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13259,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13265,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13267,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13268,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13269,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13277,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13277,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13285,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13285,1
    - Dst: bitwise_xor_rule
      Src: /src/cpython/Parser/parser.c:13288,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13296,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13296,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13303
      start: 13220
    functionDepth: 2
    functionLinenumber: 13220
    functionLinenumberEnd: 13303
    functionName: bitwise_or_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - bitwise_or_rule
    - PyErr_Occurred
    - bitwise_xor_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty bitwise_or_raw(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13311,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13311,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13312,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13315,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13322,1
    - Dst: bitwise_xor_raw
      Src: /src/cpython/Parser/parser.c:13328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13341
      start: 13308
    functionDepth: 1
    functionLinenumber: 13308
    functionLinenumberEnd: 13341
    functionName: bitwise_xor_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - bitwise_xor_raw
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty bitwise_xor_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13345,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13345,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13346,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13354,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13360,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13368,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13368,1
    - Dst: bitwise_xor_rule
      Src: /src/cpython/Parser/parser.c:13373,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13375,1
    - Dst: bitwise_and_rule
      Src: /src/cpython/Parser/parser.c:13377,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13380,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13380,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13381,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13387,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13389,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13390,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13391,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13399,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13407,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13407,1
    - Dst: bitwise_and_rule
      Src: /src/cpython/Parser/parser.c:13410,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13413,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13413,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13418,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13418,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13425
      start: 13342
    functionDepth: 2
    functionLinenumber: 13342
    functionLinenumberEnd: 13425
    functionName: bitwise_xor_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - bitwise_and_rule
    - _PyPegen_fill_token
    - PyErr_Occurred
    - bitwise_xor_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty bitwise_xor_raw(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13433,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13433,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13434,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13437,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13444,1
    - Dst: bitwise_and_raw
      Src: /src/cpython/Parser/parser.c:13450,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13463
      start: 13430
    functionDepth: 1
    functionLinenumber: 13430
    functionLinenumberEnd: 13463
    functionName: bitwise_and_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_update_memo
    - bitwise_and_raw
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty bitwise_and_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13467,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13467,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13468,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13476,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13482,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13484,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13490,1
    - Dst: bitwise_and_rule
      Src: /src/cpython/Parser/parser.c:13495,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13497,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13499,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13502,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13503,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13509,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13511,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13512,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13513,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13521,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13521,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13529,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13529,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13535,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13540,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13547
      start: 13464
    functionDepth: 2
    functionLinenumber: 13464
    functionLinenumberEnd: 13547
    functionName: bitwise_and_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - shift_expr_rule
    - PyErr_Occurred
    - _PyPegen_expect_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - bitwise_and_rule
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty bitwise_and_raw(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13555,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13555,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13556,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13559,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13566,1
    - Dst: shift_expr_raw
      Src: /src/cpython/Parser/parser.c:13572,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13585
      start: 13552
    functionDepth: 1
    functionLinenumber: 13552
    functionLinenumberEnd: 13585
    functionName: shift_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - shift_expr_raw
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty shift_expr_rule(Parser *p)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13589,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13589,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13590,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13598,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13604,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13612,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13612,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13617,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13619,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:13621,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13624,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13624,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13625,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13631,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13633,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13634,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13643,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13651,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13651,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13656,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13658,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:13660,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13663,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13663,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13664,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13670,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13672,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13673,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13674,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13682,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13682,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13690,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13690,1
    - Dst: invalid_arithmetic_rule
      Src: /src/cpython/Parser/parser.c:13693,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13696,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13696,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13701,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13709,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13709,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:13712,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13715,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13720,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 99
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13727
      start: 13586
    functionDepth: 2
    functionLinenumber: 13586
    functionLinenumberEnd: 13727
    functionName: shift_expr_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - shift_expr_rule
    - PyErr_Occurred
    - sum_rule
    - D
    - invalid_arithmetic_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty shift_expr_raw(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13735,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13735,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13736,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13739,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13746,1
    - Dst: sum_raw
      Src: /src/cpython/Parser/parser.c:13752,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13765
      start: 13732
    functionDepth: 1
    functionLinenumber: 13732
    functionLinenumberEnd: 13765
    functionName: sum_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - sum_raw
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty sum_rule(Parser *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13769,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13769,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13770,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13778,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13784,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13786,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13792,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13792,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:13797,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13799,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:13801,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13804,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13804,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13805,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13811,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13813,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13815,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13823,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13831,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:13836,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13838,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:13840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13843,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13844,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13850,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13852,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13862,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13862,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13870,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13870,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:13873,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13876,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13876,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13881,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13881,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13888
      start: 13766
    functionDepth: 2
    functionLinenumber: 13766
    functionLinenumberEnd: 13888
    functionName: sum_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - sum_rule
    - term_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty sum_raw(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13903,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13903,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13904,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13907,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13914,1
    - Dst: term_raw
      Src: /src/cpython/Parser/parser.c:13920,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13933
      start: 13900
    functionDepth: 1
    functionLinenumber: 13900
    functionLinenumberEnd: 13933
    functionName: term_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - term_raw
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty term_rule(Parser *p)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13937,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13937,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13938,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13946,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13952,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13954,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13960,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13960,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:13965,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13967,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:13969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13972,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13972,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13973,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13979,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13981,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13982,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13983,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13991,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13999,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14004,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14006,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14011,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14011,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14012,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14018,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14020,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14021,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14030,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14030,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14038,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14038,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14043,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14045,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14050,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14051,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14057,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14059,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14060,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14069,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14069,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14077,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14082,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14084,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14086,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14089,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14089,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14090,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14096,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14098,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14099,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14100,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14108,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14108,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14116,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14116,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14121,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14123,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14125,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14128,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14128,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14129,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14135,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14137,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:14138,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14139,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14147,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14147,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14155,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14155,1
    - Dst: invalid_factor_rule
      Src: /src/cpython/Parser/parser.c:14158,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14161,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14166,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14166,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14174,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14174,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14177,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14180,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14180,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14185,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14185,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 174
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14192
      start: 13934
    functionDepth: 2
    functionLinenumber: 13934
    functionLinenumberEnd: 14192
    functionName: term_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - invalid_factor_rule
    - _PyPegen_fill_token
    - factor_rule
    - PyErr_Occurred
    - CHECK_VERSION
    - term_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty term_raw(Parser *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14198,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14198,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14199,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14206,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14211,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14217,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14219,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14225,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14225,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14229,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14231,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14234,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14234,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14235,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14241,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14243,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:14244,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14245,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14253,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14261,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14265,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14267,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14270,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14270,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14271,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14277,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14279,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:14280,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14281,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14289,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14289,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14297,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14301,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14303,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14306,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14306,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14307,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14313,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14315,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:14316,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14317,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14325,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14325,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14333,1
    - Dst: power_rule
      Src: /src/cpython/Parser/parser.c:14336,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14339,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14339,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14344,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14344,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:14349,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 114
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14352
      start: 14195
    functionDepth: 1
    functionLinenumber: 14195
    functionLinenumberEnd: 14352
    functionName: factor_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - power_rule
    - _PyPegen_fill_token
    - UNUSED
    - factor_rule
    - PyErr_Occurred
    - _PyAST_UnaryOp
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty factor_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14358,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14358,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14359,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14367,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14373,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14375,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14381,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14381,1
    - Dst: await_primary_rule
      Src: /src/cpython/Parser/parser.c:14386,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14388,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14390,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14393,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14393,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14394,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14400,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14402,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14403,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14404,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14412,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14420,1
    - Dst: await_primary_rule
      Src: /src/cpython/Parser/parser.c:14423,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14426,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14426,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14431,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14431,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14438
      start: 14355
    functionDepth: 2
    functionLinenumber: 14355
    functionLinenumberEnd: 14438
    functionName: power_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - factor_rule
    - PyErr_Occurred
    - await_primary_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_BinOp
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty power_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14444,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14444,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14445,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14452,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14457,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14463,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14471,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14471,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14475,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14480,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14480,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14481,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14487,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14489,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:14490,1
    - Dst: _PyAST_Await
      Src: /src/cpython/Parser/parser.c:14490,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14491,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14499,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14499,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14507,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14507,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14510,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14513,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14513,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14518,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14518,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:14523,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14526
      start: 14441
    functionDepth: 1
    functionLinenumber: 14441
    functionLinenumberEnd: 14526
    functionName: await_primary_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - UNUSED
    - primary_rule
    - PyErr_Occurred
    - CHECK_VERSION
    - _PyAST_Await
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty await_primary_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14539,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14539,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14540,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14543,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:14550,1
    - Dst: primary_raw
      Src: /src/cpython/Parser/parser.c:14556,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14569
      start: 14536
    functionDepth: 1
    functionLinenumber: 14536
    functionLinenumberEnd: 14569
    functionName: primary_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - primary_raw
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty primary_rule(Parser *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14573,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14573,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14574,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14582,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14588,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14596,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14596,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14601,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14603,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:14605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14608,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14608,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14609,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14615,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14617,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:14618,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14619,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14635,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14639,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:14641,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14644,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14644,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14645,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14651,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14653,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:14654,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:14654,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:14654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14655,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14663,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14663,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14671,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14671,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14677,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14679,1
    - Dst: arguments_rule
      Src: /src/cpython/Parser/parser.c:14681,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14683,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14686,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14686,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14687,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14693,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14695,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:14696,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14697,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14705,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14705,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14713,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14713,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14719,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14721,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:14723,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14725,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14728,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14729,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14735,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14737,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:14738,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14739,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14747,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14747,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14755,1
    - Dst: atom_rule
      Src: /src/cpython/Parser/parser.c:14758,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14761,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14761,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14766,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14766,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 134
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14773
      start: 14570
    functionDepth: 2
    functionLinenumber: 14570
    functionLinenumberEnd: 14773
    functionName: primary_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - atom_rule
    - _PyAST_Call
    - CHECK
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - genexp_rule
    - fprintf
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - _PyAST_Subscript
    - _PyAST_Attribute
    - _PyPegen_expect_token
    - _PyPegen_singleton_seq
    - slices_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - primary_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - arguments_rule
    - PyThreadState_Get
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty primary_raw(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14779,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14779,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14780,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14788,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14794,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14796,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14802,1
    - Dst: slice_rule
      Src: /src/cpython/Parser/parser.c:14805,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:14807,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14810,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14810,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14812,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14820,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14820,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14828,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14828,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14830,1
    - Dst: _gather_64_rule
      Src: /src/cpython/Parser/parser.c:14833,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14838,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14838,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14839,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14845,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14847,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:14848,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14849,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14857,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14857,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14864
      start: 14776
    functionDepth: 1
    functionLinenumber: 14776
    functionLinenumberEnd: 14864
    functionName: slices_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Tuple
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - slice_rule
    - _gather_64_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty slices_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14870,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14870,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14871,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14879,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14885,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14887,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14893,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:14899,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14901,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:14903,1
    - Dst: _tmp_65_rule
      Src: /src/cpython/Parser/parser.c:14905,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14908,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14908,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14909,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14915,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14917,1
    - Dst: _PyAST_Slice
      Src: /src/cpython/Parser/parser.c:14918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14919,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14935,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14935,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:14938,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14941,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14941,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14943,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14951,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14958
      start: 14867
    functionDepth: 4
    functionLinenumber: 14867
    functionLinenumberEnd: 14958
    functionName: slice_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - D
    - _tmp_65_rule
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _PyAST_Slice
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty slice_rule(Parser *p)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14974,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14974,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14975,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14983,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14989,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14997,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14997,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:15000,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15003,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15008,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15016,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15016,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15022,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15022,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15023,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15029,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15031,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15032,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15033,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15049,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15049,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15055,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15055,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15056,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15062,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15064,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15065,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15066,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15074,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15082,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15082,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15085,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15088,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15089,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15095,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15097,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15098,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15099,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15107,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15115,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15115,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:15118,1
    - Dst: strings_rule
      Src: /src/cpython/Parser/parser.c:15120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15123,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15123,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15128,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15128,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15136,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15136,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:15139,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15142,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15142,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15147,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15147,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15155,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15155,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15158,1
    - Dst: _tmp_66_rule
      Src: /src/cpython/Parser/parser.c:15160,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15163,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15163,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15176,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15176,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15179,1
    - Dst: _tmp_67_rule
      Src: /src/cpython/Parser/parser.c:15181,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15184,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15189,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15189,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15197,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15197,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15200,1
    - Dst: _tmp_68_rule
      Src: /src/cpython/Parser/parser.c:15202,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15205,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15205,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15210,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15218,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15218,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15221,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15224,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15224,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15225,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15231,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15233,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15234,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15235,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15243,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15243,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 204
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15250
      start: 14971
    functionDepth: 1
    functionLinenumber: 14971
    functionLinenumberEnd: 15250
    functionName: atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_number_token
    - strings_rule
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - fprintf
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - _tmp_68_rule
    - _PyPegen_expect_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_Constant
    - _PyPegen_lookahead_with_int
    - _tmp_66_rule
    - D
    - _tmp_67_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty atom_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15256,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15256,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15257,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15270,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15270,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15275,1
    - Dst: _tmp_69_rule
      Src: /src/cpython/Parser/parser.c:15277,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15279,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15282,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15282,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15284,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15292,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15300,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15300,1
    - Dst: invalid_group_rule
      Src: /src/cpython/Parser/parser.c:15303,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15306,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15306,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15311,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15311,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15318
      start: 15253
    functionDepth: 1
    functionLinenumber: 15253
    functionLinenumberEnd: 15318
    functionName: group_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - invalid_group_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _tmp_69_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty group_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15324,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15324,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15325,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:15333,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15339,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15341,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15347,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15347,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15353,1
    - Dst: lambda_params_rule
      Src: /src/cpython/Parser/parser.c:15355,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15357,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:15359,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15362,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15362,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15363,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15369,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15371,1
    - Dst: _PyAST_Lambda
      Src: /src/cpython/Parser/parser.c:15372,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:15372,1
    - Dst: _PyPegen_empty_arguments
      Src: /src/cpython/Parser/parser.c:15372,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15373,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15381,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15381,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15388
      start: 15321
    functionDepth: 2
    functionLinenumber: 15321
    functionLinenumberEnd: 15388
    functionName: lambdef_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyPegen_empty_arguments
    - _PyAST_Lambda
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - lambda_params_rule
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty lambdef_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15394,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15394,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15395,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15408,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15408,1
    - Dst: invalid_lambda_parameters_rule
      Src: /src/cpython/Parser/parser.c:15411,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15414,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15414,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15419,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15419,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15427,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15427,1
    - Dst: lambda_parameters_rule
      Src: /src/cpython/Parser/parser.c:15430,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15433,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15433,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15438,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15438,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15445
      start: 15391
    functionDepth: 1
    functionLinenumber: 15391
    functionLinenumberEnd: 15445
    functionName: lambda_params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - invalid_lambda_parameters_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - lambda_parameters_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arguments_ty
    signature: arguments_ty lambda_params_rule(Parser *p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15456,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15456,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15457,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15470,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15470,1
    - Dst: lambda_slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:15476,1
    - Dst: _loop0_70_rule
      Src: /src/cpython/Parser/parser.c:15478,1
    - Dst: _loop0_71_rule
      Src: /src/cpython/Parser/parser.c:15480,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15485,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15485,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:15486,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15486,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15487,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15495,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15495,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15503,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15503,1
    - Dst: lambda_slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:15508,1
    - Dst: _loop0_71_rule
      Src: /src/cpython/Parser/parser.c:15510,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15512,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15515,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15515,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:15516,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15516,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15517,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15525,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15525,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15533,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15533,1
    - Dst: _loop1_72_rule
      Src: /src/cpython/Parser/parser.c:15538,1
    - Dst: _loop0_71_rule
      Src: /src/cpython/Parser/parser.c:15540,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15542,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15545,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15546,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15555,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15563,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15563,1
    - Dst: _loop1_73_rule
      Src: /src/cpython/Parser/parser.c:15567,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15572,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15572,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15573,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15574,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15582,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15582,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15590,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15590,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15593,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15596,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15596,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15597,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15606,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15606,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15613
      start: 15453
    functionDepth: 1
    functionLinenumber: 15453
    functionLinenumberEnd: 15613
    functionName: lambda_parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_70_rule
    - PyErr_Occurred
    - CHECK_VERSION
    - _PyPegen_make_arguments
    - D
    - lambda_slash_no_default_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_73_rule
    - _loop1_72_rule
    - fprintf
    - lambda_slash_with_default_rule
    - _loop0_71_rule
    - PyThreadState_Get
    - lambda_star_etc_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arguments_ty
    signature: arguments_ty lambda_parameters_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15621,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15621,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15622,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15635,1
    - Dst: _loop1_72_rule
      Src: /src/cpython/Parser/parser.c:15640,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15642,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15644,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15647,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15657,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15657,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15665,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15665,1
    - Dst: _loop1_72_rule
      Src: /src/cpython/Parser/parser.c:15669,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15671,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15673,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15676,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15676,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15678,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15686,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15686,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15693
      start: 15618
    functionDepth: 1
    functionLinenumber: 15618
    functionLinenumberEnd: 15693
    functionName: lambda_slash_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - _PyPegen_expect_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_72_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_arg_seq
    signature: 'asdl_arg_seq *

      lambda_slash_no_default_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15701,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15701,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15702,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15715,1
    - Dst: _loop0_70_rule
      Src: /src/cpython/Parser/parser.c:15721,1
    - Dst: _loop1_73_rule
      Src: /src/cpython/Parser/parser.c:15723,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15725,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15730,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:15731,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15732,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15740,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15748,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15748,1
    - Dst: _loop0_70_rule
      Src: /src/cpython/Parser/parser.c:15753,1
    - Dst: _loop1_73_rule
      Src: /src/cpython/Parser/parser.c:15755,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15757,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15762,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:15763,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15764,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15772,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15779
      start: 15698
    functionDepth: 1
    functionLinenumber: 15698
    functionLinenumberEnd: 15779
    functionName: lambda_slash_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_70_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - D
    - _PyPegen_slash_with_default
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_73_rule
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: SlashWithDefault
    signature: 'SlashWithDefault *

      lambda_slash_with_default_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15789,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15789,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15790,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15803,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15803,1
    - Dst: invalid_lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15806,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15809,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15814,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15814,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15822,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15822,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15828,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:15830,1
    - Dst: _loop0_74_rule
      Src: /src/cpython/Parser/parser.c:15832,1
    - Dst: lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:15834,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15837,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15837,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:15838,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15839,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15847,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15847,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15855,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15855,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15861,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15863,1
    - Dst: _loop1_75_rule
      Src: /src/cpython/Parser/parser.c:15865,1
    - Dst: lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:15867,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15870,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15870,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:15871,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15872,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15880,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15880,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15888,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15888,1
    - Dst: lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:15891,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15894,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15894,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:15895,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15896,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15904,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15904,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15911
      start: 15786
    functionDepth: 1
    functionLinenumber: 15786
    functionLinenumberEnd: 15911
    functionName: lambda_star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - lambda_kwds_rule
    - lambda_param_no_default_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_75_rule
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_star_etc
    - invalid_lambda_star_etc_rule
    - _loop0_74_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: StarEtc
    signature: 'StarEtc *

      lambda_star_etc_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15917,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15917,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15918,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15931,1
    - Dst: invalid_lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:15934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15937,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15942,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15950,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15954,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:15956,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15959,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15959,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15961,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15969,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15976
      start: 15914
    functionDepth: 1
    functionLinenumber: 15914
    functionLinenumberEnd: 15976
    functionName: lambda_kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - invalid_lambda_kwds_rule
    - lambda_param_no_default_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty lambda_kwds_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15982,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15982,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15983,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15996,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15996,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16000,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16002,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16005,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16005,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16015,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16015,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16023,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16023,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16026,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:16028,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16031,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16031,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16033,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16041,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16048
      start: 15979
    functionDepth: 1
    functionLinenumber: 15979
    functionLinenumberEnd: 16048
    functionName: lambda_param_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - lambda_param_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty lambda_param_no_default_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16054,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16054,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16068,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16068,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16073,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16075,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16077,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16080,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16080,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16081,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16082,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16090,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16098,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16102,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16104,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:16106,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16109,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16111,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16119,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16119,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16126
      start: 16051
    functionDepth: 2
    functionLinenumber: 16051
    functionLinenumberEnd: 16126
    functionName: lambda_param_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - default_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - lambda_param_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_name_default_pair
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: NameDefaultPair
    signature: 'NameDefaultPair *

      lambda_param_with_default_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16132,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16132,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16133,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16146,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16146,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16151,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16153,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16155,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16158,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16158,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16159,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16160,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16176,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16176,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16180,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16182,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:16184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16187,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16188,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16189,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16197,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16197,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16204
      start: 16129
    functionDepth: 2
    functionLinenumber: 16129
    functionLinenumberEnd: 16204
    functionName: lambda_param_maybe_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - default_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - lambda_param_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_name_default_pair
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: NameDefaultPair
    signature: 'NameDefaultPair *

      lambda_param_maybe_default_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16210,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16210,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16211,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16219,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16225,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16227,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16233,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16233,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:16236,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16239,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16239,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16240,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16246,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16248,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/parser.c:16249,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16250,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16258,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16265
      start: 16207
    functionDepth: 1
    functionLinenumber: 16207
    functionLinenumberEnd: 16265
    functionName: lambda_param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - D
    - _PyAST_arg
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty lambda_param_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16271,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16271,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16285,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16285,1
    - Dst: fstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16288,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16296,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16296,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16304,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16307,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16310,1
    - Dst: _PyPegen_constant_from_token
      Src: /src/cpython/Parser/parser.c:16311,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16320,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16320,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16327
      start: 16268
    functionDepth: 1
    functionLinenumber: 16268
    functionLinenumberEnd: 16327
    functionName: fstring_middle_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - fstring_replacement_field_rule
    - PyErr_Occurred
    - _PyPegen_constant_from_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty fstring_middle_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16335,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16335,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16336,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16344,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16350,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16358,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16358,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16366,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:16368,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16370,1
    - Dst: fstring_conversion_rule
      Src: /src/cpython/Parser/parser.c:16372,1
    - Dst: fstring_full_format_spec_rule
      Src: /src/cpython/Parser/parser.c:16374,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16379,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16380,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16386,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16388,1
    - Dst: _PyPegen_formatted_value
      Src: /src/cpython/Parser/parser.c:16389,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16390,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16398,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16398,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16406,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16406,1
    - Dst: invalid_fstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16409,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16412,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16417,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16424
      start: 16332
    functionDepth: 2
    functionLinenumber: 16332
    functionLinenumberEnd: 16424
    functionName: fstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - invalid_fstring_replacement_field_rule
    - _PyPegen_fill_token
    - fstring_full_format_spec_rule
    - PyErr_Occurred
    - _PyPegen_formatted_value
    - D
    - fstring_conversion_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - annotated_rhs_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty fstring_replacement_field_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16430,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16430,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16431,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16444,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16444,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16448,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:16450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16453,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16453,1
    - Dst: _PyPegen_check_fstring_conversion
      Src: /src/cpython/Parser/parser.c:16454,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16463,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16470
      start: 16427
    functionDepth: 1
    functionLinenumber: 16427
    functionLinenumberEnd: 16470
    functionName: fstring_conversion_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - PyErr_Occurred
    - _PyPegen_check_fstring_conversion
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: ResultTokenWithMetadata
    signature: 'ResultTokenWithMetadata *

      fstring_conversion_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16476,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16476,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16477,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16485,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16491,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16493,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16499,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16499,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16503,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:16505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16508,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16508,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16509,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16515,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16517,1
    - Dst: _PyPegen_setup_full_format_spec
      Src: /src/cpython/Parser/parser.c:16518,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16519,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16527,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16527,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16534
      start: 16473
    functionDepth: 1
    functionLinenumber: 16473
    functionLinenumberEnd: 16534
    functionName: fstring_full_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyPegen_setup_full_format_spec
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _loop0_76_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: ResultTokenWithMetadata
    signature: 'ResultTokenWithMetadata *

      fstring_full_format_spec_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16540,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16540,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16541,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16554,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16554,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16560,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16560,1
    - Dst: _PyPegen_decoded_constant_from_token
      Src: /src/cpython/Parser/parser.c:16561,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16562,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16570,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16570,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16578,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16578,1
    - Dst: fstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16584,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16584,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16596
      start: 16537
    functionDepth: 3
    functionLinenumber: 16537
    functionLinenumberEnd: 16596
    functionName: fstring_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - fstring_replacement_field_rule
    - D
    - _PyPegen_decoded_constant_from_token
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty fstring_format_spec_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16602,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16602,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16603,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16616,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16616,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16621,1
    - Dst: _loop0_77_rule
      Src: /src/cpython/Parser/parser.c:16623,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16625,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16628,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16628,1
    - Dst: _PyPegen_joined_str
      Src: /src/cpython/Parser/parser.c:16629,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16630,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16638,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16638,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16645
      start: 16599
    functionDepth: 1
    functionLinenumber: 16599
    functionLinenumberEnd: 16645
    functionName: fstring_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _loop0_77_rule
    - PyErr_Occurred
    - _PyPegen_joined_str
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty fstring_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16653,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16653,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16654,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16662,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16668,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16670,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16676,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16676,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16684,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:16686,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16688,1
    - Dst: fstring_conversion_rule
      Src: /src/cpython/Parser/parser.c:16690,1
    - Dst: tstring_full_format_spec_rule
      Src: /src/cpython/Parser/parser.c:16692,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16694,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16697,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16697,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16698,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16704,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16706,1
    - Dst: _PyPegen_formatted_value
      Src: /src/cpython/Parser/parser.c:16707,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16708,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16716,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16716,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16724,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16724,1
    - Dst: invalid_tstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16730,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16735,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16735,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16742
      start: 16650
    functionDepth: 2
    functionLinenumber: 16650
    functionLinenumberEnd: 16742
    functionName: tstring_format_spec_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - tstring_full_format_spec_rule
    - PyErr_Occurred
    - _PyPegen_formatted_value
    - invalid_tstring_replacement_field_rule
    - D
    - fstring_conversion_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - annotated_rhs_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty tstring_format_spec_replacement_field_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16748,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16748,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16749,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16762,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16765,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16768,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16768,1
    - Dst: _PyPegen_decoded_constant_from_token
      Src: /src/cpython/Parser/parser.c:16769,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16770,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16778,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16786,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16786,1
    - Dst: tstring_format_spec_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16792,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16792,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16797,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16804
      start: 16745
    functionDepth: 3
    functionLinenumber: 16745
    functionLinenumberEnd: 16804
    functionName: tstring_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - tstring_format_spec_replacement_field_rule
    - PyErr_Occurred
    - D
    - _PyPegen_decoded_constant_from_token
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty tstring_format_spec_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16810,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16810,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16811,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16819,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16825,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16833,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16833,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16837,1
    - Dst: _loop0_78_rule
      Src: /src/cpython/Parser/parser.c:16839,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16842,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16842,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16843,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16849,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16851,1
    - Dst: _PyPegen_setup_full_format_spec
      Src: /src/cpython/Parser/parser.c:16852,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16853,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16861,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16868
      start: 16807
    functionDepth: 1
    functionLinenumber: 16807
    functionLinenumberEnd: 16868
    functionName: tstring_full_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyPegen_setup_full_format_spec
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _loop0_78_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: ResultTokenWithMetadata
    signature: 'ResultTokenWithMetadata *

      tstring_full_format_spec_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16876,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16876,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16877,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16885,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16891,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16893,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16899,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16907,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:16909,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16911,1
    - Dst: fstring_conversion_rule
      Src: /src/cpython/Parser/parser.c:16913,1
    - Dst: tstring_full_format_spec_rule
      Src: /src/cpython/Parser/parser.c:16915,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16917,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16920,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16920,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16921,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16927,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16929,1
    - Dst: _PyPegen_interpolation
      Src: /src/cpython/Parser/parser.c:16930,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16931,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16939,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16939,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16947,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16947,1
    - Dst: invalid_tstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16950,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16953,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16953,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16958,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16958,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16965
      start: 16873
    functionDepth: 2
    functionLinenumber: 16873
    functionLinenumberEnd: 16965
    functionName: tstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_interpolation
    - _PyPegen_fill_token
    - tstring_full_format_spec_rule
    - PyErr_Occurred
    - invalid_tstring_replacement_field_rule
    - D
    - fstring_conversion_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - annotated_rhs_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty tstring_replacement_field_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16971,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16971,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16972,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16985,1
    - Dst: tstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16991,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16996,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16996,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17004,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17010,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17010,1
    - Dst: _PyPegen_constant_from_token
      Src: /src/cpython/Parser/parser.c:17011,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17012,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17020,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17027
      start: 16968
    functionDepth: 3
    functionLinenumber: 16968
    functionLinenumberEnd: 17027
    functionName: tstring_middle_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - tstring_replacement_field_rule
    - PyErr_Occurred
    - _PyPegen_constant_from_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty tstring_middle_rule(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17033,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17033,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17034,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:17041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17051,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17051,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17056,1
    - Dst: _loop0_79_rule
      Src: /src/cpython/Parser/parser.c:17058,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17060,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17063,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17063,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:17064,1
    - Dst: _PyPegen_template_str
      Src: /src/cpython/Parser/parser.c:17064,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17065,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17073,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17073,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:17078,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17081
      start: 17030
    functionDepth: 1
    functionLinenumber: 17030
    functionLinenumberEnd: 17081
    functionName: tstring_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_template_str
    - PyErr_Occurred
    - CHECK_VERSION
    - _loop0_79_rule
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty tstring_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17087,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17087,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17088,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17101,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17101,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:17104,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17107,1
    - Dst: _PyPegen_constant_from_string
      Src: /src/cpython/Parser/parser.c:17108,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17109,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17117,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17124
      start: 17084
    functionDepth: 1
    functionLinenumber: 17084
    functionLinenumberEnd: 17124
    functionName: string_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_string_token
    - PyErr_Occurred
    - _PyPegen_constant_from_string
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty string_rule(Parser *p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17130,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17130,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17131,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:17138,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17143,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17149,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17151,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17157,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17157,1
    - Dst: invalid_string_tstring_concat_rule
      Src: /src/cpython/Parser/parser.c:17160,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17163,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17163,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17176,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17176,1
    - Dst: _loop1_80_rule
      Src: /src/cpython/Parser/parser.c:17179,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17182,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17182,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17183,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17189,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17191,1
    - Dst: _PyPegen_concatenate_strings
      Src: /src/cpython/Parser/parser.c:17192,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17193,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17201,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17201,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17209,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17209,1
    - Dst: _loop1_81_rule
      Src: /src/cpython/Parser/parser.c:17212,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17215,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17215,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17216,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17222,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17224,1
    - Dst: _PyPegen_concatenate_tstrings
      Src: /src/cpython/Parser/parser.c:17225,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17226,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17234,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17234,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:17239,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 90
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17242
      start: 17127
    functionDepth: 1
    functionLinenumber: 17127
    functionLinenumberEnd: 17242
    functionName: strings_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - UNUSED
    - PyErr_Occurred
    - _PyPegen_concatenate_tstrings
    - _loop1_80_rule
    - invalid_string_tstring_concat_rule
    - D
    - _PyPegen_concatenate_strings
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_insert_memo
    - fprintf
    - _loop1_81_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty strings_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17248,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17248,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17249,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17257,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17263,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17265,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17271,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17271,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17276,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:17278,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17280,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17283,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17283,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17284,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17290,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17292,1
    - Dst: _PyAST_List
      Src: /src/cpython/Parser/parser.c:17293,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17302,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17309
      start: 17245
    functionDepth: 2
    functionLinenumber: 17245
    functionLinenumberEnd: 17309
    functionName: list_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_List
    - _PyPegen_fill_token
    - star_named_expressions_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty list_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17315,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17315,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17316,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17324,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17330,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17332,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17338,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17343,1
    - Dst: _tmp_82_rule
      Src: /src/cpython/Parser/parser.c:17345,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17350,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17350,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17351,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17357,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17359,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:17360,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17361,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17369,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17369,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17376
      start: 17312
    functionDepth: 1
    functionLinenumber: 17312
    functionLinenumberEnd: 17376
    functionName: tuple_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Tuple
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _tmp_82_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty tuple_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17382,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17382,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17383,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17391,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17397,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17399,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17405,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17410,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:17412,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17414,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17417,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17418,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17424,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17426,1
    - Dst: _PyAST_Set
      Src: /src/cpython/Parser/parser.c:17427,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17428,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17436,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17436,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17443
      start: 17379
    functionDepth: 2
    functionLinenumber: 17379
    functionLinenumberEnd: 17443
    functionName: set_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - star_named_expressions_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_Set
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty set_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17449,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17449,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17450,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17458,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17464,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17466,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17472,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17472,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17477,1
    - Dst: double_starred_kvpairs_rule
      Src: /src/cpython/Parser/parser.c:17479,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17481,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17484,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17484,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17485,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17491,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17493,1
    - Dst: _PyAST_Dict
      Src: /src/cpython/Parser/parser.c:17494,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:17494,1
    - Dst: _PyPegen_get_keys
      Src: /src/cpython/Parser/parser.c:17494,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:17494,1
    - Dst: _PyPegen_get_values
      Src: /src/cpython/Parser/parser.c:17494,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17495,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17503,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17511,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17511,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17516,1
    - Dst: invalid_double_starred_kvpairs_rule
      Src: /src/cpython/Parser/parser.c:17518,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17523,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:17524,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17528,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17528,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17535
      start: 17446
    functionDepth: 1
    functionLinenumber: 17446
    functionLinenumberEnd: 17535
    functionName: dict_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - double_starred_kvpairs_rule
    - _PyPegen_fill_token
    - _PyAST_Dict
    - _PyPegen_dummy_name
    - PyErr_Occurred
    - _PyPegen_get_keys
    - invalid_double_starred_kvpairs_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - _PyPegen_get_values
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty dict_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17541,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17541,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17542,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17555,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17557,1
    - Dst: _gather_84_rule
      Src: /src/cpython/Parser/parser.c:17560,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17562,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17565,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17565,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17567,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17575,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17582
      start: 17538
    functionDepth: 1
    functionLinenumber: 17538
    functionLinenumberEnd: 17582
    functionName: double_starred_kvpairs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - _gather_84_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      double_starred_kvpairs_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17588,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17588,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17589,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17602,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17602,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17606,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:17608,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17611,1
    - Dst: _PyPegen_key_value_pair
      Src: /src/cpython/Parser/parser.c:17612,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17621,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17621,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17629,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17629,1
    - Dst: kvpair_rule
      Src: /src/cpython/Parser/parser.c:17632,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17640,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17640,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17647
      start: 17585
    functionDepth: 2
    functionLinenumber: 17585
    functionLinenumberEnd: 17647
    functionName: double_starred_kvpair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - bitwise_or_rule
    - PyErr_Occurred
    - kvpair_rule
    - _PyPegen_key_value_pair
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: KeyValuePair
    signature: 'KeyValuePair *

      double_starred_kvpair_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17653,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17653,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17654,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17667,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:17672,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17674,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:17676,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17679,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17679,1
    - Dst: _PyPegen_key_value_pair
      Src: /src/cpython/Parser/parser.c:17680,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17681,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17689,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17696
      start: 17650
    functionDepth: 2
    functionLinenumber: 17650
    functionLinenumberEnd: 17696
    functionName: kvpair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - _PyPegen_key_value_pair
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: KeyValuePair
    signature: 'KeyValuePair *

      kvpair_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17702,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17702,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17703,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17716,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17716,1
    - Dst: _loop1_85_rule
      Src: /src/cpython/Parser/parser.c:17719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17722,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17724,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17732,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17732,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17739
      start: 17699
    functionDepth: 1
    functionLinenumber: 17699
    functionLinenumberEnd: 17739
    functionName: for_if_clauses_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_85_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_comprehension_seq
    signature: 'asdl_comprehension_seq *

      for_if_clauses_rule(Parser *p)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17749,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17749,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17750,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17763,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17763,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17772,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17774,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:17776,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17778,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:17782,1
    - Dst: _loop0_86_rule
      Src: /src/cpython/Parser/parser.c:17784,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17787,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17787,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:17788,1
    - Dst: _PyAST_comprehension
      Src: /src/cpython/Parser/parser.c:17788,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17797,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17809,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17809,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17817,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:17819,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17821,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:17825,1
    - Dst: _loop0_86_rule
      Src: /src/cpython/Parser/parser.c:17827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17830,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17830,1
    - Dst: _PyAST_comprehension
      Src: /src/cpython/Parser/parser.c:17831,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17832,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17840,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17852,1
    - Dst: invalid_for_if_clause_rule
      Src: /src/cpython/Parser/parser.c:17855,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17858,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17858,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17863,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17871,1
    - Dst: invalid_for_target_rule
      Src: /src/cpython/Parser/parser.c:17874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17877,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17882,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17882,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17889
      start: 17746
    functionDepth: 2
    functionLinenumber: 17746
    functionLinenumberEnd: 17889
    functionName: for_if_clause_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - disjunction_rule
    - PyErr_Occurred
    - _loop0_86_rule
    - CHECK_VERSION
    - _PyAST_comprehension
    - invalid_for_target_rule
    - D
    - invalid_for_if_clause_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - star_targets_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: comprehension_ty
    signature: comprehension_ty for_if_clause_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17895,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17895,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17896,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17904,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17910,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17918,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17924,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:17926,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:17928,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17933,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17933,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17934,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17940,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17942,1
    - Dst: _PyAST_ListComp
      Src: /src/cpython/Parser/parser.c:17943,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17952,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17952,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17960,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17960,1
    - Dst: invalid_comprehension_rule
      Src: /src/cpython/Parser/parser.c:17963,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17966,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17971,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17971,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17978
      start: 17892
    functionDepth: 4
    functionLinenumber: 17892
    functionLinenumberEnd: 17978
    functionName: listcomp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - invalid_comprehension_rule
    - D
    - named_expression_rule
    - _PyAST_ListComp
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - for_if_clauses_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty listcomp_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17984,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17984,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17985,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17993,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17999,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18001,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18007,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18013,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:18015,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18017,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18022,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18022,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18023,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18029,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18031,1
    - Dst: _PyAST_SetComp
      Src: /src/cpython/Parser/parser.c:18032,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18033,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18049,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18049,1
    - Dst: invalid_comprehension_rule
      Src: /src/cpython/Parser/parser.c:18052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18055,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18060,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18067
      start: 17981
    functionDepth: 4
    functionLinenumber: 17981
    functionLinenumberEnd: 18067
    functionName: setcomp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - invalid_comprehension_rule
    - D
    - named_expression_rule
    - _PyAST_SetComp
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - for_if_clauses_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty setcomp_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18075,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18075,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18076,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18084,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18090,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18092,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18098,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18104,1
    - Dst: _tmp_87_rule
      Src: /src/cpython/Parser/parser.c:18106,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18108,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18110,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18113,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18113,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18114,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18120,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18122,1
    - Dst: _PyAST_GeneratorExp
      Src: /src/cpython/Parser/parser.c:18123,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18124,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18132,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18132,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18140,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18140,1
    - Dst: invalid_comprehension_rule
      Src: /src/cpython/Parser/parser.c:18143,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18146,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18146,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18151,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18151,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18158
      start: 18072
    functionDepth: 2
    functionLinenumber: 18072
    functionLinenumberEnd: 18158
    functionName: genexp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - invalid_comprehension_rule
    - _PyAST_GeneratorExp
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _tmp_87_rule
    - PyThreadState_Get
    - for_if_clauses_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty genexp_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18164,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18164,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18165,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18173,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18179,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18181,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18187,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18193,1
    - Dst: kvpair_rule
      Src: /src/cpython/Parser/parser.c:18195,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18197,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18202,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18203,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18209,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18211,1
    - Dst: _PyAST_DictComp
      Src: /src/cpython/Parser/parser.c:18212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18213,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18221,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18229,1
    - Dst: invalid_dict_comprehension_rule
      Src: /src/cpython/Parser/parser.c:18232,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18235,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18240,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18247
      start: 18161
    functionDepth: 3
    functionLinenumber: 18161
    functionLinenumberEnd: 18247
    functionName: dictcomp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - invalid_dict_comprehension_rule
    - PyErr_Occurred
    - kvpair_rule
    - _PyAST_DictComp
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - for_if_clauses_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty dictcomp_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18253,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18253,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18254,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:18261,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18271,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18271,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18273,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:18276,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18278,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:18280,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18283,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18283,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18285,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18293,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18301,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18301,1
    - Dst: invalid_arguments_rule
      Src: /src/cpython/Parser/parser.c:18304,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18307,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18307,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18312,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:18317,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18320
      start: 18250
    functionDepth: 1
    functionLinenumber: 18250
    functionLinenumberEnd: 18320
    functionName: arguments_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_is_memoized
    - UNUSED
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - args_rule
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - invalid_arguments_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty arguments_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18328,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18328,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18329,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18337,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18343,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18345,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18351,1
    - Dst: _gather_89_rule
      Src: /src/cpython/Parser/parser.c:18355,1
    - Dst: _tmp_90_rule
      Src: /src/cpython/Parser/parser.c:18357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18360,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18361,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18367,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18369,1
    - Dst: _PyPegen_collect_call_seqs
      Src: /src/cpython/Parser/parser.c:18370,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18371,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18379,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18387,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:18390,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18393,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18393,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18394,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18400,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18402,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:18403,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:18403,1
    - Dst: CHECK_NULL_ALLOWED
      Src: /src/cpython/Parser/parser.c:18403,1
    - Dst: _PyPegen_seq_extract_starred_exprs
      Src: /src/cpython/Parser/parser.c:18403,1
    - Dst: CHECK_NULL_ALLOWED
      Src: /src/cpython/Parser/parser.c:18403,1
    - Dst: _PyPegen_seq_delete_starred_exprs
      Src: /src/cpython/Parser/parser.c:18403,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18404,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18412,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18419
      start: 18325
    functionDepth: 1
    functionLinenumber: 18325
    functionLinenumberEnd: 18419
    functionName: args_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_collect_call_seqs
    - _PyPegen_fill_token
    - _PyPegen_seq_extract_starred_exprs
    - _tmp_90_rule
    - kwargs_rule
    - _PyPegen_dummy_name
    - PyErr_Occurred
    - _PyPegen_seq_delete_starred_exprs
    - CHECK_NULL_ALLOWED
    - D
    - _PyAST_Call
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_89_rule
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty args_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18428,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18428,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18442,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18442,1
    - Dst: _gather_92_rule
      Src: /src/cpython/Parser/parser.c:18447,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18449,1
    - Dst: _gather_94_rule
      Src: /src/cpython/Parser/parser.c:18451,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18454,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/parser.c:18455,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18456,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18464,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18464,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18472,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18472,1
    - Dst: _gather_92_rule
      Src: /src/cpython/Parser/parser.c:18475,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18478,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18483,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18483,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18491,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18491,1
    - Dst: _gather_94_rule
      Src: /src/cpython/Parser/parser.c:18494,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18497,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18497,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18502,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18509
      start: 18425
    functionDepth: 1
    functionLinenumber: 18425
    functionLinenumberEnd: 18509
    functionName: kwargs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _gather_92_rule
    - D
    - _PyPegen_join_sequences
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _gather_94_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      kwargs_rule(Parser *p)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18518,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18518,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18519,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18527,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18533,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18541,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18541,1
    - Dst: invalid_starred_expression_unpacking_rule
      Src: /src/cpython/Parser/parser.c:18544,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18552,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18552,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18560,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18560,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18564,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:18566,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18569,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18570,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18576,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18578,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:18579,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18580,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18588,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18588,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18596,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18596,1
    - Dst: invalid_starred_expression_rule
      Src: /src/cpython/Parser/parser.c:18599,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18602,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18602,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18607,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18607,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18614
      start: 18515
    functionDepth: 2
    functionLinenumber: 18515
    functionLinenumberEnd: 18614
    functionName: starred_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_Starred
    - D
    - invalid_starred_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - invalid_starred_expression_unpacking_rule
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty starred_expression_rule(Parser *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18620,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18620,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18621,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18629,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18635,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18637,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18643,1
    - Dst: invalid_kwarg_rule
      Src: /src/cpython/Parser/parser.c:18646,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18654,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18654,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18662,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18662,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:18667,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18669,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:18671,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18674,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18674,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18675,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18681,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18683,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:18684,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:18684,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Parser/parser.c:18684,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18685,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18693,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18693,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18701,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:18704,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18707,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18707,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:18708,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18709,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18717,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18717,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18724
      start: 18617
    functionDepth: 3
    functionLinenumber: 18617
    functionLinenumberEnd: 18724
    functionName: kwarg_or_starred_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - expression_rule
    - _PyPegen_fill_token
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK
    - PyErr_Occurred
    - starred_expression_rule
    - _PyAST_keyword
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - invalid_kwarg_rule
    - fprintf
    - _PyPegen_keyword_or_starred
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: KeywordOrStarred
    signature: 'KeywordOrStarred *

      kwarg_or_starred_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18730,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18730,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18731,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18739,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18745,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18747,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18753,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18753,1
    - Dst: invalid_kwarg_rule
      Src: /src/cpython/Parser/parser.c:18756,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18759,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18764,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18772,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:18777,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18779,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:18781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18784,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18784,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18785,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18791,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18793,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:18794,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:18794,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Parser/parser.c:18794,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18803,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18803,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18811,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18811,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18815,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:18817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18820,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18820,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18821,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18827,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18829,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:18830,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:18830,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Parser/parser.c:18830,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18839,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18839,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18846
      start: 18727
    functionDepth: 2
    functionLinenumber: 18727
    functionLinenumberEnd: 18846
    functionName: kwarg_or_double_starred_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - expression_rule
    - _PyPegen_fill_token
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK
    - PyErr_Occurred
    - _PyAST_keyword
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - invalid_kwarg_rule
    - fprintf
    - _PyPegen_keyword_or_starred
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: KeywordOrStarred
    signature: 'KeywordOrStarred *

      kwarg_or_double_starred_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18852,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18852,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18853,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18861,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18867,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18869,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18875,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18875,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:18878,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:18880,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18883,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18885,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18893,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18901,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18903,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:18907,1
    - Dst: _loop0_95_rule
      Src: /src/cpython/Parser/parser.c:18909,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18911,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18914,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18914,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18915,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18921,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18923,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:18924,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:18924,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:18924,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18925,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18933,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18933,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18940
      start: 18849
    functionDepth: 1
    functionLinenumber: 18849
    functionLinenumberEnd: 18940
    functionName: star_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Tuple
    - _PyPegen_seq_insert_in_front
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - star_target_rule
    - _loop0_95_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_targets_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18946,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18946,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18947,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18960,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18960,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18962,1
    - Dst: _gather_97_rule
      Src: /src/cpython/Parser/parser.c:18965,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18967,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18970,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18970,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18972,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18980,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18980,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18987
      start: 18943
    functionDepth: 1
    functionLinenumber: 18943
    functionLinenumberEnd: 18987
    functionName: star_targets_list_seq_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - PyErr_Occurred
    - _gather_97_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      star_targets_list_seq_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18993,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18993,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19007,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19009,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:19013,1
    - Dst: _loop1_98_rule
      Src: /src/cpython/Parser/parser.c:19015,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19017,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19020,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:19021,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19030,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19030,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19038,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19038,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:19042,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19044,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19047,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19047,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:19048,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19049,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19057,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19057,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19064
      start: 18990
    functionDepth: 1
    functionLinenumber: 18990
    functionLinenumberEnd: 19064
    functionName: star_targets_tuple_seq_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _loop1_98_rule
    - UNUSED
    - PyErr_Occurred
    - star_target_rule
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      star_targets_tuple_seq_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19070,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19070,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19071,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:19078,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19083,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19089,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19091,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19097,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19097,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19101,1
    - Dst: _tmp_99_rule
      Src: /src/cpython/Parser/parser.c:19103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19106,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19106,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19107,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19113,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19115,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:19116,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:19116,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19117,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19125,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19125,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19133,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19133,1
    - Dst: target_with_star_atom_rule
      Src: /src/cpython/Parser/parser.c:19136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19139,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19139,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19144,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19144,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:19149,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19152
      start: 19067
    functionDepth: 1
    functionLinenumber: 19067
    functionLinenumberEnd: 19152
    functionName: star_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - UNUSED
    - _tmp_99_rule
    - PyErr_Occurred
    - target_with_star_atom_rule
    - _PyAST_Starred
    - D
    - _PyPegen_insert_memo
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_target_rule(Parser *p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19161,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19161,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19162,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:19169,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19174,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19180,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19182,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19188,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19188,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19193,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19195,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19197,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19202,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19203,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19209,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19211,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:19212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19213,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19221,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19229,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19235,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19237,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:19239,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19241,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19243,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19246,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19247,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19253,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19255,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:19256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19257,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19265,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19265,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19273,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19273,1
    - Dst: star_atom_rule
      Src: /src/cpython/Parser/parser.c:19276,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19279,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19279,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19284,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19284,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:19289,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19292
      start: 19158
    functionDepth: 2
    functionLinenumber: 19158
    functionLinenumberEnd: 19292
    functionName: target_with_star_atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_atom_rule
    - UNUSED
    - _Pypegen_stack_overflow
    - PyErr_Occurred
    - t_primary_rule
    - _PyPegen_insert_memo
    - fprintf
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - _PyAST_Subscript
    - _PyAST_Attribute
    - _PyPegen_expect_token
    - slices_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_is_memoized
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty target_with_star_atom_rule(Parser *p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19302,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19302,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19303,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19311,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19317,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19325,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19325,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19328,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19331,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19331,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19341,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19341,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19349,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19349,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19354,1
    - Dst: target_with_star_atom_rule
      Src: /src/cpython/Parser/parser.c:19356,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19358,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19361,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19361,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19362,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19363,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19371,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19371,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19379,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19384,1
    - Dst: star_targets_tuple_seq_rule
      Src: /src/cpython/Parser/parser.c:19386,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19388,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19391,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19391,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19392,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19398,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19400,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:19401,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19402,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19410,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19410,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19418,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19418,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19423,1
    - Dst: star_targets_list_seq_rule
      Src: /src/cpython/Parser/parser.c:19425,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19427,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19430,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19430,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19431,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19437,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19439,1
    - Dst: _PyAST_List
      Src: /src/cpython/Parser/parser.c:19440,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19441,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19449,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19449,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19456
      start: 19299
    functionDepth: 3
    functionLinenumber: 19299
    functionLinenumberEnd: 19456
    functionName: star_atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Tuple
    - star_targets_list_seq_rule
    - _PyAST_List
    - PyErr_Occurred
    - star_targets_tuple_seq_rule
    - target_with_star_atom_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_atom_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19462,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19462,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19463,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19476,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19476,1
    - Dst: single_subscript_attribute_target_rule
      Src: /src/cpython/Parser/parser.c:19479,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19482,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19487,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19487,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19495,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19495,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19498,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19501,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19501,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19502,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19511,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19511,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19519,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19519,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19524,1
    - Dst: single_target_rule
      Src: /src/cpython/Parser/parser.c:19526,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19528,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19531,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19531,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19533,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19541,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19541,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19548
      start: 19459
    functionDepth: 1
    functionLinenumber: 19459
    functionLinenumberEnd: 19548
    functionName: single_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_name_token
    - single_target_rule
    - single_subscript_attribute_target_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty single_target_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19556,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19556,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19557,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19565,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19571,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19573,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19579,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19584,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19586,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19588,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19593,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19593,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19594,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19600,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19602,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:19603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19604,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19612,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19612,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19620,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19626,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19628,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:19630,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19632,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19634,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19637,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19637,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19638,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19644,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19646,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:19647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19648,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19656,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19656,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19663
      start: 19553
    functionDepth: 2
    functionLinenumber: 19553
    functionLinenumberEnd: 19663
    functionName: single_subscript_attribute_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_Subscript
    - t_primary_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_Attribute
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - slices_rule
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty single_subscript_attribute_target_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19676,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19676,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19677,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:19680,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:19687,1
    - Dst: t_primary_raw
      Src: /src/cpython/Parser/parser.c:19693,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19706
      start: 19673
    functionDepth: 1
    functionLinenumber: 19673
    functionLinenumberEnd: 19706
    functionName: t_primary_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _PyPegen_is_memoized
    - t_primary_raw
    - _PyPegen_update_memo
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty t_primary_rule(Parser *p)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19710,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19710,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19711,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19719,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19725,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19733,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19733,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19738,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19740,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19742,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19744,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19747,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19747,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19748,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19754,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19756,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:19757,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19758,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19766,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19774,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19774,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19780,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19782,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:19784,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19786,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19788,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19791,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19791,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19792,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19798,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19800,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:19801,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19802,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19810,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19810,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19818,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19818,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19822,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:19824,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19826,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19829,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19830,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19836,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19838,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:19839,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:19839,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:19839,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19848,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19856,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19856,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19862,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19864,1
    - Dst: arguments_rule
      Src: /src/cpython/Parser/parser.c:19866,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19868,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19870,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19873,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19874,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19880,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19882,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:19883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19892,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19892,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19900,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19900,1
    - Dst: atom_rule
      Src: /src/cpython/Parser/parser.c:19903,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19905,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19908,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19908,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19910,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19918,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 139
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19925
      start: 19707
    functionDepth: 3
    functionLinenumber: 19707
    functionLinenumberEnd: 19925
    functionName: t_primary_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - atom_rule
    - _PyAST_Call
    - CHECK
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - t_primary_rule
    - genexp_rule
    - fprintf
    - _PyPegen_name_token
    - _PyPegen_fill_token
    - _PyAST_Subscript
    - _PyAST_Attribute
    - _PyPegen_expect_token
    - _PyPegen_singleton_seq
    - slices_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - arguments_rule
    - PyThreadState_Get
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty t_primary_raw(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19931,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19931,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19932,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19945,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19948,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19951,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19956,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19964,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19964,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19967,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19970,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19970,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19975,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19975,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19983,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19983,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19989,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19994,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19994,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20001
      start: 19928
    functionDepth: 1
    functionLinenumber: 19928
    functionLinenumberEnd: 20001
    functionName: t_lookahead_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      t_lookahead_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:20007,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20007,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20021,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20021,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20023,1
    - Dst: _gather_101_rule
      Src: /src/cpython/Parser/parser.c:20026,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20028,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20031,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20031,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20033,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20041,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20048
      start: 20004
    functionDepth: 1
    functionLinenumber: 20004
    functionLinenumberEnd: 20048
    functionName: del_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _gather_101_rule
    - UNUSED
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      del_targets_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:20057,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20057,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20058,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:20065,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:20070,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20076,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20078,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20084,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20084,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20089,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20091,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20093,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20095,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20098,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20099,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20105,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20107,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:20108,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20109,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20117,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20117,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20125,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20125,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20131,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20133,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:20135,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20137,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20139,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20142,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20142,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20143,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20149,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20151,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:20152,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20153,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20161,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20169,1
    - Dst: del_t_atom_rule
      Src: /src/cpython/Parser/parser.c:20172,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20175,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20175,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20180,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20180,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:20185,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20188
      start: 20054
    functionDepth: 2
    functionLinenumber: 20054
    functionLinenumberEnd: 20188
    functionName: del_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - _Pypegen_stack_overflow
    - PyErr_Occurred
    - t_primary_rule
    - _PyPegen_insert_memo
    - fprintf
    - _PyPegen_name_token
    - del_t_atom_rule
    - _PyPegen_fill_token
    - _PyAST_Subscript
    - _PyAST_Attribute
    - _PyPegen_expect_token
    - slices_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_is_memoized
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty del_target_rule(Parser *p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:20194,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20194,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20195,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:20203,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20209,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20211,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20217,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20217,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20220,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20223,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20223,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:20224,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20225,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20233,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20241,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20246,1
    - Dst: del_target_rule
      Src: /src/cpython/Parser/parser.c:20248,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20250,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20253,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:20254,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20263,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20263,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20271,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20271,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20276,1
    - Dst: del_targets_rule
      Src: /src/cpython/Parser/parser.c:20278,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20280,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20283,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20283,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20284,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20290,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20292,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:20293,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20302,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20310,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20315,1
    - Dst: del_targets_rule
      Src: /src/cpython/Parser/parser.c:20317,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20322,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20323,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20329,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20331,1
    - Dst: _PyAST_List
      Src: /src/cpython/Parser/parser.c:20332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20341,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20341,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20348
      start: 20191
    functionDepth: 3
    functionLinenumber: 20191
    functionLinenumberEnd: 20348
    functionName: del_t_atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_fill_token
    - _PyAST_Tuple
    - _PyAST_List
    - PyErr_Occurred
    - del_target_rule
    - del_targets_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty del_t_atom_rule(Parser *p)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:20361,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20361,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20375,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20375,1
    - Dst: _gather_103_rule
      Src: /src/cpython/Parser/parser.c:20384,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20386,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20388,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20390,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20392,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20394,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20396,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20399,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20400,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:20400,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20400,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20401,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20409,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20409,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20417,1
    - Dst: _gather_103_rule
      Src: /src/cpython/Parser/parser.c:20423,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20425,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20427,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20432,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20433,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20434,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20442,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20442,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20450,1
    - Dst: _gather_103_rule
      Src: /src/cpython/Parser/parser.c:20456,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20458,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20460,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20462,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20465,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20465,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20466,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20467,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20475,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20475,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20483,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20483,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20490,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20492,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20494,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20496,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20498,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20501,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20501,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20502,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:20502,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:20502,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20511,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20511,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20519,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20519,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20523,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20525,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20528,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20528,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:20529,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20530,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20538,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20538,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20546,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20546,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20550,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20552,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20555,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:20556,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20565,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20565,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20573,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20573,1
    - Dst: _gather_103_rule
      Src: /src/cpython/Parser/parser.c:20576,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20579,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20589,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 146
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20596
      start: 20358
    functionDepth: 2
    functionLinenumber: 20358
    functionLinenumberEnd: 20596
    functionName: type_expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - _gather_103_rule
    - PyErr_Occurred
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - CHECK
    - fprintf
    - _PyPegen_seq_append_to_end
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      type_expressions_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:20605,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20605,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20619,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20623,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20625,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20630,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20630,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20632,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20640,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20640,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20648,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20648,1
    - Dst: invalid_double_type_comments_rule
      Src: /src/cpython/Parser/parser.c:20651,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20654,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20654,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20659,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20659,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20667,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20670,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20673,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20673,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20678,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20678,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20685
      start: 20602
    functionDepth: 1
    functionLinenumber: 20602
    functionLinenumberEnd: 20685
    functionName: func_type_comment_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - invalid_double_type_comments_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: Token
    signature: 'Token *

      func_type_comment_rule(Parser *p)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:20698,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20698,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20699,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20712,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20712,1
    - Dst: _tmp_105_rule
      Src: /src/cpython/Parser/parser.c:20717,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20719,1
    - Dst: _gather_107_rule
      Src: /src/cpython/Parser/parser.c:20721,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20724,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20724,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:20725,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20726,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20734,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20742,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20742,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20745,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20749,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:20751,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20753,1
    - Dst: _tmp_108_rule
      Src: /src/cpython/Parser/parser.c:20755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20758,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20758,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:20759,1
    - Dst: _PyPegen_get_last_comprehension_item
      Src: /src/cpython/Parser/parser.c:20759,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:20759,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20760,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20768,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20768,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20776,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20776,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20782,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20784,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20786,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:20788,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20791,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20791,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:20792,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20793,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20801,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20801,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20809,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20809,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20811,1
    - Dst: _tmp_109_rule
      Src: /src/cpython/Parser/parser.c:20815,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20817,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20819,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20821,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20824,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20824,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:20825,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20826,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20834,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20834,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20842,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20842,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:20846,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:20848,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20851,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20851,1
    - Dst: _PyPegen_nonparen_genexp_in_call
      Src: /src/cpython/Parser/parser.c:20852,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20853,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20861,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20869,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20869,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:20875,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20877,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20879,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:20881,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20884,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20884,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:20885,1
    - Dst: _PyPegen_get_last_comprehension_item
      Src: /src/cpython/Parser/parser.c:20885,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:20885,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20886,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20894,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20902,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:20907,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20909,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:20911,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20914,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20914,1
    - Dst: _PyPegen_arguments_parsing_error
      Src: /src/cpython/Parser/parser.c:20915,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20916,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20924,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20924,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 148
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20931
      start: 20695
    functionDepth: 2
    functionLinenumber: 20695
    functionLinenumberEnd: 20931
    functionName: invalid_arguments_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - _PyPegen_get_last_comprehension_item
    - _PyPegen_nonparen_genexp_in_call
    - for_if_clauses_rule
    - UNUSED
    - _Pypegen_stack_overflow
    - PyErr_Occurred
    - _tmp_109_rule
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _PyPegen_arguments_parsing_error
    - _tmp_108_rule
    - _PyPegen_name_token
    - _tmp_105_rule
    - PyPegen_last_item
    - _PyPegen_expect_token
    - expression_rule
    - _gather_107_rule
    - args_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_arguments_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:20941,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20941,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20955,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20955,1
    - Dst: _tmp_111_rule
      Src: /src/cpython/Parser/parser.c:20959,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20961,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20964,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20964,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:20965,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/parser.c:20965,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20974,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20982,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20982,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20988,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20990,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20992,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:20994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20997,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20997,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:20998,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20999,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21015,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21015,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21019,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21021,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21023,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21026,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21027,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21028,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21036,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21036,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21044,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21044,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21050,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21052,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21054,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21056,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21059,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21059,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21060,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21069,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21069,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21076
      start: 20938
    functionDepth: 2
    functionLinenumber: 20938
    functionLinenumberEnd: 21076
    functionName: invalid_kwarg_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_name_token
    - expression_rule
    - PyErr_Occurred
    - _PyPegen_expect_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_111_rule
    - _PyPegen_lookahead
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyBytes_AS_STRING
    - PyThreadState_Get
    - for_if_clauses_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_kwarg_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21087,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21087,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21088,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:21097,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21104,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21106,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21113,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21113,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21120,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21122,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21124,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21126,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21128,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21131,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21131,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:21132,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21139,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21141,1
    - Dst: _PyAST_IfExp
      Src: /src/cpython/Parser/parser.c:21142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21143,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21152,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21152,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21161,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21161,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21164,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21167,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21167,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21172,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21172,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21181,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21181,1
    - Dst: lambdef_rule
      Src: /src/cpython/Parser/parser.c:21184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21187,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21192,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21200
      start: 21082
    functionDepth: 3
    functionLinenumber: 21082
    functionLinenumberEnd: 21200
    functionName: expression_without_invalid_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - disjunction_rule
    - expression_rule
    - _PyPegen_fill_token
    - _PyPegen_get_last_nonnwhitespace_token
    - PyErr_Occurred
    - _PyAST_IfExp
    - D
    - lambdef_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - UNUSED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty expression_without_invalid_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21206,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21206,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21207,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21220,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21220,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21224,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:21226,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:21228,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21231,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21231,1
    - Dst: _PyPegen_check_legacy_stmt
      Src: /src/cpython/Parser/parser.c:21232,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21248
      start: 21203
    functionDepth: 2
    functionLinenumber: 21203
    functionLinenumberEnd: 21248
    functionName: invalid_legacy_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - star_expressions_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _PyPegen_check_legacy_stmt
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_legacy_expression_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21254,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21254,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21268,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21268,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21274,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21276,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21278,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21280,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21283,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21283,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:21284,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21285,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21293,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21301,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21301,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21307,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21309,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21311,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21313,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21316,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21316,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:21317,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21318,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21326,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21326,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21333
      start: 21251
    functionDepth: 2
    functionLinenumber: 21251
    functionLinenumberEnd: 21333
    functionName: invalid_type_param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - expression_rule
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_type_param_rule(Parser *p)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21346,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21346,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21360,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:21365,1
    - Dst: _loop1_113_rule
      Src: /src/cpython/Parser/parser.c:21367,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:21369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21372,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21372,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21373,1
    - Dst: PyPegen_first_item
      Src: /src/cpython/Parser/parser.c:21373,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:21373,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21382,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21390,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21390,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21394,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21396,1
    - Dst: expression_without_invalid_rule
      Src: /src/cpython/Parser/parser.c:21398,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21401,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21401,1
    - Dst: _PyPegen_check_legacy_stmt
      Src: /src/cpython/Parser/parser.c:21402,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21402,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21403,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21411,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21411,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21419,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21419,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21424,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21426,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21428,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21430,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21433,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21433,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21434,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21435,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21443,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21451,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21457,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21459,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21461,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21463,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:21465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21468,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:21469,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21470,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21478,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21486,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21486,1
    - Dst: _tmp_116_rule
      Src: /src/cpython/Parser/parser.c:21493,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21495,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21497,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21499,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:21501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21504,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21505,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21506,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21514,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21522,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21522,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21524,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21528,1
    - Dst: lambda_params_rule
      Src: /src/cpython/Parser/parser.c:21530,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21532,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:21534,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21537,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21538,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21539,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21555,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21557,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21561,1
    - Dst: lambda_params_rule
      Src: /src/cpython/Parser/parser.c:21563,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21565,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:21567,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21570,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21570,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21571,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21572,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21580,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21580,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 148
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21587
      start: 21343
    functionDepth: 4
    functionLinenumber: 21343
    functionLinenumberEnd: 21587
    functionName: invalid_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop1_113_rule
    - expression_without_invalid_rule
    - lambda_params_rule
    - _Pypegen_stack_overflow
    - UNUSED
    - PyErr_Occurred
    - simple_stmt_rule
    - _tmp_116_rule
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyPegen_first_item
    - disjunction_rule
    - _PyPegen_expect_token
    - PyPegen_last_item
    - _PyPegen_string_token
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - _PyPegen_check_legacy_stmt
    - _PyPegen_lookahead_for_expr
    - _PyPegen_lookahead_with_int
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_expression_rule(Parser *p)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21596,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21596,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21597,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:21604,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21614,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21614,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21619,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21621,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21623,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21626,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21626,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21627,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:21627,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21636,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21636,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21644,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21644,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21649,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21651,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:21653,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21655,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21658,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21658,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21659,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21660,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21668,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21668,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21676,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21676,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21681,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:21683,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21685,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:21687,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21689,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21692,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21692,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21693,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:21693,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21694,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21702,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21702,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:21707,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21710
      start: 21593
    functionDepth: 2
    functionLinenumber: 21593
    functionLinenumberEnd: 21710
    functionName: invalid_named_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - expression_rule
    - _PyPegen_name_token
    - PyErr_Occurred
    - bitwise_or_rule
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_expr_name
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _PyPegen_insert_memo
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_named_expression_rule(Parser *p)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21722,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21722,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21723,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21736,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21736,1
    - Dst: invalid_ann_assign_target_rule
      Src: /src/cpython/Parser/parser.c:21741,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21743,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21745,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21748,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21748,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21749,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:21749,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21750,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21758,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21758,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21766,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21766,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:21773,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21775,1
    - Dst: _loop0_119_rule
      Src: /src/cpython/Parser/parser.c:21777,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21779,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21784,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21784,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21785,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21786,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21794,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21794,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21802,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21807,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21809,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21811,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21814,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21814,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21815,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21816,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21824,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21824,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21832,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21832,1
    - Dst: _loop0_120_rule
      Src: /src/cpython/Parser/parser.c:21837,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:21839,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21841,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21844,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21844,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:21845,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21846,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21854,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21862,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21862,1
    - Dst: _loop0_120_rule
      Src: /src/cpython/Parser/parser.c:21867,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:21869,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21871,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21874,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21874,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21875,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21876,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21884,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21892,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21892,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:21897,1
    - Dst: augassign_rule
      Src: /src/cpython/Parser/parser.c:21899,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:21901,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21904,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21904,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21905,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:21905,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21906,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21914,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21914,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 127
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21921
      start: 21719
    functionDepth: 3
    functionLinenumber: 21719
    functionLinenumberEnd: 21921
    functionName: invalid_assignment_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_expressions_rule
    - _loop0_119_rule
    - _Pypegen_stack_overflow
    - PyErr_Occurred
    - fprintf
    - augassign_rule
    - annotated_rhs_rule
    - star_named_expression_rule
    - _PyPegen_get_expr_name
    - _PyPegen_expect_token
    - expression_rule
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - D
    - yield_expr_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_ann_assign_target_rule
    - _loop0_120_rule
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_assignment_rule(Parser *p)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21927,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21927,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21928,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21941,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21941,1
    - Dst: list_rule
      Src: /src/cpython/Parser/parser.c:21944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21947,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21947,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21952,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21952,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21960,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21960,1
    - Dst: tuple_rule
      Src: /src/cpython/Parser/parser.c:21963,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21966,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21971,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21979,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21979,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21984,1
    - Dst: invalid_ann_assign_target_rule
      Src: /src/cpython/Parser/parser.c:21986,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21991,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21991,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21993,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22001,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22001,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22008
      start: 21924
    functionDepth: 3
    functionLinenumber: 21924
    functionLinenumberEnd: 22008
    functionName: invalid_ann_assign_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - tuple_rule
    - PyErr_Occurred
    - list_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_ann_assign_target_rule
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty invalid_ann_assign_target_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22014,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22014,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22015,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22028,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22028,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22032,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22034,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22037,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22038,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22039,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22047,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22055,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22055,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22060,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22062,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22064,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22067,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22067,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22068,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22069,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22077,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22084
      start: 22011
    functionDepth: 2
    functionLinenumber: 22011
    functionLinenumberEnd: 22084
    functionName: invalid_raise_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_raise_stmt_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22090,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22090,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22091,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22104,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22104,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22108,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:22110,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22113,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22113,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:22114,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22115,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22123,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22130
      start: 22087
    functionDepth: 2
    functionLinenumber: 22087
    functionLinenumberEnd: 22130
    functionName: invalid_del_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - PyErr_Occurred
    - star_expressions_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_del_stmt_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22136,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22136,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22137,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22150,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22150,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22153,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:22155,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22158,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22158,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:22159,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22160,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22175
      start: 22133
    functionDepth: 1
    functionLinenumber: 22133
    functionLinenumberEnd: 22175
    functionName: invalid_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_block_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22184,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22184,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22185,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22198,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22198,1
    - Dst: _tmp_121_rule
      Src: /src/cpython/Parser/parser.c:22203,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:22205,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22207,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22210,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22211,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22212,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22220,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22220,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22228,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22228,1
    - Dst: _tmp_122_rule
      Src: /src/cpython/Parser/parser.c:22235,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:22237,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22239,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:22241,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22243,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22246,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22247,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:22247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22248,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22256,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22256,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22264,1
    - Dst: _tmp_122_rule
      Src: /src/cpython/Parser/parser.c:22270,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:22272,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22274,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22276,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22279,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22279,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22280,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22281,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22289,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22289,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22296
      start: 22181
    functionDepth: 3
    functionLinenumber: 22181
    functionLinenumberEnd: 22296
    functionName: invalid_comprehension_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - star_named_expression_rule
    - star_named_expressions_rule
    - PyPegen_last_item
    - starred_expression_rule
    - PyErr_Occurred
    - _tmp_121_rule
    - D
    - _tmp_122_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - for_if_clauses_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_comprehension_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22302,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22302,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22303,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22316,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22316,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22323,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22325,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:22327,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22329,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22331,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22334,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22334,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22335,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22336,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22344,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22344,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22351
      start: 22299
    functionDepth: 2
    functionLinenumber: 22299
    functionLinenumberEnd: 22351
    functionName: invalid_dict_comprehension_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - bitwise_or_rule
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - for_if_clauses_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_dict_comprehension_rule(Parser *p)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22363,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22363,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22364,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22377,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22377,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22381,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22383,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22386,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22386,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22387,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22388,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22396,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22396,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22404,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22404,1
    - Dst: _tmp_123_rule
      Src: /src/cpython/Parser/parser.c:22409,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:22411,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22413,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22416,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22416,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22417,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22418,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22426,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22426,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22434,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22434,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:22437,1
    - Dst: slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:22441,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:22443,1
    - Dst: invalid_parameters_helper_rule
      Src: /src/cpython/Parser/parser.c:22445,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:22447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22450,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22451,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22452,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22460,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22460,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22468,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:22472,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:22476,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22478,1
    - Dst: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:22480,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22482,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22484,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22487,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22487,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22488,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22489,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22497,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22497,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22505,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22505,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:22510,1
    - Dst: _tmp_123_rule
      Src: /src/cpython/Parser/parser.c:22514,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:22516,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22518,1
    - Dst: _tmp_124_rule
      Src: /src/cpython/Parser/parser.c:22520,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:22522,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22524,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22528,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22529,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22537,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 105
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22539
      start: 22360
    functionDepth: 2
    functionLinenumber: 22360
    functionLinenumberEnd: 22539
    functionName: invalid_parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - invalid_parameters_helper_rule
    - UNUSED
    - _tmp_124_rule
    - PyErr_Occurred
    - param_no_default_rule
    - _loop1_29_rule
    - slash_no_default_rule
    - D
    - _tmp_123_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_31_rule
    - _PyPegen_expect_token
    - _loop0_27_rule
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_parameters_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22580,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22580,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22594,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22594,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22597,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:22599,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22602,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22602,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22604,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22612,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22612,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22619
      start: 22577
    functionDepth: 1
    functionLinenumber: 22577
    functionLinenumberEnd: 22619
    functionName: invalid_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_default_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22629,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22629,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22630,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22643,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22647,1
    - Dst: _tmp_126_rule
      Src: /src/cpython/Parser/parser.c:22649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22652,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22652,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22653,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22654,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22662,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22662,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22670,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22670,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22675,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22677,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22679,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22682,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22682,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:22683,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22692,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22692,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22700,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22700,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22705,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:22707,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22709,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22712,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22712,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22713,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22714,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22722,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22722,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22730,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22737,1
    - Dst: _tmp_127_rule
      Src: /src/cpython/Parser/parser.c:22739,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:22741,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22743,1
    - Dst: _tmp_127_rule
      Src: /src/cpython/Parser/parser.c:22745,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22748,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22748,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22749,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22750,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22758,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22758,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22765
      start: 22626
    functionDepth: 2
    functionLinenumber: 22626
    functionLinenumberEnd: 22765
    functionName: invalid_star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _tmp_126_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - param_rule
    - _PyPegen_expect_token
    - _tmp_127_rule
    - fprintf
    - _loop0_31_rule
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_star_etc_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22771,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22771,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22772,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22785,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22785,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22790,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:22792,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22794,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22797,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22798,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22807,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22815,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22815,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22821,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:22823,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22825,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:22827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22830,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22830,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22831,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22832,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22840,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22848,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22854,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:22856,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22858,1
    - Dst: _tmp_128_rule
      Src: /src/cpython/Parser/parser.c:22860,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22863,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22863,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22864,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22873,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22880
      start: 22768
    functionDepth: 2
    functionLinenumber: 22768
    functionLinenumberEnd: 22880
    functionName: invalid_kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - param_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_128_rule
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_kwds_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22886,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22886,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22887,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22900,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22900,1
    - Dst: slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:22903,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22906,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22906,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:22907,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22908,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22916,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22916,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22924,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22924,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:22927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22935,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22935,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22942
      start: 22883
    functionDepth: 2
    functionLinenumber: 22883
    functionLinenumberEnd: 22942
    functionName: invalid_parameters_helper_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - slash_with_default_rule
    - PyErr_Occurred
    - _loop1_30_rule
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_parameters_helper_rule(Parser *p)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22954,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22954,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22955,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22968,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22968,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22972,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22974,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22977,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22977,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22978,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22979,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22987,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22995,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22995,1
    - Dst: _tmp_129_rule
      Src: /src/cpython/Parser/parser.c:23000,1
    - Dst: _loop0_74_rule
      Src: /src/cpython/Parser/parser.c:23002,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23004,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23007,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23008,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23009,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23017,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23017,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23025,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23025,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23028,1
    - Dst: lambda_slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:23032,1
    - Dst: _loop0_70_rule
      Src: /src/cpython/Parser/parser.c:23034,1
    - Dst: invalid_lambda_parameters_helper_rule
      Src: /src/cpython/Parser/parser.c:23036,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:23038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23041,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23042,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23043,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23051,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23051,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23059,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23059,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23063,1
    - Dst: _loop0_70_rule
      Src: /src/cpython/Parser/parser.c:23067,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23069,1
    - Dst: _gather_131_rule
      Src: /src/cpython/Parser/parser.c:23071,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23073,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23075,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23078,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23078,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:23079,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23080,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23088,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23096,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23096,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23101,1
    - Dst: _tmp_129_rule
      Src: /src/cpython/Parser/parser.c:23105,1
    - Dst: _loop0_74_rule
      Src: /src/cpython/Parser/parser.c:23107,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23109,1
    - Dst: _tmp_132_rule
      Src: /src/cpython/Parser/parser.c:23111,1
    - Dst: _loop0_74_rule
      Src: /src/cpython/Parser/parser.c:23113,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23115,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23128,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23128,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 105
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23130
      start: 22951
    functionDepth: 2
    functionLinenumber: 22951
    functionLinenumberEnd: 23130
    functionName: invalid_lambda_parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _tmp_132_rule
    - _gather_131_rule
    - _loop0_70_rule
    - UNUSED
    - lambda_param_no_default_rule
    - PyErr_Occurred
    - invalid_lambda_parameters_helper_rule
    - D
    - lambda_slash_no_default_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_129_rule
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _loop0_74_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_lambda_parameters_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23173,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23173,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23174,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23187,1
    - Dst: lambda_slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:23190,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23193,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23193,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:23194,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23195,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23203,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23203,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23211,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23211,1
    - Dst: _loop1_73_rule
      Src: /src/cpython/Parser/parser.c:23214,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23217,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23217,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23222,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23222,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23229
      start: 23170
    functionDepth: 2
    functionLinenumber: 23170
    functionLinenumberEnd: 23229
    functionName: invalid_lambda_parameters_helper_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _PyPegen_singleton_seq
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_73_rule
    - fprintf
    - lambda_slash_with_default_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_lambda_parameters_helper_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23238,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23238,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23239,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23252,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23252,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23256,1
    - Dst: _tmp_133_rule
      Src: /src/cpython/Parser/parser.c:23258,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23261,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:23262,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23263,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23271,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23271,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23279,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23279,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23284,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23286,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23288,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23291,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23301,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23301,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23309,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23309,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23316,1
    - Dst: _tmp_134_rule
      Src: /src/cpython/Parser/parser.c:23318,1
    - Dst: _loop0_74_rule
      Src: /src/cpython/Parser/parser.c:23320,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23322,1
    - Dst: _tmp_134_rule
      Src: /src/cpython/Parser/parser.c:23324,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23327,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23327,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23328,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23329,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23337,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23337,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23344
      start: 23235
    functionDepth: 2
    functionLinenumber: 23235
    functionLinenumberEnd: 23344
    functionName: invalid_lambda_star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _tmp_133_rule
    - lambda_param_rule
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_134_rule
    - _PyPegen_expect_token
    - fprintf
    - _loop0_74_rule
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_lambda_star_etc_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23353,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23353,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23354,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23367,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23367,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23372,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23374,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23379,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23380,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23381,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23389,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23389,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23397,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23397,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23403,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23405,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23407,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23409,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23412,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23413,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23414,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23422,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23422,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23430,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23430,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23436,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23438,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23440,1
    - Dst: _tmp_128_rule
      Src: /src/cpython/Parser/parser.c:23442,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23445,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23446,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23455,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23462
      start: 23350
    functionDepth: 2
    functionLinenumber: 23350
    functionLinenumberEnd: 23462
    functionName: invalid_lambda_kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - lambda_param_rule
    - D
    - _tmp_128_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_lambda_kwds_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23468,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23468,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23469,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23482,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23482,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23489,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23491,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23493,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23495,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23497,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23500,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23500,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:23501,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23502,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23510,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23510,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23517
      start: 23465
    functionDepth: 1
    functionLinenumber: 23465
    functionLinenumberEnd: 23517
    functionName: invalid_double_type_comments_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_double_type_comments_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23523,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23523,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23524,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23537,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:23542,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23544,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:23546,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:23548,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23551,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:23552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23553,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23561,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23561,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23568
      start: 23520
    functionDepth: 2
    functionLinenumber: 23520
    functionLinenumberEnd: 23568
    functionName: invalid_with_item_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_with_item_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23574,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23574,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23575,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23588,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23588,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23591,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23594,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23596,1
    - Dst: _tmp_135_rule
      Src: /src/cpython/Parser/parser.c:23598,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:23600,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23603,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23603,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:23604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23613,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23620
      start: 23571
    functionDepth: 1
    functionLinenumber: 23571
    functionLinenumberEnd: 23620
    functionName: invalid_for_if_clause_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - D
    - _tmp_135_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_for_if_clause_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23626,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23626,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23640,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23640,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23643,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23646,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23648,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:23650,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23653,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23653,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:23654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23655,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23663,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23663,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23670
      start: 23623
    functionDepth: 2
    functionLinenumber: 23623
    functionLinenumberEnd: 23670
    functionName: invalid_for_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - UNUSED
    - PyErr_Occurred
    - star_expressions_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_for_target_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23676,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23676,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23677,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23690,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23690,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23695,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:23697,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23699,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23702,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23702,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23703,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23704,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23712,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23712,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23720,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23726,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23728,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:23730,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23732,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23735,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23735,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23736,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23737,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23745,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23745,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23752
      start: 23673
    functionDepth: 3
    functionLinenumber: 23673
    functionLinenumberEnd: 23752
    functionName: invalid_group_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - starred_expression_rule
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_group_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23758,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23758,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23772,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23778,1
    - Dst: _gather_137_rule
      Src: /src/cpython/Parser/parser.c:23780,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23782,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:23784,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23787,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23787,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:23788,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23797,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23805,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23805,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23809,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23811,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23814,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23814,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:23815,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23816,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23824,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23824,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23831
      start: 23755
    functionDepth: 2
    functionLinenumber: 23755
    functionLinenumberEnd: 23831
    functionName: invalid_import_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - dotted_name_rule
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - PyErr_Occurred
    - D
    - _gather_137_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_import_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23837,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23837,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23838,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23851,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23851,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:23856,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23858,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:23860,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:23862,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23865,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23865,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23866,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:23866,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23867,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23875,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23875,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23882
      start: 23834
    functionDepth: 2
    functionLinenumber: 23834
    functionLinenumberEnd: 23882
    functionName: invalid_dotted_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - dotted_name_rule
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_expr_name
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_dotted_as_name_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23888,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23888,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23889,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23902,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:23907,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23909,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:23911,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:23913,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23916,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23916,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23917,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:23917,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23918,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23926,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23933
      start: 23885
    functionDepth: 2
    functionLinenumber: 23885
    functionLinenumberEnd: 23933
    functionName: invalid_import_from_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - expression_rule
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_expr_name
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_import_from_as_name_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23939,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23939,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23940,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23953,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23953,1
    - Dst: import_from_as_names_rule
      Src: /src/cpython/Parser/parser.c:23958,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23960,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23962,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23965,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23965,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:23966,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23967,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23975,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23975,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23983,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23983,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23989,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:23990,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23999,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24006
      start: 23936
    functionDepth: 2
    functionLinenumber: 23936
    functionLinenumberEnd: 24006
    functionName: invalid_import_from_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - import_from_as_names_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_import_from_targets_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24014,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24014,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24015,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24028,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24028,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24032,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24035,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24037,1
    - Dst: _gather_140_rule
      Src: /src/cpython/Parser/parser.c:24039,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24044,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24044,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24045,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24046,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24054,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24054,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24062,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24062,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24068,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24070,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24073,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24075,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24077,1
    - Dst: _gather_142_rule
      Src: /src/cpython/Parser/parser.c:24079,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24081,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24083,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24085,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24089,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24090,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24098,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24100
      start: 24011
    functionDepth: 1
    functionLinenumber: 24011
    functionLinenumberEnd: 24100
    functionName: invalid_with_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _gather_142_rule
    - UNUSED
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _gather_140_rule
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_with_stmt_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24113,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24113,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24114,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24127,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24127,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24131,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24135,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24137,1
    - Dst: _gather_140_rule
      Src: /src/cpython/Parser/parser.c:24139,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24141,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24143,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24145,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24149,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24150,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24158,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24158,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24160
      start: 24110
    functionDepth: 1
    functionLinenumber: 24110
    functionLinenumberEnd: 24160
    functionName: invalid_with_stmt_indent_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _gather_140_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_with_stmt_indent_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24224,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24224,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24225,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24238,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24238,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24243,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24245,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24247,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24249,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24252,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24252,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24253,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24254,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24262,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24262,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24270,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24270,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24275,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24277,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:24279,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:24281,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24284,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24284,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24285,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24286,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24294,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24302,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24309,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24314,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24316,1
    - Dst: _loop0_144_rule
      Src: /src/cpython/Parser/parser.c:24318,1
    - Dst: _loop1_36_rule
      Src: /src/cpython/Parser/parser.c:24320,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24322,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24324,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24326,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:24328,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24330,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24333,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:24334,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24335,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24343,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24351,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24358,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24361,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24363,1
    - Dst: _loop0_144_rule
      Src: /src/cpython/Parser/parser.c:24365,1
    - Dst: _loop1_37_rule
      Src: /src/cpython/Parser/parser.c:24367,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24369,1
    - Dst: _tmp_145_rule
      Src: /src/cpython/Parser/parser.c:24371,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24373,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24376,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24376,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24377,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24378,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24386,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24386,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 91
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24393
      start: 24221
    functionDepth: 3
    functionLinenumber: 24221
    functionLinenumberEnd: 24393
    functionName: invalid_try_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _tmp_145_rule
    - UNUSED
    - _Pypegen_stack_overflow
    - PyErr_Occurred
    - _tmp_21_rule
    - block_rule
    - _loop1_37_rule
    - _loop0_144_rule
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _loop1_36_rule
    - RAISE_INDENTATION_ERROR
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR
    - expression_rule
    - _PyPegen_lookahead_with_int
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_try_stmt_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24403,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24403,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24404,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24417,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24426,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24428,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24430,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:24432,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24434,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:24436,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24438,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24441,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24441,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:24442,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24451,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24459,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24459,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24461,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24466,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24468,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:24470,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24472,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24475,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24475,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24476,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24485,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24485,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24493,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24493,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24497,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24499,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24502,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24503,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24504,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24512,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24512,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24520,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24520,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24528,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24530,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24532,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24534,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24536,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:24538,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24541,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24541,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24542,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:24542,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24551,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 90
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24558
      start: 24400
    functionDepth: 3
    functionLinenumber: 24400
    functionLinenumberEnd: 24558
    functionName: invalid_except_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - expression_rule
    - expressions_rule
    - UNUSED
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - PyErr_Occurred
    - _tmp_21_rule
    - block_rule
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_expr_name
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_except_stmt_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24568,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24568,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24582,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24582,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24592,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24594,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24596,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24598,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:24600,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24602,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:24604,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24609,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24609,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:24610,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24611,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24619,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24627,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24630,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24635,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24637,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24639,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:24641,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24643,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24646,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24646,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24648,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24656,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24656,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24664,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24669,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24671,1
    - Dst: _tmp_146_rule
      Src: /src/cpython/Parser/parser.c:24673,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24676,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24676,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24677,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24678,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24686,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24686,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24694,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24694,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24703,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24705,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24707,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24709,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24711,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24713,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:24715,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24718,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24718,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24719,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:24719,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24720,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24728,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 90
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24735
      start: 24565
    functionDepth: 3
    functionLinenumber: 24565
    functionLinenumberEnd: 24735
    functionName: invalid_except_star_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - expression_rule
    - _tmp_146_rule
    - expressions_rule
    - UNUSED
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - PyErr_Occurred
    - _tmp_21_rule
    - block_rule
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_expr_name
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_except_star_stmt_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24741,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24741,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24742,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24755,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24760,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24762,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24764,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24769,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24769,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24770,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24771,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24779,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24786
      start: 24738
    functionDepth: 1
    functionLinenumber: 24738
    functionLinenumberEnd: 24786
    functionName: invalid_finally_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_finally_stmt_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24794,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24794,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24808,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24808,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24811,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24816,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24818,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:24820,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24822,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24824,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24826,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24829,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24830,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24839,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24839,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24847,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24847,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24852,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24854,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24856,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24858,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24861,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24862,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24871,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24878
      start: 24791
    functionDepth: 2
    functionLinenumber: 24791
    functionLinenumberEnd: 24878
    functionName: invalid_except_stmt_indent_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - UNUSED
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - _tmp_21_rule
    - RAISE_INDENTATION_ERROR
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_except_stmt_indent_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24885,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24885,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24886,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24899,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24903,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24908,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24910,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24912,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:24914,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24916,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24918,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24920,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24923,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24923,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24924,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24925,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24933,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24933,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24940
      start: 24882
    functionDepth: 2
    functionLinenumber: 24882
    functionLinenumberEnd: 24940
    functionName: invalid_except_star_stmt_indent_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - UNUSED
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - _tmp_21_rule
    - RAISE_INDENTATION_ERROR
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_except_star_stmt_indent_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24948,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24948,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24949,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24962,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24962,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:24967,1
    - Dst: subject_expr_rule
      Src: /src/cpython/Parser/parser.c:24969,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24974,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:24975,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24976,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24984,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24984,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24992,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24992,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:24998,1
    - Dst: subject_expr_rule
      Src: /src/cpython/Parser/parser.c:25000,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25002,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25004,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25006,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25009,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25009,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25010,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25011,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25019,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25019,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25026
      start: 24945
    functionDepth: 2
    functionLinenumber: 24945
    functionLinenumberEnd: 25026
    functionName: invalid_match_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - CHECK_VERSION
    - _PyPegen_expect_token
    - RAISE_INDENTATION_ERROR
    - subject_expr_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_soft_keyword
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_match_stmt_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25034,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25034,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25035,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25048,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25048,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25051,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25055,1
    - Dst: patterns_rule
      Src: /src/cpython/Parser/parser.c:25057,1
    - Dst: guard_rule
      Src: /src/cpython/Parser/parser.c:25059,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25064,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25064,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25065,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25066,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25074,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25082,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25082,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25085,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25090,1
    - Dst: patterns_rule
      Src: /src/cpython/Parser/parser.c:25092,1
    - Dst: guard_rule
      Src: /src/cpython/Parser/parser.c:25094,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25096,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25098,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25100,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25103,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25103,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25104,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25105,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25113,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25113,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25120
      start: 25031
    functionDepth: 2
    functionLinenumber: 25031
    functionLinenumberEnd: 25120
    functionName: invalid_case_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - _PyPegen_lookahead_with_int
    - guard_rule
    - PyErr_Occurred
    - _PyPegen_expect_token
    - patterns_rule
    - RAISE_INDENTATION_ERROR
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_soft_keyword
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_case_block_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25126,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25126,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25127,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25140,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25140,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:25145,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25147,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25152,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25152,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25154,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25170,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:25175,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25177,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25179,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25182,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25182,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25183,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:25183,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25192,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25199
      start: 25123
    functionDepth: 2
    functionLinenumber: 25123
    functionLinenumberEnd: 25199
    functionName: invalid_as_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - or_pattern_rule
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - fprintf
    - _PyPegen_get_expr_name
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_as_pattern_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25205,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25205,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25206,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25219,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25219,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:25224,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25226,1
    - Dst: invalid_class_argument_pattern_rule
      Src: /src/cpython/Parser/parser.c:25228,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25231,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25231,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:25232,1
    - Dst: PyPegen_first_item
      Src: /src/cpython/Parser/parser.c:25232,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:25232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25248
      start: 25202
    functionDepth: 3
    functionLinenumber: 25202
    functionLinenumberEnd: 25248
    functionName: invalid_class_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyPegen_first_item
    - PyPegen_last_item
    - PyErr_Occurred
    - name_or_attr_rule
    - D
    - invalid_class_argument_pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_class_pattern_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25255,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25255,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25256,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25269,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25269,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25272,1
    - Dst: _tmp_147_rule
      Src: /src/cpython/Parser/parser.c:25276,1
    - Dst: keyword_patterns_rule
      Src: /src/cpython/Parser/parser.c:25278,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25280,1
    - Dst: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:25282,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25285,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25285,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25287,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25295,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25302
      start: 25252
    functionDepth: 2
    functionLinenumber: 25252
    functionLinenumberEnd: 25302
    functionName: invalid_class_argument_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - PyErr_Occurred
    - positional_patterns_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_147_rule
    - _PyPegen_expect_token
    - fprintf
    - keyword_patterns_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_pattern_seq
    signature: 'asdl_pattern_seq *

      invalid_class_argument_pattern_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25310,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25310,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25311,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25324,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25324,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25329,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:25331,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25336,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25336,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25337,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25338,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25346,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25346,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25354,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25354,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25360,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:25362,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25364,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25366,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25368,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25371,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25371,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25372,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25373,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25381,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25381,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25388
      start: 25307
    functionDepth: 4
    functionLinenumber: 25307
    functionLinenumberEnd: 25388
    functionName: invalid_if_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - D
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_if_stmt_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25396,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25396,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25397,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25410,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25410,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25415,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:25417,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25419,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25422,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25422,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25423,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25424,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25440,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25440,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25446,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:25448,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25450,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25452,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25454,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25457,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25457,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25458,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25459,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25467,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25467,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25474
      start: 25393
    functionDepth: 4
    functionLinenumber: 25393
    functionLinenumberEnd: 25474
    functionName: invalid_elif_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - D
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_elif_stmt_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25480,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25480,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25481,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25494,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25494,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25499,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25501,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25503,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25508,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25508,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25509,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25510,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25518,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25518,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25526,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25526,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25532,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25534,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:25536,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25538,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25541,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25541,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25542,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25551,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25558
      start: 25477
    functionDepth: 3
    functionLinenumber: 25477
    functionLinenumberEnd: 25558
    functionName: invalid_else_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - block_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_else_stmt_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25566,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25566,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25567,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25580,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25580,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25585,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:25587,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25589,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25592,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25592,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25593,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25594,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25602,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25602,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25610,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25610,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25616,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:25618,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25620,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25622,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25624,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25627,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25628,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25629,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25637,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25637,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25644
      start: 25563
    functionDepth: 4
    functionLinenumber: 25563
    functionLinenumberEnd: 25644
    functionName: invalid_while_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - D
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_while_stmt_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25652,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25652,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25653,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25666,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25666,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25670,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25675,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25677,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:25679,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25681,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:25683,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25685,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25689,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25690,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25698,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25698,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25700
      start: 25649
    functionDepth: 2
    functionLinenumber: 25649
    functionLinenumberEnd: 25700
    functionName: invalid_for_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - PyErr_Occurred
    - star_expressions_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - star_targets_rule
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_for_stmt_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25758,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25758,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25772,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25777,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25779,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25781,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25783,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25788,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25790,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:25792,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:25794,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25796,1
    - Dst: params_rule
      Src: /src/cpython/Parser/parser.c:25798,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25800,1
    - Dst: _tmp_26_rule
      Src: /src/cpython/Parser/parser.c:25802,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25804,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25806,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25808,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25812,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25821,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25823
      start: 25755
    functionDepth: 2
    functionLinenumber: 25755
    functionLinenumberEnd: 25823
    functionName: invalid_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - UNUSED
    - params_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - _tmp_26_rule
    - RAISE_INDENTATION_ERROR
    - type_params_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_def_raw_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25890,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25890,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25891,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25904,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25904,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25907,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25909,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25913,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:25915,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:25917,1
    - Dst: _tmp_25_rule
      Src: /src/cpython/Parser/parser.c:25919,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25921,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25924,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25924,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25925,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25926,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25934,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25942,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25942,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25945,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25947,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25952,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:25954,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:25956,1
    - Dst: _tmp_25_rule
      Src: /src/cpython/Parser/parser.c:25958,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25960,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25962,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25964,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25967,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25967,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25968,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25977,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25977,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25984
      start: 25887
    functionDepth: 2
    functionLinenumber: 25887
    functionLinenumberEnd: 25984
    functionName: invalid_class_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_name_token
    - UNUSED
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - RAISE_INDENTATION_ERROR
    - type_params_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _tmp_25_rule
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_class_def_raw_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25993,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25993,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26007,1
    - Dst: _gather_84_rule
      Src: /src/cpython/Parser/parser.c:26012,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26014,1
    - Dst: invalid_kvpair_rule
      Src: /src/cpython/Parser/parser.c:26016,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26019,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26019,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:26020,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26032,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26038,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26040,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26042,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:26044,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26047,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26047,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:26048,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26049,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26057,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26057,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26065,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26065,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26069,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26071,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26073,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26076,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26076,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26077,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26078,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26086,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26086,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26093
      start: 25990
    functionDepth: 2
    functionLinenumber: 25990
    functionLinenumberEnd: 26093
    functionName: invalid_double_starred_kvpairs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - _gather_84_rule
    - _PyPegen_dummy_name
    - bitwise_or_rule
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - PyErr_Occurred
    - invalid_kvpair_rule
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_double_starred_kvpairs_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26102,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26102,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26116,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26116,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26119,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:26121,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26124,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26124,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26125,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26126,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26134,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26134,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26142,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26142,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26148,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26150,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26152,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:26154,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26157,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26157,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:26158,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26159,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26167,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26167,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26175,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26175,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26179,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26181,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26183,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26186,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26186,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26187,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26188,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26196,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26196,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26203
      start: 26099
    functionDepth: 2
    functionLinenumber: 26099
    functionLinenumberEnd: 26203
    functionName: invalid_kvpair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - _PyPegen_lookahead_with_int
    - PyErr_Occurred
    - bitwise_or_rule
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - RAISE_ERROR_KNOWN_LOCATION
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_kvpair_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26209,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26209,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26210,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26223,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26223,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26229,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26231,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26233,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26235,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26238,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26238,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:26239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26248,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26255
      start: 26206
    functionDepth: 2
    functionLinenumber: 26206
    functionLinenumberEnd: 26255
    functionName: invalid_starred_expression_unpacking_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_starred_expression_unpacking_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26261,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26261,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26262,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26275,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26275,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26278,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26281,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26281,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:26282,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26283,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26291,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26298
      start: 26258
    functionDepth: 1
    functionLinenumber: 26258
    functionLinenumberEnd: 26298
    functionName: invalid_starred_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_starred_expression_rule(Parser *p)'
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26315,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26315,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26329,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26329,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26333,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26335,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26338,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26339,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26340,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26348,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26348,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26356,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26356,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26360,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26365,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26365,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26366,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26367,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26375,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26375,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26383,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26383,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26387,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26389,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26392,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26392,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26393,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26402,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26402,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26410,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26410,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26414,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26416,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26419,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26419,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26420,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26421,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26429,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26437,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26437,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26440,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:26442,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26445,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26446,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26463,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26463,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26467,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26469,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26471,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26474,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26474,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26475,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26475,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26476,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26484,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26484,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26492,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26492,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26497,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26499,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26501,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26506,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26506,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26507,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26507,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26508,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26516,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26516,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26524,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26524,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26527,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26531,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26533,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26535,1
    - Dst: invalid_fstring_conversion_character_rule
      Src: /src/cpython/Parser/parser.c:26537,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26540,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:26541,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26545,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26553,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26553,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26556,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26558,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26561,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26563,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26565,1
    - Dst: _tmp_151_rule
      Src: /src/cpython/Parser/parser.c:26567,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26572,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26572,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26573,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26573,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26574,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26582,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26582,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26590,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26590,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26595,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26597,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26600,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26602,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26604,1
    - Dst: _tmp_151_rule
      Src: /src/cpython/Parser/parser.c:26606,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26608,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:26610,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:26612,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26615,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26616,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26616,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26625,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26625,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26633,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26633,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26636,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26638,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26641,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26643,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26645,1
    - Dst: _tmp_151_rule
      Src: /src/cpython/Parser/parser.c:26647,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:26649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26652,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26652,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26653,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26653,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26654,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26662,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26662,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 224
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26669
      start: 26312
    functionDepth: 2
    functionLinenumber: 26312
    functionLinenumberEnd: 26669
    functionName: invalid_fstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_for_expr
    - UNUSED
    - _PyPegen_lookahead_with_int
    - _PyPegen_dummy_name
    - PyErr_Occurred
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_151_rule
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - invalid_fstring_conversion_character_rule
    - _loop0_76_rule
    - PyThreadState_Get
    - annotated_rhs_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_fstring_replacement_field_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26675,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26675,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26676,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26689,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26692,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26694,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26697,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26697,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26698,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26699,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26707,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26707,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26715,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26718,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:26720,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26723,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26723,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26724,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26725,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26733,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26733,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26740
      start: 26672
    functionDepth: 1
    functionLinenumber: 26672
    functionLinenumberEnd: 26740
    functionName: invalid_fstring_conversion_character_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_for_expr
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_fstring_conversion_character_rule(Parser *p)'
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26757,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26757,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26758,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26771,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26771,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26775,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26777,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26780,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26780,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26781,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26782,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26790,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26790,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26798,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26802,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26804,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26807,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26817,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26825,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26825,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26829,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26834,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26834,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26835,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26836,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26844,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26844,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26852,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26856,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26858,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26861,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26862,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26871,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26879,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26879,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26882,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:26884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26887,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26887,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26888,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26889,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26897,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26897,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26905,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26905,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26909,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26911,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26913,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26916,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26916,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26917,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26917,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26918,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26926,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26934,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26934,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26939,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26941,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26943,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26945,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26948,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26948,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26949,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:26949,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26950,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26958,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26958,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26966,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26966,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26969,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26973,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:26975,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26977,1
    - Dst: invalid_tstring_conversion_character_rule
      Src: /src/cpython/Parser/parser.c:26979,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26982,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26982,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:26983,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26987,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26995,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26995,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26998,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27000,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27003,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27005,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27007,1
    - Dst: _tmp_151_rule
      Src: /src/cpython/Parser/parser.c:27009,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27011,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27014,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27014,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27015,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27015,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27016,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27032,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27037,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27039,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27042,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27044,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27046,1
    - Dst: _tmp_151_rule
      Src: /src/cpython/Parser/parser.c:27048,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27050,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:27052,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:27054,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27057,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27057,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27058,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27058,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27059,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27067,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27067,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27075,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27075,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27078,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27080,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27083,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27085,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27087,1
    - Dst: _tmp_151_rule
      Src: /src/cpython/Parser/parser.c:27089,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:27091,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27094,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27094,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27095,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27095,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27104,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27104,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 224
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27111
      start: 26754
    functionDepth: 2
    functionLinenumber: 26754
    functionLinenumberEnd: 27111
    functionName: invalid_tstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_lookahead_for_expr
    - UNUSED
    - _PyPegen_lookahead_with_int
    - _PyPegen_dummy_name
    - PyErr_Occurred
    - invalid_tstring_conversion_character_rule
    - D
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_151_rule
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - _loop0_76_rule
    - PyThreadState_Get
    - annotated_rhs_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_tstring_replacement_field_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27117,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27117,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27118,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27131,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27131,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27134,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27139,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27139,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27141,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27149,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27157,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27157,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27160,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:27162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27165,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27165,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27167,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27175,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27175,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27182
      start: 27114
    functionDepth: 1
    functionLinenumber: 27114
    functionLinenumberEnd: 27182
    functionName: invalid_tstring_conversion_character_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_for_expr
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_lookahead
    - fprintf
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_tstring_conversion_character_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27190,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27190,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27191,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27204,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27204,1
    - Dst: _loop1_80_rule
      Src: /src/cpython/Parser/parser.c:27208,1
    - Dst: tstring_rule
      Src: /src/cpython/Parser/parser.c:27210,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27213,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27213,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:27214,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:27214,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27215,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27223,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27223,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27231,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27231,1
    - Dst: _loop1_81_rule
      Src: /src/cpython/Parser/parser.c:27235,1
    - Dst: _tmp_153_rule
      Src: /src/cpython/Parser/parser.c:27237,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27240,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:27241,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:27241,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27242,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27250,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27250,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27257
      start: 27187
    functionDepth: 2
    functionLinenumber: 27187
    functionLinenumberEnd: 27257
    functionName: invalid_string_tstring_concat_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop1_81_rule
    - _tmp_153_rule
    - PyErr_Occurred
    - _loop1_80_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - tstring_rule
    - PyPegen_last_item
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_string_tstring_concat_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27263,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27263,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27264,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27277,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27277,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:27283,1
    - Dst: _tmp_154_rule
      Src: /src/cpython/Parser/parser.c:27285,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27287,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:27289,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27292,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:27293,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27302,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27309
      start: 27260
    functionDepth: 2
    functionLinenumber: 27260
    functionLinenumberEnd: 27309
    functionName: invalid_arithmetic_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _tmp_154_rule
    - inversion_rule
    - sum_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_arithmetic_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27315,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27315,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27329,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27329,1
    - Dst: _tmp_155_rule
      Src: /src/cpython/Parser/parser.c:27334,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27336,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:27338,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27341,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27341,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:27342,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27351,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27358
      start: 27312
    functionDepth: 2
    functionLinenumber: 27312
    functionLinenumberEnd: 27358
    functionName: invalid_factor_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - factor_rule
    - PyErr_Occurred
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _tmp_155_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_factor_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27364,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27364,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27365,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27378,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27378,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27382,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27384,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27387,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:27388,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27389,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27397,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27404
      start: 27361
    functionDepth: 1
    functionLinenumber: 27361
    functionLinenumberEnd: 27404
    functionName: invalid_type_params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_type_params_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27410,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27410,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27411,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:27419,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27422,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27433,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27433,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27436,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:27442,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27444,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27446,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27456,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27456,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:27459,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27461,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27463,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:27467,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27468,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27471
      start: 27407
    functionDepth: 2
    functionLinenumber: 27407
    functionLinenumberEnd: 27471
    functionName: _loop0_1_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_1_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27477,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27477,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27478,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:27486,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27489,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27500,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27500,1
    - Dst: statement_rule
      Src: /src/cpython/Parser/parser.c:27503,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:27509,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27511,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27513,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27523,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27527,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:27531,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27533,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27535,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:27539,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27540,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27543
      start: 27474
    functionDepth: 2
    functionLinenumber: 27474
    functionLinenumberEnd: 27543
    functionName: _loop1_2_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - statement_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_2_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27549,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27549,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27550,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:27558,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27561,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27572,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27572,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27576,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:27578,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27582,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27584,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:27590,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27592,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27594,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27604,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27604,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:27607,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27609,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:27611,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:27615,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:27616,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27619
      start: 27546
    functionDepth: 2
    functionLinenumber: 27546
    functionLinenumberEnd: 27619
    functionName: _loop0_3_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - simple_stmt_rule
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_3_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27625,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27625,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27626,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27639,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27639,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:27643,1
    - Dst: _loop0_3_rule
      Src: /src/cpython/Parser/parser.c:27645,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27648,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27648,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:27649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27653,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27653,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27660
      start: 27622
    functionDepth: 3
    functionLinenumber: 27622
    functionLinenumberEnd: 27660
    functionName: _gather_4_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - simple_stmt_rule
    - _loop0_3_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_4_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27666,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27666,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27667,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27680,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27683,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27686,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27686,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27691,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27691,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27699,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27699,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27702,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27705,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27705,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27710,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27710,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27717
      start: 27663
    functionDepth: 1
    functionLinenumber: 27663
    functionLinenumberEnd: 27717
    functionName: _tmp_5_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_5_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27723,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27723,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27724,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27737,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27737,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27740,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27743,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27743,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27748,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27748,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27756,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27756,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27762,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27767,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27767,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27775,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27775,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27781,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27786,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27786,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27793
      start: 27720
    functionDepth: 1
    functionLinenumber: 27720
    functionLinenumberEnd: 27793
    functionName: _tmp_6_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_6_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27799,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27799,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27800,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27813,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27813,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27816,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27819,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27819,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27824,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27824,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27832,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27832,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27838,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27838,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27843,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27850
      start: 27796
    functionDepth: 1
    functionLinenumber: 27796
    functionLinenumberEnd: 27850
    functionName: _tmp_7_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_7_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27856,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27856,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27870,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27870,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27873,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27876,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27876,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27881,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27881,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27889,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27889,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27892,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27895,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27900,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27900,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27907
      start: 27853
    functionDepth: 1
    functionLinenumber: 27853
    functionLinenumberEnd: 27907
    functionName: _tmp_8_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_8_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27913,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27913,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27914,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27927,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27933,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27933,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27938,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27938,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27946,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27946,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27949,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27952,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27952,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27957,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27964
      start: 27910
    functionDepth: 1
    functionLinenumber: 27910
    functionLinenumberEnd: 27964
    functionName: _tmp_9_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_9_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27970,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27970,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27984,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27984,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27988,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27990,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27993,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27995,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28003,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28003,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28010
      start: 27967
    functionDepth: 2
    functionLinenumber: 27967
    functionLinenumberEnd: 28010
    functionName: _tmp_10_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - annotated_rhs_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_10_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28016,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28016,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28017,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28030,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28030,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28035,1
    - Dst: single_target_rule
      Src: /src/cpython/Parser/parser.c:28037,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28039,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28042,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28042,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28044,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28052,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28060,1
    - Dst: single_subscript_attribute_target_rule
      Src: /src/cpython/Parser/parser.c:28063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28066,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28066,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28071,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28071,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28078
      start: 28013
    functionDepth: 3
    functionLinenumber: 28013
    functionLinenumberEnd: 28078
    functionName: _tmp_11_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - single_target_rule
    - single_subscript_attribute_target_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_11_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28084,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28084,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28085,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28093,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28107,1
    - Dst: _tmp_156_rule
      Src: /src/cpython/Parser/parser.c:28110,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28116,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28118,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28130,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28130,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28134,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28138,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28140,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28142,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28146,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28147,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28150
      start: 28081
    functionDepth: 2
    functionLinenumber: 28081
    functionLinenumberEnd: 28150
    functionName: _loop1_12_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - _tmp_156_rule
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_12_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28156,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28156,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28157,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28165,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28179,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28179,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28183,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:28185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28189,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28191,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28197,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28199,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28201,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28211,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28211,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28214,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28216,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28218,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28222,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28223,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28226
      start: 28153
    functionDepth: 2
    functionLinenumber: 28153
    functionLinenumberEnd: 28226
    functionName: _loop0_13_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_13_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28232,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28232,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28246,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:28250,1
    - Dst: _loop0_13_rule
      Src: /src/cpython/Parser/parser.c:28252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28255,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28255,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:28256,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28260,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28267
      start: 28229
    functionDepth: 3
    functionLinenumber: 28229
    functionLinenumberEnd: 28267
    functionName: _gather_14_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_name_token
    - _loop0_13_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_14_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28273,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28273,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28274,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28287,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28287,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28290,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28293,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28298,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28298,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28306,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28306,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28309,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28317,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28324
      start: 28270
    functionDepth: 1
    functionLinenumber: 28270
    functionLinenumberEnd: 28324
    functionName: _tmp_15_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_15_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28330,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28330,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28331,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28344,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28344,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28348,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:28350,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28353,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28353,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28363,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28370
      start: 28327
    functionDepth: 2
    functionLinenumber: 28327
    functionLinenumberEnd: 28370
    functionName: _tmp_16_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_16_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28376,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28376,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28377,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28385,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28388,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28399,1
    - Dst: _tmp_157_rule
      Src: /src/cpython/Parser/parser.c:28402,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28408,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28410,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28412,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28422,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28422,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28425,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28427,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28429,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28433,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28434,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28437
      start: 28373
    functionDepth: 2
    functionLinenumber: 28373
    functionLinenumberEnd: 28437
    functionName: _loop0_17_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_157_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_17_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28443,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28443,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28444,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28452,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28466,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28466,1
    - Dst: _tmp_157_rule
      Src: /src/cpython/Parser/parser.c:28469,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28475,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28477,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28479,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28489,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28489,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28493,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28497,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28499,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28501,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28505,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28509
      start: 28440
    functionDepth: 2
    functionLinenumber: 28440
    functionLinenumberEnd: 28509
    functionName: _loop1_18_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_157_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_18_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28515,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28515,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28516,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28524,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28527,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28538,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28538,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28542,1
    - Dst: import_from_as_name_rule
      Src: /src/cpython/Parser/parser.c:28544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28548,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28550,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28556,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28558,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28560,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28570,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28570,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28573,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28575,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28577,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28581,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28582,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28585
      start: 28512
    functionDepth: 2
    functionLinenumber: 28512
    functionLinenumberEnd: 28585
    functionName: _loop0_19_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - import_from_as_name_rule
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_19_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28591,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28591,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28592,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28605,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28605,1
    - Dst: import_from_as_name_rule
      Src: /src/cpython/Parser/parser.c:28609,1
    - Dst: _loop0_19_rule
      Src: /src/cpython/Parser/parser.c:28611,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28614,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28614,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:28615,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28626
      start: 28588
    functionDepth: 3
    functionLinenumber: 28588
    functionLinenumberEnd: 28626
    functionName: _gather_20_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_19_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - import_from_as_name_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_20_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28632,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28632,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28633,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28646,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28646,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28650,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:28652,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28655,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28655,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28657,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28665,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28665,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28672
      start: 28629
    functionDepth: 1
    functionLinenumber: 28629
    functionLinenumberEnd: 28672
    functionName: _tmp_21_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 7
    functionsReached:
    - _PyPegen_name_token
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_21_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28678,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28678,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28679,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28687,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28690,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28701,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28705,1
    - Dst: dotted_as_name_rule
      Src: /src/cpython/Parser/parser.c:28707,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28711,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28713,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28719,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28721,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28723,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28733,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28733,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28736,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28738,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28740,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28744,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28745,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28748
      start: 28675
    functionDepth: 2
    functionLinenumber: 28675
    functionLinenumberEnd: 28748
    functionName: _loop0_22_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - dotted_as_name_rule
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_22_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28754,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28754,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28768,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28768,1
    - Dst: dotted_as_name_rule
      Src: /src/cpython/Parser/parser.c:28772,1
    - Dst: _loop0_22_rule
      Src: /src/cpython/Parser/parser.c:28774,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28777,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28777,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:28778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28782,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28789
      start: 28751
    functionDepth: 3
    functionLinenumber: 28751
    functionLinenumberEnd: 28789
    functionName: _gather_23_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_seq_insert_in_front
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - dotted_as_name_rule
    - fprintf
    - PyThreadState_Get
    - _loop0_22_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_23_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28795,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28795,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28796,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28804,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28807,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28818,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28818,1
    - Dst: _tmp_158_rule
      Src: /src/cpython/Parser/parser.c:28821,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28827,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28829,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28841,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28841,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28845,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28849,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28851,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28853,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28857,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28858,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28861
      start: 28792
    functionDepth: 2
    functionLinenumber: 28792
    functionLinenumberEnd: 28861
    functionName: _loop1_24_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _tmp_158_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_24_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28867,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28867,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28868,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28881,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28881,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28886,1
    - Dst: arguments_rule
      Src: /src/cpython/Parser/parser.c:28888,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28890,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28893,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28903,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28903,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28910
      start: 28864
    functionDepth: 2
    functionLinenumber: 28864
    functionLinenumberEnd: 28910
    functionName: _tmp_25_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - arguments_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_25_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28916,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28916,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28917,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28930,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28934,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:28936,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28939,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28939,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28941,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28949,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28949,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28956
      start: 28913
    functionDepth: 2
    functionLinenumber: 28913
    functionLinenumberEnd: 28956
    functionName: _tmp_26_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_26_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28962,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28962,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28963,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28971,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28974,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28985,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:28988,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28994,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28996,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28998,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29008,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29008,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29011,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29013,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29015,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29019,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29020,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29023
      start: 28959
    functionDepth: 2
    functionLinenumber: 28959
    functionLinenumberEnd: 29023
    functionName: _loop0_27_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - param_no_default_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_27_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29029,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29029,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29030,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29038,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29052,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29052,1
    - Dst: param_with_default_rule
      Src: /src/cpython/Parser/parser.c:29055,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29061,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29063,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29065,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29075,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29075,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29078,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29080,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29082,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29086,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29087,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29090
      start: 29026
    functionDepth: 2
    functionLinenumber: 29026
    functionLinenumberEnd: 29090
    functionName: _loop0_28_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - param_with_default_rule
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_28_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29096,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29096,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29097,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29105,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29108,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29119,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29119,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:29122,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29128,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29130,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29132,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29142,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29142,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29146,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29150,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29152,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29154,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29158,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29159,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29162
      start: 29093
    functionDepth: 2
    functionLinenumber: 29093
    functionLinenumberEnd: 29162
    functionName: _loop1_29_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - param_no_default_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_29_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29168,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29168,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29169,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29177,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29180,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29191,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29191,1
    - Dst: param_with_default_rule
      Src: /src/cpython/Parser/parser.c:29194,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29200,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29202,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29204,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29214,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29214,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29218,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29222,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29224,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29226,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29230,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29234
      start: 29165
    functionDepth: 2
    functionLinenumber: 29165
    functionLinenumberEnd: 29234
    functionName: _loop1_30_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - param_with_default_rule
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_30_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29240,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29240,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29241,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29249,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29263,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29263,1
    - Dst: param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:29266,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29272,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29274,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29276,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29286,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29286,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29289,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29291,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29293,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29297,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29301
      start: 29237
    functionDepth: 2
    functionLinenumber: 29237
    functionLinenumberEnd: 29301
    functionName: _loop0_31_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - param_maybe_default_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_31_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29307,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29307,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29308,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29316,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29330,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29330,1
    - Dst: param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:29333,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29339,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29341,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29353,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29353,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29357,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29361,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29363,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29365,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29369,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29370,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29373
      start: 29304
    functionDepth: 2
    functionLinenumber: 29304
    functionLinenumberEnd: 29373
    functionName: _loop1_32_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - param_maybe_default_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_32_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29379,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29379,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29380,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29388,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29391,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29402,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29402,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29406,1
    - Dst: with_item_rule
      Src: /src/cpython/Parser/parser.c:29408,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29412,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29414,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29420,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29422,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29424,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29434,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29434,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29437,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29439,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29441,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29445,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29446,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29449
      start: 29376
    functionDepth: 2
    functionLinenumber: 29376
    functionLinenumberEnd: 29449
    functionName: _loop0_33_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - with_item_rule
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_33_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29455,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29455,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29456,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29469,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29469,1
    - Dst: with_item_rule
      Src: /src/cpython/Parser/parser.c:29473,1
    - Dst: _loop0_33_rule
      Src: /src/cpython/Parser/parser.c:29475,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29478,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:29479,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29483,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29490
      start: 29452
    functionDepth: 3
    functionLinenumber: 29452
    functionLinenumberEnd: 29490
    functionName: _gather_34_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - with_item_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_33_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_34_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29496,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29496,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29497,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29510,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29510,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29513,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29516,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29516,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29521,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29521,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29529,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29529,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29535,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29540,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29548,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29548,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29551,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29554,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29554,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29559,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29559,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29566
      start: 29493
    functionDepth: 1
    functionLinenumber: 29493
    functionLinenumberEnd: 29566
    functionName: _tmp_35_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_35_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29572,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29572,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29573,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29581,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29584,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29595,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29595,1
    - Dst: except_block_rule
      Src: /src/cpython/Parser/parser.c:29598,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29604,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29606,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29608,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29618,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29622,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29626,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29628,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29630,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29634,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29635,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29638
      start: 29569
    functionDepth: 4
    functionLinenumber: 29569
    functionLinenumberEnd: 29638
    functionName: _loop1_36_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - except_block_rule
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_36_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29644,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29644,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29645,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29653,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29656,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29667,1
    - Dst: except_star_block_rule
      Src: /src/cpython/Parser/parser.c:29670,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29676,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29678,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29680,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29690,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29690,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29694,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29698,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29700,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29702,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29706,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29707,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29710
      start: 29641
    functionDepth: 4
    functionLinenumber: 29641
    functionLinenumberEnd: 29710
    functionName: _loop1_37_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - except_star_block_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_37_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29716,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29716,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29717,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29725,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29728,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29739,1
    - Dst: case_block_rule
      Src: /src/cpython/Parser/parser.c:29742,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29748,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29750,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29762,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29766,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29770,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29772,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29774,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29778,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29779,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29782
      start: 29713
    functionDepth: 4
    functionLinenumber: 29713
    functionLinenumberEnd: 29782
    functionName: _loop1_38_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - case_block_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_38_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29788,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29788,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29789,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29797,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29800,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29811,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29811,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29815,1
    - Dst: closed_pattern_rule
      Src: /src/cpython/Parser/parser.c:29817,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29821,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29823,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29829,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29831,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29833,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29843,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29846,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29848,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29850,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29854,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29855,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29858
      start: 29785
    functionDepth: 2
    functionLinenumber: 29785
    functionLinenumberEnd: 29858
    functionName: _loop0_39_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - closed_pattern_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_39_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29864,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29864,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29878,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29878,1
    - Dst: closed_pattern_rule
      Src: /src/cpython/Parser/parser.c:29882,1
    - Dst: _loop0_39_rule
      Src: /src/cpython/Parser/parser.c:29884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29887,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29887,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:29888,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29892,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29892,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29899
      start: 29861
    functionDepth: 3
    functionLinenumber: 29861
    functionLinenumberEnd: 29899
    functionName: _gather_40_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_39_rule
    - closed_pattern_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_40_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29905,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29905,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29906,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29919,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29919,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29922,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29925,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29925,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29938,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29938,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29941,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29944,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29949,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29949,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29956
      start: 29902
    functionDepth: 1
    functionLinenumber: 29902
    functionLinenumberEnd: 29956
    functionName: _tmp_41_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_41_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29962,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29962,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29963,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29976,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29976,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:29979,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29982,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29982,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29987,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29995,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29995,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29998,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30001,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30001,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30006,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30006,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30014,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30014,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30017,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30020,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30025,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30025,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30032
      start: 29959
    functionDepth: 1
    functionLinenumber: 29959
    functionLinenumberEnd: 30032
    functionName: _tmp_42_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_string_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_42_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30038,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30038,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30039,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30052,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30052,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30058,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30063,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30071,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30071,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30077,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30082,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30082,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30090,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30093,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30096,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30101,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30108
      start: 30035
    functionDepth: 1
    functionLinenumber: 30035
    functionLinenumberEnd: 30108
    functionName: _tmp_43_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_43_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30114,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30114,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30115,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30123,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30126,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30137,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30137,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30141,1
    - Dst: maybe_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:30143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30147,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30149,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30155,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30157,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30159,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30169,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30172,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30174,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30176,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30180,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30184
      start: 30111
    functionDepth: 3
    functionLinenumber: 30111
    functionLinenumberEnd: 30184
    functionName: _loop0_44_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - maybe_star_pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_44_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30190,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30190,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30191,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30204,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30204,1
    - Dst: maybe_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:30208,1
    - Dst: _loop0_44_rule
      Src: /src/cpython/Parser/parser.c:30210,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30213,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30213,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:30214,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30218,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30225
      start: 30187
    functionDepth: 4
    functionLinenumber: 30187
    functionLinenumberEnd: 30225
    functionName: _gather_45_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_44_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - maybe_star_pattern_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_45_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30231,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30231,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30232,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30240,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30243,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30254,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30254,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30258,1
    - Dst: key_value_pattern_rule
      Src: /src/cpython/Parser/parser.c:30260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30264,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30266,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30272,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30274,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30276,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30286,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30286,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30289,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30291,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30293,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30297,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30298,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30301
      start: 30228
    functionDepth: 3
    functionLinenumber: 30228
    functionLinenumberEnd: 30301
    functionName: _loop0_46_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - key_value_pattern_rule
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_46_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30307,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30307,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30308,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30321,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30321,1
    - Dst: key_value_pattern_rule
      Src: /src/cpython/Parser/parser.c:30325,1
    - Dst: _loop0_46_rule
      Src: /src/cpython/Parser/parser.c:30327,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30330,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30330,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:30331,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30335,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30342
      start: 30304
    functionDepth: 4
    functionLinenumber: 30304
    functionLinenumberEnd: 30342
    functionName: _gather_47_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - key_value_pattern_rule
    - _loop0_46_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_47_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30348,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30348,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30349,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30362,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30362,1
    - Dst: literal_expr_rule
      Src: /src/cpython/Parser/parser.c:30365,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30368,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30368,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30373,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30373,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30381,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30381,1
    - Dst: attr_rule
      Src: /src/cpython/Parser/parser.c:30384,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30387,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30392,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30399
      start: 30345
    functionDepth: 2
    functionLinenumber: 30345
    functionLinenumberEnd: 30399
    functionName: _tmp_48_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - literal_expr_rule
    - D
    - attr_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_48_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30405,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30405,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30406,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30414,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30417,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30428,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30428,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30432,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:30434,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30438,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30440,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30446,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30448,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30460,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30460,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30463,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30465,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30467,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30471,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30472,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30475
      start: 30402
    functionDepth: 2
    functionLinenumber: 30402
    functionLinenumberEnd: 30475
    functionName: _loop0_49_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_49_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30481,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30481,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30495,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30495,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:30499,1
    - Dst: _loop0_49_rule
      Src: /src/cpython/Parser/parser.c:30501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30504,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:30505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30516
      start: 30478
    functionDepth: 3
    functionLinenumber: 30478
    functionLinenumberEnd: 30516
    functionName: _gather_50_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - pattern_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_49_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_50_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30522,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30522,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30523,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30531,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30534,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30545,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30549,1
    - Dst: keyword_pattern_rule
      Src: /src/cpython/Parser/parser.c:30551,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30555,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30557,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30563,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30565,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30567,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30577,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30577,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30580,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30582,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30584,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30588,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30589,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30592
      start: 30519
    functionDepth: 3
    functionLinenumber: 30519
    functionLinenumberEnd: 30592
    functionName: _loop0_51_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - keyword_pattern_rule
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_51_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30598,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30598,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30599,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30612,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30612,1
    - Dst: keyword_pattern_rule
      Src: /src/cpython/Parser/parser.c:30616,1
    - Dst: _loop0_51_rule
      Src: /src/cpython/Parser/parser.c:30618,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30621,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30621,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:30622,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30626,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30626,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30633
      start: 30595
    functionDepth: 4
    functionLinenumber: 30595
    functionLinenumberEnd: 30633
    functionName: _gather_52_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_51_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - keyword_pattern_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_52_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30639,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30639,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30640,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30648,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30651,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30662,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30662,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30666,1
    - Dst: type_param_rule
      Src: /src/cpython/Parser/parser.c:30668,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30672,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30674,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30680,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30682,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30694,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30694,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30697,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30699,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30701,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30705,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30706,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30709
      start: 30636
    functionDepth: 2
    functionLinenumber: 30636
    functionLinenumberEnd: 30709
    functionName: _loop0_53_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - type_param_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_53_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30715,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30715,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30716,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30729,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30729,1
    - Dst: type_param_rule
      Src: /src/cpython/Parser/parser.c:30733,1
    - Dst: _loop0_53_rule
      Src: /src/cpython/Parser/parser.c:30735,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30738,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30738,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:30739,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30743,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30743,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30750
      start: 30712
    functionDepth: 3
    functionLinenumber: 30712
    functionLinenumberEnd: 30750
    functionName: _gather_54_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_53_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - type_param_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_54_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30756,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30756,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30757,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30765,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30768,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30779,1
    - Dst: _tmp_16_rule
      Src: /src/cpython/Parser/parser.c:30782,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30788,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30790,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30792,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30802,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30806,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30810,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30812,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30814,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30818,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30819,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30822
      start: 30753
    functionDepth: 3
    functionLinenumber: 30753
    functionLinenumberEnd: 30822
    functionName: _loop1_55_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_16_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_55_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30828,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30828,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30829,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30837,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30851,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30851,1
    - Dst: _tmp_159_rule
      Src: /src/cpython/Parser/parser.c:30854,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30860,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30862,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30864,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30874,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30874,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30878,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30882,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30884,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30886,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30890,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30891,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30894
      start: 30825
    functionDepth: 2
    functionLinenumber: 30825
    functionLinenumberEnd: 30894
    functionName: _loop1_56_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_159_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_56_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30900,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30900,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30901,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30909,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30923,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30923,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30927,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:30929,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30933,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30935,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30941,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30943,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30945,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30955,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30955,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30958,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30960,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30962,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30966,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30967,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30970
      start: 30897
    functionDepth: 2
    functionLinenumber: 30897
    functionLinenumberEnd: 30970
    functionName: _loop0_57_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - star_named_expression_rule
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_57_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:30976,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30976,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30977,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30990,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30990,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:30994,1
    - Dst: _loop0_57_rule
      Src: /src/cpython/Parser/parser.c:30996,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30999,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:31000,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31004,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31011
      start: 30973
    functionDepth: 3
    functionLinenumber: 30973
    functionLinenumberEnd: 31011
    functionName: _gather_58_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_named_expression_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _loop0_57_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_58_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31017,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31017,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31018,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31026,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31029,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31040,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31040,1
    - Dst: _tmp_160_rule
      Src: /src/cpython/Parser/parser.c:31043,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31049,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31051,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31053,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31063,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31063,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31067,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31071,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31073,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31075,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31079,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31080,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31083
      start: 31014
    functionDepth: 2
    functionLinenumber: 31014
    functionLinenumberEnd: 31083
    functionName: _loop1_59_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _tmp_160_rule
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_59_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31089,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31089,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31090,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31098,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31101,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31112,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31112,1
    - Dst: _tmp_161_rule
      Src: /src/cpython/Parser/parser.c:31115,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31121,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31123,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31125,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31135,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31135,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31139,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31143,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31145,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31147,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31151,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31155
      start: 31086
    functionDepth: 2
    functionLinenumber: 31086
    functionLinenumberEnd: 31155
    functionName: _loop1_60_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - _tmp_161_rule
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_60_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31161,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31161,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31162,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31170,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31173,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31184,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31184,1
    - Dst: compare_op_bitwise_or_pair_rule
      Src: /src/cpython/Parser/parser.c:31187,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31193,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31195,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31197,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31207,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31207,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31211,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31215,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31217,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31219,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31223,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31227
      start: 31158
    functionDepth: 2
    functionLinenumber: 31158
    functionLinenumberEnd: 31227
    functionName: _loop1_61_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - compare_op_bitwise_or_pair_rule
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_61_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31233,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31233,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31234,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31247,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31247,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31250,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31253,1
    - Dst: _PyPegen_check_barry_as_flufl
      Src: /src/cpython/Parser/parser.c:31254,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31263,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31270
      start: 31230
    functionDepth: 1
    functionLinenumber: 31230
    functionLinenumberEnd: 31270
    functionName: _tmp_62_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _PyPegen_check_barry_as_flufl
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_62_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31276,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31276,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31277,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31285,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31288,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31299,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31299,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31303,1
    - Dst: _tmp_162_rule
      Src: /src/cpython/Parser/parser.c:31305,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31309,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31311,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31317,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31319,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31321,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31331,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31331,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31334,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31336,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31338,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31342,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31343,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31346
      start: 31273
    functionDepth: 2
    functionLinenumber: 31273
    functionLinenumberEnd: 31346
    functionName: _loop0_63_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _tmp_162_rule
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_63_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31352,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31352,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31353,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31366,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31366,1
    - Dst: _tmp_162_rule
      Src: /src/cpython/Parser/parser.c:31370,1
    - Dst: _loop0_63_rule
      Src: /src/cpython/Parser/parser.c:31372,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31375,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31375,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:31376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31380,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31380,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31387
      start: 31349
    functionDepth: 3
    functionLinenumber: 31349
    functionLinenumberEnd: 31387
    functionName: _gather_64_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _tmp_162_rule
    - _loop0_63_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_64_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31393,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31393,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31407,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31407,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31411,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:31413,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31416,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31416,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31418,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31426,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31426,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31433
      start: 31390
    functionDepth: 2
    functionLinenumber: 31390
    functionLinenumberEnd: 31433
    functionName: _tmp_65_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_65_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31439,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31439,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31440,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31453,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31453,1
    - Dst: tuple_rule
      Src: /src/cpython/Parser/parser.c:31456,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31459,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31459,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31464,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31464,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31472,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31472,1
    - Dst: group_rule
      Src: /src/cpython/Parser/parser.c:31475,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31478,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31483,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31483,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31491,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31491,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:31494,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31497,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31497,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31502,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31509
      start: 31436
    functionDepth: 3
    functionLinenumber: 31436
    functionLinenumberEnd: 31509
    functionName: _tmp_66_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - tuple_rule
    - group_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - genexp_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_66_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31515,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31515,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31516,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31529,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31529,1
    - Dst: list_rule
      Src: /src/cpython/Parser/parser.c:31532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31535,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31540,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31548,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31548,1
    - Dst: listcomp_rule
      Src: /src/cpython/Parser/parser.c:31551,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31554,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31554,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31559,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31559,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31566
      start: 31512
    functionDepth: 5
    functionLinenumber: 31512
    functionLinenumberEnd: 31566
    functionName: _tmp_67_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - list_rule
    - listcomp_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_67_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31572,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31572,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31573,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31586,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31586,1
    - Dst: dict_rule
      Src: /src/cpython/Parser/parser.c:31589,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31592,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31592,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31597,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31597,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31605,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31605,1
    - Dst: set_rule
      Src: /src/cpython/Parser/parser.c:31608,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31611,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31616,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31616,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31624,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31624,1
    - Dst: dictcomp_rule
      Src: /src/cpython/Parser/parser.c:31627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31630,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31630,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31643,1
    - Dst: setcomp_rule
      Src: /src/cpython/Parser/parser.c:31646,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31654,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31654,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31661
      start: 31569
    functionDepth: 5
    functionLinenumber: 31569
    functionLinenumberEnd: 31661
    functionName: _tmp_68_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - dictcomp_rule
    - set_rule
    - setcomp_rule
    - dict_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_68_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31667,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31667,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31668,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31681,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31681,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:31684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31687,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31687,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31692,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31692,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31700,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31700,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:31703,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31706,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31706,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31711,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31711,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31718
      start: 31664
    functionDepth: 4
    functionLinenumber: 31664
    functionLinenumberEnd: 31718
    functionName: _tmp_69_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - yield_expr_rule
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_69_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31724,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31724,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31725,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31733,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31747,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31747,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:31750,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31756,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31758,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31760,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31770,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31770,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31773,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31775,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31777,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31781,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31782,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31785
      start: 31721
    functionDepth: 2
    functionLinenumber: 31721
    functionLinenumberEnd: 31785
    functionName: _loop0_70_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - lambda_param_no_default_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_70_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31791,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31791,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31792,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31800,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31803,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31814,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31814,1
    - Dst: lambda_param_with_default_rule
      Src: /src/cpython/Parser/parser.c:31817,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31823,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31825,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31837,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31837,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31840,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31842,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31844,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31848,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31849,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31852
      start: 31788
    functionDepth: 3
    functionLinenumber: 31788
    functionLinenumberEnd: 31852
    functionName: _loop0_71_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - lambda_param_with_default_rule
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_71_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31858,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31858,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31859,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31867,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31870,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31881,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31881,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:31884,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31890,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31892,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31904,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31904,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31908,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31912,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31914,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31916,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31920,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31921,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31924
      start: 31855
    functionDepth: 2
    functionLinenumber: 31855
    functionLinenumberEnd: 31924
    functionName: _loop1_72_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - lambda_param_no_default_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_72_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:31930,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31930,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31931,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31939,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31953,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31953,1
    - Dst: lambda_param_with_default_rule
      Src: /src/cpython/Parser/parser.c:31956,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31962,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31964,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31976,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31976,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31980,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31984,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31986,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31988,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31992,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31993,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31996
      start: 31927
    functionDepth: 3
    functionLinenumber: 31927
    functionLinenumberEnd: 31996
    functionName: _loop1_73_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - lambda_param_with_default_rule
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_73_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32002,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32002,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32003,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32011,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32014,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32025,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32025,1
    - Dst: lambda_param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:32028,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32034,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32036,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32048,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32048,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32051,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32053,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32055,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32059,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32060,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32063
      start: 31999
    functionDepth: 3
    functionLinenumber: 31999
    functionLinenumberEnd: 32063
    functionName: _loop0_74_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - lambda_param_maybe_default_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_74_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32069,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32069,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32070,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32078,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32081,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32092,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32092,1
    - Dst: lambda_param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:32095,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32101,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32103,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32105,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32115,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32115,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32119,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32123,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32125,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32127,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32131,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32132,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32135
      start: 32066
    functionDepth: 3
    functionLinenumber: 32066
    functionLinenumberEnd: 32135
    functionName: _loop1_75_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - lambda_param_maybe_default_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_75_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32141,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32141,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32142,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32150,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32153,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32164,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32164,1
    - Dst: fstring_format_spec_rule
      Src: /src/cpython/Parser/parser.c:32167,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32173,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32175,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32177,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32187,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32190,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32192,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32194,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32198,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32202
      start: 32138
    functionDepth: 4
    functionLinenumber: 32138
    functionLinenumberEnd: 32202
    functionName: _loop0_76_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - fstring_format_spec_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_76_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32208,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32208,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32209,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32217,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32220,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32231,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32231,1
    - Dst: fstring_middle_rule
      Src: /src/cpython/Parser/parser.c:32234,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32240,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32242,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32244,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32254,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32254,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32257,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32259,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32261,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32265,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32266,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32269
      start: 32205
    functionDepth: 2
    functionLinenumber: 32205
    functionLinenumberEnd: 32269
    functionName: _loop0_77_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - fstring_middle_rule
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_77_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32275,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32275,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32276,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32284,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32287,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32298,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32298,1
    - Dst: tstring_format_spec_rule
      Src: /src/cpython/Parser/parser.c:32301,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32307,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32309,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32311,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32321,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32321,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32324,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32326,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32328,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32332,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32336
      start: 32272
    functionDepth: 4
    functionLinenumber: 32272
    functionLinenumberEnd: 32336
    functionName: _loop0_78_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - tstring_format_spec_rule
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_78_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32342,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32342,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32343,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32351,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32354,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32365,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32365,1
    - Dst: tstring_middle_rule
      Src: /src/cpython/Parser/parser.c:32368,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32374,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32376,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32378,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32388,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32388,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32391,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32393,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32395,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32399,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32400,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32403
      start: 32339
    functionDepth: 4
    functionLinenumber: 32339
    functionLinenumberEnd: 32403
    functionName: _loop0_79_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - tstring_middle_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_79_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32409,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32409,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32410,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32418,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32421,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32432,1
    - Dst: _tmp_153_rule
      Src: /src/cpython/Parser/parser.c:32435,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32441,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32443,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32445,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32455,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32459,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32463,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32465,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32467,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32471,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32472,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32475
      start: 32406
    functionDepth: 2
    functionLinenumber: 32406
    functionLinenumberEnd: 32475
    functionName: _loop1_80_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_153_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_80_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32481,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32481,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32482,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32490,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32493,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32504,1
    - Dst: tstring_rule
      Src: /src/cpython/Parser/parser.c:32507,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32513,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32515,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32517,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32527,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32527,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32531,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32535,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32537,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32539,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32543,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32544,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32547
      start: 32478
    functionDepth: 2
    functionLinenumber: 32478
    functionLinenumberEnd: 32547
    functionName: _loop1_81_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - tstring_rule
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_81_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32553,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32553,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32554,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32567,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32567,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:32572,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:32574,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:32576,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32579,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:32580,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:32581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32589,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32596
      start: 32550
    functionDepth: 2
    functionLinenumber: 32550
    functionLinenumberEnd: 32596
    functionName: _tmp_82_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_named_expression_rule
    - star_named_expressions_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_82_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32602,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32602,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32603,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32611,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32614,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32625,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32625,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:32629,1
    - Dst: double_starred_kvpair_rule
      Src: /src/cpython/Parser/parser.c:32631,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:32635,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32637,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32643,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32645,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32647,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32657,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32657,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32660,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32662,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32664,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32668,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32669,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32672
      start: 32599
    functionDepth: 3
    functionLinenumber: 32599
    functionLinenumberEnd: 32672
    functionName: _loop0_83_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - double_starred_kvpair_rule
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_83_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32678,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32678,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32679,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32692,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32692,1
    - Dst: double_starred_kvpair_rule
      Src: /src/cpython/Parser/parser.c:32696,1
    - Dst: _loop0_83_rule
      Src: /src/cpython/Parser/parser.c:32698,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32701,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:32702,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32706,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32713
      start: 32675
    functionDepth: 4
    functionLinenumber: 32675
    functionLinenumberEnd: 32713
    functionName: _gather_84_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - double_starred_kvpair_rule
    - _loop0_83_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_84_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32719,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32719,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32720,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32728,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32742,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32742,1
    - Dst: for_if_clause_rule
      Src: /src/cpython/Parser/parser.c:32745,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32751,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32753,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32765,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32765,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32769,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32773,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32775,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32777,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32781,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32782,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32785
      start: 32716
    functionDepth: 3
    functionLinenumber: 32716
    functionLinenumberEnd: 32785
    functionName: _loop1_85_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - for_if_clause_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_85_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32791,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32791,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32792,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32800,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32803,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32814,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32814,1
    - Dst: _tmp_163_rule
      Src: /src/cpython/Parser/parser.c:32817,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32823,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32825,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32837,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32837,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32840,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32842,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32844,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32848,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32849,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32852
      start: 32788
    functionDepth: 2
    functionLinenumber: 32788
    functionLinenumberEnd: 32852
    functionName: _loop0_86_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_163_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_86_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32858,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32858,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32859,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32872,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32872,1
    - Dst: assignment_expression_rule
      Src: /src/cpython/Parser/parser.c:32875,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32878,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32878,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32883,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32883,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32891,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32891,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:32894,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:32896,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32899,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32904,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32904,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32911
      start: 32855
    functionDepth: 3
    functionLinenumber: 32855
    functionLinenumberEnd: 32911
    functionName: _tmp_87_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - _PyPegen_lookahead_with_int
    - D
    - assignment_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_87_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32917,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32917,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32918,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32926,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32929,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32940,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32940,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:32944,1
    - Dst: _tmp_164_rule
      Src: /src/cpython/Parser/parser.c:32946,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:32950,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32952,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32958,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32960,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32962,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32972,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32972,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32975,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32977,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32979,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32983,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32984,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32987
      start: 32914
    functionDepth: 2
    functionLinenumber: 32914
    functionLinenumberEnd: 32987
    functionName: _loop0_88_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - _tmp_164_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_88_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32994,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32994,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32995,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33008,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33008,1
    - Dst: _tmp_164_rule
      Src: /src/cpython/Parser/parser.c:33012,1
    - Dst: _loop0_88_rule
      Src: /src/cpython/Parser/parser.c:33014,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33017,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33017,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:33018,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33022,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33022,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33029
      start: 32991
    functionDepth: 3
    functionLinenumber: 32991
    functionLinenumberEnd: 33029
    functionName: _gather_89_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_88_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - _tmp_164_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_89_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33035,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33035,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33036,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33049,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33049,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33053,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:33055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33058,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33060,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33068,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33068,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33075
      start: 33032
    functionDepth: 2
    functionLinenumber: 33032
    functionLinenumberEnd: 33075
    functionName: _tmp_90_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - kwargs_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_90_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33081,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33081,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33082,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33090,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33093,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33104,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33104,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33108,1
    - Dst: kwarg_or_starred_rule
      Src: /src/cpython/Parser/parser.c:33110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33114,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33116,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33122,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33124,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33126,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33136,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33136,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33139,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33141,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33143,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33147,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33148,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33151
      start: 33078
    functionDepth: 4
    functionLinenumber: 33078
    functionLinenumberEnd: 33151
    functionName: _loop0_91_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - kwarg_or_starred_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_91_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33157,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33157,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33158,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33171,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33171,1
    - Dst: kwarg_or_starred_rule
      Src: /src/cpython/Parser/parser.c:33175,1
    - Dst: _loop0_91_rule
      Src: /src/cpython/Parser/parser.c:33177,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33180,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33180,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:33181,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33185,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33192
      start: 33154
    functionDepth: 5
    functionLinenumber: 33154
    functionLinenumberEnd: 33192
    functionName: _gather_92_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - kwarg_or_starred_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_91_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_92_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33198,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33198,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33199,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33207,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33210,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33221,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33225,1
    - Dst: kwarg_or_double_starred_rule
      Src: /src/cpython/Parser/parser.c:33227,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33231,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33233,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33239,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33241,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33243,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33253,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33256,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33258,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33260,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33264,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33265,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33268
      start: 33195
    functionDepth: 3
    functionLinenumber: 33195
    functionLinenumberEnd: 33268
    functionName: _loop0_93_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - kwarg_or_double_starred_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_93_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33274,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33274,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33275,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33288,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33288,1
    - Dst: kwarg_or_double_starred_rule
      Src: /src/cpython/Parser/parser.c:33292,1
    - Dst: _loop0_93_rule
      Src: /src/cpython/Parser/parser.c:33294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33297,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:33298,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33302,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33309
      start: 33271
    functionDepth: 4
    functionLinenumber: 33271
    functionLinenumberEnd: 33309
    functionName: _gather_94_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_93_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - kwarg_or_double_starred_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_94_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33315,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33315,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33316,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33324,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33327,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33338,1
    - Dst: _tmp_165_rule
      Src: /src/cpython/Parser/parser.c:33341,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33347,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33349,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33351,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33361,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33361,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33364,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33366,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33368,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33372,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33376
      start: 33312
    functionDepth: 2
    functionLinenumber: 33312
    functionLinenumberEnd: 33376
    functionName: _loop0_95_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_165_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_95_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33382,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33382,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33383,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33391,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33405,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33409,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:33411,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33415,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33417,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33423,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33425,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33427,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33437,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33437,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33440,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33442,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33444,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33448,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33449,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33452
      start: 33379
    functionDepth: 2
    functionLinenumber: 33379
    functionLinenumberEnd: 33452
    functionName: _loop0_96_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - star_target_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_96_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33458,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33458,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33459,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33472,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33472,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:33476,1
    - Dst: _loop0_96_rule
      Src: /src/cpython/Parser/parser.c:33478,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33481,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33481,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:33482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33486,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33486,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33493
      start: 33455
    functionDepth: 3
    functionLinenumber: 33455
    functionLinenumberEnd: 33493
    functionName: _gather_97_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - star_target_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_96_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_97_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33499,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33499,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33500,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33508,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33511,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33522,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33522,1
    - Dst: _tmp_165_rule
      Src: /src/cpython/Parser/parser.c:33525,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33531,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33533,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33545,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33549,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33553,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33555,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33557,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33561,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33562,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33565
      start: 33496
    functionDepth: 2
    functionLinenumber: 33496
    functionLinenumberEnd: 33565
    functionName: _loop1_98_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_165_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_98_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33571,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33571,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33572,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33585,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33585,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:33588,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:33590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33593,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33593,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33598,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33605
      start: 33568
    functionDepth: 2
    functionLinenumber: 33568
    functionLinenumberEnd: 33605
    functionName: _tmp_99_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead_with_int
    - star_target_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_99_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33611,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33611,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33612,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33620,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33623,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33634,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33634,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33638,1
    - Dst: del_target_rule
      Src: /src/cpython/Parser/parser.c:33640,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33644,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33646,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33652,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33654,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33656,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33666,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33666,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33669,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33671,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33673,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33677,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33678,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33681
      start: 33608
    functionDepth: 3
    functionLinenumber: 33608
    functionLinenumberEnd: 33681
    functionName: _loop0_100_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - del_target_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_100_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33687,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33687,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33688,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33701,1
    - Dst: del_target_rule
      Src: /src/cpython/Parser/parser.c:33705,1
    - Dst: _loop0_100_rule
      Src: /src/cpython/Parser/parser.c:33707,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33710,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33710,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:33711,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33715,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33722
      start: 33684
    functionDepth: 4
    functionLinenumber: 33684
    functionLinenumberEnd: 33722
    functionName: _gather_101_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_100_rule
    - del_target_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_101_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33728,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33728,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33729,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33737,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33740,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33751,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33751,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33755,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:33757,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33761,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33763,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33769,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33771,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33773,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33783,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33783,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33786,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33788,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33790,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33794,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33795,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33798
      start: 33725
    functionDepth: 2
    functionLinenumber: 33725
    functionLinenumberEnd: 33798
    functionName: _loop0_102_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - expression_rule
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_102_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33804,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33804,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33805,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33818,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33818,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:33822,1
    - Dst: _loop0_102_rule
      Src: /src/cpython/Parser/parser.c:33824,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33827,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33827,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:33828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33832,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33839
      start: 33801
    functionDepth: 3
    functionLinenumber: 33801
    functionLinenumberEnd: 33839
    functionName: _gather_103_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - D
    - _loop0_102_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_103_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33845,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33845,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33846,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33859,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33859,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33863,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33868,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33868,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:33869,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33873,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33880
      start: 33842
    functionDepth: 1
    functionLinenumber: 33842
    functionLinenumberEnd: 33880
    functionName: _tmp_104_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_dummy_name
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_104_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33888,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33888,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33889,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33902,1
    - Dst: _tmp_166_rule
      Src: /src/cpython/Parser/parser.c:33905,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33908,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33908,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33913,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33913,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33921,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33921,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:33924,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33932,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33939
      start: 33885
    functionDepth: 2
    functionLinenumber: 33885
    functionLinenumberEnd: 33939
    functionName: _tmp_105_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - kwargs_rule
    - _tmp_166_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_105_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33945,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33945,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33946,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33954,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33968,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33968,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33972,1
    - Dst: _tmp_167_rule
      Src: /src/cpython/Parser/parser.c:33974,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33978,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33980,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33986,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33988,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33990,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34000,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34000,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34003,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34005,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34007,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34011,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34012,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34015
      start: 33942
    functionDepth: 2
    functionLinenumber: 33942
    functionLinenumberEnd: 34015
    functionName: _loop0_106_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - _tmp_167_rule
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_106_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34021,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34021,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34035,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34035,1
    - Dst: _tmp_167_rule
      Src: /src/cpython/Parser/parser.c:34039,1
    - Dst: _loop0_106_rule
      Src: /src/cpython/Parser/parser.c:34041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34044,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34044,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:34045,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34049,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34049,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34056
      start: 34018
    functionDepth: 3
    functionLinenumber: 34018
    functionLinenumberEnd: 34056
    functionName: _gather_107_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _tmp_167_rule
    - D
    - _loop0_106_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_107_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34062,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34062,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34076,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34076,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:34079,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34082,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34082,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34087,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34087,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34095,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34095,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:34099,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:34101,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34104,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34104,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:34105,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34116
      start: 34059
    functionDepth: 2
    functionLinenumber: 34059
    functionLinenumberEnd: 34116
    functionName: _tmp_108_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - _PyPegen_dummy_name
    - args_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - for_if_clauses_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_108_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34122,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34122,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34123,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34136,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34136,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:34140,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34142,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34145,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34145,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:34146,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34150,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34157
      start: 34119
    functionDepth: 2
    functionLinenumber: 34119
    functionLinenumberEnd: 34157
    functionName: _tmp_109_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_dummy_name
    - args_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_109_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34163,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34163,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34164,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34177,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34177,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34180,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34183,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34183,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34188,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34188,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34196,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34196,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34202,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34207,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34214
      start: 34160
    functionDepth: 1
    functionLinenumber: 34160
    functionLinenumberEnd: 34214
    functionName: _tmp_110_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_110_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34220,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34220,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34221,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34234,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34234,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34237,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34245,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34245,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34253,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34256,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34259,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34264,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34272,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34272,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34275,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34278,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34278,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34283,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34283,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34290
      start: 34217
    functionDepth: 1
    functionLinenumber: 34217
    functionLinenumberEnd: 34290
    functionName: _tmp_111_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_111_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34296,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34296,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34297,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34310,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:34314,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34319,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34319,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:34320,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34324,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34331
      start: 34293
    functionDepth: 1
    functionLinenumber: 34293
    functionLinenumberEnd: 34331
    functionName: _tmp_112_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_name_token
    - _PyPegen_dummy_name
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_112_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34337,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34337,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34338,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34346,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34349,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34360,1
    - Dst: _tmp_168_rule
      Src: /src/cpython/Parser/parser.c:34363,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34369,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34371,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34373,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34383,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34383,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34387,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34391,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34393,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34395,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34399,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34400,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34403
      start: 34334
    functionDepth: 2
    functionLinenumber: 34334
    functionLinenumberEnd: 34403
    functionName: _loop1_113_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_168_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_113_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34409,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34409,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34410,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34423,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34423,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:34427,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:34429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34432,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:34433,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34437,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34437,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34445,1
    - Dst: _PyPegen_soft_keyword_token
      Src: /src/cpython/Parser/parser.c:34448,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34451,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34456,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34463
      start: 34406
    functionDepth: 1
    functionLinenumber: 34406
    functionLinenumberEnd: 34463
    functionName: _tmp_114_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_name_token
    - _PyPegen_string_token
    - _PyPegen_dummy_name
    - D
    - _PyPegen_soft_keyword_token
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_114_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34469,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34469,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34470,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34483,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34483,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34486,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34489,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34489,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34494,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34494,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34502,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34508,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34508,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34513,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34513,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34520
      start: 34466
    functionDepth: 1
    functionLinenumber: 34466
    functionLinenumberEnd: 34520
    functionName: _tmp_115_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_115_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34526,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34526,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34527,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34540,1
    - Dst: pass_stmt_rule
      Src: /src/cpython/Parser/parser.c:34543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34546,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34546,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34551,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34559,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34559,1
    - Dst: break_stmt_rule
      Src: /src/cpython/Parser/parser.c:34562,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34565,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34565,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34570,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34570,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34578,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34578,1
    - Dst: continue_stmt_rule
      Src: /src/cpython/Parser/parser.c:34581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34584,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34584,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34589,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34596
      start: 34523
    functionDepth: 2
    functionLinenumber: 34523
    functionLinenumberEnd: 34596
    functionName: _tmp_116_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - continue_stmt_rule
    - pass_stmt_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - break_stmt_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_116_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34602,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34602,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34603,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34616,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34616,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34619,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34622,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34622,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34635,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34638,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34641,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34641,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34646,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34646,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34653
      start: 34599
    functionDepth: 1
    functionLinenumber: 34599
    functionLinenumberEnd: 34653
    functionName: _tmp_117_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_117_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34659,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34659,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34660,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34673,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34673,1
    - Dst: list_rule
      Src: /src/cpython/Parser/parser.c:34676,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34679,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34679,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34684,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34692,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34692,1
    - Dst: tuple_rule
      Src: /src/cpython/Parser/parser.c:34695,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34698,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34698,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34703,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34703,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34711,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34711,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:34714,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34717,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34722,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34722,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34730,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34733,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34736,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34741,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34741,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34749,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34749,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34760,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34760,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34768,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34768,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34771,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34774,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34774,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34779,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 97
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34786
      start: 34656
    functionDepth: 3
    functionLinenumber: 34656
    functionLinenumberEnd: 34786
    functionName: _tmp_118_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - tuple_rule
    - list_rule
    - _PyPegen_expect_token
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - genexp_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_118_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34792,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34792,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34793,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34801,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34804,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34815,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34815,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:34818,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34824,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34826,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34838,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34838,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34841,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34843,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34845,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34849,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34850,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34853
      start: 34789
    functionDepth: 2
    functionLinenumber: 34789
    functionLinenumberEnd: 34853
    functionName: _loop0_119_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - star_named_expressions_rule
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_119_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34859,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34859,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34860,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34868,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34871,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34882,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34882,1
    - Dst: _tmp_156_rule
      Src: /src/cpython/Parser/parser.c:34885,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34891,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34893,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34905,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34905,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34908,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34910,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34912,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34916,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34917,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34920
      start: 34856
    functionDepth: 2
    functionLinenumber: 34856
    functionLinenumberEnd: 34920
    functionName: _loop0_120_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - _tmp_156_rule
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_120_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34926,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34926,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34940,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34940,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34943,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34946,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34946,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34951,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34959,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34959,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34962,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34965,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34965,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34970,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34970,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34978,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34978,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34981,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34984,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34984,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34989,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34996
      start: 34923
    functionDepth: 1
    functionLinenumber: 34923
    functionLinenumberEnd: 34996
    functionName: _tmp_121_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_121_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35002,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35002,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35016,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35016,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35022,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35027,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35027,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35035,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35035,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35046,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35046,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35053
      start: 34999
    functionDepth: 1
    functionLinenumber: 34999
    functionLinenumberEnd: 35053
    functionName: _tmp_122_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_122_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35059,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35059,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35060,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35073,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35073,1
    - Dst: slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:35076,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35079,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35079,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35084,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35084,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35092,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35092,1
    - Dst: slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:35095,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35098,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35103,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35110
      start: 35056
    functionDepth: 2
    functionLinenumber: 35056
    functionLinenumberEnd: 35110
    functionName: _tmp_123_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - slash_with_default_rule
    - slash_no_default_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_123_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35116,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35116,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35117,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35130,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35130,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35133,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35136,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35141,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35141,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35149,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35149,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:35152,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35155,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35155,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35160,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35167
      start: 35113
    functionDepth: 2
    functionLinenumber: 35113
    functionLinenumberEnd: 35167
    functionName: _tmp_124_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - param_no_default_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_124_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35173,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35173,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35174,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35187,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35190,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35193,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35193,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35198,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35198,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35206,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35206,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35212,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35212,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35217,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35224
      start: 35170
    functionDepth: 1
    functionLinenumber: 35170
    functionLinenumberEnd: 35224
    functionName: _tmp_125_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_125_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35230,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35230,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35231,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35244,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35244,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35247,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35250,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35250,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35255,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35263,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35263,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35267,1
    - Dst: _tmp_169_rule
      Src: /src/cpython/Parser/parser.c:35269,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35272,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35272,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35273,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35277,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35277,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35284
      start: 35227
    functionDepth: 1
    functionLinenumber: 35227
    functionLinenumberEnd: 35284
    functionName: _tmp_126_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_dummy_name
    - _tmp_169_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_126_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35290,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35290,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35304,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:35307,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35310,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35315,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35315,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35323,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35323,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35326,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35329,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35329,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35334,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35341
      start: 35287
    functionDepth: 2
    functionLinenumber: 35287
    functionLinenumberEnd: 35341
    functionName: _tmp_127_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - param_no_default_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_127_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35347,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35347,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35348,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35361,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35361,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35364,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35367,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35367,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35372,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35372,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35380,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35380,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35383,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35386,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35386,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35391,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35391,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35399,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35402,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35405,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35410,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35410,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35417
      start: 35344
    functionDepth: 1
    functionLinenumber: 35344
    functionLinenumberEnd: 35417
    functionName: _tmp_128_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_128_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35423,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35423,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35424,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35437,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35437,1
    - Dst: lambda_slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:35440,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35443,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35448,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35448,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35456,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35456,1
    - Dst: lambda_slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:35459,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35462,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35462,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35467,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35467,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35474
      start: 35420
    functionDepth: 2
    functionLinenumber: 35420
    functionLinenumberEnd: 35474
    functionName: _tmp_129_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - lambda_slash_no_default_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - lambda_slash_with_default_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_129_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35480,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35480,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35481,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:35489,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35492,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35503,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35503,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35507,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:35509,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:35513,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35515,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:35521,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35523,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35525,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35535,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35535,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:35538,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35540,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35542,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:35546,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35547,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35550
      start: 35477
    functionDepth: 2
    functionLinenumber: 35477
    functionLinenumberEnd: 35550
    functionName: _loop0_130_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - lambda_param_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_130_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35556,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35556,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35570,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35570,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:35574,1
    - Dst: _loop0_130_rule
      Src: /src/cpython/Parser/parser.c:35576,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35579,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:35580,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35584,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35584,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35591
      start: 35553
    functionDepth: 3
    functionLinenumber: 35553
    functionLinenumberEnd: 35591
    functionName: _gather_131_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - lambda_param_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_130_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_131_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35597,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35597,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35611,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35614,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35617,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35622,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35622,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35630,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35630,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:35633,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35636,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35636,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35641,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35641,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35648
      start: 35594
    functionDepth: 2
    functionLinenumber: 35594
    functionLinenumberEnd: 35648
    functionName: _tmp_132_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - lambda_param_no_default_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_132_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35654,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35654,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35655,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35668,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35668,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35671,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35674,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35674,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35679,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35679,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35687,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35687,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35691,1
    - Dst: _tmp_170_rule
      Src: /src/cpython/Parser/parser.c:35693,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35696,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35696,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35697,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35701,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35708
      start: 35651
    functionDepth: 1
    functionLinenumber: 35651
    functionLinenumberEnd: 35708
    functionName: _tmp_133_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_dummy_name
    - D
    - _tmp_170_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_133_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35714,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35714,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35715,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35728,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:35731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35734,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35739,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35747,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35747,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35750,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35753,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35753,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35758,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35758,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35765
      start: 35711
    functionDepth: 2
    functionLinenumber: 35711
    functionLinenumberEnd: 35765
    functionName: _tmp_134_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - lambda_param_no_default_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_134_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35771,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35771,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35772,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35785,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35785,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:35788,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:35791,1
    - Dst: _loop0_171_rule
      Src: /src/cpython/Parser/parser.c:35793,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35798,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35803,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35803,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35810
      start: 35768
    functionDepth: 2
    functionLinenumber: 35768
    functionLinenumberEnd: 35810
    functionName: _tmp_135_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _loop0_171_rule
    - UNUSED
    - _PyPegen_dummy_name
    - bitwise_or_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_135_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35816,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35816,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35817,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:35825,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35839,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35839,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35843,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:35845,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:35849,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35851,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:35857,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35859,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35861,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35871,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:35874,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35876,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35878,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:35882,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35883,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35886
      start: 35813
    functionDepth: 2
    functionLinenumber: 35813
    functionLinenumberEnd: 35886
    functionName: _loop0_136_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - dotted_name_rule
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_136_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35892,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35892,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35893,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35906,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35906,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:35910,1
    - Dst: _loop0_136_rule
      Src: /src/cpython/Parser/parser.c:35912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35915,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35915,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:35916,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35920,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35920,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35927
      start: 35889
    functionDepth: 3
    functionLinenumber: 35889
    functionLinenumberEnd: 35927
    functionName: _gather_137_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - dotted_name_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - _loop0_136_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_137_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35933,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35933,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35947,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35947,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:35951,1
    - Dst: _tmp_172_rule
      Src: /src/cpython/Parser/parser.c:35953,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35956,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35961,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35961,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35968
      start: 35930
    functionDepth: 1
    functionLinenumber: 35930
    functionLinenumberEnd: 35968
    functionName: _tmp_138_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_name_token
    - _PyPegen_dummy_name
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_172_rule
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_138_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35974,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35974,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35975,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:35983,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35997,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35997,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36001,1
    - Dst: _tmp_173_rule
      Src: /src/cpython/Parser/parser.c:36003,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:36007,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36009,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:36015,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36017,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36029,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36029,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:36032,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36034,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36036,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:36040,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36041,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36044
      start: 35971
    functionDepth: 2
    functionLinenumber: 35971
    functionLinenumberEnd: 36044
    functionName: _loop0_139_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - _tmp_173_rule
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_139_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36050,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36050,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36051,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36064,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36064,1
    - Dst: _tmp_173_rule
      Src: /src/cpython/Parser/parser.c:36068,1
    - Dst: _loop0_139_rule
      Src: /src/cpython/Parser/parser.c:36070,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36073,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36073,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:36074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36078,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36078,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36085
      start: 36047
    functionDepth: 3
    functionLinenumber: 36047
    functionLinenumberEnd: 36085
    functionName: _gather_140_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _loop0_139_rule
    - _tmp_173_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_140_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36091,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36091,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36092,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:36100,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36114,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36114,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36118,1
    - Dst: _tmp_174_rule
      Src: /src/cpython/Parser/parser.c:36120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:36124,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36126,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:36132,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36134,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36146,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36146,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:36149,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36151,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36153,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:36157,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36158,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36161
      start: 36088
    functionDepth: 2
    functionLinenumber: 36088
    functionLinenumberEnd: 36161
    functionName: _loop0_141_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - PyErr_Occurred
    - asdl_seq_SET_UNTYPED
    - _tmp_174_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_141_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36167,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36167,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36181,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36181,1
    - Dst: _tmp_174_rule
      Src: /src/cpython/Parser/parser.c:36185,1
    - Dst: _loop0_141_rule
      Src: /src/cpython/Parser/parser.c:36187,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36190,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36190,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:36191,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36195,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36202
      start: 36164
    functionDepth: 3
    functionLinenumber: 36164
    functionLinenumberEnd: 36202
    functionName: _gather_142_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _tmp_174_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_141_rule
    - _PyPegen_seq_insert_in_front
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_142_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36208,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36208,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36222,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36222,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36225,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36228,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36228,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36233,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36241,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36244,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36247,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36247,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36252,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36252,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36259
      start: 36205
    functionDepth: 1
    functionLinenumber: 36205
    functionLinenumberEnd: 36259
    functionName: _tmp_143_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_143_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36265,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36265,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36266,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:36274,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36277,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36288,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36288,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:36291,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:36297,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36299,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36301,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36311,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36311,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:36314,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36316,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36318,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:36322,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36323,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36326
      start: 36262
    functionDepth: 3
    functionLinenumber: 36262
    functionLinenumberEnd: 36326
    functionName: _loop0_144_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - block_rule
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_144_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36332,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36332,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36333,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36346,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36346,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:36348,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:36351,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:36353,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36356,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36356,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:36357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36361,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36368
      start: 36329
    functionDepth: 2
    functionLinenumber: 36329
    functionLinenumberEnd: 36368
    functionName: _tmp_145_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - UNUSED
    - _PyPegen_dummy_name
    - _tmp_21_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_145_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36374,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36374,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36375,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36388,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36388,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36391,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36394,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36399,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36407,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36407,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36410,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36413,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36413,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36418,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36418,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36425
      start: 36371
    functionDepth: 1
    functionLinenumber: 36371
    functionLinenumberEnd: 36425
    functionName: _tmp_146_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_146_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36431,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36431,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36445,1
    - Dst: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:36449,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36451,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36454,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:36455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36459,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36466
      start: 36428
    functionDepth: 2
    functionLinenumber: 36428
    functionLinenumberEnd: 36466
    functionName: _tmp_147_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_dummy_name
    - positional_patterns_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_147_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36472,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36472,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36473,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36486,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36486,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36489,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36492,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36492,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36497,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36497,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36505,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36505,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36508,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36511,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36511,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36516,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36523
      start: 36469
    functionDepth: 1
    functionLinenumber: 36469
    functionLinenumberEnd: 36523
    functionName: _tmp_148_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_148_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36529,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36529,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36530,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36543,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36543,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36546,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36549,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36549,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36554,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36554,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36562,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36562,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36565,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36568,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36568,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36573,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36573,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36581,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36581,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36584,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36587,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36587,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36592,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36592,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36600,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36600,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36603,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36606,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36611,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36618
      start: 36526
    functionDepth: 1
    functionLinenumber: 36526
    functionLinenumberEnd: 36618
    functionName: _tmp_149_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_149_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36624,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36624,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36625,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36638,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36638,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36641,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36644,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36644,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36657,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36657,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36660,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36663,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36663,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36668,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36668,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36676,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36676,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36679,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36682,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36682,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36687,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36687,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36694
      start: 36621
    functionDepth: 1
    functionLinenumber: 36621
    functionLinenumberEnd: 36694
    functionName: _tmp_150_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_150_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36700,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36700,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36701,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36714,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36714,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36718,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:36720,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36723,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36723,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:36724,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36735
      start: 36697
    functionDepth: 1
    functionLinenumber: 36697
    functionLinenumberEnd: 36735
    functionName: _tmp_151_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_name_token
    - _PyPegen_dummy_name
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_151_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36741,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36741,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36742,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36755,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36758,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36761,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36761,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36766,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36774,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36774,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36777,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36780,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36780,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36785,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36785,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36792
      start: 36738
    functionDepth: 1
    functionLinenumber: 36738
    functionLinenumberEnd: 36792
    functionName: _tmp_152_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_152_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36798,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36798,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36812,1
    - Dst: fstring_rule
      Src: /src/cpython/Parser/parser.c:36815,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36818,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36818,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36823,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36831,1
    - Dst: string_rule
      Src: /src/cpython/Parser/parser.c:36834,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36837,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36837,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36842,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36842,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36849
      start: 36795
    functionDepth: 2
    functionLinenumber: 36795
    functionLinenumberEnd: 36849
    functionName: _tmp_153_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - string_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - fstring_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_153_rule(Parser *p)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36855,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36855,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36856,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36869,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36869,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36872,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36875,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36875,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36880,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36880,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36888,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36888,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36891,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36894,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36899,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36907,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36907,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36910,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36913,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36913,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36918,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36926,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36929,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36932,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36937,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36945,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36948,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36951,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36956,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36964,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36964,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36967,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36970,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36970,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36975,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36975,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36983,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36983,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36989,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36994,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36994,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 111
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37001
      start: 36852
    functionDepth: 1
    functionLinenumber: 36852
    functionLinenumberEnd: 37001
    functionName: _tmp_154_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_154_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37007,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37007,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37021,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37021,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37027,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37027,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37040,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37040,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37043,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37046,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37046,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37051,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37051,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37059,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37059,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37062,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37065,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37065,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37070,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37070,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37077
      start: 37004
    functionDepth: 1
    functionLinenumber: 37004
    functionLinenumberEnd: 37077
    functionName: _tmp_155_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_155_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37083,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37083,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37084,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37097,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37097,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:37101,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37106,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37106,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37108,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37116,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37123
      start: 37080
    functionDepth: 2
    functionLinenumber: 37080
    functionLinenumberEnd: 37123
    functionName: _tmp_156_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - star_targets_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_156_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37129,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37129,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37130,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37143,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37143,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37146,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37149,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37154,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37154,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37162,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37165,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37173,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37173,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37180
      start: 37126
    functionDepth: 1
    functionLinenumber: 37126
    functionLinenumberEnd: 37180
    functionName: _tmp_157_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_157_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37186,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37186,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37187,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37200,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37200,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37205,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:37207,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37212,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37214,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37222,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37222,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37229
      start: 37183
    functionDepth: 4
    functionLinenumber: 37183
    functionLinenumberEnd: 37229
    functionName: _tmp_158_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - named_expression_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_158_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37235,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37235,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37236,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37249,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37249,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37253,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:37255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37258,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37258,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37260,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37268,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37268,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37275
      start: 37232
    functionDepth: 3
    functionLinenumber: 37232
    functionLinenumberEnd: 37275
    functionName: _tmp_159_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - star_expression_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_159_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37281,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37281,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37282,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37295,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37295,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37299,1
    - Dst: conjunction_rule
      Src: /src/cpython/Parser/parser.c:37301,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37304,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37306,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37314,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37321
      start: 37278
    functionDepth: 2
    functionLinenumber: 37278
    functionLinenumberEnd: 37321
    functionName: _tmp_160_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - conjunction_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_160_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37327,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37327,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37328,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37341,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37341,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37345,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:37347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37350,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37350,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37360,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37367
      start: 37324
    functionDepth: 2
    functionLinenumber: 37324
    functionLinenumberEnd: 37367
    functionName: _tmp_161_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - inversion_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_161_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37373,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37373,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37387,1
    - Dst: slice_rule
      Src: /src/cpython/Parser/parser.c:37390,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37393,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37393,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37398,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37398,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37406,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37406,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:37409,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37412,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37417,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37424
      start: 37370
    functionDepth: 5
    functionLinenumber: 37370
    functionLinenumberEnd: 37424
    functionName: _tmp_162_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - starred_expression_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - slice_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_162_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37430,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37430,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37431,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37444,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37444,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37448,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:37450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37453,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37453,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37463,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37470
      start: 37427
    functionDepth: 2
    functionLinenumber: 37427
    functionLinenumberEnd: 37470
    functionName: _tmp_163_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - disjunction_rule
    - PyErr_Occurred
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_163_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37476,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37476,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37490,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:37493,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37496,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37501,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37509,1
    - Dst: _tmp_87_rule
      Src: /src/cpython/Parser/parser.c:37512,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:37514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37517,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37517,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37522,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37529
      start: 37473
    functionDepth: 4
    functionLinenumber: 37473
    functionLinenumberEnd: 37529
    functionName: _tmp_164_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_lookahead_with_int
    - starred_expression_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - _tmp_87_rule
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_164_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37535,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37535,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37536,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37549,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37549,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37553,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:37555,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37558,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37558,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37560,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37568,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37575
      start: 37532
    functionDepth: 2
    functionLinenumber: 37532
    functionLinenumberEnd: 37575
    functionName: _tmp_165_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - star_target_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_165_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37582,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37582,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37583,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37596,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37596,1
    - Dst: _gather_89_rule
      Src: /src/cpython/Parser/parser.c:37601,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37603,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:37605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37608,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37608,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:37609,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37613,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37620
      start: 37579
    functionDepth: 4
    functionLinenumber: 37579
    functionLinenumberEnd: 37620
    functionName: _tmp_166_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - kwargs_rule
    - _PyPegen_dummy_name
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_89_rule
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_166_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37626,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37626,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37640,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37640,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:37643,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:37645,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37648,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37648,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37653,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37653,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37660
      start: 37623
    functionDepth: 3
    functionLinenumber: 37623
    functionLinenumberEnd: 37660
    functionName: _tmp_167_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_lookahead_with_int
    - starred_expression_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_167_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37666,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37666,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37667,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37680,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:37683,1
    - Dst: expression_without_invalid_rule
      Src: /src/cpython/Parser/parser.c:37685,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37688,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37688,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37693,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37700
      start: 37663
    functionDepth: 4
    functionLinenumber: 37663
    functionLinenumberEnd: 37700
    functionName: _tmp_168_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_without_invalid_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_168_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37706,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37706,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37707,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37720,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37723,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37726,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37726,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37731,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37739,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37742,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37745,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37745,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37750,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37750,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37757
      start: 37703
    functionDepth: 1
    functionLinenumber: 37703
    functionLinenumberEnd: 37757
    functionName: _tmp_169_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_169_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37763,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37763,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37764,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37777,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37777,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37780,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37783,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37783,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37788,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37788,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37796,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37796,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37802,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37807,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37814
      start: 37760
    functionDepth: 1
    functionLinenumber: 37760
    functionLinenumberEnd: 37814
    functionName: _tmp_170_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_170_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37820,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37820,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37821,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:37829,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37832,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37843,1
    - Dst: _tmp_175_rule
      Src: /src/cpython/Parser/parser.c:37846,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:37852,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37854,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37856,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37866,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37866,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:37869,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37871,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37873,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:37877,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37881
      start: 37817
    functionDepth: 2
    functionLinenumber: 37817
    functionLinenumberEnd: 37881
    functionName: _loop0_171_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Pypegen_stack_overflow
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - D
    - PyMem_Free
    - _tmp_175_rule
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Malloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_171_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37887,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37887,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37888,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37901,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37904,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37907,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37907,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37912,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37920,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37920,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37923,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37926,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37931,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37939,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37939,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37945,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37950,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37957
      start: 37884
    functionDepth: 1
    functionLinenumber: 37884
    functionLinenumberEnd: 37957
    functionName: _tmp_172_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_172_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37963,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37963,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37964,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37977,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37977,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:37979,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:37982,1
    - Dst: _tmp_176_rule
      Src: /src/cpython/Parser/parser.c:37984,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37987,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:37988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37992,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37992,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37999
      start: 37960
    functionDepth: 2
    functionLinenumber: 37960
    functionLinenumberEnd: 37999
    functionName: _tmp_173_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - expression_rule
    - UNUSED
    - _tmp_176_rule
    - _PyPegen_dummy_name
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_173_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38005,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38005,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38006,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38019,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38019,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:38021,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:38024,1
    - Dst: _tmp_176_rule
      Src: /src/cpython/Parser/parser.c:38026,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38029,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38029,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:38030,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38034,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38034,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38041
      start: 38002
    functionDepth: 2
    functionLinenumber: 38002
    functionLinenumberEnd: 38041
    functionName: _tmp_174_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - UNUSED
    - expressions_rule
    - _tmp_176_rule
    - _PyPegen_dummy_name
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_174_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38047,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38047,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38048,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38061,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38061,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38065,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:38067,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38070,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38070,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:38071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38075,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38082
      start: 38044
    functionDepth: 2
    functionLinenumber: 38044
    functionLinenumberEnd: 38082
    functionName: _tmp_175_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_dummy_name
    - bitwise_or_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_175_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38088,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38088,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38089,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38102,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38102,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38106,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:38108,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38111,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38111,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:38112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38116,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38123
      start: 38085
    functionDepth: 2
    functionLinenumber: 38085
    functionLinenumberEnd: 38123
    functionName: _tmp_176_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_dummy_name
    - star_target_rule
    - D
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_expect_token
    - fprintf
    - PyThreadState_Get
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_176_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: file_rule
      Src: /src/cpython/Parser/parser.c:38136,1
    - Dst: interactive_rule
      Src: /src/cpython/Parser/parser.c:38138,1
    - Dst: eval_rule
      Src: /src/cpython/Parser/parser.c:38140,1
    - Dst: func_type_rule
      Src: /src/cpython/Parser/parser.c:38142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38146
      start: 38125
    functionDepth: 2
    functionLinenumber: 38125
    functionLinenumberEnd: 38146
    functionName: _PyPegen_parse
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - func_type_rule
    - file_rule
    - interactive_rule
    - eval_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_parse(Parser *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: _PyPegen_dummy_name
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_dummy_name(Parser *p, ...)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:20,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/action_helpers.c:21,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - Parser*
    - void*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: _PyPegen_singleton_seq
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 15
    functionsReached:
    - _Py_asdl_generic_seq_new
    - assert
    - asdl_seq_SET_UNTYPED
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _PyPegen_singleton_seq(Parser *p, void *a)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:33,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/action_helpers.c:35,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/action_helpers.c:38,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:38,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:43,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:44,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:45,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - p
    - a
    - seq
    argTypes:
    - Parser*
    - void*
    - asdl_seq*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: _PyPegen_seq_insert_in_front
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 34
    functionsReached:
    - assert
    - asdl_seq_LEN
    - _Py_asdl_generic_seq_new
    - asdl_seq_GET_UNTYPED
    - _PyPegen_singleton_seq
    - asdl_seq_SET_UNTYPED
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _PyPegen_seq_insert_in_front(Parser *p, void *a, asdl_seq *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:54,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/action_helpers.c:56,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/action_helpers.c:59,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:59,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:64,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:65,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:65,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:67,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - p
    - seq
    - a
    argTypes:
    - Parser*
    - asdl_seq*
    - void*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 69
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 69
    functionName: _PyPegen_seq_append_to_end
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - assert
    - asdl_seq_LEN
    - _Py_asdl_generic_seq_new
    - asdl_seq_GET_UNTYPED
    - _PyPegen_singleton_seq
    - asdl_seq_SET_UNTYPED
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _PyPegen_seq_append_to_end(Parser *p, asdl_seq *seq, void *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:75,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:76,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - seqs
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: _get_flattened_seq_size
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - asdl_seq_LEN
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _get_flattened_seq_size(asdl_seq *seqs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_flattened_seq_size
      Src: /src/cpython/Parser/action_helpers.c:86,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:87,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/action_helpers.c:89,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:95,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:96,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:97,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:98,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:98,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - seqs
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts:
    - condition: (flattened_seq_size > 0)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (flattened_seq_idx == flattened_seq_size)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: _PyPegen_seq_flatten
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_LEN
    - _Py_asdl_generic_seq_new
    - asdl_seq_GET_UNTYPED
    - _get_flattened_seq_size
    - assert
    - asdl_seq_SET_UNTYPED
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _PyPegen_seq_flatten(Parser *p, asdl_seq *seqs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:109,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: _PyPegen_seq_last_item
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - asdl_seq_LEN
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_seq_last_item(asdl_seq *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: _PyPegen_seq_first_item
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET_UNTYPED
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_seq_first_item(asdl_seq *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:123,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Parser/action_helpers.c:124,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Parser/action_helpers.c:129,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Parser/action_helpers.c:130,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:132,1
    - Dst: _PyAST_Name
      Src: /src/cpython/Parser/action_helpers.c:136,1
    - Dst: EXTRA_EXPR
      Src: /src/cpython/Parser/action_helpers.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - first_name
    - second_name
    argTypes:
    - Parser*
    - expr_ty
    - expr_ty
    assertStmts:
    - condition: (first_name != NULL && second_name != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 10
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: _PyPegen_join_names_with_dot
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyUnicode_InternImmortal
    - PyUnicode_FromFormat
    - _PyInterpreterState_GET
    - _PyAST_Name
    - _PyArena_AddPyObject
    - EXTRA_EXPR
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_join_names_with_dot(Parser *p, expr_ty first_name,
      expr_ty second_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:144,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:145,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Parser/action_helpers.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: _PyPegen_seq_count_dots
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - Py_UNREACHABLE
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int _PyPegen_seq_count_dots(asdl_seq *seq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Parser/action_helpers.c:165,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:170,1
    - Dst: _PyAST_alias
      Src: /src/cpython/Parser/action_helpers.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - p
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 162
    functionDepth: 10
    functionLinenumber: 162
    functionLinenumberEnd: 174
    functionName: _PyPegen_alias_for_star
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_alias
    - PyUnicode_InternFromString
    - _PyArena_AddPyObject
    - Py_DECREF
    linkageType: ''
    returnType: alias_ty
    signature: "alias_ty _PyPegen_alias_for_star(Parser *p, int lineno, int col_offset,
      int end_lineno,\n                        int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:180,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:181,1
    - Dst: _Py_asdl_identifier_seq_new
      Src: /src/cpython/Parser/action_helpers.c:183,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:188,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - seq
    argTypes:
    - Parser*
    - asdl_expr_seq*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 192
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 192
    functionName: _PyPegen_map_names_to_ids
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 3
    functionsReached:
    - asdl_seq_SET
    - asdl_seq_GET
    - asdl_seq_LEN
    - _Py_asdl_identifier_seq_new
    - assert
    linkageType: ''
    returnType: asdl_identifier_seq
    signature: 'asdl_identifier_seq *

      _PyPegen_map_names_to_ids(Parser *p, asdl_expr_seq *seq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:198,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - p
    - cmpop
    - expr
    argTypes:
    - Parser*
    - cmpop_ty
    - expr_ty
    assertStmts:
    - condition: (expr != NULL)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 206
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 206
    functionName: _PyPegen_cmpop_expr_pair
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 10
    functionsReached:
    - assert
    - _PyArena_Malloc
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      _PyPegen_cmpop_expr_pair(Parser *p, cmpop_ty cmpop, expr_ty expr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:211,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:212,1
    - Dst: _Py_asdl_int_seq_new
      Src: /src/cpython/Parser/action_helpers.c:214,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:219,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - seq
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: _PyPegen_get_cmpops
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_SET
    - _Py_asdl_int_seq_new
    - asdl_seq_LEN
    - asdl_seq_GET_UNTYPED
    - assert
    linkageType: ''
    returnType: asdl_int_seq
    signature: 'asdl_int_seq *

      _PyPegen_get_cmpops(Parser *p, asdl_seq *seq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:228,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:229,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:231,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:236,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - seq
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: _PyPegen_get_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_SET
    - asdl_seq_LEN
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_expr_seq_new
    - assert
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _PyPegen_get_exprs(Parser *p, asdl_seq *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:246,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:251,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:256,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:257,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/action_helpers.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - seq
    - ctx
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: _set_seq_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_SET
    - asdl_seq_GET
    - asdl_seq_LEN
    - _Py_asdl_expr_seq_new
    - _PyPegen_set_expr_context
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _set_seq_context(Parser *p, asdl_expr_seq *seq, expr_context_ty ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_Name
      Src: /src/cpython/Parser/action_helpers.c:265,1
    - Dst: EXTRA_EXPR
      Src: /src/cpython/Parser/action_helpers.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - e
    - ctx
    argTypes:
    - Parser*
    - expr_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: _set_name_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - EXTRA_EXPR
    - _PyAST_Name
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _set_name_context(Parser *p, expr_ty e, expr_context_ty ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/action_helpers.c:271,1
    - Dst: _set_seq_context
      Src: /src/cpython/Parser/action_helpers.c:272,1
    - Dst: EXTRA_EXPR
      Src: /src/cpython/Parser/action_helpers.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - e
    - ctx
    argTypes:
    - Parser*
    - expr_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: _set_tuple_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _set_seq_context
    - _PyAST_Tuple
    - EXTRA_EXPR
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _set_tuple_context(Parser *p, expr_ty e, expr_context_ty ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_List
      Src: /src/cpython/Parser/action_helpers.c:280,1
    - Dst: _set_seq_context
      Src: /src/cpython/Parser/action_helpers.c:281,1
    - Dst: EXTRA_EXPR
      Src: /src/cpython/Parser/action_helpers.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - e
    - ctx
    argTypes:
    - Parser*
    - expr_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: _set_list_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _set_seq_context
    - EXTRA_EXPR
    - _PyAST_List
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _set_list_context(Parser *p, expr_ty e, expr_context_ty ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/action_helpers.c:289,1
    - Dst: EXTRA_EXPR
      Src: /src/cpython/Parser/action_helpers.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - e
    - ctx
    argTypes:
    - Parser*
    - expr_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: _set_subscript_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _PyAST_Subscript
    - EXTRA_EXPR
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _set_subscript_context(Parser *p, expr_ty e, expr_context_ty
      ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/action_helpers.c:296,1
    - Dst: EXTRA_EXPR
      Src: /src/cpython/Parser/action_helpers.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - e
    - ctx
    argTypes:
    - Parser*
    - expr_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: _set_attribute_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - EXTRA_EXPR
    - _PyAST_Attribute
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _set_attribute_context(Parser *p, expr_ty e, expr_context_ty
      ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/action_helpers.c:303,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/action_helpers.c:303,1
    - Dst: EXTRA_EXPR
      Src: /src/cpython/Parser/action_helpers.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - e
    - ctx
    argTypes:
    - Parser*
    - expr_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: _set_starred_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _PyAST_Starred
    - EXTRA_EXPR
    - _PyPegen_set_expr_context
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _set_starred_context(Parser *p, expr_ty e, expr_context_ty
      ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:311,1
    - Dst: _set_name_context::_set_name_context
      Src: /src/cpython/Parser/action_helpers.c:316,1
    - Dst: _set_tuple_context::_set_tuple_context
      Src: /src/cpython/Parser/action_helpers.c:319,1
    - Dst: _set_list_context::_set_list_context
      Src: /src/cpython/Parser/action_helpers.c:322,1
    - Dst: _set_subscript_context::_set_subscript_context
      Src: /src/cpython/Parser/action_helpers.c:325,1
    - Dst: _set_attribute_context::_set_attribute_context
      Src: /src/cpython/Parser/action_helpers.c:328,1
    - Dst: _set_starred_context::_set_starred_context
      Src: /src/cpython/Parser/action_helpers.c:331,1
    - Dst: expr::expr
      Src: /src/cpython/Parser/action_helpers.c:334,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - p
    - expr
    - ctx
    argTypes:
    - Parser*
    - expr_ty
    - expr_context_ty
    assertStmts:
    - condition: (expr != NULL)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 337
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 337
    functionName: _PyPegen_set_expr_context
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 10
    functionsReached:
    - _set_name_context::_set_name_context
    - _set_subscript_context::_set_subscript_context
    - expr::expr
    - _set_list_context::_set_list_context
    - _set_attribute_context::_set_attribute_context
    - _set_tuple_context::_set_tuple_context
    - _set_starred_context::_set_starred_context
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_set_expr_context(Parser *p, expr_ty expr, expr_context_ty
      ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - key
    - value
    argTypes:
    - Parser*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: _PyPegen_key_value_pair
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: KeyValuePair
    signature: 'KeyValuePair *

      _PyPegen_key_value_pair(Parser *p, expr_ty key, expr_ty value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:356,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:357,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:362,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - seq
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: _PyPegen_get_keys
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_LEN
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _PyPegen_get_keys(Parser *p, asdl_seq *seq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:372,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:373,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:378,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - seq
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: _PyPegen_get_values
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_LEN
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _PyPegen_get_values(Parser *p, asdl_seq *seq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - key
    - pattern
    argTypes:
    - Parser*
    - expr_ty
    - pattern_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: _PyPegen_key_pattern_pair
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: KeyPatternPair
    signature: 'KeyPatternPair *

      _PyPegen_key_pattern_pair(Parser *p, expr_ty key, pattern_ty pattern)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:401,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:402,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:407,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - seq
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: _PyPegen_get_pattern_keys
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_LEN
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _PyPegen_get_pattern_keys(Parser *p, asdl_seq *seq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:417,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Parser/action_helpers.c:418,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:423,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - seq
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: _PyPegen_get_patterns
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_pattern_seq_new
    - asdl_seq_SET
    - asdl_seq_LEN
    linkageType: ''
    returnType: asdl_pattern_seq
    signature: 'asdl_pattern_seq *

      _PyPegen_get_patterns(Parser *p, asdl_seq *seq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:433,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/action_helpers.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - p
    - arg
    - value
    - tc
    argTypes:
    - Parser*
    - arg_ty
    - expr_ty
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: _PyPegen_name_default_pair
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 4
    functionsReached:
    - _PyPegen_add_type_comment_to_arg
    - _PyArena_Malloc
    linkageType: ''
    returnType: NameDefaultPair
    signature: 'NameDefaultPair *

      _PyPegen_name_default_pair(Parser *p, arg_ty arg, expr_ty value, Token *tc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - plain_names
    - names_with_defaults
    argTypes:
    - Parser*
    - asdl_arg_seq*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 453
    functionName: _PyPegen_slash_with_default
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: SlashWithDefault
    signature: 'SlashWithDefault *

      _PyPegen_slash_with_default(Parser *p, asdl_arg_seq *plain_names, asdl_seq *names_with_defaults)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - p
    - vararg
    - kwonlyargs
    - kwarg
    argTypes:
    - Parser*
    - arg_ty
    - asdl_seq*
    - arg_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 467
    functionName: _PyPegen_star_etc
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: StarEtc
    signature: 'StarEtc *

      _PyPegen_star_etc(Parser *p, arg_ty vararg, asdl_seq *kwonlyargs, arg_ty kwarg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:472,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:473,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/action_helpers.c:474,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:481,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:481,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:484,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - Parser*
    - asdl_seq*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 488
    functionName: _PyPegen_join_sequences
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_generic_seq_new
    - asdl_seq_LEN
    - asdl_seq_SET_UNTYPED
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _PyPegen_join_sequences(Parser *p, asdl_seq *a, asdl_seq *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:493,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:494,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:499,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - names_with_defaults
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 503
    functionName: _get_names
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - asdl_seq_SET
    - _Py_asdl_arg_seq_new
    - asdl_seq_LEN
    linkageType: ''
    returnType: asdl_arg_seq
    signature: 'asdl_arg_seq *

      _get_names(Parser *p, asdl_seq *names_with_defaults)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:508,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:509,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:514,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - names_with_defaults
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 518
    functionName: _get_defaults
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 5
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_LEN
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _get_defaults(Parser *p, asdl_seq *names_with_defaults)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _get_names
      Src: /src/cpython/Parser/action_helpers.c:530,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/action_helpers.c:534,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - p
    - slash_without_default
    - slash_with_default
    - posonlyargs
    argTypes:
    - Parser*
    - asdl_arg_seq*
    - SlashWithDefault*
    - asdl_arg_seq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 543
    functionName: _make_posonlyargs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _PyPegen_join_sequences
    - _Py_asdl_arg_seq_new
    - _get_names
    linkageType: ''
    returnType: int
    signature: "int _make_posonlyargs(Parser *p,\n                  asdl_arg_seq *slash_without_default,\n
      \                 SlashWithDefault *slash_with_default,\n                  asdl_arg_seq
      **posonlyargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _get_names
      Src: /src/cpython/Parser/action_helpers.c:553,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/action_helpers.c:557,1
    - Dst: _get_names
      Src: /src/cpython/Parser/action_helpers.c:561,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:568,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - p
    - plain_names
    - names_with_default
    - posargs
    argTypes:
    - Parser*
    - asdl_arg_seq*
    - asdl_seq*
    - asdl_arg_seq**
    assertStmts:
    - condition: (0)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 576
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 576
    functionName: _make_posargs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyPegen_join_sequences
    - _Py_asdl_arg_seq_new
    - _get_names
    linkageType: ''
    returnType: int
    signature: "int _make_posargs(Parser *p,\n              asdl_arg_seq *plain_names,\n
      \             asdl_seq *names_with_default,\n              asdl_arg_seq **posargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:585,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:589,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/action_helpers.c:593,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:599,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:602,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - p
    - slash_with_default
    - names_with_default
    - posdefaults
    argTypes:
    - Parser*
    - SlashWithDefault*
    - asdl_seq*
    - asdl_expr_seq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 608
    functionName: _make_posdefaults
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _Py_asdl_expr_seq_new
    - _PyPegen_join_sequences
    - _get_defaults
    linkageType: ''
    returnType: int
    signature: "int _make_posdefaults(Parser *p,\n                  SlashWithDefault
      *slash_with_default,\n                  asdl_seq *names_with_default,\n                  asdl_expr_seq
      **posdefaults)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _get_names
      Src: /src/cpython/Parser/action_helpers.c:615,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:618,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:626,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - p
    - star_etc
    - kwonlyargs
    - kwdefaults
    argTypes:
    - Parser*
    - StarEtc*
    - asdl_arg_seq**
    - asdl_expr_seq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 637
    functionName: _make_kwargs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _Py_asdl_expr_seq_new
    - _get_defaults
    - _Py_asdl_arg_seq_new
    - _get_names
    linkageType: ''
    returnType: int
    signature: "int _make_kwargs(Parser *p, StarEtc *star_etc,\n             asdl_arg_seq
      **kwonlyargs,\n             asdl_expr_seq **kwdefaults)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _make_posonlyargs
      Src: /src/cpython/Parser/action_helpers.c:646,1
    - Dst: _make_posargs
      Src: /src/cpython/Parser/action_helpers.c:651,1
    - Dst: _make_posdefaults
      Src: /src/cpython/Parser/action_helpers.c:656,1
    - Dst: _make_kwargs
      Src: /src/cpython/Parser/action_helpers.c:667,1
    - Dst: _PyAST_arguments
      Src: /src/cpython/Parser/action_helpers.c:676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 6
    argNames:
    - p
    - slash_without_default
    - slash_with_default
    - plain_names
    - names_with_default
    - star_etc
    argTypes:
    - Parser*
    - asdl_arg_seq*
    - SlashWithDefault*
    - asdl_arg_seq*
    - asdl_seq*
    - StarEtc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 678
    functionName: _PyPegen_make_arguments
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _make_posdefaults
    - _PyAST_arguments
    - _make_posargs
    - _make_kwargs
    - _make_posonlyargs
    linkageType: ''
    returnType: arguments_ty
    signature: "arguments_ty _PyPegen_make_arguments(Parser *p, asdl_arg_seq *slash_without_default,\n
      \                       SlashWithDefault *slash_with_default, asdl_arg_seq *plain_names,\n
      \                       asdl_seq *names_with_default, StarEtc *star_etc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:686,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:690,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:694,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:698,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:702,1
    - Dst: _PyAST_arguments
      Src: /src/cpython/Parser/action_helpers.c:707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 709
    functionName: _PyPegen_empty_arguments
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyAST_arguments
    - _Py_asdl_arg_seq_new
    - _Py_asdl_expr_seq_new
    linkageType: ''
    returnType: arguments_ty
    signature: arguments_ty _PyPegen_empty_arguments(Parser *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - kind
    argTypes:
    - Parser*
    - operator_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 721
    functionName: _PyPegen_augoperator
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: AugOperator
    signature: 'AugOperator *

      _PyPegen_augoperator(Parser *p, operator_ty kind)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:727,1
    - Dst: _PyAST_AsyncFunctionDef
      Src: /src/cpython/Parser/action_helpers.c:729,1
    - Dst: _PyAST_FunctionDef
      Src: /src/cpython/Parser/action_helpers.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - decorators
    - function_def
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - stmt_ty
    assertStmts:
    - condition: (function_def != NULL)
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 749
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 749
    functionName: _PyPegen_function_def_decorators
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_AsyncFunctionDef
    - _PyAST_FunctionDef
    - assert
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty _PyPegen_function_def_decorators(Parser *p, asdl_expr_seq *decorators,
      stmt_ty function_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:755,1
    - Dst: _PyAST_ClassDef
      Src: /src/cpython/Parser/action_helpers.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - decorators
    - class_def
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - stmt_ty
    assertStmts:
    - condition: (class_def != NULL)
      pos:
        line_end: 754
        line_start: 754
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 763
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 763
    functionName: _PyPegen_class_def_decorators
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_ClassDef
    - assert
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty _PyPegen_class_def_decorators(Parser *p, asdl_expr_seq *decorators,
      stmt_ty class_def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - element
    - is_keyword
    argTypes:
    - Parser*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 776
    functionName: _PyPegen_keyword_or_starred
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: KeywordOrStarred
    signature: 'KeywordOrStarred *

      _PyPegen_keyword_or_starred(Parser *p, void *element, int is_keyword)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:783,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 790
    functionName: _seq_number_of_starred_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int _seq_number_of_starred_exprs(asdl_seq *seq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _seq_number_of_starred_exprs
      Src: /src/cpython/Parser/action_helpers.c:796,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:800,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:806,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:807,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - kwargs
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 813
    functionName: _PyPegen_seq_extract_starred_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_SET
    - _seq_number_of_starred_exprs
    - asdl_seq_LEN
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_expr_seq_new
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _PyPegen_seq_extract_starred_exprs(Parser *p, asdl_seq *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:819,1
    - Dst: _seq_number_of_starred_exprs
      Src: /src/cpython/Parser/action_helpers.c:820,1
    - Dst: _Py_asdl_keyword_seq_new
      Src: /src/cpython/Parser/action_helpers.c:824,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:831,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - kwargs
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 837
    functionName: _PyPegen_seq_delete_starred_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_SET
    - _seq_number_of_starred_exprs
    - asdl_seq_LEN
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_keyword_seq_new
    linkageType: ''
    returnType: asdl_keyword_seq
    signature: 'asdl_keyword_seq *

      _PyPegen_seq_delete_starred_exprs(Parser *p, asdl_seq *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:842,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - exp
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 847
    functionName: _PyPegen_ensure_imaginary
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - PyComplex_CheckExact
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_ensure_imaginary(Parser *p, expr_ty exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:852,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - exp
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 857
    functionName: _PyPegen_ensure_real
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - PyComplex_CheckExact
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_ensure_real(Parser *p, expr_ty exp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_asdl_type_ignore_seq_new
      Src: /src/cpython/Parser/action_helpers.c:865,1
    - Dst: _PyPegen_new_type_comment
      Src: /src/cpython/Parser/action_helpers.c:870,1
    - Dst: _PyAST_TypeIgnore
      Src: /src/cpython/Parser/action_helpers.c:874,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:879,1
    - Dst: _PyAST_Module
      Src: /src/cpython/Parser/action_helpers.c:882,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - Parser*
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 883
    functionName: _PyPegen_make_module
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_SET
    - _Py_asdl_type_ignore_seq_new
    - _PyAST_TypeIgnore
    - _PyPegen_new_type_comment
    - _PyAST_Module
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty _PyPegen_make_module(Parser *p, asdl_stmt_seq *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/action_helpers.c:888,1
    - Dst: strlen
      Src: /src/cpython/Parser/action_helpers.c:888,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - Parser*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 897
    functionName: _PyPegen_new_type_comment
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - PyUnicode_DecodeUTF8
    - _PyArena_AddPyObject
    - strlen
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPegen_new_type_comment(Parser *p, const char *s)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/action_helpers.c:905,1
    - Dst: _PyPegen_new_type_comment
      Src: /src/cpython/Parser/action_helpers.c:909,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/action_helpers.c:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - a
    - tc
    argTypes:
    - Parser*
    - arg_ty
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 916
    functionName: _PyPegen_add_type_comment_to_arg
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 3
    functionsReached:
    - PyBytes_AsString
    - _PyPegen_new_type_comment
    - _PyAST_arg
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty _PyPegen_add_type_comment_to_arg(Parser *p, arg_ty a, Token
      *tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:922,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:923,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/action_helpers.c:925,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:926,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/action_helpers.c:927,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - Parser*
    - Token*
    assertStmts:
    - condition: (t->bytes != NULL)
      pos:
        line_end: 921
        line_start: 921
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (t->type == NOTEQUAL)
      pos:
        line_end: 922
        line_start: 922
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 934
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 934
    functionName: _PyPegen_check_barry_as_flufl
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - strcmp
    - RAISE_SYNTAX_ERROR
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyPegen_check_barry_as_flufl(Parser *p, Token* t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Parser/action_helpers.c:943,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p
    - name
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 948
    functionName: _PyPegen_check_legacy_stmt
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    linkageType: ''
    returnType: int
    signature: int _PyPegen_check_legacy_stmt(Parser *p, expr_ty name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - result
    - metadata
    argTypes:
    - Parser*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 960
    functionName: result_token_with_metadata
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: ResultTokenWithMetadata
    signature: 'ResultTokenWithMetadata *

      result_token_with_metadata(Parser *p, void *result, PyObject *metadata)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/action_helpers.c:966,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/action_helpers.c:969,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Parser/action_helpers.c:973,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:974,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:976,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/action_helpers.c:978,1
    - Dst: result_token_with_metadata
      Src: /src/cpython/Parser/action_helpers.c:983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - p
    - conv_token
    - conv
    argTypes:
    - Parser*
    - Token*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 984
    functionName: _PyPegen_check_fstring_conversion
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - TOK_GET_STRING_PREFIX
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - result_token_with_metadata
    - PyUnicode_READ_CHAR
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: ResultTokenWithMetadata
    signature: 'ResultTokenWithMetadata *

      _PyPegen_check_fstring_conversion(Parser *p, Token* conv_token, expr_ty conv)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:997,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1000,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1002,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1003,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1007,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1013,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1015,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1016,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1019,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1021,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1025,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1026,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1027,1
    - Dst: _PyPegen_concatenate_strings
      Src: /src/cpython/Parser/action_helpers.c:1030,1
    - Dst: result_token_with_metadata
      Src: /src/cpython/Parser/action_helpers.c:1037,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 8
    argNames:
    - p
    - colon
    - spec
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - Token*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts:
    - condition: (j == non_empty_count)
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1038
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1038
    functionName: _PyPegen_setup_full_format_spec
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - asdl_seq_SET
    - asdl_seq_GET
    - _PyAST_JoinedStr
    - PyUnicode_CheckExact
    - asdl_seq_LEN
    - _PyPegen_concatenate_strings
    - _Py_asdl_expr_seq_new
    - result_token_with_metadata
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: ResultTokenWithMetadata
    signature: "ResultTokenWithMetadata *\n_PyPegen_setup_full_format_spec(Parser
      *p, Token *colon, asdl_expr_seq *spec, int lineno, int col_offset,\n                                int
      end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1043,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/action_helpers.c:1111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts:
    - condition: (e != NULL)
      pos:
        line_end: 1042
        line_start: 1042
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1116
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1116
    functionName: _PyPegen_get_expr_name
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 8
    functionsReached:
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyPegen_get_expr_name(expr_ty e)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1120,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/action_helpers.c:1123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - comprehension
    argTypes:
    - comprehension_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1124
    functionName: _PyPegen_get_last_comprehension_item
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_LEN
    - PyPegen_last_item
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_get_last_comprehension_item(comprehension_ty comprehension)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1129,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/action_helpers.c:1133,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/action_helpers.c:1133,1
    - Dst: _PyPegen_seq_extract_starred_exprs
      Src: /src/cpython/Parser/action_helpers.c:1138,1
    - Dst: _PyPegen_seq_delete_starred_exprs
      Src: /src/cpython/Parser/action_helpers.c:1139,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1142,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1145,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1152,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1152,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1155,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1155,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/action_helpers.c:1158,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/action_helpers.c:1158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 8
    argNames:
    - p
    - a
    - b
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1160
    functionName: _PyPegen_collect_call_seqs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyPegen_seq_extract_starred_exprs
    - asdl_seq_SET
    - _PyPegen_seq_delete_starred_exprs
    - _PyPegen_dummy_name
    - asdl_seq_GET
    - asdl_seq_LEN
    - _PyAST_Call
    - _Py_asdl_expr_seq_new
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyPegen_collect_call_seqs(Parser *p, asdl_expr_seq *a, asdl_seq
      *b,\n                     int lineno, int col_offset, int end_lineno,\n                     int
      end_col_offset, PyArena *arena)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: VISIT_CONTAINER
      Src: /src/cpython/Parser/action_helpers.c:1190,1
    - Dst: VISIT_CONTAINER
      Src: /src/cpython/Parser/action_helpers.c:1193,1
    - Dst: _PyPegen_get_invalid_target
      Src: /src/cpython/Parser/action_helpers.c:1199,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1205,1
    - Dst: _PyPegen_get_invalid_target
      Src: /src/cpython/Parser/action_helpers.c:1207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - e
    - targets_type
    argTypes:
    - expr_ty
    - TARGETS_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1219
    functionName: _PyPegen_get_invalid_target
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - VISIT_CONTAINER
    - _PyPegen_get_invalid_target
    - asdl_seq_GET
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_get_invalid_target(expr_ty e, TARGETS_TYPE targets_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CONTAINER
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1181
    functionName: VISIT_CONTAINER
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT_CONTAINER(CONTAINER, TYPE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1223,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1224,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/action_helpers.c:1237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - e
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1238
    functionName: _PyPegen_arguments_parsing_error
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - RAISE_SYNTAX_ERROR
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: void
    signature: void *_PyPegen_arguments_parsing_error(Parser *p, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1250,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/action_helpers.c:1255,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/action_helpers.c:1257,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1258,1
    - Dst: _PyPegen_get_last_comprehension_item
      Src: /src/cpython/Parser/action_helpers.c:1259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - args
    - comprehensions
    argTypes:
    - Parser*
    - expr_ty
    - asdl_comprehension_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1240
    functionDepth: 2
    functionLinenumber: 1240
    functionLinenumberEnd: 1262
    functionName: _PyPegen_nonparen_genexp_in_call
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - _PyPegen_get_last_comprehension_item
    - asdl_seq_LEN
    - PyPegen_last_item
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_nonparen_genexp_in_call(Parser *p, expr_ty args, asdl_comprehension_seq
      *comprehensions)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1268,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1268,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Parser/action_helpers.c:1270,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:1276,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:1276,1
    - Dst: strlen
      Src: /src/cpython/Parser/action_helpers.c:1279,1
    - Dst: strchr
      Src: /src/cpython/Parser/action_helpers.c:1282,1
    - Dst: _PyPegen_decode_string
      Src: /src/cpython/Parser/action_helpers.c:1283,1
    - Dst: _Pypegen_raise_decode_error
      Src: /src/cpython/Parser/action_helpers.c:1285,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1289,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - p
    - is_raw
    - constant
    - token
    argTypes:
    - Parser*
    - int
    - expr_ty
    - Token*
    assertStmts:
    - condition: (PyUnicode_CheckExact(constant->v.Constant.value))
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1295
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1295
    functionName: _PyPegen_decode_fstring_part
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - strchr
    - PyUnicode_CheckExact
    - _PyPegen_decode_string
    - strcmp
    - PyUnicode_AsUTF8
    - _Pypegen_raise_decode_error
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_decode_fstring_part(Parser* p, int is_raw, expr_ty
      constant, Token* token)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1300,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1303,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1305,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/action_helpers.c:1309,1
    - Dst: strpbrk
      Src: /src/cpython/Parser/action_helpers.c:1313,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1315,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1322,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1330,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/action_helpers.c:1331,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1339,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1340,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1341,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1343,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1344,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1345,1
    - Dst: _PyPegen_decode_fstring_part
      Src: /src/cpython/Parser/action_helpers.c:1351,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1359,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1360,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1364,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1369,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1374,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1374,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 5
    argNames:
    - p
    - a
    - raw_expressions
    - b
    - string_kind
    argTypes:
    - Parser*
    - Token*
    - asdl_expr_seq*
    - Token*
    - enum string_kind_t
    assertStmts:
    - condition: ((string_kind == TSTRING && second->kind == Interpolation_kind) ||
        second->kind == FormattedValue_kind)
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (first->kind == Constant_kind)
      pos:
        line_end: 1339
        line_start: 1339
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1381
      start: 1297
    functionDepth: 7
    functionLinenumber: 1297
    functionLinenumberEnd: 1381
    functionName: _get_resized_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - asdl_seq_SET
    - asdl_seq_GET
    - PyUnicode_CheckExact
    - asdl_seq_LEN
    - _PyPegen_decode_fstring_part
    - PyBytes_AsString
    - _Py_asdl_expr_seq_new
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      _get_resized_exprs(Parser *p, Token *a, asdl_expr_seq *raw_expressions, Token
      *b, enum string_kind_t string_kind)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_resized_exprs
      Src: /src/cpython/Parser/action_helpers.c:1386,1
    - Dst: _PyAST_TemplateStr
      Src: /src/cpython/Parser/action_helpers.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - a
    - raw_expressions
    - b
    argTypes:
    - Parser*
    - Token*
    - asdl_expr_seq*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1383
    functionDepth: 8
    functionLinenumber: 1383
    functionLinenumberEnd: 1390
    functionName: _PyPegen_template_str
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_TemplateStr
    - _get_resized_exprs
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_template_str(Parser *p, Token *a, asdl_expr_seq *raw_expressions,
      Token *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_resized_exprs
      Src: /src/cpython/Parser/action_helpers.c:1395,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - a
    - raw_expressions
    - b
    argTypes:
    - Parser*
    - Token*
    - asdl_expr_seq*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1392
    functionDepth: 8
    functionLinenumber: 1392
    functionLinenumberEnd: 1399
    functionName: _PyPegen_joined_str
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_JoinedStr
    - _get_resized_exprs
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_joined_str(Parser *p, Token* a, asdl_expr_seq* raw_expressions,
      Token*b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Parser/action_helpers.c:1404,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/action_helpers.c:1410,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/action_helpers.c:1411,1
    - Dst: _PyPegen_decode_string
      Src: /src/cpython/Parser/action_helpers.c:1415,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1420,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - p
    - tok
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1426
    functionName: _PyPegen_decoded_constant_from_token
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - TOK_GET_MODE
    - _PyPegen_decode_string
    - _PyArena_AddPyObject
    - PyBytes_AsStringAndSize
    - INSIDE_FSTRING
    - _PyAST_Constant
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_decoded_constant_from_token(Parser* p, Token* tok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/action_helpers.c:1429,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/action_helpers.c:1433,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1438,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - tok
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1428
    functionDepth: 2
    functionLinenumber: 1428
    functionLinenumberEnd: 1444
    functionName: _PyPegen_constant_from_token
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyBytes_AsString
    - _PyArena_AddPyObject
    - _PyAST_Constant
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_constant_from_token(Parser* p, Token* tok)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/action_helpers.c:1447,1
    - Dst: _PyPegen_parse_string
      Src: /src/cpython/Parser/action_helpers.c:1451,1
    - Dst: _Pypegen_raise_decode_error
      Src: /src/cpython/Parser/action_helpers.c:1453,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1457,1
    - Dst: _PyPegen_new_identifier
      Src: /src/cpython/Parser/action_helpers.c:1462,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - p
    - tok
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1446
    functionDepth: 2
    functionLinenumber: 1446
    functionLinenumberEnd: 1468
    functionName: _PyPegen_constant_from_string
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyPegen_parse_string
    - Py_DECREF
    - _PyPegen_new_identifier
    - PyBytes_AsString
    - _Pypegen_raise_decode_error
    - _PyArena_AddPyObject
    - _PyAST_Constant
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_constant_from_string(Parser* p, Token* tok)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1476,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Parser/action_helpers.c:1477,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Parser/action_helpers.c:1478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - p
    - debug
    - conversion
    - format
    argTypes:
    - Parser*
    - Token*
    - ResultTokenWithMetadata*
    - ResultTokenWithMetadata*
    assertStmts:
    - condition: (conversion_expr->kind == Name_kind)
      pos:
        line_end: 1475
        line_start: 1475
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1485
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1485
    functionName: _get_interpolation_conversion
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - Py_SAFE_DOWNCAST
    - assert
    linkageType: ''
    returnType: int
    signature: "int _get_interpolation_conversion(Parser *p, Token *debug, ResultTokenWithMetadata
      *conversion,\n                              ResultTokenWithMetadata *format)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1490,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Parser/action_helpers.c:1493,1
    - Dst: _PyUnicode_IsWhitespace
      Src: /src/cpython/Parser/action_helpers.c:1494,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Parser/action_helpers.c:1502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - exprstr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1487
    functionDepth: 8
    functionLinenumber: 1487
    functionLinenumberEnd: 1503
    functionName: _strip_interpolation_expr
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_IsWhitespace
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - PyUnicode_READ_CHAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _strip_interpolation_expr(PyObject *exprstr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _get_interpolation_conversion
      Src: /src/cpython/Parser/action_helpers.c:1509,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1532,1
    - Dst: _strip_interpolation_expr
      Src: /src/cpython/Parser/action_helpers.c:1533,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1534,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/action_helpers.c:1535,1
    - Dst: _PyAST_Interpolation
      Src: /src/cpython/Parser/action_helpers.c:1539,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1549,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1555,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1556,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1557,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 11
    argNames:
    - p
    - expression
    - debug
    - conversion
    - format
    - closing_brace
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - expr_ty
    - Token*
    - ResultTokenWithMetadata*
    - ResultTokenWithMetadata*
    - Token*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts:
    - condition: (exprstr != NULL)
      pos:
        line_end: 1531
        line_start: 1531
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1559
      start: 1505
    functionDepth: 9
    functionLinenumber: 1505
    functionLinenumberEnd: 1559
    functionName: _PyPegen_interpolation
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - asdl_seq_SET
    - _PyAST_JoinedStr
    - _get_interpolation_conversion
    - _strip_interpolation_expr
    - _PyArena_AddPyObject
    - _Py_asdl_expr_seq_new
    - _PyAST_Interpolation
    - _PyAST_Constant
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyPegen_interpolation(Parser *p, expr_ty expression, Token
      *debug, ResultTokenWithMetadata *conversion,\n                                 ResultTokenWithMetadata
      *format, Token *closing_brace, int lineno, int col_offset,\n                                 int
      end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _get_interpolation_conversion
      Src: /src/cpython/Parser/action_helpers.c:1564,1
    - Dst: _PyAST_FormattedValue
      Src: /src/cpython/Parser/action_helpers.c:1566,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1595,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1601,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1602,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1603,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 11
    argNames:
    - p
    - expression
    - debug
    - conversion
    - format
    - closing_brace
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - expr_ty
    - Token*
    - ResultTokenWithMetadata*
    - ResultTokenWithMetadata*
    - Token*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1561
    functionDepth: 2
    functionLinenumber: 1561
    functionLinenumberEnd: 1605
    functionName: _PyPegen_formatted_value
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyAST_FormattedValue
    - asdl_seq_SET
    - _PyAST_JoinedStr
    - _get_interpolation_conversion
    - _Py_asdl_expr_seq_new
    - _PyAST_Constant
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyPegen_formatted_value(Parser *p, expr_ty expression, Token
      *debug, ResultTokenWithMetadata *conversion,\n                                 ResultTokenWithMetadata
      *format, Token *closing_brace, int lineno, int col_offset,\n                                 int
      end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1612,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1613,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Parser/action_helpers.c:1615,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1621,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1623,1
    - Dst: PyBytes_Concat
      Src: /src/cpython/Parser/action_helpers.c:1624,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1626,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/action_helpers.c:1627,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - p
    - strings
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 1612
        line_start: 1612
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1631
      start: 1607
    functionDepth: 3
    functionLinenumber: 1607
    functionLinenumberEnd: 1631
    functionName: _build_concatenated_bytes
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyBytes_Concat
    - asdl_seq_GET
    - Py_GetConstant
    - asdl_seq_LEN
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _build_concatenated_bytes(Parser *p, asdl_expr_seq *strings,
      int lineno,\n                        int col_offset, int end_lineno, int end_col_offset,\n
      \                       PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1638,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1639,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1641,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Parser/action_helpers.c:1651,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1657,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1658,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Parser/action_helpers.c:1660,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Parser/action_helpers.c:1662,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Parser/action_helpers.c:1667,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1672,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1675,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - p
    - strings
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts:
    - condition: (len > 1)
      pos:
        line_end: 1638
        line_start: 1638
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (current_elem->kind == Constant_kind)
      pos:
        line_end: 1657
        line_start: 1657
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1677
      start: 1633
    functionDepth: 9
    functionLinenumber: 1633
    functionLinenumberEnd: 1677
    functionName: _build_concatenated_unicode
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - asdl_seq_GET
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - asdl_seq_LEN
    - _PyArena_AddPyObject
    - PyUnicodeWriter_WriteStr
    - PyUnicodeWriter_Discard
    - _PyAST_Constant
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _build_concatenated_unicode(Parser *p, asdl_expr_seq *strings,
      int lineno,\n                        int col_offset, int end_lineno, int end_col_offset,\n
      \                       PyArena *arena)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1684,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1685,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1689,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1692,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1695,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1704,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1712,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1715,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1716,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1720,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1724,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1725,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1729,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1733,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1742,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1748,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1749,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1758,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1766,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1772,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Parser/action_helpers.c:1783,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1790,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Parser/action_helpers.c:1792,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Parser/action_helpers.c:1794,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Parser/action_helpers.c:1804,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1809,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1812,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1822,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1823,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1828,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1831,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 91
    argCount: 7
    argNames:
    - p
    - strings
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts:
    - condition: (current_pos == n_elements)
      pos:
        line_end: 1830
        line_start: 1830
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (len > 0)
      pos:
        line_end: 1684
        line_start: 1684
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1833
      start: 1679
    functionDepth: 9
    functionLinenumber: 1679
    functionLinenumberEnd: 1833
    functionName: _build_concatenated_str
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_SET
    - Py_DECREF
    - asdl_seq_GET
    - PyUnicodeWriter_Finish
    - PyUnicode_CheckExact
    - PyUnicodeWriter_Create
    - asdl_seq_LEN
    - _PyArena_AddPyObject
    - _Py_asdl_expr_seq_new
    - PyUnicodeWriter_WriteStr
    - PyUnicodeWriter_Discard
    - PyUnicode_GET_LENGTH
    - _PyAST_Constant
    - assert
    linkageType: ''
    returnType: asdl_expr_seq
    signature: "asdl_expr_seq *\n_build_concatenated_str(Parser *p, asdl_expr_seq
      *strings,\n                               int lineno, int col_offset, int end_lineno,\n
      \                              int end_col_offset, PyArena *arena)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _build_concatenated_str
      Src: /src/cpython/Parser/action_helpers.c:1840,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p
    - strings
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1835
    functionDepth: 10
    functionLinenumber: 1835
    functionLinenumberEnd: 1843
    functionName: _build_concatenated_joined_str
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _PyAST_JoinedStr
    - _build_concatenated_str
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _build_concatenated_joined_str(Parser *p, asdl_expr_seq *strings,\n
      \                              int lineno, int col_offset, int end_lineno,\n
      \                              int end_col_offset, PyArena *arena)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _build_concatenated_str
      Src: /src/cpython/Parser/action_helpers.c:1850,1
    - Dst: _PyAST_TemplateStr
      Src: /src/cpython/Parser/action_helpers.c:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p
    - strings
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1845
    functionDepth: 10
    functionLinenumber: 1845
    functionLinenumberEnd: 1854
    functionName: _PyPegen_concatenate_tstrings
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_TemplateStr
    - _build_concatenated_str
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyPegen_concatenate_tstrings(Parser *p, asdl_expr_seq *strings,\n
      \                              int lineno, int col_offset, int end_lineno,\n
      \                              int end_col_offset, PyArena *arena)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1861,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1862,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1870,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1873,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1884,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/action_helpers.c:1894,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1901,1
    - Dst: _build_concatenated_bytes
      Src: /src/cpython/Parser/action_helpers.c:1904,1
    - Dst: _build_concatenated_unicode
      Src: /src/cpython/Parser/action_helpers.c:1908,1
    - Dst: _build_concatenated_joined_str
      Src: /src/cpython/Parser/action_helpers.c:1913,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 7
    argNames:
    - p
    - strings
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1883
        line_start: 1883
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (len > 0)
      pos:
        line_end: 1861
        line_start: 1861
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1915
      start: 1856
    functionDepth: 11
    functionLinenumber: 1856
    functionLinenumberEnd: 1915
    functionName: _PyPegen_concatenate_strings
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _build_concatenated_unicode
    - asdl_seq_GET
    - _build_concatenated_joined_str
    - asdl_seq_LEN
    - _build_concatenated_bytes
    - PyBytes_CheckExact
    - RAISE_SYNTAX_ERROR
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyPegen_concatenate_strings(Parser *p, asdl_expr_seq *strings,\n
      \                            int lineno, int col_offset, int end_lineno,\n                             int
      end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Parser/action_helpers.c:1921,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1922,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1923,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Parser/action_helpers.c:1924,1
    - Dst: _PyAST_ImportFrom
      Src: /src/cpython/Parser/action_helpers.c:1929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 9
    argNames:
    - p
    - module
    - names
    - level
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - identifier
    - asdl_alias_seq*
    - int
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1917
    functionDepth: 2
    functionLinenumber: 1917
    functionLinenumberEnd: 1930
    functionName: _PyPegen_checked_future_import
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    - _PyAST_ImportFrom
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyPegen_checked_future_import(Parser *p, identifier module,
      asdl_alias_seq * names, int level,\n                  \t\t\t   int lineno, int
      col_offset, int end_lineno, int end_col_offset,\n                      \t\t
      \  PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1937,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1941,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p
    - stmts
    argTypes:
    - Parser*
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1950
    functionName: _PyPegen_register_stmts
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      _PyPegen_register_stmts(Parser *p, asdl_stmt_seq* stmts)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Parser/string_parser.c:32,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Parser/string_parser.c:37,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/string_parser.c:73,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Parser/string_parser.c:74,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Parser/string_parser.c:90,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/string_parser.c:92,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/string_parser.c:95,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/string_parser.c:102,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/string_parser.c:108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/string_parser.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/string_parser.c:117,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 4
    argNames:
    - p
    - buffer
    - first_invalid_escape
    - t
    argTypes:
    - Parser*
    - char*
    - char*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 13
    functionDepth: 10
    functionLinenumber: 13
    functionLinenumberEnd: 119
    functionName: warn_invalid_escape_sequence
    functionSourceFile: /src/cpython/Parser/string_parser.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_WarnExplicitObject
    - PyUnicode_FromFormat
    - PyBytes_AsString
    - PyErr_ExceptionMatches
    - RAISE_ERROR_KNOWN_LOCATION
    - PyBytes_Size
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int warn_invalid_escape_sequence(Parser *p, const char* buffer, const
      char *first_invalid_escape, Token *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/string_parser.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sPtr
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: decode_utf8
    functionSourceFile: /src/cpython/Parser/string_parser.c
    functionUses: 2
    functionsReached:
    - PyUnicode_DecodeUTF8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_utf8(const char **sPtr, const char *end)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Parser/string_parser.c:149,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/string_parser.c:153,1
    - Dst: strcpy
      Src: /src/cpython/Parser/string_parser.c:162,1
    - Dst: decode_utf8
      Src: /src/cpython/Parser/string_parser.c:175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/string_parser.c:177,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Parser/string_parser.c:180,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Parser/string_parser.c:181,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/string_parser.c:182,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Parser/string_parser.c:184,1
    - Dst: sprintf
      Src: /src/cpython/Parser/string_parser.c:185,1
    - Dst: assert
      Src: /src/cpython/Parser/string_parser.c:189,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Parser/string_parser.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/string_parser.c:190,1
    - Dst: _PyUnicode_DecodeUnicodeEscapeInternal2
      Src: /src/cpython/Parser/string_parser.c:201,1
    - Dst: warn_invalid_escape_sequence
      Src: /src/cpython/Parser/string_parser.c:208,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/string_parser.c:211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/string_parser.c:212,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/string_parser.c:216,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - parser
    - s
    - len
    - t
    argTypes:
    - Parser*
    - char*
    - size_t
    - Token*
    assertStmts:
    - condition: (p - buf <= PyBytes_GET_SIZE(u))
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/cpython/Parser/string_parser.c
    constantsTouched: []
    func_position:
      end: 218
      start: 134
    functionDepth: 11
    functionLinenumber: 134
    functionLinenumberEnd: 218
    functionName: decode_unicode_with_escapes
    functionSourceFile: /src/cpython/Parser/string_parser.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_XDECREF
    - assert
    - Py_DECREF
    - _PyUnicode_DecodeUnicodeEscapeInternal2
    - sprintf
    - PyBytes_FromStringAndSize
    - PyUnicode_READ
    - PyBytes_AsString
    - PyBytes_GET_SIZE
    - warn_invalid_escape_sequence
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - strcpy
    - decode_utf8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token
      *t)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_DecodeEscape2
      Src: /src/cpython/Parser/string_parser.c:225,1
    - Dst: warn_invalid_escape_sequence
      Src: /src/cpython/Parser/string_parser.c:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/string_parser.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - p
    - s
    - len
    - t
    argTypes:
    - Parser*
    - char*
    - Py_ssize_t
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 11
    functionLinenumber: 220
    functionLinenumberEnd: 239
    functionName: decode_bytes_with_escapes
    functionSourceFile: /src/cpython/Parser/string_parser.c
    functionUses: 0
    functionsReached:
    - warn_invalid_escape_sequence
    - _PyBytes_DecodeEscape2
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_bytes_with_escapes(Parser *p, const char *s, Py_ssize_t len, Token *t)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Parser/string_parser.c:245,1
    - Dst: decode_unicode_with_escapes
      Src: /src/cpython/Parser/string_parser.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - p
    - raw
    - s
    - len
    - t
    argTypes:
    - Parser*
    - int
    - char*
    - size_t
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 12
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: _PyPegen_decode_string
    functionSourceFile: /src/cpython/Parser/string_parser.c
    functionUses: 2
    functionsReached:
    - decode_unicode_with_escapes
    - PyUnicode_DecodeUTF8Stateful
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPegen_decode_string(Parser *p, int raw, const char *s, size_t len, Token
      *t)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/string_parser.c:256,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Parser/string_parser.c:262,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Parser/string_parser.c:266,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Parser/string_parser.c:286,1
    - Dst: strlen
      Src: /src/cpython/Parser/string_parser.c:292,1
    - Dst: assert
      Src: /src/cpython/Parser/string_parser.c:295,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/string_parser.c:298,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Parser/string_parser.c:303,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Parser/string_parser.c:314,1
    - Dst: strchr
      Src: /src/cpython/Parser/string_parser.c:320,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Parser/string_parser.c:325,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/string_parser.c:326,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Parser/string_parser.c:334,1
    - Dst: decode_bytes_with_escapes
      Src: /src/cpython/Parser/string_parser.c:336,1
    - Dst: _PyPegen_decode_string
      Src: /src/cpython/Parser/string_parser.c:338,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - Parser*
    - Token*
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Parser/string_parser.c
    constantsTouched: []
    func_position:
      end: 339
      start: 253
    functionDepth: 13
    functionLinenumber: 253
    functionLinenumberEnd: 339
    functionName: _PyPegen_parse_string
    functionSourceFile: /src/cpython/Parser/string_parser.c
    functionUses: 1
    functionsReached:
    - strlen
    - strchr
    - Py_ISALPHA
    - PyErr_BadInternalCall
    - PyErr_SetString
    - Py_CHARMASK
    - PyBytes_FromStringAndSize
    - _PyPegen_decode_string
    - PyBytes_AsString
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - decode_bytes_with_escapes
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPegen_parse_string(Parser *p, Token *t)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/cpython/Parser/myreadline.c:46,1
    - Dst: fileno
      Src: /src/cpython/Parser/myreadline.c:46,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Parser/myreadline.c:58,1
    - Dst: clearerr
      Src: /src/cpython/Parser/myreadline.c:64,1
    - Dst: fgets
      Src: /src/cpython/Parser/myreadline.c:65,1
    - Dst: GetLastError
      Src: /src/cpython/Parser/myreadline.c:85,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Parser/myreadline.c:86,1
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Parser/myreadline.c:87,1
    - Dst: ResetEvent
      Src: /src/cpython/Parser/myreadline.c:89,1
    - Dst: feof
      Src: /src/cpython/Parser/myreadline.c:97,1
    - Dst: clearerr
      Src: /src/cpython/Parser/myreadline.c:98,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:104,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Parser/myreadline.c:105,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:106,1
    - Dst: _PyOS_InterruptOccurred
      Src: /src/cpython/Parser/myreadline.c:116,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - tstate
    - buf
    - len
    - fp
    argTypes:
    - PyThreadState*
    - char*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 122
    functionName: my_fgets
    functionSourceFile: /src/cpython/Parser/myreadline.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - feof
    - _get_osfhandle
    - GetLastError
    - fgets
    - clearerr
    - PyEval_SaveThread
    - PyErr_CheckSignals
    - WaitForSingleObjectEx
    - ResetEvent
    - _PyOS_InterruptOccurred
    - _PyOS_SigintEvent
    - fileno
    - PyEval_RestoreThread
    linkageType: ''
    returnType: int
    signature: int my_fgets(PyThreadState* tstate, char *buf, int len, FILE *fp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Parser/myreadline.c:147,1
    - Dst: ReadConsoleW
      Src: /src/cpython/Parser/myreadline.c:151,1
    - Dst: GetLastError
      Src: /src/cpython/Parser/myreadline.c:152,1
    - Dst: GetLastError
      Src: /src/cpython/Parser/myreadline.c:155,1
    - Dst: GetLastError
      Src: /src/cpython/Parser/myreadline.c:160,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Parser/myreadline.c:164,1
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Parser/myreadline.c:165,1
    - Dst: ResetEvent
      Src: /src/cpython/Parser/myreadline.c:167,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:168,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Parser/myreadline.c:169,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:170,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Parser/myreadline.c:185,1
    - Dst: wcscpy_s
      Src: /src/cpython/Parser/myreadline.c:187,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:190,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:191,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:192,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Parser/myreadline.c:197,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:199,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:200,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:201,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Parser/myreadline.c:209,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:214,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:215,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:216,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Parser/myreadline.c:221,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Parser/myreadline.c:225,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:227,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:228,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:229,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Parser/myreadline.c:233,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Parser/myreadline.c:241,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:245,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Parser/myreadline.c:246,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:247,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 97
    argCount: 2
    argNames:
    - tstate
    - hStdIn
    argTypes:
    - PyThreadState*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 250
    functionName: _PyOS_WindowsConsoleReadline
    functionSourceFile: /src/cpython/Parser/myreadline.c
    functionUses: 0
    functionsReached:
    - WideCharToMultiByte
    - _Py_IsMainInterpreter
    - ReadConsoleW
    - PyMem_RawFree
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyEval_SaveThread
    - PyErr_CheckSignals
    - PyMem_RawRealloc
    - WaitForSingleObjectEx
    - PyMem_RawMalloc
    - ResetEvent
    - wcscpy_s
    - _PyOS_SigintEvent
    - PyErr_NoMemory
    - PyEval_RestoreThread
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyOS_WindowsConsoleReadline(PyThreadState *tstate, HANDLE hStdIn)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/myreadline.c:263,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Parser/myreadline.c:266,1
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Parser/myreadline.c:270,1
    - Dst: fileno
      Src: /src/cpython/Parser/myreadline.c:270,1
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Parser/myreadline.c:271,1
    - Dst: fileno
      Src: /src/cpython/Parser/myreadline.c:271,1
    - Dst: _get_console_type
      Src: /src/cpython/Parser/myreadline.c:273,1
    - Dst: fflush
      Src: /src/cpython/Parser/myreadline.c:274,1
    - Dst: _get_console_type
      Src: /src/cpython/Parser/myreadline.c:276,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Parser/myreadline.c:279,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Parser/myreadline.c:282,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:284,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:285,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:286,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Parser/myreadline.c:289,1
    - Dst: fflush
      Src: /src/cpython/Parser/myreadline.c:293,1
    - Dst: WriteConsoleW
      Src: /src/cpython/Parser/myreadline.c:295,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Parser/myreadline.c:297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/myreadline.c:300,1
    - Dst: fflush
      Src: /src/cpython/Parser/myreadline.c:301,1
    - Dst: clearerr
      Src: /src/cpython/Parser/myreadline.c:304,1
    - Dst: _PyOS_WindowsConsoleReadline
      Src: /src/cpython/Parser/myreadline.c:305,1
    - Dst: fflush
      Src: /src/cpython/Parser/myreadline.c:310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/myreadline.c:312,1
    - Dst: fflush
      Src: /src/cpython/Parser/myreadline.c:314,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Parser/myreadline.c:321,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:322,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/myreadline.c:323,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:324,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Parser/myreadline.c:327,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Parser/myreadline.c:329,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:330,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:331,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:332,1
    - Dst: my_fgets
      Src: /src/cpython/Parser/myreadline.c:336,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Parser/myreadline.c:339,1
    - Dst: strlen
      Src: /src/cpython/Parser/myreadline.c:346,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Parser/myreadline.c:349,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Parser/myreadline.c:351,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Parser/myreadline.c:352,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:353,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Parser/myreadline.c:354,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 3
    argNames:
    - sys_stdin
    - sys_stdout
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Parser/myreadline.c
    constantsTouched: []
    func_position:
      end: 358
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 358
    functionName: PyOS_StdioReadline
    functionSourceFile: /src/cpython/Parser/myreadline.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyErr_SetString
    - PyEval_SaveThread
    - fflush
    - my_fgets
    - fprintf
    - _PyOS_WindowsConsoleReadline
    - PyEval_RestoreThread
    - PyMem_RawFree
    - clearerr
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - _get_console_type
    - PyErr_NoMemory
    - MultiByteToWideChar
    - _Py_get_osfhandle_noraise
    - WriteConsoleW
    - _PyInterpreterState_GetConfig
    - fileno
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Parser/myreadline.c:377,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Parser/myreadline.c:378,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/myreadline.c:379,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Parser/myreadline.c:389,1
    - Dst: isatty
      Src: /src/cpython/Parser/myreadline.c:399,1
    - Dst: fileno
      Src: /src/cpython/Parser/myreadline.c:399,1
    - Dst: isatty
      Src: /src/cpython/Parser/myreadline.c:399,1
    - Dst: fileno
      Src: /src/cpython/Parser/myreadline.c:399,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Parser/myreadline.c:409,1
    - Dst: PyOS_StdioReadline
      Src: /src/cpython/Parser/myreadline.c:411,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Parser/myreadline.c:419,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Parser/myreadline.c:420,1
    - Dst: strlen
      Src: /src/cpython/Parser/myreadline.c:426,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/myreadline.c:427,1
    - Dst: memcpy
      Src: /src/cpython/Parser/myreadline.c:429,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/myreadline.c:432,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Parser/myreadline.c:434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - sys_stdin
    - sys_stdout
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 437
    functionName: PyOS_Readline
    functionSourceFile: /src/cpython/Parser/myreadline.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _Py_atomic_load_ptr_relaxed
    - PyMem_RawFree
    - strlen
    - PyErr_SetString
    - _Py_atomic_store_ptr_relaxed
    - _PyThreadState_GET
    - PyErr_NoMemory
    - isatty
    - PyMutex_Unlock
    - memcpy
    - PyOS_StdioReadline
    - fileno
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      PyOS_Readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: _PyPegen_interactive_exit
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: asdl_stmt_seq
    signature: 'asdl_stmt_seq *

      _PyPegen_interactive_exit(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Parser/pegen.c:29,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/pegen.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - line
    - col_offset
    - end_col_offset
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 49
    functionName: _PyPegen_byte_offset_to_character_offset_line
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyPegen_byte_offset_to_character_offset_line(PyObject *line,
      Py_ssize_t col_offset, Py_ssize_t end_col_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:54,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:58,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/pegen.c:59,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/pegen.c:63,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str
    - col_offset
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (col_offset >= 0)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: _PyPegen_byte_offset_to_character_offset_raw
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - PyUnicode_DecodeUTF8
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyPegen_byte_offset_to_character_offset_raw(const char*
      str, Py_ssize_t col_offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Parser/pegen.c:71,1
    - Dst: _PyPegen_byte_offset_to_character_offset_raw
      Src: /src/cpython/Parser/pegen.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - line
    - col_offset
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: _PyPegen_byte_offset_to_character_offset
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyPegen_byte_offset_to_character_offset_raw
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyPegen_byte_offset_to_character_offset(PyObject *line,
      Py_ssize_t col_offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/pegen.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - p
    - mark
    - type
    - node
    argTypes:
    - Parser*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: _PyPegen_insert_memo
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 19
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: int
    signature: int _PyPegen_insert_memo(Parser *p, int mark, int type, void *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/pegen.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - p
    - mark
    - type
    - node
    argTypes:
    - Parser*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: _PyPegen_update_memo
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 10
    functionsReached:
    - _PyPegen_insert_memo
    linkageType: ''
    returnType: int
    signature: int _PyPegen_update_memo(Parser *p, int mark, int type, void *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Parser/pegen.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: init_normalization
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: int
    signature: int init_normalization(Parser *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:128,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:129,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: 127
        line_start: 127
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: growable_comment_array_init
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int growable_comment_array_init(growable_comment_array *arr, size_t
      initial_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/pegen.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arr
    - lineno
    - comment
    argTypes:
    - growable_comment_array*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: growable_comment_array_add
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    linkageType: ''
    returnType: int
    signature: int growable_comment_array_add(growable_comment_array *arr, int lineno,
      char *comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:157,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arr
    argTypes:
    - growable_comment_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: growable_comment_array_deallocate
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void growable_comment_array_deallocate(growable_comment_array *arr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:166,1
    - Dst: strncmp
      Src: /src/cpython/Parser/pegen.c:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - p
    - new_token
    argTypes:
    - Parser*
    - struct token*
    assertStmts:
    - condition: (name_len > 0)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 179
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 179
    functionName: _get_keyword_or_name_type
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - strncmp
    - assert
    linkageType: ''
    returnType: int
    signature: int _get_keyword_or_name_type(Parser *p, struct token *new_token)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:183,1
    - Dst: _get_keyword_or_name_type
      Src: /src/cpython/Parser/pegen.c:185,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Parser/pegen.c:186,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:191,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:198,1
    - Dst: _Pypegen_raise_decode_error
      Src: /src/cpython/Parser/pegen.c:216,1
    - Dst: _Pypegen_tokenizer_error
      Src: /src/cpython/Parser/pegen.c:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - p
    - parser_token
    - new_token
    - token_type
    argTypes:
    - Parser*
    - Token*
    - struct token*
    - int
    assertStmts:
    - condition: (parser_token != NULL)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 220
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 220
    functionName: initialize_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyBytes_FromStringAndSize
    - _Pypegen_raise_decode_error
    - _PyArena_AddPyObject
    - _get_keyword_or_name_type
    - _Pypegen_tokenizer_error
    - assert
    linkageType: ''
    returnType: int
    signature: int initialize_token(Parser *p, Token *parser_token, struct token *new_token,
      int token_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/pegen.c:225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:227,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Parser/pegen.c:233,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 242
    functionName: _resize_tokens_array
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyMem_Calloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int _resize_tokens_array(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyToken_Init
      Src: /src/cpython/Parser/pegen.c:248,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/pegen.c:249,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:254,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:256,1
    - Dst: strncpy
      Src: /src/cpython/Parser/pegen.c:259,1
    - Dst: growable_comment_array_add
      Src: /src/cpython/Parser/pegen.c:262,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:263,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/pegen.c:266,1
    - Dst: _resize_tokens_array
      Src: /src/cpython/Parser/pegen.c:284,1
    - Dst: initialize_token
      Src: /src/cpython/Parser/pegen.c:289,1
    - Dst: _PyToken_Free
      Src: /src/cpython/Parser/pegen.c:291,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 293
    functionName: _PyPegen_fill_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 103
    functionsReached:
    - _resize_tokens_array
    - strncpy
    - _PyToken_Free
    - initialize_token
    - growable_comment_array_add
    - _PyToken_Init
    - _PyTokenizer_Get
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int _PyPegen_fill_token(Parser *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Parser/pegen.c:306,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Parser/pegen.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: _PyPegen_clear_memo_statistics
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - FT_MUTEX_LOCK
    - FT_MUTEX_UNLOCK
    linkageType: ''
    returnType: void
    signature: void _PyPegen_clear_memo_statistics(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Parser/pegen.c:316,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Parser/pegen.c:321,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Parser/pegen.c:323,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Parser/pegen.c:325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:326,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Parser/pegen.c:330,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Parser/pegen.c:331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:332,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Parser/pegen.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 338
    functionName: _PyPegen_get_memo_statistics
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_SetItem
    - FT_MUTEX_LOCK
    - FT_MUTEX_UNLOCK
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPegen_get_memo_statistics(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/pegen.c:345,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Parser/pegen.c:362,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Parser/pegen.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - p
    - type
    - pres
    argTypes:
    - Parser*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 341
    functionDepth: 6
    functionLinenumber: 341
    functionLinenumberEnd: 373
    functionName: _PyPegen_is_memoized
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 29
    functionsReached:
    - FT_MUTEX_LOCK
    - _PyPegen_fill_token
    - FT_MUTEX_UNLOCK
    linkageType: ''
    returnType: int
    signature: int _PyPegen_is_memoized(Parser *p, int type, void *pres)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - RES_TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 384
    functionName: LOOKAHEAD1
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOOKAHEAD1(NAME, RES_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - RES_TYPE
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: LOOKAHEAD2
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOOKAHEAD2(NAME, RES_TYPE, T)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/pegen.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - type
    argTypes:
    - Parser*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 404
    functionDepth: 6
    functionLinenumber: 404
    functionLinenumberEnd: 419
    functionName: _PyPegen_expect_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 306
    functionsReached:
    - _PyPegen_fill_token
    linkageType: ''
    returnType: Token
    signature: 'Token *

      _PyPegen_expect_token(Parser *p, int type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - p
    - result
    - expected
    argTypes:
    - Parser*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: _PyPegen_expect_forced_result
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - RAISE_SYNTAX_ERROR
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_expect_forced_result(Parser *p, void* result, const char* expected)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/pegen.c:442,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.c:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p
    - type
    - expected
    argTypes:
    - Parser*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 434
    functionDepth: 6
    functionLinenumber: 434
    functionLinenumberEnd: 454
    functionName: _PyPegen_expect_forced_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 3
    functionsReached:
    - _PyPegen_fill_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    linkageType: ''
    returnType: Token
    signature: 'Token *

      _PyPegen_expect_forced_token(Parser *p, int type, const char* expected)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/pegen.c:460,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/pegen.c:469,1
    - Dst: strcmp
      Src: /src/cpython/Parser/pegen.c:474,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/pegen.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - p
    - keyword
    argTypes:
    - Parser*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 478
    functionName: _PyPegen_expect_soft_keyword
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 7
    functionsReached:
    - PyBytes_AsString
    - strcmp
    - _PyPegen_fill_token
    - _PyPegen_name_token
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_expect_soft_keyword(Parser *p, const char *keyword)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:483,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts:
    - condition: (p->mark >= 0)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 492
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 492
    functionName: _PyPegen_get_last_nonnwhitespace_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 103
    functionsReached:
    - assert
    linkageType: ''
    returnType: Token
    signature: 'Token *

      _PyPegen_get_last_nonnwhitespace_token(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/pegen.c:497,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:497,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Parser/pegen.c:503,1
    - Dst: init_normalization
      Src: /src/cpython/Parser/pegen.c:505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:507,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Parser/pegen.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:513,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Parser/pegen.c:517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:519,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Parser/pegen.c:524,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/pegen.c:526,1
    - Dst: _PyType_Name
      Src: /src/cpython/Parser/pegen.c:529,1
    - Dst: Py_TYPE
      Src: /src/cpython/Parser/pegen.c:529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:530,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Parser/pegen.c:542,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/pegen.c:543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:546,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Parser/pegen.c:550,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Parser/pegen.c:551,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:554,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - Parser*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 494
    functionDepth: 10
    functionLinenumber: 494
    functionLinenumberEnd: 562
    functionName: _PyPegen_new_identifier
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 1
    functionsReached:
    - PyUnicode_InternFromString
    - Py_DECREF
    - init_normalization
    - strlen
    - _PyUnicode_InternImmortal
    - _PyUnicode_EqualToASCIIString
    - PyObject_Vectorcall
    - _PyInterpreterState_GET
    - PyUnicode_DecodeUTF8
    - PyUnicode_IS_ASCII
    - _PyArena_AddPyObject
    - _PyType_Name
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPegen_new_identifier(Parser *p, const char *n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/pegen.c:570,1
    - Dst: _PyPegen_new_identifier
      Src: /src/cpython/Parser/pegen.c:575,1
    - Dst: _PyAST_Name
      Src: /src/cpython/Parser/pegen.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 564
    functionDepth: 11
    functionLinenumber: 564
    functionLinenumberEnd: 582
    functionName: _PyPegen_name_from_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyBytes_AsString
    - _PyPegen_new_identifier
    - _PyAST_Name
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_name_from_token(Parser *p, Token* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/pegen.c:587,1
    - Dst: _PyPegen_name_from_token
      Src: /src/cpython/Parser/pegen.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 12
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: _PyPegen_name_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 47
    functionsReached:
    - _PyPegen_name_from_token
    - _PyPegen_expect_token
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_name_token(Parser *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/pegen.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 7
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: _PyPegen_string_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 4
    functionsReached:
    - _PyPegen_expect_token
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_string_token(Parser *p)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/pegen.c:598,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Parser/pegen.c:604,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:606,1
    - Dst: strncmp
      Src: /src/cpython/Parser/pegen.c:607,1
    - Dst: _PyPegen_name_from_token
      Src: /src/cpython/Parser/pegen.c:608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 597
    functionDepth: 12
    functionLinenumber: 597
    functionLinenumberEnd: 612
    functionName: _PyPegen_soft_keyword_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    - _PyPegen_expect_token
    - PyBytes_AsStringAndSize
    - _PyPegen_name_from_token
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_soft_keyword_token(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:623,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:625,1
    - Dst: PyOS_strtoul
      Src: /src/cpython/Parser/pegen.c:628,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Parser/pegen.c:630,1
    - Dst: PyOS_strtol
      Src: /src/cpython/Parser/pegen.c:634,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Parser/pegen.c:638,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Parser/pegen.c:640,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Parser/pegen.c:645,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:646,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Parser/pegen.c:649,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Parser/pegen.c:651,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:652,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Parser/pegen.c:655,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 656
      start: 614
    functionDepth: 8
    functionLinenumber: 614
    functionLinenumberEnd: 656
    functionName: parsenumber_raw
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyErr_Occurred
    - PyOS_string_to_double
    - PyLong_FromString
    - PyLong_FromLong
    - PyOS_strtoul
    - PyOS_strtol
    - PyComplex_FromCComplex
    - PyFloat_FromDouble
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parsenumber_raw(const char *s)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:665,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen.c:667,1
    - Dst: parsenumber_raw
      Src: /src/cpython/Parser/pegen.c:668,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:671,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:671,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:673,1
    - Dst: parsenumber_raw
      Src: /src/cpython/Parser/pegen.c:682,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 685
      start: 658
    functionDepth: 9
    functionLinenumber: 658
    functionLinenumberEnd: 685
    functionName: parsenumber
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - strlen
    - strchr
    - PyMem_Free
    - parsenumber_raw
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parsenumber(const char *s)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/pegen.c:690,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/pegen.c:695,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen.c:701,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen.c:703,1
    - Dst: parsenumber
      Src: /src/cpython/Parser/pegen.c:707,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Parser/pegen.c:711,1
    - Dst: Py_TYPE
      Src: /src/cpython/Parser/pegen.c:715,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Parser/pegen.c:717,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.c:721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:728,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:734,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/pegen.c:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 687
    functionDepth: 10
    functionLinenumber: 687
    functionLinenumberEnd: 741
    functionName: _PyPegen_number_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyBytes_AsString
    - _PyThreadState_GET
    - RAISE_ERROR_KNOWN_LOCATION
    - Py_TYPE
    - _PyArena_AddPyObject
    - _PyPegen_expect_token
    - parsenumber
    - RAISE_SYNTAX_ERROR
    - _PyAST_Constant
    - strchr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty _PyPegen_number_token(Parser *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 770
    functionName: bad_single_statement
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bad_single_statement(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - flags
    argTypes:
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 795
    functionName: compute_parser_flags
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compute_parser_flags(PyCompilerFlags *flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:803,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:805,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:807,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:813,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:815,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:816,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Parser/pegen.c:818,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:820,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:821,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:822,1
    - Dst: growable_comment_array_init
      Src: /src/cpython/Parser/pegen.c:824,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:825,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:826,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:827,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:828,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Parser/pegen.c:854,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 7
    argNames:
    - tok
    - start_rule
    - flags
    - feature_version
    - errcode
    - source
    - arena
    argTypes:
    - struct tok_state*
    - int
    - int
    - int
    - int*
    - char*
    - PyArena*
    assertStmts:
    - condition: (tok != NULL)
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 857
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 857
    functionName: _PyPegen_Parser_New
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - _Py_GetConfig
    - PyErr_NoMemory
    - growable_comment_array_init
    - PyMem_Free
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: Parser
    signature: "Parser *\n_PyPegen_Parser_New(struct tok_state *tok, int start_rule,
      int flags,\n                    int feature_version, int *errcode, const char*
      source, PyArena *arena)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen.c:862,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:864,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:866,1
    - Dst: growable_comment_array_deallocate
      Src: /src/cpython/Parser/pegen.c:867,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 869
    functionName: _PyPegen_Parser_Free
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - growable_comment_array_deallocate
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _PyPegen_Parser_Free(Parser *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 886
    functionName: reset_parser_state_for_error_pass
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_parser_state_for_error_pass(Parser *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: _is_end_of_source
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _is_end_of_source(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Parser/pegen.c:896,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Parser/pegen.c:897,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Parser/pegen.c:898,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/pegen.c:911,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Parser/pegen.c:913,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:913,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen.c:917,1
    - Dst: Py_INCREF
      Src: /src/cpython/Parser/pegen.c:919,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Parser/pegen.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:928,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen.c:929,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen.c:934,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Parser/pegen.c:936,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 894
    functionDepth: 5
    functionLinenumber: 894
    functionLinenumberEnd: 937
    functionName: _PyPegen_set_syntax_error_metadata
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_BuildValue
    - PyObject_TypeCheck
    - Py_DECREF
    - PyErr_GetRaisedException
    - strlen
    - PyErr_Clear
    - PyUnicode_Decode
    - PyUnicode_FromString
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyPegen_set_syntax_error_metadata(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_parse
      Src: /src/cpython/Parser/pegen.c:942,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:943,1
    - Dst: _is_end_of_source
      Src: /src/cpython/Parser/pegen.c:945,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen.c:946,1
    - Dst: _PyPegen_raise_error
      Src: /src/cpython/Parser/pegen.c:947,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:949,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen.c:949,1
    - Dst: reset_parser_state_for_error_pass
      Src: /src/cpython/Parser/pegen.c:956,1
    - Dst: _PyPegen_parse
      Src: /src/cpython/Parser/pegen.c:957,1
    - Dst: _Pypegen_set_syntax_error
      Src: /src/cpython/Parser/pegen.c:961,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen.c:964,1
    - Dst: _PyPegen_set_syntax_error_metadata
      Src: /src/cpython/Parser/pegen.c:965,1
    - Dst: bad_single_statement
      Src: /src/cpython/Parser/pegen.c:970,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen.c:972,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Parser/pegen.c:981,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts:
    - condition: (p->level == 0)
      pos:
        line_end: 942
        line_start: 942
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 987
      start: 939
    functionDepth: 6
    functionLinenumber: 939
    functionLinenumberEnd: 987
    functionName: _PyPegen_run_parser
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - _Pypegen_set_syntax_error
    - PyErr_Occurred
    - _PyPegen_parse
    - _PyPegen_raise_error
    - PyErr_ExceptionMatches
    - _PyPegen_set_syntax_error_metadata
    - _is_end_of_source
    - reset_parser_state_for_error_pass
    - bad_single_statement
    - _PyAST_Validate
    - PyErr_Clear
    - RAISE_SYNTAX_ERROR
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_run_parser(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_FromFile
      Src: /src/cpython/Parser/pegen.c:995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:997,1
    - Dst: _PyPegen_raise_tokenizer_init_error
      Src: /src/cpython/Parser/pegen.c:998,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Parser/pegen.c:1004,1
    - Dst: Py_NewRef
      Src: /src/cpython/Parser/pegen.c:1008,1
    - Dst: compute_parser_flags
      Src: /src/cpython/Parser/pegen.c:1013,1
    - Dst: _PyPegen_Parser_New
      Src: /src/cpython/Parser/pegen.c:1014,1
    - Dst: _PyPegen_run_parser
      Src: /src/cpython/Parser/pegen.c:1020,1
    - Dst: _PyPegen_Parser_Free
      Src: /src/cpython/Parser/pegen.c:1021,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/pegen.c:1024,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:1025,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen.c:1026,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/pegen.c:1033,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 10
    argNames:
    - fp
    - start_rule
    - filename_ob
    - enc
    - ps1
    - ps2
    - flags
    - errcode
    - interactive_src
    - arena
    argTypes:
    - FILE*
    - int
    - PyObject*
    - char*
    - char*
    - char*
    - PyCompilerFlags*
    - int*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 989
    functionDepth: 7
    functionLinenumber: 989
    functionLinenumberEnd: 1035
    functionName: _PyPegen_run_parser_from_file_pointer
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTokenizer_Free
    - PyErr_Occurred
    - PyUnicode_CompareWithASCIIString
    - _PyTokenizer_FromFile
    - _PyPegen_raise_tokenizer_init_error
    - _PyPegen_Parser_New
    - _PyPegen_run_parser
    - Py_NewRef
    - _PyPegen_Parser_Free
    - _PyArena_AddPyObject
    - compute_parser_flags
    - PyUnicode_FromString
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty _PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule,
      PyObject *filename_ob,\n                             const char *enc, const
      char *ps1, const char *ps2,\n                             PyCompilerFlags *flags,
      int *errcode,\n                             PyObject **interactive_src, PyArena
      *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_FromUTF8
      Src: /src/cpython/Parser/pegen.c:1045,1
    - Dst: _PyTokenizer_FromString
      Src: /src/cpython/Parser/pegen.c:1047,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:1050,1
    - Dst: _PyPegen_raise_tokenizer_init_error
      Src: /src/cpython/Parser/pegen.c:1051,1
    - Dst: Py_NewRef
      Src: /src/cpython/Parser/pegen.c:1056,1
    - Dst: compute_parser_flags
      Src: /src/cpython/Parser/pegen.c:1061,1
    - Dst: _PyPegen_Parser_New
      Src: /src/cpython/Parser/pegen.c:1064,1
    - Dst: _PyPegen_run_parser
      Src: /src/cpython/Parser/pegen.c:1070,1
    - Dst: _PyPegen_Parser_Free
      Src: /src/cpython/Parser/pegen.c:1071,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/pegen.c:1074,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - str
    - start_rule
    - filename_ob
    - flags
    - arena
    argTypes:
    - char*
    - int
    - PyObject*
    - PyCompilerFlags*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1037
    functionDepth: 7
    functionLinenumber: 1037
    functionLinenumberEnd: 1076
    functionName: _PyPegen_run_parser_from_string
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - _PyTokenizer_Free
    - _PyTokenizer_FromUTF8
    - PyErr_Occurred
    - _PyPegen_raise_tokenizer_init_error
    - _PyPegen_Parser_New
    - _PyPegen_run_parser
    - Py_NewRef
    - _PyPegen_Parser_Free
    - _PyTokenizer_FromString
    - compute_parser_flags
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty _PyPegen_run_parser_from_string(const char *str, int start_rule,
      PyObject *filename_ob,\n                       PyCompilerFlags *flags, PyArena
      *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:14,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:15,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:16,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:17,1
    - Dst: PyErr_Fetch
      Src: /src/cpython/Parser/pegen_errors.c:25,1
    - Dst: PyObject_Str
      Src: /src/cpython/Parser/pegen_errors.c:26,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Parser/pegen_errors.c:31,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Parser/pegen_errors.c:36,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:37,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Parser/pegen_errors.c:41,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:44,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:45,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:46,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:47,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - filename
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 49
    functionName: _PyPegen_raise_tokenizer_init_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_BuildValue
    - Py_DECREF
    - PyErr_SetObject
    - PyErr_ExceptionMatches
    - PyErr_Fetch
    - PyTuple_Pack
    linkageType: ''
    returnType: void
    signature: void _PyPegen_raise_tokenizer_init_error(PyObject *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen_errors.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: raise_unclosed_parentheses_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 0
    functionsReached:
    - RAISE_ERROR_KNOWN_LOCATION
    linkageType: ''
    returnType: void
    signature: void raise_unclosed_parentheses_error(Parser *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:64,1
    - Dst: raise_unclosed_parentheses_error
      Src: /src/cpython/Parser/pegen_errors.c:78,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:80,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:84,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:87,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Parser/pegen_errors.c:88,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen_errors.c:92,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/pegen_errors.c:108,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen_errors.c:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 119
    functionName: _Pypegen_tokenizer_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - RAISE_INDENTATION_ERROR
    - RAISE_ERROR_KNOWN_LOCATION
    - PyErr_SetNone
    - raise_unclosed_parentheses_error
    - RAISE_SYNTAX_ERROR
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int _Pypegen_tokenizer_error(Parser *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:124,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:126,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:129,1
    - Dst: PyErr_Fetch
      Src: /src/cpython/Parser/pegen_errors.c:137,1
    - Dst: PyObject_Str
      Src: /src/cpython/Parser/pegen_errors.c:138,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:141,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen_errors.c:144,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:145,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:147,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:148,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/cpython/Parser/pegen_errors.c
    constantsTouched: []
    func_position:
      end: 153
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 153
    functionName: _Pypegen_raise_decode_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - PyErr_Fetch
    - PyErr_Clear
    - RAISE_SYNTAX_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: int _Pypegen_raise_decode_error(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/cpython/Parser/pegen_errors.c:168,1
    - Dst: _PyToken_Init
      Src: /src/cpython/Parser/pegen_errors.c:175,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/pegen_errors.c:178,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:180,1
    - Dst: raise_unclosed_parentheses_error
      Src: /src/cpython/Parser/pegen_errors.c:187,1
    - Dst: _PyToken_Free
      Src: /src/cpython/Parser/pegen_errors.c:203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:207,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:208,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:209,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:210,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Parser/pegen_errors.c:212,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 215
    functionName: _PyPegen_tokenize_full_source_to_check_for_errors
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyToken_Free
    - PyErr_Occurred
    - PyErr_Restore
    - _PyToken_Init
    - raise_unclosed_parentheses_error
    - _PyTokenizer_Get
    - PyErr_Fetch
    linkageType: ''
    returnType: int
    signature: int _PyPegen_tokenize_full_source_to_check_for_errors(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:223,1
    - Dst: va_start
      Src: /src/cpython/Parser/pegen_errors.c:228,1
    - Dst: _PyPegen_raise_error_known_location
      Src: /src/cpython/Parser/pegen_errors.c:229,1
    - Dst: va_end
      Src: /src/cpython/Parser/pegen_errors.c:230,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/pegen_errors.c:233,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Parser/pegen_errors.c:247,1
    - Dst: va_start
      Src: /src/cpython/Parser/pegen_errors.c:258,1
    - Dst: _PyPegen_raise_error_known_location
      Src: /src/cpython/Parser/pegen_errors.c:259,1
    - Dst: va_end
      Src: /src/cpython/Parser/pegen_errors.c:260,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - p
    - errtype
    - use_mark
    - errmsg
    argTypes:
    - Parser*
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 263
    functionName: _PyPegen_raise_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 1
    functionsReached:
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyPegen_raise_error_known_location
    - va_start
    - Py_SAFE_DOWNCAST
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_raise_error(Parser *p, PyObject *errtype, int use_mark, const char
      *errmsg, ...)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:272,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:276,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Parser/pegen_errors.c:279,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen_errors.c:286,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen_errors.c:290,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:294,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen_errors.c:302,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen_errors.c:303,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/pegen_errors.c:305,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - p
    - lineno
    argTypes:
    - Parser*
    - Py_ssize_t
    assertStmts:
    - condition: ((p->tok->fp == NULL && p->tok->str != NULL) || p->tok->fp != NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Parser/pegen_errors.c
    - condition: (p->tok->fp_interactive)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/cpython/Parser/pegen_errors.c
    - condition: (new_line != NULL && new_line + 1 < buf_end)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/cpython/Parser/pegen_errors.c
    constantsTouched: []
    func_position:
      end: 306
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 306
    functionName: get_error_line_from_tokenizer_buffers
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 0
    functionsReached:
    - assert
    - strlen
    - Py_GetConstant
    - PyUnicode_DecodeUTF8
    - strchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_error_line_from_tokenizer_buffers(Parser *p, Py_ssize_t lineno)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:315,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Parser/pegen_errors.c:331,1
    - Dst: get_error_line_from_tokenizer_buffers
      Src: /src/cpython/Parser/pegen_errors.c:337,1
    - Dst: _PyErr_ProgramDecodedTextObject
      Src: /src/cpython/Parser/pegen_errors.c:340,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:352,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/pegen_errors.c:356,1
    - Dst: get_error_line_from_tokenizer_buffers
      Src: /src/cpython/Parser/pegen_errors.c:359,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Parser/pegen_errors.c:362,1
    - Dst: _PyPegen_byte_offset_to_character_offset
      Src: /src/cpython/Parser/pegen_errors.c:372,1
    - Dst: _PyPegen_byte_offset_to_character_offset
      Src: /src/cpython/Parser/pegen_errors.c:378,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Parser/pegen_errors.c:384,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Parser/pegen_errors.c:388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:389,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Parser/pegen_errors.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:396,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:400,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:401,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 8
    argNames:
    - p
    - errtype
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - errmsg
    - va
    argTypes:
    - Parser*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    - va_list
    assertStmts:
    - condition: (p->tok->fp == NULL || p->tok->fp == stdin || p->tok->done == E_EOF)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/cpython/Parser/pegen_errors.c
    constantsTouched: []
    func_position:
      end: 403
      start: 308
    functionDepth: 9
    functionLinenumber: 308
    functionLinenumberEnd: 403
    functionName: _PyPegen_raise_error_known_location
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - _PyErr_ProgramDecodedTextObject
    - PyErr_Occurred
    - Py_GetConstant
    - get_error_line_from_tokenizer_buffers
    - _PyPegen_byte_offset_to_character_offset
    - PyErr_SetObject
    - PyUnicode_DecodeUTF8
    - PyUnicode_FromFormatV
    - PyTuple_Pack
    - assert
    linkageType: ''
    returnType: void
    signature: "void *\n_PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,\n
      \                                   Py_ssize_t lineno, Py_ssize_t col_offset,\n
      \                                   Py_ssize_t end_lineno, Py_ssize_t end_col_offset,\n
      \                                   const char *errmsg, va_list va)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:408,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:412,1
    - Dst: _PyPegen_tokenize_full_source_to_check_for_errors
      Src: /src/cpython/Parser/pegen_errors.c:413,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:420,1
    - Dst: raise_unclosed_parentheses_error
      Src: /src/cpython/Parser/pegen_errors.c:425,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:427,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:433,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen_errors.c:442,1
    - Dst: _PyPegen_tokenize_full_source_to_check_for_errors
      Src: /src/cpython/Parser/pegen_errors.c:445,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - p
    - last_token
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 446
    functionName: _Pypegen_set_syntax_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _PyPegen_tokenize_full_source_to_check_for_errors
    - RAISE_INDENTATION_ERROR
    - PyErr_ExceptionMatches
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - raise_unclosed_parentheses_error
    - RAISE_SYNTAX_ERROR
    linkageType: ''
    returnType: void
    signature: void _Pypegen_set_syntax_error(Parser* p, Token* last_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/pegen_errors.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 454
    functionName: _Pypegen_stack_overflow
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 455
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void _Pypegen_stack_overflow(Parser *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Parser/peg_api.c:9,1
    - Dst: _PyPegen_run_parser_from_string
      Src: /src/cpython/Parser/peg_api.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - str
    - filename
    - mode
    - flags
    - arena
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 5
    functionDepth: 8
    functionLinenumber: 5
    functionLinenumberEnd: 15
    functionName: _PyParser_ASTFromString
    functionSourceFile: /src/cpython/Parser/peg_api.c
    functionUses: 0
    functionsReached:
    - _PyPegen_run_parser_from_string
    - PySys_Audit
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty _PyParser_ASTFromString(const char *str, PyObject* filename,
      int mode,\n                        PyCompilerFlags *flags, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Parser/peg_api.c:22,1
    - Dst: _PyPegen_run_parser_from_file_pointer
      Src: /src/cpython/Parser/peg_api.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - fp
    - filename_ob
    - enc
    - mode
    - ps1
    - ps2
    - flags
    - errcode
    - arena
    argTypes:
    - FILE*
    - PyObject*
    - char*
    - int
    - char*
    - char*
    - PyCompilerFlags*
    - int*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 8
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: _PyParser_ASTFromFile
    functionSourceFile: /src/cpython/Parser/peg_api.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - _PyPegen_run_parser_from_file_pointer
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty _PyParser_ASTFromFile(FILE *fp, PyObject *filename_ob, const
      char *enc,\n                      int mode, const char *ps1, const char* ps2,\n
      \                     PyCompilerFlags *flags, int *errcode, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Parser/peg_api.c:35,1
    - Dst: _PyPegen_run_parser_from_file_pointer
      Src: /src/cpython/Parser/peg_api.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 10
    argNames:
    - fp
    - filename_ob
    - enc
    - mode
    - ps1
    - ps2
    - flags
    - errcode
    - interactive_src
    - arena
    argTypes:
    - FILE*
    - PyObject*
    - char*
    - int
    - char*
    - char*
    - PyCompilerFlags*
    - int*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: _PyParser_InteractiveASTFromFile
    functionSourceFile: /src/cpython/Parser/peg_api.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - _PyPegen_run_parser_from_file_pointer
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty _PyParser_InteractiveASTFromFile(FILE *fp, PyObject *filename_ob,
      const char *enc,\n                                 int mode, const char *ps1,
      const char* ps2,\n                                 PyCompilerFlags *flags, int
      *errcode,\n                                 PyObject **interactive_src, PyArena
      *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:9,1
    - Dst: strchr
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:14,1
    - Dst: ADVANCE_LINENO
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 27
    functionName: tok_underflow_string
    functionSourceFile: /src/cpython/Parser/tokenizer/utf8_tokenizer.c
    functionUses: 0
    functionsReached:
    - ADVANCE_LINENO
    - strchr
    linkageType: ''
    returnType: int
    signature: int tok_underflow_string(struct tok_state *tok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_tok_new
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:33,1
    - Dst: _PyTokenizer_translate_newlines
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:37,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:39,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:45,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/utf8_tokenizer.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - str
    - exec_input
    - preserve_crlf
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 55
    functionName: _PyTokenizer_FromUTF8
    functionSourceFile: /src/cpython/Parser/tokenizer/utf8_tokenizer.c
    functionUses: 1
    functionsReached:
    - _PyTokenizer_translate_newlines
    - _PyTokenizer_Free
    - _PyTokenizer_tok_new
    - _PyTokenizer_new_string
    linkageType: ''
    returnType: struct tok_state
    signature: 'struct tok_state *

      _PyTokenizer_FromUTF8(const char *str, int exec_input, int preserve_crlf)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:20,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:27,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:34,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:37,1
    - Dst: strcpy
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - tok
    - line
    argTypes:
    - struct tok_state*
    - char*
    assertStmts:
    - condition: (tok->fp_interactive)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/cpython/Parser/tokenizer/file_tokenizer.c
    constantsTouched: []
    func_position:
      end: 55
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 55
    functionName: tok_concatenate_interactive_new_line
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - strlen
    - PyMem_Free
    - strcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int tok_concatenate_interactive_new_line(struct tok_state *tok, const
      char *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLexer_tok_reserve_buf
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:61,1
    - Dst: _Py_UniversalNewlineFgetsWithSize
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:66,1
    - Dst: tok_concatenate_interactive_new_line
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: tok_readline_raw
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - _PyLexer_tok_reserve_buf
    - tok_concatenate_interactive_new_line
    - _Py_UniversalNewlineFgetsWithSize
    linkageType: ''
    returnType: int
    signature: int tok_readline_raw(struct tok_state *tok)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:89,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:91,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:98,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:100,1
    - Dst: _PyLexer_tok_reserve_buf
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:107,1
    - Dst: memcpy
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:110,1
    - Dst: tok_concatenate_interactive_new_line
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:117,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 122
    functionName: tok_readline_recode
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - _PyTokenizer_error_ret
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - _PyLexer_tok_reserve_buf
    - memcpy
    - tok_concatenate_interactive_new_line
    linkageType: ''
    returnType: int
    signature: int tok_readline_recode(struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getc
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: fp_getc
    functionSourceFile: /src/cpython/Parser/tokenizer/file_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/cpython/Parser/tokenizer/file_tokenizer.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - tok
    argTypes:
    - int
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: fp_ungetc
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - ungetc
    linkageType: ''
    returnType: void
    signature: void fp_ungetc(int c, struct tok_state *tok)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:150,1
    - Dst: ftell
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:156,1
    - Dst: lseek
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:158,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:159,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:163,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:169,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:174,1
    - Dst: _Py_ID
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:175,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:179,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - tok
    - enc
    argTypes:
    - struct tok_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 190
    functionName: fp_setreadl
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - lseek
    - _PyObject_CallNoArgs
    - PyImport_ImportModuleAttrString
    - PyObject_CallFunction
    - Py_DECREF
    - ftell
    - _Py_ID
    - PyErr_SetFromErrnoWithFilename
    - PyObject_GetAttr
    - Py_XSETREF
    - fileno
    linkageType: ''
    returnType: int
    signature: int fp_setreadl(struct tok_state *tok, const char* enc)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_Readline
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:198,1
    - Dst: _PyTokenizer_translate_newlines
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:200,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:201,1
    - Dst: _PyTokenizer_translate_into_utf8
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:211,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:212,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:217,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:218,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:221,1
    - Dst: strcpy
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:226,1
    - Dst: tok_concatenate_interactive_new_line
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:229,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:230,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:240,1
    - Dst: _PyLexer_remember_fstring_buffers
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:245,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:246,1
    - Dst: ADVANCE_LINENO
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:247,1
    - Dst: _PyLexer_tok_reserve_buf
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:248,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:249,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:251,1
    - Dst: memcpy
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:254,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:255,1
    - Dst: _PyLexer_restore_fstring_buffers
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:258,1
    - Dst: _PyLexer_remember_fstring_buffers
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:261,1
    - Dst: ADVANCE_LINENO
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:262,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:263,1
    - Dst: strchr
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:267,1
    - Dst: _PyLexer_restore_fstring_buffers
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:269,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:273,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:278,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 282
    functionName: tok_underflow_interactive
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - strlen
    - _PyLexer_update_ftstring_expr
    - PyBytes_GET_SIZE
    - tok_concatenate_interactive_new_line
    - ADVANCE_LINENO
    - PyMem_Free
    - strchr
    - _PyTokenizer_translate_newlines
    - _PyLexer_remember_fstring_buffers
    - _PyLexer_tok_reserve_buf
    - Py_DECREF
    - _PyTokenizer_translate_into_utf8
    - PySys_WriteStderr
    - memcpy
    - PyBytes_AS_STRING
    - PyMem_Malloc
    - _PyLexer_restore_fstring_buffers
    - PyOS_Readline
    - strcpy
    linkageType: ''
    returnType: int
    signature: int tok_underflow_interactive(struct tok_state *tok)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:286,1
    - Dst: _PyTokenizer_check_bom
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:293,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:294,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:297,1
    - Dst: tok_readline_recode
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:302,1
    - Dst: tok_readline_raw
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:308,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:318,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:325,1
    - Dst: ADVANCE_LINENO
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:329,1
    - Dst: _PyTokenizer_check_coding_spec
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:334,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:334,1
    - Dst: _PyTokenizer_ensure_utf8
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:342,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:343,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:346,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts:
    - condition: (tok->decoding_state != STATE_INIT)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/cpython/Parser/tokenizer/file_tokenizer.c
    - condition: (tok->inp + 1 < tok->end)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/cpython/Parser/tokenizer/file_tokenizer.c
    - condition: (tok->done == E_OK)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/cpython/Parser/tokenizer/file_tokenizer.c
    constantsTouched: []
    func_position:
      end: 348
      start: 284
    functionDepth: 6
    functionLinenumber: 284
    functionLinenumberEnd: 348
    functionName: tok_underflow_file
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - _PyTokenizer_check_coding_spec
    - _PyTokenizer_error_ret
    - tok_readline_raw
    - strlen
    - _PyLexer_update_ftstring_expr
    - tok_readline_recode
    - INSIDE_FSTRING
    - _PyTokenizer_check_bom
    - _PyTokenizer_ensure_utf8
    - ADVANCE_LINENO
    - assert
    linkageType: ''
    returnType: int
    signature: int tok_underflow_file(struct tok_state *tok)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_tok_new
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:355,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:358,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:359,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:375,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:375,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:377,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - fp
    - enc
    - ps1
    - ps2
    argTypes:
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 383
    functionName: _PyTokenizer_FromFile
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 1
    functionsReached:
    - strlen
    - _PyTokenizer_new_string
    - _PyTokenizer_Free
    - _PyTokenizer_tok_new
    - PyMem_Malloc
    linkageType: ''
    returnType: struct tok_state
    signature: "struct tok_state *\n_PyTokenizer_FromFile(FILE *fp, const char* enc,\n
      \                     const char *ps1, const char *ps2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cookie
    - buf
    - size
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 398
    functionName: borrow_read
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t borrow_read(void *cookie, char *buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopencookie
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: fdopen_borrow
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - fopencookie
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      fdopen_borrow(int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dup
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:410,1
    - Dst: fdopen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: fdopen_borrow
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - fdopen
    - _Py_dup
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      fdopen_borrow(int fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdopen_borrow
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:434,1
    - Dst: _PyTokenizer_FromFile
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:438,1
    - Dst: fclose
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:440,1
    - Dst: Py_NewRef
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:444,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:447,1
    - Dst: fclose
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:449,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:450,1
    - Dst: _PyToken_Init
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:459,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:460,1
    - Dst: _PyToken_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:461,1
    - Dst: fclose
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:463,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:465,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:465,1
    - Dst: strcpy
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:467,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - fd
    - filename
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 472
    functionName: _PyTokenizer_FindEncodingFilename
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - _PyToken_Free
    - PyMem_Malloc
    - strlen
    - fdopen_borrow
    - strcpy
    - _PyTokenizer_FromFile
    - Py_NewRef
    - _PyToken_Init
    - _PyTokenizer_Get
    - _PyTokenizer_Free
    - PyUnicode_FromString
    - fclose
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyTokenizer_FindEncodingFilename(int fd, PyObject *filename)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:9,1
    - Dst: strchr
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:14,1
    - Dst: ADVANCE_LINENO
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 27
    functionName: tok_underflow_string
    functionSourceFile: /src/cpython/Parser/tokenizer/string_tokenizer.c
    functionUses: 0
    functionsReached:
    - ADVANCE_LINENO
    - strchr
    linkageType: ''
    returnType: int
    signature: int tok_underflow_string(struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: buf_getc
    functionSourceFile: /src/cpython/Parser/tokenizer/string_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/cpython/Parser/tokenizer/string_tokenizer.c:39,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:39,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: 38
        line_start: 38
        source_file: /src/cpython/Parser/tokenizer/string_tokenizer.c
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: buf_ungetc
    functionSourceFile: /src/cpython/Parser/tokenizer/string_tokenizer.c
    functionUses: 0
    functionsReached:
    - Py_CHARMASK
    - assert
    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: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: buf_setreadl
    functionSourceFile: /src/cpython/Parser/tokenizer/string_tokenizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int buf_setreadl(struct tok_state *tok, const char* enc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_translate_newlines
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:61,1
    - Dst: _PyTokenizer_check_bom
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:66,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:67,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:69,1
    - Dst: _PyTokenizer_translate_into_utf8
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:71,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:73,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:74,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:79,1
    - Dst: _PyTokenizer_check_coding_spec
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:89,1
    - Dst: _PyTokenizer_check_coding_spec
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:93,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:99,1
    - Dst: _PyTokenizer_translate_into_utf8
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:100,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:102,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:103,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:105,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 4
    argNames:
    - input
    - single
    - tok
    - preserve_crlf
    argTypes:
    - char*
    - int
    - struct tok_state*
    - int
    assertStmts:
    - condition: (str)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Parser/tokenizer/string_tokenizer.c
    - condition: (lineno < 2)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/cpython/Parser/tokenizer/string_tokenizer.c
    - condition: (tok->decoding_buffer == NULL)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Parser/tokenizer/string_tokenizer.c
    - condition: (utf8 == NULL)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Parser/tokenizer/string_tokenizer.c
    constantsTouched: []
    func_position:
      end: 108
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 108
    functionName: decode_str
    functionSourceFile: /src/cpython/Parser/tokenizer/string_tokenizer.c
    functionUses: 0
    functionsReached:
    - _PyTokenizer_translate_newlines
    - _PyTokenizer_check_coding_spec
    - _PyTokenizer_error_ret
    - _PyTokenizer_translate_into_utf8
    - PyBytes_AsString
    - _PyTokenizer_check_bom
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      decode_str(const char *input, int single, struct tok_state *tok, int preserve_crlf)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_tok_new
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:114,1
    - Dst: decode_str
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:119,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - str
    - exec_input
    - preserve_crlf
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: _PyTokenizer_FromString
    functionSourceFile: /src/cpython/Parser/tokenizer/string_tokenizer.c
    functionUses: 1
    functionsReached:
    - _PyTokenizer_Free
    - _PyTokenizer_tok_new
    - decode_str
    linkageType: ''
    returnType: struct tok_state
    signature: 'struct tok_state *

      _PyTokenizer_FromString(const char *str, int exec_input, int preserve_crlf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: ADVANCE_LINENO
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADVANCE_LINENO()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/helpers.c:17,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Parser/tokenizer/helpers.c:22,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/tokenizer/helpers.c:27,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/tokenizer/helpers.c:34,1
    - Dst: strcspn
      Src: /src/cpython/Parser/tokenizer/helpers.c:40,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:42,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/tokenizer/helpers.c:43,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Parser/tokenizer/helpers.c:50,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Parser/tokenizer/helpers.c:53,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:54,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:58,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - tok
    - format
    - col_offset
    - end_col_offset
    - vargs
    argTypes:
    - struct tok_state*
    - char*
    - int
    - int
    - va_list
    assertStmts:
    - condition: (tok->done != E_ERROR)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/cpython/Parser/tokenizer/helpers.c
    constantsTouched: []
    func_position:
      end: 61
      start: 10
    functionDepth: 9
    functionLinenumber: 10
    functionLinenumberEnd: 61
    functionName: _syntaxerror_range
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - PyErr_SetObject
    - PyUnicode_DecodeUTF8
    - strcspn
    - PyUnicode_FromFormatV
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: "int _syntaxerror_range(struct tok_state *tok, const char *format,\n
      \                  int col_offset, int end_col_offset,\n                   va_list
      vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Parser/tokenizer/helpers.c:68,1
    - Dst: _syntaxerror_range
      Src: /src/cpython/Parser/tokenizer/helpers.c:69,1
    - Dst: va_end
      Src: /src/cpython/Parser/tokenizer/helpers.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tok
    - format
    argTypes:
    - struct tok_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 10
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: _PyTokenizer_syntaxerror
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - va_start
    - _syntaxerror_range
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyTokenizer_syntaxerror(struct tok_state *tok, const char *format,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Parser/tokenizer/helpers.c:80,1
    - Dst: _syntaxerror_range
      Src: /src/cpython/Parser/tokenizer/helpers.c:81,1
    - Dst: va_end
      Src: /src/cpython/Parser/tokenizer/helpers.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - tok
    - col_offset
    - end_col_offset
    - format
    argTypes:
    - struct tok_state*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 10
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: _PyTokenizer_syntaxerror_known_range
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - va_start
    - _syntaxerror_range
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyTokenizer_syntaxerror_known_range(struct tok_state *tok,\n
      \                       int col_offset, int end_col_offset,\n                        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: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: _PyTokenizer_indenterror
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyTokenizer_indenterror(struct tok_state *tok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: _PyTokenizer_error_ret
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 3
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyTokenizer_error_ret(struct tok_state *tok)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Parser/tokenizer/helpers.c:115,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Parser/tokenizer/helpers.c:127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:129,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/tokenizer/helpers.c:131,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/tokenizer/helpers.c:134,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/tokenizer/helpers.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - tok
    - first_invalid_escape_char
    argTypes:
    - struct tok_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 108
    functionDepth: 11
    functionLinenumber: 108
    functionLinenumberEnd: 148
    functionName: _PyTokenizer_warn_invalid_escape_sequence
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_WarnExplicitObject
    - PyUnicode_FromFormat
    - _PyTokenizer_syntaxerror
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _PyTokenizer_warn_invalid_escape_sequence(struct tok_state *tok,
      int first_invalid_escape_char)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Parser/tokenizer/helpers.c:159,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Parser/tokenizer/helpers.c:160,1
    - Dst: va_end
      Src: /src/cpython/Parser/tokenizer/helpers.c:161,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Parser/tokenizer/helpers.c:166,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/tokenizer/helpers.c:168,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/tokenizer/helpers.c:171,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/tokenizer/helpers.c:172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:176,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - tok
    - category
    - format
    argTypes:
    - struct tok_state*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 11
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: _PyTokenizer_parser_warn
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_WarnExplicitObject
    - _PyTokenizer_syntaxerror
    - PyErr_ExceptionMatches
    - va_start
    - PyUnicode_FromFormatV
    - PyErr_Clear
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyTokenizer_parser_warn(struct tok_state *tok, PyObject *category,
      const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/helpers.c:191,1
    - Dst: memcpy
      Src: /src/cpython/Parser/tokenizer/helpers.c:196,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: 199
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: _PyTokenizer_new_string
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - memcpy
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyTokenizer_new_string(const char *s, Py_ssize_t len, struct tok_state *tok)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Parser/tokenizer/helpers.c:204,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/helpers.c:204,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Parser/tokenizer/helpers.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - enc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 10
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: _PyTokenizer_translate_into_utf8
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - PyUnicode_Decode
    - Py_DECREF
    - strlen
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTokenizer_translate_into_utf8(const char* str, const char* enc)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/helpers.c:216,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/helpers.c:219,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/tokenizer/helpers.c:250,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:252,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - s
    - exec_input
    - preserve_crlf
    - tok
    argTypes:
    - char*
    - int
    - int
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 257
    functionName: _PyTokenizer_translate_newlines
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 3
    functionsReached:
    - PyMem_Realloc
    - PyMem_Free
    - strlen
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: "char *\n_PyTokenizer_translate_newlines(const char *s, int exec_input,
      int preserve_crlf,\n                   struct tok_state *tok)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:272,1
    - Dst: get_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:277,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:279,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:280,1
    - Dst: get_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:283,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:285,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:286,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:287,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:291,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:295,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/helpers.c:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - get_char
    - unget_char
    - set_readline
    - tok
    argTypes:
    - int
    - void
    - int
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 301
    functionName: _PyTokenizer_check_bom
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - _PyTokenizer_new_string
    - unget_char
    - PyMem_Free
    - get_char
    linkageType: ''
    returnType: int
    signature: "int _PyTokenizer_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: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/tokenizer/helpers.c:315,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:318,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:319,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:321,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:322,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:323,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:324,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:325,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:326,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 330
    functionName: get_normal_name
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    - strcmp
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      get_normal_name(const char *s)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:348,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Parser/tokenizer/helpers.c:358,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/helpers.c:363,1
    - Dst: get_normal_name
      Src: /src/cpython/Parser/tokenizer/helpers.c:367,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:369,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/helpers.c:370,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/helpers.c:370,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: 380
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 380
    functionName: get_coding_spec
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - Py_ISALNUM
    - strlen
    - get_normal_name
    - memcmp
    - _PyTokenizer_new_string
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int get_coding_spec(const char *s, char **spec, Py_ssize_t size, struct
      tok_state *tok)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_coding_spec
      Src: /src/cpython/Parser/tokenizer/helpers.c:396,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/helpers.c:415,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:416,1
    - Dst: set_readline
      Src: /src/cpython/Parser/tokenizer/helpers.c:416,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/helpers.c:417,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/tokenizer/helpers.c:418,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:419,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:424,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/helpers.c:425,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/tokenizer/helpers.c:426,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:428,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:431,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - line
    - size
    - tok
    - set_readline
    argTypes:
    - char*
    - Py_ssize_t
    - struct tok_state*
    - int
    assertStmts:
    - condition: (tok->decoding_readline == NULL)
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/cpython/Parser/tokenizer/helpers.c
    constantsTouched: []
    func_position:
      end: 434
      start: 386
    functionDepth: 4
    functionLinenumber: 386
    functionLinenumberEnd: 434
    functionName: _PyTokenizer_check_coding_spec
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - _PyTokenizer_error_ret
    - set_readline
    - strcmp
    - PyErr_Format
    - get_coding_spec
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyTokenizer_check_coding_spec(const char* line, Py_ssize_t size,
      struct tok_state *tok,\n                  int set_readline(struct tok_state
      *, const char *))"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 496
    functionName: valid_utf8
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int valid_utf8(const unsigned char* s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_utf8
      Src: /src/cpython/Parser/tokenizer/helpers.c:505,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/tokenizer/helpers.c:511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - line
    - tok
    argTypes:
    - char*
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 520
    functionName: _PyTokenizer_ensure_utf8
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 1
    functionsReached:
    - valid_utf8
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PyTokenizer_ensure_utf8(char *line, struct tok_state *tok)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:530,1
    - Dst: putc
      Src: /src/cpython/Parser/tokenizer/helpers.c:533,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:537,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:538,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:539,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:540,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:541,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:542,1
    - Dst: putc
      Src: /src/cpython/Parser/tokenizer/helpers.c:545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/tokenizer/helpers.c:547,1
    - Dst: putc
      Src: /src/cpython/Parser/tokenizer/helpers.c:550,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - f
    - s
    - size
    argTypes:
    - FILE*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 551
    functionName: _PyTokenizer_print_escape
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - fputs
    - putc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _PyTokenizer_print_escape(FILE *f, const char *s, Py_ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Parser/tokenizer/helpers.c:556,1
    - Dst: fprintf
      Src: /src/cpython/Parser/tokenizer/helpers.c:558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - type
    - start
    - end
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: _PyTokenizer_tok_dump
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _PyTokenizer_tok_dump(int type, char *start, char *end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:12,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:14,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:15,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:18,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:22,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:23,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:24,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:27,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:27,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:27,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:29,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:31,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:35,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:36,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:37,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:44,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:46,1
    - Dst: _PyLexer_tok_reserve_buf
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:54,1
    - Dst: memcpy
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:62,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:65,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:66,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 9
    functionDepth: 5
    functionLinenumber: 9
    functionLinenumberEnd: 68
    functionName: tok_readline_string
    functionSourceFile: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallNoArgs
    - _PyTokenizer_error_ret
    - Py_CLEAR
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - memcpy
    - PyUnicode_Decode
    - PyBytes_Check
    - PyErr_ExceptionMatches
    - _PyLexer_tok_reserve_buf
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int tok_readline_string(struct tok_state* tok)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:72,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:73,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:74,1
    - Dst: tok_readline_string
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:77,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:86,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:93,1
    - Dst: ADVANCE_LINENO
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:97,1
    - Dst: _PyTokenizer_ensure_utf8
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:100,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:101,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts:
    - condition: (tok->decoding_state == STATE_NORMAL)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    - condition: (tok->fp == NULL && tok->input == NULL && tok->decoding_readline
        == NULL)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    - condition: (tok->inp + 1 < tok->end)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    - condition: (tok->done == E_OK)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    constantsTouched: []
    func_position:
      end: 106
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 106
    functionName: tok_underflow_readline
    functionSourceFile: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    functionUses: 0
    functionsReached:
    - _PyTokenizer_error_ret
    - tok_readline_string
    - _PyLexer_update_ftstring_expr
    - INSIDE_FSTRING
    - _PyTokenizer_ensure_utf8
    - ADVANCE_LINENO
    - assert
    linkageType: ''
    returnType: int
    signature: int tok_underflow_readline(struct tok_state* tok)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_tok_new
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:112,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:115,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:116,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:123,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:123,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:125,1
    - Dst: Py_INCREF
      Src: /src/cpython/Parser/tokenizer/readline_tokenizer.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - readline
    - enc
    - exec_input
    - preserve_crlf
    argTypes:
    - PyObject*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 134
    functionName: _PyTokenizer_FromReadline
    functionSourceFile: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - strlen
    - _PyTokenizer_new_string
    - _PyTokenizer_Free
    - _PyTokenizer_tok_new
    - PyMem_Malloc
    linkageType: ''
    returnType: struct tok_state
    signature: "struct tok_state *\n_PyTokenizer_FromReadline(PyObject* readline,
      const char* enc,\n                          int exec_input, int preserve_crlf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Parser/lexer/state.c:15,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Parser/lexer/state.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 63
    functionName: _PyTokenizer_tok_new
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 4
    functionsReached:
    - PyMem_Calloc
    - _Py_GetConfig
    linkageType: ''
    returnType: struct tok_state
    signature: 'struct tok_state *

      _PyTokenizer_tok_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: free_fstring_expressions
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_fstring_expressions(struct tok_state *tok)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:88,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/lexer/state.c:90,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/lexer/state.c:91,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/lexer/state.c:92,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/lexer/state.c:93,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:95,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:98,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:101,1
    - Dst: free_fstring_expressions
      Src: /src/cpython/Parser/lexer/state.c:103,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: _PyTokenizer_Free
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 7
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    - free_fstring_expressions
    linkageType: ''
    returnType: void
    signature: void _PyTokenizer_Free(struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/lexer/state.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - struct token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: _PyToken_Free
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _PyToken_Free(struct token *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - struct token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: _PyToken_Init
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyToken_Init(struct token *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - tok
    - token
    - type
    - col_offset
    - end_col_offset
    - start
    - end
    argTypes:
    - struct tok_state*
    - struct token*
    - int
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: _PyLexer_type_comment_token_setup
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _PyLexer_type_comment_token_setup(struct tok_state *tok, struct
      token *token, int type, int col_offset,\n                         int end_col_offset,
      const char *start, const char *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/lexer/state.c:133,1
    - Dst: ISSTRINGLIT
      Src: /src/cpython/Parser/lexer/state.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - tok
    - token
    - type
    - start
    - end
    argTypes:
    - struct tok_state*
    - struct token*
    - int
    - char*
    - char*
    assertStmts:
    - condition: ((start == NULL && end == NULL) || (start != NULL && end != NULL))
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Parser/lexer/state.c
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: _PyLexer_token_setup
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 0
    functionsReached:
    - ISSTRINGLIT
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyLexer_token_setup(struct tok_state *tok, struct token *token,
      int type, const char *start, const char *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 19
    functionName: _PyLexer_remember_fstring_buffers
    functionSourceFile: /src/cpython/Parser/lexer/buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyLexer_remember_fstring_buffers(struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: _PyLexer_restore_fstring_buffers
    functionSourceFile: /src/cpython/Parser/lexer/buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyLexer_restore_fstring_buffers(struct tok_state *tok)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Parser/lexer/buffer.c:54,1
    - Dst: _PyLexer_remember_fstring_buffers
      Src: /src/cpython/Parser/lexer/buffer.c:60,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/lexer/buffer.c:61,1
    - Dst: _PyLexer_restore_fstring_buffers
      Src: /src/cpython/Parser/lexer/buffer.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - tok
    - size
    argTypes:
    - struct tok_state*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 76
    functionName: _PyLexer_tok_reserve_buf
    functionSourceFile: /src/cpython/Parser/lexer/buffer.c
    functionUses: 4
    functionsReached:
    - PyMem_Realloc
    - Py_MAX
    - _PyLexer_restore_fstring_buffers
    - _PyLexer_remember_fstring_buffers
    linkageType: ''
    returnType: int
    signature: int _PyLexer_tok_reserve_buf(struct tok_state *tok, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: INSIDE_FSTRING
    functionSourceFile: /src/cpython/Parser/lexer/state.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSIDE_FSTRING(tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: INSIDE_FSTRING_EXPR
    functionSourceFile: /src/cpython/Parser/lexer/state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSIDE_FSTRING_EXPR(tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: is_potential_identifier_start
    functionSourceFile: /src/cpython/Parser/lexer/lexer.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: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: is_potential_identifier_char
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_potential_identifier_char(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:27,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts:
    - condition: (tok->tok_mode_stack_index >= 0)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/cpython/Parser/lexer/lexer.c
    - condition: (tok->tok_mode_stack_index < MAXFSTRINGLEVEL)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: TOK_GET_MODE
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: tokenizer_mode
    signature: tokenizer_mode * TOK_GET_MODE(struct tok_state* tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:32,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts:
    - condition: (tok->tok_mode_stack_index >= 0)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Parser/lexer/lexer.c
    - condition: (tok->tok_mode_stack_index + 1 < MAXFSTRINGLEVEL)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: TOK_NEXT_MODE
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: tokenizer_mode
    signature: tokenizer_mode * TOK_NEXT_MODE(struct tok_state* tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: TOK_GET_MODE
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOK_GET_MODE(tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: TOK_NEXT_MODE
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOK_NEXT_MODE(tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok_mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FTSTRING_MIDDLE
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTSTRING_MIDDLE(tok_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok_mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: FTSTRING_END
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTSTRING_END(tok_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: TOK_GET_STRING_PREFIX
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOK_GET_STRING_PREFIX(tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - token_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MAKE_TOKEN
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_TOKEN(token_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - token_type
    - ','
    - col_offset
    - ','
    - end_col_offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: MAKE_TYPE_COMMENT_TOKEN
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_TYPE_COMMENT_TOKEN(token_type, col_offset, end_col_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Parser/lexer/lexer.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: contains_null_bytes
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: int contains_null_bytes(const char* str, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/cpython/Parser/lexer/lexer.c:70,1
    - Dst: struct tok_state*::underflow
      Src: /src/cpython/Parser/lexer/lexer.c:75,1
    - Dst: fprintf
      Src: /src/cpython/Parser/lexer/lexer.c:78,1
    - Dst: _PyTokenizer_print_escape
      Src: /src/cpython/Parser/lexer/lexer.c:79,1
    - Dst: fprintf
      Src: /src/cpython/Parser/lexer/lexer.c:80,1
    - Dst: contains_null_bytes
      Src: /src/cpython/Parser/lexer/lexer.c:89,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:90,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Parser/lexer/lexer.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 59
    functionDepth: 11
    functionLinenumber: 59
    functionLinenumberEnd: 96
    functionName: tok_nextc
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - Py_CHARMASK
    - _PyTokenizer_print_escape
    - struct tok_state*::underflow
    - contains_null_bytes
    - fprintf
    - _PyTokenizer_syntaxerror
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int tok_nextc(struct tok_state *tok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Parser/lexer/lexer.c:104,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Parser/lexer/lexer.c:106,1
    - Dst: Py_FatalError
      Src: /src/cpython/Parser/lexer/lexer.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tok
    - c
    argTypes:
    - struct tok_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: tok_backup
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - Py_CHARMASK
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void tok_backup(struct tok_state *tok, int c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:115,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:116,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:117,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/lexer/lexer.c:166,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/lexer/lexer.c:209,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/lexer.c:210,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/lexer/lexer.c:212,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 3
    argNames:
    - tok
    - token
    - c
    argTypes:
    - struct tok_state*
    - struct token*
    - char
    assertStmts:
    - condition: (token != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Parser/lexer/lexer.c
    - condition: (c == '}' || c == ':' || c == '!')
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 224
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 224
    functionName: set_ftstring_expr
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - TOK_GET_MODE
    - PyUnicode_DecodeUTF8
    - PyMem_Free
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int set_ftstring_expr(struct tok_state* tok, struct token *token, char
      c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:229,1
    - Dst: strlen
      Src: /src/cpython/Parser/lexer/lexer.c:231,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:232,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/lexer/lexer.c:239,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/lexer.c:244,1
    - Dst: strncpy
      Src: /src/cpython/Parser/lexer/lexer.c:248,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/lexer.c:253,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/lexer/lexer.c:255,1
    - Dst: strncpy
      Src: /src/cpython/Parser/lexer/lexer.c:261,1
    - Dst: strlen
      Src: /src/cpython/Parser/lexer/lexer.c:265,1
    - Dst: strlen
      Src: /src/cpython/Parser/lexer/lexer.c:269,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Parser/lexer/lexer.c:273,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - tok
    - cur
    argTypes:
    - struct tok_state*
    - char
    assertStmts:
    - condition: (tok->cur != NULL)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 279
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 279
    functionName: _PyLexer_update_ftstring_expr
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 3
    functionsReached:
    - PyMem_Realloc
    - Py_UNREACHABLE
    - strncpy
    - strlen
    - TOK_GET_MODE
    - PyMem_Free
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int _PyLexer_update_ftstring_expr(struct tok_state *tok, char cur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:287,1
    - Dst: is_potential_identifier_char
      Src: /src/cpython/Parser/lexer/lexer.c:289,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:296,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - tok
    - test
    argTypes:
    - struct tok_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 281
    functionDepth: 12
    functionLinenumber: 281
    functionLinenumberEnd: 302
    functionName: lookahead
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 30
    functionsReached:
    - is_potential_identifier_char
    - tok_backup
    - tok_nextc
    linkageType: ''
    returnType: int
    signature: int lookahead(struct tok_state *tok, const char *test)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lookahead
      Src: /src/cpython/Parser/lexer/lexer.c:323,1
    - Dst: lookahead
      Src: /src/cpython/Parser/lexer/lexer.c:326,1
    - Dst: lookahead
      Src: /src/cpython/Parser/lexer/lexer.c:329,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:332,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:336,1
    - Dst: lookahead
      Src: /src/cpython/Parser/lexer/lexer.c:339,1
    - Dst: lookahead
      Src: /src/cpython/Parser/lexer/lexer.c:342,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:345,1
    - Dst: _PyTokenizer_parser_warn
      Src: /src/cpython/Parser/lexer/lexer.c:346,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:351,1
    - Dst: is_potential_identifier_char
      Src: /src/cpython/Parser/lexer/lexer.c:354,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:355,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:356,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - tok
    - c
    - kind
    argTypes:
    - struct tok_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 304
    functionDepth: 13
    functionLinenumber: 304
    functionLinenumberEnd: 360
    functionName: verify_end_of_number
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - is_potential_identifier_char
    - tok_backup
    - _PyTokenizer_parser_warn
    - tok_nextc
    - _PyTokenizer_syntaxerror
    - lookahead
    linkageType: ''
    returnType: int
    signature: int verify_end_of_number(struct tok_state *tok, int c, const char *kind)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/lexer/lexer.c:372,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/lexer/lexer.c:374,1
    - Dst: _PyUnicode_ScanIdentifier
      Src: /src/cpython/Parser/lexer/lexer.c:382,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:383,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:384,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/lexer/lexer.c:384,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/lexer/lexer.c:385,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Parser/lexer/lexer.c:386,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/lexer/lexer.c:387,1
    - Dst: Py_SETREF
      Src: /src/cpython/Parser/lexer/lexer.c:389,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Parser/lexer/lexer.c:389,1
    - Dst: Py_SETREF
      Src: /src/cpython/Parser/lexer/lexer.c:391,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Parser/lexer/lexer.c:391,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Parser/lexer/lexer.c:397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/lexer/lexer.c:399,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Parser/lexer/lexer.c:400,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:401,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:404,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/lexer/lexer.c:408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts:
    - condition: (invalid >= 0)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/cpython/Parser/lexer/lexer.c
    - condition: (PyUnicode_GET_LENGTH(s) > 0)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 410
      start: 363
    functionDepth: 11
    functionLinenumber: 363
    functionLinenumberEnd: 410
    functionName: verify_identifier
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISPRINTABLE
    - Py_DECREF
    - _PyUnicode_ScanIdentifier
    - _PyTokenizer_syntaxerror
    - PyUnicode_DecodeUTF8
    - PyErr_ExceptionMatches
    - Py_SETREF
    - PyBytes_GET_SIZE
    - PyUnicode_READ_CHAR
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: int
    signature: int verify_identifier(struct tok_state *tok)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:419,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:420,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:424,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:425,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:426,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 412
    functionDepth: 12
    functionLinenumber: 412
    functionLinenumberEnd: 432
    functionName: tok_decimal_tail
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - _PyTokenizer_syntaxerror
    - Py_ISDIGIT
    - tok_backup
    - tok_nextc
    linkageType: ''
    returnType: int
    signature: int tok_decimal_tail(struct tok_state *tok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:436,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:438,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:444,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 434
    functionDepth: 12
    functionLinenumber: 434
    functionLinenumberEnd: 453
    functionName: tok_continuation_line
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - tok_backup
    - tok_nextc
    linkageType: ''
    returnType: int
    signature: int tok_continuation_line(struct tok_state *tok)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_SYNTAX_ERROR
      Src: /src/cpython/Parser/lexer/lexer.c:472,1
    - Dst: RETURN_SYNTAX_ERROR
      Src: /src/cpython/Parser/lexer/lexer.c:475,1
    - Dst: RETURN_SYNTAX_ERROR
      Src: /src/cpython/Parser/lexer/lexer.c:478,1
    - Dst: RETURN_SYNTAX_ERROR
      Src: /src/cpython/Parser/lexer/lexer.c:481,1
    - Dst: RETURN_SYNTAX_ERROR
      Src: /src/cpython/Parser/lexer/lexer.c:485,1
    - Dst: RETURN_SYNTAX_ERROR
      Src: /src/cpython/Parser/lexer/lexer.c:488,1
    - Dst: RETURN_SYNTAX_ERROR
      Src: /src/cpython/Parser/lexer/lexer.c:492,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 6
    argNames:
    - tok
    - saw_b
    - saw_r
    - saw_u
    - saw_f
    - saw_t
    argTypes:
    - struct tok_state*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 498
    functionName: maybe_raise_syntax_error_for_string_prefixes
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - RETURN_SYNTAX_ERROR
    linkageType: ''
    returnType: int
    signature: "int maybe_raise_syntax_error_for_string_prefixes(struct tok_state
      *tok,\n                                             int saw_b, int saw_r, int
      saw_u,\n                                             int saw_f, int saw_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PREFIX1
    - ','
    - PREFIX2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: RETURN_SYNTAX_ERROR
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_SYNTAX_ERROR(PREFIX1, PREFIX2)
  - BBCount: 155
    BranchProfiles: []
    Callsites:
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:521,1
    - Dst: tok_continuation_line
      Src: /src/cpython/Parser/lexer/lexer.c:538,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:539,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:546,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:574,1
    - Dst: _PyTokenizer_indenterror
      Src: /src/cpython/Parser/lexer/lexer.c:574,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:582,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:585,1
    - Dst: _PyTokenizer_indenterror
      Src: /src/cpython/Parser/lexer/lexer.c:585,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:601,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:604,1
    - Dst: _PyTokenizer_indenterror
      Src: /src/cpython/Parser/lexer/lexer.c:604,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:621,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:629,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:634,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:635,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:641,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:656,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:689,1
    - Dst: memcmp
      Src: /src/cpython/Parser/lexer/lexer.c:696,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Parser/lexer/lexer.c:698,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:706,1
    - Dst: MAKE_TYPE_COMMENT_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:709,1
    - Dst: MAKE_TYPE_COMMENT_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:713,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:718,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:722,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:727,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:733,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:735,1
    - Dst: is_potential_identifier_start
      Src: /src/cpython/Parser/lexer/lexer.c:740,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:765,1
    - Dst: maybe_raise_syntax_error_for_string_prefixes
      Src: /src/cpython/Parser/lexer/lexer.c:768,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:771,1
    - Dst: is_potential_identifier_char
      Src: /src/cpython/Parser/lexer/lexer.c:781,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:785,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:787,1
    - Dst: verify_identifier
      Src: /src/cpython/Parser/lexer/lexer.c:788,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:789,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:795,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:799,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:812,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:820,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:825,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:830,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:831,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:834,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:838,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:841,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:843,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:846,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:850,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:854,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:857,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:860,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:863,1
    - Dst: Py_ISXDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:865,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:866,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:867,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:867,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:870,1
    - Dst: Py_ISXDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:871,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:873,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:874,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:879,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:882,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:885,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:886,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:886,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:890,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:891,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:891,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:895,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:898,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:899,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:899,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:902,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:903,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:908,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:911,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:914,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:915,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:915,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:918,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:919,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:919,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:923,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:926,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:927,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:927,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:929,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:930,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:939,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:940,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:941,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:942,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:942,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:948,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:951,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:953,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:955,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:959,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:970,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:971,1
    - Dst: _PyTokenizer_syntaxerror_known_range
      Src: /src/cpython/Parser/lexer/lexer.c:971,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:978,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:979,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:985,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:987,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:992,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:995,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:996,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:998,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1007,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1009,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:1010,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1011,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1012,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1012,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:1014,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1015,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:1016,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1017,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1019,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1022,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:1024,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1026,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1032,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:1033,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1034,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:1037,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1038,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1042,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1045,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1049,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1049,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1049,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1063,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1065,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1071,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1072,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1076,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1083,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1083,1
    - Dst: TOK_NEXT_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1085,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1104,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1109,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1114,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Parser/lexer/lexer.c:1119,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1125,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1125,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1144,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1146,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1155,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1160,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1162,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:1168,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1178,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1184,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1187,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1187,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1188,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1193,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1198,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1202,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1209,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1216,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1225,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1230,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1238,1
    - Dst: tok_continuation_line
      Src: /src/cpython/Parser/lexer/lexer.c:1243,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1244,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1252,1
    - Dst: INSIDE_FSTRING_EXPR
      Src: /src/cpython/Parser/lexer/lexer.c:1252,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/lexer/lexer.c:1261,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1262,1
    - Dst: set_ftstring_expr
      Src: /src/cpython/Parser/lexer/lexer.c:1264,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1265,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1273,1
    - Dst: _PyToken_OneChar
      Src: /src/cpython/Parser/lexer/lexer.c:1273,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1279,1
    - Dst: _PyToken_TwoChars
      Src: /src/cpython/Parser/lexer/lexer.c:1280,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1282,1
    - Dst: _PyToken_ThreeChars
      Src: /src/cpython/Parser/lexer/lexer.c:1283,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1288,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1292,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1294,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1303,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1303,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1309,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1316,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1317,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1317,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1318,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1321,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1321,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1334,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:1335,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1338,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1338,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1339,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1343,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1343,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1349,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1349,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1357,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1360,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1360,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1361,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Parser/lexer/lexer.c:1375,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1376,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1376,1
    - Dst: INSIDE_FSTRING_EXPR
      Src: /src/cpython/Parser/lexer/lexer.c:1379,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1386,1
    - Dst: _PyToken_OneChar
      Src: /src/cpython/Parser/lexer/lexer.c:1386,1
    CyclomaticComplexity: 253
    EdgeCount: 253
    ICount: 671
    argCount: 3
    argNames:
    - tok
    - current_tok
    - token
    argTypes:
    - struct tok_state*
    - tokenizer_mode*
    - struct token*
    assertStmts:
    - condition: (current_tok->curly_bracket_depth >= 0)
      pos:
        line_end: 1334
        line_start: 1334
        source_file: /src/cpython/Parser/lexer/lexer.c
    - condition: (tok->multi_line_start != NULL)
      pos:
        line_end: 1167
        line_start: 1167
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 1387
      start: 500
    functionDepth: 14
    functionLinenumber: 500
    functionLinenumberEnd: 1387
    functionName: tok_get_normal_mode
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISPRINTABLE
    - _PyToken_TwoChars
    - _PyTokenizer_indenterror
    - verify_end_of_number
    - _PyLexer_update_ftstring_expr
    - memcmp
    - tok_nextc
    - Py_ISALNUM
    - tok_continuation_line
    - TOK_GET_STRING_PREFIX
    - Py_TOLOWER
    - Py_ISXDIGIT
    - INSIDE_FSTRING
    - TOK_NEXT_MODE
    - assert
    - _PyToken_OneChar
    - tok_decimal_tail
    - MAKE_TOKEN
    - _PyTokenizer_syntaxerror
    - maybe_raise_syntax_error_for_string_prefixes
    - _PyToken_ThreeChars
    - is_potential_identifier_char
    - tok_backup
    - _PyTokenizer_syntaxerror_known_range
    - TOK_GET_MODE
    - INSIDE_FSTRING_EXPR
    - is_potential_identifier_start
    - set_ftstring_expr
    - MAKE_TYPE_COMMENT_TOKEN
    - verify_identifier
    - Py_ISDIGIT
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok,
      struct token *token)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1403,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1405,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1406,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1407,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1411,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1411,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1412,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1414,1
    - Dst: tok_get_normal_mode
      Src: /src/cpython/Parser/lexer/lexer.c:1415,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1419,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1424,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1426,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/lexer.c:1432,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1441,1
    - Dst: FTSTRING_END
      Src: /src/cpython/Parser/lexer/lexer.c:1441,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1449,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1451,1
    - Dst: INSIDE_FSTRING_EXPR
      Src: /src/cpython/Parser/lexer/lexer.c:1456,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1461,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1469,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1470,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1473,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1473,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1477,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1478,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1482,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1482,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:1485,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1494,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1498,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1501,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1505,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1508,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1508,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1510,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/lexer/lexer.c:1522,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1523,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1525,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1527,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1528,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1531,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1531,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1532,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1534,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1542,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1542,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1547,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1547,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1549,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1560,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1561,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1562,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1567,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1567,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1569,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1571,1
    - Dst: _PyTokenizer_warn_invalid_escape_sequence
      Src: /src/cpython/Parser/lexer/lexer.c:1578,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1579,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1582,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1589,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1593,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1605,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1609,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1609,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 149
    argCount: 3
    argNames:
    - tok
    - current_tok
    - token
    argTypes:
    - struct tok_state*
    - tokenizer_mode*
    - struct token*
    assertStmts:
    - condition: (tok->multi_line_start != NULL)
      pos:
        line_end: 1484
        line_start: 1484
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 1610
      start: 1389
    functionDepth: 15
    functionLinenumber: 1389
    functionLinenumberEnd: 1610
    functionName: tok_get_fstring_mode
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - FTSTRING_MIDDLE
    - tok_backup
    - INSIDE_FSTRING_EXPR
    - TOK_GET_MODE
    - tok_get_normal_mode
    - _PyLexer_update_ftstring_expr
    - _PyTokenizer_warn_invalid_escape_sequence
    - TOK_GET_STRING_PREFIX
    - MAKE_TOKEN
    - FTSTRING_END
    - tok_nextc
    - _PyTokenizer_syntaxerror
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int tok_get_fstring_mode(struct tok_state *tok, tokenizer_mode* current_tok,
      struct token *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1615,1
    - Dst: tok_get_normal_mode
      Src: /src/cpython/Parser/lexer/lexer.c:1617,1
    - Dst: tok_get_fstring_mode
      Src: /src/cpython/Parser/lexer/lexer.c:1619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tok
    - token
    argTypes:
    - struct tok_state*
    - struct token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1612
    functionDepth: 16
    functionLinenumber: 1612
    functionLinenumberEnd: 1621
    functionName: tok_get
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - tok_get_fstring_mode
    - tok_get_normal_mode
    - TOK_GET_MODE
    linkageType: ''
    returnType: int
    signature: int tok_get(struct tok_state *tok, struct token *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tok_get
      Src: /src/cpython/Parser/lexer/lexer.c:1626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tok
    - token
    argTypes:
    - struct tok_state*
    - struct token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1623
    functionDepth: 17
    functionLinenumber: 1623
    functionLinenumberEnd: 1632
    functionName: _PyTokenizer_Get
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 3
    functionsReached:
    - tok_get
    linkageType: ''
    returnType: int
    signature: int _PyTokenizer_Get(struct tok_state *tok, struct token *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowNew
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:12,1
    - Dst: FindClass
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - message
    argTypes:
    - JNIEnv*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: throw_runtime_exception
    functionSourceFile: /src/cpython/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - ThrowNew
    - FindClass
    linkageType: ''
    returnType: void
    signature: void throw_runtime_exception(JNIEnv *env, const char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:58,1
    - Dst: __android_log_write
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: redirection_thread
    functionSourceFile: /src/cpython/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - __android_log_write
    - read
    linkageType: ''
    returnType: void
    signature: void *redirection_thread(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:67,1
    - Dst: pipe
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:72,1
    - Dst: dup2
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:75,1
    - Dst: pthread_create
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:81,1
    - Dst: pthread_detach
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - si
    argTypes:
    - StreamInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 88
    functionName: redirect_stream
    functionSourceFile: /src/cpython/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - pipe
    - pthread_detach
    - pthread_create
    - dup2
    - setvbuf
    linkageType: ''
    returnType: char
    signature: char *redirect_stream(StreamInfo *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redirect_stream
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:97,1
    - Dst: snprintf
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:99,1
    - Dst: strerror
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:100,1
    - Dst: throw_runtime_exception
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: Java_org_python_testbed_PythonTestRunner_redirectStdioToLogcat
    functionSourceFile: /src/cpython/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - throw_runtime_exception
    - snprintf
    - redirect_stream
    - strerror
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_python_testbed_PythonTestRunner_redirectStdioToLogcat(\n
      \   JNIEnv *env, jobject obj\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStringUTFChars
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:113,1
    - Dst: PyConfig_SetBytesString
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:114,1
    - Dst: ReleaseStringUTFChars
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - env
    - config
    - config_str
    - value
    argTypes:
    - JNIEnv*
    - PyConfig*
    - wchar_t**
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: set_config_string
    functionSourceFile: /src/cpython/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - GetStringUTFChars
    - PyConfig_SetBytesString
    - ReleaseStringUTFChars
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus set_config_string(\n    JNIEnv *env, PyConfig *config, wchar_t
      **config_str, jstring value\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throw_runtime_exception
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - status
    argTypes:
    - JNIEnv*
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: throw_status
    functionSourceFile: /src/cpython/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - throw_runtime_exception
    linkageType: ''
    returnType: void
    signature: void throw_status(JNIEnv *env, PyStatus status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitIsolatedConfig
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:128,1
    - Dst: set_config_string
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:130,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:131,1
    - Dst: throw_status
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:132,1
    - Dst: set_config_string
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:136,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:137,1
    - Dst: throw_status
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:138,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:145,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:146,1
    - Dst: throw_status
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:147,1
    - Dst: Py_RunMain
      Src: /src/cpython/Android/testbed/app/src/main/c/main_activity.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - env
    - obj
    - home
    - runModule
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 7
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: Java_org_python_testbed_PythonTestRunner_runPython
    functionSourceFile: /src/cpython/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - throw_status
    - Py_RunMain
    - PyConfig_InitIsolatedConfig
    - set_config_string
    - PyStatus_Exception
    - Py_InitializeFromConfig
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_python_testbed_PythonTestRunner_runPython(\n    JNIEnv
      *env, jobject obj, jstring home, jstring runModule\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:45,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Lib/test/clinic.test.c:49,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:52,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:53,1
    - Dst: test_object_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: test_object_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_object_converter_impl
    - PyUnicode_FSConverter
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_object_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:97,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Lib/test/clinic.test.c:101,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:104,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:105,1
    - Dst: cloned_impl
      Src: /src/cpython/Lib/test/clinic.test.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: cloned
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - cloned_impl
    - PyUnicode_FSConverter
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cloned(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:170,1
    - Dst: test_objects_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: test_objects_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_objects_converter_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_objects_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:237,1
    - Dst: PyLong_Check
      Src: /src/cpython/Lib/test/clinic.test.c:240,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:241,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Lib/test/clinic.test.c:245,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:246,1
    - Dst: PyList_Check
      Src: /src/cpython/Lib/test/clinic.test.c:250,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:251,1
    - Dst: PySet_Check
      Src: /src/cpython/Lib/test/clinic.test.c:255,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:256,1
    - Dst: PyFrozenSet_Check
      Src: /src/cpython/Lib/test/clinic.test.c:260,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:261,1
    - Dst: PyDict_Check
      Src: /src/cpython/Lib/test/clinic.test.c:265,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:266,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:270,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:271,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:275,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:276,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:280,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:281,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Lib/test/clinic.test.c:285,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:286,1
    - Dst: test_object_converter_subclass_of_impl
      Src: /src/cpython/Lib/test/clinic.test.c:290,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 294
    functionName: test_object_converter_subclass_of
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - PyObject_TypeCheck
    - PyTuple_Check
    - PySet_Check
    - PyLong_Check
    - PyList_Check
    - PyBytes_Check
    - PyByteArray_Check
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyFrozenSet_Check
    - test_object_converter_subclass_of_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_object_converter_subclass_of(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:329,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:330,1
    - Dst: test_PyBytesObject_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 338
    functionName: test_PyBytesObject_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - _PyArg_BadArgument
    - test_PyBytesObject_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyBytesObject_converter(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:370,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:371,1
    - Dst: test_PyByteArrayObject_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 379
    functionName: test_PyByteArrayObject_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Check
    - _PyArg_BadArgument
    - test_PyByteArrayObject_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyByteArrayObject_converter(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:411,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:412,1
    - Dst: test_unicode_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 420
    functionName: test_unicode_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - test_unicode_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unicode_converter(PyObject *module, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:456,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Lib/test/clinic.test.c:462,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Lib/test/clinic.test.c:469,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:476,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:477,1
    - Dst: test_bool_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:481,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 485
    functionName: test_bool_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - test_bool_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_bool_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:547,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:553,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:554,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:555,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:558,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:561,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:563,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:564,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:565,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:568,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:571,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:574,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:580,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:581,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:582,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:585,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:588,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:590,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:591,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:592,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:595,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:598,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:601,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:607,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:608,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:609,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:612,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:615,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:617,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:618,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:619,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:622,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:625,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:628,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:634,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:635,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:636,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:639,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:642,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:644,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:645,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:646,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:649,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:652,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:655,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:661,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:662,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:663,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:666,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:669,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:671,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:672,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:673,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:676,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:679,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:682,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:688,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:689,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:690,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:693,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:696,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:698,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:699,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:700,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:703,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:706,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:709,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:715,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:716,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:717,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:720,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:723,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:725,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:727,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:730,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:733,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:736,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:742,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:743,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:744,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:747,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:750,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:752,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:753,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:754,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:757,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:760,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:763,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:769,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:770,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:771,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:774,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:777,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:779,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:780,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:781,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:784,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:787,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:790,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:796,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:797,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:798,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:801,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:804,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:806,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:807,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:808,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:811,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:814,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:817,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:823,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:824,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:825,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:828,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:831,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:833,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:834,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:835,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:838,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:841,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:844,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:850,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:851,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:852,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:855,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:858,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:860,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:861,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:862,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:865,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:868,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:871,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:877,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:878,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:879,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:882,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:885,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:887,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:888,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:889,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:892,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:895,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:898,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:904,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:905,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:906,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:909,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:912,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Lib/test/clinic.test.c:914,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:915,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:916,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:919,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Lib/test/clinic.test.c:922,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:925,1
    - Dst: test_char_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:929,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 347
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 933
    functionName: test_char_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_char_converter_impl
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - _PyArg_CheckPositional
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyErr_Format
    - PyByteArray_Check
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_char_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:972,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Lib/test/clinic.test.c:979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:980,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:984,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:989,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Lib/test/clinic.test.c:1001,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1002,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:1006,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:1011,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Lib/test/clinic.test.c:1023,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Lib/test/clinic.test.c:1031,1
    - Dst: test_unsigned_char_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1039,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 964
    functionDepth: 4
    functionLinenumber: 964
    functionLinenumberEnd: 1043
    functionName: test_unsigned_char_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyLong_AsNativeBytes
    - _PyArg_CheckPositional
    - test_unsigned_char_converter_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unsigned_char_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1076,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Lib/test/clinic.test.c:1083,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:1088,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:1093,1
    - Dst: test_short_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1102,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1070
    functionDepth: 4
    functionLinenumber: 1070
    functionLinenumberEnd: 1106
    functionName: test_short_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_CheckPositional
    - test_short_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_short_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1143,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1149,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1155,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Lib/test/clinic.test.c:1162,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Lib/test/clinic.test.c:1170,1
    - Dst: test_unsigned_short_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1178,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1135
    functionDepth: 4
    functionLinenumber: 1135
    functionLinenumberEnd: 1182
    functionName: test_unsigned_short_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyLong_UnsignedShort_Converter
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - test_unsigned_short_converter_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unsigned_short_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1221,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:1227,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1228,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:1234,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1235,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:1241,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:1242,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Lib/test/clinic.test.c:1245,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/clinic.test.c:1246,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Lib/test/clinic.test.c:1249,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Lib/test/clinic.test.c:1252,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:1256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1257,1
    - Dst: test_int_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1261,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1212
    functionDepth: 4
    functionLinenumber: 1212
    functionLinenumberEnd: 1265
    functionName: test_int_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - PyUnicode_Check
    - test_int_converter_impl
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_int_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1302,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1308,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1314,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Lib/test/clinic.test.c:1321,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Lib/test/clinic.test.c:1329,1
    - Dst: test_unsigned_int_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1294
    functionDepth: 4
    functionLinenumber: 1294
    functionLinenumberEnd: 1341
    functionName: test_unsigned_int_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_unsigned_int_converter_impl
    - _PyLong_UnsignedInt_Converter
    - _PyArg_CheckPositional
    - PyLong_AsNativeBytes
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unsigned_int_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1374,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Lib/test/clinic.test.c:1380,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1381,1
    - Dst: test_long_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1368
    functionDepth: 4
    functionLinenumber: 1368
    functionLinenumberEnd: 1389
    functionName: test_long_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - test_long_converter_impl
    - _PyArg_CheckPositional
    - PyLong_AsLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1426,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1432,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1438,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Lib/test/clinic.test.c:1444,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:1445,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Lib/test/clinic.test.c:1449,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Lib/test/clinic.test.c:1457,1
    - Dst: test_unsigned_long_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1465,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1418
    functionDepth: 4
    functionLinenumber: 1418
    functionLinenumberEnd: 1469
    functionName: test_unsigned_long_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_unsigned_long_converter_impl
    - _PyLong_UnsignedLong_Converter
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unsigned_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1502,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Lib/test/clinic.test.c:1508,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1509,1
    - Dst: test_long_long_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1513,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1496
    functionDepth: 3
    functionLinenumber: 1496
    functionLinenumberEnd: 1517
    functionName: test_long_long_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_AsLongLong
    - test_long_long_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1556,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1562,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1568,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Lib/test/clinic.test.c:1574,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:1575,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Lib/test/clinic.test.c:1579,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Lib/test/clinic.test.c:1587,1
    - Dst: test_unsigned_long_long_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1595,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1548
    functionDepth: 4
    functionLinenumber: 1548
    functionLinenumberEnd: 1599
    functionName: test_unsigned_long_long_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_unsigned_long_long_converter_impl
    - _PyLong_UnsignedLongLong_Converter
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unsigned_long_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1639,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Lib/test/clinic.test.c:1647,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/clinic.test.c:1650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1652,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Lib/test/clinic.test.c:1662,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/clinic.test.c:1665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1667,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1675,1
    - Dst: test_Py_ssize_t_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1679,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1631
    functionDepth: 2
    functionLinenumber: 1631
    functionLinenumberEnd: 1683
    functionName: test_Py_ssize_t_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyNumber_Index
    - PyErr_Occurred
    - test_Py_ssize_t_converter_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_Py_ssize_t_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1721,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Lib/test/clinic.test.c:1727,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Lib/test/clinic.test.c:1733,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Lib/test/clinic.test.c:1739,1
    - Dst: test_slice_index_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1743,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1713
    functionDepth: 1
    functionLinenumber: 1713
    functionLinenumberEnd: 1747
    functionName: test_slice_index_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyEval_SliceIndexNotNone
    - _PyArg_CheckPositional
    - test_slice_index_converter_impl
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_slice_index_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1780,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1786,1
    - Dst: test_size_t_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1794
    functionName: test_size_t_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - test_size_t_converter_impl
    - _PyLong_Size_t_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_size_t_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1826,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Lib/test/clinic.test.c:1832,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Lib/test/clinic.test.c:1833,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Lib/test/clinic.test.c:1837,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1838,1
    - Dst: test_float_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1843,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1820
    functionDepth: 3
    functionLinenumber: 1820
    functionLinenumberEnd: 1847
    functionName: test_float_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - test_float_converter_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_float_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1879,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Lib/test/clinic.test.c:1885,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Lib/test/clinic.test.c:1886,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Lib/test/clinic.test.c:1890,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1891,1
    - Dst: test_double_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1896,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1873
    functionDepth: 3
    functionLinenumber: 1873
    functionLinenumberEnd: 1900
    functionName: test_double_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - test_double_converter_impl
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_double_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Lib/test/clinic.test.c:1932,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1933,1
    - Dst: test_Py_complex_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1926
    functionDepth: 4
    functionLinenumber: 1926
    functionLinenumberEnd: 1940
    functionName: test_Py_complex_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - test_Py_complex_converter_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_Py_complex_converter(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Lib/test/clinic.test.c:1994,1
    - Dst: test_str_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 2002
    functionName: test_str_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - test_str_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_str_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Lib/test/clinic.test.c:2050,1
    - Dst: test_str_converter_encoding_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2054,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2056,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2058,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2060,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2062,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2068
    functionName: test_str_converter_encoding
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - test_str_converter_encoding_impl
    - PyMem_FREE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_str_converter_encoding(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Lib/test/clinic.test.c:2115,1
    - Dst: test_Py_UNICODE_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2119,1
    - Dst: PyMem_Free
      Src: /src/cpython/Lib/test/clinic.test.c:2123,1
    - Dst: PyMem_Free
      Src: /src/cpython/Lib/test/clinic.test.c:2125,1
    - Dst: PyMem_Free
      Src: /src/cpython/Lib/test/clinic.test.c:2127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2103
    functionDepth: 2
    functionLinenumber: 2103
    functionLinenumberEnd: 2130
    functionName: test_Py_UNICODE_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyMem_Free
    - test_Py_UNICODE_converter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_Py_UNICODE_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Lib/test/clinic.test.c:2174,1
    - Dst: test_Py_buffer_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2178,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2183,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2187,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2191,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2195,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2164
    functionDepth: 1
    functionLinenumber: 2164
    functionLinenumberEnd: 2203
    functionName: test_Py_buffer_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - test_Py_buffer_converter_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_Py_buffer_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2243,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2245,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2245,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2265,1
    - Dst: test_keywords_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2276
    functionName: test_keywords
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_keywords_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2316,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2318,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2318,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2338,1
    - Dst: test_keywords_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2303
    functionDepth: 1
    functionLinenumber: 2303
    functionLinenumberEnd: 2349
    functionName: test_keywords_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_keywords_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2390,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2392,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2392,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2392,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2409,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2414,1
    - Dst: test_keywords_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2431,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: 2435
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2435
    functionName: test_keywords_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - test_keywords_opt_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2479,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2481,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2481,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2481,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2481,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2498,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2504,1
    - Dst: test_keywords_opt_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2531,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: 2535
      start: 2466
    functionDepth: 1
    functionLinenumber: 2466
    functionLinenumberEnd: 2535
    functionName: test_keywords_opt_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_keywords_opt_kwonly_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2578,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2580,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2580,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2580,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2597,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2602,1
    - Dst: test_keywords_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2619,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: 2623
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2623
    functionName: test_keywords_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_keywords_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2664,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2666,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2686,1
    - Dst: test_posonly_keywords_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2651
    functionDepth: 1
    functionLinenumber: 2651
    functionLinenumberEnd: 2697
    functionName: test_posonly_keywords
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_keywords_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2738,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2740,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2760,1
    - Dst: test_posonly_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2725
    functionDepth: 1
    functionLinenumber: 2725
    functionLinenumberEnd: 2771
    functionName: test_posonly_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2814,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2816,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2816,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2837,1
    - Dst: test_posonly_keywords_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2849
    functionName: test_posonly_keywords_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_keywords_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2893,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2895,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2895,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2895,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2912,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2918,1
    - Dst: test_posonly_keywords_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2936,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2880
    functionDepth: 1
    functionLinenumber: 2880
    functionLinenumberEnd: 2940
    functionName: test_posonly_keywords_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_posonly_keywords_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:2983,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2985,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2985,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3002,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3007,1
    - Dst: test_posonly_keywords_opt2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3024,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: 3028
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 3028
    functionName: test_posonly_keywords_opt2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_posonly_keywords_opt2_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords_opt2(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3072,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3074,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3074,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3091,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3097,1
    - Dst: test_posonly_opt_keywords_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3059
    functionDepth: 1
    functionLinenumber: 3059
    functionLinenumberEnd: 3124
    functionName: test_posonly_opt_keywords_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_posonly_opt_keywords_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3169,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3171,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3171,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3171,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3188,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3194,1
    - Dst: test_posonly_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3212,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3156
    functionDepth: 1
    functionLinenumber: 3156
    functionLinenumberEnd: 3216
    functionName: test_posonly_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - test_posonly_kwonly_opt_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3260,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3262,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3262,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3279,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3284,1
    - Dst: test_posonly_kwonly_opt2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3301,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: 3305
      start: 3247
    functionDepth: 1
    functionLinenumber: 3247
    functionLinenumberEnd: 3305
    functionName: test_posonly_kwonly_opt2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - test_posonly_kwonly_opt2_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3350,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3352,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3352,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3369,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3375,1
    - Dst: test_posonly_opt_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3337
    functionDepth: 1
    functionLinenumber: 3337
    functionLinenumberEnd: 3402
    functionName: test_posonly_opt_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_posonly_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3449,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3451,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3451,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3451,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3451,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3468,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3475,1
    - Dst: test_posonly_keywords_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3494,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3498
      start: 3436
    functionDepth: 1
    functionLinenumber: 3436
    functionLinenumberEnd: 3498
    functionName: test_posonly_keywords_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_posonly_keywords_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3544,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3546,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3546,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3546,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3563,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3569,1
    - Dst: test_posonly_keywords_kwonly_opt2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3587,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3591
      start: 3531
    functionDepth: 1
    functionLinenumber: 3531
    functionLinenumberEnd: 3591
    functionName: test_posonly_keywords_kwonly_opt2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_posonly_keywords_kwonly_opt2_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3639,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3641,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3641,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3641,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3641,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3658,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3665,1
    - Dst: test_posonly_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3693,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3697
      start: 3626
    functionDepth: 1
    functionLinenumber: 3626
    functionLinenumberEnd: 3697
    functionName: test_posonly_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - test_posonly_keywords_opt_kwonly_opt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3746,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3748,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3748,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3748,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3748,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3765,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3772,1
    - Dst: test_posonly_keywords_opt2_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3805,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3809
      start: 3733
    functionDepth: 1
    functionLinenumber: 3733
    functionLinenumberEnd: 3809
    functionName: test_posonly_keywords_opt2_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_posonly_keywords_opt2_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_keywords_opt2_kwonly_opt(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3860,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3862,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3862,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3862,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3862,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3879,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3887,1
    - Dst: test_posonly_opt_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3926,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3847
    functionDepth: 1
    functionLinenumber: 3847
    functionLinenumberEnd: 3930
    functionName: test_posonly_opt_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    - test_posonly_opt_keywords_opt_kwonly_opt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:3972,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:3974,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3991,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3994,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:4002,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:4003,1
    - Dst: test_keyword_only_parameter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4008,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3959
    functionDepth: 1
    functionLinenumber: 3959
    functionLinenumberEnd: 4012
    functionName: test_keyword_only_parameter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - test_keyword_only_parameter_impl
    - PyBytes_Check
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_keyword_only_parameter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_preprocessor_guarded_condition_a_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4112
      start: 4108
    functionDepth: 0
    functionLinenumber: 4108
    functionLinenumberEnd: 4112
    functionName: test_preprocessor_guarded_condition_a
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_preprocessor_guarded_condition_a_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_preprocessor_guarded_condition_a(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_preprocessor_guarded_elif_condition_b_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4130
      start: 4126
    functionDepth: 0
    functionLinenumber: 4126
    functionLinenumberEnd: 4130
    functionName: test_preprocessor_guarded_elif_condition_b
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_preprocessor_guarded_elif_condition_b_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_preprocessor_guarded_elif_condition_b(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_preprocessor_guarded_else_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4144
    functionDepth: 0
    functionLinenumber: 4144
    functionLinenumberEnd: 4148
    functionName: test_preprocessor_guarded_else
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_preprocessor_guarded_else_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_preprocessor_guarded_else(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_preprocessor_guarded_ifndef_condition_c_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4166
      start: 4162
    functionDepth: 0
    functionLinenumber: 4162
    functionLinenumberEnd: 4166
    functionName: test_preprocessor_guarded_ifndef_condition_c
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_preprocessor_guarded_ifndef_condition_c_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_preprocessor_guarded_ifndef_condition_c(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_preprocessor_guarded_ifndef_not_condition_c_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4184
      start: 4180
    functionDepth: 0
    functionLinenumber: 4180
    functionLinenumberEnd: 4184
    functionName: test_preprocessor_guarded_ifndef_not_condition_c
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_preprocessor_guarded_ifndef_not_condition_c_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_preprocessor_guarded_ifndef_not_condition_c(PyObject *module, PyObject
      *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_preprocessor_guarded_if_with_continuation_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4202
      start: 4198
    functionDepth: 0
    functionLinenumber: 4198
    functionLinenumberEnd: 4202
    functionName: test_preprocessor_guarded_if_with_continuation
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_preprocessor_guarded_if_with_continuation_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_preprocessor_guarded_if_with_continuation(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_preprocessor_guarded_if_e_or_f_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4221
      start: 4217
    functionDepth: 0
    functionLinenumber: 4217
    functionLinenumberEnd: 4221
    functionName: test_preprocessor_guarded_if_e_or_f
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_preprocessor_guarded_if_e_or_f_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_preprocessor_guarded_if_e_or_f(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:4282,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4286,1
    - Dst: test_vararg_and_posonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4290,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4297
      start: 4275
    functionDepth: 3
    functionLinenumber: 4275
    functionLinenumberEnd: 4297
    functionName: test_vararg_and_posonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_vararg_and_posonly_impl
    - Py_XDECREF
    - _PyArg_CheckPositional
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_vararg_and_posonly(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:4336,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4338,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4359,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4366,1
    - Dst: PyTuple_New
      Src: /src/cpython/Lib/test/clinic.test.c:4367,1
    - Dst: test_vararg_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4371,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4323
    functionDepth: 3
    functionLinenumber: 4323
    functionLinenumberEnd: 4378
    functionName: test_vararg
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - _PyTuple_FromArray
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - test_vararg_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_vararg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:4419,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4421,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4421,1
    - Dst: Py_MIN
      Src: /src/cpython/Lib/test/clinic.test.c:4439,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:4439,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4444,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Lib/test/clinic.test.c:4453,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4459,1
    - Dst: PyTuple_New
      Src: /src/cpython/Lib/test/clinic.test.c:4460,1
    - Dst: test_vararg_with_default_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4464,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4468,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4406
    functionDepth: 3
    functionLinenumber: 4406
    functionLinenumberEnd: 4471
    functionName: test_vararg_with_default
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - Py_XDECREF
    - PyObject_IsTrue
    - PyTuple_New
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _PyTuple_FromArray
    - test_vararg_with_default_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_vararg_with_default(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:4513,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4515,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4515,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:4533,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4538,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Lib/test/clinic.test.c:4547,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4557,1
    - Dst: test_vararg_with_only_defaults_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4561,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4565,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4568
      start: 4500
    functionDepth: 3
    functionLinenumber: 4500
    functionLinenumberEnd: 4568
    functionName: test_vararg_with_only_defaults
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - _PyTuple_FromArray
    - test_vararg_with_only_defaults_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_vararg_with_only_defaults(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:4605,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4607,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4626,1
    - Dst: test_paramname_module_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4636
      start: 4592
    functionDepth: 1
    functionLinenumber: 4592
    functionLinenumberEnd: 4636
    functionName: test_paramname_module
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - test_paramname_module_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_paramname_module(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:4685,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4687,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4714,1
    - Dst: mangle1_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4672
    functionDepth: 1
    functionLinenumber: 4672
    functionLinenumberEnd: 4732
    functionName: mangle1
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - mangle1_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mangle1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:4775,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4777,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4777,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4777,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4798,1
    - Dst: mangle2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4810
      start: 4762
    functionDepth: 1
    functionLinenumber: 4762
    functionLinenumberEnd: 4810
    functionName: mangle2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - mangle2_impl
    - _Py_ID
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mangle2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:4849,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4851,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4870,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:4875,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:4876,1
    - Dst: Test_cls_with_param_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4883
      start: 4836
    functionDepth: 4
    functionLinenumber: 4836
    functionLinenumberEnd: 4883
    functionName: Test_cls_with_param
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyVarObject_HEAD_INIT
    - Test_cls_with_param_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_cls_with_param(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:4910,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:4911,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Lib/test/clinic.test.c:4912,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:4915,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:4916,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4917,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:4920,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4924
      start: 4904
    functionDepth: 0
    functionLinenumber: 4904
    functionLinenumberEnd: 4924
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_IS_TYPE
    - Test___init___impl
    - _PyArg_NoPositional
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Test___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Lib/test/clinic.test.c:4953,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4957,1
    - Dst: Test_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4964
      start: 4946
    functionDepth: 0
    functionLinenumber: 4946
    functionLinenumberEnd: 4964
    functionName: Test
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Test_impl
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:4991,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:4992,1
    - Dst: Test_cls_no_params_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4996
      start: 4988
    functionDepth: 1
    functionLinenumber: 4988
    functionLinenumberEnd: 4996
    functionName: Test_cls_no_params
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_cls_no_params_impl
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_cls_no_params(PyObject *self, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_metho_not_default_return_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5026,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5027,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Lib/test/clinic.test.c:5030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5034
      start: 5020
    functionDepth: 0
    functionLinenumber: 5020
    functionLinenumberEnd: 5034
    functionName: Test_metho_not_default_return_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Test_metho_not_default_return_converter_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_metho_not_default_return_converter(PyObject *self, PyObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:5069,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5070,1
    - Dst: Test_an_metho_arg_named_arg_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg_
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 5063
    functionDepth: 4
    functionLinenumber: 5063
    functionLinenumberEnd: 5077
    functionName: Test_an_metho_arg_named_arg
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Test_an_metho_arg_named_arg_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_an_metho_arg_named_arg(PyObject *self, PyObject *arg_)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:5111,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:5112,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5113,1
    - Dst: Py_NewRef
      Src: /src/cpython/Lib/test/clinic.test.c:5116,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:5117,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:5121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5124
      start: 5104
    functionDepth: 0
    functionLinenumber: 5104
    functionLinenumberEnd: 5124
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyArg_NoKeywords
    - Py_NewRef
    - Py_IS_TYPE
    - Test___init___impl
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Test___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5159,1
    - Dst: Py_NewRef
      Src: /src/cpython/Lib/test/clinic.test.c:5162,1
    - Dst: Test_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:5167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5170
      start: 5151
    functionDepth: 0
    functionLinenumber: 5151
    functionLinenumberEnd: 5170
    functionName: Test
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_XDECREF
    - _PyArg_NoKeywords
    - Test_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:5205,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:5207,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:5225,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5228,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Lib/test/clinic.test.c:5228,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:5234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5192
    functionDepth: 1
    functionLinenumber: 5192
    functionLinenumberEnd: 5238
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - Test___init___impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int Test___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_class_method_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5265
      start: 5261
    functionDepth: 0
    functionLinenumber: 5261
    functionLinenumberEnd: 5265
    functionName: Test_class_method
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_class_method_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_class_method(PyObject *type, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_static_method_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - 'null'
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5288
    functionDepth: 0
    functionLinenumber: 5288
    functionLinenumberEnd: 5292
    functionName: Test_static_method
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_static_method_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_static_method(PyObject *null, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_meth_coexist_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5319
      start: 5315
    functionDepth: 0
    functionLinenumber: 5315
    functionLinenumberEnd: 5319
    functionName: Test_meth_coexist
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_meth_coexist_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_meth_coexist(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_property_get_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5343
    functionDepth: 0
    functionLinenumber: 5343
    functionLinenumberEnd: 5347
    functionName: Test_property_get
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_property_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_property_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_property_set_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5379
      start: 5371
    functionDepth: 0
    functionLinenumber: 5371
    functionLinenumberEnd: 5379
    functionName: Test_property_set
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_property_set_impl
    linkageType: ''
    returnType: int
    signature: int Test_property_set(PyObject *self, PyObject *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_setter_first_with_docstr_set_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5411
      start: 5403
    functionDepth: 0
    functionLinenumber: 5403
    functionLinenumberEnd: 5411
    functionName: Test_setter_first_with_docstr_set
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_setter_first_with_docstr_set_impl
    linkageType: ''
    returnType: int
    signature: int Test_setter_first_with_docstr_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_setter_first_with_docstr_get_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5448
      start: 5444
    functionDepth: 0
    functionLinenumber: 5444
    functionLinenumberEnd: 5448
    functionName: Test_setter_first_with_docstr_get
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_setter_first_with_docstr_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test_setter_first_with_docstr_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:5541,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:5543,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5562,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:5567,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5568,1
    - Dst: mangled_c_keyword_identifier_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5571,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5575
      start: 5528
    functionDepth: 4
    functionLinenumber: 5528
    functionLinenumberEnd: 5575
    functionName: mangled_c_keyword_identifier
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - PyVarObject_HEAD_INIT
    - mangled_c_keyword_identifier_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mangled_c_keyword_identifier(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bool_return_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5604,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Lib/test/clinic.test.c:5607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5611
      start: 5597
    functionDepth: 1
    functionLinenumber: 5597
    functionLinenumberEnd: 5611
    functionName: bool_return
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - bool_return_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_return(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: double_return_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5639,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5640,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Lib/test/clinic.test.c:5643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5647
      start: 5633
    functionDepth: 3
    functionLinenumber: 5633
    functionLinenumberEnd: 5647
    functionName: double_return
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - double_return_impl
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_return(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:5681,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:5682,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5683,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:5686,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/clinic.test.c:5688,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/clinic.test.c:5693,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:5699,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:5702,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5706
      start: 5672
    functionDepth: 1
    functionLinenumber: 5672
    functionLinenumberEnd: 5706
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    - Py_IS_TYPE
    - Test___init___impl
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Test___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5756,1
    - Dst: Test__pyarg_parsestackandkeywords_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5764
      start: 5736
    functionDepth: 1
    functionLinenumber: 5736
    functionLinenumberEnd: 5764
    functionName: Test__pyarg_parsestackandkeywords
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test__pyarg_parsestackandkeywords_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Test__pyarg_parsestackandkeywords(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:5802,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:5804,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:5821,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5824,1
    - Dst: fn_with_default_binop_expr_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5838
      start: 5789
    functionDepth: 1
    functionLinenumber: 5789
    functionLinenumberEnd: 5838
    functionName: fn_with_default_binop_expr
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - fn_with_default_binop_expr_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fn_with_default_binop_expr(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Lib/test/clinic.test.c:5894,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:5896,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5915,1
    - Dst: c_converter_func
      Src: /src/cpython/Lib/test/clinic.test.c:5920,1
    - Dst: docstr_fallback_to_converter_default_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5923,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: 5927
      start: 5881
    functionDepth: 1
    functionLinenumber: 5881
    functionLinenumberEnd: 5927
    functionName: docstr_fallback_to_converter_default
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    - docstr_fallback_to_converter_default_impl
    - c_converter_func
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      docstr_fallback_to_converter_default(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:5955,1
    - Dst: test_critical_section_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5956,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:5957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5960
      start: 5950
    functionDepth: 1
    functionLinenumber: 5950
    functionLinenumberEnd: 5960
    functionName: test_critical_section
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - test_critical_section_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_section(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:5991,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:5992,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:5996,1
    - Dst: test_critical_section_meth_o_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5997,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:5998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6002
      start: 5985
    functionDepth: 1
    functionLinenumber: 5985
    functionLinenumberEnd: 6002
    functionName: test_critical_section_meth_o
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - test_critical_section_meth_o_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_section_meth_o(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:6034,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:6035,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:6039,1
    - Dst: test_critical_section_object_impl
      Src: /src/cpython/Lib/test/clinic.test.c:6040,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:6041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6045
      start: 6028
    functionDepth: 1
    functionLinenumber: 6028
    functionLinenumberEnd: 6045
    functionName: test_critical_section_object
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - test_critical_section_object_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_section_object(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:6080,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:6083,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:6084,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:6088,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:6089,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Lib/test/clinic.test.c:6093,1
    - Dst: test_critical_section_object2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:6094,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Lib/test/clinic.test.c:6095,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6099
      start: 6073
    functionDepth: 1
    functionLinenumber: 6073
    functionLinenumberEnd: 6099
    functionName: test_critical_section_object2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_critical_section_object2_impl
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_section_object2(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Lib/test/test_cext/create_moduledef.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - name
    - doc
    - methods
    - slots
    argTypes:
    - char*
    - char*
    - PyMethodDef*
    - PyModuleDef_Slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: testcext_create_moduledef
    functionSourceFile: /src/cpython/Lib/test/test_cext/create_moduledef.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *testcext_create_moduledef(\n    const char *name, const
      char *doc,\n    PyMethodDef *methods, PyModuleDef_Slot *slots)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: _STR
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STR(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: STR
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/test_cext/extension.c:45,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Lib/test/test_cext/extension.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: _testcext_add
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcext_add(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Lib/test/test_cext/extension.c:69,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Lib/test/test_cext/extension.c:75,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cext/extension.c:76,1
    - Dst: Py_BUILD_ASSERT_EXPR
      Src: /src/cpython/Lib/test/test_cext/extension.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - Py_UNUSED(module)
    argTypes:
    - __STDC_VERSION__**
    assertStmts:
    - condition: (Py_BUILD_ASSERT_EXPR(sizeof(int) == sizeof(unsigned int)) == 0)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/cpython/Lib/test/test_cext/extension.c
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: _testcext_exec
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT_EXPR
    - Py_BUILD_ASSERT
    - PyModule_AddIntMacro
    - assert
    linkageType: ''
    returnType: int
    signature: "int _testcext_exec(\n#ifdef __STDC_VERSION__\n    PyObject *module\n#else\n
      \   PyObject *Py_UNUSED(module)\n#endif\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: _FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Lib/test/test_cext/extension.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC FUNC_NAME(MODULE_NAME)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcext_create_moduledef
      Src: /src/cpython/Lib/test/test_cext/extension.c:141,1
    - Dst: STR
      Src: /src/cpython/Lib/test/test_cext/extension.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - testcext_create_moduledef
    - STR
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC FUNC_NAME(MODULE_NAME)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: _STR
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STR(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: STR
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:36,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: _testcppext_add
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcppext_add(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: StrongRef::StrongRef
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void StrongRef(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: ~StrongRef()
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void ~StrongRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: operator PyObject*() const
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator PyObject*() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:67,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:71,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:72,1
    - Dst: Py_INCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:79,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:80,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:81,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:82,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:82,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:83,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:84,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:84,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:85,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:86,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:86,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:92,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:92,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:93,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:93,1
    - Dst: Py_INCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:94,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:95,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:98,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:99,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:102,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(const_obj) == refcnt)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (refcnt >= 1)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyTuple_GET_SIZE(const_obj) == 2)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (Py_TYPE(strong_ref) == &PyTuple_Type)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (Py_REFCNT(strong_ref) == (refcnt + 1))
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyLong_AsLong(one) == 1)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (type == &PyTuple_Type)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 108
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 108
    functionName: test_api_casts
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsLong
    - PyTuple_GET_ITEM
    - Py_XINCREF
    - Py_TYPE
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_api_casts(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:114,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:119,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:119,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:121,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:121,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:122,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:122,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:123,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:123,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:126,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:126,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:129,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:130,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:131,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:132,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:133,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:133,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:136,1
    - Dst: static_cast<unsigned int>
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:137,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:138,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:138,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:140,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_READ_CHAR(str, 1) == 'b')
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_ReadChar(str, 0) == 'a')
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (kind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_READ(ukind, const_data, 2) == 'c')
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_Check(str))
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_ReadChar(str, 1) == 'b')
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_GET_LENGTH(str) == 3)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (data != _Py_NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_READ(kind, data, 0) == 'a')
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_GetLength(str) == 3)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: test_unicode
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_GetLength
    - Py_DECREF
    - PyUnicode_READ
    - static_cast<unsigned int>
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_ReadChar
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: ~VirtualPyObject()
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~VirtualPyObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: VirtualPyObject::set_internal_data
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_internal_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VirtualPyObject*>
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: VirtualPyObject::dealloc
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - static_cast<VirtualPyObject*>
    linkageType: ''
    returnType: void
    signature: void dealloc(PyObject* o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:201,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:204,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:205,1
    - Dst: PyObject_Init
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:206,1
    - Dst: int::int
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyObject_Init(this, (PyTypeObject *)type))
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 11
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: VirtualPyObject::VirtualPyObject
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Init
    - PyType_FromSpec
    - int::int
    - assert
    linkageType: ''
    returnType: void
    signature: void VirtualPyObject::VirtualPyObject()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VirtualPyObject::VirtualPyObject
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:214,1
    - Dst: VirtualPyObject*::set_internal_data
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:216,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 12
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: test_virtual_object
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - VirtualPyObject::VirtualPyObject
    - Py_DECREF
    - VirtualPyObject*::set_internal_data
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_virtual_object(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:241,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:249,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:253,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:257,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:260,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:261,1
    - Dst: Py_BUILD_ASSERT_EXPR
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_BUILD_ASSERT_EXPR(sizeof(int) == sizeof(unsigned int)) == 0)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 264
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 264
    functionName: _testcppext_exec
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT_EXPR
    - Py_DECREF
    - Py_BUILD_ASSERT
    - PyObject_CallMethod
    - PyModule_AddIntMacro
    - assert
    linkageType: ''
    returnType: int
    signature: int _testcppext_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: _FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC FUNC_NAME(MODULE_NAME)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: CURRENT_OPARG
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPARG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: CURRENT_OPERAND0
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: CURRENT_OPERAND1
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: CURRENT_TARGET
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_TARGET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXECUTOR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: TIER2_TO_TIER2
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIER2_TO_TIER2(EXECUTOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TARGET
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: GOTO_TIER_ONE
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOTO_TIER_ONE(TARGET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - UNUSED
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: LOAD_IP
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_IP(UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: LLTRACE_RESUME_FRAME
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LLTRACE_RESUME_FRAME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ALIAS
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: PATCH_JUMP
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATCH_JUMP(ALIAS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: JUMP_TO_JUMP_TARGET
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_JUMP_TARGET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: JUMP_TO_ERROR
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Tools/jit/template.c:104,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Tools/jit/template.c:113,1
    - Dst: UOP_STAT_INC
      Src: /src/cpython/Tools/jit/template.c:114,1
    - Dst: PATCH_JUMP
      Src: /src/cpython/Tools/jit/template.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - frame
    - stack_pointer
    - tstate
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - PyThreadState*
    assertStmts:
    - condition: (SIZEOF_VOID_P == 4)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/cpython/Tools/jit/template.c
    constantsTouched: []
    func_position:
      end: 122
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 122
    functionName: _JIT_ENTRY
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached:
    - PATCH_JUMP
    - UOP_STAT_INC
    - assert
    - OPT_STAT_INC
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: '_Py_CODEUNIT *

      _JIT_ENTRY(_PyInterpreterFrame *frame, _PyStackRef *stack_pointer, PyThreadState
      *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - NAME
    - ','
    - ALIAS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: PATCH_VALUE
    functionSourceFile: /src/cpython/Tools/jit/jit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATCH_VALUE(TYPE, NAME, ALIAS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: DECLARE_TARGET
    functionSourceFile: /src/cpython/Tools/jit/jit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_TARGET(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jitted
      Src: /src/cpython/Tools/jit/trampoline.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - exec
    - frame
    - stack_pointer
    - tstate
    argTypes:
    - _PyExecutorObject*
    - _PyInterpreterFrame*
    - _PyStackRef*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: _JIT_ENTRY
    functionSourceFile: /src/cpython/Tools/jit/trampoline.c
    functionUses: 0
    functionsReached:
    - jitted
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: "_Py_CODEUNIT *\n_JIT_ENTRY(\n    _PyExecutorObject *exec, _PyInterpreterFrame
      *frame, _PyStackRef *stack_pointer, PyThreadState *tstate\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_Compile
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:11,1
    - Dst: PyAST_mod2obj
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:13,1
    - Dst: Py_NewRef
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - module
    - mode
    - filename_ob
    - arena
    argTypes:
    - mod_ty
    - int
    - PyObject*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 19
    functionName: _build_return_object
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyAST_mod2obj
    - _PyAST_Compile
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _build_return_object(mod_ty module, int mode, PyObject *filename_ob, PyArena
      *arena)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:27,1
    - Dst: PyErr_Format
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:31,1
    - Dst: _PyArena_New
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:34,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:41,1
    - Dst: fopen
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:46,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:48,1
    - Dst: _PyPegen_run_parser_from_file_pointer
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:53,1
    - Dst: fclose
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:56,1
    - Dst: _build_return_object
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:61,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:64,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:65,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 21
    functionDepth: 8
    functionLinenumber: 21
    functionLinenumberEnd: 67
    functionName: parse_file
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyArena_New
    - _build_return_object
    - PyErr_SetFromErrnoWithFilename
    - fopen
    - PyArg_ParseTupleAndKeywords
    - _PyArena_Free
    - _PyPegen_run_parser_from_file_pointer
    - PyErr_Format
    - PyUnicode_FromString
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parse_file(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:75,1
    - Dst: PyErr_Format
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:79,1
    - Dst: _PyArena_New
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:82,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:89,1
    - Dst: _PyPegen_run_parser_from_string
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:95,1
    - Dst: _build_return_object
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:100,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:103,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:104,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 69
    functionDepth: 8
    functionLinenumber: 69
    functionLinenumberEnd: 106
    functionName: parse_string
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyArena_New
    - _PyPegen_run_parser_from_string
    - _build_return_object
    - PyArg_ParseTupleAndKeywords
    - _PyArena_Free
    - PyErr_Format
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parse_string(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_clear_memo_statistics
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: clear_memo_stats
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 0
    functionsReached:
    - _PyPegen_clear_memo_statistics
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_memo_stats(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_get_memo_statistics
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: get_memo_stats
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 0
    functionsReached:
    - _PyPegen_get_memo_statistics
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_memo_stats(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_get_memo_statistics
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:132,1
    - Dst: PyList_Size
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:136,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:138,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:139,1
    - Dst: printf
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 150
    functionName: dump_memo_stats
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - Py_DECREF
    - PyLong_AsLong
    - _PyPegen_get_memo_statistics
    - printf
    - PyList_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dump_memo_stats(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: PyInit_parse
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_parse(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::DisableThreadLibraryCalls
      Src: /src/cpython/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/cpython/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/cpython/Tools/msi/bundle/bootstrap/pythonba.cpp:48,1
    - Dst: CreateBootstrapperApplication
      Src: /src/cpython/Tools/msi/bundle/bootstrap/pythonba.cpp:50,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/pythonba.cpp
    functionUses: 0
    functionsReached:
    - BalInitialize
    - CreateBootstrapperApplication
    - BalExitOnFailure
    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/cpython/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/cpython/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/cpython/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/cpython/Tools/msi/bundle/bootstrap/pythonba.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MbaPrereqBootstrapperApplicationDestroy()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::ProcessPageControls
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:225,1
    - Dst: ThemeGetPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:225,1
    - Dst: PythonBootstrapperApplication::InstallPage_Show
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:231,1
    - Dst: PythonBootstrapperApplication::Custom1Page_Show
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:233,1
    - Dst: PythonBootstrapperApplication::Custom2Page_Show
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:235,1
    - Dst: PythonBootstrapperApplication::ModifyPage_Show
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:237,1
    - Dst: PythonBootstrapperApplication::SuccessPage_Show
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:239,1
    - Dst: PythonBootstrapperApplication::FailurePage_Show
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:241,1
    - Dst: ThemeShowPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:246,1
    - Dst: ThemeShowPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:247,1
    - Dst: InvalidateRect
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:249,1
    - Dst: ThemeSetFocus
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:255,1
    - Dst: ThemeSetFocus
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - newPageId
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 259
    functionName: PythonBootstrapperApplication::ShowPage
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ThemeGetPage
    - PythonBootstrapperApplication::ProcessPageControls
    - PythonBootstrapperApplication::FailurePage_Show
    - InvalidateRect
    - PythonBootstrapperApplication::ModifyPage_Show
    - ThemeShowPage
    - ThemeSetFocus
    - PythonBootstrapperApplication::Custom1Page_Show
    - PythonBootstrapperApplication::Custom2Page_Show
    - PythonBootstrapperApplication::SuccessPage_Show
    - PythonBootstrapperApplication::InstallPage_Show
    linkageType: ''
    returnType: void
    signature: void ShowPage(DWORD newPageId)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::OnClickCloseButton
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:277,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:284,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:286,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:287,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:289,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:290,1
    - Dst: PythonBootstrapperApplication::EnsureTargetDir
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:292,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:293,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:295,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:299,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:301,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:303,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:305,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:312,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:313,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:317,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:318,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:322,1
    - Dst: PythonBootstrapperApplication::EnsureTargetDir
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:324,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:325,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:327,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:328,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:330,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:333,1
    - Dst: ThemeIsControlChecked
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:337,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:338,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:340,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:340,1
    - Dst: ThemeIsControlChecked
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:344,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:345,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:347,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:347,1
    - Dst: ThemeIsControlChecked
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:351,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:352,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:354,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:354,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:355,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:357,1
    - Dst: ThemeSendControlMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:358,1
    - Dst: ThemeGetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:360,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:364,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:369,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:371,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:371,1
    - Dst: wcscmp
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:372,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:373,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:375,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:378,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:382,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:382,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:382,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:383,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:384,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:387,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:391,1
    - Dst: ::SHBrowseForFolderW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:401,1
    - Dst: ::SHGetPathFromIDListW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:402,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:403,1
    - Dst: ::CoTaskMemFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:407,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:414,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:415,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:416,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:417,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:419,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:423,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:427,1
    - Dst: PythonBootstrapperApplication::EnableMaxPathSupport
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:431,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:432,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 129
    argCount: 1
    argNames:
    - id
    argTypes:
    - CONTROL_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 438
    functionName: PythonBootstrapperApplication::OnCommand
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::WillElevate
    - ReleaseStr
    - BalGetStringVariable
    - ExitOnFailure
    - ThemeControlElevates
    - ThemeSetTextControl
    - SetVariableNumeric
    - wcscmp
    - SetVariableString
    - ThemeControlEnable
    - PythonBootstrapperApplication::EnsureTargetDir
    - ::SHBrowseForFolderW
    - ::SHGetPathFromIDListW
    - BalGetNumericVariable
    - PythonBootstrapperApplication::EnableMaxPathSupport
    - ThemeIsControlChecked
    - SUCCEEDED
    - PythonBootstrapperApplication::OnPlan
    - ThemeSendControlMessage
    - PythonBootstrapperApplication::OnClickCloseButton
    - ThemeGetTextControl
    - PythonBootstrapperApplication::SavePageSettings
    - BalFormatString
    - ::CoTaskMemFree
    - PythonBootstrapperApplication::GoToPage
    linkageType: ''
    returnType: void
    signature: void OnCommand(CONTROL_ID id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:442,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:443,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:444,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:445,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:448,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:448,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:450,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:450,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 454
    functionName: PythonBootstrapperApplication::InstallPage_Show
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - LocGetString
    - SUCCEEDED
    - PythonBootstrapperApplication::WillElevate
    - ThemeControlElevates
    - ThemeSetTextControl
    - BalGetNumericVariable
    linkageType: ''
    returnType: void
    signature: void InstallPage_Show()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:459,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:459,1
    - Dst: ThemeSendControlMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:463,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:470,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:470,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:472,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:472,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:476,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:476,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 479
    functionName: PythonBootstrapperApplication::Custom1Page_Show
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - LocGetString
    - SUCCEEDED
    - ThemeSendControlMessage
    - FAILED
    - ThemeSetTextControl
    - BalGetNumericVariable
    linkageType: ''
    returnType: void
    signature: void Custom1Page_Show()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:485,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:485,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:489,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:490,1
    - Dst: ThemeShowControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:491,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:493,1
    - Dst: ThemeShowControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:494,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:497,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:497,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:498,1
    - Dst: ThemeSendControlMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:500,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:501,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:505,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:506,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:507,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:508,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:509,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:510,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:514,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:515,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:516,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:519,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:524,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:525,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:525,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:526,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:527,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:529,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 532
    functionName: PythonBootstrapperApplication::Custom2Page_Show
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - SUCCEEDED
    - PythonBootstrapperApplication::WillElevate
    - ThemeShowControl
    - BalGetStringVariable
    - ThemeControlEnable
    - StrFree
    - ThemeSendControlMessage
    - BalFormatString
    - ThemeControlElevates
    - FAILED
    - ThemeSetTextControl
    - BalGetNumericVariable
    linkageType: ''
    returnType: void
    signature: void Custom2Page_Show()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 536
    functionName: PythonBootstrapperApplication::ModifyPage_Show
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:552,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:555,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:558,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:561,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:567,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:569,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:570,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:574,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:575,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:578,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:579,1
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:583,1
    - Dst: RegQueryValueExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:591,1
    - Dst: RegCloseKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:593,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:596,1
    - Dst: ThemeControlElevates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:599,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:603,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:605,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:606,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 609
    functionName: PythonBootstrapperApplication::SuccessPage_Show
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - LocGetString
    - RegCloseKey
    - BalLog
    - ThemeControlEnable
    - StrFree
    - RegOpenKeyExW
    - BalFormatString
    - ThemeControlElevates
    - ThemeSetTextControl
    - RegQueryValueExW
    - IsWindowsVersionOrGreater
    linkageType: ''
    returnType: void
    signature: void SuccessPage_Show()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:619,1
    - Dst: StrAllocString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:625,1
    - Dst: StrAllocFromError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:628,1
    - Dst: StrAllocFromError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:630,1
    - Dst: StrAllocString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:636,1
    - Dst: StrAllocFormatted
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:639,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:643,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:647,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:648,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:655,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:656,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:657,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:658,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 659
    functionName: PythonBootstrapperApplication::FailurePage_Show
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - StrAllocFromError
    - StrAllocString
    - ReleaseStr
    - ThemeControlEnable
    - StrAllocFormatted
    - FAILED
    - ThemeSetTextControl
    linkageType: ''
    returnType: void
    signature: void FailurePage_Show()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:663,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:664,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:665,1
    - Dst: StrAllocFormatted
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:670,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:672,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:685,1
    - Dst: ShellExecuteW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:686,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 688
    functionName: PythonBootstrapperApplication::EnableMaxPathSupport
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ShellExecuteW
    - BalLog
    - BalGetStringVariable
    - StrAllocFormatted
    - FAILED
    linkageType: ''
    returnType: void
    signature: void EnableMaxPathSupport()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::CreateThread
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:696,1
    - Dst: ExitWithLastError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 703
    functionName: PythonBootstrapperApplication::OnStartup
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:711,1
    - Dst: ReleaseHandle
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 706
    functionDepth: 3
    functionLinenumber: 706
    functionLinenumberEnd: 721
    functionName: PythonBootstrapperApplication::OnShutdown
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ReleaseHandle
    - _winapi_WaitForSingleObject
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnShutdown()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:732,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:733,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:736,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:736,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:743,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:743,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:747,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:755,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:756,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:757,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:761,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:762,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:763,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:773,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:773,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:776,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:776,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:781,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:784,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:787,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:789,1
    - Dst: CheckCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:792,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 5
    argNames:
    - wzPackageId
    - LPCWSTR
    - fPerMachine
    - DWORD64
    - BOOTSTRAPPER_RELATED_OPERATION
    argTypes:
    - __in_z
    - __in_z
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 793
    functionName: PythonBootstrapperApplication::OnDetectRelatedMsiPackage
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ::CompareStringW
    - SetVariableNumeric
    - BalLog
    - CheckCanceled
    - FAILED
    - BalGetNumericVariable
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:803,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:809,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:812,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:816,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:816,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:817,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:819,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:821,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:826,1
    - Dst: CheckCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:830,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: 831
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 831
    functionName: PythonBootstrapperApplication::OnDetectRelatedBundle
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - LocGetString
    - BalInfoAddRelatedBundleAsPackage
    - PythonBootstrapperApplication::SetState
    - SUCCEEDED
    - BalLog
    - CheckCanceled
    - PythonBootstrapperApplication::LoadOptionalFeatureStates
    - 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - wzPackageId
    - hrStatus
    - BOOTSTRAPPER_PACKAGE_STATE
    argTypes:
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 838
    functionName: PythonBootstrapperApplication::OnDetectPackageComplete
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnDetectPackageComplete(\n        __in LPCWSTR wzPackageId,\n
      \       __in HRESULT hrStatus,\n        __in BOOTSTRAPPER_PACKAGE_STATE state\n
      \   )"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:842,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:843,1
    - Dst: PythonBootstrapperApplication::OnDetectComplete
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:844,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:847,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:858,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:858,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:860,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:861,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:862,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:863,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:868,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:868,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:871,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:871,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:874,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:874,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:880,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:888,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:893,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:894,1
    - Dst: PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:899,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:903,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:904,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:908,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:913,1
    - Dst: PythonBootstrapperApplication::EvaluateConditions
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:914,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:917,1
    - Dst: PythonBootstrapperApplication::EnsureTargetDir
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:919,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:922,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:930,1
    - Dst: ::PostMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:931,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 934
    functionName: PythonBootstrapperApplication::OnDetectComplete
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - SUCCEEDED
    - PythonBootstrapperApplication::EvaluateConditions
    - PythonBootstrapperApplication::OnDetectComplete
    - SetVariableNumeric
    - ::PostMessageW
    - SetVariableString
    - BalLog
    - PythonBootstrapperApplication::EnsureTargetDir
    - PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
    - FAILED
    - BalGetNumericVariable
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnDetectComplete(__in HRESULT hrStatus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:941,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: 942
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 942
    functionName: PythonBootstrapperApplication::OnPlanRelatedBundle
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:955,1
    - Dst: ReleaseNullStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:961,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:964,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:969,1
    - Dst: BalInfoFindPackageById
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:969,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:971,1
    - Dst: EvaluateCondition
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:971,1
    - Dst: CheckCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:976,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - wzPackageId
    - BOOTSTRAPPER_REQUEST_STATE *pRequestState
    argTypes:
    - __in_z
    - __inout
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 977
    functionName: PythonBootstrapperApplication::OnPlanPackageBegin
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ::CompareStringW
    - EvaluateCondition
    - SUCCEEDED
    - BalLog
    - CheckCanceled
    - BalInfoFindPackageById
    - ReleaseNullStr
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:986,1
    - Dst: wcscmp
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:986,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:987,1
    - Dst: GetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:987,1
    - Dst: CheckCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:995,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: 996
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 996
    functionName: PythonBootstrapperApplication::OnPlanMsiFeature
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - wcscmp
    - GetVariableNumeric
    - SUCCEEDED
    - 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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:999,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1000,1
    - Dst: PythonBootstrapperApplication::OnPlanComplete
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1001,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1004,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1006,1
    - Dst: ::PostMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1013
    functionName: PythonBootstrapperApplication::OnPlanComplete
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - ::PostMessageW
    - SUCCEEDED
    - BalLog
    - PythonBootstrapperApplication::OnPlanComplete
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnPlanComplete(__in HRESULT hrStatus)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BalInfoFindPackageById
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1023,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1024,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1026,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1030,1
    - Dst: PythonBootstrapperApplication::OnCachePackageBegin
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1034,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - wzPackageId
    - cCachePayloads
    - dw64PackageCacheSize
    argTypes:
    - __in_z
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1035
    functionName: PythonBootstrapperApplication::OnCachePackageBegin
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - BalInfoFindPackageById
    - PythonBootstrapperApplication::OnCachePackageBegin
    - ThemeSetTextControl
    - SUCCEEDED
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1048,1
    - Dst: ::StringCchPrintfW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1051,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1051,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1052,1
    - Dst: ThemeSetProgressControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1054,1
    - Dst: ThemeSetProgressControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1057,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1059,1
    - Dst: PythonBootstrapperApplication::OnCacheAcquireProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1061,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: 1062
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1062
    functionName: PythonBootstrapperApplication::OnCacheAcquireProgress
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::OnCacheAcquireProgress
    - BalLog
    - countof
    - ::StringCchPrintfW
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - ThemeSetProgressControl
    - 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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1071,1
    - Dst: PythonBootstrapperApplication::OnCacheAcquireComplete
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1072,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: 1073
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1073
    functionName: PythonBootstrapperApplication::OnCacheAcquireComplete
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1082,1
    - Dst: PythonBootstrapperApplication::OnCacheVerifyComplete
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1083,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: 1084
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1084
    functionName: PythonBootstrapperApplication::OnCacheVerifyComplete
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::OnCacheVerifyComplete
    - PythonBootstrapperApplication::SetProgressState
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1088,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - HRESULT
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1090
    functionName: PythonBootstrapperApplication::OnCacheComplete
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1107,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1108,1
    - Dst: BalRetryErrorOccurred
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1117,1
    - Dst: StrAllocFromError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1122,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1123,1
    - Dst: StrAllocFormatted
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1124,1
    - Dst: ::MessageBoxW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1128,1
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1132,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1132,1
    - Dst: BalRetryErrorOccurred
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1135,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1138,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: 1140
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1140
    functionName: PythonBootstrapperApplication::OnError
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - StrAllocFromError
    - HRESULT_FROM_WIN32
    - ReleaseStr
    - PythonBootstrapperApplication::SetProgressState
    - ::MessageBoxW
    - StrAllocFormatted
    - SendEmbeddedError
    - FAILED
    - 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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1153,1
    - Dst: ::MessageBoxW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1156,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1161,1
    - Dst: PythonBootstrapperApplication::OnExecuteMsiMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1164,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: 1165
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1165
    functionName: PythonBootstrapperApplication::OnExecuteMsiMessage
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ThemeSetTextControl
    - ::MessageBoxW
    - BalLog
    - PythonBootstrapperApplication::OnExecuteMsiMessage
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1172,1
    - Dst: ::StringCchPrintfW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1175,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1175,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1176,1
    - Dst: ThemeSetProgressControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1178,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1179,1
    - Dst: PythonBootstrapperApplication::OnProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dwProgressPercentage
    - dwOverallProgressPercentage
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1182
    functionName: PythonBootstrapperApplication::OnProgress
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::OnProgress
    - BalLog
    - countof
    - ::StringCchPrintfW
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - ThemeSetProgressControl
    - ThemeSetTextControl
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnProgress(__in DWORD dwProgressPercentage, __in DWORD
      dwOverallProgressPercentage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BalInfoFindPackageById
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1192,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1200,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1204,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1208,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1215,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1223,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1224,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1229,1
    - Dst: PythonBootstrapperApplication::OnExecutePackageBegin
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1230,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - wzPackageId
    - fExecute
    argTypes:
    - __in_z
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1231
    functionName: PythonBootstrapperApplication::OnExecutePackageBegin
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - LocGetString
    - ReleaseStr
    - BalInfoFindPackageById
    - BalFormatString
    - PythonBootstrapperApplication::OnExecutePackageBegin
    - ThemeSetTextControl
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnExecutePackageBegin(__in_z LPCWSTR wzPackageId, __in
      BOOL fExecute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1242,1
    - Dst: ::StringCchPrintfW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1245,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1245,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1246,1
    - Dst: ThemeSetProgressControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1248,1
    - Dst: ThemeSetProgressControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1251,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1253,1
    - Dst: PythonBootstrapperApplication::OnExecuteProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - wzPackageId
    - dwProgressPercentage
    - dwOverallProgressPercentage
    argTypes:
    - __in_z
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1256
    functionName: PythonBootstrapperApplication::OnExecuteProgress
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - BalLog
    - countof
    - ::StringCchPrintfW
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - ThemeSetProgressControl
    - ThemeSetTextControl
    - PythonBootstrapperApplication::OnExecuteProgress
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1265,1
    - Dst: _wcsnicmp
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1267,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1267,1
    - Dst: SendMessageTimeoutW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1268,1
    - Dst: reinterpret_cast<LPARAM>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1272,1
    - Dst: PythonBootstrapperApplication::OnExecutePackageComplete
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1279,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: 1282
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1282
    functionName: PythonBootstrapperApplication::OnExecutePackageComplete
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - _wcsnicmp
    - SUCCEEDED
    - PythonBootstrapperApplication::OnExecutePackageComplete
    - PythonBootstrapperApplication::SetProgressState
    - reinterpret_cast<LPARAM>
    - SendMessageTimeoutW
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1286,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1287,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1288,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1289,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1291,1
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1293
    functionName: PythonBootstrapperApplication::OnExecuteComplete
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::SetProgressState
    - ThemeSetTextControl
    - ThemeControlEnable
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnExecuteComplete(__in HRESULT hrStatus)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::StringCchCopyW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1312,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1312,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1317,1
    - Dst: ::GetOpenFileNameW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1323,1
    - Dst: SetLocalSource
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1324,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1325,1
    - Dst: CheckCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1336,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: 1337
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1337
    functionName: PythonBootstrapperApplication::OnResolveSource
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - SUCCEEDED
    - SetLocalSource
    - CheckCanceled
    - countof
    - ::GetOpenFileNameW
    - ::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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1350,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1353,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - hrStatus
    - BOOTSTRAPPER_APPLY_RESTART
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1357
    functionName: PythonBootstrapperApplication::OnApplyComplete
    functionSourceFile: /src/cpython/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: 1360
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1360
    functionName: PythonBootstrapperApplication::OnLaunchApprovedExeComplete
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1375,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1376,1
    - Dst: ThemeInitialize
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1379,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1380,1
    - Dst: PythonBootstrapperApplication*::InitializeData
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1382,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1383,1
    - Dst: PythonBootstrapperApplication*::InitializeTaskbarButton
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1386,1
    - Dst: PythonBootstrapperApplication*::CreateMainWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1387,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1388,1
    - Dst: PythonBootstrapperApplication*::ValidateOperatingSystem
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1390,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1392,1
    - Dst: PythonBootstrapperApplication*::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1393,1
    - Dst: ::PostMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1394,1
    - Dst: PythonBootstrapperApplication*::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1397,1
    - Dst: ::PostMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1398,1
    - Dst: ::GetMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1402,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1405,1
    - Dst: ThemeHandleKeyboardMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1406,1
    - Dst: ::TranslateMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1407,1
    - Dst: ::DispatchMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1408,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1414,1
    - Dst: PythonBootstrapperApplication*::CheckCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1416,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1417,1
    - Dst: PythonBootstrapperApplication*::DestroyMainWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1422,1
    - Dst: HRESULT_CODE
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1425,1
    - Dst: PythonBootstrapperApplication*::_engine::Quit
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1431,1
    - Dst: ReleaseTheme
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1433,1
    - Dst: ThemeUninitialize
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1434,1
    - Dst: ::CoUninitialize
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 1
    argNames:
    - pvContext
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1442
    functionName: PythonBootstrapperApplication::UiThreadProc
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication*::CheckCanceled
    - ::CoInitialize
    - ::PostMessageW
    - ThemeInitialize
    - ::GetMessageW
    - PythonBootstrapperApplication*::CreateMainWindow
    - ReleaseTheme
    - ThemeUninitialize
    - PythonBootstrapperApplication*::DestroyMainWindow
    - ::DispatchMessageW
    - ::TranslateMessage
    - PythonBootstrapperApplication*::ValidateOperatingSystem
    - PythonBootstrapperApplication*::SetState
    - PythonBootstrapperApplication*::InitializeTaskbarButton
    - ::CoUninitialize
    - HRESULT_FROM_WIN32
    - PythonBootstrapperApplication*::InitializeData
    - BalExitOnFailure
    - FAILED
    - HRESULT_CODE
    - ThemeHandleKeyboardMessage
    - PythonBootstrapperApplication*::_engine::Quit
    linkageType: ''
    returnType: DWORD
    signature: DWORD UiThreadProc(__in LPVOID pvContext)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1462,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1463,1
    - Dst: FileExistsEx
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1465,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1466,1
    - Dst: XmlLoadDocumentFromFile
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1471,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1472,1
    - Dst: XmlSelectNodes
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1475,1
    - Dst: ExitFunction1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1477,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1479,1
    - Dst: IXMLDOMNodeList*::get_length
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1481,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1482,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1484,1
    - Dst: XmlNextElement
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1487,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1488,1
    - Dst: XmlGetAttributeEx
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1491,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1492,1
    - Dst: XmlGetAttribute
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1495,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1496,1
    - Dst: XmlGetText
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1497,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1500,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1503,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1504,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1506,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1507,1
    - Dst: ::StrToIntExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1508,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1509,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1511,1
    - Dst: ReleaseNullBSTR
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1514,1
    - Dst: ReleaseNullStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1515,1
    - Dst: ReleaseNullObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1516,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1519,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1522,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1523,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1524,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1525,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1528
    functionName: PythonBootstrapperApplication::ParseVariablesFromUnattendXml
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - IXMLDOMNodeList*::get_length
    - ReleaseStr
    - BalLog
    - ExitFunction1
    - ::StrToIntExW
    - BalExitOnFailure1
    - SetVariableNumeric
    - SetVariableString
    - XmlGetAttribute
    - XmlGetAttributeEx
    - ReleaseNullBSTR
    - FileExistsEx
    - XmlNextElement
    - BalExitOnFailure
    - XmlGetText
    - FAILED
    - XmlLoadDocumentFromFile
    - ReleaseNullObject
    - ReleaseNullStr
    - ::CompareStringW
    - ReleaseObject
    - XmlSelectNodes
    - BalFormatString
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT ParseVariablesFromUnattendXml()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BalManifestLoad
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1539,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1540,1
    - Dst: PythonBootstrapperApplication::ParseOverridableVariablesFromXml
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1542,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1543,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStates
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1546,1
    - Dst: PythonBootstrapperApplication::ParseVariablesFromUnattendXml
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1549,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1550,1
    - Dst: PythonBootstrapperApplication::ProcessCommandLine
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1552,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1553,1
    - Dst: PathRelativeToModule
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1555,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1556,1
    - Dst: PythonBootstrapperApplication::LoadLocalization
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1558,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1559,1
    - Dst: PythonBootstrapperApplication::LoadTheme
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1561,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1562,1
    - Dst: BalInfoParseFromXml
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1564,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1565,1
    - Dst: BalConditionsParseFromXml
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1567,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1568,1
    - Dst: PythonBootstrapperApplication::LoadBootstrapperBAFunctions
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1570,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1571,1
    - Dst: PythonBootstrapperApplication::UpdateUIStrings
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1573,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1574,1
    - Dst: PythonBootstrapperApplication::GetBundleFileVersion
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1576,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1579,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1583
    functionName: PythonBootstrapperApplication::InitializeData
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::ProcessCommandLine
    - PythonBootstrapperApplication::ParseOverridableVariablesFromXml
    - PythonBootstrapperApplication::ParseVariablesFromUnattendXml
    - PythonBootstrapperApplication::LoadTheme
    - BalConditionsParseFromXml
    - PythonBootstrapperApplication::LoadBootstrapperBAFunctions
    - PythonBootstrapperApplication::UpdateUIStrings
    - PythonBootstrapperApplication::LoadLocalization
    - ReleaseObject
    - ReleaseStr
    - PythonBootstrapperApplication::GetBundleFileVersion
    - BalInfoParseFromXml
    - ExitOnFailure
    - PythonBootstrapperApplication::LoadOptionalFeatureStates
    - BalExitOnFailure
    - BalManifestLoad
    - PathRelativeToModule
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT InitializeData()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ::CommandLineToArgvW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1597,1
    - Dst: ExitOnNullWithLastError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1598,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1602,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1605,1
    - Dst: StrAllocString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1610,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1611,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1612,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1613,1
    - Dst: wcschr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1617,1
    - Dst: StrAllocString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1619,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1620,1
    - Dst: DictKeyExists
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1622,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1624,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1628,1
    - Dst: StrAllocString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1630,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1631,1
    - Dst: ::StrToIntEx
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1633,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1634,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1636,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1638,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1640,1
    - Dst: ::LocalFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1648,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1651,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1652,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 1
    argNames:
    - psczLanguage
    argTypes:
    - __inout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1655
    functionName: PythonBootstrapperApplication::ProcessCommandLine
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ::CommandLineToArgvW
    - ::CompareStringW
    - StrAllocString
    - SetVariableNumeric
    - wcschr
    - ReleaseStr
    - SetVariableString
    - BalLog
    - ExitOnNullWithLastError
    - ::LocalFree
    - ExitOnFailure
    - BalExitOnFailure
    - DictKeyExists
    - ::StrToIntEx
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT ProcessCommandLine(__inout LPWSTR* psczLanguage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LocProbeForFile
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1662,1
    - Dst: BalExitOnFailure2
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1663,1
    - Dst: LocLoadFromFile
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1665,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1666,1
    - Dst: ::SetThreadLocale
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1669,1
    - Dst: StrAllocString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1672,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1673,1
    - Dst: LocLocalizeString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1675,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1676,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - wzModulePath
    - wzLanguage
    argTypes:
    - __in_z
    - __in_z_opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1682
    functionName: PythonBootstrapperApplication::LoadLocalization
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - BalExitOnFailure1
    - StrAllocString
    - BalExitOnFailure2
    - ::SetThreadLocale
    - ReleaseStr
    - LocLocalizeString
    - ExitOnFailure
    - LocProbeForFile
    - LocLoadFromFile
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT LoadLocalization(__in_z LPCWSTR wzModulePath, __in_z_opt LPCWSTR
      wzLanguage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LocProbeForFile
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1691,1
    - Dst: BalExitOnFailure2
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1692,1
    - Dst: ThemeLoadFromFile
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1694,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1695,1
    - Dst: ThemeLocalize
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1697,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1698,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1704,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1705,1
    - Dst: ThemeUpdateCaption
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1706,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1710,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - wzModulePath
    - wzLanguage
    argTypes:
    - __in_z
    - __in_z_opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1714
    functionName: PythonBootstrapperApplication::LoadTheme
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - BalExitOnFailure1
    - ThemeUpdateCaption
    - ThemeLoadFromFile
    - SUCCEEDED
    - BalExitOnFailure2
    - ReleaseStr
    - ThemeLocalize
    - 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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1726,1
    - Dst: ExitFunction1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1728,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1730,1
    - Dst: IXMLDOMNodeList*::get_length
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1732,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1733,1
    - Dst: DictCreateStringList
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1736,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1737,1
    - Dst: XmlNextElement
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1740,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1741,1
    - Dst: XmlGetAttributeEx
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1744,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1745,1
    - Dst: XmlGetYesNoAttribute
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1747,1
    - Dst: DictAddKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1750,1
    - Dst: ExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1751,1
    - Dst: ReleaseNullObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1755,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1760,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1761,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - IXMLDOMDocument* pixdManifest
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1764
    functionName: PythonBootstrapperApplication::ParseOverridableVariablesFromXml
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - IXMLDOMNodeList*::get_length
    - ExitOnFailure1
    - XmlGetAttributeEx
    - ReleaseNullObject
    - XmlNextElement
    - ReleaseObject
    - ReleaseStr
    - ExitFunction1
    - ExitOnFailure
    - XmlSelectNodes
    - DictAddKey
    - DictCreateStringList
    - XmlGetYesNoAttribute
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT ParseOverridableVariablesFromXml(__in IXMLDOMDocument* pixdManifest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PathForCurrentProcess
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1775,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1776,1
    - Dst: FileVersion
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1778,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1779,1
    - Dst: SetVariableVersion
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1781,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1782,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1788
    functionName: PythonBootstrapperApplication::GetBundleFileVersion
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - FileVersion
    - ReleaseStr
    - SetVariableVersion
    - BalExitOnFailure
    - PathForCurrentProcess
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT GetBundleFileVersion()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HICON>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1796,1
    - Dst: ::GetModuleHandleW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1809,1
    - Dst: ::LoadIconW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1811,1
    - Dst: MAKEINTRESOURCEW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1811,1
    - Dst: RGB
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1815,1
    - Dst: RGB
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1816,1
    - Dst: PythonBootstrapperApplication::RemapColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1823,1
    - Dst: ::LoadCursorW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1830,1
    - Dst: ::RegisterClassW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1834,1
    - Dst: ExitWithLastError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1835,1
    - Dst: ::IsWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1847,1
    - Dst: ::GetCursorPos
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1852,1
    - Dst: ::MonitorFromPoint
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1853,1
    - Dst: ::GetMonitorInfoW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1856,1
    - Dst: ::CreateWindowExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1863,1
    - Dst: ExitOnNullWithLastError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1877,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1794
    functionDepth: 1
    functionLinenumber: 1794
    functionLinenumberEnd: 1883
    functionName: PythonBootstrapperApplication::CreateMainWindow
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ExitWithLastError
    - ::LoadCursorW
    - reinterpret_cast<HICON>
    - ::MonitorFromPoint
    - RGB
    - PythonBootstrapperApplication::RemapColor
    - ::GetMonitorInfoW
    - ::IsWindow
    - ::CreateWindowExW
    - ExitOnNullWithLastError
    - MAKEINTRESOURCEW
    - ::LoadIconW
    - ::GetModuleHandleW
    - ::GetCursorPos
    - ::RegisterClassW
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT CreateMainWindow()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::CoCreateInstance
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1892,1
    - Dst: __uuidof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1892,1
    - Dst: reinterpret_cast<LPVOID*>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1892,1
    - Dst: ExitFunction1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1895,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1897,1
    - Dst: ::RegisterWindowMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1899,1
    - Dst: BalExitOnNullWithLastError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1889
    functionDepth: 0
    functionLinenumber: 1889
    functionLinenumberEnd: 1904
    functionName: PythonBootstrapperApplication::InitializeTaskbarButton
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalExitOnNullWithLastError
    - __uuidof
    - ExitFunction1
    - ::CoCreateInstance
    - BalExitOnFailure
    - ::RegisterWindowMessageW
    - reinterpret_cast<LPVOID*>
    linkageType: ''
    returnType: void
    signature: void InitializeTaskbarButton()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::IsWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1910,1
    - Dst: ::DestroyWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1911,1
    - Dst: ::UnregisterClassW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1920
    functionName: PythonBootstrapperApplication::DestroyMainWindow
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ::UnregisterClassW
    - ::DestroyWindow
    - ::IsWindow
    linkageType: ''
    returnType: void
    signature: void DestroyMainWindow()
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PythonBootstrapperApplication*>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1933,1
    - Dst: ::GetWindowLongPtrW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1933,1
    - Dst: reinterpret_cast<LPCREATESTRUCT>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1937,1
    - Dst: reinterpret_cast<PythonBootstrapperApplication*>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1938,1
    - Dst: ::SetWindowLongPtrW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1940,1
    - Dst: reinterpret_cast<LONG_PTR>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1940,1
    - Dst: ThemeDefWindowProc
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1945,1
    - Dst: ::SetWindowLongPtrW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1946,1
    - Dst: auto::OnCreate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1951,1
    - Dst: auto::OnSystemShutdown
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1957,1
    - Dst: static_cast<DWORD>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1957,1
    - Dst: auto::OnClose
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1961,1
    - Dst: ::PostQuitMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1967,1
    - Dst: auto::OnShowHelp
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1978,1
    - Dst: auto::OnDetect
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1982,1
    - Dst: auto::OnPlan
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1986,1
    - Dst: static_cast<BOOTSTRAPPER_ACTION>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1986,1
    - Dst: auto::OnApply
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1990,1
    - Dst: auto::OnChangeState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1994,1
    - Dst: static_cast<PYBA_STATE>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1994,1
    - Dst: auto::OnShowFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1998,1
    - Dst: LOWORD
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2002,1
    - Dst: auto::OnClickRestartButton
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2007,1
    - Dst: auto::OnCommand
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2019,1
    - Dst: auto::OnCommand
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2023,1
    - Dst: LOWORD
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2023,1
    - Dst: reinterpret_cast<LPNMHDR>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2029,1
    - Dst: static_cast<DWORD>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2033,1
    - Dst: auto::OnClickLogFileLink
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2035,1
    - Dst: auto::SetControlColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2046,1
    - Dst: ThemeDefWindowProc
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2058,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 109
    argCount: 4
    argNames:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    argTypes:
    - __in
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 1926
    functionDepth: 0
    functionLinenumber: 1926
    functionLinenumberEnd: 2059
    functionName: PythonBootstrapperApplication::WndProc
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<LPNMHDR>
    - auto::OnShowFailure
    - static_cast<DWORD>
    - reinterpret_cast<PythonBootstrapperApplication*>
    - auto::OnClose
    - auto::OnClickRestartButton
    - ::GetWindowLongPtrW
    - auto::OnChangeState
    - auto::OnSystemShutdown
    - LOWORD
    - auto::SetControlColor
    - static_cast<BOOTSTRAPPER_ACTION>
    - auto::OnClickLogFileLink
    - static_cast<PYBA_STATE>
    - reinterpret_cast<LONG_PTR>
    - ::SetWindowLongPtrW
    - ::PostQuitMessage
    - auto::OnPlan
    - reinterpret_cast<LPCREATESTRUCT>
    - auto::OnCreate
    - ThemeDefWindowProc
    - auto::OnApply
    - auto::OnCommand
    - auto::OnDetect
    - auto::OnShowHelp
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2067,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2067,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2068,1
    - Dst: C_ASSERT
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2070,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2070,1
    - Dst: C_ASSERT
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2071,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2071,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2071,1
    - Dst: ThemeGetPageIds
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2073,1
    - Dst: countof
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2073,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2087,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2088,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2089,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2090,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2096,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - HWND
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2097
    functionName: PythonBootstrapperApplication::OnCreate
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - SUCCEEDED
    - ReleaseStr
    - C_ASSERT
    - countof
    - ThemeGetPageIds
    - BalExitOnFailure
    - BalFormatString
    - ThemeSetTextControl
    - ThemeLoadControls
    linkageType: ''
    returnType: BOOL
    signature: BOOL OnCreate(__in HWND hWnd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RGB
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2100,1
    - Dst: GetSysColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2101,1
    - Dst: RGB
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2102,1
    - Dst: GetSysColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2103,1
    - Dst: RGB
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2105,1
    - Dst: GetSysColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2106,1
    - Dst: GetSysColorBrush
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fg
    - bg
    - bgBrush
    argTypes:
    - COLORREF*
    - COLORREF*
    - HBRUSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2109
    functionName: PythonBootstrapperApplication::RemapColor
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - RGB
    - GetSysColor
    - GetSysColorBrush
    linkageType: ''
    returnType: void
    signature: void RemapColor(COLORREF *fg, COLORREF *bg, HBRUSH *bgBrush)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::RemapColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2125,1
    - Dst: ::SetTextColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2126,1
    - Dst: ::SetBkColor
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - hWnd
    - hDC
    - brush
    argTypes:
    - HWND
    - HDC
    - HBRUSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2132
    functionName: PythonBootstrapperApplication::SetControlColor
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2138,1
    - Dst: ::ShowWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2142,1
    - Dst: CloseSplashScreen
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2148
    functionName: PythonBootstrapperApplication::OnShowFailure
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - ::ShowWindow
    - CloseSplashScreen
    linkageType: ''
    returnType: void
    signature: void OnShowFailure()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2155,1
    - Dst: ::ShowWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2159,1
    - Dst: CloseSplashScreen
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2165
    functionName: PythonBootstrapperApplication::OnShowHelp
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - ::ShowWindow
    - CloseSplashScreen
    linkageType: ''
    returnType: void
    signature: void OnShowHelp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2175,1
    - Dst: PythonBootstrapperApplication::OnDetect
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2176,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2177,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2180,1
    - Dst: ::ShowWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2184,1
    - Dst: CloseSplashScreen
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2187,1
    - Dst: Detect
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2190,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2191,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2194,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2171
    functionDepth: 1
    functionLinenumber: 2171
    functionLinenumberEnd: 2199
    functionName: PythonBootstrapperApplication::OnDetect
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - Detect
    - PythonBootstrapperApplication::OnDetect
    - BalLog
    - BalExitOnFailure
    - FAILED
    - ::ShowWindow
    - CloseSplashScreen
    linkageType: ''
    returnType: void
    signature: void OnDetect()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: StrAllocFormatted
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2229,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2230,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2231,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2232,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2234,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2236,1
    - Dst: StrAllocFormatted
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2243,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2244,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2245,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2246,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2248,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - BOOTSTRAPPER_ACTION
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2254
    functionName: PythonBootstrapperApplication::UpdateUIStrings
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - LocGetString
    - SUCCEEDED
    - ReleaseStr
    - SetVariableString
    - StrAllocFormatted
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT UpdateUIStrings(__in BOOTSTRAPPER_ACTION action)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::UpdateUIStrings
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2264,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2265,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2270,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2272,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2273,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2277,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2280,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2281,1
    - Dst: Plan
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2284,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2285,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2288,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - BOOTSTRAPPER_ACTION
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2259
    functionDepth: 1
    functionLinenumber: 2259
    functionLinenumberEnd: 2293
    functionName: PythonBootstrapperApplication::OnPlan
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 2
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::UpdateUIStrings
    - BalLog
    - PythonBootstrapperApplication::OnPlan
    - BalExitOnFailure
    - Plan
    - FAILED
    - HRESULT_FROM_WIN32
    linkageType: ''
    returnType: void
    signature: void OnPlan(__in BOOTSTRAPPER_ACTION action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2302,1
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2303,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2304,1
    - Dst: Apply
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2306,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2307,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2309,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2312,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2299
    functionDepth: 1
    functionLinenumber: 2299
    functionLinenumberEnd: 2317
    functionName: PythonBootstrapperApplication::OnApply
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::SetProgressState
    - ThemeControlEnable
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - Apply
    - BalExitOnFailure
    - FAILED
    linkageType: ''
    returnType: void
    signature: void OnApply()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StrAllocFromError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2334,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2334,1
    - Dst: ::MessageBoxW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2336,1
    - Dst: ::PostMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2345,1
    - Dst: PythonBootstrapperApplication::DeterminePageId
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2348,1
    - Dst: PythonBootstrapperApplication::ShowPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2351,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - PYBA_STATE
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2323
    functionDepth: 2
    functionLinenumber: 2323
    functionLinenumberEnd: 2356
    functionName: PythonBootstrapperApplication::OnChangeState
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - StrAllocFromError
    - ::PostMessageW
    - ReleaseStr
    - ::MessageBoxW
    - PythonBootstrapperApplication::DeterminePageId
    - HRESULT_FROM_WIN32
    - PythonBootstrapperApplication::ShowPage
    linkageType: ''
    returnType: void
    signature: void OnChangeState(__in PYBA_STATE state)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::IsCheckable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2374,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2376,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2379,1
    - Dst: ThemeSendControlMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2382,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2386,1
    - Dst: StrAllocFormatted
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2394,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2395,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2397,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2398,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2401,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2401,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2402,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2407,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2408,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2410,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2411,1
    - Dst: ThemeShowControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2413,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2420,1
    - Dst: StrFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2422,1
    - Dst: StrAllocFormatted
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2429,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2430,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2432,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2433,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2435,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2436,1
    - Dst: ThemeSendControlMessage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2437,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2438,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2442,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2449,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2458,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2459,1
    - Dst: ThemeSetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2460,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - THEME_PAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2464
    functionName: PythonBootstrapperApplication::ProcessPageControls
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - LocGetString
    - ::CompareStringW
    - SUCCEEDED
    - ReleaseStr
    - PythonBootstrapperApplication::IsCheckable
    - BalGetStringVariable
    - BalLog
    - ThemeShowControl
    - StrFree
    - ThemeControlEnable
    - ThemeSendControlMessage
    - StrAllocFormatted
    - BalFormatString
    - ThemeSetTextControl
    - BalGetNumericVariable
    linkageType: ''
    returnType: void
    signature: void ProcessPageControls(THEME_PAGE *pPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PromptCancel
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2477,1
    - Dst: ThemeControlEnable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2496
    functionName: PythonBootstrapperApplication::OnClose
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PromptCancel
    - ThemeControlEnable
    linkageType: ''
    returnType: BOOL
    signature: BOOL OnClose()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::SendMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2501
    functionDepth: 0
    functionLinenumber: 2501
    functionLinenumberEnd: 2503
    functionName: PythonBootstrapperApplication::OnClickCloseButton
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ::SendMessageW
    linkageType: ''
    returnType: void
    signature: void OnClickCloseButton()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AssertSz
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2511,1
    - Dst: ::SendMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2517
    functionName: PythonBootstrapperApplication::OnClickRestartButton
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2527,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2528,1
    - Dst: ShelExec
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2530,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2531,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2523
    functionDepth: 0
    functionLinenumber: 2523
    functionLinenumberEnd: 2537
    functionName: PythonBootstrapperApplication::OnClickLogFileLink
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalExitOnFailure1
    - ShelExec
    - ReleaseStr
    - BalGetStringVariable
    linkageType: ''
    returnType: void
    signature: void OnClickLogFileLink()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2544,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2548,1
    - Dst: ::PostMessageW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - PYBA_STATE
    - hrStatus
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2543
    functionDepth: 0
    functionLinenumber: 2543
    functionLinenumberEnd: 2555
    functionName: PythonBootstrapperApplication::SetState
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - PAGE
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2563
    functionName: PythonBootstrapperApplication::GoToPage
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2631,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2631,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 2
    argNames:
    - PYBA_STATE
    - pdwPageId
    argTypes:
    - __in
    - __out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2667
    functionName: PythonBootstrapperApplication::DeterminePageId
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2681,1
    - Dst: BalConditionEvaluate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2669
    functionDepth: 0
    functionLinenumber: 2669
    functionLinenumberEnd: 2682
    functionName: PythonBootstrapperApplication::WillElevate
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2696,1
    - Dst: malloc
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2702,1
    - Dst: GetFileVersionInfoW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2708,1
    - Dst: free
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2709,1
    - Dst: VerQueryValueW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2718,1
    - Dst: free
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2723,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2684
    functionDepth: 0
    functionLinenumber: 2684
    functionLinenumberEnd: 2726
    functionName: PythonBootstrapperApplication::IsCrtInstalled
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - GetFileVersionInfoW
    - VerQueryValueW
    - malloc
    - GetFileVersionInfoSizeW
    - free
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsCrtInstalled()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BalConditionEvaluate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2735,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2736,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2740,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2744,1
    - Dst: ReleaseNullStrSecure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2728
    functionDepth: 0
    functionLinenumber: 2728
    functionLinenumberEnd: 2752
    functionName: PythonBootstrapperApplication::EvaluateConditions
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - BalExitOnFailure1
    - ReleaseNullStrSecure
    - BalLog
    - BalExitOnFailure
    - BalConditionEvaluate
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT EvaluateConditions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetProgressValue
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2759,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dwOverallPercentage
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2755
    functionDepth: 0
    functionLinenumber: 2755
    functionLinenumberEnd: 2765
    functionName: PythonBootstrapperApplication::SetTaskbarButtonProgress
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 5
    functionsReached:
    - BalExitOnFailure1
    - SetProgressValue
    linkageType: ''
    returnType: void
    signature: void SetTaskbarButtonProgress(__in DWORD dwOverallPercentage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2772,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tbpFlags
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2768
    functionDepth: 1
    functionLinenumber: 2768
    functionLinenumberEnd: 2778
    functionName: PythonBootstrapperApplication::SetTaskbarButtonState
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalExitOnFailure1
    - PythonBootstrapperApplication::SetProgressState
    linkageType: ''
    returnType: void
    signature: void SetTaskbarButtonState(__in TBPFLAG tbpFlags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsCanceled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2784,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2784,1
    - Dst: IsRollingBack
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2786,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2786,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonState
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2781
    functionDepth: 2
    functionLinenumber: 2781
    functionLinenumberEnd: 2791
    functionName: PythonBootstrapperApplication::SetProgressState
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 7
    functionsReached:
    - IsCanceled
    - PythonBootstrapperApplication::SetTaskbarButtonState
    - FAILED
    - HRESULT_FROM_WIN32
    - IsRollingBack
    linkageType: ''
    returnType: void
    signature: void SetProgressState(__in HRESULT hrStatus)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PathRelativeToModule
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2798,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2799,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2802,1
    - Dst: ::LoadLibraryW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2805,1
    - Dst: reinterpret_cast<PFN_BOOTSTRAPPER_BA_FUNCTION_CREATE>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2807,1
    - Dst: ::GetProcAddress
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2807,1
    - Dst: BalExitOnNullWithLastError1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2808,1
    - Dst: pfnBAFunctionCreate
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2810,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2811,1
    - Dst: BalLogError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2815,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2815,1
    - Dst: _winapi_GetLastError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2815,1
    - Dst: ::FreeLibrary
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2821,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2794
    functionDepth: 2
    functionLinenumber: 2794
    functionLinenumberEnd: 2827
    functionName: PythonBootstrapperApplication::LoadBootstrapperBAFunctions
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - pfnBAFunctionCreate
    - HRESULT_FROM_WIN32
    - ReleaseStr
    - BalLog
    - ::FreeLibrary
    - BalExitOnFailure
    - BalLogError
    - ::GetProcAddress
    - reinterpret_cast<PFN_BOOTSTRAPPER_BA_FUNCTION_CREATE>
    - _winapi_GetLastError
    - PathRelativeToModule
    - BalExitOnNullWithLastError1
    - ::LoadLibraryW
    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: 2845
      start: 2829
    functionDepth: 0
    functionLinenumber: 2829
    functionLinenumberEnd: 2845
    functionName: PythonBootstrapperApplication::IsCheckable
    functionSourceFile: /src/cpython/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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2851,1
    - Dst: ThemeGetPage
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2852,1
    - Dst: PythonBootstrapperApplication::IsCheckable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2861,1
    - Dst: ThemeControlEnabled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2861,1
    - Dst: ThemeIsControlChecked
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2862,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2863,1
    - Dst: ThemeGetTextControl
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2870,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2871,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2847
    functionDepth: 1
    functionLinenumber: 2847
    functionLinenumberEnd: 2874
    functionName: PythonBootstrapperApplication::SavePageSettings
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ThemeIsControlChecked
    - SetVariableNumeric
    - SetVariableString
    - PythonBootstrapperApplication::IsCheckable
    - ThemeGetTextControl
    - PythonBootstrapperApplication::DeterminePageId
    - ThemeGetPage
    - ThemeControlEnabled
    linkageType: ''
    returnType: void
    signature: void SavePageSettings()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2880,1
    - Dst: GetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2880,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - IBootstrapperEngine* pEngine
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2876
    functionDepth: 0
    functionLinenumber: 2876
    functionLinenumberEnd: 2885
    functionName: PythonBootstrapperApplication::IsTargetPlatformx64
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - FAILED
    - ::CompareStringW
    - GetVariableString
    linkageType: ''
    returnType: bool
    signature: bool IsTargetPlatformx64(__in IBootstrapperEngine* pEngine)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2891,1
    - Dst: GetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2891,1
    - Dst: ::CompareStringW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - IBootstrapperEngine* pEngine
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2887
    functionDepth: 0
    functionLinenumber: 2887
    functionLinenumberEnd: 2896
    functionName: PythonBootstrapperApplication::IsTargetPlatformARM64
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - FAILED
    - ::CompareStringW
    - GetVariableString
    linkageType: ''
    returnType: bool
    signature: bool IsTargetPlatformARM64(__in IBootstrapperEngine* pEngine)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::IsTargetPlatformx64
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2906,1
    - Dst: PythonBootstrapperApplication::IsTargetPlatformARM64
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2906,1
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2907,1
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2909,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2915,1
    - Dst: RegQueryValueExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2919,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2921,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2923,1
    - Dst: RegCloseKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2925,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2926,1
    - Dst: RegCloseKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2930,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - IBootstrapperEngine* pEngine
    - hkHive
    - LPCWSTR
    argTypes:
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2898
    functionDepth: 1
    functionLinenumber: 2898
    functionLinenumberEnd: 2932
    functionName: PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - RegCloseKey
    - SetVariableNumeric
    - PythonBootstrapperApplication::IsTargetPlatformx64
    - RegOpenKeyExW
    - PythonBootstrapperApplication::IsTargetPlatformARM64
    - HRESULT_FROM_WIN32
    - RegQueryValueExW
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2945,1
    - Dst: PythonBootstrapperApplication::IsTargetPlatformARM64
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2945,1
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2946,1
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2948,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2954,1
    - Dst: RegQueryValueExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2957,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2959,1
    - Dst: reinterpret_cast<wchar_t*>
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2959,1
    - Dst: RegCloseKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2961,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2962,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - IBootstrapperEngine* pEngine
    - hkHive
    - LPCWSTR
    argTypes:
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2934
    functionDepth: 1
    functionLinenumber: 2934
    functionLinenumberEnd: 2963
    functionName: PythonBootstrapperApplication::LoadTargetDirFromKey
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<wchar_t*>
    - RegCloseKey
    - SetVariableString
    - PythonBootstrapperApplication::IsTargetPlatformx64
    - RegOpenKeyExW
    - PythonBootstrapperApplication::IsTargetPlatformARM64
    - HRESULT_FROM_WIN32
    - RegQueryValueExW
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2974,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2980,1
    - Dst: RegQueryValueExW
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2983,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2989,1
    - Dst: RegCloseKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2992,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - IBootstrapperEngine* pEngine
    - hkHive
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2965
    functionDepth: 0
    functionLinenumber: 2965
    functionLinenumberEnd: 2994
    functionName: PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - HRESULT_FROM_WIN32
    - RegOpenKeyExW
    - RegQueryValueExW
    - RegCloseKey
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT LoadAssociateFilesStateFromKey(\n        __in IBootstrapperEngine*
      pEngine,\n        __in HKEY hkHive\n    )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3003,1
    - Dst: GetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3008,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3009,1
    - Dst: FormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3011,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3012,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3016,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3017,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3021,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3022,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3025,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3026,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3035,1
    - Dst: GetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3040,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3041,1
    - Dst: FormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3043,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3044,1
    - Dst: PythonBootstrapperApplication::LoadTargetDirFromKey
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - IBootstrapperEngine* pEngine
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 2996
    functionDepth: 2
    functionLinenumber: 2996
    functionLinenumberEnd: 3050
    functionName: PythonBootstrapperApplication::LoadOptionalFeatureStates
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 2
    functionsReached:
    - BalExitOnFailure1
    - SetVariableNumeric
    - GetVariableString
    - SetVariableString
    - BalLog
    - PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
    - PythonBootstrapperApplication::LoadTargetDirFromKey
    - FormatString
    - BalExitOnFailure
    linkageType: ''
    returnType: void
    signature: void LoadOptionalFeatureStates(__in IBootstrapperEngine* pEngine)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3055,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3056,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3057,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3060,1
    - Dst: ExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3061,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3063,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3067,1
    - Dst: BalLogError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3070,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3073,1
    - Dst: BalExitOnFailure1
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3074,1
    - Dst: SetVariableString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3076,1
    - Dst: BalExitOnFailure
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3077,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3080,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3081,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3052
    functionDepth: 0
    functionLinenumber: 3052
    functionLinenumberEnd: 3083
    functionName: PythonBootstrapperApplication::EnsureTargetDir
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 2
    functionsReached:
    - BalExitOnFailure1
    - ReleaseStr
    - SetVariableString
    - BalGetStringVariable
    - ExitOnFailure
    - BalFormatString
    - BalExitOnFailure
    - BalLogError
    - FAILED
    - BalGetNumericVariable
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT EnsureTargetDir()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IsWindowsServer
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3088,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3089,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3090,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3092,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3093,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3094,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3095,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3096,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3097,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3098,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3099,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3101,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3103,1
    - Dst: IsWindows10OrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3105,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3106,1
    - Dst: IsWindows8Point1OrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3108,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3109,1
    - Dst: IsWindows8OrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3110,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3111,1
    - Dst: IsWindows7OrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3112,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3113,1
    - Dst: IsWindowsVistaOrGreater
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3114,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3115,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3117,1
    - Dst: BalLog
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3119,1
    - Dst: LocGetString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3122,1
    - Dst: BalFormatString
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3124,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3085
    functionDepth: 0
    functionLinenumber: 3085
    functionLinenumberEnd: 3128
    functionName: PythonBootstrapperApplication::ValidateOperatingSystem
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - LocGetString
    - IsWindows7OrGreater
    - IsWindowsVistaOrGreater
    - BalLog
    - IsWindows10OrGreater
    - IsWindows8OrGreater
    - IsWindowsServer
    - BalFormatString
    - IsWindows8Point1OrGreater
    - IsWindowsVersionOrGreater
    linkageType: ''
    returnType: void
    signature: void ValidateOperatingSystem()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy_s
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3142,1
    - Dst: BalGetNumericVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3145,1
    - Dst: SUCCEEDED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3146,1
    - Dst: BalGetStringVariable
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3161,1
    - Dst: FAILED
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3162,1
    - Dst: ReleaseNullStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3163,1
    - Dst: SetVariableNumeric
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3168,1
    - Dst: PythonBootstrapperApplication::IsCrtInstalled
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3168,1
    - Dst: memset
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3171,1
    - Dst: memset
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3172,1
    - Dst: memset
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3178,1
    - Dst: AddRef
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3206,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: 3211
      start: 3134
    functionDepth: 1
    functionLinenumber: 3134
    functionLinenumberEnd: 3211
    functionName: PythonBootstrapperApplication::PythonBootstrapperApplication
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::IsCrtInstalled
    - SUCCEEDED
    - memcpy_s
    - SetVariableNumeric
    - memset
    - BalGetStringVariable
    - AddRef
    - FAILED
    - ReleaseNullStr
    - BalGetNumericVariable
    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/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3218,1
    - Dst: ::IsWindow
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3218,1
    - Dst: AssertSz
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3219,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3221,1
    - Dst: ReleaseDict
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3222,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3223,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3224,1
    - Dst: BalConditionsUninitialize
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3225,1
    - Dst: BalInfoUninitialize
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3226,1
    - Dst: LocFree
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3227,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3229,1
    - Dst: ReleaseStr
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3230,1
    - Dst: ReleaseNullObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3231,1
    - Dst: ::FreeLibrary
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 3217
    functionDepth: 0
    functionLinenumber: 3217
    functionLinenumberEnd: 3237
    functionName: ~PythonBootstrapperApplication()
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalConditionsUninitialize
    - BalInfoUninitialize
    - ReleaseDict
    - LocFree
    - ReleaseStr
    - ReleaseObject
    - ::IsWindow
    - AssertSz
    - ::FreeLibrary
    - ReleaseNullObject
    linkageType: ''
    returnType: void
    signature: void ~PythonBootstrapperApplication()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExitWithLastError
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3309,1
    - Dst: PythonBootstrapperApplication::PythonBootstrapperApplication
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3314,1
    - Dst: ExitOnNull
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3315,1
    - Dst: ReleaseObject
      Src: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3321,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: 3323
      start: 3297
    functionDepth: 2
    functionLinenumber: 3297
    functionLinenumberEnd: 3323
    functionName: CreateBootstrapperApplication
    functionSourceFile: /src/cpython/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ExitWithLastError
    - ReleaseObject
    - ExitOnNull
    - PythonBootstrapperApplication::PythonBootstrapperApplication
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/importdl.c:55,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/importdl.c:59,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/importdl.c:63,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/importdl.c:69,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/importdl.c:73,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/importdl.c:77,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/importdl.c:78,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/importdl.c:79,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/importdl.c:90,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/importdl.c:90,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:94,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:98,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/importdl.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - name
    - hook_prefix
    argTypes:
    - PyObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 47
    functionDepth: 8
    functionLinenumber: 47
    functionLinenumberEnd: 101
    functionName: get_encoded_name
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_CallMethod
    - PyErr_Clear
    - _Py_ID
    - PyUnicode_FindChar
    - PyUnicode_AsEncodedString
    - PyErr_ExceptionMatches
    - PyUnicode_GetLength
    - PyUnicode_Substring
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_encoded_name(PyObject *name, const char **hook_prefix)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:106,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:108,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:110,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct _Py_ext_module_loader_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: _Py_ext_module_loader_info_clear
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _Py_ext_module_loader_info_clear(struct _Py_ext_module_loader_info
      *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:123,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/importdl.c:124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/importdl.c:125,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:127,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:130,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/importdl.c:130,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/importdl.c:131,1
    - Dst: get_encoded_name
      Src: /src/cpython/Python/importdl.c:133,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:135,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/importdl.c:139,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:141,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/importdl.c:146,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/importdl.c:147,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:149,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/importdl.c:152,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/importdl.c:155,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 4
    argNames:
    - p_info
    - name
    - filename
    - origin
    argTypes:
    - struct _Py_ext_module_loader_info*
    - PyObject*
    - PyObject*
    - _Py_ext_module_origin
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Python/importdl.c
    - condition: (PyUnicode_GetLength(name) > 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 170
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 170
    functionName: _Py_ext_module_loader_info_init
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - PyErr_SetString
    - PyUnicode_EncodeFSDefault
    - Py_NewRef
    - _Py_ext_module_loader_info_clear
    - PyUnicode_AsUTF8
    - get_encoded_name
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: "int _Py_ext_module_loader_info_init(struct _Py_ext_module_loader_info
      *p_info,\n                                PyObject *name, PyObject *filename,\n
      \                               _Py_ext_module_origin origin)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:177,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/importdl.c:177,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:178,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/importdl.c:178,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/importdl.c:178,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:179,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/importdl.c:179,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/importdl.c:181,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/importdl.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - info
    - name
    argTypes:
    - struct _Py_ext_module_loader_info*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Python/importdl.c
    - condition: (PyUnicode_FindChar(name, '.', 0, PyUnicode_GetLength(name), -1)
        == -1)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/cpython/Python/importdl.c
    - condition: (PyUnicode_GetLength(name) > 0)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 196
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 196
    functionName: _Py_ext_module_loader_info_init_for_builtin
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - Py_NewRef
    - PyUnicode_FindChar
    - PyUnicode_AsEncodedString
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: "int _Py_ext_module_loader_info_init_for_builtin(\n                            struct
      _Py_ext_module_loader_info *info,\n                            PyObject *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ext_module_loader_info_init_for_builtin
      Src: /src/cpython/Python/importdl.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - info
    - name
    argTypes:
    - struct _Py_ext_module_loader_info*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: _Py_ext_module_loader_info_init_for_core
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - _Py_ext_module_loader_info_init_for_builtin
    linkageType: ''
    returnType: int
    signature: "int _Py_ext_module_loader_info_init_for_core(\n                            struct
      _Py_ext_module_loader_info *info,\n                            PyObject *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/importdl.c:216,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/importdl.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:222,1
    - Dst: _Py_ext_module_loader_info_init
      Src: /src/cpython/Python/importdl.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p_info
    - spec
    argTypes:
    - struct _Py_ext_module_loader_info*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 211
    functionDepth: 10
    functionLinenumber: 211
    functionLinenumberEnd: 231
    functionName: _Py_ext_module_loader_info_init_from_spec
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - _Py_ext_module_loader_info_init
    linkageType: ''
    returnType: int
    signature: "int _Py_ext_module_loader_info_init_from_spec(\n                            struct
      _Py_ext_module_loader_info *p_info,\n                            PyObject *spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct _Py_ext_module_loader_result*
    assertStmts:
    - condition: (res->err == NULL)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: _Py_ext_module_loader_result_clear
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_ext_module_loader_result_clear(struct _Py_ext_module_loader_result
      *res)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:257,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:264,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:264,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:268,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:272,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/importdl.c:276,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:282,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 2
    argNames:
    - res
    - kind
    argTypes:
    - struct _Py_ext_module_loader_result*
    - enum _Py_ext_module_loader_result_error_kind
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/cpython/Python/importdl.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/cpython/Python/importdl.c
    - condition: (res->err == NULL && res->_err.exc == NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Python/importdl.c
    - condition: (res->kind == _Py_ext_module_kind_UNKNOWN)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 297
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 297
    functionName: _Py_ext_module_loader_result_set_error
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_GetRaisedException
    - assert
    linkageType: ''
    returnType: void
    signature: "void _Py_ext_module_loader_result_set_error(\n                            struct
      _Py_ext_module_loader_result *res,\n                            enum _Py_ext_module_loader_result_error_kind
      kind)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:304,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:304,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:305,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/importdl.c:310,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:316,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:323,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:327,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:355,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/importdl.c:356,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/importdl.c:362,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Python/importdl.c:365,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:369,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/importdl.c:370,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 2
    argNames:
    - res
    - name
    argTypes:
    - struct _Py_ext_module_loader_result*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/cpython/Python/importdl.c
    - condition: (res->err != NULL && res->err == &res->_err)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Python/importdl.c
    - condition: (err.exc != NULL)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/cpython/Python/importdl.c
    - condition: (err.exc == NULL)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/cpython/Python/importdl.c
    - condition: (msg != NULL)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 372
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 372
    functionName: _Py_ext_module_loader_result_apply_error
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatFromCause
    - PyErr_Occurred
    - _Py_ext_module_loader_result_clear
    - PyErr_Format
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: "void _Py_ext_module_loader_result_apply_error(\n                            struct
      _Py_ext_module_loader_result *res,\n                            const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/importdl.c:384,1
    - Dst: _PyImport_FindSharedFuncptrWindows
      Src: /src/cpython/Python/importdl.c:387,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/importdl.c:391,1
    - Dst: _PyImport_FindSharedFuncptr
      Src: /src/cpython/Python/importdl.c:392,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:398,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/importdl.c:400,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/importdl.c:405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - info
    - fp
    argTypes:
    - struct _Py_ext_module_loader_info*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 380
    functionDepth: 10
    functionLinenumber: 380
    functionLinenumberEnd: 413
    functionName: _PyImport_GetModInitFunc
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - PyErr_SetImportError
    - _PyImport_FindSharedFuncptrWindows
    - PyBytes_AS_STRING
    - _PyImport_FindSharedFuncptr
    linkageType: ''
    returnType: PyModInitFunction
    signature: "PyModInitFunction _PyImport_GetModInitFunc(struct _Py_ext_module_loader_info
      *info,\n                         FILE *fp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_SwapPackageContext
      Src: /src/cpython/Python/importdl.c:428,1
    - Dst: p0
      Src: /src/cpython/Python/importdl.c:429,1
    - Dst: _PyImport_SwapPackageContext
      Src: /src/cpython/Python/importdl.c:430,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:440,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:441,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:445,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:449,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:452,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/importdl.c:461,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:465,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/importdl.c:474,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:484,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/importdl.c:493,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:494,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/importdl.c:499,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/importdl.c:501,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:502,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:508,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:508,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:509,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:514,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:514,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:515,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:516,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 3
    argNames:
    - p0
    - info
    - p_res
    argTypes:
    - PyModInitFunction
    - struct _Py_ext_module_loader_info*
    - struct _Py_ext_module_loader_result*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Python/importdl.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/cpython/Python/importdl.c
    - condition: (res.err != NULL)
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/cpython/Python/importdl.c
    - condition: (res.err == NULL)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 521
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 521
    functionName: _PyImport_RunModInitFunc
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _PyImport_SwapPackageContext
    - PyErr_Occurred
    - Py_IS_TYPE
    - _PyModule_GetDef
    - p0
    - PyModule_Check
    - PyErr_Clear
    - Py_CLEAR
    - _Py_ext_module_loader_result_set_error
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyImport_RunModInitFunc(PyModInitFunction p0,\n                         struct
      _Py_ext_module_loader_info *info,\n                         struct _Py_ext_module_loader_result
      *p_res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/ast_unparse.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - PyUnicodeWriter*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: append_char
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_WriteChar
    linkageType: ''
    returnType: int
    signature: int append_char(PyUnicodeWriter *writer, Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Python/ast_unparse.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - charp
    argTypes:
    - PyUnicodeWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 9
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: append_charp
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_WriteUTF8
    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:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: APPEND_CHAR_FINISH
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_CHAR_FINISH(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: APPEND_STR_FINISH
    functionSourceFile: /src/cpython/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:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: APPEND_CHAR
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_CHAR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: APPEND_STR
    functionSourceFile: /src/cpython/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: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: APPEND_STR_IF
    functionSourceFile: /src/cpython/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: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: APPEND_STR_IF_NOT_FIRST
    functionSourceFile: /src/cpython/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: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: APPEND_EXPR
    functionSourceFile: /src/cpython/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: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: APPEND
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND(type, value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/ast_unparse.c:89,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/ast_unparse.c:94,1
    - Dst: isinf
      Src: /src/cpython/Python/ast_unparse.c:94,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/ast_unparse.c:94,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/ast_unparse.c:95,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/ast_unparse.c:97,1
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Python/ast_unparse.c:98,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ast_unparse.c:100,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ast_unparse.c:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:104,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - writer
    - obj
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 9
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: append_repr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - PyUnicode_Replace
    - Py_DECREF
    - _Py_DECLARE_STR
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - _Py_ID
    - _Py_STR
    - isinf
    - PyFloat_AS_DOUBLE
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int append_repr(PyUnicodeWriter *writer, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:147,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:150,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:153,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:154,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:154,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: append_ast_boolop
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR_IF
    - APPEND_EXPR
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_boolop(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:183,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:188,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:189,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:190,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:191,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:192,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 194
    functionName: append_ast_binop
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - APPEND_STR_IF
    - APPEND_STR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_binop(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:208,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:213,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:214,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:215,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 218
    functionName: append_ast_unaryop
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - APPEND_STR_IF
    - APPEND_STR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_unaryop(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:223,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:227,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - arg
    argTypes:
    - PyUnicodeWriter*
    - arg_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 9
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: append_ast_arg
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_EXPR
    - APPEND_STR
    - 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/cpython/Python/ast_unparse.c:242,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:243,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:244,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:246,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:248,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:248,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:250,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:250,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:255,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:256,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:256,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:259,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:264,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:265,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:266,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:268,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:273,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:274,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:276,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:277,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:277,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:281,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:283,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:284,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:291,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:292,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:293,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - writer
    - args
    argTypes:
    - PyUnicodeWriter*
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 297
    functionName: append_ast_args
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR_IF_NOT_FIRST
    - asdl_seq_GET
    - asdl_seq_LEN
    - APPEND
    - APPEND_STR
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_args(PyUnicodeWriter *writer, arguments_ty args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:302,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:303,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:304,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:305,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:306,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:307,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:308,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 311
    functionName: append_ast_lambda
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - APPEND
    - APPEND_STR
    - APPEND_STR_IF
    - APPEND_EXPR
    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/cpython/Python/ast_unparse.c:316,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:317,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:318,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:319,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:320,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:321,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 324
    functionName: append_ast_ifexp
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR_IF
    - APPEND_STR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_ifexp(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:332,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:333,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:336,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:337,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:339,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:340,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:341,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:341,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:344,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:345,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:345,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 350
    functionName: append_ast_dict
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - asdl_seq_GET
    - asdl_seq_LEN
    - APPEND_STR
    - APPEND_CHAR
    - APPEND_STR_IF
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_dict(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:357,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:358,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:360,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:361,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:361,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 365
    functionName: append_ast_set
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - asdl_seq_GET
    - asdl_seq_LEN
    - APPEND_CHAR
    - APPEND_STR_IF
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_set(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:372,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:373,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:375,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:376,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:376,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: append_ast_list
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - asdl_seq_GET
    - asdl_seq_LEN
    - APPEND_CHAR
    - APPEND_STR_IF
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_list(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:387,1
    - Dst: APPEND_STR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:390,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:393,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:396,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:397,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:397,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:400,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 403
    functionName: append_ast_tuple
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - APPEND_STR_FINISH
    - asdl_seq_LEN
    - APPEND_STR_IF
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_tuple(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:410,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:411,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:412,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:413,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:415,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:417,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:418,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - gen
    argTypes:
    - PyUnicodeWriter*
    - comprehension_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 421
    functionName: append_ast_comprehension
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - APPEND_STR
    - APPEND_EXPR
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int append_ast_comprehension(PyUnicodeWriter *writer, comprehension_ty
      gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:427,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:430,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - comprehensions
    argTypes:
    - PyUnicodeWriter*
    - asdl_comprehension_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 434
    functionName: append_ast_comprehensions
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_comprehensions(PyUnicodeWriter *writer, asdl_comprehension_seq
      *comprehensions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:439,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:440,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:441,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: append_ast_genexp
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_genexp(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:448,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:449,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:450,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: append_ast_listcomp
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_listcomp(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:457,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:458,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:459,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: append_ast_setcomp
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_setcomp(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:466,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:467,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:468,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:469,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:470,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: append_ast_dictcomp
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND
    - APPEND_STR
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_dictcomp(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:482,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:486,1
    - Dst: assert
      Src: /src/cpython/Python/ast_unparse.c:487,1
    - Dst: assert
      Src: /src/cpython/Python/ast_unparse.c:488,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:488,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:490,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:493,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:525,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:530,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:531,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:531,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:534,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts:
    - condition: (comparator_count == asdl_seq_LEN(ops))
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Python/ast_unparse.c
    - condition: (comparator_count > 0)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Python/ast_unparse.c
    constantsTouched: []
    func_position:
      end: 536
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 536
    functionName: append_ast_compare
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_EXPR
    - asdl_seq_GET
    - PyErr_SetString
    - asdl_seq_LEN
    - APPEND_STR
    - APPEND_STR_IF
    - assert
    linkageType: ''
    returnType: int
    signature: int append_ast_compare(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:542,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:545,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:549,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - kw
    argTypes:
    - PyUnicodeWriter*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 538
    functionDepth: 9
    functionLinenumber: 538
    functionLinenumberEnd: 554
    functionName: append_ast_keyword
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_EXPR
    - APPEND_CHAR
    - APPEND_STR
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int append_ast_keyword(PyUnicodeWriter *writer, keyword_ty kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:563,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:565,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:566,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:568,1
    - Dst: append_ast_genexp
      Src: /src/cpython/Python/ast_unparse.c:571,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:575,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:579,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:580,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:580,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:584,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:585,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:585,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 589
    functionName: append_ast_call
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND_STR_IF_NOT_FIRST
    - asdl_seq_GET
    - asdl_seq_LEN
    - APPEND
    - append_ast_genexp
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_call(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Python/ast_unparse.c:596,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_unparse.c:596,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ast_unparse.c:597,1
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Python/ast_unparse.c:601,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_unparse.c:601,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ast_unparse.c:602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - orig
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 591
    functionDepth: 7
    functionLinenumber: 591
    functionLinenumberEnd: 605
    functionName: escape_braces
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - PyUnicode_Replace
    - _Py_LATIN1_CHR
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      escape_braces(PyObject *orig)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: escape_braces
      Src: /src/cpython/Python/ast_unparse.c:612,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - unicode
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 607
    functionDepth: 9
    functionLinenumber: 607
    functionLinenumberEnd: 618
    functionName: append_fstring_unicode
    functionSourceFile: /src/cpython/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: 7
    BranchProfiles: []
    Callsites:
    - Dst: append_fstring_unicode
      Src: /src/cpython/Python/ast_unparse.c:625,1
    - Dst: append_joinedstr
      Src: /src/cpython/Python/ast_unparse.c:627,1
    - Dst: append_templatestr
      Src: /src/cpython/Python/ast_unparse.c:629,1
    - Dst: append_formattedvalue
      Src: /src/cpython/Python/ast_unparse.c:631,1
    - Dst: append_interpolation
      Src: /src/cpython/Python/ast_unparse.c:633,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - writer
    - e
    - is_format_spec
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 620
    functionDepth: 10
    functionLinenumber: 620
    functionLinenumberEnd: 639
    functionName: append_fstring_element
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_formattedvalue
    - PyErr_SetString
    - append_templatestr
    - append_interpolation
    - append_fstring_unicode
    - append_joinedstr
    linkageType: ''
    returnType: int
    signature: int append_fstring_element(PyUnicodeWriter *writer, expr_ty e, bool
      is_format_spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/ast_unparse.c:646,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:651,1
    - Dst: append_fstring_element
      Src: /src/cpython/Python/ast_unparse.c:653,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:654,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/ast_unparse.c:657,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/ast_unparse.c:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - values
    - is_format_spec
    argTypes:
    - asdl_expr_seq*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 643
    functionDepth: 11
    functionLinenumber: 643
    functionLinenumberEnd: 663
    functionName: build_ftstring_body
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_fstring_element
    - asdl_seq_GET
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - asdl_seq_LEN
    - PyUnicodeWriter_Discard
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      build_ftstring_body(asdl_expr_seq *values, bool is_format_spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_ftstring_body
      Src: /src/cpython/Python/ast_unparse.c:669,1
    - Dst: append_charp
      Src: /src/cpython/Python/ast_unparse.c:674,1
    - Dst: append_repr
      Src: /src/cpython/Python/ast_unparse.c:675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 665
    functionDepth: 12
    functionLinenumber: 665
    functionLinenumberEnd: 681
    functionName: append_templatestr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - build_ftstring_body
    - append_repr
    - Py_DECREF
    - append_charp
    linkageType: ''
    returnType: int
    signature: int append_templatestr(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: build_ftstring_body
      Src: /src/cpython/Python/ast_unparse.c:687,1
    - Dst: append_charp
      Src: /src/cpython/Python/ast_unparse.c:693,1
    - Dst: append_repr
      Src: /src/cpython/Python/ast_unparse.c:694,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:702,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: 704
      start: 683
    functionDepth: 12
    functionLinenumber: 683
    functionLinenumberEnd: 704
    functionName: append_joinedstr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - build_ftstring_body
    - append_repr
    - Py_DECREF
    - append_charp
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int append_joinedstr(PyUnicodeWriter *writer, expr_ty e, bool is_format_spec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Find
      Src: /src/cpython/Python/ast_unparse.c:710,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_unparse.c:710,1
    - Dst: append_charp
      Src: /src/cpython/Python/ast_unparse.c:715,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 10
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: append_interpolation_str
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Find
    - PyUnicodeWriter_WriteStr
    - _Py_LATIN1_CHR
    - append_charp
    linkageType: ''
    returnType: int
    signature: int append_interpolation_str(PyUnicodeWriter *writer, PyObject *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_as_unicode
      Src: /src/cpython/Python/ast_unparse.c:729,1
    - Dst: append_interpolation_str
      Src: /src/cpython/Python/ast_unparse.c:733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 724
    functionDepth: 11
    functionLinenumber: 724
    functionLinenumberEnd: 736
    functionName: append_interpolation_value
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_interpolation_str
    - expr_as_unicode
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int append_interpolation_value(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:757,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - writer
    - conversion
    argTypes:
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 763
    functionName: append_interpolation_conversion
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - APPEND_STR
    linkageType: ''
    returnType: int
    signature: int append_interpolation_conversion(PyUnicodeWriter *writer, int conversion)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/ast_unparse.c:769,1
    - Dst: append_fstring_element
      Src: /src/cpython/Python/ast_unparse.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 765
    functionDepth: 11
    functionLinenumber: 765
    functionLinenumberEnd: 776
    functionName: append_interpolation_format_spec
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_WriteChar
    - append_fstring_element
    linkageType: ''
    returnType: int
    signature: int append_interpolation_format_spec(PyUnicodeWriter *writer, expr_ty
      e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: append_interpolation_str
      Src: /src/cpython/Python/ast_unparse.c:781,1
    - Dst: append_interpolation_conversion
      Src: /src/cpython/Python/ast_unparse.c:785,1
    - Dst: append_interpolation_format_spec
      Src: /src/cpython/Python/ast_unparse.c:789,1
    - Dst: APPEND_STR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 778
    functionDepth: 12
    functionLinenumber: 778
    functionLinenumberEnd: 794
    functionName: append_interpolation
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - append_interpolation_str
    - append_interpolation_format_spec
    - append_interpolation_conversion
    - APPEND_STR_FINISH
    linkageType: ''
    returnType: int
    signature: int append_interpolation(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: append_interpolation_value
      Src: /src/cpython/Python/ast_unparse.c:799,1
    - Dst: append_interpolation_conversion
      Src: /src/cpython/Python/ast_unparse.c:803,1
    - Dst: append_interpolation_format_spec
      Src: /src/cpython/Python/ast_unparse.c:807,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 796
    functionDepth: 12
    functionLinenumber: 796
    functionLinenumberEnd: 812
    functionName: append_formattedvalue
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - APPEND_CHAR_FINISH
    - append_interpolation_conversion
    - append_interpolation_format_spec
    - append_interpolation_value
    linkageType: ''
    returnType: int
    signature: int append_formattedvalue(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ast_unparse.c:817,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ast_unparse.c:820,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:821,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:823,1
    - Dst: append_ast_constant
      Src: /src/cpython/Python/ast_unparse.c:824,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ast_unparse.c:824,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:829,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:830,1
    - Dst: append_repr
      Src: /src/cpython/Python/ast_unparse.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - writer
    - constant
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 814
    functionDepth: 10
    functionLinenumber: 814
    functionLinenumberEnd: 833
    functionName: append_ast_constant
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - APPEND_CHAR_FINISH
    - append_repr
    - PyTuple_GET_SIZE
    - append_ast_constant
    - PyTuple_GET_ITEM
    - APPEND_CHAR
    - APPEND_STR_IF
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int append_ast_constant(PyUnicodeWriter *writer, PyObject *constant)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:840,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ast_unparse.c:844,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:850,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 835
    functionDepth: 9
    functionLinenumber: 835
    functionLinenumberEnd: 853
    functionName: append_ast_attribute
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - PyUnicodeWriter_WriteStr
    - PyLong_CheckExact
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_attribute(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:859,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:862,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:865,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:869,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: append_ast_slice
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_slice(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:878,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:879,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:880,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 882
    functionName: append_ast_subscript
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND_CHAR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_subscript(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:887,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 890
    functionName: append_ast_starred
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR
    - 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/cpython/Python/ast_unparse.c:896,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:899,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:900,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 902
    functionName: append_ast_yield
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - 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/cpython/Python/ast_unparse.c:907,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:908,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 910
    functionName: append_ast_yield_from
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND_STR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_yield_from(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:915,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:916,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:917,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 920
    functionName: append_ast_await
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR_IF
    - APPEND_STR
    - APPEND_EXPR
    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/cpython/Python/ast_unparse.c:925,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:926,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:927,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:928,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 931
    functionName: append_named_expr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR_IF
    - APPEND_STR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_named_expr(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: append_ast_boolop
      Src: /src/cpython/Python/ast_unparse.c:938,1
    - Dst: append_ast_binop
      Src: /src/cpython/Python/ast_unparse.c:940,1
    - Dst: append_ast_unaryop
      Src: /src/cpython/Python/ast_unparse.c:942,1
    - Dst: append_ast_lambda
      Src: /src/cpython/Python/ast_unparse.c:944,1
    - Dst: append_ast_ifexp
      Src: /src/cpython/Python/ast_unparse.c:946,1
    - Dst: append_ast_dict
      Src: /src/cpython/Python/ast_unparse.c:948,1
    - Dst: append_ast_set
      Src: /src/cpython/Python/ast_unparse.c:950,1
    - Dst: append_ast_genexp
      Src: /src/cpython/Python/ast_unparse.c:952,1
    - Dst: append_ast_listcomp
      Src: /src/cpython/Python/ast_unparse.c:954,1
    - Dst: append_ast_setcomp
      Src: /src/cpython/Python/ast_unparse.c:956,1
    - Dst: append_ast_dictcomp
      Src: /src/cpython/Python/ast_unparse.c:958,1
    - Dst: append_ast_yield
      Src: /src/cpython/Python/ast_unparse.c:960,1
    - Dst: append_ast_yield_from
      Src: /src/cpython/Python/ast_unparse.c:962,1
    - Dst: append_ast_await
      Src: /src/cpython/Python/ast_unparse.c:964,1
    - Dst: append_ast_compare
      Src: /src/cpython/Python/ast_unparse.c:966,1
    - Dst: append_ast_call
      Src: /src/cpython/Python/ast_unparse.c:968,1
    - Dst: APPEND_STR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:971,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:974,1
    - Dst: append_ast_constant
      Src: /src/cpython/Python/ast_unparse.c:977,1
    - Dst: append_joinedstr
      Src: /src/cpython/Python/ast_unparse.c:979,1
    - Dst: append_templatestr
      Src: /src/cpython/Python/ast_unparse.c:981,1
    - Dst: append_formattedvalue
      Src: /src/cpython/Python/ast_unparse.c:983,1
    - Dst: append_interpolation
      Src: /src/cpython/Python/ast_unparse.c:985,1
    - Dst: append_ast_attribute
      Src: /src/cpython/Python/ast_unparse.c:988,1
    - Dst: append_ast_subscript
      Src: /src/cpython/Python/ast_unparse.c:990,1
    - Dst: append_ast_starred
      Src: /src/cpython/Python/ast_unparse.c:992,1
    - Dst: append_ast_slice
      Src: /src/cpython/Python/ast_unparse.c:994,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:996,1
    - Dst: append_ast_list
      Src: /src/cpython/Python/ast_unparse.c:998,1
    - Dst: append_ast_tuple
      Src: /src/cpython/Python/ast_unparse.c:1000,1
    - Dst: append_named_expr
      Src: /src/cpython/Python/ast_unparse.c:1002,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:1005,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 69
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 933
    functionDepth: 13
    functionLinenumber: 933
    functionLinenumberEnd: 1008
    functionName: append_ast_expr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_ast_lambda
    - PyErr_SetString
    - append_ast_binop
    - append_ast_attribute
    - append_named_expr
    - append_ast_constant
    - append_ast_yield
    - append_ast_set
    - append_ast_ifexp
    - append_ast_compare
    - append_formattedvalue
    - append_ast_unaryop
    - append_ast_list
    - append_ast_dict
    - append_ast_setcomp
    - APPEND_STR_FINISH
    - append_templatestr
    - append_ast_await
    - append_ast_genexp
    - PyUnicodeWriter_WriteStr
    - append_ast_listcomp
    - append_joinedstr
    - append_ast_subscript
    - append_ast_starred
    - append_ast_call
    - append_ast_dictcomp
    - append_ast_tuple
    - append_ast_slice
    - append_ast_yield_from
    - append_ast_boolop
    - append_interpolation
    linkageType: ''
    returnType: int
    signature: int append_ast_expr(PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/ast_unparse.c:1013,1
    - Dst: append_ast_expr
      Src: /src/cpython/Python/ast_unparse.c:1018,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/ast_unparse.c:1019,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/ast_unparse.c:1022,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e
    - level
    argTypes:
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1010
    functionDepth: 14
    functionLinenumber: 1010
    functionLinenumberEnd: 1023
    functionName: expr_as_unicode
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Finish
    - append_ast_expr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      expr_as_unicode(expr_ty e, int level)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expr_as_unicode
      Src: /src/cpython/Python/ast_unparse.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1025
    functionDepth: 15
    functionLinenumber: 1025
    functionLinenumberEnd: 1029
    functionName: _PyAST_ExprAsUnicode
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - expr_as_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAST_ExprAsUnicode(expr_ty e)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: ASSERT_WORLD_STOPPED_OR_LOCKED
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WORLD_STOPPED_OR_LOCKED(obj)
  - 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: ASSERT_WORLD_STOPPED
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WORLD_STOPPED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: LOCK_CODE
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_CODE(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: UNLOCK_CODE
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_CODE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - code
    - ','
    - func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: MODIFY_BYTECODE
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODIFY_BYTECODE(code, func, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - code
    - ','
    - func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: MODIFY_BYTECODE
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODIFY_BYTECODE(code, func, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: opcode_has_event
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool opcode_has_event(int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:191,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - int
    assertStmts:
    - condition: (opcode != 0)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode != RESERVED)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: is_instrumented
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool is_instrumented(int opcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _Py_LocalMonitors
    - _Py_LocalMonitors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: monitors_equals
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool monitors_equals(_Py_LocalMonitors a, _Py_LocalMonitors b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _Py_LocalMonitors
    - _Py_LocalMonitors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: monitors_sub
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _Py_LocalMonitors
    signature: _Py_LocalMonitors monitors_sub(_Py_LocalMonitors a, _Py_LocalMonitors
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _Py_LocalMonitors
    - _Py_LocalMonitors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: monitors_and
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _Py_LocalMonitors
    signature: _Py_LocalMonitors monitors_and(_Py_LocalMonitors a, _Py_LocalMonitors
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _Py_GlobalMonitors
    - _Py_LocalMonitors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: local_union
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _Py_LocalMonitors
    signature: _Py_LocalMonitors local_union(_Py_GlobalMonitors a, _Py_LocalMonitors
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - _Py_LocalMonitors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: monitors_are_empty
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool monitors_are_empty(_Py_LocalMonitors m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - _Py_LocalMonitors*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: multiple_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    linkageType: ''
    returnType: bool
    signature: bool multiple_tools(_Py_LocalMonitors *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - m
    - tool_id
    argTypes:
    - _Py_LocalMonitors*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: get_local_events
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyMonitoringEventSet
    signature: _PyMonitoringEventSet get_local_events(_Py_LocalMonitors *m, int tool_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - m
    - tool_id
    argTypes:
    - _Py_GlobalMonitors*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: get_events
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyMonitoringEventSet
    signature: _PyMonitoringEventSet get_events(_Py_GlobalMonitors *m, int tool_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:306,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - code
    - line
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (line == -1)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (delta > NO_LINE)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: compute_line_delta
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int compute_line_delta(PyCodeObject *code, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - code
    - line_delta
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (line_delta > NO_LINE)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 322
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 322
    functionName: compute_line
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int compute_line(PyCodeObject *code, int line_delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:327,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - offset
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: _PyInstruction_GetLength
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 3
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _Py_GetBaseCodeUnit
    linkageType: ''
    returnType: int
    signature: int _PyInstruction_GetLength(PyCodeObject *code, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - line_data
    - index
    argTypes:
    - _PyCoLineInstrumentationData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: get_original_opcode
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_original_opcode(_PyCoLineInstrumentationData *line_data,
      int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - line_data
    - index
    argTypes:
    - _PyCoLineInstrumentationData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: get_original_opcode_ptr
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      get_original_opcode_ptr(_PyCoLineInstrumentationData *line_data, int index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - line_data
    - index
    - opcode
    argTypes:
    - _PyCoLineInstrumentationData*
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: set_original_opcode
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_original_opcode(_PyCoLineInstrumentationData *line_data, int
      index, uint8_t opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:355,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - line_data
    - index
    argTypes:
    - _PyCoLineInstrumentationData*
    - int
    assertStmts:
    - condition: (line_data->bytes_per_entry >= 2)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (value < INT_MAX)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: get_line_delta
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int get_line_delta(_PyCoLineInstrumentationData *line_data, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:371,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:374,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - line_data
    - index
    - line_delta
    argTypes:
    - _PyCoLineInstrumentationData*
    - int
    - int
    assertStmts:
    - condition: (line_delta >= NO_LINE)
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (line_data->bytes_per_entry >= 2)
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (adjusted < (1ULL << ((line_data->bytes_per_entry-1)*8)))
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: set_line_delta
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void set_line_delta(_PyCoLineInstrumentationData *line_data, int index,
      int line_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:390,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - code
    - tools
    - i
    - out
    argTypes:
    - PyCodeObject*
    - uint8_t*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: dump_instrumentation_data_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_instrumentation_data_tools(PyCodeObject *code, uint8_t *tools,
      int i, FILE*out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:401,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:404,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:405,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:407,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - code
    - lines
    - i
    - out
    argTypes:
    - PyCodeObject*
    - _PyCoLineInstrumentationData*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 413
    functionName: dump_instrumentation_data_lines
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - fprintf
    - get_line_delta
    - get_original_opcode
    linkageType: ''
    returnType: void
    signature: void dump_instrumentation_data_lines(PyCodeObject *code, _PyCoLineInstrumentationData
      *lines, int i, FILE*out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:419,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - code
    - line_tools
    - i
    - out
    argTypes:
    - PyCodeObject*
    - uint8_t*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: dump_instrumentation_data_line_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_instrumentation_data_line_tools(PyCodeObject *code, uint8_t
      *line_tools, int i, FILE*out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:430,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:433,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:436,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - code
    - data
    - i
    - out
    argTypes:
    - PyCodeObject*
    - _PyCoMonitoringData*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 441
    functionName: dump_instrumentation_data_per_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_instrumentation_data_per_instruction(PyCodeObject *code,
      _PyCoMonitoringData *data, int i, FILE*out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:446,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - prefix
    - monitors
    - out
    argTypes:
    - char*
    - _Py_GlobalMonitors
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 450
    functionName: dump_global_monitors
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_global_monitors(const char *prefix, _Py_GlobalMonitors monitors,
      FILE*out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:455,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - prefix
    - monitors
    - out
    argTypes:
    - char*
    - _Py_LocalMonitors
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 459
    functionName: dump_local_monitors
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_local_monitors(const char *prefix, _Py_LocalMonitors monitors,
      FILE*out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:472,1
    - Dst: PyObject_Print
      Src: /src/cpython/Python/instrumentation.c:473,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:474,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:476,1
    - Dst: dump_global_monitors
      Src: /src/cpython/Python/instrumentation.c:479,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:479,1
    - Dst: dump_local_monitors
      Src: /src/cpython/Python/instrumentation.c:480,1
    - Dst: dump_local_monitors
      Src: /src/cpython/Python/instrumentation.c:481,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:482,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:485,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:486,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:487,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:490,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:493,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Python/instrumentation.c:493,1
    - Dst: dump_instrumentation_data_tools
      Src: /src/cpython/Python/instrumentation.c:494,1
    - Dst: dump_instrumentation_data_lines
      Src: /src/cpython/Python/instrumentation.c:495,1
    - Dst: dump_instrumentation_data_line_tools
      Src: /src/cpython/Python/instrumentation.c:496,1
    - Dst: dump_instrumentation_data_per_instruction
      Src: /src/cpython/Python/instrumentation.c:497,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:498,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:502,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:503,1
    - Dst: dump_instrumentation_data_tools
      Src: /src/cpython/Python/instrumentation.c:504,1
    - Dst: dump_instrumentation_data_lines
      Src: /src/cpython/Python/instrumentation.c:505,1
    - Dst: dump_instrumentation_data_line_tools
      Src: /src/cpython/Python/instrumentation.c:506,1
    - Dst: dump_instrumentation_data_per_instruction
      Src: /src/cpython/Python/instrumentation.c:507,1
    - Dst: fprintf
      Src: /src/cpython/Python/instrumentation.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - code
    - star
    - out
    argTypes:
    - PyCodeObject*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 510
    functionName: dump_instrumentation_data
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - dump_local_monitors
    - PyObject_Print
    - dump_instrumentation_data_tools
    - dump_instrumentation_data_line_tools
    - Py_SIZE
    - dump_instrumentation_data_per_instruction
    - _PyInterpreterState_GET
    - _PyCode_CheckLineNumber
    - _PyCode_CODE
    - _PyCode_InitAddressRange
    - _PyInstruction_GetLength
    - dump_global_monitors
    - fprintf
    - dump_instrumentation_data_lines
    linkageType: ''
    returnType: void
    signature: void dump_instrumentation_data(PyCodeObject *code, int star, FILE*out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - test
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: CHECK
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(test)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_VALID_OPCODE
      Src: /src/cpython/Python/instrumentation.c:525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 533
    functionName: valid_opcode
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - IS_VALID_OPCODE
    linkageType: ''
    returnType: bool
    signature: bool valid_opcode(int opcode)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:538,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:544,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:548,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:552,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:554,1
    - Dst: monitors_equals
      Src: /src/cpython/Python/instrumentation.c:554,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:557,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:559,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:561,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:563,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:564,1
    - Dst: valid_opcode
      Src: /src/cpython/Python/instrumentation.c:564,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:565,1
    - Dst: valid_opcode
      Src: /src/cpython/Python/instrumentation.c:565,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:568,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:569,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:573,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:574,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:575,1
    - Dst: valid_opcode
      Src: /src/cpython/Python/instrumentation.c:575,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:576,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:577,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:578,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:579,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:580,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:581,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:583,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:590,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:590,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:593,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:596,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:597,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:603,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:605,1
    - Dst: compute_line
      Src: /src/cpython/Python/instrumentation.c:606,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:606,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Python/instrumentation.c:607,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:608,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:610,1
    - Dst: valid_opcode
      Src: /src/cpython/Python/instrumentation.c:610,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:613,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:617,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:619,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:622,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:625,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:626,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: "(monitors_equals(\n        code->_co_monitoring->active_monitors,\n
        \       active_monitors))"
      pos:
        line_end: 555
        line_start: 553
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (i <= code_len)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 628
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 628
    functionName: sanity_check_instrumentation
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - is_instrumented
    - _Py_GetBaseCodeUnit
    - get_line_delta
    - Py_SIZE
    - _PyInterpreterState_GET
    - _PyCode_CheckLineNumber
    - monitors_equals
    - get_original_opcode
    - opcode_has_event
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - local_union
    - _PyCode_CODE
    - _PyCode_InitAddressRange
    - compute_line
    - valid_opcode
    - CHECK
    - _PyInstruction_GetLength
    - assert
    linkageType: ''
    returnType: void
    signature: void sanity_check_instrumentation(PyCodeObject *code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - test
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 632
    functionName: CHECK
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(test)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:639,1
    - Dst: FT_ATOMIC_LOAD_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:641,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:645,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:653,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:657,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:662,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:663,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - code
    - i
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 673
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 673
    functionName: _Py_GetBaseCodeUnit
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 8
    functionsReached:
    - get_original_opcode
    - FT_ATOMIC_LOAD_UINT16_RELAXED
    - _PyCode_CODE
    - CHECK
    - assert
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: _Py_CODEUNIT _Py_GetBaseCodeUnit(PyCodeObject *code, int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:679,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:680,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:685,1
    - Dst: get_original_opcode_ptr
      Src: /src/cpython/Python/instrumentation.c:687,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:698,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:699,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:701,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - code
    - bytecode
    - monitoring
    - i
    - event
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - _PyCoMonitoringData*
    - int
    - int
    assertStmts:
    - condition: (event != PY_MONITORING_EVENT_INSTRUCTION)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode != ENTER_EXECUTOR)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 704
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 704
    functionName: de_instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - CHECK
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - get_original_opcode_ptr
    - assert
    - adaptive_counter_warmup
    linkageType: ''
    returnType: void
    signature: "void de_instrument(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData
      *monitoring, int i,\n              int event)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:716,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:718,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:720,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:721,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Python/instrumentation.c:722,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:724,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:725,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - code
    - bytecode
    - monitoring
    - i
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - _PyCoMonitoringData*
    - int
    assertStmts:
    - condition: (instr->op.code != INSTRUMENTED_LINE)
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 728
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 728
    functionName: de_instrument_line
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - set_original_opcode
    - FT_ATOMIC_STORE_UINT8
    - get_original_opcode
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - CHECK
    - assert
    - adaptive_counter_warmup
    linkageType: ''
    returnType: void
    signature: "void de_instrument_line(PyCodeObject *code, _Py_CODEUNIT *bytecode,
      _PyCoMonitoringData *monitoring,\n                   int i)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_original_opcode_ptr
      Src: /src/cpython/Python/instrumentation.c:738,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:745,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:746,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:747,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:749,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:750,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:752,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - code
    - bytecode
    - monitoring
    - i
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - _PyCoMonitoringData*
    - int
    assertStmts:
    - condition: (*opcode_ptr != INSTRUMENTED_INSTRUCTION)
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (instr->op.code != INSTRUMENTED_INSTRUCTION)
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 754
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 754
    functionName: de_instrument_per_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - CHECK
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - get_original_opcode_ptr
    - assert
    - adaptive_counter_warmup
    linkageType: ''
    returnType: void
    signature: "void de_instrument_per_instruction(PyCodeObject *code, _Py_CODEUNIT
      *bytecode,\n                              _PyCoMonitoringData *monitoring, int
      i)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_original_opcode_ptr
      Src: /src/cpython/Python/instrumentation.c:763,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:769,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:770,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:772,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:773,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:776,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:777,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:779,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - code
    - bytecode
    - monitoring
    - i
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - _PyCoMonitoringData*
    - int
    assertStmts:
    - condition: (instrumented)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 783
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 783
    functionName: instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - is_instrumented
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - CHECK
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - get_original_opcode_ptr
    - assert
    - adaptive_counter_warmup
    linkageType: ''
    returnType: void
    signature: void instrument(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData
      *monitoring, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:793,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:794,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:794,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - code
    - bytecode
    - monitoring
    - i
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - _PyCoMonitoringData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 796
    functionName: instrument_line
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - CHECK
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - set_original_opcode
    - get_line_delta
    linkageType: ''
    returnType: void
    signature: void instrument_line(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData
      *monitoring, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_original_opcode_ptr
      Src: /src/cpython/Python/instrumentation.c:806,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:810,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:813,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:814,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:818,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:819,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:820,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:823,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - code
    - bytecode
    - monitoring
    - i
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - _PyCoMonitoringData*
    - int
    assertStmts:
    - condition: (opcode != 0)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring->per_instruction_opcodes[i] > 0)
      pos:
        line_end: 809
        line_start: 809
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyOpcode_Deopt[opcode] != 0)
      pos:
        line_end: 818
        line_start: 818
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyOpcode_Deopt[opcode] != RESUME)
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring->per_instruction_opcodes[i] > 0)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 825
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 825
    functionName: instrument_per_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - is_instrumented
    - CHECK
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - get_original_opcode_ptr
    - assert
    linkageType: ''
    returnType: void
    signature: "void instrument_per_instruction(PyCodeObject *code, _Py_CODEUNIT *bytecode,\n
      \                          _PyCoMonitoringData *monitoring, int i)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:830,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:831,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:832,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:833,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:833,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:834,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:834,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:834,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:836,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:845,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:845,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - code
    - offset
    - event
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (PY_MONITORING_IS_INSTRUMENTED_EVENT(event))
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 830
        line_start: 830
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_INSTRUCTION)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode_has_event(_Py_GetBaseCodeUnit(code, offset).op.code))
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring)
      pos:
        line_end: 835
        line_start: 835
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_popcount32(single_tool) <= 1)
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 851
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 851
    functionName: remove_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    - _Py_GetBaseCodeUnit
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - opcode_has_event
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - MODIFY_BYTECODE
    - assert
    linkageType: ''
    returnType: void
    signature: void remove_tools(PyCodeObject * code, int offset, int event, int tools)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - code
    - event
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 860
    functionName: tools_is_subset_for_event
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: bool
    signature: bool tools_is_subset_for_event(PyCodeObject * code, int event, int
      tools)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:866,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:869,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:880,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:880,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - code
    - offset
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    assertStmts:
    - condition: (_Py_popcount32(single_tool) <= 1)
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring)
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 886
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 886
    functionName: remove_line_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _Py_popcount32
    - MODIFY_BYTECODE
    - assert
    linkageType: ''
    returnType: void
    signature: void remove_line_tools(PyCodeObject * code, int offset, int tools)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:891,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:892,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:893,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:894,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:894,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:895,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:903,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:903,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:904,1
    - Dst: tools_is_subset_for_event
      Src: /src/cpython/Python/instrumentation.c:904,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - code
    - offset
    - event
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (event != PY_MONITORING_EVENT_INSTRUCTION)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (PY_MONITORING_IS_INSTRUMENTED_EVENT(event))
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_popcount32(tools) == 1)
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools_is_subset_for_event(code, event, tools))
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 907
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 907
    functionName: add_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - MODIFY_BYTECODE
    - tools_is_subset_for_event
    - assert
    linkageType: ''
    returnType: void
    signature: void add_tools(PyCodeObject * code, int offset, int event, int tools)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:912,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:914,1
    - Dst: tools_is_subset_for_event
      Src: /src/cpython/Python/instrumentation.c:914,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:915,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:921,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:921,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - code
    - offset
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    assertStmts:
    - condition: (_Py_popcount32(tools) == 1)
      pos:
        line_end: 920
        line_start: 920
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools_is_subset_for_event(code, PY_MONITORING_EVENT_LINE, tools))
      pos:
        line_end: 913
        line_start: 913
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 924
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 924
    functionName: add_line_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - MODIFY_BYTECODE
    - tools_is_subset_for_event
    - assert
    linkageType: ''
    returnType: void
    signature: void add_line_tools(PyCodeObject * code, int offset, int tools)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:930,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:932,1
    - Dst: tools_is_subset_for_event
      Src: /src/cpython/Python/instrumentation.c:932,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:933,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:939,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:939,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - code
    - offset
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    assertStmts:
    - condition: (tools_is_subset_for_event(code, PY_MONITORING_EVENT_INSTRUCTION,
        tools))
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 932
        line_start: 932
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_popcount32(tools) == 1)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 942
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 942
    functionName: add_per_instruction_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - MODIFY_BYTECODE
    - tools_is_subset_for_event
    - assert
    linkageType: ''
    returnType: void
    signature: void add_per_instruction_tools(PyCodeObject * code, int offset, int
      tools)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:948,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:951,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:961,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:961,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - code
    - offset
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    assertStmts:
    - condition: (code->_co_monitoring)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_popcount32(single_tool) <= 1)
      pos:
        line_end: 960
        line_start: 960
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 967
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 967
    functionName: remove_per_instruction_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _Py_popcount32
    - MODIFY_BYTECODE
    - assert
    linkageType: ''
    returnType: void
    signature: void remove_per_instruction_tools(PyCodeObject * code, int offset,
      int tools)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:976,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:977,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Python/instrumentation.c:985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - interp
    - tstate
    - args
    - nargsf
    - tool
    - event
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    - PyObject**
    - size_t
    - int8_t
    - int
    assertStmts:
    - condition: (0 <= tool && tool < 8)
      pos:
        line_end: 975
        line_start: 975
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tstate->tracing == 0)
      pos:
        line_end: 976
        line_start: 976
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 993
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 993
    functionName: call_one_instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyObject_VectorcallTstate
    - Py_DECREF
    - assert
    linkageType: ''
    returnType: int
    signature: "int call_one_instrument(\n    PyInterpreterState *interp, PyThreadState
      *tstate, PyObject **args,\n    size_t nargsf, int8_t tool, int event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint8_t
    assertStmts:
    - condition: (bits != 0)
      pos:
        line_end: 1005
        line_start: 1005
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1011
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1011
    functionName: most_significant_bit
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int most_significant_bit(uint8_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/instrumentation.c:1016,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:1019,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/instrumentation.c:1021,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (thread_version == version)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1026
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1026
    functionName: global_version
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_atomic_load_uintptr_relaxed
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t global_version(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/instrumentation.c:1033,1
    - Dst: version::version
      Src: /src/cpython/Python/instrumentation.c:1036,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/instrumentation.c:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - version
    argTypes:
    - uintptr_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1038
    functionName: set_version_raw
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr_relaxed
    - version::version
    linkageType: ''
    returnType: void
    signature: void set_version_raw(uintptr_t *ptr, uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED
      Src: /src/cpython/Python/instrumentation.c:1043,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1045,1
    - Dst: set_version_raw
      Src: /src/cpython/Python/instrumentation.c:1047,1
    - Dst: set_version_raw
      Src: /src/cpython/Python/instrumentation.c:1052,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/instrumentation.c:1054,1
    - Dst: set_version_raw
      Src: /src/cpython/Python/instrumentation.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - version
    argTypes:
    - PyThreadState*
    - uint32_t
    assertStmts:
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 1044
        line_start: 1044
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1060
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1060
    functionName: set_global_version
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - set_version_raw
    - ASSERT_WORLD_STOPPED
    - assert
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: void
    signature: void set_global_version(PyThreadState *tstate, uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_version_raw
      Src: /src/cpython/Python/instrumentation.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1053
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - set_version_raw
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1065,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1062
    functionDepth: 2
    functionLinenumber: 1062
    functionLinenumberEnd: 1067
    functionName: is_version_up_to_date
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - global_version
    linkageType: ''
    returnType: bool
    signature: bool is_version_up_to_date(PyCodeObject *code, PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1073,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:1074,1
    - Dst: monitors_equals
      Src: /src/cpython/Python/instrumentation.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - code
    argTypes:
    - PyInterpreterState*
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1078
    functionName: instrumentation_cross_checks
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - local_union
    - monitors_equals
    linkageType: ''
    returnType: bool
    signature: bool instrumentation_cross_checks(PyInterpreterState *interp, PyCodeObject
      *code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_CODE
      Src: /src/cpython/Python/instrumentation.c:1084,1
    - Dst: is_version_up_to_date
      Src: /src/cpython/Python/instrumentation.c:1085,1
    - Dst: instrumentation_cross_checks
      Src: /src/cpython/Python/instrumentation.c:1086,1
    - Dst: UNLOCK_CODE
      Src: /src/cpython/Python/instrumentation.c:1087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - interp
    - code
    argTypes:
    - PyInterpreterState*
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1080
    functionDepth: 3
    functionLinenumber: 1080
    functionLinenumberEnd: 1089
    functionName: debug_check_sanity
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - UNLOCK_CODE
    - LOCK_CODE
    - is_version_up_to_date
    - instrumentation_cross_checks
    linkageType: ''
    returnType: int
    signature: int debug_check_sanity(PyInterpreterState *interp, PyCodeObject *code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1097,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1098,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1100,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1104,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1105,1
    - Dst: debug_check_sanity
      Src: /src/cpython/Python/instrumentation.c:1105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - code
    - interp
    - i
    - event
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    - int
    - int
    assertStmts:
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_INSTRUCTION)
      pos:
        line_end: 1097
        line_start: 1097
        source_file: /src/cpython/Python/instrumentation.c
    - condition: "(event == PY_MONITORING_EVENT_C_RAISE ||\n                event
        == PY_MONITORING_EVENT_C_RETURN)"
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1117
      start: 1093
    functionDepth: 4
    functionLinenumber: 1093
    functionLinenumberEnd: 1117
    functionName: get_tools_for_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - CHECK
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - debug_check_sanity
    - assert
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_tools_for_instruction(PyCodeObject *code, PyInterpreterState
      *interp, int i, int event)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1149,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1149,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1150,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1151,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1152,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1154,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1157,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1158,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1162,1
    - Dst: get_tools_for_instruction
      Src: /src/cpython/Python/instrumentation.c:1165,1
    - Dst: most_significant_bit
      Src: /src/cpython/Python/instrumentation.c:1170,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1171,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1172,1
    - Dst: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:1174,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1185,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:1186,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:1190,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:1196,1
    - Dst: remove_tools
      Src: /src/cpython/Python/instrumentation.c:1197,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:1198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1202,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 7
    argNames:
    - instr
    - tstate
    - event
    - frame
    - arg2
    - nargs
    - args
    argTypes:
    - _Py_CODEUNIT*
    - PyThreadState*
    - int
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - Py_ssize_t
    - PyObject*[]
    assertStmts:
    - condition: (tool >= 0 && tool < 8)
      pos:
        line_end: 1170
        line_start: 1170
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 1171
        line_start: 1171
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1148
        line_start: 1148
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (args[0] == NULL)
      pos:
        line_end: 1149
        line_start: 1149
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (args[1] == NULL)
      pos:
        line_end: 1151
        line_start: 1151
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (args[2] == NULL)
      pos:
        line_end: 1161
        line_start: 1161
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1204
      start: 1141
    functionDepth: 5
    functionLinenumber: 1141
    functionLinenumberEnd: 1204
    functionName: call_instrumentation_vector
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - _PyFrame_GetBytecode
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    - call_one_instrument
    - remove_tools
    - PyLong_FromLong
    - PyErr_Format
    - most_significant_bit
    - Py_CLEAR
    - _PyErr_Occurred
    - _PyFrame_GetCode
    - get_tools_for_instruction
    linkageType: ''
    returnType: int
    signature: "int call_instrumentation_vector(\n    _Py_CODEUNIT *instr, PyThreadState
      *tstate, int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT *arg2, Py_ssize_t
      nargs, PyObject *args[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_instrumentation_vector
      Src: /src/cpython/Python/instrumentation.c:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tstate
    - event
    - frame
    - instr
    argTypes:
    - PyThreadState*
    - int
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1206
    functionDepth: 6
    functionLinenumber: 1206
    functionLinenumberEnd: 1213
    functionName: _Py_call_instrumentation
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - call_instrumentation_vector
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _Py_call_instrumentation(\n    PyThreadState *tstate,
      int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT *instr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_instrumentation_vector
      Src: /src/cpython/Python/instrumentation.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tstate
    - event
    - frame
    - instr
    - arg
    argTypes:
    - PyThreadState*
    - int
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1215
    functionDepth: 6
    functionLinenumber: 1215
    functionLinenumberEnd: 1222
    functionName: _Py_call_instrumentation_arg
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - call_instrumentation_vector
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _Py_call_instrumentation_arg(\n    PyThreadState *tstate,
      int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_instrumentation_vector
      Src: /src/cpython/Python/instrumentation.c:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - tstate
    - event
    - frame
    - instr
    - arg0
    - arg1
    argTypes:
    - PyThreadState*
    - int
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1224
    functionDepth: 6
    functionLinenumber: 1224
    functionLinenumberEnd: 1231
    functionName: _Py_call_instrumentation_2args
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - call_instrumentation_vector
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _Py_call_instrumentation_2args(\n    PyThreadState *tstate,
      int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0,
      PyObject *arg1)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1238,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1241,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1242,1
    - Dst: call_instrumentation_vector
      Src: /src/cpython/Python/instrumentation.c:1248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(event == PY_MONITORING_EVENT_JUMP ||\n           event == PY_MONITORING_EVENT_BRANCH_RIGHT
        ||\n           event == PY_MONITORING_EVENT_BRANCH_LEFT)"
      pos:
        line_end: 1239
        line_start: 1237
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1258
      start: 1233
    functionDepth: 6
    functionLinenumber: 1233
    functionLinenumberEnd: 1258
    functionName: "_Py_CODEUNIT *\n_Py_call_instrumentation_jump(\n    _Py_CODEUNIT
      *instr, PyThreadState *tstate, int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT
      *src, _Py_CODEUNIT *dest)"
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - _PyFrame_GetBytecode
    - PyLong_FromLong
    - call_instrumentation_vector
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _Py_CODEUNIT *\n_Py_call_instrumentation_jump(\n    _Py_CODEUNIT
      *instr, PyThreadState *tstate, int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT
      *src, _Py_CODEUNIT *dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1265,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1265,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/instrumentation.c:1266,1
    - Dst: call_instrumentation_vector
      Src: /src/cpython/Python/instrumentation.c:1267,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:1269,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/instrumentation.c:1272,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1274,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - tstate
    - event
    - frame
    - instr
    - nargs
    - args
    argTypes:
    - PyThreadState*
    - int
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - Py_ssize_t
    - PyObject*[]
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 1264
        line_start: 1264
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1275
      start: 1260
    functionDepth: 6
    functionLinenumber: 1260
    functionLinenumberEnd: 1275
    functionName: call_instrumentation_vector_protected
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - assert
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - _PyErr_Occurred
    - call_instrumentation_vector
    linkageType: ''
    returnType: void
    signature: "void call_instrumentation_vector_protected(\n    PyThreadState *tstate,
      int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, Py_ssize_t
      nargs, PyObject *args[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1282,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1282,1
    - Dst: call_instrumentation_vector_protected
      Src: /src/cpython/Python/instrumentation.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - tstate
    - event
    - frame
    - instr
    - arg0
    - arg1
    argTypes:
    - PyThreadState*
    - int
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 1281
        line_start: 1281
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1285
      start: 1277
    functionDepth: 7
    functionLinenumber: 1277
    functionLinenumberEnd: 1285
    functionName: _Py_call_instrumentation_exc2
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - call_instrumentation_vector_protected
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _Py_call_instrumentation_exc2(\n    PyThreadState *tstate,
      int event,\n    _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0,
      PyObject *arg1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1291,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1292,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1293,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1293,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1295,1
    - Dst: compute_line
      Src: /src/cpython/Python/instrumentation.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - code
    - index
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (monitoring != NULL)
      pos:
        line_end: 1290
        line_start: 1290
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (index < Py_SIZE(code))
      pos:
        line_end: 1292
        line_start: 1292
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring->lines != NULL)
      pos:
        line_end: 1291
        line_start: 1291
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1298
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1298
    functionName: _Py_Instrumentation_GetLine
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - Py_SIZE
    - compute_line
    - get_line_delta
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_Instrumentation_GetLine(PyCodeObject *code, int index)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1303,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1304,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1305,1
    - Dst: debug_check_sanity
      Src: /src/cpython/Python/instrumentation.c:1305,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1306,1
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Python/instrumentation.c:1312,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1313,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1314,1
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Python/instrumentation.c:1316,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/instrumentation.c:1336,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/instrumentation.c:1347,1
    - Dst: PyThreadState*::c_tracefunc
      Src: /src/cpython/Python/instrumentation.c:1349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1353,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1364,1
    - Dst: most_significant_bit
      Src: /src/cpython/Python/instrumentation.c:1370,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1371,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1372,1
    - Dst: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:1374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1382,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:1388,1
    - Dst: remove_line_tools
      Src: /src/cpython/Python/instrumentation.c:1389,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:1390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1393,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1396,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1397,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1398,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1399,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 4
    argNames:
    - tstate
    - frame
    - instr
    - prev
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (line >= 0)
      pos:
        line_end: 1312
        line_start: 1312
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (prev != NULL)
      pos:
        line_end: 1313
        line_start: 1313
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (original_opcode != INSTRUMENTED_LINE)
      pos:
        line_end: 1397
        line_start: 1397
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (debug_check_sanity(tstate->interp, code))
      pos:
        line_end: 1304
        line_start: 1304
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 1371
        line_start: 1371
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tool >= 0 && tool < PY_MONITORING_SYS_PROFILE_ID)
      pos:
        line_end: 1370
        line_start: 1370
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (original_opcode != 0)
      pos:
        line_end: 1396
        line_start: 1396
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tstate->tracing == 0)
      pos:
        line_end: 1303
        line_start: 1303
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyOpcode_Deopt[original_opcode] == original_opcode)
      pos:
        line_end: 1398
        line_start: 1398
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1401
      start: 1300
    functionDepth: 4
    functionLinenumber: 1300
    functionLinenumberEnd: 1401
    functionName: _Py_call_instrumentation_line
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - remove_line_tools
    - _Py_Instrumentation_GetLine
    - _PyFrame_GetBytecode
    - debug_check_sanity
    - _PyFrame_GetCode
    - get_original_opcode
    - _PyEval_StopTheWorld
    - call_one_instrument
    - PyLong_FromLong
    - _PyFrame_GetFrameObject
    - most_significant_bit
    - PyThreadState*::c_tracefunc
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame*
      frame, _Py_CODEUNIT *instr, _Py_CODEUNIT *prev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1406,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1407,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1409,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1414,1
    - Dst: debug_check_sanity
      Src: /src/cpython/Python/instrumentation.c:1414,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1422,1
    - Dst: most_significant_bit
      Src: /src/cpython/Python/instrumentation.c:1428,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1429,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1430,1
    - Dst: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:1432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1440,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:1446,1
    - Dst: remove_per_instruction_tools
      Src: /src/cpython/Python/instrumentation.c:1447,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:1448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1451,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - tstate
    - frame
    - instr
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (debug_check_sanity(tstate->interp, code))
      pos:
        line_end: 1413
        line_start: 1413
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (instrumentation_data->per_instruction_opcodes)
      pos:
        line_end: 1408
        line_start: 1408
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tool >= 0 && tool < 8)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (next_opcode != 0)
      pos:
        line_end: 1451
        line_start: 1451
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1454
      start: 1403
    functionDepth: 4
    functionLinenumber: 1403
    functionLinenumberEnd: 1454
    functionName: _Py_call_instrumentation_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyFrame_GetBytecode
    - remove_per_instruction_tools
    - debug_check_sanity
    - _PyFrame_GetCode
    - _PyEval_StopTheWorld
    - call_one_instrument
    - PyLong_FromLong
    - most_significant_bit
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_call_instrumentation_instruction(PyThreadState *tstate,
      _PyInterpreterFrame* frame, _Py_CODEUNIT *instr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1459,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1462,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1463,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:1465,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1467,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1469,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:1474,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1477,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:1480,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1488,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1490,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1491,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1491,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (tools != NULL)
      pos:
        line_end: 1461
        line_start: 1461
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode != ENTER_EXECUTOR)
      pos:
        line_end: 1466
        line_start: 1466
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode != 0)
      pos:
        line_end: 1476
        line_start: 1476
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event > 0)
      pos:
        line_end: 1487
        line_start: 1487
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (PY_MONITORING_IS_INSTRUMENTED_EVENT(event))
      pos:
        line_end: 1490
        line_start: 1490
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event >= 0)
      pos:
        line_end: 1489
        line_start: 1489
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1510
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1510
    functionName: initialize_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - is_instrumented
    - Py_SIZE
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - opcode_has_event
    - get_original_opcode
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _PyCode_CODE
    - CHECK
    - assert
    linkageType: ''
    returnType: void
    signature: void initialize_tools(PyCodeObject *code)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1515,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1518,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1520,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:1522,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1525,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Python/instrumentation.c:1526,1
    - Dst: set_line_delta
      Src: /src/cpython/Python/instrumentation.c:1527,1
    - Dst: compute_line_delta
      Src: /src/cpython/Python/instrumentation.c:1527,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1528,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1530,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1542,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1552,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1553,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1553,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1556,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1562,1
    - Dst: set_line_delta
      Src: /src/cpython/Python/instrumentation.c:1563,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1568,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1574,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1578,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1606,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1607,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1608,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1610,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/instrumentation.c:1615,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/instrumentation.c:1616,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1620,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1621,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1622,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1623,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1624,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1625,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1627,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1628,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1633,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1634,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 84
    argCount: 2
    argNames:
    - code
    - bytes_per_entry
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (line_data != NULL)
      pos:
        line_end: 1517
        line_start: 1517
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (target >= 0)
      pos:
        line_end: 1605
        line_start: 1605
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (start_offset >= 0 && start_offset < code_len)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (handler >= 0 && handler < code_len)
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (size >= 0 && start_offset+size <= code_len)
      pos:
        line_end: 1622
        line_start: 1622
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1637
      start: 1512
    functionDepth: 2
    functionLinenumber: 1512
    functionLinenumberEnd: 1637
    functionName: initialize_lines
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - compute_line_delta
    - _Py_GetBaseCodeUnit
    - set_original_opcode
    - get_line_delta
    - Py_SIZE
    - parse_varint
    - _PyCode_CheckLineNumber
    - set_line_delta
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _PyCode_InitAddressRange
    - _PyInstruction_GetLength
    - PyBytes_GET_SIZE
    - CHECK
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: void
    signature: void initialize_lines(PyCodeObject *code, int bytes_per_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1642,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1645,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - code
    - all_events
    argTypes:
    - PyCodeObject*
    - _Py_LocalMonitors*
    assertStmts:
    - condition: (line_tools != NULL)
      pos:
        line_end: 1644
        line_start: 1644
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1650
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1650
    functionName: initialize_line_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - assert
    linkageType: ''
    returnType: void
    signature: void initialize_line_tools(PyCodeObject *code, _Py_LocalMonitors *all_events)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1655,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1658,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1652
    functionDepth: 2
    functionLinenumber: 1652
    functionLinenumberEnd: 1672
    functionName: allocate_instrumentation_data
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int allocate_instrumentation_data(PyCodeObject *code)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1677,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1679,1
    - Dst: allocate_instrumentation_data
      Src: /src/cpython/Python/instrumentation.c:1680,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:1693,1
    - Dst: multiple_tools
      Src: /src/cpython/Python/instrumentation.c:1696,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1698,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1700,1
    - Dst: initialize_tools
      Src: /src/cpython/Python/instrumentation.c:1703,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:1708,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:1710,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Python/instrumentation.c:1712,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1716,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1734,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1736,1
    - Dst: initialize_lines
      Src: /src/cpython/Python/instrumentation.c:1739,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1742,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1744,1
    - Dst: initialize_line_tools
      Src: /src/cpython/Python/instrumentation.c:1747,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1752,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1754,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:1760,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1765,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1767,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1674
    functionDepth: 3
    functionLinenumber: 1674
    functionLinenumberEnd: 1776
    functionName: update_instrumentation_data
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - multiple_tools
    - allocate_instrumentation_data
    - initialize_lines
    - Py_SIZE
    - _PyCode_CheckLineNumber
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - local_union
    - initialize_tools
    - _PyCode_InitAddressRange
    - _PyInstruction_GetLength
    - initialize_line_tools
    - _PyCode_CODE
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int update_instrumentation_data(PyCodeObject *code, PyInterpreterState
      *interp)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1781,1
    - Dst: _PyCode_Clear_Executors
      Src: /src/cpython/Python/instrumentation.c:1785,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Python/instrumentation.c:1787,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1789,1
    - Dst: update_instrumentation_data
      Src: /src/cpython/Python/instrumentation.c:1797,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:1800,1
    - Dst: monitors_sub
      Src: /src/cpython/Python/instrumentation.c:1812,1
    - Dst: monitors_sub
      Src: /src/cpython/Python/instrumentation.c:1813,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1814,1
    - Dst: monitors_are_empty
      Src: /src/cpython/Python/instrumentation.c:1814,1
    - Dst: monitors_and
      Src: /src/cpython/Python/instrumentation.c:1814,1
    - Dst: monitors_are_empty
      Src: /src/cpython/Python/instrumentation.c:1817,1
    - Dst: monitors_are_empty
      Src: /src/cpython/Python/instrumentation.c:1817,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1821,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1822,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:1822,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1823,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1824,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:1826,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1833,1
    - Dst: remove_tools
      Src: /src/cpython/Python/instrumentation.c:1837,1
    - Dst: add_tools
      Src: /src/cpython/Python/instrumentation.c:1841,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1854,1
    - Dst: remove_line_tools
      Src: /src/cpython/Python/instrumentation.c:1855,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1857,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1862,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1864,1
    - Dst: remove_per_instruction_tools
      Src: /src/cpython/Python/instrumentation.c:1867,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1868,1
    - Dst: sanity_check_instrumentation
      Src: /src/cpython/Python/instrumentation.c:1872,1
    - Dst: get_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1881,1
    - Dst: add_line_tools
      Src: /src/cpython/Python/instrumentation.c:1882,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1884,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1889,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1891,1
    - Dst: add_per_instruction_tools
      Src: /src/cpython/Python/instrumentation.c:1894,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1895,1
    - Dst: FT_ATOMIC_STORE_UINTPTR_RELEASE
      Src: /src/cpython/Python/instrumentation.c:1900,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:1901,1
    - Dst: sanity_check_instrumentation
      Src: /src/cpython/Python/instrumentation.c:1904,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts:
    - condition: (_PyCode_CODE(code)[i].op.code != ENTER_EXECUTOR)
      pos:
        line_end: 1821
        line_start: 1821
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitors_are_empty(monitors_and(new_events, removed_events)))
      pos:
        line_end: 1813
        line_start: 1813
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event > 0)
      pos:
        line_end: 1832
        line_start: 1832
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1907
      start: 1778
    functionDepth: 4
    functionLinenumber: 1778
    functionLinenumberEnd: 1907
    functionName: force_instrument_lock_held
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - add_line_tools
    - monitors_and
    - _Py_Executors_InvalidateDependency
    - get_original_opcode
    - monitors_are_empty
    - CHECK
    - add_per_instruction_tools
    - add_tools
    - global_version
    - update_instrumentation_data
    - _PyInstruction_GetLength
    - remove_line_tools
    - _Py_GetBaseCodeUnit
    - Py_SIZE
    - sanity_check_instrumentation
    - monitors_sub
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - remove_per_instruction_tools
    - _PyCode_Clear_Executors
    - opcode_has_event
    - FT_ATOMIC_STORE_UINTPTR_RELEASE
    - local_union
    - _PyCode_CODE
    - remove_tools
    - assert
    linkageType: ''
    returnType: int
    signature: int force_instrument_lock_held(PyCodeObject *code, PyInterpreterState
      *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1912,1
    - Dst: is_version_up_to_date
      Src: /src/cpython/Python/instrumentation.c:1914,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1915,1
    - Dst: instrumentation_cross_checks
      Src: /src/cpython/Python/instrumentation.c:1917,1
    - Dst: force_instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:1922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts:
    - condition: "(\n            interp->ceval.instrumentation_version == 0 ||\n            instrumentation_cross_checks(interp,
        code)\n        )"
      pos:
        line_end: 1917
        line_start: 1914
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1923
      start: 1909
    functionDepth: 5
    functionLinenumber: 1909
    functionLinenumberEnd: 1923
    functionName: instrument_lock_held
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - force_instrument_lock_held
    - is_version_up_to_date
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - instrumentation_cross_checks
    - assert
    linkageType: ''
    returnType: int
    signature: int instrument_lock_held(PyCodeObject *code, PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_CODE
      Src: /src/cpython/Python/instrumentation.c:1929,1
    - Dst: instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:1930,1
    - Dst: UNLOCK_CODE
      Src: /src/cpython/Python/instrumentation.c:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1925
    functionDepth: 6
    functionLinenumber: 1925
    functionLinenumberEnd: 1933
    functionName: _Py_Instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - UNLOCK_CODE
    - LOCK_CODE
    - instrument_lock_held
    linkageType: ''
    returnType: int
    signature: int _Py_Instrument(PyCodeObject *code, PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED
      Src: /src/cpython/Python/instrumentation.c:1946,1
    - Dst: instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:1953,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1953,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/instrumentation.c:1962,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1943
    functionDepth: 6
    functionLinenumber: 1943
    functionLinenumberEnd: 1964
    functionName: instrument_all_executing_code_objects
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_FOR_EACH_TSTATE_END
    - ASSERT_WORLD_STOPPED
    - _PyFrame_GetCode
    - instrument_lock_held
    linkageType: ''
    returnType: int
    signature: int instrument_all_executing_code_objects(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:1953,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1949
    functionDepth: 6
    functionLinenumber: 1949
    functionLinenumberEnd: 1960
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - instrument_lock_held
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - m
    - tool_id
    - events
    argTypes:
    - _Py_GlobalMonitors*
    - int
    - _PyMonitoringEventSet
    assertStmts:
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 1968
        line_start: 1968
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1976
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1976
    functionName: set_events
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void set_events(_Py_GlobalMonitors *m, int tool_id, _PyMonitoringEventSet
      events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - m
    - tool_id
    - events
    argTypes:
    - _Py_LocalMonitors*
    - int
    - _PyMonitoringEventSet
    assertStmts:
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 1980
        line_start: 1980
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1988
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 1988
    functionName: set_local_events
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void set_local_events(_Py_LocalMonitors *m, int tool_id, _PyMonitoringEventSet
      events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:1996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - tool_id
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 2000
    functionName: check_tool
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_tool(PyInterpreterState *interp, int tool_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED
      Src: /src/cpython/Python/instrumentation.c:2009,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2010,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:2011,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2013,1
    - Dst: check_tool
      Src: /src/cpython/Python/instrumentation.c:2014,1
    - Dst: get_events
      Src: /src/cpython/Python/instrumentation.c:2018,1
    - Dst: set_events
      Src: /src/cpython/Python/instrumentation.c:2022,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2023,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2025,1
    - Dst: set_global_version
      Src: /src/cpython/Python/instrumentation.c:2028,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/instrumentation.c:2030,1
    - Dst: instrument_all_executing_code_objects
      Src: /src/cpython/Python/instrumentation.c:2032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - tool_id
    - events
    argTypes:
    - int
    - _PyMonitoringEventSet
    assertStmts:
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 2009
        line_start: 2009
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (events < (1 << _PY_MONITORING_UNGROUPED_EVENTS))
      pos:
        line_end: 2012
        line_start: 2012
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2033
      start: 2006
    functionDepth: 7
    functionLinenumber: 2006
    functionLinenumberEnd: 2033
    functionName: _PyMonitoring_SetEvents
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - get_events
    - ASSERT_WORLD_STOPPED
    - set_events
    - global_version
    - _Py_Executors_InvalidateAll
    - _PyThreadState_GET
    - PyErr_Format
    - instrument_all_executing_code_objects
    - set_global_version
    - check_tool
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_SetEvents(int tool_id, _PyMonitoringEventSet events)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED
      Src: /src/cpython/Python/instrumentation.c:2038,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2040,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2041,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2042,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:2043,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2044,1
    - Dst: check_tool
      Src: /src/cpython/Python/instrumentation.c:2047,1
    - Dst: allocate_instrumentation_data
      Src: /src/cpython/Python/instrumentation.c:2051,1
    - Dst: get_local_events
      Src: /src/cpython/Python/instrumentation.c:2058,1
    - Dst: set_local_events
      Src: /src/cpython/Python/instrumentation.c:2062,1
    - Dst: force_instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:2064,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - code
    - tool_id
    - events
    argTypes:
    - PyCodeObject*
    - int
    - _PyMonitoringEventSet
    assertStmts:
    - condition: (events < (1 << _PY_MONITORING_LOCAL_EVENTS))
      pos:
        line_end: 2041
        line_start: 2041
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 2039
        line_start: 2039
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2065
      start: 2035
    functionDepth: 5
    functionLinenumber: 2035
    functionLinenumberEnd: 2065
    functionName: _PyMonitoring_SetLocalEvents
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - set_local_events
    - allocate_instrumentation_data
    - force_instrument_lock_held
    - Py_SIZE
    - ASSERT_WORLD_STOPPED
    - _PyInterpreterState_GET
    - get_local_events
    - PyErr_Format
    - check_tool
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet
      events)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2070,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2071,1
    - Dst: check_tool
      Src: /src/cpython/Python/instrumentation.c:2072,1
    - Dst: get_local_events
      Src: /src/cpython/Python/instrumentation.c:2080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - code
    - tool_id
    - events
    argTypes:
    - PyCodeObject*
    - int
    - _PyMonitoringEventSet*
    assertStmts:
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 2069
        line_start: 2069
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2082
      start: 2067
    functionDepth: 2
    functionLinenumber: 2067
    functionLinenumberEnd: 2082
    functionName: _PyMonitoring_GetLocalEvents
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - check_tool
    - get_local_events
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_GetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet
      *events)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2086,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2087,1
    - Dst: _PyMonitoring_RegisterCallback
      Src: /src/cpython/Python/instrumentation.c:2090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2092,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2096,1
    - Dst: _PyMonitoring_SetEvents
      Src: /src/cpython/Python/instrumentation.c:2097,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2098,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2102,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2104,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2105,1
    - Dst: set_global_version
      Src: /src/cpython/Python/instrumentation.c:2116,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:2116,1
    - Dst: instrument_all_executing_code_objects
      Src: /src/cpython/Python/instrumentation.c:2117,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - tool_id
    argTypes:
    - int
    assertStmts:
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 2085
        line_start: 2085
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2120
      start: 2084
    functionDepth: 8
    functionLinenumber: 2084
    functionLinenumberEnd: 2120
    functionName: _PyMonitoring_ClearToolId
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - instrument_all_executing_code_objects
    - _PyInterpreterState_GET
    - global_version
    - _PyEval_StartTheWorld
    - _PyThreadState_GET
    - _PyMonitoring_RegisterCallback
    - _PyEval_StopTheWorld
    - PyErr_Format
    - set_global_version
    - assert
    - _PyMonitoring_SetEvents
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_ClearToolId(int tool_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tool_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2138
    functionName: check_valid_tool
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_valid_tool(int tool_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2153,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/instrumentation.c:2156,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/instrumentation.c:2157,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2160,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2162,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:2165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - module
    - tool_id
    - name
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2149
    functionDepth: 2
    functionLinenumber: 2149
    functionLinenumberEnd: 2167
    functionName: monitoring_use_tool_id_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - Py_NewRef
    - PyErr_Format
    - PyUnicode_Check
    - check_valid_tool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_use_tool_id_impl(PyObject *module, int tool_id, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2181,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2185,1
    - Dst: _PyMonitoring_ClearToolId
      Src: /src/cpython/Python/instrumentation.c:2188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2177
    functionDepth: 9
    functionLinenumber: 2177
    functionLinenumberEnd: 2194
    functionName: monitoring_clear_tool_id_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyMonitoring_ClearToolId
    - _PyInterpreterState_GET
    - check_valid_tool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_clear_tool_id_impl(PyObject *module, int tool_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2208,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2211,1
    - Dst: _PyMonitoring_ClearToolId
      Src: /src/cpython/Python/instrumentation.c:2214,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:2219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2204
    functionDepth: 9
    functionLinenumber: 2204
    functionLinenumberEnd: 2221
    functionName: monitoring_free_tool_id_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyMonitoring_ClearToolId
    - Py_CLEAR
    - _PyInterpreterState_GET
    - check_valid_tool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_free_tool_id_impl(PyObject *module, int tool_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2237,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2240,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:2245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2231
    functionDepth: 2
    functionLinenumber: 2231
    functionLinenumberEnd: 2246
    functionName: monitoring_get_tool_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyInterpreterState_GET
    - check_valid_tool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_get_tool_impl(PyObject *module, int tool_id)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2264,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:2267,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/instrumentation.c:2268,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Python/instrumentation.c:2271,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2273,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/instrumentation.c:2276,1
    - Dst: _PyMonitoring_RegisterCallback
      Src: /src/cpython/Python/instrumentation.c:2282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - module
    - tool_id
    - event
    - func
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2259
    functionDepth: 2
    functionLinenumber: 2259
    functionLinenumberEnd: 2287
    functionName: monitoring_register_callback_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    - PyErr_SetString
    - _PyMonitoring_RegisterCallback
    - PyErr_Format
    - _Py_bit_length
    - PySys_Audit
    - check_valid_tool
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmonitoring_register_callback_impl(PyObject *module, int
      tool_id, int event,\n                                  PyObject *func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2301,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2304,1
    - Dst: get_events
      Src: /src/cpython/Python/instrumentation.c:2305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2297
    functionDepth: 2
    functionLinenumber: 2297
    functionLinenumberEnd: 2307
    functionName: monitoring_get_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - get_events
    - _PyInterpreterState_GET
    - check_valid_tool
    linkageType: ''
    returnType: int
    signature: int monitoring_get_events_impl(PyObject *module, int tool_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2322,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2326,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2330,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2338,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2339,1
    - Dst: _PyMonitoring_SetEvents
      Src: /src/cpython/Python/instrumentation.c:2340,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - module
    - tool_id
    - event_set
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2318
    functionDepth: 8
    functionLinenumber: 2318
    functionLinenumberEnd: 2346
    functionName: monitoring_set_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    - PyErr_Format
    - check_valid_tool
    - _PyMonitoring_SetEvents
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_set_events_impl(PyObject *module, int tool_id, int event_set)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Python/instrumentation.c:2362,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2363,1
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - tool_id
    - code
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2357
    functionDepth: 2
    functionLinenumber: 2357
    functionLinenumberEnd: 2382
    functionName: monitoring_get_local_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - check_valid_tool
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int monitoring_get_local_events_impl(PyObject *module, int tool_id,\n
      \                                PyObject *code)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Python/instrumentation.c:2399,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2400,1
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2406,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2410,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2419,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2423,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2424,1
    - Dst: _PyMonitoring_SetLocalEvents
      Src: /src/cpython/Python/instrumentation.c:2425,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2426,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - module
    - tool_id
    - code
    - event_set
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2394
    functionDepth: 6
    functionLinenumber: 2394
    functionLinenumberEnd: 2431
    functionName: monitoring_set_local_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - PyErr_Format
    - _PyMonitoring_SetLocalEvents
    - check_valid_tool
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmonitoring_set_local_events_impl(PyObject *module, int
      tool_id,\n                                 PyObject *code, int event_set)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:2446,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2449,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2450,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2453,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2454,1
    - Dst: set_global_version
      Src: /src/cpython/Python/instrumentation.c:2458,1
    - Dst: instrument_all_executing_code_objects
      Src: /src/cpython/Python/instrumentation.c:2459,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2438
    functionDepth: 7
    functionLinenumber: 2438
    functionLinenumberEnd: 2466
    functionName: monitoring_restart_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - global_version
    - _PyThreadState_GET
    - _PyEval_StopTheWorld
    - PyErr_Format
    - instrument_all_executing_code_objects
    - set_global_version
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_restart_events_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2471,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - name
    - i
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2468
    functionDepth: 2
    functionLinenumber: 2468
    functionLinenumberEnd: 2478
    functionName: add_power2_constant
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_SetAttrString
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int add_power2_constant(PyObject *obj, const char *name, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2488,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/instrumentation.c:2489,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2498,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2499,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/instrumentation.c:2500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (tools_obj != NULL)
      pos:
        line_end: 2498
        line_start: 2498
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2508
      start: 2484
    functionDepth: 10
    functionLinenumber: 2484
    functionLinenumberEnd: 2508
    functionName: monitoring__all_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyInterpreterState_GET
    - PyDict_SetItemString
    - PyDict_New
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring__all_events_impl(PyObject *module)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Python/instrumentation.c:2534,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2538,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2541,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/instrumentation.c:2544,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2549,1
    - Dst: add_power2_constant
      Src: /src/cpython/Python/instrumentation.c:2554,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2558,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/instrumentation.c:2558,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2560,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2561,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2563,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2565,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2566,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2568,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2570,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2571,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2573,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2575,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2576,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2582,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (val != NULL)
      pos:
        line_end: 2560
        line_start: 2560
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (val != NULL)
      pos:
        line_end: 2575
        line_start: 2575
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (val != NULL)
      pos:
        line_end: 2565
        line_start: 2565
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (val != NULL)
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2584
      start: 2532
    functionDepth: 14
    functionLinenumber: 2532
    functionLinenumberEnd: 2584
    functionName: _Py_CreateMonitoringObject
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - add_power2_constant
    - _PyLong_GetZero
    - Py_DECREF
    - PyObject_SetAttrString
    - _PyModule_CreateInitialized
    - PyLong_FromLong
    - assert
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_Py_CreateMonitoringObject(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:2591,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2595,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/instrumentation.c:2598,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2602,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2606,1
    - Dst: most_significant_bit
      Src: /src/cpython/Python/instrumentation.c:2614,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2615,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2616,1
    - Dst: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:2618,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:2629,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2630,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:2634,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 6
    argNames:
    - state
    - codelike
    - offset
    - args
    - nargs
    - event
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject**
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (args[1] == NULL)
      pos:
        line_end: 2594
        line_start: 2594
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (args[2] == NULL)
      pos:
        line_end: 2605
        line_start: 2605
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tool >= 0 && tool < 8)
      pos:
        line_end: 2614
        line_start: 2614
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 2615
        line_start: 2615
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2644
      start: 2587
    functionDepth: 2
    functionLinenumber: 2587
    functionLinenumberEnd: 2644
    functionName: capi_call_instrumentation
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - _PyThreadState_GET
    - call_one_instrument
    - PyLong_FromLong
    - PyErr_Format
    - most_significant_bit
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: "int capi_call_instrumentation(PyMonitoringState *state, PyObject *codelike,
      int32_t offset,\n                          PyObject **args, Py_ssize_t nargs,
      int event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2650,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2651,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state_array
    - version
    - event_types
    - length
    argTypes:
    - PyMonitoringState*
    - uint64_t*
    - uint8_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2646
    functionDepth: 2
    functionLinenumber: 2646
    functionLinenumberEnd: 2662
    functionName: PyMonitoring_EnterScope
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GET
    - global_version
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_EnterScope(PyMonitoringState *state_array, uint64_t
      *version,\n                         const uint8_t *event_types, Py_ssize_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2664
    functionDepth: 0
    functionLinenumber: 2664
    functionLinenumberEnd: 2668
    functionName: PyMonitoring_ExitScope
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_ExitScope(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2673,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2672
        line_start: 2672
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2677
      start: 2670
    functionDepth: 3
    functionLinenumber: 2670
    functionLinenumberEnd: 2677
    functionName: _PyMonitoring_FirePyStartEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FirePyStartEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2682,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2681
        line_start: 2681
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2686
      start: 2679
    functionDepth: 3
    functionLinenumber: 2679
    functionLinenumberEnd: 2686
    functionName: _PyMonitoring_FirePyResumeEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FirePyResumeEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2694,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - retval
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2693
        line_start: 2693
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2698
      start: 2690
    functionDepth: 3
    functionLinenumber: 2690
    functionLinenumberEnd: 2698
    functionName: _PyMonitoring_FirePyReturnEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FirePyReturnEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                                PyObject* retval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2704,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - retval
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2703
        line_start: 2703
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2708
      start: 2700
    functionDepth: 3
    functionLinenumber: 2700
    functionLinenumberEnd: 2708
    functionName: _PyMonitoring_FirePyYieldEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FirePyYieldEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                               PyObject* retval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2714,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - state
    - codelike
    - offset
    - callable
    - arg0
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2713
        line_start: 2713
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2718
      start: 2710
    functionDepth: 3
    functionLinenumber: 2710
    functionLinenumberEnd: 2718
    functionName: _PyMonitoring_FireCallEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FireCallEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                            PyObject* callable,
      PyObject *arg0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2724,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2725,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - lineno
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - int
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2723
        line_start: 2723
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2734
      start: 2720
    functionDepth: 3
    functionLinenumber: 2720
    functionLinenumberEnd: 2734
    functionName: _PyMonitoring_FireLineEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - Py_DECREF
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FireLineEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                            int lineno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2740,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - target_offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2739
        line_start: 2739
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2744
      start: 2736
    functionDepth: 3
    functionLinenumber: 2736
    functionLinenumberEnd: 2744
    functionName: _PyMonitoring_FireJumpEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FireJumpEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                            PyObject *target_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2750,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - target_offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2749
        line_start: 2749
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2754
      start: 2746
    functionDepth: 3
    functionLinenumber: 2746
    functionLinenumberEnd: 2754
    functionName: _PyMonitoring_FireBranchEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FireBranchEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                              PyObject *target_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2760,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - target_offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2759
        line_start: 2759
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2764
      start: 2756
    functionDepth: 3
    functionLinenumber: 2756
    functionLinenumberEnd: 2764
    functionName: _PyMonitoring_FireBranchRightEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FireBranchRightEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                              PyObject *target_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2770,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - target_offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2769
        line_start: 2769
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2774
      start: 2766
    functionDepth: 3
    functionLinenumber: 2766
    functionLinenumberEnd: 2774
    functionName: _PyMonitoring_FireBranchLeftEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FireBranchLeftEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                              PyObject *target_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2780,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - retval
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2779
        line_start: 2779
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2784
      start: 2776
    functionDepth: 3
    functionLinenumber: 2776
    functionLinenumberEnd: 2784
    functionName: _PyMonitoring_FireCReturnEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - capi_call_instrumentation
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyMonitoring_FireCReturnEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                               PyObject *retval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/instrumentation.c:2788,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - exc
    - event
    argTypes:
    - PyObject**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2786
    functionDepth: 1
    functionLinenumber: 2786
    functionLinenumberEnd: 2796
    functionName: exception_event_setup
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int exception_event_setup(PyObject **exc, int event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/instrumentation.c:2802,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:2805,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:2806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - err
    - exc
    argTypes:
    - int
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2804
        line_start: 2804
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2809
      start: 2799
    functionDepth: 1
    functionLinenumber: 2799
    functionLinenumberEnd: 2809
    functionName: exception_event_teardown
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_XDECREF
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int exception_event_teardown(int err, PyObject *exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2815,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2817,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2821,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2814
        line_start: 2814
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2823
      start: 2811
    functionDepth: 3
    functionLinenumber: 2811
    functionLinenumberEnd: 2823
    functionName: _PyMonitoring_FirePyThrowEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_teardown
    - capi_call_instrumentation
    - exception_event_setup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FirePyThrowEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2829,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2831,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2835,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2828
        line_start: 2828
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2837
      start: 2825
    functionDepth: 3
    functionLinenumber: 2825
    functionLinenumberEnd: 2837
    functionName: _PyMonitoring_FireRaiseEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_teardown
    - capi_call_instrumentation
    - exception_event_setup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FireRaiseEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2843,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2845,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2849,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2842
        line_start: 2842
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2851
      start: 2839
    functionDepth: 3
    functionLinenumber: 2839
    functionLinenumberEnd: 2851
    functionName: _PyMonitoring_FireCRaiseEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_teardown
    - capi_call_instrumentation
    - exception_event_setup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FireCRaiseEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2857,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2859,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2863,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2856
        line_start: 2856
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2865
      start: 2853
    functionDepth: 3
    functionLinenumber: 2853
    functionLinenumberEnd: 2865
    functionName: _PyMonitoring_FireReraiseEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_teardown
    - capi_call_instrumentation
    - exception_event_setup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FireReraiseEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2871,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2873,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2877,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2870
        line_start: 2870
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2879
      start: 2867
    functionDepth: 3
    functionLinenumber: 2867
    functionLinenumberEnd: 2879
    functionName: _PyMonitoring_FireExceptionHandledEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_teardown
    - capi_call_instrumentation
    - exception_event_setup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FireExceptionHandledEvent(PyMonitoringState *state,
      PyObject *codelike, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2885,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2887,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2891,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2884
        line_start: 2884
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2893
      start: 2881
    functionDepth: 3
    functionLinenumber: 2881
    functionLinenumberEnd: 2893
    functionName: _PyMonitoring_FirePyUnwindEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_teardown
    - capi_call_instrumentation
    - exception_event_setup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FirePyUnwindEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2899,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2900,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:2900,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/instrumentation.c:2901,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2903,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2908,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - value
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts:
    - condition: (state->active)
      pos:
        line_end: 2898
        line_start: 2898
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2899
        line_start: 2899
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2910
      start: 2895
    functionDepth: 3
    functionLinenumber: 2895
    functionLinenumberEnd: 2910
    functionName: _PyMonitoring_FireStopIterationEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - exception_event_teardown
    - PyErr_Occurred
    - PyErr_SetObject
    - capi_call_instrumentation
    - exception_event_setup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_FireStopIterationEvent(PyMonitoringState *state,
      PyObject *codelike, int32_t offset, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2924
    functionDepth: 0
    functionLinenumber: 2924
    functionLinenumberEnd: 2925
    functionName: _PyLegacyBranchEventHandler_CAST
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyLegacyBranchEventHandler_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyBranchEventHandler_CAST
      Src: /src/cpython/Python/instrumentation.c:2929,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:2930,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/instrumentation.c:2931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2926
    functionDepth: 2
    functionLinenumber: 2926
    functionLinenumberEnd: 2932
    functionName: dealloc_branch_handler
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyLegacyBranchEventHandler_CAST
    - Py_CLEAR
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void dealloc_branch_handler(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyBranchEventHandler_CAST
      Src: /src/cpython/Python/instrumentation.c:2951,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2955,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/instrumentation.c:2955,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/instrumentation.c:2957,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:2958,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:2961,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:2962,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/instrumentation.c:2966,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2969,1
    - Dst: IS_CONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/instrumentation.c:2983,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2987,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:2987,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2998,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2999,1
    - Dst: remove_tools
      Src: /src/cpython/Python/instrumentation.c:3000,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:3001,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - op
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) >= 3)
      pos:
        line_end: 2954
        line_start: 2954
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (INLINE_CACHE_ENTRIES_FOR_ITER == 1)
      pos:
        line_end: 2968
        line_start: 2968
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_GetBaseCodeUnit(code, offset).op.code == NOT_TAKEN)
      pos:
        line_end: 2986
        line_start: 2986
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 3004
      start: 2946
    functionDepth: 4
    functionLinenumber: 2946
    functionLinenumberEnd: 3004
    functionName: branch_handler_vectorcall
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyLegacyBranchEventHandler_CAST
    - is_instrumented
    - _Py_GetBaseCodeUnit
    - PyLong_AsLong
    - PyErr_Occurred
    - PyObject_Vectorcall
    - _PyInterpreterState_GET
    - _PyCode_CODE
    - remove_tools
    - _PyEval_StopTheWorld
    - PyVectorcall_NARGS
    - IS_CONDITIONAL_JUMP_OPCODE
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbranch_handler_vectorcall(\n    PyObject *op, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/cpython/Python/instrumentation.c:3009,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:3014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - tool_id
    - handler
    - right
    argTypes:
    - int
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 3006
    functionDepth: 1
    functionLinenumber: 3006
    functionLinenumberEnd: 3018
    functionName: make_branch_handler
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_NEW
    linkageType: ''
    returnType: PyObject
    signature: PyObject *make_branch_handler(int tool_id, PyObject *handler, bool
      right)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3023,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3024,1
    - Dst: make_branch_handler
      Src: /src/cpython/Python/instrumentation.c:3033,1
    - Dst: make_branch_handler
      Src: /src/cpython/Python/instrumentation.c:3037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:3039,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:3043,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:3044,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:3049,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3050,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:3053,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:3054,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/instrumentation.c:3056,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:3057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/instrumentation.c:3059,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:3061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:3062,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - tool_id
    - event_id
    - obj
    argTypes:
    - int
    - int
    - PyObject*
    assertStmts:
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 3022
        line_start: 3022
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (0 <= event_id && event_id < _PY_MONITORING_EVENTS)
      pos:
        line_end: 3023
        line_start: 3023
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 3065
      start: 3020
    functionDepth: 2
    functionLinenumber: 3020
    functionLinenumberEnd: 3065
    functionName: _PyMonitoring_RegisterCallback
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _PyInterpreterState_GET
    - Py_NewRef
    - make_branch_handler
    - _PyEval_StopTheWorld
    - Py_XNewRef
    - Py_TYPE
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMonitoring_RegisterCallback(int tool_id, int event_id, 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: 3076
      start: 3075
    functionDepth: 0
    functionLinenumber: 3075
    functionLinenumberEnd: 3076
    functionName: branchesiterator_CAST
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: branchesiterator_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:3079,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:3085,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:3089,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Python/instrumentation.c:3094,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3096,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3097,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3098,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3077
    functionDepth: 3
    functionLinenumber: 3077
    functionLinenumberEnd: 3100
    functionName: int_triple
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTuple_FromArraySteal
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_triple(int a, int b, int c)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: branchesiterator_CAST
      Src: /src/cpython/Python/instrumentation.c:3105,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:3108,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:3109,1
    - Dst: int_triple
      Src: /src/cpython/Python/instrumentation.c:3119,1
    - Dst: int_triple
      Src: /src/cpython/Python/instrumentation.c:3128,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3133,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:3133,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3134,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:3134,1
    - Dst: int_triple
      Src: /src/cpython/Python/instrumentation.c:3136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_GetBaseCodeUnit(bi->bi_code, src_offset).op.code == END_SEND)
      pos:
        line_end: 3132
        line_start: 3132
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_GetBaseCodeUnit(bi->bi_code, src_offset+1).op.code == NOT_TAKEN)
      pos:
        line_end: 3133
        line_start: 3133
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 3143
      start: 3102
    functionDepth: 4
    functionLinenumber: 3102
    functionLinenumberEnd: 3143
    functionName: branchesiter_next
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_GetBaseCodeUnit
    - int_triple
    - Py_SIZE
    - branchesiterator_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      branchesiter_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: branchesiterator_CAST
      Src: /src/cpython/Python/instrumentation.c:3148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:3149,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/instrumentation.c:3150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3151
      start: 3145
    functionDepth: 2
    functionLinenumber: 3145
    functionLinenumberEnd: 3151
    functionName: branchesiter_dealloc
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Free
    - branchesiterator_CAST
    linkageType: ''
    returnType: void
    signature: void branchesiter_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Python/instrumentation.c:3170,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:3174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3166
    functionDepth: 4
    functionLinenumber: 3166
    functionLinenumberEnd: 3177
    functionName: _PyInstrumentation_BranchesIterator
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInstrumentation_BranchesIterator(PyCodeObject *code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/pyarena.c:78,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Python/pyarena.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: block_new
    functionSourceFile: /src/cpython/Python/pyarena.c
    functionUses: 0
    functionsReached:
    - _Py_ALIGN_UP
    - PyMem_Malloc
    linkageType: ''
    returnType: block
    signature: 'block *

      block_new(size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Python/pyarena.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: block_free
    functionSourceFile: /src/cpython/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/cpython/Python/pyarena.c:102,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/pyarena.c:103,1
    - Dst: block_new
      Src: /src/cpython/Python/pyarena.c:108,1
    - Dst: assert
      Src: /src/cpython/Python/pyarena.c:113,1
    - Dst: assert
      Src: /src/cpython/Python/pyarena.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - b
    - size
    argTypes:
    - block*
    - size_t
    assertStmts:
    - condition: (b)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/pyarena.c
    - condition: (b->ab_offset + size <= b->ab_size)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/cpython/Python/pyarena.c
    - condition: (!b->ab_next)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/cpython/Python/pyarena.c
    constantsTouched: []
    func_position:
      end: 122
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 122
    functionName: block_alloc
    functionSourceFile: /src/cpython/Python/pyarena.c
    functionUses: 0
    functionsReached:
    - block_new
    - assert
    - _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/cpython/Python/pyarena.c:127,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pyarena.c:129,1
    - Dst: block_new
      Src: /src/cpython/Python/pyarena.c:131,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/pyarena.c:134,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pyarena.c:135,1
    - Dst: PyList_New
      Src: /src/cpython/Python/pyarena.c:137,1
    - Dst: block_free
      Src: /src/cpython/Python/pyarena.c:139,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/pyarena.c:140,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pyarena.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: _PyArena_New
    functionSourceFile: /src/cpython/Python/pyarena.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - block_new
    - block_free
    - PyErr_NoMemory
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyArena
    signature: 'PyArena *

      _PyArena_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pyarena.c:156,1
    - Dst: block_free
      Src: /src/cpython/Python/pyarena.c:166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pyarena.c:172,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/pyarena.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PyArena*
    assertStmts:
    - condition: (arena)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Python/pyarena.c
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: _PyArena_Free
    functionSourceFile: /src/cpython/Python/pyarena.c
    functionUses: 2
    functionsReached:
    - block_free
    - PyMem_Free
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _PyArena_Free(PyArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: block_alloc
      Src: /src/cpython/Python/pyarena.c:179,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pyarena.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PyArena*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 197
    functionName: _PyArena_Malloc
    functionSourceFile: /src/cpython/Python/pyarena.c
    functionUses: 10
    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/cpython/Python/pyarena.c:202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pyarena.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arena
    - obj
    argTypes:
    - PyArena*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: _PyArena_AddPyObject
    functionSourceFile: /src/cpython/Python/pyarena.c
    functionUses: 15
    functionsReached:
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PyArena_AddPyObject(PyArena *arena, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/gc_gil.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 3
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: _PyGC_ClearAllFreeLists
    functionSourceFile: /src/cpython/Python/gc_gil.c
    functionUses: 0
    functionsReached:
    - _PyObject_ClearFreeLists
    linkageType: ''
    returnType: void
    signature: void _PyGC_ClearAllFreeLists(PyInterpreterState *interp)
  - 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/cpython/Python/getcopyright.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetCopyright(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer_analysis.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: get_lltrace
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - Py_GETENV
    linkageType: ''
    returnType: int
    signature: int get_lltrace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - level
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: DPRINTF
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(level, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:58,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: get_mutations
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: int get_mutations(PyObject* dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:65,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: increment_mutations
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void increment_mutations(PyObject* dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RARE_EVENT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:80,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:81,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_analysis.c:81,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Python/optimizer_analysis.c:82,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_analysis.c:82,1
    - Dst: increment_mutations
      Src: /src/cpython/Python/optimizer_analysis.c:83,1
    - Dst: PyDict_Unwatch
      Src: /src/cpython/Python/optimizer_analysis.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - event
    - dict
    - key
    - new_value
    argTypes:
    - PyDict_WatchEvent
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (get_mutations(dict) < _Py_MAX_ALLOWED_GLOBALS_MODIFICATIONS)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: globals_watcher_callback
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - increment_mutations
    - get_mutations
    - _PyInterpreterState_GET
    - _Py_Executors_InvalidateDependency
    - RARE_EVENT_STAT_INC
    - PyDict_Unwatch
    - assert
    linkageType: ''
    returnType: int
    signature: "int globals_watcher_callback(PyDict_WatchEvent event, PyObject* dict,\n
      \                        PyObject* key, PyObject* new_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Python/optimizer_analysis.c:91,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_analysis.c:91,1
    - Dst: PyType_Unwatch
      Src: /src/cpython/Python/optimizer_analysis.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: type_watcher_callback
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyType_Unwatch
    - _PyInterpreterState_GET
    - _Py_Executors_InvalidateDependency
    linkageType: ''
    returnType: int
    signature: int type_watcher_callback(PyTypeObject* type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:99,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:100,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:100,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:102,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/optimizer_analysis.c:103,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:105,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_analysis.c:117,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:124,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - inst
    - obj
    - pop
    argTypes:
    - _PyUOpInstruction*
    - PyObject*
    - bool
    assertStmts:
    - condition: (inst->opcode == _LOAD_GLOBAL_MODULE || inst->opcode == _LOAD_GLOBAL_BUILTINS
        || inst->opcode == _LOAD_ATTR_MODULE)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyDict_CheckExact(obj))
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (dict->ma_keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (index <= UINT16_MAX)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (inst[1].opcode == _PUSH_NULL_CONDITIONAL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (inst[1].oparg & 1)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 129
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 129
    functionName: convert_global_to_const
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - _Py_IsImmortal
    - PyDict_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      convert_global_to_const(_PyUOpInstruction *inst, PyObject *obj, bool pop)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inst
    - obj
    argTypes:
    - _PyUOpInstruction*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: incorrect_keys
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int incorrect_keys(_PyUOpInstruction *inst, PyObject *obj)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_analysis.c:151,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:154,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Python/optimizer_analysis.c:158,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:159,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_analysis.c:159,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:160,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:161,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Python/optimizer_analysis.c:162,1
    - Dst: incorrect_keys
      Src: /src/cpython/Python/optimizer_analysis.c:188,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:189,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_analysis.c:192,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_analysis.c:196,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_analysis.c:197,1
    - Dst: incorrect_keys
      Src: /src/cpython/Python/optimizer_analysis.c:210,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:211,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_analysis.c:218,1
    - Dst: convert_global_to_const
      Src: /src/cpython/Python/optimizer_analysis.c:222,1
    - Dst: incorrect_keys
      Src: /src/cpython/Python/optimizer_analysis.c:226,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:227,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_analysis.c:230,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_analysis.c:234,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_analysis.c:235,1
    - Dst: convert_global_to_const
      Src: /src/cpython/Python/optimizer_analysis.c:244,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:261,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_analysis.c:261,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:270,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:289,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_analysis.c:289,1
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer_analysis.c:299,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 126
    argCount: 4
    argNames:
    - frame
    - buffer
    - buffer_size
    - dependencies
    argTypes:
    - _PyInterpreterFrame*
    - _PyUOpInstruction*
    - int
    - _PyBloomFilter*
    assertStmts:
    - condition: (function->func_builtins == builtins)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyFunction_Check(function))
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (function->func_globals == globals)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 306
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 306
    functionName: remove_globals
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - get_mutations
    - _Py_BloomFilter_Add
    - incorrect_keys
    - _PyInterpreterState_GET
    - _PyFunction_GetVersionForCurrentState
    - convert_global_to_const
    - _PyFrame_GetFunction
    - is_terminator
    - PyDict_Watch
    - assert
    - OPT_STAT_INC
    linkageType: ''
    returnType: int
    signature: "int remove_globals(_PyInterpreterFrame *frame, _PyUOpInstruction *buffer,\n
      \              int buffer_size, _PyBloomFilter *dependencies)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: STACK_LEVEL
    functionSourceFile: /src/cpython/Python/optimizer_analysis.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: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: STACK_SIZE
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_SIZE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: WITHIN_STACK_BOUNDS
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITHIN_STACK_BOUNDS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: GETLOCAL
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETLOCAL(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - INST
    - ','
    - OP
    - ','
    - ARG
    - ','
    - OPERAND
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: REPLACE_OP
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPLACE_OP(INST, OP, ARG, OPERAND)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: sym_set_null
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_null(SYM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: sym_set_non_null
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_non_null(SYM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: sym_set_type
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_type(SYM, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - VERSION
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: sym_set_type_version
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_type_version(SYM, VERSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - CNST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: sym_set_const
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_const(SYM, CNST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: sym_set_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_compact_int(SYM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: JUMP_TO_LABEL
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_LABEL(label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_analysis.c:368,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_analysis.c:369,1
    - Dst: sym_truthiness
      Src: /src/cpython/Python/optimizer_analysis.c:373,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_analysis.c:376,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_analysis.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - this_instr
    - ctx
    - value
    - result_ptr
    argTypes:
    - _PyUOpInstruction*
    - JitOptContext*
    - JitOptRef
    - JitOptRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 381
    functionName: optimize_to_bool
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - sym_truthiness
    - sym_new_const
    - REPLACE_OP
    - sym_matches_type
    linkageType: ''
    returnType: int
    signature: "int optimize_to_bool(\n    _PyUOpInstruction *this_instr,\n    JitOptContext
      *ctx,\n    JitOptRef value,\n    JitOptRef *result_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_analysis.c:386,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_analysis.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - this_instr
    - exit
    argTypes:
    - _PyUOpInstruction*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: eliminate_pop_guard
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - REPLACE_OP
    linkageType: ''
    returnType: void
    signature: void eliminate_pop_guard(_PyUOpInstruction *this_instr, bool exit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Python/optimizer_analysis.c:399,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/optimizer_analysis.c:400,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_analysis.c:402,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_analysis.c:403,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_analysis.c:404,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_analysis.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - ctx
    - this_instr
    - type
    - name
    - immortal
    - mortal
    argTypes:
    - JitOptContext*
    - _PyUOpInstruction*
    - PyTypeObject*
    - PyObject*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 408
    functionName: lookup_attr
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - _PyType_Lookup
    - sym_new_const
    - REPLACE_OP
    - sym_new_not_null
    - _Py_IsImmortal
    linkageType: ''
    returnType: JitOptRef
    signature: "JitOptRef lookup_attr(JitOptContext *ctx, _PyUOpInstruction *this_instr,\n
      \           PyTypeObject *type, PyObject *name, uint16_t immortal,\n            uint16_t
      mortal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:416,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:427,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_analysis.c:427,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:430,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/optimizer_analysis.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - _PyUOpInstruction*
    assertStmts:
    - condition: (op->opcode == _PUSH_FRAME || op->opcode == _RETURN_VALUE || op->opcode
        == _RETURN_GENERATOR)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyCode_Check(co))
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 432
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 432
    functionName: get_code
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 2
    functionsReached:
    - PyCode_Check
    - PyFunction_Check
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      get_code(_PyUOpInstruction *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:441,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:442,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/optimizer_analysis.c:442,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:446,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:448,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:449,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - _PyUOpInstruction*
    assertStmts:
    - condition: (PyCode_Check(co))
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 456
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 456
    functionName: get_code_with_logging
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - DPRINTF
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      get_code_with_logging(_PyUOpInstruction *op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_abstractcontext_init
      Src: /src/cpython/Python/optimizer_analysis.c:484,1
    - Dst: _Py_uop_frame_new
      Src: /src/cpython/Python/optimizer_analysis.c:485,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:494,1
    - Dst: get_lltrace
      Src: /src/cpython/Python/optimizer_analysis.c:502,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:503,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/optimizer_analysis.c:504,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:505,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:514,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_analysis.c:515,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:517,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:518,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/optimizer_analysis.c:518,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:520,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/optimizer_analysis.c:520,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:523,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:524,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:532,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:533,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_analysis.c:534,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_analysis.c:540,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:542,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:543,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:544,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:545,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:552,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:553,1
    - Dst: OPT_ERROR_IN_OPCODE
      Src: /src/cpython/Python/optimizer_analysis.c:555,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_analysis.c:557,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 55
    argCount: 5
    argNames:
    - co
    - trace
    - trace_len
    - curr_stacklen
    - dependencies
    argTypes:
    - PyCodeObject*
    - _PyUOpInstruction*
    - int
    - int
    - _PyBloomFilter*
    assertStmts:
    - condition: (max_space <= INT32_MAX)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (max_space <= INT_MAX)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (i < trace_len)
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (first_valid_check_stack->opcode == _CHECK_STACK_SPACE)
      pos:
        line_end: 541
        line_start: 541
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (max_space > 0)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (ctx->frame != NULL)
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (STACK_LEVEL() >= 0)
      pos:
        line_end: 519
        line_start: 519
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 560
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 560
    functionName: optimize_uops
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - _PyUOpPrint
    - _Py_uop_abstractcontext_fini
    - DPRINTF
    - _Py_uop_frame_new
    - printf
    - _Py_uop_abstractcontext_init
    - STACK_LEVEL
    - get_lltrace
    - OPT_ERROR_IN_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: "int optimize_uops(\n    PyCodeObject *co,\n    _PyUOpInstruction *trace,\n
      \   int trace_len,\n    int curr_stacklen,\n    _PyBloomFilter *dependencies\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:654,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:668,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_analysis.c:679,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 2
    argNames:
    - buffer
    - buffer_size
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts:
    - condition: (opcode)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (buffer[last_set_ip].opcode == _NOP)
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 680
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 680
    functionName: remove_unneeded_uops
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - assert
    linkageType: ''
    returnType: int
    signature: int remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:694,1
    - Dst: remove_globals
      Src: /src/cpython/Python/optimizer_analysis.c:696,1
    - Dst: optimize_uops
      Src: /src/cpython/Python/optimizer_analysis.c:701,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/optimizer_analysis.c:702,1
    - Dst: remove_unneeded_uops
      Src: /src/cpython/Python/optimizer_analysis.c:709,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:710,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - frame
    - buffer
    - length
    - curr_stacklen
    - dependencies
    argTypes:
    - _PyInterpreterFrame*
    - _PyUOpInstruction*
    - int
    - int
    - _PyBloomFilter*
    assertStmts:
    - condition: (length > 0)
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 714
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 714
    functionName: _Py_uop_analyze_and_optimize
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - remove_globals
    - assert
    - remove_unneeded_uops
    - optimize_uops
    - _PyFrame_GetCode
    - OPT_STAT_INC
    linkageType: ''
    returnType: int
    signature: "int _Py_uop_analyze_and_optimize(\n    _PyInterpreterFrame *frame,\n
      \   _PyUOpInstruction *buffer,\n    int length,\n    int curr_stacklen,\n    _PyBloomFilter
      *dependencies\n)"
  - 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: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Py_IS_TYPE
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_TYPE(ob, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: Py_XDECREF
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 664
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XDECREF(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2188
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DECREF(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - dealloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: _Py_DECREF_SPECIALIZED
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_SPECIALIZED(arg, dealloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2188
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DECREF(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - dealloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: _Py_DECREF_SPECIALIZED
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_SPECIALIZED(arg, dealloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval.c:149,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!interp->stoptheworld.world_stopped)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: check_invalid_reentrancy
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void check_invalid_reentrancy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:159,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:160,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/ceval.c:163,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:164,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/ceval.c:164,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:167,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:169,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:173,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - item
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: dump_item
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - printf
    - Py_TYPE
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsNull
    - PyStackRef_UntagInt
    - PyStackRef_IsTaggedInt
    linkageType: ''
    returnType: void
    signature: void dump_item(_PyStackRef item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/ceval.c:179,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Python/ceval.c:180,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/ceval.c:181,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval.c:182,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:183,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:186,1
    - Dst: dump_item
      Src: /src/cpython/Python/ceval.c:188,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:190,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:192,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:195,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:198,1
    - Dst: dump_item
      Src: /src/cpython/Python/ceval.c:200,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:202,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:204,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:205,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/ceval.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - frame
    - stack_pointer
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 207
    functionName: dump_stack
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - dump_item
    - _PyFrame_Stackbase
    - PyErr_GetRaisedException
    - _PyFrame_SetStackPointer
    - printf
    - _PyFrame_GetLocalsArray
    - fflush
    - _PyFrame_GetStackPointer
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void dump_stack(_PyInterpreterFrame *frame, _PyStackRef *stack_pointer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dump_stack
      Src: /src/cpython/Python/ceval.c:218,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/ceval.c:219,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:222,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/ceval.c:223,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:224,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:227,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - frame
    - stack_pointer
    - next_instr
    - opcode
    - oparg
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - _Py_CODEUNIT*
    - int
    - int
    assertStmts:
    - condition: (opname != NULL)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 230
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 230
    functionName: lltrace_instruction
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_ARG
    - _PyFrame_GetBytecode
    - printf
    - dump_stack
    - fflush
    - assert
    linkageType: ''
    returnType: void
    signature: "void lltrace_instruction(_PyInterpreterFrame *frame,\n                    _PyStackRef
      *stack_pointer,\n                    _Py_CODEUNIT *next_instr,\n                    int
      opcode,\n                    int oparg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:235,1
    - Dst: PyStackRef_CodeCheck
      Src: /src/cpython/Python/ceval.c:236,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/ceval.c:238,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:240,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval.c:244,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:249,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:251,1
    - Dst: PyObject_Print
      Src: /src/cpython/Python/ceval.c:252,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ceval.c:253,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:257,1
    - Dst: PyObject_Print
      Src: /src/cpython/Python/ceval.c:258,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ceval.c:259,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:262,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:263,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 265
    functionName: lltrace_resume_frame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - PyObject_Print
    - PyErr_GetRaisedException
    - printf
    - PyStackRef_AsPyObjectBorrow
    - fflush
    - PyErr_SetRaisedException
    - PyErr_Clear
    - PyStackRef_CodeCheck
    linkageType: ''
    returnType: void
    signature: void lltrace_resume_frame(_PyInterpreterFrame *frame)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/ceval.c:276,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:276,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ceval.c:278,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/ceval.c:284,1
    - Dst: lltrace_resume_frame
      Src: /src/cpython/Python/ceval.c:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - frame
    - globals
    argTypes:
    - _PyInterpreterFrame*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 293
    functionName: maybe_lltrace_resume_frame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - lltrace_resume_frame
    - _Py_ID
    - PyDict_Contains
    - Py_GETENV
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int maybe_lltrace_resume_frame(_PyInterpreterFrame *frame, PyObject
      *globals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: Py_GetRecursionLimit
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int Py_GetRecursionLimit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval.c:333,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/ceval.c:334,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/ceval.c:341,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/ceval.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - new_limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 343
    functionName: Py_SetRecursionLimit
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_StartTheWorld
    - _Py_FOR_EACH_TSTATE_END
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: void
    signature: void Py_SetRecursionLimit(int new_limit)
  - 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: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Python/ceval.c:348,1
    - Dst: _Py_InitializeRecursionLimits
      Src: /src/cpython/Python/ceval.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tstate
    - margin_count
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: _Py_ReachedRecursionLimitWithMargin
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 455
    functionsReached:
    - _Py_get_machine_stack_pointer
    - _Py_InitializeRecursionLimits
    linkageType: ''
    returnType: int
    signature: int _Py_ReachedRecursionLimitWithMargin(PyThreadState *tstate, int
      margin_count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Python/ceval.c:362,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 367
    functionName: _Py_EnterRecursiveCallUnchecked
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _Py_get_machine_stack_pointer
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _Py_EnterRecursiveCallUnchecked(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emscripten_stack_get_base
      Src: /src/cpython/Python/ceval.c:407,1
    - Dst: emscripten_stack_get_base
      Src: /src/cpython/Python/ceval.c:408,1
    - Dst: emscripten_stack_get_end
      Src: /src/cpython/Python/ceval.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - thread
    - attr
    argTypes:
    - pthread_t
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: pthread_getattr_np
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - emscripten_stack_get_base
    - emscripten_stack_get_end
    linkageType: ''
    returnType: int
    signature: int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - size
    argTypes:
    - pthread_attr_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: pthread_attr_getguardsize
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t
      *restrict size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - addr
    - size
    argTypes:
    - pthread_attr_t*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: pthread_attr_getstack
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict
      addr, size_t *restrict size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: pthread_attr_destroy
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_destroy(pthread_attr_t *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadStackLimits
      Src: /src/cpython/Python/ceval.c:448,1
    - Dst: SetThreadStackGuarantee
      Src: /src/cpython/Python/ceval.c:451,1
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Python/ceval.c:455,1
    - Dst: pthread_getattr_np
      Src: /src/cpython/Python/ceval.c:464,1
    - Dst: pthread_self
      Src: /src/cpython/Python/ceval.c:464,1
    - Dst: pthread_attr_getguardsize
      Src: /src/cpython/Python/ceval.c:466,1
    - Dst: pthread_attr_getstack
      Src: /src/cpython/Python/ceval.c:467,1
    - Dst: pthread_attr_destroy
      Src: /src/cpython/Python/ceval.c:468,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:480,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:481,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/ceval.c:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_tstate->c_stack_soft_limit < here_addr)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/cpython/Python/ceval.c
    - condition: (here_addr < _tstate->c_stack_top)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 489
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 489
    functionName: _Py_InitializeRecursionLimits
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - assert
    - pthread_self
    - _Py_SIZE_ROUND_UP
    - GetCurrentThreadStackLimits
    - _Py_get_machine_stack_pointer
    - pthread_getattr_np
    - pthread_attr_destroy
    - pthread_attr_getguardsize
    - SetThreadStackGuarantee
    - pthread_attr_getstack
    linkageType: ''
    returnType: void
    signature: void _Py_InitializeRecursionLimits(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Python/ceval.c:497,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:498,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:499,1
    - Dst: snprintf
      Src: /src/cpython/Python/ceval.c:504,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:505,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tstate
    - where
    argTypes:
    - PyThreadState*
    - char*
    assertStmts:
    - condition: (_tstate->c_stack_hard_limit != 0)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/cpython/Python/ceval.c
    - condition: (_tstate->c_stack_soft_limit != 0)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 520
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 520
    functionName: _Py_CheckRecursiveCall
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _PyErr_Format
    - _Py_get_machine_stack_pointer
    - snprintf
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_CheckRecursiveCall(PyThreadState *tstate, const char *where)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:626,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:626,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:627,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:630,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Python/ceval.c:640,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Python/ceval.c:641,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:641,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:642,1
    - Dst: PySet_New
      Src: /src/cpython/Python/ceval.c:646,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/ceval.c:651,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:655,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:660,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/ceval.c:661,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/ceval.c:661,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:662,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:664,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:672,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:683,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:685,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/ceval.c:688,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Python/ceval.c:692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:694,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Python/ceval.c:697,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:698,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:699,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:700,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - tstate
    - map
    - keys
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(keys))
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 702
      start: 623
    functionDepth: 11
    functionLinenumber: 623
    functionLinenumberEnd: 702
    functionName: _PyEval_MatchKeys
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_Format
    - PyTuple_CheckExact
    - _PyThreadState_PopCStackRef
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - _PyThreadState_PushCStackRef
    - PySet_Contains
    - PySet_Add
    - PySet_New
    - Py_DECREF
    - _Py_ID
    - PyObject_Vectorcall
    - Py_NewRef
    - _PyObject_GetMethodStackRef
    - _PyObject_CallNoArgs
    - PyTuple_SET_ITEM
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_MatchKeys(PyThreadState *tstate, PyObject *map, PyObject *keys)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:711,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ceval.c:711,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:712,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Python/ceval.c:712,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/ceval.c:713,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/ceval.c:713,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:714,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:716,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - tstate
    - subject
    - type
    - name
    - seen
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/cpython/Python/ceval.c
    - condition: (PySet_CheckExact(seen))
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 725
      start: 707
    functionDepth: 8
    functionLinenumber: 707
    functionLinenumberEnd: 725
    functionName: match_class_attr
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyObject_GetOptionalAttr
    - _PyErr_Format
    - PyUnicode_CheckExact
    - PySet_CheckExact
    - PySet_Contains
    - PySet_Add
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmatch_class_attr(PyThreadState *tstate, PyObject *subject,
      PyObject *type,\n                 PyObject *name, PyObject *seen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Python/ceval.c:733,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:735,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:738,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:738,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/ceval.c:740,1
    - Dst: PySet_New
      Src: /src/cpython/Python/ceval.c:744,1
    - Dst: PyList_New
      Src: /src/cpython/Python/ceval.c:748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:750,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:758,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:758,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:762,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:764,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:766,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:775,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/ceval.c:776,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:779,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:779,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:780,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:783,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/ceval.c:791,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:797,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ceval.c:798,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:799,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:801,1
    - Dst: match_class_attr
      Src: /src/cpython/Python/ceval.c:804,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/ceval.c:809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:813,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/ceval.c:816,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:819,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:820,1
    - Dst: match_class_attr
      Src: /src/cpython/Python/ceval.c:821,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/ceval.c:825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:829,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/ceval.c:831,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/ceval.c:831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:832,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:839,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 5
    argNames:
    - tstate
    - subject
    - type
    - nargs
    - kwargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(match_args))
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyTuple_CheckExact(kwargs))
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 841
      start: 729
    functionDepth: 11
    functionLinenumber: 729
    functionLinenumberEnd: 841
    functionName: _PyEval_MatchClass
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - _PyErr_Format
    - PyType_HasFeature
    - Py_SETREF
    - match_class_attr
    - Py_CLEAR
    - PyTuple_CheckExact
    - PyTuple_New
    - PyTuple_GET_SIZE
    - PyList_Append
    - PyTuple_GET_ITEM
    - PySet_New
    - PyType_Check
    - PyObject_IsInstance
    - Py_DECREF
    - _Py_ID
    - PyUnicode_CheckExact
    - Py_TYPE
    - PyObject_GetOptionalAttr
    - PyList_AsTuple
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEval_MatchClass(PyThreadState *tstate, PyObject *subject,
      PyObject *type,\n                   Py_ssize_t nargs, PyObject *kwargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:849,1
    - Dst: _PyDict_LoadBuiltinsFromGlobals
      Src: /src/cpython/Python/ceval.c:853,1
    - Dst: _PyFunction_FromConstructor
      Src: /src/cpython/Python/ceval.c:867,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Python/ceval.c:868,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:872,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Python/ceval.c:873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - co
    - globals
    - locals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 846
    functionDepth: 9
    functionLinenumber: 846
    functionLinenumberEnd: 876
    functionName: PyEval_EvalCode
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _Py_DECREF_BUILTINS
    - Py_DECREF
    - _PyThreadState_GET
    - _PyDict_LoadBuiltinsFromGlobals
    - EVAL_CALL_STAT_INC
    - _PyEval_Vector
    - _PyFunction_FromConstructor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:885,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Python/ceval.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 887
    functionName: PyEval_EvalFrame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_EvalFrame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalFrame(PyFrameObject *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:892,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Python/ceval.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - throwflag
    argTypes:
    - PyFrameObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 894
    functionName: PyEval_EvalFrameEx
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_EvalFrame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:904,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 917
    functionName: _Py_CheckRecursiveCallPy
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: "int _Py_CheckRecursiveCallPy(\n    PyThreadState *tstate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval.c:953,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 966
    functionName: _PyObjectArray_FromStackRefArray
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _PyObjectArray_FromStackRefArray(_PyStackRef *input, Py_ssize_t nargs, PyObject
      **scratch)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - array
    - scratch
    argTypes:
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 974
    functionName: _PyObjectArray_Free
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _PyObjectArray_Free(PyObject **array, PyObject **scratch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1159,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1183,1
    - Dst: dump_stack
      Src: /src/cpython/Python/ceval.c:1189,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1191,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1194,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/ceval.c:1196,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1197,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/ceval.c:1201,1
    - Dst: UOP_STAT_INC
      Src: /src/cpython/Python/ceval.c:1202,1
    - Dst: UOP_PAIR_INC
      Src: /src/cpython/Python/ceval.c:1203,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1216,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/ceval.c:1217,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1218,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:1219,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/ceval.c:1222,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1231,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/ceval.c:1232,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1233,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:1236,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1239,1
    - Dst: uop_get_error_target
      Src: /src/cpython/Python/ceval.c:1240,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1245,1
    - Dst: uop_get_jump_target
      Src: /src/cpython/Python/ceval.c:1246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 4
    argNames:
    - current_executor
    - frame
    - stack_pointer
    - tstate
    argTypes:
    - _PyExecutorObject*
    - _PyInterpreterFrame*
    - _PyStackRef*
    - PyThreadState*
    assertStmts:
    - condition: (next_uop->opcode == _START_EXECUTOR || next_uop->opcode == _COLD_EXIT)
      pos:
        line_end: 1158
        line_start: 1158
        source_file: /src/cpython/Python/ceval.c
    - condition: (next_uop->opcode == _START_EXECUTOR || next_uop->opcode == _COLD_EXIT)
      pos:
        line_end: 1182
        line_start: 1182
        source_file: /src/cpython/Python/ceval.c
    - condition: (next_uop[-1].format == UOP_FORMAT_JUMP)
      pos:
        line_end: 1238
        line_start: 1238
        source_file: /src/cpython/Python/ceval.c
    - condition: (next_uop[-1].format == UOP_FORMAT_JUMP)
      pos:
        line_end: 1244
        line_start: 1244
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1250
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1250
    functionName: _PyTier2Interpreter
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - _PyUOpPrint
    - Py_FatalError
    - printf
    - dump_stack
    - UOP_STAT_INC
    - uop_get_error_target
    - fflush
    - uop_get_jump_target
    - UOP_PAIR_INC
    - assert
    - OPT_STAT_INC
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: "_Py_CODEUNIT *\n_PyTier2Interpreter(\n    _PyExecutorObject *current_executor,
      _PyInterpreterFrame *frame,\n    _PyStackRef *stack_pointer, PyThreadState *tstate\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - UNUSED
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1163
    functionName: LOAD_IP
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_IP(UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opname
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1168
    functionName: STAT_INC
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_INC(opname, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opname
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1170
    functionName: STAT_DEC
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_DEC(opname, name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1269,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1272,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/ceval.c:1272,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1273,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1277,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/ceval.c:1278,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1281,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1282,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1283,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1286,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1287,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1288,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/ceval.c:1293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1295,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ceval.c:1299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1301,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Python/ceval.c:1304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1307,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/ceval.c:1310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1312,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1324,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - tstate
    - kind
    - co
    - names
    - qualname
    argTypes:
    - PyThreadState*
    - char*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(names))
      pos:
        line_end: 1271
        line_start: 1271
        source_file: /src/cpython/Python/ceval.c
    - condition: (len >= 1)
      pos:
        line_end: 1272
        line_start: 1272
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1325
      start: 1264
    functionDepth: 12
    functionLinenumber: 1264
    functionLinenumberEnd: 1325
    functionName: format_missing
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_INCREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyUnicode_Join
    - PyUnicode_FromFormat
    - PyUnicode_Concat
    - PyList_GET_SIZE
    - PyList_SetSlice
    - _PyErr_Format
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: void
    signature: "void format_missing(PyThreadState *tstate, const char *kind,\n               PyCodeObject
      *co, PyObject *names, PyObject *qualname)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/ceval.c:1339,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1351,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1352,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/ceval.c:1353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1355,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/ceval.c:1358,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1361,1
    - Dst: format_missing
      Src: /src/cpython/Python/ceval.c:1362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - tstate
    - co
    - missing
    - defcount
    - localsplus
    - qualname
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - Py_ssize_t
    - Py_ssize_t
    - _PyStackRef*
    - PyObject*
    assertStmts:
    - condition: (j == missing)
      pos:
        line_end: 1360
        line_start: 1360
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1364
      start: 1327
    functionDepth: 13
    functionLinenumber: 1327
    functionLinenumberEnd: 1364
    functionName: missing_arguments
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyObject_Repr
    - Py_DECREF
    - PyList_SET_ITEM
    - format_missing
    - PyTuple_GET_ITEM
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: "void missing_arguments(PyThreadState *tstate, PyCodeObject *co,\n
      \                 Py_ssize_t missing, Py_ssize_t defcount,\n                  _PyStackRef
      *localsplus, PyObject *qualname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1377,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1380,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1384,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1388,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1392,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1403,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/ceval.c:1409,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1410,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - tstate
    - co
    - given
    - defaults
    - localsplus
    - qualname
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - Py_ssize_t
    - PyObject*
    - _PyStackRef*
    - PyObject*
    assertStmts:
    - condition: ((co->co_flags & CO_VARARGS) == 0)
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Python/ceval.c
    - condition: (kwonly_sig != NULL)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1422
      start: 1366
    functionDepth: 10
    functionLinenumber: 1366
    functionLinenumberEnd: 1422
    functionName: too_many_positional
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyUnicode_FromFormat
    - Py_GetConstant
    - _PyErr_Format
    - PyStackRef_AsPyObjectBorrow
    - assert
    linkageType: ''
    returnType: void
    signature: "void too_many_positional(PyThreadState *tstate, PyCodeObject *co,\n
      \                   Py_ssize_t given, PyObject *defaults,\n                    _PyStackRef
      *localsplus, PyObject *qualname)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/ceval.c:1430,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1435,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1439,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/ceval.c:1441,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/ceval.c:1448,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/ceval.c:1451,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ceval.c:1462,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Python/ceval.c:1466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1467,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:1483,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 5
    argNames:
    - tstate
    - co
    - kwcount
    - kwnames
    - qualname
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1424
    functionDepth: 4
    functionLinenumber: 1424
    functionLinenumberEnd: 1486
    functionName: positional_only_passed_as_keyword
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_Join
    - PyList_Append
    - _PyErr_Format
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: "int positional_only_passed_as_keyword(PyThreadState *tstate, PyCodeObject
      *co,\n                                  Py_ssize_t kwcount, PyObject* kwnames,\n
      \                                 PyObject *qualname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1493
    functionName: scan_back_to_entry_start
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      scan_back_to_entry_start(unsigned char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - end
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1501
    functionName: skip_to_next_entry
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      skip_to_next_entry(unsigned char *p, unsigned char *end)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/ceval.c:1509,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1510,1
    - Dst: parse_varint
      Src: /src/cpython/Python/ceval.c:1518,1
    - Dst: scan_back_to_entry_start
      Src: /src/cpython/Python/ceval.c:1524,1
    - Dst: parse_varint
      Src: /src/cpython/Python/ceval.c:1525,1
    - Dst: parse_varint
      Src: /src/cpython/Python/ceval.c:1538,1
    - Dst: parse_varint
      Src: /src/cpython/Python/ceval.c:1542,1
    - Dst: parse_varint
      Src: /src/cpython/Python/ceval.c:1544,1
    - Dst: parse_varint
      Src: /src/cpython/Python/ceval.c:1546,1
    - Dst: skip_to_next_entry
      Src: /src/cpython/Python/ceval.c:1551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - code
    - index
    - level
    - handler
    - lasti
    argTypes:
    - PyCodeObject*
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1554
    functionName: get_exception_handler
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - parse_varint
    - skip_to_next_entry
    - scan_back_to_entry_start
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE get_exception_handler(PyCodeObject *code, int index, int
      *level, int *handler, int *lasti)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval.c:1567,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1575,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1575,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1576,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1591,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1591,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/ceval.c:1599,1
    - Dst: _PyTuple_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/ceval.c:1602,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1605,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1612,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1612,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1613,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1618,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1624,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1627,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:1631,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1632,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/ceval.c:1651,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1660,1
    - Dst: positional_only_passed_as_keyword
      Src: /src/cpython/Python/ceval.c:1664,1
    - Dst: PyList_New
      Src: /src/cpython/Python/ceval.c:1673,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ceval.c:1676,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/ceval.c:1679,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Python/ceval.c:1682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1683,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1691,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1693,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/ceval.c:1701,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1701,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1704,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1709,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1714,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1715,1
    - Dst: too_many_positional
      Src: /src/cpython/Python/ceval.c:1726,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1733,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1737,1
    - Dst: missing_arguments
      Src: /src/cpython/Python/ceval.c:1742,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1751,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1753,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:1755,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1765,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1767,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/ceval.c:1770,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1774,1
    - Dst: missing_arguments
      Src: /src/cpython/Python/ceval.c:1781,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1790,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1795,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1797,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 186
    argCount: 6
    argNames:
    - tstate
    - func
    - localsplus
    - args
    - argcount
    - kwnames
    argTypes:
    - PyThreadState*
    - PyFunctionObject*
    - _PyStackRef*
    - _PyStackRef*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (PyStackRef_IsNull(localsplus[j]))
      pos:
        line_end: 1590
        line_start: 1590
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyStackRef_IsNull(localsplus[i]))
      pos:
        line_end: 1574
        line_start: 1574
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyStackRef_AsPyObjectBorrow(localsplus[total_args]) == NULL)
      pos:
        line_end: 1611
        line_start: 1611
        source_file: /src/cpython/Python/ceval.c
    - condition: (j >= total_args)
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1803
      start: 1556
    functionDepth: 14
    functionLinenumber: 1556
    functionLinenumberEnd: 1803
    functionName: initialize_locals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyErr_Format
    - PyStackRef_FromPyObjectNew
    - PyDict_GetItemRef
    - PyTuple_GET_SIZE
    - PyStackRef_FromPyObjectSteal
    - PyObject_RichCompareBool
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    - PyErr_Clear
    - positional_only_passed_as_keyword
    - too_many_positional
    - assert
    - PyStackRef_CLOSE
    - Py_DECREF
    - _PyTuple_FromStackRefStealOnSuccess
    - PyDict_SetItem
    - PyList_SET_ITEM
    - _Py_SINGLETON
    - PyDict_New
    - missing_arguments
    - PyStackRef_IsNull
    - _Py_CalculateSuggestions
    linkageType: ''
    returnType: int
    signature: "int initialize_locals(PyThreadState *tstate, PyFunctionObject *func,\n
      \   _PyStackRef *localsplus, _PyStackRef const *args,\n    Py_ssize_t argcount,
      PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1808,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1811,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:1811,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1813,1
    - Dst: _PyFrame_ClearExceptCode
      Src: /src/cpython/Python/ceval.c:1814,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Python/ceval.c:1815,1
    - Dst: _PyThreadState_PopFrame
      Src: /src/cpython/Python/ceval.c:1816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->owner == FRAME_OWNED_BY_THREAD)
      pos:
        line_end: 1807
        line_start: 1807
        source_file: /src/cpython/Python/ceval.c
    - condition: (frame->frame_obj == NULL || frame->frame_obj->f_frame == frame)
      pos:
        line_end: 1812
        line_start: 1812
        source_file: /src/cpython/Python/ceval.c
    - condition: "((PyObject **)frame + _PyFrame_GetCode(frame)->co_framesize ==\n
        \       tstate->datastack_top)"
      pos:
        line_end: 1811
        line_start: 1810
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1817
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1817
    functionName: clear_thread_frame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyFrame_ClearExceptCode
    - PyStackRef_CLEAR
    - _PyFrame_GetCode
    - _PyThreadState_PopFrame
    linkageType: ''
    returnType: void
    signature: void clear_thread_frame(PyThreadState *tstate, _PyInterpreterFrame
      * frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1822,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/ceval.c:1823,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1825,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1828,1
    - Dst: _PyFrame_ClearExceptCode
      Src: /src/cpython/Python/ceval.c:1829,1
    - Dst: _PyErr_ClearExcState
      Src: /src/cpython/Python/ceval.c:1830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->owner == FRAME_OWNED_BY_GENERATOR)
      pos:
        line_end: 1821
        line_start: 1821
        source_file: /src/cpython/Python/ceval.c
    - condition: (tstate->exc_info == &gen->gi_exc_state)
      pos:
        line_end: 1824
        line_start: 1824
        source_file: /src/cpython/Python/ceval.c
    - condition: (frame->frame_obj == NULL || frame->frame_obj->f_frame == frame)
      pos:
        line_end: 1827
        line_start: 1827
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1832
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1832
    functionName: clear_gen_frame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyFrame_ClearExceptCode
    - _PyErr_ClearExcState
    - assert
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: void
    signature: void clear_gen_frame(PyThreadState *tstate, _PyInterpreterFrame * frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_thread_frame
      Src: /src/cpython/Python/ceval.c:1838,1
    - Dst: clear_gen_frame
      Src: /src/cpython/Python/ceval.c:1841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1834
    functionDepth: 2
    functionLinenumber: 1834
    functionLinenumberEnd: 1843
    functionName: _PyEval_FrameClearAndPop
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - clear_gen_frame
    - clear_thread_frame
    linkageType: ''
    returnType: void
    signature: void _PyEval_FrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame
      * frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1851,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:1853,1
    - Dst: _PyThreadState_PushFrame
      Src: /src/cpython/Python/ceval.c:1854,1
    - Dst: _PyFrame_Initialize
      Src: /src/cpython/Python/ceval.c:1858,1
    - Dst: initialize_locals
      Src: /src/cpython/Python/ceval.c:1859,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1860,1
    - Dst: clear_thread_frame
      Src: /src/cpython/Python/ceval.c:1861,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1867,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:1868,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1870,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1873,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1875,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/ceval.c:1878,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - tstate
    - func
    - locals
    - args
    - argcount
    - kwnames
    - previous
    argTypes:
    - PyThreadState*
    - _PyStackRef
    - PyObject*
    - _PyStackRef*
    - size_t
    - PyObject*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->owner == FRAME_OWNED_BY_THREAD)
      pos:
        line_end: 1859
        line_start: 1859
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1880
      start: 1846
    functionDepth: 15
    functionLinenumber: 1846
    functionLinenumberEnd: 1880
    functionName: _PyEvalFramePushAndInit
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - clear_thread_frame
    - PyStackRef_CLOSE
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - initialize_locals
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_Initialize
    - _PyThreadState_PushFrame
    - CALL_STAT_INC
    - assert
    linkageType: ''
    returnType: _PyInterpreterFrame
    signature: "_PyInterpreterFrame *\n_PyEvalFramePushAndInit(PyThreadState *tstate,
      _PyStackRef func,\n                        PyObject *locals, _PyStackRef const*
      args,\n                        size_t argcount, PyObject *kwnames, _PyInterpreterFrame
      *previous)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1889,1
    - Dst: _PyStack_UnpackDict
      Src: /src/cpython/Python/ceval.c:1895,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/ceval.c:1895,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1897,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1900,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1901,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1904,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval.c:1912,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/ceval.c:1914,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1915,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:1921,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1921,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/ceval.c:1924,1
    - Dst: _PyStack_UnpackDict_FreeNoDecRef
      Src: /src/cpython/Python/ceval.c:1929,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval.c:1932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1937,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:1938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1941,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:1942,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 7
    argNames:
    - tstate
    - func
    - locals
    - nargs
    - callargs
    - kwargs
    - previous
    argTypes:
    - PyThreadState*
    - _PyStackRef
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (sizeof(PyObject *) == sizeof(_PyStackRef))
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1944
      start: 1885
    functionDepth: 16
    functionLinenumber: 1885
    functionLinenumberEnd: 1944
    functionName: _PyEvalFramePushAndInit_Ex
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyStack_UnpackDict_FreeNoDecRef
    - _PyStack_UnpackDict
    - Py_XDECREF
    - PyDict_GET_SIZE
    - _PyTuple_ITEMS
    - PyStackRef_CLOSE
    - Py_DECREF
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_FromPyObjectNew
    - PyMem_Free
    - _PyEvalFramePushAndInit
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: _PyInterpreterFrame
    signature: "_PyInterpreterFrame *\n_PyEvalFramePushAndInit_Ex(PyThreadState *tstate,
      _PyStackRef func,\n    PyObject *locals, Py_ssize_t nargs, PyObject *callargs,
      PyObject *kwargs, _PyInterpreterFrame *previous)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1954,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval.c:1962,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/ceval.c:1964,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/ceval.c:1969,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:1971,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1974,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:1976,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/ceval.c:1979,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:1980,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval.c:1983,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:1988,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Python/ceval.c:1989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 6
    argNames:
    - tstate
    - func
    - locals
    - args
    - argcount
    - kwnames
    argTypes:
    - PyThreadState*
    - PyFunctionObject*
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1946
    functionDepth: 16
    functionLinenumber: 1946
    functionLinenumberEnd: 1990
    functionName: _PyEval_Vector
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _PyEval_EvalFrame
    - PyTuple_GET_SIZE
    - EVAL_CALL_STAT_INC
    - PyStackRef_FromPyObjectNew
    - PyMem_Free
    - _PyEvalFramePushAndInit
    - Py_XINCREF
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEval_Vector(PyThreadState *tstate, PyFunctionObject
      *func,\n               PyObject *locals,\n               PyObject* const* args,
      size_t argcount,\n               PyObject *kwnames)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2000,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Python/ceval.c:2002,1
    - Dst: _PyDict_LoadBuiltinsFromGlobals
      Src: /src/cpython/Python/ceval.c:2006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2008,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:2022,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval.c:2026,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/ceval.c:2034,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2034,1
    - Dst: _PyFunction_FromConstructor
      Src: /src/cpython/Python/ceval.c:2049,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:2053,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Python/ceval.c:2054,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2058,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2059,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval.c:2060,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Python/ceval.c:2061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2062,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    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: 2064
      start: 1993
    functionDepth: 17
    functionLinenumber: 1993
    functionLinenumberEnd: 2064
    functionName: PyEval_EvalCodeEx
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - _PyTuple_FromArray
    - _Py_DECREF_BUILTINS
    - PyTuple_SET_ITEM
    - _PyThreadState_GET
    - Py_NewRef
    - _PyDict_LoadBuiltinsFromGlobals
    - EVAL_CALL_STAT_INC
    - _PyEval_Vector
    - PyMem_Free
    - _PyFunction_FromConstructor
    - PyMem_Malloc
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/ceval.c:2076,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/ceval.c:2078,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2079,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/ceval.c:2083,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2084,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/ceval.c:2084,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:2085,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/ceval.c:2094,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/ceval.c:2096,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/ceval.c:2099,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2100,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2103,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/ceval.c:2107,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/ceval.c:2109,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/ceval.c:2110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2115,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2116,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2121,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2122,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/ceval.c:2126,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/ceval.c:2127,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/ceval.c:2130,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2131,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2137,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/ceval.c:2139,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/ceval.c:2142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2143,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2147,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/ceval.c:2152,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/ceval.c:2155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2158,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2164,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - tstate
    - exc
    - cause
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 2121
        line_start: 2121
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 2083
        line_start: 2083
        source_file: /src/cpython/Python/ceval.c
    - condition: (type != NULL)
      pos:
        line_end: 2120
        line_start: 2120
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2166
      start: 2069
    functionDepth: 3
    functionLinenumber: 2069
    functionLinenumberEnd: 2166
    functionName: do_raise
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyObject_CallNoArgs
    - PyException_SetCause
    - Py_DECREF
    - Py_XDECREF
    - _PyErr_SetRaisedException
    - _PyErr_Format
    - PyExceptionClass_Check
    - _PyErr_SetObject
    - Py_IsNone
    - _PyErr_GetTopmostException
    - _PyErr_SetString
    - PyExceptionInstance_Class
    - Py_TYPE
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Python/ceval.c:2176,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2177,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2178,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2181,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/ceval.c:2181,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/ceval.c:2183,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Python/ceval.c:2185,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2187,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/ceval.c:2191,1
    - Dst: _PyExc_CreateExceptionGroup
      Src: /src/cpython/Python/ceval.c:2195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2196,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/ceval.c:2200,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/cpython/Python/ceval.c:2202,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/ceval.c:2206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2207,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2211,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Python/ceval.c:2218,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/ceval.c:2219,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:2225,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ceval.c:2226,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2228,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2229,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2234,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ceval.c:2235,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2238,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2243,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:2243,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2244,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:2244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2245,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2249,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - frame
    - exc_value
    - match_type
    - match
    - rest
    argTypes:
    - _PyInterpreterFrame*
    - PyObject*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 2180
        line_start: 2180
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2252
      start: 2172
    functionDepth: 5
    functionLinenumber: 2172
    functionLinenumberEnd: 2252
    functionName: _PyEval_ExceptionGroupMatch
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyErr_GivenExceptionMatches
    - _PyBaseExceptionGroup_Check
    - PyObject_CallMethod
    - Py_NewRef
    - _PyExc_CreateExceptionGroup
    - _PyTraceBack_FromFrame
    - Py_IsNone
    - PyTuple_GET_ITEM
    - PyException_SetTraceback
    - PyErr_Format
    - _PyFrame_GetFrameObject
    - PyTuple_Pack
    - PyTuple_CheckExact
    - Py_TYPE
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyEval_ExceptionGroupMatch(_PyInterpreterFrame *frame, PyObject*
      exc_value,\n                            PyObject *match_type, PyObject **match,
      PyObject **rest)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2270,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/ceval.c:2272,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:2274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2275,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/ceval.c:2275,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2277,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2279,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/ceval.c:2285,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2288,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2290,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2296,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:2304,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/ceval.c:2309,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2316,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/ceval.c:2318,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:2318,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:2319,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:2320,1
    - Dst: PyDict_Size
      Src: /src/cpython/Python/ceval.c:2320,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/ceval.c:2320,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2322,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2328,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/ceval.c:2334,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:2337,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2340,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2342,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:2350,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:2350,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/ceval.c:2353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2354,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:2359,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2361,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 5
    argNames:
    - tstate
    - v
    - argcnt
    - argcntafter
    - sp
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - int
    - _PyStackRef*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 2269
        line_start: 2269
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2363
      start: 2261
    functionDepth: 3
    functionLinenumber: 2261
    functionLinenumberEnd: 2363
    functionName: _PyEval_UnpackIterableStackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_XDECREF
    - _PyErr_ExceptionMatches
    - PySequence_Check
    - _PyErr_Format
    - PyObject_GetIter
    - PyIter_Next
    - PyTuple_CheckExact
    - PyDict_CheckExact
    - PyList_GET_SIZE
    - PyStackRef_FromPyObjectSteal
    - PyDict_Size
    - PyList_CheckExact
    - Py_DECREF
    - PyStackRef_CLOSE
    - Py_SIZE
    - PySequence_List
    - Py_TYPE
    - PyList_GET_ITEM
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyEval_UnpackIterableStackRef(PyThreadState *tstate, PyObject
      *v,\n                       int argcnt, int argcntafter, _PyStackRef *sp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2369,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:2370,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval.c:2373,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2374,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/ceval.c:2375,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:2377,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2380,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - tstate
    - frame
    - instr
    - event
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (event < _PY_MONITORING_UNGROUPED_EVENTS)
      pos:
        line_end: 2368
        line_start: 2368
        source_file: /src/cpython/Python/ceval.c
    - condition: (exc != NULL)
      pos:
        line_end: 2373
        line_start: 2373
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2379
        line_start: 2379
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2384
      start: 2365
    functionDepth: 7
    functionLinenumber: 2365
    functionLinenumberEnd: 2384
    functionName: do_monitor_exc
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - _Py_call_instrumentation_arg
    - _PyFrame_GetCode
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: "int do_monitor_exc(PyThreadState *tstate, _PyInterpreterFrame *frame,\n
      \              _Py_CODEUNIT *instr, int event)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - event
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2386
    functionDepth: 0
    functionLinenumber: 2386
    functionLinenumberEnd: 2390
    functionName: no_tools_for_global_event
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_tools_for_global_event(PyThreadState *tstate, int event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2395,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:2396,1
    - Dst: no_tools_for_global_event
      Src: /src/cpython/Python/ceval.c:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - tstate
    - frame
    - event
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - int
    assertStmts:
    - condition: (event < _PY_MONITORING_LOCAL_EVENTS)
      pos:
        line_end: 2394
        line_start: 2394
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2403
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2403
    functionName: no_tools_for_local_event
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - assert
    - no_tools_for_global_event
    linkageType: ''
    returnType: bool
    signature: bool no_tools_for_local_event(PyThreadState *tstate, _PyInterpreterFrame
      *frame, int event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_global_event
      Src: /src/cpython/Python/ceval.c:2409,1
    - Dst: do_monitor_exc
      Src: /src/cpython/Python/ceval.c:2412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - frame
    - instr
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2405
    functionDepth: 8
    functionLinenumber: 2405
    functionLinenumberEnd: 2413
    functionName: _PyEval_MonitorRaise
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - do_monitor_exc
    - no_tools_for_global_event
    linkageType: ''
    returnType: void
    signature: "void _PyEval_MonitorRaise(PyThreadState *tstate, _PyInterpreterFrame
      *frame,\n              _Py_CODEUNIT *instr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_global_event
      Src: /src/cpython/Python/ceval.c:2419,1
    - Dst: do_monitor_exc
      Src: /src/cpython/Python/ceval.c:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - frame
    - instr
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2415
    functionDepth: 8
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: monitor_reraise
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - do_monitor_exc
    - no_tools_for_global_event
    linkageType: ''
    returnType: void
    signature: "void monitor_reraise(PyThreadState *tstate, _PyInterpreterFrame *frame,\n
      \             _Py_CODEUNIT *instr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_local_event
      Src: /src/cpython/Python/ceval.c:2429,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2432,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2432,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/ceval.c:2433,1
    - Dst: do_monitor_exc
      Src: /src/cpython/Python/ceval.c:2434,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:2438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - tstate
    - frame
    - instr
    - value
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2431
        line_start: 2431
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2440
      start: 2425
    functionDepth: 8
    functionLinenumber: 2425
    functionLinenumberEnd: 2440
    functionName: monitor_stop_iteration
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - do_monitor_exc
    - PyErr_Occurred
    - no_tools_for_local_event
    - PyErr_SetObject
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: "int monitor_stop_iteration(PyThreadState *tstate, _PyInterpreterFrame
      *frame,\n                       _Py_CODEUNIT *instr, PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_global_event
      Src: /src/cpython/Python/ceval.c:2447,1
    - Dst: do_monitor_exc
      Src: /src/cpython/Python/ceval.c:2450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - frame
    - instr
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2442
    functionDepth: 8
    functionLinenumber: 2442
    functionLinenumberEnd: 2451
    functionName: monitor_unwind
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - do_monitor_exc
    - no_tools_for_global_event
    linkageType: ''
    returnType: void
    signature: "void monitor_unwind(PyThreadState *tstate,\n               _PyInterpreterFrame
      *frame,\n               _Py_CODEUNIT *instr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_global_event
      Src: /src/cpython/Python/ceval.c:2459,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/ceval.c:2462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - tstate
    - frame
    - instr
    - exc
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2454
    functionDepth: 7
    functionLinenumber: 2454
    functionLinenumberEnd: 2463
    functionName: monitor_handled
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _Py_call_instrumentation_arg
    - no_tools_for_global_event
    linkageType: ''
    returnType: int
    signature: "int monitor_handled(PyThreadState *tstate,\n                _PyInterpreterFrame
      *frame,\n                _Py_CODEUNIT *instr, PyObject *exc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_global_event
      Src: /src/cpython/Python/ceval.c:2470,1
    - Dst: do_monitor_exc
      Src: /src/cpython/Python/ceval.c:2473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - frame
    - instr
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2465
    functionDepth: 8
    functionLinenumber: 2465
    functionLinenumberEnd: 2474
    functionName: monitor_throw
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - do_monitor_exc
    - no_tools_for_global_event
    linkageType: ''
    returnType: void
    signature: "void monitor_throw(PyThreadState *tstate,\n              _PyInterpreterFrame
      *frame,\n              _Py_CODEUNIT *instr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->tracing >= 0)
      pos:
        line_end: 2478
        line_start: 2478
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2481
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2481
    functionName: PyThreadState_EnterTracing
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void PyThreadState_EnterTracing(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->tracing > 0)
      pos:
        line_end: 2485
        line_start: 2485
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2488
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2488
    functionName: PyThreadState_LeaveTracing
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void PyThreadState_LeaveTracing(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2495,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/ceval.c:2500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2491
    functionDepth: 5
    functionLinenumber: 2491
    functionLinenumberEnd: 2505
    functionName: _PyEval_CallTracing
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_CallTracing(PyObject *func, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2510,1
    - Dst: _PyEval_SetProfile
      Src: /src/cpython/Python/ceval.c:2511,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2507
    functionDepth: 1
    functionLinenumber: 2507
    functionLinenumberEnd: 2515
    functionName: PyEval_SetProfile
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_SetProfile
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void PyEval_SetProfile(Py_tracefunc func, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval.c:2520,1
    - Dst: _PyEval_SetProfileAllThreads
      Src: /src/cpython/Python/ceval.c:2521,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2517
    functionDepth: 1
    functionLinenumber: 2517
    functionLinenumberEnd: 2525
    functionName: PyEval_SetProfileAllThreads
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyErr_FormatUnraisable
    - _PyEval_SetProfileAllThreads
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void PyEval_SetProfileAllThreads(Py_tracefunc func, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2530,1
    - Dst: _PyEval_SetTrace
      Src: /src/cpython/Python/ceval.c:2531,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2527
    functionDepth: 1
    functionLinenumber: 2527
    functionLinenumberEnd: 2535
    functionName: PyEval_SetTrace
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_SetTrace
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void PyEval_SetTrace(Py_tracefunc func, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval.c:2540,1
    - Dst: _PyEval_SetTraceAllThreads
      Src: /src/cpython/Python/ceval.c:2541,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2537
    functionDepth: 1
    functionLinenumber: 2537
    functionLinenumberEnd: 2545
    functionName: PyEval_SetTraceAllThreads
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyErr_FormatUnraisable
    - _PyEval_SetTraceAllThreads
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void PyEval_SetTraceAllThreads(Py_tracefunc func, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2550,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2547
    functionDepth: 1
    functionLinenumber: 2547
    functionLinenumberEnd: 2557
    functionName: _PyEval_SetCoroutineOriginTrackingDepth
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetCoroutineOriginTrackingDepth(int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2560
    functionDepth: 1
    functionLinenumber: 2560
    functionLinenumberEnd: 2565
    functionName: _PyEval_GetCoroutineOriginTrackingDepth
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int _PyEval_GetCoroutineOriginTrackingDepth(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2570,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/ceval.c:2572,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/ceval.c:2576,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - firstiter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2567
    functionDepth: 1
    functionLinenumber: 2567
    functionLinenumberEnd: 2578
    functionName: _PyEval_SetAsyncGenFirstiter
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PySys_Audit
    - Py_XNewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetAsyncGenFirstiter(PyObject *firstiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2585
      start: 2580
    functionDepth: 1
    functionLinenumber: 2580
    functionLinenumberEnd: 2585
    functionName: _PyEval_GetAsyncGenFirstiter
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetAsyncGenFirstiter(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2590,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/ceval.c:2592,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/ceval.c:2596,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - finalizer
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2587
    functionDepth: 1
    functionLinenumber: 2587
    functionLinenumberEnd: 2598
    functionName: _PyEval_SetAsyncGenFinalizer
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PySys_Audit
    - Py_XNewRef
    - Py_XSETREF
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetAsyncGenFinalizer(PyObject *finalizer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2600
    functionDepth: 1
    functionLinenumber: 2600
    functionLinenumberEnd: 2605
    functionName: _PyEval_GetAsyncGenFinalizer
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetAsyncGenFinalizer(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2610,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2607
    functionDepth: 1
    functionLinenumber: 2607
    functionLinenumberEnd: 2612
    functionName: _PyEval_GetFrame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - _PyThreadState_GetFrame
    linkageType: ''
    returnType: _PyInterpreterFrame
    signature: '_PyInterpreterFrame *

      _PyEval_GetFrame(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/ceval.c:2617,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/ceval.c:2621,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ceval.c:2623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2626
    functionName: PyEval_GetFrame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 5
    functionsReached:
    - _PyFrame_GetFrameObject
    - PyErr_Clear
    - _PyEval_GetFrame
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyEval_GetFrame(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2628
    functionDepth: 1
    functionLinenumber: 2628
    functionLinenumberEnd: 2636
    functionName: _PyEval_GetBuiltins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GetFrame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetBuiltins(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2641,1
    - Dst: _PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2638
    functionDepth: 2
    functionLinenumber: 2638
    functionLinenumberEnd: 2643
    functionName: PyEval_GetBuiltins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 5
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_GetBuiltins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetBuiltins(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:2650,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2650,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/ceval.c:2651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2646
    functionDepth: 9
    functionLinenumber: 2646
    functionLinenumberEnd: 2654
    functionName: _PyEval_GetBuiltin
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 20
    functionsReached:
    - PyEval_GetBuiltins
    - PyErr_SetObject
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetBuiltin(PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Python/ceval.c:2659,1
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Python/ceval.c:2659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2656
    functionDepth: 10
    functionLinenumber: 2656
    functionLinenumberEnd: 2660
    functionName: _PyEval_GetBuiltinId
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _PyUnicode_FromId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetBuiltinId(_Py_Identifier *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2666,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2667,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2669,1
    - Dst: _PyFrame_GetLocals
      Src: /src/cpython/Python/ceval.c:2674,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Python/ceval.c:2680,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/ceval.c:2681,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval.c:2684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2686,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/ceval.c:2691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2696,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2700,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/ceval.c:2700,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2701,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/ceval.c:2701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyMapping_Check(locals))
      pos:
        line_end: 2699
        line_start: 2699
        source_file: /src/cpython/Python/ceval.c
    - condition: (Py_REFCNT(locals) > 1)
      pos:
        line_end: 2700
        line_start: 2700
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2705
      start: 2662
    functionDepth: 11
    functionLinenumber: 2662
    functionLinenumberEnd: 2705
    functionName: PyEval_GetLocals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyFrameLocalsProxy_Check
    - _PyThreadState_GetFrame
    - _PyFrame_GetLocals
    - _PyThreadState_GET
    - PyDict_Update
    - PyDict_New
    - _PyFrame_GetFrameObject
    - _PyErr_SetString
    - PyMapping_Check
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetLocals(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2710,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2711,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2713,1
    - Dst: _PyFrame_GetLocals
      Src: /src/cpython/Python/ceval.c:2717,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Python/ceval.c:2722,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval.c:2723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2725,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/ceval.c:2728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2733,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2737,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/ceval.c:2737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyMapping_Check(locals))
      pos:
        line_end: 2736
        line_start: 2736
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2739
      start: 2707
    functionDepth: 11
    functionLinenumber: 2707
    functionLinenumberEnd: 2739
    functionName: _PyEval_GetFrameLocals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyFrameLocalsProxy_Check
    - _PyThreadState_GetFrame
    - _PyFrame_GetLocals
    - _PyThreadState_GET
    - PyDict_New
    - PyDict_Update
    - _PyErr_SetString
    - PyMapping_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetFrameLocals(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2741
    functionDepth: 1
    functionLinenumber: 2741
    functionLinenumberEnd: 2749
    functionName: _PyEval_GetGlobals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GetFrame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetGlobals(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2754,1
    - Dst: _PyEval_GetGlobals
      Src: /src/cpython/Python/ceval.c:2755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2756
    functionName: PyEval_GetGlobals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_GetGlobals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetGlobals(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_IsRunningMain
      Src: /src/cpython/Python/ceval.c:2761,1
    - Dst: _Py_GetMainModule
      Src: /src/cpython/Python/ceval.c:2764,1
    - Dst: _Py_CheckMainModule
      Src: /src/cpython/Python/ceval.c:2765,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2766,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/ceval.c:2769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2758
    functionDepth: 2
    functionLinenumber: 2758
    functionLinenumberEnd: 2772
    functionName: _PyEval_GetGlobalsFromRunningMain
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _Py_CheckMainModule
    - _PyInterpreterState_IsRunningMain
    - _Py_GetMainModule
    - PyModule_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetGlobalsFromRunningMain(PyThreadState *tstate)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/ceval.c:2778,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/ceval.c:2779,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2779,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:2784,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - globals
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2774
    functionDepth: 9
    functionLinenumber: 2774
    functionLinenumberEnd: 2791
    functionName: get_globals_builtins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemRef
    - PyDict_Check
    - PyMapping_GetOptionalItem
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_globals_builtins(PyObject *globals)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/ceval.c:2796,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/ceval.c:2797,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2797,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/ceval.c:2802,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - globals
    - builtins
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2793
    functionDepth: 9
    functionLinenumber: 2793
    functionLinenumberEnd: 2807
    functionName: set_globals_builtins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyObject_SetItem
    - PyDict_Check
    - PyDict_SetItem
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int set_globals_builtins(PyObject *globals, PyObject *builtins)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_globals_builtins
      Src: /src/cpython/Python/ceval.c:2813,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2815,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2818,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2820,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2820,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/ceval.c:2823,1
    - Dst: set_globals_builtins
      Src: /src/cpython/Python/ceval.c:2824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2833,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - tstate
    - globals
    - p_builtins
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2819
        line_start: 2819
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2836
      start: 2809
    functionDepth: 10
    functionLinenumber: 2809
    functionLinenumberEnd: 2836
    functionName: _PyEval_EnsureBuiltins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - set_globals_builtins
    - PyEval_GetBuiltins
    - get_globals_builtins
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyEval_EnsureBuiltins(PyThreadState *tstate, PyObject *globals,\n
      \                      PyObject **p_builtins)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_globals_builtins
      Src: /src/cpython/Python/ceval.c:2842,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2844,1
    - Dst: PyImport_ImportModuleLevel
      Src: /src/cpython/Python/ceval.c:2847,1
    - Dst: set_globals_builtins
      Src: /src/cpython/Python/ceval.c:2851,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2860,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - tstate
    - globals
    - p_builtins
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2838
    functionDepth: 10
    functionLinenumber: 2838
    functionLinenumberEnd: 2863
    functionName: _PyEval_EnsureBuiltinsWithModule
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_globals_builtins
    - PyImport_ImportModuleLevel
    - get_globals_builtins
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: "int _PyEval_EnsureBuiltinsWithModule(PyThreadState *tstate, PyObject
      *globals,\n                                 PyObject **p_builtins)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/ceval.c:2868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2865
    functionDepth: 12
    functionLinenumber: 2865
    functionLinenumberEnd: 2869
    functionName: PyEval_GetFrameLocals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyEval_GetFrameLocals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetFrameLocals(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2873,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2874,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2871
    functionDepth: 1
    functionLinenumber: 2871
    functionLinenumberEnd: 2879
    functionName: PyEval_GetFrameGlobals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _PyThreadState_GetFrame
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyEval_GetFrameGlobals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2883,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2884,1
    - Dst: _PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2881
    functionDepth: 2
    functionLinenumber: 2881
    functionLinenumberEnd: 2885
    functionName: PyEval_GetFrameBuiltins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_GetBuiltins
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyEval_GetFrameBuiltins(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2890,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:2895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cf
    argTypes:
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2887
    functionDepth: 1
    functionLinenumber: 2887
    functionLinenumberEnd: 2903
    functionName: PyEval_MergeCompilerFlags
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyFrame_GetCode
    linkageType: ''
    returnType: int
    signature: int PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/ceval.c:2909,1
    - Dst: PyEval_GetFuncName
      Src: /src/cpython/Python/ceval.c:2910,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/cpython/Python/ceval.c:2910,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/ceval.c:2911,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:2912,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Python/ceval.c:2913,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2906
    functionDepth: 6
    functionLinenumber: 2906
    functionLinenumberEnd: 2917
    functionName: PyEval_GetFuncName
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyCFunction_Check
    - PyMethod_Check
    - PyFunction_Check
    - PyUnicode_AsUTF8
    - PyEval_GetFuncName
    - PyMethod_GET_FUNCTION
    - Py_TYPE
    linkageType: ''
    returnType: char
    signature: 'char *

      PyEval_GetFuncName(PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/ceval.c:2922,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/ceval.c:2924,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Python/ceval.c:2926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2930
    functionName: PyEval_GetFuncDesc
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyCFunction_Check
    - PyMethod_Check
    - PyFunction_Check
    linkageType: ''
    returnType: char
    signature: 'char *

      PyEval_GetFuncDesc(PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2941,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/ceval.c:2942,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Python/ceval.c:2944,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Python/ceval.c:2945,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2946,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - pi
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2938
    functionDepth: 3
    functionLinenumber: 2938
    functionLinenumberEnd: 2958
    functionName: _PyEval_SliceIndex
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 24
    functionsReached:
    - _PyIndex_Check
    - PyNumber_AsSsize_t
    - _PyThreadState_GET
    - Py_IsNone
    - _PyErr_SetString
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _PyEval_SliceIndex(PyObject *v, Py_ssize_t *pi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2963,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Python/ceval.c:2965,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Python/ceval.c:2966,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2967,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - v
    - pi
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2960
    functionDepth: 3
    functionLinenumber: 2960
    functionLinenumberEnd: 2978
    functionName: _PyEval_SliceIndexNotNone
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 7
    functionsReached:
    - _PyIndex_Check
    - PyNumber_AsSsize_t
    - _PyThreadState_GET
    - _PyErr_SetString
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _PyEval_SliceIndexNotNone(PyObject *v, Py_ssize_t *pi)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:2985,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2985,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2989,1
    - Dst: _PyImport_IsDefaultImportFunc
      Src: /src/cpython/Python/ceval.c:2999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3000,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/ceval.c:3001,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3002,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/ceval.c:3005,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:3014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - tstate
    - frame
    - name
    - fromlist
    - level
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 2980
    functionDepth: 9
    functionLinenumber: 2980
    functionLinenumberEnd: 3017
    functionName: _PyEval_ImportName
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyImport_IsDefaultImportFunc
    - Py_DECREF
    - PyLong_AsInt
    - _Py_ID
    - PyObject_Vectorcall
    - PyImport_ImportModuleLevelObject
    - _PyErr_SetString
    - PyMapping_GetOptionalItem
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEval_ImportName(PyThreadState *tstate, _PyInterpreterFrame
      *frame,\n            PyObject *name, PyObject *fromlist, PyObject *level)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:3025,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:3031,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3031,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:3034,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/ceval.c:3035,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3040,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/ceval.c:3043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3044,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3048,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ceval.c:3053,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3061,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3062,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:3065,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3065,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3066,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3070,1
    - Dst: _PyModuleSpec_GetFileOrigin
      Src: /src/cpython/Python/ceval.c:3076,1
    - Dst: _PyModule_IsPossiblyShadowing
      Src: /src/cpython/Python/ceval.c:3080,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/ceval.c:3087,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Python/ceval.c:3090,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/ceval.c:3091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3093,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3097,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/ceval.c:3100,1
    - Dst: PyModule_GetFilenameObject
      Src: /src/cpython/Python/ceval.c:3103,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:3105,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/ceval.c:3109,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3111,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:3111,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3115,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3116,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Python/ceval.c:3125,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3131,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3134,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3142,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3149,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3157,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3159,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3165,1
    - Dst: _PyErr_SetImportErrorWithNameFrom
      Src: /src/cpython/Python/ceval.c:3176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3177,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3181,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3183,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 120
    argCount: 3
    argNames:
    - tstate
    - v
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (origin)
      pos:
        line_end: 3114
        line_start: 3114
        source_file: /src/cpython/Python/ceval.c
    - condition: (mod_name == NULL || mod_name == mod_name_or_unknown)
      pos:
        line_end: 3061
        line_start: 3061
        source_file: /src/cpython/Python/ceval.c
    - condition: (origin == NULL || PyUnicode_Check(origin))
      pos:
        line_end: 3110
        line_start: 3110
        source_file: /src/cpython/Python/ceval.c
    - condition: (rc == 0)
      pos:
        line_end: 3156
        line_start: 3156
        source_file: /src/cpython/Python/ceval.c
    - condition: (mod_name_or_unknown)
      pos:
        line_end: 3060
        line_start: 3060
        source_file: /src/cpython/Python/ceval.c
    - condition: (origin)
      pos:
        line_end: 3130
        line_start: 3130
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3185
      start: 3019
    functionDepth: 10
    functionLinenumber: 3019
    functionLinenumberEnd: 3185
    functionName: _PyEval_ImportFrom
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_Clear
    - PyImport_GetModule
    - Py_CLEAR
    - _PyErr_Occurred
    - PyUnicode_FromFormat
    - PyModule_GetFilenameObject
    - PySet_Contains
    - PyModule_Check
    - PyUnicode_Check
    - _PyModuleSpec_GetFileOrigin
    - Py_DECREF
    - _PyModuleSpec_IsInitializing
    - _PyErr_SetImportErrorWithNameFrom
    - _Py_ID
    - PyAnySet_Check
    - PyErr_ExceptionMatches
    - PySys_GetOptionalAttrString
    - _PyModule_IsPossiblyShadowing
    - PyObject_GetOptionalAttr
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_ImportFrom(PyThreadState *tstate, PyObject *v, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/ceval.c:3196,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:3198,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3200,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/ceval.c:3201,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3202,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/ceval.c:3209,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - tstate
    - right
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3193
    functionDepth: 1
    functionLinenumber: 3193
    functionLinenumberEnd: 3216
    functionName: _PyEval_CheckExceptTypeValid
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyExceptionClass_Check
    - PyTuple_GET_ITEM
    - _PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyEval_CheckExceptTypeValid(PyThreadState *tstate, PyObject* right)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_CheckExceptTypeValid
      Src: /src/cpython/Python/ceval.c:3221,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/ceval.c:3228,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:3229,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3231,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/ceval.c:3232,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/ceval.c:3242,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - tstate
    - right
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3218
    functionDepth: 7
    functionLinenumber: 3218
    functionLinenumberEnd: 3253
    functionName: _PyEval_CheckExceptStarTypeValid
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyObject_IsSubclass
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - _PyEval_CheckExceptTypeValid
    - PyTuple_GET_ITEM
    - _PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyEval_CheckExceptStarTypeValid(PyThreadState *tstate, PyObject*
      right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3258,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/ceval.c:3258,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/ceval.c:3262,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Python/ceval.c:3263,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3265,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - tstate
    - func
    - args
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3255
    functionDepth: 5
    functionLinenumber: 3255
    functionLinenumberEnd: 3273
    functionName: _Py_Check_ArgsIterable
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Check
    - _PyErr_Format
    - _PyErr_Clear
    - _PyObject_FunctionStr
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_Check_ArgsIterable(PyThreadState *tstate, PyObject *func, PyObject
      *args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:3284,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/ceval.c:3285,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Python/ceval.c:3286,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3288,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3292,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:3295,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval.c:3296,1
    - Dst: PyException_GetArgs
      Src: /src/cpython/Python/ceval.c:3297,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/ceval.c:3298,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:3298,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/ceval.c:3299,1
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Python/ceval.c:3300,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3302,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3307,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3309,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:3312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tstate
    - func
    - kwargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3275
    functionDepth: 5
    functionLinenumber: 3275
    functionLinenumberEnd: 3316
    functionName: _PyEval_FormatKwargsError
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyErr_SetRaisedException
    - _PyErr_Format
    - PyTuple_Check
    - _PyErr_Clear
    - _PyObject_FunctionStr
    - PyException_GetArgs
    - PyTuple_GET_ITEM
    - Py_TYPE
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyEval_FormatKwargsError(PyThreadState *tstate, PyObject *func,
      PyObject *kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:3327,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3331,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval.c:3335,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/ceval.c:3336,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/ceval.c:3340,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3340,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:3343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - tstate
    - exc
    - format_str
    - obj
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3345
      start: 3318
    functionDepth: 6
    functionLinenumber: 3318
    functionLinenumberEnd: 3345
    functionName: _PyEval_FormatExcCheckArg
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - _PyErr_Format
    - _Py_ID
    - PyErr_GivenExceptionMatches
    - PyObject_SetAttr
    - PyUnicode_AsUTF8
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: "void _PyEval_FormatExcCheckArg(PyThreadState *tstate, PyObject *exc,\n
      \                         const char *format_str, PyObject *obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3352,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3354,1
    - Dst: PyUnstable_Code_GetFirstFree
      Src: /src/cpython/Python/ceval.c:3355,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3356,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tstate
    - co
    - oparg
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3347
    functionDepth: 7
    functionLinenumber: 3347
    functionLinenumberEnd: 3362
    functionName: _PyEval_FormatExcUnbound
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Code_GetFirstFree
    - PyTuple_GET_ITEM
    - _PyErr_Occurred
    - _PyEval_FormatExcCheckArg
    linkageType: ''
    returnType: void
    signature: void _PyEval_FormatExcUnbound(PyThreadState *tstate, PyCodeObject *co,
      int oparg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3369,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - tstate
    - type
    - oparg
    argTypes:
    - PyThreadState*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3364
    functionDepth: 1
    functionLinenumber: 3364
    functionLinenumberEnd: 3381
    functionName: _PyEval_FormatAwaitableError
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    linkageType: ''
    returnType: void
    signature: void _PyEval_FormatAwaitableError(PyThreadState *tstate, PyTypeObject
      *type, int oparg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval.c:3387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - free
    argTypes:
    - freefunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3384
    functionDepth: 1
    functionLinenumber: 3384
    functionLinenumberEnd: 3396
    functionName: PyUnstable_Eval_RequestCodeExtraIndex
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyUnstable_Eval_RequestCodeExtraIndex(freefunc free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/ceval.c:3403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - where
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3401
    functionDepth: 1
    functionLinenumber: 3401
    functionLinenumberEnd: 3404
    functionName: Py_EnterRecursiveCall
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 17
    functionsReached:
    - _Py_EnterRecursiveCall
    linkageType: ''
    returnType: int
    signature: int Py_EnterRecursiveCall(const char *where)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/ceval.c:3408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3406
    functionDepth: 1
    functionLinenumber: 3406
    functionLinenumberEnd: 3409
    functionName: Py_LeaveRecursiveCall
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 17
    functionsReached:
    - _Py_LeaveRecursiveCall
    linkageType: ''
    returnType: void
    signature: void Py_LeaveRecursiveCall(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3416,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Python/ceval.c:3417,1
    - Dst: PyTypeObject*::tp_as_async::am_anext
      Src: /src/cpython/Python/ceval.c:3418,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ceval.c:3431,1
    - Dst: _PyCoro_GetAwaitableIter
      Src: /src/cpython/Python/ceval.c:3438,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Python/ceval.c:3440,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3446,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - aiter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3411
    functionDepth: 4
    functionLinenumber: 3411
    functionLinenumberEnd: 3448
    functionName: _PyEval_GetANext
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyAsyncGen_CheckExact
    - Py_DECREF
    - _PyErr_FormatFromCause
    - PyTypeObject*::tp_as_async::am_anext
    - _PyCoro_GetAwaitableIter
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetANext(PyObject *aiter)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:3453,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:3453,1
    - Dst: _PyDict_LoadGlobalStackRef
      Src: /src/cpython/Python/ceval.c:3454,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:3457,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3457,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3460,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3460,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3468,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3474,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3479,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3480,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:3486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - globals
    - builtins
    - name
    - writeto
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3488
      start: 3450
    functionDepth: 9
    functionLinenumber: 3450
    functionLinenumberEnd: 3488
    functionName: _PyEval_LoadGlobalStackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - PyThreadState_GET
    - _PyDict_LoadGlobalStackRef
    - PyErr_Occurred
    - _PyEval_FormatExcCheckArg
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_IsNull
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: void
    signature: void _PyEval_LoadGlobalStackRef(PyObject *globals, PyObject *builtins,
      PyObject *name, _PyStackRef *writeto)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoro_GetAwaitableIter
      Src: /src/cpython/Python/ceval.c:3493,1
    - Dst: _PyEval_FormatAwaitableError
      Src: /src/cpython/Python/ceval.c:3496,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3496,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3497,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/ceval.c:3499,1
    - Dst: _PyGen_yf
      Src: /src/cpython/Python/ceval.c:3500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3505,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/ceval.c:3506,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3507,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - iterable
    - oparg
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3490
    functionDepth: 4
    functionLinenumber: 3490
    functionLinenumberEnd: 3512
    functionName: _PyEval_GetAwaitable
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyThreadState_GET
    - PyCoro_CheckExact
    - _PyGen_yf
    - _PyCoro_GetAwaitableIter
    - _PyErr_SetString
    - _PyEval_FormatAwaitableError
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetAwaitable(PyObject *iterable, int oparg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3520,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3524,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/ceval.c:3530,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3536,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3540,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - tstate
    - frame
    - name
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3514
    functionDepth: 9
    functionLinenumber: 3514
    functionLinenumberEnd: 3545
    functionName: _PyEval_LoadName
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemRef
    - _PyErr_SetString
    - PyMapping_GetOptionalItem
    - _PyEval_FormatExcCheckArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_LoadName(PyThreadState *tstate, _PyInterpreterFrame *frame, PyObject
      *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3550,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/ceval.c:3550,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3551,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:3551,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/ceval.c:3551,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/ceval.c:3552,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:3553,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:3554,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:3558,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3558,1
    - Dst: _PyList_GetItemRef
      Src: /src/cpython/Python/ceval.c:3560,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:3564,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - seq
    - index
    argTypes:
    - PyObject*
    - _PyStackRef
    assertStmts:
    - condition: (PyStackRef_IsTaggedInt(index))
      pos:
        line_end: 3549
        line_start: 3549
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyTuple_CheckExact(seq) || PyList_CheckExact(seq))
      pos:
        line_end: 3550
        line_start: 3550
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3565
      start: 3547
    functionDepth: 1
    functionLinenumber: 3547
    functionLinenumberEnd: 3565
    functionName: foriter_next
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - assert
    - PyTuple_GET_SIZE
    - _PyList_GetItemRef
    - PyStackRef_FromPyObjectNew
    - PyStackRef_FromPyObjectSteal
    - PyTuple_GET_ITEM
    - PyStackRef_UntagInt
    - PyStackRef_IsTaggedInt
    - PyTuple_CheckExact
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef foriter_next(PyObject *seq, _PyStackRef index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:3569,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/ceval.c:3571,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/ceval.c:3572,1
    - Dst: foriter_next
      Src: /src/cpython/Python/ceval.c:3573,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3575,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3577,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:3578,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/ceval.c:3579,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/ceval.c:3580,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:3588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - tstate
    - frame
    - iter
    - index_ptr
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _PyStackRef
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3567
    functionDepth: 9
    functionLinenumber: 3567
    functionLinenumberEnd: 3589
    functionName: _PyForIter_VirtualIteratorNext
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Occurred
    - _PyErr_ExceptionMatches
    - _PyErr_Clear
    - foriter_next
    - PyStackRef_FromPyObjectSteal
    - _PyEval_MonitorRaise
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IncrementTaggedIntNoOverflow
    - Py_TYPE
    - PyStackRef_IsTaggedInt
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _PyForIter_VirtualIteratorNext(PyThreadState* tstate, _PyInterpreterFrame*
      frame, _PyStackRef iter, _PyStackRef* index_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3596,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3596,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/ceval.c:3597,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cls
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3595
        line_start: 3595
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3599
      start: 3592
    functionDepth: 3
    functionLinenumber: 3592
    functionLinenumberEnd: 3599
    functionName: type_has_special_method
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyType_Lookup
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int type_has_special_method(PyTypeObject *cls, PyObject *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3604,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3608,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3608,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3609,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3609,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3613,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3613,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3614,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3614,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:3617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - oparg
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3619
      start: 3601
    functionDepth: 4
    functionLinenumber: 3601
    functionLinenumberEnd: 3619
    functionName: _PyEval_SpecialMethodCanSuggest
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - Py_TYPE
    - type_has_special_method
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int _PyEval_SpecialMethodCanSuggest(PyObject *self, int oparg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: PyFPE_dummy
    functionSourceFile: /src/cpython/Python/pyfpe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PyFPE_dummy(void *dummy)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: qsbr_allocate
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct _qsbr_thread_state
    signature: 'struct _qsbr_thread_state *

      qsbr_allocate(struct _qsbr_shared *shared)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: initialize_new_array
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initialize_new_array(struct _qsbr_shared *shared)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/qsbr.c:87,1
    - Dst: memcpy
      Src: /src/cpython/Python/qsbr.c:94,1
    - Dst: initialize_new_array
      Src: /src/cpython/Python/qsbr.c:100,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/qsbr.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: grow_thread_array
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyMem_RawCalloc
    - initialize_new_array
    - PyMem_RawFree
    linkageType: ''
    returnType: int
    signature: int grow_thread_array(struct _qsbr_shared *shared)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_uint64
      Src: /src/cpython/Python/qsbr.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: _Py_qsbr_advance
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_add_uint64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_qsbr_advance(struct _qsbr_shared *shared)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_qsbr_shared_current
      Src: /src/cpython/Python/qsbr.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: _Py_qsbr_shared_next
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 2
    functionsReached:
    - _Py_qsbr_shared_current
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_qsbr_shared_next(struct _qsbr_shared *shared)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_fence_seq_cst
      Src: /src/cpython/Python/qsbr.c:127,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/qsbr.c:130,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/qsbr.c:135,1
    - Dst: QSBR_LT
      Src: /src/cpython/Python/qsbr.c:136,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/qsbr.c:142,1
    - Dst: QSBR_LT
      Src: /src/cpython/Python/qsbr.c:143,1
    - Dst: _Py_atomic_compare_exchange_uint64
      Src: /src/cpython/Python/qsbr.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 150
    functionName: qsbr_poll_scan
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uint64
    - _Py_atomic_load_uint64
    - QSBR_LT
    - _Py_atomic_fence_seq_cst
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t qsbr_poll_scan(struct _qsbr_shared *shared)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:155,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/qsbr.c:155,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/qsbr.c:155,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:156,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/qsbr.c:156,1
    - Dst: _Py_qbsr_goal_reached
      Src: /src/cpython/Python/qsbr.c:158,1
    - Dst: qsbr_poll_scan
      Src: /src/cpython/Python/qsbr.c:162,1
    - Dst: QSBR_LEQ
      Src: /src/cpython/Python/qsbr.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - qsbr
    - goal
    argTypes:
    - struct _qsbr_thread_state*
    - uint64_t
    assertStmts:
    - condition: (_Py_atomic_load_int_relaxed(&_PyThreadState_GET()->state) == _Py_THREAD_ATTACHED)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Python/qsbr.c
    - condition: (((_PyThreadStateImpl *)_PyThreadState_GET())->qsbr == qsbr)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: _Py_qsbr_poll
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _Py_qbsr_goal_reached
    - _PyThreadState_GET
    - QSBR_LEQ
    - assert
    - qsbr_poll_scan
    linkageType: ''
    returnType: bool
    signature: bool _Py_qsbr_poll(struct _qsbr_thread_state *qsbr, uint64_t goal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:169,1
    - Dst: _Py_qsbr_shared_current
      Src: /src/cpython/Python/qsbr.c:171,1
    - Dst: _Py_atomic_store_uint64
      Src: /src/cpython/Python/qsbr.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - qsbr
    argTypes:
    - struct _qsbr_thread_state*
    assertStmts:
    - condition: (qsbr->seq == 0 && "already attached")
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: _Py_qsbr_attach
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint64
    - _Py_qsbr_shared_current
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_qsbr_attach(struct _qsbr_thread_state *qsbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:178,1
    - Dst: _Py_atomic_store_uint64_release
      Src: /src/cpython/Python/qsbr.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - qsbr
    argTypes:
    - struct _qsbr_thread_state*
    assertStmts:
    - condition: (qsbr->seq != 0 && "already detached")
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: _Py_qsbr_detach
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_atomic_store_uint64_release
    linkageType: ''
    returnType: void
    signature: void _Py_qsbr_detach(struct _qsbr_thread_state *qsbr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/qsbr.c:188,1
    - Dst: qsbr_allocate
      Src: /src/cpython/Python/qsbr.c:190,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/qsbr.c:195,1
    - Dst: grow_thread_array
      Src: /src/cpython/Python/qsbr.c:196,1
    - Dst: qsbr_allocate
      Src: /src/cpython/Python/qsbr.c:197,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/qsbr.c:199,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/qsbr.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 210
    functionName: _Py_qsbr_reserve
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - grow_thread_array
    - PyMutex_Lock
    - PyMutex_Unlock
    - _PyEval_StopTheWorld
    - qsbr_allocate
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_qsbr_reserve(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/qsbr.c:219,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:221,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/qsbr.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - interp
    - index
    argTypes:
    - _PyThreadStateImpl*
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts:
    - condition: (qsbr->allocated && qsbr->tstate == NULL)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 225
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 225
    functionName: _Py_qsbr_register
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: void
    signature: "void _Py_qsbr_register(_PyThreadStateImpl *tstate, PyInterpreterState
      *interp,\n                  Py_ssize_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:236,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/qsbr.c:238,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:244,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:245,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/qsbr.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!tstate->holds_gil)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/cpython/Python/qsbr.c
    - condition: (qsbr->seq == 0 && "thread state must be detached")
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Python/qsbr.c
    - condition: (qsbr->allocated && qsbr->tstate == tstate)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 253
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 253
    functionName: _Py_qsbr_unregister
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_qsbr_unregister(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/qsbr.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: _Py_qsbr_fini
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _Py_qsbr_fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/qsbr.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 282
    functionName: _Py_qsbr_after_fork
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 1
    functionsReached:
    - _PyMutex_at_fork_reinit
    linkageType: ''
    returnType: void
    signature: void _Py_qsbr_after_fork(_PyThreadStateImpl *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: VLA
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLA(type, name, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: VLA
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLA(type, name, size)
  - 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: 'OFF'
    functionSourceFile: /src/cpython/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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: PUTS
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - 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: _PyTracebackObject_CAST
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyTracebackObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/traceback.c:77,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Python/traceback.c:78,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/traceback.c:79,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/traceback.c:82,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/traceback.c:84,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/traceback.c:85,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/traceback.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - next
    - frame
    - lasti
    - lineno
    argTypes:
    - PyTracebackObject*
    - PyFrameObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: tb_create_raw
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyFrame_Check
    - PyErr_BadInternalCall
    - PyObject_GC_Track
    - Py_XNewRef
    - PyTraceBack_Check
    - PyObject_GC_New
    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/cpython/Python/traceback.c:112,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/traceback.c:113,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/traceback.c:115,1
    - Dst: tb_create_raw
      Src: /src/cpython/Python/traceback.c:118,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: 120
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: tb_new_impl
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - tb_create_raw
    - PyTraceBack_Check
    - Py_TYPE
    - PyErr_Format
    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/cpython/Python/traceback.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: tb_dir
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tb_dir(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/traceback.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTracebackObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: traceback_tb_next_get_impl
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      traceback_tb_next_get_impl(PyTracebackObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTracebackObject_CAST
      Src: /src/cpython/Python/traceback.c:149,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:151,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Python/traceback.c:152,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/traceback.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: tb_get_lineno
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyCode_Addr2Line
    - _PyTracebackObject_CAST
    - _PyFrame_GetCode
    - assert
    linkageType: ''
    returnType: int
    signature: int tb_get_lineno(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTracebackObject_CAST
      Src: /src/cpython/Python/traceback.c:158,1
    - Dst: tb_get_lineno
      Src: /src/cpython/Python/traceback.c:161,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/traceback.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(_)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: tb_lineno_get
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyTracebackObject_CAST
    - tb_get_lineno
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tb_lineno_get(PyObject *op, void *Py_UNUSED(_))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/traceback.c:180,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/traceback.c:188,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/traceback.c:189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/traceback.c:191,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/traceback.c:197,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/traceback.c:200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:201,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/traceback.c:204,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/traceback.c:205,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/traceback.c:206,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/traceback.c:207,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/traceback.c:210,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/traceback.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyTracebackObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 213
    functionName: traceback_tb_next_set_impl
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - Py_DECREF
    - Py_SETREF
    - Py_XSETREF
    - PyErr_Format
    - Py_XINCREF
    - Py_XNewRef
    - PyTraceBack_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int traceback_tb_next_set_impl(PyTracebackObject *self, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTracebackObject_CAST
      Src: /src/cpython/Python/traceback.c:236,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/traceback.c:237,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:238,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:239,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/traceback.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: tb_dealloc
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyTracebackObject_CAST
    - Py_XDECREF
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void tb_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTracebackObject_CAST
      Src: /src/cpython/Python/traceback.c:246,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/traceback.c:247,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/traceback.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: tb_traverse
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyTracebackObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tb_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTracebackObject_CAST
      Src: /src/cpython/Python/traceback.c:255,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/traceback.c:256,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/traceback.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: tb_clear
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyTracebackObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tb_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:306,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/traceback.c:306,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:307,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/traceback.c:308,1
    - Dst: tb_create_raw
      Src: /src/cpython/Python/traceback.c:309,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: 305
        line_start: 305
        source_file: /src/cpython/Python/traceback.c
    - condition: (frame != NULL)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: _PyTraceBack_FromFrame
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 1
    functionsReached:
    - tb_create_raw
    - PyTraceBack_Check
    - _PyInterpreterFrame_LASTI
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceBack_FromFrame(PyObject *tb_next, PyFrameObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/traceback.c:316,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:317,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/traceback.c:317,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/traceback.c:318,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/cpython/Python/traceback.c:319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:320,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/traceback.c:322,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/traceback.c:325,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:326,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/traceback.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 329
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 329
    functionName: PyTraceBack_Here
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_ChainExceptions1
    - PyException_GetTraceback
    - PyErr_GetRaisedException
    - _PyTraceBack_FromFrame
    - PyException_SetTraceback
    - PyExceptionInstance_Check
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int PyTraceBack_Here(PyFrameObject *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/traceback.c:337,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/traceback.c:342,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/traceback.c:344,1
    - Dst: PyCode_NewEmpty
      Src: /src/cpython/Python/traceback.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:349,1
    - Dst: PyFrame_New
      Src: /src/cpython/Python/traceback.c:352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:354,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/traceback.c:359,1
    - Dst: PyTraceBack_Here
      Src: /src/cpython/Python/traceback.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:361,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/traceback.c:365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - funcname
    - filename
    - lineno
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 332
    functionDepth: 15
    functionLinenumber: 332
    functionLinenumberEnd: 366
    functionName: _PyTraceback_Add
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - PyCode_NewEmpty
    - _PyErr_ChainExceptions1
    - Py_DECREF
    - _PyErr_SetRaisedException
    - PyFrame_New
    - _PyThreadState_GET
    - PyTraceBack_Here
    - PyDict_New
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyTraceback_Add(const char *funcname, const char *filename, int
      lineno)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/traceback.c:385,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:387,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/traceback.c:390,1
    - Dst: strrchr
      Src: /src/cpython/Python/traceback.c:393,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:398,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/traceback.c:400,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/traceback.c:401,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:401,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:402,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/traceback.c:405,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/traceback.c:408,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/traceback.c:410,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:410,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/traceback.c:412,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:414,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:417,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/traceback.c:419,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:421,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/traceback.c:424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:426,1
    - Dst: strcpy
      Src: /src/cpython/Python/traceback.c:429,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/traceback.c:429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:430,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:431,1
    - Dst: strcpy
      Src: /src/cpython/Python/traceback.c:435,1
    - Dst: _PyObject_CallMethodFormat
      Src: /src/cpython/Python/traceback.c:437,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:442,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:449,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:451,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 4
    argNames:
    - filename
    - namebuf
    - namelen
    - io
    argTypes:
    - PyObject*
    - char*
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 453
    functionName: _Py_FindSourceFile
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - Py_XDECREF
    - Py_DECREF
    - PySys_GetOptionalAttr
    - strlen
    - _Py_ID
    - PyUnicode_EncodeFSDefault
    - _PyThreadState_GET
    - PyList_Check
    - PyObject_GetAttr
    - PyBytes_GET_SIZE
    - PyList_Size
    - _PyObject_CallMethodFormat
    - PyUnicode_Check
    - PyErr_Clear
    - PyBytes_AS_STRING
    - strcpy
    - strrchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_FindSourceFile(PyObject *filename, char* namebuf, size_t namelen, PyObject
      *io)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:461,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:461,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/traceback.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - indent
    - f
    argTypes:
    - int
    - PyObject*
    assertStmts:
    - condition: (strlen(buf) == 10)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 472
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 472
    functionName: _Py_WriteIndent
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - assert
    - strlen
    linkageType: ''
    returnType: int
    signature: int _Py_WriteIndent(int indent, PyObject *f)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:496,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:496,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/traceback.c:497,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/traceback.c:498,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/traceback.c:499,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/traceback.c:504,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/traceback.c:509,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:509,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:511,1
    - Dst: _Py_FindSourceFile
      Src: /src/cpython/Python/traceback.c:513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:515,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Python/traceback.c:521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:524,1
    - Dst: _PyTokenizer_FindEncodingFilename
      Src: /src/cpython/Python/traceback.c:527,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:529,1
    - Dst: lseek
      Src: /src/cpython/Python/traceback.c:532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:534,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/traceback.c:535,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/traceback.c:538,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:540,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/traceback.c:541,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:544,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/traceback.c:546,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:549,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:554,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:558,1
    - Dst: PyFile_GetLine
      Src: /src/cpython/Python/traceback.c:559,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:561,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/traceback.c:565,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:567,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:572,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:573,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:574,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/traceback.c:579,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/traceback.c:583,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/traceback.c:584,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/traceback.c:585,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/traceback.c:586,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/traceback.c:592,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/traceback.c:592,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/traceback.c:594,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:596,1
    - Dst: _Py_WriteIndent
      Src: /src/cpython/Python/traceback.c:605,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/traceback.c:610,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/traceback.c:614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:621,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 108
    argCount: 6
    argNames:
    - f
    - filename
    - lineno
    - indent
    - truncation
    - line
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - int*
    - PyObject**
    assertStmts:
    - condition: (PyUnicode_Check(filename))
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 623
      start: 474
    functionDepth: 8
    functionLinenumber: 474
    functionLinenumberEnd: 623
    functionName: display_source_line
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyImport_ImportModule
    - _Py_FindSourceFile
    - Py_SETREF
    - PyObject_AsFileDescriptor
    - PyMem_Free
    - PyUnicode_KIND
    - lseek
    - PyFile_WriteString
    - PyUnicode_READ
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyErr_Clear
    - PyUnicode_Substring
    - PyFile_GetLine
    - Py_DECREF
    - _PyObject_CallMethod
    - _PyTokenizer_FindEncodingFilename
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - PyFile_WriteObject
    - PyUnicode_GET_LENGTH
    - _Py_WriteIndent
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: int
    signature: "int display_source_line(PyObject *f, PyObject *filename, int lineno,
      int indent,\n                    int *truncation, PyObject **line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: display_source_line
      Src: /src/cpython/Python/traceback.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - f
    - filename
    - lineno
    - indent
    - truncation
    - line
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - int*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 9
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: _Py_DisplaySourceLine
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - display_source_line
    linkageType: ''
    returnType: int
    signature: "int _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno,
      int indent,\n                      int *truncation, PyObject **line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: IS_WHITESPACE
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WHITESPACE(c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/traceback.c:638,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/traceback.c:639,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 645
    functionName: ignore_source_errors
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int ignore_source_errors(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/traceback.c:655,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/traceback.c:661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:662,1
    - Dst: display_source_line
      Src: /src/cpython/Python/traceback.c:671,1
    - Dst: ignore_source_errors
      Src: /src/cpython/Python/traceback.c:676,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - tb
    - f
    - filename
    - lineno
    - frame
    - name
    argTypes:
    - PyTracebackObject*
    - PyObject*
    - PyObject*
    - int
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 647
    functionDepth: 10
    functionLinenumber: 647
    functionLinenumberEnd: 680
    functionName: tb_displayline
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - display_source_line
    - Py_DECREF
    - PyUnicode_FromFormat
    - ignore_source_errors
    - PyFile_WriteObject
    linkageType: ''
    returnType: int
    signature: "int tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename,
      int lineno,\n               PyFrameObject *frame, PyObject *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/traceback.c:688,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/traceback.c:696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - f
    - cnt
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 684
    functionDepth: 10
    functionLinenumber: 684
    functionLinenumberEnd: 699
    functionName: tb_print_line_repeated
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyFile_WriteObject
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int tb_print_line_repeated(PyObject *f, long cnt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetCode
      Src: /src/cpython/Python/traceback.c:720,1
    - Dst: tb_get_lineno
      Src: /src/cpython/Python/traceback.c:723,1
    - Dst: tb_print_line_repeated
      Src: /src/cpython/Python/traceback.c:730,1
    - Dst: tb_displayline
      Src: /src/cpython/Python/traceback.c:741,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/traceback.c:746,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/traceback.c:750,1
    - Dst: tb_print_line_repeated
      Src: /src/cpython/Python/traceback.c:754,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:760,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 3
    argNames:
    - tb
    - f
    - limit
    argTypes:
    - PyTracebackObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 701
    functionDepth: 11
    functionLinenumber: 701
    functionLinenumberEnd: 762
    functionName: tb_printinternal
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - tb_get_lineno
    - PyFrame_GetCode
    - tb_displayline
    - PyErr_CheckSignals
    - tb_print_line_repeated
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tb_printinternal(PyTracebackObject *tb, PyObject *f, long limit)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/traceback.c:775,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/traceback.c:776,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/traceback.c:779,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/traceback.c:782,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/traceback.c:784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:789,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:793,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/traceback.c:795,1
    - Dst: tb_printinternal
      Src: /src/cpython/Python/traceback.c:799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - v
    - header
    - f
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 766
    functionDepth: 12
    functionLinenumber: 766
    functionLinenumberEnd: 804
    functionName: _PyTraceBack_Print
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySys_GetOptionalAttrString
    - tb_printinternal
    - Py_DECREF
    - PyFile_WriteString
    - PyLong_AsLongAndOverflow
    - PyErr_BadInternalCall
    - PyLong_Check
    - PyTraceBack_Check
    linkageType: ''
    returnType: int
    signature: int _PyTraceBack_Print(PyObject *v, const char *header, PyObject *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceBack_Print
      Src: /src/cpython/Python/traceback.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - f
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 13
    functionLinenumber: 806
    functionLinenumberEnd: 811
    functionName: PyTraceBack_Print
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - _PyTraceBack_Print
    linkageType: ''
    returnType: int
    signature: int PyTraceBack_Print(PyObject *v, PyObject *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/traceback.c:827,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:832,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - value
    argTypes:
    - int
    - size_t
    assertStmts:
    - condition: (ptr >= buffer)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 838
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 838
    functionName: _Py_DumpDecimal
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - _Py_write_noraise
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_DumpDecimal(int fd, size_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/traceback.c:846,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:857,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:870,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - fd
    - value
    - width
    - strip_zeros
    argTypes:
    - int
    - uintptr_t
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (ptr >= buffer)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 871
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 871
    functionName: dump_hexadecimal
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - _Py_write_noraise
    - assert
    linkageType: ''
    returnType: void
    signature: void dump_hexadecimal(int fd, uintptr_t value, Py_ssize_t width, int
      strip_zeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_hexadecimal
      Src: /src/cpython/Python/traceback.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - value
    - width
    argTypes:
    - int
    - uintptr_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 877
    functionName: _Py_DumpHexadecimal
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 1
    functionsReached:
    - dump_hexadecimal
    linkageType: ''
    returnType: void
    signature: void _Py_DumpHexadecimal(int fd, uintptr_t value, Py_ssize_t width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:883,1
    - Dst: dump_hexadecimal
      Src: /src/cpython/Python/traceback.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - ptr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 885
    functionName: dump_pointer
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PUTS
    - dump_hexadecimal
    linkageType: ''
    returnType: void
    signature: void dump_pointer(int fd, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - ch
    argTypes:
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 893
    functionName: dump_char
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _Py_write_noraise
    linkageType: ''
    returnType: void
    signature: void dump_char(int fd, char ch)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Python/traceback.c:898,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:905,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Python/traceback.c:914,1
    - Dst: _PyUnicodeObject_CAST
      Src: /src/cpython/Python/traceback.c:917,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:932,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:945,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/traceback.c:951,1
    - Dst: dump_char
      Src: /src/cpython/Python/traceback.c:954,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:957,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:958,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:961,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:962,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:965,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:966,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:972,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - fd
    - text
    argTypes:
    - int
    - PyObject*
    assertStmts:
    - condition: (kind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 974
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 974
    functionName: _Py_DumpASCII
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - _PyCompactUnicodeObject_CAST
    - PyUnicode_READ
    - _Py_DumpHexadecimal
    - PUTS
    - _PyUnicodeObject_CAST
    - dump_char
    - PyUnicode_Check
    - _Py_write_noraise
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_DumpASCII(int fd, PyObject *text)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:983,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/traceback.c:985,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:986,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:988,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:990,1
    - Dst: _Py_DumpASCII
      Src: /src/cpython/Python/traceback.c:991,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:992,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:994,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Python/traceback.c:997,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:998,1
    - Dst: _Py_DumpDecimal
      Src: /src/cpython/Python/traceback.c:1000,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1003,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1005,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:1008,1
    - Dst: _Py_DumpASCII
      Src: /src/cpython/Python/traceback.c:1009,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1012,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1015,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - fd
    - frame
    argTypes:
    - int
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->owner < FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 1016
      start: 980
    functionDepth: 4
    functionLinenumber: 980
    functionLinenumberEnd: 1016
    functionName: dump_frame
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _Py_DumpASCII
    - assert
    - PyUnstable_InterpreterFrame_GetLine
    - _Py_DumpDecimal
    - PUTS
    - PyUnicode_Check
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void dump_frame(int fd, _PyInterpreterFrame *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/traceback.c:1021,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/traceback.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1028
    functionName: tstate_is_freed
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyMem_IsPtrFreed
    linkageType: ''
    returnType: int
    signature: int tstate_is_freed(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/traceback.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1035
    functionName: interp_is_freed
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyMem_IsPtrFreed
    linkageType: ''
    returnType: int
    signature: int interp_is_freed(PyInterpreterState *interp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1042,1
    - Dst: tstate_is_freed
      Src: /src/cpython/Python/traceback.c:1045,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1046,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1052,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:1066,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1071,1
    - Dst: _Py_DumpDecimal
      Src: /src/cpython/Python/traceback.c:1072,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1073,1
    - Dst: dump_frame
      Src: /src/cpython/Python/traceback.c:1078,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - fd
    - tstate
    - write_header
    argTypes:
    - int
    - PyThreadState*
    - int
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1065
        line_start: 1065
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 1085
      start: 1038
    functionDepth: 5
    functionLinenumber: 1038
    functionLinenumberEnd: 1085
    functionName: dump_traceback
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 3
    functionsReached:
    - _Py_DumpDecimal
    - dump_frame
    - tstate_is_freed
    - PUTS
    - assert
    linkageType: ''
    returnType: void
    signature: void dump_traceback(int fd, PyThreadState *tstate, int write_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_traceback
      Src: /src/cpython/Python/traceback.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - tstate
    argTypes:
    - int
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1093
    functionDepth: 6
    functionLinenumber: 1093
    functionLinenumberEnd: 1097
    functionName: _Py_DumpTraceback
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - dump_traceback
    linkageType: ''
    returnType: void
    signature: void _Py_DumpTraceback(int fd, PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1119,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1121,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:1122,1
    - Dst: pthread_getname_np
      Src: /src/cpython/Python/traceback.c:1131,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/traceback.c:1131,1
    - Dst: pthread_get_name_np
      Src: /src/cpython/Python/traceback.c:1134,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/traceback.c:1134,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:1137,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1139,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:1140,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1141,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - tstate
    - is_current
    argTypes:
    - int
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1115
    functionDepth: 3
    functionLinenumber: 1115
    functionLinenumberEnd: 1147
    functionName: write_thread_id
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - pthread_get_name_np
    - strlen
    - _Py_DumpHexadecimal
    - _Py_write_noraise
    - PUTS
    - pthread_getname_np
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: void
    signature: void write_thread_id(int fd, PyThreadState *tstate, int is_current)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Python/traceback.c:1171,1
    - Dst: tstate_is_freed
      Src: /src/cpython/Python/traceback.c:1174,1
    - Dst: _PyGILState_GetInterpreterStateUnsafe
      Src: /src/cpython/Python/traceback.c:1180,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:1190,1
    - Dst: interp_is_freed
      Src: /src/cpython/Python/traceback.c:1192,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/cpython/Python/traceback.c:1197,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/cpython/Python/traceback.c:1202,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1208,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1210,1
    - Dst: write_thread_id
      Src: /src/cpython/Python/traceback.c:1213,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1215,1
    - Dst: dump_traceback
      Src: /src/cpython/Python/traceback.c:1217,1
    - Dst: PyThreadState_Next
      Src: /src/cpython/Python/traceback.c:1218,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - fd
    - interp
    - current_tstate
    argTypes:
    - int
    - PyInterpreterState*
    - PyThreadState*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 1189
        line_start: 1189
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 1224
      start: 1155
    functionDepth: 6
    functionLinenumber: 1155
    functionLinenumberEnd: 1224
    functionName: _Py_DumpTracebackThreads
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 3
    functionsReached:
    - write_thread_id
    - dump_traceback
    - tstate_is_freed
    - PyGILState_GetThisThreadState
    - interp_is_freed
    - PyInterpreterState_ThreadHead
    - PUTS
    - PyThreadState_Next
    - _PyGILState_GetInterpreterStateUnsafe
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\n_Py_DumpTracebackThreads(int fd, PyInterpreterState *interp,\n
      \                        PyThreadState *current_tstate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1208,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1210,1
    - Dst: write_thread_id
      Src: /src/cpython/Python/traceback.c:1213,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1215,1
    - Dst: dump_traceback
      Src: /src/cpython/Python/traceback.c:1217,1
    - Dst: PyThreadState_Next
      Src: /src/cpython/Python/traceback.c:1218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1204
    functionDepth: 6
    functionLinenumber: 1204
    functionLinenumberEnd: 1220
    functionName: do
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PUTS
    - write_thread_id
    - dump_traceback
    - PyThreadState_Next
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VLA
      Src: /src/cpython/Python/traceback.c:1231,1
    - Dst: dladdr
      Src: /src/cpython/Python/traceback.c:1236,1
    - Dst: dladdr1
      Src: /src/cpython/Python/traceback.c:1239,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1256,1
    - Dst: dump_pointer
      Src: /src/cpython/Python/traceback.c:1257,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1258,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1269,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1270,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1271,1
    - Dst: dump_pointer
      Src: /src/cpython/Python/traceback.c:1272,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1273,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1287,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1288,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1289,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1290,1
    - Dst: dump_char
      Src: /src/cpython/Python/traceback.c:1291,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1292,1
    - Dst: dump_hexadecimal
      Src: /src/cpython/Python/traceback.c:1293,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1294,1
    - Dst: dump_pointer
      Src: /src/cpython/Python/traceback.c:1295,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1296,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - fd
    - array
    - size
    argTypes:
    - int
    - void**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1228
    functionDepth: 3
    functionLinenumber: 1228
    functionLinenumberEnd: 1299
    functionName: _Py_backtrace_symbols_fd
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - VLA
    - dump_pointer
    - dump_hexadecimal
    - dump_char
    - PUTS
    - dladdr
    - dladdr1
    linkageType: ''
    returnType: void
    signature: void _Py_backtrace_symbols_fd(int fd, void *const *array, Py_ssize_t
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1305,1
    - Dst: backtrace
      Src: /src/cpython/Python/traceback.c:1307,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1310,1
    - Dst: _Py_backtrace_symbols_fd
      Src: /src/cpython/Python/traceback.c:1314,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1301
    functionDepth: 4
    functionLinenumber: 1301
    functionLinenumberEnd: 1320
    functionName: _Py_DumpStack
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - PUTS
    - backtrace
    - _Py_backtrace_symbols_fd
    linkageType: ''
    returnType: void
    signature: void _Py_DumpStack(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1325,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1327
    functionName: _Py_DumpStack
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - PUTS
    linkageType: ''
    returnType: void
    signature: void _Py_DumpStack(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: backtrace
      Src: /src/cpython/Python/traceback.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1338
    functionName: _Py_InitDumpStack
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 1
    functionsReached:
    - backtrace
    linkageType: ''
    returnType: void
    signature: void _Py_InitDumpStack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - tid
    argTypes:
    - PyInterpreterState*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: get_bucket
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct _brc_bucket
    signature: 'struct _brc_bucket *

      get_bucket(PyInterpreterState *interp, uintptr_t tid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each
      Src: /src/cpython/Python/brc.c:40,1
    - Dst: llist_data
      Src: /src/cpython/Python/brc.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bucket
    - thread_id
    argTypes:
    - struct _brc_bucket*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: find_thread_state
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 0
    functionsReached:
    - llist_data
    - llist_for_each
    linkageType: ''
    returnType: _PyThreadStateImpl
    signature: '_PyThreadStateImpl *

      find_thread_state(struct _brc_bucket *bucket, uintptr_t thread_id)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/brc.c:56,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/brc.c:58,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/brc.c:62,1
    - Dst: get_bucket
      Src: /src/cpython/Python/brc.c:66,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/brc.c:67,1
    - Dst: find_thread_state
      Src: /src/cpython/Python/brc.c:68,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Python/brc.c:73,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/brc.c:74,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Python/brc.c:76,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/brc.c:81,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/brc.c:82,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/brc.c:86,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Python/brc.c:87,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/brc.c:88,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Python/brc.c:91,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/brc.c:97,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/brc.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 100
    functionName: _Py_brc_queue_object
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _Py_Dealloc
    - _PyInterpreterState_GET
    - _Py_ExplicitMergeRefcount
    - _PyObjectStack_Push
    - PyMutex_Lock
    - _PyEval_StartTheWorld
    - get_bucket
    - PyMutex_Unlock
    - _PyEval_StopTheWorld
    - _Py_set_eval_breaker_bit
    - _Py_atomic_load_uintptr
    - find_thread_state
    linkageType: ''
    returnType: void
    signature: void _Py_brc_queue_object(PyObject *ob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/brc.c:106,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Python/brc.c:108,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Python/brc.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - to_merge
    argTypes:
    - _PyObjectStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: merge_queued_objects
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Pop
    - _Py_ExplicitMergeRefcount
    - _Py_Dealloc
    linkageType: ''
    returnType: void
    signature: void merge_queued_objects(_PyObjectStack *to_merge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bucket
      Src: /src/cpython/Python/brc.c:120,1
    - Dst: assert
      Src: /src/cpython/Python/brc.c:122,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Python/brc.c:122,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/brc.c:126,1
    - Dst: _PyObjectStack_Merge
      Src: /src/cpython/Python/brc.c:127,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/brc.c:128,1
    - Dst: merge_queued_objects
      Src: /src/cpython/Python/brc.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (brc->tid == _Py_ThreadId())
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Python/brc.c
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: _Py_brc_merge_refcounts
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 0
    functionsReached:
    - _Py_ThreadId
    - merge_queued_objects
    - PyMutex_Lock
    - _PyObjectStack_Merge
    - get_bucket
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_brc_merge_refcounts(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_init
      Src: /src/cpython/Python/brc.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: _Py_brc_init_state
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 0
    functionsReached:
    - llist_init
    linkageType: ''
    returnType: void
    signature: void _Py_brc_init_state(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ThreadId
      Src: /src/cpython/Python/brc.c:147,1
    - Dst: get_bucket
      Src: /src/cpython/Python/brc.c:150,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/brc.c:151,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Python/brc.c:153,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/brc.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: _Py_brc_init_thread
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 0
    functionsReached:
    - _Py_ThreadId
    - llist_insert_tail
    - PyMutex_Lock
    - get_bucket
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void _Py_brc_init_thread(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/brc.c:164,1
    - Dst: get_bucket
      Src: /src/cpython/Python/brc.c:168,1
    - Dst: merge_queued_objects
      Src: /src/cpython/Python/brc.c:177,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/brc.c:179,1
    - Dst: llist_remove
      Src: /src/cpython/Python/brc.c:182,1
    - Dst: _PyObjectStack_Merge
      Src: /src/cpython/Python/brc.c:185,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/brc.c:188,1
    - Dst: assert
      Src: /src/cpython/Python/brc.c:191,1
    - Dst: assert
      Src: /src/cpython/Python/brc.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->_status.bound == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Python/brc.c
    - condition: (brc->local_objects_to_merge.head == NULL)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/cpython/Python/brc.c
    - condition: (brc->objects_to_merge.head == NULL)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Python/brc.c
    constantsTouched: []
    func_position:
      end: 193
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 193
    functionName: _Py_brc_remove_thread
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 0
    functionsReached:
    - llist_remove
    - merge_queued_objects
    - PyMutex_Lock
    - _PyObjectStack_Merge
    - get_bucket
    - PyMutex_Unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_brc_remove_thread(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/brc.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 206
    functionName: _Py_brc_after_fork
    functionSourceFile: /src/cpython/Python/brc.c
    functionUses: 1
    functionsReached:
    - _PyMutex_at_fork_reinit
    linkageType: ''
    returnType: void
    signature: void _Py_brc_after_fork(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Python/frame.c:13,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/frame.c:14,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Python/frame.c:15,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Python/frame.c:16,1
    - Dst: _PyGC_VisitFrameStack
      Src: /src/cpython/Python/frame.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - frame
    - visit
    - arg
    argTypes:
    - _PyInterpreterFrame*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 18
    functionName: _PyFrame_Traverse
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 2
    functionsReached:
    - _PyGC_VisitFrameStack
    - _Py_VISIT_STACKREF
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/frame.c:23,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/frame.c:24,1
    - Dst: _PyFrame_New_NoTrack
      Src: /src/cpython/Python/frame.c:26,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/frame.c:26,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/frame.c:28,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/frame.c:31,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:40,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->frame_obj == NULL)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/cpython/Python/frame.c
    - condition: (frame->frame_obj == NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Python/frame.c
    - condition: (frame->owner != FRAME_OWNED_BY_FRAME_OBJECT)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/cpython/Python/frame.c
    constantsTouched: []
    func_position:
      end: 45
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 45
    functionName: _PyFrame_MakeAndSetFrameObject
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - assert
    - PyErr_GetRaisedException
    - _PyFrame_GetCode
    - _PyFrame_New_NoTrack
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      _PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/frame.c:50,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:51,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:52,1
    - Dst: _PyFrame_Copy
      Src: /src/cpython/Python/frame.c:54,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/frame.c:57,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/frame.c:60,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/frame.c:63,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/frame.c:65,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:67,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/frame.c:67,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:68,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/frame.c:69,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:71,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/frame.c:72,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/frame.c:74,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:77,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/frame.c:77,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/frame.c:79,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/frame.c:82,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/frame.c:84,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/frame.c:86,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/frame.c:87,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/frame.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - f
    - frame
    argTypes:
    - PyFrameObject*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_FRAME_OBJECT)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Python/frame.c
    - condition: (f->f_back == NULL)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/cpython/Python/frame.c
    - condition: (frame->owner < FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/cpython/Python/frame.c
    - condition: (prev->owner < FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/cpython/Python/frame.c
    - condition: (!_PyFrame_IsIncomplete(new_frame))
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/cpython/Python/frame.c
    - condition: (PyErr_ExceptionMatches(PyExc_MemoryError))
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/cpython/Python/frame.c
    constantsTouched: []
    func_position:
      end: 90
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 90
    functionName: take_ownership
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyFrame_GetFirstComplete
    - _PyObject_GC_IS_TRACKED
    - Py_END_CRITICAL_SECTION
    - _PyFrame_IsIncomplete
    - PyErr_GetRaisedException
    - PyStackRef_DUP
    - _PyFrame_GetBytecode
    - _PyObject_GC_TRACK
    - _PyFrame_Copy
    - _PyFrame_GetCode
    - Py_NewRef
    - PyErr_ExceptionMatches
    - _PyFrame_GetFrameObject
    - PyErr_Clear
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/frame.c:95,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/frame.c:101,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/frame.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->stackpointer != NULL)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/cpython/Python/frame.c
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: _PyFrame_ClearLocals
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 0
    functionsReached:
    - PyStackRef_XCLOSE
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyFrame_ClearLocals(_PyInterpreterFrame *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/frame.c:111,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/frame.c:112,1
    - Dst: assert
      Src: /src/cpython/Python/frame.c:115,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/frame.c:115,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/frame.c:119,1
    - Dst: take_ownership
      Src: /src/cpython/Python/frame.c:120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/frame.c:121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/frame.c:124,1
    - Dst: _PyFrame_ClearLocals
      Src: /src/cpython/Python/frame.c:126,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Python/frame.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts:
    - condition: "(frame->owner != FRAME_OWNED_BY_GENERATOR ||\n        _PyGen_GetGeneratorFromFrame(frame)->gi_frame_state
        == FRAME_CLEARED)"
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/cpython/Python/frame.c
    - condition: (_PyThreadState_GET()->current_frame != frame)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Python/frame.c
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: _PyFrame_ClearExceptCode
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - take_ownership
    - _PyFrame_ClearLocals
    - _PyThreadState_GET
    - _PyObject_IsUniquelyReferenced
    - PyStackRef_CLEAR
    - assert
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: void
    signature: void _PyFrame_ClearExceptCode(_PyInterpreterFrame *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Python/frame.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - struct _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: PyUnstable_InterpreterFrame_GetCode
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 1
    functionsReached:
    - PyStackRef_AsPyObjectNew
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/frame.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - struct _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: PyUnstable_InterpreterFrame_GetLasti
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterFrame_LASTI
    linkageType: ''
    returnType: int
    signature: int PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame
      *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/frame.c:149,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Python/frame.c:150,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/frame.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _Py_NO_SANITIZE_THREAD::PyUnstable_InterpreterFrame_GetLine
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 0
    functionsReached:
    - PyCode_Addr2Line
    - _PyInterpreterFrame_LASTI
    - _PyFrame_GetCode
    linkageType: ''
    returnType: int
    signature: 'int _Py_NO_SANITIZE_THREAD

      PyUnstable_InterpreterFrame_GetLine(_PyInterpreterFrame *frame)'
  - 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: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: RETURN_IF_ERROR
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: RETURN_IF_ERROR_IN_SCOPE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR_IN_SCOPE(C, CALL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: INSTR_SEQUENCE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_SEQUENCE(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: FUTURE_FEATURES
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUTURE_FEATURES(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: SYMTABLE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYMTABLE(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: SYMTABLE_ENTRY
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYMTABLE_ENTRY(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: OPTIMIZATION_LEVEL
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIMIZATION_LEVEL(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: IS_INTERACTIVE_TOP_LEVEL
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_INTERACTIVE_TOP_LEVEL(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: SCOPE_TYPE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCOPE_TYPE(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: QUALNAME
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUALNAME(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: METADATA
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METADATA(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - LNO
    - ','
    - END_LNO
    - ','
    - COL
    - ','
    - END_COL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: LOCATION
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCATION(LNO, END_LNO, COL, END_COL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: LOC
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: NEW_JUMP_TARGET_LABEL
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_JUMP_TARGET_LABEL(C, NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - LBL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: USE_LABEL
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USE_LABEL(C, LBL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/codegen.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - array
    - item_size
    - initial_num_entries
    argTypes:
    - _Py_c_array_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: _Py_CArray_Init
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int _Py_CArray_Init(_Py_c_array_t* array, int item_size, int initial_num_entries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - _Py_c_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: _Py_CArray_Fini
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _Py_CArray_Fini(_Py_c_array_t* array)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/codegen.c:135,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:137,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:151,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:155,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/codegen.c:156,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:158,1
    - Dst: memset
      Src: /src/cpython/Python/codegen.c:163,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - c_array
    - idx
    argTypes:
    - _Py_c_array_t*
    - int
    assertStmts:
    - condition: (newsize > 0)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 169
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 169
    functionName: _Py_CArray_EnsureCapacity
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyMem_Calloc
    - memset
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_CArray_EnsureCapacity(_Py_c_array_t *c_array, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Python/codegen.c:263,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:264,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/codegen.c:264,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/codegen.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - seq
    - opcode
    - oparg
    - loc
    argTypes:
    - instr_sequence*
    - int
    - Py_ssize_t
    - location
    assertStmts:
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: codegen_addop_i
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - IS_ASSEMBLER_OPCODE
    - assert
    - _PyInstructionSequence_Addop
    linkageType: ''
    returnType: int
    signature: int codegen_addop_i(instr_sequence *seq, int opcode, Py_ssize_t oparg,
      location loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - ','
    - O
    - )
    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: ADDOP_I
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_I(C, LOC, OP, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: ADDOP_I_IN_SCOPE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_I_IN_SCOPE(C, LOC, OP, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:277,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/codegen.c:277,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:278,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/codegen.c:278,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/codegen.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seq
    - opcode
    - loc
    argTypes:
    - instr_sequence*
    - int
    - location
    assertStmts:
    - condition: (!OPCODE_HAS_ARG(opcode))
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/cpython/Python/codegen.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: codegen_addop_noarg
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - IS_ASSEMBLER_OPCODE
    - OPCODE_HAS_ARG
    - assert
    - _PyInstructionSequence_Addop
    linkageType: ''
    returnType: int
    signature: int codegen_addop_noarg(instr_sequence *seq, int opcode, location loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: ADDOP
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP(C, LOC, OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: ADDOP_IN_SCOPE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_IN_SCOPE(C, LOC, OP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_AddConst
      Src: /src/cpython/Python/codegen.c:291,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - loc
    - o
    argTypes:
    - compiler*
    - location
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 297
    functionName: codegen_addop_load_const
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_AddConst
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_addop_load_const(compiler *c, location loc, PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: ADDOP_LOAD_CONST
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_LOAD_CONST(C, LOC, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: ADDOP_LOAD_CONST_IN_SCOPE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_LOAD_CONST_IN_SCOPE(C, LOC, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: ADDOP_LOAD_CONST_NEW
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_LOAD_CONST_NEW(C, LOC, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/codegen.c:323,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:324,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - c
    - loc
    - opcode
    - dict
    - o
    argTypes:
    - compiler*
    - location
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 327
    functionName: codegen_addop_o
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_DictAddObj
    - RETURN_IF_ERROR
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int codegen_addop_o(compiler *c, location loc,\n                int
      opcode, PyObject *dict, PyObject *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - ','
    - O
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: ADDOP_N
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_N(C, LOC, OP, O, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - ','
    - O
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: ADDOP_N_IN_SCOPE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_N_IN_SCOPE(C, LOC, OP, O, TYPE)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:356,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/codegen.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:361,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:391,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - c
    - loc
    - opcode
    - dict
    - o
    argTypes:
    - compiler*
    - location
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 393
    functionName: codegen_addop_name
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_DictAddObj
    - _PyCompile_MaybeMangle
    - Py_DECREF
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int codegen_addop_name(compiler *c, location loc,\n                   int
      opcode, PyObject *dict, PyObject *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - ','
    - O
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: ADDOP_NAME
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_NAME(C, LOC, OP, O, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:402,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:402,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:403,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/codegen.c:403,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:404,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/codegen.c:404,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/codegen.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - seq
    - loc
    - opcode
    - target
    argTypes:
    - instr_sequence*
    - location
    - int
    - jump_target_label
    assertStmts:
    - condition: (IS_JUMP_TARGET_LABEL(target))
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/cpython/Python/codegen.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/cpython/Python/codegen.c
    - condition: (HAS_TARGET(opcode))
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 406
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 406
    functionName: codegen_addop_j
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_Addop
    - HAS_TARGET
    - IS_ASSEMBLER_OPCODE
    - IS_JUMP_TARGET_LABEL
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_addop_j(instr_sequence *seq, location loc,\n                int
      opcode, jump_target_label target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: ADDOP_JUMP
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_JUMP(C, LOC, OP, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - CMP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: ADDOP_COMPARE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_COMPARE(C, LOC, CMP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - BINOP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    functionName: ADDOP_BINARY
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_BINARY(C, LOC, BINOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - BINOP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    functionName: ADDOP_INPLACE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_INPLACE(C, LOC, BINOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - await
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: ADD_YIELD_FROM
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_YIELD_FROM(C, LOC, await)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - LOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: POP_EXCEPT_AND_RERAISE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POP_EXCEPT_AND_RERAISE(C, LOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - LOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: ADDOP_YIELD
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_YIELD(C, LOC)
  - 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: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: VISIT
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 284
    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: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: VISIT_IN_SCOPE
    functionSourceFile: /src/cpython/Python/codegen.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
    - ','
    - TYPE
    - ','
    - SEQ
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: VISIT_SEQ
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT_SEQ(C, TYPE, SEQ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - TYPE
    - ','
    - SEQ
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: VISIT_SEQ_IN_SCOPE
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT_SEQ_IN_SCOPE(C, TYPE, SEQ)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:463,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:464,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:465,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: codegen_call_exit_with_nones
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_call_exit_with_nones(compiler *c, location loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:473,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:474,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:475,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:477,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:478,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:481,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:482,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:483,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:484,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:485,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:487,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:488,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:490,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - c
    - loc
    - await
    argTypes:
    - compiler*
    - location
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: codegen_add_yield_from
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - ADDOP_JUMP
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_add_yield_from(compiler *c, location loc, int await)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:505,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:506,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 509
    functionName: codegen_pop_except_and_reraise
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_pop_except_and_reraise(compiler *c, location loc)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:531,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:533,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:534,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:540,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:542,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:546,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:551,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:553,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:554,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:558,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:560,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:570,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:572,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:574,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:576,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:577,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:583,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:585,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:586,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:588,1
    - Dst: codegen_call_exit_with_nones
      Src: /src/cpython/Python/codegen.c:588,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:590,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:591,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:592,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:594,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:603,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:606,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:608,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:609,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:611,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:612,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:612,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:613,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:613,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:619,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:621,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/codegen.c:625,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 88
    argCount: 4
    argNames:
    - c
    - ploc
    - info
    - preserve_tos
    argTypes:
    - compiler*
    - location*
    - fblockinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 626
    functionName: codegen_unwind_fblock
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - _PyCompile_PushFBlock
    - VISIT_SEQ
    - codegen_call_exit_with_nones
    - ADD_YIELD_FROM
    - _PyCompile_PopFBlock
    - codegen_nameop
    - RETURN_IF_ERROR
    - ADDOP_I
    - Py_UNREACHABLE
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_unwind_fblock(compiler *c, location *ploc,\n                      fblockinfo
      *info, int preserve_tos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_TopFBlock
      Src: /src/cpython/Python/codegen.c:633,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:638,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:648,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:649,1
    - Dst: codegen_unwind_fblock
      Src: /src/cpython/Python/codegen.c:649,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:650,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:650,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:651,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - c
    - ploc
    - preserve_tos
    - loop
    argTypes:
    - compiler*
    - location*
    - int
    - fblockinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 654
    functionName: codegen_unwind_fblock_stack
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - codegen_unwind_fblock
    - codegen_unwind_fblock_stack
    - _PyCompile_PushFBlock
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    - _PyCompile_TopFBlock
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: "int codegen_unwind_fblock_stack(compiler *c, location *ploc,\n                            int
      preserve_tos, fblockinfo **loop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:661,1
    - Dst: _PyCompile_EnterScope
      Src: /src/cpython/Python/codegen.c:662,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:663,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:667,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - c
    - name
    - scope_type
    - key
    - lineno
    - private
    - umd
    argTypes:
    - compiler*
    - identifier
    - int
    - void*
    - int
    - PyObject*
    - _PyCompile_CodeUnitMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 672
    functionName: codegen_enter_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - RETURN_IF_ERROR
    - ADDOP_I
    - _PyCompile_EnterScope
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_enter_scope(compiler *c, identifier name, int scope_type,\n
      \                   void *key, int lineno, PyObject *private,\n                    _PyCompile_CodeUnitMetadata
      *umd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:681,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:682,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/codegen.c:686,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:687,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:687,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:688,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:689,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:690,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:691,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:692,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:693,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:694,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:695,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - c
    - loc
    - key
    - name
    argTypes:
    - compiler*
    - location
    - void*
    - PyObject*
    assertStmts:
    - condition: (!SYMTABLE_ENTRY(c)->ste_has_docstring)
      pos:
        line_end: 686
        line_start: 686
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 698
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 698
    functionName: codegen_setup_annotations_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - NEW_JUMP_TARGET_LABEL
    - _Py_DECLARE_STR
    - PyLong_FromLong
    - ADDOP_I
    - codegen_enter_scope
    - SYMTABLE_ENTRY
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - USE_LABEL
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_setup_annotations_scope(compiler *c, location loc,\n                                void
      *key, PyObject *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:703,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:704,1
    - Dst: PyObject_Size
      Src: /src/cpython/Python/codegen.c:715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:717,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/codegen.c:720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:722,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:725,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:725,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:725,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/codegen.c:727,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:730,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/codegen.c:733,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:734,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/codegen.c:736,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:738,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:739,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:740,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 743
    functionName: codegen_leave_annotations_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - ADDOP_IN_SCOPE
    - PyTuple_SET_ITEM
    - _Py_ID
    - Py_NewRef
    - Py_SETREF
    - PyObject_Size
    - codegen_make_closure
    - RETURN_IF_ERROR
    - PyTuple_GetItem
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: int
    signature: int codegen_leave_annotations_scope(compiler *c, location loc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:749,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:751,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/codegen.c:751,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:752,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/codegen.c:752,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:754,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:757,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Python/codegen.c:758,1
    - Dst: _PyCompile_Mangle
      Src: /src/cpython/Python/codegen.c:762,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:766,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:767,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/codegen.c:767,1
    - Dst: PyLong_AS_LONG
      Src: /src/cpython/Python/codegen.c:768,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:769,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:772,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:772,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:774,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:775,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:775,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:778,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:779,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:779,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:782,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:782,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:783,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:783,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:786,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:787,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:787,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:788,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:788,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:790,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:793,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - c
    - loc
    - deferred_anno
    - conditional_annotation_indices
    - scope_type
    argTypes:
    - compiler*
    - location
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyLong_CheckExact(cond_index))
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/cpython/Python/codegen.c
    - condition: (PyList_CheckExact(conditional_annotation_indices))
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/cpython/Python/codegen.c
    - condition: (annotations_len == PyList_Size(conditional_annotation_indices))
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 796
      start: 745
    functionDepth: 5
    functionLinenumber: 745
    functionLinenumberEnd: 796
    functionName: codegen_deferred_annotations_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - _PyCompile_Mangle
    - ADDOP_NAME
    - PyLong_CheckExact
    - ADDOP_I
    - USE_LABEL
    - ADDOP
    - NEW_JUMP_TARGET_LABEL
    - PyList_GET_SIZE
    - PyList_CheckExact
    - LOC
    - _Py_ID
    - PyLong_AS_LONG
    - PyLong_AsVoidPtr
    - ADDOP_LOAD_CONST_NEW
    - ADDOP_JUMP
    - PyList_GET_ITEM
    - VISIT
    - PyList_Size
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_deferred_annotations_body(compiler *c, location loc,\n
      \   PyObject *deferred_anno, PyObject *conditional_annotation_indices, int scope_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_DeferredAnnotations
      Src: /src/cpython/Python/codegen.c:803,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:805,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:809,1
    - Dst: _PyCompile_StartAnnotationSetup
      Src: /src/cpython/Python/codegen.c:812,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:822,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:823,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:825,1
    - Dst: codegen_deferred_annotations_body
      Src: /src/cpython/Python/codegen.c:829,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:836,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:838,1
    - Dst: codegen_leave_annotations_scope
      Src: /src/cpython/Python/codegen.c:838,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:839,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:839,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:841,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:841,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:845,1
    - Dst: _PyCompile_EndAnnotationSetup
      Src: /src/cpython/Python/codegen.c:845,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:850,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:851,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts:
    - condition: (ste->ste_annotation_block != NULL)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/cpython/Python/codegen.c
    - condition: (conditional_annotation_indices == NULL)
      pos:
        line_end: 804
        line_start: 804
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 853
      start: 798
    functionDepth: 6
    functionLinenumber: 798
    functionLinenumberEnd: 853
    functionName: codegen_process_deferred_annotations
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - codegen_leave_annotations_scope
    - _PyCompile_DeferredAnnotations
    - SCOPE_TYPE
    - codegen_setup_annotations_scope
    - _Py_ID
    - codegen_nameop
    - _PyCompile_StartAnnotationSetup
    - SYMTABLE_ENTRY
    - RETURN_IF_ERROR
    - _PyCompile_EndAnnotationSetup
    - codegen_deferred_annotations_body
    - assert
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: int
    signature: int codegen_process_deferred_annotations(compiler *c, location loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 861
    functionName: _PyCodegen_Expression
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT
    linkageType: ''
    returnType: int
    signature: int _PyCodegen_Expression(compiler *c, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:869,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:870,1
    - Dst: ADDOP_N
      Src: /src/cpython/Python/codegen.c:871,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:871,1
    - Dst: codegen_body
      Src: /src/cpython/Python/codegen.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - loc
    - stmts
    - is_interactive
    argTypes:
    - compiler*
    - location
    - asdl_stmt_seq*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 874
    functionName: _PyCodegen_Module
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_N
    - _Py_ID
    - codegen_body
    - SYMTABLE_ENTRY
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int _PyCodegen_Module(compiler *c, location loc, asdl_stmt_seq *stmts,
      bool is_interactive)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:882,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:883,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:884,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:886,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/codegen.c:892,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:893,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:896,1
    - Dst: OPTIMIZATION_LEVEL
      Src: /src/cpython/Python/codegen.c:896,1
    - Dst: _PyCompile_CleanDoc
      Src: /src/cpython/Python/codegen.c:897,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:901,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:902,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:903,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:905,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:906,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:906,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:906,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:909,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:910,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:910,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:915,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:916,1
    - Dst: codegen_process_deferred_annotations
      Src: /src/cpython/Python/codegen.c:916,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - c
    - loc
    - stmts
    - is_interactive
    argTypes:
    - compiler*
    - location
    - asdl_stmt_seq*
    - bool
    assertStmts:
    - condition: (OPTIMIZATION_LEVEL(c) < 2)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/cpython/Python/codegen.c
    - condition: (docstring)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/cpython/Python/codegen.c
    - condition: (st->kind == Expr_kind)
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 919
      start: 876
    functionDepth: 7
    functionLinenumber: 876
    functionLinenumberEnd: 919
    functionName: codegen_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - ADDOP_LOAD_CONST
    - Py_DECREF
    - codegen_process_deferred_annotations
    - asdl_seq_GET
    - LOC
    - _Py_ID
    - VISIT
    - asdl_seq_LEN
    - codegen_nameop
    - OPTIMIZATION_LEVEL
    - _PyAST_GetDocString
    - _PyCompile_CleanDoc
    - SYMTABLE_ENTRY
    - RETURN_IF_ERROR
    - FUTURE_FEATURES
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_body(compiler *c, location loc, asdl_stmt_seq *stmts, bool
      is_interactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:924,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:925,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:926,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - mod
    argTypes:
    - compiler*
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 929
    functionName: _PyCodegen_EnterAnonymousScope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - codegen_enter_scope
    - _Py_DECLARE_STR
    - _Py_STR
    linkageType: ''
    returnType: int
    signature: int _PyCodegen_EnterAnonymousScope(compiler* c, mod_ty mod)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_Code_GetFirstFree
      Src: /src/cpython/Python/codegen.c:936,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/codegen.c:941,1
    - Dst: _PyCompile_LookupArg
      Src: /src/cpython/Python/codegen.c:942,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:943,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:944,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:947,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:949,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:951,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:954,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:957,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:960,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:963,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - c
    - loc
    - co
    - flags
    argTypes:
    - compiler*
    - location
    - PyCodeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 969
    functionName: codegen_make_closure
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - ADDOP_LOAD_CONST
    - _PyCompile_LookupArg
    - PyTuple_GET_ITEM
    - RETURN_IF_ERROR
    - ADDOP_I
    - PyUnstable_Code_GetFirstFree
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_make_closure(compiler *c, location loc,\n                     PyCodeObject
      *co, Py_ssize_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:978,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:979,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - decos
    argTypes:
    - compiler*
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 982
    functionName: codegen_decorators
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int codegen_decorators(compiler *c, asdl_expr_seq* decos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:991,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:992,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:992,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - decos
    argTypes:
    - compiler*
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 996
    functionName: codegen_apply_decorators
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - ADDOP_I
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int codegen_apply_decorators(compiler *c, asdl_expr_seq* decos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1007,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1008,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1009,1
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:1012,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1016,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1017,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - c
    - loc
    - kwonlyargs
    - kw_defaults
    argTypes:
    - compiler*
    - location
    - asdl_arg_seq*
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1027
    functionName: codegen_kwonlydefaults
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - _PyCompile_MaybeMangle
    - VISIT
    - asdl_seq_LEN
    - ADDOP_I
    - ADDOP_LOAD_CONST_NEW
    linkageType: ''
    returnType: int
    signature: "int codegen_kwonlydefaults(compiler *c, location loc,\n                       asdl_arg_seq
      *kwonlyargs, asdl_expr_seq *kw_defaults)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1032,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1033,1
    - Dst: _PyAST_ExprAsUnicode
      Src: /src/cpython/Python/codegen.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - annotation
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1029
    functionDepth: 16
    functionLinenumber: 1029
    functionLinenumberEnd: 1035
    functionName: codegen_visit_annexpr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - ADDOP_LOAD_CONST_NEW
    - _PyAST_ExprAsUnicode
    linkageType: ''
    returnType: int
    signature: int codegen_visit_annexpr(compiler *c, expr_ty annotation)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:1044,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1049,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:1051,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1052,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1060,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1061,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1064,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - c
    - id
    - annotation
    - annotations_len
    - loc
    argTypes:
    - compiler*
    - identifier
    - expr_ty
    - Py_ssize_t*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1069
    functionName: codegen_argannotation
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - Py_DECREF
    - _PyCompile_MaybeMangle
    - VISIT
    - ADDOP_I
    - FUTURE_FEATURES
    linkageType: ''
    returnType: int
    signature: "int codegen_argannotation(compiler *c, identifier id,\n    expr_ty
      annotation, Py_ssize_t *annotations_len, location loc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1076,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1077,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1078,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - c
    - args
    - annotations_len
    - loc
    argTypes:
    - compiler*
    - asdl_arg_seq*
    - Py_ssize_t*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1087
    functionName: codegen_argannotations
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_argannotation
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: "int codegen_argannotations(compiler *c, asdl_arg_seq* args,\n                       Py_ssize_t
      *annotations_len, location loc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1094,1
    - Dst: codegen_argannotations
      Src: /src/cpython/Python/codegen.c:1095,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1097,1
    - Dst: codegen_argannotations
      Src: /src/cpython/Python/codegen.c:1098,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1101,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1102,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1106,1
    - Dst: codegen_argannotations
      Src: /src/cpython/Python/codegen.c:1107,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1110,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1111,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1115,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1116,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - c
    - loc
    - args
    - returns
    - annotations_len
    argTypes:
    - compiler*
    - location
    - arguments_ty
    - expr_ty
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1089
    functionDepth: 3
    functionLinenumber: 1089
    functionLinenumberEnd: 1119
    functionName: codegen_annotations_in_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_argannotations
    - _Py_ID
    - RETURN_IF_ERROR
    - codegen_argannotation
    linkageType: ''
    returnType: int
    signature: "int codegen_annotations_in_scope(compiler *c, location loc,\n                             arguments_ty
      args, expr_ty returns,\n                             Py_ssize_t *annotations_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1133,1
    - Dst: _PySymtable_LookupOptional
      Src: /src/cpython/Python/codegen.c:1133,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:1133,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1134,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:1137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1138,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1139,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1140,1
    - Dst: codegen_annotations_in_scope
      Src: /src/cpython/Python/codegen.c:1141,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1143,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1144,1
    - Dst: codegen_leave_annotations_scope
      Src: /src/cpython/Python/codegen.c:1144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - c
    - loc
    - args
    - returns
    argTypes:
    - compiler*
    - location
    - arguments_ty
    - expr_ty
    assertStmts:
    - condition: (ste != NULL)
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1152
      start: 1121
    functionDepth: 4
    functionLinenumber: 1121
    functionLinenumberEnd: 1152
    functionName: codegen_function_annotations
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - codegen_leave_annotations_scope
    - codegen_setup_annotations_scope
    - _PySymtable_LookupOptional
    - RETURN_IF_ERROR
    - ADDOP_I
    - RETURN_IF_ERROR_IN_SCOPE
    - SYMTABLE
    - codegen_annotations_in_scope
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_function_annotations(compiler *c, location loc,\n                             arguments_ty
      args, expr_ty returns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:1158,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1159,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - args
    - loc
    argTypes:
    - compiler*
    - arguments_ty
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1161
    functionName: codegen_defaults
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - asdl_seq_LEN
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int codegen_defaults(compiler *c, arguments_ty args,\n                        location
      loc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1168,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1169,1
    - Dst: codegen_defaults
      Src: /src/cpython/Python/codegen.c:1169,1
    - Dst: codegen_kwonlydefaults
      Src: /src/cpython/Python/codegen.c:1173,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - c
    - loc
    - args
    argTypes:
    - compiler*
    - location
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1182
    functionName: codegen_default_arguments
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_defaults
    - RETURN_IF_ERROR
    - codegen_kwonlydefaults
    - asdl_seq_LEN
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t codegen_default_arguments(compiler *c, location loc,\n
      \                         arguments_ty args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1187,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1190,1
    - Dst: _PyInstructionSequence_InsertInstruction
      Src: /src/cpython/Python/codegen.c:1191,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:1192,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1195,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1196,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1197,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1198,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1201
    functionName: codegen_wrap_in_stopiteration_handler
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - NEW_JUMP_TARGET_LABEL
    - INSTR_SEQUENCE
    - _PyInstructionSequence_InsertInstruction
    - RETURN_IF_ERROR
    - ADDOP_I
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_wrap_in_stopiteration_handler(compiler *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/codegen.c:1208,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Python/codegen.c:1208,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1209,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1209,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1210,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:1210,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1210,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1212,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1213,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1213,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1216,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1218,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1218,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1219,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1220,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1224,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1225,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - c
    - e
    - name
    - key
    - allow_starred
    argTypes:
    - compiler*
    - expr_ty
    - identifier
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1203
    functionDepth: 3
    functionLinenumber: 1203
    functionLinenumberEnd: 1228
    functionName: codegen_type_param_bound_or_default
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - ADDOP_IN_SCOPE
    - LOC
    - codegen_setup_annotations_scope
    - VISIT
    - _PyLong_GetOne
    - codegen_make_closure
    - RETURN_IF_ERROR
    - ADDOP_I
    - ADDOP_LOAD_CONST_NEW
    - PyTuple_Pack
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: int
    signature: "int codegen_type_param_bound_or_default(compiler *c, expr_ty e,\n
      \                                   identifier name, void *key,\n                                    bool
      allow_starred)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1236,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1240,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1241,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1244,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1247,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1248,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1254,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1257,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1262,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1263,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1265,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:1268,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1272,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1273,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1273,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1276,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1277,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1280,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1281,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1283,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:1287,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1291,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1292,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1292,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1295,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1296,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1299,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1300,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1302,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:1306,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1310,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1311,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1311,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1315,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1315,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - c
    - type_params
    argTypes:
    - compiler*
    - asdl_type_param_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1230
    functionDepth: 4
    functionLinenumber: 1230
    functionLinenumberEnd: 1317
    functionName: codegen_type_params
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - asdl_seq_GET
    - LOC
    - codegen_type_param_bound_or_default
    - asdl_seq_LEN
    - codegen_nameop
    - RETURN_IF_ERROR
    - ADDOP_I
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int codegen_type_params(compiler *c, asdl_type_param_seq *type_params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1329,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1337,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1347,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1348,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1349,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1351,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1352,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1354,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/codegen.c:1357,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1358,1
    - Dst: _PyCompile_CleanDoc
      Src: /src/cpython/Python/codegen.c:1360,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1362,1
    - Dst: _PyCompile_AddConst
      Src: /src/cpython/Python/codegen.c:1365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1366,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1367,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1370,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1371,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1375,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:1376,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1380,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1381,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1381,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1384,1
    - Dst: codegen_wrap_in_stopiteration_handler
      Src: /src/cpython/Python/codegen.c:1384,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:1385,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1387,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1388,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:1390,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1393,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 5
    argNames:
    - c
    - s
    - is_async
    - funcflags
    - firstlineno
    argTypes:
    - compiler*
    - stmt_ty
    - int
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (s->kind == AsyncFunctionDef_kind)
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/cpython/Python/codegen.c
    - condition: (s->kind == FunctionDef_kind)
      pos:
        line_end: 1336
        line_start: 1336
        source_file: /src/cpython/Python/codegen.c
    - condition: (docstring)
      pos:
        line_end: 1357
        line_start: 1357
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1396
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1396
    functionName: codegen_function_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyCompile_PushFBlock
    - _PyCompile_PopFBlock
    - codegen_enter_scope
    - RETURN_IF_ERROR
    - USE_LABEL
    - _PyCompile_ExitScope
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - _PyAST_GetDocString
    - _PyCompile_AddConst
    - SYMTABLE_ENTRY
    - codegen_wrap_in_stopiteration_handler
    - Py_DECREF
    - _PyCompile_OptimizeAndAssemble
    - LOC
    - VISIT_IN_SCOPE
    - codegen_make_closure
    - _PyCompile_CleanDoc
    - asdl_seq_LEN
    - RETURN_IF_ERROR_IN_SCOPE
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_function_body(compiler *c, stmt_ty s, int is_async, Py_ssize_t
      funcflags,\n                      int firstlineno)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1410,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1418,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1427,1
    - Dst: codegen_decorators
      Src: /src/cpython/Python/codegen.c:1427,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1430,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1431,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1434,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1436,1
    - Dst: codegen_default_arguments
      Src: /src/cpython/Python/codegen.c:1438,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1439,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1451,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/codegen.c:1453,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1463,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1464,1
    - Dst: codegen_type_params
      Src: /src/cpython/Python/codegen.c:1464,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1466,1
    - Dst: codegen_function_annotations
      Src: /src/cpython/Python/codegen.c:1470,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1473,1
    - Dst: codegen_function_body
      Src: /src/cpython/Python/codegen.c:1479,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1481,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1484,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1488,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1489,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1491,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1492,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1497,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1498,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1500,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1501,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1504,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1505,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1509,1
    - Dst: codegen_apply_decorators
      Src: /src/cpython/Python/codegen.c:1509,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1510,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 74
    argCount: 3
    argNames:
    - c
    - s
    - is_async
    argTypes:
    - compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == FunctionDef_kind)
      pos:
        line_end: 1417
        line_start: 1417
        source_file: /src/cpython/Python/codegen.c
    - condition: (s->kind == AsyncFunctionDef_kind)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1511
      start: 1398
    functionDepth: 10
    functionLinenumber: 1398
    functionLinenumberEnd: 1511
    functionName: codegen_function
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_function_body
    - codegen_enter_scope
    - RETURN_IF_ERROR
    - ADDOP_I
    - _PyCompile_ExitScope
    - ADDOP
    - ADDOP_I_IN_SCOPE
    - codegen_default_arguments
    - asdl_seq_GET
    - PyUnicode_FromFormat
    - codegen_nameop
    - codegen_type_params
    - Py_DECREF
    - _PyCompile_OptimizeAndAssemble
    - LOC
    - codegen_make_closure
    - codegen_decorators
    - codegen_apply_decorators
    - asdl_seq_LEN
    - RETURN_IF_ERROR_IN_SCOPE
    - assert
    - codegen_function_annotations
    linkageType: ''
    returnType: int
    signature: int codegen_function(compiler *c, stmt_ty s, int is_async)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:1516,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1517,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1517,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1517,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1518,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1518,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1520
    functionName: codegen_set_type_params_in_class
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _Py_DECLARE_STR
    - _Py_ID
    - _Py_STR
    - codegen_nameop
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int codegen_set_type_params_in_class(compiler *c, location loc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1538,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1539,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:1542,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1544,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1544,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1544,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1546,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1546,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1546,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1547,1
    - Dst: QUALNAME
      Src: /src/cpython/Python/codegen.c:1547,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1548,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1548,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1548,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1549,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/codegen.c:1549,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:1549,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1550,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1550,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1550,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1552,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1553,1
    - Dst: codegen_set_type_params_in_class
      Src: /src/cpython/Python/codegen.c:1553,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1555,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1556,1
    - Dst: ADDOP_N_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1561,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1561,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1563,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1564,1
    - Dst: ADDOP_N_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1565,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1565,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1568,1
    - Dst: codegen_body
      Src: /src/cpython/Python/codegen.c:1568,1
    - Dst: _PyCompile_StaticAttributesAsTuple
      Src: /src/cpython/Python/codegen.c:1569,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1571,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1574,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:1575,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1576,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1577,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1577,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1580,1
    - Dst: _PyCompile_LookupCellvar
      Src: /src/cpython/Python/codegen.c:1582,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1582,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1583,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1584,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1585,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1586,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1586,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1589,1
    - Dst: _PyCompile_LookupCellvar
      Src: /src/cpython/Python/codegen.c:1591,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1591,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1592,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1593,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1594,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1595,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1596,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1596,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1600,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1602,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1604,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1607,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1616,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1617,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1618,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1622,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1623,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1626,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 3
    argNames:
    - c
    - s
    - firstlineno
    argTypes:
    - compiler*
    - stmt_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1523
    functionDepth: 8
    functionLinenumber: 1523
    functionLinenumberEnd: 1629
    functionName: codegen_class_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - ADDOP_N_IN_SCOPE
    - codegen_body
    - QUALNAME
    - codegen_enter_scope
    - RETURN_IF_ERROR
    - ADDOP_I
    - PyLong_FromLong
    - Py_CLEAR
    - ADDOP
    - _PyCompile_ExitScope
    - ADDOP_IN_SCOPE
    - _PyCompile_LookupCellvar
    - codegen_nameop
    - SYMTABLE_ENTRY
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - LOCATION
    - _PyCompile_StaticAttributesAsTuple
    - _Py_ID
    - LOC
    - codegen_make_closure
    - ADDOP_LOAD_CONST_NEW
    - codegen_set_type_params_in_class
    - asdl_seq_LEN
    - METADATA
    - RETURN_IF_ERROR_IN_SCOPE
    linkageType: ''
    returnType: int
    signature: int codegen_class_body(compiler *c, stmt_ty s, int firstlineno)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1636,1
    - Dst: codegen_decorators
      Src: /src/cpython/Python/codegen.c:1636,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1639,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1640,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1642,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1645,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/codegen.c:1647,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1654,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1655,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1656,1
    - Dst: codegen_type_params
      Src: /src/cpython/Python/codegen.c:1656,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:1657,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1658,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1658,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1658,1
    - Dst: codegen_class_body
      Src: /src/cpython/Python/codegen.c:1661,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1663,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1666,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:1672,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:1673,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1674,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1674,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1674,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1675,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1676,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1676,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1676,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1678,1
    - Dst: codegen_call_helper_impl
      Src: /src/cpython/Python/codegen.c:1678,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1680,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1683,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1685,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1690,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1691,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1692,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1693,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1695,1
    - Dst: codegen_call_helper
      Src: /src/cpython/Python/codegen.c:1695,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1701,1
    - Dst: codegen_apply_decorators
      Src: /src/cpython/Python/codegen.c:1701,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1704,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1704,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1631
    functionDepth: 10
    functionLinenumber: 1631
    functionLinenumberEnd: 1706
    functionName: codegen_class
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_enter_scope
    - RETURN_IF_ERROR
    - ADDOP_I
    - _PyCompile_ExitScope
    - ADDOP
    - ADDOP_I_IN_SCOPE
    - asdl_seq_GET
    - PyUnicode_FromFormat
    - codegen_nameop
    - codegen_type_params
    - Py_DECREF
    - _PyCompile_OptimizeAndAssemble
    - codegen_class_body
    - LOC
    - codegen_call_helper
    - codegen_make_closure
    - codegen_decorators
    - _Py_DECLARE_STR
    - codegen_apply_decorators
    - _Py_STR
    - asdl_seq_LEN
    - RETURN_IF_ERROR_IN_SCOPE
    - codegen_call_helper_impl
    linkageType: ''
    returnType: int
    signature: int codegen_class(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1711,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/codegen.c:1713,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Python/codegen.c:1713,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1714,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1715,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:1716,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1716,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1718,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1718,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1719,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1720,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1721,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1722,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1727,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1728,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1730,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts:
    - condition: (!SYMTABLE_ENTRY(c)->ste_has_docstring)
      pos:
        line_end: 1717
        line_start: 1717
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1733
      start: 1708
    functionDepth: 3
    functionLinenumber: 1708
    functionLinenumberEnd: 1733
    functionName: codegen_typealias_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - ADDOP_IN_SCOPE
    - LOC
    - codegen_setup_annotations_scope
    - VISIT_IN_SCOPE
    - _PyLong_GetOne
    - ADDOP_I
    - codegen_make_closure
    - RETURN_IF_ERROR
    - SYMTABLE_ENTRY
    - ADDOP_LOAD_CONST_NEW
    - PyTuple_Pack
    - assert
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: int
    signature: int codegen_typealias_body(compiler *c, stmt_ty s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1738,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1740,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/codegen.c:1743,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1750,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1751,1
    - Dst: ADDOP_LOAD_CONST_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1752,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1753,1
    - Dst: codegen_type_params
      Src: /src/cpython/Python/codegen.c:1753,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1756,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1757,1
    - Dst: codegen_typealias_body
      Src: /src/cpython/Python/codegen.c:1760,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1762,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1765,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1769,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1770,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1775,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1776,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1777,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1778,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1780,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1735
    functionDepth: 10
    functionLinenumber: 1735
    functionLinenumberEnd: 1782
    functionName: codegen_typealias
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - Py_DECREF
    - codegen_typealias_body
    - _PyCompile_OptimizeAndAssemble
    - LOC
    - PyUnicode_FromFormat
    - ADDOP
    - asdl_seq_LEN
    - codegen_nameop
    - ADDOP_LOAD_CONST_IN_SCOPE
    - codegen_enter_scope
    - codegen_make_closure
    - RETURN_IF_ERROR
    - ADDOP_I
    - codegen_type_params
    - RETURN_IF_ERROR_IN_SCOPE
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: int
    signature: int codegen_typealias(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1787,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - elts
    argTypes:
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1784
    functionDepth: 1
    functionLinenumber: 1784
    functionLinenumberEnd: 1794
    functionName: is_const_tuple
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: bool
    signature: bool is_const_tuple(asdl_expr_seq *elts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_const_tuple
      Src: /src/cpython/Python/codegen.c:1802,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1812
    functionName: check_is_arg
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - is_const_tuple
    linkageType: ''
    returnType: bool
    signature: bool check_is_arg(expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_is_arg
      Src: /src/cpython/Python/codegen.c:1823,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1825,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1827,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1828,1
    - Dst: check_is_arg
      Src: /src/cpython/Python/codegen.c:1829,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:1836,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1837,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:1837,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1819
    functionDepth: 3
    functionLinenumber: 1819
    functionLinenumberEnd: 1845
    functionName: codegen_check_compare
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - check_is_arg
    - asdl_seq_GET
    - LOC
    - _PyCompile_Warn
    - asdl_seq_LEN
    - infer_type
    linkageType: ''
    returnType: int
    signature: int codegen_check_compare(compiler *c, expr_ty e)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1871,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1874,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1877,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1880,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/codegen.c:1883,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1889,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - c
    - loc
    - op
    argTypes:
    - compiler*
    - location
    - cmpop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1847
    functionDepth: 1
    functionLinenumber: 1847
    functionLinenumberEnd: 1891
    functionName: codegen_addcompare
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_addcompare(compiler *c, location loc, cmpop_ty op)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1900,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1906,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1907,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1911,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1915,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1916,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1916,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1918,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1919,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1919,1
    - Dst: SAME_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1920,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1921,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1926,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1927,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1928,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1929,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1930,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1931,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1932,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1934,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1935,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1936,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1938,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1942,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1944,1
    - Dst: codegen_check_compare
      Src: /src/cpython/Python/codegen.c:1944,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1945,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1946,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1948,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1949,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1950,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1950,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1951,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1951,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:1952,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1952,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1952,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1953,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1953,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1954,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1954,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1956,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1956,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:1957,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1957,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1957,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1958,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1958,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1959,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1959,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1960,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1961,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1963,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1964,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1964,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1966,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1969,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1981,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1982,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1982,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1983,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1983,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 5
    argNames:
    - c
    - loc
    - e
    - next
    - cond
    argTypes:
    - compiler*
    - location
    - expr_ty
    - jump_target_label
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 1906
        line_start: 1906
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1985
      start: 1893
    functionDepth: 4
    functionLinenumber: 1893
    functionLinenumberEnd: 1985
    functionName: codegen_jump_if
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - LOC
    - codegen_check_compare
    - codegen_jump_if
    - asdl_seq_LEN
    - VISIT
    - RETURN_IF_ERROR
    - ADDOP_I
    - ADDOP_COMPARE
    - ADDOP_JUMP
    - SAME_JUMP_TARGET_LABEL
    - USE_LABEL
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_jump_if(compiler *c, location loc,\n                expr_ty
      e, jump_target_label next, int cond)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1990,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1991,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1992,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1994,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1995,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1995,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1997,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1998,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2000,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2001,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == IfExp_kind)
      pos:
        line_end: 1989
        line_start: 1989
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2005
      start: 1987
    functionDepth: 5
    functionLinenumber: 1987
    functionLinenumberEnd: 2005
    functionName: codegen_ifexp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - VISIT
    - codegen_jump_if
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - USE_LABEL
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_ifexp(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:2013,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2015,1
    - Dst: codegen_default_arguments
      Src: /src/cpython/Python/codegen.c:2016,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2017,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2020,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2021,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2022,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:2024,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2025,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:2026,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:2026,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:2029,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:2029,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:2031,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:2032,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:2033,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2036,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:2037,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:2038,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:2040,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:2045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:2046,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == Lambda_kind)
      pos:
        line_end: 2012
        line_start: 2012
        source_file: /src/cpython/Python/codegen.c
    - condition: (!SYMTABLE_ENTRY(c)->ste_has_docstring)
      pos:
        line_end: 2028
        line_start: 2028
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2049
      start: 2007
    functionDepth: 3
    functionLinenumber: 2007
    functionLinenumberEnd: 2049
    functionName: codegen_lambda
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_default_arguments
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - _Py_DECLARE_STR
    - ADDOP_IN_SCOPE
    - LOC
    - _Py_STR
    - VISIT_IN_SCOPE
    - asdl_seq_LEN
    - codegen_enter_scope
    - codegen_make_closure
    - RETURN_IF_ERROR
    - SYMTABLE_ENTRY
    - assert
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: int
    signature: int codegen_lambda(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:2055,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2056,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2057,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2058,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2064,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:2065,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2065,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2067,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2068,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2069,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2071,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2072,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == If_kind)
      pos:
        line_end: 2054
        line_start: 2054
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2077
      start: 2051
    functionDepth: 5
    functionLinenumber: 2051
    functionLinenumberEnd: 2077
    functionName: codegen_if
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - VISIT_SEQ
    - codegen_jump_if
    - asdl_seq_LEN
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - USE_LABEL
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_if(compiler *c, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2082,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2083,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2084,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2085,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2086,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2088,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2088,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2090,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2092,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2093,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2095,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2096,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2101,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2101,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2103,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2104,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2105,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2107,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2109,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2114,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2115,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2117,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2119,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2079
    functionDepth: 1
    functionLinenumber: 2079
    functionLinenumberEnd: 2123
    functionName: codegen_for
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - LOC
    - VISIT_SEQ
    - VISIT
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_for(compiler *c, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2128,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2130,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2131,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2132,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2133,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2135,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2136,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2136,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2138,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2139,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2139,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2142,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2143,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2144,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2145,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:2146,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2147,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2148,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2151,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2152,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2154,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2156,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2159,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2163,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2164,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2167,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2171
    functionName: codegen_async_for
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - LOC
    - ADD_YIELD_FROM
    - VISIT
    - VISIT_SEQ
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_async_for(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2176,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2177,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2178,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2180,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2182,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2182,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2182,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2183,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:2183,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2183,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2185,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2186,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2188,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2190,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2192,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2173
    functionDepth: 5
    functionLinenumber: 2173
    functionLinenumberEnd: 2197
    functionName: codegen_while
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - LOC
    - VISIT_SEQ
    - codegen_jump_if
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - USE_LABEL
    linkageType: ''
    returnType: int
    signature: int codegen_while(compiler *c, stmt_ty s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2202,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:2206,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/codegen.c:2207,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2208,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2211,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2215,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2219,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2220,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2224,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2225,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2228,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:2228,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2230,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2233,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2235,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2199
    functionDepth: 4
    functionLinenumber: 2199
    functionLinenumberEnd: 2238
    functionName: codegen_return
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - codegen_unwind_fblock_stack
    - LOC
    - VISIT
    - _PyST_IsFunctionLike
    - SYMTABLE_ENTRY
    - RETURN_IF_ERROR
    - _PyCompile_Error
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_return(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2246,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2247,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:2247,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2249,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2251,1
    - Dst: codegen_unwind_fblock
      Src: /src/cpython/Python/codegen.c:2251,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2240
    functionDepth: 4
    functionLinenumber: 2240
    functionLinenumberEnd: 2254
    functionName: codegen_break
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_unwind_fblock
    - codegen_unwind_fblock_stack
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - _PyCompile_Error
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_break(compiler *c, location loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2262,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2263,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:2263,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2265,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2256
    functionDepth: 4
    functionLinenumber: 2256
    functionLinenumberEnd: 2269
    functionName: codegen_continue
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_unwind_fblock_stack
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - _PyCompile_Error
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_continue(compiler *c, location loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2304,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2306,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2307,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2308,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2309,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2312,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2314,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2315,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2316,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2319,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2320,1
    - Dst: codegen_try_except
      Src: /src/cpython/Python/codegen.c:2320,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2323,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2325,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2326,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2327,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2329,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2332,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2335,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2336,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2337,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2338,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2339,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2340,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2343,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2345,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2346,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2301
    functionDepth: 1
    functionLinenumber: 2301
    functionLinenumberEnd: 2350
    functionName: codegen_try_finally
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - LOC
    - ADDOP
    - VISIT_SEQ
    - asdl_seq_LEN
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    - ADDOP_I
    - POP_EXCEPT_AND_RERAISE
    - ADDOP_JUMP
    - USE_LABEL
    - codegen_try_except
    linkageType: ''
    returnType: int
    signature: int codegen_try_finally(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2355,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2357,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2358,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2359,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2360,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2362,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2364,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2365,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2366,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2369,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2370,1
    - Dst: codegen_try_star_except
      Src: /src/cpython/Python/codegen.c:2370,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2373,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2375,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2376,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2377,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2379,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2382,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2385,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2386,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2387,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2388,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2390,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2392,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2394,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2396,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2397,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2352
    functionDepth: 1
    functionLinenumber: 2352
    functionLinenumberEnd: 2401
    functionName: codegen_try_star_finally
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - LOC
    - VISIT_SEQ
    - asdl_seq_LEN
    - _PyCompile_PopFBlock
    - codegen_try_star_except
    - RETURN_IF_ERROR
    - ADDOP_I
    - POP_EXCEPT_AND_RERAISE
    - ADDOP_JUMP
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_try_star_finally(compiler *c, stmt_ty s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2435,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2438,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2439,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2440,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2441,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2443,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2445,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2446,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2447,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2448,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2449,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2450,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2451,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2452,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2454,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2455,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2457,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2459,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2460,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2463,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2464,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2468,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2470,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2472,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2474,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2477,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2478,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2479,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2482,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2483,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2485,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2486,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2500,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2502,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2503,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2504,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2508,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2509,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2511,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2512,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2513,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2514,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2515,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2516,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2517,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2518,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2519,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2522,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2525,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2526,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2527,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2528,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2529,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2531,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2534,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2536,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2538,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2539,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2540,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2543,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2544,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2545,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2546,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2547,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2550,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2553,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2554,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2556,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2557,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 71
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2432
    functionDepth: 1
    functionLinenumber: 2432
    functionLinenumberEnd: 2561
    functionName: codegen_try_except
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - ADDOP_LOAD_CONST
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - asdl_seq_GET
    - LOC
    - VISIT_SEQ
    - VISIT
    - asdl_seq_LEN
    - _PyCompile_PopFBlock
    - codegen_nameop
    - RETURN_IF_ERROR
    - ADDOP_I
    - POP_EXCEPT_AND_RERAISE
    - ADDOP_JUMP
    - USE_LABEL
    - _PyCompile_Error
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_try_except(compiler *c, stmt_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2618,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2620,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2621,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2622,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2623,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2624,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2625,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2627,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2629,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2630,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2631,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2632,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2633,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2634,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2635,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2636,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2638,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2640,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2641,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2644,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2645,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2649,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2651,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2652,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2654,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2655,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2666,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2667,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2670,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2671,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2672,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2673,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2676,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2677,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2680,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2681,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2684,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2698,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2700,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2701,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2702,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2706,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2707,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2709,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2711,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2712,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2713,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2714,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2715,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2717,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2720,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2724,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2725,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2726,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2727,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2728,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2732,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2733,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2734,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2736,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2737,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2738,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2740,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2741,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2743,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2747,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2748,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2752,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2753,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2755,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2756,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2757,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2758,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2761,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2762,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2763,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2764,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2766,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2767,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2768,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2769,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2770,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2772,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2773,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2775,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2776,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2778,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 93
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2615
    functionDepth: 1
    functionLinenumber: 2615
    functionLinenumberEnd: 2780
    functionName: codegen_try_star_except
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - ADDOP_LOAD_CONST
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - asdl_seq_GET
    - LOC
    - VISIT_SEQ
    - VISIT
    - asdl_seq_LEN
    - _PyCompile_PopFBlock
    - codegen_nameop
    - RETURN_IF_ERROR
    - ADDOP_I
    - POP_EXCEPT_AND_RERAISE
    - ADDOP_JUMP
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_try_star_except(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2784,1
    - Dst: codegen_try_finally
      Src: /src/cpython/Python/codegen.c:2785,1
    - Dst: codegen_try_except
      Src: /src/cpython/Python/codegen.c:2787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2782
    functionDepth: 2
    functionLinenumber: 2782
    functionLinenumberEnd: 2788
    functionName: codegen_try
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_try_finally
    - codegen_try_except
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int codegen_try(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2793,1
    - Dst: codegen_try_star_finally
      Src: /src/cpython/Python/codegen.c:2794,1
    - Dst: codegen_try_star_except
      Src: /src/cpython/Python/codegen.c:2797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2790
    functionDepth: 2
    functionLinenumber: 2790
    functionLinenumberEnd: 2799
    functionName: codegen_try_star
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_try_star_finally
    - codegen_try_star_except
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int codegen_try_star(compiler *c, stmt_ty s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/codegen.c:2811,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/codegen.c:2812,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/codegen.c:2821,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/codegen.c:2825,1
    - Dst: ADDOP_N
      Src: /src/cpython/Python/codegen.c:2829,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2833,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2834,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2836,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2836,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2837,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2840,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - c
    - loc
    - name
    - asname
    argTypes:
    - compiler*
    - location
    - identifier
    - identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2801
    functionDepth: 8
    functionLinenumber: 2801
    functionLinenumberEnd: 2841
    functionName: codegen_import_as
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_N
    - PyUnicode_FindChar
    - codegen_nameop
    - RETURN_IF_ERROR
    - ADDOP_I
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_import_as(compiler *c, location loc,\n                  identifier
      name, identifier asname)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2846,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2854,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/codegen.c:2856,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2858,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2861,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2862,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:2863,1
    - Dst: codegen_import_as
      Src: /src/cpython/Python/codegen.c:2866,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2867,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/codegen.c:2871,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/codegen.c:2872,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/codegen.c:2874,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:2881,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2843
    functionDepth: 9
    functionLinenumber: 2843
    functionLinenumberEnd: 2887
    functionName: codegen_import
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - _PyLong_GetZero
    - Py_DECREF
    - asdl_seq_GET
    - LOC
    - asdl_seq_LEN
    - PyUnicode_FindChar
    - ADDOP_NAME
    - codegen_import_as
    - codegen_nameop
    - RETURN_IF_ERROR
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int codegen_import(compiler *c, stmt_ty s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2892,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:2894,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2894,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/codegen.c:2894,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/codegen.c:2896,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2903,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:2904,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:2904,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:2907,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2907,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:2910,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2910,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:2913,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:2914,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2914,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:2914,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2917,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codegen.c:2920,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:2921,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2922,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2922,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2923,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:2927,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2927,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2933,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2933,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2933,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2936,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2936,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts:
    - condition: (n == 1)
      pos:
        line_end: 2920
        line_start: 2920
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2938
      start: 2889
    functionDepth: 3
    functionLinenumber: 2889
    functionLinenumberEnd: 2938
    functionName: codegen_from_import
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - _Py_DECLARE_STR
    - asdl_seq_GET
    - LOC
    - PyTuple_SET_ITEM
    - _Py_STR
    - ADDOP_I
    - asdl_seq_LEN
    - Py_NewRef
    - codegen_nameop
    - ADDOP_NAME
    - PyUnicode_READ_CHAR
    - PyLong_FromLong
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST_NEW
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_from_import(compiler *c, stmt_ty s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2945,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/codegen.c:2947,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Python/codegen.c:2948,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2950,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:2951,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2951,1
    - Dst: OPTIMIZATION_LEVEL
      Src: /src/cpython/Python/codegen.c:2954,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2957,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2958,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:2958,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2958,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2959,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2959,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2961,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2962,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2962,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2964,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2964,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2940
    functionDepth: 5
    functionLinenumber: 2940
    functionLinenumberEnd: 2968
    functionName: codegen_assert
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - PyTuple_Check
    - LOC
    - ADDOP_I
    - codegen_jump_if
    - _PyCompile_Warn
    - asdl_seq_LEN
    - VISIT
    - OPTIMIZATION_LEVEL
    - RETURN_IF_ERROR
    - PyTuple_Size
    - USE_LABEL
    linkageType: ''
    returnType: int
    signature: int codegen_assert(compiler *c, stmt_ty s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_INTERACTIVE_TOP_LEVEL
      Src: /src/cpython/Python/codegen.c:2973,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2974,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2975,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2976,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2982,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2986,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - c
    - loc
    - value
    argTypes:
    - compiler*
    - location
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 2989
    functionName: codegen_stmt_expr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT
    - IS_INTERACTIVE_TOP_LEVEL
    - ADDOP
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_stmt_expr(compiler *c, location loc, expr_ty value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC
    - ','
    - C
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2991
    functionDepth: 0
    functionLinenumber: 2991
    functionLinenumberEnd: 2998
    functionName: CODEGEN_COND_BLOCK
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEGEN_COND_BLOCK(FUNC, C, S)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: codegen_function
      Src: /src/cpython/Python/codegen.c:3005,1
    - Dst: codegen_class
      Src: /src/cpython/Python/codegen.c:3007,1
    - Dst: codegen_typealias
      Src: /src/cpython/Python/codegen.c:3009,1
    - Dst: codegen_return
      Src: /src/cpython/Python/codegen.c:3011,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:3013,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3017,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3018,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3021,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3021,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3023,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3024,1
    - Dst: codegen_augassign
      Src: /src/cpython/Python/codegen.c:3029,1
    - Dst: codegen_annassign
      Src: /src/cpython/Python/codegen.c:3031,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3033,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3036,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3039,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3042,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3048,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3051,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3055,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3055,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3059,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3062,1
    - Dst: codegen_assert
      Src: /src/cpython/Python/codegen.c:3065,1
    - Dst: codegen_import
      Src: /src/cpython/Python/codegen.c:3067,1
    - Dst: codegen_from_import
      Src: /src/cpython/Python/codegen.c:3069,1
    - Dst: codegen_stmt_expr
      Src: /src/cpython/Python/codegen.c:3075,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3075,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3079,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3079,1
    - Dst: codegen_break
      Src: /src/cpython/Python/codegen.c:3084,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3084,1
    - Dst: codegen_continue
      Src: /src/cpython/Python/codegen.c:3088,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3088,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3091,1
    - Dst: codegen_function
      Src: /src/cpython/Python/codegen.c:3094,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3096,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3099,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 92
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 2999
    functionDepth: 11
    functionLinenumber: 2999
    functionLinenumberEnd: 3104
    functionName: codegen_visit_stmt
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_stmt_expr
    - codegen_import
    - ADDOP_I
    - codegen_class
    - ADDOP
    - codegen_return
    - asdl_seq_GET
    - codegen_annassign
    - LOC
    - codegen_augassign
    - codegen_assert
    - VISIT_SEQ
    - codegen_function
    - VISIT
    - asdl_seq_LEN
    - codegen_typealias
    - codegen_from_import
    - codegen_break
    - CODEGEN_COND_BLOCK
    - codegen_continue
    linkageType: ''
    returnType: int
    signature: int codegen_visit_stmt(compiler *c, stmt_ty s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:3115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - unaryop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3106
    functionDepth: 1
    functionLinenumber: 3106
    functionLinenumberEnd: 3119
    functionName: unaryop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int unaryop(unaryop_ty op)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:3167,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - c
    - loc
    - binop
    - inplace
    argTypes:
    - compiler*
    - location
    - operator_ty
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3173
      start: 3121
    functionDepth: 1
    functionLinenumber: 3121
    functionLinenumberEnd: 3173
    functionName: addop_binary
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int addop_binary(compiler *c, location loc, operator_ty binop,\n             bool
      inplace)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3178,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3180,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3182,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3176
    functionDepth: 1
    functionLinenumber: 3176
    functionLinenumberEnd: 3185
    functionName: codegen_addop_yield
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - SYMTABLE_ENTRY
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_addop_yield(compiler *c, location loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_N
      Src: /src/cpython/Python/codegen.c:3190,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:3190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3192
      start: 3187
    functionDepth: 1
    functionLinenumber: 3187
    functionLinenumberEnd: 3192
    functionName: codegen_load_classdict_freevar
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_N
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int codegen_load_classdict_freevar(compiler *c, location loc)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3198,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3198,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3199,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3200,1
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:3202,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/codegen.c:3207,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3207,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3208,1
    - Dst: _PyCompile_ResolveNameop
      Src: /src/cpython/Python/codegen.c:3211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3212,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3217,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codegen.c:3217,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3224,1
    - Dst: _PyCompile_IsInInlinedComp
      Src: /src/cpython/Python/codegen.c:3224,1
    - Dst: codegen_addop_noarg
      Src: /src/cpython/Python/codegen.c:3227,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:3227,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3231,1
    - Dst: codegen_load_classdict_freevar
      Src: /src/cpython/Python/codegen.c:3234,1
    - Dst: ADDOP_N
      Src: /src/cpython/Python/codegen.c:3252,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3257,1
    - Dst: codegen_load_classdict_freevar
      Src: /src/cpython/Python/codegen.c:3260,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3274,1
    - Dst: _PyCompile_IsInInlinedComp
      Src: /src/cpython/Python/codegen.c:3275,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3286,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3294,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 100
    argCount: 4
    argNames:
    - c
    - loc
    - name
    - ctx
    argTypes:
    - compiler*
    - location
    - identifier
    - expr_context_ty
    assertStmts:
    - condition: (scope || PyUnicode_READ_CHAR(name, 0) == '_')
      pos:
        line_end: 3216
        line_start: 3216
        source_file: /src/cpython/Python/codegen.c
    - condition: (op)
      pos:
        line_end: 3284
        line_start: 3284
        source_file: /src/cpython/Python/codegen.c
    - condition: "(!_PyUnicode_EqualToASCIIString(name, \"None\") &&\n           !_PyUnicode_EqualToASCIIString(name,
        \"True\") &&\n           !_PyUnicode_EqualToASCIIString(name, \"False\"))"
      pos:
        line_end: 3199
        line_start: 3197
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3296
      start: 3194
    functionDepth: 2
    functionLinenumber: 3194
    functionLinenumberEnd: 3296
    functionName: codegen_nameop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 14
    functionsReached:
    - ADDOP_N
    - Py_DECREF
    - INSTR_SEQUENCE
    - codegen_addop_noarg
    - _PyST_GetScope
    - _PyCompile_MaybeMangle
    - ADDOP_I
    - _PyCompile_ResolveNameop
    - _PyCompile_IsInInlinedComp
    - codegen_load_classdict_freevar
    - SYMTABLE_ENTRY
    - RETURN_IF_ERROR
    - _PyUnicode_EqualToASCIIString
    - PyUnicode_READ_CHAR
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_nameop(compiler *c, location loc,\n               identifier
      name, expr_context_ty ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3305,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3306,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3311,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3313,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3314,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3316,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3316,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3317,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3318,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3320,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3320,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == BoolOp_kind)
      pos:
        line_end: 3305
        line_start: 3305
        source_file: /src/cpython/Python/codegen.c
    - condition: (n >= 0)
      pos:
        line_end: 3313
        line_start: 3313
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3324
      start: 3298
    functionDepth: 1
    functionLinenumber: 3298
    functionLinenumberEnd: 3324
    functionName: codegen_boolop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - LOC
    - VISIT
    - asdl_seq_LEN
    - ADDOP_JUMP
    - USE_LABEL
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_boolop(compiler *c, expr_ty e)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3331,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3335,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3343,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3344,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3347,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3347,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3351,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3353,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3359,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3363,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3366,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3369,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3370,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3373,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3375,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3379,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3381,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3381,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3382,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3385,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 9
    argNames:
    - c
    - loc
    - elts
    - injected_arg
    - pushed
    - build
    - add
    - extend
    - tuple
    argTypes:
    - compiler*
    - location
    - asdl_expr_seq*
    - PyObject*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (sequence_built)
      pos:
        line_end: 3378
        line_start: 3378
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3388
      start: 3326
    functionDepth: 3
    functionLinenumber: 3326
    functionLinenumberEnd: 3388
    functionName: starunpack_helper_impl
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - VISIT
    - asdl_seq_LEN
    - codegen_nameop
    - RETURN_IF_ERROR
    - ADDOP_I
    - assert
    linkageType: ''
    returnType: int
    signature: "int starunpack_helper_impl(compiler *c, location loc,\n                       asdl_expr_seq
      *elts, PyObject *injected_arg, int pushed,\n                       int build,
      int add, int extend, int tuple)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starunpack_helper_impl
      Src: /src/cpython/Python/codegen.c:3395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - c
    - loc
    - elts
    - pushed
    - build
    - add
    - extend
    - tuple
    argTypes:
    - compiler*
    - location
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3397
      start: 3390
    functionDepth: 4
    functionLinenumber: 3390
    functionLinenumberEnd: 3397
    functionName: starunpack_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - starunpack_helper_impl
    linkageType: ''
    returnType: int
    signature: "int starunpack_helper(compiler *c, location loc,\n                  asdl_expr_seq
      *elts, int pushed,\n                  int build, int add, int extend, int tuple)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3402,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3405,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:3409,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3413,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:3417,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3422,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - c
    - loc
    - elts
    argTypes:
    - compiler*
    - location
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3399
    functionDepth: 1
    functionLinenumber: 3399
    functionLinenumberEnd: 3425
    functionName: unpack_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_Error
    - ADDOP_I
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int unpack_helper(compiler *c, location loc, asdl_expr_seq *elts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3430,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3431,1
    - Dst: unpack_helper
      Src: /src/cpython/Python/codegen.c:3431,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3433,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - loc
    - elts
    argTypes:
    - compiler*
    - location
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3427
    functionDepth: 2
    functionLinenumber: 3427
    functionLinenumberEnd: 3437
    functionName: assignment_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - unpack_helper
    - asdl_seq_GET
    - VISIT
    - asdl_seq_LEN
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int assignment_helper(compiler *c, location loc, asdl_expr_seq *elts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3442,1
    - Dst: assignment_helper
      Src: /src/cpython/Python/codegen.c:3445,1
    - Dst: starunpack_helper
      Src: /src/cpython/Python/codegen.c:3448,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:3452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3455
      start: 3439
    functionDepth: 5
    functionLinenumber: 3439
    functionLinenumberEnd: 3455
    functionName: codegen_list
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - VISIT_SEQ
    - assignment_helper
    - starunpack_helper
    linkageType: ''
    returnType: int
    signature: int codegen_list(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3460,1
    - Dst: assignment_helper
      Src: /src/cpython/Python/codegen.c:3463,1
    - Dst: starunpack_helper
      Src: /src/cpython/Python/codegen.c:3466,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:3470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3457
    functionDepth: 5
    functionLinenumber: 3457
    functionLinenumberEnd: 3473
    functionName: codegen_tuple
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - VISIT_SEQ
    - assignment_helper
    - starunpack_helper
    linkageType: ''
    returnType: int
    signature: int codegen_tuple(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3478,1
    - Dst: starunpack_helper
      Src: /src/cpython/Python/codegen.c:3479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3475
    functionDepth: 5
    functionLinenumber: 3475
    functionLinenumberEnd: 3481
    functionName: codegen_set
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - starunpack_helper
    linkageType: ''
    returnType: int
    signature: int codegen_set(compiler *c, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3488,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3490,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3493,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3493,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3494,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3494,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3496,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - c
    - e
    - begin
    - end
    argTypes:
    - compiler*
    - expr_ty
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3503
      start: 3483
    functionDepth: 1
    functionLinenumber: 3483
    functionLinenumberEnd: 3503
    functionName: codegen_subdict
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - asdl_seq_GET
    - VISIT
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_subdict(compiler *c, expr_ty e, Py_ssize_t begin, Py_ssize_t
      end)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3508,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3512,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3516,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3519,1
    - Dst: codegen_subdict
      Src: /src/cpython/Python/codegen.c:3519,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3521,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3527,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3530,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3530,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3531,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3535,1
    - Dst: codegen_subdict
      Src: /src/cpython/Python/codegen.c:3535,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3537,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3548,1
    - Dst: codegen_subdict
      Src: /src/cpython/Python/codegen.c:3548,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3550,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3555,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3505
    functionDepth: 2
    functionLinenumber: 3505
    functionLinenumberEnd: 3558
    functionName: codegen_dict
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - LOC
    - codegen_subdict
    - VISIT
    - asdl_seq_LEN
    - RETURN_IF_ERROR
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_dict(compiler *c, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3563,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3566,1
    - Dst: codegen_check_compare
      Src: /src/cpython/Python/codegen.c:3566,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3567,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3568,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3568,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3569,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3571,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3571,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3572,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3572,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3575,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3577,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3578,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3579,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3580,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3581,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3581,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3582,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3583,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3584,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3585,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3587,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3587,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3588,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3588,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3589,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3590,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3592,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3593,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3594,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (asdl_seq_LEN(e->v.Compare.ops) > 0)
      pos:
        line_end: 3567
        line_start: 3567
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3599
      start: 3560
    functionDepth: 4
    functionLinenumber: 3560
    functionLinenumberEnd: 3599
    functionName: codegen_compare
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - LOC
    - VISIT
    - codegen_check_compare
    - asdl_seq_LEN
    - ADDOP_I
    - RETURN_IF_ERROR
    - ADDOP_COMPARE
    - ADDOP_JUMP
    - USE_LABEL
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_compare(compiler *c, expr_ty e)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/codegen.c:3626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3630
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3630
    functionName: infer_type
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      infer_type(expr_ty e)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3649,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:3650,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3657
      start: 3632
    functionDepth: 1
    functionLinenumber: 3632
    functionLinenumberEnd: 3657
    functionName: check_caller
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - infer_type
    - _PyCompile_Warn
    linkageType: ''
    returnType: int
    signature: int check_caller(compiler *c, expr_ty e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/codegen.c:3668,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Python/codegen.c:3668,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Python/codegen.c:3668,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Python/codegen.c:3669,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3678,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:3679,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3659
    functionDepth: 1
    functionLinenumber: 3659
    functionLinenumberEnd: 3686
    functionName: check_subscripter
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - LOC
    - PyLong_Check
    - PyAnySet_Check
    - _PyCompile_Warn
    - PyComplex_Check
    - infer_type
    linkageType: ''
    returnType: int
    signature: int check_subscripter(compiler *c, expr_ty e)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3693,1
    - Dst: PyType_FastSubclass
      Src: /src/cpython/Python/codegen.c:3695,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/codegen.c:3703,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/codegen.c:3703,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/codegen.c:3703,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3714,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:3715,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3718,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - c
    - e
    - s
    argTypes:
    - compiler*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3688
    functionDepth: 1
    functionLinenumber: 3688
    functionLinenumberEnd: 3724
    functionName: check_index
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - LOC
    - _PyCompile_Warn
    - PyBytes_Check
    - infer_type
    - PyUnicode_Check
    - PyType_FastSubclass
    linkageType: ''
    returnType: int
    signature: int check_index(compiler *c, expr_ty e, expr_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/codegen.c:3739,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:3739,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3742
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3742
    functionName: is_import_originated
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyST_GetSymbol
    - SYMTABLE
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int is_import_originated(compiler *c, expr_ty e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3750,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3751,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3752,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3755,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/codegen.c:3759,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3759,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3760,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/codegen.c:3764,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:3764,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3765,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3772,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:3788,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:3789,1
    - Dst: _PyCompile_GetRefType
      Src: /src/cpython/Python/codegen.c:3793,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:3793,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - c
    - attr
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3797
      start: 3744
    functionDepth: 2
    functionLinenumber: 3744
    functionLinenumberEnd: 3797
    functionName: can_optimize_super_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyST_GetScope
    - asdl_seq_GET
    - _Py_ID
    - asdl_seq_LEN
    - _PyCompile_GetRefType
    - RETURN_IF_ERROR
    - SYMTABLE_ENTRY
    - _PyUnicode_EqualToASCIIString
    - METADATA
    - SYMTABLE
    linkageType: ''
    returnType: int
    signature: int can_optimize_super_call(compiler *c, expr_ty attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3801,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3805,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3805,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3805,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3807,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3808,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3808,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3809,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3809,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:3814,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3815,1
    - Dst: _PyCompile_GetRefType
      Src: /src/cpython/Python/codegen.c:3815,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3816,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3816,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/codegen.c:3821,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:3821,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3824,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (_PyCompile_GetRefType(c, name) == FREE)
      pos:
        line_end: 3814
        line_start: 3814
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3827
      start: 3799
    functionDepth: 4
    functionLinenumber: 3799
    functionLinenumberEnd: 3827
    functionName: load_args_for_super
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - LOC
    - _Py_ID
    - VISIT
    - asdl_seq_LEN
    - PyDict_Next
    - codegen_nameop
    - _PyCompile_GetRefType
    - RETURN_IF_ERROR
    - METADATA
    - assert
    linkageType: ''
    returnType: int
    signature: int load_args_for_super(compiler *c, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3835,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/codegen.c:3838,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/codegen.c:3849,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/codegen.c:3851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - c
    - loc
    - attr
    argTypes:
    - compiler*
    - location
    - expr_ty
    assertStmts:
    - condition: (attr->kind == Attribute_kind)
      pos:
        line_end: 3834
        line_start: 3834
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3855
      start: 3831
    functionDepth: 1
    functionLinenumber: 3831
    functionLinenumberEnd: 3855
    functionName: update_start_location_to_match_attr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: location
    signature: "location update_start_location_to_match_attr(compiler *c, location
      loc,\n                                    expr_ty attr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3865,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3866,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3867,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3872,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3875,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3880,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3885,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3890,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3894,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3895,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3896,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3897,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3898,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3901,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3903,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3904,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3906,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3907,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3909,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3910,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3911,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3913,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3914,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3917,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3918,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3921,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:3923,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3925,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3927,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3928,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3929,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3931,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:3934,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3938,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3940,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 3
    argNames:
    - c
    - e
    - end
    argTypes:
    - compiler*
    - expr_ty
    - jump_target_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3857
    functionDepth: 2
    functionLinenumber: 3857
    functionLinenumberEnd: 3942
    functionName: maybe_optimize_function_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - LOC
    - VISIT
    - asdl_seq_LEN
    - ADDOP_COMPARE
    - ADDOP_I
    - _PyUnicode_EqualToASCIIString
    - ADDOP_JUMP
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int maybe_optimize_function_call(compiler *c, expr_ty e, jump_target_label
      end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_import_originated
      Src: /src/cpython/Python/codegen.c:3959,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3960,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3966,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3967,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3973,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3980,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3987,1
    - Dst: can_optimize_super_call
      Src: /src/cpython/Python/codegen.c:3989,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3990,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3992,1
    - Dst: load_args_for_super
      Src: /src/cpython/Python/codegen.c:3992,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3993,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:3995,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:3996,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3997,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3999,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:4000,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4001,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4004,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4007,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4008,1
    - Dst: codegen_call_simple_kw_helper
      Src: /src/cpython/Python/codegen.c:4009,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:4010,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4010,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4011,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:4014,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4014,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4015,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 3945
    functionDepth: 5
    functionLinenumber: 3945
    functionLinenumberEnd: 4018
    functionName: maybe_optimize_method_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - LOC
    - load_args_for_super
    - can_optimize_super_call
    - VISIT
    - asdl_seq_LEN
    - VISIT_SEQ
    - is_import_originated
    - ADDOP_NAME
    - RETURN_IF_ERROR
    - ADDOP_I
    - update_start_location_to_match_attr
    - codegen_call_simple_kw_helper
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int maybe_optimize_method_call(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4023,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4025,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4030,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/codegen.c:4031,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:4032,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4032,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - c
    - keywords
    argTypes:
    - compiler*
    - asdl_keyword_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 4020
    functionDepth: 2
    functionLinenumber: 4020
    functionLinenumberEnd: 4037
    functionName: codegen_validate_keywords
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - asdl_seq_GET
    - LOC
    - asdl_seq_LEN
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int codegen_validate_keywords(compiler *c, asdl_keyword_seq *keywords)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4042,1
    - Dst: codegen_validate_keywords
      Src: /src/cpython/Python/codegen.c:4042,1
    - Dst: maybe_optimize_method_call
      Src: /src/cpython/Python/codegen.c:4043,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4050,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4051,1
    - Dst: check_caller
      Src: /src/cpython/Python/codegen.c:4051,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4052,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4053,1
    - Dst: maybe_optimize_function_call
      Src: /src/cpython/Python/codegen.c:4053,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4054,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4055,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4056,1
    - Dst: codegen_call_helper
      Src: /src/cpython/Python/codegen.c:4057,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4039
    functionDepth: 6
    functionLinenumber: 4039
    functionLinenumberEnd: 4062
    functionName: codegen_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - codegen_call_helper
    - VISIT
    - maybe_optimize_function_call
    - codegen_validate_keywords
    - RETURN_IF_ERROR
    - check_caller
    - USE_LABEL
    - maybe_optimize_method_call
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_call(compiler *c, expr_ty e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4067,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4070,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4074,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4077,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4077,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4077,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4083,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4089,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4089,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4089,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4092,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4096,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4098,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4102,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4105
      start: 4064
    functionDepth: 1
    functionLinenumber: 4064
    functionLinenumberEnd: 4105
    functionName: codegen_template_str
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - asdl_seq_GET
    - LOC
    - _Py_STR
    - VISIT
    - asdl_seq_LEN
    - Py_NewRef
    - ADDOP_I
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_template_str(compiler *c, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4110,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4111,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4113,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:4114,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4114,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4114,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4115,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:4115,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4116,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4117,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4118,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4118,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4119,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4121,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4124,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4126,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4129,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:4130,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4130,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4107
    functionDepth: 1
    functionLinenumber: 4107
    functionLinenumberEnd: 4134
    functionName: codegen_joined_str
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _Py_DECLARE_STR
    - asdl_seq_GET
    - LOC
    - _Py_ID
    - _Py_STR
    - VISIT
    - VISIT_SEQ
    - asdl_seq_LEN
    - Py_NewRef
    - ADDOP_NAME
    - ADDOP_I
    - ADDOP_LOAD_CONST_NEW
    linkageType: ''
    returnType: int
    signature: int codegen_joined_str(compiler *c, expr_ty e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4139,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4141,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4142,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4147,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:4157,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4165
      start: 4136
    functionDepth: 1
    functionLinenumber: 4136
    functionLinenumberEnd: 4165
    functionName: codegen_interpolation
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - LOC
    - VISIT
    - ADDOP_I
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int codegen_interpolation(compiler *c, expr_ty e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4175,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4177,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:4184,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4188,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4192,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4193,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4198
      start: 4168
    functionDepth: 1
    functionLinenumber: 4168
    functionLinenumberEnd: 4198
    functionName: codegen_formatted_value
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - VISIT
    - ADDOP_I
    - PyErr_Format
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_formatted_value(compiler *c, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4207,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4210,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4213,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4214,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4215,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4217,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - c
    - loc
    - keywords
    - begin
    - end
    argTypes:
    - compiler*
    - location
    - asdl_keyword_seq*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 4206
        line_start: 4206
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4224
      start: 4200
    functionDepth: 1
    functionLinenumber: 4200
    functionLinenumberEnd: 4224
    functionName: codegen_subkwargs
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - asdl_seq_GET
    - VISIT
    - ADDOP_I
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_subkwargs(compiler *c, location loc,\n                  asdl_keyword_seq
      *keywords,\n                  Py_ssize_t begin, Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/codegen.c:4234,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4239,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:4240,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4240,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:4242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - c
    - loc
    - keywords
    - nkwelts
    argTypes:
    - compiler*
    - location
    - asdl_keyword_seq*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4244
      start: 4229
    functionDepth: 3
    functionLinenumber: 4229
    functionLinenumberEnd: 4244
    functionName: codegen_call_simple_kw_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - PyTuple_New
    - asdl_seq_GET
    - PyTuple_SET_ITEM
    - Py_NewRef
    - ADDOP_LOAD_CONST_NEW
    linkageType: ''
    returnType: int
    signature: "int codegen_call_simple_kw_helper(compiler *c, location loc,\n                              asdl_keyword_seq
      *keywords, Py_ssize_t nkwelts)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4256,1
    - Dst: codegen_validate_keywords
      Src: /src/cpython/Python/codegen.c:4256,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4258,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4259,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4265,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4271,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4279,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4280,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4281,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4284,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:4284,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4288,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4289,1
    - Dst: codegen_call_simple_kw_helper
      Src: /src/cpython/Python/codegen.c:4290,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4291,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4294,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4301,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4302,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4302,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4305,1
    - Dst: starunpack_helper_impl
      Src: /src/cpython/Python/codegen.c:4305,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4315,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4319,1
    - Dst: codegen_subkwargs
      Src: /src/cpython/Python/codegen.c:4319,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4321,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4327,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4330,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4331,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4339,1
    - Dst: codegen_subkwargs
      Src: /src/cpython/Python/codegen.c:4339,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4341,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4345,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4348,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4350,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 6
    argNames:
    - c
    - loc
    - n
    - args
    - injected_arg
    - keywords
    argTypes:
    - compiler*
    - location
    - int
    - asdl_expr_seq*
    - PyObject*
    - asdl_keyword_seq*
    assertStmts:
    - condition: (have_dict)
      pos:
        line_end: 4344
        line_start: 4344
        source_file: /src/cpython/Python/codegen.c
    - condition: (elt->kind != Starred_kind)
      pos:
        line_end: 4279
        line_start: 4279
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4352
      start: 4247
    functionDepth: 4
    functionLinenumber: 4247
    functionLinenumberEnd: 4352
    functionName: codegen_call_helper_impl
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - starunpack_helper_impl
    - VISIT_SEQ
    - VISIT
    - codegen_subkwargs
    - asdl_seq_LEN
    - codegen_validate_keywords
    - codegen_nameop
    - RETURN_IF_ERROR
    - ADDOP_I
    - codegen_call_simple_kw_helper
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_call_helper_impl(compiler *c, location loc,\n                         int
      n, /* Args already pushed */\n                         asdl_expr_seq *args,\n
      \                        PyObject *injected_arg,\n                         asdl_keyword_seq
      *keywords)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codegen_call_helper_impl
      Src: /src/cpython/Python/codegen.c:4360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - c
    - loc
    - n
    - args
    - keywords
    argTypes:
    - compiler*
    - location
    - int
    - asdl_expr_seq*
    - asdl_keyword_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4361
      start: 4354
    functionDepth: 5
    functionLinenumber: 4354
    functionLinenumberEnd: 4361
    functionName: codegen_call_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 2
    functionsReached:
    - codegen_call_helper_impl
    linkageType: ''
    returnType: int
    signature: "int codegen_call_helper(compiler *c, location loc,\n                    int
      n, /* Args already pushed */\n                    asdl_expr_seq *args,\n                    asdl_keyword_seq
      *keywords)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4388,1
    - Dst: codegen_async_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4390,1
    - Dst: codegen_sync_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - c
    - loc
    - generators
    - gen_index
    - depth
    - elt
    - val
    - type
    - iter_on_stack
    argTypes:
    - compiler*
    - location
    - asdl_comprehension_seq*
    - int
    - int
    - expr_ty
    - expr_ty
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4398
      start: 4380
    functionDepth: 1
    functionLinenumber: 4380
    functionLinenumberEnd: 4398
    functionName: codegen_comprehension_generator
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_async_comprehension_generator
    - codegen_sync_comprehension_generator
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: "int codegen_comprehension_generator(compiler *c, location loc,\n                                asdl_comprehension_seq
      *generators, int gen_index,\n                                int depth,\n                                expr_ty
      elt, expr_ty val, int type,\n                                int iter_on_stack)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4410,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4411,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4412,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4414,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4419,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:4419,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4420,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4438,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4439,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4441,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4445,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4446,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4451,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4453,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4453,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4454,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4455,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4455,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4457,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4460,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4463,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:4463,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4466,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4467,1
    - Dst: codegen_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4468,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4473,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4476,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4480,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:4481,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4482,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4485,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4486,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4489,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4490,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4495,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4496,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:4497,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4501,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4508,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4509,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4510,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4512,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4517,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4518,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 9
    argNames:
    - c
    - loc
    - generators
    - gen_index
    - depth
    - elt
    - val
    - type
    - iter_on_stack
    argTypes:
    - compiler*
    - location
    - asdl_comprehension_seq*
    - int
    - int
    - expr_ty
    - expr_ty
    - int
    - int
    assertStmts:
    - condition: (METADATA(c)->u_argcount == 1)
      pos:
        line_end: 4418
        line_start: 4418
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4522
      start: 4400
    functionDepth: 5
    functionLinenumber: 4400
    functionLinenumberEnd: 4522
    functionName: codegen_sync_comprehension_generator
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - LOC
    - LOCATION
    - VISIT
    - codegen_jump_if
    - asdl_seq_LEN
    - codegen_comprehension_generator
    - RETURN_IF_ERROR
    - ADDOP_I
    - METADATA
    - ADDOP_JUMP
    - ADDOP_YIELD
    - IS_JUMP_TARGET_LABEL
    - USE_LABEL
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_sync_comprehension_generator(compiler *c, location loc,\n
      \                                    asdl_comprehension_seq *generators,\n                                     int
      gen_index, int depth,\n                                     expr_ty elt, expr_ty
      val, int type,\n                                     int iter_on_stack)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4531,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4532,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4533,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4534,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4536,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4541,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:4541,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4542,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4546,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4549,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4549,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4551,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4553,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:4554,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4557,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4558,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4559,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4560,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:4561,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4562,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4563,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4565,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4567,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4568,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:4568,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4572,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4573,1
    - Dst: codegen_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4574,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4579,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4581,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4585,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:4586,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4587,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4590,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4591,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4594,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4595,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4600,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4601,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:4602,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4606,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4613,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4614,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:4616,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4618,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4620,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 9
    argNames:
    - c
    - loc
    - generators
    - gen_index
    - depth
    - elt
    - val
    - type
    - iter_on_stack
    argTypes:
    - compiler*
    - location
    - asdl_comprehension_seq*
    - int
    - int
    - expr_ty
    - expr_ty
    - int
    - int
    assertStmts:
    - condition: (METADATA(c)->u_argcount == 1)
      pos:
        line_end: 4540
        line_start: 4540
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4623
      start: 4524
    functionDepth: 5
    functionLinenumber: 4524
    functionLinenumberEnd: 4623
    functionName: codegen_async_comprehension_generator
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - ADDOP_LOAD_CONST
    - _PyCompile_PushFBlock
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    - ADDOP_I
    - USE_LABEL
    - ADDOP
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - LOC
    - LOCATION
    - codegen_jump_if
    - codegen_comprehension_generator
    - ADDOP_JUMP
    - ADDOP_YIELD
    - ADD_YIELD_FROM
    - VISIT
    - asdl_seq_LEN
    - METADATA
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_async_comprehension_generator(compiler *c, location loc,\n
      \                                     asdl_comprehension_seq *generators,\n
      \                                     int gen_index, int depth,\n                                      expr_ty
      elt, expr_ty val, int type,\n                                      int iter_on_stack)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:4630,1
    - Dst: _PyCompile_IsInInlinedComp
      Src: /src/cpython/Python/codegen.c:4631,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:4632,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/codegen.c:4637,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/codegen.c:4638,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4639,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/codegen.c:4639,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4640,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/codegen.c:4641,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/codegen.c:4643,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4644,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/codegen.c:4645,1
    - Dst: PyList_New
      Src: /src/cpython/Python/codegen.c:4652,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4660,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4663,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4665,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/codegen.c:4668,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4678,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:4678,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4683,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4688,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - c
    - loc
    - comp
    - state
    argTypes:
    - compiler*
    - location
    - PySTEntryObject*
    - _PyCompile_InlinedComprehensionState*
    assertStmts:
    - condition: (symbol >= 0 || PyErr_Occurred())
      pos:
        line_end: 4638
        line_start: 4638
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4691
      start: 4625
    functionDepth: 4
    functionLinenumber: 4625
    functionLinenumberEnd: 4691
    functionName: codegen_push_inlined_comprehension_locals
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - NEW_JUMP_TARGET_LABEL
    - PyLong_AsLong
    - PyErr_Occurred
    - PyList_Append
    - PyList_GET_SIZE
    - SYMBOL_TO_SCOPE
    - ADDOP_I
    - PyDict_Next
    - _PyCompile_IsInInlinedComp
    - ADDOP_NAME
    - _PyST_GetSymbol
    - SYMTABLE_ENTRY
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - assert
    linkageType: ''
    returnType: int
    signature: "int codegen_push_inlined_comprehension_locals(compiler *c, location
      loc,\n                                          PySTEntryObject *comp,\n                                          _PyCompile_InlinedComprehensionState
      *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4698,1
    - Dst: _PyCompile_TweakInlinedComprehensionScopes
      Src: /src/cpython/Python/codegen.c:4699,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4700,1
    - Dst: codegen_push_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - c
    - loc
    - comp
    - state
    argTypes:
    - compiler*
    - location
    - PySTEntryObject*
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4703
      start: 4693
    functionDepth: 5
    functionLinenumber: 4693
    functionLinenumberEnd: 4703
    functionName: push_inlined_comprehension_state
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_push_inlined_comprehension_locals
    - _PyCompile_TweakInlinedComprehensionScopes
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: "int push_inlined_comprehension_state(compiler *c, location loc,\n
      \                                PySTEntryObject *comp,\n                                 _PyCompile_InlinedComprehensionState
      *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:4711,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4716,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/codegen.c:4718,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4725
      start: 4705
    functionDepth: 2
    functionLinenumber: 4705
    functionLinenumberEnd: 4725
    functionName: restore_inlined_comprehension_locals
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - PyList_GET_SIZE
    - ADDOP_NAME
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int restore_inlined_comprehension_locals(compiler *c, location loc,\n
      \                                    _PyCompile_InlinedComprehensionState *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4732,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4734,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4735,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4738,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4740,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4741,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4742,1
    - Dst: restore_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4742,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4743,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4745,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4746,1
    - Dst: restore_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4746,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:4747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4750
      start: 4727
    functionDepth: 3
    functionLinenumber: 4727
    functionLinenumberEnd: 4750
    functionName: codegen_pop_inlined_comprehension_locals
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - restore_inlined_comprehension_locals
    - RETURN_IF_ERROR
    - ADDOP_I
    - ADDOP_JUMP
    - Py_CLEAR
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_pop_inlined_comprehension_locals(compiler *c, location
      loc,\n                                         _PyCompile_InlinedComprehensionState
      *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4756,1
    - Dst: codegen_pop_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4756,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4757,1
    - Dst: _PyCompile_RevertInlinedComprehensionScopes
      Src: /src/cpython/Python/codegen.c:4757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4759
      start: 4752
    functionDepth: 4
    functionLinenumber: 4752
    functionLinenumberEnd: 4759
    functionName: pop_inlined_comprehension_state
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_RevertInlinedComprehensionScopes
    - codegen_pop_inlined_comprehension_locals
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: "int pop_inlined_comprehension_state(compiler *c, location loc,\n                                _PyCompile_InlinedComprehensionState
      *state)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _PySymtable_Lookup
      Src: /src/cpython/Python/codegen.c:4769,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:4769,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4776,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4778,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4780,1
    - Dst: push_inlined_comprehension_state
      Src: /src/cpython/Python/codegen.c:4781,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:4790,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:4795,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:4810,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4815,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4817,1
    - Dst: codegen_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4821,1
    - Dst: pop_inlined_comprehension_state
      Src: /src/cpython/Python/codegen.c:4827,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4834,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4834,1
    - Dst: codegen_wrap_in_stopiteration_handler
      Src: /src/cpython/Python/codegen.c:4837,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:4842,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:4843,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4848,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:4849,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:4852,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4854,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4855,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4858,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4859,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:4860,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:4866,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:4869,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:4870,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:4871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:4872,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:4873,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 93
    argCount: 7
    argNames:
    - c
    - e
    - type
    - name
    - generators
    - elt
    - val
    argTypes:
    - compiler*
    - expr_ty
    - int
    - identifier
    - asdl_comprehension_seq*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4875
      start: 4761
    functionDepth: 6
    functionLinenumber: 4761
    functionLinenumberEnd: 4875
    functionName: codegen_comprehension
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - push_inlined_comprehension_state
    - ADDOP_LOAD_CONST
    - Py_XDECREF
    - codegen_enter_scope
    - _PySymtable_Lookup
    - ADDOP_I
    - pop_inlined_comprehension_state
    - Py_CLEAR
    - SYMTABLE
    - _PyCompile_ExitScope
    - ADDOP
    - asdl_seq_GET
    - codegen_wrap_in_stopiteration_handler
    - PyErr_Format
    - _PyCompile_OptimizeAndAssemble
    - LOC
    - codegen_comprehension_generator
    - codegen_make_closure
    - ADD_YIELD_FROM
    - VISIT
    linkageType: ''
    returnType: int
    signature: "int codegen_comprehension(compiler *c, expr_ty e, int type,\n                      identifier
      name, asdl_comprehension_seq *generators, expr_ty elt,\n                      expr_ty
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4880,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4881,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:4882,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == GeneratorExp_kind)
      pos:
        line_end: 4879
        line_start: 4879
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4885
      start: 4877
    functionDepth: 7
    functionLinenumber: 4877
    functionLinenumberEnd: 4885
    functionName: codegen_genexp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _Py_DECLARE_STR
    - assert
    - codegen_comprehension
    linkageType: ''
    returnType: int
    signature: int codegen_genexp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4890,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4891,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:4892,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == ListComp_kind)
      pos:
        line_end: 4889
        line_start: 4889
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4895
      start: 4887
    functionDepth: 7
    functionLinenumber: 4887
    functionLinenumberEnd: 4895
    functionName: codegen_listcomp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _Py_DECLARE_STR
    - assert
    - codegen_comprehension
    linkageType: ''
    returnType: int
    signature: int codegen_listcomp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4900,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4901,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:4902,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == SetComp_kind)
      pos:
        line_end: 4899
        line_start: 4899
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4905
      start: 4897
    functionDepth: 7
    functionLinenumber: 4897
    functionLinenumberEnd: 4905
    functionName: codegen_setcomp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _Py_DECLARE_STR
    - assert
    - codegen_comprehension
    linkageType: ''
    returnType: int
    signature: int codegen_setcomp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4911,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4912,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:4913,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == DictComp_kind)
      pos:
        line_end: 4910
        line_start: 4910
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4916
      start: 4908
    functionDepth: 7
    functionLinenumber: 4908
    functionLinenumberEnd: 4916
    functionName: codegen_dictcomp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _Py_DECLARE_STR
    - assert
    - codegen_comprehension
    linkageType: ''
    returnType: int
    signature: int codegen_dictcomp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - k
    argTypes:
    - compiler*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4924
      start: 4919
    functionDepth: 0
    functionLinenumber: 4919
    functionLinenumberEnd: 4924
    functionName: codegen_visit_keyword
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT
    linkageType: ''
    returnType: int
    signature: int codegen_visit_keyword(compiler *c, keyword_ty k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4929,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4930,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4931,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4932,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4934,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4935,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4936,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4937,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4938,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4939,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4940,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4941,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4942,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4944,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:4945,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - c
    - cleanup
    argTypes:
    - compiler*
    - jump_target_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4949
      start: 4927
    functionDepth: 1
    functionLinenumber: 4927
    functionLinenumberEnd: 4949
    functionName: codegen_with_except_finish
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - POP_EXCEPT_AND_RERAISE
    - ADDOP_JUMP
    - USE_LABEL
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_with_except_finish(compiler *c, jump_target_label cleanup)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4978,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4979,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4981,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4983,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4984,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4985,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4986,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4989,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4990,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4991,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4992,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4993,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4994,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4995,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4996,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4997,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4998,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:4999,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5001,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5004,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5005,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:5005,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5008,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5012,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5016,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:5018,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5021,1
    - Dst: codegen_async_with_inner
      Src: /src/cpython/Python/codegen.c:5021,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:5024,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5026,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5032,1
    - Dst: codegen_call_exit_with_nones
      Src: /src/cpython/Python/codegen.c:5032,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5033,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5034,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5035,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5037,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5039,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5042,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5044,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5045,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5046,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5047,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5048,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5049,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5050,1
    - Dst: codegen_with_except_finish
      Src: /src/cpython/Python/codegen.c:5050,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 3
    argNames:
    - c
    - s
    - pos
    argTypes:
    - compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == AsyncWith_kind)
      pos:
        line_end: 4980
        line_start: 4980
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5054
      start: 4975
    functionDepth: 2
    functionLinenumber: 4975
    functionLinenumberEnd: 5054
    functionName: codegen_async_with_inner
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - ADDOP_LOAD_CONST
    - _PyCompile_PushFBlock
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    - ADDOP_I
    - USE_LABEL
    - ADDOP
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - LOC
    - codegen_call_exit_with_nones
    - ADDOP_JUMP
    - codegen_with_except_finish
    - codegen_async_with_inner
    - ADD_YIELD_FROM
    - VISIT
    - VISIT_SEQ
    - asdl_seq_LEN
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_async_with_inner(compiler *c, stmt_ty s, int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codegen_async_with_inner
      Src: /src/cpython/Python/codegen.c:5059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5060
      start: 5056
    functionDepth: 3
    functionLinenumber: 5056
    functionLinenumberEnd: 5060
    functionName: codegen_async_with
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_async_with_inner
    linkageType: ''
    returnType: int
    signature: int codegen_async_with(compiler *c, stmt_ty s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5087,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5089,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5091,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5092,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5093,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5094,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5097,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5099,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5100,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5101,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5102,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5103,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5104,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5105,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5106,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5109,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5110,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:5110,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5113,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5117,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5121,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:5123,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5126,1
    - Dst: codegen_with_inner
      Src: /src/cpython/Python/codegen.c:5126,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5129,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:5130,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5137,1
    - Dst: codegen_call_exit_with_nones
      Src: /src/cpython/Python/codegen.c:5137,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5138,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5139,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5142,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5144,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5145,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5146,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5147,1
    - Dst: codegen_with_except_finish
      Src: /src/cpython/Python/codegen.c:5147,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 3
    argNames:
    - c
    - s
    - pos
    argTypes:
    - compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == With_kind)
      pos:
        line_end: 5088
        line_start: 5088
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5151
      start: 5084
    functionDepth: 2
    functionLinenumber: 5084
    functionLinenumberEnd: 5151
    functionName: codegen_with_inner
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - _PyCompile_PushFBlock
    - asdl_seq_GET
    - LOC
    - VISIT_SEQ
    - VISIT
    - codegen_call_exit_with_nones
    - asdl_seq_LEN
    - _PyCompile_PopFBlock
    - codegen_with_except_finish
    - RETURN_IF_ERROR
    - ADDOP_I
    - ADDOP_JUMP
    - codegen_with_inner
    - USE_LABEL
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_with_inner(compiler *c, stmt_ty s, int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codegen_with_inner
      Src: /src/cpython/Python/codegen.c:5156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5157
      start: 5153
    functionDepth: 3
    functionLinenumber: 5153
    functionLinenumberEnd: 5157
    functionName: codegen_with
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_with_inner
    linkageType: ''
    returnType: int
    signature: int codegen_with(compiler *c, stmt_ty s)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/codegen.c:5162,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5165,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5168,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5169,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5170,1
    - Dst: codegen_boolop
      Src: /src/cpython/Python/codegen.c:5173,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5175,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5176,1
    - Dst: ADDOP_BINARY
      Src: /src/cpython/Python/codegen.c:5177,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5180,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5182,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5185,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5186,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5189,1
    - Dst: unaryop
      Src: /src/cpython/Python/codegen.c:5189,1
    - Dst: codegen_lambda
      Src: /src/cpython/Python/codegen.c:5193,1
    - Dst: codegen_ifexp
      Src: /src/cpython/Python/codegen.c:5195,1
    - Dst: codegen_dict
      Src: /src/cpython/Python/codegen.c:5197,1
    - Dst: codegen_set
      Src: /src/cpython/Python/codegen.c:5199,1
    - Dst: codegen_genexp
      Src: /src/cpython/Python/codegen.c:5201,1
    - Dst: codegen_listcomp
      Src: /src/cpython/Python/codegen.c:5203,1
    - Dst: codegen_setcomp
      Src: /src/cpython/Python/codegen.c:5205,1
    - Dst: codegen_dictcomp
      Src: /src/cpython/Python/codegen.c:5207,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/codegen.c:5209,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:5209,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5210,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5213,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5216,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:5218,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/codegen.c:5221,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:5221,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5222,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5224,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5225,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5227,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5228,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5229,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5230,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5233,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5234,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5235,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5236,1
    - Dst: codegen_compare
      Src: /src/cpython/Python/codegen.c:5239,1
    - Dst: codegen_call
      Src: /src/cpython/Python/codegen.c:5241,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5243,1
    - Dst: codegen_joined_str
      Src: /src/cpython/Python/codegen.c:5246,1
    - Dst: codegen_template_str
      Src: /src/cpython/Python/codegen.c:5248,1
    - Dst: codegen_formatted_value
      Src: /src/cpython/Python/codegen.c:5250,1
    - Dst: codegen_interpolation
      Src: /src/cpython/Python/codegen.c:5252,1
    - Dst: can_optimize_super_call
      Src: /src/cpython/Python/codegen.c:5256,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5257,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5259,1
    - Dst: load_args_for_super
      Src: /src/cpython/Python/codegen.c:5259,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5260,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5262,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5263,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5264,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5268,1
    - Dst: _PyCompile_MaybeAddStaticAttributeToClass
      Src: /src/cpython/Python/codegen.c:5268,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5269,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5270,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5271,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5274,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5277,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5280,1
    - Dst: codegen_subscript
      Src: /src/cpython/Python/codegen.c:5285,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5291,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5294,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5299,1
    - Dst: codegen_slice
      Src: /src/cpython/Python/codegen.c:5299,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:5302,1
    - Dst: codegen_list
      Src: /src/cpython/Python/codegen.c:5305,1
    - Dst: codegen_tuple
      Src: /src/cpython/Python/codegen.c:5307,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 137
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5310
      start: 5159
    functionDepth: 8
    functionLinenumber: 5159
    functionLinenumberEnd: 5310
    functionName: codegen_visit_expr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - codegen_list
    - codegen_formatted_value
    - codegen_dictcomp
    - ADDOP_NAME
    - codegen_set
    - codegen_call
    - ADDOP_I
    - RETURN_IF_ERROR
    - codegen_subscript
    - codegen_ifexp
    - unaryop
    - ADDOP
    - codegen_tuple
    - codegen_boolop
    - SCOPE_TYPE
    - load_args_for_super
    - codegen_listcomp
    - _PyST_IsFunctionLike
    - codegen_nameop
    - SYMTABLE_ENTRY
    - codegen_interpolation
    - update_start_location_to_match_attr
    - _PyCompile_Error
    - _PyCompile_MaybeAddStaticAttributeToClass
    - LOC
    - ADDOP_BINARY
    - codegen_dict
    - can_optimize_super_call
    - Py_EnterRecursiveCall
    - ADDOP_YIELD
    - codegen_lambda
    - codegen_template_str
    - codegen_genexp
    - ADD_YIELD_FROM
    - VISIT
    - codegen_compare
    - codegen_joined_str
    - asdl_seq_LEN
    - codegen_setcomp
    - codegen_slice
    linkageType: ''
    returnType: int
    signature: int codegen_visit_expr(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5322
      start: 5312
    functionDepth: 0
    functionLinenumber: 5312
    functionLinenumberEnd: 5322
    functionName: is_constant_slice
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_constant_slice(expr_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_constant_slice
      Src: /src/cpython/Python/codegen.c:5327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5330
      start: 5324
    functionDepth: 1
    functionLinenumber: 5324
    functionLinenumberEnd: 5330
    functionName: should_apply_two_element_slice_optimization
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - is_constant_slice
    linkageType: ''
    returnType: bool
    signature: bool should_apply_two_element_slice_optimization(expr_ty s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5335,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5338,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5342,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5343,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5344,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5345,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5348,1
    - Dst: should_apply_two_element_slice_optimization
      Src: /src/cpython/Python/codegen.c:5349,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5350,1
    - Dst: codegen_slice_two_parts
      Src: /src/cpython/Python/codegen.c:5350,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5351,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5352,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5353,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5354,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5357,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5358,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5359,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5360,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5364,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:5364,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:5367,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5373,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5375,1
    - Dst: ADDOP_INPLACE
      Src: /src/cpython/Python/codegen.c:5376,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5378,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5382,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5383,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5384,1
    - Dst: should_apply_two_element_slice_optimization
      Src: /src/cpython/Python/codegen.c:5387,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5388,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5389,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5390,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5391,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5394,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5395,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5396,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:5400,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/codegen.c:5402,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 59
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == AugAssign_kind)
      pos:
        line_end: 5334
        line_start: 5334
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5405
      start: 5332
    functionDepth: 3
    functionLinenumber: 5332
    functionLinenumberEnd: 5405
    functionName: codegen_augassign
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - Py_UNREACHABLE
    - LOC
    - VISIT
    - should_apply_two_element_slice_optimization
    - codegen_nameop
    - ADDOP_NAME
    - RETURN_IF_ERROR
    - ADDOP_I
    - codegen_slice_two_parts
    - PyErr_Format
    - update_start_location_to_match_attr
    - ADDOP_INPLACE
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_augassign(compiler *c, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5410,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5411,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5413
      start: 5407
    functionDepth: 1
    functionLinenumber: 5407
    functionLinenumberEnd: 5413
    functionName: codegen_check_ann_expr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - VISIT
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_check_ann_expr(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:5420,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5425,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5426,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5430
      start: 5415
    functionDepth: 2
    functionLinenumber: 5415
    functionLinenumberEnd: 5430
    functionName: codegen_check_annotation
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - SCOPE_TYPE
    - FUTURE_FEATURES
    - codegen_check_ann_expr
    linkageType: ''
    returnType: int
    signature: int codegen_check_annotation(compiler *c, stmt_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5438,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5441,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5444,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5451,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5453,1
    - Dst: codegen_check_ann_subscr
      Src: /src/cpython/Python/codegen.c:5453,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5453,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5460
      start: 5432
    functionDepth: 2
    functionLinenumber: 5432
    functionLinenumberEnd: 5460
    functionName: codegen_check_ann_subscr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - codegen_check_ann_expr
    - asdl_seq_LEN
    - RETURN_IF_ERROR
    - codegen_check_ann_subscr
    linkageType: ''
    returnType: int
    signature: int codegen_check_ann_subscr(compiler *c, expr_ty e)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5465,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:5467,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5470,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5474,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5475,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5481,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5482,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5484,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5485,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:5485,1
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:5486,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5487,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5488,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5492,1
    - Dst: _PyCompile_AddDeferredAnnotation
      Src: /src/cpython/Python/codegen.c:5492,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5495,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5497,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:5498,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5499,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5500,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5501,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5508,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5514,1
    - Dst: codegen_check_ann_subscr
      Src: /src/cpython/Python/codegen.c:5515,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:5520,1
    - Dst: codegen_check_annotation
      Src: /src/cpython/Python/codegen.c:5526,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == AnnAssign_kind)
      pos:
        line_end: 5469
        line_start: 5469
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5530
      start: 5462
    functionDepth: 3
    functionLinenumber: 5462
    functionLinenumberEnd: 5530
    functionName: codegen_annassign
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - _PyCompile_AddDeferredAnnotation
    - codegen_check_annotation
    - LOC
    - SCOPE_TYPE
    - _Py_ID
    - _PyCompile_MaybeMangle
    - VISIT
    - PyErr_Format
    - codegen_check_ann_expr
    - ADDOP_NAME
    - RETURN_IF_ERROR
    - ADDOP_I
    - ADDOP_LOAD_CONST_NEW
    - codegen_check_ann_subscr
    - FUTURE_FEATURES
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_annassign(compiler *c, stmt_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5535,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5539,1
    - Dst: check_subscripter
      Src: /src/cpython/Python/codegen.c:5539,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5540,1
    - Dst: check_index
      Src: /src/cpython/Python/codegen.c:5540,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5543,1
    - Dst: should_apply_two_element_slice_optimization
      Src: /src/cpython/Python/codegen.c:5544,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5547,1
    - Dst: codegen_slice_two_parts
      Src: /src/cpython/Python/codegen.c:5547,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5549,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5552,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5553,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5557,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5560,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5563,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5566,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (ctx == Store)
      pos:
        line_end: 5551
        line_start: 5551
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5571
      start: 5532
    functionDepth: 2
    functionLinenumber: 5532
    functionLinenumberEnd: 5571
    functionName: codegen_subscript
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - assert
    - codegen_slice_two_parts
    - LOC
    - VISIT
    - should_apply_two_element_slice_optimization
    - RETURN_IF_ERROR
    - ADDOP_I
    - check_index
    - check_subscripter
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_subscript(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5577,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5580,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5580,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5584,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5587,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5591
      start: 5573
    functionDepth: 1
    functionLinenumber: 5573
    functionLinenumberEnd: 5591
    functionName: codegen_slice_two_parts
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 2
    functionsReached:
    - ADDOP_LOAD_CONST
    - VISIT
    - LOC
    linkageType: ''
    returnType: int
    signature: int codegen_slice_two_parts(compiler *c, expr_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5597,1
    - Dst: is_constant_slice
      Src: /src/cpython/Python/codegen.c:5599,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/codegen.c:5612,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5616,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5616,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5620,1
    - Dst: codegen_slice_two_parts
      Src: /src/cpython/Python/codegen.c:5620,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5624,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5627,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (s->kind == Slice_kind)
      pos:
        line_end: 5596
        line_start: 5596
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5629
      start: 5593
    functionDepth: 3
    functionLinenumber: 5593
    functionLinenumberEnd: 5629
    functionName: codegen_slice
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - LOC
    - VISIT
    - is_constant_slice
    - RETURN_IF_ERROR
    - ADDOP_I
    - codegen_slice_two_parts
    - ADDOP_LOAD_CONST_NEW
    - PySlice_New
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_slice(compiler *c, expr_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5646
      start: 5644
    functionDepth: 0
    functionLinenumber: 5644
    functionLinenumberEnd: 5646
    functionName: WILDCARD_CHECK
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WILDCARD_CHECK(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5647
    functionDepth: 0
    functionLinenumber: 5647
    functionLinenumberEnd: 5649
    functionName: WILDCARD_STAR_CHECK
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WILDCARD_STAR_CHECK(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5653
      start: 5651
    functionDepth: 0
    functionLinenumber: 5651
    functionLinenumberEnd: 5653
    functionName: MATCH_VALUE_EXPR
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MATCH_VALUE_EXPR(N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/codegen.c:5663,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:5665,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - c
    - pc
    - n
    argTypes:
    - compiler*
    - pattern_context*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5674
      start: 5655
    functionDepth: 1
    functionLinenumber: 5655
    functionLinenumberEnd: 5674
    functionName: ensure_fail_pop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - NEW_JUMP_TARGET_LABEL
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int ensure_fail_pop(compiler *c, pattern_context *pc, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:5683,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5684,1
    - Dst: ensure_fail_pop
      Src: /src/cpython/Python/codegen.c:5684,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - c
    - loc
    - pc
    - op
    argTypes:
    - compiler*
    - location
    - pattern_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5687
      start: 5677
    functionDepth: 2
    functionLinenumber: 5677
    functionLinenumberEnd: 5687
    functionName: jump_to_fail_pop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_JUMP
    - PyList_GET_SIZE
    - ensure_fail_pop
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: "int jump_to_fail_pop(compiler *c, location loc,\n                 pattern_context
      *pc, int op)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5695,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5699,1
    - Dst: codegen_addop_noarg
      Src: /src/cpython/Python/codegen.c:5700,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:5700,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:5702,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5707,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:5708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - c
    - loc
    - pc
    argTypes:
    - compiler*
    - location
    - pattern_context*
    assertStmts:
    - condition: (pc->fail_pop == NULL)
      pos:
        line_end: 5694
        line_start: 5694
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5711
      start: 5690
    functionDepth: 2
    functionLinenumber: 5690
    functionLinenumberEnd: 5711
    functionName: emit_and_reset_fail_pop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - INSTR_SEQUENCE
    - USE_LABEL
    - codegen_addop_noarg
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: "int emit_and_reset_fail_pop(compiler *c, location loc,\n                        pattern_context
      *pc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - loc
    - n
    argTypes:
    - compiler*
    - location
    - identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5718
      start: 5713
    functionDepth: 1
    functionLinenumber: 5713
    functionLinenumberEnd: 5718
    functionName: codegen_error_duplicate_store
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int codegen_error_duplicate_store(compiler *c, location loc, identifier
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - loc
    - count
    argTypes:
    - compiler*
    - location
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5728
      start: 5721
    functionDepth: 1
    functionLinenumber: 5721
    functionLinenumberEnd: 5728
    functionName: codegen_pattern_helper_rotate
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_helper_rotate(compiler *c, location loc, Py_ssize_t
      count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5735,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/codegen.c:5739,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5740,1
    - Dst: codegen_error_duplicate_store
      Src: /src/cpython/Python/codegen.c:5742,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:5745,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5746,1
    - Dst: codegen_pattern_helper_rotate
      Src: /src/cpython/Python/codegen.c:5746,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5747,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/codegen.c:5747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - c
    - loc
    - n
    - pc
    argTypes:
    - compiler*
    - location
    - identifier
    - pattern_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5749
      start: 5730
    functionDepth: 6
    functionLinenumber: 5730
    functionLinenumberEnd: 5749
    functionName: codegen_pattern_helper_store_name
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - PySequence_Contains
    - PyList_GET_SIZE
    - codegen_error_duplicate_store
    - codegen_pattern_helper_rotate
    - RETURN_IF_ERROR
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_pattern_helper_store_name(compiler *c, location loc,\n
      \                                 identifier n, pattern_context *pc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5756,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5759,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5763,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5767,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5771,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - c
    - loc
    - elts
    argTypes:
    - compiler*
    - location
    - asdl_pattern_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5779
      start: 5752
    functionDepth: 1
    functionLinenumber: 5752
    functionLinenumberEnd: 5779
    functionName: codegen_pattern_unpack_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_Error
    - ADDOP_I
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: "int codegen_pattern_unpack_helper(compiler *c, location loc,\n                              asdl_pattern_seq
      *elts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5786,1
    - Dst: codegen_pattern_unpack_helper
      Src: /src/cpython/Python/codegen.c:5786,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5787,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5794,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5795,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:5795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - c
    - loc
    - patterns
    - star
    - pc
    argTypes:
    - compiler*
    - location
    - asdl_pattern_seq*
    - Py_ssize_t
    - pattern_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5798
      start: 5781
    functionDepth: 2
    functionLinenumber: 5781
    functionLinenumberEnd: 5798
    functionName: pattern_helper_sequence_unpack
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - codegen_pattern_subpattern
    - asdl_seq_LEN
    - RETURN_IF_ERROR
    - codegen_pattern_unpack_helper
    linkageType: ''
    returnType: int
    signature: "int pattern_helper_sequence_unpack(compiler *c, location loc,\n                               asdl_pattern_seq
      *patterns, Py_ssize_t star,\n                               pattern_context
      *pc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5810,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5812,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:5813,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5817,1
    - Dst: WILDCARD_STAR_CHECK
      Src: /src/cpython/Python/codegen.c:5817,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5820,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5822,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:5822,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5827,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5828,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:5828,1
    - Dst: ADDOP_BINARY
      Src: /src/cpython/Python/codegen.c:5829,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5831,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5832,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:5832,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5836,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - c
    - loc
    - patterns
    - star
    - pc
    argTypes:
    - compiler*
    - location
    - asdl_pattern_seq*
    - Py_ssize_t
    - pattern_context*
    assertStmts:
    - condition: (WILDCARD_STAR_CHECK(pattern))
      pos:
        line_end: 5816
        line_start: 5816
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5838
      start: 5803
    functionDepth: 1
    functionLinenumber: 5803
    functionLinenumberEnd: 5838
    functionName: pattern_helper_sequence_subscr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - WILDCARD_CHECK
    - asdl_seq_GET
    - ADDOP_BINARY
    - WILDCARD_STAR_CHECK
    - PyLong_FromSsize_t
    - codegen_pattern_subpattern
    - asdl_seq_LEN
    - RETURN_IF_ERROR
    - ADDOP_I
    - ADDOP_LOAD_CONST_NEW
    - assert
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int pattern_helper_sequence_subscr(compiler *c, location loc,\n                               asdl_pattern_seq
      *patterns, Py_ssize_t star,\n                               pattern_context
      *pc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5847,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:5847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5850
      start: 5841
    functionDepth: 1
    functionLinenumber: 5841
    functionLinenumberEnd: 5850
    functionName: codegen_pattern_subpattern
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 2
    functionsReached:
    - codegen_pattern
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: "int codegen_pattern_subpattern(compiler *c,\n                            pattern_ty
      p, pattern_context *pc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5855,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5861,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5861,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5864,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5864,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:5866,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5866,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5870,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5870,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5871,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:5871,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5874,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:5874,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (p->kind == MatchAs_kind)
      pos:
        line_end: 5854
        line_start: 5854
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5876
      start: 5852
    functionDepth: 7
    functionLinenumber: 5852
    functionLinenumberEnd: 5876
    functionName: codegen_pattern_as
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - assert
    - LOC
    - codegen_pattern_helper_store_name
    - RETURN_IF_ERROR
    - ADDOP_I
    - codegen_pattern
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_as(compiler *c, pattern_ty p, pattern_context *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5881,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5882,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:5883,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (p->kind == MatchStar_kind)
      pos:
        line_end: 5880
        line_start: 5880
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5885
      start: 5878
    functionDepth: 7
    functionLinenumber: 5878
    functionLinenumberEnd: 5885
    functionName: codegen_pattern_star
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - RETURN_IF_ERROR
    - assert
    - codegen_pattern_helper_store_name
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_star(compiler *c, pattern_ty p, pattern_context
      *pc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5892,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5894,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5896,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/codegen.c:5897,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5898,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5898,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - c
    - attrs
    - patterns
    argTypes:
    - compiler*
    - asdl_identifier_seq*
    - asdl_pattern_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5905
      start: 5887
    functionDepth: 2
    functionLinenumber: 5887
    functionLinenumberEnd: 5905
    functionName: validate_kwd_attrs
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - asdl_seq_GET
    - LOC
    - asdl_seq_LEN
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int validate_kwd_attrs(compiler *c, asdl_identifier_seq *attrs, asdl_pattern_seq*
      patterns)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5910,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5914,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5915,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5916,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5921,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5921,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5925,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5925,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5928,1
    - Dst: validate_kwd_attrs
      Src: /src/cpython/Python/codegen.c:5928,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5930,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/codegen.c:5931,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5937,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:5938,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:5938,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5940,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5940,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5941,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5941,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5942,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5942,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5943,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5943,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5944,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5944,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5947,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:5947,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5947,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5948,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5948,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5955,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5959,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:5961,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5962,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5962,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5965,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:5965,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (p->kind == MatchClass_kind)
      pos:
        line_end: 5909
        line_start: 5909
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5969
      start: 5907
    functionDepth: 3
    functionLinenumber: 5907
    functionLinenumberEnd: 5969
    functionName: codegen_pattern_class
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - assert
    - PyTuple_New
    - WILDCARD_CHECK
    - asdl_seq_GET
    - LOC
    - ADDOP
    - validate_kwd_attrs
    - PyTuple_SET_ITEM
    - VISIT
    - codegen_pattern_subpattern
    - asdl_seq_LEN
    - Py_NewRef
    - RETURN_IF_ERROR
    - ADDOP_I
    - ADDOP_LOAD_CONST_NEW
    - _PyCompile_Error
    - jump_to_fail_pop
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_class(compiler *c, pattern_ty p, pattern_context
      *pc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5976,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5980,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5980,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5981,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/codegen.c:5985,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5986,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5989,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5989,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5991,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/codegen.c:5991,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5995,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5995,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - c
    - seen
    - p
    - i
    argTypes:
    - compiler*
    - PyObject*
    - pattern_ty
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5999
      start: 5971
    functionDepth: 8
    functionLinenumber: 5971
    functionLinenumberEnd: 5999
    functionName: codegen_pattern_mapping_key
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - LOC
    - VISIT
    - RETURN_IF_ERROR
    - PySet_Contains
    - PySet_Add
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_mapping_key(compiler *c, PyObject *seen, pattern_ty
      p, Py_ssize_t i)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6005,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6008,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6009,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6014,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6014,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6020,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6020,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6021,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6021,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6021,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6025,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6025,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6030,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6030,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6031,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6031,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6031,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6032,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6032,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6033,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6033,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6033,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6036,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6036,1
    - Dst: PySet_New
      Src: /src/cpython/Python/codegen.c:6043,1
    - Dst: codegen_pattern_mapping_key
      Src: /src/cpython/Python/codegen.c:6048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6053,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6057,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6057,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6058,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6058,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6061,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6061,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:6062,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6062,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6063,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6063,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6064,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6064,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6064,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6067,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6067,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6071,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6072,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:6072,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6084,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6084,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6085,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6085,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6086,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6086,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6087,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6087,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6089,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6089,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6090,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6090,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6091,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6091,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6093,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:6093,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6093,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6096,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6096,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6097,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6097,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (p->kind == MatchMapping_kind)
      pos:
        line_end: 6004
        line_start: 6004
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6100
      start: 6001
    functionDepth: 11
    functionLinenumber: 6001
    functionLinenumberEnd: 6100
    functionName: codegen_pattern_mapping
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - assert
    - Py_DECREF
    - asdl_seq_GET
    - LOC
    - PyLong_FromSsize_t
    - codegen_pattern_subpattern
    - ADDOP_I
    - codegen_pattern_helper_store_name
    - asdl_seq_LEN
    - codegen_pattern_mapping_key
    - RETURN_IF_ERROR
    - jump_to_fail_pop
    - ADDOP_COMPARE
    - ADDOP_LOAD_CONST_NEW
    - PySet_New
    - _PyCompile_Error
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_pattern_mapping(compiler *c, pattern_ty p,\n                        pattern_context
      *pc)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6105,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:6106,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6107,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6108,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/codegen.c:6111,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6118,1
    - Dst: PyList_New
      Src: /src/cpython/Python/codegen.c:6119,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/codegen.c:6123,1
    - Dst: codegen_addop_i
      Src: /src/cpython/Python/codegen.c:6129,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:6129,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6129,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:6130,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6134,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6139,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:6140,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6142,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:6149,1
    - Dst: PySequence_Index
      Src: /src/cpython/Python/codegen.c:6150,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/codegen.c:6152,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6163,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Python/codegen.c:6166,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/codegen.c:6169,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/codegen.c:6170,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:6173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6176,1
    - Dst: codegen_pattern_helper_rotate
      Src: /src/cpython/Python/codegen.c:6184,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6184,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6191,1
    - Dst: codegen_addop_j
      Src: /src/cpython/Python/codegen.c:6192,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:6192,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6192,1
    - Dst: emit_and_reset_fail_pop
      Src: /src/cpython/Python/codegen.c:6193,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6198,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/codegen.c:6200,1
    - Dst: codegen_addop_noarg
      Src: /src/cpython/Python/codegen.c:6204,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:6204,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6204,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6205,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6205,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:6209,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6210,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6217,1
    - Dst: codegen_pattern_helper_rotate
      Src: /src/cpython/Python/codegen.c:6220,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6220,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:6225,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/codegen.c:6226,1
    - Dst: codegen_error_duplicate_store
      Src: /src/cpython/Python/codegen.c:6231,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6231,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/codegen.c:6234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6239,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6242,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6242,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6245,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6245,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:6247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6248,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:6249,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 98
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (istores < icontrol)
      pos:
        line_end: 6162
        line_start: 6162
        source_file: /src/cpython/Python/codegen.c
    - condition: (p->kind == MatchOr_kind)
      pos:
        line_end: 6104
        line_start: 6104
        source_file: /src/cpython/Python/codegen.c
    - condition: (control == NULL)
      pos:
        line_end: 6138
        line_start: 6138
        source_file: /src/cpython/Python/codegen.c
    - condition: (size > 1)
      pos:
        line_end: 6107
        line_start: 6107
        source_file: /src/cpython/Python/codegen.c
    - condition: (control)
      pos:
        line_end: 6190
        line_start: 6190
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6251
      start: 6102
    functionDepth: 12
    functionLinenumber: 6102
    functionLinenumberEnd: 6251
    functionName: codegen_pattern_or
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_GetSlice
    - Py_XDECREF
    - PyList_SetSlice
    - Py_SETREF
    - PySequence_Index
    - emit_and_reset_fail_pop
    - USE_LABEL
    - codegen_addop_noarg
    - ADDOP
    - PyMem_Free
    - Py_INCREF
    - NEW_JUMP_TARGET_LABEL
    - INSTR_SEQUENCE
    - asdl_seq_GET
    - PyList_Append
    - PyList_GET_SIZE
    - PySequence_Contains
    - codegen_pattern
    - PyErr_Clear
    - _PyCompile_Error
    - Py_DECREF
    - LOC
    - Py_NewRef
    - codegen_pattern_helper_rotate
    - codegen_addop_i
    - codegen_addop_j
    - PyList_GET_ITEM
    - codegen_error_duplicate_store
    - asdl_seq_LEN
    - jump_to_fail_pop
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_or(compiler *c, pattern_ty p, pattern_context *pc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6258,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6260,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6266,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6270,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6270,1
    - Dst: WILDCARD_STAR_CHECK
      Src: /src/cpython/Python/codegen.c:6272,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:6277,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6281,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6281,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6282,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6282,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6282,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6285,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6285,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6286,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6286,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6286,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6287,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6287,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6288,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6288,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6288,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6292,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6292,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6293,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6293,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6293,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6294,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6294,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6295,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6295,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6295,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6301,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6301,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6304,1
    - Dst: pattern_helper_sequence_subscr
      Src: /src/cpython/Python/codegen.c:6304,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6304,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6307,1
    - Dst: pattern_helper_sequence_unpack
      Src: /src/cpython/Python/codegen.c:6307,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6307,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (p->kind == MatchSequence_kind)
      pos:
        line_end: 6257
        line_start: 6257
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6310
      start: 6254
    functionDepth: 3
    functionLinenumber: 6254
    functionLinenumberEnd: 6310
    functionName: codegen_pattern_sequence
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - assert
    - WILDCARD_CHECK
    - pattern_helper_sequence_subscr
    - asdl_seq_GET
    - LOC
    - WILDCARD_STAR_CHECK
    - PyLong_FromSsize_t
    - pattern_helper_sequence_unpack
    - asdl_seq_LEN
    - RETURN_IF_ERROR
    - jump_to_fail_pop
    - ADDOP_COMPARE
    - ADDOP_LOAD_CONST_NEW
    - _PyCompile_Error
    - ADDOP
    linkageType: ''
    returnType: int
    signature: "int codegen_pattern_sequence(compiler *c, pattern_ty p,\n                         pattern_context
      *pc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6315,1
    - Dst: MATCH_VALUE_EXPR
      Src: /src/cpython/Python/codegen.c:6317,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6319,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6319,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:6321,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6322,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6322,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6323,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6323,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6324,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6324,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (p->kind == MatchValue_kind)
      pos:
        line_end: 6314
        line_start: 6314
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6326
      start: 6312
    functionDepth: 3
    functionLinenumber: 6312
    functionLinenumberEnd: 6326
    functionName: codegen_pattern_value
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - assert
    - LOC
    - VISIT
    - jump_to_fail_pop
    - ADDOP_COMPARE
    - RETURN_IF_ERROR
    - MATCH_VALUE_EXPR
    - _PyCompile_Error
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_value(compiler *c, pattern_ty p, pattern_context
      *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6331,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:6332,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6332,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6333,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6333,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6334,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6334,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts:
    - condition: (p->kind == MatchSingleton_kind)
      pos:
        line_end: 6330
        line_start: 6330
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6336
      start: 6328
    functionDepth: 3
    functionLinenumber: 6328
    functionLinenumberEnd: 6336
    functionName: codegen_pattern_singleton
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - LOC
    - RETURN_IF_ERROR
    - ADDOP_COMPARE
    - assert
    - jump_to_fail_pop
    linkageType: ''
    returnType: int
    signature: int codegen_pattern_singleton(compiler *c, pattern_ty p, pattern_context
      *pc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: codegen_pattern_value
      Src: /src/cpython/Python/codegen.c:6343,1
    - Dst: codegen_pattern_singleton
      Src: /src/cpython/Python/codegen.c:6345,1
    - Dst: codegen_pattern_sequence
      Src: /src/cpython/Python/codegen.c:6347,1
    - Dst: codegen_pattern_mapping
      Src: /src/cpython/Python/codegen.c:6349,1
    - Dst: codegen_pattern_class
      Src: /src/cpython/Python/codegen.c:6351,1
    - Dst: codegen_pattern_star
      Src: /src/cpython/Python/codegen.c:6353,1
    - Dst: codegen_pattern_as
      Src: /src/cpython/Python/codegen.c:6355,1
    - Dst: codegen_pattern_or
      Src: /src/cpython/Python/codegen.c:6357,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6362,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6338
    functionDepth: 13
    functionLinenumber: 6338
    functionLinenumberEnd: 6363
    functionName: codegen_pattern
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 3
    functionsReached:
    - codegen_pattern_value
    - codegen_pattern_or
    - codegen_pattern_singleton
    - LOC
    - codegen_pattern_class
    - codegen_pattern_sequence
    - codegen_pattern_star
    - codegen_pattern_mapping
    - codegen_pattern_as
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int codegen_pattern(compiler *c, pattern_ty p, pattern_context *pc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:6368,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:6369,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6370,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6371,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6372,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:6373,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6375,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6378,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6378,1
    - Dst: PyList_New
      Src: /src/cpython/Python/codegen.c:6380,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:6390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6391,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6394,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6396,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:6398,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:6399,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6404,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6407,1
    - Dst: ensure_fail_pop
      Src: /src/cpython/Python/codegen.c:6407,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6408,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:6408,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6408,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6413,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:6415,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:6416,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6420,1
    - Dst: emit_and_reset_fail_pop
      Src: /src/cpython/Python/codegen.c:6420,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6420,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6425,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6428,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6428,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6432,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6432,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6435,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:6435,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6435,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:6437,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:6439,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 3
    argNames:
    - c
    - s
    - pc
    argTypes:
    - compiler*
    - stmt_ty
    - pattern_context*
    assertStmts:
    - condition: (cases > 0)
      pos:
        line_end: 6370
        line_start: 6370
        source_file: /src/cpython/Python/codegen.c
    - condition: (!pc->on_top)
      pos:
        line_end: 6393
        line_start: 6393
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6441
      start: 6365
    functionDepth: 14
    functionLinenumber: 6365
    functionLinenumberEnd: 6441
    functionName: codegen_match_inner
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - ensure_fail_pop
    - RETURN_IF_ERROR
    - ADDOP_I
    - emit_and_reset_fail_pop
    - USE_LABEL
    - ADDOP
    - NEW_JUMP_TARGET_LABEL
    - asdl_seq_GET
    - PyList_GET_SIZE
    - codegen_nameop
    - codegen_pattern
    - WILDCARD_CHECK
    - Py_DECREF
    - LOC
    - codegen_jump_if
    - ADDOP_JUMP
    - PyList_GET_ITEM
    - VISIT_SEQ
    - VISIT
    - asdl_seq_LEN
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_match_inner(compiler *c, stmt_ty s, pattern_context *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codegen_match_inner
      Src: /src/cpython/Python/codegen.c:6448,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:6449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6451
      start: 6443
    functionDepth: 15
    functionLinenumber: 6443
    functionLinenumberEnd: 6451
    functionName: codegen_match
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - codegen_match_inner
    linkageType: ''
    returnType: int
    signature: int codegen_match(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:6464,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - addNone
    argTypes:
    - compiler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6468
      start: 6457
    functionDepth: 1
    functionLinenumber: 6457
    functionLinenumberEnd: 6468
    functionName: _PyCodegen_AddReturnAtEnd
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_LOAD_CONST
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int _PyCodegen_AddReturnAtEnd(compiler *c, int addNone)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: current_fast_get
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      current_fast_get(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(runtime)
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: current_fast_set
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void current_fast_set(_PyRuntimeState *Py_UNUSED(runtime), PyThreadState
      *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(runtime)
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: current_fast_clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void current_fast_clear(_PyRuntimeState *Py_UNUSED(runtime))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tstate
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: tstate_verify_not_active
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tstate_verify_not_active(tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: _PyThreadState_GetCurrent
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - current_fast_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_GetCurrent(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: gilstate_get
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      gilstate_get(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: gilstate_set
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void gilstate_set(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: gilstate_clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gilstate_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: tstate_is_bound
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tstate_is_bound(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:174,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:175,1
    - Dst: tstate_is_alive
      Src: /src/cpython/Python/pystate.c:175,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:176,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:177,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:178,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:178,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:179,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:180,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:181,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Python/pystate.c:186,1
    - Dst: PyThread_get_thread_native_id
      Src: /src/cpython/Python/pystate.c:188,1
    - Dst: _Py_brc_init_thread
      Src: /src/cpython/Python/pystate.c:194,1
    - Dst: tstate_mimalloc_bind
      Src: /src/cpython/Python/pystate.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.unbound)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.bound_gilstate)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_alive(tstate) && !tstate->_status.bound)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate != gilstate_get())
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.active)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->thread_id == 0)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->native_thread_id == 0)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 201
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 201
    functionName: bind_tstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_brc_init_thread
    - tstate_mimalloc_bind
    - gilstate_get
    - PyThread_get_thread_native_id
    - tstate_is_alive
    - PyThread_get_thread_ident
    - assert
    linkageType: ''
    returnType: void
    signature: void bind_tstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:206,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:207,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:207,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:209,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->native_thread_id > 0)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->thread_id > 0)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 223
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 223
    functionName: unbind_tstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - tstate_is_bound
    - assert
    linkageType: ''
    returnType: void
    signature: void unbind_tstate(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:247,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:248,1
    - Dst: tstate_is_alive
      Src: /src/cpython/Python/pystate.c:248,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:249,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:249,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:251,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:253,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:254,1
    - Dst: gilstate_set
      Src: /src/cpython/Python/pystate.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_alive(tstate))
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.bound_gilstate)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate != tcur)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: bind_gilstate_tstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - tstate_is_bound
    - tstate_is_alive
    - gilstate_set
    - assert
    linkageType: ''
    returnType: void
    signature: void bind_gilstate_tstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:266,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:268,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:268,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:270,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:271,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:271,1
    - Dst: gilstate_clear
      Src: /src/cpython/Python/pystate.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate == gilstate_get())
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->_status.bound_gilstate)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: unbind_gilstate_tstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - tstate_is_bound
    - assert
    - gilstate_clear
    linkageType: ''
    returnType: void
    signature: void unbind_gilstate_tstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:294,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:296,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:296,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate == gilstate_get())
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: holds_gil
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - assert
    - current_fast_get
    linkageType: ''
    returnType: int
    signature: int holds_gil(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - runtime
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: LOCKS_INIT
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCKS_INIT(runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:340,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:341,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:342,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:343,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:344,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/cpython/Python/pystate.c:350,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Python/pystate.c:353,1
    - Dst: _Py_EmscriptenTrampoline_Init
      Src: /src/cpython/Python/pystate.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - runtime
    - open_code_hook
    - open_code_userdata
    - audit_hook_head
    - unicode_next_index
    argTypes:
    - _PyRuntimeState*
    - void*
    - void*
    - _Py_AuditHookEntry*
    - Py_ssize_t
    assertStmts:
    - condition: (!runtime->preinitializing)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/cpython/Python/pystate.c
    - condition: (!runtime->_initialized)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Python/pystate.c
    - condition: (!runtime->core_initialized)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Python/pystate.c
    - condition: (!runtime->preinitialized)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/cpython/Python/pystate.c
    - condition: (!runtime->initialized)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 362
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 362
    functionName: init_runtime
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyThread_get_thread_ident
    - _Py_EmscriptenTrampoline_Init
    - assert
    - PyPreConfig_InitPythonConfig
    linkageType: ''
    returnType: void
    signature: "void init_runtime(_PyRuntimeState *runtime,\n             void *open_code_hook,
      void *open_code_userdata,\n             _Py_AuditHookEntry *audit_hook_head,\n
      \            Py_ssize_t unicode_next_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Python/pystate.c:380,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystate.c:382,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:383,1
    - Dst: _PyTime_Init
      Src: /src/cpython/Python/pystate.c:386,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pystate.c:387,1
    - Dst: init_runtime
      Src: /src/cpython/Python/pystate.c:391,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (!runtime->_initialized)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 395
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 395
    functionName: _PyRuntimeState_Init
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - init_runtime
    - _PyTime_Init
    - memcpy
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:402,1
    - Dst: gilstate_clear
      Src: /src/cpython/Python/pystate.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (runtime->object_state.interpreter_leaks == 0)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 405
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 405
    functionName: _PyRuntimeState_Fini
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - assert
    - gilstate_clear
    linkageType: ''
    returnType: void
    signature: void _PyRuntimeState_Fini(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Python/pystate.c:414,1
    - Dst: _PyParkingLot_AfterFork
      Src: /src/cpython/Python/pystate.c:418,1
    - Dst: LOCKS_INIT
      Src: /src/cpython/Python/pystate.c:421,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/pystate.c:422,1
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/pystate.c:423,1
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/pystate.c:430,1
    - Dst: _PyTypes_AfterFork
      Src: /src/cpython/Python/pystate.c:435,1
    - Dst: _PyThread_AfterFork
      Src: /src/cpython/Python/pystate.c:437,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 440
    functionName: _PyRuntimeState_ReInitThreads
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyStatus_OK
    - LOCKS_INIT
    - _PyTypes_AfterFork
    - _PyThread_AfterFork
    - _PyMutex_at_fork_reinit
    - _PyParkingLot_AfterFork
    - Py_ARRAY_LENGTH
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: _PyInterpreterState_Enable
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyInterpreterState_Enable(_PyRuntimeState *runtime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystate.c:467,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Python/pystate.c:471,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:472,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Python/pystate.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_Py_IS_ALIGNED(interp, alignment))
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 475
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 475
    functionName: alloc_interpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - _Py_ALIGN_UP
    - _Py_IS_ALIGNED
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      alloc_interpreter(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_obmalloc_state_on_heap
      Src: /src/cpython/Python/pystate.c:483,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:485,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:488,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Python/pystate.c:488,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (_Py_IS_ALIGNED(interp, _Alignof(PyInterpreterState)))
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 491
    functionName: free_interpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyMem_obmalloc_state_on_heap
    - _Py_IS_ALIGNED
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: void
    signature: void free_interpreter(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:528,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:531,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:532,1
    - Dst: check_interpreter_whence
      Src: /src/cpython/Python/pystate.c:532,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:535,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:538,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:543,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:544,1
    - Dst: _PyEval_InitState
      Src: /src/cpython/Python/pystate.c:552,1
    - Dst: _PyGC_InitState
      Src: /src/cpython/Python/pystate.c:553,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Python/pystate.c:554,1
    - Dst: _PyType_InitCache
      Src: /src/cpython/Python/pystate.c:555,1
    - Dst: _Py_brc_init_state
      Src: /src/cpython/Python/pystate.c:557,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:559,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:560,1
    - Dst: _dtoa_state_INIT
      Src: /src/cpython/Python/pystate.c:580,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/pystate.c:588,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/pystate.c:596,1
    - Dst: _Py_stackref_associate
      Src: /src/cpython/Python/pystate.c:604,1
    - Dst: _Py_stackref_associate
      Src: /src/cpython/Python/pystate.c:605,1
    - Dst: _Py_stackref_associate
      Src: /src/cpython/Python/pystate.c:606,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 5
    argNames:
    - interp
    - runtime
    - id
    - next
    - whence
    argTypes:
    - PyInterpreterState*
    - _PyRuntimeState*
    - int64_t
    - PyInterpreterState*
    - long
    assertStmts:
    - condition: (id > 0 || (id == 0 && interp == runtime->interpreters.main))
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/cpython/Python/pystate.c
    - condition: (next != NULL || (interp == runtime->interpreters.main))
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/cpython/Python/pystate.c
    - condition: (check_interpreter_whence(whence) == 0)
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime->interpreters.head == interp)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->_whence == _PyInterpreterState_WHENCE_NOTSET)
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime != NULL)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 611
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 611
    functionName: init_interpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - check_interpreter_whence
    - _PyStatus_OK
    - _Py_hashtable_new_full
    - PyConfig_InitPythonConfig
    - _PyGC_InitState
    - _Py_brc_init_state
    - _PyType_InitCache
    - llist_init
    - _dtoa_state_INIT
    - _Py_stackref_associate
    - _PyStatus_ERR
    - _PyEval_InitState
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus init_interpreter(PyInterpreterState *interp,\n                 _PyRuntimeState
      *runtime, int64_t id,\n                 PyInterpreterState *next,\n                 long
      whence)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pystate.c:625,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:626,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:634,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:646,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:647,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:650,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:651,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:656,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:657,1
    - Dst: alloc_interpreter
      Src: /src/cpython/Python/pystate.c:659,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/pystate.c:661,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystate.c:665,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:669,1
    - Dst: init_interpreter
      Src: /src/cpython/Python/pystate.c:676,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pystate.c:678,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:682,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:684,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:686,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:689,1
    - Dst: free_interpreter
      Src: /src/cpython/Python/pystate.c:692,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - tstate
    - pinterp
    argTypes:
    - PyThreadState*
    - PyInterpreterState**
    assertStmts:
    - condition: (interpreters->main != NULL)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/cpython/Python/pystate.c
    - condition: (id != 0)
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp != NULL)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->id == 0)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->next == NULL)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/cpython/Python/pystate.c
    - condition: (id == 0)
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/cpython/Python/pystate.c
    - condition: (interpreters->main == NULL)
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 695
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 695
    functionName: _PyInterpreterState_New
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - alloc_interpreter
    - _PyStatus_OK
    - free_interpreter
    - _PyStatus_EXCEPTION
    - memcpy
    - HEAD_LOCK
    - init_interpreter
    - HEAD_UNLOCK
    - _PyStatus_ERR
    - _PySys_Audit
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyInterpreterState_New(PyThreadState *tstate, PyInterpreterState
      **pinterp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:702,1
    - Dst: _PyInterpreterState_New
      Src: /src/cpython/Python/pystate.c:705,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pystate.c:706,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Python/pystate.c:707,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 711
      start: 698
    functionDepth: 4
    functionLinenumber: 698
    functionLinenumberEnd: 711
    functionName: PyInterpreterState_New
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyStatus_EXCEPTION
    - Py_ExitStatusException
    - _PyInterpreterState_New
    - assert
    - current_fast_get
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_New(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:721,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:722,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pystate.c:735,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pystate.c:736,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:744,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:745,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:746,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/pystate.c:748,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:763,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:775,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:779,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/pystate.c:786,1
    - Dst: _PyCodec_Fini
      Src: /src/cpython/Python/pystate.c:787,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:789,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:790,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:791,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:792,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:794,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:795,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:796,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:798,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:799,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:800,1
    - Dst: _Py_ClearExecutorDeletionList
      Src: /src/cpython/Python/pystate.c:805,1
    - Dst: _PyAST_Fini
      Src: /src/cpython/Python/pystate.c:807,1
    - Dst: _PyAtExit_Fini
      Src: /src/cpython/Python/pystate.c:808,1
    - Dst: _PyGC_CollectNoFail
      Src: /src/cpython/Python/pystate.c:815,1
    - Dst: _PyGC_Fini
      Src: /src/cpython/Python/pystate.c:816,1
    - Dst: _PyWarnings_Fini
      Src: /src/cpython/Python/pystate.c:820,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:824,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:825,1
    - Dst: _PyExecutor_Free
      Src: /src/cpython/Python/pystate.c:826,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/pystate.c:831,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/pystate.c:832,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:833,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:834,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/pystate.c:838,1
    - Dst: _Py_stackref_report_leaks
      Src: /src/cpython/Python/pystate.c:841,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/pystate.c:842,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 84
    argCount: 2
    argNames:
    - interp
    - tstate
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    assertStmts:
    - condition: (interp->imports.modules == NULL)
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp != NULL)
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate != NULL)
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->imports.modules_by_index == NULL)
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->imports.importlib == NULL)
      pos:
        line_end: 790
        line_start: 790
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->imports.import_func == NULL)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/cpython/Python/pystate.c
    - condition: (cold->vm_data.warm)
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/cpython/Python/pystate.c
    - condition: (cold->vm_data.valid)
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 880
      start: 718
    functionDepth: 10
    functionLinenumber: 718
    functionLinenumberEnd: 880
    functionName: interpreter_clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyConfig_Clear
    - _PyErr_Clear
    - _PyCodec_Fini
    - _PyGC_Fini
    - _PyGC_CollectNoFail
    - HEAD_UNLOCK
    - _PySys_Audit
    - Py_CLEAR
    - _PyWarnings_Fini
    - _PyExecutor_Free
    - _PyAtExit_Fini
    - _PyAST_Fini
    - PyThreadState_Clear
    - _Py_hashtable_destroy
    - _Py_FOR_EACH_TSTATE_END
    - _Py_ClearExecutorDeletionList
    - _Py_stackref_report_leaks
    - PyDict_Clear
    - HEAD_LOCK
    - assert
    linkageType: ''
    returnType: void
    signature: void interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:744,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:745,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 747
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - HEAD_UNLOCK
    - HEAD_LOCK
    - PyThreadState_Clear
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:889,1
    - Dst: _PyImport_ClearCore
      Src: /src/cpython/Python/pystate.c:890,1
    - Dst: interpreter_clear
      Src: /src/cpython/Python/pystate.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 883
    functionDepth: 11
    functionLinenumber: 883
    functionLinenumberEnd: 892
    functionName: PyInterpreterState_Clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyImport_ClearCore
    - interpreter_clear
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void PyInterpreterState_Clear(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_ClearCore
      Src: /src/cpython/Python/pystate.c:898,1
    - Dst: interpreter_clear
      Src: /src/cpython/Python/pystate.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 895
    functionDepth: 11
    functionLinenumber: 895
    functionLinenumberEnd: 900
    functionName: _PyInterpreterState_Clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyImport_ClearCore
    - interpreter_clear
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_Clear(PyThreadState *tstate)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:915,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/pystate.c:918,1
    - Dst: zapthreads
      Src: /src/cpython/Python/pystate.c:921,1
    - Dst: _PyInterpreterState_FinalizeRefTotal
      Src: /src/cpython/Python/pystate.c:926,1
    - Dst: _PyInterpreterState_FinalizeAllocatedBlocks
      Src: /src/cpython/Python/pystate.c:928,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:930,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:934,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:941,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:948,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:951,1
    - Dst: _Py_qsbr_fini
      Src: /src/cpython/Python/pystate.c:953,1
    - Dst: _PyObject_FiniState
      Src: /src/cpython/Python/pystate.c:955,1
    - Dst: free_interpreter
      Src: /src/cpython/Python/pystate.c:957,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 907
    functionDepth: 4
    functionLinenumber: 907
    functionLinenumberEnd: 958
    functionName: PyInterpreterState_Delete
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_Detach
    - free_interpreter
    - Py_FatalError
    - zapthreads
    - HEAD_LOCK
    - _PyObject_FiniState
    - _Py_qsbr_fini
    - HEAD_UNLOCK
    - _PyInterpreterState_FinalizeAllocatedBlocks
    - _PyInterpreterState_FinalizeRefTotal
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void PyInterpreterState_Delete(PyInterpreterState *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:971,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:973,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:976,1
    - Dst: PyInterpreterState_Clear
      Src: /src/cpython/Python/pystate.c:989,1
    - Dst: zapthreads
      Src: /src/cpython/Python/pystate.c:990,1
    - Dst: free_interpreter
      Src: /src/cpython/Python/pystate.c:993,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:995,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:998,1
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:1000,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:1001,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 966
    functionDepth: 12
    functionLinenumber: 966
    functionLinenumberEnd: 1002
    functionName: _PyInterpreterState_DeleteExceptMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyStatus_OK
    - free_interpreter
    - zapthreads
    - HEAD_LOCK
    - PyInterpreterState_Clear
    - HEAD_UNLOCK
    - _PyStatus_ERR
    - _PyThreadState_Swap
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Python/pystate.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - tstate
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1009
    functionName: set_main_thread
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ptr_relaxed
    linkageType: ''
    returnType: void
    signature: void set_main_thread(PyInterpreterState *interp, PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/pystate.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1015
    functionName: get_main_thread
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr_relaxed
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      get_main_thread(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1021
    functionName: _PyErr_SetInterpreterAlreadyRunning
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetInterpreterAlreadyRunning(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_main_thread
      Src: /src/cpython/Python/pystate.c:1026,1
    - Dst: _PyErr_SetInterpreterAlreadyRunning
      Src: /src/cpython/Python/pystate.c:1027,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1030,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:1031,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:1033,1
    - Dst: set_main_thread
      Src: /src/cpython/Python/pystate.c:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1040
    functionName: _PyInterpreterState_SetRunningMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyErr_SetInterpreterAlreadyRunning
    - get_main_thread
    - set_main_thread
    - _Py_EnsureTstateNotNULL
    - current_fast_get
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_SetRunningMain(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1045,1
    - Dst: get_main_thread
      Src: /src/cpython/Python/pystate.c:1045,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1045,1
    - Dst: set_main_thread
      Src: /src/cpython/Python/pystate.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (get_main_thread(interp) == current_fast_get())
      pos:
        line_end: 1044
        line_start: 1044
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1047
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1047
    functionName: _PyInterpreterState_SetNotRunningMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - set_main_thread
    - get_main_thread
    - assert
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_SetNotRunningMain(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_main_thread
      Src: /src/cpython/Python/pystate.c:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1062
    functionName: _PyInterpreterState_IsRunningMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - get_main_thread
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_IsRunningMain(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_main_thread
      Src: /src/cpython/Python/pystate.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1071
    functionName: _PyThreadState_IsRunningMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - get_main_thread
    linkageType: ''
    returnType: int
    signature: int _PyThreadState_IsRunningMain(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_main_thread
      Src: /src/cpython/Python/pystate.c:1077,1
    - Dst: set_main_thread
      Src: /src/cpython/Python/pystate.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1080
    functionName: _PyInterpreterState_ReinitRunningMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - set_main_thread
    - get_main_thread
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_ReinitRunningMain(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1091
    functionName: _PyInterpreterState_IsReady
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_IsReady(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - whence
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1104
    functionName: check_interpreter_whence
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_interpreter_whence(long whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1110,1
    - Dst: check_interpreter_whence
      Src: /src/cpython/Python/pystate.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (check_interpreter_whence(interp->_whence) == 0)
      pos:
        line_end: 1109
        line_start: 1109
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1112
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1112
    functionName: _PyInterpreterState_GetWhence
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - check_interpreter_whence
    - assert
    linkageType: ''
    returnType: long
    signature: long _PyInterpreterState_GetWhence(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1117,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1118,1
    - Dst: check_interpreter_whence
      Src: /src/cpython/Python/pystate.c:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - whence
    argTypes:
    - PyInterpreterState*
    - long
    assertStmts:
    - condition: (interp->_whence != _PyInterpreterState_WHENCE_NOTSET)
      pos:
        line_end: 1116
        line_start: 1116
        source_file: /src/cpython/Python/pystate.c
    - condition: (check_interpreter_whence(whence) == 0)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1120
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1120
    functionName: _PyInterpreterState_SetWhence
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - check_interpreter_whence
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_SetWhence(PyInterpreterState *interp, long
      whence)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_GetModulesRef
      Src: /src/cpython/Python/pystate.c:1127,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/pystate.c:1132,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pystate.c:1132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:1133,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pystate.c:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1123
    functionDepth: 9
    functionLinenumber: 1123
    functionLinenumberEnd: 1138
    functionName: _Py_GetMainModule
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyImport_GetModulesRef
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetMainModule(PyThreadState *tstate)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pystate.c:1144,1
    - Dst: _PyErr_SetModuleNotFoundError
      Src: /src/cpython/Python/pystate.c:1145,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pystate.c:1145,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/pystate.c:1149,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pystate.c:1151,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/pystate.c:1153,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pystate.c:1153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:1154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1159
    functionName: _Py_CheckMainModule
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - _Py_ID
    - _PyErr_SetModuleNotFoundError
    - Py_IS_TYPE
    - PyErr_SetImportError
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _Py_CheckMainModule(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:1166,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pystate.c:1168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1162
    functionDepth: 10
    functionLinenumber: 1162
    functionLinenumberEnd: 1173
    functionName: PyInterpreterState_GetDict
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 4
    functionsReached:
    - PyErr_Clear
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyInterpreterState_GetDict(PyInterpreterState *interp)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Python/pystate.c:1183,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystate.c:1184,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pystate.c:1186,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/pystate.c:1192,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pystate.c:1193,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystate.c:1198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:1205,1
    - Dst: return
      Src: /src/cpython/Python/pystate.c:1210,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/pystate.c:1215,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:1218,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Python/pystate.c:1225,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1231,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/pystate.c:1232,1
    - Dst: _PyInterpreterState_IDIncref
      Src: /src/cpython/Python/pystate.c:1238,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Python/pystate.c:1240,1
    - Dst: _PyInterpreterState_IDDecref
      Src: /src/cpython/Python/pystate.c:1245,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Python/pystate.c:1249,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/pystate.c:1253,1
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:1256,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Python/pystate.c:1257,1
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:1258,1
    - Dst: _PyInterpreterState_RequiresIDRef
      Src: /src/cpython/Python/pystate.c:1263,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Python/pystate.c:1269,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/pystate.c:1285,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1287,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:1288,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1291,1
    - Dst: interp_look_up_id
      Src: /src/cpython/Python/pystate.c:1298,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Python/pystate.c:1307,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Python/pystate.c:1317,1
    - Dst: interp_look_up_id
      Src: /src/cpython/Python/pystate.c:1323,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - idobj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (interpid < LLONG_MAX)
      pos:
        line_end: 1230
        line_start: 1230
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1325
      start: 1180
    functionDepth: 3
    functionLinenumber: 1180
    functionLinenumberEnd: 1325
    functionName: _PyInterpreterState_ObjectToID
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - Py_EndInterpreter
    - PyInterpreterState_Get
    - _PyInterpreterState_GetIDObject
    - _PyInterpreterState_IDIncref
    - PyErr_SetString
    - return
    - HEAD_UNLOCK
    - current_fast_get
    - _PyInterpreterState_IDDecref
    - interp_look_up_id
    - Py_FatalError
    - PyErr_Occurred
    - PyInterpreterState_Next
    - PyErr_Format
    - _PyInterpreterState_RequireIDRef
    - PyLong_FromLongLong
    - _Py_atomic_add_ssize
    - _PyThreadState_NewBound
    - Py_TYPE
    - _Py_EnsureTstateNotNULL
    - PyInterpreterState_GetID
    - _PyInterpreterState_LookUpID
    - PyLong_AsLongLong
    - _PyIndex_Check
    - _PyInterpreterState_RequiresIDRef
    - assert
    - _PyThreadState_Swap
    linkageType: ''
    returnType: int64_t
    signature: int64_t _PyInterpreterState_ObjectToID(PyObject *idobj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_ObjectToID
      Src: /src/cpython/Python/pystate.c:1336,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Python/pystate.c:1340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - requested_id
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1333
    functionDepth: 4
    functionLinenumber: 1333
    functionLinenumberEnd: 1341
    functionName: _PyInterpreterState_LookUpIDObject
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 8
    functionsReached:
    - _PyInterpreterState_LookUpID
    - _PyInterpreterState_ObjectToID
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyInterpreterState_LookUpIDObject(PyObject *requested_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1356
    functionName: tstate_is_alive
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tstate_is_alive(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1367,1
    - Dst: _PyObject_VirtualAlloc
      Src: /src/cpython/Python/pystate.c:1368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - size_in_bytes
    - previous
    argTypes:
    - int
    - _PyStackChunk*
    assertStmts:
    - condition: (size_in_bytes % sizeof(PyObject **) == 0)
      pos:
        line_end: 1366
        line_start: 1366
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1376
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1376
    functionName: allocate_chunk
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyObject_VirtualAlloc
    - assert
    linkageType: ''
    returnType: _PyStackChunk
    signature: '_PyStackChunk *

      allocate_chunk(int size_in_bytes, _PyStackChunk* previous)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Python/pystate.c:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1385
    functionName: reset_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void reset_threadstate(_PyThreadStateImpl *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Python/pystate.c:1393,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystate.c:1397,1
    - Dst: reset_threadstate
      Src: /src/cpython/Python/pystate.c:1401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1404
    functionName: alloc_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - reset_threadstate
    - _Py_atomic_exchange_ptr
    linkageType: ''
    returnType: _PyThreadStateImpl
    signature: '_PyThreadStateImpl *

      alloc_threadstate(PyInterpreterState *interp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset_threadstate
      Src: /src/cpython/Python/pystate.c:1414,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1415,1
    - Dst: _Py_atomic_store_ptr
      Src: /src/cpython/Python/pystate.c:1416,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:1419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts:
    - condition: (interp->threads.preallocated == NULL)
      pos:
        line_end: 1414
        line_start: 1414
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1421
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1421
    functionName: free_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - reset_threadstate
    - PyMem_RawFree
    - assert
    - _Py_atomic_store_ptr
    linkageType: ''
    returnType: void
    signature: void free_threadstate(_PyThreadStateImpl *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Python/pystate.c:1426,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1430
    functionName: decref_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_ssize
    - free_threadstate
    linkageType: ''
    returnType: void
    signature: void decref_threadstate(_PyThreadStateImpl *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1446,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1449,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/pystate.c:1452,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1455,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1456,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1458,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1459,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1462,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:1493,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:1494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 4
    argNames:
    - _tstate
    - interp
    - id
    - whence
    argTypes:
    - _PyThreadStateImpl*
    - PyInterpreterState*
    - uint64_t
    - int
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 1448
        line_start: 1448
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->next == NULL)
      pos:
        line_end: 1454
        line_start: 1454
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->prev == NULL)
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->_whence == _PyThreadState_WHENCE_NOTSET)
      pos:
        line_end: 1457
        line_start: 1457
        source_file: /src/cpython/Python/pystate.c
    - condition: (whence >= 0 && whence <= _PyThreadState_WHENCE_EXEC)
      pos:
        line_end: 1458
        line_start: 1458
        source_file: /src/cpython/Python/pystate.c
    - condition: (id > 0)
      pos:
        line_end: 1461
        line_start: 1461
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1501
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1501
    functionName: init_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uintptr_relaxed
    - llist_init
    - assert
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: "void init_threadstate(_PyThreadStateImpl *_tstate,\n                 PyInterpreterState
      *interp, uint64_t id, int whence)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1507,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1509,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - interp
    - tstate
    - next
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    - PyThreadState*
    assertStmts:
    - condition: (interp->threads.head != tstate)
      pos:
        line_end: 1506
        line_start: 1506
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->prev == NULL)
      pos:
        line_end: 1512
        line_start: 1512
        source_file: /src/cpython/Python/pystate.c
    - condition: (next->prev == NULL || next->prev == tstate)
      pos:
        line_end: 1508
        line_start: 1508
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1515
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1515
    functionName: add_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void add_threadstate(PyInterpreterState *interp, PyThreadState *tstate,\n
      \               PyThreadState *next)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_threadstate
      Src: /src/cpython/Python/pystate.c:1521,1
    - Dst: _Py_qsbr_reserve
      Src: /src/cpython/Python/pystate.c:1527,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1529,1
    - Dst: _Py_ReserveTLBCIndex
      Src: /src/cpython/Python/pystate.c:1532,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1534,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:1540,1
    - Dst: init_threadstate
      Src: /src/cpython/Python/pystate.c:1545,1
    - Dst: add_threadstate
      Src: /src/cpython/Python/pystate.c:1549,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1551,1
    - Dst: _Py_qsbr_register
      Src: /src/cpython/Python/pystate.c:1555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - interp
    - whence
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1517
    functionDepth: 3
    functionLinenumber: 1517
    functionLinenumberEnd: 1560
    functionName: new_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_qsbr_register
    - init_threadstate
    - alloc_threadstate
    - _Py_ReserveTLBCIndex
    - HEAD_LOCK
    - add_threadstate
    - HEAD_UNLOCK
    - free_threadstate
    - _Py_qsbr_reserve
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      new_threadstate(PyInterpreterState *interp, int whence)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/pystate.c:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1566
    functionName: PyThreadState_New
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_NewBound
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_New(PyInterpreterState *interp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_threadstate
      Src: /src/cpython/Python/pystate.c:1571,1
    - Dst: bind_tstate
      Src: /src/cpython/Python/pystate.c:1573,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:1576,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - whence
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1568
    functionDepth: 4
    functionLinenumber: 1568
    functionLinenumberEnd: 1581
    functionName: _PyThreadState_NewBound
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - gilstate_get
    - bind_tstate
    - new_threadstate
    - bind_gilstate_tstate
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_NewBound(PyInterpreterState *interp, int whence)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_threadstate
      Src: /src/cpython/Python/pystate.c:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - whence
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1584
    functionDepth: 4
    functionLinenumber: 1584
    functionLinenumberEnd: 1588
    functionName: _PyThreadState_New
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - new_threadstate
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_New(PyInterpreterState *interp, int whence)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_New
      Src: /src/cpython/Python/pystate.c:1594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1592
    functionDepth: 5
    functionLinenumber: 1592
    functionLinenumberEnd: 1595
    functionName: _PyThreadState_Prealloc
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_New
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Prealloc(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1600
    functionDepth: 1
    functionLinenumber: 1600
    functionLinenumberEnd: 1603
    functionName: _PyThreadState_Init
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Init(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VirtualFree
      Src: /src/cpython/Python/pystate.c:1613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1616
    functionName: clear_datastack
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyObject_VirtualFree
    linkageType: ''
    returnType: void
    signature: void clear_datastack(PyThreadState *tstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1621,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1622,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1622,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1623,1
    - Dst: _PyThreadState_IsRunningMain
      Src: /src/cpython/Python/pystate.c:1623,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pystate.c:1634,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystate.c:1646,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystate.c:1651,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/pystate.c:1652,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1668,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1669,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1671,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1672,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/pystate.c:1675,1
    - Dst: llist_concat
      Src: /src/cpython/Python/pystate.c:1678,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pystate.c:1680,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1682,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1683,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1685,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1687,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystate.c:1691,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Python/pystate.c:1696,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Python/pystate.c:1700,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1704,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1705,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1707,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1708,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1710,1
    - Dst: _Py_freelists_GET
      Src: /src/cpython/Python/pystate.c:1714,1
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/pystate.c:1715,1
    - Dst: _PyObject_FinalizePerThreadRefcounts
      Src: /src/cpython/Python/pystate.c:1719,1
    - Dst: _Py_brc_remove_thread
      Src: /src/cpython/Python/pystate.c:1722,1
    - Dst: _Py_ClearTLBCIndex
      Src: /src/cpython/Python/pystate.c:1726,1
    - Dst: _PyMem_AbandonDelayed
      Src: /src/cpython/Python/pystate.c:1730,1
    - Dst: _PyThreadState_ClearMimallocHeaps
      Src: /src/cpython/Python/pystate.c:1732,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!_PyThreadState_IsRunningMain(tstate))
      pos:
        line_end: 1622
        line_start: 1622
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->_status.initialized && !tstate->_status.cleared)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/cpython/Python/pystate.c
    - condition: (current_fast_get()->interp == tstate->interp)
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1738
      start: 1618
    functionDepth: 8
    functionLinenumber: 1618
    functionLinenumberEnd: 1738
    functionName: PyThreadState_Clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 7
    functionsReached:
    - FT_ATOMIC_ADD_SSIZE
    - _PyObject_FinalizePerThreadRefcounts
    - _PyErr_Print
    - llist_concat
    - _Py_freelists_GET
    - _PyThreadState_IsRunningMain
    - _Py_brc_remove_thread
    - _PyInterpreterState_GetConfig
    - PyMutex_Lock
    - _Py_ClearTLBCIndex
    - _PyMem_AbandonDelayed
    - PyMutex_Unlock
    - _PyObject_ClearFreeLists
    - fprintf
    - Py_CLEAR
    - _PyThreadState_ClearMimallocHeaps
    - assert
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void PyThreadState_Clear(PyThreadState *tstate)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1747,1
    - Dst: tstate_verify_not_active
      Src: /src/cpython/Python/pystate.c:1748,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1749,1
    - Dst: _PyThreadState_IsRunningMain
      Src: /src/cpython/Python/pystate.c:1749,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1753,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:1757,1
    - Dst: decrement_stoptheworld_countdown
      Src: /src/cpython/Python/pystate.c:1771,1
    - Dst: decrement_stoptheworld_countdown
      Src: /src/cpython/Python/pystate.c:1774,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1783,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1786,1
    - Dst: unbind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:1791,1
    - Dst: unbind_tstate
      Src: /src/cpython/Python/pystate.c:1794,1
    - Dst: clear_datastack
      Src: /src/cpython/Python/pystate.c:1798,1
    - Dst: _PyEval_ReleaseLock
      Src: /src/cpython/Python/pystate.c:1801,1
    - Dst: _Py_qsbr_unregister
      Src: /src/cpython/Python/pystate.c:1805,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - tstate
    - release_gil
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (tstate->_status.cleared && !tstate->_status.finalized)
      pos:
        line_end: 1746
        line_start: 1746
        source_file: /src/cpython/Python/pystate.c
    - condition: (!_PyThreadState_IsRunningMain(tstate))
      pos:
        line_end: 1748
        line_start: 1748
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_impl->refcounts.values == NULL)
      pos:
        line_end: 1782
        line_start: 1782
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1809
      start: 1744
    functionDepth: 2
    functionLinenumber: 1744
    functionLinenumberEnd: 1809
    functionName: tstate_delete_common
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - clear_datastack
    - Py_FatalError
    - _PyEval_ReleaseLock
    - HEAD_LOCK
    - _PyThreadState_IsRunningMain
    - decrement_stoptheworld_countdown
    - HEAD_UNLOCK
    - unbind_gilstate_tstate
    - _Py_qsbr_unregister
    - tstate_verify_not_active
    - unbind_tstate
    - assert
    linkageType: ''
    returnType: void
    signature: void tstate_delete_common(PyThreadState *tstate, int release_gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tstate_verify_not_active
      Src: /src/cpython/Python/pystate.c:1822,1
    - Dst: tstate_delete_common
      Src: /src/cpython/Python/pystate.c:1823,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1826
    functionName: zapthreads
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - tstate_verify_not_active
    - free_threadstate
    - tstate_delete_common
    linkageType: ''
    returnType: void
    signature: void zapthreads(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:1832,1
    - Dst: tstate_verify_not_active
      Src: /src/cpython/Python/pystate.c:1833,1
    - Dst: tstate_delete_common
      Src: /src/cpython/Python/pystate.c:1834,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1829
    functionDepth: 3
    functionLinenumber: 1829
    functionLinenumberEnd: 1836
    functionName: PyThreadState_Delete
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 4
    functionsReached:
    - tstate_verify_not_active
    - _Py_EnsureTstateNotNULL
    - free_threadstate
    - tstate_delete_common
    linkageType: ''
    returnType: void
    signature: void PyThreadState_Delete(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:1842,1
    - Dst: _Py_qsbr_detach
      Src: /src/cpython/Python/pystate.c:1844,1
    - Dst: current_fast_clear
      Src: /src/cpython/Python/pystate.c:1846,1
    - Dst: tstate_delete_common
      Src: /src/cpython/Python/pystate.c:1847,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1839
    functionDepth: 3
    functionLinenumber: 1839
    functionLinenumberEnd: 1849
    functionName: _PyThreadState_DeleteCurrent
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - tstate_delete_common
    - current_fast_clear
    - free_threadstate
    - _Py_EnsureTstateNotNULL
    - _Py_qsbr_detach
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_DeleteCurrent(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1854,1
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/cpython/Python/pystate.c:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1851
    functionDepth: 4
    functionLinenumber: 1851
    functionLinenumberEnd: 1856
    functionName: PyThreadState_DeleteCurrent
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_DeleteCurrent
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void PyThreadState_DeleteCurrent(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1871,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1876,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:1879,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1870
        line_start: 1870
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime->stoptheworld.world_stopped)
      pos:
        line_end: 1875
        line_start: 1875
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1897
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 1897
    functionName: _PyThreadState_RemoveExcept
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - HEAD_UNLOCK
    - HEAD_LOCK
    - assert
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_RemoveExcept(PyThreadState *tstate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1911,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:1916,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1918,1
    - Dst: decref_threadstate
      Src: /src/cpython/Python/pystate.c:1921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - list
    - is_after_fork
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (!_PyRuntime.stoptheworld.world_stopped)
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1924
      start: 1906
    functionDepth: 9
    functionLinenumber: 1906
    functionLinenumberEnd: 1924
    functionName: _PyThreadState_DeleteList
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - decref_threadstate
    - free_threadstate
    - PyThreadState_Clear
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_DeleteList(PyThreadState *list, int is_after_fork)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1940,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:1942,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pystate.c:1944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1939
        line_start: 1939
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1948
      start: 1937
    functionDepth: 10
    functionLinenumber: 1937
    functionLinenumberEnd: 1948
    functionName: _PyThreadState_GetDict
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyErr_Clear
    - PyDict_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyThreadState_GetDict(PyThreadState *tstate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1954,1
    - Dst: _PyThreadState_GetDict
      Src: /src/cpython/Python/pystate.c:1958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1951
    functionDepth: 11
    functionLinenumber: 1951
    functionLinenumberEnd: 1959
    functionName: PyThreadState_GetDict
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 8
    functionsReached:
    - _PyThreadState_GetDict
    - current_fast_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadState_GetDict(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1964
        line_start: 1964
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1967
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1967
    functionName: PyThreadState_GetInterpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyThreadState_GetInterpreter(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1973,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/pystate.c:1974,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/pystate.c:1978,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pystate.c:1980,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/pystate.c:1982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1972
        line_start: 1972
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1983
      start: 1970
    functionDepth: 1
    functionLinenumber: 1970
    functionLinenumberEnd: 1983
    functionName: PyThreadState_GetFrame
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 10
    functionsReached:
    - _PyThreadState_GetFrame
    - Py_XNewRef
    - _PyFrame_GetFrameObject
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyThreadState_GetFrame(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1988
        line_start: 1988
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1991
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 1991
    functionName: PyThreadState_GetID
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t PyThreadState_GetID(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1997,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1999,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:1999,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2000,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2002,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2003,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:2005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1996
        line_start: 1996
        source_file: /src/cpython/Python/pystate.c
    - condition: "(!tstate->_status.bound_gilstate ||\n           tstate == gilstate_get())"
      pos:
        line_end: 2002
        line_start: 2001
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 1998
        line_start: 1998
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.active)
      pos:
        line_end: 1999
        line_start: 1999
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2009
      start: 1994
    functionDepth: 2
    functionLinenumber: 1994
    functionLinenumberEnd: 2009
    functionName: tstate_activate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - tstate_is_bound
    - assert
    - bind_gilstate_tstate
    linkageType: ''
    returnType: void
    signature: void tstate_activate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2014,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2016,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:2016,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2013
        line_start: 2013
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 2015
        line_start: 2015
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->_status.active)
      pos:
        line_end: 2016
        line_start: 2016
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2023
      start: 2011
    functionDepth: 1
    functionLinenumber: 2011
    functionLinenumberEnd: 2023
    functionName: tstate_deactivate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - tstate_is_bound
    - assert
    linkageType: ''
    returnType: void
    signature: void tstate_deactivate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/pystate.c:2030,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->state == _Py_THREAD_DETACHED)
      pos:
        line_end: 2033
        line_start: 2033
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2038
      start: 2025
    functionDepth: 0
    functionLinenumber: 2025
    functionLinenumberEnd: 2038
    functionName: tstate_try_attach
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_int
    - assert
    linkageType: ''
    returnType: int
    signature: int tstate_try_attach(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2043,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2043,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tstate
    - detached_state
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED)
      pos:
        line_end: 2042
        line_start: 2042
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2049
      start: 2040
    functionDepth: 0
    functionLinenumber: 2040
    functionLinenumberEnd: 2049
    functionName: tstate_set_detached
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int
    - assert
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: void tstate_set_detached(PyThreadState *tstate, int detached_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2055,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/pystate.c:2058,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/pystate.c:2063,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2066,1
    - Dst: tstate_try_attach
      Src: /src/cpython/Python/pystate.c:2069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (state == _Py_THREAD_DETACHED)
      pos:
        line_end: 2065
        line_start: 2065
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2070
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2070
    functionName: tstate_wait_attach
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_HangThread
    - _Py_atomic_load_int_relaxed
    - _PyParkingLot_Park
    - tstate_try_attach
    - assert
    linkageType: ''
    returnType: void
    signature: void tstate_wait_attach(PyThreadState *tstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2081,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2082,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:2083,1
    - Dst: _Py_InitializeRecursionLimits
      Src: /src/cpython/Python/pystate.c:2087,1
    - Dst: _PyEval_AcquireLock
      Src: /src/cpython/Python/pystate.c:2091,1
    - Dst: current_fast_set
      Src: /src/cpython/Python/pystate.c:2094,1
    - Dst: tstate_try_attach
      Src: /src/cpython/Python/pystate.c:2095,1
    - Dst: tstate_wait_attach
      Src: /src/cpython/Python/pystate.c:2096,1
    - Dst: tstate_activate
      Src: /src/cpython/Python/pystate.c:2098,1
    - Dst: _PyEval_IsGILEnabled
      Src: /src/cpython/Python/pystate.c:2101,1
    - Dst: tstate_set_detached
      Src: /src/cpython/Python/pystate.c:2106,1
    - Dst: tstate_deactivate
      Src: /src/cpython/Python/pystate.c:2107,1
    - Dst: current_fast_clear
      Src: /src/cpython/Python/pystate.c:2108,1
    - Dst: _Py_qsbr_attach
      Src: /src/cpython/Python/pystate.c:2111,1
    - Dst: _PyCriticalSection_Resume
      Src: /src/cpython/Python/pystate.c:2119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2072
    functionDepth: 3
    functionLinenumber: 2072
    functionLinenumberEnd: 2125
    functionName: _PyThreadState_Attach
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyEval_AcquireLock
    - tstate_activate
    - Py_FatalError
    - tstate_deactivate
    - _Py_qsbr_attach
    - _Py_InitializeRecursionLimits
    - current_fast_clear
    - current_fast_set
    - tstate_wait_attach
    - tstate_try_attach
    - _PyCriticalSection_Resume
    - _PyEval_IsGILEnabled
    - tstate_set_detached
    - _Py_EnsureTstateNotNULL
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Attach(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2131,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2131,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2132,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2132,1
    - Dst: _PyCriticalSection_SuspendAll
      Src: /src/cpython/Python/pystate.c:2134,1
    - Dst: _Py_qsbr_detach
      Src: /src/cpython/Python/pystate.c:2137,1
    - Dst: tstate_deactivate
      Src: /src/cpython/Python/pystate.c:2139,1
    - Dst: tstate_set_detached
      Src: /src/cpython/Python/pystate.c:2140,1
    - Dst: current_fast_clear
      Src: /src/cpython/Python/pystate.c:2141,1
    - Dst: _PyEval_ReleaseLock
      Src: /src/cpython/Python/pystate.c:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tstate
    - detached_state
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED)
      pos:
        line_end: 2130
        line_start: 2130
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate == current_fast_get())
      pos:
        line_end: 2131
        line_start: 2131
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2143
      start: 2127
    functionDepth: 2
    functionLinenumber: 2127
    functionLinenumberEnd: 2143
    functionName: detach_thread
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - assert
    - _Py_atomic_load_int_relaxed
    - tstate_deactivate
    - _PyEval_ReleaseLock
    - current_fast_clear
    - _PyCriticalSection_SuspendAll
    - tstate_set_detached
    - _Py_qsbr_detach
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void detach_thread(PyThreadState *tstate, int detached_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detach_thread
      Src: /src/cpython/Python/pystate.c:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2149
    functionName: _PyThreadState_Detach
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - detach_thread
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Detach(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2156,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2156,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2159,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2166,1
    - Dst: detach_thread
      Src: /src/cpython/Python/pystate.c:2171,1
    - Dst: detach_thread
      Src: /src/cpython/Python/pystate.c:2176,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2179,1
    - Dst: decrement_stoptheworld_countdown
      Src: /src/cpython/Python/pystate.c:2180,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED)
      pos:
        line_end: 2155
        line_start: 2155
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2182
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2182
    functionName: _PyThreadState_Suspend
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - HEAD_LOCK
    - decrement_stoptheworld_countdown
    - HEAD_UNLOCK
    - detach_thread
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Suspend(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2187,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2184
    functionDepth: 1
    functionLinenumber: 2184
    functionLinenumberEnd: 2191
    functionName: _PyThreadState_SetShuttingDown
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _Py_atomic_store_int
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_SetShuttingDown(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2198,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Python/pystate.c:2200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (stw->thread_countdown > 0)
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2202
      start: 2195
    functionDepth: 1
    functionLinenumber: 2195
    functionLinenumberEnd: 2202
    functionName: decrement_stoptheworld_countdown
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyEvent_Notify
    - assert
    linkageType: ''
    returnType: void
    signature: void decrement_stoptheworld_countdown(struct _stoptheworld_state *stw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Python/pystate.c:2213,1
    - Dst: _Py_CONTAINER_OF
      Src: /src/cpython/Python/pystate.c:2214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2215
    functionName: interp_for_stop_the_world
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_CONTAINER_OF
    - PyInterpreterState_Head
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      interp_for_stop_the_world(struct _stoptheworld_state *stw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stw
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2220
    functionDepth: 0
    functionLinenumber: 2220
    functionLinenumberEnd: 2223
    functionName: _Py_FOR_EACH_STW_INTERP
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_FOR_EACH_STW_INTERP(stw, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2233,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/pystate.c:2236,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2242,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (stw->thread_countdown >= 0)
      pos:
        line_end: 2246
        line_start: 2246
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2249
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2249
    functionName: park_detached_threads
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_int
    - _Py_set_eval_breaker_bit
    - assert
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: bool
    signature: bool park_detached_threads(struct _stoptheworld_state *stw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2233,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/pystate.c:2236,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2231
    functionDepth: 1
    functionLinenumber: 2231
    functionLinenumberEnd: 2245
    functionName: _Py_FOR_EACH_STW_INTERP
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_int
    - _Py_set_eval_breaker_bit
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_STW_INTERP(stw, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2233,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/pystate.c:2236,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2232
    functionDepth: 1
    functionLinenumber: 2232
    functionLinenumberEnd: 2244
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_int
    - _Py_set_eval_breaker_bit
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(i, t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/pystate.c:2256,1
    - Dst: _PyRWMutex_Lock
      Src: /src/cpython/Python/pystate.c:2258,1
    - Dst: _PyRWMutex_RLock
      Src: /src/cpython/Python/pystate.c:2261,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2264,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystate.c:2268,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2280,1
    - Dst: park_detached_threads
      Src: /src/cpython/Python/pystate.c:2287,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2288,1
    - Dst: PyEvent_WaitTimed
      Src: /src/cpython/Python/pystate.c:2296,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2297,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (stw->thread_countdown == 0)
      pos:
        line_end: 2296
        line_start: 2296
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2304
      start: 2251
    functionDepth: 2
    functionLinenumber: 2251
    functionLinenumberEnd: 2304
    functionName: stop_the_world
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - park_detached_threads
    - HEAD_LOCK
    - _PyRWMutex_Lock
    - PyMutex_Lock
    - _PyThreadState_GET
    - PyEvent_WaitTimed
    - HEAD_UNLOCK
    - _PyRWMutex_RLock
    - assert
    linkageType: ''
    returnType: void
    signature: void stop_the_world(struct _stoptheworld_state *stw)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2270
    functionDepth: 0
    functionLinenumber: 2270
    functionLinenumberEnd: 2277
    functionName: _Py_FOR_EACH_STW_INTERP
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_STW_INTERP(stw, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2276
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(i, t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2310,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Python/pystate.c:2310,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2312,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2319,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2319,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2321,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2322,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2327,1
    - Dst: _PyRWMutex_Unlock
      Src: /src/cpython/Python/pystate.c:2329,1
    - Dst: _PyRWMutex_RUnlock
      Src: /src/cpython/Python/pystate.c:2332,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pystate.c:2334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (PyMutex_IsLocked(&stw->mutex))
      pos:
        line_end: 2309
        line_start: 2309
        source_file: /src/cpython/Python/pystate.c
    - condition: "(_Py_atomic_load_int_relaxed(&t->state) ==\n                       _Py_THREAD_SUSPENDED)"
      pos:
        line_end: 2319
        line_start: 2318
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2335
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2335
    functionName: start_the_world
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _PyRWMutex_Unlock
    - _Py_atomic_load_int_relaxed
    - HEAD_LOCK
    - _PyRWMutex_RUnlock
    - _Py_atomic_store_int
    - HEAD_UNLOCK
    - PyMutex_Unlock
    - PyMutex_IsLocked
    - assert
    linkageType: ''
    returnType: void
    signature: void start_the_world(struct _stoptheworld_state *stw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2319,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2319,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2321,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(_Py_atomic_load_int_relaxed(&t->state) ==\n                       _Py_THREAD_SUSPENDED)"
      pos:
        line_end: 2319
        line_start: 2318
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2325
      start: 2316
    functionDepth: 1
    functionLinenumber: 2316
    functionLinenumberEnd: 2325
    functionName: _Py_FOR_EACH_STW_INTERP
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _Py_atomic_store_int
    - assert
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_STW_INTERP(stw, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2319,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2319,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2321,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(_Py_atomic_load_int_relaxed(&t->state) ==\n                       _Py_THREAD_SUSPENDED)"
      pos:
        line_end: 2319
        line_start: 2318
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2324
      start: 2317
    functionDepth: 1
    functionLinenumber: 2317
    functionLinenumberEnd: 2324
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _Py_atomic_store_int
    - assert
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(i, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_the_world
      Src: /src/cpython/Python/pystate.c:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2338
    functionDepth: 3
    functionLinenumber: 2338
    functionLinenumberEnd: 2344
    functionName: _PyEval_StopTheWorldAll
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - stop_the_world
    linkageType: ''
    returnType: void
    signature: void _PyEval_StopTheWorldAll(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_the_world
      Src: /src/cpython/Python/pystate.c:2350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2346
    functionDepth: 2
    functionLinenumber: 2346
    functionLinenumberEnd: 2352
    functionName: _PyEval_StartTheWorldAll
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - start_the_world
    linkageType: ''
    returnType: void
    signature: void _PyEval_StartTheWorldAll(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_the_world
      Src: /src/cpython/Python/pystate.c:2358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2354
    functionDepth: 3
    functionLinenumber: 2354
    functionLinenumberEnd: 2360
    functionName: _PyEval_StopTheWorld
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 22
    functionsReached:
    - stop_the_world
    linkageType: ''
    returnType: void
    signature: void _PyEval_StopTheWorld(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_the_world
      Src: /src/cpython/Python/pystate.c:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2362
    functionDepth: 2
    functionLinenumber: 2362
    functionLinenumberEnd: 2368
    functionName: _PyEval_StartTheWorld
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 22
    functionsReached:
    - start_the_world
    linkageType: ''
    returnType: void
    signature: void _PyEval_StartTheWorld(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/pystate.c:2387,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/pystate.c:2402,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/pystate.c:2412,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Python/pystate.c:2413,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pystate.c:2415,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - id
    - exc
    argTypes:
    - unsigned long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2420
    functionName: PyThreadState_SetAsyncExc
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyInterpreterState_GET
    - _Py_atomic_exchange_ptr
    - Py_XINCREF
    - _Py_set_eval_breaker_bit
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: int
    signature: int PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2396
    functionDepth: 0
    functionLinenumber: 2396
    functionLinenumberEnd: 2401
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2426
    functionDepth: 1
    functionLinenumber: 2426
    functionLinenumberEnd: 2430
    functionName: PyThreadState_GetUnchecked
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - current_fast_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_GetUnchecked(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2436,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2433
    functionDepth: 1
    functionLinenumber: 2433
    functionLinenumberEnd: 2439
    functionName: PyThreadState_Get
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 472
    functionsReached:
    - _Py_EnsureTstateNotNULL
    - current_fast_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Get(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2444,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/pystate.c:2446,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pystate.c:2449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - runtime
    - newts
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2441
    functionDepth: 4
    functionLinenumber: 2441
    functionLinenumberEnd: 2452
    functionName: _PyThreadState_Swap
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_Detach
    - _PyThreadState_Attach
    - current_fast_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_Swap(_PyRuntimeState *runtime, PyThreadState *newts)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newts
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2454
    functionDepth: 5
    functionLinenumber: 2454
    functionLinenumberEnd: 2458
    functionName: PyThreadState_Swap
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 11
    functionsReached:
    - _PyThreadState_Swap
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Swap(PyThreadState *newts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2466,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/pystate.c:2466,1
    - Dst: bind_tstate
      Src: /src/cpython/Python/pystate.c:2468,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2471,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:2472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 2465
        line_start: 2465
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2474
      start: 2461
    functionDepth: 3
    functionLinenumber: 2461
    functionLinenumberEnd: 2474
    functionName: _PyThreadState_Bind
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - bind_gilstate_tstate
    - _PyThreadState_CheckConsistency
    - gilstate_get
    - bind_tstate
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Bind(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2477
    functionDepth: 0
    functionLinenumber: 2477
    functionLinenumberEnd: 2488
    functionName: _Py_GetThreadLocal_Addr
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_GetThreadLocal_Addr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2498
    functionDepth: 0
    functionLinenumber: 2498
    functionLinenumberEnd: 2502
    functionName: PyInterpreterState_Head
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_Head(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/pystate.c:2507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2504
    functionDepth: 1
    functionLinenumber: 2504
    functionLinenumberEnd: 2508
    functionName: PyInterpreterState_Main
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 13
    functionsReached:
    - _PyInterpreterState_Main
    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: 2513
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2513
    functionName: PyInterpreterState_Next
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 5
    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: 2518
      start: 2515
    functionDepth: 0
    functionLinenumber: 2515
    functionLinenumberEnd: 2518
    functionName: PyInterpreterState_ThreadHead
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    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: 2523
      start: 2520
    functionDepth: 0
    functionLinenumber: 2520
    functionLinenumberEnd: 2523
    functionName: PyThreadState_Next
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Next(PyThreadState *tstate)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2539,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pystate.c:2540,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:2544,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Python/pystate.c:2555,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2556,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/pystate.c:2561,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2565,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/pystate.c:2569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2571,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2575,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:2584,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2587,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Python/pystate.c:2588,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2535
    functionDepth: 10
    functionLinenumber: 2535
    functionLinenumberEnd: 2590
    functionName: _PyThread_CurrentFrames
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetFirstComplete
    - Py_DECREF
    - PyDict_SetItem
    - _PyEval_StopTheWorldAll
    - HEAD_LOCK
    - _PyFrame_GetFrameObject
    - HEAD_UNLOCK
    - PyDict_New
    - PyLong_FromUnsignedLong
    - _PySys_Audit
    - _PyEval_StartTheWorldAll
    - Py_CLEAR
    - current_fast_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyThread_CurrentFrames(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/pystate.c:2561,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2565,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/pystate.c:2569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2571,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2575,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2559
    functionDepth: 9
    functionLinenumber: 2559
    functionLinenumberEnd: 2579
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetFirstComplete
    - PyDict_SetItem
    - Py_DECREF
    - PyLong_FromUnsignedLong
    - _PyFrame_GetFrameObject
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(i, t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2601,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2603,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pystate.c:2605,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:2609,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Python/pystate.c:2620,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2621,1
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/pystate.c:2625,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2629,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2634,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pystate.c:2636,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2639,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:2648,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2651,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Python/pystate.c:2652,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(exc == NULL ||\n                   exc == Py_None ||\n                   PyExceptionInstance_Check(exc))"
      pos:
        line_end: 2635
        line_start: 2633
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2654
      start: 2597
    functionDepth: 10
    functionLinenumber: 2597
    functionLinenumberEnd: 2654
    functionName: _PyThread_CurrentExceptions
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - Py_CLEAR
    - _PyErr_GetTopmostException
    - _PyEval_StopTheWorldAll
    - HEAD_LOCK
    - HEAD_UNLOCK
    - PyDict_New
    - PyLong_FromUnsignedLong
    - _PySys_Audit
    - _PyEval_StartTheWorldAll
    - _Py_EnsureTstateNotNULL
    - PyExceptionInstance_Check
    - assert
    - current_fast_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyThread_CurrentExceptions(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/pystate.c:2625,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2629,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2634,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pystate.c:2636,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(exc == NULL ||\n                   exc == Py_None ||\n                   PyExceptionInstance_Check(exc))"
      pos:
        line_end: 2635
        line_start: 2633
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2643
      start: 2624
    functionDepth: 9
    functionLinenumber: 2624
    functionLinenumberEnd: 2643
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyLong_FromUnsignedLong
    - _PyErr_GetTopmostException
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(i, t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pystate.c:2667,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:2670,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2673,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2673,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2674,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:2676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (gilstate_get() == NULL)
      pos:
        line_end: 2672
        line_start: 2672
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime->gilstate.autoInterpreterState == NULL)
      pos:
        line_end: 2673
        line_start: 2673
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2677
      start: 2664
    functionDepth: 1
    functionLinenumber: 2664
    functionLinenumberEnd: 2677
    functionName: _PyGILState_Init
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - _PyStatus_OK
    - _Py_IsMainInterpreter
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyGILState_Init(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pystate.c:2682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2679
    functionDepth: 1
    functionLinenumber: 2679
    functionLinenumberEnd: 2688
    functionName: _PyGILState_Fini
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: void
    signature: void _PyGILState_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2696,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2697,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pystate.c:2699,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2708,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2709,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2709,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2695
        line_start: 2695
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime->gilstate.autoInterpreterState == tstate->interp)
      pos:
        line_end: 2707
        line_start: 2707
        source_file: /src/cpython/Python/pystate.c
    - condition: (gilstate_get() == tstate)
      pos:
        line_end: 2708
        line_start: 2708
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->interp != NULL)
      pos:
        line_end: 2696
        line_start: 2696
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->gilstate_counter == 1)
      pos:
        line_end: 2709
        line_start: 2709
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2712
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2712
    functionName: _PyGILState_SetTstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - _Py_IsMainInterpreter
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyGILState_SetTstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2714
    functionDepth: 0
    functionLinenumber: 2714
    functionLinenumberEnd: 2718
    functionName: _PyGILState_GetInterpreterStateUnsafe
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyGILState_GetInterpreterStateUnsafe(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2726
    functionName: PyGILState_GetThisThreadState
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 5
    functionsReached:
    - gilstate_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyGILState_GetThisThreadState(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2736,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2728
    functionDepth: 1
    functionLinenumber: 2728
    functionLinenumberEnd: 2743
    functionName: PyGILState_Check
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - current_fast_get
    linkageType: ''
    returnType: int
    signature: int PyGILState_Check(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_ThreadsInitialized
      Src: /src/cpython/Python/pystate.c:2762,1
    - Dst: PyThread_hang_thread
      Src: /src/cpython/Python/pystate.c:2763,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2766,1
    - Dst: new_threadstate
      Src: /src/cpython/Python/pystate.c:2771,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:2774,1
    - Dst: bind_tstate
      Src: /src/cpython/Python/pystate.c:2776,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:2777,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2781,1
    - Dst: holds_gil
      Src: /src/cpython/Python/pystate.c:2786,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Python/pystate.c:2790,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tcur->gilstate_counter == 1)
      pos:
        line_end: 2780
        line_start: 2780
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2801
      start: 2745
    functionDepth: 4
    functionLinenumber: 2745
    functionLinenumberEnd: 2801
    functionName: PyGILState_Ensure
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 30
    functionsReached:
    - bind_gilstate_tstate
    - Py_FatalError
    - gilstate_get
    - PyThread_hang_thread
    - holds_gil
    - PyEval_RestoreThread
    - _PyEval_ThreadsInitialized
    - bind_tstate
    - new_threadstate
    - assert
    linkageType: ''
    returnType: PyGILState_STATE
    signature: PyGILState_STATE PyGILState_Ensure(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2806,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:2808,1
    - Dst: holds_gil
      Src: /src/cpython/Python/pystate.c:2813,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/pystate.c:2814,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2819,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2826,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:2832,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2839,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2840,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2840,1
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/cpython/Python/pystate.c:2841,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Python/pystate.c:2845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - oldstate
    argTypes:
    - PyGILState_STATE
    assertStmts:
    - condition: (tstate->gilstate_counter >= 0)
      pos:
        line_end: 2818
        line_start: 2818
        source_file: /src/cpython/Python/pystate.c
    - condition: (oldstate == PyGILState_UNLOCKED)
      pos:
        line_end: 2825
        line_start: 2825
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->gilstate_counter == 0)
      pos:
        line_end: 2838
        line_start: 2838
        source_file: /src/cpython/Python/pystate.c
    - condition: (current_fast_get() == tstate)
      pos:
        line_end: 2839
        line_start: 2839
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2847
      start: 2803
    functionDepth: 9
    functionLinenumber: 2803
    functionLinenumberEnd: 2847
    functionName: PyGILState_Release
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 30
    functionsReached:
    - Py_FatalError
    - gilstate_get
    - PyThreadState_Clear
    - holds_gil
    - _Py_FatalErrorFormat
    - PyEval_SaveThread
    - _PyThreadState_DeleteCurrent
    - assert
    - current_fast_get
    linkageType: ''
    returnType: void
    signature: void PyGILState_Release(PyGILState_STATE oldstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2854
    functionDepth: 0
    functionLinenumber: 2854
    functionLinenumberEnd: 2861
    functionName: _PyInterpreterState_GetEvalFrameFunc
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyFrameEvalFunction
    signature: _PyFrameEvalFunction _PyInterpreterState_GetEvalFrameFunc(PyInterpreterState
      *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/pystate.c:2876,1
    - Dst: RARE_EVENT_INC
      Src: /src/cpython/Python/pystate.c:2879,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/pystate.c:2880,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/pystate.c:2882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - interp
    - eval_frame
    argTypes:
    - PyInterpreterState*
    - _PyFrameEvalFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2864
    functionDepth: 4
    functionLinenumber: 2864
    functionLinenumberEnd: 2883
    functionName: _PyInterpreterState_SetEvalFrameFunc
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    - RARE_EVENT_INC
    - _Py_Executors_InvalidateAll
    linkageType: ''
    returnType: void
    signature: "void _PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp,\n
      \                                    _PyFrameEvalFunction eval_frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2886
    functionDepth: 0
    functionLinenumber: 2886
    functionLinenumberEnd: 2890
    functionName: _PyInterpreterState_GetConfig
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: PyConfig
    signature: 'PyConfig *

      _PyInterpreterState_GetConfig(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2896,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2897,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pystate.c:2898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2893
    functionDepth: 1
    functionLinenumber: 2893
    functionLinenumberEnd: 2899
    functionName: _Py_GetConfig
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 12
    functionsReached:
    - _PyInterpreterState_GetConfig
    - _Py_EnsureTstateNotNULL
    - current_fast_get
    linkageType: ''
    returnType: PyConfig
    signature: 'PyConfig *

      _Py_GetConfig(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - feature
    argTypes:
    - PyInterpreterState*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2902
    functionDepth: 0
    functionLinenumber: 2902
    functionLinenumberEnd: 2906
    functionName: _PyInterpreterState_HasFeature
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_HasFeature(PyInterpreterState *interp, unsigned
      long feature)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: allocate_chunk
      Src: /src/cpython/Python/pystate.c:2918,1
    - Dst: tstate::tstate
      Src: /src/cpython/Python/pystate.c:2926,1
    - Dst: previous::previous
      Src: /src/cpython/Python/pystate.c:2931,1
    - Dst: data::data
      Src: /src/cpython/Python/pystate.c:2931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2911
    functionDepth: 2
    functionLinenumber: 2911
    functionLinenumberEnd: 2934
    functionName: push_chunk
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - allocate_chunk
    - data::data
    - previous::previous
    - tstate::tstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      push_chunk(PyThreadState *tstate, int size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2939,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/pystate.c:2940,1
    - Dst: push_chunk
      Src: /src/cpython/Python/pystate.c:2945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tstate
    - size
    argTypes:
    - PyThreadState*
    - size_t
    assertStmts:
    - condition: (size < INT_MAX/sizeof(PyObject *))
      pos:
        line_end: 2938
        line_start: 2938
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2946
      start: 2936
    functionDepth: 3
    functionLinenumber: 2936
    functionLinenumberEnd: 2946
    functionName: _PyThreadState_PushFrame
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - push_chunk
    - _PyThreadState_HasStackSpace
    - assert
    linkageType: ''
    returnType: _PyInterpreterFrame
    signature: '_PyInterpreterFrame *

      _PyThreadState_PushFrame(PyThreadState *tstate, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2951,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2957,1
    - Dst: _PyObject_VirtualFree
      Src: /src/cpython/Python/pystate.c:2960,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2964,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (tstate->datastack_chunk)
      pos:
        line_end: 2950
        line_start: 2950
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->datastack_top)
      pos:
        line_end: 2963
        line_start: 2963
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->datastack_top >= base)
      pos:
        line_end: 2964
        line_start: 2964
        source_file: /src/cpython/Python/pystate.c
    - condition: (previous)
      pos:
        line_end: 2956
        line_start: 2956
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2968
      start: 2948
    functionDepth: 1
    functionLinenumber: 2948
    functionLinenumberEnd: 2968
    functionName: _PyThreadState_PopFrame
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyObject_VirtualFree
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame
      * frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2982,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/pystate.c:2982,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2983,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/pystate.c:2983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!_PyMem_IsPtrFreed(tstate))
      pos:
        line_end: 2981
        line_start: 2981
        source_file: /src/cpython/Python/pystate.c
    - condition: (!_PyMem_IsPtrFreed(tstate->interp))
      pos:
        line_end: 2982
        line_start: 2982
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2985
      start: 2979
    functionDepth: 1
    functionLinenumber: 2979
    functionLinenumberEnd: 2985
    functionName: _PyThreadState_CheckConsistency
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyMem_IsPtrFreed
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyThreadState_CheckConsistency(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:3000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2997
    functionDepth: 0
    functionLinenumber: 2997
    functionLinenumberEnd: 3002
    functionName: _PyThreadState_MustExit
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: int
    signature: int _PyThreadState_MustExit(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decref_threadstate
      Src: /src/cpython/Python/pystate.c:3008,1
    - Dst: PyThread_hang_thread
      Src: /src/cpython/Python/pystate.c:3009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3004
    functionDepth: 3
    functionLinenumber: 3004
    functionLinenumberEnd: 3010
    functionName: _PyThreadState_HangThread
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - decref_threadstate
    - PyThread_hang_thread
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_HangThread(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_tld_init
      Src: /src/cpython/Python/pystate.c:3026,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:3027,1
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Python/pystate.c:3038,1
    - Dst: _mi_heap_init_ex
      Src: /src/cpython/Python/pystate.c:3050,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Python/pystate.c:3050,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:3065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3016
    functionDepth: 6
    functionLinenumber: 3016
    functionLinenumberEnd: 3067
    functionName: tstate_mimalloc_bind
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyMem_DebugEnabled
    - llist_init
    - _mi_arena_id_none
    - _Py_atomic_store_int
    - _mi_tld_init
    - _mi_heap_init_ex
    linkageType: ''
    returnType: void
    signature: void tstate_mimalloc_bind(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_heap_collect_abandon
      Src: /src/cpython/Python/pystate.c:3084,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3069
    functionDepth: 1
    functionLinenumber: 3069
    functionLinenumberEnd: 3087
    functionName: _PyThreadState_ClearMimallocHeaps
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _mi_heap_collect_abandon
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_ClearMimallocHeaps(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Python/pystate.c:3093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3090
    functionDepth: 0
    functionLinenumber: 3090
    functionLinenumberEnd: 3095
    functionName: _Py_IsMainThread
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: int
    signature: int _Py_IsMainThread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3102
      start: 3098
    functionDepth: 0
    functionLinenumber: 3098
    functionLinenumberEnd: 3102
    functionName: _PyInterpreterState_Main
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyInterpreterState_Main(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetFinalizing
      Src: /src/cpython/Python/pystate.c:3112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3105
    functionDepth: 1
    functionLinenumber: 3105
    functionLinenumberEnd: 3114
    functionName: _Py_IsMainInterpreterFinalizing
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyRuntimeState_GetFinalizing
    linkageType: ''
    returnType: int
    signature: int _Py_IsMainInterpreterFinalizing(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/pystate.c:3120,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pystate.c:3124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3117
    functionDepth: 1
    functionLinenumber: 3117
    functionLinenumberEnd: 3125
    functionName: _Py_GetMainConfig
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - _PyInterpreterState_Main
    linkageType: ''
    returnType: PyConfig
    signature: 'PyConfig *

      _Py_GetMainConfig(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:14,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:14,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:18,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:18,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - s1
    - s2
    - size
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 19
    functionName: PyOS_mystrnicmp
    functionSourceFile: /src/cpython/Python/pystrcmp.c
    functionUses: 1
    functionsReached:
    - Py_TOLOWER
    linkageType: ''
    returnType: int
    signature: int PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:26,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:26,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:29,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrcmp.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: PyOS_mystricmp
    functionSourceFile: /src/cpython/Python/pystrcmp.c
    functionUses: 1
    functionsReached:
    - Py_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: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: LOCK_POOL
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_POOL(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: UNLOCK_POOL
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_POOL(pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/uniqueid.c:35,1
    - Dst: _Py_atomic_store_ssize
      Src: /src/cpython/Python/uniqueid.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct _Py_unique_id_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 51
    functionName: resize_interp_type_id_pool
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - _Py_atomic_store_ssize
    linkageType: ''
    returnType: int
    signature: int resize_interp_type_id_pool(struct _Py_unique_id_pool *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Python/uniqueid.c:61,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/uniqueid.c:63,1
    - Dst: memset
      Src: /src/cpython/Python/uniqueid.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 77
    functionName: resize_local_refcounts
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - _Py_atomic_load_ssize
    - memset
    linkageType: ''
    returnType: int
    signature: int resize_local_refcounts(_PyThreadStateImpl *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/uniqueid.c:82,1
    - Dst: LOCK_POOL
      Src: /src/cpython/Python/uniqueid.c:85,1
    - Dst: resize_interp_type_id_pool
      Src: /src/cpython/Python/uniqueid.c:87,1
    - Dst: UNLOCK_POOL
      Src: /src/cpython/Python/uniqueid.c:88,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Python/uniqueid.c:96,1
    - Dst: assert
      Src: /src/cpython/Python/uniqueid.c:99,1
    - Dst: UNLOCK_POOL
      Src: /src/cpython/Python/uniqueid.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (unique_id > 0)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Python/uniqueid.c
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: _PyObject_AssignUniqueId
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 4
    functionsReached:
    - UNLOCK_POOL
    - assert
    - _PyInterpreterState_GET
    - _PyObject_SetDeferredRefcount
    - LOCK_POOL
    - resize_interp_type_id_pool
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyObject_AssignUniqueId(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/uniqueid.c:107,1
    - Dst: LOCK_POOL
      Src: /src/cpython/Python/uniqueid.c:110,1
    - Dst: assert
      Src: /src/cpython/Python/uniqueid.c:111,1
    - Dst: UNLOCK_POOL
      Src: /src/cpython/Python/uniqueid.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unique_id
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (unique_id > 0 && unique_id <= pool->size)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/cpython/Python/uniqueid.c
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: _PyObject_ReleaseUniqueId
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 1
    functionsReached:
    - LOCK_POOL
    - UNLOCK_POOL
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyObject_ReleaseUniqueId(Py_ssize_t unique_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Python/uniqueid.c:123,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/uniqueid.c:124,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/uniqueid.c:130,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/uniqueid.c:135,1
    - Dst: _PyDict_UniqueId
      Src: /src/cpython/Python/uniqueid.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 141
    functionName: clear_unique_id
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyCode_Check
    - PyType_HasFeature
    - PyDict_Check
    - _PyDict_UniqueId
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t clear_unique_id(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_unique_id
      Src: /src/cpython/Python/uniqueid.c:146,1
    - Dst: _PyObject_ReleaseUniqueId
      Src: /src/cpython/Python/uniqueid.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: _PyObject_DisablePerThreadRefcounting
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached:
    - _PyObject_ReleaseUniqueId
    - clear_unique_id
    linkageType: ''
    returnType: void
    signature: void _PyObject_DisablePerThreadRefcounting(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/uniqueid.c:155,1
    - Dst: resize_local_refcounts
      Src: /src/cpython/Python/uniqueid.c:156,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/uniqueid.c:158,1
    - Dst: assert
      Src: /src/cpython/Python/uniqueid.c:162,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Python/uniqueid.c:165,1
    - Dst: _Py_INCREF_STAT_INC
      Src: /src/cpython/Python/uniqueid.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - idx
    argTypes:
    - PyObject*
    - size_t
    assertStmts:
    - condition: (idx < (size_t)tstate->refcounts.size)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Python/uniqueid.c
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: _PyObject_ThreadIncrefSlow
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - resize_local_refcounts
    - _Py_INCREF_STAT_INC
    - _PyThreadState_GET
    - _Py_IncRefTotal
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyObject_ThreadIncrefSlow(PyObject *obj, size_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_POOL
      Src: /src/cpython/Python/uniqueid.c:179,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Python/uniqueid.c:184,1
    - Dst: UNLOCK_POOL
      Src: /src/cpython/Python/uniqueid.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 190
    functionName: _PyObject_MergePerThreadRefcounts
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached:
    - LOCK_POOL
    - _Py_atomic_add_ssize
    - UNLOCK_POOL
    linkageType: ''
    returnType: void
    signature: void _PyObject_MergePerThreadRefcounts(_PyThreadStateImpl *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_MergePerThreadRefcounts
      Src: /src/cpython/Python/uniqueid.c:195,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/uniqueid.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 201
    functionName: _PyObject_FinalizePerThreadRefcounts
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 1
    functionsReached:
    - PyMem_Free
    - _PyObject_MergePerThreadRefcounts
    linkageType: ''
    returnType: void
    signature: void _PyObject_FinalizePerThreadRefcounts(_PyThreadStateImpl *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_unique_id
      Src: /src/cpython/Python/uniqueid.c:221,1
    - Dst: assert
      Src: /src/cpython/Python/uniqueid.c:223,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/uniqueid.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (id == i + 1)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/cpython/Python/uniqueid.c
    constantsTouched: []
    func_position:
      end: 230
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 230
    functionName: _PyObject_FinalizeUniqueIdPool
    functionSourceFile: /src/cpython/Python/uniqueid.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - assert
    - clear_unique_id
    linkageType: ''
    returnType: void
    signature: void _PyObject_FinalizeUniqueIdPool(PyInterpreterState *interp)
  - 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: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: AS_GC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_GC(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: FROM_GC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_GC(gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: gc_is_collecting
    functionSourceFile: /src/cpython/Python/gc.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: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: gc_clear_collecting
    functionSourceFile: /src/cpython/Python/gc.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: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: gc_get_refs
    functionSourceFile: /src/cpython/Python/gc.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: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: gc_set_refs
    functionSourceFile: /src/cpython/Python/gc.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: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: gc_reset_refs
    functionSourceFile: /src/cpython/Python/gc.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/cpython/Python/gc.c:97,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:97,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: gc_decref
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_get_refs
    - _PyObject_ASSERT_WITH_MSG
    - FROM_GC
    linkageType: ''
    returnType: void
    signature: void gc_decref(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: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: gc_old_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_old_space(PyGC_Head *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - space
    argTypes:
    - int
    assertStmts:
    - condition: (space == 0 || space == 1)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: other_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int other_space(int space)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: gc_flip_old_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_flip_old_space(PyGC_Head *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - g
    - space
    argTypes:
    - PyGC_Head*
    - int
    assertStmts:
    - condition: (space == 0 || space == _PyGC_NEXT_MASK_OLD_SPACE_1)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: gc_set_old_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_set_old_space(PyGC_Head *g, int space)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:133,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/gc.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - gcstate
    - n
    argTypes:
    - GCState*
    - int
    assertStmts:
    - condition: ((gcstate->visited_space & (~1)) == 0)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: GEN_HEAD
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - assert
    linkageType: ''
    returnType: PyGC_Head
    signature: 'PyGC_Head *

      GEN_HEAD(GCState *gcstate, int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: get_gc_state
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 7
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: GCState
    signature: 'GCState *

      get_gc_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:163,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:164,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:165,1
    - Dst: INIT_HEAD
      Src: /src/cpython/Python/gc.c:166,1
    - Dst: INIT_HEAD
      Src: /src/cpython/Python/gc.c:167,1
    - Dst: INIT_HEAD
      Src: /src/cpython/Python/gc.c:168,1
    - Dst: INIT_HEAD
      Src: /src/cpython/Python/gc.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts:
    - condition: (gcstate->young.count == 0)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/cpython/Python/gc.c
    - condition: (gcstate->old[0].count == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Python/gc.c
    - condition: (gcstate->old[1].count == 0)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: _PyGC_InitState
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - INIT_HEAD
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyGC_InitState(GCState *gcstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - GEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: INIT_HEAD
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_HEAD(GEN)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/gc.c:180,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc.c:182,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc.c:185,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc.c:187,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/gc.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: _PyGC_Init
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyGC_Init(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: gc_list_init
    functionSourceFile: /src/cpython/Python/gc.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: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: gc_list_is_empty
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_list_is_empty(PyGC_Head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:267,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:271,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:272,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: ((list->_gc_prev & ~_PyGC_PREV_MASK) == 0)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: gc_list_append
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_NEXT
    - _PyGCHead_SET_PREV
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_list_append(PyGC_Head *node, PyGC_Head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:283,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:284,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:286,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: gc_list_remove
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_NEXT
    - GC_PREV
    - _PyGCHead_SET_PREV
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void gc_list_remove(PyGC_Head *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:300,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:301,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:302,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:303,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:308,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:309,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 312
    functionName: gc_list_move
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_NEXT
    - GC_PREV
    - _PyGCHead_SET_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/cpython/Python/gc.c:318,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:319,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:320,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:321,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:322,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:323,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:324,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:325,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:325,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:326,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:326,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:328,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:329,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:331,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:332,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (from != to)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/cpython/Python/gc.c
    - condition: (from_head != from)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/cpython/Python/gc.c
    - condition: (from_tail != from)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/cpython/Python/gc.c
    - condition: "(gc_list_is_empty(to) ||\n            gc_old_space(to_tail) == gc_old_space(from_tail))"
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 335
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 335
    functionName: gc_list_merge
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_PREV
    - gc_list_init
    - gc_list_is_empty
    - GC_PREV
    - gc_old_space
    - GC_NEXT
    - _PyGCHead_SET_NEXT
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_list_merge(PyGC_Head *from, PyGC_Head *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:342,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 346
    functionName: gc_list_size
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - GC_NEXT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_list_size(PyGC_Head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:353,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:353,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - collectable
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: gc_list_clear_collecting
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_clear_collecting
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void gc_list_clear_collecting(PyGC_Head *collectable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:365,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:365,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:366,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - py_list
    - gc_list
    argTypes:
    - PyObject*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 374
    functionName: append_objects
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - FROM_GC
    - GC_NEXT
    linkageType: ''
    returnType: int
    signature: int append_objects(PyObject *py_list, PyGC_Head *gc_list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:395,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:396,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:412,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:415,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:417,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:418,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:419,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:420,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:421,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:422,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:426,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - head
    - flags
    argTypes:
    - PyGC_Head*
    - enum flagstates
    assertStmts:
    - condition: ((head->_gc_prev & ~_PyGC_PREV_MASK) == 0)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/cpython/Python/gc.c
    - condition: (! "bad internal flags argument")
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Python/gc.c
    - condition: ((head->_gc_next & ~_PyGC_PREV_MASK) == 0)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/cpython/Python/gc.c
    - condition: (truenext != NULL)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/cpython/Python/gc.c
    - condition: (trueprev == prev)
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/cpython/Python/gc.c
    - condition: ((gc->_gc_prev & PREV_MASK_COLLECTING) == prev_value)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/cpython/Python/gc.c
    - condition: ((gc->_gc_next & NEXT_MASK_UNREACHABLE) == next_value)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/cpython/Python/gc.c
    - condition: (prev == GC_PREV(head))
      pos:
        line_end: 425
        line_start: 425
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 427
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 427
    functionName: validate_list
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - GC_PREV
    - assert
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void validate_list(PyGC_Head *head, enum flagstates flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: validate_list
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_list(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:438,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:440,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:440,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - head
    - space
    argTypes:
    - PyGC_Head*
    - int
    assertStmts:
    - condition: (gc_old_space(gc) == space)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: gc_list_validate_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_old_space
    - assert
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void gc_list_validate_space(PyGC_Head *head, int space)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: other_space
      Src: /src/cpython/Python/gc.c:449,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:450,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:452,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: validate_spaces
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - other_space
    - gc_list_validate_space
    linkageType: ''
    returnType: void
    signature: void validate_spaces(GCState *gcstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:460,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:464,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:466,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:467,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:468,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - head
    argTypes:
    - PyGC_Head*
    assertStmts:
    - condition: (gc_old_space(gc) == old_space)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/cpython/Python/gc.c
    - condition: (truenext != NULL)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: validate_consistent_old_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_old_space
    - assert
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void validate_consistent_old_space(PyGC_Head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: validate_spaces
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_spaces(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: validate_consistent_old_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_consistent_old_space(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: gc_list_validate_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gc_list_validate_space(l, s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:490,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:493,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:494,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc.c:495,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:496,1
    - Dst: _Py_IsStaticImmortal
      Src: /src/cpython/Python/gc.c:496,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc.c:497,1
    - Dst: gc_reset_refs
      Src: /src/cpython/Python/gc.c:501,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc.c:501,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:520,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - containers
    argTypes:
    - PyGC_Head*
    assertStmts:
    - condition: (!_Py_IsStaticImmortal(op))
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 523
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 523
    functionName: update_refs
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - _Py_IsStaticImmortal
    - gc_reset_refs
    - _PyObject_ASSERT
    - _PyObject_GC_UNTRACK
    - gc_get_refs
    - _Py_IsImmortal
    - GC_NEXT
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void update_refs(PyGC_Head *containers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Python/gc.c:529,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:530,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc.c:530,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Python/gc.c:530,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:532,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:533,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:538,1
    - Dst: gc_decref
      Src: /src/cpython/Python/gc.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - parent
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 543
    functionName: visit_decref
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - OBJECT_STAT_INC
    - gc_is_collecting
    - _PyObject_CAST
    - _PyObject_IS_GC
    - _PyObject_IsFreed
    - gc_decref
    - _PyObject_ASSERT
    - AS_GC
    linkageType: ''
    returnType: int
    signature: int visit_decref(PyObject *op, void *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:551,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/gc.c:551,1
    - Dst: PyStackRef_RefcountOnObject
      Src: /src/cpython/Python/gc.c:552,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/gc.c:555,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ref
    - visit
    - arg
    argTypes:
    - _PyStackRef*
    - visitproc
    - void*
    assertStmts:
    - condition: (!PyStackRef_IsTaggedInt(*ref))
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 557
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 557
    functionName: _PyGC_VisitStackRef
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyStackRef_RefcountOnObject
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsTaggedInt
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyGC_VisitStackRef(_PyStackRef *ref, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Python/gc.c:562,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/gc.c:565,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Python/gc.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - frame
    - visit
    - arg
    argTypes:
    - _PyInterpreterFrame*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 570
    functionName: _PyGC_VisitFrameStack
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _PyFrame_GetLocalsArray
    - _Py_VISIT_STACKREF
    - PyStackRef_IsTaggedInt
    linkageType: ''
    returnType: int
    signature: int _PyGC_VisitFrameStack(_PyInterpreterFrame *frame, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:580,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:581,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:583,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - containers
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 588
    functionName: subtract_refs
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - traverse
    - FROM_GC
    - Py_TYPE
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void subtract_refs(PyGC_Head *containers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Python/gc.c:595,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:596,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:600,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:601,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:607,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:612,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:623,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:624,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:625,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:625,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:627,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:627,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:631,1
    - Dst: gc_list_append
      Src: /src/cpython/Python/gc.c:633,1
    - Dst: gc_set_refs
      Src: /src/cpython/Python/gc.c:634,1
    - Dst: gc_set_refs
      Src: /src/cpython/Python/gc.c:642,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc.c:649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 652
    functionName: visit_reachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - OBJECT_STAT_INC
    - gc_is_collecting
    - _PyGCHead_SET_PREV
    - GC_NEXT
    - FROM_GC
    - GC_PREV
    - gc_get_refs
    - _PyObject_ASSERT_WITH_MSG
    - _PyObject_IS_GC
    - _PyObject_ASSERT
    - gc_set_refs
    - AS_GC
    - gc_list_append
    linkageType: ''
    returnType: int
    signature: int visit_reachable(PyObject *op, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:671,1
    - Dst: validate_consistent_old_space
      Src: /src/cpython/Python/gc.c:682,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:686,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:695,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:696,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc.c:697,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:697,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:701,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:705,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:707,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:724,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:731,1
    - Dst: _PyGCHead_NEXT
      Src: /src/cpython/Python/gc.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - young
    - unreachable
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 742
    functionName: move_unreachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - validate_consistent_old_space
    - traverse
    - _PyGCHead_SET_PREV
    - FROM_GC
    - GC_PREV
    - gc_clear_collecting
    - gc_get_refs
    - _PyObject_ASSERT_WITH_MSG
    - _PyGCHead_NEXT
    - GC_NEXT
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:759,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:761,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:762,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/gc.c:763,1
    - Dst: _PyTuple_MaybeUntrack
      Src: /src/cpython/Python/gc.c:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - head
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 768
    functionName: untrack_tuples
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyTuple_MaybeUntrack
    - FROM_GC
    - PyTuple_CheckExact
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void untrack_tuples(PyGC_Head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: has_legacy_finalizer
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int has_legacy_finalizer(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:786,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:787,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:793,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:794,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:796,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:797,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc.c:800,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:801,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - unreachable
    - finalizers
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 805
    functionName: move_legacy_finalizers
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - has_legacy_finalizer
    - _PyObject_ASSERT
    - gc_list_move
    - gc_clear_collecting
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:811,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:812,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:814,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:815,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:819,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:820,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:820,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:821,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - unreachable
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 825
    functionName: clear_unreachable_mask
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - validate_list
    - FROM_GC
    - GC_NEXT
    - _PyObject_ASSERT
    linkageType: ''
    returnType: void
    signature: void clear_unreachable_mask(PyGC_Head *unreachable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Python/gc.c:832,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:833,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:834,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:835,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:836,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 841
    functionName: visit_move
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - OBJECT_STAT_INC
    - gc_is_collecting
    - gc_list_move
    - gc_clear_collecting
    - _PyObject_IS_GC
    - AS_GC
    linkageType: ''
    returnType: int
    signature: int visit_move(PyObject *op, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:850,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:851,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:853,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:853,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:854,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - finalizers
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 858
    functionName: move_legacy_finalizer_reachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - traverse
    - FROM_GC
    - Py_TYPE
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void move_legacy_finalizer_reachable(PyGC_Head *finalizers)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:907,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:913,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:916,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:917,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc.c:919,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:919,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc.c:928,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:949,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc.c:950,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:951,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:981,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:981,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:988,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:991,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:993,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:994,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:1001,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1002,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1007,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:1008,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc.c:1008,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:1011,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/gc.c:1014,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1020,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1034,1
    - Dst: gc_set_old_space
      Src: /src/cpython/Python/gc.c:1037,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1038,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - unreachable
    - old
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 1046
    functionName: handle_weakref_callbacks
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_ClearRef
    - gc_list_init
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    - Py_INCREF
    - gc_list_is_empty
    - get_gc_state
    - _PyObject_ASSERT
    - _PyType_SUPPORTS_WEAKREFS
    - gc_is_collecting
    - Py_DECREF
    - FROM_GC
    - PyWeakref_Check
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - GC_NEXT
    - AS_GC
    - Py_TYPE
    - gc_set_old_space
    - gc_list_move
    linkageType: ''
    returnType: int
    signature: int handle_weakref_callbacks(PyGC_Head *unreachable, PyGC_Head *old)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1058,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1061,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1062,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc.c:1064,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc.c:1069,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc.c:1072,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1072,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc.c:1081,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:1091,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc.c:1092,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:1093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - unreachable
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1052
    functionDepth: 3
    functionLinenumber: 1052
    functionLinenumberEnd: 1096
    functionName: clear_weakrefs
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_ClearRef
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - FROM_GC
    - _PyObject_ASSERT
    - PyWeakref_Check
    - GC_NEXT
    - Py_TYPE
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: void
    signature: void clear_weakrefs(PyGC_Head *unreachable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/gc.c:1101,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1103
    functionName: debug_cycle
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PySys_FormatStderr
    linkageType: ''
    returnType: void
    signature: void debug_cycle(const char *msg, PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1117,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1117,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1118,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1120,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1121,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1122,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc.c:1124,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:1125,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc.c:1126,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - tstate
    - gcstate
    - finalizers
    - old
    argTypes:
    - PyThreadState*
    - GCState*
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1116
        line_start: 1116
        source_file: /src/cpython/Python/gc.c
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1133
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1133
    functionName: handle_legacy_finalizers
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - has_legacy_finalizer
    - PyList_Append
    - _PyErr_Clear
    - gc_list_merge
    - GC_NEXT
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: "void handle_legacy_finalizers(PyThreadState *tstate,\n                         GCState
      *gcstate,\n                         PyGC_Head *finalizers, PyGC_Head *old)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1153,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1155,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1156,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1157,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1158,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Python/gc.c:1159,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1160,1
    - Dst: _PyGC_SET_FINALIZED
      Src: /src/cpython/Python/gc.c:1162,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:1163,1
    - Dst: finalize
      Src: /src/cpython/Python/gc.c:1164,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1165,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1166,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - tstate
    - collectable
    argTypes:
    - PyThreadState*
    - PyGC_Head*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1164
        line_start: 1164
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1170
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1170
    functionName: finalize_garbage
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - gc_list_init
    - FROM_GC
    - gc_list_is_empty
    - gc_list_move
    - _PyGC_FINALIZED
    - finalize
    - gc_list_merge
    - GC_NEXT
    - _PyGC_SET_FINALIZED
    - Py_TYPE
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void finalize_garbage(PyThreadState *tstate, PyGC_Head *collectable)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1180,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1180,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1182,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1183,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1184,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc.c:1186,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc.c:1186,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1190,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:1191,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc.c:1192,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1197,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:1198,1
    - Dst: clear
      Src: /src/cpython/Python/gc.c:1199,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1200,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1201,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1204,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1207,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:1209,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - tstate
    - gcstate
    - collectable
    - old
    argTypes:
    - PyThreadState*
    - GCState*
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/cpython/Python/gc.c
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1189
        line_start: 1189
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1213
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1213
    functionName: delete_garbage
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - FROM_GC
    - gc_list_is_empty
    - PyList_Append
    - _PyErr_Clear
    - gc_list_move
    - gc_clear_collecting
    - PyErr_FormatUnraisable
    - _PyObject_ASSERT_WITH_MSG
    - Py_REFCNT
    - GC_NEXT
    - Py_TYPE
    - _PyErr_Occurred
    - assert
    - clear
    linkageType: ''
    returnType: void
    signature: "void delete_garbage(PyThreadState *tstate, GCState *gcstate,\n               PyGC_Head
      *collectable, PyGC_Head *old)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1245,1
    - Dst: update_refs
      Src: /src/cpython/Python/gc.c:1251,1
    - Dst: subtract_refs
      Src: /src/cpython/Python/gc.c:1252,1
    - Dst: move_unreachable
      Src: /src/cpython/Python/gc.c:1289,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1290,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - base
    - unreachable
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1292
    functionName: deduce_unreachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - validate_list
    - update_refs
    - move_unreachable
    - subtract_refs
    linkageType: ''
    returnType: void
    signature: void deduce_unreachable(PyGC_Head *base, PyGC_Head *unreachable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_clear_collecting
      Src: /src/cpython/Python/gc.c:1313,1
    - Dst: deduce_unreachable
      Src: /src/cpython/Python/gc.c:1319,1
    - Dst: clear_unreachable_mask
      Src: /src/cpython/Python/gc.c:1320,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - unreachable
    - still_unreachable
    - old_generation
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1307
    functionDepth: 4
    functionLinenumber: 1307
    functionLinenumberEnd: 1324
    functionName: handle_resurrected_objects
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_clear_collecting
    - deduce_unreachable
    - gc_list_merge
    - clear_unreachable_mask
    linkageType: ''
    returnType: void
    signature: "void handle_resurrected_objects(PyGC_Head *unreachable, PyGC_Head*
      still_unreachable,\n                           PyGC_Head *old_generation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1337,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1337,1
    - Dst: gc_set_old_space
      Src: /src/cpython/Python/gc.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - list
    - space
    argTypes:
    - PyGC_Head*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1342
    functionName: gc_list_set_space
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_set_old_space
    - GC_NEXT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_list_set_space(PyGC_Head *list, int space)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - gcstate
    - gen
    - stats
    argTypes:
    - GCState*
    - int
    - struct gc_collection_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1369
    functionName: add_stats
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_stats(GCState *gcstate, int gen, struct gc_collection_stats
      *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1376,1
    - Dst: untrack_tuples
      Src: /src/cpython/Python/gc.c:1379,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1380,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1383,1
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1384,1
    - Dst: gc_collect_region
      Src: /src/cpython/Python/gc.c:1385,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1386,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1387,1
    - Dst: add_stats
      Src: /src/cpython/Python/gc.c:1390,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - tstate
    - stats
    argTypes:
    - PyThreadState*
    - struct gc_collection_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1371
    functionDepth: 3
    functionLinenumber: 1371
    functionLinenumberEnd: 1392
    functionName: gc_collect_young
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - validate_spaces
    - gc_list_set_space
    - gc_list_init
    - untrack_tuples
    - GC_STAT_ADD
    - gc_list_merge
    - add_stats
    - gc_collect_region
    linkageType: ''
    returnType: void
    signature: "void gc_collect_young(PyThreadState *tstate,\n                 struct
      gc_collection_stats *stats)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1398,1
    - Dst: other_space
      Src: /src/cpython/Python/gc.c:1398,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - visited_space
    argTypes:
    - PyGC_Head*
    - int
    assertStmts:
    - condition: (visited_space == 0 || other_space(visited_space) == 0)
      pos:
        line_end: 1397
        line_start: 1397
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1400
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1400
    functionName: IS_IN_VISITED
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_old_space
    - other_space
    - assert
    linkageType: ''
    returnType: int
    signature: int IS_IN_VISITED(PyGC_Head *gc, int visited_space)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Python/gc.c:1413,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1416,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:1416,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc.c:1417,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:1417,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:1418,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:1419,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:1420,1
    - Dst: gc_flip_old_space
      Src: /src/cpython/Python/gc.c:1421,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (visited == get_gc_state()->visited_space)
      pos:
        line_end: 1415
        line_start: 1415
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1427
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1427
    functionName: visit_add_to_container
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - OBJECT_STAT_INC
    - assert
    - gc_list_move
    - gc_flip_old_space
    - get_gc_state
    - _PyObject_IS_GC
    - gc_old_space
    - AS_GC
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: int visit_add_to_container(PyObject *op, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1437,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1437,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1441,1
    - Dst: IS_IN_VISITED
      Src: /src/cpython/Python/gc.c:1441,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1442,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1443,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:1443,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc.c:1444,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1445,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1446,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1450,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:1451,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - container
    - gc
    - gcstate
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    - GCState*
    assertStmts:
    - condition: (GC_NEXT(gc) == container)
      pos:
        line_end: 1436
        line_start: 1436
        source_file: /src/cpython/Python/gc.c
    - condition: (IS_IN_VISITED(gc, gcstate->visited_space))
      pos:
        line_end: 1440
        line_start: 1440
        source_file: /src/cpython/Python/gc.c
    - condition: (_PyObject_GC_IS_TRACKED(op))
      pos:
        line_end: 1442
        line_start: 1442
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1457
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1457
    functionName: expand_region_transitively_reachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - traverse
    - FROM_GC
    - IS_IN_VISITED
    - gc_list_move
    - _Py_IsImmortal
    - GC_NEXT
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t expand_region_transitively_reachable(PyGC_Head *container,
      PyGC_Head *gc, GCState *gcstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1467,1
    - Dst: other_space
      Src: /src/cpython/Python/gc.c:1470,1
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1473,1
    - Dst: other_space
      Src: /src/cpython/Python/gc.c:1478,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1479,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1479,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1480,1
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1481,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1483,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts:
    - condition: (gc_list_is_empty(&gcstate->old[not_visited].head))
      pos:
        line_end: 1478
        line_start: 1478
        source_file: /src/cpython/Python/gc.c
    - condition: (gc_list_is_empty(&gcstate->old[visited].head))
      pos:
        line_end: 1482
        line_start: 1482
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1486
      start: 1460
    functionDepth: 2
    functionLinenumber: 1460
    functionLinenumberEnd: 1486
    functionName: completed_scavenge
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_set_space
    - gc_list_is_empty
    - other_space
    - gc_list_merge
    - assert
    linkageType: ''
    returnType: void
    signature: void completed_scavenge(GCState *gcstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc.c:1491,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:1491,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:1492,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:1493,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:1494,1
    - Dst: gc_flip_old_space
      Src: /src/cpython/Python/gc.c:1495,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1496,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - op
    - reachable
    - visited_space
    argTypes:
    - PyObject*
    - PyGC_Head*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1501
    functionName: move_to_reachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - gc_list_move
    - gc_flip_old_space
    - _PyObject_IS_GC
    - gc_old_space
    - AS_GC
    - _Py_IsImmortal
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t move_to_reachable(PyObject *op, PyGC_Head *reachable, int
      visited_space)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1512,1
    - Dst: _PyGCHead_NEXT
      Src: /src/cpython/Python/gc.c:1513,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1514,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:1514,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1515,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1517,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:1518,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:1522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - reachable
    - visited
    - visited_space
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    - int
    assertStmts:
    - condition: (gc_old_space(gc) == visited_space)
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1524
      start: 1503
    functionDepth: 2
    functionLinenumber: 1503
    functionLinenumberEnd: 1524
    functionName: mark_all_reachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - traverse
    - gc_list_validate_space
    - gc_list_move
    - gc_list_is_empty
    - FROM_GC
    - gc_old_space
    - _PyGCHead_NEXT
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t mark_all_reachable(PyGC_Head *reachable, PyGC_Head *visited,
      int visited_space)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1530,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/gc.c:1534,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/cpython/Python/gc.c:1535,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/gc.c:1536,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1546,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc.c:1547,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1548,1
    - Dst: PyStackRef_IsNullOrInt
      Src: /src/cpython/Python/gc.c:1551,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc.c:1554,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc.c:1555,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:1558,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:1559,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:1560,1
    - Dst: gc_old_space
      Src: /src/cpython/Python/gc.c:1561,1
    - Dst: gc_flip_old_space
      Src: /src/cpython/Python/gc.c:1562,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1564,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/gc.c:1576,1
    - Dst: PyThreadState_Next
      Src: /src/cpython/Python/gc.c:1577,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/gc.c:1578,1
    - Dst: mark_all_reachable
      Src: /src/cpython/Python/gc.c:1580,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1581,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1581,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - interp
    - visited
    - visited_space
    - start
    argTypes:
    - PyInterpreterState*
    - PyGC_Head*
    - int
    - bool
    assertStmts:
    - condition: (gc_list_is_empty(&reachable))
      pos:
        line_end: 1580
        line_start: 1580
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1583
      start: 1526
    functionDepth: 3
    functionLinenumber: 1526
    functionLinenumberEnd: 1583
    functionName: mark_stacks
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - assert
    - gc_list_init
    - gc_list_move
    - gc_list_is_empty
    - PyStackRef_IsNullOrInt
    - gc_flip_old_space
    - HEAD_LOCK
    - _PyObject_IS_GC
    - HEAD_UNLOCK
    - gc_old_space
    - move_to_reachable
    - PyInterpreterState_ThreadHead
    - PyStackRef_AsPyObjectBorrow
    - PyThreadState_Next
    - mark_all_reachable
    - AS_GC
    - _Py_IsImmortal
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t mark_stacks(PyInterpreterState *interp, PyGC_Head *visited,
      int visited_space, bool start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1589,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1591,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1592,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1593,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1596,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1597,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1600,1
    - Dst: move_to_reachable
      Src: /src/cpython/Python/gc.c:1601,1
    - Dst: mark_all_reachable
      Src: /src/cpython/Python/gc.c:1603,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1604,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - interp
    - visited
    - visited_space
    argTypes:
    - PyInterpreterState*
    - PyGC_Head*
    - int
    assertStmts:
    - condition: (gc_list_is_empty(&reachable))
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1606
      start: 1585
    functionDepth: 3
    functionLinenumber: 1585
    functionLinenumberEnd: 1606
    functionName: mark_global_roots
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_init
    - gc_list_is_empty
    - move_to_reachable
    - mark_all_reachable
    - assert
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t mark_global_roots(PyInterpreterState *interp, PyGC_Head *visited,
      int visited_space)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_global_roots
      Src: /src/cpython/Python/gc.c:1614,1
    - Dst: mark_stacks
      Src: /src/cpython/Python/gc.c:1615,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1608
    functionDepth: 4
    functionLinenumber: 1608
    functionLinenumberEnd: 1620
    functionName: mark_at_start
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - mark_global_roots
    - validate_spaces
    - mark_stacks
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t mark_at_start(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1649
    functionName: assess_work_to_do
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t assess_work_to_do(GCState *gcstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1654,1
    - Dst: assess_work_to_do
      Src: /src/cpython/Python/gc.c:1656,1
    - Dst: untrack_tuples
      Src: /src/cpython/Python/gc.c:1657,1
    - Dst: mark_at_start
      Src: /src/cpython/Python/gc.c:1659,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1660,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1662,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1668,1
    - Dst: mark_stacks
      Src: /src/cpython/Python/gc.c:1673,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1674,1
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1676,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1677,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:1678,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:1679,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1681,1
    - Dst: _PyGCHead_NEXT
      Src: /src/cpython/Python/gc.c:1684,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1685,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1687,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc.c:1687,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1687,1
    - Dst: gc_set_old_space
      Src: /src/cpython/Python/gc.c:1688,1
    - Dst: expand_region_transitively_reachable
      Src: /src/cpython/Python/gc.c:1689,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1691,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1692,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:1693,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1695,1
    - Dst: gc_collect_region
      Src: /src/cpython/Python/gc.c:1696,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1697,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1698,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1698,1
    - Dst: add_stats
      Src: /src/cpython/Python/gc.c:1702,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1703,1
    - Dst: completed_scavenge
      Src: /src/cpython/Python/gc.c:1704,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1706,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 2
    argNames:
    - tstate
    - stats
    argTypes:
    - PyThreadState*
    - struct gc_collection_stats*
    assertStmts:
    - condition: (gc_list_is_empty(&increment))
      pos:
        line_end: 1697
        line_start: 1697
        source_file: /src/cpython/Python/gc.c
    - condition: (!_Py_IsImmortal(FROM_GC(gc)))
      pos:
        line_end: 1686
        line_start: 1686
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1707
      start: 1651
    functionDepth: 5
    functionLinenumber: 1651
    functionLinenumberEnd: 1707
    functionName: gc_collect_increment
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_init
    - untrack_tuples
    - _Py_IsImmortal
    - validate_spaces
    - completed_scavenge
    - gc_list_is_empty
    - gc_list_merge
    - gc_list_validate_space
    - expand_region_transitively_reachable
    - gc_list_set_space
    - mark_at_start
    - FROM_GC
    - GC_STAT_ADD
    - add_stats
    - gc_list_size
    - gc_set_old_space
    - gc_list_move
    - assess_work_to_do
    - mark_stacks
    - validate_list
    - _PyGCHead_NEXT
    - gc_collect_region
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_collect_increment(PyThreadState *tstate, struct gc_collection_stats
      *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1713,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1715,1
    - Dst: untrack_tuples
      Src: /src/cpython/Python/gc.c:1719,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1721,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:1722,1
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1723,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1725,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1726,1
    - Dst: gc_collect_region
      Src: /src/cpython/Python/gc.c:1728,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1730,1
    - Dst: completed_scavenge
      Src: /src/cpython/Python/gc.c:1734,1
    - Dst: _PyGC_ClearAllFreeLists
      Src: /src/cpython/Python/gc.c:1735,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:1736,1
    - Dst: add_stats
      Src: /src/cpython/Python/gc.c:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - tstate
    - stats
    argTypes:
    - PyThreadState*
    - struct gc_collection_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1709
    functionDepth: 3
    functionLinenumber: 1709
    functionLinenumberEnd: 1738
    functionName: gc_collect_full
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - validate_spaces
    - gc_list_set_space
    - completed_scavenge
    - untrack_tuples
    - GC_STAT_ADD
    - gc_list_merge
    - _PyGC_ClearAllFreeLists
    - add_stats
    - gc_collect_region
    - gc_list_validate_space
    linkageType: ''
    returnType: void
    signature: "void gc_collect_full(PyThreadState *tstate,\n                struct
      gc_collection_stats *stats)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1753,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1754,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1754,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1756,1
    - Dst: deduce_unreachable
      Src: /src/cpython/Python/gc.c:1757,1
    - Dst: validate_consistent_old_space
      Src: /src/cpython/Python/gc.c:1758,1
    - Dst: untrack_tuples
      Src: /src/cpython/Python/gc.c:1759,1
    - Dst: validate_consistent_old_space
      Src: /src/cpython/Python/gc.c:1762,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1764,1
    - Dst: validate_consistent_old_space
      Src: /src/cpython/Python/gc.c:1766,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1771,1
    - Dst: move_legacy_finalizers
      Src: /src/cpython/Python/gc.c:1774,1
    - Dst: move_legacy_finalizer_reachable
      Src: /src/cpython/Python/gc.c:1779,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1780,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1781,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1784,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1784,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc.c:1785,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1785,1
    - Dst: handle_weakref_callbacks
      Src: /src/cpython/Python/gc.c:1790,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:1791,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1792,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1793,1
    - Dst: finalize_garbage
      Src: /src/cpython/Python/gc.c:1796,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1801,1
    - Dst: handle_resurrected_objects
      Src: /src/cpython/Python/gc.c:1802,1
    - Dst: clear_weakrefs
      Src: /src/cpython/Python/gc.c:1807,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:1813,1
    - Dst: delete_garbage
      Src: /src/cpython/Python/gc.c:1814,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1819,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1819,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc.c:1822,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1822,1
    - Dst: handle_legacy_finalizers
      Src: /src/cpython/Python/gc.c:1829,1
    - Dst: gc_list_validate_space
      Src: /src/cpython/Python/gc.c:1830,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1831,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 4
    argNames:
    - tstate
    - from
    - to
    - stats
    argTypes:
    - PyThreadState*
    - PyGC_Head*
    - PyGC_Head*
    - struct gc_collection_stats*
    assertStmts:
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1752
        line_start: 1752
        source_file: /src/cpython/Python/gc.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1753
        line_start: 1753
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1832
      start: 1742
    functionDepth: 4
    functionLinenumber: 1742
    functionLinenumberEnd: 1832
    functionName: gc_collect_region
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 3
    functionsReached:
    - gc_list_init
    - untrack_tuples
    - _PyErr_Occurred
    - move_legacy_finalizers
    - gc_list_merge
    - handle_weakref_callbacks
    - move_legacy_finalizer_reachable
    - gc_list_validate_space
    - finalize_garbage
    - FROM_GC
    - clear_weakrefs
    - handle_legacy_finalizers
    - GC_NEXT
    - gc_list_size
    - delete_garbage
    - validate_consistent_old_space
    - deduce_unreachable
    - validate_list
    - debug_cycle
    - handle_resurrected_objects
    - assert
    linkageType: ''
    returnType: void
    signature: "void gc_collect_region(PyThreadState *tstate,\n                  PyGC_Head
      *from,\n                  PyGC_Head *to,\n                  struct gc_collection_stats
      *stats)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1841,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1841,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1844,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/gc.c:1844,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc.c:1846,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/gc.c:1847,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1852,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/gc.c:1857,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:1859,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1860,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc.c:1865,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/gc.c:1866,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:1867,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/gc.c:1868,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1874,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1878,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:1879,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1880,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1880,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - gcstate
    - phase
    - generation
    - stats
    argTypes:
    - GCState*
    - char*
    - int
    - struct gc_collection_stats*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1840
        line_start: 1840
        source_file: /src/cpython/Python/gc.c
    - condition: (PyList_CheckExact(gcstate->callbacks))
      pos:
        line_end: 1843
        line_start: 1843
        source_file: /src/cpython/Python/gc.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1879
        line_start: 1879
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1881
      start: 1837
    functionDepth: 2
    functionLinenumber: 1837
    functionLinenumberEnd: 1881
    functionName: do_gc_callback
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_XDECREF
    - Py_INCREF
    - Py_BuildValue
    - PyList_GET_ITEM
    - Py_DECREF
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyObject_Vectorcall
    - PyErr_FormatUnraisable
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: void
    signature: "void do_gc_callback(GCState *gcstate, const char *phase,\n                   int
      generation, struct gc_collection_stats *stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_gc_callback
      Src: /src/cpython/Python/gc.c:1890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - gcstate
    - phase
    - generation
    - stats
    argTypes:
    - GCState*
    - char*
    - int
    - struct gc_collection_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1883
    functionDepth: 3
    functionLinenumber: 1883
    functionLinenumberEnd: 1891
    functionName: invoke_gc_callback
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - do_gc_callback
    linkageType: ''
    returnType: void
    signature: "void invoke_gc_callback(GCState *gcstate, const char *phase,\n                   int
      generation, struct gc_collection_stats *stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/gc.c:1898,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/gc.c:1899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1904
    functionName: referrersvisit
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int referrersvisit(PyObject* obj, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1912,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1912,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1913,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1914,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:1918,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:1919,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - objs
    - list
    - resultlist
    argTypes:
    - PyObject*
    - PyGC_Head*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1906
    functionDepth: 2
    functionLinenumber: 1906
    functionLinenumberEnd: 1925
    functionName: gc_referrers_for
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - traverse
    - FROM_GC
    - PyList_Append
    - GC_NEXT
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int gc_referrers_for(PyObject *objs, PyGC_Head *list, PyObject *resultlist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/gc.c:1930,1
    - Dst: gc_referrers_for
      Src: /src/cpython/Python/gc.c:1937,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - interp
    - objs
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1927
    functionDepth: 4
    functionLinenumber: 1927
    functionLinenumberEnd: 1943
    functionName: _PyGC_GetReferrers
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_DECREF
    - GEN_HEAD
    - gc_referrers_for
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1948,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc.c:1951,1
    - Dst: append_objects
      Src: /src/cpython/Python/gc.c:1962,1
    - Dst: append_objects
      Src: /src/cpython/Python/gc.c:1967,1
    - Dst: append_objects
      Src: /src/cpython/Python/gc.c:1970,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1977,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - interp
    - generation
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts:
    - condition: (generation >= -1 && generation < NUM_GENERATIONS)
      pos:
        line_end: 1947
        line_start: 1947
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1979
      start: 1945
    functionDepth: 4
    functionLinenumber: 1945
    functionLinenumberEnd: 1979
    functionName: _PyGC_GetObjects
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - append_objects
    - Py_DECREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGC_GetObjects(PyInterpreterState *interp, int generation)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1986,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1987,1
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1992,1
    - Dst: gc_list_set_space
      Src: /src/cpython/Python/gc.c:1995,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1997,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1999,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:2001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1981
    functionDepth: 3
    functionLinenumber: 1981
    functionLinenumberEnd: 2002
    functionName: _PyGC_Freeze
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - validate_spaces
    - gc_list_set_space
    - gc_list_merge
    linkageType: ''
    returnType: void
    signature: void _PyGC_Freeze(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:2008,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:2010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2004
    functionDepth: 3
    functionLinenumber: 2004
    functionLinenumberEnd: 2011
    functionName: _PyGC_Unfreeze
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - validate_spaces
    - gc_list_merge
    linkageType: ''
    returnType: void
    signature: void _PyGC_Unfreeze(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2018
    functionName: _PyGC_GetFreezeCount
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - gc_list_size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyGC_GetFreezeCount(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2028
    functionName: PyGC_Enable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 3
    functionsReached:
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int PyGC_Enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2037
    functionName: PyGC_Disable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 3
    functionsReached:
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int PyGC_Disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2039
    functionDepth: 0
    functionLinenumber: 2039
    functionLinenumberEnd: 2044
    functionName: PyGC_IsEnabled
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 2
    functionsReached:
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int PyGC_IsEnabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/gc.c:2054,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:2056,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:2056,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/gc.c:2058,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:2061,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2047
    functionDepth: 2
    functionLinenumber: 2047
    functionLinenumberEnd: 2062
    functionName: show_stats_each_generations
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - GEN_HEAD
    - PyOS_snprintf
    - gc_list_size
    - PySys_FormatStderr
    linkageType: ''
    returnType: void
    signature: void show_stats_each_generations(GCState *gcstate)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:2068,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/gc.c:2071,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc.c:2078,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc.c:2081,1
    - Dst: show_stats_each_generations
      Src: /src/cpython/Python/gc.c:2082,1
    - Dst: PyDTrace_GC_START_ENABLED
      Src: /src/cpython/Python/gc.c:2084,1
    - Dst: PyDTrace_GC_START
      Src: /src/cpython/Python/gc.c:2085,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/gc.c:2087,1
    - Dst: gc_collect_young
      Src: /src/cpython/Python/gc.c:2090,1
    - Dst: gc_collect_increment
      Src: /src/cpython/Python/gc.c:2093,1
    - Dst: gc_collect_full
      Src: /src/cpython/Python/gc.c:2096,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/gc.c:2099,1
    - Dst: PyDTrace_GC_DONE_ENABLED
      Src: /src/cpython/Python/gc.c:2101,1
    - Dst: PyDTrace_GC_DONE
      Src: /src/cpython/Python/gc.c:2102,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc.c:2105,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/gc.c:2107,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:2108,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:2111,1
    - Dst: validate_spaces
      Src: /src/cpython/Python/gc.c:2116,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/gc.c:2117,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - tstate
    - generation
    - reason
    argTypes:
    - PyThreadState*
    - int
    - _PyGC_Reason
    assertStmts:
    - condition: (tstate->current_frame == NULL || tstate->current_frame->stackpointer
        != NULL)
      pos:
        line_end: 2067
        line_start: 2067
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 2119
      start: 2064
    functionDepth: 6
    functionLinenumber: 2064
    functionLinenumberEnd: 2119
    functionName: _PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - invoke_gc_callback
    - gc_collect_full
    - Py_UNREACHABLE
    - validate_spaces
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - _Py_atomic_compare_exchange_int
    - show_stats_each_generations
    - gc_collect_increment
    - GC_STAT_ADD
    - gc_collect_young
    - PyDTrace_GC_START_ENABLED
    - PyDTrace_GC_DONE_ENABLED
    - PySys_WriteStderr
    - _Py_atomic_store_int
    - PyDTrace_GC_START
    - PyDTrace_GC_DONE
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyGC_Collect(PyThreadState *tstate, int generation, _PyGC_Reason
      reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGC_Collect
      Src: /src/cpython/Python/gc.c:2125,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc.c:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2122
    functionDepth: 1
    functionLinenumber: 2122
    functionLinenumberEnd: 2126
    functionName: PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - _PyGC_Collect
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyGC_Collect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGC_Collect
      Src: /src/cpython/Python/gc.c:2137,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc.c:2137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2138
    functionName: _PyGC_CollectNoFail
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _PyGC_Collect
    linkageType: ''
    returnType: void
    signature: void _PyGC_CollectNoFail(PyThreadState *tstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc.c:2145,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc.c:2157,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc.c:2159,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:2161,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/gc.c:2165,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/gc.c:2166,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:2167,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc.c:2171,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/gc.c:2173,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:2176,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:2177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2140
    functionDepth: 5
    functionLinenumber: 2140
    functionLinenumberEnd: 2180
    functionName: _PyGC_DumpShutdownStats
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_WarnExplicitFormat
    - PyObject_Repr
    - PyList_GET_SIZE
    - PyUnicode_EncodeFSDefault
    - PyErr_FormatUnraisable
    - PySys_WriteStderr
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void _PyGC_DumpShutdownStats(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:2184,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:2185,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:2186,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:2187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gc
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2188
    functionName: finalize_unlink_gc_head
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_NEXT
    - GC_PREV
    - _PyGCHead_SET_PREV
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void finalize_unlink_gc_head(PyGC_Head *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc.c:2194,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc.c:2195,1
    - Dst: finalize_unlink_gc_head
      Src: /src/cpython/Python/gc.c:2212,1
    - Dst: finalize_unlink_gc_head
      Src: /src/cpython/Python/gc.c:2213,1
    - Dst: finalize_unlink_gc_head
      Src: /src/cpython/Python/gc.c:2214,1
    - Dst: finalize_unlink_gc_head
      Src: /src/cpython/Python/gc.c:2215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2190
    functionDepth: 2
    functionLinenumber: 2190
    functionLinenumberEnd: 2216
    functionName: _PyGC_Fini
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - finalize_unlink_gc_head
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyGC_Fini(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_Dump
      Src: /src/cpython/Python/gc.c:2222,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:2222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2219
    functionDepth: 4
    functionLinenumber: 2219
    functionLinenumberEnd: 2223
    functionName: _PyGC_Dump
    functionSourceFile: /src/cpython/Python/gc.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/cpython/Python/gc.c:2230,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Python/gc.c:2231,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc.c:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - parent_raw
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2227
    functionDepth: 2
    functionLinenumber: 2227
    functionLinenumberEnd: 2236
    functionName: visit_validate
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsFreed
    - _PyObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    linkageType: ''
    returnType: int
    signature: int visit_validate(PyObject *op, void *parent_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc.c:2246,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2247,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc.c:2248,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/gc.c:2252,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2257,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:2258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2260
    functionName: PyObject_GC_Track
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 65
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - traverse
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_GC_TRACK
    - _PyObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Track(void *op_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc.c:2265,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2268,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc.c:2269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2262
    functionDepth: 1
    functionLinenumber: 2262
    functionLinenumberEnd: 2271
    functionName: PyObject_GC_UnTrack
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 151
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyObject_CAST
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_UnTrack(void *op_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:2276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2273
    functionDepth: 1
    functionLinenumber: 2273
    functionLinenumberEnd: 2277
    functionName: PyObject_IS_GC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 9
    functionsReached:
    - _PyObject_IS_GC
    linkageType: ''
    returnType: int
    signature: int PyObject_IS_GC(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_eval_breaker_bit_is_set
      Src: /src/cpython/Python/gc.c:2282,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/gc.c:2284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2286
    functionName: _Py_ScheduleGC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _Py_set_eval_breaker_bit
    - _Py_eval_breaker_bit_is_set
    linkageType: ''
    returnType: void
    signature: void _Py_ScheduleGC(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:2291,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:2293,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc.c:2295,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc.c:2304,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:2305,1
    - Dst: _Py_ScheduleGC
      Src: /src/cpython/Python/gc.c:2307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2309
    functionName: _PyObject_GC_Link
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _Py_ScheduleGC
    - _Py_atomic_load_int_relaxed
    - _PyThreadState_GET
    - _PyObject_ASSERT
    - AS_GC
    - _PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: void _PyObject_GC_Link(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGC_Collect
      Src: /src/cpython/Python/gc.c:2315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2311
    functionDepth: 0
    functionLinenumber: 2311
    functionLinenumberEnd: 2317
    functionName: _Py_RunGC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _PyGC_Collect
    linkageType: ''
    returnType: void
    signature: void _Py_RunGC(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc.c:2322,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2324,1
    - Dst: _PyObject_MallocWithType
      Src: /src/cpython/Python/gc.c:2327,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2329,1
    - Dst: _PyObject_GC_Link
      Src: /src/cpython/Python/gc.c:2334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tp
    - basicsize
    - presize
    argTypes:
    - PyTypeObject*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2319
    functionDepth: 7
    functionLinenumber: 2319
    functionLinenumberEnd: 2336
    functionName: gc_alloc
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_NoMemory
    - _PyObject_MallocWithType
    - _PyObject_GC_Link
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_alloc(PyTypeObject *tp, size_t basicsize, size_t presize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc.c:2342,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc.c:2343,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/gc.c:2344,1
    - Dst: _PyInlineValuesSize
      Src: /src/cpython/Python/gc.c:2345,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc.c:2347,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc.c:2351,1
    - Dst: _PyObject_InitInlineValues
      Src: /src/cpython/Python/gc.c:2353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2339
    functionDepth: 2
    functionLinenumber: 2339
    functionLinenumberEnd: 2356
    functionName: _PyObject_GC_New
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_SIZE
    - _PyObject_InitInlineValues
    - _PyInlineValuesSize
    - _PyType_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GC_New(PyTypeObject *tp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/gc.c:2364,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc.c:2367,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Python/gc.c:2368,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc.c:2369,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Python/gc.c:2373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2358
    functionDepth: 1
    functionLinenumber: 2358
    functionLinenumberEnd: 2375
    functionName: _PyObject_GC_NewVar
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_VAR_SIZE
    - _PyObject_InitVar
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_GC_NewVar(PyTypeObject *tp, Py_ssize_t nitems)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc.c:2380,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc.c:2381,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc.c:2382,1
    - Dst: memset
      Src: /src/cpython/Python/gc.c:2386,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc.c:2387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - extra_size
    argTypes:
    - PyTypeObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2389
    functionName: PyUnstable_Object_GC_NewWithExtraData
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _PyObject_Init
    - memset
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *tp, size_t extra_size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Python/gc.c:2394,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2394,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc.c:2395,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2395,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:2396,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2396,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2398,1
    - Dst: _PyObject_ReallocWithType
      Src: /src/cpython/Python/gc.c:2401,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2401,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2403,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/gc.c:2406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - op
    - nitems
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2391
    functionDepth: 1
    functionLinenumber: 2391
    functionLinenumberEnd: 2408
    functionName: _PyObject_GC_Resize
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - Py_SET_SIZE
    - _PyType_PreHeaderSize
    - _PyObject_VAR_SIZE
    - _PyObject_ReallocWithType
    - _PyObject_ASSERT
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc.c:2413,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2413,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:2414,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2415,1
    - Dst: gc_list_remove
      Src: /src/cpython/Python/gc.c:2416,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/gc.c:2418,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc.c:2419,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2423,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:2425,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/gc.c:2427,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2430,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/gc.c:2435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2410
    functionDepth: 2
    functionLinenumber: 2410
    functionLinenumberEnd: 2436
    functionName: PyObject_GC_Del
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 55
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - PyErr_WarnExplicitFormat
    - PyObject_Free
    - PyErr_GetRaisedException
    - _PyType_PreHeaderSize
    - PyErr_FormatUnraisable
    - get_gc_state
    - gc_list_remove
    - AS_GC
    - Py_TYPE
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Del(void *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:2441,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2445
    functionName: PyObject_GC_IsTracked
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 5
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyObject_IS_GC
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsTracked(PyObject* obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:2450,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Python/gc.c:2450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2447
    functionDepth: 1
    functionLinenumber: 2447
    functionLinenumberEnd: 2454
    functionName: PyObject_GC_IsFinalized
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _PyObject_IS_GC
    - _PyGC_FINALIZED
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsFinalized(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:2461,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:2461,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:2462,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:2463,1
    - Dst: callback
      Src: /src/cpython/Python/gc.c:2464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:2465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - callback
    - arg
    - gen
    argTypes:
    - gcvisitobjects_t
    - void*
    - struct gc_generation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2456
    functionDepth: 1
    functionLinenumber: 2456
    functionLinenumberEnd: 2471
    functionName: visit_generation
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - FROM_GC
    - GC_NEXT
    - callback
    linkageType: ''
    returnType: int
    signature: int visit_generation(gcvisitobjects_t callback, void *arg, struct gc_generation
      *gen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2476,1
    - Dst: visit_generation
      Src: /src/cpython/Python/gc.c:2479,1
    - Dst: visit_generation
      Src: /src/cpython/Python/gc.c:2482,1
    - Dst: visit_generation
      Src: /src/cpython/Python/gc.c:2485,1
    - Dst: visit_generation
      Src: /src/cpython/Python/gc.c:2488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - callback
    - arg
    argTypes:
    - gcvisitobjects_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2473
    functionDepth: 2
    functionLinenumber: 2473
    functionLinenumberEnd: 2491
    functionName: PyUnstable_GC_VisitObjects
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 2
    functionsReached:
    - get_gc_state
    - visit_generation
    linkageType: ''
    returnType: void
    signature: void PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mutex
    - attr
    argTypes:
    - pthread_mutex_t*
    - pthread_mutexattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: pthread_mutex_init
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pthread_mutex_init(pthread_mutex_t *restrict mutex,\n                   const
      pthread_mutexattr_t *restrict attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: pthread_mutex_destroy
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_destroy(pthread_mutex_t *mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: pthread_mutex_trylock
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_trylock(pthread_mutex_t *mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: pthread_mutex_lock
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_lock(pthread_mutex_t *mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: pthread_mutex_unlock
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_unlock(pthread_mutex_t *mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cond
    - attr
    argTypes:
    - pthread_cond_t*
    - pthread_condattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: pthread_cond_init
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pthread_cond_init(pthread_cond_t *restrict cond,\n                  const
      pthread_condattr_t *restrict attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pthread_cond_destroy
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pthread_cond_destroy(pthread_cond_t *cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cond
    - mutex
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: pthread_cond_wait
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pthread_cond_wait(pthread_cond_t *restrict cond,\n                  pthread_mutex_t
      *restrict mutex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cond
    - mutex
    - abstime
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: pthread_cond_timedwait
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pthread_cond_timedwait(pthread_cond_t *restrict cond,\n                       pthread_mutex_t
      *restrict mutex,\n                       const struct timespec *restrict abstime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: pthread_cond_signal
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_cond_signal(pthread_cond_t *cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attr
    argTypes:
    - pthread_condattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: pthread_condattr_init
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_condattr_init(pthread_condattr_t *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - attr
    - clock_id
    argTypes:
    - pthread_condattr_t*
    - clockid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: pthread_condattr_setclock
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - thread
    - attr
    - (*start_routine)(void *)
    - arg
    argTypes:
    - pthread_t*
    - pthread_attr_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: pthread_create
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pthread_create(pthread_t *restrict thread,\n               const
      pthread_attr_t *restrict attr,\n               void *(*start_routine)(void *),\n
      \              void *restrict arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - pthread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: pthread_detach
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_detach(pthread_t thread)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - thread
    - value_ptr
    argTypes:
    - pthread_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: pthread_join
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_join(pthread_t thread, void** value_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: pthread_self
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pthread_self(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/cpython/Python/thread_pthread_stubs.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - retval
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: pthread_exit
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: int
    signature: int pthread_exit(void *retval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attr
    argTypes:
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: pthread_attr_init
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_init(pthread_attr_t *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - attr
    - stacksize
    argTypes:
    - pthread_attr_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: pthread_attr_setstacksize
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pthread_attr_setstacksize(\n    pthread_attr_t *attr, size_t stacksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attr
    argTypes:
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: pthread_attr_destroy
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_destroy(pthread_attr_t *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/thread_pthread_stubs.h:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - key
    argTypes:
    - pthread_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: pthread_key_create
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 1
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int pthread_key_create(pthread_key_t *key, void (*destr_function)(void
      *))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - pthread_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 169
    functionName: pthread_key_delete
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_key_delete(pthread_key_t key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - pthread_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: pthread_getspecific
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      pthread_getspecific(pthread_key_t key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - pthread_key_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: pthread_setspecific
    functionSourceFile: /src/cpython/Python/thread_pthread_stubs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_setspecific(pthread_key_t key, const void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/intrinsics.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - unused
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: no_intrinsic1
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      no_intrinsic1(PyThreadState* tstate, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/intrinsics.c:29,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:29,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/intrinsics.c:33,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(ignored)
    - value
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: print_expr
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - PySys_GetAttr
    - PyObject_CallOneArg
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      print_expr(PyThreadState* Py_UNUSED(ignored), PyObject *value)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/intrinsics.c:45,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:45,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/intrinsics.c:49,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:49,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/intrinsics.c:53,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Python/intrinsics.c:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:58,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/intrinsics.c:65,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/intrinsics.c:67,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/intrinsics.c:71,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:75,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/intrinsics.c:76,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:78,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:82,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/intrinsics.c:83,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/intrinsics.c:85,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/intrinsics.c:88,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/intrinsics.c:93,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:96,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/intrinsics.c:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:102,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/intrinsics.c:106,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/intrinsics.c:109,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/intrinsics.c:110,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/intrinsics.c:112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:113,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/intrinsics.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:118,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 3
    argNames:
    - tstate
    - locals
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 38
    functionDepth: 9
    functionLinenumber: 38
    functionLinenumberEnd: 120
    functionName: import_all_from
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_XDECREF
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - PyDict_SetItem
    - PyObject_GetOptionalAttr
    - PyDict_CheckExact
    - _PyErr_Format
    - _Py_ID
    - PyMapping_Keys
    - _PyErr_Clear
    - PyObject_SetItem
    - PyObject_GetAttr
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyErr_SetString
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int import_all_from(PyThreadState *tstate, PyObject *locals, PyObject
      *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetLocals
      Src: /src/cpython/Python/intrinsics.c:127,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/intrinsics.c:129,1
    - Dst: import_all_from
      Src: /src/cpython/Python/intrinsics.c:133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - from
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 11
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: import_star
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - import_all_from
    - _PyErr_SetString
    - _PyFrame_GetLocals
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_star(PyThreadState* tstate, PyObject *from)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:145,1
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:146,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/intrinsics.c:146,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/intrinsics.c:148,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/intrinsics.c:150,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/intrinsics.c:153,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/intrinsics.c:157,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/intrinsics.c:158,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Python/intrinsics.c:166,1
    - Dst: strlen
      Src: /src/cpython/Python/intrinsics.c:166,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/intrinsics.c:170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:172,1
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:175,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/intrinsics.c:175,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/intrinsics.c:176,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/intrinsics.c:176,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/intrinsics.c:178,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/intrinsics.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:179,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/intrinsics.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(error))
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/cpython/Python/intrinsics.c
    - condition: (frame->owner == FRAME_OWNED_BY_GENERATOR)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/cpython/Python/intrinsics.c
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 183
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 183
    functionName: stopiteration_error
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - assert
    - PyException_SetCause
    - Py_DECREF
    - strlen
    - PyErr_GivenExceptionMatches
    - Py_NewRef
    - PyException_SetContext
    - PyObject_CallOneArg
    - _PyUnicode_FromASCII
    - PyExceptionInstance_Check
    - _PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stopiteration_error(PyThreadState* tstate, PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Positive
      Src: /src/cpython/Python/intrinsics.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unused
    - value
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: unary_pos
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - PyNumber_Positive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unary_pos(PyThreadState* unused, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:194,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/intrinsics.c:194,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Python/intrinsics.c:195,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/intrinsics.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unused
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(v))
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: list_to_tuple
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _PyTuple_FromArray
    - assert
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_to_tuple(PyThreadState* unused, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:201,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:201,1
    - Dst: _Py_make_typevar
      Src: /src/cpython/Python/intrinsics.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(ignored)
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(v))
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: make_typevar
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 1
    functionsReached:
    - PyUnicode_Check
    - _Py_make_typevar
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_typevar(PyThreadState* Py_UNUSED(ignored), PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: INTRINSIC_FUNC_ENTRY
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTRINSIC_FUNC_ENTRY(N, F)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/intrinsics.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - unused1
    - unused2
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: no_intrinsic2
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      no_intrinsic2(PyThreadState* tstate, PyObject *unused1, PyObject *unused2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:238,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/intrinsics.c:238,1
    - Dst: _PyExc_PrepReraiseStar
      Src: /src/cpython/Python/intrinsics.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unused
    - orig
    - excs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(excs))
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 7
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: prep_reraise_star
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _PyExc_PrepReraiseStar
    - assert
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      prep_reraise_star(PyThreadState* unused, PyObject *orig, PyObject *excs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:246,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:246,1
    - Dst: _Py_make_typevar
      Src: /src/cpython/Python/intrinsics.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - Py_UNUSED(ignored)
    - name
    - evaluate_bound
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: make_typevar_with_bound
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _Py_make_typevar
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_typevar_with_bound(PyThreadState* Py_UNUSED(ignored),
      PyObject *name,\n                        PyObject *evaluate_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:254,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:254,1
    - Dst: _Py_make_typevar
      Src: /src/cpython/Python/intrinsics.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - Py_UNUSED(ignored)
    - name
    - evaluate_constraints
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: make_typevar_with_constraints
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _Py_make_typevar
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_typevar_with_constraints(PyThreadState* Py_UNUSED(ignored),
      PyObject *name,\n                              PyObject *evaluate_constraints)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/intrinsics.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: _PyCompile_GetUnaryIntrinsicName
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_GetUnaryIntrinsicName(int index)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/intrinsics.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: _PyCompile_GetBinaryIntrinsicName
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_GetBinaryIntrinsicName(int index)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:57,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:58,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/ceval_gil.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - from
    - to
    - mask
    argTypes:
    - uintptr_t*
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: copy_eval_breaker_bits
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr_relaxed
    linkageType: ''
    returnType: void
    signature: void copy_eval_breaker_bits(uintptr_t *from, uintptr_t *to, uintptr_t
      mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int32_relaxed
      Src: /src/cpython/Python/ceval_gil.c:81,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:84,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:86,1
    - Dst: _Py_atomic_load_int32_relaxed
      Src: /src/cpython/Python/ceval_gil.c:87,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:90,1
    - Dst: copy_eval_breaker_bits
      Src: /src/cpython/Python/ceval_gil.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - interp
    - tstate
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 99
    functionName: update_eval_breaker_for_thread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainThread
    - _Py_set_eval_breaker_bit
    - copy_eval_breaker_bits
    - _Py_atomic_load_int32_relaxed
    linkageType: ''
    returnType: void
    signature: void update_eval_breaker_for_thread(PyInterpreterState *interp, PyThreadState
      *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: MUTEX_INIT
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    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: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: MUTEX_FINI
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    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: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: MUTEX_LOCK
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 6
    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: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: MUTEX_UNLOCK
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 6
    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: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: COND_INIT
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    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: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: COND_FINI
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    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: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: COND_SIGNAL
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    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: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: COND_WAIT
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    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: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: COND_TIMED_WAIT
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    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: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: _gil_initialize
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _gil_initialize(struct _gil_runtime_state *gil)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_acquire
      Src: /src/cpython/Python/ceval_gil.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: gil_created
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_acquire
    linkageType: ''
    returnType: int
    signature: int gil_created(struct _gil_runtime_state *gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_INIT
      Src: /src/cpython/Python/ceval_gil.c:165,1
    - Dst: MUTEX_INIT
      Src: /src/cpython/Python/ceval_gil.c:167,1
    - Dst: COND_INIT
      Src: /src/cpython/Python/ceval_gil.c:169,1
    - Dst: COND_INIT
      Src: /src/cpython/Python/ceval_gil.c:171,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:173,1
    - Dst: _Py_ANNOTATE_RWLOCK_CREATE
      Src: /src/cpython/Python/ceval_gil.c:174,1
    - Dst: _Py_atomic_store_int_release
      Src: /src/cpython/Python/ceval_gil.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: create_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - COND_INIT
    - _Py_atomic_store_ptr_relaxed
    - _Py_atomic_store_int_release
    - MUTEX_INIT
    - _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/cpython/Python/ceval_gil.c:183,1
    - Dst: MUTEX_FINI
      Src: /src/cpython/Python/ceval_gil.c:184,1
    - Dst: COND_FINI
      Src: /src/cpython/Python/ceval_gil.c:186,1
    - Dst: MUTEX_FINI
      Src: /src/cpython/Python/ceval_gil.c:187,1
    - Dst: _Py_atomic_store_int_release
      Src: /src/cpython/Python/ceval_gil.c:189,1
    - Dst: _Py_ANNOTATE_RWLOCK_DESTROY
      Src: /src/cpython/Python/ceval_gil.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: destroy_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - COND_FINI
    - _Py_atomic_store_int_release
    - _Py_ANNOTATE_RWLOCK_DESTROY
    - MUTEX_FINI
    linkageType: ''
    returnType: void
    signature: void destroy_gil(struct _gil_runtime_state *gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ANNOTATE_RWLOCK_DESTROY
      Src: /src/cpython/Python/ceval_gil.c:196,1
    - Dst: create_gil
      Src: /src/cpython/Python/ceval_gil.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: recreate_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_ANNOTATE_RWLOCK_DESTROY
    - create_gil
    linkageType: ''
    returnType: void
    signature: void recreate_gil(struct _gil_runtime_state *gil)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:205,1
    - Dst: _Py_ANNOTATE_RWLOCK_RELEASED
      Src: /src/cpython/Python/ceval_gil.c:206,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:207,1
    - Dst: COND_SIGNAL
      Src: /src/cpython/Python/ceval_gil.c:211,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - gil
    argTypes:
    - PyThreadState*
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: drop_gil_impl
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int_relaxed
    - _Py_ANNOTATE_RWLOCK_RELEASED
    - MUTEX_LOCK
    - COND_SIGNAL
    - MUTEX_UNLOCK
    linkageType: ''
    returnType: void
    signature: void drop_gil_impl(PyThreadState *tstate, struct _gil_runtime_state
      *gil)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:228,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:238,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval_gil.c:239,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:246,1
    - Dst: drop_gil_impl
      Src: /src/cpython/Python/ceval_gil.c:249,1
    - Dst: _Py_eval_breaker_bit_is_set
      Src: /src/cpython/Python/ceval_gil.c:259,1
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:260,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:262,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:264,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:264,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:265,1
    - Dst: COND_WAIT
      Src: /src/cpython/Python/ceval_gil.c:270,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:272,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - interp
    - tstate
    - final_release
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    - int
    assertStmts:
    - condition: (final_release || tstate != NULL)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 275
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 275
    functionName: drop_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_eval_breaker_bit_is_set
    - _Py_atomic_load_ptr_relaxed
    - _PyThreadState_CheckConsistency
    - Py_FatalError
    - _Py_atomic_load_int_relaxed
    - _Py_unset_eval_breaker_bit
    - _Py_atomic_store_ptr_relaxed
    - COND_WAIT
    - MUTEX_LOCK
    - drop_gil_impl
    - assert
    - MUTEX_UNLOCK
    linkageType: ''
    returnType: void
    signature: void drop_gil(PyInterpreterState *interp, PyThreadState *tstate, int
      final_release)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:289,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Python/ceval_gil.c:294,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/ceval_gil.c:306,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:309,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:309,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:313,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:319,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:319,1
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:321,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:324,1
    - Dst: _Py_atomic_load_ulong_relaxed
      Src: /src/cpython/Python/ceval_gil.c:327,1
    - Dst: COND_TIMED_WAIT
      Src: /src/cpython/Python/ceval_gil.c:332,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:337,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:341,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Python/ceval_gil.c:342,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:343,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:351,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/ceval_gil.c:355,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:357,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:357,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:359,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:365,1
    - Dst: COND_SIGNAL
      Src: /src/cpython/Python/ceval_gil.c:369,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:370,1
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:378,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:381,1
    - Dst: _Py_ANNOTATE_RWLOCK_ACQUIRED
      Src: /src/cpython/Python/ceval_gil.c:382,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:384,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:385,1
    - Dst: COND_SIGNAL
      Src: /src/cpython/Python/ceval_gil.c:390,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:391,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Python/ceval_gil.c:394,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:402,1
    - Dst: drop_gil
      Src: /src/cpython/Python/ceval_gil.c:405,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/ceval_gil.c:406,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:408,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:408,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:411,1
    - Dst: update_eval_breaker_for_thread
      Src: /src/cpython/Python/ceval_gil.c:412,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:414,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (gil_created(gil))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 418
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 418
    functionName: take_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_ANNOTATE_RWLOCK_ACQUIRED
    - _Py_atomic_store_int_relaxed
    - COND_TIMED_WAIT
    - gil_created
    - update_eval_breaker_for_thread
    - MUTEX_LOCK
    - MUTEX_UNLOCK
    - _PyThreadState_MustExit
    - _PyThreadState_CheckConsistency
    - _Py_unset_eval_breaker_bit
    - _Py_atomic_store_ptr_relaxed
    - COND_SIGNAL
    - _Py_atomic_load_ulong_relaxed
    - _Py_set_eval_breaker_bit
    - _PyThreadState_HangThread
    - _Py_atomic_load_ptr_relaxed
    - _Py_atomic_load_int_relaxed
    - drop_gil
    - assert
    linkageType: ''
    returnType: void
    signature: void take_gil(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval_gil.c:422,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:424,1
    - Dst: _Py_atomic_store_ulong_relaxed
      Src: /src/cpython/Python/ceval_gil.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - microseconds
    argTypes:
    - unsigned long
    assertStmts:
    - condition: (gil != NULL)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: _PyEval_SetSwitchInterval
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ulong_relaxed
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyEval_SetSwitchInterval(unsigned long microseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval_gil.c:430,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:432,1
    - Dst: _Py_atomic_load_ulong_relaxed
      Src: /src/cpython/Python/ceval_gil.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gil != NULL)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 434
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 434
    functionName: _PyEval_GetSwitchInterval
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ulong_relaxed
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _PyEval_GetSwitchInterval(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:443,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 449
    functionName: _PyEval_ThreadsInitialized
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Main
    - gil_created
    linkageType: ''
    returnType: int
    signature: int _PyEval_ThreadsInitialized(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_ThreadsInitialized
      Src: /src/cpython/Python/ceval_gil.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: PyEval_ThreadsInitialized
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 2
    functionsReached:
    - _PyEval_ThreadsInitialized
    linkageType: ''
    returnType: void
    signature: void PyEval_ThreadsInitialized(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:466,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:468,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:469,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - gil
    - tstate
    argTypes:
    - struct _gil_runtime_state*
    - PyThreadState*
    assertStmts:
    - condition: (!holds_gil || locked)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (!holds_gil || is_last_holder)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: current_thread_holds_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr_relaxed
    - assert
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: int
    signature: int current_thread_holds_gil(struct _gil_runtime_state *gil, PyThreadState
      *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:479,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - gil
    argTypes:
    - PyInterpreterState*
    - struct _gil_runtime_state*
    assertStmts:
    - condition: (gil_created(gil))
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: init_shared_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - gil_created
    - assert
    linkageType: ''
    returnType: void
    signature: void init_shared_gil(PyInterpreterState *interp, struct _gil_runtime_state
      *gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:487,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:487,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:489,1
    - Dst: create_gil
      Src: /src/cpython/Python/ceval_gil.c:492,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:493,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - interp
    - gil
    argTypes:
    - PyInterpreterState*
    - struct _gil_runtime_state*
    assertStmts:
    - condition: (!gil_created(gil))
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (gil_created(gil))
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 496
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 496
    functionName: init_own_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - gil_created
    - assert
    - create_gil
    linkageType: ''
    returnType: void
    signature: void init_own_gil(PyInterpreterState *interp, struct _gil_runtime_state
      *gil)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:501,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:504,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:505,1
    - Dst: init_shared_gil
      Src: /src/cpython/Python/ceval_gil.c:507,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:508,1
    - Dst: current_thread_holds_gil
      Src: /src/cpython/Python/ceval_gil.c:508,1
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/ceval_gil.c:511,1
    - Dst: init_own_gil
      Src: /src/cpython/Python/ceval_gil.c:512,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tstate
    - own_gil
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (tstate->interp->ceval.gil == NULL)
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (!current_thread_holds_gil(gil, tstate))
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (tstate->interp != main_interp)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 517
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 517
    functionName: _PyEval_InitGIL
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - current_thread_holds_gil
    - PyThread_init_thread
    - _PyThreadState_Attach
    - init_shared_gil
    - init_own_gil
    - _PyInterpreterState_Main
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyEval_InitGIL(PyThreadState *tstate, int own_gil)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:525,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:530,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:531,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:532,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:538,1
    - Dst: destroy_gil
      Src: /src/cpython/Python/ceval_gil.c:544,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:545,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (!interp->ceval.own_gil)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (main_interp != NULL && interp != main_interp)
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (interp->ceval.gil == main_interp->ceval.gil)
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (!gil_created(gil))
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 547
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 547
    functionName: _PyEval_FiniGIL
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - gil_created
    - assert
    - destroy_gil
    linkageType: ''
    returnType: void
    signature: void _PyEval_FiniGIL(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: PyEval_InitThreads
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyEval_InitThreads(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PrintSpecializationStats
      Src: /src/cpython/Python/ceval_gil.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 561
    functionName: _PyEval_Fini
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_PrintSpecializationStats
    linkageType: ''
    returnType: void
    signature: void _PyEval_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:567,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/ceval_gil.c:568,1
    - Dst: take_gil
      Src: /src/cpython/Python/ceval_gil.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 565
    functionDepth: 5
    functionLinenumber: 565
    functionLinenumberEnd: 571
    functionName: PyEval_AcquireLock
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _Py_EnsureTstateNotNULL
    - take_gil
    linkageType: ''
    returnType: void
    signature: void PyEval_AcquireLock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:577,1
    - Dst: drop_gil
      Src: /src/cpython/Python/ceval_gil.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 582
    functionName: PyEval_ReleaseLock
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - drop_gil
    linkageType: ''
    returnType: void
    signature: void PyEval_ReleaseLock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/ceval_gil.c:587,1
    - Dst: take_gil
      Src: /src/cpython/Python/ceval_gil.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 5
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: _PyEval_AcquireLock
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - take_gil
    - _Py_EnsureTstateNotNULL
    linkageType: ''
    returnType: void
    signature: void _PyEval_AcquireLock(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:596,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:597,1
    - Dst: drop_gil
      Src: /src/cpython/Python/ceval_gil.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - interp
    - tstate
    - final_release
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    - int
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (tstate->interp == interp)
      pos:
        line_end: 596
        line_start: 596
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 599
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 599
    functionName: _PyEval_ReleaseLock
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 2
    functionsReached:
    - drop_gil
    - assert
    linkageType: ''
    returnType: void
    signature: "void _PyEval_ReleaseLock(PyInterpreterState *interp,\n                    PyThreadState
      *tstate,\n                    int final_release)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/ceval_gil.c:604,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: PyEval_AcquireThread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _Py_EnsureTstateNotNULL
    - _PyThreadState_Attach
    linkageType: ''
    returnType: void
    signature: void PyEval_AcquireThread(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:611,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:611,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: PyEval_ReleaseThread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_Detach
    - _PyThreadState_CheckConsistency
    - assert
    linkageType: ''
    returnType: void
    signature: void PyEval_ReleaseThread(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:621,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:621,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:624,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/ceval_gil.c:625,1
    - Dst: recreate_gil
      Src: /src/cpython/Python/ceval_gil.c:627,1
    - Dst: take_gil
      Src: /src/cpython/Python/ceval_gil.c:629,1
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/ceval_gil.c:632,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/ceval_gil.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->interp == _PyInterpreterState_Main())
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 635
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 635
    functionName: _PyEval_ReInitThreads
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyStatus_OK
    - take_gil
    - recreate_gil
    - _PyMutex_at_fork_reinit
    - _PyInterpreterState_Main
    - gil_created
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyEval_ReInitThreads(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:641,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: PyEval_SaveThread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 10
    functionsReached:
    - _PyThreadState_GET
    - _PyThreadState_Detach
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyEval_SaveThread(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Python/ceval_gil.c:650,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/ceval_gil.c:653,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:654,1
    - Dst: SetLastError
      Src: /src/cpython/Python/ceval_gil.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 646
    functionDepth: 4
    functionLinenumber: 646
    functionLinenumberEnd: 659
    functionName: PyEval_RestoreThread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 10
    functionsReached:
    - SetLastError
    - _Py_EnsureTstateNotNULL
    - GetLastError
    - _PyThreadState_Attach
    linkageType: ''
    returnType: void
    signature: void PyEval_RestoreThread(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: _PyEval_SignalReceived
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _Py_set_eval_breaker_bit
    linkageType: ''
    returnType: void
    signature: void _PyEval_SignalReceived(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:678,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:679,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:680,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:682,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - bit
    argTypes:
    - PyInterpreterState*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 686
    functionName: signal_active_thread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr_relaxed
    - _Py_atomic_load_int_relaxed
    - MUTEX_LOCK
    - _Py_set_eval_breaker_bit
    - MUTEX_UNLOCK
    linkageType: ''
    returnType: void
    signature: void signal_active_thread(PyInterpreterState *interp, uintptr_t bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:720,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:723,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:729,1
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Python/ceval_gil.c:730,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - pending
    - func
    - arg
    - flags
    argTypes:
    - struct _pending_calls*
    - _Py_pending_call_func
    - void*
    - int
    assertStmts:
    - condition: (pending->npending < pending->max)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (pending->npending < PENDINGCALLSARRAYSIZE)
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: "(pending->next != pending->first\n            || pending->npending
        == pending->max)"
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (pending->calls[i].func == NULL)
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 737
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 737
    functionName: _push_pending_call
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int32
    - assert
    linkageType: ''
    returnType: int
    signature: "int _push_pending_call(struct _pending_calls *pending,\n                   _Py_pending_call_func
      func, void *arg, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:746,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - pending
    - arg
    - flags
    argTypes:
    - struct _pending_calls*
    - void**
    - int*
    assertStmts:
    - condition: (i == pending->next)
      pos:
        line_end: 745
        line_start: 745
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (pending->calls[i].func == NULL)
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 754
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 754
    functionName: _next_pending_call
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int _next_pending_call(struct _pending_calls *pending,\n                   int
      (**func)(void *), void **arg, int *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _next_pending_call
      Src: /src/cpython/Python/ceval_gil.c:761,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:765,1
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Python/ceval_gil.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pending
    - arg
    - flags
    argTypes:
    - struct _pending_calls*
    - void**
    - int*
    assertStmts:
    - condition: (pending->npending > 0)
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 768
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 768
    functionName: _pop_pending_call
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _next_pending_call
    - _Py_atomic_add_int32
    - assert
    linkageType: ''
    returnType: void
    signature: "void _pop_pending_call(struct _pending_calls *pending,\n                  int
      (**func)(void *), void **arg, int *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:783,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:783,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/ceval_gil.c:787,1
    - Dst: _push_pending_call
      Src: /src/cpython/Python/ceval_gil.c:789,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:790,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:793,1
    - Dst: _Py_set_eval_breaker_bit_all
      Src: /src/cpython/Python/ceval_gil.c:797,1
    - Dst: signal_active_thread
      Src: /src/cpython/Python/ceval_gil.c:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - interp
    - func
    - arg
    - flags
    argTypes:
    - PyInterpreterState*
    - _Py_pending_call_func
    - void*
    - int
    assertStmts:
    - condition: (_Py_IsMainInterpreter(interp))
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 804
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 804
    functionName: _PyEval_AddPendingCall
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 3
    functionsReached:
    - _Py_IsMainInterpreter
    - PyMutex_Lock
    - _Py_set_eval_breaker_bit_all
    - PyMutex_Unlock
    - signal_active_thread
    - _Py_set_eval_breaker_bit
    - assert
    - _push_pending_call
    linkageType: ''
    returnType: _Py_add_pending_call_result
    signature: "_Py_add_pending_call_result _PyEval_AddPendingCall(PyInterpreterState
      *interp,\n                       _Py_pending_call_func func, void *arg, int
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:811,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Python/ceval_gil.c:813,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - _Py_pending_call_func
    - void*
    assertStmts:
    - condition: (r == _Py_ADD_PENDING_SUCCESS)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 821
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 821
    functionName: Py_AddPendingCall
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Main
    - _PyEval_AddPendingCall
    - assert
    linkageType: ''
    returnType: int
    signature: int Py_AddPendingCall(_Py_pending_call_func func, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:826,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:826,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:827,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Python/ceval_gil.c:828,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Python/ceval_gil.c:831,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 837
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 837
    functionName: handle_signals
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_ThreadCanHandleSignals
    - _PyThreadState_CheckConsistency
    - _Py_unset_eval_breaker_bit
    - _PyErr_CheckSignalsTstate
    - _Py_set_eval_breaker_bit
    - assert
    linkageType: ''
    returnType: int
    signature: int handle_signals(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:845,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/ceval_gil.c:846,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:851,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/ceval_gil.c:860,1
    - Dst: _pop_pending_call
      Src: /src/cpython/Python/ceval_gil.c:861,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:863,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:867,1
    - Dst: func
      Src: /src/cpython/Python/ceval_gil.c:872,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/ceval_gil.c:874,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - pending
    - p_npending
    argTypes:
    - struct _pending_calls*
    - int32_t*
    assertStmts:
    - condition: "(sizeof(pending->max) <= sizeof(size_t)\n            && ((size_t)pending->max)
        <= Py_ARRAY_LENGTH(pending->calls))"
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (maxloop > 0 && maxloop <= pending->max)
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (npending == 0)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 885
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 885
    functionName: _make_pending_calls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - func
    - _pop_pending_call
    - PyMutex_Lock
    - PyMutex_Unlock
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int _make_pending_calls(struct _pending_calls *pending, int32_t *p_npending)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_set_eval_breaker_bit_all
      Src: /src/cpython/Python/ceval_gil.c:891,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - interp
    argTypes:
    - PyThreadState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 895
    functionName: signal_pending_calls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_set_eval_breaker_bit
    - _Py_set_eval_breaker_bit_all
    linkageType: ''
    returnType: void
    signature: void signal_pending_calls(PyThreadState *tstate, PyInterpreterState
      *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_unset_eval_breaker_bit_all
      Src: /src/cpython/Python/ceval_gil.c:901,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - interp
    argTypes:
    - PyThreadState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 905
    functionName: unsignal_pending_calls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_unset_eval_breaker_bit_all
    - _Py_unset_eval_breaker_bit
    linkageType: ''
    returnType: void
    signature: void unsignal_pending_calls(PyThreadState *tstate, PyInterpreterState
      *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:910,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pending
    argTypes:
    - struct _pending_calls*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 913
    functionName: clear_pending_handling_thread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - FT_MUTEX_LOCK
    - FT_MUTEX_UNLOCK
    linkageType: ''
    returnType: void
    signature: void clear_pending_handling_thread(struct _pending_calls *pending)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/ceval_gil.c:924,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:933,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:934,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:935,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:939,1
    - Dst: unsignal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:943,1
    - Dst: _make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:946,1
    - Dst: clear_pending_handling_thread
      Src: /src/cpython/Python/ceval_gil.c:947,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:949,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:954,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:957,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:957,1
    - Dst: _make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:958,1
    - Dst: clear_pending_handling_thread
      Src: /src/cpython/Python/ceval_gil.c:959,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:961,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:966,1
    - Dst: clear_pending_handling_thread
      Src: /src/cpython/Python/ceval_gil.c:970,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 972
    functionName: make_pending_calls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - signal_pending_calls
    - _Py_IsMainInterpreter
    - clear_pending_handling_thread
    - _Py_IsMainThread
    - _Py_unset_eval_breaker_bit
    - _make_pending_calls
    - PyMutex_Lock
    - PyMutex_Unlock
    - unsignal_pending_calls
    - _Py_set_eval_breaker_bit
    linkageType: ''
    returnType: int
    signature: int make_pending_calls(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:979,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/ceval_gil.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - bit
    argTypes:
    - PyInterpreterState*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 982
    functionName: _Py_set_eval_breaker_bit_all
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 2
    functionsReached:
    - _Py_set_eval_breaker_bit
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: void
    signature: void _Py_set_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t
      bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_set_eval_breaker_bit
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:988,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/ceval_gil.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - bit
    argTypes:
    - PyInterpreterState*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 991
    functionName: _Py_unset_eval_breaker_bit_all
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _Py_unset_eval_breaker_bit
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: void
    signature: void _Py_unset_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t
      bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 989
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_unset_eval_breaker_bit
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/ceval_gil.c:996,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:997,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:997,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:1001,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:1001,1
    - Dst: make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:1011,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval_gil.c:1012,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/ceval_gil.c:1013,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/ceval_gil.c:1014,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/ceval_gil.c:1015,1
    - Dst: _Py_atomic_load_int32_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1018,1
    - Dst: _Py_atomic_load_int32_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1020,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1023,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 996
        line_start: 996
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (npending_prev > npending)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1027
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1027
    functionName: _Py_FinishPendingCalls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - _Py_IsMainInterpreter
    - _PyThreadState_CheckConsistency
    - _PyErr_GetRaisedException
    - _PyErr_Print
    - _Py_IsMainThread
    - PyErr_BadInternalCall
    - make_pending_calls
    - _Py_atomic_load_int32_relaxed
    - _Py_AssertHoldsTstate
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_FinishPendingCalls(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:1034,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:1034,1
    - Dst: handle_signals
      Src: /src/cpython/Python/ceval_gil.c:1038,1
    - Dst: make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1029
    functionDepth: 4
    functionLinenumber: 1029
    functionLinenumberEnd: 1050
    functionName: _PyEval_MakePendingCalls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainThread
    - _Py_IsMainInterpreter
    - make_pending_calls
    - handle_signals
    linkageType: ''
    returnType: int
    signature: int _PyEval_MakePendingCalls(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/ceval_gil.c:1057,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:1059,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1060,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:1060,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:1063,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:1063,1
    - Dst: _PyEval_MakePendingCalls
      Src: /src/cpython/Python/ceval_gil.c:1066,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1067
      start: 1054
    functionDepth: 5
    functionLinenumber: 1054
    functionLinenumberEnd: 1067
    functionName: Py_MakePendingCalls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 4
    functionsReached:
    - _Py_IsMainInterpreter
    - _PyThreadState_CheckConsistency
    - _Py_IsMainThread
    - _PyThreadState_GET
    - _PyEval_MakePendingCalls
    - _Py_AssertHoldsTstate
    - assert
    linkageType: ''
    returnType: int
    signature: int Py_MakePendingCalls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gil_initialize
      Src: /src/cpython/Python/ceval_gil.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1073
    functionName: _PyEval_InitState
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _gil_initialize
    linkageType: ''
    returnType: void
    signature: void _PyEval_InitState(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:1079,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1085,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval_gil.c:1091,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1097,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:1110,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Python/ceval_gil.c:1116,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1118,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1120,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Python/ceval_gil.c:1122,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:1123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1076
    functionDepth: 4
    functionLinenumber: 1076
    functionLinenumberEnd: 1126
    functionName: _PyEval_EnableGILTransient
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_Detach
    - _Py_atomic_store_int_relaxed
    - Py_FatalError
    - _Py_atomic_load_int_relaxed
    - _PyEval_StopTheWorldAll
    - _PyThreadState_Attach
    - _PyInterpreterState_GetConfig
    - _PyEval_StartTheWorldAll
    linkageType: ''
    returnType: int
    signature: int _PyEval_EnableGILTransient(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:1131,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1137,1
    - Dst: current_thread_holds_gil
      Src: /src/cpython/Python/ceval_gil.c:1137,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1139,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (current_thread_holds_gil(gil, tstate))
      pos:
        line_end: 1136
        line_start: 1136
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1146
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1146
    functionName: _PyEval_EnableGILPermanent
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - current_thread_holds_gil
    - _Py_atomic_store_int_relaxed
    - _Py_atomic_load_int_relaxed
    - _PyInterpreterState_GetConfig
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyEval_EnableGILPermanent(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:1151,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1157,1
    - Dst: current_thread_holds_gil
      Src: /src/cpython/Python/ceval_gil.c:1157,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1159,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1164,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1170,1
    - Dst: drop_gil_impl
      Src: /src/cpython/Python/ceval_gil.c:1179,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (enabled >= 1)
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (current_thread_holds_gil(gil, tstate))
      pos:
        line_end: 1156
        line_start: 1156
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1188
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1188
    functionName: _PyEval_DisableGIL
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - current_thread_holds_gil
    - _Py_atomic_store_int_relaxed
    - _Py_atomic_load_int_relaxed
    - _Py_unset_eval_breaker_bit
    - _PyInterpreterState_GetConfig
    - drop_gil_impl
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyEval_DisableGIL(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Python/ceval_gil.c:1196,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval_gil.c:1201,1
    - Dst: PyRun_String
      Src: /src/cpython/Python/ceval_gil.c:1206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - source
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1194
    functionDepth: 10
    functionLinenumber: 1194
    functionLinenumberEnd: 1213
    functionName: run_remote_debugger_source
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - PyBytes_AsString
    - PyRun_String
    - PyDict_New
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int run_remote_debugger_source(PyObject *source)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Python/ceval_gil.c:1219,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1220,1
    - Dst: PyFile_OpenCodeObject
      Src: /src/cpython/Python/ceval_gil.c:1227,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1229,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/ceval_gil.c:1233,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval_gil.c:1233,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1235,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/ceval_gil.c:1238,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval_gil.c:1238,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1244,1
    - Dst: run_remote_debugger_source
      Src: /src/cpython/Python/ceval_gil.c:1247,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1217
    functionDepth: 11
    functionLinenumber: 1217
    functionLinenumberEnd: 1252
    functionName: run_remote_debugger_script
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyFile_OpenCodeObject
    - run_remote_debugger_source
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyErr_FormatUnraisable
    - PySys_Audit
    linkageType: ''
    returnType: void
    signature: void run_remote_debugger_script(PyObject *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:1256,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval_gil.c:1268,1
    - Dst: memcpy
      Src: /src/cpython/Python/ceval_gil.c:1271,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/ceval_gil.c:1277,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1279,1
    - Dst: run_remote_debugger_script
      Src: /src/cpython/Python/ceval_gil.c:1282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1283,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval_gil.c:1286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1254
    functionDepth: 12
    functionLinenumber: 1254
    functionLinenumberEnd: 1290
    functionName: _PyRunRemoteDebugger
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - _PyInterpreterState_GetConfig
    - PyErr_FormatUnraisable
    - memcpy
    - PyMem_Free
    - run_remote_debugger_script
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int _PyRunRemoteDebugger(PyThreadState *tstate)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1355,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1359,1
    - Dst: _PyThreadState_Suspend
      Src: /src/cpython/Python/ceval_gil.c:1360,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:1363,1
    - Dst: handle_signals
      Src: /src/cpython/Python/ceval_gil.c:1368,1
    - Dst: make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:1375,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1383,1
    - Dst: _Py_brc_merge_refcounts
      Src: /src/cpython/Python/ceval_gil.c:1384,1
    - Dst: _Py_qsbr_should_process
      Src: /src/cpython/Python/ceval_gil.c:1387,1
    - Dst: _PyMem_ProcessDelayed
      Src: /src/cpython/Python/ceval_gil.c:1388,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1394,1
    - Dst: _Py_RunGC
      Src: /src/cpython/Python/ceval_gil.c:1395,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1399,1
    - Dst: _Py_Executors_InvalidateCold
      Src: /src/cpython/Python/ceval_gil.c:1400,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:1407,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:1411,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1416,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Python/ceval_gil.c:1417,1
    - Dst: _PyErr_SetNone
      Src: /src/cpython/Python/ceval_gil.c:1419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1420,1
    - Dst: _PyRunRemoteDebugger
      Src: /src/cpython/Python/ceval_gil.c:1426,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1352
    functionDepth: 13
    functionLinenumber: 1352
    functionLinenumberEnd: 1430
    functionName: _Py_HandlePending
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyMem_ProcessDelayed
    - _PyThreadState_Detach
    - Py_DECREF
    - _PyErr_SetNone
    - _Py_unset_eval_breaker_bit
    - _PyThreadState_Attach
    - _Py_atomic_exchange_ptr
    - _PyThreadState_Suspend
    - _Py_brc_merge_refcounts
    - _Py_RunGC
    - make_pending_calls
    - _Py_qsbr_should_process
    - handle_signals
    - _Py_Executors_InvalidateCold
    - _PyRunRemoteDebugger
    - _Py_atomic_load_uintptr_relaxed
    linkageType: ''
    returnType: int
    signature: int _Py_HandlePending(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: RETURN_IF_ERROR
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:38,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/instruction_sequence.c:48,1
    - Dst: _Py_CArray_EnsureCapacity
      Src: /src/cpython/Python/instruction_sequence.c:48,1
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:52,1
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - seq
    argTypes:
    - instr_sequence*
    assertStmts:
    - condition: (seq->s_instrs != NULL || seq->s_used == 0)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/cpython/Python/instruction_sequence.c
    - condition: (seq->s_allocated >= 0)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Python/instruction_sequence.c
    - condition: (seq->s_used < seq->s_allocated)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cpython/Python/instruction_sequence.c
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: instr_sequence_next_inst
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - _Py_CArray_EnsureCapacity
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: int instr_sequence_next_inst(instr_sequence *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seq
    argTypes:
    - instr_sequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: _PyInstructionSequence_NewLabel
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyJumpTargetLabel
    signature: _PyJumpTargetLabel _PyInstructionSequence_NewLabel(instr_sequence *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/instruction_sequence.c:75,1
    - Dst: _Py_CArray_EnsureCapacity
      Src: /src/cpython/Python/instruction_sequence.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - seq
    - lbl
    argTypes:
    - instr_sequence*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: _PyInstructionSequence_UseLabel
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - _Py_CArray_EnsureCapacity
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int _PyInstructionSequence_UseLabel(instr_sequence *seq, int lbl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/instruction_sequence.c:96,1
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:97,1
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:102,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/instruction_sequence.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - instrs
    argTypes:
    - instr_sequence*
    assertStmts:
    - condition: (instr->i_oparg < instrs->s_labelmap_size)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/cpython/Python/instruction_sequence.c
    - condition: (hi->h_label < instrs->s_labelmap_size)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/instruction_sequence.c
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: _PyInstructionSequence_ApplyLabelMap
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - assert
    - PyMem_Free
    - HAS_TARGET
    linkageType: ''
    returnType: int
    signature: int _PyInstructionSequence_ApplyLabelMap(instr_sequence *instrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:119,1
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:120,1
    - Dst: IS_WITHIN_OPCODE_RANGE
      Src: /src/cpython/Python/instruction_sequence.c:120,1
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:121,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/instruction_sequence.c:121,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/instruction_sequence.c:121,1
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:122,1
    - Dst: instr_sequence_next_inst
      Src: /src/cpython/Python/instruction_sequence.c:124,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/instruction_sequence.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - seq
    - opcode
    - oparg
    - loc
    argTypes:
    - instr_sequence*
    - int
    - int
    - location
    assertStmts:
    - condition: (0 <= opcode && opcode <= MAX_OPCODE)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Python/instruction_sequence.c
    - condition: (IS_WITHIN_OPCODE_RANGE(opcode))
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Python/instruction_sequence.c
    - condition: (OPCODE_HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/cpython/Python/instruction_sequence.c
    - condition: (0 <= oparg && oparg < (1 << 30))
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Python/instruction_sequence.c
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: _PyInstructionSequence_Addop
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 3
    functionsReached:
    - OPCODE_HAS_ARG
    - HAS_TARGET
    - instr_sequence_next_inst
    - RETURN_IF_ERROR
    - IS_WITHIN_OPCODE_RANGE
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyInstructionSequence_Addop(instr_sequence *seq, int opcode,
      int oparg,\n                             location loc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:137,1
    - Dst: instr_sequence_next_inst
      Src: /src/cpython/Python/instruction_sequence.c:138,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/instruction_sequence.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - seq
    - pos
    - opcode
    - oparg
    - loc
    argTypes:
    - instr_sequence*
    - int
    - int
    - int
    - location
    assertStmts:
    - condition: (pos >= 0 && pos <= seq->s_used)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Python/instruction_sequence.c
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: _PyInstructionSequence_InsertInstruction
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 1
    functionsReached:
    - RETURN_IF_ERROR
    - assert
    - instr_sequence_next_inst
    linkageType: ''
    returnType: int
    signature: "int _PyInstructionSequence_InsertInstruction(instr_sequence *seq,
      int pos,\n                                         int opcode, int oparg, location
      loc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq
    - annotations
    argTypes:
    - instr_sequence*
    - instr_sequence*
    assertStmts:
    - condition: (seq->s_annotations_code == NULL)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/cpython/Python/instruction_sequence.c
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: _PyInstructionSequence_SetAnnotationsCode
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyInstructionSequence_SetAnnotationsCode(instr_sequence *seq,\n
      \                                         instr_sequence *annotations)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/instruction_sequence.c:170,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/instruction_sequence.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - seq
    - nested
    argTypes:
    - instr_sequence*
    - instr_sequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: _PyInstructionSequence_AddNested
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    linkageType: ''
    returnType: int
    signature: int _PyInstructionSequence_AddNested(instr_sequence *seq, instr_sequence
      *nested)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instruction_sequence.c:183,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/instruction_sequence.c:185,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/instruction_sequence.c:188,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/instruction_sequence.c:192,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instruction_sequence.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - seq
    argTypes:
    - instr_sequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 196
    functionName: PyInstructionSequence_Fini
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_CLEAR
    - PyInstructionSequence_Fini
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void PyInstructionSequence_Fini(instr_sequence *seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/instruction_sequence.c:207,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/instruction_sequence.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: inst_seq_create
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: _PyInstructionSequence
    signature: '_PyInstructionSequence *

      inst_seq_create(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inst_seq_create
      Src: /src/cpython/Python/instruction_sequence.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: _PyInstructionSequence_New
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 1
    functionsReached:
    - inst_seq_create
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInstructionSequence_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inst_seq_create
      Src: /src/cpython/Python/instruction_sequence.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: inst_seq_new_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - inst_seq_create
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      inst_seq_new_impl(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_UseLabel
      Src: /src/cpython/Python/instruction_sequence.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - label
    argTypes:
    - _PyInstructionSequence*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: InstructionSequenceType_use_label_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_UseLabel
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nInstructionSequenceType_use_label_impl(_PyInstructionSequence
      *self,\n                                       int label)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/instruction_sequence.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - self
    - opcode
    - oparg
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - _PyInstructionSequence*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: InstructionSequenceType_addop_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_Addop
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nInstructionSequenceType_addop_impl(_PyInstructionSequence
      *self, int opcode,\n                                   int oparg, int lineno,
      int col_offset,\n                                   int end_lineno, int end_col_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_NewLabel
      Src: /src/cpython/Python/instruction_sequence.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: InstructionSequenceType_new_label_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_NewLabel
    linkageType: ''
    returnType: int
    signature: int InstructionSequenceType_new_label_impl(_PyInstructionSequence *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_Check
      Src: /src/cpython/Python/instruction_sequence.c:321,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instruction_sequence.c:322,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/instruction_sequence.c:324,1
    - Dst: _PyInstructionSequence_AddNested
      Src: /src/cpython/Python/instruction_sequence.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - nested
    argTypes:
    - _PyInstructionSequence*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 331
    functionName: InstructionSequenceType_add_nested_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_AddNested
    - Py_TYPE
    - _PyInstructionSequence_Check
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nInstructionSequenceType_add_nested_impl(_PyInstructionSequence
      *self,\n                                        PyObject *nested)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/instruction_sequence.c:344,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instruction_sequence.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: InstructionSequenceType_get_nested_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_get_nested_impl(_PyInstructionSequence *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/instruction_sequence.c:359,1
    - Dst: PyList_New
      Src: /src/cpython/Python/instruction_sequence.c:362,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/instruction_sequence.c:371,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/instruction_sequence.c:372,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/instruction_sequence.c:378,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/instruction_sequence.c:387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instruction_sequence.c:388,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instruction_sequence.c:395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 397
    functionName: InstructionSequenceType_get_instructions_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - _PyInstructionSequence_ApplyLabelMap
    - Py_BuildValue
    - OPCODE_HAS_ARG
    - Py_DECREF
    - PyList_Append
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_get_instructions_impl(_PyInstructionSequence *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/instruction_sequence.c:421,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/instruction_sequence.c:422,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/instruction_sequence.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: inst_seq_dealloc
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - PyInstructionSequence_Fini
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void inst_seq_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Python/instruction_sequence.c:430,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/instruction_sequence.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 433
    functionName: inst_seq_traverse
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int inst_seq_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instruction_sequence.c:439,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instruction_sequence.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: inst_seq_clear
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int inst_seq_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/mysnprintf.c:46,1
    - Dst: PyOS_vsnprintf
      Src: /src/cpython/Python/mysnprintf.c:47,1
    - Dst: va_end
      Src: /src/cpython/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/cpython/Python/mysnprintf.c
    functionUses: 20
    functionsReached:
    - PyOS_vsnprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int PyOS_snprintf(char *str, size_t size, const  char  *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/mysnprintf.c:55,1
    - Dst: assert
      Src: /src/cpython/Python/mysnprintf.c:56,1
    - Dst: assert
      Src: /src/cpython/Python/mysnprintf.c:57,1
    - Dst: assert
      Src: /src/cpython/Python/mysnprintf.c:58,1
    - Dst: _vsnprintf
      Src: /src/cpython/Python/mysnprintf.c:70,1
    - Dst: vsnprintf
      Src: /src/cpython/Python/mysnprintf.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - str
    - size
    - format
    - va
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Python/mysnprintf.c
    - condition: (size <= (INT_MAX - 1))
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/cpython/Python/mysnprintf.c
    - condition: (format != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Python/mysnprintf.c
    - condition: (size > 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Python/mysnprintf.c
    constantsTouched: []
    func_position:
      end: 80
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 80
    functionName: PyOS_vsnprintf
    functionSourceFile: /src/cpython/Python/mysnprintf.c
    functionUses: 1
    functionsReached:
    - vsnprintf
    - _vsnprintf
    - assert
    linkageType: ''
    returnType: int
    signature: int PyOS_vsnprintf(char *str, size_t size, const char  *format, va_list
      va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: LOCATION
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCATION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FNAME
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: SET_ERROR_LOCATION
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ERROR_LOCATION(FNAME, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: IS_ASYNC_DEF
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ASYNC_DEF(st)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/symtable.c:99,1
    - Dst: PyObject_New
      Src: /src/cpython/Python/symtable.c:102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:110,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:130,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/symtable.c:156,1
    - Dst: PyList_New
      Src: /src/cpython/Python/symtable.c:157,1
    - Dst: PyList_New
      Src: /src/cpython/Python/symtable.c:158,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:164,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:169,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 5
    argNames:
    - st
    - name
    - block
    - key
    - loc
    argTypes:
    - struct symtable*
    - identifier
    - _Py_block_ty
    - void*
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 92
    functionDepth: 10
    functionLinenumber: 92
    functionLinenumberEnd: 171
    functionName: ste_new
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PyDict_SetItem
    - PyObject_New
    - _PyST_IsFunctionLike
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: PySTEntryObject
    signature: "PySTEntryObject *\nste_new(struct symtable *st, identifier name, _Py_block_ty
      block,\n        void *key, _Py_SourceLocation loc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/symtable.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 10
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: ste_repr
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ste_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:188,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:189,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:190,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:191,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:192,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:193,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/symtable.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: ste_dealloc
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void ste_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/symtable.c:304,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:334,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:335,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/symtable.c:335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:336,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:339,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/symtable.c:340,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/symtable.c:341,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:342,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/symtable.c:342,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/symtable.c:342,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:343,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:344,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:345,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:346,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:347,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:348,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:349,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:350,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:351,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:352,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:353,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:355,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:356,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:357,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:358,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:359,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:361,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:363,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/symtable.c:363,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/symtable.c:364,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:365,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:366,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/symtable.c:367,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:368,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:368,1
    - Dst: _dump_symtable
      Src: /src/cpython/Python/symtable.c:369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:371,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 2
    argNames:
    - ste
    - prefix
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts:
    - condition: (msg != NULL)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/cpython/Python/symtable.c
    - condition: (new_prefix != NULL)
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/cpython/Python/symtable.c
    - condition: (child != NULL && PySTEntry_Check(child))
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 372
      start: 284
    functionDepth: 10
    functionLinenumber: 284
    functionLinenumberEnd: 372
    functionName: _dump_symtable
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyList_GetItem
    - Py_DECREF
    - _PyST_GetScope
    - PyUnicode_FromFormat
    - PyList_GET_SIZE
    - printf
    - PyDict_Next
    - _dump_symtable
    - PyUnicode_AsUTF8
    - _PyST_GetSymbol
    - PySTEntry_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void _dump_symtable(PySTEntryObject* ste, PyObject* prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/symtable.c:376,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:377,1
    - Dst: _dump_symtable
      Src: /src/cpython/Python/symtable.c:378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ste
    argTypes:
    - PySTEntryObject*
    assertStmts:
    - condition: (empty != NULL)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 11
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: dump_symtable
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 2
    functionsReached:
    - Py_GetConstant
    - _dump_symtable
    - Py_DECREF
    - assert
    linkageType: ''
    returnType: void
    signature: void dump_symtable(PySTEntryObject* ste)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/symtable.c:391,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/symtable.c:393,1
    - Dst: PyList_New
      Src: /src/cpython/Python/symtable.c:400,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/symtable.c:402,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 386
    functionDepth: 10
    functionLinenumber: 386
    functionLinenumberEnd: 410
    functionName: symtable_new
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PySymtable_Free
    - PyDict_New
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      symtable_new(void)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: symtable_new
      Src: /src/cpython/Python/symtable.c:415,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:423,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:426,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/symtable.c:430,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:432,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:439,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:439,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:440,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:448,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:451,1
    - Dst: symtable_visit_stmt
      Src: /src/cpython/Python/symtable.c:452,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:453,1
    - Dst: symtable_visit_expr
      Src: /src/cpython/Python/symtable.c:457,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:462,1
    - Dst: symtable_visit_stmt
      Src: /src/cpython/Python/symtable.c:463,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:464,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:468,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:472,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:473,1
    - Dst: symtable_analyze
      Src: /src/cpython/Python/symtable.c:477,1
    - Dst: dump_symtable
      Src: /src/cpython/Python/symtable.c:479,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:483,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:486,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:487,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 3
    argNames:
    - mod
    - filename
    - future
    argTypes:
    - mod_ty
    - PyObject*
    - _PyFutureFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 412
    functionDepth: 12
    functionLinenumber: 412
    functionLinenumberEnd: 489
    functionName: _PySymtable_Build
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _PySymtable_Free
    - symtable_new
    - asdl_seq_GET
    - dump_symtable
    - _Py_ID
    - symtable_enter_block
    - symtable_visit_expr
    - PyErr_SetString
    - asdl_seq_LEN
    - Py_NewRef
    - _PyThreadState_GET
    - symtable_visit_stmt
    - _PyAST_GetDocString
    - symtable_exit_block
    - symtable_analyze
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      _PySymtable_Build(mod_ty mod, PyObject *filename, _PyFutureFeatures *future)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:495,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:497,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/symtable.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: _PySymtable_Free
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _PySymtable_Free(struct symtable *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/symtable.c:506,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/symtable.c:509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:513,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:515,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - st
    - key
    argTypes:
    - struct symtable*
    - void*
    assertStmts:
    - condition: (v == NULL || PySTEntry_Check(v))
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 517
      start: 501
    functionDepth: 8
    functionLinenumber: 501
    functionLinenumberEnd: 517
    functionName: _PySymtable_Lookup
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PyErr_SetString
    - PySTEntry_Check
    - PyDict_GetItemRef
    - assert
    linkageType: ''
    returnType: PySTEntryObject
    signature: 'PySTEntryObject *

      _PySymtable_Lookup(struct symtable *st, void *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/symtable.c:523,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/symtable.c:528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:529,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:530,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - st
    - key
    - out
    argTypes:
    - struct symtable*
    - void*
    - PySTEntryObject**
    assertStmts:
    - condition: (*out == NULL || PySTEntry_Check(*out))
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 532
      start: 519
    functionDepth: 8
    functionLinenumber: 519
    functionLinenumberEnd: 532
    functionName: _PySymtable_LookupOptional
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PySTEntry_Check
    - PyDict_GetItemRef
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PySymtable_LookupOptional(struct symtable *st, void *key,\n                           PySTEntryObject
      **out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/symtable.c:538,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:545,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:547,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 8
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: _PyST_GetSymbol
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyDict_GetItemRef
    linkageType: ''
    returnType: long
    signature: long _PyST_GetSymbol(PySTEntryObject *ste, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/symtable.c:558,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/symtable.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 555
    functionDepth: 9
    functionLinenumber: 555
    functionLinenumberEnd: 563
    functionName: _PyST_GetScope
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached:
    - _PyST_GetSymbol
    - SYMBOL_TO_SCOPE
    linkageType: ''
    returnType: int
    signature: int _PyST_GetScope(PySTEntryObject *ste, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ste
    argTypes:
    - PySTEntryObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 573
    functionName: _PyST_IsFunctionLike
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyST_IsFunctionLike(PySTEntryObject *ste)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:580,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:581,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:582,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:583,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/symtable.c:583,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:584,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/symtable.c:584,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:584,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/symtable.c:585,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:585,1
    - Dst: PyErr_RangedSyntaxLocationObject
      Src: /src/cpython/Python/symtable.c:586,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:587,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:587,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:588,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:588,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:589,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:589,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:590,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:590,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(data))
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/cpython/Python/symtable.c
    - condition: (ste->ste_directives)
      pos:
        line_end: 579
        line_start: 579
        source_file: /src/cpython/Python/symtable.c
    - condition: (PyUnicode_CheckExact(PyTuple_GET_ITEM(data, 0)))
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 598
      start: 575
    functionDepth: 4
    functionLinenumber: 575
    functionLinenumberEnd: 598
    functionName: error_at_directive
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - assert
    - PyList_GET_ITEM
    - PyLong_AsLong
    - PyList_GET_SIZE
    - PyUnicode_CheckExact
    - PyErr_SetString
    - PyErr_RangedSyntaxLocationObject
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    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: 657
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 657
    functionName: SET_SCOPE
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SCOPE(DICT, NAME, I)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:673,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:676,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:678,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:679,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:681,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:687,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:689,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:691,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:696,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:700,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:702,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:707,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:710,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:712,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:713,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:716,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:717,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:719,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:722,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:726,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/symtable.c:739,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:744,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:748,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:758,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:763,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:764,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:771,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:776,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:780,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 10
    argNames:
    - ste
    - scopes
    - name
    - flags
    - bound
    - local
    - free
    - global
    - type_params
    - class_entry
    argTypes:
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - long
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PySTEntryObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 665
    functionDepth: 9
    functionLinenumber: 665
    functionLinenumberEnd: 782
    functionName: analyze_name
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - error_at_directive
    - SET_SCOPE
    - PySet_Discard
    - _PyST_GetSymbol
    - PyErr_Format
    - 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, PyObject *type_params, PySTEntryObject
      *class_entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:787,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:788,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/symtable.c:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - entry
    - key
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 784
    functionDepth: 10
    functionLinenumber: 784
    functionLinenumberEnd: 799
    functionName: is_free_in_any_child
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - PyList_GET_ITEM
    - _PyST_GetScope
    linkageType: ''
    returnType: int
    signature: int is_free_in_any_child(PySTEntryObject *entry, PyObject *key)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:810,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:812,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:813,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:817,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:817,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/symtable.c:820,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:823,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:827,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:828,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:834,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:836,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:843,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:843,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:844,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:849,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:853,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:856,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:857,1
    - Dst: is_free_in_any_child
      Src: /src/cpython/Python/symtable.c:864,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:869,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Python/symtable.c:876,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 54
    argCount: 5
    argNames:
    - ste
    - comp
    - scopes
    - comp_free
    - inlined_cells
    argTypes:
    - PySTEntryObject*
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_EqualToASCIIString(k, ".0"))
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/cpython/Python/symtable.c
    - condition: (scope != FREE || PySet_Contains(comp_free, k) == 1)
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 880
      start: 801
    functionDepth: 11
    functionLinenumber: 801
    functionLinenumberEnd: 880
    functionName: inline_comprehension
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyDict_SetItem
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - SET_SCOPE
    - SYMBOL_TO_SCOPE
    - PySet_Discard
    - PyDict_Next
    - PySet_Contains
    - PyDict_DelItemString
    - is_free_in_any_child
    - PyLong_FromLong
    - _PyUnicode_EqualToASCIIString
    - PySet_Add
    - assert
    linkageType: ''
    returnType: int
    signature: "int inline_comprehension(PySTEntryObject *ste, PySTEntryObject *comp,\n
      \                    PyObject *scopes, PyObject *comp_free,\n                     PyObject
      *inlined_cells)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:899,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:902,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:903,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:904,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:909,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:914,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:926,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:933,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 3
    argNames:
    - scopes
    - free
    - inlined_cells
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 892
    functionDepth: 9
    functionLinenumber: 892
    functionLinenumberEnd: 935
    functionName: analyze_cells
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PySet_Discard
    - PyDict_Next
    - PyLong_FromLong
    - PySet_Contains
    linkageType: ''
    returnType: int
    signature: int analyze_cells(PyObject *scopes, PyObject *free, PyObject *inlined_cells)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:941,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:941,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:946,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:946,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:951,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:951,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ste
    - free
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 937
    functionDepth: 8
    functionLinenumber: 937
    functionLinenumberEnd: 958
    functionName: drop_class_free
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - PySet_Discard
    linkageType: ''
    returnType: int
    signature: int drop_class_free(PySTEntryObject *ste, PyObject *free)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:974,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:976,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:979,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/symtable.c:986,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/symtable.c:990,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:994,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:995,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:999,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1003,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1006,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1010,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/symtable.c:1014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1016,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/symtable.c:1020,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:1021,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1030,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1031,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1035,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1046,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1049,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:1054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1059,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1067,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1076,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1079,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1080,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1081,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 97
    argCount: 6
    argNames:
    - symbols
    - scopes
    - bound
    - free
    - inlined_cells
    - classflag
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 964
    functionDepth: 9
    functionLinenumber: 964
    functionLinenumberEnd: 1083
    functionName: update_symbols
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyDict_SetItem
    - PyLong_AsLong
    - PyErr_Occurred
    - PyObject_GetIter
    - PyErr_SetObject
    - PyDict_Next
    - PyIter_Next
    - PyLong_FromLong
    - PySet_Contains
    - PyDict_GetItemRef
    linkageType: ''
    returnType: int
    signature: "int update_symbols(PyObject *symbols, PyObject *scopes,\n               PyObject
      *bound, PyObject *free,\n               PyObject *inlined_cells, int classflag)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1121,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/symtable.c:1124,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1139,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1142,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1145,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1148,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1162,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1168,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:1172,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1174,1
    - Dst: analyze_name
      Src: /src/cpython/Python/symtable.c:1177,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:1185,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1189,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1196,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1202,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1206,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1206,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1208,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1208,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1210,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1210,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:1220,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:1222,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1224,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:1224,1
    - Dst: analyze_child_block
      Src: /src/cpython/Python/symtable.c:1244,1
    - Dst: inline_comprehension
      Src: /src/cpython/Python/symtable.c:1250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1251,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1260,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:1264,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:1265,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1267,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:1267,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/symtable.c:1270,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:1278,1
    - Dst: analyze_cells
      Src: /src/cpython/Python/symtable.c:1278,1
    - Dst: drop_class_free
      Src: /src/cpython/Python/symtable.c:1280,1
    - Dst: update_symbols
      Src: /src/cpython/Python/symtable.c:1283,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1290,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1293,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1294,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1295,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1296,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1297,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1298,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1300,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1300,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 143
    argCount: 6
    argNames:
    - ste
    - bound
    - free
    - global
    - type_params
    - class_entry
    argTypes:
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PySTEntryObject*
    assertStmts:
    - condition: (c && PySTEntry_Check(c))
      pos:
        line_end: 1266
        line_start: 1266
        source_file: /src/cpython/Python/symtable.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1299
        line_start: 1299
        source_file: /src/cpython/Python/symtable.c
    - condition: (c && PySTEntry_Check(c))
      pos:
        line_end: 1223
        line_start: 1223
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 1302
      start: 1110
    functionDepth: 12
    functionLinenumber: 1110
    functionLinenumberEnd: 1302
    functionName: analyze_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyList_SetSlice
    - analyze_name
    - PyLong_AsLong
    - PyErr_Occurred
    - PyList_GET_SIZE
    - _PyST_IsFunctionLike
    - inline_comprehension
    - PyNumber_InPlaceOr
    - PySTEntry_Check
    - PySet_Add
    - PySet_New
    - Py_DECREF
    - _Py_ID
    - analyze_cells
    - analyze_child_block
    - update_symbols
    - drop_class_free
    - PyList_GET_ITEM
    - PyDict_Next
    - PyDict_New
    - assert
    linkageType: ''
    returnType: int
    signature: "int analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject
      *free,\n              PyObject *global, PyObject *type_params,\n              PySTEntryObject
      *class_entry)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1319,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1322,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1325,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1328,1
    - Dst: analyze_block
      Src: /src/cpython/Python/symtable.c:1332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1338,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1341,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1343,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1344,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 7
    argNames:
    - entry
    - bound
    - free
    - global
    - type_params
    - class_entry
    - child_free
    argTypes:
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PySTEntryObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1304
    functionDepth: 13
    functionLinenumber: 1304
    functionLinenumberEnd: 1346
    functionName: analyze_child_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PySet_New
    - Py_DECREF
    - analyze_block
    linkageType: ''
    returnType: int
    signature: "int analyze_child_block(PySTEntryObject *entry, PyObject *bound, PyObject
      *free,\n                    PyObject *global, PyObject *type_params,\n                    PySTEntryObject
      *class_entry, PyObject** child_free)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1354,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1359,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1365,1
    - Dst: analyze_block
      Src: /src/cpython/Python/symtable.c:1368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1348
    functionDepth: 13
    functionLinenumber: 1348
    functionLinenumberEnd: 1373
    functionName: symtable_analyze
    functionSourceFile: /src/cpython/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/cpython/Python/symtable.c:1386,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/symtable.c:1388,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:1391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1380
    functionDepth: 12
    functionLinenumber: 1380
    functionLinenumberEnd: 1394
    functionName: symtable_exit_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyList_GET_SIZE
    - PyList_SetSlice
    - PyList_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int symtable_exit_block(struct symtable *st)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1399,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:1413,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1429,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - st
    - ste
    - add_to_children
    argTypes:
    - struct symtable*
    - PySTEntryObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1396
    functionDepth: 2
    functionLinenumber: 1396
    functionLinenumberEnd: 1434
    functionName: symtable_enter_existing_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int symtable_enter_existing_block(struct symtable *st, PySTEntryObject*
      ste, bool add_to_children)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ste_new
      Src: /src/cpython/Python/symtable.c:1440,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:1443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1444,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1446,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1448,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1448,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1451,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - st
    - name
    - block
    - ast
    - loc
    argTypes:
    - struct symtable*
    - identifier
    - _Py_block_ty
    - void*
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1436
    functionDepth: 11
    functionLinenumber: 1436
    functionLinenumberEnd: 1456
    functionName: symtable_enter_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - symtable_enter_existing_block
    - _Py_DECLARE_STR
    - _Py_STR
    - symtable_add_def
    - ste_new
    linkageType: ''
    returnType: int
    signature: "int symtable_enter_block(struct symtable *st, identifier name, _Py_block_ty
      block,\n                     void *ast, _Py_SourceLocation loc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_MaybeMangle
      Src: /src/cpython/Python/symtable.c:1461,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/symtable.c:1464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - st
    - ste
    - name
    argTypes:
    - struct symtable*
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1458
    functionDepth: 9
    functionLinenumber: 1458
    functionLinenumberEnd: 1470
    functionName: symtable_lookup_entry
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _PyST_GetSymbol
    - _Py_MaybeMangle
    - Py_DECREF
    linkageType: ''
    returnType: long
    signature: long symtable_lookup_entry(struct symtable *st, PySTEntryObject *ste,
      PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_lookup_entry
      Src: /src/cpython/Python/symtable.c:1475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - name
    argTypes:
    - struct symtable*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1472
    functionDepth: 10
    functionLinenumber: 1472
    functionLinenumberEnd: 1476
    functionName: symtable_lookup
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_lookup_entry
    linkageType: ''
    returnType: long
    signature: long symtable_lookup(struct symtable *st, PyObject *name)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_MaybeMangle
      Src: /src/cpython/Python/symtable.c:1485,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:1490,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1491,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1492,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1497,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1498,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1502,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1503,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1508,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1521,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1523,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1528,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1535,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1538,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:1544,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1545,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1546,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1550,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1554,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1567,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 85
    argCount: 5
    argNames:
    - st
    - name
    - flag
    - ste
    - loc
    argTypes:
    - struct symtable*
    - PyObject*
    - int
    - struct _symtable_entry*
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1478
    functionDepth: 9
    functionLinenumber: 1478
    functionLinenumberEnd: 1569
    functionName: symtable_add_def_helper
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - _Py_MaybeMangle
    - PyDict_SetItem
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_FromLong
    - PyList_Append
    - SET_ERROR_LOCATION
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int symtable_add_def_helper(struct symtable *st, PyObject *name, int
      flag, struct _symtable_entry *ste,\n                        _Py_SourceLocation
      loc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:1575,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:1576,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1577,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:1580,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:1581,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - st
    - name
    - loc
    - ctx
    argTypes:
    - struct symtable*
    - PyObject*
    - _Py_SourceLocation
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1571
    functionDepth: 2
    functionLinenumber: 1571
    functionLinenumberEnd: 1586
    functionName: check_name
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyErr_SetString
    - SET_ERROR_LOCATION
    linkageType: ''
    returnType: int
    signature: "int check_name(struct symtable *st, PyObject *name, _Py_SourceLocation
      loc,\n           expr_context_ty ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1591,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1592,1
    - Dst: check_name
      Src: /src/cpython/Python/symtable.c:1593,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - st
    - keywords
    argTypes:
    - struct symtable*
    - asdl_keyword_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1588
    functionDepth: 3
    functionLinenumber: 1588
    functionLinenumberEnd: 1598
    functionName: check_keywords
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - check_name
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int check_keywords(struct symtable *st, asdl_keyword_seq *keywords)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1603,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1606,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1607,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1607,1
    - Dst: check_name
      Src: /src/cpython/Python/symtable.c:1608,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - p
    argTypes:
    - struct symtable*
    - pattern_ty
    assertStmts:
    - condition: (p->kind == MatchClass_kind)
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 1613
      start: 1600
    functionDepth: 3
    functionLinenumber: 1600
    functionLinenumberEnd: 1613
    functionName: check_kwd_patterns
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - LOCATION
    - asdl_seq_LEN
    - check_name
    - assert
    linkageType: ''
    returnType: int
    signature: int check_kwd_patterns(struct symtable *st, pattern_ty p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_name
      Src: /src/cpython/Python/symtable.c:1620,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1624,1
    - Dst: symtable_add_def_helper
      Src: /src/cpython/Python/symtable.c:1628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - st
    - name
    - flag
    - loc
    - ctx
    argTypes:
    - struct symtable*
    - PyObject*
    - int
    - _Py_SourceLocation
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1615
    functionDepth: 10
    functionLinenumber: 1615
    functionLinenumberEnd: 1629
    functionName: symtable_add_def_ctx
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - symtable_add_def_helper
    - check_name
    linkageType: ''
    returnType: int
    signature: "int symtable_add_def_ctx(struct symtable *st, PyObject *name, int
      flag,\n                     _Py_SourceLocation loc, expr_context_ty ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_add_def_ctx
      Src: /src/cpython/Python/symtable.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - st
    - name
    - flag
    - loc
    argTypes:
    - struct symtable*
    - PyObject*
    - int
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1631
    functionDepth: 11
    functionLinenumber: 1631
    functionLinenumberEnd: 1637
    functionName: symtable_add_def
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_add_def_ctx
    linkageType: ''
    returnType: int
    signature: "int symtable_add_def(struct symtable *st, PyObject *name, int flag,\n
      \                _Py_SourceLocation loc)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:1645,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1650,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1650,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1655,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1658,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1658,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1661,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1661,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1665,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1666,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1666,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1669,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1669,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1674,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1675,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1675,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1680,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1681,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1681,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 7
    argNames:
    - st
    - name
    - ast
    - has_defaults
    - has_kwdefaults
    - kind
    - loc
    argTypes:
    - struct symtable*
    - identifier
    - void*
    - int
    - int
    - enum _stmt_kind
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1639
    functionDepth: 12
    functionLinenumber: 1639
    functionLinenumberEnd: 1686
    functionName: symtable_enter_type_param_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _Py_DECLARE_STR
    - _Py_ID
    - symtable_enter_block
    - _Py_STR
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: "int symtable_enter_type_param_block(struct symtable *st, identifier
      name,\n                               void *ast, int has_defaults, int has_kwdefaults,\n
      \                              enum _stmt_kind kind, _Py_SourceLocation loc)"
  - 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: 1708
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1708
    functionName: VISIT
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 336
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT(ST, TYPE, V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1746
    functionName: ENTER_CONDITIONAL_BLOCK
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_CONDITIONAL_BLOCK(ST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1749
    functionName: LEAVE_CONDITIONAL_BLOCK
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_CONDITIONAL_BLOCK(ST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1750
    functionDepth: 0
    functionLinenumber: 1750
    functionLinenumberEnd: 1754
    functionName: ENTER_RECURSIVE
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_RECURSIVE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1756
    functionName: LEAVE_RECURSIVE
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_RECURSIVE()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/symtable.c:1764,1
    - Dst: _Py_MaybeMangle
      Src: /src/cpython/Python/symtable.c:1768,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/symtable.c:1771,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - st
    - name
    - loc
    argTypes:
    - struct symtable*
    - identifier
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1758
    functionDepth: 4
    functionLinenumber: 1758
    functionLinenumberEnd: 1778
    functionName: symtable_record_directive
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _Py_MaybeMangle
    - Py_DECREF
    - Py_BuildValue
    - PyList_Append
    linkageType: ''
    returnType: int
    signature: int symtable_record_directive(struct symtable *st, identifier name,
      _Py_SourceLocation loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1783,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - kwonlyargs
    - kw_defaults
    argTypes:
    - asdl_arg_seq*
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 1790
    functionName: has_kwonlydefaults
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int has_kwonlydefaults(asdl_arg_seq *kwonlyargs, asdl_expr_seq *kw_defaults)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1795,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:1798,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:1802,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1805,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - st
    - s
    argTypes:
    - struct symtable*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == ImportFrom_kind)
      pos:
        line_end: 1794
        line_start: 1794
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 1809
      start: 1792
    functionDepth: 2
    functionLinenumber: 1792
    functionLinenumberEnd: 1809
    functionName: check_import_from
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - PyErr_SetString
    - SET_ERROR_LOCATION
    - _PyUnicode_EqualToASCIIString
    - assert
    linkageType: ''
    returnType: int
    signature: int check_import_from(struct symtable *st, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1816
    functionName: allows_top_level_await
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allows_top_level_await(struct symtable *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allows_top_level_await
      Src: /src/cpython/Python/symtable.c:1822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - st
    - s
    argTypes:
    - struct symtable*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1825
    functionName: maybe_set_ste_coroutine_for_module
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - allows_top_level_await
    linkageType: ''
    returnType: void
    signature: void maybe_set_ste_coroutine_for_module(struct symtable *st, stmt_ty
      s)
  - BBCount: 108
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/symtable.c:1830,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1833,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1833,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1836,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:1838,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1840,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1841,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:1842,1
    - Dst: has_kwonlydefaults
      Src: /src/cpython/Python/symtable.c:1846,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1849,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1852,1
    - Dst: ste_new
      Src: /src/cpython/Python/symtable.c:1854,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1855,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:1860,1
    - Dst: symtable_visit_annotations
      Src: /src/cpython/Python/symtable.c:1864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1866,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:1869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1873,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:1874,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1875,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1876,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1878,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1879,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1886,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1886,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1889,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1891,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:1892,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1895,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1899,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1903,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1905,1
    - Dst: check_keywords
      Src: /src/cpython/Python/symtable.c:1906,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1909,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:1910,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1911,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1915,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1916,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1916,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1917,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1920,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1921,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1921,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1922,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:1927,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1931,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1932,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1934,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1935,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:1942,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1943,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1946,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:1948,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1952,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1955,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:1957,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1958,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1962,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1962,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1962,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:1965,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1966,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1969,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:1976,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1981,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1984,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:1985,1
    - Dst: symtable_lookup
      Src: /src/cpython/Python/symtable.c:1991,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1998,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2001,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2001,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2005,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2006,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2011,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2011,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2017,1
    - Dst: symtable_visit_annotation
      Src: /src/cpython/Python/symtable.c:2019,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2025,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2029,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2030,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2034,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2035,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2036,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2037,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2039,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2040,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2044,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2045,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2046,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2048,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2049,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2054,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2055,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2056,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2058,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2059,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2063,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2064,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2065,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2066,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2071,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2073,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2078,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2079,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2080,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2081,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2082,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2083,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2087,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2088,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2089,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2090,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2091,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2092,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2096,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2098,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2101,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2104,1
    - Dst: check_import_from
      Src: /src/cpython/Python/symtable.c:2105,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2112,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2113,1
    - Dst: symtable_lookup
      Src: /src/cpython/Python/symtable.c:2114,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2128,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2130,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2130,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2133,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2133,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2136,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2136,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2145,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2146,1
    - Dst: symtable_lookup
      Src: /src/cpython/Python/symtable.c:2147,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2161,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2162,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2162,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2165,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2165,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2167,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2167,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2174,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2182,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2183,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2184,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2185,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2189,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2189,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2192,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2194,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2197,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2198,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:2199,1
    - Dst: has_kwonlydefaults
      Src: /src/cpython/Python/symtable.c:2203,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2206,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2209,1
    - Dst: ste_new
      Src: /src/cpython/Python/symtable.c:2211,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2212,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:2217,1
    - Dst: symtable_visit_annotations
      Src: /src/cpython/Python/symtable.c:2221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2223,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:2226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2230,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2233,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2234,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2235,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2237,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2238,1
    - Dst: maybe_set_ste_coroutine_for_module
      Src: /src/cpython/Python/symtable.c:2244,1
    - Dst: symtable_raise_if_not_coroutine
      Src: /src/cpython/Python/symtable.c:2245,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2245,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2248,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2249,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2250,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2251,1
    - Dst: maybe_set_ste_coroutine_for_module
      Src: /src/cpython/Python/symtable.c:2255,1
    - Dst: symtable_raise_if_not_coroutine
      Src: /src/cpython/Python/symtable.c:2256,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2256,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2259,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2260,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2261,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2262,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2264,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2265,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2269,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 377
    argCount: 2
    argNames:
    - st
    - s
    argTypes:
    - struct symtable*
    - stmt_ty
    assertStmts:
    - condition: (s->v.TypeAlias.name->kind == Name_kind)
      pos:
        line_end: 1942
        line_start: 1942
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 2271
      start: 1827
    functionDepth: 13
    functionLinenumber: 1827
    functionLinenumberEnd: 2271
    functionName: symtable_visit_stmt
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - has_kwonlydefaults
    - VISIT_SEQ_WITH_NULL
    - ENTER_CONDITIONAL_BLOCK
    - LEAVE_RECURSIVE
    - ste_new
    - symtable_visit_annotation
    - check_keywords
    - asdl_seq_GET
    - SET_ERROR_LOCATION
    - _PyAST_GetDocString
    - PyErr_Format
    - PySet_New
    - check_import_from
    - Py_DECREF
    - LOCATION
    - _Py_ID
    - symtable_raise_if_not_coroutine
    - symtable_record_directive
    - ENTER_RECURSIVE
    - symtable_visit_annotations
    - symtable_enter_existing_block
    - symtable_enter_type_param_block
    - _Py_DECLARE_STR
    - maybe_set_ste_coroutine_for_module
    - symtable_lookup
    - VISIT_SEQ
    - VISIT
    - symtable_enter_block
    - asdl_seq_LEN
    - _Py_STR
    - symtable_add_def
    - symtable_exit_block
    - LEAVE_CONDITIONAL_BLOCK
    - assert
    linkageType: ''
    returnType: int
    signature: int symtable_visit_stmt(struct symtable *st, stmt_ty s)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2276,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2277,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:2282,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2283,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:2287,1
    - Dst: symtable_lookup_entry
      Src: /src/cpython/Python/symtable.c:2293,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2299,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2300,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2300,1
    - Dst: symtable_lookup_entry
      Src: /src/cpython/Python/symtable.c:2308,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2313,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2313,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2316,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2316,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2320,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2320,1
    - Dst: symtable_add_def_helper
      Src: /src/cpython/Python/symtable.c:2324,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2324,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2328,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2328,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2331,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2331,1
    - Dst: symtable_add_def_helper
      Src: /src/cpython/Python/symtable.c:2335,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2344,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2347,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2350,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2353,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/symtable.c:2356,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2358,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2358,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/symtable.c:2366,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts:
    - condition: (size)
      pos:
        line_end: 2282
        line_start: 2282
        source_file: /src/cpython/Python/symtable.c
    - condition: (st->st_stack)
      pos:
        line_end: 2275
        line_start: 2275
        source_file: /src/cpython/Python/symtable.c
    - condition: (e->kind == Name_kind)
      pos:
        line_end: 2276
        line_start: 2276
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 2368
      start: 2273
    functionDepth: 12
    functionLinenumber: 2273
    functionLinenumberEnd: 2368
    functionName: symtable_extend_namedexpr_scope
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_lookup_entry
    - Py_UNREACHABLE
    - PyList_GET_ITEM
    - LOCATION
    - PyList_GET_SIZE
    - SET_ERROR_LOCATION
    - symtable_add_def
    - symtable_record_directive
    - symtable_add_def_helper
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int symtable_extend_namedexpr_scope(struct symtable *st, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2375,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2376,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2376,1
    - Dst: symtable_extend_namedexpr_scope
      Src: /src/cpython/Python/symtable.c:2381,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2384,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2370
    functionDepth: 13
    functionLinenumber: 2370
    functionLinenumberEnd: 2387
    functionName: symtable_handle_namedexpr
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - SET_ERROR_LOCATION
    - VISIT
    - symtable_extend_namedexpr_scope
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int symtable_handle_namedexpr(struct symtable *st, expr_ty e)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2392,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2395,1
    - Dst: symtable_handle_namedexpr
      Src: /src/cpython/Python/symtable.c:2398,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2402,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2405,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2406,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2409,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2413,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2415,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2416,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:2416,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2417,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2420,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2421,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2422,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2427,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2428,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2429,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2432,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2433,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2436,1
    - Dst: symtable_visit_genexp
      Src: /src/cpython/Python/symtable.c:2439,1
    - Dst: symtable_visit_listcomp
      Src: /src/cpython/Python/symtable.c:2443,1
    - Dst: symtable_visit_setcomp
      Src: /src/cpython/Python/symtable.c:2447,1
    - Dst: symtable_visit_dictcomp
      Src: /src/cpython/Python/symtable.c:2451,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2455,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2459,1
    - Dst: symtable_raise_if_comprehension_block
      Src: /src/cpython/Python/symtable.c:2462,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2466,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2469,1
    - Dst: symtable_raise_if_comprehension_block
      Src: /src/cpython/Python/symtable.c:2472,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2476,1
    - Dst: allows_top_level_await
      Src: /src/cpython/Python/symtable.c:2479,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:2480,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:2481,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2483,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2483,1
    - Dst: IS_ASYNC_DEF
      Src: /src/cpython/Python/symtable.c:2486,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:2487,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2489,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2489,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2493,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2497,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2498,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2501,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2502,1
    - Dst: check_keywords
      Src: /src/cpython/Python/symtable.c:2503,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2506,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2509,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2511,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2514,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2516,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2519,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2522,1
    - Dst: check_name
      Src: /src/cpython/Python/symtable.c:2529,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2529,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2532,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2535,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2536,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2539,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2543,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2545,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2547,1
    - Dst: symtable_add_def_ctx
      Src: /src/cpython/Python/symtable.c:2551,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2553,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:2558,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:2559,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2560,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2560,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2560,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2567,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2570,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2573,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 173
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2389
    functionDepth: 14
    functionLinenumber: 2389
    functionLinenumberEnd: 2575
    functionName: symtable_visit_expr
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_visit_listcomp
    - PyErr_SetString
    - VISIT_SEQ_WITH_NULL
    - symtable_raise_if_annotation_block
    - LEAVE_RECURSIVE
    - IS_ASYNC_DEF
    - check_keywords
    - SET_ERROR_LOCATION
    - _PyST_IsFunctionLike
    - _PyUnicode_EqualToASCIIString
    - symtable_visit_dictcomp
    - LOCATION
    - symtable_raise_if_comprehension_block
    - _Py_ID
    - symtable_handle_namedexpr
    - ENTER_RECURSIVE
    - symtable_visit_genexp
    - VISIT_SEQ
    - VISIT
    - symtable_enter_block
    - _Py_STR
    - symtable_visit_setcomp
    - symtable_add_def_ctx
    - symtable_add_def
    - symtable_exit_block
    - allows_top_level_await
    - check_name
    linkageType: ''
    returnType: int
    signature: int symtable_visit_expr(struct symtable *st, expr_ty e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/symtable.c:2582,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2582,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/symtable.c:2584,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/symtable.c:2586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2587,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2588,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2588,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2594,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2594,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2599,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2599,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2599,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2603,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2605,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - st
    - e
    - name
    - tp
    - ste_scope_info
    argTypes:
    - struct symtable*
    - expr_ty
    - identifier
    - type_param_ty
    - char*
    assertStmts:
    - condition: (ste_scope_info != NULL)
      pos:
        line_end: 2602
        line_start: 2602
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 2612
      start: 2577
    functionDepth: 13
    functionLinenumber: 2577
    functionLinenumberEnd: 2612
    functionName: symtable_visit_type_param_bound_or_default
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - LOCATION
    - _Py_ID
    - PyErr_SetObject
    - SET_ERROR_LOCATION
    - symtable_enter_block
    - VISIT
    - symtable_add_def
    - _PyUnicode_Equal
    - symtable_exit_block
    - assert
    linkageType: ''
    returnType: int
    signature: "int symtable_visit_type_param_bound_or_default(\n    struct symtable
      *st, expr_ty e, identifier name,\n    type_param_ty tp, const char *ste_scope_info)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2617,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2620,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2620,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2635,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2640,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2646,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2646,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2650,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2656,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2656,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2660,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2666,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - st
    - tp
    argTypes:
    - struct symtable*
    - type_param_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2614
    functionDepth: 14
    functionLinenumber: 2614
    functionLinenumberEnd: 2668
    functionName: symtable_visit_type_param
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LEAVE_RECURSIVE
    - LOCATION
    - symtable_add_def
    - symtable_visit_type_param_bound_or_default
    - ENTER_RECURSIVE
    linkageType: ''
    returnType: int
    signature: int symtable_visit_type_param(struct symtable *st, type_param_ty tp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2673,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2676,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2682,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2686,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2686,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2692,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2693,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2695,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2695,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2701,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2702,1
    - Dst: check_kwd_patterns
      Src: /src/cpython/Python/symtable.c:2703,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2706,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2710,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2713,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2713,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2719,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2722,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - st
    - p
    argTypes:
    - struct symtable*
    - pattern_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2670
    functionDepth: 12
    functionLinenumber: 2670
    functionLinenumberEnd: 2724
    functionName: symtable_visit_pattern
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LEAVE_RECURSIVE
    - LOCATION
    - VISIT_SEQ
    - VISIT
    - symtable_add_def
    - check_kwd_patterns
    - ENTER_RECURSIVE
    linkageType: ''
    returnType: int
    signature: int symtable_visit_pattern(struct symtable *st, pattern_ty p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/symtable.c:2729,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - st
    - pos
    argTypes:
    - struct symtable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2726
    functionDepth: 12
    functionLinenumber: 2726
    functionLinenumberEnd: 2738
    functionName: symtable_implicit_arg
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - symtable_add_def
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int symtable_implicit_arg(struct symtable *st, int pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2745,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2746,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2747,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - st
    - args
    argTypes:
    - struct symtable*
    - asdl_arg_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2740
    functionDepth: 12
    functionLinenumber: 2740
    functionLinenumberEnd: 2752
    functionName: symtable_visit_params
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_add_def
    - LOCATION
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int symtable_visit_params(struct symtable *st, asdl_arg_seq *args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2767,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2767,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2767,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2774,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2774,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2775,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:2779,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2783,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2783,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2783,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:2789,1
    - Dst: symtable_visit_expr
      Src: /src/cpython/Python/symtable.c:2797,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2801,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - st
    - annotation
    - key
    argTypes:
    - struct symtable*
    - expr_ty
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2754
    functionDepth: 15
    functionLinenumber: 2754
    functionLinenumberEnd: 2805
    functionName: symtable_visit_annotation
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_enter_existing_block
    - LOCATION
    - _Py_ID
    - symtable_enter_block
    - symtable_visit_expr
    - symtable_add_def
    - Py_NewRef
    - symtable_exit_block
    linkageType: ''
    returnType: int
    signature: int symtable_visit_annotation(struct symtable *st, expr_ty annotation,
      void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2812,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2813,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - args
    argTypes:
    - struct symtable*
    - asdl_arg_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2821
    functionName: symtable_visit_argannotations
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int symtable_visit_argannotations(struct symtable *st, asdl_arg_seq
      *args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2829,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2829,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2830,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2835,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2835,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2835,1
    - Dst: symtable_visit_argannotations
      Src: /src/cpython/Python/symtable.c:2839,1
    - Dst: symtable_visit_argannotations
      Src: /src/cpython/Python/symtable.c:2841,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2845,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2849,1
    - Dst: symtable_visit_argannotations
      Src: /src/cpython/Python/symtable.c:2851,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2855,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2857,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 5
    argNames:
    - st
    - o
    - a
    - returns
    - function_ste
    argTypes:
    - struct symtable*
    - stmt_ty
    - arguments_ty
    - expr_ty
    - struct _symtable_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2823
    functionDepth: 13
    functionLinenumber: 2823
    functionLinenumberEnd: 2861
    functionName: symtable_visit_annotations
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - LOCATION
    - _Py_ID
    - symtable_enter_block
    - VISIT
    - symtable_add_def
    - symtable_visit_argannotations
    - symtable_exit_block
    linkageType: ''
    returnType: int
    signature: "int symtable_visit_annotations(struct symtable *st, stmt_ty o, arguments_ty
      a, expr_ty returns,\n                           struct _symtable_entry *function_ste)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: symtable_visit_params
      Src: /src/cpython/Python/symtable.c:2869,1
    - Dst: symtable_visit_params
      Src: /src/cpython/Python/symtable.c:2871,1
    - Dst: symtable_visit_params
      Src: /src/cpython/Python/symtable.c:2873,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2876,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2876,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2881,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2881,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - st
    - a
    argTypes:
    - struct symtable*
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2863
    functionDepth: 13
    functionLinenumber: 2863
    functionLinenumberEnd: 2886
    functionName: symtable_visit_arguments
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_add_def
    - symtable_visit_params
    - LOCATION
    linkageType: ''
    returnType: int
    signature: int symtable_visit_arguments(struct symtable *st, arguments_ty a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2893,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2895,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2895,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - st
    - eh
    argTypes:
    - struct symtable*
    - excepthandler_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2889
    functionDepth: 12
    functionLinenumber: 2889
    functionLinenumberEnd: 2899
    functionName: symtable_visit_excepthandler
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_add_def
    - VISIT_SEQ
    - VISIT
    - LOCATION
    linkageType: ''
    returnType: int
    signature: int symtable_visit_excepthandler(struct symtable *st, excepthandler_ty
      eh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2904,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - st
    - item
    argTypes:
    - struct symtable*
    - withitem_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2901
    functionDepth: 0
    functionLinenumber: 2901
    functionLinenumberEnd: 2909
    functionName: symtable_visit_withitem
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_withitem(struct symtable *st, withitem_ty item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2914,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2916,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - st
    - m
    argTypes:
    - struct symtable*
    - match_case_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2911
    functionDepth: 1
    functionLinenumber: 2911
    functionLinenumberEnd: 2920
    functionName: symtable_visit_match_case
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_match_case(struct symtable *st, match_case_ty m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/symtable.c:2931,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/symtable.c:2932,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/symtable.c:2934,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:2939,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:2941,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2942,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:2948,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2949,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - st
    - a
    argTypes:
    - struct symtable*
    - alias_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2922
    functionDepth: 12
    functionLinenumber: 2922
    functionLinenumberEnd: 2956
    functionName: symtable_visit_alias
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - LOCATION
    - PyErr_SetString
    - SET_ERROR_LOCATION
    - Py_NewRef
    - PyUnicode_FindChar
    - symtable_add_def
    - _PyUnicode_EqualToASCIIString
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int symtable_visit_alias(struct symtable *st, alias_ty a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2963,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2966,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - st
    - lc
    argTypes:
    - struct symtable*
    - comprehension_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2959
    functionDepth: 1
    functionLinenumber: 2959
    functionLinenumberEnd: 2973
    functionName: symtable_visit_comprehension
    functionSourceFile: /src/cpython/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/cpython/Python/symtable.c:2979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - k
    argTypes:
    - struct symtable*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2981
    functionName: symtable_visit_keyword
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_keyword(struct symtable *st, keyword_ty k)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2991,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2994,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2998,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2998,1
    - Dst: symtable_implicit_arg
      Src: /src/cpython/Python/symtable.c:3020,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:3021,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3026,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:3029,1
    - Dst: VISIT_SEQ_TAIL
      Src: /src/cpython/Python/symtable.c:3030,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3032,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3033,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:3036,1
    - Dst: IS_ASYNC_DEF
      Src: /src/cpython/Python/symtable.c:3040,1
    - Dst: allows_top_level_await
      Src: /src/cpython/Python/symtable.c:3042,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:3044,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3046,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3046,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 6
    argNames:
    - st
    - e
    - scope_name
    - generators
    - elt
    - value
    argTypes:
    - struct symtable*
    - expr_ty
    - identifier
    - asdl_comprehension_seq*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3053
      start: 2984
    functionDepth: 13
    functionLinenumber: 2984
    functionLinenumberEnd: 3053
    functionName: symtable_handle_comprehension
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ_TAIL
    - IS_ASYNC_DEF
    - asdl_seq_GET
    - LOCATION
    - PyErr_SetString
    - symtable_enter_block
    - VISIT
    - symtable_implicit_arg
    - VISIT_SEQ
    - SET_ERROR_LOCATION
    - symtable_exit_block
    - allows_top_level_await
    linkageType: ''
    returnType: int
    signature: "int symtable_handle_comprehension(struct symtable *st, expr_ty e,\n
      \                             identifier scope_name, asdl_comprehension_seq
      *generators,\n                              expr_ty elt, expr_ty value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/cpython/Python/symtable.c:3058,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3055
    functionDepth: 14
    functionLinenumber: 3055
    functionLinenumberEnd: 3061
    functionName: symtable_visit_genexp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - _Py_STR
    linkageType: ''
    returnType: int
    signature: int symtable_visit_genexp(struct symtable *st, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/cpython/Python/symtable.c:3066,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3063
    functionDepth: 14
    functionLinenumber: 3063
    functionLinenumberEnd: 3069
    functionName: symtable_visit_listcomp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - _Py_STR
    linkageType: ''
    returnType: int
    signature: int symtable_visit_listcomp(struct symtable *st, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/cpython/Python/symtable.c:3074,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3071
    functionDepth: 14
    functionLinenumber: 3071
    functionLinenumberEnd: 3077
    functionName: symtable_visit_setcomp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - _Py_STR
    linkageType: ''
    returnType: int
    signature: int symtable_visit_setcomp(struct symtable *st, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/cpython/Python/symtable.c:3082,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3079
    functionDepth: 14
    functionLinenumber: 3079
    functionLinenumberEnd: 3086
    functionName: symtable_visit_dictcomp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - _Py_STR
    linkageType: ''
    returnType: int
    signature: int symtable_visit_dictcomp(struct symtable *st, expr_ty e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:3093,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:3096,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:3097,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:3101,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:3102,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:3106,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:3107,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3112,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - st
    - name
    - e
    argTypes:
    - struct symtable*
    - char*
    - expr_ty
    assertStmts:
    - condition: (st->st_cur->ste_scope_info == NULL)
      pos:
        line_end: 3100
        line_start: 3100
        source_file: /src/cpython/Python/symtable.c
    - condition: (info != NULL)
      pos:
        line_end: 3095
        line_start: 3095
        source_file: /src/cpython/Python/symtable.c
    - condition: (st->st_cur->ste_scope_info == NULL)
      pos:
        line_end: 3105
        line_start: 3105
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 3114
      start: 3088
    functionDepth: 1
    functionLinenumber: 3088
    functionLinenumberEnd: 3114
    functionName: symtable_raise_if_annotation_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - LOCATION
    - SET_ERROR_LOCATION
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int symtable_raise_if_annotation_block(struct symtable *st, const char
      *name, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:3119,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3124,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3116
    functionDepth: 1
    functionLinenumber: 3116
    functionLinenumberEnd: 3126
    functionName: symtable_raise_if_comprehension_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - LOCATION
    - PyErr_SetString
    - SET_ERROR_LOCATION
    linkageType: ''
    returnType: int
    signature: int symtable_raise_if_comprehension_block(struct symtable *st, expr_ty
      e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:3131,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - st
    - msg
    - loc
    argTypes:
    - struct symtable*
    - char*
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3136
      start: 3128
    functionDepth: 1
    functionLinenumber: 3128
    functionLinenumberEnd: 3136
    functionName: symtable_raise_if_not_coroutine
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - SET_ERROR_LOCATION
    linkageType: ''
    returnType: int
    signature: int symtable_raise_if_not_coroutine(struct symtable *st, const char
      *msg, _Py_SourceLocation loc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_New
      Src: /src/cpython/Python/symtable.c:3146,1
    - Dst: _PyParser_ASTFromString
      Src: /src/cpython/Python/symtable.c:3150,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/symtable.c:3152,1
    - Dst: _PyFuture_FromAST
      Src: /src/cpython/Python/symtable.c:3156,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/symtable.c:3157,1
    - Dst: _PySymtable_Build
      Src: /src/cpython/Python/symtable.c:3161,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/symtable.c:3162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - str
    - filename
    - start
    - flags
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3164
      start: 3138
    functionDepth: 13
    functionLinenumber: 3138
    functionLinenumberEnd: 3164
    functionName: _Py_SymtableStringObjectFlags
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _PyArena_New
    - _PyArena_Free
    - _PyFuture_FromAST
    - _PyParser_ASTFromString
    - _PySymtable_Build
    linkageType: ''
    returnType: struct symtable
    signature: "struct symtable *\n_Py_SymtableStringObjectFlags(const char *str,
      PyObject *filename,\n                              int start, PyCompilerFlags
      *flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:3175,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3180,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Python/symtable.c:3183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - privateobj
    - ste
    - name
    argTypes:
    - PyObject*
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3184
      start: 3166
    functionDepth: 8
    functionLinenumber: 3166
    functionLinenumberEnd: 3184
    functionName: _Py_MaybeMangle
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached:
    - PySet_Contains
    - Py_NewRef
    - _Py_Mangle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_MaybeMangle(PyObject *privateobj, PySTEntryObject *ste, PyObject *name)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/symtable.c:3191,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3192,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3193,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3194,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/symtable.c:3196,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/symtable.c:3197,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3207,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3208,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/symtable.c:3209,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3210,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3214,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3218,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:3222,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/symtable.c:3227,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/symtable.c:3232,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Python/symtable.c:3235,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/symtable.c:3238,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/symtable.c:3241,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/symtable.c:3244,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - privateobj
    - ident
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3186
    functionDepth: 10
    functionLinenumber: 3186
    functionLinenumberEnd: 3246
    functionName: _Py_Mangle
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 2
    functionsReached:
    - PyUnicodeWriter_WriteSubstring
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_Finish
    - PyErr_SetString
    - PyUnicodeWriter_Create
    - Py_NewRef
    - PyUnicode_FindChar
    - PyUnicodeWriter_WriteChar
    - PyUnicode_READ_CHAR
    - PyUnicodeWriter_WriteStr
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_Mangle(PyObject *privateobj, PyObject *ident)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 14
    functionName: _Py_get_387controlword
    functionSourceFile: /src/cpython/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: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: _Py_set_387controlword
    functionSourceFile: /src/cpython/Python/pymath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_set_387controlword(unsigned short cw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLIST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: BUCKETS_HEAD
    functionSourceFile: /src/cpython/Python/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: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: TABLE_HEAD
    functionSourceFile: /src/cpython/Python/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: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: ENTRY_NEXT
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY_NEXT(ENTRY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - _Py_slist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: _Py_slist_init
    functionSourceFile: /src/cpython/Python/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: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: _Py_slist_prepend
    functionSourceFile: /src/cpython/Python/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: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: _Py_slist_remove
    functionSourceFile: /src/cpython/Python/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_HashPointerRaw
      Src: /src/cpython/Python/hashtable.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: _Py_hashtable_hash_ptr
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_HashPointerRaw
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t _Py_hashtable_hash_ptr(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: _Py_hashtable_compare_direct
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_hashtable_compare_direct(const void *key1, const void *key2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: round_size
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t round_size(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: _Py_hashtable_size
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _Py_hashtable_size(const _Py_hashtable_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: _Py_hashtable_len
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _Py_hashtable_len(const _Py_hashtable_t *ht)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/cpython/Python/hashtable.c:142,1
    - Dst: TABLE_HEAD
      Src: /src/cpython/Python/hashtable.c:144,1
    - Dst: _Py_hashtable_t*::compare_func
      Src: /src/cpython/Python/hashtable.c:149,1
    - Dst: ENTRY_NEXT
      Src: /src/cpython/Python/hashtable.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ht
    - key
    argTypes:
    - _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: _Py_hashtable_get_entry_generic
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_t*::compare_func
    - TABLE_HEAD
    - _Py_hashtable_t*::hash_func
    - ENTRY_NEXT
    linkageType: ''
    returnType: _Py_hashtable_entry_t
    signature: '_Py_hashtable_entry_t *

      _Py_hashtable_get_entry_generic(_Py_hashtable_t *ht, const void *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_hash_ptr
      Src: /src/cpython/Python/hashtable.c:164,1
    - Dst: TABLE_HEAD
      Src: /src/cpython/Python/hashtable.c:166,1
    - Dst: ENTRY_NEXT
      Src: /src/cpython/Python/hashtable.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ht
    - key
    argTypes:
    - _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: _Py_hashtable_get_entry_ptr
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_hash_ptr
    - TABLE_HEAD
    - ENTRY_NEXT
    linkageType: ''
    returnType: _Py_hashtable_entry_t
    signature: '_Py_hashtable_entry_t *

      _Py_hashtable_get_entry_ptr(_Py_hashtable_t *ht, const void *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/cpython/Python/hashtable.c:184,1
    - Dst: TABLE_HEAD
      Src: /src/cpython/Python/hashtable.c:187,1
    - Dst: _Py_hashtable_t*::compare_func
      Src: /src/cpython/Python/hashtable.c:194,1
    - Dst: ENTRY_NEXT
      Src: /src/cpython/Python/hashtable.c:198,1
    - Dst: _Py_slist_remove
      Src: /src/cpython/Python/hashtable.c:201,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/cpython/Python/hashtable.c:206,1
    - Dst: hashtable_rehash
      Src: /src/cpython/Python/hashtable.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ht
    - key
    argTypes:
    - _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 213
    functionName: _Py_hashtable_steal
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 2
    functionsReached:
    - _Py_hashtable_t*::compare_func
    - ENTRY_NEXT
    - hashtable_rehash
    - TABLE_HEAD
    - _Py_hashtable_t*::hash_func
    - _Py_hashtable_t*::alloc::free
    - _Py_slist_remove
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_hashtable_steal(_Py_hashtable_t *ht, const void *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_t*::get_entry_func
      Src: /src/cpython/Python/hashtable.c:225,1
    - Dst: assert
      Src: /src/cpython/Python/hashtable.c:226,1
    - Dst: _Py_hashtable_t*::alloc::malloc
      Src: /src/cpython/Python/hashtable.c:229,1
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/cpython/Python/hashtable.c:235,1
    - Dst: hashtable_rehash
      Src: /src/cpython/Python/hashtable.c:241,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/cpython/Python/hashtable.c:243,1
    - Dst: _Py_slist_prepend
      Src: /src/cpython/Python/hashtable.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ht
    - key
    - value
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    assertStmts:
    - condition: (entry == NULL)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/cpython/Python/hashtable.c
    constantsTouched: []
    func_position:
      end: 251
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 251
    functionName: _Py_hashtable_set
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 9
    functionsReached:
    - assert
    - hashtable_rehash
    - _Py_hashtable_t*::get_entry_func
    - _Py_hashtable_t*::alloc::malloc
    - _Py_slist_prepend
    - _Py_hashtable_t*::alloc::free
    - _Py_hashtable_t*::hash_func
    linkageType: ''
    returnType: int
    signature: int _Py_hashtable_set(_Py_hashtable_t *ht, const void *key, void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_t*::get_entry_func
      Src: /src/cpython/Python/hashtable.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ht
    - key
    argTypes:
    - _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 264
    functionName: _Py_hashtable_get
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 8
    functionsReached:
    - _Py_hashtable_t*::get_entry_func
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_hashtable_get(_Py_hashtable_t *ht, const void *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_HEAD
      Src: /src/cpython/Python/hashtable.c:273,1
    - Dst: func
      Src: /src/cpython/Python/hashtable.c:275,1
    - Dst: ENTRY_NEXT
      Src: /src/cpython/Python/hashtable.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ht
    - func
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_foreach_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 283
    functionName: _Py_hashtable_foreach
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 5
    functionsReached:
    - TABLE_HEAD
    - ENTRY_NEXT
    - func
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_foreach(_Py_hashtable_t *ht,\n                      _Py_hashtable_foreach_func
      func,\n                      void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: round_size
      Src: /src/cpython/Python/hashtable.c:289,1
    - Dst: _Py_hashtable_t*::alloc::malloc
      Src: /src/cpython/Python/hashtable.c:295,1
    - Dst: memset
      Src: /src/cpython/Python/hashtable.c:300,1
    - Dst: BUCKETS_HEAD
      Src: /src/cpython/Python/hashtable.c:303,1
    - Dst: assert
      Src: /src/cpython/Python/hashtable.c:305,1
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/cpython/Python/hashtable.c:305,1
    - Dst: ENTRY_NEXT
      Src: /src/cpython/Python/hashtable.c:306,1
    - Dst: _Py_slist_prepend
      Src: /src/cpython/Python/hashtable.c:309,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/cpython/Python/hashtable.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts:
    - condition: (ht->hash_func(entry->key) == entry->key_hash)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Python/hashtable.c
    constantsTouched: []
    func_position:
      end: 319
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 319
    functionName: hashtable_rehash
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 2
    functionsReached:
    - ENTRY_NEXT
    - memset
    - BUCKETS_HEAD
    - _Py_hashtable_t*::alloc::malloc
    - _Py_hashtable_t*::hash_func
    - _Py_slist_prepend
    - _Py_hashtable_t*::alloc::free
    - round_size
    - assert
    linkageType: ''
    returnType: int
    signature: int hashtable_rehash(_Py_hashtable_t *ht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_allocator_t::malloc
      Src: /src/cpython/Python/hashtable.c:338,1
    - Dst: _Py_hashtable_allocator_t::malloc
      Src: /src/cpython/Python/hashtable.c:347,1
    - Dst: _Py_hashtable_allocator_t::free
      Src: /src/cpython/Python/hashtable.c:349,1
    - Dst: memset
      Src: /src/cpython/Python/hashtable.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - hash_func
    - compare_func
    - key_destroy_func
    - value_destroy_func
    - allocator
    argTypes:
    - _Py_hashtable_hash_func
    - _Py_hashtable_compare_func
    - _Py_hashtable_destroy_func
    - _Py_hashtable_destroy_func
    - _Py_hashtable_allocator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 366
    functionName: _Py_hashtable_new_full
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 7
    functionsReached:
    - memset
    - _Py_hashtable_allocator_t::malloc
    - _Py_hashtable_allocator_t::free
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: "_Py_hashtable_t *\n_Py_hashtable_new_full(_Py_hashtable_hash_func
      hash_func,\n                       _Py_hashtable_compare_func compare_func,\n
      \                      _Py_hashtable_destroy_func key_destroy_func,\n                       _Py_hashtable_destroy_func
      value_destroy_func,\n                       _Py_hashtable_allocator_t *allocator)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/hashtable.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash_func
    - compare_func
    argTypes:
    - _Py_hashtable_hash_func
    - _Py_hashtable_compare_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: _Py_hashtable_new
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 1
    functionsReached:
    - _Py_hashtable_new_full
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: "_Py_hashtable_t *\n_Py_hashtable_new(_Py_hashtable_hash_func hash_func,\n
      \                 _Py_hashtable_compare_func compare_func)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_t*::key_destroy_func
      Src: /src/cpython/Python/hashtable.c:382,1
    - Dst: _Py_hashtable_t*::value_destroy_func
      Src: /src/cpython/Python/hashtable.c:385,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/cpython/Python/hashtable.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ht
    - entry
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: _Py_hashtable_destroy_entry
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_t*::alloc::free
    - _Py_hashtable_t*::key_destroy_func
    - _Py_hashtable_t*::value_destroy_func
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_destroy_entry(_Py_hashtable_t *ht, _Py_hashtable_entry_t
      *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_HEAD
      Src: /src/cpython/Python/hashtable.c:395,1
    - Dst: ENTRY_NEXT
      Src: /src/cpython/Python/hashtable.c:397,1
    - Dst: _Py_hashtable_destroy_entry
      Src: /src/cpython/Python/hashtable.c:398,1
    - Dst: _Py_slist_init
      Src: /src/cpython/Python/hashtable.c:401,1
    - Dst: hashtable_rehash
      Src: /src/cpython/Python/hashtable.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 407
    functionName: _Py_hashtable_clear
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 2
    functionsReached:
    - _Py_slist_init
    - _Py_hashtable_destroy_entry
    - ENTRY_NEXT
    - hashtable_rehash
    - TABLE_HEAD
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_clear(_Py_hashtable_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_HEAD
      Src: /src/cpython/Python/hashtable.c:414,1
    - Dst: ENTRY_NEXT
      Src: /src/cpython/Python/hashtable.c:416,1
    - Dst: _Py_hashtable_destroy_entry
      Src: /src/cpython/Python/hashtable.c:417,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/cpython/Python/hashtable.c:422,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/cpython/Python/hashtable.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 424
    functionName: _Py_hashtable_destroy
    functionSourceFile: /src/cpython/Python/hashtable.c
    functionUses: 11
    functionsReached:
    - _Py_hashtable_t*::alloc::free
    - TABLE_HEAD
    - _Py_hashtable_destroy_entry
    - ENTRY_NEXT
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_destroy(_Py_hashtable_t *ht)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:11,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/pystrhex.c:15,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:20,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pystrhex.c:23,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/pystrhex.c:24,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:25,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/pystrhex.c:28,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/pystrhex.c:30,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pystrhex.c:31,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:34,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:38,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/pystrhex.c:46,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrhex.c:54,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/pystrhex.c:67,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pystrhex.c:71,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/pystrhex.c:74,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/pystrhex.c:78,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:87,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:92,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:115,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:133,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:139,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/pystrhex.c:139,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 102
    argCount: 5
    argNames:
    - argbuf
    - arglen
    - sep
    - bytes_per_sep_group
    - return_bytes
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: ((j + 1) < resultlen)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (j == resultlen)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (_PyUnicode_CheckConsistency(retval, 1))
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (arglen >= 0)
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (j == resultlen)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (j == -1)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Python/pystrhex.c
    constantsTouched: []
    func_position:
      end: 144
      start: 7
    functionDepth: 4
    functionLinenumber: 7
    functionLinenumberEnd: 144
    functionName: _Py_strhex_impl
    functionSourceFile: /src/cpython/Python/pystrhex.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    - PyUnicode_1BYTE_DATA
    - PyBytes_Check
    - PyObject_Length
    - Py_ABS
    - PyUnicode_READ_CHAR
    - PyUnicode_New
    - PyUnicode_Check
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_Py_strhex_impl(const char* argbuf, const Py_ssize_t arglen,\n
      \                                PyObject* sep, int bytes_per_sep_group,\n                                 const
      int return_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/cpython/Python/pystrhex.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argbuf
    - arglen
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: _Py_strhex
    functionSourceFile: /src/cpython/Python/pystrhex.c
    functionUses: 11
    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/cpython/Python/pystrhex.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argbuf
    - arglen
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: _Py_strhex_bytes
    functionSourceFile: /src/cpython/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/cpython/Python/pystrhex.c:163,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: 164
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: _Py_strhex_with_sep
    functionSourceFile: /src/cpython/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,\n                              PyObject* sep, const int bytes_per_group)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/cpython/Python/pystrhex.c:171,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: 172
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: _Py_strhex_bytes_with_sep
    functionSourceFile: /src/cpython/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,\n                                    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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Python/dynamic_annotations.c:123,1
    - Dst: strcmp
      Src: /src/cpython/Python/dynamic_annotations.c:125,1
    - Dst: GetEnvironmentVariableA
      Src: /src/cpython/Python/dynamic_annotations.c:132,1
    - Dst: strcmp
      Src: /src/cpython/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/cpython/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached:
    - getenv
    - strcmp
    - GetEnvironmentVariableA
    linkageType: ''
    returnType: int
    signature: int GetRunningOnValgrind(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetRunningOnValgrind
      Src: /src/cpython/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/cpython/Python/dynamic_annotations.c
    functionUses: 1
    functionsReached:
    - GetRunningOnValgrind
    linkageType: ''
    returnType: int
    signature: int RunningOnValgrind(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/pystrtod.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 20
    functionName: case_insensitive_match
    functionSourceFile: /src/cpython/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/cpython/Python/pystrtod.c:42,1
    - Dst: case_insensitive_match
      Src: /src/cpython/Python/pystrtod.c:44,1
    - Dst: case_insensitive_match
      Src: /src/cpython/Python/pystrtod.c:48,1
    - Dst: fabs
      Src: /src/cpython/Python/pystrtod.c:50,1
    - Dst: fabs
      Src: /src/cpython/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/cpython/Python/pystrtod.c
    functionUses: 1
    functionsReached:
    - fabs
    - 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/cpython/Python/pystrtod.c:98,1
    - Dst: _Py_dg_strtod
      Src: /src/cpython/Python/pystrtod.c:104,1
    - Dst: _Py_parse_inf_or_nan
      Src: /src/cpython/Python/pystrtod.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - nptr
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: (nptr != NULL)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/cpython/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: _PyOS_ascii_strtod
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - _Py_dg_strtod
    - _Py_parse_inf_or_nan
    - assert
    linkageType: ''
    returnType: double
    signature: double _PyOS_ascii_strtod(const char *nptr, char **endptr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:138,1
    - Dst: localeconv
      Src: /src/cpython/Python/pystrtod.c:142,1
    - Dst: strlen
      Src: /src/cpython/Python/pystrtod.c:144,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:146,1
    - Dst: _Py_parse_inf_or_nan
      Src: /src/cpython/Python/pystrtod.c:151,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:178,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:189,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:197,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:204,1
    - Dst: strncmp
      Src: /src/cpython/Python/pystrtod.c:208,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/pystrtod.c:219,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystrtod.c:228,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystrtod.c:230,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystrtod.c:232,1
    - Dst: strtod
      Src: /src/cpython/Python/pystrtod.c:237,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/pystrtod.c:250,1
    - Dst: strtod
      Src: /src/cpython/Python/pystrtod.c:254,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 2
    argNames:
    - nptr
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: (nptr != NULL)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (decimal_point_len != 0)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/cpython/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 270
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 270
    functionName: _PyOS_ascii_strtod
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strtod
    - localeconv
    - _Py_parse_inf_or_nan
    - memcpy
    - Py_ISDIGIT
    - PyMem_Free
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: double
    signature: double _PyOS_ascii_strtod(const char *nptr, char **endptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyOS_ascii_strtod
      Src: /src/cpython/Python/pystrtod.c:307,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrtod.c:310,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystrtod.c:314,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystrtod.c:318,1
    - Dst: fabs
      Src: /src/cpython/Python/pystrtod.c:321,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystrtod.c:322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - s
    - endptr
    - overflow_exception
    argTypes:
    - char*
    - char**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 331
    functionName: PyOS_string_to_double
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 4
    functionsReached:
    - fabs
    - PyErr_NoMemory
    - _PyOS_ascii_strtod
    - 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/cpython/Python/pystrtod.c:354,1
    - Dst: strchr
      Src: /src/cpython/Python/pystrtod.c:356,1
    - Dst: innerfunc
      Src: /src/cpython/Python/pystrtod.c:357,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/pystrtod.c:360,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrtod.c:362,1
    - Dst: innerfunc
      Src: /src/cpython/Python/pystrtod.c:392,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/pystrtod.c:393,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/pystrtod.c:397,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystrtod.c:398,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: 353
        line_start: 353
        source_file: /src/cpython/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 402
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 402
    functionName: _Py_string_to_number_with_underscores
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 2
    functionsReached:
    - strchr
    - innerfunc
    - PyMem_Free
    - PyErr_Format
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    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/cpython/Python/pystrtod.c:412,1
    - Dst: strlen
      Src: /src/cpython/Python/pystrtod.c:416,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:420,1
    - Dst: strncmp
      Src: /src/cpython/Python/pystrtod.c:422,1
    - Dst: strlen
      Src: /src/cpython/Python/pystrtod.c:427,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 436
    functionName: change_decimal_from_locale_to_dot
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - memmove
    - localeconv
    - Py_ISDIGIT
    linkageType: ''
    returnType: void
    signature: void change_decimal_from_locale_to_dot(char* buffer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/cpython/Python/pystrtod.c:450,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:463,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:489,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:493,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:503,1
    - Dst: memset
      Src: /src/cpython/Python/pystrtod.c:505,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: 488
        line_start: 488
        source_file: /src/cpython/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 509
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 509
    functionName: ensure_minimum_exponent_length
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - memmove
    - memset
    - Py_ISDIGIT
    - assert
    linkageType: ''
    returnType: void
    signature: void ensure_minimum_exponent_length(char* buffer, size_t buf_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:524,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:532,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 552
    functionName: remove_trailing_zeros
    functionSourceFile: /src/cpython/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/cpython/Python/pystrtod.c:575,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Python/pystrtod.c:577,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:580,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:588,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:605,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:608,1
    - Dst: strlen
      Src: /src/cpython/Python/pystrtod.c:614,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:621,1
    - Dst: strlen
      Src: /src/cpython/Python/pystrtod.c:622,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystrtod.c:623,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:631,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:632,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:635,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/pystrtod.c:642,1
    - Dst: remove_trailing_zeros
      Src: /src/cpython/Python/pystrtod.c:647,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - buffer
    - buf_size
    - precision
    argTypes:
    - char*
    - size_t
    - int
    assertStmts:
    - condition: (*p == '\0')
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (precision == -1)
      pos:
        line_end: 587
        line_start: 587
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (precision == -1 || digit_count < precision)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (digit_count >= 1)
      pos:
        line_end: 630
        line_start: 630
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (p <= buf_size+buffer)
      pos:
        line_end: 634
        line_start: 634
        source_file: /src/cpython/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 650
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 650
    functionName: ensure_decimal_point
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - strlen
    - memmove
    - PyOS_snprintf
    - remove_trailing_zeros
    - memcpy
    - Py_SAFE_DOWNCAST
    - Py_ISDIGIT
    - 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/cpython/Python/pystrtod.c:683,1
    - Dst: strpbrk
      Src: /src/cpython/Python/pystrtod.c:699,1
    - Dst: strcpy
      Src: /src/cpython/Python/pystrtod.c:722,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/pystrtod.c:729,1
    - Dst: change_decimal_from_locale_to_dot
      Src: /src/cpython/Python/pystrtod.c:735,1
    - Dst: ensure_minimum_exponent_length
      Src: /src/cpython/Python/pystrtod.c:742,1
    - Dst: ensure_decimal_point
      Src: /src/cpython/Python/pystrtod.c:750,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: 753
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 753
    functionName: _PyOS_ascii_formatd
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - strlen
    - PyOS_snprintf
    - change_decimal_from_locale_to_dot
    - ensure_decimal_point
    - ensure_minimum_exponent_length
    - strcpy
    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: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/pystrtod.c:790,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/pystrtod.c:803,1
    - Dst: isnan
      Src: /src/cpython/Python/pystrtod.c:845,1
    - Dst: isinf
      Src: /src/cpython/Python/pystrtod.c:845,1
    - Dst: fabs
      Src: /src/cpython/Python/pystrtod.c:850,1
    - Dst: frexp
      Src: /src/cpython/Python/pystrtod.c:851,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/pystrtod.c:856,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrtod.c:858,1
    - Dst: isnan
      Src: /src/cpython/Python/pystrtod.c:863,1
    - Dst: strcpy
      Src: /src/cpython/Python/pystrtod.c:864,1
    - Dst: isinf
      Src: /src/cpython/Python/pystrtod.c:866,1
    - Dst: copysign
      Src: /src/cpython/Python/pystrtod.c:867,1
    - Dst: strcpy
      Src: /src/cpython/Python/pystrtod.c:868,1
    - Dst: strcpy
      Src: /src/cpython/Python/pystrtod.c:870,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/pystrtod.c:877,1
    - Dst: _PyOS_ascii_formatd
      Src: /src/cpython/Python/pystrtod.c:880,1
    - Dst: strlen
      Src: /src/cpython/Python/pystrtod.c:888,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:889,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:890,1
    - Dst: strlen
      Src: /src/cpython/Python/pystrtod.c:898,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:901,1
    - Dst: memmove
      Src: /src/cpython/Python/pystrtod.c:902,1
    - Dst: Py_TOUPPER
      Src: /src/cpython/Python/pystrtod.c:909,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    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: 900
        line_start: 900
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (buf[len] == 0)
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 915
      start: 757
    functionDepth: 4
    functionLinenumber: 757
    functionLinenumberEnd: 915
    functionName: PyOS_double_to_string
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 7
    functionsReached:
    - fabs
    - strcpy
    - strlen
    - copysign
    - PyErr_BadInternalCall
    - PyOS_snprintf
    - memmove
    - isinf
    - isnan
    - Py_TOUPPER
    - frexp
    - _PyOS_ascii_formatd
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    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: 33
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_dtoa
      Src: /src/cpython/Python/pystrtod.c:986,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrtod.c:993,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:996,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/pystrtod.c:1004,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/pystrtod.c:1015,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrtod.c:1017,1
    - Dst: strncpy
      Src: /src/cpython/Python/pystrtod.c:1029,1
    - Dst: strncpy
      Src: /src/cpython/Python/pystrtod.c:1036,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/pystrtod.c:1045,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/pystrtod.c:1103,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:1122,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:1126,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/pystrtod.c:1142,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrtod.c:1144,1
    - Dst: memset
      Src: /src/cpython/Python/pystrtod.c:1160,1
    - Dst: memset
      Src: /src/cpython/Python/pystrtod.c:1163,1
    - Dst: memset
      Src: /src/cpython/Python/pystrtod.c:1167,1
    - Dst: strncpy
      Src: /src/cpython/Python/pystrtod.c:1173,1
    - Dst: strncpy
      Src: /src/cpython/Python/pystrtod.c:1176,1
    - Dst: strncpy
      Src: /src/cpython/Python/pystrtod.c:1180,1
    - Dst: memset
      Src: /src/cpython/Python/pystrtod.c:1186,1
    - Dst: memset
      Src: /src/cpython/Python/pystrtod.c:1189,1
    - Dst: memset
      Src: /src/cpython/Python/pystrtod.c:1193,1
    - Dst: sprintf
      Src: /src/cpython/Python/pystrtod.c:1204,1
    - Dst: assert
      Src: /src/cpython/Python/pystrtod.c:1212,1
    - Dst: _Py_dg_freedtoa
      Src: /src/cpython/Python/pystrtod.c:1215,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 144
    argCount: 10
    argNames:
    - d
    - format_code
    - mode
    - precision
    - always_add_sign
    - add_dot_0_if_integer
    - use_alt_formatting
    - no_negative_zero
    - float_strings
    - type
    argTypes:
    - double
    - char
    - int
    - int
    - int
    - int
    - int
    - int
    - char**
    - int*
    assertStmts:
    - condition: (digits_end != NULL && digits_end >= digits)
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (vdigits_start < decpt && decpt <= vdigits_end)
      pos:
        line_end: 1125
        line_start: 1125
        source_file: /src/cpython/Python/pystrtod.c
    - condition: "(vdigits_start <= 0 &&\n           0 <= digits_len &&\n           digits_len
        <= vdigits_end)"
      pos:
        line_end: 1123
        line_start: 1121
        source_file: /src/cpython/Python/pystrtod.c
    - condition: (p-buf < bufsize)
      pos:
        line_end: 1211
        line_start: 1211
        source_file: /src/cpython/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 1218
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 1218
    functionName: format_float_short
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - strncpy
    - PyErr_BadInternalCall
    - sprintf
    - memset
    - _Py_dg_dtoa
    - _Py_dg_freedtoa
    - Py_ISDIGIT
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    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, int no_negative_zero,\n                   const
      char * const *float_strings, int *type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/pystrtod.c:1269,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/pystrtod.c:1275,1
    - Dst: format_float_short
      Src: /src/cpython/Python/pystrtod.c:1279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - val
    - format_code
    - precision
    - flags
    - type
    argTypes:
    - double
    - char
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1221
    functionDepth: 3
    functionLinenumber: 1221
    functionLinenumberEnd: 1285
    functionName: PyOS_double_to_string
    functionSourceFile: /src/cpython/Python/pystrtod.c
    functionUses: 7
    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: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: untag_critical_section
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyCriticalSection
    signature: 'PyCriticalSection *

      untag_critical_section(uintptr_t tag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:23,1
    - Dst: untag_critical_section
      Src: /src/cpython/Python/critical_section.c:28,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - PyCriticalSection*
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 40
    functionName: _PyCriticalSection_BeginSlow
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyMutex_Lock
    - untag_critical_section
    linkageType: ''
    returnType: void
    signature: void _PyCriticalSection_BeginSlow(PyCriticalSection *c, PyMutex *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:47,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:54,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - c
    - m1
    - m2
    - is_m1_locked
    argTypes:
    - PyCriticalSection2*
    - PyMutex*
    - PyMutex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: _PyCriticalSection2_BeginSlow
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyMutex_Lock
    linkageType: ''
    returnType: void
    signature: "void _PyCriticalSection2_BeginSlow(PyCriticalSection2 *c, PyMutex
      *m1, PyMutex *m2,\n                              int is_m1_locked)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Python/critical_section.c:70,1
    - Dst: untag_critical_section
      Src: /src/cpython/Python/critical_section.c:71,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/critical_section.c:74,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/critical_section.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: _PyCriticalSection_SuspendAll
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection_IsActive
    - PyMutex_Unlock
    - untag_critical_section
    linkageType: ''
    returnType: void
    signature: void _PyCriticalSection_SuspendAll(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: untag_critical_section
      Src: /src/cpython/Python/critical_section.c:94,1
    - Dst: assert
      Src: /src/cpython/Python/critical_section.c:95,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Python/critical_section.c:95,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:109,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!_PyCriticalSection_IsActive(p))
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/cpython/Python/critical_section.c
    constantsTouched: []
    func_position:
      end: 122
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 122
    functionName: _PyCriticalSection_Resume
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - PyMutex_Lock
    - _PyCriticalSection_IsActive
    - untag_critical_section
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyCriticalSection_Resume(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCriticalSection_Begin
      Src: /src/cpython/Python/critical_section.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - op
    argTypes:
    - PyCriticalSection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: PyCriticalSection_Begin
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection_Begin
    linkageType: ''
    returnType: void
    signature: void PyCriticalSection_Begin(PyCriticalSection *c, PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCriticalSection_BeginMutex
      Src: /src/cpython/Python/critical_section.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - PyCriticalSection*
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: PyCriticalSection_BeginMutex
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection_BeginMutex
    linkageType: ''
    returnType: void
    signature: void PyCriticalSection_BeginMutex(PyCriticalSection *c, PyMutex *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCriticalSection_End
      Src: /src/cpython/Python/critical_section.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - PyCriticalSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: PyCriticalSection_End
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection_End
    linkageType: ''
    returnType: void
    signature: void PyCriticalSection_End(PyCriticalSection *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCriticalSection2_Begin
      Src: /src/cpython/Python/critical_section.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - a
    - b
    argTypes:
    - PyCriticalSection2*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: PyCriticalSection2_Begin
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection2_Begin
    linkageType: ''
    returnType: void
    signature: void PyCriticalSection2_Begin(PyCriticalSection2 *c, PyObject *a, PyObject
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCriticalSection2_BeginMutex
      Src: /src/cpython/Python/critical_section.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - m1
    - m2
    argTypes:
    - PyCriticalSection2*
    - PyMutex*
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: PyCriticalSection2_BeginMutex
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection2_BeginMutex
    linkageType: ''
    returnType: void
    signature: void PyCriticalSection2_BeginMutex(PyCriticalSection2 *c, PyMutex *m1,
      PyMutex *m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCriticalSection2_End
      Src: /src/cpython/Python/critical_section.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - PyCriticalSection2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: PyCriticalSection2_End
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection2_End
    linkageType: ''
    returnType: void
    signature: void PyCriticalSection2_End(PyCriticalSection2 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyContext_CopyCurrent
      Src: /src/cpython/Python/_contextvars.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/cpython/Python/_contextvars.c
    functionUses: 0
    functionsReached:
    - PyContext_CopyCurrent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_copy_context_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddType
      Src: /src/cpython/Python/_contextvars.c:33,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Python/_contextvars.c:36,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Python/_contextvars.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: _contextvars_exec
    functionSourceFile: /src/cpython/Python/_contextvars.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int _contextvars_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/_contextvars.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: PyInit__contextvars
    functionSourceFile: /src/cpython/Python/_contextvars.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__contextvars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: _PyOS_ResetGetOpt
    functionSourceFile: /src/cpython/Python/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyOS_ResetGetOpt(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/cpython/Python/getopt.c:70,1
    - Dst: wcscmp
      Src: /src/cpython/Python/getopt.c:80,1
    - Dst: wcscmp
      Src: /src/cpython/Python/getopt.c:85,1
    - Dst: wcscmp
      Src: /src/cpython/Python/getopt.c:90,1
    - Dst: fprintf
      Src: /src/cpython/Python/getopt.c:105,1
    - Dst: wcscmp
      Src: /src/cpython/Python/getopt.c:112,1
    - Dst: fprintf
      Src: /src/cpython/Python/getopt.c:117,1
    - Dst: fprintf
      Src: /src/cpython/Python/getopt.c:127,1
    - Dst: wcschr
      Src: /src/cpython/Python/getopt.c:136,1
    - Dst: fprintf
      Src: /src/cpython/Python/getopt.c:138,1
    - Dst: fprintf
      Src: /src/cpython/Python/getopt.c:152,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 3
    argNames:
    - argc
    - argv
    - longindex
    argTypes:
    - Py_ssize_t
    - wchar_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 163
    functionName: _PyOS_GetOpt
    functionSourceFile: /src/cpython/Python/getopt.c
    functionUses: 0
    functionsReached:
    - wcscmp
    - fprintf
    - wcschr
    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:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: RETURN_IF_ERROR
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR(X)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:114,1
    - Dst: PyList_New
      Src: /src/cpython/Python/compile.c:119,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:124,1
    - Dst: _PyFuture_FromAST
      Src: /src/cpython/Python/compile.c:125,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/compile.c:135,1
    - Dst: _PyAST_Preprocess
      Src: /src/cpython/Python/compile.c:138,1
    - Dst: _PySymtable_Build
      Src: /src/cpython/Python/compile.c:141,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/compile.c:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 6
    argNames:
    - c
    - mod
    - filename
    - flags
    - optimize
    - arena
    argTypes:
    - compiler*
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 108
    functionDepth: 13
    functionLinenumber: 108
    functionLinenumberEnd: 149
    functionName: compiler_setup
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _Py_GetConfig
    - PyErr_Occurred
    - PyErr_SetString
    - Py_NewRef
    - _PyFuture_FromAST
    - PyDict_New
    - _PyAST_Preprocess
    - _PySymtable_Build
    linkageType: ''
    returnType: int
    signature: "int compiler_setup(compiler *c, mod_ty mod, PyObject *filename,\n
      \              PyCompilerFlags *flags, int optimize, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/compile.c:155,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:157,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:158,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:159,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/compile.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: compiler_free
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PySymtable_Free
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void compiler_free(compiler *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/compile.c:167,1
    - Dst: compiler_setup
      Src: /src/cpython/Python/compile.c:171,1
    - Dst: compiler_free
      Src: /src/cpython/Python/compile.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - mod
    - filename
    - pflags
    - optimize
    - arena
    argTypes:
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 14
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: new_compiler
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - compiler_free
    - compiler_setup
    linkageType: ''
    returnType: compiler
    signature: "compiler *\nnew_compiler(mod_ty mod, PyObject *filename, PyCompilerFlags
      *pflags,\n             int optimize, PyArena *arena)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:181,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:182,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:183,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:184,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:185,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:186,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:187,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:188,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:189,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:190,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:191,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:192,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:193,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:194,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:195,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/compile.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - u
    argTypes:
    - struct compiler_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: compiler_unit_free
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void compiler_unit_free(struct compiler_unit *u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:204,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/compile.c:208,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:212,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:214,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:215,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:217,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:219,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:220,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/compile.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == Attribute_kind)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/cpython/Python/compile.c
    - condition: (u)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_static_attributes)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 225
      start: 201
    functionDepth: 8
    functionLinenumber: 201
    functionLinenumberEnd: 225
    functionName: _PyCompile_MaybeAddStaticAttributeToClass
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyCapsule_GetPointer
    - RETURN_IF_ERROR
    - _PyUnicode_EqualToASCIIString
    - PySet_Add
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCompile_MaybeAddStaticAttributeToClass(compiler *c, expr_ty
      e)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:235,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:236,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:242,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:243,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:244,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:251,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:254,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:255,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:256,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:262,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Python/compile.c:263,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/compile.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:269,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:270,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:271,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/compile.c:281,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/compile.c:282,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/compile.c:283,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:289,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/compile.c:295,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/compile.c:295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:296,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Python/compile.c:300,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:306,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (stack_size >= 1)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/cpython/Python/compile.c
    - condition: (parent)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/cpython/Python/compile.c
    - condition: (scope != GLOBAL_IMPLICIT)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_metadata.u_name)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/cpython/Python/compile.c
    - condition: (parent)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 311
      start: 227
    functionDepth: 11
    functionLinenumber: 227
    functionLinenumberEnd: 311
    functionName: compiler_set_qualname
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - _Py_LATIN1_CHR
    - _Py_DECLARE_STR
    - _PyST_GetScope
    - PyUnicode_Concat
    - PyUnicode_Append
    - PyList_GET_SIZE
    - _Py_STR
    - Py_NewRef
    - _Py_Mangle
    - PyCapsule_GetPointer
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: int compiler_set_qualname(compiler *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:319,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/compile.c:319,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Python/compile.c:326,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Python/compile.c:332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:339,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:348,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/compile.c:349,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:351,1
    - Dst: const_cache_insert
      Src: /src/cpython/Python/compile.c:352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:354,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:360,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:361,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/compile.c:367,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:371,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/compile.c:374,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:378,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:378,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:379,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/compile.c:379,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/compile.c:381,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/compile.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:387,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Python/compile.c:393,1
    - Dst: const_cache_insert
      Src: /src/cpython/Python/compile.c:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:397,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:401,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:402,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:402,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:403,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/compile.c:408,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Python/compile.c:414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:417,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:420,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:421,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/compile.c:422,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 3
    argNames:
    - const_cache
    - o
    - recursive
    argTypes:
    - PyObject*
    - PyObject*
    - bool
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/cpython/Python/compile.c
    - condition: (PyTuple_GET_SIZE(key) == 2)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/cpython/Python/compile.c
    - condition: (PyTuple_CheckExact(key))
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/cpython/Python/compile.c
    - condition: (PyTuple_GET_ITEM(key, 1) == o)
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 426
      start: 316
    functionDepth: 12
    functionLinenumber: 316
    functionLinenumberEnd: 426
    functionName: const_cache_insert
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyDict_CheckExact
    - PyFrozenSet_CheckExact
    - PyTuple_SET_ITEM
    - PySet_GET_SIZE
    - PyFrozenSet_New
    - Py_NewRef
    - _PySet_NextEntry
    - PyDict_SetDefaultRef
    - PyTuple_GET_ITEM
    - const_cache_insert
    - PyTuple_CheckExact
    - _PyCode_ConstantKey
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      const_cache_insert(PyObject *const_cache, PyObject *o, bool recursive)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cache_insert
      Src: /src/cpython/Python/compile.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - const_cache
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 13
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: merge_consts_recursive
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - const_cache_insert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      merge_consts_recursive(PyObject *const_cache, PyObject *o)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/compile.c:440,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/compile.c:444,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/compile.c:445,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:450,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - dict
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 434
    functionDepth: 9
    functionLinenumber: 434
    functionLinenumberEnd: 458
    functionName: _PyCompile_DictAddObj
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached:
    - PyDict_SetItem
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyLong_AsLong
    - PyLong_FromSsize_t
    - PyDict_GetItemRef
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyCompile_DictAddObj(PyObject *dict, PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: merge_consts_recursive
      Src: /src/cpython/Python/compile.c:463,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - o
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 14
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: _PyCompile_AddConst
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached:
    - _PyCompile_DictAddObj
    - merge_consts_recursive
    - Py_DECREF
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyCompile_AddConst(compiler *c, PyObject *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:478,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/compile.c:481,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/compile.c:483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:485,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:488,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 473
    functionDepth: 10
    functionLinenumber: 473
    functionLinenumberEnd: 497
    functionName: list2dict
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyDict_SetItem
    - PyLong_FromSsize_t
    - PyDict_New
    - PyList_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list2dict(PyObject *list)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:511,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:514,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Python/compile.c:523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:525,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/compile.c:528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:530,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:533,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:536,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/compile.c:537,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:539,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/compile.c:540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:543,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:546,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:549,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/compile.c:552,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/compile.c:553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:556,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:569,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - src
    - scope_type
    - flag
    - offset
    argTypes:
    - PyObject*
    - int
    - int
    - Py_ssize_t
    assertStmts:
    - condition: (offset >= 0)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 571
      start: 507
    functionDepth: 10
    functionLinenumber: 507
    functionLinenumberEnd: 571
    functionName: dictbytype
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_Sort
    - PyDict_SetItem
    - PyLong_AsLong
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyErr_SetObject
    - SYMBOL_TO_SCOPE
    - PyLong_FromSsize_t
    - PyDict_Keys
    - PyDict_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictbytype(PyObject *src, int scope_type, int flag, Py_ssize_t offset)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/compile.c:579,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/compile.c:581,1
    - Dst: _PySymtable_Lookup
      Src: /src/cpython/Python/compile.c:593,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:595,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:598,1
    - Dst: list2dict
      Src: /src/cpython/Python/compile.c:599,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:601,1
    - Dst: dictbytype
      Src: /src/cpython/Python/compile.c:604,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:606,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:612,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:613,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/compile.c:613,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:615,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:622,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:623,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/compile.c:623,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:625,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:632,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:633,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/compile.c:633,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:635,1
    - Dst: dictbytype
      Src: /src/cpython/Python/compile.c:640,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/compile.c:641,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:643,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:647,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:649,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:656,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:658,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:661,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:663,1
    - Dst: PySet_New
      Src: /src/cpython/Python/compile.c:671,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:673,1
    - Dst: _PyInstructionSequence_New
      Src: /src/cpython/Python/compile.c:681,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:683,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Python/compile.c:690,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/compile.c:691,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:692,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:696,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/compile.c:702,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:706,1
    - Dst: compiler_set_qualname
      Src: /src/cpython/Python/compile.c:706,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 112
    argCount: 7
    argNames:
    - c
    - name
    - scope_type
    - key
    - lineno
    - private
    - umd
    argTypes:
    - compiler*
    - identifier
    - int
    - void*
    - int
    - PyObject*
    - _PyCompile_CodeUnitMetadata*
    assertStmts:
    - condition: (u->u_scope_type == COMPILE_SCOPE_CLASS || u->u_scope_type == COMPILE_SCOPE_MODULE)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_scope_type == COMPILE_SCOPE_CLASS)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_scope_type == COMPILE_SCOPE_CLASS)
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 709
      start: 573
    functionDepth: 12
    functionLinenumber: 573
    functionLinenumberEnd: 709
    functionName: _PyCompile_EnterScope
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PyCompile_DictAddObj
    - PyMem_Calloc
    - Py_XDECREF
    - _PySymtable_Lookup
    - RETURN_IF_ERROR
    - compiler_unit_free
    - PyList_Append
    - PyCapsule_New
    - Py_XNewRef
    - PySet_New
    - PyDict_GET_SIZE
    - Py_DECREF
    - _Py_ID
    - Py_NewRef
    - dictbytype
    - PyErr_NoMemory
    - _PyInstructionSequence_New
    - compiler_set_qualname
    - list2dict
    - PyDict_New
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyCompile_EnterScope(compiler *c, identifier name, int scope_type,\n
      \                      void *key, int lineno, PyObject *private,\n                      _PyCompile_CodeUnitMetadata
      *umd)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/compile.c:715,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/compile.c:720,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:722,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:724,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:726,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:727,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:728,1
    - Dst: PySequence_DelItem
      Src: /src/cpython/Python/compile.c:730,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/compile.c:731,1
    - Dst: _PyInstructionSequence_AddNested
      Src: /src/cpython/Python/compile.c:735,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/compile.c:736,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:744,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/compile.c:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->u)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 747
      start: 711
    functionDepth: 5
    functionLinenumber: 711
    functionLinenumberEnd: 747
    functionName: _PyCompile_ExitScope
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 11
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyList_GET_ITEM
    - PyErr_GetRaisedException
    - PyList_GET_SIZE
    - PySequence_DelItem
    - PyErr_FormatUnraisable
    - PyCapsule_GetPointer
    - PyErr_SetRaisedException
    - compiler_unit_free
    - assert
    - _PyInstructionSequence_AddNested
    linkageType: ''
    returnType: void
    signature: void _PyCompile_ExitScope(compiler *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/compile.c:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - c
    - loc
    - t
    - block_label
    - exit
    - datum
    argTypes:
    - compiler*
    - location
    - fblocktype
    - jump_target_label
    - jump_target_label
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: _PyCompile_PushFBlock
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 13
    functionsReached:
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: "int _PyCompile_PushFBlock(compiler *c, location loc,\n                     fblocktype
      t, jump_target_label block_label,\n                     jump_target_label exit,
      void *datum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:775,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:777,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:778,1
    - Dst: SAME_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/compile.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - t
    - block_label
    argTypes:
    - compiler*
    - fblocktype
    - jump_target_label
    assertStmts:
    - condition: (u->u_nfblocks > 0)
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/cpython/Python/compile.c
    - condition: (SAME_JUMP_TARGET_LABEL(u->u_fblock[u->u_nfblocks].fb_block, block_label))
      pos:
        line_end: 777
        line_start: 777
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_fblock[u->u_nfblocks].fb_type == t)
      pos:
        line_end: 776
        line_start: 776
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 779
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 779
    functionName: _PyCompile_PopFBlock
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 13
    functionsReached:
    - SAME_JUMP_TARGET_LABEL
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyCompile_PopFBlock(compiler *c, fblocktype t, jump_target_label
      block_label)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 788
    functionName: _PyCompile_TopFBlock
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fblockinfo
    signature: 'fblockinfo *

      _PyCompile_TopFBlock(compiler *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/compile.c:795,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/compile.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - deferred_annotations
    - conditional_annotation_indices
    argTypes:
    - compiler*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 797
    functionName: _PyCompile_DeferredAnnotations
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_XNewRef
    linkageType: ''
    returnType: void
    signature: "void _PyCompile_DeferredAnnotations(compiler *c,\n                               PyObject
      **deferred_annotations,\n                               PyObject **conditional_annotation_indices)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/compile.c:802,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/compile.c:808,1
    - Dst: SRC_LOCATION_FROM_AST
      Src: /src/cpython/Python/compile.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stmts
    argTypes:
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 812
    functionName: start_location
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - SRC_LOCATION_FROM_AST
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: location
    signature: location start_location(asdl_stmt_seq *stmts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:817,1
    - Dst: _PyCodegen_EnterAnonymousScope
      Src: /src/cpython/Python/compile.c:817,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:818,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:822,1
    - Dst: _PyCodegen_Module
      Src: /src/cpython/Python/compile.c:822,1
    - Dst: start_location
      Src: /src/cpython/Python/compile.c:822,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:828,1
    - Dst: _PyCodegen_Module
      Src: /src/cpython/Python/compile.c:828,1
    - Dst: start_location
      Src: /src/cpython/Python/compile.c:828,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:832,1
    - Dst: _PyCodegen_Expression
      Src: /src/cpython/Python/compile.c:832,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/compile.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - c
    - mod
    argTypes:
    - compiler*
    - mod_ty
    assertStmts:
    - condition: (c->u->u_scope_type == COMPILE_SCOPE_MODULE)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 842
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 842
    functionName: compiler_codegen
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyCodegen_EnterAnonymousScope
    - start_location
    - _PyCodegen_Module
    - RETURN_IF_ERROR
    - PyErr_Format
    - _PyCodegen_Expression
    - assert
    linkageType: ''
    returnType: int
    signature: int compiler_codegen(compiler *c, mod_ty mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compiler_codegen
      Src: /src/cpython/Python/compile.c:849,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/compile.c:852,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/compile.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - mod
    argTypes:
    - compiler*
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 844
    functionDepth: 6
    functionLinenumber: 844
    functionLinenumberEnd: 856
    functionName: compiler_mod
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyCompile_OptimizeAndAssemble
    - compiler_codegen
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      compiler_mod(compiler *c, mod_ty mod)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/compile.c:862,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/compile.c:863,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/compile.c:864,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/compile.c:868,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/compile.c:870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 858
    functionDepth: 10
    functionLinenumber: 858
    functionLinenumberEnd: 882
    functionName: _PyCompile_GetRefType
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyErr_Format
    - _PyST_GetScope
    linkageType: ''
    returnType: int
    signature: int _PyCompile_GetRefType(compiler *c, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/compile.c:887,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dict
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 884
    functionDepth: 7
    functionLinenumber: 884
    functionLinenumberEnd: 892
    functionName: dict_lookup_arg
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyLong_AsLong
    linkageType: ''
    returnType: int
    signature: int dict_lookup_arg(PyObject *dict, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:897,1
    - Dst: dict_lookup_arg
      Src: /src/cpython/Python/compile.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - compiler*
    - PyObject*
    assertStmts:
    - condition: (c->u->u_metadata.u_cellvars)
      pos:
        line_end: 896
        line_start: 896
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 8
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: _PyCompile_LookupCellvar
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - dict_lookup_arg
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCompile_LookupCellvar(compiler *c, PyObject *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_GetRefType
      Src: /src/cpython/Python/compile.c:910,1
    - Dst: dict_lookup_arg
      Src: /src/cpython/Python/compile.c:916,1
    - Dst: dict_lookup_arg
      Src: /src/cpython/Python/compile.c:919,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:921,1
    - Dst: _PyCode_GetFreevars
      Src: /src/cpython/Python/compile.c:922,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/compile.c:924,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/compile.c:926,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - c
    - co
    - name
    argTypes:
    - compiler*
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 901
    functionDepth: 11
    functionLinenumber: 901
    functionLinenumberEnd: 938
    functionName: _PyCompile_LookupArg
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyErr_Occurred
    - dict_lookup_arg
    - _PyCode_GetFreevars
    - _PyCompile_GetRefType
    - PyErr_Format
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _PyCompile_LookupArg(compiler *c, PyCodeObject *co, PyObject *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:943,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/compile.c:944,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/compile.c:948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:949,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/compile.c:952,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->u->u_static_attributes)
      pos:
        line_end: 942
        line_start: 942
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 955
      start: 940
    functionDepth: 10
    functionLinenumber: 940
    functionLinenumberEnd: 955
    functionName: _PyCompile_StaticAttributesAsTuple
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyList_Sort
    - PySequence_Tuple
    - PySequence_List
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_StaticAttributesAsTuple(compiler *c)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:964,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:975,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:980,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/compile.c:980,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:985,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:989,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:1001,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1002,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - c
    - mangled
    - scope
    - optype
    - arg
    argTypes:
    - compiler*
    - PyObject*
    - int
    - _PyCompile_optype*
    - Py_ssize_t*
    assertStmts:
    - condition: (scope >= 0)
      pos:
        line_end: 963
        line_start: 963
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1005
      start: 957
    functionDepth: 10
    functionLinenumber: 957
    functionLinenumberEnd: 1005
    functionName: _PyCompile_ResolveNameop
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyCompile_DictAddObj
    - _PyST_IsFunctionLike
    - RETURN_IF_ERROR
    - PyDict_GetItemRef
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyCompile_ResolveNameop(compiler *c, PyObject *mangled, int scope,\n
      \                         _PyCompile_optype *optype, Py_ssize_t *arg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Python/compile.c:1017,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:1018,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1019,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:1019,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1020,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/compile.c:1021,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/compile.c:1023,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1024,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/compile.c:1025,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:1038,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1046,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/compile.c:1049,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1054,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1055,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:1060,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/compile.c:1063,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1066,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1068,1
    - Dst: PySet_New
      Src: /src/cpython/Python/compile.c:1072,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/compile.c:1077,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 46
    argCount: 4
    argNames:
    - c
    - loc
    - entry
    - state
    argTypes:
    - compiler*
    - location
    - PySTEntryObject*
    - _PyCompile_InlinedComprehensionState*
    assertStmts:
    - condition: (symbol >= 0 || PyErr_Occurred())
      pos:
        line_end: 1018
        line_start: 1018
        source_file: /src/cpython/Python/compile.c
    - condition: (orig == NULL || orig == Py_True || orig == Py_False)
      pos:
        line_end: 1065
        line_start: 1065
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1085
      start: 1007
    functionDepth: 11
    functionLinenumber: 1007
    functionLinenumberEnd: 1085
    functionName: _PyCompile_TweakInlinedComprehensionScopes
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyLong_AsLong
    - PyErr_Occurred
    - SYMBOL_TO_SCOPE
    - PySet_Add
    - PyDict_Next
    - _PyST_IsFunctionLike
    - _PyST_GetSymbol
    - PyDict_New
    - RETURN_IF_ERROR
    - PyLong_FromLong
    - PyDict_GetItemRef
    - PySet_New
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyCompile_TweakInlinedComprehensionScopes(compiler *c, location
      loc,\n                                            PySTEntryObject *entry,\n
      \                                           _PyCompile_InlinedComprehensionState
      *state)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Python/compile.c:1095,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1096,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:1100,1
    - Dst: PySet_Size
      Src: /src/cpython/Python/compile.c:1103,1
    - Dst: PySet_Pop
      Src: /src/cpython/Python/compile.c:1104,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1114,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:1116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1087
    functionDepth: 9
    functionLinenumber: 1087
    functionLinenumberEnd: 1119
    functionName: _PyCompile_RevertInlinedComprehensionScopes
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PySet_Pop
    - PyDict_SetItem
    - Py_DECREF
    - PyDict_Next
    - PySet_Size
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int _PyCompile_RevertInlinedComprehensionScopes(compiler *c, location
      loc,\n                                             _PyCompile_InlinedComprehensionState
      *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct _PyCompiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1125
    functionName: _PyCompile_EnterConditionalBlock
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyCompile_EnterConditionalBlock(struct _PyCompiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct _PyCompiler*
    assertStmts:
    - condition: (c->u->u_in_conditional_block > 0)
      pos:
        line_end: 1129
        line_start: 1129
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1132
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1132
    functionName: _PyCompile_LeaveConditionalBlock
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyCompile_LeaveConditionalBlock(struct _PyCompiler *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/compile.c:1139,1
    - Dst: PyList_New
      Src: /src/cpython/Python/compile.c:1145,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/compile.c:1150,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/compile.c:1154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1158,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/compile.c:1161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:1165,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/compile.c:1169,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/compile.c:1174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1175,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - c
    - s
    - conditional_annotation_index
    argTypes:
    - compiler*
    - stmt_ty
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1134
    functionDepth: 4
    functionLinenumber: 1134
    functionLinenumberEnd: 1178
    functionName: _PyCompile_AddDeferredAnnotation
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PyList_Append
    - Py_NewRef
    - RETURN_IF_ERROR
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: "int _PyCompile_AddDeferredAnnotation(compiler *c, stmt_ty s,\n                                 PyObject
      **conditional_annotation_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/compile.c:1187,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/compile.c:1188,1
    - Dst: va_end
      Src: /src/cpython/Python/compile.c:1189,1
    - Dst: _PyErr_RaiseSyntaxError
      Src: /src/cpython/Python/compile.c:1193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - c
    - loc
    - format
    argTypes:
    - compiler*
    - location
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1183
    functionDepth: 9
    functionLinenumber: 1183
    functionLinenumberEnd: 1197
    functionName: _PyCompile_Error
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 21
    functionsReached:
    - Py_DECREF
    - _PyErr_RaiseSyntaxError
    - va_start
    - PyUnicode_FromFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyCompile_Error(compiler *c, location loc, const char *format,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/compile.c:1207,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/compile.c:1208,1
    - Dst: va_end
      Src: /src/cpython/Python/compile.c:1209,1
    - Dst: _PyErr_EmitSyntaxWarning
      Src: /src/cpython/Python/compile.c:1213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - c
    - loc
    - format
    argTypes:
    - compiler*
    - location
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1203
    functionDepth: 9
    functionLinenumber: 1203
    functionLinenumberEnd: 1217
    functionName: _PyCompile_Warn
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - va_start
    - _PyErr_EmitSyntaxWarning
    - PyUnicode_FromFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyCompile_Warn(compiler *c, location loc, const char *format,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Mangle
      Src: /src/cpython/Python/compile.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1219
    functionDepth: 11
    functionLinenumber: 1219
    functionLinenumberEnd: 1223
    functionName: _PyCompile_Mangle
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _Py_Mangle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_Mangle(compiler *c, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_MaybeMangle
      Src: /src/cpython/Python/compile.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1225
    functionDepth: 9
    functionLinenumber: 1225
    functionLinenumberEnd: 1229
    functionName: _PyCompile_MaybeMangle
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 5
    functionsReached:
    - _Py_MaybeMangle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_MaybeMangle(compiler *c, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1235
    functionName: _PyCompile_InstrSequence
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: instr_sequence
    signature: 'instr_sequence *

      _PyCompile_InstrSequence(compiler *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_New
      Src: /src/cpython/Python/compile.c:1240,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct _PyCompiler*
    assertStmts:
    - condition: (c->u->u_stashed_instr_sequence == NULL)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1248
      start: 1237
    functionDepth: 3
    functionLinenumber: 1237
    functionLinenumberEnd: 1248
    functionName: _PyCompile_StartAnnotationSetup
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PyInstructionSequence_New
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCompile_StartAnnotationSetup(struct _PyCompiler *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1253,1
    - Dst: _PyInstructionSequence_SetAnnotationsCode
      Src: /src/cpython/Python/compile.c:1258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct _PyCompiler*
    assertStmts:
    - condition: (c->u->u_stashed_instr_sequence != NULL)
      pos:
        line_end: 1252
        line_start: 1252
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1263
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1263
    functionName: _PyCompile_EndAnnotationSetup
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PyInstructionSequence_SetAnnotationsCode
    - Py_DECREF
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCompile_EndAnnotationSetup(struct _PyCompiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1270
    functionName: _PyCompile_FutureFeatures
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyCompile_FutureFeatures(compiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1276
    functionName: _PyCompile_Symtable
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      _PyCompile_Symtable(compiler *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1282
    functionName: _PyCompile_SymtableEntry
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PySTEntryObject
    signature: 'PySTEntryObject *

      _PyCompile_SymtableEntry(compiler *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1288
    functionName: _PyCompile_OptimizationLevel
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyCompile_OptimizationLevel(compiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1293,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1294,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/compile.c:1294,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:1295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->c_stack != NULL)
      pos:
        line_end: 1292
        line_start: 1292
        source_file: /src/cpython/Python/compile.c
    - condition: (PyList_CheckExact(c->c_stack))
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1297
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1297
    functionName: _PyCompile_IsInteractiveTopLevel
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyList_GET_SIZE
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCompile_IsInteractiveTopLevel(compiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1303
    functionName: _PyCompile_ScopeType
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyCompile_ScopeType(compiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1309
    functionName: _PyCompile_IsInInlinedComp
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyCompile_IsInInlinedComp(compiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->u->u_metadata.u_qualname)
      pos:
        line_end: 1313
        line_start: 1313
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1316
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1316
    functionName: _PyCompile_Qualname
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_Qualname(compiler *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1322
    functionName: _PyCompile_Metadata
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyCompile_CodeUnitMetadata
    signature: '_PyCompile_CodeUnitMetadata *

      _PyCompile_Metadata(compiler *c)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: const_cache_insert
      Src: /src/cpython/Python/compile.c:1328,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:1332,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:1333,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/compile.c:1334,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:1334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1335,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/compile.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - const_cache
    - obj
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1325
    functionDepth: 13
    functionLinenumber: 1325
    functionLinenumberEnd: 1341
    functionName: _PyCompile_ConstCacheMergeOne
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SETREF
    - Py_NewRef
    - PyTuple_GET_ITEM
    - const_cache_insert
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int _PyCompile_ConstCacheMergeOne(PyObject *const_cache, PyObject **obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/compile.c:1347,1
    - Dst: PyList_New
      Src: /src/cpython/Python/compile.c:1349,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/compile.c:1352,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1353,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/compile.c:1353,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:1354,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:1358,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:1359,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1361,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1362,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/compile.c:1363,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:1363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_CheckExact(v))
      pos:
        line_end: 1352
        line_start: 1352
        source_file: /src/cpython/Python/compile.c
    - condition: (i < size)
      pos:
        line_end: 1360
        line_start: 1360
        source_file: /src/cpython/Python/compile.c
    - condition: (i >= 0)
      pos:
        line_end: 1361
        line_start: 1361
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1366
      start: 1343
    functionDepth: 4
    functionLinenumber: 1343
    functionLinenumberEnd: 1366
    functionName: consts_dict_keys_inorder
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyDict_GET_SIZE
    - PyLong_AsLong
    - PyList_SET_ITEM
    - PyDict_Next
    - Py_NewRef
    - PyLong_CheckExact
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      consts_dict_keys_inorder(PyObject *dict)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:1373,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1399
    functionName: compute_code_flags
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyST_IsFunctionLike
    linkageType: ''
    returnType: int
    signature: int compute_code_flags(compiler *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/compile.c:1407,1
    - Dst: consts_dict_keys_inorder
      Src: /src/cpython/Python/compile.c:1410,1
    - Dst: _PyCfg_FromInstructionSequence
      Src: /src/cpython/Python/compile.c:1414,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/compile.c:1418,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:1419,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1420,1
    - Dst: _PyCfg_OptimizeCodeUnit
      Src: /src/cpython/Python/compile.c:1422,1
    - Dst: _PyCfg_OptimizedCfgToInstructionSequence
      Src: /src/cpython/Python/compile.c:1429,1
    - Dst: _PyAssemble_MakeCodeObject
      Src: /src/cpython/Python/compile.c:1436,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1441,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/compile.c:1442,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/compile.c:1443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - u
    - const_cache
    - code_flags
    - filename
    argTypes:
    - struct compiler_unit*
    - PyObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (u->u_metadata.u_firstlineno)
      pos:
        line_end: 1419
        line_start: 1419
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1445
      start: 1401
    functionDepth: 5
    functionLinenumber: 1401
    functionLinenumberEnd: 1445
    functionName: optimize_and_assemble_code_unit
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_GET_SIZE
    - _PyCfg_OptimizedCfgToInstructionSequence
    - PyList_GET_SIZE
    - _PyCfg_OptimizeCodeUnit
    - memset
    - _PyAssemble_MakeCodeObject
    - _PyCfgBuilder_Free
    - _PyCfg_FromInstructionSequence
    - consts_dict_keys_inorder
    - PyInstructionSequence_Fini
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\noptimize_and_assemble_code_unit(struct compiler_unit
      *u, PyObject *const_cache,\n                                int code_flags,
      PyObject *filename)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compute_code_flags
      Src: /src/cpython/Python/compile.c:1455,1
    - Dst: _PyCodegen_AddReturnAtEnd
      Src: /src/cpython/Python/compile.c:1460,1
    - Dst: optimize_and_assemble_code_unit
      Src: /src/cpython/Python/compile.c:1464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - addNone
    argTypes:
    - compiler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1448
    functionDepth: 6
    functionLinenumber: 1448
    functionLinenumberEnd: 1465
    functionName: _PyCompile_OptimizeAndAssemble
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 11
    functionsReached:
    - optimize_and_assemble_code_unit
    - _PyCodegen_AddReturnAtEnd
    - compute_code_flags
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _PyCompile_OptimizeAndAssemble(compiler *c, int addNone)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1471,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:1471,1
    - Dst: new_compiler
      Src: /src/cpython/Python/compile.c:1472,1
    - Dst: compiler_mod
      Src: /src/cpython/Python/compile.c:1477,1
    - Dst: compiler_free
      Src: /src/cpython/Python/compile.c:1478,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1479,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:1479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - mod
    - filename
    - pflags
    - optimize
    - arena
    argTypes:
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/cpython/Python/compile.c
    - condition: (co || PyErr_Occurred())
      pos:
        line_end: 1478
        line_start: 1478
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1481
      start: 1467
    functionDepth: 15
    functionLinenumber: 1467
    functionLinenumberEnd: 1481
    functionName: _PyAST_Compile
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - compiler_mod
    - compiler_free
    - new_compiler
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\n_PyAST_Compile(mod_ty mod, PyObject *filename, PyCompilerFlags
      *pflags,\n               int optimize, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFuture_FromAST
      Src: /src/cpython/Python/compile.c:1488,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/compile.c:1493,1
    - Dst: _PyAST_Preprocess
      Src: /src/cpython/Python/compile.c:1495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - mod
    - filename
    - cf
    - optimize
    - arena
    - no_const_folding
    argTypes:
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1499
    functionName: _PyCompile_AstPreprocess
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyAST_Preprocess
    - _PyFuture_FromAST
    - _Py_GetConfig
    linkageType: ''
    returnType: int
    signature: "int _PyCompile_AstPreprocess(mod_ty mod, PyObject *filename, PyCompilerFlags
      *cf,\n                         int optimize, PyArena *arena, int no_const_folding)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/compile.c:1508,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/compile.c:1514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1516,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/compile.c:1532,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/compile.c:1553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1555,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/compile.c:1556,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1573,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1585,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/compile.c:1586,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/compile.c:1587,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 1
    argNames:
    - doc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (*p == '\n' || *p == '\0')
      pos:
        line_end: 1572
        line_start: 1572
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1589
      start: 1505
    functionDepth: 5
    functionLinenumber: 1505
    functionLinenumberEnd: 1589
    functionName: _PyCompile_CleanDoc
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 3
    functionsReached:
    - Py_MIN
    - PyUnicode_FromStringAndSize
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - PyObject_CallMethod
    - PyMem_Free
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_CleanDoc(PyObject *doc)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyAST_Check
      Src: /src/cpython/Python/compile.c:1604,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/compile.c:1605,1
    - Dst: _PyArena_New
      Src: /src/cpython/Python/compile.c:1609,1
    - Dst: PyAST_obj2mod
      Src: /src/cpython/Python/compile.c:1614,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Python/compile.c:1615,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/compile.c:1616,1
    - Dst: new_compiler
      Src: /src/cpython/Python/compile.c:1620,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/compile.c:1622,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:1627,1
    - Dst: compiler_codegen
      Src: /src/cpython/Python/compile.c:1632,1
    - Dst: SET_METADATA_INT
      Src: /src/cpython/Python/compile.c:1646,1
    - Dst: SET_METADATA_INT
      Src: /src/cpython/Python/compile.c:1647,1
    - Dst: SET_METADATA_INT
      Src: /src/cpython/Python/compile.c:1648,1
    - Dst: _PyCodegen_AddReturnAtEnd
      Src: /src/cpython/Python/compile.c:1652,1
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/compile.c:1656,1
    - Dst: _PyCompile_InstrSequence
      Src: /src/cpython/Python/compile.c:1656,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/compile.c:1660,1
    - Dst: _PyCompile_InstrSequence
      Src: /src/cpython/Python/compile.c:1660,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1663,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/compile.c:1664,1
    - Dst: compiler_free
      Src: /src/cpython/Python/compile.c:1665,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/compile.c:1666,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - ast
    - filename
    - pflags
    - optimize
    - compile_mode
    argTypes:
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1597
    functionDepth: 15
    functionLinenumber: 1597
    functionLinenumberEnd: 1668
    functionName: _PyCompile_CodeGen
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - compiler_free
    - _PyInstructionSequence_ApplyLabelMap
    - SET_METADATA_INT
    - new_compiler
    - _PyArena_New
    - _PyCompile_InstrSequence
    - PyErr_SetString
    - compiler_codegen
    - _PyArena_Free
    - _PyAST_Validate
    - PyDict_New
    - PyAST_Check
    - PyAST_obj2mod
    - _PyCodegen_AddReturnAtEnd
    - PyTuple_Pack
    - _PyCompile_ExitScope
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCompile_CodeGen(PyObject *ast, PyObject *filename,
      PyCompilerFlags *pflags,\n                   int optimize, int compile_mode)"
  - 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: 1645
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1645
    functionName: SET_METADATA_INT
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_METADATA_INT(key, value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_Check
      Src: /src/cpython/Python/compile.c:1676,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/compile.c:1677,1
    - Dst: memset
      Src: /src/cpython/Python/compile.c:1683,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:1685,1
    - Dst: _PyCfg_FromInstructionSequence
      Src: /src/cpython/Python/compile.c:1690,1
    - Dst: _PyCfg_JumpLabelsToTargets
      Src: /src/cpython/Python/compile.c:1695,1
    - Dst: _PyCfg_OptimizedCfgToInstructionSequence
      Src: /src/cpython/Python/compile.c:1701,1
    - Dst: consts_dict_keys_inorder
      Src: /src/cpython/Python/compile.c:1707,1
    - Dst: _PyAssemble_MakeCodeObject
      Src: /src/cpython/Python/compile.c:1711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1717,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/compile.c:1718,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/compile.c:1719,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - umd
    - filename
    - seq
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1672
    functionDepth: 10
    functionLinenumber: 1672
    functionLinenumberEnd: 1721
    functionName: _PyCompile_Assemble
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyCfg_OptimizedCfgToInstructionSequence
    - _PyCfg_JumpLabelsToTargets
    - PyErr_SetString
    - memset
    - _PyInstructionSequence_Check
    - _PyAssemble_MakeCodeObject
    - _PyCfgBuilder_Free
    - PyDict_New
    - _PyCfg_FromInstructionSequence
    - consts_dict_keys_inorder
    - PyInstructionSequence_Fini
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\n_PyCompile_Assemble(_PyCompile_CodeUnitMetadata *umd,
      PyObject *filename,\n                    PyObject *seq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - code
    - Py_UNUSED(consts)
    - Py_UNUSED(names)
    - Py_UNUSED(lnotab_obj)
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1726
    functionDepth: 0
    functionLinenumber: 1726
    functionLinenumberEnd: 1731
    functionName: PyCode_Optimize
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCode_Optimize(PyObject *code, PyObject* Py_UNUSED(consts),\n
      \               PyObject *Py_UNUSED(names), PyObject *Py_UNUSED(lnotab_obj))"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/dynload_hpux.c:23,1
    - Dst: printf
      Src: /src/cpython/Python/dynload_hpux.c:27,1
    - Dst: shl_load
      Src: /src/cpython/Python/dynload_hpux.c:30,1
    - Dst: perror
      Src: /src/cpython/Python/dynload_hpux.c:34,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_hpux.c:37,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/dynload_hpux.c:39,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/dynload_hpux.c:42,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_hpux.c:44,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/dynload_hpux.c:47,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_hpux.c:49,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_hpux.c:50,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/dynload_hpux.c:53,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_hpux.c:54,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_hpux.c:55,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_hpux.c:56,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_hpux.c:61,1
    - Dst: printf
      Src: /src/cpython/Python/dynload_hpux.c:64,1
    - Dst: shl_findsym
      Src: /src/cpython/Python/dynload_hpux.c:68,1
    - Dst: shl_unload
      Src: /src/cpython/Python/dynload_hpux.c:69,1
    - Dst: perror
      Src: /src/cpython/Python/dynload_hpux.c:73,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 76
    functionName: _PyImport_FindSharedFuncptr
    functionSourceFile: /src/cpython/Python/dynload_hpux.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - shl_load
    - _Py_GetConfig
    - PyOS_snprintf
    - printf
    - perror
    - PyErr_SetImportError
    - shl_unload
    - shl_findsym
    - PyUnicode_FromString
    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:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: sym_set_null
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_null(SYM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: sym_set_non_null
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_non_null(SYM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: sym_set_type
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_type(SYM, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - VERSION
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: sym_set_type_version
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_type_version(SYM, VERSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - CNST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: sym_set_const
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_const(SYM, CNST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: sym_set_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_compact_int(SYM)
  - BBCount: 103
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:80,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:81,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:83,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:88,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:89,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:92,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:93,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:93,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:96,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:97,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:98,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:99,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:102,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:103,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:106,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:107,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:110,1
    - Dst: sym_is_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:111,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:112,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:115,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:116,1
    - Dst: sym_set_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:118,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:122,1
    - Dst: sym_is_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:123,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:124,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:127,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:128,1
    - Dst: sym_set_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:130,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:134,1
    - Dst: _PyType_LookupByVersion
      Src: /src/cpython/Python/optimizer_bytecodes.c:135,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:137,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:138,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:141,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:146,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:147,1
    - Dst: sym_matches_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:148,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:149,1
    - Dst: _PyType_LookupByVersion
      Src: /src/cpython/Python/optimizer_bytecodes.c:152,1
    - Dst: sym_set_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:160,1
    - Dst: PyType_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:161,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:162,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:169,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:170,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:171,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:173,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:176,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:177,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:178,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:180,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:183,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:184,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:185,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:186,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:187,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:188,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:191,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:208,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:212,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:214,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:216,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/optimizer_bytecodes.c:218,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:218,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:220,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:224,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:228,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:231,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:234,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:238,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:239,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:240,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:243,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:244,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:245,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:248,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:249,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:250,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:253,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:254,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:255,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:257,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:257,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:258,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:262,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:263,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:264,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:266,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:266,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:267,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:271,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:272,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:273,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:275,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:275,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:276,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:280,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:281,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:282,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:285,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:287,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:287,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:288,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:288,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:288,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:289,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:289,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:289,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/optimizer_bytecodes.c:290,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:290,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:290,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_bytecodes.c:295,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:298,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:301,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:304,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:309,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:310,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:313,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:314,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:314,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:315,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:316,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:316,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:316,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/optimizer_bytecodes.c:317,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:317,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:318,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:319,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:322,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:325,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:326,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:330,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:334,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:335,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:337,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:341,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:342,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:344,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:345,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:349,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:350,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:352,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:353,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:357,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:358,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:360,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:364,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:365,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:367,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:368,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:372,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:373,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:374,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:376,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:379,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:380,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:381,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:383,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:386,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:387,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:389,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:393,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:394,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:395,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:396,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:399,1
    - Dst: sym_is_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:400,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:401,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:404,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:406,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:409,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:414,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:415,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:416,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:419,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:423,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:425,1
    - Dst: _Py_uop_sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:428,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:432,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:433,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:434,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:437,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:438,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:439,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:442,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:443,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:444,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:447,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:448,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:451,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:452,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:455,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:456,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:459,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:460,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:463,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:464,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:465,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:466,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:466,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:469,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_bytecodes.c:470,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:471,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:472,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:472,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:473,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:474,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:474,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:477,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:478,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:481,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:482,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:482,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:485,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:486,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:489,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:490,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:490,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:493,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:494,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:494,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:497,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:498,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:498,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:501,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:502,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:502,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:505,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:506,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:507,1
    - Dst: sym_is_immortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:508,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:508,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:509,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:510,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:513,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:516,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:519,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:523,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:524,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:528,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:532,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:535,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:536,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:540,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:544,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:545,1
    - Dst: PyModule_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:546,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_bytecodes.c:548,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:550,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:551,1
    - Dst: convert_global_to_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:552,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:554,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:557,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_bytecodes.c:563,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:565,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:569,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:571,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:572,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:575,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:579,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:581,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:583,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:587,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:588,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:592,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:593,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:597,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:599,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:600,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:601,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:606,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:608,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:609,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:610,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:615,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:617,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:618,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:619,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:624,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:626,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:627,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:628,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:634,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:636,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:637,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:638,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:644,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:646,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:647,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:648,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:654,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:660,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:661,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:662,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:665,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:666,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:666,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:667,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:667,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:667,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:668,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:669,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:671,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:674,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:675,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:675,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:676,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:677,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:677,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:678,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:681,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:684,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:685,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:685,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:686,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:687,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:687,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:688,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:690,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:691,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:697,1
    - Dst: sym_set_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:698,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:699,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:702,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:706,1
    - Dst: get_code_with_logging
      Src: /src/cpython/Python/optimizer_bytecodes.c:707,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:714,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_bytecodes.c:714,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:715,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:716,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:722,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:722,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:723,1
    - Dst: frame_new
      Src: /src/cpython/Python/optimizer_bytecodes.c:723,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:725,1
    - Dst: frame_new
      Src: /src/cpython/Python/optimizer_bytecodes.c:725,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:729,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:731,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:732,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:735,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:737,1
    - Dst: get_code_with_logging
      Src: /src/cpython/Python/optimizer_bytecodes.c:738,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:744,1
    - Dst: frame_new
      Src: /src/cpython/Python/optimizer_bytecodes.c:744,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:747,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:752,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:755,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:756,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:759,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:764,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:767,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:767,1
    - Dst: DEAD
      Src: /src/cpython/Python/optimizer_bytecodes.c:768,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/optimizer_bytecodes.c:769,1
    - Dst: frame_pop
      Src: /src/cpython/Python/optimizer_bytecodes.c:771,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:775,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:776,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:778,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:779,1
    - Dst: get_code
      Src: /src/cpython/Python/optimizer_bytecodes.c:782,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/optimizer_bytecodes.c:787,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:791,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/optimizer_bytecodes.c:792,1
    - Dst: frame_pop
      Src: /src/cpython/Python/optimizer_bytecodes.c:794,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:796,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:799,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:800,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:802,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:803,1
    - Dst: get_code
      Src: /src/cpython/Python/optimizer_bytecodes.c:806,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:813,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:814,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:817,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:818,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:818,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:820,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:823,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:824,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:828,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:834,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:840,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:841,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:845,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_bytecodes.c:849,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:852,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/optimizer_bytecodes.c:853,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:855,1
    - Dst: get_code
      Src: /src/cpython/Python/optimizer_bytecodes.c:858,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:867,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:885,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:889,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:893,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:898,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:902,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:903,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:904,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:906,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:909,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:910,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:913,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:914,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:916,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:917,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:921,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:925,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:926,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:931,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:935,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:938,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:939,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:940,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:941,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/optimizer_bytecodes.c:947,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:950,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:951,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:955,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:956,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:957,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:958,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:959,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:961,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:964,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:965,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:966,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:967,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:968,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:970,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:973,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:974,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:975,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:976,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:977,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/optimizer_bytecodes.c:977,1
    - Dst: sym_has_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:979,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:980,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:980,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:981,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:983,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:986,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:987,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:988,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:989,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:990,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/optimizer_bytecodes.c:990,1
    - Dst: sym_has_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:992,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:993,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:993,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:994,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:998,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:1001,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1002,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1006,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1007,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1011,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1012,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1013,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1016,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1020,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1025,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1026,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1027,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1030,1
    - Dst: sym_new_tuple
      Src: /src/cpython/Python/optimizer_bytecodes.c:1031,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1034,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1035,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1038,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1039,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1042,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1043,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1046,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1047,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1050,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1051,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1054,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:1055,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:1056,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1059,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:1061,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1065,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1066,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1071,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1075,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1076,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1077,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1079,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1082,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1083,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1084,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1086,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1089,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1090,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1091,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1093,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1096,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1097,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1098,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1100,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1103,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1104,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1105,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1107,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1110,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1111,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1112,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1114,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1117,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1118,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1119,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1121,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1125,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1126,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1127,1
    - Dst: sym_set_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1129,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1132,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1133,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1134,1
    - Dst: sym_set_non_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1136,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1139,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1140,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1141,1
    - Dst: sym_set_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1143,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1146,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1147,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1148,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1150,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1153,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1154,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1155,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1157,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1160,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1161,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1162,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1164,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1167,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1168,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:1169,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_bytecodes.c:1171,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:1175,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1176,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_bytecodes.c:1180,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1184,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:1185,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1187,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1190,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_bytecodes.c:1191,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:1195,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1196,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_bytecodes.c:1199,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1203,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:1204,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1205,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1206,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1208,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1211,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:1212,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1213,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1214,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1216,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1219,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:1220,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1221,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1222,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1224,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1227,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1229,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1234,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1237,1
    CyclomaticComplexity: 137
    EdgeCount: 137
    ICount: 854
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (corresponding_check_stack == NULL)
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: ((this_instr + 2)->opcode == _PUSH_FRAME)
      pos:
        line_end: 705
        line_start: 705
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (framesize > 0)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (corresponding_check_stack == NULL)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyUnicode_CheckExact(sym_get_const(ctx, left)))
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyLong_CheckExact(sym_get_const(ctx, sub_st)))
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!sym_matches_type(val, &_PyNone_Type))
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (framesize <= curr_space)
      pos:
        line_end: 802
        line_start: 802
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (args != NULL)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (framesize > 0)
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (_Py_IsImmortal(val))
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (framesize > 0)
      pos:
        line_end: 777
        line_start: 777
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (tuple_length >= 0)
      pos:
        line_end: 1189
        line_start: 1189
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (corresponding_check_stack == NULL)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 975
        line_start: 975
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (oparg > 0)
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (co != NULL)
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyUnicode_CheckExact(sym_get_const(ctx, right)))
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (sym_matches_type(tuple_st, &PyTuple_Type))
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (type_version)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (framesize <= curr_space)
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (oparg >= 2)
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (co != NULL)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!sym_matches_type(val, &_PyNone_Type))
      pos:
        line_end: 979
        line_start: 979
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (val)
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (index >= 0)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!PyJitRef_IsNull(self_or_null))
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: ((this_instr + 2)->opcode == _PUSH_FRAME)
      pos:
        line_end: 736
        line_start: 736
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyMethod_Check(method))
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (index < tuple_length)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyFunction_Check(sym_get_const(ctx, callable)))
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (sym_matches_type(callable, &PyFunction_Type))
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    constantsTouched: []
    func_position:
      end: 1243
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 1243
    functionName: dummy_func
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached:
    - PyModule_CheckExact
    - PyJitRef_Borrow
    - _PyLong_IsNegative
    - sym_tuple_getitem
    - get_mutations
    - PyJitRef_IsNull
    - PyUnicode_Concat
    - PyFunction_Check
    - optimize_to_bool
    - REPLACE_OP
    - sym_new_compact_int
    - RELOAD_STACK
    - _Py_uop_sym_new_not_null
    - sym_set_const
    - Py_IsNone
    - PyLong_CheckExact
    - PyLong_FromLong
    - sym_set_compact_int
    - sym_matches_type_version
    - _PyType_LookupByVersion
    - frame_pop
    - _Py_IsImmortal
    - sym_is_null
    - sym_has_type
    - sym_matches_type
    - eliminate_pop_guard
    - PyLong_AsLong
    - sym_new_tuple
    - sym_is_compact_int
    - sym_get_type
    - sym_tuple_length
    - PyJitRef_IsBorrowed
    - convert_global_to_const
    - get_code_with_logging
    - PyTuple_GET_ITEM
    - sym_new_null
    - DEAD
    - sym_new_truthiness
    - sym_is_not_null
    - SAVE_STACK
    - SYNC_SP
    - PyMethod_Check
    - sym_set_non_null
    - Py_DECREF
    - PyType_IsSubtype
    - _Py_BloomFilter_Add
    - sym_set_type
    - PyUnicode_CheckExact
    - op
    - GETLOCAL
    - sym_new_not_null
    - lookup_attr
    - get_code
    - sym_get_const
    - sym_new_const
    - Py_UNREACHABLE
    - sym_new_unknown
    - sym_new_type
    - PyType_Watch
    - frame_new
    - sym_set_type_version
    - _PyInterpreterState_GET
    - PyJitRef_Wrap
    - REPLACE_OPCODE_IF_EVALUATES_PURE
    - sym_is_immortal
    - sym_is_const
    - sym_set_null
    - PyDict_Watch
    - assert
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: int
    signature: int dummy_func(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Python/frozenmain.c:23,1
    - Dst: PyConfig_SetBytesArgv
      Src: /src/cpython/Python/frozenmain.c:29,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Python/frozenmain.c:30,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/frozenmain.c:31,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Python/frozenmain.c:32,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/frozenmain.c:37,1
    - Dst: PyInitFrozenExtensions
      Src: /src/cpython/Python/frozenmain.c:42,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Python/frozenmain.c:45,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/frozenmain.c:46,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Python/frozenmain.c:47,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Python/frozenmain.c:48,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/frozenmain.c:51,1
    - Dst: _PyInterpreterState_SetRunningMain
      Src: /src/cpython/Python/frozenmain.c:52,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/frozenmain.c:53,1
    - Dst: exit
      Src: /src/cpython/Python/frozenmain.c:54,1
    - Dst: PyWinFreeze_ExeInit
      Src: /src/cpython/Python/frozenmain.c:58,1
    - Dst: PyConfig_GetInt
      Src: /src/cpython/Python/frozenmain.c:62,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/frozenmain.c:64,1
    - Dst: fprintf
      Src: /src/cpython/Python/frozenmain.c:67,1
    - Dst: Py_GetVersion
      Src: /src/cpython/Python/frozenmain.c:68,1
    - Dst: Py_GetCopyright
      Src: /src/cpython/Python/frozenmain.c:68,1
    - Dst: PyImport_ImportFrozenModule
      Src: /src/cpython/Python/frozenmain.c:72,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/frozenmain.c:74,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/frozenmain.c:77,1
    - Dst: isatty
      Src: /src/cpython/Python/frozenmain.c:84,1
    - Dst: fileno
      Src: /src/cpython/Python/frozenmain.c:84,1
    - Dst: PyRun_AnyFile
      Src: /src/cpython/Python/frozenmain.c:85,1
    - Dst: PyWinFreeze_ExeTerm
      Src: /src/cpython/Python/frozenmain.c:89,1
    - Dst: _PyInterpreterState_SetNotRunningMain
      Src: /src/cpython/Python/frozenmain.c:92,1
    - Dst: Py_FinalizeEx
      Src: /src/cpython/Python/frozenmain.c:94,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 98
    functionName: Py_FrozenMain
    functionSourceFile: /src/cpython/Python/frozenmain.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - PyConfig_Clear
    - Py_FinalizeEx
    - PyInitFrozenExtensions
    - Py_GetCopyright
    - Py_FatalError
    - PyStatus_Exception
    - isatty
    - fprintf
    - PyErr_Clear
    - PyWinFreeze_ExeTerm
    - Py_GetVersion
    - PyConfig_GetInt
    - PyRun_AnyFile
    - PyConfig_InitPythonConfig
    - _PyInterpreterState_SetRunningMain
    - Py_ExitStatusException
    - PyErr_Print
    - Py_GETENV
    - _PyInterpreterState_SetNotRunningMain
    - PyWinFreeze_ExeInit
    - PyConfig_SetBytesArgv
    - exit
    - PyImport_ImportFrozenModule
    - fileno
    - Py_InitializeFromConfig
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: DWORD_AT
    functionSourceFile: /src/cpython/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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: WORD_AT
    functionSourceFile: /src/cpython/Python/dynload_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD_AT(mem)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileNameW
      Src: /src/cpython/Python/dynload_win.c:170,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/dynload_win.c:171,1
    - Dst: wcscpy
      Src: /src/cpython/Python/dynload_win.c:173,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:174,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:183,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dynload_win.c:190,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/dynload_win.c:191,1
    - Dst: assert
      Src: /src/cpython/Python/dynload_win.c:192,1
    - Dst: wcscpy_s
      Src: /src/cpython/Python/dynload_win.c:194,1
    - Dst: _Py_add_relfile
      Src: /src/cpython/Python/dynload_win.c:195,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (config->prefix)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Python/dynload_win.c
    constantsTouched: []
    func_position:
      end: 201
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 201
    functionName: _Py_CheckPython3
    functionSourceFile: /src/cpython/Python/dynload_win.c
    functionUses: 0
    functionsReached:
    - GetModuleFileNameW
    - _Py_add_relfile
    - wcsrchr
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetConfig
    - LoadLibraryExW
    - wcscpy_s
    - wcscpy
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_CheckPython3(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CheckPython3
      Src: /src/cpython/Python/dynload_win.c:212,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/dynload_win.c:215,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_win.c:219,1
    - Dst: SetErrorMode
      Src: /src/cpython/Python/dynload_win.c:227,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:235,1
    - Dst: SetErrorMode
      Src: /src/cpython/Python/dynload_win.c:243,1
    - Dst: GetLastError
      Src: /src/cpython/Python/dynload_win.c:255,1
    - Dst: FormatMessageW
      Src: /src/cpython/Python/dynload_win.c:257,1
    - Dst: MAKELANGID
      Src: /src/cpython/Python/dynload_win.c:262,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/dynload_win.c:272,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/dynload_win.c:284,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Python/dynload_win.c:287,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/dynload_win.c:288,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/dynload_win.c:293,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/dynload_win.c:294,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/dynload_win.c:295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_win.c:296,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_win.c:302,1
    - Dst: GetPythonImport
      Src: /src/cpython/Python/dynload_win.c:309,1
    - Dst: _stricmp
      Src: /src/cpython/Python/dynload_win.c:312,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/dynload_win.c:313,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/dynload_win.c:324,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - PyObject*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 204
    functionDepth: 10
    functionLinenumber: 204
    functionLinenumberEnd: 329
    functionName: _PyImport_FindSharedFuncptrWindows
    functionSourceFile: /src/cpython/Python/dynload_win.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyUnicode_AppendAndDel
    - FormatMessageW
    - GetLastError
    - LoadLibraryExW
    - SetErrorMode
    - PyUnicode_AsWideCharString
    - PyUnicode_FromFormat
    - _stricmp
    - PyOS_snprintf
    - PyErr_SetImportError
    - PyErr_Format
    - Py_DECREF
    - PyUnicode_FromWideChar
    - _Py_CheckPython3
    - GetPythonImport
    - GetProcAddress
    - MAKELANGID
    - PyUnicode_FromString
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix,\n
      \                                             const char *shortname,\n                                              PyObject
      *pathname, FILE *fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: is_interpreter_isolated
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: bool
    signature: bool is_interpreter_isolated(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: MODULES
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULES(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: MODULES_BY_INDEX
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULES_BY_INDEX(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: IMPORTLIB
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPORTLIB(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: OVERRIDE_FROZEN_MODULES
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVERRIDE_FROZEN_MODULES(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: DLOPENFLAGS
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DLOPENFLAGS(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: IMPORT_FUNC
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPORT_FUNC(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: IMPORT_LOCK
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPORT_LOCK(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: FIND_AND_LOAD
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIND_AND_LOAD(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: _IMPORT_TIME_HEADER
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _IMPORT_TIME_HEADER(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Python/import.c:127,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: _PyImport_AcquireLock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyRecursiveMutex_Lock
    - IMPORT_LOCK
    linkageType: ''
    returnType: void
    signature: void _PyImport_AcquireLock(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Python/import.c:133,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: _PyImport_ReleaseLock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - _PyRecursiveMutex_Unlock
    - IMPORT_LOCK
    linkageType: ''
    returnType: void
    signature: void _PyImport_ReleaseLock(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:140,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/import.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: _PyImport_ReInitLock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyThread_get_thread_ident_ex
    - IMPORT_LOCK
    linkageType: ''
    returnType: void
    signature: void _PyImport_ReInitLock(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:151,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:151,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:152,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/import.c:152,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:153,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (MODULES(interp) == NULL)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 10
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: _PyImport_InitModules
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - MODULES
    - PyDict_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_InitModules(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: _PyImport_GetModules
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - MODULES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_GetModules(PyInterpreterState *interp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_AcquireLock
      Src: /src/cpython/Python/import.c:168,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:169,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:174,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: _PyImport_GetModulesRef
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - MODULES
    - _PyImport_AcquireLock
    - _PyImport_ReleaseLock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_GetModulesRef(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SETREF
      Src: /src/cpython/Python/import.c:182,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: _PyImport_ClearModules
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - MODULES
    linkageType: ''
    returnType: void
    signature: void _PyImport_ClearModules(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:193,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:196,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - fatal
    argTypes:
    - PyThreadState*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: get_modules_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetString
    - MODULES
    - Py_FatalError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_modules_dict(PyThreadState *tstate, bool fatal)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:208,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: PyImport_GetModuleDict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - get_modules_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetModuleDict(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:215,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:216,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - m
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: _PyImport_SetModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - PyObject_SetItem
    - get_modules_dict
    linkageType: ''
    returnType: int
    signature: int _PyImport_SetModule(PyObject *name, PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:223,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:224,1
    - Dst: PyMapping_SetItemString
      Src: /src/cpython/Python/import.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - m
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: _PyImport_SetModuleString
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyMapping_SetItemString
    - get_modules_dict
    linkageType: ''
    returnType: int
    signature: int _PyImport_SetModuleString(const char *name, PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:231,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:237,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/import.c:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 9
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: import_get_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - get_modules_dict
    - PyMapping_GetOptionalItem
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_get_module(PyThreadState *tstate, PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/import.c:253,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:253,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Python/import.c:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:256,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/import.c:266,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:267,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:271,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:277,1
    - Dst: _IMPORT_TIME_HEADER
      Src: /src/cpython/Python/import.c:278,1
    - Dst: fprintf
      Src: /src/cpython/Python/import.c:280,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - interp
    - mod
    - name
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 286
    functionName: import_ensure_initialized
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORTLIB
    - Py_DECREF
    - _PyModuleSpec_IsInitializing
    - PyObject_GetOptionalAttr
    - _Py_ID
    - _PyInterpreterState_GetConfig
    - PyUnicode_AsUTF8
    - _IMPORT_TIME_HEADER
    - fprintf
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: int
    signature: int import_ensure_initialized(PyInterpreterState *interp, PyObject
      *mod, PyObject *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:293,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:296,1
    - Dst: import_ensure_initialized
      Src: /src/cpython/Python/import.c:298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:299,1
    - Dst: remove_importlib_frames
      Src: /src/cpython/Python/import.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 10
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: PyImport_GetModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 9
    functionsReached:
    - Py_DECREF
    - _PyThreadState_GET
    - remove_importlib_frames
    - import_ensure_initialized
    - import_get_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetModule(PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:314,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/import.c:320,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:323,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:326,1
    - Dst: PyModule_NewObject
      Src: /src/cpython/Python/import.c:327,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 311
    functionDepth: 12
    functionLinenumber: 311
    functionLinenumberEnd: 336
    functionName: import_add_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_SetItem
    - get_modules_dict
    - PyModule_NewObject
    - PyModule_Check
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_add_module(PyThreadState *tstate, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:341,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:345,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 13
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: PyImport_AddModuleRef
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - import_add_module
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_AddModuleRef(const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:355,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:356,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Python/import.c:371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:372,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Python/import.c:376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:377,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:378,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 352
    functionDepth: 13
    functionLinenumber: 352
    functionLinenumberEnd: 386
    functionName: PyImport_AddModuleObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyWeakref_NewRef
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - _PyThreadState_GET
    - _PyWeakref_GET_REF
    - import_add_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_AddModuleObject(PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:392,1
    - Dst: PyImport_AddModuleObject
      Src: /src/cpython/Python/import.c:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 14
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: PyImport_AddModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyImport_AddModuleObject
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_AddModule(const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/import.c:410,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:412,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/import.c:413,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/import.c:415,1
    - Dst: PyMapping_DelItem
      Src: /src/cpython/Python/import.c:417,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/import.c:418,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/import.c:419,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/import.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 407
    functionDepth: 8
    functionLinenumber: 407
    functionLinenumberEnd: 424
    functionName: remove_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - _PyErr_ExceptionMatches
    - PyDict_CheckExact
    - _PyErr_GetRaisedException
    - PyMapping_DelItem
    - _PyErr_Clear
    - get_modules_dict
    - PyDict_Pop
    linkageType: ''
    returnType: void
    signature: void remove_module(PyThreadState *tstate, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Python/import.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: _PyImport_GetNextModuleIndex
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_add_ssize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyImport_GetNextModuleIndex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _find_cached_def
      Src: /src/cpython/Python/import.c:448,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:449,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts:
    - condition: (cached == NULL || index == _get_cached_module_index(cached))
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 452
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 452
    functionName: _get_module_index_from_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _get_cached_module_index
    - _find_cached_def
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _get_module_index_from_def(PyModuleDef *def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:457,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:464,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - def
    - index
    argTypes:
    - PyModuleDef*
    - Py_ssize_t
    assertStmts:
    - condition: (index > 0)
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index != 0)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index > 0)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 473
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 473
    functionName: _set_module_index
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void _set_module_index(PyModuleDef *def, Py_ssize_t index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:481,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:484,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - interp
    - index
    argTypes:
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 488
    functionName: _modules_by_index_check
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - MODULES_BY_INDEX
    linkageType: ''
    returnType: char
    signature: 'char *

      _modules_by_index_check(PyInterpreterState *interp, Py_ssize_t index)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _modules_by_index_check
      Src: /src/cpython/Python/import.c:493,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/import.c:496,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - interp
    - index
    argTypes:
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 498
    functionName: _modules_by_index_get
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _modules_by_index_check
    - PyList_GET_ITEM
    - MODULES_BY_INDEX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _modules_by_index_get(PyInterpreterState *interp, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:504,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:506,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:507,1
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:507,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:508,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:513,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:513,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:514,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:514,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Python/import.c:519,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:519,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - interp
    - index
    - module
    argTypes:
    - PyInterpreterState*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (index > 0)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 520
      start: 500
    functionDepth: 4
    functionLinenumber: 500
    functionLinenumberEnd: 520
    functionName: _modules_by_index_set
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_SetItem
    - PyList_Append
    - PyList_GET_SIZE
    - MODULES_BY_INDEX
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: int
    signature: "int _modules_by_index_set(PyInterpreterState *interp,\n                      Py_ssize_t
      index, PyObject *module)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _modules_by_index_check
      Src: /src/cpython/Python/import.c:525,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:527,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Python/import.c:530,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:530,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - index
    argTypes:
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 531
    functionName: _modules_by_index_clear_one
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - Py_FatalError
    - _modules_by_index_check
    - MODULES_BY_INDEX
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int _modules_by_index_clear_one(PyInterpreterState *interp, Py_ssize_t
      index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:537,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:541,1
    - Dst: _modules_by_index_get
      Src: /src/cpython/Python/import.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 543
    functionName: PyState_FindModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 7
    functionsReached:
    - _get_module_index_from_def
    - _PyInterpreterState_GET
    - _modules_by_index_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyState_FindModule(PyModuleDef* module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:553,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:553,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:557,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:562,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:563,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tstate
    - module
    - def
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyModuleDef*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 552
        line_start: 552
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_slots == NULL)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 565
      start: 549
    functionDepth: 5
    functionLinenumber: 549
    functionLinenumberEnd: 565
    functionName: _PyState_AddModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _get_module_index_from_def
    - _PyErr_SetString
    - _PyErr_Occurred
    - assert
    - _modules_by_index_set
    linkageType: ''
    returnType: int
    signature: int _PyState_AddModule(PyThreadState *tstate, PyObject* module, PyModuleDef*
      def)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:571,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:575,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:577,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:584,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:585,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:586,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:586,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/import.c:587,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:587,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/import.c:589,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:593,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts:
    - condition: (def->m_slots == NULL)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 595
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 595
    functionName: PyState_AddModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - PyList_GET_ITEM
    - Py_FatalError
    - PyList_GET_SIZE
    - MODULES_BY_INDEX
    - _PyThreadState_GET
    - _Py_FatalErrorFormat
    - _get_module_index_from_def
    - _PyErr_SetString
    - assert
    - _modules_by_index_set
    linkageType: ''
    returnType: int
    signature: int PyState_AddModule(PyObject* module, PyModuleDef* def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:600,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:602,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:607,1
    - Dst: _modules_by_index_clear_one
      Src: /src/cpython/Python/import.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 609
    functionName: PyState_RemoveModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _modules_by_index_clear_one
    - _PyErr_SetString
    - _get_module_index_from_def
    linkageType: ''
    returnType: int
    signature: int PyState_RemoveModule(PyModuleDef* def)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:616,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:621,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:621,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/import.c:622,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:622,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:623,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Python/import.c:625,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:629,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/import.c:636,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:636,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:637,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:637,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 613
    functionDepth: 12
    functionLinenumber: 613
    functionLinenumberEnd: 642
    functionName: _PyImport_ClearModulesByIndex
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyList_SetSlice
    - MODULES_BY_INDEX
    - PyErr_FormatUnraisable
    - PyModule_GetDef
    - PyModule_Check
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyImport_ClearModulesByIndex(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/import.c:795,1
    - Dst: strrchr
      Src: /src/cpython/Python/import.c:798,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:799,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/import.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 808
    functionName: _PyImport_ResolveNameWithPackageContext
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyMutex_Lock
    - strcmp
    - PyMutex_Unlock
    - strrchr
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyImport_ResolveNameWithPackageContext(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/import.c:814,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/import.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - newcontext
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 822
    functionName: _PyImport_SwapPackageContext
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyImport_SwapPackageContext(const char *newcontext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLOPENFLAGS
      Src: /src/cpython/Python/import.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: _PyImport_GetDLOpenFlags
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - DLOPENFLAGS
    linkageType: ''
    returnType: int
    signature: int _PyImport_GetDLOpenFlags(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLOPENFLAGS
      Src: /src/cpython/Python/import.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - new_val
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: _PyImport_SetDLOpenFlags
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - DLOPENFLAGS
    linkageType: ''
    returnType: void
    signature: void _PyImport_SetDLOpenFlags(PyInterpreterState *interp, int new_val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:845,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Python/import.c:849,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Python/import.c:854,1
    - Dst: PyModule_ExecDef
      Src: /src/cpython/Python/import.c:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 861
    functionName: exec_builtin_or_dynamic
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyModule_GetState
    - PyModule_ExecDef
    - PyModule_GetDef
    linkageType: ''
    returnType: int
    signature: int exec_builtin_or_dynamic(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:874,1
    - Dst: clear_singlephase_extension
      Src: /src/cpython/Python/import.c:877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - filename
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 885
    functionName: _PyImport_ClearExtension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GET
    - clear_singlephase_extension
    linkageType: ''
    returnType: int
    signature: int _PyImport_ClearExtension(PyObject *name, PyObject *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/import.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 961
    functionName: extensions_lock_acquire
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    linkageType: ''
    returnType: void
    signature: void extensions_lock_acquire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/import.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 967
    functionName: extensions_lock_release
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void extensions_lock_release(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/import.c:1028,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1035
    functionName: alloc_extensions_cache_value
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_RawMalloc
    linkageType: ''
    returnType: struct extensions_cache_value
    signature: 'struct extensions_cache_value *

      alloc_extensions_cache_value(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/import.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct extensions_cache_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1041
    functionName: free_extensions_cache_value
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void free_extensions_cache_value(struct extensions_cache_value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cached
    argTypes:
    - struct extensions_cache_value*
    assertStmts:
    - condition: (cached->m_index > 0)
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1048
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1048
    functionName: _get_cached_module_index
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _get_cached_module_index(struct extensions_cache_value *cached)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1063,1
    - Dst: _Py_SetImmortalUntracked
      Src: /src/cpython/Python/import.c:1067,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1071,1
    - Dst: _set_module_index
      Src: /src/cpython/Python/import.c:1072,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1076,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1080,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct extensions_cache_value*
    assertStmts:
    - condition: (def != NULL)
      pos:
        line_end: 1062
        line_start: 1062
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_index > 0)
      pos:
        line_end: 1070
        line_start: 1070
        source_file: /src/cpython/Python/import.c
    - condition: "(def->m_base.m_copy == NULL\n           || def->m_base.m_init ==
        NULL\n           || value->m_dict != NULL)"
      pos:
        line_end: 1077
        line_start: 1075
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_dict->copied != NULL)
      pos:
        line_end: 1079
        line_start: 1079
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1084
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1084
    functionName: fixup_cached_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortalUntracked
    - Py_NewRef
    - assert
    - _set_module_index
    linkageType: ''
    returnType: void
    signature: void fixup_cached_def(struct extensions_cache_value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - oldbase
    argTypes:
    - PyModuleDef*
    - PyModuleDef_Base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1090
    functionName: restore_old_cached_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void restore_old_cached_def(PyModuleDef *def, PyModuleDef_Base *oldbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oldbase
    argTypes:
    - PyModuleDef_Base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1096
    functionName: cleanup_old_cached_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void cleanup_old_cached_def(PyModuleDef_Base *oldbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1105,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/import.c:1105,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct extensions_cache_value*
    assertStmts:
    - condition: (value->def == NULL || _Py_IsImmortal(value->def))
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1109
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1109
    functionName: del_cached_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_IsImmortal
    - assert
    linkageType: ''
    returnType: void
    signature: void del_cached_def(struct extensions_cache_value *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1114,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1116,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1120,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:1120,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1121,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:1123,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1124,1
    - Dst: is_interpreter_isolated
      Src: /src/cpython/Python/import.c:1124,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Python/import.c:1140,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/import.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - value
    - m_dict
    argTypes:
    - struct extensions_cache_value*
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 1113
        line_start: 1113
        source_file: /src/cpython/Python/import.c
    - condition: (value->origin != _Py_ext_module_origin_CORE)
      pos:
        line_end: 1120
        line_start: 1120
        source_file: /src/cpython/Python/import.c
    - condition: (PyDict_Check(m_dict))
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_dict == NULL)
      pos:
        line_end: 1115
        line_start: 1115
        source_file: /src/cpython/Python/import.c
    - condition: (!is_interpreter_isolated(interp))
      pos:
        line_end: 1123
        line_start: 1123
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1154
      start: 1111
    functionDepth: 12
    functionLinenumber: 1111
    functionLinenumberEnd: 1154
    functionName: init_cached_m_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_GetID
    - is_interpreter_isolated
    - PyDict_Copy
    - _PyInterpreterState_GET
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int init_cached_m_dict(struct extensions_cache_value *value, PyObject
      *m_dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1160,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1161,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct extensions_cache_value*
    assertStmts:
    - condition: (value->m_dict == &value->_m_dict)
      pos:
        line_end: 1159
        line_start: 1159
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_dict->copied != NULL)
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1167
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1167
    functionName: del_cached_m_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - assert
    linkageType: ''
    returnType: void
    signature: void del_cached_m_dict(struct extensions_cache_value *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1176,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:1177,1
    - Dst: get_core_module_dict
      Src: /src/cpython/Python/import.c:1181,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1183,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/import.c:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - value
    - name
    - path
    argTypes:
    - struct extensions_cache_value*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 1175
        line_start: 1175
        source_file: /src/cpython/Python/import.c
    - condition: (value->def != NULL)
      pos:
        line_end: 1182
        line_start: 1182
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1188
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1188
    functionName: get_cached_m_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - get_core_module_dict
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_cached_m_dict(struct extensions_cache_value *value,\n
      \                 PyObject *name, PyObject *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: del_cached_m_dict
      Src: /src/cpython/Python/import.c:1195,1
    - Dst: del_cached_def
      Src: /src/cpython/Python/import.c:1196,1
    - Dst: free_extensions_cache_value
      Src: /src/cpython/Python/import.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1199
    functionName: del_extensions_cache_value
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - del_cached_def
    - free_extensions_cache_value
    - del_cached_m_dict
    linkageType: ''
    returnType: void
    signature: void del_extensions_cache_value(void *raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Python/import.c:1204,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Python/import.c:1205,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1209,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1210,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1213,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/import.c:1217,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1219,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:1223,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:1225,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1227,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - str1
    - str2
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    - char
    assertStmts:
    - condition: (SIZE_MAX - str1_len - str2_len > 2)
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/cpython/Python/import.c
    - condition: (strlen(key) == size - 1)
      pos:
        line_end: 1226
        line_start: 1226
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1229
      start: 1201
    functionDepth: 6
    functionLinenumber: 1201
    functionLinenumberEnd: 1229
    functionName: hashtable_key_from_2_strings
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - strlen
    - _PyUnicode_AsUTF8NoNUL
    - PyMem_RawMalloc
    - memcpy
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      hashtable_key_from_2_strings(PyObject *str1, PyObject *str2, const char sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_HashBuffer
      Src: /src/cpython/Python/import.c:1234,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1235
    functionName: hashtable_hash_str
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_HashBuffer
    - strlen
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_hash_str(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1241
    functionName: hashtable_compare_str
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int hashtable_compare_str(const void *key1, const void *key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/import.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1247
    functionName: hashtable_destroy_str
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void hashtable_destroy_str(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ht
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1272
    functionName: hashtable_next_match_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hashtable_next_match_def(_Py_hashtable_t *ht,\n                         const
      void *key, const void *value, void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/import.c:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1281
    functionName: _find_cached_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _Py_hashtable_foreach
    linkageType: ''
    returnType: struct extensions_cache_value
    signature: 'struct extensions_cache_value *

      _find_cached_def(PyModuleDef *def)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/import.c:1290,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1286
    functionDepth: 1
    functionLinenumber: 1286
    functionLinenumberEnd: 1302
    functionName: _extensions_cache_init
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_new_full
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int _extensions_cache_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_key_from_2_strings
      Src: /src/cpython/Python/import.c:1311,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/import.c:1316,1
    - Dst: hashtable_destroy_str
      Src: /src/cpython/Python/import.c:1321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - path
    - name
    - p_key
    argTypes:
    - PyObject*
    - PyObject*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1304
    functionDepth: 7
    functionLinenumber: 1304
    functionLinenumberEnd: 1324
    functionName: _extensions_cache_find_unlocked
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - hashtable_key_from_2_strings
    - hashtable_destroy_str
    - _Py_hashtable_get_entry
    linkageType: ''
    returnType: _Py_hashtable_entry_t
    signature: "_Py_hashtable_entry_t *\n_extensions_cache_find_unlocked(PyObject
      *path, PyObject *name,\n                                void **p_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions_lock_acquire
      Src: /src/cpython/Python/import.c:1331,1
    - Dst: _extensions_cache_find_unlocked
      Src: /src/cpython/Python/import.c:1334,1
    - Dst: extensions_lock_release
      Src: /src/cpython/Python/import.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1327
    functionDepth: 8
    functionLinenumber: 1327
    functionLinenumberEnd: 1344
    functionName: _extensions_cache_get
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - extensions_lock_acquire
    - extensions_lock_release
    - _extensions_cache_find_unlocked
    linkageType: ''
    returnType: struct extensions_cache_value
    signature: 'struct extensions_cache_value *

      _extensions_cache_get(PyObject *path, PyObject *name)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1358,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1359,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1362,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1364,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1365,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1366,1
    - Dst: extensions_lock_acquire
      Src: /src/cpython/Python/import.c:1368,1
    - Dst: _extensions_cache_init
      Src: /src/cpython/Python/import.c:1371,1
    - Dst: _extensions_cache_find_unlocked
      Src: /src/cpython/Python/import.c:1378,1
    - Dst: alloc_extensions_cache_value
      Src: /src/cpython/Python/import.c:1393,1
    - Dst: init_cached_m_dict
      Src: /src/cpython/Python/import.c:1412,1
    - Dst: fixup_cached_def
      Src: /src/cpython/Python/import.c:1415,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/import.c:1419,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1420,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1433,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1436,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1438,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/import.c:1440,1
    - Dst: restore_old_cached_def
      Src: /src/cpython/Python/import.c:1447,1
    - Dst: del_extensions_cache_value
      Src: /src/cpython/Python/import.c:1449,1
    - Dst: cleanup_old_cached_def
      Src: /src/cpython/Python/import.c:1453,1
    - Dst: extensions_lock_release
      Src: /src/cpython/Python/import.c:1457,1
    - Dst: hashtable_destroy_str
      Src: /src/cpython/Python/import.c:1459,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 8
    argNames:
    - path
    - name
    - def
    - m_init
    - m_index
    - m_dict
    - origin
    - md_gil
    argTypes:
    - PyObject*
    - PyObject*
    - PyModuleDef*
    - PyModInitFunction
    - Py_ssize_t
    - PyObject*
    - _Py_ext_module_origin
    - void*
    assertStmts:
    - condition: (def->m_base.m_init == NULL || def->m_base.m_init == m_init)
      pos:
        line_end: 1361
        line_start: 1361
        source_file: /src/cpython/Python/import.c
    - condition: ((origin == _Py_ext_module_origin_DYNAMIC) == (name != path))
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/cpython/Python/import.c
    - condition: (value->def == def)
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_init == m_init)
      pos:
        line_end: 1435
        line_start: 1435
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL || m_dict != NULL)
      pos:
        line_end: 1363
        line_start: 1363
        source_file: /src/cpython/Python/import.c
    - condition: (m_init == NULL || m_dict == NULL)
      pos:
        line_end: 1358
        line_start: 1358
        source_file: /src/cpython/Python/import.c
    - condition: (origin != _Py_ext_module_origin_CORE || m_dict == NULL)
      pos:
        line_end: 1365
        line_start: 1365
        source_file: /src/cpython/Python/import.c
    - condition: ((value->m_dict == NULL) == (m_dict == NULL))
      pos:
        line_end: 1437
        line_start: 1437
        source_file: /src/cpython/Python/import.c
    - condition: (def != NULL)
      pos:
        line_end: 1357
        line_start: 1357
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1463
      start: 1347
    functionDepth: 13
    functionLinenumber: 1347
    functionLinenumberEnd: 1463
    functionName: _extensions_cache_set
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - extensions_lock_acquire
    - _extensions_cache_init
    - Py_UNREACHABLE
    - del_extensions_cache_value
    - hashtable_destroy_str
    - _extensions_cache_find_unlocked
    - extensions_lock_release
    - cleanup_old_cached_def
    - restore_old_cached_def
    - _Py_hashtable_set
    - init_cached_m_dict
    - alloc_extensions_cache_value
    - fixup_cached_def
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: struct extensions_cache_value
    signature: "struct extensions_cache_value *\n_extensions_cache_set(PyObject *path,
      PyObject *name,\n                      PyModuleDef *def, PyModInitFunction m_init,\n
      \                     Py_ssize_t m_index, PyObject *m_dict,\n                      _Py_ext_module_origin
      origin, void *md_gil)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extensions_lock_acquire
      Src: /src/cpython/Python/import.c:1468,1
    - Dst: _extensions_cache_find_unlocked
      Src: /src/cpython/Python/import.c:1476,1
    - Dst: del_extensions_cache_value
      Src: /src/cpython/Python/import.c:1488,1
    - Dst: extensions_lock_release
      Src: /src/cpython/Python/import.c:1491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1465
    functionDepth: 8
    functionLinenumber: 1465
    functionLinenumberEnd: 1492
    functionName: _extensions_cache_delete
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - extensions_lock_acquire
    - extensions_lock_release
    - del_extensions_cache_value
    - _extensions_cache_find_unlocked
    linkageType: ''
    returnType: void
    signature: void _extensions_cache_delete(PyObject *path, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/import.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1494
    functionDepth: 2
    functionLinenumber: 1494
    functionLinenumberEnd: 1501
    functionName: _extensions_cache_clear_all
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: void
    signature: void _extensions_cache_clear_all(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
      Src: /src/cpython/Python/import.c:1509,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Python/import.c:1516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1521
    functionName: check_multi_interp_extensions
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
    - _PyInterpreterState_HasFeature
    linkageType: ''
    returnType: bool
    signature: bool check_multi_interp_extensions(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:1526,1
    - Dst: check_multi_interp_extensions
      Src: /src/cpython/Python/import.c:1527,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1528,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1528,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:1529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (!_Py_IsMainInterpreter(interp))
      pos:
        line_end: 1527
        line_start: 1527
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1535
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1535
    functionName: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _Py_IsMainInterpreter
    - _PyInterpreterState_GET
    - check_multi_interp_extensions
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyImport_CheckSubinterpIncompatibleExtensionAllowed(const char
      *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:1541,1
    - Dst: _PyEval_DisableGIL
      Src: /src/cpython/Python/import.c:1543,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:1547,1
    - Dst: _PyEval_EnableGILPermanent
      Src: /src/cpython/Python/import.c:1549,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/import.c:1550,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:1564,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:1566,1
    - Dst: _PyEval_DisableGIL
      Src: /src/cpython/Python/import.c:1571,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - module
    - module_name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1575
    functionName: _PyImport_CheckGILForModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnFormat
    - _PyThreadState_GET
    - _PyInterpreterState_GetConfig
    - _PyEval_DisableGIL
    - PyModule_Check
    - PySys_FormatStderr
    - _PyEval_EnableGILPermanent
    linkageType: ''
    returnType: int
    signature: int _PyImport_CheckGILForModule(PyObject* module, PyObject *module_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1581,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/import.c:1584,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/import.c:1585,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/import.c:1590,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1591,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/import.c:1593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (old_tstate == tstate)
      pos:
        line_end: 1590
        line_start: 1590
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1596
      start: 1578
    functionDepth: 6
    functionLinenumber: 1578
    functionLinenumberEnd: 1596
    functionName: switch_to_main_interpreter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _PyThreadState_NewBound
    - PyThreadState_Swap
    - _PyInterpreterState_Main
    - assert
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      switch_to_main_interpreter(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1603,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/import.c:1603,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1604,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1604,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1605,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1609,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/import.c:1610,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:1612,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/import.c:1616,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:1620,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/import.c:1622,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/import.c:1623,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/import.c:1624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - tstate
    - main_tstate
    - tempobj
    argTypes:
    - PyThreadState*
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (main_tstate == PyThreadState_GET())
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/cpython/Python/import.c
    - condition: (_Py_IsMainInterpreter(main_tstate->interp))
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/cpython/Python/import.c
    - condition: (tstate->interp != main_tstate->interp)
      pos:
        line_end: 1604
        line_start: 1604
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1625
      start: 1598
    functionDepth: 9
    functionLinenumber: 1598
    functionLinenumberEnd: 1625
    functionName: switch_back_from_main_interpreter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_IsMainInterpreter
    - PyThreadState_GET
    - PyErr_Occurred
    - PyThreadState_Delete
    - PyThreadState_Clear
    - PyErr_ExceptionMatches
    - PyThreadState_Swap
    - PyErr_PrintEx
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: void
    signature: "void switch_back_from_main_interpreter(PyThreadState *tstate,\n                                  PyThreadState
      *main_tstate,\n                                  PyObject *tempobj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1633,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1633,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1634,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:1635,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1637,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1637,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1638,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:1639,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1641,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - interp
    - name
    - path
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1632
        line_start: 1632
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1636
        line_start: 1636
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1640
        line_start: 1640
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1644
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1644
    functionName: get_core_module_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_CompareWithASCIIString
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_core_module_dict(PyInterpreterState *interp,\n                     PyObject
      *name, PyObject *path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1653,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - interp
    - name
    - path
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1661
    functionName: is_core_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    linkageType: ''
    returnType: int
    signature: int is_core_module(PyInterpreterState *interp, PyObject *name, PyObject
      *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - def
    - check_size
    argTypes:
    - PyModuleDef*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1688
    functionName: _get_extension_kind
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _Py_ext_module_kind
    signature: _Py_ext_module_kind _get_extension_kind(PyModuleDef *def, bool check_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1707
    functionName: assert_singlephase_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_singlephase_def(def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cached
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1708
    functionDepth: 0
    functionLinenumber: 1708
    functionLinenumberEnd: 1713
    functionName: assert_singlephase
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_singlephase(cached)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1741,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1742,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1746,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1747,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1748,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1759,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:1759,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1760,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1761,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1762,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1765,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:1765,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1768,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1769,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:1769,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1770,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1770,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1771,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1771,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1778,1
    - Dst: _extensions_cache_get
      Src: /src/cpython/Python/import.c:1780,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1781,1
    - Dst: _extensions_cache_set
      Src: /src/cpython/Python/import.c:1783,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - tstate
    - path
    - name
    - def
    - singlephase
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyModuleDef*
    - struct singlephase_global_update*
    assertStmts:
    - condition: (!is_core_module(tstate->interp, name, path))
      pos:
        line_end: 1768
        line_start: 1768
        source_file: /src/cpython/Python/import.c
    - condition: (PyDict_Check(singlephase->m_dict))
      pos:
        line_end: 1764
        line_start: 1764
        source_file: /src/cpython/Python/import.c
    - condition: (cached == NULL || cached->def == def)
      pos:
        line_end: 1780
        line_start: 1780
        source_file: /src/cpython/Python/import.c
    - condition: (is_core_module(tstate->interp, name, path))
      pos:
        line_end: 1758
        line_start: 1758
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1746
        line_start: 1746
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size >= 0)
      pos:
        line_end: 1747
        line_start: 1747
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1741
        line_start: 1741
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size == -1)
      pos:
        line_end: 1759
        line_start: 1759
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1760
        line_start: 1760
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 1761
        line_start: 1761
        source_file: /src/cpython/Python/import.c
    - condition: (PyUnicode_CompareWithASCIIString(name, "builtins") != 0)
      pos:
        line_end: 1770
        line_start: 1770
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 1740
        line_start: 1740
        source_file: /src/cpython/Python/import.c
    - condition: (singlephase->m_dict == NULL)
      pos:
        line_end: 1745
        line_start: 1745
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size == -1)
      pos:
        line_end: 1767
        line_start: 1767
        source_file: /src/cpython/Python/import.c
    - condition: (PyUnicode_CompareWithASCIIString(name, "sys") != 0)
      pos:
        line_end: 1769
        line_start: 1769
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1794
      start: 1729
    functionDepth: 14
    functionLinenumber: 1729
    functionLinenumberEnd: 1794
    functionName: update_global_state_for_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - is_core_module
    - PyUnicode_CompareWithASCIIString
    - _extensions_cache_get
    - _extensions_cache_set
    - PyDict_Check
    - assert
    linkageType: ''
    returnType: struct extensions_cache_value
    signature: "struct extensions_cache_value *\nupdate_global_state_for_extension(PyThreadState
      *tstate,\n                                  PyObject *path, PyObject *name,\n
      \                                 PyModuleDef *def,\n                                  struct
      singlephase_global_update *singlephase)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1803,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:1803,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1804,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/import.c:1804,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:1806,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:1807,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:1812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - tstate
    - mod
    - cached
    - name
    - modules
    argTypes:
    - PyThreadState*
    - PyObject*
    - struct extensions_cache_value*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mod != NULL && PyModule_Check(mod))
      pos:
        line_end: 1802
        line_start: 1802
        source_file: /src/cpython/Python/import.c
    - condition: (cached->def == _PyModule_GetDef(mod))
      pos:
        line_end: 1803
        line_start: 1803
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1818
      start: 1798
    functionDepth: 5
    functionLinenumber: 1798
    functionLinenumberEnd: 1818
    functionName: finish_singlephase_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _get_cached_module_index
    - PyObject_SetItem
    - _PyModule_GetDef
    - PyModule_Check
    - assert
    - _modules_by_index_set
    linkageType: ''
    returnType: int
    signature: "int finish_singlephase_extension(PyThreadState *tstate, PyObject *mod,\n
      \                            struct extensions_cache_value *cached,\n                             PyObject
      *name, PyObject *modules)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1827,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:1828,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:1834,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1835,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Python/import.c:1836,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:1840,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1843,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1844,1
    - Dst: get_cached_m_dict
      Src: /src/cpython/Python/import.c:1848,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1850,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1850,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:1853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1855,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:1858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1861,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/import.c:1864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1867,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1882,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/import.c:1882,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/import.c:1883,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1886,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1887,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1891,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1891,1
    - Dst: _PyImport_RunModInitFunc
      Src: /src/cpython/Python/import.c:1895,1
    - Dst: _Py_ext_module_loader_result_apply_error
      Src: /src/cpython/Python/import.c:1896,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1899,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1899,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1900,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1901,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1906,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/import.c:1907,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/import.c:1911,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:1912,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:1916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1917,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:1922,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:1923,1
    - Dst: PyMapping_DelItem
      Src: /src/cpython/Python/import.c:1924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1925,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 3
    argNames:
    - tstate
    - cached
    - info
    argTypes:
    - PyThreadState*
    - struct extensions_cache_value*
    - struct _Py_ext_module_loader_info*
    assertStmts:
    - condition: (name_buf != NULL)
      pos:
        line_end: 1834
        line_start: 1834
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/cpython/Python/import.c
    - condition: "(_PyModule_GetDef(mod) == NULL\n               || _PyModule_GetDef(mod)
        == def)"
      pos:
        line_end: 1882
        line_start: 1881
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1890
        line_start: 1890
        source_file: /src/cpython/Python/import.c
    - condition: (res.kind == _Py_ext_module_kind_SINGLEPHASE)
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/cpython/Python/import.c
    - condition: (res.def == def)
      pos:
        line_end: 1905
        line_start: 1905
        source_file: /src/cpython/Python/import.c
    - condition: (def != NULL)
      pos:
        line_end: 1826
        line_start: 1826
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 1843
        line_start: 1843
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1886
        line_start: 1886
        source_file: /src/cpython/Python/import.c
    - condition: (cached->m_init == NULL)
      pos:
        line_end: 1842
        line_start: 1842
        source_file: /src/cpython/Python/import.c
    - condition: (cached->m_dict == NULL)
      pos:
        line_end: 1885
        line_start: 1885
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1898
        line_start: 1898
        source_file: /src/cpython/Python/import.c
    - condition: (res.err == NULL)
      pos:
        line_end: 1899
        line_start: 1899
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1930
      start: 1821
    functionDepth: 13
    functionLinenumber: 1821
    functionLinenumberEnd: 1930
    functionName: reload_singlephase_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - get_cached_m_dict
    - _Py_ext_module_loader_result_clear
    - PyDict_Update
    - PyErr_Occurred
    - PyModule_AddObjectRef
    - PyModule_GetDict
    - PyErr_Clear
    - import_add_module
    - Py_DECREF
    - _get_cached_module_index
    - PyObject_SetItem
    - get_modules_dict
    - _PyModule_GetDef
    - _PyImport_RunModInitFunc
    - _modules_by_index_set
    - PyMapping_DelItem
    - PyUnicode_AsUTF8
    - assert_singlephase
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - _Py_ext_module_loader_result_apply_error
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreload_singlephase_extension(PyThreadState *tstate,\n
      \                            struct extensions_cache_value *cached,\n                             struct
      _Py_ext_module_loader_info *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _extensions_cache_get
      Src: /src/cpython/Python/import.c:1939,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1943,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:1944,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:1950,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1951,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Python/import.c:1952,1
    - Dst: reload_singlephase_extension
      Src: /src/cpython/Python/import.c:1956,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:1961,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:1963,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - tstate
    - info
    - p_cached
    argTypes:
    - PyThreadState*
    - struct _Py_ext_module_loader_info*
    - struct extensions_cache_value**
    assertStmts:
    - condition: (cached->def != NULL)
      pos:
        line_end: 1942
        line_start: 1942
        source_file: /src/cpython/Python/import.c
    - condition: (name_buf != NULL)
      pos:
        line_end: 1950
        line_start: 1950
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1968
      start: 1932
    functionDepth: 14
    functionLinenumber: 1932
    functionLinenumberEnd: 1968
    functionName: import_find_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - reload_singlephase_extension
    - _extensions_cache_get
    - _PyInterpreterState_GetConfig
    - PySys_FormatStderr
    - PyUnicode_AsUTF8
    - assert_singlephase
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nimport_find_extension(PyThreadState *tstate,\n                      struct
      _Py_ext_module_loader_info *info,\n                      struct extensions_cache_value
      **p_cached)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1976,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:1976,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/import.c:1981,1
    - Dst: switch_to_main_interpreter
      Src: /src/cpython/Python/import.c:2031,1
    - Dst: _PyImport_RunModInitFunc
      Src: /src/cpython/Python/import.c:2043,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2046,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2049,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2049,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2050,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2055,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Python/import.c:2066,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:2071,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:2075,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/import.c:2076,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/import.c:2078,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:2079,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2084,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2099,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:2100,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2101,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2105,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2106,1
    - Dst: update_global_state_for_extension
      Src: /src/cpython/Python/import.c:2109,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2112,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2112,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2121,1
    - Dst: switch_back_from_main_interpreter
      Src: /src/cpython/Python/import.c:2122,1
    - Dst: _Py_ext_module_loader_result_apply_error
      Src: /src/cpython/Python/import.c:2134,1
    - Dst: assert_multiphase_def
      Src: /src/cpython/Python/import.c:2139,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2140,1
    - Dst: PyModule_FromDefAndSpec
      Src: /src/cpython/Python/import.c:2143,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2149,1
    - Dst: assert_singlephase_def
      Src: /src/cpython/Python/import.c:2150,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Python/import.c:2152,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2155,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2155,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2161,1
    - Dst: reload_singlephase_extension
      Src: /src/cpython/Python/import.c:2162,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2166,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2167,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:2167,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2170,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2171,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:2171,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:2174,1
    - Dst: finish_singlephase_extension
      Src: /src/cpython/Python/import.c:2175,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/import.c:2183,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:2187,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/import.c:2188,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 103
    argCount: 5
    argNames:
    - tstate
    - p0
    - info
    - spec
    - modules
    argTypes:
    - PyThreadState*
    - PyModInitFunction
    - struct _Py_ext_module_loader_info*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 2098
        line_start: 2098
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2154
        line_start: 2154
        source_file: /src/cpython/Python/import.c
    - condition: (mod != NULL)
      pos:
        line_end: 2169
        line_start: 2169
        source_file: /src/cpython/Python/import.c
    - condition: (res.err == NULL)
      pos:
        line_end: 2049
        line_start: 2049
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 2105
        line_start: 2105
        source_file: /src/cpython/Python/import.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2111
        line_start: 2111
        source_file: /src/cpython/Python/import.c
    - condition: (main_tstate != tstate)
      pos:
        line_end: 2120
        line_start: 2120
        source_file: /src/cpython/Python/import.c
    - condition: (singlephase.m_dict != NULL)
      pos:
        line_end: 2100
        line_start: 2100
        source_file: /src/cpython/Python/import.c
    - condition: (mod == NULL)
      pos:
        line_end: 2160
        line_start: 2160
        source_file: /src/cpython/Python/import.c
    - condition: (def != NULL)
      pos:
        line_end: 2054
        line_start: 2054
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index != 0)
      pos:
        line_end: 2083
        line_start: 2083
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size >= 0)
      pos:
        line_end: 2104
        line_start: 2104
        source_file: /src/cpython/Python/import.c
    - condition: (mod == NULL)
      pos:
        line_end: 2139
        line_start: 2139
        source_file: /src/cpython/Python/import.c
    - condition: (res.kind == _Py_ext_module_kind_SINGLEPHASE)
      pos:
        line_end: 2148
        line_start: 2148
        source_file: /src/cpython/Python/import.c
    - condition: (PyModule_Check(mod))
      pos:
        line_end: 2166
        line_start: 2166
        source_file: /src/cpython/Python/import.c
    - condition: (PyModule_Check(mod))
      pos:
        line_end: 2170
        line_start: 2170
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2165
        line_start: 2165
        source_file: /src/cpython/Python/import.c
    - condition: (!is_core_module(tstate->interp, info->name, info->path))
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/cpython/Python/import.c
    - condition: (res.module == NULL)
      pos:
        line_end: 2045
        line_start: 2045
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2190
      start: 1970
    functionDepth: 15
    functionLinenumber: 1970
    functionLinenumberEnd: 2190
    functionName: import_run_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - switch_to_main_interpreter
    - reload_singlephase_extension
    - Py_XDECREF
    - _PyUnicode_InternImmortal
    - update_global_state_for_extension
    - _Py_ext_module_loader_result_clear
    - assert_singlephase_def
    - is_core_module
    - PyErr_Occurred
    - PyModule_AddObjectRef
    - PyModule_GetDict
    - PyModule_Check
    - assert_multiphase_def
    - PyErr_Clear
    - _PyUnicode_Copy
    - get_modules_dict
    - Py_NewRef
    - _PyImport_RunModInitFunc
    - PyModule_FromDefAndSpec
    - PyBytes_AS_STRING
    - switch_back_from_main_interpreter
    - _PyInterpreterState_GET
    - finish_singlephase_extension
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - _Py_ext_module_loader_result_apply_error
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nimport_run_extension(PyThreadState *tstate, PyModInitFunction
      p0,\n                     struct _Py_ext_module_loader_info *info,\n                     PyObject
      *spec, PyObject *modules)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _extensions_cache_get
      Src: /src/cpython/Python/import.c:2198,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2200,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:2209,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:2213,1
    - Dst: _modules_by_index_check
      Src: /src/cpython/Python/import.c:2214,1
    - Dst: _modules_by_index_clear_one
      Src: /src/cpython/Python/import.c:2215,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/import.c:2222,1
    - Dst: switch_to_main_interpreter
      Src: /src/cpython/Python/import.c:2223,1
    - Dst: _extensions_cache_delete
      Src: /src/cpython/Python/import.c:2229,1
    - Dst: switch_back_from_main_interpreter
      Src: /src/cpython/Python/import.c:2232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - interp
    - name
    - path
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2194
    functionDepth: 10
    functionLinenumber: 2194
    functionLinenumberEnd: 2236
    functionName: clear_singlephase_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _extensions_cache_delete
    - switch_to_main_interpreter
    - PyThreadState_GET
    - PyErr_Occurred
    - _get_cached_module_index
    - switch_back_from_main_interpreter
    - _modules_by_index_check
    - _extensions_cache_get
    - _modules_by_index_clear_one
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int clear_singlephase_extension(PyInterpreterState *interp,\n                            PyObject
      *name, PyObject *path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:2248,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:2248,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/import.c:2251,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Python/import.c:2256,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/import.c:2258,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2266,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:2266,1
    - Dst: assert_singlephase_def
      Src: /src/cpython/Python/import.c:2267,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2268,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2269,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2270,1
    - Dst: _extensions_cache_get
      Src: /src/cpython/Python/import.c:2277,1
    - Dst: update_global_state_for_extension
      Src: /src/cpython/Python/import.c:2289,1
    - Dst: finish_singlephase_extension
      Src: /src/cpython/Python/import.c:2296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - tstate
    - mod
    - name
    - modules
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (mod != NULL && PyModule_Check(mod))
      pos:
        line_end: 2247
        line_start: 2247
        source_file: /src/cpython/Python/import.c
    - condition: (is_core_module(tstate->interp, nameobj, nameobj))
      pos:
        line_end: 2265
        line_start: 2265
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size == -1)
      pos:
        line_end: 2267
        line_start: 2267
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 2268
        line_start: 2268
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index >= 0)
      pos:
        line_end: 2269
        line_start: 2269
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2305
      start: 2243
    functionDepth: 15
    functionLinenumber: 2243
    functionLinenumberEnd: 2305
    functionName: _PyImport_FixupBuiltin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - assert_singlephase_def
    - PyUnicode_InternFromString
    - Py_DECREF
    - is_core_module
    - PyErr_BadInternalCall
    - update_global_state_for_extension
    - _extensions_cache_get
    - finish_singlephase_extension
    - PyModule_GetDef
    - PyModule_Check
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyImport_FixupBuiltin(PyThreadState *tstate, PyObject *mod, const
      char *name,\n                       PyObject *modules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:2315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2309
    functionDepth: 2
    functionLinenumber: 2309
    functionLinenumberEnd: 2323
    functionName: is_builtin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: int
    signature: int is_builtin(PyObject *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ext_module_loader_info_init_for_builtin
      Src: /src/cpython/Python/import.c:2329,1
    - Dst: import_find_extension
      Src: /src/cpython/Python/import.c:2334,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2336,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:2336,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2337,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2339,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/import.c:2339,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/import.c:2340,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:2341,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:2344,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2352,1
    - Dst: _extensions_cache_delete
      Src: /src/cpython/Python/import.c:2354,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:2359,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:2365,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2372,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:2372,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:2373,1
    - Dst: _PyEval_EnableGILTransient
      Src: /src/cpython/Python/import.c:2383,1
    - Dst: import_run_extension
      Src: /src/cpython/Python/import.c:2386,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:2387,1
    - Dst: _PyImport_CheckGILForModule
      Src: /src/cpython/Python/import.c:2389,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:2390,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/import.c:2396,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - tstate
    - name
    - spec
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2335
        line_start: 2335
        source_file: /src/cpython/Python/import.c
    - condition: "(_PyModule_GetDef(mod) == NULL\n                || cached->def ==
        _PyModule_GetDef(mod))"
      pos:
        line_end: 2339
        line_start: 2338
        source_file: /src/cpython/Python/import.c
    - condition: (cached != NULL)
      pos:
        line_end: 2336
        line_start: 2336
        source_file: /src/cpython/Python/import.c
    - condition: (is_core_module(tstate->interp, info.name, info.path))
      pos:
        line_end: 2371
        line_start: 2371
        source_file: /src/cpython/Python/import.c
    - condition: (cached->def->m_base.m_copy == NULL)
      pos:
        line_end: 2351
        line_start: 2351
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2398
      start: 2325
    functionDepth: 16
    functionLinenumber: 2325
    functionLinenumberEnd: 2398
    functionName: create_builtin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _extensions_cache_delete
    - _Py_ext_module_loader_info_init_for_builtin
    - _PyEval_EnableGILTransient
    - Py_CLEAR
    - is_core_module
    - get_modules_dict
    - import_find_extension
    - Py_NewRef
    - _Py_ext_module_loader_info_clear
    - _PyModule_GetDef
    - import_run_extension
    - assert_singlephase
    - _PyUnicode_EqualToASCIIString
    - _PyImport_CheckGILForModule
    - import_add_module
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_builtin(PyThreadState *tstate, PyObject *name, PyObject *spec)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:2420,1
    - Dst: _PyMem_DefaultRawRealloc
      Src: /src/cpython/Python/import.c:2437,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:2447,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:2449,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - newtab
    argTypes:
    - struct _inittab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2412
    functionDepth: 2
    functionLinenumber: 2412
    functionLinenumberEnd: 2453
    functionName: PyImport_ExtendInittab
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _PyMem_DefaultRawRealloc
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int PyImport_ExtendInittab(struct _inittab *newtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:2463,1
    - Dst: memset
      Src: /src/cpython/Python/import.c:2466,1
    - Dst: PyImport_ExtendInittab
      Src: /src/cpython/Python/import.c:2471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - name
    - (*initfunc)(void)
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2457
    functionDepth: 3
    functionLinenumber: 2457
    functionLinenumberEnd: 2472
    functionName: PyImport_AppendInittab
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExtendInittab
    - memset
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int PyImport_AppendInittab(const char *name, PyObject* (*initfunc)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DefaultRawMalloc
      Src: /src/cpython/Python/import.c:2486,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:2490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2477
    functionDepth: 2
    functionLinenumber: 2477
    functionLinenumberEnd: 2493
    functionName: init_builtin_modules_table
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _PyMem_DefaultRawMalloc
    linkageType: ''
    returnType: int
    signature: int init_builtin_modules_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/import.c:2500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2501
    functionName: fini_builtin_modules_table
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawFree
    linkageType: ''
    returnType: void
    signature: void fini_builtin_modules_table(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:2506,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:2512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2514,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:2517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2503
    functionDepth: 4
    functionLinenumber: 2503
    functionLinenumberEnd: 2525
    functionName: _PyImport_GetBuiltinModuleNames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_GetBuiltinModuleNames(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2538
    functionName: PyImport_GetMagicNumber
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached: []
    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: 2546
      start: 2542
    functionDepth: 0
    functionLinenumber: 2542
    functionLinenumberEnd: 2546
    functionName: PyImport_GetMagicTag
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      PyImport_GetMagicTag(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ExecCodeModuleWithPathnames
      Src: /src/cpython/Python/import.c:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - co
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2563
    functionDepth: 1
    functionLinenumber: 2563
    functionLinenumberEnd: 2568
    functionName: PyImport_ExecCodeModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyImport_ExecCodeModuleWithPathnames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ExecCodeModule(const char *name, PyObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ExecCodeModuleWithPathnames
      Src: /src/cpython/Python/import.c:2573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - co
    - pathname
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2570
    functionDepth: 1
    functionLinenumber: 2570
    functionLinenumberEnd: 2575
    functionName: PyImport_ExecCodeModuleEx
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    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/cpython/Python/import.c:2585,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/import.c:2590,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/import.c:2598,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:2603,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:2606,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:2609,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:2609,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/import.c:2612,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2614,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:2617,1
    - Dst: PyImport_ExecCodeModuleObject
      Src: /src/cpython/Python/import.c:2622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2624,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:2625,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:2626,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - name
    - co
    - pathname
    - cpathname
    argTypes:
    - char*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2577
    functionDepth: 2
    functionLinenumber: 2577
    functionLinenumberEnd: 2628
    functionName: PyImport_ExecCodeModuleWithPathnames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 3
    functionsReached:
    - PyImport_ExecCodeModuleObject
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - IMPORTLIB
    - Py_DECREF
    - PyObject_GetAttrString
    - Py_FatalError
    - _Py_ID
    - _PyInterpreterState_GET
    - PyObject_CallMethodOneArg
    - PyErr_Clear
    - PyUnicode_FromString
    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: import_add_module
      Src: /src/cpython/Python/import.c:2635,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:2640,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/import.c:2641,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2641,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:2643,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2643,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Python/import.c:2643,1
    - Dst: remove_module
      Src: /src/cpython/Python/import.c:2646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2647,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:2651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2630
    functionDepth: 13
    functionLinenumber: 2630
    functionLinenumberEnd: 2654
    functionName: module_dict_for_exec
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyDict_SetItem
    - Py_DECREF
    - _Py_ID
    - PyDict_Contains
    - PyEval_GetBuiltins
    - remove_module
    - PyModule_GetDict
    - import_add_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_dict_for_exec(PyThreadState *tstate, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Python/import.c:2662,1
    - Dst: remove_module
      Src: /src/cpython/Python/import.c:2664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2667,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:2669,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:2670,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/import.c:2671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - tstate
    - name
    - module_dict
    - code_object
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2656
    functionDepth: 10
    functionLinenumber: 2656
    functionLinenumberEnd: 2677
    functionName: exec_code_in_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyErr_Format
    - PyEval_EvalCode
    - remove_module
    - _PyErr_Occurred
    - import_get_module
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nexec_code_in_module(PyThreadState *tstate, PyObject *name,\n
      \                   PyObject *module_dict, PyObject *code_object)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:2683,1
    - Dst: module_dict_for_exec
      Src: /src/cpython/Python/import.c:2686,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:2694,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:2694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2697,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Python/import.c:2700,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2704,1
    - Dst: exec_code_in_module
      Src: /src/cpython/Python/import.c:2705,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - name
    - co
    - pathname
    - cpathname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2679
    functionDepth: 14
    functionLinenumber: 2679
    functionLinenumberEnd: 2709
    functionName: PyImport_ExecCodeModuleObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - IMPORTLIB
    - Py_DECREF
    - PyObject_GetAttrString
    - _Py_ID
    - module_dict_for_exec
    - _PyThreadState_GET
    - PyObject_CallMethodObjArgs
    - exec_code_in_module
    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/cpython/Python/import.c:2718,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/import.c:2721,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:2721,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/import.c:2724,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/import.c:2726,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/import.c:2727,1
    - Dst: update_code_filenames
      Src: /src/cpython/Python/import.c:2728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - co
    - oldname
    - newname
    argTypes:
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2712
    functionDepth: 2
    functionLinenumber: 2712
    functionLinenumberEnd: 2731
    functionName: update_code_filenames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyUnicode_Compare
    - PyCode_Check
    - PyTuple_GET_SIZE
    - Py_NewRef
    - update_code_filenames
    - PyTuple_GET_ITEM
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void update_code_filenames(PyCodeObject *co, PyObject *oldname, PyObject
      *newname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/import.c:2738,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:2742,1
    - Dst: update_code_filenames
      Src: /src/cpython/Python/import.c:2743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - co
    - newname
    argTypes:
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2733
    functionDepth: 3
    functionLinenumber: 2733
    functionLinenumberEnd: 2745
    functionName: update_compiled_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - update_code_filenames
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void update_compiled_module(PyCodeObject *co, PyObject *newname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:2765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - name
    - aliases
    - alias
    argTypes:
    - char*
    - struct _module_alias*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2755
    functionDepth: 0
    functionLinenumber: 2755
    functionLinenumberEnd: 2772
    functionName: resolve_module_alias
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool resolve_module_alias(const char *name, const struct _module_alias
      *aliases,\n                     const char **alias)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:2777,1
    - Dst: OVERRIDE_FROZEN_MODULES
      Src: /src/cpython/Python/import.c:2778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2774
    functionDepth: 1
    functionLinenumber: 2774
    functionLinenumberEnd: 2788
    functionName: use_frozen
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - OVERRIDE_FROZEN_MODULES
    linkageType: ''
    returnType: bool
    signature: bool use_frozen(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:2793,1
    - Dst: use_frozen
      Src: /src/cpython/Python/import.c:2797,1
    - Dst: ADD_MODULE
      Src: /src/cpython/Python/import.c:2816,1
    - Dst: ADD_MODULE
      Src: /src/cpython/Python/import.c:2824,1
    - Dst: ADD_MODULE
      Src: /src/cpython/Python/import.c:2832,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:2842,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/import.c:2846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2852,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:2855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2856,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2866,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2790
    functionDepth: 6
    functionLinenumber: 2790
    functionLinenumberEnd: 2868
    functionName: list_frozen_module_names
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - use_frozen
    - Py_DECREF
    - PyList_Append
    - PySequence_Contains
    - ADD_MODULE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_frozen_module_names(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2799
    functionDepth: 0
    functionLinenumber: 2799
    functionLinenumberEnd: 2811
    functionName: ADD_MODULE
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_MODULE(name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/import.c:2903,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/import.c:2906,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:2908,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/import.c:2910,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:2911,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - status
    - modname
    argTypes:
    - frozen_status
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2881
    functionDepth: 10
    functionLinenumber: 2881
    functionLinenumberEnd: 2913
    functionName: set_frozen_error
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_FromFormat
    - PyErr_SetImportError
    - PyErr_Clear
    - Py_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void set_frozen_error(frozen_status status, PyObject *modname)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:2925,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:2936,1
    - Dst: use_frozen
      Src: /src/cpython/Python/import.c:2942,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:2947,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:2955,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2915
    functionDepth: 2
    functionLinenumber: 2915
    functionLinenumberEnd: 2961
    functionName: look_up_frozen
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - strcmp
    - use_frozen
    linkageType: ''
    returnType: struct _frozen
    signature: 'struct _frozen *

      look_up_frozen(const char *name)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/import.c:2976,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:2982,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:2988,1
    - Dst: look_up_frozen
      Src: /src/cpython/Python/import.c:2992,1
    - Dst: resolve_module_alias
      Src: /src/cpython/Python/import.c:3007,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - nameobj
    - info
    argTypes:
    - PyObject*
    - struct frozen_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 2972
    functionDepth: 6
    functionLinenumber: 2972
    functionLinenumberEnd: 3019
    functionName: find_frozen
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - look_up_frozen
    - memset
    - resolve_module_alias
    - PyUnicode_AsUTF8
    - PyErr_Clear
    linkageType: ''
    returnType: frozen_status
    signature: frozen_status find_frozen(PyObject *nameobj, struct frozen_info *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/cpython/Python/import.c:3024,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:3027,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:3028,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/import.c:3031,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:3033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - interp
    - info
    argTypes:
    - PyInterpreterState*
    - struct frozen_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3040
      start: 3021
    functionDepth: 11
    functionLinenumber: 3021
    functionLinenumberEnd: 3040
    functionName: unmarshal_frozen_code
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - set_frozen_error
    - Py_DECREF
    - PyMarshal_ReadObjectFromString
    - PyErr_Format
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unmarshal_frozen_code(PyInterpreterState *interp, struct frozen_info *info)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:3051,1
    - Dst: find_frozen
      Src: /src/cpython/Python/import.c:3056,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:3064,1
    - Dst: unmarshal_frozen_code
      Src: /src/cpython/Python/import.c:3067,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:3074,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:3077,1
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:3078,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3080,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/import.c:3083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3085,1
    - Dst: module_dict_for_exec
      Src: /src/cpython/Python/import.c:3089,1
    - Dst: exec_code_in_module
      Src: /src/cpython/Python/import.c:3093,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3097,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:3101,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:3107,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/import.c:3109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3115,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3120,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3122
      start: 3048
    functionDepth: 14
    functionLinenumber: 3048
    functionLinenumberEnd: 3122
    functionName: PyImport_ImportFrozenModuleObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - set_frozen_error
    - find_frozen
    - Py_DECREF
    - module_dict_for_exec
    - _PyThreadState_GET
    - Py_NewRef
    - unmarshal_frozen_code
    - PyModule_GetDict
    - PyDict_SetItemString
    - exec_code_in_module
    - import_add_module
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyImport_ImportFrozenModuleObject(PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/import.c:3129,1
    - Dst: PyImport_ImportFrozenModuleObject
      Src: /src/cpython/Python/import.c:3132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3124
    functionDepth: 15
    functionLinenumber: 3124
    functionLinenumberEnd: 3135
    functionName: PyImport_ImportFrozenModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - PyImport_ImportFrozenModuleObject
    - PyUnicode_InternFromString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyImport_ImportFrozenModule(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:3149,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/import.c:3158,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/import.c:3162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3163,1
    - Dst: create_builtin
      Src: /src/cpython/Python/import.c:3169,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:3170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3171,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3175,1
    - Dst: exec_builtin_or_dynamic
      Src: /src/cpython/Python/import.c:3178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3179,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3185,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 3174
        line_start: 3174
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 3187
      start: 3146
    functionDepth: 17
    functionLinenumber: 3146
    functionLinenumberEnd: 3187
    functionName: bootstrap_imp
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - exec_builtin_or_dynamic
    - create_builtin
    - Py_CLEAR
    - PyUnicode_FromString
    - assert
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bootstrap_imp(PyThreadState *tstate)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:3203,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:3203,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:3206,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:3210,1
    - Dst: PyImport_ImportFrozenModule
      Src: /src/cpython/Python/import.c:3212,1
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Python/import.c:3216,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3220,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:3224,1
    - Dst: bootstrap_imp
      Src: /src/cpython/Python/import.c:3226,1
    - Dst: _PyImport_SetModuleString
      Src: /src/cpython/Python/import.c:3230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3231,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/import.c:3236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3242,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3244,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:3244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - tstate
    - sysmod
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 3202
        line_start: 3202
        source_file: /src/cpython/Python/import.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 3243
        line_start: 3243
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 3246
      start: 3200
    functionDepth: 18
    functionLinenumber: 3200
    functionLinenumberEnd: 3246
    functionName: init_importlib
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORTLIB
    - Py_DECREF
    - PyObject_CallMethod
    - _PyImport_SetModuleString
    - _PyInterpreterState_GetConfig
    - PyImport_AddModuleRef
    - PySys_FormatStderr
    - bootstrap_imp
    - PyImport_ImportFrozenModule
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: int init_importlib(PyThreadState *tstate, PyObject *sysmod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/import.c:3253,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3249
    functionDepth: 5
    functionLinenumber: 3249
    functionLinenumberEnd: 3260
    functionName: init_importlib_external
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORTLIB
    - Py_DECREF
    - PyObject_CallMethod
    linkageType: ''
    returnType: int
    signature: int init_importlib_external(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:3266,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - loader_name
    argTypes:
    - PyInterpreterState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3262
    functionDepth: 2
    functionLinenumber: 3262
    functionLinenumberEnd: 3267
    functionName: _PyImport_GetImportlibLoader
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORTLIB
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyImport_GetImportlibLoader(PyInterpreterState *interp,\n
      \                            const char *loader_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:3273,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3273,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:3279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - loader_name
    argTypes:
    - PyInterpreterState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3282
      start: 3269
    functionDepth: 2
    functionLinenumber: 3269
    functionLinenumberEnd: 3282
    functionName: _PyImport_GetImportlibExternalLoader
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORTLIB
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyImport_GetImportlibExternalLoader(PyInterpreterState
      *interp,\n                                     const char *loader_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:3287,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3287,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/import.c:3293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - module_globals
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3297
      start: 3284
    functionDepth: 5
    functionLinenumber: 3284
    functionLinenumberEnd: 3297
    functionName: _PyImport_BlessMyLoader
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - IMPORTLIB
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_BlessMyLoader(PyInterpreterState *interp, PyObject *module_globals)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/import.c:3302,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - m
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3303
      start: 3299
    functionDepth: 5
    functionLinenumber: 3299
    functionLinenumberEnd: 3303
    functionName: _PyImport_ImportlibModuleRepr
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - IMPORTLIB
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_ImportlibModuleRepr(PyInterpreterState *interp, PyObject *m)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Python/import.c:3323,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:3324,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:3327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:3328,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/import.c:3332,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3336,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:3342,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/import.c:3346,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/import.c:3349,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/import.c:3353,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/import.c:3356,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:3361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3362,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - tstate
    - path_importer_cache
    - path_hooks
    - p
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3316
    functionDepth: 9
    functionLinenumber: 3316
    functionLinenumberEnd: 3366
    functionName: get_path_importer
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - _PyErr_ExceptionMatches
    - PyDict_SetItem
    - Py_DECREF
    - PyErr_SetString
    - _PyErr_Clear
    - PyList_Check
    - PyObject_CallOneArg
    - PyList_Size
    - PyDict_GetItemRef
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_path_importer(PyThreadState *tstate, PyObject *path_importer_cache,\n
      \                 PyObject *path_hooks, PyObject *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:3371,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/import.c:3372,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/import.c:3376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3378,1
    - Dst: get_path_importer
      Src: /src/cpython/Python/import.c:3381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3368
    functionDepth: 10
    functionLinenumber: 3368
    functionLinenumberEnd: 3385
    functionName: PyImport_GetImporter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - get_path_importer
    - Py_DECREF
    - PySys_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetImporter(PyObject *path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/import.c:3397,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3392
    functionDepth: 9
    functionLinenumber: 3392
    functionLinenumberEnd: 3402
    functionName: _PyImport_InitDefaultImportFunc
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemStringRef
    - IMPORT_FUNC
    linkageType: ''
    returnType: int
    signature: int _PyImport_InitDefaultImportFunc(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - func
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3404
    functionDepth: 1
    functionLinenumber: 3404
    functionLinenumberEnd: 3408
    functionName: _PyImport_IsDefaultImportFunc
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - IMPORT_FUNC
    linkageType: ''
    returnType: int
    signature: int _PyImport_IsDefaultImportFunc(PyInterpreterState *interp, PyObject
      *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:3420,1
    - Dst: PyImport_Import
      Src: /src/cpython/Python/import.c:3423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3414
    functionDepth: 2
    functionLinenumber: 3414
    functionLinenumberEnd: 3426
    functionName: PyImport_ImportModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 44
    functionsReached:
    - PyImport_Import
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModule(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/import.c:3443,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/import.c:3449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3441
    functionDepth: 3
    functionLinenumber: 3441
    functionLinenumberEnd: 3450
    functionName: PyImport_ImportModuleNoBlock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyErr_WarnEx
    - PyImport_ImportModule
    linkageType: ''
    returnType: void
    signature: void PyImport_ImportModuleNoBlock(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/import.c:3470,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:3471,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/import.c:3475,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/import.c:3475,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3479,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/import.c:3479,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/import.c:3480,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3484,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/import.c:3484,1
    - Dst: PyFrame_GetCode
      Src: /src/cpython/Python/import.c:3488,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:3491,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:3492,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:3501,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/import.c:3502,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/import.c:3502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3508,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:3513,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/import.c:3515,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3517,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:3518,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 3478
        line_start: 3478
        source_file: /src/cpython/Python/import.c
    - condition: (PyTraceBack_Check(tb))
      pos:
        line_end: 3483
        line_start: 3483
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 3519
      start: 3455
    functionDepth: 3
    functionLinenumber: 3455
    functionLinenumberEnd: 3519
    functionName: remove_importlib_frames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - Py_DECREF
    - PyException_GetTraceback
    - PyType_IsSubtype
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - PyFrame_GetCode
    - _PyInterpreterState_GetConfig
    - Py_XSETREF
    - Py_XNewRef
    - _PyUnicode_EqualToASCIIString
    - PyException_SetTraceback
    - PyTraceBack_Check
    - Py_TYPE
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void remove_importlib_frames(PyThreadState *tstate)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3533,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:3536,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3537,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3540,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3544,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3547,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3547,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3552,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3553,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:3559,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3559,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/import.c:3564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3565,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/import.c:3570,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:3578,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3578,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3582,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3583,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/import.c:3589,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3595,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3595,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3599,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3604,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3605,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/import.c:3610,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3610,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:3617,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3618,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:3625,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/import.c:3629,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3633,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:3639,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3644,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3651,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:3652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3653,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3654,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/import.c:3658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3659,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3663,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3668,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3669,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 133
    argCount: 4
    argNames:
    - tstate
    - name
    - globals
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3671
      start: 3522
    functionDepth: 10
    functionLinenumber: 3522
    functionLinenumberEnd: 3671
    functionName: resolve_name
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_FromFormat
    - _Py_ID
    - PyDict_Contains
    - _PyErr_SetString
    - PyObject_GetAttr
    - PyUnicode_FindChar
    - Py_SETREF
    - PyObject_RichCompareBool
    - PyUnicode_Check
    - PyDict_GetItemRef
    - PyDict_Check
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:3678,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/import.c:3685,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/import.c:3688,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3689,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/import.c:3692,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3693,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3694,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/import.c:3697,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3701,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3702,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3703,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3707,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3708,1
    - Dst: _IMPORT_TIME_HEADER
      Src: /src/cpython/Python/import.c:3717,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/import.c:3721,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
      Src: /src/cpython/Python/import.c:3725,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_START
      Src: /src/cpython/Python/import.c:3726,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:3726,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Python/import.c:3728,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3728,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3728,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3729,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
      Src: /src/cpython/Python/import.c:3731,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_DONE
      Src: /src/cpython/Python/import.c:3732,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:3732,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/import.c:3737,1
    - Dst: fprintf
      Src: /src/cpython/Python/import.c:3741,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Python/import.c:3742,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Python/import.c:3743,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:3744,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - tstate
    - abs_name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3673
    functionDepth: 6
    functionLinenumber: 3673
    functionLinenumberEnd: 3752
    functionName: import_find_and_load
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySys_GetOptionalAttrString
    - IMPORTLIB
    - IMPORT_FUNC
    - PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
    - _Py_ID
    - _PyTime_AsMicroseconds
    - _PyInterpreterState_GetConfig
    - PyObject_CallMethodObjArgs
    - PyUnicode_AsUTF8
    - _IMPORT_TIME_HEADER
    - PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
    - PyTime_PerfCounterRaw
    - PyDTrace_IMPORT_FIND_LOAD_START
    - PyDTrace_IMPORT_FIND_LOAD_DONE
    - _PySys_Audit
    - fprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_find_and_load(PyThreadState *tstate, PyObject *abs_name)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:3759,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3768,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3775,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3776,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3781,1
    - Dst: resolve_name
      Src: /src/cpython/Python/import.c:3786,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3791,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3792,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:3795,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:3798,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:3799,1
    - Dst: import_ensure_initialized
      Src: /src/cpython/Python/import.c:3804,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3809,1
    - Dst: import_find_and_load
      Src: /src/cpython/Python/import.c:3810,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/import.c:3818,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3823,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:3827,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:3834,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:3839,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/import.c:3844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3845,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3849,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:3850,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:3856,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:3858,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/import.c:3859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3867,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:3871,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/import.c:3875,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3875,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Python/import.c:3880,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3881,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3881,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3882,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:3885,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3890,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3891,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3892,1
    - Dst: remove_importlib_frames
      Src: /src/cpython/Python/import.c:3894,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 112
    argCount: 5
    argNames:
    - name
    - globals
    - locals
    - fromlist
    - level
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3754
    functionDepth: 11
    functionLinenumber: 3754
    functionLinenumberEnd: 3897
    functionName: PyImport_ImportModuleLevelObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - _PyErr_Format
    - _PyThreadState_GET
    - import_ensure_initialized
    - PyUnicode_FindChar
    - PyUnicode_Check
    - PyUnicode_Substring
    - import_find_and_load
    - Py_DECREF
    - _Py_ID
    - PyImport_ImportModuleLevelObject
    - resolve_name
    - Py_NewRef
    - _PyErr_SetString
    - PyUnicode_GET_LENGTH
    - import_get_module
    - PyObject_IsTrue
    - IMPORTLIB
    - IMPORT_FUNC
    - PyObject_HasAttrWithError
    - PyObject_CallMethodObjArgs
    - remove_importlib_frames
    - _PyErr_Occurred
    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/cpython/Python/import.c:3904,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/import.c:3907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3909,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: 3911
      start: 3899
    functionDepth: 12
    functionLinenumber: 3899
    functionLinenumberEnd: 3911
    functionName: PyImport_ImportModuleLevel
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - PyImport_ImportModuleLevelObject
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_ImportModuleLevel(const char *name, PyObject
      *globals, PyObject *locals,\n                           PyObject *fromlist,
      int level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/import.c:3921,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3921,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:3923,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/import.c:3927,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/import.c:3933,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3936
      start: 3917
    functionDepth: 11
    functionLinenumber: 3917
    functionLinenumberEnd: 3936
    functionName: PyImport_ReloadModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_CallMethodOneArg
    - _Py_ID
    - PyImport_ImportModule
    - PyImport_GetModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ReloadModule(PyObject *m)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:3951,1
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:3957,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/import.c:3963,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:3965,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/import.c:3967,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3967,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:3973,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/import.c:3978,1
    - Dst: _PyEval_EnsureBuiltinsWithModule
      Src: /src/cpython/Python/import.c:3982,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:3988,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/import.c:3989,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3989,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/import.c:3991,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3991,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:3995,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3995,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/import.c:4002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4006,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:4008,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4009,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/import.c:4010,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4014,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4015,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4016,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4017,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 1
    argNames:
    - module_name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 3948
    functionDepth: 11
    functionLinenumber: 3948
    functionLinenumberEnd: 4020
    functionName: PyImport_Import
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 9
    functionsReached:
    - PyList_New
    - Py_INCREF
    - Py_XDECREF
    - PyObject_CallFunction
    - PyEval_GetGlobals
    - Py_DECREF
    - _PyEval_EnsureBuiltinsWithModule
    - _Py_ID
    - PyObject_GetItem
    - _PyErr_SetObject
    - _PyThreadState_GET
    - PyObject_GetAttr
    - PyDict_New
    - PyDict_Check
    - _PyErr_Occurred
    - import_get_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_Import(PyObject *module_name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4031,1
    - Dst: init_builtin_modules_table
      Src: /src/cpython/Python/import.c:4033,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/import.c:4034,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/import.c:4036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 4027
    functionDepth: 3
    functionLinenumber: 4027
    functionLinenumberEnd: 4037
    functionName: _PyImport_Init
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyStatus_NoMemory
    - _PyStatus_OK
    - init_builtin_modules_table
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyImport_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _extensions_cache_clear_all
      Src: /src/cpython/Python/import.c:4045,1
    - Dst: fini_builtin_modules_table
      Src: /src/cpython/Python/import.c:4048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4039
    functionDepth: 3
    functionLinenumber: 4039
    functionLinenumberEnd: 4049
    functionName: _PyImport_Fini
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - fini_builtin_modules_table
    - _extensions_cache_clear_all
    linkageType: ''
    returnType: void
    signature: void _PyImport_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/import.c:4058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4051
    functionDepth: 2
    functionLinenumber: 4051
    functionLinenumberEnd: 4060
    functionName: _PyImport_Fini2
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyMem_DefaultRawFree
    linkageType: ''
    returnType: void
    signature: void _PyImport_Fini2(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_importlib
      Src: /src/cpython/Python/import.c:4075,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4076,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/import.c:4080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tstate
    - sysmod
    - importlib
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4081
      start: 4067
    functionDepth: 19
    functionLinenumber: 4067
    functionLinenumberEnd: 4081
    functionName: _PyImport_InitCore
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyStatus_ERR
    - _PyStatus_OK
    - init_importlib
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyImport_InitCore(PyThreadState *tstate, PyObject *sysmod,
      int importlib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:4090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4087
    functionDepth: 1
    functionLinenumber: 4087
    functionLinenumberEnd: 4093
    functionName: _PyImport_IsInitialized
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - MODULES
    linkageType: ''
    returnType: int
    signature: int _PyImport_IsInitialized(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4101,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:4101,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4102,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:4102,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4103,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:4103,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4104,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:4104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4105
      start: 4096
    functionDepth: 1
    functionLinenumber: 4096
    functionLinenumberEnd: 4105
    functionName: _PyImport_ClearCore
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - IMPORTLIB
    - IMPORT_FUNC
    - MODULES
    - MODULES_BY_INDEX
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyImport_ClearCore(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:4110,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4112,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4113,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4119,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4120,1
    - Dst: _PyImport_ClearCore
      Src: /src/cpython/Python/import.c:4124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 4107
    functionDepth: 2
    functionLinenumber: 4107
    functionLinenumberEnd: 4125
    functionName: _PyImport_FiniCore
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - _PyImport_ClearCore
    - PyErr_FormatUnraisable
    - _PySys_ClearAttrString
    linkageType: ''
    returnType: void
    signature: void _PyImport_FiniCore(PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/import.c:4135,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/import.c:4141,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/import.c:4144,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/import.c:4146,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/import.c:4148,1
    - Dst: PyList_Insert
      Src: /src/cpython/Python/import.c:4153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4156,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/import.c:4160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - tstate
    - verbose
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4166
      start: 4132
    functionDepth: 2
    functionLinenumber: 4132
    functionLinenumberEnd: 4166
    functionName: init_zipimport
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - _PyErr_Clear
    - PySys_WriteStderr
    - PySys_GetAttrString
    - PyList_Insert
    linkageType: ''
    returnType: int
    signature: int init_zipimport(PyThreadState *tstate, int verbose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:4171,1
    - Dst: init_importlib_external
      Src: /src/cpython/Python/import.c:4175,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/import.c:4176,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4177,1
    - Dst: init_zipimport
      Src: /src/cpython/Python/import.c:4180,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/import.c:4181,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4182,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/import.c:4185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4186
      start: 4168
    functionDepth: 6
    functionLinenumber: 4168
    functionLinenumberEnd: 4186
    functionName: _PyImport_InitExternal
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyErr_Print
    - init_importlib_external
    - PyErr_Print
    - _PyInterpreterState_GetConfig
    - _PyStatus_ERR
    - init_zipimport
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyImport_InitExternal(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:4191,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4195,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4196,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4199,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4203
      start: 4188
    functionDepth: 1
    functionLinenumber: 4188
    functionLinenumberEnd: 4203
    functionName: _PyImport_FiniExternal
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - PyErr_FormatUnraisable
    - _PySys_ClearAttrString
    linkageType: ''
    returnType: void
    signature: void _PyImport_FiniExternal(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_Import
      Src: /src/cpython/Python/import.c:4213,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:4217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - modname
    - attrname
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4220
      start: 4210
    functionDepth: 12
    functionLinenumber: 4210
    functionLinenumberEnd: 4220
    functionName: PyImport_ImportModuleAttr
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - PyObject_GetAttr
    - PyImport_Import
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModuleAttr(PyObject *modname, PyObject *attrname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:4225,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:4229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4231,1
    - Dst: PyImport_ImportModuleAttr
      Src: /src/cpython/Python/import.c:4234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - modname
    - attrname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4238
      start: 4222
    functionDepth: 13
    functionLinenumber: 4222
    functionLinenumberEnd: 4238
    functionName: PyImport_ImportModuleAttrString
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 35
    functionsReached:
    - PyImport_ImportModuleAttr
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModuleAttrString(const char *modname, const char *attrname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4257,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/import.c:4258,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Python/import.c:4258,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:4258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4259
      start: 4253
    functionDepth: 1
    functionLinenumber: 4253
    functionLinenumberEnd: 4259
    functionName: _imp_lock_held_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyMutex_IsLocked
    - _PyInterpreterState_GET
    - IMPORT_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_lock_held_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4275,1
    - Dst: _PyImport_AcquireLock
      Src: /src/cpython/Python/import.c:4276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4271
    functionDepth: 2
    functionLinenumber: 4271
    functionLinenumberEnd: 4278
    functionName: _imp_acquire_lock_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyImport_AcquireLock
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_acquire_lock_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4292,1
    - Dst: _PyRecursiveMutex_IsLockedByCurrentThread
      Src: /src/cpython/Python/import.c:4293,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:4293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:4294,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:4298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4300
      start: 4288
    functionDepth: 2
    functionLinenumber: 4288
    functionLinenumberEnd: 4300
    functionName: _imp_release_lock_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyImport_ReleaseLock
    - _PyInterpreterState_GET
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - IMPORT_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_release_lock_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_compiled_module
      Src: /src/cpython/Python/import.c:4322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - code
    - path
    argTypes:
    - PyObject*
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4325
      start: 4316
    functionDepth: 4
    functionLinenumber: 4316
    functionLinenumberEnd: 4325
    functionName: _imp__fix_co_filename_impl
    functionSourceFile: /src/cpython/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: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:4341,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:4343,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:4348,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:4349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/import.c:4351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4352,1
    - Dst: create_builtin
      Src: /src/cpython/Python/import.c:4356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4359
      start: 4337
    functionDepth: 17
    functionLinenumber: 4337
    functionLinenumberEnd: 4359
    functionName: _imp_create_builtin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyThreadState_GET
    - create_builtin
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_create_builtin(PyObject *module, PyObject *spec)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:4374,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:4382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4384,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:4387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4368
    functionDepth: 4
    functionLinenumber: 4368
    functionLinenumberEnd: 4397
    functionName: _imp_extension_suffixes_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_extension_suffixes_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:4412,1
    - Dst: PyImport_ImportFrozenModuleObject
      Src: /src/cpython/Python/import.c:4415,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:4421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4422
      start: 4408
    functionDepth: 15
    functionLinenumber: 4408
    functionLinenumberEnd: 4422
    functionName: _imp_init_frozen_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyImport_ImportFrozenModuleObject
    - import_add_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_init_frozen_impl(PyObject *module, PyObject *name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_frozen
      Src: /src/cpython/Python/import.c:4448,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:4456,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Python/import.c:4462,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:4470,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4472,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/import.c:4477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4480,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4481,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - module
    - name
    - withdata
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4443
    functionDepth: 11
    functionLinenumber: 4443
    functionLinenumberEnd: 4483
    functionName: _imp_find_frozen_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - set_frozen_error
    - find_frozen
    - PyMemoryView_FromMemory
    - PyTuple_Pack
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_find_frozen_impl(PyObject *module, PyObject *name, int withdata)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Python/import.c:4502,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/import.c:4503,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/import.c:4510,1
    - Dst: find_frozen
      Src: /src/cpython/Python/import.c:4514,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:4516,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:4526,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4530,1
    - Dst: unmarshal_frozen_code
      Src: /src/cpython/Python/import.c:4531,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/import.c:4533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - module
    - name
    - dataobj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4536
      start: 4495
    functionDepth: 12
    functionLinenumber: 4495
    functionLinenumberEnd: 4536
    functionName: _imp_get_frozen_object_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - set_frozen_error
    - find_frozen
    - PyObject_CheckBuffer
    - _PyInterpreterState_GET
    - unmarshal_frozen_code
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_imp_get_frozen_object_impl(PyObject *module, PyObject
      *name,\n                            PyObject *dataobj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_frozen
      Src: /src/cpython/Python/import.c:4552,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:4554,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/import.c:4557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4547
    functionDepth: 11
    functionLinenumber: 4547
    functionLinenumberEnd: 4558
    functionName: _imp_is_frozen_package_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - set_frozen_error
    - find_frozen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen_package_impl(PyObject *module, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/import.c:4573,1
    - Dst: is_builtin
      Src: /src/cpython/Python/import.c:4573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4574
      start: 4569
    functionDepth: 3
    functionLinenumber: 4569
    functionLinenumberEnd: 4574
    functionName: _imp_is_builtin_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - is_builtin
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_builtin_impl(PyObject *module, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_frozen
      Src: /src/cpython/Python/import.c:4590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4585
    functionDepth: 7
    functionLinenumber: 4585
    functionLinenumberEnd: 4595
    functionName: _imp_is_frozen_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - find_frozen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen_impl(PyObject *module, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_frozen_module_names
      Src: /src/cpython/Python/import.c:4607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4608
      start: 4603
    functionDepth: 7
    functionLinenumber: 4603
    functionLinenumberEnd: 4608
    functionName: _imp__frozen_module_names_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - list_frozen_module_names
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp__frozen_module_names_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4626,1
    - Dst: OVERRIDE_FROZEN_MODULES
      Src: /src/cpython/Python/import.c:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - override
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4629
      start: 4622
    functionDepth: 1
    functionLinenumber: 4622
    functionLinenumberEnd: 4629
    functionName: _imp__override_frozen_modules_for_tests_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - OVERRIDE_FROZEN_MODULES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp__override_frozen_modules_for_tests_impl(PyObject *module, int override)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4647,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:4648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:4649,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:4655,1
    - Dst: OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
      Src: /src/cpython/Python/import.c:4660,1
    - Dst: OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
      Src: /src/cpython/Python/import.c:4661,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/import.c:4662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - override
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4642
    functionDepth: 1
    functionLinenumber: 4642
    functionLinenumberEnd: 4664
    functionName: _imp__override_multi_interp_extensions_check_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_imp__override_multi_interp_extensions_check_impl(PyObject
      *module,\n                                                  int override)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:4683,1
    - Dst: _Py_ext_module_loader_info_init_from_spec
      Src: /src/cpython/Python/import.c:4686,1
    - Dst: import_find_extension
      Src: /src/cpython/Python/import.c:4691,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4693,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4693,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4694,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4696,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/import.c:4696,1
    - Dst: _PyModule_GetDef
      Src: /src/cpython/Python/import.c:4697,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:4698,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4701,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4710,1
    - Dst: _extensions_cache_delete
      Src: /src/cpython/Python/import.c:4712,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/import.c:4715,1
    - Dst: Py_fopen
      Src: /src/cpython/Python/import.c:4726,1
    - Dst: _PyImport_GetModInitFunc
      Src: /src/cpython/Python/import.c:4735,1
    - Dst: _PyEval_EnableGILTransient
      Src: /src/cpython/Python/import.c:4746,1
    - Dst: import_run_extension
      Src: /src/cpython/Python/import.c:4748,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:4749,1
    - Dst: _PyImport_CheckGILForModule
      Src: /src/cpython/Python/import.c:4751,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4752,1
    - Dst: fclose
      Src: /src/cpython/Python/import.c:4759,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/import.c:4763,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - module
    - spec
    - file
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 4692
        line_start: 4692
        source_file: /src/cpython/Python/import.c
    - condition: "(_PyModule_GetDef(mod) == NULL\n                || cached->def ==
        _PyModule_GetDef(mod))"
      pos:
        line_end: 4696
        line_start: 4695
        source_file: /src/cpython/Python/import.c
    - condition: (cached->def->m_base.m_copy == NULL)
      pos:
        line_end: 4709
        line_start: 4709
        source_file: /src/cpython/Python/import.c
    - condition: (cached != NULL)
      pos:
        line_end: 4693
        line_start: 4693
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 4765
      start: 4678
    functionDepth: 16
    functionLinenumber: 4678
    functionLinenumberEnd: 4765
    functionName: _imp_create_dynamic_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _extensions_cache_delete
    - _PyEval_EnableGILTransient
    - _PyImport_GetModInitFunc
    - get_modules_dict
    - import_find_extension
    - _PyThreadState_GET
    - _Py_ext_module_loader_info_init_from_spec
    - Py_fopen
    - _Py_ext_module_loader_info_clear
    - _PyModule_GetDef
    - import_run_extension
    - assert_singlephase
    - PySys_Audit
    - _PyImport_CheckGILForModule
    - Py_CLEAR
    - _PyErr_Occurred
    - assert
    - fclose
    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/cpython/Python/import.c:4780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4781
      start: 4776
    functionDepth: 4
    functionLinenumber: 4776
    functionLinenumberEnd: 4781
    functionName: _imp_exec_dynamic_impl
    functionSourceFile: /src/cpython/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/cpython/Python/import.c:4799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4800
      start: 4795
    functionDepth: 4
    functionLinenumber: 4795
    functionLinenumberEnd: 4800
    functionName: _imp_exec_builtin_impl
    functionSourceFile: /src/cpython/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/cpython/Python/import.c:4817,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/import.c:4827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - key
    - source
    argTypes:
    - PyObject*
    - long
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4828
      start: 4809
    functionDepth: 4
    functionLinenumber: 4809
    functionLinenumberEnd: 4828
    functionName: _imp_source_hash_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_KeyedHash
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_source_hash_impl(PyObject *module, long key, Py_buffer *source)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/import.c:4861,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/import.c:4862,1
    - Dst: PyModule_Add
      Src: /src/cpython/Python/import.c:4863,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Python/import.c:4867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4874
      start: 4858
    functionDepth: 5
    functionLinenumber: 4858
    functionLinenumberEnd: 4874
    functionName: imp_module_exec
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - PyModule_AddIntConstant
    - PyUnicode_FromWideChar
    - _Py_GetConfig
    linkageType: ''
    returnType: int
    signature: int imp_module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/import.c:4896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4897
      start: 4893
    functionDepth: 2
    functionLinenumber: 4893
    functionLinenumberEnd: 4897
    functionName: PyInit__imp
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__imp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwitchToThread
      Src: /src/cpython/Python/lock.c:46,1
    - Dst: sched_yield
      Src: /src/cpython/Python/lock.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: _Py_yield
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - SwitchToThread
    - sched_yield
    linkageType: ''
    returnType: void
    signature: void _Py_yield(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/lock.c:55,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:57,1
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/lock.c:67,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/lock.c:70,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:82,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:90,1
    - Dst: Py_IsFinalizing
      Src: /src/cpython/Python/lock.c:98,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/lock.c:106,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:115,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:120,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:125,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/lock.c:125,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Python/lock.c:130,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:138,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Python/lock.c:143,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/lock.c:150,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 3
    argNames:
    - m
    - timeout
    - flags
    argTypes:
    - PyMutex*
    - PyTime_t
    - _PyLockFlags
    assertStmts:
    - condition: (_Py_atomic_load_uint8_relaxed(&m->_bits) & _Py_LOCKED)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Python/lock.c
    - condition: (timeout >= 0)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 152
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 152
    functionName: _PyMutex_LockTimed
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_load_uint8_relaxed
    - PyTime_MonotonicRaw
    - Py_IsFinalizing
    - Py_MakePendingCalls
    - PyErr_SetString
    - _Py_yield
    - _PyParkingLot_Park
    - _PyDeadline_Get
    - _Py_atomic_compare_exchange_uint8
    - _PyTime_Add
    - assert
    linkageType: ''
    returnType: PyLockStatus
    signature: PyLockStatus _PyMutex_LockTimed(PyMutex *m, PyTime_t timeout, _PyLockFlags
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/lock.c:163,1
    - Dst: _Py_atomic_store_uint8
      Src: /src/cpython/Python/lock.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - arg
    - park_arg
    - has_more_waiters
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: mutex_unpark
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint8
    - PyTime_MonotonicRaw
    linkageType: ''
    returnType: void
    signature: void mutex_unpark(void *arg, void *park_arg, int has_more_waiters)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:180,1
    - Dst: _PyParkingLot_Unpark
      Src: /src/cpython/Python/lock.c:188,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: _PyMutex_TryUnlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_compare_exchange_uint8
    - _Py_atomic_load_uint8
    - _PyParkingLot_Unpark
    linkageType: ''
    returnType: int
    signature: int _PyMutex_TryUnlock(PyMutex *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySemaphore_Init
      Src: /src/cpython/Python/lock.c:209,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/lock.c:211,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:215,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:224,1
    - Dst: _PySemaphore_Wait
      Src: /src/cpython/Python/lock.c:230,1
    - Dst: _PySemaphore_Destroy
      Src: /src/cpython/Python/lock.c:233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRawMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 234
    functionName: _PyRawMutex_LockSlow
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _PySemaphore_Destroy
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr
    - _PySemaphore_Wait
    - _PySemaphore_Init
    linkageType: ''
    returnType: void
    signature: void _PyRawMutex_LockSlow(_PyRawMutex *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/lock.c:239,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/lock.c:242,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:248,1
    - Dst: _PySemaphore_Wakeup
      Src: /src/cpython/Python/lock.c:249,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRawMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: _PyRawMutex_UnlockSlow
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - _PySemaphore_Wakeup
    - _Py_atomic_load_uintptr
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _PyRawMutex_UnlockSlow(_PyRawMutex *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evt
    argTypes:
    - PyEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: _PyEvent_IsSet
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_load_uint8
    linkageType: ''
    returnType: int
    signature: int _PyEvent_IsSet(PyEvent *evt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uint8
      Src: /src/cpython/Python/lock.c:271,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:281,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - evt
    argTypes:
    - PyEvent*
    assertStmts:
    - condition: (v == _Py_HAS_PARKED)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: _PyEvent_Notify
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 15
    functionsReached:
    - _PyParkingLot_UnparkAll
    - assert
    - _Py_atomic_exchange_uint8
    linkageType: ''
    returnType: void
    signature: void _PyEvent_Notify(PyEvent *evt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEvent_WaitTimed
      Src: /src/cpython/Python/lock.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - evt
    argTypes:
    - PyEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: PyEvent_Wait
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 11
    functionsReached:
    - PyEvent_WaitTimed
    linkageType: ''
    returnType: void
    signature: void PyEvent_Wait(PyEvent *evt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:297,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:303,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:309,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - evt
    - timeout_ns
    - detach
    argTypes:
    - PyEvent*
    - PyTime_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 314
    functionName: PyEvent_WaitTimed
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_compare_exchange_uint8
    - _PyParkingLot_Park
    - _Py_atomic_load_uint8
    linkageType: ''
    returnType: int
    signature: int PyEvent_WaitTimed(PyEvent *evt, PyTime_t timeout_ns, int detach)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/lock.c:326,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/lock.c:327,1
    - Dst: _Py_atomic_exchange_uint8
      Src: /src/cpython/Python/lock.c:332,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - o
    - res
    argTypes:
    - _PyOnceFlag*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 338
    functionName: unlock_once
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _Py_atomic_exchange_uint8
    - Py_UNREACHABLE
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int unlock_once(_PyOnceFlag *o, int res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:343,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:346,1
    - Dst: fn
      Src: /src/cpython/Python/lock.c:349,1
    - Dst: unlock_once
      Src: /src/cpython/Python/lock.c:350,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:358,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:362,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:369,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - flag
    - fn
    - arg
    argTypes:
    - _PyOnceFlag*
    - _Py_once_fn_t*
    - void*
    assertStmts:
    - condition: ((v & _Py_LOCKED))
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 372
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 372
    functionName: _PyOnceFlag_CallOnceSlow
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - fn
    - _Py_atomic_load_uint8
    - unlock_once
    - _PyParkingLot_Park
    - _Py_atomic_compare_exchange_uint8
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyOnceFlag_CallOnceSlow(_PyOnceFlag *flag, _Py_once_fn_t *fn,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ullong_relaxed
      Src: /src/cpython/Python/lock.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - tid
    argTypes:
    - _PyRecursiveMutex*
    - PyThread_ident_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: recursive_mutex_is_owned_by
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ullong_relaxed
    linkageType: ''
    returnType: int
    signature: int recursive_mutex_is_owned_by(_PyRecursiveMutex *m, PyThread_ident_t
      tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recursive_mutex_is_owned_by
      Src: /src/cpython/Python/lock.c:383,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/lock.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: _PyRecursiveMutex_IsLockedByCurrentThread
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 5
    functionsReached:
    - recursive_mutex_is_owned_by
    - PyThread_get_thread_ident_ex
    linkageType: ''
    returnType: int
    signature: int _PyRecursiveMutex_IsLockedByCurrentThread(_PyRecursiveMutex *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/lock.c:389,1
    - Dst: recursive_mutex_is_owned_by
      Src: /src/cpython/Python/lock.c:390,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/lock.c:394,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Python/lock.c:395,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts:
    - condition: (m->level == 0)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: _PyRecursiveMutex_Lock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_store_ullong_relaxed
    - recursive_mutex_is_owned_by
    - PyMutex_Lock
    - PyThread_get_thread_ident_ex
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyRecursiveMutex_Lock(_PyRecursiveMutex *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/lock.c:402,1
    - Dst: recursive_mutex_is_owned_by
      Src: /src/cpython/Python/lock.c:403,1
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Python/lock.c:407,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Python/lock.c:409,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - m
    - timeout
    - flags
    argTypes:
    - _PyRecursiveMutex*
    - PyTime_t
    - _PyLockFlags
    assertStmts:
    - condition: (m->level == 0)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: _PyRecursiveMutex_LockTimed
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_store_ullong_relaxed
    - recursive_mutex_is_owned_by
    - _PyMutex_LockTimed
    - PyThread_get_thread_ident_ex
    - assert
    linkageType: ''
    returnType: PyLockStatus
    signature: PyLockStatus _PyRecursiveMutex_LockTimed(_PyRecursiveMutex *m, PyTime_t
      timeout, _PyLockFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_TryUnlock
      Src: /src/cpython/Python/lock.c:418,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/lock.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: _PyRecursiveMutex_Unlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - Py_FatalError
    - _PyRecursiveMutex_TryUnlock
    linkageType: ''
    returnType: void
    signature: void _PyRecursiveMutex_Unlock(_PyRecursiveMutex *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/lock.c:427,1
    - Dst: recursive_mutex_is_owned_by
      Src: /src/cpython/Python/lock.c:428,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:435,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Python/lock.c:436,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/lock.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts:
    - condition: (m->level == 0)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: _PyRecursiveMutex_TryUnlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_store_ullong_relaxed
    - recursive_mutex_is_owned_by
    - PyMutex_Unlock
    - PyThread_get_thread_ident_ex
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyRecursiveMutex_TryUnlock(_PyRecursiveMutex *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:451,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:458,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/lock.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - rwmutex
    - bits
    argTypes:
    - _PyRWMutex*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 460
    functionName: rwmutex_set_parked_and_wait
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr_relaxed
    - _PyParkingLot_Park
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t rwmutex_set_parked_and_wait(_PyRWMutex *rwmutex, uintptr_t
      bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: rwmutex_reader_count
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t rwmutex_reader_count(uintptr_t bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/lock.c:472,1
    - Dst: rwmutex_set_parked_and_wait
      Src: /src/cpython/Python/lock.c:476,1
    - Dst: rwmutex_set_parked_and_wait
      Src: /src/cpython/Python/lock.c:484,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:489,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:489,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:491,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - rwmutex
    argTypes:
    - _PyRWMutex*
    assertStmts:
    - condition: (rwmutex_reader_count(bits) < _Py_RWMUTEX_MAX_READERS)
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 498
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 498
    functionName: _PyRWMutex_RLock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - rwmutex_set_parked_and_wait
    - rwmutex_reader_count
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr_relaxed
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyRWMutex_RLock(_PyRWMutex *rwmutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_uintptr
      Src: /src/cpython/Python/lock.c:503,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:504,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:504,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:507,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - rwmutex
    argTypes:
    - _PyRWMutex*
    assertStmts:
    - condition: (rwmutex_reader_count(bits) > 0 && "lock was not read-locked")
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 511
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 511
    functionName: _PyRWMutex_RUnlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _Py_atomic_add_uintptr
    - rwmutex_reader_count
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyRWMutex_RUnlock(_PyRWMutex *rwmutex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/lock.c:516,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:521,1
    - Dst: rwmutex_set_parked_and_wait
      Src: /src/cpython/Python/lock.c:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - rwmutex
    argTypes:
    - _PyRWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 532
    functionName: _PyRWMutex_Lock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr_relaxed
    - rwmutex_set_parked_and_wait
    linkageType: ''
    returnType: void
    signature: void _PyRWMutex_Lock(_PyRWMutex *rwmutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uintptr
      Src: /src/cpython/Python/lock.c:537,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:539,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:540,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:540,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - rwmutex
    argTypes:
    - _PyRWMutex*
    assertStmts:
    - condition: (rwmutex_reader_count(old_bits) == 0 && "lock was read-locked")
      pos:
        line_end: 539
        line_start: 539
        source_file: /src/cpython/Python/lock.c
    - condition: ((old_bits & _Py_WRITE_LOCKED) && "lock was not write-locked")
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 545
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 545
    functionName: _PyRWMutex_Unlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - _PyParkingLot_UnparkAll
    - assert
    - rwmutex_reader_count
    - _Py_atomic_exchange_uintptr
    linkageType: ''
    returnType: void
    signature: void _PyRWMutex_Unlock(_PyRWMutex *rwmutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sequence
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 548
    functionName: SEQLOCK_IS_UPDATING
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEQLOCK_IS_UPDATING(sequence)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Python/lock.c:552,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:554,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:556,1
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Python/lock.c:557,1
    - Dst: _Py_atomic_compare_exchange_uint32
      Src: /src/cpython/Python/lock.c:559,1
    - Dst: _Py_atomic_fence_release
      Src: /src/cpython/Python/lock.c:561,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 568
    functionName: _PySeqLock_LockWrite
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - _Py_yield
    - SEQLOCK_IS_UPDATING
    - _Py_atomic_load_uint32_relaxed
    - _Py_atomic_compare_exchange_uint32
    - _Py_atomic_fence_release
    linkageType: ''
    returnType: void
    signature: void _PySeqLock_LockWrite(_PySeqLock *seqlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Python/lock.c:572,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:573,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:573,1
    - Dst: _Py_atomic_store_uint32
      Src: /src/cpython/Python/lock.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts:
    - condition: (!SEQLOCK_IS_UPDATING(new_seq))
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: _PySeqLock_AbandonWrite
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - SEQLOCK_IS_UPDATING
    - _Py_atomic_store_uint32
    - assert
    - _Py_atomic_load_uint32_relaxed
    linkageType: ''
    returnType: void
    signature: void _PySeqLock_AbandonWrite(_PySeqLock *seqlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Python/lock.c:579,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:580,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:580,1
    - Dst: _Py_atomic_store_uint32
      Src: /src/cpython/Python/lock.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts:
    - condition: (!SEQLOCK_IS_UPDATING(new_seq))
      pos:
        line_end: 579
        line_start: 579
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: _PySeqLock_UnlockWrite
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - SEQLOCK_IS_UPDATING
    - _Py_atomic_store_uint32
    - assert
    - _Py_atomic_load_uint32_relaxed
    linkageType: ''
    returnType: void
    signature: void _PySeqLock_UnlockWrite(_PySeqLock *seqlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_acquire
      Src: /src/cpython/Python/lock.c:586,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:587,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:588,1
    - Dst: _Py_atomic_load_uint32_acquire
      Src: /src/cpython/Python/lock.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: _PySeqLock_BeginRead
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - _Py_yield
    - _Py_atomic_load_uint32_acquire
    - SEQLOCK_IS_UPDATING
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _PySeqLock_BeginRead(_PySeqLock *seqlock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_fence_acquire
      Src: /src/cpython/Python/lock.c:600,1
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Python/lock.c:602,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - seqlock
    - previous
    argTypes:
    - _PySeqLock*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 608
    functionName: _PySeqLock_EndRead
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - _Py_yield
    - _Py_atomic_fence_acquire
    - _Py_atomic_load_uint32_relaxed
    linkageType: ''
    returnType: int
    signature: int _PySeqLock_EndRead(_PySeqLock *seqlock, uint32_t previous)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 620
    functionName: _PySeqLock_AfterFork
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - SEQLOCK_IS_UPDATING
    linkageType: ''
    returnType: int
    signature: int _PySeqLock_AfterFork(_PySeqLock *seqlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Python/lock.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 7
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: PyMutex_Lock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 58
    functionsReached:
    - _PyMutex_LockTimed
    linkageType: ''
    returnType: void
    signature: void PyMutex_Lock(PyMutex *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_TryUnlock
      Src: /src/cpython/Python/lock.c:633,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/lock.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 636
    functionName: PyMutex_Unlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 62
    functionsReached:
    - _PyMutex_TryUnlock
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void PyMutex_Unlock(PyMutex *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_IsLocked
      Src: /src/cpython/Python/lock.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 644
    functionName: PyMutex_IsLocked
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 21
    functionsReached:
    - _PyMutex_IsLocked
    linkageType: ''
    returnType: int
    signature: int PyMutex_IsLocked(PyMutex *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/structmember.c:14,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/structmember.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - obj_addr
    - l
    argTypes:
    - char*
    - char*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 21
    functionName: member_get_object
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_PTR
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      member_get_object(const char *addr, const char *obj_addr, PyMemberDef *l)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:28,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/structmember.c:37,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:37,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:40,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:40,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:43,1
    - Dst: FT_ATOMIC_LOAD_UCHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:43,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:46,1
    - Dst: FT_ATOMIC_LOAD_SHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:46,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:49,1
    - Dst: FT_ATOMIC_LOAD_USHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:49,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:52,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Python/structmember.c:52,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:55,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/structmember.c:55,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:58,1
    - Dst: FT_ATOMIC_LOAD_LONG_RELAXED
      Src: /src/cpython/Python/structmember.c:58,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:61,1
    - Dst: FT_ATOMIC_LOAD_ULONG_RELAXED
      Src: /src/cpython/Python/structmember.c:61,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/structmember.c:64,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/structmember.c:64,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/structmember.c:67,1
    - Dst: FT_ATOMIC_LOAD_FLOAT_RELAXED
      Src: /src/cpython/Python/structmember.c:67,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/structmember.c:70,1
    - Dst: FT_ATOMIC_LOAD_DOUBLE_RELAXED
      Src: /src/cpython/Python/structmember.c:70,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/structmember.c:74,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/structmember.c:77,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/structmember.c:80,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:83,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/structmember.c:84,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/structmember.c:88,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Python/structmember.c:91,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:92,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/structmember.c:93,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/structmember.c:94,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:95,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/structmember.c:98,1
    - Dst: member_get_object
      Src: /src/cpython/Python/structmember.c:106,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/structmember.c:108,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Python/structmember.c:111,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:112,1
    - Dst: member_get_object
      Src: /src/cpython/Python/structmember.c:113,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/structmember.c:114,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:115,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/structmember.c:121,1
    - Dst: FT_ATOMIC_LOAD_LLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:121,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/structmember.c:124,1
    - Dst: FT_ATOMIC_LOAD_ULLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:124,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/structmember.c:128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:131,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 96
    argCount: 2
    argNames:
    - obj_addr
    - l
    argTypes:
    - char*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 135
    functionName: PyMember_GetOne
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 3
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyErr_SetString
    - PyLong_FromLong
    - PyBool_FromLong
    - FT_ATOMIC_LOAD_ULONG_RELAXED
    - FT_ATOMIC_LOAD_CHAR_RELAXED
    - PyFloat_FromDouble
    - Py_BEGIN_CRITICAL_SECTION
    - Py_INCREF
    - PyUnicode_FromStringAndSize
    - member_get_object
    - FT_ATOMIC_LOAD_UCHAR_RELAXED
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_FromUnsignedLong
    - _Py_TryIncrefCompare
    - PyLong_FromLongLong
    - FT_ATOMIC_LOAD_SHORT_RELAXED
    - FT_ATOMIC_LOAD_DOUBLE_RELAXED
    - FT_ATOMIC_LOAD_LLONG_RELAXED
    - FT_ATOMIC_LOAD_USHORT_RELAXED
    - FT_ATOMIC_LOAD_LONG_RELAXED
    - FT_ATOMIC_LOAD_PTR
    - FT_ATOMIC_LOAD_FLOAT_RELAXED
    - Py_NewRef
    - FT_ATOMIC_LOAD_ULLONG_RELAXED
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - PyLong_FromSsize_t
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PyLong_FromUnsignedLongLong
    - Py_XINCREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMember_GetOne(const char *obj_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: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: WARN
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(msg)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:148,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:168,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:173,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/structmember.c:180,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:181,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:186,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:188,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:192,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:193,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:195,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:199,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:204,1
    - Dst: FT_ATOMIC_STORE_UCHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:206,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:208,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:213,1
    - Dst: FT_ATOMIC_STORE_SHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:215,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:217,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:221,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:222,1
    - Dst: FT_ATOMIC_STORE_USHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:224,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:226,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:230,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:231,1
    - Dst: FT_ATOMIC_STORE_INT_RELAXED
      Src: /src/cpython/Python/structmember.c:233,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:235,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/structmember.c:241,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/structmember.c:245,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:248,1
    - Dst: FT_ATOMIC_STORE_UINT_RELAXED
      Src: /src/cpython/Python/structmember.c:251,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:252,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Python/structmember.c:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:257,1
    - Dst: FT_ATOMIC_STORE_UINT_RELAXED
      Src: /src/cpython/Python/structmember.c:260,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:262,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:268,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:269,1
    - Dst: FT_ATOMIC_STORE_LONG_RELAXED
      Src: /src/cpython/Python/structmember.c:271,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/structmember.c:277,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/structmember.c:281,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:283,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:284,1
    - Dst: FT_ATOMIC_STORE_ULONG_RELAXED
      Src: /src/cpython/Python/structmember.c:287,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:288,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Python/structmember.c:291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:293,1
    - Dst: FT_ATOMIC_STORE_ULONG_RELAXED
      Src: /src/cpython/Python/structmember.c:296,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/structmember.c:301,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:302,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Python/structmember.c:304,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/structmember.c:308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:309,1
    - Dst: FT_ATOMIC_STORE_FLOAT_RELAXED
      Src: /src/cpython/Python/structmember.c:311,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/structmember.c:315,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:316,1
    - Dst: FT_ATOMIC_STORE_DOUBLE_RELAXED
      Src: /src/cpython/Python/structmember.c:318,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:323,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/structmember.c:325,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/structmember.c:325,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:326,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/structmember.c:327,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/structmember.c:333,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Python/structmember.c:335,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:338,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:343,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/structmember.c:346,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:347,1
    - Dst: FT_ATOMIC_STORE_LLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:349,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/structmember.c:353,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/structmember.c:357,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:359,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:360,1
    - Dst: FT_ATOMIC_STORE_ULLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:363,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:364,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Python/structmember.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:368,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:369,1
    - Dst: FT_ATOMIC_STORE_ULLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:372,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/structmember.c:377,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 195
    argCount: 3
    argNames:
    - addr
    - l
    - v
    argTypes:
    - char*
    - PyMemberDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 382
    functionName: PyMember_SetOne
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - Py_END_CRITICAL_SECTION
    - _PyLong_IsNegative
    - FT_ATOMIC_STORE_UCHAR_RELAXED
    - _PyNumber_Index
    - PyErr_SetString
    - PyLong_AsUnsignedLong
    - PyLong_AsUnsignedLongLong
    - FT_ATOMIC_STORE_ULONG_RELAXED
    - PyErr_BadArgument
    - FT_ATOMIC_STORE_LLONG_RELAXED
    - Py_BEGIN_CRITICAL_SECTION
    - FT_ATOMIC_STORE_DOUBLE_RELAXED
    - PyFloat_AsDouble
    - PyLong_AsLong
    - PyErr_Occurred
    - FT_ATOMIC_STORE_SHORT_RELAXED
    - FT_ATOMIC_STORE_ULLONG_RELAXED
    - FT_ATOMIC_STORE_LONG_RELAXED
    - FT_ATOMIC_STORE_FLOAT_RELAXED
    - Py_XNewRef
    - PyErr_Format
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - FT_ATOMIC_STORE_UINT_RELAXED
    - PyBool_Check
    - FT_ATOMIC_STORE_INT_RELAXED
    - WARN
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyLong_AsSsize_t
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyLong_AsLongLong
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - FT_ATOMIC_STORE_USHORT_RELAXED
    linkageType: ''
    returnType: int
    signature: int PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer_symbols.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: get_lltrace
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - Py_GETENV
    linkageType: ''
    returnType: int
    signature: int get_lltrace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - level
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: DPRINTF
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(level, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: allocation_base
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JitOptSymbol
    signature: 'JitOptSymbol *

      allocation_base(JitOptContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: out_of_space
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JitOptSymbol
    signature: 'JitOptSymbol *

      out_of_space(JitOptContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:98,1
    - Dst: out_of_space
      Src: /src/cpython/Python/optimizer_symbols.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: out_of_space_ref
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - out_of_space
    - PyJitRef_Wrap
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef out_of_space_ref(JitOptContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_symbols.c:106,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_symbols.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: sym_new
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - DPRINTF
    - OPT_STAT_INC
    linkageType: ''
    returnType: JitOptSymbol
    signature: 'JitOptSymbol *

      sym_new(JitOptContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/optimizer_symbols.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sym
    - val
    argTypes:
    - JitOptSymbol*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: make_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void make_const(JitOptSymbol *sym, PyObject *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - sym
    argTypes:
    - JitOptContext*
    - JitOptSymbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: sym_set_bottom
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sym_set_bottom(JitOptContext *ctx, JitOptSymbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: _Py_uop_sym_is_bottom
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_bottom(JitOptRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: _Py_uop_sym_is_not_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_not_null(JitOptRef ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:145,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:150,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:151,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:151,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: _Py_uop_sym_is_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_truthiness
    - PyJitRef_Wrap
    - make_const
    - allocation_base
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_const(JitOptContext *ctx, JitOptRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: _Py_uop_sym_is_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_null(JitOptRef ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:171,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:176,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:177,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:177,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: _Py_uop_sym_get_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_truthiness
    - PyJitRef_Wrap
    - make_const
    - allocation_base
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_uop_sym_get_const(JitOptContext *ctx, JitOptRef ref)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:191,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/optimizer_symbols.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - sym
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: _Py_uop_sym_get_const_as_stackref
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_get_const
    - PyStackRef_FromPyObjectBorrow
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _Py_uop_sym_get_const_as_stackref(JitOptContext *ctx, JitOptRef
      sym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:205,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:209,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - sym
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: _Py_uop_sym_is_safe_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - Py_TYPE
    - _Py_uop_sym_get_const
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_safe_const(JitOptContext *ctx, JitOptRef sym)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:222,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:226,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:230,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:240,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:244,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:245,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:246,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:251,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:264,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 3
    argNames:
    - ctx
    - ref
    - typ
    argTypes:
    - JitOptContext*
    - JitOptRef
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 273
    functionName: _Py_uop_sym_set_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_set_bottom
    - Py_TYPE
    - Py_CLEAR
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_type(JitOptContext *ctx, JitOptRef ref, PyTypeObject
      *typ)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:278,1
    - Dst: _PyType_LookupByVersion
      Src: /src/cpython/Python/optimizer_symbols.c:279,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:281,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:286,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:298,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:299,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:300,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:306,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:312,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:325,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:331,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - ctx
    - ref
    - version
    argTypes:
    - JitOptContext*
    - JitOptRef
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 337
    functionName: _Py_uop_sym_set_type_version
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_set_type
    - Py_CLEAR
    - sym_set_bottom
    - _PyType_LookupByVersion
    - Py_TYPE
    - Py_UNREACHABLE
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_set_type_version(JitOptContext *ctx, JitOptRef ref,
      unsigned int version)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:342,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:346,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:349,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:350,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:353,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:357,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:358,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/optimizer_symbols.c:362,1
    - Dst: _Py_uop_sym_tuple_length
      Src: /src/cpython/Python/optimizer_symbols.c:363,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/optimizer_symbols.c:364,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:366,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_symbols.c:367,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:368,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:370,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:374,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:377,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:378,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:381,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:387,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/optimizer_symbols.c:390,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:391,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:392,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:394,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:397,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:398,1
    - Dst: _Py_uop_sym_get_type
      Src: /src/cpython/Python/optimizer_symbols.c:399,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:403,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:408,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:411,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/optimizer_symbols.c:411,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:414,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/optimizer_symbols.c:414,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:417,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:420,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:421,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:424,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 3
    argNames:
    - ctx
    - ref
    - const_val
    argTypes:
    - JitOptContext*
    - JitOptRef
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 428
    functionName: _Py_uop_sym_set_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - _Py_uop_sym_get_const
    - make_const
    - Py_CLEAR
    - PyTuple_CheckExact
    - _Py_uop_sym_tuple_length
    - _Py_uop_sym_get_type
    - _Py_uop_sym_tuple_getitem
    - PyTuple_GET_SIZE
    - Py_GetConstant
    - PyTuple_GET_ITEM
    - _Py_uop_sym_set_const
    - allocation_base
    - _Py_uop_sym_is_const
    - PyBool_Check
    - Py_TYPE
    - sym_set_bottom
    - PyJitRef_Wrap
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_const(JitOptContext *ctx, JitOptRef ref, PyObject
      *const_val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:433,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: _Py_uop_sym_set_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_set_bottom
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_null(JitOptContext *ctx, JitOptRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:445,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 452
    functionName: _Py_uop_sym_set_non_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_set_bottom
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_non_null(JitOptContext *ctx, JitOptRef ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:457,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:459,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: _Py_uop_sym_new_unknown
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - out_of_space_ref
    - sym_new
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_unknown(JitOptContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:467,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:469,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: _Py_uop_sym_new_not_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - PyJitRef_Wrap
    - out_of_space_ref
    - sym_new
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_not_null(JitOptContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:478,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:480,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:482,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - typ
    argTypes:
    - JitOptContext*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: _Py_uop_sym_new_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - _Py_uop_sym_set_type
    - out_of_space_ref
    - sym_new
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_type(JitOptContext *ctx, PyTypeObject *typ)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:491,1
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:492,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:494,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:496,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - const_val
    argTypes:
    - JitOptContext*
    - PyObject*
    assertStmts:
    - condition: (const_val != NULL)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 499
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 499
    functionName: _Py_uop_sym_new_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - _Py_uop_sym_set_const
    - sym_new
    - out_of_space_ref
    - assert
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_const(JitOptContext *ctx, PyObject *const_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:504,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - const_val
    argTypes:
    - JitOptContext*
    - PyObject*
    assertStmts:
    - condition: (const_val != NULL)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 4
    functionLinenumber: 501
    functionLinenumberEnd: 509
    functionName: _Py_uop_sym_new_const_steal
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_new_const
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_const_steal(JitOptContext *ctx, PyObject
      *const_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:514,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:516,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:518,1
    - Dst: _Py_uop_sym_set_null
      Src: /src/cpython/Python/optimizer_symbols.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 521
    functionName: _Py_uop_sym_new_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_set_null
    - PyJitRef_Wrap
    - out_of_space_ref
    - sym_new
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_null(JitOptContext *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:526,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:537,1
    - Dst: _PyType_LookupByVersion
      Src: /src/cpython/Python/optimizer_symbols.c:539,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 549
    functionName: _Py_uop_sym_get_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - _PyType_LookupByVersion
    - Py_TYPE
    - Py_UNREACHABLE
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _Py_uop_sym_get_type(JitOptRef ref)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:567,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 576
    functionName: _Py_uop_sym_get_type_version
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_UNREACHABLE
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_uop_sym_get_type_version(JitOptRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_sym_get_type
      Src: /src/cpython/Python/optimizer_symbols.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: _Py_uop_sym_has_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_get_type
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_has_type(JitOptRef sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:587,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/optimizer_symbols.c:587,1
    - Dst: _Py_uop_sym_get_type
      Src: /src/cpython/Python/optimizer_symbols.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sym
    - typ
    argTypes:
    - JitOptRef
    - PyTypeObject*
    assertStmts:
    - condition: (typ != NULL && PyType_Check(typ))
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: _Py_uop_sym_matches_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - assert
    - _Py_uop_sym_get_type
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_matches_type(JitOptRef sym, PyTypeObject *typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_sym_get_type_version
      Src: /src/cpython/Python/optimizer_symbols.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sym
    - version
    argTypes:
    - JitOptRef
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: _Py_uop_sym_matches_type_version
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_get_type_version
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_matches_type_version(JitOptRef sym, unsigned int version)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:600,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:620,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:621,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:622,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:627,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:635,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/optimizer_symbols.c:637,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/optimizer_symbols.c:640,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 646
    functionName: _Py_uop_sym_truthiness
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 3
    functionsReached:
    - _Py_STR
    - _Py_uop_sym_truthiness
    - PyJitRef_Wrap
    - make_const
    - _PyLong_IsZero
    - allocation_base
    - Py_TYPE
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: int
    signature: int _Py_uop_sym_truthiness(JitOptContext *ctx, JitOptRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:651,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:653,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:663,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:663,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - size
    - args
    argTypes:
    - JitOptContext*
    - int
    - JitOptRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 667
    functionName: _Py_uop_sym_new_tuple
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - out_of_space_ref
    - sym_new
    - allocation_base
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_tuple(JitOptContext *ctx, int size, JitOptRef
      *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:672,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:673,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/optimizer_symbols.c:676,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/optimizer_symbols.c:676,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:677,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_symbols.c:677,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:681,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:681,1
    - Dst: _Py_uop_sym_new_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:683,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - ref
    - item
    argTypes:
    - JitOptContext*
    - JitOptRef
    - int
    assertStmts:
    - condition: (item >= 0)
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 684
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 684
    functionName: _Py_uop_sym_tuple_getitem
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - assert
    - PyTuple_GET_SIZE
    - _Py_uop_sym_new_const
    - PyJitRef_Wrap
    - _Py_uop_sym_new_not_null
    - PyTuple_GET_ITEM
    - allocation_base
    - PyTuple_CheckExact
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_tuple_getitem(JitOptContext *ctx, JitOptRef ref,
      int item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:689,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/optimizer_symbols.c:692,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/optimizer_symbols.c:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 700
    functionName: _Py_uop_sym_tuple_length
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: int
    signature: int _Py_uop_sym_tuple_length(JitOptRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_symbols.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sym
    argTypes:
    - JitOptSymbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 713
    functionName: _Py_uop_symbol_is_immortal
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_IsImmortal
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_symbol_is_immortal(JitOptSymbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:718,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: _Py_uop_sym_is_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_compact_int(JitOptRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:728,1
    - Dst: _Py_uop_symbol_is_immortal
      Src: /src/cpython/Python/optimizer_symbols.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 730
    functionName: _Py_uop_sym_is_immortal
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_symbol_is_immortal
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_immortal(JitOptRef ref)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:735,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:739,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:745,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:753,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:757,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:758,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:759,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 774
    functionName: _Py_uop_sym_set_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - sym_set_bottom
    - Py_CLEAR
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_compact_int(JitOptContext *ctx, JitOptRef ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:779,1
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:785,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:787,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:789,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:793,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:796,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - ref
    - truthy
    argTypes:
    - JitOptContext*
    - JitOptRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 799
    functionName: _Py_uop_sym_new_truthiness
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_truthiness
    - PyJitRef_Wrap
    - out_of_space_ref
    - sym_new
    - make_const
    - allocation_base
    - PyJitRef_Unwrap
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_truthiness(JitOptContext *ctx, JitOptRef
      ref, bool truthy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:804,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:806,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 810
    functionName: _Py_uop_sym_new_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - out_of_space_ref
    - sym_new
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_compact_int(JitOptContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:821,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:843,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - co
    - curr_stackentries
    - args
    - arg_len
    argTypes:
    - JitOptContext*
    - PyCodeObject*
    - int
    - JitOptRef*
    - int
    assertStmts:
    - condition: (ctx->curr_frame_depth < MAX_ABSTRACT_FRAME_DEPTH)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 855
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 855
    functionName: _Py_uop_frame_new
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - _Py_uop_sym_new_unknown
    - assert
    linkageType: ''
    returnType: _Py_UOpsAbstractFrame
    signature: "_Py_UOpsAbstractFrame *\n_Py_uop_frame_new(\n    JitOptContext *ctx,\n
      \   PyCodeObject *co,\n    int curr_stackentries,\n    JitOptRef *args,\n    int
      arg_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:868,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 871
    functionName: _Py_uop_abstractcontext_fini
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _Py_uop_abstractcontext_fini(JitOptContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 898
    functionName: _Py_uop_abstractcontext_init
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_uop_abstractcontext_init(JitOptContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts:
    - condition: (ctx->curr_frame_depth >= 1)
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 910
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 910
    functionName: _Py_uop_frame_pop
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_uop_frame_pop(JitOptContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PRED
    - ','
    - MSG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: TEST_PREDICATE
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_PREDICATE(PRED, MSG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 922
    functionDepth: 2
    functionLinenumber: 922
    functionLinenumberEnd: 928
    functionName: make_bottom
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    linkageType: ''
    returnType: JitOptSymbol
    signature: 'JitOptSymbol *

      make_bottom(JitOptContext *ctx)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_abstractcontext_init
      Src: /src/cpython/Python/optimizer_symbols.c:935,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:942,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:943,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:946,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:946,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:947,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:947,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:948,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:948,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:949,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:949,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:950,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:950,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:951,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:951,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:953,1
    - Dst: make_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:953,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:954,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:957,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:957,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:958,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:958,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:959,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:959,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:960,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:960,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:961,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:961,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:962,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:962,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:964,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:965,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:968,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:968,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:969,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:969,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:970,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:970,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:971,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:971,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:972,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:972,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:973,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:973,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:975,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:976,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:976,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:978,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:979,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:979,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:981,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:982,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:983,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_symbols.c:983,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:985,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:986,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:987,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_symbols.c:987,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:989,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:990,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:993,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:994,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:994,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:995,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:995,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:996,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:996,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:997,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:997,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:998,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:998,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:999,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:999,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1000,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1000,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1001,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1001,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1002,1
    - Dst: _Py_uop_sym_is_immortal
      Src: /src/cpython/Python/optimizer_symbols.c:1002,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1004,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1005,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1005,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1006,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1006,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1008,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1009,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1009,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1011,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1012,1
    - Dst: _Py_uop_sym_is_immortal
      Src: /src/cpython/Python/optimizer_symbols.c:1012,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1014,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1015,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1018,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1019,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1020,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1020,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1023,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1024,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1024,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1025,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1026,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1026,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1027,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:1027,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1028,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1028,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1030,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1031,1
    - Dst: _Py_uop_sym_new_tuple
      Src: /src/cpython/Python/optimizer_symbols.c:1033,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1034,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1035,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1035,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1038,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1039,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1039,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Python/optimizer_symbols.c:1043,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1044,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1045,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1046,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1046,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1049,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1050,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:1051,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1051,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1054,1
    - Dst: _Py_uop_sym_new_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1055,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1056,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1056,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1057,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1057,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1058,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1058,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1059,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1059,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1060,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1060,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1061,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1061,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1062,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1063,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1063,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1064,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1064,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1065,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1065,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1066,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1066,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1067,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1067,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1068,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1068,1
    - Dst: PyNumber_Lshift
      Src: /src/cpython/Python/optimizer_symbols.c:1071,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Python/optimizer_symbols.c:1071,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:1071,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1076,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1077,1
    - Dst: _Py_uop_sym_new_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1078,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1079,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1079,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1080,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1080,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1081,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1081,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1082,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1082,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1084,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1085,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1085,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1086,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1086,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1088,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1089,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1089,1
    - Dst: _Py_uop_sym_new_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1091,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1092,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1093,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1093,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1094,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1094,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1095,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1095,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_symbols.c:1097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1101,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_symbols.c:1105,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1106,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1107,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:1109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 135
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (val_42 != NULL)
      pos:
        line_end: 981
        line_start: 981
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (val_43 != NULL)
      pos:
        line_end: 985
        line_start: 985
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (_Py_IsImmortal(val_43))
      pos:
        line_end: 986
        line_start: 986
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (_Py_IsImmortal(val_42))
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1111
      start: 930
    functionDepth: 5
    functionLinenumber: 930
    functionLinenumberEnd: 1111
    functionName: _Py_uop_symbols_test
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_uop_sym_set_type
    - _PyTuple_FromArray
    - PyJitRef_IsNull
    - _Py_uop_sym_is_immortal
    - _Py_uop_sym_new_const
    - _Py_uop_sym_matches_type
    - _Py_uop_abstractcontext_init
    - _Py_uop_sym_get_const
    - PyLong_FromLong
    - _Py_IsImmortal
    - _Py_uop_sym_new_compact_int
    - _Py_uop_sym_tuple_getitem
    - _Py_uop_abstractcontext_fini
    - _Py_uop_sym_new_tuple
    - TEST_PREDICATE
    - _Py_uop_sym_is_null
    - _Py_uop_sym_is_not_null
    - _Py_uop_sym_set_const
    - _Py_uop_sym_is_compact_int
    - PyNumber_Lshift
    - _Py_uop_sym_new_truthiness
    - _Py_uop_sym_is_const
    - _Py_uop_sym_is_bottom
    - Py_DECREF
    - make_bottom
    - _PyLong_GetOne
    - PyJitRef_Wrap
    - _Py_uop_sym_truthiness
    - _Py_uop_sym_new_unknown
    - _Py_uop_sym_new_type
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_uop_symbols_test(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_EmscriptenSignalBuffer
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: EM_JS
    functionSourceFile: /src/cpython/Python/emscripten_signal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EM_JS(int, _Py_CheckEmscriptenSignals_Helper, (void), {\n    if
      (!Module.Py_EmscriptenSignalBuffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CheckEmscriptenSignals_Helper
      Src: /src/cpython/Python/emscripten_signal.c:35,1
    - Dst: PyErr_SetInterruptEx
      Src: /src/cpython/Python/emscripten_signal.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: _Py_CheckEmscriptenSignals
    functionSourceFile: /src/cpython/Python/emscripten_signal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetInterruptEx
    - _Py_CheckEmscriptenSignals_Helper
    linkageType: ''
    returnType: void
    signature: void _Py_CheckEmscriptenSignals(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CheckEmscriptenSignals
      Src: /src/cpython/Python/emscripten_signal.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: _Py_CheckEmscriptenSignalsPeriodically
    functionSourceFile: /src/cpython/Python/emscripten_signal.c
    functionUses: 0
    functionsReached:
    - _Py_CheckEmscriptenSignals
    linkageType: ''
    returnType: void
    signature: void _Py_CheckEmscriptenSignalsPeriodically(void)
  - 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_ARRAY_NODE
    functionSourceFile: /src/cpython/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: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: IS_BITMAP_NODE
    functionSourceFile: /src/cpython/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: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: IS_COLLISION_NODE
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_COLLISION_NODE(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: _PyHamtNode_Array_CAST
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHamtNode_Array_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: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: _PyHamtNode_Collision_CAST
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHamtNode_Collision_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/hamt.c:373,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:374,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:374,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj_raw
    argTypes:
    - void*
    assertStmts:
    - condition: (IS_ARRAY_NODE(obj))
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Python/hamt.c
    - condition: (count == node->a_count)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 383
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 383
    functionName: _hamt_node_array_validate
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyObject_CAST
    - IS_ARRAY_NODE
    - assert
    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: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: VALIDATE_ARRAY_NODE
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALIDATE_ARRAY_NODE(NODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Python/hamt.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 426
    functionName: hamt_hash
    functionSourceFile: /src/cpython/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: 432
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: hamt_mask
    functionSourceFile: /src/cpython/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/cpython/Python/hamt.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - shift
    argTypes:
    - int32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: hamt_bitpos
    functionSourceFile: /src/cpython/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:
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/hamt.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitmap
    - bit
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: hamt_bitindex
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hamt_bitindex(uint32_t bitmap, uint32_t bit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/hamt.c:459,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/hamt.c:464,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Python/hamt.c:469,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/hamt.c:474,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:479,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - writer
    - level
    argTypes:
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 450
    functionDepth: 9
    functionLinenumber: 450
    functionLinenumberEnd: 481
    functionName: _hamt_dump_ident
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyNumber_Multiply
    - PyUnicodeWriter_WriteStr
    - PyLong_FromLong
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _hamt_dump_ident(PyUnicodeWriter *writer, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: _PyHamtNode_Bitmap_CAST
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHamtNode_Bitmap_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/hamt.c:501,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:504,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:505,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Python/hamt.c:508,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/hamt.c:514,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/hamt.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Python/hamt.c
    - condition: (size % 2 == 0)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 525
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 525
    functionName: hamt_node_bitmap_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - _PyObject_GC_TRACK
    - PyObject_GC_NewVar
    - _Py_SINGLETON
    - assert
    linkageType: ''
    returnType: PyHamtNode
    signature: 'PyHamtNode *

      hamt_node_bitmap_new(Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: hamt_node_bitmap_count
    functionSourceFile: /src/cpython/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/cpython/Python/hamt.c:541,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:541,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:546,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 552
    functionName: hamt_node_bitmap_clone
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_bitmap_new
    - Py_SIZE
    - Py_XNewRef
    linkageType: ''
    returnType: PyHamtNode_Bitmap
    signature: 'PyHamtNode_Bitmap *

      hamt_node_bitmap_clone(PyHamtNode_Bitmap *node)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:557,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:558,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:558,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:560,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:561,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:566,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:572,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:575,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:575,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:575,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:576,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - o
    - bit
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    assertStmts:
    - condition: (bit & o->b_bitmap)
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/cpython/Python/hamt.c
    - condition: (hamt_node_bitmap_count(o) > 1)
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/cpython/Python/hamt.c
    - condition: (Py_SIZE(o) >= 0 && Py_SIZE(o) <= 32)
      pos:
        line_end: 574
        line_start: 574
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 582
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 582
    functionName: hamt_node_bitmap_clone_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - hamt_node_bitmap_count
    - hamt_bitindex
    - Py_XNewRef
    - hamt_node_bitmap_new
    - assert
    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/cpython/Python/hamt.c:598,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:605,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:610,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:611,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:613,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:614,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:620,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:627,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 6
    argNames:
    - shift
    - key1
    - val1
    - key2_hash
    - key2
    - val2
    argTypes:
    - uint32_t
    - PyObject*
    - PyObject*
    - int32_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 584
    functionDepth: 4
    functionLinenumber: 584
    functionLinenumberEnd: 640
    functionName: hamt_node_new_bitmap_or_collision
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - hamt_node_collision_new
    - hamt_node_assoc
    - Py_NewRef
    - hamt_node_bitmap_new
    - hamt_hash
    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/cpython/Python/hamt.c:656,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:657,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:679,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:679,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:688,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:698,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:699,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:702,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:706,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:710,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:714,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:721,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:726,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:730,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:730,1
    - Dst: hamt_node_new_bitmap_or_collision
      Src: /src/cpython/Python/hamt.c:742,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:754,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:757,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:758,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/hamt.c:766,1
    - Dst: hamt_mask
      Src: /src/cpython/Python/hamt.c:784,1
    - Dst: hamt_node_array_new
      Src: /src/cpython/Python/hamt.c:793,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:800,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:807,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:821,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:825,1
    - Dst: hamt_hash
      Src: /src/cpython/Python/hamt.c:828,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:833,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:848,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:854,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:856,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:874,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:882,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:886,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:887,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:891,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:891,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:891,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:892,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:893,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 105
    argCount: 6
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    - added_leaf
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (val_idx < (size_t)Py_SIZE(self))
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/cpython/Python/hamt.c
    - condition: (val_or_node != NULL)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/cpython/Python/hamt.c
    - condition: (Py_SIZE(self) >= 0 && Py_SIZE(self) <= 32)
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/cpython/Python/hamt.c
    - condition: (key != NULL)
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/cpython/Python/hamt.c
    - condition: (new_node->a_array[i] == NULL)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 900
      start: 642
    functionDepth: 5
    functionLinenumber: 642
    functionLinenumberEnd: 900
    functionName: hamt_node_bitmap_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_popcount32
    - hamt_bitindex
    - hamt_node_assoc
    - Py_SETREF
    - hamt_node_bitmap_clone
    - hamt_node_array_new
    - PyObject_RichCompareBool
    - Py_XNewRef
    - Py_DECREF
    - VALIDATE_ARRAY_NODE
    - Py_SIZE
    - Py_NewRef
    - hamt_node_new_bitmap_or_collision
    - hamt_node_bitmap_new
    - hamt_hash
    - hamt_bitpos
    - hamt_mask
    - assert
    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/cpython/Python/hamt.c:908,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:913,1
    - Dst: hamt_node_without
      Src: /src/cpython/Python/hamt.c:926,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:946,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:949,1
    - Dst: IS_BITMAP_NODE
      Src: /src/cpython/Python/hamt.c:951,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:953,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:965,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:967,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/hamt.c:974,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:974,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:975,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:977,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:988,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:989,1
    - Dst: hamt_node_collision_count
      Src: /src/cpython/Python/hamt.c:989,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:994,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:999,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1008,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1012,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:1018,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:1026,1
    - Dst: hamt_node_bitmap_clone_without
      Src: /src/cpython/Python/hamt.c:1031,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - new_node
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    - int32_t
    - PyObject*
    - PyHamtNode**
    assertStmts:
    - condition: "(hamt_node_collision_count(\n                            (PyHamtNode_Collision*)sub_node)
        > 1)"
      pos:
        line_end: 989
        line_start: 988
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node != NULL)
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1007
        line_start: 1007
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1038
      start: 902
    functionDepth: 4
    functionLinenumber: 902
    functionLinenumberEnd: 1038
    functionName: hamt_node_bitmap_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - hamt_node_bitmap_clone
    - Py_DECREF
    - IS_BITMAP_NODE
    - hamt_node_bitmap_count
    - hamt_bitindex
    - hamt_node_without
    - Py_NewRef
    - Py_SETREF
    - hamt_node_collision_count
    - PyObject_RichCompareBool
    - hamt_node_bitmap_clone_without
    - Py_XSETREF
    - IS_COLLISION_NODE
    - hamt_bitpos
    - assert
    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/cpython/Python/hamt.c:1047,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:1059,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1063,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1063,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1071,1
    - Dst: hamt_node_find
      Src: /src/cpython/Python/hamt.c:1072,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1078,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:1079,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: 1062
        line_start: 1062
        source_file: /src/cpython/Python/hamt.c
    - condition: (val_or_node != NULL)
      pos:
        line_end: 1070
        line_start: 1070
        source_file: /src/cpython/Python/hamt.c
    - condition: (key != NULL)
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1089
      start: 1040
    functionDepth: 4
    functionLinenumber: 1040
    functionLinenumberEnd: 1089
    functionName: hamt_node_bitmap_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - hamt_bitindex
    - hamt_node_find
    - PyObject_RichCompareBool
    - hamt_bitpos
    - assert
    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: _PyHamtNode_Bitmap_CAST
      Src: /src/cpython/Python/hamt.c:1095,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1096,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1100
    functionName: hamt_node_bitmap_traverse
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtNode_Bitmap_CAST
    - Py_SIZE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hamt_node_bitmap_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtNode_Bitmap_CAST
      Src: /src/cpython/Python/hamt.c:1107,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1108,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1112,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/hamt.c:1112,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Python/hamt.c:1114,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:1120,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:1125,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (node == &_Py_SINGLETON(hamt_bitmap_node_empty))
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1130
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1130
    functionName: hamt_node_bitmap_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - _PyHamtNode_Bitmap_CAST
    - Py_SIZE
    - _Py_SINGLETON
    - _Py_FatalRefcountError
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void hamt_node_bitmap_dealloc(PyObject *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1143,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1147,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1148,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1148,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/hamt.c:1153,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Python/hamt.c:1157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1158,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1168,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1170,1
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1174,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/hamt.c:1179,1
    - Dst: hamt_node_dump
      Src: /src/cpython/Python/hamt.c:1183,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1190,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/hamt.c:1197,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Bitmap*
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1133
    functionDepth: 11
    functionLinenumber: 1133
    functionLinenumberEnd: 1205
    functionName: hamt_node_bitmap_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicodeWriter_Format
    - hamt_node_dump
    - Py_SIZE
    - _hamt_dump_ident
    - _PyLong_Format
    - PyLong_FromUnsignedLong
    - PyUnicodeWriter_WriteASCII
    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/cpython/Python/hamt.c:1220,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1221,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Python/hamt.c:1223,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/hamt.c:1233,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/hamt.c:1236,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: 1219
        line_start: 1219
        source_file: /src/cpython/Python/hamt.c
    - condition: (size % 2 == 0)
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1239
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1239
    functionName: hamt_node_collision_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_TRACK
    - Py_SET_SIZE
    - PyObject_GC_NewVar
    - assert
    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/cpython/Python/hamt.c:1251,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1254,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:1255,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: 1253
        line_start: 1253
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1266
      start: 1241
    functionDepth: 4
    functionLinenumber: 1241
    functionLinenumberEnd: 1266
    functionName: hamt_node_collision_find_index
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyObject_RichCompareBool
    - assert
    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/cpython/Python/hamt.c:1286,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:1296,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1297,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1302,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1303,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1306,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1307,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1315,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1316,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1316,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1321,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:1326,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1327,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1333,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1334,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:1338,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1338,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1343,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1358,1
    - Dst: hamt_bitpos
      Src: /src/cpython/Python/hamt.c:1362,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1363,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/cpython/Python/hamt.c:1365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 6
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    - added_leaf
    argTypes:
    - PyHamtNode_Collision*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (key_idx < Py_SIZE(self))
      pos:
        line_end: 1315
        line_start: 1315
        source_file: /src/cpython/Python/hamt.c
    - condition: (key_idx >= 0)
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1370
      start: 1268
    functionDepth: 6
    functionLinenumber: 1268
    functionLinenumberEnd: 1370
    functionName: hamt_node_collision_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - Py_DECREF
    - hamt_node_collision_new
    - Py_SIZE
    - Py_NewRef
    - Py_SETREF
    - hamt_node_bitmap_assoc
    - hamt_node_collision_find_index
    - hamt_node_bitmap_new
    - hamt_bitpos
    - assert
    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/cpython/Python/hamt.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Collision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1376
    functionName: hamt_node_collision_count
    functionSourceFile: /src/cpython/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/cpython/Python/hamt.c:1389,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1399,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1400,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1400,1
    - Dst: hamt_node_collision_count
      Src: /src/cpython/Python/hamt.c:1402,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1419,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1425,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1426,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1429,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1430,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1431,1
    - Dst: hamt_bitpos
      Src: /src/cpython/Python/hamt.c:1434,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:1443,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1444,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1452,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1454,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1455,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1462,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    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: 1399
        line_start: 1399
        source_file: /src/cpython/Python/hamt.c
    - condition: (key_idx >= 0)
      pos:
        line_end: 1398
        line_start: 1398
        source_file: /src/cpython/Python/hamt.c
    - condition: (key_idx == 2)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1464
      start: 1378
    functionDepth: 5
    functionLinenumber: 1378
    functionLinenumberEnd: 1464
    functionName: hamt_node_collision_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - hamt_node_collision_new
    - Py_SIZE
    - hamt_node_collision_count
    - Py_NewRef
    - hamt_node_collision_find_index
    - hamt_node_bitmap_new
    - hamt_bitpos
    - assert
    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/cpython/Python/hamt.c:1477,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1482,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1483,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1483,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1486,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 + 1 < Py_SIZE(self))
      pos:
        line_end: 1482
        line_start: 1482
        source_file: /src/cpython/Python/hamt.c
    - condition: (idx >= 0)
      pos:
        line_end: 1481
        line_start: 1481
        source_file: /src/cpython/Python/hamt.c
    - condition: (*val != NULL)
      pos:
        line_end: 1485
        line_start: 1485
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1489
      start: 1466
    functionDepth: 5
    functionLinenumber: 1466
    functionLinenumberEnd: 1489
    functionName: hamt_node_collision_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - hamt_node_collision_find_index
    - assert
    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: _PyHamtNode_Collision_CAST
      Src: /src/cpython/Python/hamt.c:1496,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1497,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1501
    functionName: hamt_node_collision_traverse
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _PyHamtNode_Collision_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hamt_node_collision_traverse(PyObject *op, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1507,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:1508,1
    - Dst: _PyHamtNode_Collision_CAST
      Src: /src/cpython/Python/hamt.c:1510,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:1512,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:1515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1516
    functionName: hamt_node_collision_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_SIZE
    - _PyHamtNode_Collision_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void hamt_node_collision_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1527,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1531,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1532,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1537,1
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1541,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1545,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Collision*
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1519
    functionDepth: 10
    functionLinenumber: 1519
    functionLinenumberEnd: 1553
    functionName: hamt_node_collision_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyUnicodeWriter_Format
    - _hamt_dump_ident
    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/cpython/Python/hamt.c:1565,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/hamt.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1579
    functionName: hamt_node_array_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    linkageType: ''
    returnType: PyHamtNode
    signature: 'PyHamtNode *

      hamt_node_array_new(Py_ssize_t count)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1587,1
    - Dst: hamt_node_array_new
      Src: /src/cpython/Python/hamt.c:1590,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:1597,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1602
    functionName: hamt_node_array_clone
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_array_new
    - Py_XNewRef
    - VALIDATE_ARRAY_NODE
    linkageType: ''
    returnType: PyHamtNode_Array
    signature: 'PyHamtNode_Array *

      hamt_node_array_clone(PyHamtNode_Array *node)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hamt_mask
      Src: /src/cpython/Python/hamt.c:1616,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1629,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/cpython/Python/hamt.c:1636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1639,1
    - Dst: hamt_node_array_new
      Src: /src/cpython/Python/hamt.c:1645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1647,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:1654,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1657,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1659,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:1664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1670,1
    - Dst: hamt_node_array_clone
      Src: /src/cpython/Python/hamt.c:1674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1676,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:1680,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    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: 1656
        line_start: 1656
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1685
      start: 1604
    functionDepth: 6
    functionLinenumber: 1604
    functionLinenumberEnd: 1685
    functionName: hamt_node_array_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - VALIDATE_ARRAY_NODE
    - hamt_node_assoc
    - hamt_node_array_new
    - Py_SETREF
    - hamt_node_bitmap_assoc
    - Py_XNewRef
    - hamt_node_array_clone
    - hamt_node_bitmap_new
    - hamt_mask
    - assert
    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/cpython/Python/hamt.c:1693,1
    - Dst: hamt_node_without
      Src: /src/cpython/Python/hamt.c:1701,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1708,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1715,1
    - Dst: hamt_node_array_clone
      Src: /src/cpython/Python/hamt.c:1717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1719,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:1723,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1729,1
    - Dst: hamt_node_array_clone
      Src: /src/cpython/Python/hamt.c:1747,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/hamt.c:1752,1
    - Dst: a_array::a_array
      Src: /src/cpython/Python/hamt.c:1752,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1765,1
    - Dst: IS_BITMAP_NODE
      Src: /src/cpython/Python/hamt.c:1785,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:1788,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1802,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1803,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1807,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:1813,1
    - Dst: hamt_node_collision_count
      Src: /src/cpython/Python/hamt.c:1814,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1816,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1818,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1819,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1825,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1837,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - new_node
    argTypes:
    - PyHamtNode_Array*
    - uint32_t
    - int32_t
    - PyObject*
    - PyHamtNode**
    assertStmts:
    - condition: (((PyHamtNode_Array*)node)->a_count >= 16)
      pos:
        line_end: 1818
        line_start: 1818
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node != NULL)
      pos:
        line_end: 1714
        line_start: 1714
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1707
        line_start: 1707
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1728
        line_start: 1728
        source_file: /src/cpython/Python/hamt.c
    - condition: (child_count > 1)
      pos:
        line_end: 1815
        line_start: 1815
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1839
      start: 1687
    functionDepth: 3
    functionLinenumber: 1687
    functionLinenumberEnd: 1839
    functionName: hamt_node_array_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - a_array::a_array
    - Py_DECREF
    - IS_BITMAP_NODE
    - hamt_node_bitmap_count
    - hamt_node_without
    - IS_ARRAY_NODE
    - Py_SETREF
    - Py_NewRef
    - hamt_node_collision_count
    - hamt_node_array_clone
    - hamt_node_bitmap_new
    - IS_COLLISION_NODE
    - hamt_mask
    - Py_CLEAR
    - assert
    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/cpython/Python/hamt.c:1849,1
    - Dst: hamt_node_find
      Src: /src/cpython/Python/hamt.c:1858,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: 1859
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1859
    functionName: hamt_node_array_find
    functionSourceFile: /src/cpython/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: _PyHamtNode_Array_CAST
      Src: /src/cpython/Python/hamt.c:1865,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:1867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1870
    functionName: hamt_node_array_traverse
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtNode_Array_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hamt_node_array_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:1876,1
    - Dst: _PyHamtNode_Array_CAST
      Src: /src/cpython/Python/hamt.c:1877,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:1879,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1872
    functionDepth: 1
    functionLinenumber: 1872
    functionLinenumberEnd: 1882
    functionName: hamt_node_array_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - _PyHamtNode_Array_CAST
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void hamt_node_array_dealloc(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1893,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1897,1
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1906,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1910,1
    - Dst: hamt_node_dump
      Src: /src/cpython/Python/hamt.c:1914,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/hamt.c:1918,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Array*
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1885
    functionDepth: 10
    functionLinenumber: 1885
    functionLinenumberEnd: 1926
    functionName: hamt_node_array_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_dump
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_WriteASCII
    - _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/cpython/Python/hamt.c:1949,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/cpython/Python/hamt.c:1950,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1954,1
    - Dst: hamt_node_array_assoc
      Src: /src/cpython/Python/hamt.c:1955,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1960,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:1960,1
    - Dst: hamt_node_collision_assoc
      Src: /src/cpython/Python/hamt.c:1961,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: 1959
        line_start: 1959
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1965
      start: 1933
    functionDepth: 7
    functionLinenumber: 1933
    functionLinenumberEnd: 1965
    functionName: hamt_node_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 3
    functionsReached:
    - IS_BITMAP_NODE
    - IS_ARRAY_NODE
    - hamt_node_array_assoc
    - hamt_node_collision_assoc
    - hamt_node_bitmap_assoc
    - IS_COLLISION_NODE
    - assert
    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/cpython/Python/hamt.c:1973,1
    - Dst: hamt_node_bitmap_without
      Src: /src/cpython/Python/hamt.c:1974,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1979,1
    - Dst: hamt_node_array_without
      Src: /src/cpython/Python/hamt.c:1980,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1986,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:1986,1
    - Dst: hamt_node_collision_without
      Src: /src/cpython/Python/hamt.c:1987,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: 1985
        line_start: 1985
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1992
      start: 1967
    functionDepth: 6
    functionLinenumber: 1967
    functionLinenumberEnd: 1992
    functionName: hamt_node_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - IS_BITMAP_NODE
    - hamt_node_bitmap_without
    - IS_ARRAY_NODE
    - hamt_node_array_without
    - hamt_node_collision_without
    - IS_COLLISION_NODE
    - assert
    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/cpython/Python/hamt.c:2012,1
    - Dst: hamt_node_bitmap_find
      Src: /src/cpython/Python/hamt.c:2013,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:2018,1
    - Dst: hamt_node_array_find
      Src: /src/cpython/Python/hamt.c:2019,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2024,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:2024,1
    - Dst: hamt_node_collision_find
      Src: /src/cpython/Python/hamt.c:2025,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: 2023
        line_start: 2023
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2029
      start: 1994
    functionDepth: 6
    functionLinenumber: 1994
    functionLinenumberEnd: 2029
    functionName: hamt_node_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - IS_BITMAP_NODE
    - IS_ARRAY_NODE
    - hamt_node_array_find
    - hamt_node_bitmap_find
    - hamt_node_collision_find
    - IS_COLLISION_NODE
    - assert
    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/cpython/Python/hamt.c:2042,1
    - Dst: hamt_node_bitmap_dump
      Src: /src/cpython/Python/hamt.c:2043,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:2046,1
    - Dst: hamt_node_array_dump
      Src: /src/cpython/Python/hamt.c:2047,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2051,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:2051,1
    - Dst: hamt_node_collision_dump
      Src: /src/cpython/Python/hamt.c:2052,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: 2050
        line_start: 2050
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2055
      start: 2032
    functionDepth: 12
    functionLinenumber: 2032
    functionLinenumberEnd: 2055
    functionName: hamt_node_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - hamt_node_bitmap_dump
    - IS_BITMAP_NODE
    - hamt_node_array_dump
    - IS_ARRAY_NODE
    - hamt_node_collision_dump
    - IS_COLLISION_NODE
    - assert
    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: 2078
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2078
    functionName: hamt_iterator_init
    functionSourceFile: /src/cpython/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/cpython/Python/hamt.c:2089,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2091,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2095,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2102,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2108,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: 2101
        line_start: 2101
        source_file: /src/cpython/Python/hamt.c
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2090
        line_start: 2090
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2115
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2115
    functionName: hamt_iterator_bitmap_next
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - hamt_iterator_next
    - assert
    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/cpython/Python/hamt.c:2126,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2128,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2132,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: 2127
        line_start: 2127
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2139
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2139
    functionName: hamt_iterator_collision_next
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - hamt_iterator_next
    - assert
    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/cpython/Python/hamt.c:2152,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2156,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2164,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2169,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2174,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2179,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: 2151
        line_start: 2151
        source_file: /src/cpython/Python/hamt.c
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2173
        line_start: 2173
        source_file: /src/cpython/Python/hamt.c
    - condition: (next_level < _Py_HAMT_MAX_TREE_DEPTH)
      pos:
        line_end: 2163
        line_start: 2163
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2180
      start: 2141
    functionDepth: 1
    functionLinenumber: 2141
    functionLinenumberEnd: 2180
    functionName: hamt_iterator_array_next
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_iterator_next
    - assert
    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/cpython/Python/hamt.c:2189,1
    - Dst: IS_BITMAP_NODE
      Src: /src/cpython/Python/hamt.c:2193,1
    - Dst: hamt_iterator_bitmap_next
      Src: /src/cpython/Python/hamt.c:2194,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:2196,1
    - Dst: hamt_iterator_array_next
      Src: /src/cpython/Python/hamt.c:2197,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2200,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:2200,1
    - Dst: hamt_iterator_collision_next
      Src: /src/cpython/Python/hamt.c:2201,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: 2188
        line_start: 2188
        source_file: /src/cpython/Python/hamt.c
    - condition: (IS_COLLISION_NODE(current))
      pos:
        line_end: 2199
        line_start: 2199
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2203
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2203
    functionName: hamt_iterator_next
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 3
    functionsReached:
    - IS_BITMAP_NODE
    - IS_ARRAY_NODE
    - hamt_iterator_array_next
    - hamt_iterator_collision_next
    - hamt_iterator_bitmap_next
    - IS_COLLISION_NODE
    - assert
    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/cpython/Python/hamt.c:2217,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:2222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2230,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2231,1
    - Dst: hamt_alloc
      Src: /src/cpython/Python/hamt.c:2234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2209
    functionDepth: 8
    functionLinenumber: 2209
    functionLinenumberEnd: 2244
    functionName: _PyHamt_Assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - hamt_node_assoc
    - Py_NewRef
    - hamt_alloc
    - hamt_hash
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      _PyHamt_Assoc(PyHamtObject *o, PyObject *key, PyObject *val)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hamt_hash
      Src: /src/cpython/Python/hamt.c:2249,1
    - Dst: hamt_node_without
      Src: /src/cpython/Python/hamt.c:2256,1
    - Dst: _PyHamt_New
      Src: /src/cpython/Python/hamt.c:2265,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2267,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2269,1
    - Dst: hamt_alloc
      Src: /src/cpython/Python/hamt.c:2271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2273,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2279,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts:
    - condition: (new_root != NULL)
      pos:
        line_end: 2268
        line_start: 2268
        source_file: /src/cpython/Python/hamt.c
    - condition: (new_o->h_count >= 0)
      pos:
        line_end: 2278
        line_start: 2278
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2285
      start: 2246
    functionDepth: 7
    functionLinenumber: 2246
    functionLinenumberEnd: 2285
    functionName: _PyHamt_Without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - Py_DECREF
    - hamt_node_without
    - Py_NewRef
    - hamt_alloc
    - _PyHamt_New
    - assert
    - hamt_hash
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      _PyHamt_Without(PyHamtObject *o, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hamt_hash
      Src: /src/cpython/Python/hamt.c:2294,1
    - Dst: hamt_node_find
      Src: /src/cpython/Python/hamt.c:2299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2287
    functionDepth: 7
    functionLinenumber: 2287
    functionLinenumberEnd: 2300
    functionName: hamt_find
    functionSourceFile: /src/cpython/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/cpython/Python/hamt.c:2306,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2303
    functionDepth: 8
    functionLinenumber: 2303
    functionLinenumberEnd: 2317
    functionName: _PyHamt_Find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_find
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int _PyHamt_Find(PyHamtObject *o, PyObject *key, PyObject **val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hamt_iterator_init
      Src: /src/cpython/Python/hamt.c:2338,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2341,1
    - Dst: hamt_find
      Src: /src/cpython/Python/hamt.c:2343,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:2352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyHamtObject*
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2320
    functionDepth: 8
    functionLinenumber: 2320
    functionLinenumberEnd: 2365
    functionName: _PyHamt_Eq
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_iterator_next
    - PyObject_RichCompareBool
    - hamt_find
    - 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: 2371
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2371
    functionName: _PyHamt_Len
    functionSourceFile: /src/cpython/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/cpython/Python/hamt.c:2377,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/hamt.c:2384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2373
    functionDepth: 1
    functionLinenumber: 2373
    functionLinenumberEnd: 2386
    functionName: hamt_alloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_Track
    - PyObject_GC_New
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      hamt_alloc(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2391
    functionDepth: 0
    functionLinenumber: 2391
    functionLinenumberEnd: 2397
    functionName: _PyHamt_New
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      _PyHamt_New(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/hamt.c:2403,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:2408,1
    - Dst: hamt_node_dump
      Src: /src/cpython/Python/hamt.c:2413,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/hamt.c:2417,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/hamt.c:2420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2400
    functionDepth: 13
    functionLinenumber: 2400
    functionLinenumberEnd: 2422
    functionName: hamt_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_dump
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_dump(PyHamtObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/hamt.c:2433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2429
    functionDepth: 1
    functionLinenumber: 2429
    functionLinenumberEnd: 2435
    functionName: hamt_baseiter_tp_clear
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int hamt_baseiter_tp_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:2440,1
    - Dst: hamt_baseiter_tp_clear
      Src: /src/cpython/Python/hamt.c:2441,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/hamt.c:2442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2437
    functionDepth: 2
    functionLinenumber: 2437
    functionLinenumberEnd: 2443
    functionName: hamt_baseiter_tp_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_baseiter_tp_clear
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void hamt_baseiter_tp_dealloc(PyObject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:2449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2445
    functionDepth: 1
    functionLinenumber: 2445
    functionLinenumberEnd: 2451
    functionName: hamt_baseiter_tp_traverse
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hamt_baseiter_tp_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2459,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/hamt.c:2463,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2474
    functionName: hamt_baseiter_tp_iternext
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_iterator_next
    - PyErr_SetNone
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_baseiter_tp_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2481
    functionName: hamt_baseiter_tp_len
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t hamt_baseiter_tp_len(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/hamt.c:2490,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2495,1
    - Dst: hamt_iterator_init
      Src: /src/cpython/Python/hamt.c:2498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - yield
    - o
    argTypes:
    - PyTypeObject*
    - binaryfunc
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2487
    functionDepth: 1
    functionLinenumber: 2487
    functionLinenumberEnd: 2501
    functionName: hamt_baseiter_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GC_New
    - hamt_iterator_init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_baseiter_new(PyTypeObject *type, binaryfunc yield, PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/hamt.c:2528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2525
    functionDepth: 3
    functionLinenumber: 2525
    functionLinenumberEnd: 2529
    functionName: hamt_iter_yield_items
    functionSourceFile: /src/cpython/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/cpython/Python/hamt.c:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2531
    functionDepth: 2
    functionLinenumber: 2531
    functionLinenumberEnd: 2536
    functionName: _PyHamt_NewIterItems
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_baseiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyHamt_NewIterItems(PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2548
    functionDepth: 0
    functionLinenumber: 2548
    functionLinenumberEnd: 2552
    functionName: hamt_iter_yield_keys
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_iter_yield_keys(PyObject *key, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_baseiter_new
      Src: /src/cpython/Python/hamt.c:2557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2554
    functionDepth: 2
    functionLinenumber: 2554
    functionLinenumberEnd: 2559
    functionName: _PyHamt_NewIterKeys
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_baseiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyHamt_NewIterKeys(PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2571
    functionDepth: 0
    functionLinenumber: 2571
    functionLinenumberEnd: 2575
    functionName: hamt_iter_yield_values
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_iter_yield_values(PyObject *key, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_baseiter_new
      Src: /src/cpython/Python/hamt.c:2580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2577
    functionDepth: 2
    functionLinenumber: 2577
    functionLinenumberEnd: 2582
    functionName: _PyHamt_NewIterValues
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_baseiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyHamt_NewIterValues(PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2594
    functionName: _PyHamtObject_CAST
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHamtObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_New
      Src: /src/cpython/Python/hamt.c:2599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2596
    functionDepth: 1
    functionLinenumber: 2596
    functionLinenumberEnd: 2600
    functionName: hamt_tp_new
    functionSourceFile: /src/cpython/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: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2605,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/hamt.c:2606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2608
    functionName: hamt_tp_clear
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: int
    signature: int hamt_tp_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2614,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:2615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2611
    functionDepth: 1
    functionLinenumber: 2611
    functionLinenumberEnd: 2617
    functionName: hamt_tp_traverse
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hamt_tp_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2622,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Python/hamt.c:2626,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:2632,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Python/hamt.c:2634,1
    - Dst: hamt_tp_clear
      Src: /src/cpython/Python/hamt.c:2636,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:2637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2619
    functionDepth: 4
    functionLinenumber: 2619
    functionLinenumberEnd: 2638
    functionName: hamt_tp_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_ClearWeakRefs
    - hamt_tp_clear
    - _Py_FatalRefcountError
    - Py_TYPE
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: void
    signature: void hamt_tp_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyHamt_Check
      Src: /src/cpython/Python/hamt.c:2644,1
    - Dst: PyHamt_Check
      Src: /src/cpython/Python/hamt.c:2644,1
    - Dst: _PyHamt_Eq
      Src: /src/cpython/Python/hamt.c:2648,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2641
    functionDepth: 9
    functionLinenumber: 2641
    functionLinenumberEnd: 2663
    functionName: hamt_tp_richcompare
    functionSourceFile: /src/cpython/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: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2669,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/hamt.c:2670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2665
    functionDepth: 9
    functionLinenumber: 2665
    functionLinenumberEnd: 2671
    functionName: hamt_tp_contains
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtObject_CAST
    - _PyHamt_Find
    linkageType: ''
    returnType: int
    signature: int hamt_tp_contains(PyObject *op, PyObject *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2677,1
    - Dst: hamt_find
      Src: /src/cpython/Python/hamt.c:2678,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2683,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/hamt.c:2685,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2673
    functionDepth: 8
    functionLinenumber: 2673
    functionLinenumberEnd: 2690
    functionName: hamt_tp_subscript
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Py_NewRef
    - hamt_find
    - _PyHamtObject_CAST
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_tp_subscript(PyObject *op, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2695,1
    - Dst: _PyHamt_Len
      Src: /src/cpython/Python/hamt.c:2696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2697
    functionName: hamt_tp_len
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Len
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t hamt_tp_len(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2702,1
    - Dst: _PyHamt_NewIterKeys
      Src: /src/cpython/Python/hamt.c:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2699
    functionDepth: 3
    functionLinenumber: 2699
    functionLinenumberEnd: 2704
    functionName: hamt_tp_iter
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterKeys
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_tp_iter(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Python/hamt.c:2712,1
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2716,1
    - Dst: _PyHamt_Assoc
      Src: /src/cpython/Python/hamt.c:2717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2706
    functionDepth: 9
    functionLinenumber: 2706
    functionLinenumberEnd: 2718
    functionName: hamt_py_set
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Assoc
    - PyArg_UnpackTuple
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_set(PyObject *op, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Python/hamt.c:2726,1
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2731,1
    - Dst: hamt_find
      Src: /src/cpython/Python/hamt.c:2732,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2737,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2742,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2720
    functionDepth: 8
    functionLinenumber: 2720
    functionLinenumberEnd: 2746
    functionName: hamt_py_get
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    - Py_NewRef
    - hamt_find
    - _PyHamtObject_CAST
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_get(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2751,1
    - Dst: _PyHamt_Without
      Src: /src/cpython/Python/hamt.c:2752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2748
    functionDepth: 8
    functionLinenumber: 2748
    functionLinenumberEnd: 2753
    functionName: hamt_py_delete
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Without
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_delete(PyObject *op, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2758,1
    - Dst: _PyHamt_NewIterItems
      Src: /src/cpython/Python/hamt.c:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2755
    functionDepth: 3
    functionLinenumber: 2755
    functionLinenumberEnd: 2760
    functionName: hamt_py_items
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterItems
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_items(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2765,1
    - Dst: _PyHamt_NewIterValues
      Src: /src/cpython/Python/hamt.c:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2762
    functionDepth: 3
    functionLinenumber: 2762
    functionLinenumberEnd: 2767
    functionName: hamt_py_values
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtObject_CAST
    - _PyHamt_NewIterValues
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_values(PyObject *op, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2772,1
    - Dst: _PyHamt_NewIterKeys
      Src: /src/cpython/Python/hamt.c:2773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2769
    functionDepth: 3
    functionLinenumber: 2769
    functionLinenumberEnd: 2774
    functionName: hamt_py_keys
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterKeys
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_keys(PyObject *op, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2780,1
    - Dst: hamt_dump
      Src: /src/cpython/Python/hamt.c:2781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2777
    functionDepth: 14
    functionLinenumber: 2777
    functionLinenumberEnd: 2782
    functionName: hamt_py_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_dump
    - _PyHamtObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_dump(PyObject *op, PyObject *Py_UNUSED(args))'
  - 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: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: ENSURE_Context
    functionSourceFile: /src/cpython/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: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: ENSURE_ContextVar
    functionSourceFile: /src/cpython/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: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: ENSURE_ContextToken
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_ContextToken(o, err_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_New
      Src: /src/cpython/Python/context.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: _PyContext_NewHamtForTests
    functionSourceFile: /src/cpython/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/cpython/Python/context.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: PyContext_New
    functionSourceFile: /src/cpython/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/cpython/Python/context.c:85,1
    - Dst: context_new_from_vars
      Src: /src/cpython/Python/context.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: PyContext_Copy
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - ENSURE_Context
    - context_new_from_vars
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContext_Copy(PyObject * octx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_get
      Src: /src/cpython/Python/context.c:94,1
    - Dst: context_new_from_vars
      Src: /src/cpython/Python/context.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: PyContext_CopyCurrent
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 3
    functionsReached:
    - context_new_from_vars
    - context_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContext_CopyCurrent(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/context.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - event
    argTypes:
    - PyContextEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: context_event_name
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: char
    signature: 'char *

      context_event_name(PyContextEvent event)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/context.c:123,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/context.c:123,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:125,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:129,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:132,1
    - Dst: cb
      Src: /src/cpython/Python/context.c:133,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/context.c:134,1
    - Dst: context_event_name
      Src: /src/cpython/Python/context.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ts
    - event
    - ctx
    argTypes:
    - PyThreadState*
    - PyContextEvent
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(ctx) > 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Python/context.c
    - condition: (interp->_initialized)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Python/context.c
    - condition: (i < CONTEXT_MAX_WATCHERS)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/cpython/Python/context.c
    - condition: (cb != NULL)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 142
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 142
    functionName: notify_context_watchers
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - cb
    - context_event_name
    - PyErr_FormatUnraisable
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void notify_context_watchers(PyThreadState *ts, PyContextEvent event,
      PyObject *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/context.c:148,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:149,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyContext_WatchCallback
    assertStmts:
    - condition: (interp->_initialized)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 161
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 161
    functionName: PyContext_AddWatcher
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: int
    signature: int PyContext_AddWatcher(PyContext_WatchCallback callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/context.c:167,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:168,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts:
    - condition: (interp->_initialized)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: PyContext_ClearWatcher
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - _PyInterpreterState_GET
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyContext_ClearWatcher(int watcher_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_context_watchers
      Src: /src/cpython/Python/context.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ts
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: context_switched
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - notify_context_watchers
    linkageType: ''
    returnType: void
    signature: void context_switched(PyThreadState *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_Context
      Src: /src/cpython/Python/context.c:196,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/context.c:200,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:208,1
    - Dst: context_switched
      Src: /src/cpython/Python/context.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ts
    - octx
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 211
    functionName: _PyContext_Enter
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - Py_NewRef
    - context_switched
    - ENSURE_Context
    linkageType: ''
    returnType: int
    signature: int _PyContext_Enter(PyThreadState *ts, PyObject *octx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:217,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:218,1
    - Dst: _PyContext_Enter
      Src: /src/cpython/Python/context.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: PyContext_Enter
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyContext_Enter
    - assert
    linkageType: ''
    returnType: int
    signature: int PyContext_Enter(PyObject *octx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_Context
      Src: /src/cpython/Python/context.c:226,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:237,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/context.c:243,1
    - Dst: context_switched
      Src: /src/cpython/Python/context.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ts
    - octx
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 249
    functionName: _PyContext_Exit
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - context_switched
    - PyErr_SetString
    - Py_SETREF
    - PyErr_Format
    - ENSURE_Context
    linkageType: ''
    returnType: int
    signature: int _PyContext_Exit(PyThreadState *ts, PyObject *octx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:254,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:255,1
    - Dst: _PyContext_Exit
      Src: /src/cpython/Python/context.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: PyContext_Exit
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyContext_Exit
    - assert
    linkageType: ''
    returnType: int
    signature: int PyContext_Exit(PyObject *octx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/context.c:263,1
    - Dst: contextvar_new
      Src: /src/cpython/Python/context.c:267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - def
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: PyContextVar_New
    functionSourceFile: /src/cpython/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/cpython/Python/context.c:276,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:279,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:280,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:295,1
    - Dst: PyContext_CheckExact
      Src: /src/cpython/Python/context.c:295,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:299,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:304,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/context.c:331,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: 294
        line_start: 294
        source_file: /src/cpython/Python/context.c
    - condition: (ts != NULL)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/cpython/Python/context.c
    - condition: (found != NULL)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 337
      start: 273
    functionDepth: 9
    functionLinenumber: 273
    functionLinenumberEnd: 337
    functionName: PyContextVar_Get
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - PyContext_CheckExact
    - _PyThreadState_GET
    - ENSURE_ContextVar
    - Py_XINCREF
    - _PyHamt_Find
    - assert
    linkageType: ''
    returnType: int
    signature: int PyContextVar_Get(PyObject *ovar, PyObject *def, PyObject **val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_ContextVar
      Src: /src/cpython/Python/context.c:343,1
    - Dst: PyContextVar_CheckExact
      Src: /src/cpython/Python/context.c:346,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:347,1
    - Dst: context_get
      Src: /src/cpython/Python/context.c:352,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:358,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/context.c:363,1
    - Dst: token_new
      Src: /src/cpython/Python/context.c:364,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/context.c:365,1
    - Dst: contextvar_set
      Src: /src/cpython/Python/context.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ovar
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 340
    functionDepth: 9
    functionLinenumber: 340
    functionLinenumberEnd: 373
    functionName: PyContextVar_Set
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - context_get
    - PyErr_SetString
    - contextvar_set
    - token_new
    - ENSURE_ContextVar
    - Py_XINCREF
    - _PyHamt_Find
    - PyContextVar_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContextVar_Set(PyObject *ovar, PyObject *val)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_ContextVar
      Src: /src/cpython/Python/context.c:379,1
    - Dst: ENSURE_ContextToken
      Src: /src/cpython/Python/context.c:380,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:391,1
    - Dst: context_get
      Src: /src/cpython/Python/context.c:396,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:398,1
    - Dst: contextvar_del
      Src: /src/cpython/Python/context.c:406,1
    - Dst: contextvar_set
      Src: /src/cpython/Python/context.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ovar
    - otok
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 411
    functionName: PyContextVar_Reset
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - contextvar_del
    - context_get
    - ENSURE_ContextToken
    - contextvar_set
    - ENSURE_ContextVar
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyContextVar_Reset(PyObject *ovar, PyObject *otok)
  - 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: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 423
    functionName: _PyContext_CAST
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyContext_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Python/context.c:428,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/context.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 442
    functionName: _context_alloc
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _Py_FREELIST_POP
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      _context_alloc(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _context_alloc
      Src: /src/cpython/Python/context.c:448,1
    - Dst: _PyHamt_New
      Src: /src/cpython/Python/context.c:453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:455,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/context.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 461
    functionName: context_new_empty
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - _context_alloc
    - Py_DECREF
    - _PyObject_GC_TRACK
    - _PyHamt_New
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_new_empty(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _context_alloc
      Src: /src/cpython/Python/context.c:467,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:472,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/context.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vars
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 476
    functionName: context_new_from_vars
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - _context_alloc
    - Py_NewRef
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_new_from_vars(PyHamtObject *vars)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:482,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:483,1
    - Dst: context_new_empty
      Src: /src/cpython/Python/context.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 493
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 493
    functionName: context_get
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - context_new_empty
    - assert
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_get(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_CheckExact
      Src: /src/cpython/Python/context.c:498,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: context_check_key_type
    functionSourceFile: /src/cpython/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/cpython/Python/context.c:510,1
    - Dst: PyDict_Size
      Src: /src/cpython/Python/context.c:510,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:511,1
    - Dst: PyContext_New
      Src: /src/cpython/Python/context.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 516
    functionName: context_tp_new
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyContext_New
    - PyDict_Size
    - PyTuple_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:521,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:522,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 525
    functionName: context_tp_clear
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyContext_CAST
    linkageType: ''
    returnType: int
    signature: int context_tp_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:530,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:531,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 534
    functionName: context_tp_traverse
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyContext_CAST
    linkageType: ''
    returnType: int
    signature: int context_tp_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/context.c:539,1
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:540,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Python/context.c:542,1
    - Dst: context_tp_clear
      Src: /src/cpython/Python/context.c:544,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Python/context.c:546,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/context.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 547
    functionName: context_tp_dealloc
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - _PyObject_GC_UNTRACK
    - context_tp_clear
    - Py_TYPE
    - _Py_FREELIST_FREE
    - _PyContext_CAST
    linkageType: ''
    returnType: void
    signature: void context_tp_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:552,1
    - Dst: _PyHamt_NewIterKeys
      Src: /src/cpython/Python/context.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: context_tp_iter
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterKeys
    - _PyContext_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_iter(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyContext_CheckExact
      Src: /src/cpython/Python/context.c:559,1
    - Dst: PyContext_CheckExact
      Src: /src/cpython/Python/context.c:559,1
    - Dst: _PyHamt_Eq
      Src: /src/cpython/Python/context.c:565,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 556
    functionDepth: 9
    functionLinenumber: 556
    functionLinenumberEnd: 581
    functionName: context_tp_richcompare
    functionSourceFile: /src/cpython/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: _PyContext_CAST
      Src: /src/cpython/Python/context.c:586,1
    - Dst: _PyHamt_Len
      Src: /src/cpython/Python/context.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 588
    functionName: context_tp_len
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Len
    - _PyContext_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t context_tp_len(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_check_key_type
      Src: /src/cpython/Python/context.c:593,1
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:597,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:598,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/context.c:603,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 590
    functionDepth: 9
    functionLinenumber: 590
    functionLinenumberEnd: 607
    functionName: context_tp_subscript
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - context_check_key_type
    - Py_NewRef
    - _PyHamt_Find
    - _PyContext_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_subscript(PyObject *op, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_check_key_type
      Src: /src/cpython/Python/context.c:612,1
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:616,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 609
    functionDepth: 9
    functionLinenumber: 609
    functionLinenumberEnd: 618
    functionName: context_tp_contains
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - context_check_key_type
    - _PyHamt_Find
    - _PyContext_CAST
    linkageType: ''
    returnType: int
    signature: int context_tp_contains(PyObject *op, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_check_key_type
      Src: /src/cpython/Python/context.c:638,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:643,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:648,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyContext*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 633
    functionDepth: 9
    functionLinenumber: 633
    functionLinenumberEnd: 651
    functionName: _contextvars_Context_get_impl
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - context_check_key_type
    - Py_NewRef
    - _PyHamt_Find
    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/cpython/Python/context.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 667
    functionName: _contextvars_Context_items_impl
    functionSourceFile: /src/cpython/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/cpython/Python/context.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: _contextvars_Context_keys_impl
    functionSourceFile: /src/cpython/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/cpython/Python/context.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: _contextvars_Context_values_impl
    functionSourceFile: /src/cpython/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/cpython/Python/context.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: _contextvars_Context_copy_impl
    functionSourceFile: /src/cpython/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: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:716,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/context.c:719,1
    - Dst: _PyContext_Enter
      Src: /src/cpython/Python/context.c:724,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Python/context.c:728,1
    - Dst: _PyContext_Exit
      Src: /src/cpython/Python/context.c:731,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/context.c:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 712
    functionDepth: 5
    functionLinenumber: 712
    functionLinenumberEnd: 737
    functionName: context_run
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyContext_Enter
    - _PyThreadState_GET
    - _PyObject_VectorcallTstate
    - _PyContext_Exit
    - _PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncontext_run(PyObject *self, PyObject *const *args,\n            Py_ssize_t
      nargs, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:787,1
    - Dst: context_get
      Src: /src/cpython/Python/context.c:790,1
    - Dst: _PyHamt_Assoc
      Src: /src/cpython/Python/context.c:795,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/context.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - var
    - val
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 782
    functionDepth: 9
    functionLinenumber: 782
    functionLinenumberEnd: 809
    functionName: contextvar_set
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - Py_SETREF
    - _PyHamt_Assoc
    - context_get
    linkageType: ''
    returnType: int
    signature: int contextvar_set(PyContextVar *var, PyObject *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_get
      Src: /src/cpython/Python/context.c:818,1
    - Dst: _PyHamt_Without
      Src: /src/cpython/Python/context.c:824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:830,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/context.c:831,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/context.c:835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - var
    argTypes:
    - PyContextVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 811
    functionDepth: 8
    functionLinenumber: 811
    functionLinenumberEnd: 837
    functionName: contextvar_del
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - _PyHamt_Without
    - context_get
    - Py_DECREF
    - PyErr_SetObject
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int contextvar_del(PyContextVar *var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Python/context.c:858,1
    - Dst: Py_HashPointer
      Src: /src/cpython/Python/context.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - name
    argTypes:
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 865
    functionName: contextvar_generate_hash
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_HashPointer
    - PyObject_Hash
    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/cpython/Python/context.c:870,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:871,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/context.c:876,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:881,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/context.c:882,1
    - Dst: contextvar_generate_hash
      Src: /src/cpython/Python/context.c:890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:892,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/cpython/Python/context.c:896,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/cpython/Python/context.c:897,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/context.c:899,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - name
    - def
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 867
    functionDepth: 4
    functionLinenumber: 867
    functionLinenumberEnd: 902
    functionName: contextvar_new
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - contextvar_generate_hash
    - Py_NewRef
    - _PyObject_GC_MAY_BE_TRACKED
    - PyObject_GC_Track
    - Py_XNewRef
    - PyUnicode_Check
    - PyObject_GC_New
    linkageType: ''
    returnType: PyContextVar
    signature: 'PyContextVar *

      contextvar_new(PyObject *name, PyObject *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 912
    functionName: _PyContextVar_CAST
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyContextVar_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Python/context.c:921,1
    - Dst: contextvar_new
      Src: /src/cpython/Python/context.c:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 5
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: contextvar_tp_new
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - contextvar_new
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      contextvar_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextVar_CAST
      Src: /src/cpython/Python/context.c:933,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:934,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 942
    functionName: contextvar_tp_clear
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextVar_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int contextvar_tp_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextVar_CAST
      Src: /src/cpython/Python/context.c:947,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:948,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 951
    functionName: contextvar_tp_traverse
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextVar_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int contextvar_tp_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/context.c:956,1
    - Dst: contextvar_tp_clear
      Src: /src/cpython/Python/context.c:957,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/context.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 959
    functionName: contextvar_tp_dealloc
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - contextvar_tp_clear
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void contextvar_tp_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextVar_CAST
      Src: /src/cpython/Python/context.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 966
    functionName: contextvar_tp_hash
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextVar_CAST
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t contextvar_tp_hash(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextVar_CAST
      Src: /src/cpython/Python/context.c:971,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/context.c:977,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:982,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Python/context.c:985,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:990,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Python/context.c:993,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/context.c:998,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/context.c:1001,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/context.c:1004,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 968
    functionDepth: 9
    functionLinenumber: 968
    functionLinenumberEnd: 1006
    functionName: contextvar_tp_repr
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextVar_CAST
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      contextvar_tp_repr(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_CheckExact
      Src: /src/cpython/Python/context.c:1028,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:1029,1
    - Dst: PyContextVar_Get
      Src: /src/cpython/Python/context.c:1035,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/context.c:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1024
    functionDepth: 10
    functionLinenumber: 1024
    functionLinenumberEnd: 1045
    functionName: _contextvars_ContextVar_get_impl
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContextVar_Get
    - PyErr_SetString
    - PyErr_SetObject
    - PyContextVar_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_get_impl(PyContextVar *self, PyObject *default_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_Set
      Src: /src/cpython/Python/context.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1061
    functionDepth: 10
    functionLinenumber: 1061
    functionLinenumberEnd: 1066
    functionName: _contextvars_ContextVar_set_impl
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContextVar_Set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_set_impl(PyContextVar *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyContextToken_CheckExact
      Src: /src/cpython/Python/context.c:1084,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:1085,1
    - Dst: PyContextVar_Reset
      Src: /src/cpython/Python/context.c:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1095
    functionName: _contextvars_ContextVar_reset_impl
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContextVar_Reset
    - PyContextToken_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_reset_impl(PyContextVar *self, PyObject *token)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1142
    functionName: _PyContextToken_CAST
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyContextToken_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1150
    functionName: token_tp_new
    functionSourceFile: /src/cpython/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: _PyContextToken_CAST
      Src: /src/cpython/Python/context.c:1155,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:1156,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:1157,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1160
    functionName: token_tp_clear
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyContextToken_CAST
    linkageType: ''
    returnType: int
    signature: int token_tp_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextToken_CAST
      Src: /src/cpython/Python/context.c:1165,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:1166,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:1167,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1170
    functionName: token_tp_traverse
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyContextToken_CAST
    linkageType: ''
    returnType: int
    signature: int token_tp_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/context.c:1175,1
    - Dst: token_tp_clear
      Src: /src/cpython/Python/context.c:1176,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/context.c:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1178
    functionName: token_tp_dealloc
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - token_tp_clear
    - Py_TYPE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void token_tp_dealloc(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextToken_CAST
      Src: /src/cpython/Python/context.c:1183,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/context.c:1184,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:1188,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:1192,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:1196,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Python/context.c:1199,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/context.c:1202,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/context.c:1205,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/context.c:1208,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1180
    functionDepth: 9
    functionLinenumber: 1180
    functionLinenumberEnd: 1210
    functionName: token_tp_repr
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Format
    - _PyContextToken_CAST
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_tp_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextToken_CAST
      Src: /src/cpython/Python/context.c:1215,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1217
    functionName: token_get_var
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyContextToken_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_get_var(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextToken_CAST
      Src: /src/cpython/Python/context.c:1222,1
    - Dst: get_token_missing
      Src: /src/cpython/Python/context.c:1224,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1228
    functionName: token_get_old_value
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - get_token_missing
    - Py_NewRef
    - _PyContextToken_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_get_old_value(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1247
    functionName: token_enter_impl
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_enter_impl(PyContextToken *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_Reset
      Src: /src/cpython/Python/context.c:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - type
    - val
    - tb
    argTypes:
    - PyContextToken*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1260
    functionDepth: 2
    functionLinenumber: 1260
    functionLinenumberEnd: 1270
    functionName: token_exit_impl
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContextVar_Reset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntoken_exit_impl(PyContextToken *self, PyObject *type,
      PyObject *val,\n                PyObject *tb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/context.c:1300,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1305,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1307,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/context.c:1309,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/context.c:1313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - var
    - val
    argTypes:
    - PyContext*
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1315
    functionName: token_new
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_XNewRef
    linkageType: ''
    returnType: PyContextToken
    signature: 'PyContextToken *

      token_new(PyContext *ctx, PyContextVar *var, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/context.c:1324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1325
    functionName: context_token_missing_tp_repr
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_token_missing_tp_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Python/context.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Py_UNUSED(self)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1336
    functionName: context_token_missing_tp_dealloc
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _Py_FatalRefcountError
    linkageType: ''
    returnType: void
    signature: void context_token_missing_tp_dealloc(PyObject *Py_UNUSED(self))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/context.c:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1354
    functionName: get_token_missing
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - _Py_SINGLETON
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_token_missing(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/context.c:1363,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/context.c:1364,1
    - Dst: get_token_missing
      Src: /src/cpython/Python/context.c:1367,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/context.c:1368,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Python/context.c:1369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:1371,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/context.c:1372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:1374,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/context.c:1376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1360
    functionDepth: 10
    functionLinenumber: 1360
    functionLinenumberEnd: 1377
    functionName: _PyContext_Init
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _Py_IsMainInterpreter
    - Py_DECREF
    - PyDict_SetItemString
    - _PyStatus_ERR
    - get_token_missing
    - _PyType_GetDict
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyContext_Init(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: RETURN_IF_ERROR
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 92
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - L1
    - ','
    - L2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: SAME_LABEL
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAME_LABEL(L1, L2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: IS_LABEL
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_LABEL(L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - LNO
    - ','
    - END_LNO
    - ','
    - COL
    - ','
    - END_COL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: LOCATION
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCATION(LNO, END_LNO, COL, END_COL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:101,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/flowgraph.c:101,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:101,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - cfg_instr*
    assertStmts:
    - condition: (OPCODE_HAS_ARG(i->i_opcode) || !IS_BLOCK_PUSH_OPCODE(i->i_opcode))
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: is_block_push
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_BLOCK_PUSH_OPCODE
    - OPCODE_HAS_ARG
    - assert
    linkageType: ''
    returnType: int
    signature: int is_block_push(cfg_instr *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPCODE_HAS_JUMP
      Src: /src/cpython/Python/flowgraph.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - cfg_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: is_jump
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_JUMP
    linkageType: ''
    returnType: int
    signature: int is_jump(cfg_instr *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - I
    - ','
    - OP
    - ','
    - ARG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: INSTR_SET_OP1
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_SET_OP1(I, OP, ARG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: INSTR_SET_OP0
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_SET_OP0(I, OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - LOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: INSTR_SET_LOC
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_SET_LOC(I, LOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:144,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:152,1
    - Dst: _Py_CArray_EnsureCapacity
      Src: /src/cpython/Python/flowgraph.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: basicblock_next_instr
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _Py_CArray_EnsureCapacity
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: int basicblock_next_instr(basicblock *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:160,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (b->b_iused >= 0)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b->b_instr != NULL)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: basicblock_last_instr
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: cfg_instr
    signature: 'cfg_instr *

      basicblock_last_instr(const basicblock *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/flowgraph.c:175,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: cfg_builder_new_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      cfg_builder_new_block(cfg_builder *g)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:190,1
    - Dst: IS_WITHIN_OPCODE_RANGE
      Src: /src/cpython/Python/flowgraph.c:190,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:191,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:191,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:192,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/flowgraph.c:192,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:192,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:193,1
    - Dst: basicblock_next_instr
      Src: /src/cpython/Python/flowgraph.c:195,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:204,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - b
    - opcode
    - oparg
    - loc
    argTypes:
    - basicblock*
    - int
    - int
    - location
    assertStmts:
    - condition: (IS_WITHIN_OPCODE_RANGE(opcode))
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (OPCODE_HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (0 <= oparg && oparg < (1 << 30))
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i->i_target == NULL)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i->i_except == NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: basicblock_addop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_ARG
    - IS_ASSEMBLER_OPCODE
    - HAS_TARGET
    - basicblock_next_instr
    - IS_WITHIN_OPCODE_RANGE
    - assert
    linkageType: ''
    returnType: int
    signature: int basicblock_addop(basicblock *b, int opcode, int oparg, location
      loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:213,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:214,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:218,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:219,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:220,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - b
    - opcode
    - target
    - loc
    argTypes:
    - basicblock*
    - int
    - basicblock*
    - location
    assertStmts:
    - condition: (last && last->i_opcode == opcode)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 224
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 224
    functionName: basicblock_add_jump
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - is_jump
    - basicblock_addop
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: int basicblock_add_jump(basicblock *b, int opcode, basicblock *target,
      location loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_next_instr
      Src: /src/cpython/Python/flowgraph.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - basicblock*
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 237
    functionName: basicblock_append_instructions
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_next_instr
    linkageType: ''
    returnType: int
    signature: int basicblock_append_instructions(basicblock *to, basicblock *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:241,1
    - Dst: IS_SCOPE_EXIT_OPCODE
      Src: /src/cpython/Python/flowgraph.c:243,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: basicblock_nofallthrough
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - IS_SCOPE_EXIT_OPCODE
    - IS_UNCONDITIONAL_JUMP_OPCODE
    linkageType: ''
    returnType: int
    signature: int basicblock_nofallthrough(const basicblock *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: BB_NO_FALLTHROUGH
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BB_NO_FALLTHROUGH(B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: BB_HAS_FALLTHROUGH
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BB_HAS_FALLTHROUGH(B)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:256,1
    - Dst: BB_NO_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:256,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:257,1
    - Dst: basicblock_append_instructions
      Src: /src/cpython/Python/flowgraph.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - g
    - block
    argTypes:
    - cfg_builder*
    - basicblock*
    assertStmts:
    - condition: (BB_NO_FALLTHROUGH(block))
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 265
      start: 250
    functionDepth: 5
    functionLinenumber: 250
    functionLinenumberEnd: 265
    functionName: copy_basicblock
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_append_instructions
    - cfg_builder_new_block
    - assert
    - BB_NO_FALLTHROUGH
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      copy_basicblock(cfg_builder *g, basicblock *block)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:269,1
    - Dst: basicblock_next_instr
      Src: /src/cpython/Python/flowgraph.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - block
    - pos
    - instr
    argTypes:
    - basicblock*
    - int
    - cfg_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: basicblock_insert_instruction
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_next_instr
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int basicblock_insert_instruction(basicblock *block, int pos, cfg_instr
      *instr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:282,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/flowgraph.c:287,1
    - Dst: sprintf
      Src: /src/cpython/Python/flowgraph.c:288,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:290,1
    - Dst: sprintf
      Src: /src/cpython/Python/flowgraph.c:291,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - cfg_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: dump_instr
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - OPCODE_HAS_ARG
    - sprintf
    - HAS_TARGET
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_instr(cfg_instr *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:299,1
    - Dst: IS_RETURN_OPCODE
      Src: /src/cpython/Python/flowgraph.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: basicblock_returns
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - IS_RETURN_OPCODE
    linkageType: ''
    returnType: int
    signature: int basicblock_returns(const basicblock *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_returns
      Src: /src/cpython/Python/flowgraph.c:306,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:308,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:310,1
    - Dst: BB_NO_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:311,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:317,1
    - Dst: dump_instr
      Src: /src/cpython/Python/flowgraph.c:318,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:320,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - b
    - highlight
    argTypes:
    - basicblock*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: dump_basicblock
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - dump_instr
    - _PyOpcode_num_popped
    - fprintf
    - basicblock_returns
    - _PyOpcode_num_pushed
    - BB_NO_FALLTHROUGH
    linkageType: ''
    returnType: void
    signature: void dump_basicblock(const basicblock *b, bool highlight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_basicblock
      Src: /src/cpython/Python/flowgraph.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - entryblock
    - mark
    argTypes:
    - basicblock*
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: _PyCfgBuilder_DumpGraph
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - dump_basicblock
    linkageType: ''
    returnType: void
    signature: void _PyCfgBuilder_DumpGraph(const basicblock *entryblock, const basicblock
      *mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - g
    - block
    argTypes:
    - cfg_builder*
    - basicblock*
    assertStmts:
    - condition: (block != NULL)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: cfg_builder_use_next_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      cfg_builder_use_next_block(cfg_builder *g, basicblock *block)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:351,1
    - Dst: IS_SCOPE_EXIT_OPCODE
      Src: /src/cpython/Python/flowgraph.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: basicblock_exits_scope
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - IS_SCOPE_EXIT_OPCODE
    linkageType: ''
    returnType: int
    signature: int basicblock_exits_scope(const basicblock *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPCODE_HAS_EVAL_BREAK
      Src: /src/cpython/Python/flowgraph.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: basicblock_has_eval_break
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_EVAL_BREAK
    linkageType: ''
    returnType: int
    signature: int basicblock_has_eval_break(const basicblock *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:368,1
    - Dst: IS_TERMINATOR_OPCODE
      Src: /src/cpython/Python/flowgraph.c:369,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:372,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: cfg_builder_current_block_is_terminated
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - IS_TERMINATOR_OPCODE
    - IS_LABEL
    linkageType: ''
    returnType: bool
    signature: bool cfg_builder_current_block_is_terminated(cfg_builder *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cfg_builder_current_block_is_terminated
      Src: /src/cpython/Python/flowgraph.c:388,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:389,1
    - Dst: cfg_builder_use_next_block
      Src: /src/cpython/Python/flowgraph.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 398
    functionName: cfg_builder_maybe_start_new_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - cfg_builder_new_block
    - cfg_builder_current_block_is_terminated
    - cfg_builder_use_next_block
    linkageType: ''
    returnType: int
    signature: int cfg_builder_maybe_start_new_block(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:404,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:406,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/flowgraph.c:406,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:408,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:409,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:410,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:413,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (g->g_entryblock->b_iused > 0)
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_iused >= 0)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!_PyMem_IsPtrFreed(block))
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_ialloc > 0)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_ialloc >= block->b_iused)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_iused == 0)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_ialloc == 0)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 418
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 418
    functionName: cfg_builder_check
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyMem_IsPtrFreed
    - assert
    linkageType: ''
    returnType: bool
    signature: bool cfg_builder_check(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: init_cfg_builder
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - cfg_builder_new_block
    linkageType: ''
    returnType: int
    signature: int init_cfg_builder(cfg_builder *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:437,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:439,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:442,1
    - Dst: init_cfg_builder
      Src: /src/cpython/Python/flowgraph.c:443,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: _PyCfgBuilder_New
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - memset
    - PyErr_NoMemory
    - PyMem_Malloc
    - PyMem_Free
    - init_cfg_builder
    linkageType: ''
    returnType: cfg_builder
    signature: 'cfg_builder *

      _PyCfgBuilder_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:456,1
    - Dst: cfg_builder_check
      Src: /src/cpython/Python/flowgraph.c:456,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:460,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:463,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (cfg_builder_check(g))
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 467
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 467
    functionName: _PyCfgBuilder_Free
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - PyMem_Free
    - cfg_builder_check
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyCfgBuilder_Free(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 481
    functionName: _PyCfgBuilder_CheckSize
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int _PyCfgBuilder_CheckSize(cfg_builder *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfg_builder_maybe_start_new_block
      Src: /src/cpython/Python/flowgraph.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - g
    - lbl
    argTypes:
    - cfg_builder*
    - jump_target_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: _PyCfgBuilder_UseLabel
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - cfg_builder_maybe_start_new_block
    linkageType: ''
    returnType: int
    signature: int _PyCfgBuilder_UseLabel(cfg_builder *g, jump_target_label lbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:493,1
    - Dst: cfg_builder_maybe_start_new_block
      Src: /src/cpython/Python/flowgraph.c:493,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - g
    - opcode
    - oparg
    - loc
    argTypes:
    - cfg_builder*
    - int
    - int
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: _PyCfgBuilder_Addop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_addop
    - cfg_builder_maybe_start_new_block
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int _PyCfgBuilder_Addop(cfg_builder *g, int opcode, int oparg, location
      loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 505
    functionName: next_nonempty_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      next_nonempty_block(basicblock *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: no_redundant_nops
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - remove_redundant_nops
    linkageType: ''
    returnType: bool
    signature: bool no_redundant_nops(cfg_builder *g)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:523,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:525,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:526,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:527,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:529,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (next)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (0)
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 539
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 539
    functionName: no_redundant_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - next_nonempty_block
    - IS_UNCONDITIONAL_JUMP_OPCODE
    - assert
    linkageType: ''
    returnType: bool
    signature: bool no_redundant_jumps(cfg_builder *g)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:546,1
    - Dst: IS_CONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:547,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:550,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:550,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:554,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:555,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:579,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:583,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:584,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:585,1
    - Dst: basicblock_add_jump
      Src: /src/cpython/Python/flowgraph.c:586,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - g
    - b
    argTypes:
    - cfg_builder*
    - basicblock*
    assertStmts:
    - condition: (!IS_ASSEMBLER_OPCODE(last->i_opcode))
      pos:
        line_end: 549
        line_start: 549
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 595
      start: 544
    functionDepth: 6
    functionLinenumber: 544
    functionLinenumberEnd: 595
    functionName: normalize_jumps_in_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - basicblock_add_jump
    - cfg_builder_new_block
    - basicblock_addop
    - RETURN_IF_ERROR
    - IS_ASSEMBLER_OPCODE
    - IS_CONDITIONAL_JUMP_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: int normalize_jumps_in_block(cfg_builder *g, basicblock *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:607,1
    - Dst: normalize_jumps_in_block
      Src: /src/cpython/Python/flowgraph.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 598
    functionDepth: 7
    functionLinenumber: 598
    functionLinenumberEnd: 610
    functionName: normalize_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - normalize_jumps_in_block
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int normalize_jumps(cfg_builder *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:618,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:618,1
    - Dst: IS_TERMINATOR_OPCODE
      Src: /src/cpython/Python/flowgraph.c:619,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 628
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 628
    functionName: check_cfg
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - IS_ASSEMBLER_OPCODE
    - IS_TERMINATOR_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: int check_cfg(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 640
    functionName: get_max_label
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_max_label(basicblock *entryblock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_max_label
      Src: /src/cpython/Python/flowgraph.c:646,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:648,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:650,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:653,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:662,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:663,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:665,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:667,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:668,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:672,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (instr->i_target == NULL)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (lbl >= 0 && lbl <= max_label)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_target != NULL)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_target->b_label.id == lbl)
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 674
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 674
    functionName: translate_jump_labels_to_targets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - memset
    - HAS_TARGET
    - PyMem_Free
    - get_max_label
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int translate_jump_labels_to_targets(basicblock *entryblock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:680,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (!b->b_except_handler)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 692
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 692
    functionName: mark_except_handlers
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_block_push
    - assert
    linkageType: ''
    returnType: int
    signature: int mark_except_handlers(basicblock *entryblock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:703,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:703,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - stack
    - setup
    argTypes:
    - struct _PyCfgExceptStack*
    - cfg_instr*
    assertStmts:
    - condition: (is_block_push(setup))
      pos:
        line_end: 702
        line_start: 702
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (stack->depth <= CO_MAXBLOCKS)
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 712
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 712
    functionName: push_except_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_block_push
    - assert
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      push_except_block(struct _PyCfgExceptStack *stack, cfg_instr *setup)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct _PyCfgExceptStack*
    assertStmts:
    - condition: (stack->depth > 0)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 718
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 718
    functionName: pop_except_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      pop_except_block(struct _PyCfgExceptStack *stack)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct _PyCfgExceptStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: except_stack_top
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      except_stack_top(struct _PyCfgExceptStack *stack)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:727,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 735
    functionName: make_except_stack
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: struct _PyCfgExceptStack
    signature: 'struct _PyCfgExceptStack *

      make_except_stack(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:739,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:741,1
    - Dst: memcpy
      Src: /src/cpython/Python/flowgraph.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct _PyCfgExceptStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 746
    functionName: copy_except_stack
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: struct _PyCfgExceptStack
    signature: 'struct _PyCfgExceptStack *

      copy_except_stack(struct _PyCfgExceptStack *stack)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:755,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 760
    functionName: make_cfg_traversal_stack
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock **

      make_cfg_traversal_stack(basicblock *entryblock)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:786,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:787,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - opcode
    - oparg
    - jump
    - effects
    argTypes:
    - int
    - int
    - int
    - stack_effects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 797
    functionName: get_stack_effects
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyOpcode_num_popped
    - _PyOpcode_num_pushed
    - IS_BLOCK_PUSH_OPCODE
    linkageType: ''
    returnType: void
    signature: void get_stack_effects(int opcode, int oparg, int jump, stack_effects
      *effects)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:803,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - sp
    - b
    - depth
    argTypes:
    - basicblock***
    - basicblock*
    - int
    assertStmts:
    - condition: (b->b_startdepth < 0)
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 812
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 812
    functionName: stackdepth_push
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void stackdepth_push(basicblock ***sp, basicblock *b, int depth)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:824,1
    - Dst: stackdepth_push
      Src: /src/cpython/Python/flowgraph.c:833,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:839,1
    - Dst: get_stack_effects
      Src: /src/cpython/Python/flowgraph.c:844,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:845,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:852,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:856,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:857,1
    - Dst: get_stack_effects
      Src: /src/cpython/Python/flowgraph.c:858,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:859,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:865,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:866,1
    - Dst: stackdepth_push
      Src: /src/cpython/Python/flowgraph.c:867,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:872,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:872,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:873,1
    - Dst: IS_SCOPE_EXIT_OPCODE
      Src: /src/cpython/Python/flowgraph.c:874,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:882,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:882,1
    - Dst: stackdepth_push
      Src: /src/cpython/Python/flowgraph.c:883,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:890,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (depth >= 0)
      pos:
        line_end: 838
        line_start: 838
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (target_depth >= 0)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (BB_HAS_FALLTHROUGH(b))
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(instr->i_opcode))
      pos:
        line_end: 871
        line_start: 871
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 892
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 892
    functionName: calculate_stackdepth
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_SCOPE_EXIT_OPCODE
    - Py_MAX
    - make_cfg_traversal_stack
    - get_stack_effects
    - stackdepth_push
    - HAS_TARGET
    - BB_HAS_FALLTHROUGH
    - PyErr_Format
    - IS_ASSEMBLER_OPCODE
    - IS_UNCONDITIONAL_JUMP_OPCODE
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int calculate_stackdepth(cfg_builder *g)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:896,1
    - Dst: make_except_stack
      Src: /src/cpython/Python/flowgraph.c:900,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:902,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:903,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:915,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:917,1
    - Dst: except_stack_top
      Src: /src/cpython/Python/flowgraph.c:919,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:923,1
    - Dst: copy_except_stack
      Src: /src/cpython/Python/flowgraph.c:925,1
    - Dst: push_except_block
      Src: /src/cpython/Python/flowgraph.c:934,1
    - Dst: pop_except_block
      Src: /src/cpython/Python/flowgraph.c:937,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:938,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:940,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:942,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:944,1
    - Dst: copy_except_stack
      Src: /src/cpython/Python/flowgraph.c:945,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:967,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:978,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:979,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:986,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:991,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:994,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:997,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:998,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 95
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (except_stack != NULL)
      pos:
        line_end: 978
        line_start: 978
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (last_yield_except_depth >= 0)
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b->b_visited == 1)
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (except_stack != NULL)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b->b_exceptstack == NULL)
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i == b->b_iused -1)
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1000
      start: 894
    functionDepth: 3
    functionLinenumber: 894
    functionLinenumberEnd: 1000
    functionName: label_exception_targets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - make_except_stack
    - make_cfg_traversal_stack
    - is_block_push
    - INSTR_SET_OP0
    - pop_except_block
    - except_stack_top
    - BB_HAS_FALLTHROUGH
    - PyMem_Free
    - copy_except_stack
    - push_except_block
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int label_exception_targets(basicblock *entryblock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:1009,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:1019,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1021,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1030,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:1030,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:1040,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (b->b_next->b_predecessors == 0)
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1050
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1050
    functionName: remove_unreachable
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - is_block_push
    - make_cfg_traversal_stack
    - BB_HAS_FALLTHROUGH
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int remove_unreachable(basicblock *entryblock)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:1080,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1106,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:1109,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 1
    argNames:
    - bb
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (dest <= bb->b_iused)
      pos:
        line_end: 1105
        line_start: 1105
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1111
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1111
    functionName: basicblock_remove_redundant_nops
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - next_nonempty_block
    - memset
    - assert
    linkageType: ''
    returnType: int
    signature: int basicblock_remove_redundant_nops(basicblock *bb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:1117,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1122
    functionName: remove_redundant_nops
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - basicblock_remove_redundant_nops
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int remove_redundant_nops(cfg_builder *g)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1134,1
    - Dst: basicblock_remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:1134,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:1135,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1155,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1156,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1160,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:1160,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1166
    functionName: remove_redundant_nops_and_pairs
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - INSTR_SET_OP0
    - basicblock_remove_redundant_nops
    - BB_HAS_FALLTHROUGH
    - IS_LABEL
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int remove_redundant_nops_and_pairs(basicblock *entryblock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:1180,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1184,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1184,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1185,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:1186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:1188,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:1191,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (!IS_ASSEMBLER_OPCODE(last->i_opcode))
      pos:
        line_end: 1183
        line_start: 1183
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1200
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1200
    functionName: remove_redundant_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - INSTR_SET_OP0
    - PyErr_SetString
    - next_nonempty_block
    - IS_ASSEMBLER_OPCODE
    - IS_UNCONDITIONAL_JUMP_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: int remove_redundant_jumps(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1210
    functionName: basicblock_has_no_lineno
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool basicblock_has_no_lineno(basicblock *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:1222,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1226,1
    - Dst: basicblock_exits_scope
      Src: /src/cpython/Python/flowgraph.c:1230,1
    - Dst: basicblock_has_no_lineno
      Src: /src/cpython/Python/flowgraph.c:1232,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:1233,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1235,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1235,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1237,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1238,1
    - Dst: basicblock_append_instructions
      Src: /src/cpython/Python/flowgraph.c:1238,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:1240,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1241,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - bb
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (is_jump(last))
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1252
      start: 1220
    functionDepth: 5
    functionLinenumber: 1220
    functionLinenumberEnd: 1252
    functionName: basicblock_inline_small_or_no_lineno_blocks
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - basicblock_has_no_lineno
    - is_jump
    - INSTR_SET_OP0
    - basicblock_append_instructions
    - BB_HAS_FALLTHROUGH
    - RETURN_IF_ERROR
    - basicblock_exits_scope
    - IS_UNCONDITIONAL_JUMP_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: int basicblock_inline_small_or_no_lineno_blocks(basicblock *bb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_inline_small_or_no_lineno_blocks
      Src: /src/cpython/Python/flowgraph.c:1260,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1254
    functionDepth: 6
    functionLinenumber: 1254
    functionLinenumberEnd: 1268
    functionName: inline_small_or_no_lineno_blocks
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - basicblock_inline_small_or_no_lineno_blocks
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int inline_small_or_no_lineno_blocks(basicblock *entryblock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1276,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1276,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1277,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1277,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1278,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:1278,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1285,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1287,1
    - Dst: basicblock_add_jump
      Src: /src/cpython/Python/flowgraph.c:1288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - bb
    - inst
    - target
    - opcode
    argTypes:
    - basicblock*
    - cfg_instr*
    - cfg_instr*
    - int
    assertStmts:
    - condition: (is_jump(inst))
      pos:
        line_end: 1275
        line_start: 1275
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst == basicblock_last_instr(bb))
      pos:
        line_end: 1277
        line_start: 1277
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (is_jump(target))
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1294
      start: 1273
    functionDepth: 6
    functionLinenumber: 1273
    functionLinenumberEnd: 1294
    functionName: jump_thread
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - basicblock_add_jump
    - is_jump
    - INSTR_SET_OP0
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: bool
    signature: bool jump_thread(basicblock *bb, cfg_instr *inst, cfg_instr *target,
      int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPCODE_HAS_CONST
      Src: /src/cpython/Python/flowgraph.c:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1300
    functionName: loads_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_CONST
    linkageType: ''
    returnType: int
    signature: int loads_const(int opcode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1307,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1307,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1309,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/flowgraph.c:1312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:1316,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/flowgraph.c:1320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - opcode
    - oparg
    - co_consts
    argTypes:
    - int
    - int
    - PyObject*
    assertStmts:
    - condition: (loads_const(opcode))
      pos:
        line_end: 1306
        line_start: 1306
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1321
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1321
    functionName: get_const_value
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PyErr_SetString
    - loads_const
    - Py_NewRef
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_const_value(int opcode, int oparg, PyObject *co_consts)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/flowgraph.c:1327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1328,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1333,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1334,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1338,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:1340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1341,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/flowgraph.c:1344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - newconst
    - consts
    - const_cache
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1324
    functionDepth: 14
    functionLinenumber: 1324
    functionLinenumberEnd: 1351
    functionName: add_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ConstCacheMergeOne
    - Py_DECREF
    - PyList_GET_ITEM
    - PyList_Append
    - PyList_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int add_const(PyObject *newconst, PyObject *consts, PyObject *const_cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1363,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1364,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1365,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - bb
    - start
    - instrs
    - size
    argTypes:
    - basicblock*
    - int
    - cfg_instr**
    - int
    assertStmts:
    - condition: (start < bb->b_iused)
      pos:
        line_end: 1362
        line_start: 1362
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (size <= _PY_STACK_USE_GUIDELINE)
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (size >= 0)
      pos:
        line_end: 1363
        line_start: 1363
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1379
      start: 1360
    functionDepth: 2
    functionLinenumber: 1360
    functionLinenumberEnd: 1379
    functionName: get_const_loading_instrs
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    - loads_const
    linkageType: ''
    returnType: bool
    signature: bool get_const_loading_instrs(basicblock *bb, int start, cfg_instr
      **instrs, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1390,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1391,1
    - Dst: INSTR_SET_LOC
      Src: /src/cpython/Python/flowgraph.c:1392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - instrs
    - size
    argTypes:
    - cfg_instr**
    - int
    assertStmts:
    - condition: (instr->i_opcode != NOP)
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1394
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1394
    functionName: nop_out
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - INSTR_SET_OP0
    - INSTR_SET_LOC
    - assert
    linkageType: ''
    returnType: void
    signature: void nop_out(cfg_instr **instrs, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1405,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/flowgraph.c:1407,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/flowgraph.c:1408,1
    - Dst: _PY_IS_SMALL_INT
      Src: /src/cpython/Python/flowgraph.c:1411,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1412,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/flowgraph.c:1412,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - instr
    - newconst
    - consts
    - const_cache
    argTypes:
    - cfg_instr*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_IsImmortal(newconst))
      pos:
        line_end: 1411
        line_start: 1411
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1418
      start: 1401
    functionDepth: 3
    functionLinenumber: 1401
    functionLinenumberEnd: 1418
    functionName: maybe_instr_make_load_smallint
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - INSTR_SET_OP1
    - PyLong_AsLongAndOverflow
    - PyErr_Occurred
    - _PY_IS_SMALL_INT
    - _Py_IsImmortal
    - PyLong_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: "int maybe_instr_make_load_smallint(cfg_instr *instr, PyObject *newconst,\n
      \                              PyObject *consts, PyObject *const_cache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: maybe_instr_make_load_smallint
      Src: /src/cpython/Python/flowgraph.c:1426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1428,1
    - Dst: add_const
      Src: /src/cpython/Python/flowgraph.c:1434,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1435,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - instr
    - newconst
    - consts
    - const_cache
    argTypes:
    - cfg_instr*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1422
    functionDepth: 15
    functionLinenumber: 1422
    functionLinenumberEnd: 1438
    functionName: instr_make_load_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - INSTR_SET_OP1
    - Py_DECREF
    - maybe_instr_make_load_smallint
    - add_const
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: "int instr_make_load_const(cfg_instr *instr, PyObject *newconst,\n
      \                     PyObject *consts, PyObject *const_cache)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1450,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1450,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1451,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1451,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1454,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:1462,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/flowgraph.c:1467,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1474,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1474,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1477,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1480,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1483,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:1484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - bb
    - i
    - consts
    - const_cache
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1449
        line_start: 1449
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_opcode == BUILD_TUPLE)
      pos:
        line_end: 1453
        line_start: 1453
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1450
        line_start: 1450
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(inst->i_opcode))
      pos:
        line_end: 1473
        line_start: 1473
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1485
      start: 1446
    functionDepth: 16
    functionLinenumber: 1446
    functionLinenumberEnd: 1485
    functionName: fold_tuple_of_constants
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyTuple_New
    - Py_DECREF
    - get_const_value
    - PyDict_CheckExact
    - PyTuple_SET_ITEM
    - instr_make_load_const
    - nop_out
    - loads_const
    - get_const_loading_instrs
    - assert
    linkageType: ''
    returnType: int
    signature: int fold_tuple_of_constants(basicblock *bb, int i, PyObject *consts,
      PyObject *const_cache)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1504,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1504,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1505,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1505,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1506,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1507,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1510,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1511,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/flowgraph.c:1532,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1542,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1545,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1548,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1549,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1551,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1553,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:1554,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1563,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - bb
    - i
    - consts
    - const_cache
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1503
        line_start: 1503
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1504
        line_start: 1504
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i >= 0)
      pos:
        line_end: 1505
        line_start: 1505
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i < bb->b_iused)
      pos:
        line_end: 1506
        line_start: 1506
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (intrinsic->i_opcode == CALL_INTRINSIC_1)
      pos:
        line_end: 1509
        line_start: 1509
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (intrinsic->i_oparg == INTRINSIC_LIST_TO_TUPLE)
      pos:
        line_end: 1510
        line_start: 1510
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (consts_found == 0)
      pos:
        line_end: 1552
        line_start: 1552
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (consts_found > 0)
      pos:
        line_end: 1547
        line_start: 1547
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1574
      start: 1500
    functionDepth: 16
    functionLinenumber: 1500
    functionLinenumberEnd: 1574
    functionName: fold_constant_intrinsic_list_to_tuple
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyTuple_New
    - Py_DECREF
    - get_const_value
    - PyDict_CheckExact
    - PyTuple_SET_ITEM
    - instr_make_load_const
    - nop_out
    - loads_const
    - assert
    linkageType: ''
    returnType: int
    signature: "int fold_constant_intrinsic_list_to_tuple(basicblock *bb, int i,\n
      \                                     PyObject *consts, PyObject *const_cache)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1592,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1592,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1593,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1593,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1596,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:1607,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1610,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/flowgraph.c:1615,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1622,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1622,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1625,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1628,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Python/flowgraph.c:1632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1634,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/flowgraph.c:1637,1
    - Dst: add_const
      Src: /src/cpython/Python/flowgraph.c:1640,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1641,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1642,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1645,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1648,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1649,1
    - Dst: INSTR_SET_LOC
      Src: /src/cpython/Python/flowgraph.c:1651,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1653,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1654,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1655,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 5
    argNames:
    - bb
    - i
    - nextop
    - consts
    - const_cache
    argTypes:
    - basicblock*
    - int
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (instr->i_opcode == BUILD_LIST || instr->i_opcode == BUILD_SET)
      pos:
        line_end: 1595
        line_start: 1595
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1592
        line_start: 1592
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_opcode == BUILD_LIST || instr->i_opcode == BUILD_SET)
      pos:
        line_end: 1648
        line_start: 1648
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1591
        line_start: 1591
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(inst->i_opcode))
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i >= 2)
      pos:
        line_end: 1647
        line_start: 1647
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1658
      start: 1588
    functionDepth: 15
    functionLinenumber: 1588
    functionLinenumberEnd: 1658
    functionName: optimize_lists_and_sets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - INSTR_SET_OP1
    - PyTuple_New
    - get_const_value
    - PyDict_CheckExact
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyFrozenSet_New
    - INSTR_SET_LOC
    - Py_SETREF
    - add_const
    - nop_out
    - RETURN_IF_ERROR
    - loads_const
    - get_const_loading_instrs
    - assert
    linkageType: ''
    returnType: int
    signature: "int optimize_lists_and_sets(basicblock *bb, int i, int nextop,\n                        PyObject
      *consts, PyObject *const_cache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/flowgraph.c:1667,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1669,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1670,1
    - Dst: const_folding_check_complexity
      Src: /src/cpython/Python/flowgraph.c:1671,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - limit
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1678
    functionName: const_folding_check_complexity
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - const_folding_check_complexity
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t const_folding_check_complexity(PyObject *obj, Py_ssize_t
      limit)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1688,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1688,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1689,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1689,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1691,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1692,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1693,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1694,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1699,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/flowgraph.c:1699,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1700,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/flowgraph.c:1702,1
    - Dst: const_folding_check_complexity
      Src: /src/cpython/Python/flowgraph.c:1706,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1711,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/flowgraph.c:1711,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/flowgraph.c:1711,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/flowgraph.c:1712,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/flowgraph.c:1712,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1713,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/flowgraph.c:1715,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1721,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/flowgraph.c:1722,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/flowgraph.c:1722,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/flowgraph.c:1722,1
    - Dst: const_folding_safe_multiply
      Src: /src/cpython/Python/flowgraph.c:1724,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Python/flowgraph.c:1727,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 29
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (wbits >= 0)
      pos:
        line_end: 1693
        line_start: 1693
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (vbits >= 0)
      pos:
        line_end: 1692
        line_start: 1692
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1728
      start: 1685
    functionDepth: 4
    functionLinenumber: 1685
    functionLinenumberEnd: 1728
    functionName: const_folding_safe_multiply
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyLong_AsLong
    - PyTuple_Check
    - _PyLong_NumBits
    - PyLong_Check
    - const_folding_safe_multiply
    - PyBytes_Check
    - PyNumber_Multiply
    - PyBytes_GET_SIZE
    - const_folding_check_complexity
    - _PyLong_IsZero
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      const_folding_safe_multiply(PyObject *v, PyObject *w)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1733,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1733,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1734,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Python/flowgraph.c:1734,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1736,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Python/flowgraph.c:1737,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1738,1
    - Dst: PyNumber_Power
      Src: /src/cpython/Python/flowgraph.c:1747,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (vbits >= 0)
      pos:
        line_end: 1737
        line_start: 1737
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1748
      start: 1730
    functionDepth: 3
    functionLinenumber: 1730
    functionLinenumberEnd: 1748
    functionName: const_folding_safe_power
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyNumber_Power
    - _PyLong_NumBits
    - PyLong_AsSize_t
    - PyLong_Check
    - _PyLong_IsPositive
    - _PyLong_IsZero
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      const_folding_safe_power(PyObject *v, PyObject *w)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1753,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1753,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1754,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1754,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1756,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Python/flowgraph.c:1757,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1758,1
    - Dst: PyNumber_Lshift
      Src: /src/cpython/Python/flowgraph.c:1767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (vbits >= 0)
      pos:
        line_end: 1757
        line_start: 1757
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1768
      start: 1750
    functionDepth: 3
    functionLinenumber: 1750
    functionLinenumberEnd: 1768
    functionName: const_folding_safe_lshift
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyLong_NumBits
    - PyLong_AsSize_t
    - PyLong_Check
    - _PyLong_IsZero
    - PyNumber_Lshift
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      const_folding_safe_lshift(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/flowgraph.c:1773,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/flowgraph.c:1773,1
    - Dst: PyNumber_Remainder
      Src: /src/cpython/Python/flowgraph.c:1777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1778
    functionName: const_folding_safe_mod
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyBytes_Check
    - PyNumber_Remainder
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      const_folding_safe_mod(PyObject *v, PyObject *w)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1783,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1784,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/flowgraph.c:1789,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Python/flowgraph.c:1792,1
    - Dst: const_folding_safe_multiply
      Src: /src/cpython/Python/flowgraph.c:1795,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Python/flowgraph.c:1798,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Python/flowgraph.c:1801,1
    - Dst: const_folding_safe_mod
      Src: /src/cpython/Python/flowgraph.c:1804,1
    - Dst: const_folding_safe_power
      Src: /src/cpython/Python/flowgraph.c:1807,1
    - Dst: const_folding_safe_lshift
      Src: /src/cpython/Python/flowgraph.c:1810,1
    - Dst: PyNumber_Rshift
      Src: /src/cpython/Python/flowgraph.c:1813,1
    - Dst: PyNumber_Or
      Src: /src/cpython/Python/flowgraph.c:1816,1
    - Dst: PyNumber_Xor
      Src: /src/cpython/Python/flowgraph.c:1819,1
    - Dst: PyNumber_And
      Src: /src/cpython/Python/flowgraph.c:1822,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/flowgraph.c:1825,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:1831,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 3
    argNames:
    - left
    - op
    - right
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (left != NULL && right != NULL)
      pos:
        line_end: 1782
        line_start: 1782
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (op >= 0 && op <= NB_OPARG_LAST)
      pos:
        line_end: 1783
        line_start: 1783
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1834
      start: 1780
    functionDepth: 5
    functionLinenumber: 1780
    functionLinenumberEnd: 1834
    functionName: eval_const_binop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    - const_folding_safe_lshift
    - PyNumber_Or
    - Py_UNREACHABLE
    - PyNumber_And
    - const_folding_safe_multiply
    - PyNumber_Subtract
    - const_folding_safe_mod
    - PyNumber_Rshift
    - PyObject_GetItem
    - PyNumber_FloorDivide
    - const_folding_safe_power
    - PyNumber_Xor
    - PyNumber_Add
    - PyNumber_TrueDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_const_binop(PyObject *left, int op, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1840,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1840,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1841,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1841,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1844,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:1847,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1853,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1853,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1854,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1860,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1860,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1863,1
    - Dst: eval_const_binop
      Src: /src/cpython/Python/flowgraph.c:1867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1869,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/flowgraph.c:1871,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/flowgraph.c:1874,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1878,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:1879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - bb
    - i
    - consts
    - const_cache
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (binop->i_opcode == BINARY_OP)
      pos:
        line_end: 1843
        line_start: 1843
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(lhs_instr->i_opcode))
      pos:
        line_end: 1852
        line_start: 1852
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1840
        line_start: 1840
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(rhs_instr->i_opcode))
      pos:
        line_end: 1859
        line_start: 1859
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1880
      start: 1836
    functionDepth: 16
    functionLinenumber: 1836
    functionLinenumberEnd: 1880
    functionName: fold_const_binop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_DECREF
    - get_const_value
    - PyDict_CheckExact
    - instr_make_load_const
    - PyErr_ExceptionMatches
    - nop_out
    - loads_const
    - eval_const_binop
    - PyErr_Clear
    - get_const_loading_instrs
    - assert
    linkageType: ''
    returnType: int
    signature: int fold_const_binop(basicblock *bb, int i, PyObject *consts, PyObject
      *const_cache)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1885,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1886,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Python/flowgraph.c:1895,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/flowgraph.c:1899,1
    - Dst: PyNumber_Invert
      Src: /src/cpython/Python/flowgraph.c:1902,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/flowgraph.c:1905,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/flowgraph.c:1909,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:1914,1
    - Dst: PyNumber_Positive
      Src: /src/cpython/Python/flowgraph.c:1916,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:1919,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - operand
    - opcode
    - oparg
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (operand != NULL)
      pos:
        line_end: 1884
        line_start: 1884
        source_file: /src/cpython/Python/flowgraph.c
    - condition: "(\n        opcode == UNARY_NEGATIVE ||\n        opcode == UNARY_INVERT
        ||\n        opcode == UNARY_NOT ||\n        (opcode == CALL_INTRINSIC_1 &&
        oparg == INTRINSIC_UNARY_POSITIVE)\n    )"
      pos:
        line_end: 1890
        line_start: 1885
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1922
      start: 1882
    functionDepth: 2
    functionLinenumber: 1882
    functionLinenumberEnd: 1922
    functionName: eval_const_unaryop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_UNREACHABLE
    - PyNumber_Positive
    - PyNumber_Invert
    - PyBool_Check
    - PyBool_FromLong
    - PyNumber_Negative
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      eval_const_unaryop(PyObject *operand, int opcode, int oparg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1928,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1928,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1929,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1929,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:1933,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1938,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1938,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1939,1
    - Dst: eval_const_unaryop
      Src: /src/cpython/Python/flowgraph.c:1948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1949,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/flowgraph.c:1951,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/flowgraph.c:1954,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1959,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/flowgraph.c:1959,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1961,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:1962,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - bb
    - i
    - consts
    - const_cache
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1927
        line_start: 1927
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1928
        line_start: 1928
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(operand_instr->i_opcode))
      pos:
        line_end: 1937
        line_start: 1937
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyBool_Check(newconst))
      pos:
        line_end: 1958
        line_start: 1958
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1963
      start: 1924
    functionDepth: 16
    functionLinenumber: 1924
    functionLinenumberEnd: 1963
    functionName: fold_const_unaryop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - Py_DECREF
    - get_const_value
    - PyDict_CheckExact
    - instr_make_load_const
    - eval_const_unaryop
    - PyErr_ExceptionMatches
    - nop_out
    - PyBool_Check
    - loads_const
    - PyErr_Clear
    - get_const_loading_instrs
    - assert
    linkageType: ''
    returnType: int
    signature: int fold_const_unaryop(basicblock *bb, int i, PyObject *consts, PyObject
      *const_cache)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1974,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1978,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:1986,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:1998,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:2000,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2041,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2048,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2058,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:2060,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 2
    argNames:
    - block
    - ix
    argTypes:
    - basicblock*
    - int*
    assertStmts:
    - condition: (*ix < block->b_iused)
      pos:
        line_end: 1973
        line_start: 1973
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instructions[0].i_opcode == SWAP)
      pos:
        line_end: 1977
        line_start: 1977
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (0 <= current)
      pos:
        line_end: 2040
        line_start: 2040
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (j == i)
      pos:
        line_end: 2047
        line_start: 2047
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2063
      start: 1969
    functionDepth: 2
    functionLinenumber: 1969
    functionLinenumberEnd: 2063
    functionName: swaptimize
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - INSTR_SET_OP0
    - PyMem_Free
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int swaptimize(basicblock *block, int *ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2074
    functionName: SWAPPABLE
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAPPABLE(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - instr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2075
    functionDepth: 0
    functionLinenumber: 2075
    functionLinenumberEnd: 2079
    functionName: STORES_TO
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORES_TO(instr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWAPPABLE
      Src: /src/cpython/Python/flowgraph.c:2093,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - block
    - i
    - lineno
    argTypes:
    - basicblock*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2099
    functionName: next_swappable_instruction
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - SWAPPABLE
    linkageType: ''
    returnType: int
    signature: int next_swappable_instruction(basicblock *block, int i, int lineno)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2109,1
    - Dst: SWAPPABLE
      Src: /src/cpython/Python/flowgraph.c:2112,1
    - Dst: next_swappable_instruction
      Src: /src/cpython/Python/flowgraph.c:2119,1
    - Dst: next_swappable_instruction
      Src: /src/cpython/Python/flowgraph.c:2126,1
    - Dst: STORES_TO
      Src: /src/cpython/Python/flowgraph.c:2134,1
    - Dst: STORES_TO
      Src: /src/cpython/Python/flowgraph.c:2135,1
    - Dst: STORES_TO
      Src: /src/cpython/Python/flowgraph.c:2141,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2149,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - basicblock*
    - int
    assertStmts:
    - condition: (i < block->b_iused)
      pos:
        line_end: 2108
        line_start: 2108
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2154
      start: 2104
    functionDepth: 2
    functionLinenumber: 2104
    functionLinenumberEnd: 2154
    functionName: apply_static_swaps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - STORES_TO
    - SWAPPABLE
    - INSTR_SET_OP0
    - next_swappable_instruction
    - assert
    linkageType: ''
    returnType: void
    signature: void apply_static_swaps(basicblock *block, int i)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2159,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2159,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2160,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2160,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2166,1
    - Dst: maybe_instr_make_load_smallint
      Src: /src/cpython/Python/flowgraph.c:2167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2168,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2180,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2180,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2192,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/flowgraph.c:2196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2197,1
    - Dst: PyCompile_OpcodeStackEffect
      Src: /src/cpython/Python/flowgraph.c:2201,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2203,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2210,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2226,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/flowgraph.c:2230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2231,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2241,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2254,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2255,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2262,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/flowgraph.c:2266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2267,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/flowgraph.c:2271,1
    - Dst: add_const
      Src: /src/cpython/Python/flowgraph.c:2272,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2276,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2277,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 88
    argCount: 3
    argNames:
    - const_cache
    - bb
    - consts
    argTypes:
    - PyObject*
    - basicblock*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 2158
        line_start: 2158
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 2179
        line_start: 2179
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 2159
        line_start: 2159
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2283
      start: 2156
    functionDepth: 15
    functionLinenumber: 2156
    functionLinenumberEnd: 2283
    functionName: basicblock_optimize_load_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyObject_IsTrue
    - INSTR_SET_OP1
    - Py_DECREF
    - maybe_instr_make_load_smallint
    - PyDict_CheckExact
    - get_const_value
    - INSTR_SET_OP0
    - PyCompile_OpcodeStackEffect
    - Py_IsNone
    - add_const
    - PyBool_FromLong
    - IS_ASSEMBLER_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: int basicblock_optimize_load_const(PyObject *const_cache, basicblock
      *bb, PyObject *consts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2288,1
    - Dst: basicblock_optimize_load_const
      Src: /src/cpython/Python/flowgraph.c:2288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - const_cache
    - g
    - consts
    argTypes:
    - PyObject*
    - cfg_builder*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2285
    functionDepth: 16
    functionLinenumber: 2285
    functionLinenumberEnd: 2291
    functionName: optimize_load_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - basicblock_optimize_load_const
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int optimize_load_const(PyObject *const_cache, cfg_builder *g, PyObject
      *consts)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2296,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2296,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2297,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2297,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2299,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:2305,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2306,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2308,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2308,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2314,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2314,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2324,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2325,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2329,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2334,1
    - Dst: fold_tuple_of_constants
      Src: /src/cpython/Python/flowgraph.c:2334,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2338,1
    - Dst: optimize_lists_and_sets
      Src: /src/cpython/Python/flowgraph.c:2338,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2344,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2350,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2356,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2363,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2368,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2378,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2383,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2393,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2396,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2422,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2427,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2428,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2433,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2434,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2441,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2442,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2446,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2448,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2449,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2455,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2461,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2462,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2466,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2467,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2473,1
    - Dst: fold_const_unaryop
      Src: /src/cpython/Python/flowgraph.c:2473,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2478,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2481,1
    - Dst: fold_constant_intrinsic_list_to_tuple
      Src: /src/cpython/Python/flowgraph.c:2481,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2485,1
    - Dst: fold_const_unaryop
      Src: /src/cpython/Python/flowgraph.c:2485,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2489,1
    - Dst: fold_const_binop
      Src: /src/cpython/Python/flowgraph.c:2489,1
    - Dst: swaptimize
      Src: /src/cpython/Python/flowgraph.c:2497,1
    - Dst: apply_static_swaps
      Src: /src/cpython/Python/flowgraph.c:2500,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 184
    argCount: 3
    argNames:
    - const_cache
    - bb
    - consts
    argTypes:
    - PyObject*
    - basicblock*
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 2295
        line_start: 2295
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 2313
        line_start: 2313
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst->i_target != inst->i_target->b_next)
      pos:
        line_end: 2382
        line_start: 2382
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 2296
        line_start: 2296
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst->i_target != inst->i_target->b_next)
      pos:
        line_end: 2367
        line_start: 2367
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst->i_target->b_iused > 0)
      pos:
        line_end: 2305
        line_start: 2305
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(target->i_opcode))
      pos:
        line_end: 2307
        line_start: 2307
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inverted == 0 || inverted == 1)
      pos:
        line_end: 2447
        line_start: 2447
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2506
      start: 2293
    functionDepth: 17
    functionLinenumber: 2293
    functionLinenumberEnd: 2506
    functionName: optimize_basic_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - INSTR_SET_OP1
    - PyDict_CheckExact
    - INSTR_SET_OP0
    - fold_const_unaryop
    - fold_const_binop
    - fold_tuple_of_constants
    - fold_constant_intrinsic_list_to_tuple
    - jump_thread
    - HAS_TARGET
    - apply_static_swaps
    - optimize_lists_and_sets
    - RETURN_IF_ERROR
    - swaptimize
    - IS_ASSEMBLER_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: int optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject
      *consts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:2518,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2519,1
    - Dst: remove_redundant_jumps
      Src: /src/cpython/Python/flowgraph.c:2520,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2510
    functionDepth: 3
    functionLinenumber: 2510
    functionLinenumberEnd: 2524
    functionName: remove_redundant_nops_and_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - remove_redundant_jumps
    - remove_redundant_nops
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int remove_redundant_nops_and_jumps(cfg_builder *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2536,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2536,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2537,1
    - Dst: check_cfg
      Src: /src/cpython/Python/flowgraph.c:2537,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2538,1
    - Dst: inline_small_or_no_lineno_blocks
      Src: /src/cpython/Python/flowgraph.c:2538,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2539,1
    - Dst: remove_unreachable
      Src: /src/cpython/Python/flowgraph.c:2539,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2540,1
    - Dst: resolve_line_numbers
      Src: /src/cpython/Python/flowgraph.c:2540,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2541,1
    - Dst: optimize_load_const
      Src: /src/cpython/Python/flowgraph.c:2541,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2543,1
    - Dst: optimize_basic_block
      Src: /src/cpython/Python/flowgraph.c:2543,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2545,1
    - Dst: remove_redundant_nops_and_pairs
      Src: /src/cpython/Python/flowgraph.c:2545,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2546,1
    - Dst: remove_unreachable
      Src: /src/cpython/Python/flowgraph.c:2546,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2547,1
    - Dst: remove_redundant_nops_and_jumps
      Src: /src/cpython/Python/flowgraph.c:2547,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2548,1
    - Dst: no_redundant_jumps
      Src: /src/cpython/Python/flowgraph.c:2548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - g
    - consts
    - const_cache
    - firstlineno
    argTypes:
    - cfg_builder*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (no_redundant_jumps(g))
      pos:
        line_end: 2547
        line_start: 2547
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 2535
        line_start: 2535
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2550
      start: 2533
    functionDepth: 18
    functionLinenumber: 2533
    functionLinenumberEnd: 2550
    functionName: optimize_cfg
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - optimize_basic_block
    - check_cfg
    - remove_redundant_nops_and_pairs
    - optimize_load_const
    - PyDict_CheckExact
    - no_redundant_jumps
    - remove_redundant_nops_and_jumps
    - resolve_line_numbers
    - remove_unreachable
    - RETURN_IF_ERROR
    - inline_small_or_no_lineno_blocks
    - assert
    linkageType: ''
    returnType: int
    signature: int optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache,
      int firstlineno)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2564,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - inst1
    - inst2
    - super_op
    argTypes:
    - cfg_instr*
    - cfg_instr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2552
    functionDepth: 1
    functionLinenumber: 2552
    functionLinenumberEnd: 2566
    functionName: make_super_instruction
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - INSTR_SET_OP0
    - INSTR_SET_OP1
    linkageType: ''
    returnType: void
    signature: void make_super_instruction(cfg_instr *inst1, cfg_instr *inst2, int
      super_op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: make_super_instruction
      Src: /src/cpython/Python/flowgraph.c:2579,1
    - Dst: make_super_instruction
      Src: /src/cpython/Python/flowgraph.c:2585,1
    - Dst: make_super_instruction
      Src: /src/cpython/Python/flowgraph.c:2588,1
    - Dst: remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:2595,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2596,1
    - Dst: no_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:2596,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (no_redundant_nops(g))
      pos:
        line_end: 2595
        line_start: 2595
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2598
      start: 2568
    functionDepth: 3
    functionLinenumber: 2568
    functionLinenumberEnd: 2598
    functionName: insert_superinstructions
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    - remove_redundant_nops
    - no_redundant_nops
    - make_super_instruction
    linkageType: ''
    returnType: int
    signature: int insert_superinstructions(cfg_builder *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:2621,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/flowgraph.c:2622,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:2624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - stack
    - r
    argTypes:
    - ref_stack*
    - ref
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2617
    functionDepth: 1
    functionLinenumber: 2617
    functionLinenumberEnd: 2633
    functionName: ref_stack_push
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - Py_MAX
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int ref_stack_push(ref_stack *stack, ref r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ref_stack*
    assertStmts:
    - condition: (stack->size > 0)
      pos:
        line_end: 2637
        line_start: 2637
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2642
      start: 2635
    functionDepth: 0
    functionLinenumber: 2635
    functionLinenumberEnd: 2642
    functionName: ref_stack_pop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ref
    signature: ref ref_stack_pop(ref_stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - stack
    - 'off'
    argTypes:
    - ref_stack*
    - Py_ssize_t
    assertStmts:
    - condition: (idx >= 0 && idx < stack->size)
      pos:
        line_end: 2647
        line_start: 2647
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2652
      start: 2644
    functionDepth: 0
    functionLinenumber: 2644
    functionLinenumberEnd: 2652
    functionName: ref_stack_swap_top
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ref_stack_swap_top(ref_stack *stack, Py_ssize_t off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - idx
    argTypes:
    - ref_stack*
    - Py_ssize_t
    assertStmts:
    - condition: (idx >= 0 && idx < stack->size)
      pos:
        line_end: 2656
        line_start: 2656
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2659
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2659
    functionName: ref_stack_at
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ref
    signature: ref ref_stack_at(ref_stack *stack, Py_ssize_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ref_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2665
    functionName: ref_stack_clear
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ref_stack_clear(ref_stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:2671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ref_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2667
    functionDepth: 2
    functionLinenumber: 2667
    functionLinenumberEnd: 2676
    functionName: ref_stack_fini
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void ref_stack_fini(ref_stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ref_stack_at
      Src: /src/cpython/Python/flowgraph.c:2691,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - instr_flags
    - refs
    - local
    argTypes:
    - uint8_t*
    - ref_stack*
    - int
    assertStmts:
    - condition: (r.instr >= 0)
      pos:
        line_end: 2692
        line_start: 2692
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2697
      start: 2687
    functionDepth: 1
    functionLinenumber: 2687
    functionLinenumberEnd: 2697
    functionName: kill_local
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - ref_stack_at
    - assert
    linkageType: ''
    returnType: void
    signature: void kill_local(uint8_t *instr_flags, ref_stack *refs, int local)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill_local
      Src: /src/cpython/Python/flowgraph.c:2702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - instr_flags
    - refs
    - local
    - r
    argTypes:
    - uint8_t*
    - ref_stack*
    - int
    - ref
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2699
    functionDepth: 2
    functionLinenumber: 2699
    functionLinenumberEnd: 2706
    functionName: store_local
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - kill_local
    linkageType: ''
    returnType: void
    signature: void store_local(uint8_t *instr_flags, ref_stack *refs, int local,
      ref r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sp
    - target
    - start_depth
    argTypes:
    - basicblock***
    - basicblock*
    - Py_ssize_t
    assertStmts:
    - condition: (target->b_startdepth >= 0 && target->b_startdepth == start_depth)
      pos:
        line_end: 2711
        line_start: 2711
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2717
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2717
    functionName: load_fast_push_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void load_fast_push_block(basicblock ***sp, basicblock *target,\n
      \                    Py_ssize_t start_depth)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:2764,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:2767,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:2769,1
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:2772,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2793,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:2796,1
    - Dst: ref_stack_clear
      Src: /src/cpython/Python/flowgraph.c:2801,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2803,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2810,1
    - Dst: kill_local
      Src: /src/cpython/Python/flowgraph.c:2814,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2819,1
    - Dst: kill_local
      Src: /src/cpython/Python/flowgraph.c:2824,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2825,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2830,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2831,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2836,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2837,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2843,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2844,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2846,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2852,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2853,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2855,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2856,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2862,1
    - Dst: ref_stack_at
      Src: /src/cpython/Python/flowgraph.c:2864,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2865,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2870,1
    - Dst: ref_stack_swap_top
      Src: /src/cpython/Python/flowgraph.c:2871,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:2890,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:2891,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2893,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2895,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:2909,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:2910,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2912,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2914,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2921,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:2921,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2922,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:2922,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2923,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2924,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2925,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2931,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2932,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:2937,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2938,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2944,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2946,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2947,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2949,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2953,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2960,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2961,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2962,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:2967,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2968,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2969,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:2975,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:2976,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:2977,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:2978,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2980,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2984,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2987,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:2996,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2998,1
    - Dst: IS_SCOPE_EXIT_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2999,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3000,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3000,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:3001,1
    - Dst: ref_stack_at
      Src: /src/cpython/Python/flowgraph.c:3007,1
    - Dst: ref_stack_fini
      Src: /src/cpython/Python/flowgraph.c:3036,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3037,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3038,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 189
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (net_popped > 0)
      pos:
        line_end: 2911
        line_start: 2911
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (BB_HAS_FALLTHROUGH(block))
      pos:
        line_end: 2999
        line_start: 2999
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (opcode != EXTENDED_ARG)
      pos:
        line_end: 2809
        line_start: 2809
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oparg > 0)
      pos:
        line_end: 2861
        line_start: 2861
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oparg >= 2)
      pos:
        line_end: 2869
        line_start: 2869
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (_PyOpcode_num_pushed(opcode, oparg) == 1)
      pos:
        line_end: 2921
        line_start: 2921
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (_PyOpcode_num_popped(opcode, oparg) == 2)
      pos:
        line_end: 2920
        line_start: 2920
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_startdepth > -1)
      pos:
        line_end: 2792
        line_start: 2792
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (net_pushed >= 0)
      pos:
        line_end: 2892
        line_start: 2892
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3040
      start: 2756
    functionDepth: 3
    functionLinenumber: 2756
    functionLinenumberEnd: 3040
    functionName: optimize_load_fast
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - ref_stack_at
    - ref_stack_pop
    - HAS_TARGET
    - IS_UNCONDITIONAL_JUMP_OPCODE
    - PyMem_Free
    - IS_BLOCK_PUSH_OPCODE
    - store_local
    - ref_stack_swap_top
    - basicblock_last_instr
    - assert
    - make_cfg_traversal_stack
    - _PyOpcode_num_popped
    - kill_local
    - ref_stack_fini
    - load_fast_push_block
    - PyErr_NoMemory
    - ref_stack_clear
    - PyMem_Malloc
    - IS_SCOPE_EXIT_OPCODE
    - memset
    - PUSH_REF
    - BB_HAS_FALLTHROUGH
    - _PyOpcode_num_pushed
    linkageType: ''
    returnType: int
    signature: int optimize_load_fast(cfg_builder *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - instr
    - ','
    - local
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2783
    functionDepth: 0
    functionLinenumber: 2783
    functionLinenumberEnd: 2790
    functionName: PUSH_REF
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_REF(instr, local)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - b
    - unsafe_mask
    - sp
    argTypes:
    - basicblock*
    - uint64_t
    - basicblock***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3043
    functionDepth: 0
    functionLinenumber: 3043
    functionLinenumberEnd: 3059
    functionName: maybe_push
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void maybe_push(basicblock *b, uint64_t unsafe_mask, basicblock ***sp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3068,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3070,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3075,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3098,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3099,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3101,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3102,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3103,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3104,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - b
    - sp
    argTypes:
    - basicblock*
    - basicblock***
    assertStmts:
    - condition: (instr->i_opcode != EXTENDED_ARG)
      pos:
        line_end: 3067
        line_start: 3067
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_oparg >= 0)
      pos:
        line_end: 3074
        line_start: 3074
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (last->i_target != NULL)
      pos:
        line_end: 3102
        line_start: 3102
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3106
      start: 3061
    functionDepth: 2
    functionLinenumber: 3061
    functionLinenumberEnd: 3106
    functionName: scan_block_for_locals
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - is_jump
    - BB_HAS_FALLTHROUGH
    - maybe_push
    - assert
    linkageType: ''
    returnType: void
    signature: void scan_block_for_locals(basicblock *b, basicblock ***sp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3111,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/flowgraph.c:3112,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3114,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3126,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3131,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:3147,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - entryblock
    - nlocals
    argTypes:
    - basicblock*
    - int
    assertStmts:
    - condition: (nlocals > 64)
      pos:
        line_end: 3110
        line_start: 3110
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_opcode != EXTENDED_ARG)
      pos:
        line_end: 3125
        line_start: 3125
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (arg >= 0)
      pos:
        line_end: 3130
        line_start: 3130
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3153
      start: 3108
    functionDepth: 2
    functionLinenumber: 3108
    functionLinenumberEnd: 3153
    functionName: fast_scan_many_locals
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - assert
    - PyErr_NoMemory
    - PyMem_Free
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int fast_scan_many_locals(basicblock *entryblock, int nlocals)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3158,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:3158,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3159,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:3168,1
    - Dst: OPCODE_HAS_CONST
      Src: /src/cpython/Python/flowgraph.c:3182,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3193,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3204,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3207,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:3209,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3210,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Python/flowgraph.c:3211,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/flowgraph.c:3211,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/flowgraph.c:3216,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:3220,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3228,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3229,1
    - Dst: OPCODE_HAS_CONST
      Src: /src/cpython/Python/flowgraph.c:3236,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3238,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3239,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3247,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3248,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 2
    argNames:
    - entryblock
    - consts
    argTypes:
    - basicblock*
    - PyObject*
    assertStmts:
    - condition: (i <= old_index && old_index < nconsts)
      pos:
        line_end: 3206
        line_start: 3206
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (index_map[i] != -1)
      pos:
        line_end: 3227
        line_start: 3227
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 3157
        line_start: 3157
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (index_map[i] == i)
      pos:
        line_end: 3192
        line_start: 3192
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (n_used_consts < nconsts)
      pos:
        line_end: 3203
        line_start: 3203
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (value != NULL)
      pos:
        line_end: 3209
        line_start: 3209
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (reverse_index_map[index] >= 0)
      pos:
        line_end: 3237
        line_start: 3237
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (reverse_index_map[index] < n_used_consts)
      pos:
        line_end: 3238
        line_start: 3238
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (reverse_index_map[index_map[i]] == -1)
      pos:
        line_end: 3228
        line_start: 3228
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3250
      start: 3155
    functionDepth: 12
    functionLinenumber: 3155
    functionLinenumberEnd: 3250
    functionName: remove_unused_consts
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyList_GET_ITEM
    - PyList_SetItem
    - PyList_GET_SIZE
    - PyList_SetSlice
    - Py_NewRef
    - OPCODE_HAS_CONST
    - PyMem_Free
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int remove_unused_consts(basicblock *entryblock, PyObject *consts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fast_scan_many_locals
      Src: /src/cpython/Python/flowgraph.c:3266,1
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:3271,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3283,1
    - Dst: scan_block_for_locals
      Src: /src/cpython/Python/flowgraph.c:3289,1
    - Dst: scan_block_for_locals
      Src: /src/cpython/Python/flowgraph.c:3297,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - entryblock
    - nlocals
    - nparams
    argTypes:
    - basicblock*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3254
    functionDepth: 3
    functionLinenumber: 3254
    functionLinenumberEnd: 3301
    functionName: add_checks_for_loads_of_uninitialized_variables
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - make_cfg_traversal_stack
    - scan_block_for_locals
    - fast_scan_many_locals
    - maybe_push
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: "int add_checks_for_loads_of_uninitialized_variables(basicblock *entryblock,\n
      \                                               int nlocals,\n                                                int
      nparams)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:3306,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3316,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3319,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3325,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3331,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (!b->b_except_handler)
      pos:
        line_end: 3315
        line_start: 3315
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3333
      start: 3304
    functionDepth: 3
    functionLinenumber: 3304
    functionLinenumberEnd: 3333
    functionName: mark_warm
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - make_cfg_traversal_stack
    - BB_HAS_FALLTHROUGH
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int mark_warm(basicblock *entryblock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3338,1
    - Dst: mark_warm
      Src: /src/cpython/Python/flowgraph.c:3340,1
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:3344,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3352,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3362,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3370,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3371,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3380,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (!b->b_cold && !b->b_warm)
      pos:
        line_end: 3337
        line_start: 3337
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!b->b_warm)
      pos:
        line_end: 3351
        line_start: 3351
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i == b->b_iused - 1)
      pos:
        line_end: 3370
        line_start: 3370
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3382
      start: 3335
    functionDepth: 4
    functionLinenumber: 3335
    functionLinenumberEnd: 3382
    functionName: mark_cold
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - make_cfg_traversal_stack
    - BB_HAS_FALLTHROUGH
    - mark_warm
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int mark_cold(basicblock *entryblock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3392,1
    - Dst: mark_cold
      Src: /src/cpython/Python/flowgraph.c:3392,1
    - Dst: get_max_label
      Src: /src/cpython/Python/flowgraph.c:3394,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3399,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:3400,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:3404,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:3407,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3415,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3420,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3426,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3436,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3444,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3445,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3457,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3461,1
    - Dst: remove_redundant_nops_and_jumps
      Src: /src/cpython/Python/flowgraph.c:3461,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (!entryblock->b_cold)
      pos:
        line_end: 3419
        line_start: 3419
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!b->b_cold)
      pos:
        line_end: 3425
        line_start: 3425
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b_end->b_next == NULL || !b_end->b_next->b_cold)
      pos:
        line_end: 3444
        line_start: 3444
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b != NULL && b->b_next == NULL)
      pos:
        line_end: 3456
        line_start: 3456
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!b->b_cold && b->b_next->b_cold)
      pos:
        line_end: 3435
        line_start: 3435
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b_end && b_end->b_cold)
      pos:
        line_end: 3443
        line_start: 3443
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3464
      start: 3385
    functionDepth: 5
    functionLinenumber: 3385
    functionLinenumberEnd: 3464
    functionName: push_cold_blocks_to_end
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - assert
    - cfg_builder_new_block
    - mark_cold
    - remove_redundant_nops_and_jumps
    - BB_HAS_FALLTHROUGH
    - IS_LABEL
    - RETURN_IF_ERROR
    - get_max_label
    - basicblock_addop
    linkageType: ''
    returnType: int
    signature: int push_cold_blocks_to_end(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3474,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3486,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3486,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3494,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (i == b->b_iused - 1)
      pos:
        line_end: 3473
        line_start: 3473
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3499
      start: 3466
    functionDepth: 5
    functionLinenumber: 3466
    functionLinenumberEnd: 3499
    functionName: convert_pseudo_conditional_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_insert_instruction
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: int convert_pseudo_conditional_jumps(cfg_builder *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:3508,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:3509,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3512,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/flowgraph.c:3512,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3516,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/flowgraph.c:3516,1
    - Dst: remove_redundant_nops_and_jumps
      Src: /src/cpython/Python/flowgraph.c:3521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (is_pseudo_target(STORE_FAST_MAYBE_NULL, STORE_FAST))
      pos:
        line_end: 3515
        line_start: 3515
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (is_pseudo_target(LOAD_CLOSURE, LOAD_FAST))
      pos:
        line_end: 3511
        line_start: 3511
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3522
      start: 3501
    functionDepth: 4
    functionLinenumber: 3501
    functionLinenumberEnd: 3522
    functionName: convert_pseudo_ops
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_block_push
    - is_pseudo_target
    - INSTR_SET_OP0
    - remove_redundant_nops_and_jumps
    - assert
    linkageType: ''
    returnType: int
    signature: int convert_pseudo_ops(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_exits_scope
      Src: /src/cpython/Python/flowgraph.c:3526,1
    - Dst: basicblock_has_eval_break
      Src: /src/cpython/Python/flowgraph.c:3526,1
    - Dst: basicblock_has_no_lineno
      Src: /src/cpython/Python/flowgraph.c:3527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3524
    functionDepth: 2
    functionLinenumber: 3524
    functionLinenumberEnd: 3532
    functionName: is_exit_or_eval_check_without_lineno
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_exits_scope
    - basicblock_has_no_lineno
    - basicblock_has_eval_break
    linkageType: ''
    returnType: bool
    signature: bool is_exit_or_eval_check_without_lineno(basicblock *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_max_label
      Src: /src/cpython/Python/flowgraph.c:3547,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3553,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3557,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:3558,1
    - Dst: is_exit_or_eval_check_without_lineno
      Src: /src/cpython/Python/flowgraph.c:3559,1
    - Dst: copy_basicblock
      Src: /src/cpython/Python/flowgraph.c:3560,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3578,1
    - Dst: is_exit_or_eval_check_without_lineno
      Src: /src/cpython/Python/flowgraph.c:3579,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3580,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3581,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (last != NULL)
      pos:
        line_end: 3580
        line_start: 3580
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3587
      start: 3544
    functionDepth: 6
    functionLinenumber: 3544
    functionLinenumberEnd: 3587
    functionName: duplicate_exits_without_lineno
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - is_exit_or_eval_check_without_lineno
    - is_jump
    - next_nonempty_block
    - BB_HAS_FALLTHROUGH
    - copy_basicblock
    - get_max_label
    - assert
    linkageType: ''
    returnType: int
    signature: int duplicate_exits_without_lineno(cfg_builder *g)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3600,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3614,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3621,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3630
      start: 3597
    functionDepth: 2
    functionLinenumber: 3597
    functionLinenumberEnd: 3630
    functionName: propagate_line_numbers
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_last_instr
    - is_jump
    - BB_HAS_FALLTHROUGH
    linkageType: ''
    returnType: void
    signature: void propagate_line_numbers(basicblock *entryblock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3635,1
    - Dst: duplicate_exits_without_lineno
      Src: /src/cpython/Python/flowgraph.c:3635,1
    - Dst: propagate_line_numbers
      Src: /src/cpython/Python/flowgraph.c:3636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - g
    - firstlineno
    argTypes:
    - cfg_builder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3632
    functionDepth: 7
    functionLinenumber: 3632
    functionLinenumberEnd: 3638
    functionName: resolve_line_numbers
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - duplicate_exits_without_lineno
    - propagate_line_numbers
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int resolve_line_numbers(cfg_builder *g, int firstlineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3644,1
    - Dst: cfg_builder_check
      Src: /src/cpython/Python/flowgraph.c:3644,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3647,1
    - Dst: translate_jump_labels_to_targets
      Src: /src/cpython/Python/flowgraph.c:3647,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3648,1
    - Dst: mark_except_handlers
      Src: /src/cpython/Python/flowgraph.c:3648,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3649,1
    - Dst: label_exception_targets
      Src: /src/cpython/Python/flowgraph.c:3649,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3652,1
    - Dst: optimize_cfg
      Src: /src/cpython/Python/flowgraph.c:3652,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3653,1
    - Dst: remove_unused_consts
      Src: /src/cpython/Python/flowgraph.c:3653,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3654,1
    - Dst: add_checks_for_loads_of_uninitialized_variables
      Src: /src/cpython/Python/flowgraph.c:3655,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3657,1
    - Dst: insert_superinstructions
      Src: /src/cpython/Python/flowgraph.c:3657,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3659,1
    - Dst: push_cold_blocks_to_end
      Src: /src/cpython/Python/flowgraph.c:3659,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3660,1
    - Dst: resolve_line_numbers
      Src: /src/cpython/Python/flowgraph.c:3660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - g
    - consts
    - const_cache
    - nlocals
    - nparams
    - firstlineno
    argTypes:
    - cfg_builder*
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (cfg_builder_check(g))
      pos:
        line_end: 3643
        line_start: 3643
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3664
      start: 3640
    functionDepth: 19
    functionLinenumber: 3640
    functionLinenumberEnd: 3664
    functionName: _PyCfg_OptimizeCodeUnit
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - add_checks_for_loads_of_uninitialized_variables
    - push_cold_blocks_to_end
    - mark_except_handlers
    - label_exception_targets
    - remove_unused_consts
    - cfg_builder_check
    - resolve_line_numbers
    - translate_jump_labels_to_targets
    - optimize_cfg
    - insert_superinstructions
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyCfg_OptimizeCodeUnit(cfg_builder *g, PyObject *consts, PyObject
      *const_cache,\n                        int nlocals, int nparams, int firstlineno)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3669,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3670,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3671,1
    - Dst: PyMem_New
      Src: /src/cpython/Python/flowgraph.c:3674,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3676,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/flowgraph.c:3685,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/flowgraph.c:3687,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/flowgraph.c:3694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:3695,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/flowgraph.c:3696,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/flowgraph.c:3700,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/flowgraph.c:3701,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3709,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - umd
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3711
      start: 3666
    functionDepth: 8
    functionLinenumber: 3666
    functionLinenumberEnd: 3711
    functionName: build_cellfixedoffsets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyDict_Next
    - PyMem_Free
    - PyMem_New
    - PyDict_GetItemRef
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: 'int *

      build_cellfixedoffsets(_PyCompile_CodeUnitMetadata *umd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3715
      start: 3713
    functionDepth: 0
    functionLinenumber: 3713
    functionLinenumberEnd: 3715
    functionName: IS_GENERATOR
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_GENERATOR(CF)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3720,1
    - Dst: IS_GENERATOR
      Src: /src/cpython/Python/flowgraph.c:3723,1
    - Dst: LOCATION
      Src: /src/cpython/Python/flowgraph.c:3729,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3737,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3737,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3745,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3745,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3749,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3754,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/flowgraph.c:3755,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3757,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3776,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/flowgraph.c:3777,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/flowgraph.c:3782,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3793,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3793,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - umd
    - entryblock
    - fixed
    - nfreevars
    - code_flags
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - basicblock*
    - int*
    - int
    - int
    assertStmts:
    - condition: (umd->u_firstlineno > 0)
      pos:
        line_end: 3719
        line_start: 3719
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3797
      start: 3716
    functionDepth: 5
    functionLinenumber: 3716
    functionLinenumberEnd: 3797
    functionName: insert_prefix_instructions
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - PyDict_GET_SIZE
    - PyMem_RawFree
    - LOCATION
    - IS_GENERATOR
    - RETURN_IF_ERROR
    - basicblock_insert_instruction
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: "int insert_prefix_instructions(_PyCompile_CodeUnitMetadata *umd, basicblock
      *entryblock,\n                           int *fixed, int nfreevars, int code_flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3802,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3803,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3804,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3824,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3833,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3834,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3835,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - umd
    - entryblock
    - fixedmap
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - basicblock*
    - int*
    assertStmts:
    - condition: (inst->i_opcode != EXTENDED_ARG)
      pos:
        line_end: 3823
        line_start: 3823
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oldoffset >= 0)
      pos:
        line_end: 3832
        line_start: 3832
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oldoffset < noffsets)
      pos:
        line_end: 3833
        line_start: 3833
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (fixedmap[oldoffset] >= 0)
      pos:
        line_end: 3834
        line_start: 3834
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3842
      start: 3799
    functionDepth: 1
    functionLinenumber: 3799
    functionLinenumberEnd: 3842
    functionName: fix_cell_offsets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - assert
    linkageType: ''
    returnType: int
    signature: int fix_cell_offsets(_PyCompile_CodeUnitMetadata *umd, basicblock *entryblock,
      int *fixedmap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3847,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3847,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3848,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3848,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3849,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3849,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3850,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3851,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3852,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3853,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3854,1
    - Dst: build_cellfixedoffsets
      Src: /src/cpython/Python/flowgraph.c:3856,1
    - Dst: insert_prefix_instructions
      Src: /src/cpython/Python/flowgraph.c:3862,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3863,1
    - Dst: fix_cell_offsets
      Src: /src/cpython/Python/flowgraph.c:3867,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3868,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - umd
    - g
    - code_flags
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - cfg_builder*
    - int
    assertStmts:
    - condition: (PyDict_GET_SIZE(umd->u_varnames) < INT_MAX)
      pos:
        line_end: 3846
        line_start: 3846
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_GET_SIZE(umd->u_freevars) < INT_MAX)
      pos:
        line_end: 3848
        line_start: 3848
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_GET_SIZE(umd->u_cellvars) < INT_MAX)
      pos:
        line_end: 3847
        line_start: 3847
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (INT_MAX - nlocals - ncellvars > 0)
      pos:
        line_end: 3852
        line_start: 3852
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (INT_MAX - nlocals - ncellvars - nfreevars > 0)
      pos:
        line_end: 3853
        line_start: 3853
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3876
      start: 3844
    functionDepth: 9
    functionLinenumber: 3844
    functionLinenumberEnd: 3876
    functionName: prepare_localsplus
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - insert_prefix_instructions
    - PyDict_GET_SIZE
    - build_cellfixedoffsets
    - fix_cell_offsets
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int prepare_localsplus(_PyCompile_CodeUnitMetadata *umd, cfg_builder
      *g, int code_flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/flowgraph.c:3881,1
    - Dst: _PyCfgBuilder_New
      Src: /src/cpython/Python/flowgraph.c:3884,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:3893,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3894,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3903,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3907,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:3907,1
    - Dst: _PyCfgBuilder_Addop
      Src: /src/cpython/Python/flowgraph.c:3908,1
    - Dst: _PyCfgBuilder_UseLabel
      Src: /src/cpython/Python/flowgraph.c:3921,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:3927,1
    - Dst: _PyCfgBuilder_Addop
      Src: /src/cpython/Python/flowgraph.c:3930,1
    - Dst: _PyCfgBuilder_CheckSize
      Src: /src/cpython/Python/flowgraph.c:3934,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/flowgraph.c:3939,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 1
    argNames:
    - seq
    argTypes:
    - _PyInstructionSequence*
    assertStmts:
    - condition: (instr->i_oparg >= 0 && instr->i_oparg < seq->s_used)
      pos:
        line_end: 3893
        line_start: 3893
        source_file: /src/cpython/Python/flowgraph.c
    - condition: "(seq->s_annotations_code->s_labelmap_size == 0\n                    &&
        seq->s_annotations_code->s_nested == NULL)"
      pos:
        line_end: 3903
        line_start: 3902
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!HAS_TARGET(ann_instr->i_opcode))
      pos:
        line_end: 3906
        line_start: 3906
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3941
      start: 3878
    functionDepth: 6
    functionLinenumber: 3878
    functionLinenumberEnd: 3941
    functionName: _PyCfg_FromInstructionSequence
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - _PyInstructionSequence_ApplyLabelMap
    - _PyCfgBuilder_CheckSize
    - _PyCfgBuilder_New
    - _PyCfgBuilder_UseLabel
    - HAS_TARGET
    - _PyCfgBuilder_Addop
    - _PyCfgBuilder_Free
    - assert
    linkageType: ''
    returnType: cfg_builder
    signature: 'cfg_builder *

      _PyCfg_FromInstructionSequence(_PyInstructionSequence *seq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3952,1
    - Dst: _PyInstructionSequence_UseLabel
      Src: /src/cpython/Python/flowgraph.c:3952,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:3955,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3959,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/flowgraph.c:3960,1
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/flowgraph.c:3974,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - g
    - seq
    argTypes:
    - cfg_builder*
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3978
      start: 3943
    functionDepth: 5
    functionLinenumber: 3943
    functionLinenumberEnd: 3978
    functionName: _PyCfg_ToInstructionSequence
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_ApplyLabelMap
    - HAS_TARGET
    - RETURN_IF_ERROR
    - _PyInstructionSequence_UseLabel
    - _PyInstructionSequence_Addop
    linkageType: ''
    returnType: int
    signature: int _PyCfg_ToInstructionSequence(cfg_builder *g, _PyInstructionSequence
      *seq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3987,1
    - Dst: convert_pseudo_conditional_jumps
      Src: /src/cpython/Python/flowgraph.c:3987,1
    - Dst: calculate_stackdepth
      Src: /src/cpython/Python/flowgraph.c:3989,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:4001,1
    - Dst: IS_GENERATOR
      Src: /src/cpython/Python/flowgraph.c:4001,1
    - Dst: prepare_localsplus
      Src: /src/cpython/Python/flowgraph.c:4003,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4008,1
    - Dst: convert_pseudo_ops
      Src: /src/cpython/Python/flowgraph.c:4008,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4012,1
    - Dst: normalize_jumps
      Src: /src/cpython/Python/flowgraph.c:4012,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:4013,1
    - Dst: no_redundant_jumps
      Src: /src/cpython/Python/flowgraph.c:4013,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4018,1
    - Dst: optimize_load_fast
      Src: /src/cpython/Python/flowgraph.c:4018,1
    - Dst: _PyCfg_ToInstructionSequence
      Src: /src/cpython/Python/flowgraph.c:4021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - g
    - umd
    - code_flags
    - stackdepth
    - nlocalsplus
    - seq
    argTypes:
    - cfg_builder*
    - _PyCompile_CodeUnitMetadata*
    - int
    - int*
    - int*
    - _PyInstructionSequence*
    assertStmts:
    - condition: (!(IS_GENERATOR(code_flags) && *stackdepth == 0))
      pos:
        line_end: 4000
        line_start: 4000
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (no_redundant_jumps(g))
      pos:
        line_end: 4012
        line_start: 4012
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 4026
      start: 3981
    functionDepth: 10
    functionLinenumber: 3981
    functionLinenumberEnd: 4026
    functionName: _PyCfg_OptimizedCfgToInstructionSequence
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - no_redundant_jumps
    - _PyCfg_ToInstructionSequence
    - normalize_jumps
    - convert_pseudo_conditional_jumps
    - prepare_localsplus
    - IS_GENERATOR
    - convert_pseudo_ops
    - RETURN_IF_ERROR
    - optimize_load_fast
    - calculate_stackdepth
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyCfg_OptimizedCfgToInstructionSequence(cfg_builder *g,\n                                     _PyCompile_CodeUnitMetadata
      *umd, int code_flags,\n                                     int *stackdepth,
      int *nlocalsplus,\n                                     _PyInstructionSequence
      *seq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4034,1
    - Dst: translate_jump_labels_to_targets
      Src: /src/cpython/Python/flowgraph.c:4034,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4035,1
    - Dst: label_exception_targets
      Src: /src/cpython/Python/flowgraph.c:4035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 4031
    functionDepth: 4
    functionLinenumber: 4031
    functionLinenumberEnd: 4037
    functionName: _PyCfg_JumpLabelsToTargets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - translate_jump_labels_to_targets
    - label_exception_targets
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int _PyCfg_JumpLabelsToTargets(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_effects
      Src: /src/cpython/Python/flowgraph.c:4045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opcode
    - oparg
    - jump
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4041
    functionDepth: 2
    functionLinenumber: 4041
    functionLinenumberEnd: 4049
    functionName: PyCompile_OpcodeStackEffectWithJump
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - get_stack_effects
    linkageType: ''
    returnType: int
    signature: int PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int
      jump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_effects
      Src: /src/cpython/Python/flowgraph.c:4055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - opcode
    - oparg
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4059
      start: 4051
    functionDepth: 2
    functionLinenumber: 4051
    functionLinenumberEnd: 4059
    functionName: PyCompile_OpcodeStackEffect
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - get_stack_effects
    linkageType: ''
    returnType: int
    signature: int PyCompile_OpcodeStackEffect(int opcode, int oparg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_New
      Src: /src/cpython/Python/flowgraph.c:4070,1
    - Dst: _PyCfg_ToInstructionSequence
      Src: /src/cpython/Python/flowgraph.c:4074,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/flowgraph.c:4075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4067
    functionDepth: 6
    functionLinenumber: 4067
    functionLinenumberEnd: 4079
    functionName: cfg_to_instruction_sequence
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_New
    - PyInstructionSequence_Fini
    - _PyCfg_ToInstructionSequence
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cfg_to_instruction_sequence(cfg_builder *g)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_Check
      Src: /src/cpython/Python/flowgraph.c:4084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:4085,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/flowgraph.c:4088,1
    - Dst: _PyCfg_FromInstructionSequence
      Src: /src/cpython/Python/flowgraph.c:4094,1
    - Dst: _PyCfg_OptimizeCodeUnit
      Src: /src/cpython/Python/flowgraph.c:4099,1
    - Dst: calculate_stackdepth
      Src: /src/cpython/Python/flowgraph.c:4104,1
    - Dst: optimize_load_fast
      Src: /src/cpython/Python/flowgraph.c:4108,1
    - Dst: cfg_to_instruction_sequence
      Src: /src/cpython/Python/flowgraph.c:4112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:4114,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/flowgraph.c:4115,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - seq
    - consts
    - nlocals
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4117
      start: 4081
    functionDepth: 20
    functionLinenumber: 4081
    functionLinenumberEnd: 4117
    functionName: _PyCompile_OptimizeCfg
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - optimize_load_fast
    - Py_DECREF
    - PyErr_SetString
    - _PyCfg_OptimizeCodeUnit
    - _PyInstructionSequence_Check
    - _PyCfgBuilder_Free
    - PyDict_New
    - _PyCfg_FromInstructionSequence
    - cfg_to_instruction_sequence
    - calculate_stackdepth
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_OptimizeCfg(PyObject *seq, PyObject *consts, int nlocals)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: RETURN_IF_ERROR
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 117
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - location
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: same_location
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool same_location(location a, location b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:43,1
    - Dst: IS_PSEUDO_INSTR
      Src: /src/cpython/Python/assemble.c:43,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:44,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/assemble.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - instr
    argTypes:
    - instruction*
    assertStmts:
    - condition: (!IS_PSEUDO_INSTR(opcode))
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Python/assemble.c
    - condition: (OPCODE_HAS_ARG(opcode) || oparg == 0)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: instr_size
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - IS_PSEUDO_INSTR
    - assert
    - OPCODE_HAS_ARG
    linkageType: ''
    returnType: int
    signature: int instr_size(instruction *instr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/assemble.c:64,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/assemble.c:69,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/assemble.c:73,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/assemble.c:77,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:83,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:84,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - a
    - firstlineno
    argTypes:
    - struct assembler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: assemble_init
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - memset
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: int
    signature: int assemble_init(struct assembler *a, int firstlineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:92,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:93,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct assembler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: assemble_free
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void assemble_free(struct assembler *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/assemble.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - byte
    argTypes:
    - struct assembler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: write_except_byte
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void write_except_byte(struct assembler *a, int byte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:108,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:109,1
    - Dst: write_except_byte
      Src: /src/cpython/Python/assemble.c:111,1
    - Dst: write_except_byte
      Src: /src/cpython/Python/assemble.c:115,1
    - Dst: write_except_byte
      Src: /src/cpython/Python/assemble.c:119,1
    - Dst: write_except_byte
      Src: /src/cpython/Python/assemble.c:123,1
    - Dst: write_except_byte
      Src: /src/cpython/Python/assemble.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - a
    - value
    - msb
    argTypes:
    - struct assembler*
    - int
    - int
    assertStmts:
    - condition: ((msb | 128) == 128)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/cpython/Python/assemble.c
    - condition: (value >= 0 && value < (1 << 30))
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: assemble_emit_exception_table_item
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_except_byte
    - assert
    linkageType: ''
    returnType: void
    signature: void assemble_emit_exception_table_item(struct assembler *a, int value,
      int msb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/assemble.c:137,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:139,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:139,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:142,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:148,1
    - Dst: assemble_emit_exception_table_item
      Src: /src/cpython/Python/assemble.c:150,1
    - Dst: assemble_emit_exception_table_item
      Src: /src/cpython/Python/assemble.c:151,1
    - Dst: assemble_emit_exception_table_item
      Src: /src/cpython/Python/assemble.c:152,1
    - Dst: assemble_emit_exception_table_item
      Src: /src/cpython/Python/assemble.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - a
    - start
    - end
    - handler_offset
    - handler
    argTypes:
    - struct assembler*
    - int
    - int
    - int
    - _PyExceptHandlerInfo*
    assertStmts:
    - condition: (end > start)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Python/assemble.c
    - condition: (depth >= 0)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: assemble_emit_exception_table_entry
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - assemble_emit_exception_table_item
    - PyBytes_GET_SIZE
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: "int assemble_emit_exception_table_entry(struct assembler *a, int start,
      int end,\n                                    int handler_offset,\n                                    _PyExceptHandlerInfo
      *handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:171,1
    - Dst: assemble_emit_exception_table_entry
      Src: /src/cpython/Python/assemble.c:172,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:179,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:183,1
    - Dst: assemble_emit_exception_table_entry
      Src: /src/cpython/Python/assemble.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - a
    - instrs
    argTypes:
    - struct assembler*
    - instr_sequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 188
    functionName: assemble_exception_table
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - instr_size
    - assemble_emit_exception_table_entry
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int assemble_exception_table(struct assembler *a, instr_sequence *instrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/assemble.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - val
    argTypes:
    - struct assembler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: write_location_byte
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void write_location_byte(struct assembler* a, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/assemble.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct assembler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: location_pointer
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      location_pointer(struct assembler* a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_location_entry_start
      Src: /src/cpython/Python/assemble.c:213,1
    - Dst: location_pointer
      Src: /src/cpython/Python/assemble.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - code
    - length
    argTypes:
    - struct assembler*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: write_location_first_byte
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_entry_start
    - location_pointer
    linkageType: ''
    returnType: void
    signature: void write_location_first_byte(struct assembler* a, int code, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: location_pointer
      Src: /src/cpython/Python/assemble.c:220,1
    - Dst: write_varint
      Src: /src/cpython/Python/assemble.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - val
    argTypes:
    - struct assembler*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: write_location_varint
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_varint
    - location_pointer
    linkageType: ''
    returnType: void
    signature: void write_location_varint(struct assembler* a, unsigned int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: location_pointer
      Src: /src/cpython/Python/assemble.c:228,1
    - Dst: write_signed_varint
      Src: /src/cpython/Python/assemble.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - val
    argTypes:
    - struct assembler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: write_location_signed_varint
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_signed_varint
    - location_pointer
    linkageType: ''
    returnType: void
    signature: void write_location_signed_varint(struct assembler* a, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:235,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:238,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:239,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:240,1
    - Dst: write_location_first_byte
      Src: /src/cpython/Python/assemble.c:241,1
    - Dst: write_location_byte
      Src: /src/cpython/Python/assemble.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - a
    - length
    - column
    - end_column
    argTypes:
    - struct assembler*
    - int
    - int
    - int
    assertStmts:
    - condition: (length > 0 &&  length <= 8)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/cpython/Python/assemble.c
    - condition: (end_column - column < 16)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/cpython/Python/assemble.c
    - condition: (column < 80)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/cpython/Python/assemble.c
    - condition: (end_column >= column)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: write_location_info_short_form
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_first_byte
    - assert
    - write_location_byte
    linkageType: ''
    returnType: void
    signature: void write_location_info_short_form(struct assembler* a, int length,
      int column, int end_column)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:248,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:249,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:250,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:251,1
    - Dst: write_location_first_byte
      Src: /src/cpython/Python/assemble.c:252,1
    - Dst: write_location_byte
      Src: /src/cpython/Python/assemble.c:253,1
    - Dst: write_location_byte
      Src: /src/cpython/Python/assemble.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - a
    - length
    - line_delta
    - column
    - end_column
    argTypes:
    - struct assembler*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (length > 0 &&  length <= 8)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/cpython/Python/assemble.c
    - condition: (end_column < 128)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/cpython/Python/assemble.c
    - condition: (line_delta >= 0 && line_delta < 3)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/cpython/Python/assemble.c
    - condition: (column < 128)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: write_location_info_oneline_form
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_first_byte
    - assert
    - write_location_byte
    linkageType: ''
    returnType: void
    signature: void write_location_info_oneline_form(struct assembler* a, int length,
      int line_delta, int column, int end_column)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:260,1
    - Dst: write_location_first_byte
      Src: /src/cpython/Python/assemble.c:261,1
    - Dst: write_location_signed_varint
      Src: /src/cpython/Python/assemble.c:262,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:263,1
    - Dst: write_location_varint
      Src: /src/cpython/Python/assemble.c:264,1
    - Dst: write_location_varint
      Src: /src/cpython/Python/assemble.c:265,1
    - Dst: write_location_varint
      Src: /src/cpython/Python/assemble.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - a
    - loc
    - length
    argTypes:
    - struct assembler*
    - location
    - int
    assertStmts:
    - condition: (length > 0 &&  length <= 8)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Python/assemble.c
    - condition: (loc.end_lineno >= loc.lineno)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: write_location_info_long_form
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_first_byte
    - write_location_varint
    - write_location_signed_varint
    - assert
    linkageType: ''
    returnType: void
    signature: void write_location_info_long_form(struct assembler* a, location loc,
      int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_location_first_byte
      Src: /src/cpython/Python/assemble.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - length
    argTypes:
    - struct assembler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: write_location_info_none
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_first_byte
    linkageType: ''
    returnType: void
    signature: void write_location_info_none(struct assembler* a, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_location_first_byte
      Src: /src/cpython/Python/assemble.c:278,1
    - Dst: write_location_signed_varint
      Src: /src/cpython/Python/assemble.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - length
    - line_delta
    argTypes:
    - struct assembler*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: write_location_info_no_column
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_first_byte
    - write_location_signed_varint
    linkageType: ''
    returnType: void
    signature: void write_location_info_no_column(struct assembler* a, int length,
      int line_delta)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/assemble.c:288,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:290,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:291,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:291,1
    - Dst: write_location_info_none
      Src: /src/cpython/Python/assemble.c:294,1
    - Dst: write_location_info_no_column
      Src: /src/cpython/Python/assemble.c:302,1
    - Dst: write_location_info_short_form
      Src: /src/cpython/Python/assemble.c:309,1
    - Dst: write_location_info_oneline_form
      Src: /src/cpython/Python/assemble.c:313,1
    - Dst: write_location_info_long_form
      Src: /src/cpython/Python/assemble.c:318,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - a
    - loc
    - isize
    argTypes:
    - struct assembler*
    - location
    - int
    assertStmts:
    - condition: (len > THEORETICAL_MAX_ENTRY_SIZE)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 321
      start: 285
    functionDepth: 6
    functionLinenumber: 285
    functionLinenumberEnd: 321
    functionName: write_location_info_entry
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_info_none
    - write_location_info_short_form
    - write_location_info_oneline_form
    - write_location_info_long_form
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - RETURN_IF_ERROR
    - write_location_info_no_column
    - assert
    linkageType: ''
    returnType: int
    signature: int write_location_info_entry(struct assembler* a, location loc, int
      isize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:330,1
    - Dst: write_location_info_entry
      Src: /src/cpython/Python/assemble.c:330,1
    - Dst: write_location_info_entry
      Src: /src/cpython/Python/assemble.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - loc
    - isize
    argTypes:
    - struct assembler*
    - location
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: assemble_emit_location
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_location_info_entry
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int assemble_emit_location(struct assembler* a, location loc, int isize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: same_location
      Src: /src/cpython/Python/assemble.c:344,1
    - Dst: IS_TERMINATOR_OPCODE
      Src: /src/cpython/Python/assemble.c:345,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:349,1
    - Dst: same_location
      Src: /src/cpython/Python/assemble.c:357,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:358,1
    - Dst: assemble_emit_location
      Src: /src/cpython/Python/assemble.c:358,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:362,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:364,1
    - Dst: assemble_emit_location
      Src: /src/cpython/Python/assemble.c:364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - a
    - instrs
    - firstlineno
    argTypes:
    - struct assembler*
    - instr_sequence*
    - int
    assertStmts:
    - condition: (i < instrs->s_used-1)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 366
      start: 336
    functionDepth: 8
    functionLinenumber: 336
    functionLinenumberEnd: 366
    functionName: assemble_location_info
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - same_location
    - IS_TERMINATOR_OPCODE
    - assemble_emit_location
    - instr_size
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: "int assemble_location_info(struct assembler *a, instr_sequence *instrs,\n
      \                      int firstlineno)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:372,1
    - Dst: IS_PSEUDO_INSTR
      Src: /src/cpython/Python/assemble.c:372,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:374,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/assemble.c:374,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/assemble.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - codestr
    - instr
    - ilen
    argTypes:
    - _Py_CODEUNIT*
    - instruction*
    - int
    assertStmts:
    - condition: (!IS_PSEUDO_INSTR(opcode))
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/cpython/Python/assemble.c
    - condition: (OPCODE_HAS_ARG(opcode) || oparg == 0)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 405
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 405
    functionName: write_instr
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - IS_PSEUDO_INSTR
    - assert
    - OPCODE_HAS_ARG
    linkageType: ''
    returnType: void
    signature: void write_instr(_Py_CODEUNIT *codestr, instruction *instr, int ilen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/assemble.c:415,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:418,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:423,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:423,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/assemble.c:425,1
    - Dst: write_instr
      Src: /src/cpython/Python/assemble.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - instr
    argTypes:
    - struct assembler*
    - instruction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 429
    functionName: assemble_emit_instr
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - write_instr
    - _PyBytes_Resize
    - instr_size
    - PyBytes_GET_SIZE
    - RETURN_IF_ERROR
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int assemble_emit_instr(struct assembler *a, instruction *instr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:435,1
    - Dst: assemble_init
      Src: /src/cpython/Python/assemble.c:435,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:439,1
    - Dst: assemble_emit_instr
      Src: /src/cpython/Python/assemble.c:439,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:442,1
    - Dst: assemble_location_info
      Src: /src/cpython/Python/assemble.c:442,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:444,1
    - Dst: assemble_exception_table
      Src: /src/cpython/Python/assemble.c:444,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:446,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:446,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:447,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:447,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:449,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:449,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:450,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:450,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:452,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:452,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:453,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - a
    - instrs
    - first_lineno
    - const_cache
    argTypes:
    - struct assembler*
    - instr_sequence*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 431
    functionDepth: 14
    functionLinenumber: 431
    functionLinenumberEnd: 455
    functionName: assemble_emit
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ConstCacheMergeOne
    - assemble_location_info
    - _PyBytes_Resize
    - assemble_exception_table
    - RETURN_IF_ERROR
    - assemble_emit_instr
    - assemble_init
    linkageType: ''
    returnType: int
    signature: "int assemble_emit(struct assembler *a, instr_sequence *instrs,\n              int
      first_lineno, PyObject *const_cache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/assemble.c:461,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/assemble.c:463,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/assemble.c:466,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/assemble.c:467,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/assemble.c:469,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:472,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:473,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/assemble.c:474,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/assemble.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - dict
    - offset
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: ((i - offset) < size)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Python/assemble.c
    - condition: ((i - offset) >= 0)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 477
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 477
    functionName: dict_keys_inorder
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 2
    functionsReached:
    - assert
    - PyTuple_New
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyDict_Next
    - Py_NewRef
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_keys_inorder(PyObject *dict, Py_ssize_t offset)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Python/assemble.c:507,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/assemble.c:508,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:509,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:512,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:513,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/assemble.c:517,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:518,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/assemble.c:523,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:524,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Python/assemble.c:529,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/assemble.c:532,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/assemble.c:537,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/assemble.c:538,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:539,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/assemble.c:546,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:547,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:550,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:552,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Python/assemble.c:553,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/assemble.c:557,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/assemble.c:558,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:559,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:562,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:564,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:568,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Python/assemble.c:569,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - umd
    - nlocalsplus
    - flags
    - names
    - kinds
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - int
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (offset >= 0)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset < nlocalsplus)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset >= 0)
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset > cellvar_offset)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset < nlocalsplus)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/cpython/Python/assemble.c
    - condition: (cellvar_offset >= 0)
      pos:
        line_end: 549
        line_start: 549
        source_file: /src/cpython/Python/assemble.c
    - condition: (cellvar_offset < nlocalsplus)
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 572
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 572
    functionName: compute_localsplus_info
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - _Py_set_localsplus_info
    - PyDict_GET_SIZE
    - PyLong_AsInt
    - PyErr_Occurred
    - PyDict_Contains
    - PyDict_Next
    - RETURN_IF_ERROR
    - assert
    linkageType: ''
    returnType: int
    signature: "int compute_localsplus_info(_PyCompile_CodeUnitMetadata *umd, int
      nlocalsplus,\n                        int flags, PyObject *names, PyObject *kinds)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dict_keys_inorder
      Src: /src/cpython/Python/assemble.c:584,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:588,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/assemble.c:592,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:596,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:600,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:601,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:602,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:605,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/assemble.c:608,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/assemble.c:612,1
    - Dst: compute_localsplus_info
      Src: /src/cpython/Python/assemble.c:616,1
    - Dst: _PyCode_Validate
      Src: /src/cpython/Python/assemble.c:648,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:652,1
    - Dst: _PyCode_New
      Src: /src/cpython/Python/assemble.c:657,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:663,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:664,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:665,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:666,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 8
    argNames:
    - umd
    - a
    - const_cache
    - constslist
    - maxdepth
    - nlocalsplus
    - code_flags
    - filename
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - struct assembler*
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    - PyObject*
    assertStmts:
    - condition: (umd->u_posonlyargcount < INT_MAX)
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/cpython/Python/assemble.c
    - condition: (umd->u_argcount < INT_MAX)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Python/assemble.c
    - condition: (umd->u_kwonlyargcount < INT_MAX)
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/cpython/Python/assemble.c
    - condition: (INT_MAX - posonlyargcount - posorkwargcount > 0)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 668
      start: 574
    functionDepth: 14
    functionLinenumber: 574
    functionLinenumberEnd: 668
    functionName: makecode
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - _PyCompile_ConstCacheMergeOne
    - _PyCode_Validate
    - _PyCode_New
    - PyBytes_FromStringAndSize
    - PyList_AsTuple
    - dict_keys_inorder
    - compute_localsplus_info
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nmakecode(_PyCompile_CodeUnitMetadata *umd, struct
      assembler *a, PyObject *const_cache,\n         PyObject *constslist, int maxdepth,
      int nlocalsplus, int code_flags,\n         PyObject *filename)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPCODE_HAS_JUMP
      Src: /src/cpython/Python/assemble.c:683,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:695,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:703,1
    - Dst: OPCODE_HAS_JUMP
      Src: /src/cpython/Python/assemble.c:709,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:718,1
    - Dst: IS_BACKWARDS_JUMP_OPCODE
      Src: /src/cpython/Python/assemble.c:718,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:722,1
    - Dst: IS_BACKWARDS_JUMP_OPCODE
      Src: /src/cpython/Python/assemble.c:722,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:725,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - instrs
    argTypes:
    - instr_sequence*
    assertStmts:
    - condition: (IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode))
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/cpython/Python/assemble.c
    - condition: (!IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode))
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 746
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 746
    functionName: resolve_jump_offsets
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - IS_BACKWARDS_JUMP_OPCODE
    - instr_size
    - assert
    - OPCODE_HAS_JUMP
    linkageType: ''
    returnType: int
    signature: int resolve_jump_offsets(instr_sequence *instrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:758,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/assemble.c:758,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:759,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/assemble.c:759,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:763,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/assemble.c:763,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:764,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/assemble.c:764,1
    - Dst: OPCODE_HAS_JUMP
      Src: /src/cpython/Python/assemble.c:769,1
    - Dst: IS_PSEUDO_INSTR
      Src: /src/cpython/Python/assemble.c:770,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/assemble.c:771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - instrs
    argTypes:
    - instr_sequence*
    assertStmts:
    - condition: (is_pseudo_target(JUMP, JUMP_FORWARD))
      pos:
        line_end: 757
        line_start: 757
        source_file: /src/cpython/Python/assemble.c
    - condition: (is_pseudo_target(JUMP_NO_INTERRUPT, JUMP_FORWARD))
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/cpython/Python/assemble.c
    - condition: (is_pseudo_target(JUMP, JUMP_BACKWARD))
      pos:
        line_end: 758
        line_start: 758
        source_file: /src/cpython/Python/assemble.c
    - condition: (is_pseudo_target(JUMP_NO_INTERRUPT, JUMP_BACKWARD_NO_INTERRUPT))
      pos:
        line_end: 763
        line_start: 763
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 776
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 776
    functionName: resolve_unconditional_jumps
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - assert
    - OPCODE_HAS_JUMP
    - is_pseudo_target
    - IS_PSEUDO_INSTR
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int resolve_unconditional_jumps(instr_sequence *instrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/assemble.c:783,1
    - Dst: resolve_unconditional_jumps
      Src: /src/cpython/Python/assemble.c:786,1
    - Dst: resolve_jump_offsets
      Src: /src/cpython/Python/assemble.c:789,1
    - Dst: assemble_emit
      Src: /src/cpython/Python/assemble.c:795,1
    - Dst: makecode
      Src: /src/cpython/Python/assemble.c:797,1
    - Dst: assemble_free
      Src: /src/cpython/Python/assemble.c:800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 8
    argNames:
    - umd
    - const_cache
    - consts
    - maxdepth
    - instrs
    - nlocalsplus
    - code_flags
    - filename
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - PyObject*
    - PyObject*
    - int
    - instr_sequence*
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 778
    functionDepth: 15
    functionLinenumber: 778
    functionLinenumberEnd: 802
    functionName: _PyAssemble_MakeCodeObject
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 2
    functionsReached:
    - resolve_unconditional_jumps
    - _PyInstructionSequence_ApplyLabelMap
    - assemble_emit
    - assemble_free
    - resolve_jump_offsets
    - makecode
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\n_PyAssemble_MakeCodeObject(_PyCompile_CodeUnitMetadata
      *umd, PyObject *const_cache,\n                           PyObject *consts, int
      maxdepth, instr_sequence *instrs,\n                           int nlocalsplus,
      int code_flags, PyObject *filename)"
  - 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: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: get_surrogateescape
    functionSourceFile: /src/cpython/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/cpython/Python/fileutils.c:86,1
    - Dst: GetConsoleCP
      Src: /src/cpython/Python/fileutils.c:96,1
    - Dst: GetConsoleOutputCP
      Src: /src/cpython/Python/fileutils.c:98,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/fileutils.c:107,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/fileutils.c:113,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/fileutils.c:114,1
    - Dst: _Py_GetLocaleEncodingObject
      Src: /src/cpython/Python/fileutils.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 80
    functionDepth: 10
    functionLinenumber: 80
    functionLinenumberEnd: 118
    functionName: _Py_device_encoding
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - GetConsoleOutputCP
    - _Py_DECLARE_STR
    - _Py_GetLocaleEncodingObject
    - PyUnicode_FromFormat
    - _Py_STR
    - GetConsoleCP
    - isatty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_device_encoding(int fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Python/fileutils.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 144
    functionName: is_valid_wide_char
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    linkageType: ''
    returnType: int
    signature: int is_valid_wide_char(wchar_t ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mbstowcs
      Src: /src/cpython/Python/fileutils.c:150,1
    - Dst: is_valid_wide_char
      Src: /src/cpython/Python/fileutils.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - wchar_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: _Py_mbstowcs
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - mbstowcs
    - is_valid_wide_char
    linkageType: ''
    returnType: size_t
    signature: size_t _Py_mbstowcs(wchar_t *dest, const char *src, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:167,1
    - Dst: mbrtowc
      Src: /src/cpython/Python/fileutils.c:168,1
    - Dst: is_valid_wide_char
      Src: /src/cpython/Python/fileutils.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - pwc
    - str
    - len
    - pmbs
    argTypes:
    - wchar_t*
    - char*
    - size_t
    - mbstate_t*
    assertStmts:
    - condition: (pwc != NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: _Py_mbrtowc
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - mbrtowc
    - assert
    - is_valid_wide_char
    linkageType: ''
    returnType: size_t
    signature: size_t _Py_mbrtowc(wchar_t *pwc, const char *str, size_t len, mbstate_t
      *pmbs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:217,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:221,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:221,1
    - Dst: nl_langinfo
      Src: /src/cpython/Python/fileutils.c:227,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Python/fileutils.c:234,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:239,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:245,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:276,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:293,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 312
    functionName: check_force_ascii
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - setlocale
    - _Py_mbstowcs
    - strcmp
    - _Py_normalize_encoding
    - nl_langinfo
    linkageType: ''
    returnType: int
    signature: int check_force_ascii(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_force_ascii
      Src: /src/cpython/Python/fileutils.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 322
    functionName: _Py_GetForceASCII
    functionSourceFile: /src/cpython/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: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: _Py_ResetForceASCII
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_ResetForceASCII(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_surrogateescape
      Src: /src/cpython/Python/fileutils.c:342,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:346,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:350,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/fileutils.c:353,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:373,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:376,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: 390
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 390
    functionName: encode_ascii
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - wcslen
    - get_surrogateescape
    - PyMem_RawMalloc
    - PyMem_Free
    - PyMem_Malloc
    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: 396
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 396
    functionName: _Py_GetForceASCII
    functionSourceFile: /src/cpython/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: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: _Py_ResetForceASCII
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_ResetForceASCII(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:414,1
    - Dst: get_surrogateescape
      Src: /src/cpython/Python/fileutils.c:417,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:424,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:437,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: 456
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 456
    functionName: decode_ascii
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyMem_RawMalloc
    - strlen
    - get_surrogateescape
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_surrogateescape
      Src: /src/cpython/Python/fileutils.c:473,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:482,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:484,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:490,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:495,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:503,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:512,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:516,1
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:523,1
    - Dst: _Py_mbrtowc
      Src: /src/cpython/Python/fileutils.c:525,1
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:540,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:545,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Python/fileutils.c:545,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:559,1
    - Dst: decode_ascii
      Src: /src/cpython/Python/fileutils.c:571,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 5
    argNames:
    - arg
    - wstr
    - wlen
    - reason
    - errors
    argTypes:
    - char*
    - wchar_t**
    - size_t*
    - char**
    - _Py_error_handler
    assertStmts:
    - condition: (!Py_UNICODE_IS_SURROGATE(*out))
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 573
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 573
    functionName: decode_current_locale
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - _Py_mbstowcs
    - PyMem_RawFree
    - strlen
    - memset
    - Py_UNICODE_IS_SURROGATE
    - PyMem_RawMalloc
    - decode_ascii
    - _Py_mbrtowc
    - assert
    - get_surrogateescape
    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/cpython/Python/fileutils.c:605,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:605,1
    - Dst: decode_current_locale
      Src: /src/cpython/Python/fileutils.c:608,1
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:613,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:613,1
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:621,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:621,1
    - Dst: check_force_ascii
      Src: /src/cpython/Python/fileutils.c:627,1
    - Dst: decode_ascii
      Src: /src/cpython/Python/fileutils.c:632,1
    - Dst: decode_current_locale
      Src: /src/cpython/Python/fileutils.c:636,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: 638
      start: 598
    functionDepth: 4
    functionLinenumber: 598
    functionLinenumberEnd: 638
    functionName: _Py_DecodeLocaleEx
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - strlen
    - check_force_ascii
    - decode_current_locale
    - decode_ascii
    - _Py_DecodeUTF8Ex
    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/cpython/Python/fileutils.c:664,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg
    - wlen
    argTypes:
    - char*
    - size_t*
    assertStmts:
    - condition: (res != -3)
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 5
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: Py_DecodeLocale
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 4
    functionsReached:
    - _Py_DecodeLocaleEx
    - assert
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_DecodeLocale(const char* arg, size_t *wlen)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:683,1
    - Dst: get_surrogateescape
      Src: /src/cpython/Python/fileutils.c:689,1
    - Dst: wcstombs
      Src: /src/cpython/Python/fileutils.c:718,1
    - Dst: wcstombs
      Src: /src/cpython/Python/fileutils.c:721,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:742,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/fileutils.c:745,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:757,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:760,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: 769
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 769
    functionName: encode_current_locale
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - wcstombs
    - PyMem_RawFree
    - wcslen
    - get_surrogateescape
    - PyMem_RawMalloc
    - PyMem_Free
    - PyMem_Malloc
    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/cpython/Python/fileutils.c:796,1
    - Dst: encode_current_locale
      Src: /src/cpython/Python/fileutils.c:799,1
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:805,1
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:813,1
    - Dst: check_force_ascii
      Src: /src/cpython/Python/fileutils.c:819,1
    - Dst: encode_ascii
      Src: /src/cpython/Python/fileutils.c:823,1
    - Dst: encode_current_locale
      Src: /src/cpython/Python/fileutils.c:828,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: 831
      start: 789
    functionDepth: 4
    functionLinenumber: 789
    functionLinenumberEnd: 831
    functionName: encode_locale_ex
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - encode_ascii
    - _Py_EncodeUTF8Ex
    - check_force_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/cpython/Python/fileutils.c:838,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: 848
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 848
    functionName: encode_locale
    functionSourceFile: /src/cpython/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/cpython/Python/fileutils.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - text
    - error_pos
    argTypes:
    - wchar_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 866
    functionName: Py_EncodeLocale
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    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/cpython/Python/fileutils.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - text
    - error_pos
    argTypes:
    - wchar_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 875
    functionName: _Py_EncodeLocaleRaw
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    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/cpython/Python/fileutils.c:883,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: 885
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 885
    functionName: _Py_EncodeLocaleEx
    functionSourceFile: /src/cpython/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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:905,1
    - Dst: GetACP
      Src: /src/cpython/Python/fileutils.c:910,1
    - Dst: swprintf
      Src: /src/cpython/Python/fileutils.c:911,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:911,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:912,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:913,1
    - Dst: nl_langinfo
      Src: /src/cpython/Python/fileutils.c:915,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:919,1
    - Dst: decode_current_locale
      Src: /src/cpython/Python/fileutils.c:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 899
    functionDepth: 4
    functionLinenumber: 899
    functionLinenumberEnd: 932
    functionName: _Py_GetLocaleEncoding
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - GetACP
    - decode_current_locale
    - Py_ARRAY_LENGTH
    - swprintf
    - nl_langinfo
    - _PyMem_RawWcsdup
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_GetLocaleEncoding(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetLocaleEncoding
      Src: /src/cpython/Python/fileutils.c:938,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:940,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/fileutils.c:944,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 935
    functionDepth: 5
    functionLinenumber: 935
    functionLinenumberEnd: 947
    functionName: _Py_GetLocaleEncodingObject
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 4
    functionsReached:
    - PyMem_RawFree
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    - _Py_GetLocaleEncoding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetLocaleEncodingObject(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nl_langinfo
      Src: /src/cpython/Python/fileutils.c:957,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:962,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 963
    functionName: _Py_LocaleUsesNonUnicodeWchar
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 4
    functionsReached:
    - strcmp
    - nl_langinfo
    linkageType: ''
    returnType: int
    signature: int _Py_LocaleUsesNonUnicodeWchar(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:973,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/fileutils.c:978,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:980,1
    - Dst: iconv_open
      Src: /src/cpython/Python/fileutils.c:984,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/fileutils.c:986,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:987,1
    - Dst: iconv
      Src: /src/cpython/Python/fileutils.c:996,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/fileutils.c:998,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:999,1
    - Dst: iconv_close
      Src: /src/cpython/Python/fileutils.c:1000,1
    - Dst: iconv_close
      Src: /src/cpython/Python/fileutils.c:1004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - source
    - size
    - tocode
    - fromcode
    argTypes:
    - wchar_t*
    - Py_ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 965
    functionDepth: 2
    functionLinenumber: 965
    functionLinenumberEnd: 1006
    functionName: _Py_ConvertWCharForm
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - iconv_close
    - PyErr_NoMemory
    - iconv_open
    - PyErr_Format
    - iconv
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: wchar_t
    signature: "wchar_t *\n_Py_ConvertWCharForm(const wchar_t *source, Py_ssize_t
      size,\n                     const char *tocode, const char *fromcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ConvertWCharForm
      Src: /src/cpython/Python/fileutils.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - native
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1019
    functionName: _Py_DecodeNonUnicodeWchar
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - _Py_ConvertWCharForm
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_DecodeNonUnicodeWchar(const wchar_t *native, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ConvertWCharForm
      Src: /src/cpython/Python/fileutils.c:1036,1
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:1040,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - unicode
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1033
    functionDepth: 3
    functionLinenumber: 1033
    functionLinenumberEnd: 1043
    functionName: _Py_EncodeNonUnicodeWchar_InPlace
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - memcpy
    - _Py_ConvertWCharForm
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int _Py_EncodeNonUnicodeWchar_InPlace(wchar_t *unicode, Py_ssize_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:1056,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Python/fileutils.c:1058,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: 1059
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1059
    functionName: FILE_TIME_to_time_t_nsec
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_SAFE_DOWNCAST
    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: Py_SAFE_DOWNCAST
      Src: /src/cpython/Python/fileutils.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - in_ptr
    - time_out
    - nsec_out
    argTypes:
    - LARGE_INTEGER*
    - time_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1066
    functionName: LARGE_INTEGER_to_time_t_nsec
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    linkageType: ''
    returnType: void
    signature: void LARGE_INTEGER_to_time_t_nsec(LARGE_INTEGER *in_ptr, time_t *time_out,
      int* nsec_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:1075,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: 1076
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1076
    functionName: _Py_time_t_to_FILE_TIME
    functionSourceFile: /src/cpython/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: 1095
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1095
    functionName: attributes_to_mode
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int attributes_to_mode(DWORD attr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:1112,1
    - Dst: attributes_to_mode
      Src: /src/cpython/Python/fileutils.c:1113,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1119,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1120,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1121,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1122,1
    - Dst: FILE_TIME_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1124,1
    - Dst: FILE_TIME_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1125,1
    - Dst: FILE_TIME_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - info
    - reparse_tag
    - basic_info
    - id_info
    - result
    argTypes:
    - BY_HANDLE_FILE_INFORMATION*
    - ULONG
    - FILE_BASIC_INFO*
    - FILE_ID_INFO*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1152
    functionName: _Py_attribute_data_to_stat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - LARGE_INTEGER_to_time_t_nsec
    - memset
    - FILE_TIME_to_time_t_nsec
    - attributes_to_mode
    linkageType: ''
    returnType: void
    signature: "void _Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *info,
      ULONG reparse_tag,\n                           FILE_BASIC_INFO *basic_info,
      FILE_ID_INFO *id_info,\n                           struct _Py_stat_struct *result)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:1158,1
    - Dst: attributes_to_mode
      Src: /src/cpython/Python/fileutils.c:1159,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1161,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1162,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1163,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - info
    - result
    argTypes:
    - FILE_STAT_BASIC_INFORMATION*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1216
    functionName: _Py_stat_basic_info_to_stat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - LARGE_INTEGER_to_time_t_nsec
    - memset
    - attributes_to_mode
    linkageType: ''
    returnType: void
    signature: "void _Py_stat_basic_info_to_stat(FILE_STAT_BASIC_INFORMATION *info,\n
      \                           struct _Py_stat_struct *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Python/fileutils.c:1243,1
    - Dst: SetLastError
      Src: /src/cpython/Python/fileutils.c:1248,1
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:1251,1
    - Dst: GetFileType
      Src: /src/cpython/Python/fileutils.c:1253,1
    - Dst: GetLastError
      Src: /src/cpython/Python/fileutils.c:1255,1
    - Dst: winerror_to_errno
      Src: /src/cpython/Python/fileutils.c:1257,1
    - Dst: GetFileInformationByHandle
      Src: /src/cpython/Python/fileutils.c:1271,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Python/fileutils.c:1272,1
    - Dst: winerror_to_errno
      Src: /src/cpython/Python/fileutils.c:1275,1
    - Dst: GetLastError
      Src: /src/cpython/Python/fileutils.c:1275,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Python/fileutils.c:1279,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/cpython/Python/fileutils.c:1284,1
    - Dst: fstat
      Src: /src/cpython/Python/fileutils.c:1287,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - fd
    - status
    argTypes:
    - int
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1232
    functionDepth: 3
    functionLinenumber: 1232
    functionLinenumberEnd: 1289
    functionName: _Py_fstat_noraise
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - _Py_get_osfhandle_noraise
    - fstat
    - SetLastError
    - GetFileInformationByHandle
    - GetFileInformationByHandleEx
    - memset
    - GetLastError
    - winerror_to_errno
    - GetFileType
    - _Py_attribute_data_to_stat
    linkageType: ''
    returnType: int
    signature: int _Py_fstat_noraise(int fd, struct _Py_stat_struct *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/fileutils.c:1311,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Python/fileutils.c:1314,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1319,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - status
    argTypes:
    - int
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1326
    functionName: _Py_fstat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - _Py_fstat_noraise
    - _Py_AssertHoldsTstate
    - PyErr_SetFromErrno
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int _Py_fstat(int fd, struct _Py_stat_struct *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _wstat
      Src: /src/cpython/Python/fileutils.c:1335,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/cpython/Python/fileutils.c:1341,1
    - Dst: stat
      Src: /src/cpython/Python/fileutils.c:1346,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:1347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - wchar_t*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1350
    functionName: _Py_wstat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - _wstat
    - PyMem_RawFree
    - _Py_EncodeLocaleRaw
    - stat
    linkageType: ''
    returnType: int
    signature: int _Py_wstat(const wchar_t* path, struct stat *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/fileutils.c:1365,1
    - Dst: _Py_wstat
      Src: /src/cpython/Python/fileutils.c:1369,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1370,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/fileutils.c:1377,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Python/fileutils.c:1382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1383,1
    - Dst: stat
      Src: /src/cpython/Python/fileutils.c:1387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - path
    - statbuf
    argTypes:
    - PyObject*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1359
    functionDepth: 5
    functionLinenumber: 1359
    functionLinenumberEnd: 1391
    functionName: _Py_stat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_EncodeFSDefault
    - stat
    - PyBytes_AsStringAndSize
    - PyMem_Free
    - _Py_wstat
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: int _Py_stat(PyObject *path, struct stat *statbuf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Python/fileutils.c:1409,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1412,1
    - Dst: GetHandleInformation
      Src: /src/cpython/Python/fileutils.c:1416,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1418,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:1426,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - raise
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1434
    functionName: get_inheritable
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _Py_get_osfhandle_noraise
    - GetHandleInformation
    - fcntl
    - PyErr_SetFromWindowsErr
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int get_inheritable(int fd, int raise)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_inheritable
      Src: /src/cpython/Python/fileutils.c:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1443
    functionName: _Py_get_inheritable
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - get_inheritable
    linkageType: ''
    returnType: int
    signature: int _Py_get_inheritable(int fd)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:1465,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1468,1
    - Dst: get_inheritable
      Src: /src/cpython/Python/fileutils.c:1469,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1472,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1475,1
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Python/fileutils.c:1480,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1483,1
    - Dst: SetHandleInformation
      Src: /src/cpython/Python/fileutils.c:1492,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1494,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1502,1
    - Dst: ioctl
      Src: /src/cpython/Python/fileutils.c:1510,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1512,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1513,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1528,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1541,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:1548,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1551,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:1567,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1570,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 4
    argNames:
    - fd
    - inheritable
    - raise
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int
    - int*
    assertStmts:
    - condition: (!(atomic_flag_works != NULL && inheritable))
      pos:
        line_end: 1464
        line_start: 1464
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1575
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1575
    functionName: set_inheritable
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 11
    functionsReached:
    - _Py_get_osfhandle_noraise
    - get_inheritable
    - SetHandleInformation
    - _Py_atomic_store_int_relaxed
    - _Py_atomic_load_int_relaxed
    - fcntl
    - PyErr_SetFromWindowsErr
    - PyErr_SetFromErrno
    - ioctl
    - assert
    linkageType: ''
    returnType: int
    signature: int set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_inheritable
      Src: /src/cpython/Python/fileutils.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1583
    functionName: make_non_inheritable
    functionSourceFile: /src/cpython/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/cpython/Python/fileutils.c:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - inheritable
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1601
    functionDepth: 3
    functionLinenumber: 1601
    functionLinenumberEnd: 1605
    functionName: _Py_set_inheritable
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 11
    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/cpython/Python/fileutils.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - inheritable
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1610
    functionDepth: 3
    functionLinenumber: 1610
    functionLinenumberEnd: 1614
    functionName: _Py_set_inheritable_async_safe
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/fileutils.c:1635,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/fileutils.c:1639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1640,1
    - Dst: open
      Src: /src/cpython/Python/fileutils.c:1646,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1651,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Python/fileutils.c:1655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1659,1
    - Dst: open
      Src: /src/cpython/Python/fileutils.c:1662,1
    - Dst: set_inheritable
      Src: /src/cpython/Python/fileutils.c:1668,1
    - Dst: close
      Src: /src/cpython/Python/fileutils.c:1669,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pathname
    - flags
    - gil_held
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1616
    functionDepth: 3
    functionLinenumber: 1616
    functionLinenumberEnd: 1675
    functionName: _Py_open_impl
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - open
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - close
    - PyErr_SetFromErrnoWithFilenameObjects
    - PyErr_CheckSignals
    - PySys_Audit
    - set_inheritable
    linkageType: ''
    returnType: int
    signature: int _Py_open_impl(const char *pathname, int flags, int gil_held)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/fileutils.c:1691,1
    - Dst: _Py_open_impl
      Src: /src/cpython/Python/fileutils.c:1692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pathname
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1687
    functionDepth: 4
    functionLinenumber: 1687
    functionLinenumberEnd: 1693
    functionName: _Py_open
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - _Py_AssertHoldsTstate
    - _Py_open_impl
    linkageType: ''
    returnType: int
    signature: int _Py_open(const char *pathname, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_open_impl
      Src: /src/cpython/Python/fileutils.c:1704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1701
    functionDepth: 4
    functionLinenumber: 1701
    functionLinenumberEnd: 1705
    functionName: _Py_open_noraise
    functionSourceFile: /src/cpython/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/cpython/Python/fileutils.c:1717,1
    - Dst: wcstombs
      Src: /src/cpython/Python/fileutils.c:1724,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/cpython/Python/fileutils.c:1729,1
    - Dst: fopen
      Src: /src/cpython/Python/fileutils.c:1733,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:1734,1
    - Dst: _wfopen
      Src: /src/cpython/Python/fileutils.c:1736,1
    - Dst: make_non_inheritable
      Src: /src/cpython/Python/fileutils.c:1740,1
    - Dst: fileno
      Src: /src/cpython/Python/fileutils.c:1740,1
    - Dst: fclose
      Src: /src/cpython/Python/fileutils.c:1741,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1713
    functionDepth: 4
    functionLinenumber: 1713
    functionLinenumberEnd: 1745
    functionName: _Py_wfopen
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    - wcstombs
    - _Py_EncodeLocaleRaw
    - fopen
    - _wfopen
    - make_non_inheritable
    - PySys_Audit
    - fileno
    - fclose
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      _Py_wfopen(const wchar_t *path, const wchar_t *mode)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/fileutils.c:1766,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/fileutils.c:1768,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Python/fileutils.c:1777,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/fileutils.c:1781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1782,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Python/fileutils.c:1788,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:1789,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1791,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1792,1
    - Dst: _wfopen
      Src: /src/cpython/Python/fileutils.c:1799,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1803,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1805,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Python/fileutils.c:1808,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/fileutils.c:1811,1
    - Dst: fopen
      Src: /src/cpython/Python/fileutils.c:1815,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1820,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Python/fileutils.c:1829,1
    - Dst: set_inheritable
      Src: /src/cpython/Python/fileutils.c:1833,1
    - Dst: fileno
      Src: /src/cpython/Python/fileutils.c:1833,1
    - Dst: fclose
      Src: /src/cpython/Python/fileutils.c:1834,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1763
    functionDepth: 8
    functionLinenumber: 1763
    functionLinenumberEnd: 1838
    functionName: Py_fopen
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 17
    functionsReached:
    - MultiByteToWideChar
    - Py_DECREF
    - PyUnicode_FSDecoder
    - fopen
    - PyErr_SetFromWindowsErr
    - PyErr_SetFromErrnoWithFilenameObject
    - _wfopen
    - PyUnicode_FSConverter
    - PyErr_CheckSignals
    - PyBytes_AS_STRING
    - set_inheritable
    - Py_ARRAY_LENGTH
    - fileno
    - PySys_Audit
    - fclose
    - _Py_AssertHoldsTstate
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      Py_fopen(PyObject *path, const char *mode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/cpython/Python/fileutils.c:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1850
    functionName: Py_fclose
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - fclose
    linkageType: ''
    returnType: int
    signature: int Py_fclose(FILE *file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/fileutils.c:1873,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:1878,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:1878,1
    - Dst: read
      Src: /src/cpython/Python/fileutils.c:1890,1
    - Dst: read
      Src: /src/cpython/Python/fileutils.c:1899,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1906,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:1913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:1913,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1917,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1877
        line_start: 1877
        source_file: /src/cpython/Python/fileutils.c
    - condition: (errno == EINTR && PyErr_Occurred())
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1923
      start: 1866
    functionDepth: 2
    functionLinenumber: 1866
    functionLinenumberEnd: 1923
    functionName: _Py_read
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - PyErr_Occurred
    - read
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - _Py_AssertHoldsTstate
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_read(int fd, void *buf, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cpython/Python/fileutils.c:1890,1
    - Dst: read
      Src: /src/cpython/Python/fileutils.c:1899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1905
    functionName: do
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - read
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:1913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:1913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (errno == EINTR && PyErr_Occurred())
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1915
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1915
    functionName: if
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 10
    functionsReached:
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: _Py_END_SUPPRESS_IPH
    signature: _Py_END_SUPPRESS_IPH if (async_err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/cpython/Python/fileutils.c:1946,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:1967,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:1975,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1982,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:1993,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:2001,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2013,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:2013,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2018,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    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: 2012
        line_start: 2012
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2024
      start: 1925
    functionDepth: 2
    functionLinenumber: 1925
    functionLinenumberEnd: 2024
    functionName: _Py_write_impl
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_CheckSignals
    - isatty
    - write
    - PyErr_SetFromErrno
    - assert
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1943
    functionName: if
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Py_BEGIN_ALLOW_THREADS
    signature: Py_BEGIN_ALLOW_THREADS if (isatty(fd))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2013,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:2013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (errno == EINTR && (!gil_held || PyErr_Occurred()))
      pos:
        line_end: 2012
        line_start: 2012
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2015
      start: 2006
    functionDepth: 0
    functionLinenumber: 2006
    functionLinenumberEnd: 2015
    functionName: if
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 10
    functionsReached:
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: _Py_END_SUPPRESS_IPH
    signature: _Py_END_SUPPRESS_IPH if (async_err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/fileutils.c:2039,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2044,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:2044,1
    - Dst: _Py_write_impl
      Src: /src/cpython/Python/fileutils.c:2046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2043
        line_start: 2043
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2047
      start: 2036
    functionDepth: 3
    functionLinenumber: 2036
    functionLinenumberEnd: 2047
    functionName: _Py_write
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 5
    functionsReached:
    - PyErr_Occurred
    - _Py_write_impl
    - _Py_AssertHoldsTstate
    - assert
    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/cpython/Python/fileutils.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2056
    functionDepth: 3
    functionLinenumber: 2056
    functionLinenumberEnd: 2060
    functionName: _Py_write_noraise
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 8
    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_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2074,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/cpython/Python/fileutils.c:2079,1
    - Dst: readlink
      Src: /src/cpython/Python/fileutils.c:2084,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2085,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/fileutils.c:2094,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2101,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/fileutils.c:2105,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - path
    - buf
    - buflen
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2069
    functionDepth: 6
    functionLinenumber: 2069
    functionLinenumberEnd: 2108
    functionName: _Py_wreadlink
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - Py_DecodeLocale
    - PyMem_RawFree
    - _Py_EncodeLocaleRaw
    - wcsncpy
    - readlink
    - Py_ARRAY_LENGTH
    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/cpython/Python/fileutils.c:2127,1
    - Dst: realpath
      Src: /src/cpython/Python/fileutils.c:2132,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2133,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/fileutils.c:2137,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2144,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/fileutils.c:2148,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2149,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: 2151
      start: 2118
    functionDepth: 6
    functionLinenumber: 2118
    functionLinenumberEnd: 2151
    functionName: _Py_wrealpath
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - Py_DecodeLocale
    - PyMem_RawFree
    - _Py_EncodeLocaleRaw
    - realpath
    - wcsncpy
    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: PathCchSkipRoot
      Src: /src/cpython/Python/fileutils.c:2160,1
    - Dst: FAILED
      Src: /src/cpython/Python/fileutils.c:2161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2176
    functionName: _Py_isabs
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - FAILED
    - PathCchSkipRoot
    linkageType: ''
    returnType: int
    signature: int _Py_isabs(const wchar_t *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/cpython/Python/fileutils.c:2187,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2189,1
    - Dst: _Py_wgetcwd
      Src: /src/cpython/Python/fileutils.c:2190,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2190,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:2194,1
    - Dst: _Py_isabs
      Src: /src/cpython/Python/fileutils.c:2198,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:2199,1
    - Dst: _PyOS_getfullpathname
      Src: /src/cpython/Python/fileutils.c:2204,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2207,1
    - Dst: _Py_wgetcwd
      Src: /src/cpython/Python/fileutils.c:2208,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2208,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2213,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2214,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:2217,1
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:2227,1
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:2233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - path
    - abspath_p
    argTypes:
    - wchar_t*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2184
    functionDepth: 2
    functionLinenumber: 2184
    functionLinenumberEnd: 2239
    functionName: _Py_abspath
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _Py_isabs
    - wcscmp
    - _Py_wgetcwd
    - memcpy
    - wcslen
    - PyMem_RawMalloc
    - Py_ARRAY_LENGTH
    - _PyOS_getfullpathname
    - _PyMem_RawWcsdup
    linkageType: ''
    returnType: int
    signature: int _Py_abspath(const wchar_t *path, wchar_t **abspath_p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/fileutils.c:2255,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/fileutils.c:2258,1
    - Dst: _PathCchSkipRoot
      Src: /src/cpython/Python/fileutils.c:2271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - path
    - rootEnd
    argTypes:
    - wchar_t*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2246
    functionDepth: 0
    functionLinenumber: 2246
    functionLinenumberEnd: 2272
    functionName: PathCchSkipRoot
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - LoadLibraryExW
    - GetProcAddress
    - _PathCchSkipRoot
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT PathCchSkipRoot(const wchar_t *path, const wchar_t **rootEnd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/fileutils.c:2287,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/fileutils.c:2290,1
    - Dst: _PathCchCombineEx
      Src: /src/cpython/Python/fileutils.c:2303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - buffer
    - bufsize
    - dirname
    - relfile
    - flags
    argTypes:
    - wchar_t*
    - size_t
    - wchar_t*
    - wchar_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2274
    functionDepth: 0
    functionLinenumber: 2274
    functionLinenumberEnd: 2304
    functionName: PathCchCombineEx
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - LoadLibraryExW
    - GetProcAddress
    - _PathCchCombineEx
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT PathCchCombineEx(wchar_t *buffer, size_t bufsize, const wchar_t
      *dirname,\n                 const wchar_t *relfile, unsigned long flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2312,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2313,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2317,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2321,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2321,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2336,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2337,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2341,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2345,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2352,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2355,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2361,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2365,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2379,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2381,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 4
    argNames:
    - path
    - size
    - drvsize
    - rootsize
    argTypes:
    - wchar_t*
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts:
    - condition: (drvsize)
      pos:
        line_end: 2311
        line_start: 2311
        source_file: /src/cpython/Python/fileutils.c
    - condition: (rootsize)
      pos:
        line_end: 2312
        line_start: 2312
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2399
      start: 2308
    functionDepth: 1
    functionLinenumber: 2308
    functionLinenumberEnd: 2399
    functionName: _Py_skiproot
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - IS_END
    - IS_SEP
    - SEP_OR_END
    - assert
    linkageType: ''
    returnType: void
    signature: "void _Py_skiproot(const wchar_t *path, Py_ssize_t size, Py_ssize_t
      *drvsize,\n             Py_ssize_t *rootsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2315
    functionDepth: 0
    functionLinenumber: 2315
    functionLinenumberEnd: 2316
    functionName: IS_SEP
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2334
    functionName: IS_END
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_END(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2335
    functionName: IS_SEP
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2336
    functionName: SEP_OR_END
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEP_OR_END(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/cpython/Python/fileutils.c:2407,1
    - Dst: PathCchCombineEx
      Src: /src/cpython/Python/fileutils.c:2407,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2412,1
    - Dst: _Py_isabs
      Src: /src/cpython/Python/fileutils.c:2412,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2413,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2414,1
    - Dst: wcscpy
      Src: /src/cpython/Python/fileutils.c:2421,1
    - Dst: wcscpy
      Src: /src/cpython/Python/fileutils.c:2425,1
    - Dst: wcscpy
      Src: /src/cpython/Python/fileutils.c:2432,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - buffer
    - bufsize
    - dirname
    - relfile
    argTypes:
    - wchar_t*
    - size_t
    - wchar_t*
    - wchar_t*
    assertStmts:
    - condition: (!_Py_isabs(relfile))
      pos:
        line_end: 2411
        line_start: 2411
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2436
      start: 2402
    functionDepth: 2
    functionLinenumber: 2402
    functionLinenumberEnd: 2436
    functionName: join_relfile
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _Py_isabs
    - wcslen
    - PathCchCombineEx
    - FAILED
    - wcscpy
    - assert
    linkageType: ''
    returnType: int
    signature: "int join_relfile(wchar_t *buffer, size_t bufsize,\n             const
      wchar_t *dirname, const wchar_t *relfile)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2444,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2446,1
    - Dst: _Py_isabs
      Src: /src/cpython/Python/fileutils.c:2446,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2448,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2448,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:2450,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2454,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2454,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2455,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2455,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2455,1
    - Dst: join_relfile
      Src: /src/cpython/Python/fileutils.c:2456,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - dirname
    - relfile
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts:
    - condition: (dirname != NULL && relfile != NULL)
      pos:
        line_end: 2443
        line_start: 2443
        source_file: /src/cpython/Python/fileutils.c
    - condition: (!_Py_isabs(relfile))
      pos:
        line_end: 2445
        line_start: 2445
        source_file: /src/cpython/Python/fileutils.c
    - condition: (wcslen(dirname) < MAXPATHLEN)
      pos:
        line_end: 2453
        line_start: 2453
        source_file: /src/cpython/Python/fileutils.c
    - condition: (wcslen(relfile) < MAXPATHLEN - wcslen(dirname))
      pos:
        line_end: 2454
        line_start: 2454
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2461
      start: 2441
    functionDepth: 3
    functionLinenumber: 2441
    functionLinenumberEnd: 2461
    functionName: _Py_join_relfile
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _Py_isabs
    - PyMem_RawFree
    - wcslen
    - join_relfile
    - PyMem_RawMalloc
    - assert
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_join_relfile(const wchar_t *dirname, const wchar_t *relfile)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2472,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2473,1
    - Dst: join_relfile
      Src: /src/cpython/Python/fileutils.c:2474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dirname
    - relfile
    - bufsize
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts:
    - condition: (dirname != NULL && relfile != NULL)
      pos:
        line_end: 2471
        line_start: 2471
        source_file: /src/cpython/Python/fileutils.c
    - condition: (bufsize > 0)
      pos:
        line_end: 2472
        line_start: 2472
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2475
      start: 2469
    functionDepth: 3
    functionLinenumber: 2469
    functionLinenumberEnd: 2475
    functionName: _Py_add_relfile
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - join_relfile
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_add_relfile(wchar_t *dirname, const wchar_t *relfile, size_t
      bufsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2478
    functionDepth: 0
    functionLinenumber: 2478
    functionLinenumberEnd: 2487
    functionName: _Py_find_basename
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - wcslen
    linkageType: ''
    returnType: size_t
    signature: size_t _Py_find_basename(const wchar_t *filename)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2498,1
    - Dst: _Py_skiproot
      Src: /src/cpython/Python/fileutils.c:2518,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2539,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2547,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2553,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2562,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2563,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2569,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 77
    argCount: 3
    argNames:
    - path
    - size
    - normsize
    argTypes:
    - wchar_t*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 2497
        line_start: 2497
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2608
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2608
    functionName: _Py_normpath_and_size
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _Py_skiproot
    - SEP_OR_END
    - IS_SEP
    - IS_END
    - assert
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_normpath_and_size(wchar_t *path, Py_ssize_t size, Py_ssize_t *normsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2510
    functionName: IS_END
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_END(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2511
    functionDepth: 0
    functionLinenumber: 2511
    functionLinenumberEnd: 2512
    functionName: IS_SEP
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2513
    functionDepth: 0
    functionLinenumber: 2513
    functionLinenumberEnd: 2514
    functionName: IS_SEP
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2515
    functionDepth: 0
    functionLinenumber: 2515
    functionLinenumberEnd: 2516
    functionName: SEP_OR_END
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEP_OR_END(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_normpath_and_size
      Src: /src/cpython/Python/fileutils.c:2619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2615
    functionDepth: 3
    functionLinenumber: 2615
    functionLinenumberEnd: 2620
    functionName: _Py_normpath
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 4
    functionsReached:
    - _Py_normpath_and_size
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_normpath(wchar_t *path, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/cpython/Python/fileutils.c:2632,1
    - Dst: _wgetcwd
      Src: /src/cpython/Python/fileutils.c:2633,1
    - Dst: getcwd
      Src: /src/cpython/Python/fileutils.c:2639,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2639,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/fileutils.c:2641,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2646,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/fileutils.c:2649,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2628
    functionDepth: 6
    functionLinenumber: 2628
    functionLinenumberEnd: 2653
    functionName: _Py_wgetcwd
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - Py_MIN
    - _wgetcwd
    - Py_DecodeLocale
    - PyMem_RawFree
    - wcsncpy
    - getcwd
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_wgetcwd(wchar_t *buf, size_t buflen)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/fileutils.c:2667,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Python/fileutils.c:2670,1
    - Dst: dup
      Src: /src/cpython/Python/fileutils.c:2676,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2680,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Python/fileutils.c:2684,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2693,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2697,1
    - Dst: dup
      Src: /src/cpython/Python/fileutils.c:2704,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2708,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Python/fileutils.c:2712,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2660
    functionDepth: 4
    functionLinenumber: 2660
    functionLinenumberEnd: 2724
    functionName: _Py_dup
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - fcntl
    - _Py_get_osfhandle
    - dup
    - PyErr_SetFromErrno
    - _Py_AssertHoldsTstate
    - _Py_set_inheritable
    linkageType: ''
    returnType: int
    signature: int _Py_dup(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2735,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2730
    functionDepth: 1
    functionLinenumber: 2730
    functionLinenumberEnd: 2743
    functionName: _Py_get_blocking
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - PyErr_SetFromErrno
    - fcntl
    linkageType: ''
    returnType: int
    signature: int _Py_get_blocking(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/cpython/Python/fileutils.c:2758,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2764,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2771,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2783,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - fd
    - blocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2785
    functionName: _Py_set_blocking
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - PyErr_SetFromErrno
    - ioctl
    - fcntl
    linkageType: ''
    returnType: int
    signature: int _Py_set_blocking(int fd, int blocking)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/fileutils.c:2802,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/fileutils.c:2804,1
    - Dst: SetLastError
      Src: /src/cpython/Python/fileutils.c:2814,1
    - Dst: _GetNamedPipeHandleStateW
      Src: /src/cpython/Python/fileutils.c:2818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - hNamedPipe
    - lpState
    - lpCurInstances
    - lpMaxCollectionCount
    - lpCollectDataTimeout
    - lpUserName
    - nMaxUserNameSize
    argTypes:
    - HANDLE
    - LPDWORD
    - LPDWORD
    - LPDWORD
    - LPDWORD
    - LPWSTR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2821
    functionName: GetNamedPipeHandleStateW
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - LoadLibraryExW
    - GetProcAddress
    - _GetNamedPipeHandleStateW
    - SetLastError
    linkageType: ''
    returnType: BOOL
    signature: "BOOL GetNamedPipeHandleStateW(HANDLE hNamedPipe, LPDWORD lpState,
      LPDWORD lpCurInstances, LPDWORD lpMaxCollectionCount,\n                         LPDWORD
      lpCollectDataTimeout, LPWSTR lpUserName, DWORD nMaxUserNameSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Python/fileutils.c:2831,1
    - Dst: GetNamedPipeHandleStateW
      Src: /src/cpython/Python/fileutils.c:2837,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:2842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2824
    functionDepth: 1
    functionLinenumber: 2824
    functionLinenumberEnd: 2847
    functionName: _Py_get_blocking
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - GetNamedPipeHandleStateW
    - _Py_get_osfhandle
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int _Py_get_blocking(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Python/fileutils.c:2856,1
    - Dst: GetNamedPipeHandleStateW
      Src: /src/cpython/Python/fileutils.c:2862,1
    - Dst: SetNamedPipeHandleState
      Src: /src/cpython/Python/fileutils.c:2871,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:2876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - fd
    - blocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2849
    functionDepth: 1
    functionLinenumber: 2849
    functionLinenumberEnd: 2880
    functionName: _Py_set_blocking
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - GetNamedPipeHandleStateW
    - SetNamedPipeHandleState
    - _Py_get_osfhandle
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int _Py_set_blocking(int fd, int blocking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/cpython/Python/fileutils.c:2887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2882
    functionDepth: 0
    functionLinenumber: 2882
    functionLinenumberEnd: 2890
    functionName: _Py_get_osfhandle_noraise
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 9
    functionsReached:
    - _get_osfhandle
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_get_osfhandle_noraise(int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Python/fileutils.c:2895,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2892
    functionDepth: 1
    functionLinenumber: 2892
    functionLinenumberEnd: 2900
    functionName: _Py_get_osfhandle
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 7
    functionsReached:
    - _Py_get_osfhandle_noraise
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_get_osfhandle(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _open_osfhandle
      Src: /src/cpython/Python/fileutils.c:2907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - handle
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2902
    functionDepth: 0
    functionLinenumber: 2902
    functionLinenumberEnd: 2910
    functionName: _Py_open_osfhandle_noraise
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _open_osfhandle
    linkageType: ''
    returnType: int
    signature: int _Py_open_osfhandle_noraise(void *handle, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_open_osfhandle_noraise
      Src: /src/cpython/Python/fileutils.c:2915,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2912
    functionDepth: 1
    functionLinenumber: 2912
    functionLinenumberEnd: 2920
    functionName: _Py_open_osfhandle
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - _Py_open_osfhandle_noraise
    linkageType: ''
    returnType: int
    signature: int _Py_open_osfhandle(void *handle, int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2927,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2928,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:2932,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:2935,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2942,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/fileutils.c:2944,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Python/fileutils.c:2949,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:2951,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2955,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:2956,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2965,1
    - Dst: GET_LOCALE_STRING
      Src: /src/cpython/Python/fileutils.c:2977,1
    - Dst: GET_LOCALE_STRING
      Src: /src/cpython/Python/fileutils.c:2982,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2992,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:2994,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - lc
    - decimal_point
    - thousands_sep
    argTypes:
    - struct lconv*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (decimal_point != NULL)
      pos:
        line_end: 2926
        line_start: 2926
        source_file: /src/cpython/Python/fileutils.c
    - condition: (thousands_sep != NULL)
      pos:
        line_end: 2927
        line_start: 2927
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2999
      start: 2923
    functionDepth: 3
    functionLinenumber: 2923
    functionLinenumberEnd: 2999
    functionName: _Py_GetLocaleconvNumeric
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - setlocale
    - GET_LOCALE_STRING
    - strlen
    - PyErr_SetString
    - strcmp
    - PyMem_Free
    - _PyMem_Strdup
    - PyErr_NoMemory
    - assert
    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:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2969
    functionDepth: 0
    functionLinenumber: 2969
    functionLinenumberEnd: 2970
    functionName: GET_LOCALE_STRING
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOCALE_STRING(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2972
    functionDepth: 0
    functionLinenumber: 2972
    functionLinenumberEnd: 2973
    functionName: GET_LOCALE_STRING
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOCALE_STRING(ATTR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/cpython/Python/fileutils.c:3032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - lohi
    - fd
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 3021
    functionDepth: 0
    functionLinenumber: 3021
    functionLinenumberEnd: 3035
    functionName: _fdwalk_close_func
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int _fdwalk_close_func(void *lohi, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Python/fileutils.c:3042,1
    - Dst: close_range
      Src: /src/cpython/Python/fileutils.c:3045,1
    - Dst: sysconf
      Src: /src/cpython/Python/fileutils.c:3054,1
    - Dst: closefrom
      Src: /src/cpython/Python/fileutils.c:3056,1
    - Dst: fdwalk
      Src: /src/cpython/Python/fileutils.c:3065,1
    - Dst: close
      Src: /src/cpython/Python/fileutils.c:3071,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3039
    functionDepth: 1
    functionLinenumber: 3039
    functionLinenumberEnd: 3076
    functionName: _Py_closerange
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - Py_MAX
    - fdwalk
    - close
    - close_range
    - closefrom
    - sysconf
    linkageType: ''
    returnType: void
    signature: void _Py_closerange(int first, int last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/cpython/Python/fileutils.c:3086,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:3092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ticks_per_second
    argTypes:
    - long*
    assertStmts:
    - condition: (HZ >= 1)
      pos:
        line_end: 3091
        line_start: 3091
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 3099
      start: 3082
    functionDepth: 0
    functionLinenumber: 3082
    functionLinenumberEnd: 3099
    functionName: _Py_GetTicksPerSecond
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - sysconf
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_GetTicksPerSecond(long *ticks_per_second)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:3131,1
    - Dst: dup
      Src: /src/cpython/Python/fileutils.c:3133,1
    - Dst: close
      Src: /src/cpython/Python/fileutils.c:3135,1
    - Dst: _get_osfhandle
      Src: /src/cpython/Python/fileutils.c:3141,1
    - Dst: GetFileType
      Src: /src/cpython/Python/fileutils.c:3144,1
    - Dst: fstat
      Src: /src/cpython/Python/fileutils.c:3147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3105
    functionDepth: 0
    functionLinenumber: 3105
    functionLinenumberEnd: 3149
    functionName: _Py_IsValidFD
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - fstat
    - close
    - fcntl
    - dup
    - _get_osfhandle
    - GetFileType
    linkageType: ''
    returnType: int
    signature: int _Py_IsValidFD(int fd)
  - 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_INIT
    functionSourceFile: /src/cpython/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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: PyMUTEX_FINI
    functionSourceFile: /src/cpython/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: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: PyMUTEX_LOCK
    functionSourceFile: /src/cpython/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: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: PyMUTEX_UNLOCK
    functionSourceFile: /src/cpython/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: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: PyCOND_INIT
    functionSourceFile: /src/cpython/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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: PyCOND_FINI
    functionSourceFile: /src/cpython/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: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: PyCOND_SIGNAL
    functionSourceFile: /src/cpython/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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PyCOND_BROADCAST
    functionSourceFile: /src/cpython/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: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: PyCOND_WAIT
    functionSourceFile: /src/cpython/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCOND_WAIT(cond, mut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThread_cond_after
      Src: /src/cpython/Python/condvar.h:73,1
    - Dst: pthread_cond_timedwait
      Src: /src/cpython/Python/condvar.h:74,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: 82
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: PyCOND_TIMEDWAIT
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: PyMUTEX_INIT
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: PyMUTEX_FINI
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: PyMUTEX_LOCK
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: PyMUTEX_UNLOCK
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: PyCOND_INIT
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: PyCOND_FINI
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:166,1
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Python/condvar.h:171,1
    - Dst: PyMUTEX_LOCK
      Src: /src/cpython/Python/condvar.h:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cv
    - cs
    - ms
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 190
    functionName: _PyCOND_WAIT_MS
    functionSourceFile: /src/cpython/Python/condvar.h
    functionUses: 0
    functionsReached:
    - PyMUTEX_UNLOCK
    - WaitForSingleObjectEx
    - PyMUTEX_LOCK
    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/cpython/Python/condvar.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cv
    - cs
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: PyCOND_WAIT
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:202,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: 203
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: PyCOND_TIMEDWAIT
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 221
    functionName: PyCOND_SIGNAL
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: PyCOND_BROADCAST
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: PyMUTEX_INIT
    functionSourceFile: /src/cpython/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: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: PyMUTEX_FINI
    functionSourceFile: /src/cpython/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_FINI(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/cpython/Python/condvar.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: PyMUTEX_LOCK
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: PyMUTEX_UNLOCK
    functionSourceFile: /src/cpython/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/cpython/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/cpython/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: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: PyCOND_FINI
    functionSourceFile: /src/cpython/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyCOND_FINI(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableSRW
      Src: /src/cpython/Python/condvar.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cv
    - cs
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: PyCOND_WAIT
    functionSourceFile: /src/cpython/Python/condvar.h
    functionUses: 0
    functionsReached:
    - SleepConditionVariableSRW
    linkageType: ''
    returnType: void
    signature: void PyCOND_WAIT(PyCOND_T *cv, PyMUTEX_T *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableSRW
      Src: /src/cpython/Python/condvar.h:286,1
    - Dst: GetLastError
      Src: /src/cpython/Python/condvar.h:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cv
    - cs
    - us
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: PyCOND_TIMEDWAIT
    functionSourceFile: /src/cpython/Python/condvar.h
    functionUses: 0
    functionsReached:
    - GetLastError
    - 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/cpython/Python/condvar.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: PyCOND_SIGNAL
    functionSourceFile: /src/cpython/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/cpython/Python/condvar.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: PyCOND_BROADCAST
    functionSourceFile: /src/cpython/Python/condvar.h
    functionUses: 0
    functionsReached:
    - WakeAllConditionVariable
    linkageType: ''
    returnType: void
    signature: void PyCOND_BROADCAST(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stack
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: WORKSTACK_FOR_EACH
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORKSTACK_FOR_EACH(stack, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stack
    - ','
    - iter
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: WORKSTACK_FOR_EACH_ITER
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORKSTACK_FOR_EACH_ITER(stack, iter, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - worklist
    - op
    argTypes:
    - struct worklist*
    - PyObject*
    assertStmts:
    - condition: (op->ob_tid == 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: worklist_push
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void worklist_push(struct worklist *worklist, PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - worklist
    argTypes:
    - struct worklist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: worklist_pop
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uintptr_relaxed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      worklist_pop(struct worklist *worklist)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - iter
    - next
    argTypes:
    - struct worklist_iter*
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: worklist_iter_init
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void worklist_iter_init(struct worklist_iter *iter, uintptr_t *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct worklist_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: worklist_remove
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void worklist_remove(struct worklist_iter *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - bit
    argTypes:
    - PyObject*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: gc_has_bit
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_has_bit(PyObject *op, uint8_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - bit
    argTypes:
    - PyObject*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: gc_set_bit
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_set_bit(PyObject *op, uint8_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - bit
    argTypes:
    - PyObject*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: gc_clear_bit
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_clear_bit(PyObject *op, uint8_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: gc_is_frozen
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_has_bit
    linkageType: ''
    returnType: int
    signature: int gc_is_frozen(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: gc_is_unreachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_has_bit
    linkageType: ''
    returnType: int
    signature: int gc_is_unreachable(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_set_bit
      Src: /src/cpython/Python/gc_free_threading.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: gc_set_unreachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_set_bit
    linkageType: ''
    returnType: void
    signature: void gc_set_unreachable(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_clear_bit
      Src: /src/cpython/Python/gc_free_threading.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: gc_clear_unreachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_clear_bit
    linkageType: ''
    returnType: void
    signature: void gc_clear_unreachable(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: gc_is_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_has_bit
    linkageType: ''
    returnType: int
    signature: int gc_is_alive(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_set_bit
      Src: /src/cpython/Python/gc_free_threading.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: gc_set_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_set_bit
    linkageType: ''
    returnType: void
    signature: void gc_set_alive(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_clear_bit
      Src: /src/cpython/Python/gc_free_threading.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: gc_clear_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_clear_bit
    linkageType: ''
    returnType: void
    signature: void gc_clear_alive(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:225,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:226,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:226,1
    - Dst: gc_set_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!gc_is_alive(op))
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: gc_maybe_init_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - gc_set_unreachable
    - gc_is_unreachable
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_maybe_init_refs(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: gc_get_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_get_refs(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:241,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - refs
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyObject_GC_IS_TRACKED(op))
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: gc_add_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_add_refs(PyObject *op, Py_ssize_t refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: gc_decref
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_decref(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:254,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc_free_threading.c:254,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:256,1
    - Dst: _Py_AddRefTotal
      Src: /src/cpython/Python/gc_free_threading.c:260,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:260,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Python/gc_free_threading.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - op
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyInterpreterState_GET()->stoptheworld.world_stopped)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 268
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 268
    functionName: merge_refcount
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_AddRefTotal
    - _PyInterpreterState_GET
    - _PyThreadState_GET
    - _Py_REF_SHARED
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t merge_refcount(PyObject *op, Py_ssize_t extra)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:275,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:276,1
    - Dst: PyStackRef_AsStrongReference
      Src: /src/cpython/Python/gc_free_threading.c:279,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/gc_free_threading.c:282,1
    - Dst: PyStackRef_AsStrongReference
      Src: /src/cpython/Python/gc_free_threading.c:290,1
    - Dst: PyStackRef_IsNullOrInt
      Src: /src/cpython/Python/gc_free_threading.c:292,1
    - Dst: PyStackRef_IsDeferred
      Src: /src/cpython/Python/gc_free_threading.c:292,1
    - Dst: PyStackRef_AsStrongReference
      Src: /src/cpython/Python/gc_free_threading.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->stackpointer != NULL)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: "(frame->owner == FRAME_OWNED_BY_FRAME_OBJECT ||\n           frame->owner
        == FRAME_OWNED_BY_GENERATOR)"
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 296
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 296
    functionName: frame_disable_deferred_refcounting
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsDeferred
    - PyStackRef_IsNullOrInt
    - PyStackRef_AsStrongReference
    - assert
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: void
    signature: void frame_disable_deferred_refcounting(_PyInterpreterFrame *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/gc_free_threading.c:301,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Python/gc_free_threading.c:303,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:304,1
    - Dst: _PyObject_DisablePerThreadRefcounting
      Src: /src/cpython/Python/gc_free_threading.c:308,1
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:316,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:316,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:316,1
    - Dst: frame_disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:317,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Python/gc_free_threading.c:319,1
    - Dst: frame_disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 322
    functionName: disable_deferred_refcounting
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - PyAsyncGen_CheckExact
    - PyFrame_Check
    - merge_refcount
    - PyCoro_CheckExact
    - frame_disable_deferred_refcounting
    - PyGen_CheckExact
    - _PyObject_HasDeferredRefcount
    - _PyObject_DisablePerThreadRefcounting
    - _Py_REF_SHARED
    linkageType: ''
    returnType: void
    signature: void disable_deferred_refcounting(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:327,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc_free_threading.c:327,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Python/gc_free_threading.c:328,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:329,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_GET()->stoptheworld.world_stopped)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 342
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 342
    functionName: gc_restore_tid
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_segment
    - _Py_REF_IS_MERGED
    - merge_refcount
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_restore_tid(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:347,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:348,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:348,1
    - Dst: gc_restore_tid
      Src: /src/cpython/Python/gc_free_threading.c:349,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:350,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!gc_is_alive(op))
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: gc_restore_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - gc_clear_unreachable
    - gc_restore_tid
    - gc_is_unreachable
    - gc_clear_alive
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_restore_refs(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:367,1
    - Dst: PyObject_IS_GC
      Src: /src/cpython/Python/gc_free_threading.c:367,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:368,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - block
    - arg
    - include_frozen
    argTypes:
    - void*
    - void*
    - bool
    assertStmts:
    - condition: (PyObject_IS_GC(op))
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: op_from_block
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - gc_is_frozen
    - PyObject_IS_GC
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      op_from_block(void *block, void *arg, bool include_frozen)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Python/gc_free_threading.c:383,1
    - Dst: _Py_atomic_load_int
      Src: /src/cpython/Python/gc_free_threading.c:394,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:400,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:405,1
    - Dst: _mi_abandoned_pool_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:414,1
    - Dst: _mi_abandoned_pool_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - interp
    - visitor
    - arg
    argTypes:
    - PyInterpreterState*
    - mi_block_visit_fun*
    - struct visitor_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 424
    functionName: gc_visit_heaps_lock_held
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int
    - mi_heap_visit_blocks
    - _PyMem_DebugEnabled
    - _mi_abandoned_pool_visit_blocks
    linkageType: ''
    returnType: int
    signature: "int gc_visit_heaps_lock_held(PyInterpreterState *interp, mi_block_visit_fun
      *visitor,\n                         struct visitor_args *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int
      Src: /src/cpython/Python/gc_free_threading.c:394,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:400,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int
    - mi_heap_visit_blocks
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:435,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/gc_free_threading.c:438,1
    - Dst: gc_visit_heaps_lock_held
      Src: /src/cpython/Python/gc_free_threading.c:439,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/gc_free_threading.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - interp
    - visitor
    - arg
    argTypes:
    - PyInterpreterState*
    - mi_block_visit_fun*
    - struct visitor_args*
    assertStmts:
    - condition: (interp->stoptheworld.world_stopped)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 442
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 442
    functionName: gc_visit_heaps
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - HEAD_UNLOCK
    - HEAD_LOCK
    - assert
    - gc_visit_heaps_lock_held
    linkageType: ''
    returnType: int
    signature: "int gc_visit_heaps(PyInterpreterState *interp, mi_block_visit_fun
      *visitor,\n               struct visitor_args *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_IsDeferred
      Src: /src/cpython/Python/gc_free_threading.c:447,1
    - Dst: PyStackRef_IsNullOrInt
      Src: /src/cpython/Python/gc_free_threading.c:447,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc_free_threading.c:448,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:449,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:449,1
    - Dst: gc_add_refs
      Src: /src/cpython/Python/gc_free_threading.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - stackref
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: gc_visit_stackref
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - PyStackRef_IsDeferred
    - PyStackRef_IsNullOrInt
    - PyStackRef_AsPyObjectBorrow
    - gc_add_refs
    - gc_is_frozen
    linkageType: ''
    returnType: void
    signature: void gc_visit_stackref(_PyStackRef stackref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:462,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:480,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:483,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:487,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 488
    functionName: gc_visit_thread_stacks
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_stackref
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: void
    signature: void gc_visit_thread_stacks(PyInterpreterState *interp, struct collection_state
      *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:462,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:480,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 486
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_stackref
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:498,1
    - Dst: _PyTuple_MaybeUntrack
      Src: /src/cpython/Python/gc_free_threading.c:499,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 505
    functionName: gc_maybe_untrack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyTuple_MaybeUntrack
    - PyTuple_CheckExact
    linkageType: ''
    returnType: bool
    signature: bool gc_maybe_untrack(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 553
    functionName: PREFETCH_T0
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T0(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 554
    functionName: PREFETCH_T1
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: PREFETCH_T2
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: PREFETCH_NTA
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_NTA(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: PREFETCH_T0
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T0(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 560
    functionName: PREFETCH_T1
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: PREFETCH_T2
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 562
    functionName: PREFETCH_NTA
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_NTA(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: PREFETCH_T0
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T0(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 567
    functionName: PREFETCH_T1
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: PREFETCH_T2
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 571
    functionName: PREFETCH_NTA
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_NTA(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 573
    functionName: PREFETCH_T0
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T0(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: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 574
    functionName: PREFETCH_T1
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 575
    functionName: PREFETCH_T2
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_T2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 576
    functionName: PREFETCH_NTA
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_NTA(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 580
    functionName: prefetch
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prefetch(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: gc_mark_buffer_len
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gc_mark_buffer_len(gc_mark_args_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_buffer_len
      Src: /src/cpython/Python/gc_free_threading.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 619
    functionName: gc_mark_buffer_avail
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_len
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gc_mark_buffer_avail(gc_mark_args_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 626
    functionName: gc_mark_buffer_is_empty
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gc_mark_buffer_is_empty(gc_mark_args_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_buffer_len
      Src: /src/cpython/Python/gc_free_threading.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: gc_mark_buffer_is_full
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_len
    linkageType: ''
    returnType: bool
    signature: bool gc_mark_buffer_is_full(gc_mark_args_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:637,1
    - Dst: gc_mark_buffer_is_empty
      Src: /src/cpython/Python/gc_free_threading.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts:
    - condition: (!gc_mark_buffer_is_empty(args))
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 641
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 641
    functionName: gc_mark_buffer_pop
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_is_empty
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_mark_buffer_pop(gc_mark_args_t *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:648,1
    - Dst: gc_mark_buffer_is_full
      Src: /src/cpython/Python/gc_free_threading.c:648,1
    - Dst: prefetch
      Src: /src/cpython/Python/gc_free_threading.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - gc_mark_args_t*
    assertStmts:
    - condition: (!gc_mark_buffer_is_full(args))
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 652
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 652
    functionName: gc_mark_buffer_push
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - prefetch
    - gc_mark_buffer_is_full
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_mark_buffer_push(PyObject *op, gc_mark_args_t *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ms
    - op
    argTypes:
    - _PyObjectStack*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 663
    functionName: gc_mark_stack_push
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Push
    linkageType: ''
    returnType: int
    signature: int gc_mark_stack_push(_PyObjectStack *ms, PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/gc_free_threading.c:678,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ss
    - start
    - end
    argTypes:
    - gc_span_stack_t*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (end > start)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 688
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 688
    functionName: gc_mark_span_push
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - assert
    linkageType: ''
    returnType: int
    signature: int gc_mark_span_push(gc_span_stack_t *ss, PyObject **start, PyObject
      **end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:696,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:699,1
    - Dst: gc_maybe_untrack
      Src: /src/cpython/Python/gc_free_threading.c:702,1
    - Dst: gc_set_alive
      Src: /src/cpython/Python/gc_free_threading.c:708,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 713
    functionName: gc_mark_enqueue_no_buffer
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - gc_set_alive
    - gc_has_bit
    - gc_maybe_untrack
    - _PyObjectStack_Push
    linkageType: ''
    returnType: int
    signature: int gc_mark_enqueue_no_buffer(PyObject *op, gc_mark_args_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_enqueue_no_buffer
      Src: /src/cpython/Python/gc_free_threading.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 4
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: gc_mark_enqueue_no_buffer_visitproc
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_enqueue_no_buffer
    linkageType: ''
    returnType: int
    signature: int gc_mark_enqueue_no_buffer_visitproc(PyObject *op, void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:724,1
    - Dst: gc_mark_buffer_is_full
      Src: /src/cpython/Python/gc_free_threading.c:725,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:726,1
    - Dst: gc_mark_stack_push
      Src: /src/cpython/Python/gc_free_threading.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - gc_mark_args_t*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 732
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 732
    functionName: gc_mark_enqueue_buffer
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_stack_push
    - gc_mark_buffer_is_full
    - assert
    - gc_mark_buffer_push
    linkageType: ''
    returnType: int
    signature: int gc_mark_enqueue_buffer(PyObject *op, gc_mark_args_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_enqueue_buffer
      Src: /src/cpython/Python/gc_free_threading.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 4
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: gc_mark_enqueue_buffer_visitproc
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_enqueue_buffer
    linkageType: ''
    returnType: int
    signature: int gc_mark_enqueue_buffer_visitproc(PyObject *op, void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_enqueue_buffer
      Src: /src/cpython/Python/gc_free_threading.c:746,1
    - Dst: gc_mark_enqueue_no_buffer
      Src: /src/cpython/Python/gc_free_threading.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 742
    functionDepth: 4
    functionLinenumber: 742
    functionLinenumberEnd: 751
    functionName: gc_mark_enqueue
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_enqueue_no_buffer
    - gc_mark_enqueue_buffer
    linkageType: ''
    returnType: int
    signature: int gc_mark_enqueue(PyObject *op, gc_mark_args_t *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_buffer_len
      Src: /src/cpython/Python/gc_free_threading.c:762,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:770,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:774,1
    - Dst: gc_mark_span_push
      Src: /src/cpython/Python/gc_free_threading.c:776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - item
    - size
    - args
    argTypes:
    - PyObject**
    - Py_ssize_t
    - gc_mark_args_t*
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 781
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 781
    functionName: gc_mark_enqueue_span
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_len
    - gc_mark_span_push
    - assert
    - gc_mark_buffer_push
    linkageType: ''
    returnType: int
    signature: int gc_mark_enqueue_span(PyObject **item, Py_ssize_t size, gc_mark_args_t
      *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:787,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:791,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 795
    functionName: gc_clear_alive_bits
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_clear_alive
    - gc_is_alive
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool gc_clear_alive_bits(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                    void *block, size_t block_size, void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_enqueue_span
      Src: /src/cpython/Python/gc_free_threading.c:804,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 808
    functionName: gc_mark_traverse_list
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_enqueue_span
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int gc_mark_traverse_list(PyObject *self, void *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_MaybeUntrack
      Src: /src/cpython/Python/gc_free_threading.c:813,1
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:814,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:815,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Python/gc_free_threading.c:818,1
    - Dst: gc_mark_enqueue_span
      Src: /src/cpython/Python/gc_free_threading.c:819,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 823
    functionName: gc_mark_traverse_tuple
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - Py_SIZE
    - _PyTuple_MaybeUntrack
    - gc_has_bit
    - gc_mark_enqueue_span
    - gc_clear_alive
    linkageType: ''
    returnType: int
    signature: int gc_mark_traverse_tuple(PyObject *self, void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObjectStack_Clear
      Src: /src/cpython/Python/gc_free_threading.c:833,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/gc_free_threading.c:835,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - interp
    - state
    - args
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 825
    functionDepth: 6
    functionLinenumber: 825
    functionLinenumberEnd: 838
    functionName: gc_abort_mark_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_heaps
    - PyMem_Free
    - _PyObjectStack_Clear
    linkageType: ''
    returnType: void
    signature: "void gc_abort_mark_alive(PyInterpreterState *interp,\n                    struct
      collection_state *state,\n                    gc_mark_args_t *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_IsNullOrInt
      Src: /src/cpython/Python/gc_free_threading.c:844,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc_free_threading.c:845,1
    - Dst: gc_mark_enqueue
      Src: /src/cpython/Python/gc_free_threading.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - args
    - stackref
    argTypes:
    - gc_mark_args_t*
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 841
    functionDepth: 5
    functionLinenumber: 841
    functionLinenumberEnd: 851
    functionName: gc_visit_stackref_mark_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_enqueue
    - PyStackRef_IsNullOrInt
    - PyStackRef_AsPyObjectBorrow
    linkageType: ''
    returnType: int
    signature: int gc_visit_stackref_mark_alive(gc_mark_args_t *args, _PyStackRef
      stackref)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gc_visit_stackref_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:871,1
    - Dst: gc_visit_stackref_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:877,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:885,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - interp
    - args
    argTypes:
    - PyInterpreterState*
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 853
    functionDepth: 6
    functionLinenumber: 853
    functionLinenumberEnd: 887
    functionName: gc_visit_thread_stacks_mark_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_stackref_mark_alive
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: int
    signature: int gc_visit_thread_stacks_mark_alive(PyInterpreterState *interp, gc_mark_args_t
      *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gc_visit_stackref_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:871,1
    - Dst: gc_visit_stackref_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:877,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 857
    functionDepth: 6
    functionLinenumber: 857
    functionLinenumberEnd: 883
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_stackref_mark_alive
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:894,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Python/gc_free_threading.c:901,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:901,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 906
    functionName: queue_untracked_obj_decref
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyThreadState_GET
    - worklist_push
    - _Py_IncRefTotal
    linkageType: ''
    returnType: void
    signature: void queue_untracked_obj_decref(PyObject *op, struct collection_state
      *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObjectStack_Merge
      Src: /src/cpython/Python/gc_free_threading.c:912,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:915,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:917,1
    - Dst: queue_untracked_obj_decref
      Src: /src/cpython/Python/gc_free_threading.c:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tstate
    - state
    argTypes:
    - _PyThreadStateImpl*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 923
    functionName: merge_queued_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _PyObjectStack_Merge
    - queue_untracked_obj_decref
    - merge_refcount
    - _PyObjectStack_Pop
    linkageType: ''
    returnType: void
    signature: void merge_queued_objects(_PyThreadStateImpl *tstate, struct collection_state
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_untracked_obj_decref
      Src: /src/cpython/Python/gc_free_threading.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: queue_freed_object
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - queue_untracked_obj_decref
    linkageType: ''
    returnType: void
    signature: void queue_freed_object(PyObject *obj, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_qsbr_advance
      Src: /src/cpython/Python/gc_free_threading.c:936,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:937,1
    - Dst: _Py_qsbr_quiescent_state
      Src: /src/cpython/Python/gc_free_threading.c:938,1
    - Dst: llist_concat
      Src: /src/cpython/Python/gc_free_threading.c:945,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:948,1
    - Dst: _PyMem_ProcessDelayedNoDealloc
      Src: /src/cpython/Python/gc_free_threading.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 931
    functionDepth: 9
    functionLinenumber: 931
    functionLinenumberEnd: 951
    functionName: process_delayed_frees
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyMem_ProcessDelayedNoDealloc
    - _PyThreadState_GET
    - _Py_qsbr_advance
    - _Py_qsbr_quiescent_state
    - llist_concat
    - _Py_FOR_EACH_TSTATE_END
    linkageType: ''
    returnType: void
    signature: void process_delayed_frees(PyInterpreterState *interp, struct collection_state
      *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_concat
      Src: /src/cpython/Python/gc_free_threading.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 947
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - llist_concat
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:957,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc_free_threading.c:958,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:959,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:960,1
    - Dst: gc_maybe_init_refs
      Src: /src/cpython/Python/gc_free_threading.c:964,1
    - Dst: gc_decref
      Src: /src/cpython/Python/gc_free_threading.c:965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 954
    functionDepth: 3
    functionLinenumber: 954
    functionLinenumberEnd: 968
    functionName: visit_decref
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - gc_is_alive
    - gc_decref
    - gc_maybe_init_refs
    - gc_is_frozen
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: int visit_decref(PyObject *op, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:977,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:982,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc_free_threading.c:987,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc_free_threading.c:989,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:990,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:994,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/gc_free_threading.c:995,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:998,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/gc_free_threading.c:1000,1
    - Dst: gc_maybe_untrack
      Src: /src/cpython/Python/gc_free_threading.c:1001,1
    - Dst: gc_restore_refs
      Src: /src/cpython/Python/gc_free_threading.c:1002,1
    - Dst: gc_maybe_init_refs
      Src: /src/cpython/Python/gc_free_threading.c:1012,1
    - Dst: gc_add_refs
      Src: /src/cpython/Python/gc_free_threading.c:1015,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1020,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 973
    functionDepth: 6
    functionLinenumber: 973
    functionLinenumberEnd: 1022
    functionName: update_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_is_alive
    - gc_clear_unreachable
    - gc_restore_refs
    - gc_add_refs
    - gc_maybe_untrack
    - _PyObject_GC_UNTRACK
    - _PyObject_ASSERT
    - _PyObject_HasDeferredRefcount
    - op_from_block
    - gc_maybe_init_refs
    - Py_TYPE
    - Py_REFCNT
    - _Py_IsImmortal
    linkageType: ''
    returnType: bool
    signature: "bool update_refs(const mi_heap_t *heap, const mi_heap_area_t *area,\n
      \           void *block, size_t block_size, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1027,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1028,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1028,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1029,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - stack
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1033
    functionName: visit_clear_unreachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - gc_clear_unreachable
    - _PyObjectStack_Push
    - gc_is_unreachable
    - _PyObject_ASSERT
    linkageType: ''
    returnType: int
    signature: int visit_clear_unreachable(PyObject *op, void *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1041,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1042,1
    - Dst: _PyObjectStack_Clear
      Src: /src/cpython/Python/gc_free_threading.c:1043,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:1046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1049
    functionName: mark_reachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - traverse
    - _PyObjectStack_Pop
    - Py_TYPE
    - _PyObjectStack_Clear
    linkageType: ''
    returnType: int
    signature: int mark_reachable(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:1056,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1061,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1052
    functionDepth: 3
    functionLinenumber: 1052
    functionLinenumberEnd: 1065
    functionName: validate_alive_bits
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - _PyObject_ASSERT_WITH_MSG
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool validate_alive_bits(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                   void *block, size_t block_size, void *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:1071,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1081,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:1081,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1084,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1084,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:1087,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1088,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc_free_threading.c:1091,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1092,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1067
    functionDepth: 3
    functionLinenumber: 1067
    functionLinenumberEnd: 1097
    functionName: validate_refcounts
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_REF_IS_MERGED
    - _PyObject_ASSERT_WITH_MSG
    - _Py_IsImmortal
    - gc_is_unreachable
    - Py_REFCNT
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool validate_refcounts(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                   void *block, size_t block_size, void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:1103,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1108,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1109,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1109,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1113,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1113,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1114,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc_free_threading.c:1114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1099
    functionDepth: 3
    functionLinenumber: 1099
    functionLinenumberEnd: 1117
    functionName: validate_gc_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - gc_get_refs
    - _PyObject_ASSERT_WITH_MSG
    - gc_is_unreachable
    - _PyObject_ASSERT
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool validate_gc_objects(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                    void *block, size_t block_size, void *args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:1124,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1129,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1129,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1134,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc_free_threading.c:1134,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/gc_free_threading.c:1143,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc_free_threading.c:1145,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1149,1
    - Dst: mark_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1158
    functionName: mark_heap_visitor
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - gc_clear_unreachable
    - gc_get_refs
    - _PyObject_ASSERT_WITH_MSG
    - gc_is_unreachable
    - mark_reachable
    - _PyObject_HasDeferredRefcount
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool mark_heap_visitor(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                  void *block, size_t block_size, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:1164,1
    - Dst: gc_restore_tid
      Src: /src/cpython/Python/gc_free_threading.c:1168,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1169,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1160
    functionDepth: 5
    functionLinenumber: 1160
    functionLinenumberEnd: 1172
    functionName: restore_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_clear_unreachable
    - gc_clear_alive
    - gc_restore_tid
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool restore_refs(const mi_heap_t *heap, const mi_heap_area_t *area,\n
      \            void *block, size_t block_size, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1179
    functionName: has_legacy_finalizer
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int has_legacy_finalizer(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:1185,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1191,1
    - Dst: disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:1194,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:1198,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc_free_threading.c:1200,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1202,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1203,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1206,1
    - Dst: disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:1215,1
    - Dst: gc_restore_tid
      Src: /src/cpython/Python/gc_free_threading.c:1219,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:1220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1181
    functionDepth: 5
    functionLinenumber: 1181
    functionLinenumberEnd: 1223
    functionName: scan_heap_visitor
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_clear_unreachable
    - merge_refcount
    - has_legacy_finalizer
    - gc_restore_tid
    - gc_is_unreachable
    - worklist_push
    - disable_deferred_refcounting
    - gc_clear_alive
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool scan_heap_visitor(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                  void *block, size_t block_size, void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_buffer_len
      Src: /src/cpython/Python/gc_free_threading.c:1233,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1235,1
    - Dst: gc_mark_buffer_avail
      Src: /src/cpython/Python/gc_free_threading.c:1235,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1236,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1239,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:1244,1
    - Dst: gc_mark_span_push
      Src: /src/cpython/Python/gc_free_threading.c:1248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts:
    - condition: (entry.start < entry.end)
      pos:
        line_end: 1238
        line_start: 1238
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (space <= BUFFER_HI)
      pos:
        line_end: 1235
        line_start: 1235
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (space <= gc_mark_buffer_avail(args))
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1253
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1253
    functionName: gc_prime_from_spans
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_len
    - gc_mark_span_push
    - gc_mark_buffer_push
    - gc_mark_buffer_avail
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_prime_from_spans(gc_mark_args_t *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gc_prime_from_spans
      Src: /src/cpython/Python/gc_free_threading.c:1259,1
    - Dst: gc_mark_buffer_len
      Src: /src/cpython/Python/gc_free_threading.c:1266,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1267,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:1269,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:1273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts:
    - condition: (space > 0)
      pos:
        line_end: 1266
        line_start: 1266
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1277
      start: 1255
    functionDepth: 4
    functionLinenumber: 1255
    functionLinenumberEnd: 1277
    functionName: gc_prime_buffer
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Pop
    - gc_mark_buffer_len
    - gc_mark_buffer_push
    - gc_prime_from_spans
    - assert
    linkageType: ''
    returnType: void
    signature: void gc_prime_buffer(gc_mark_args_t *args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_buffer_len
      Src: /src/cpython/Python/gc_free_threading.c:1283,1
    - Dst: gc_prime_buffer
      Src: /src/cpython/Python/gc_free_threading.c:1290,1
    - Dst: gc_mark_buffer_is_empty
      Src: /src/cpython/Python/gc_free_threading.c:1291,1
    - Dst: gc_mark_buffer_pop
      Src: /src/cpython/Python/gc_free_threading.c:1295,1
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:1297,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1301,1
    - Dst: gc_set_alive
      Src: /src/cpython/Python/gc_free_threading.c:1307,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1309,1
    - Dst: gc_mark_traverse_list
      Src: /src/cpython/Python/gc_free_threading.c:1311,1
    - Dst: gc_mark_traverse_tuple
      Src: /src/cpython/Python/gc_free_threading.c:1316,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1320,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1279
    functionDepth: 5
    functionLinenumber: 1279
    functionLinenumberEnd: 1324
    functionName: gc_propagate_alive_prefetch
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - gc_set_alive
    - traverse
    - gc_mark_buffer_len
    - gc_prime_buffer
    - gc_has_bit
    - gc_mark_buffer_is_empty
    - gc_mark_traverse_list
    - gc_mark_traverse_tuple
    - Py_TYPE
    - gc_mark_buffer_pop
    linkageType: ''
    returnType: int
    signature: int gc_propagate_alive_prefetch(gc_mark_args_t *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gc_propagate_alive_prefetch
      Src: /src/cpython/Python/gc_free_threading.c:1330,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:1334,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1338,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1338,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1339,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1339,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1340,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts:
    - condition: (gc_is_alive(op))
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (_PyObject_GC_IS_TRACKED(op))
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1347
      start: 1326
    functionDepth: 6
    functionLinenumber: 1326
    functionLinenumberEnd: 1347
    functionName: gc_propagate_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyObjectStack_Pop
    - gc_is_alive
    - traverse
    - gc_propagate_alive_prefetch
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int gc_propagate_alive(gc_mark_args_t *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1371,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1390,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1392,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1393,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1396,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1397,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1400,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1401,1
    - Dst: gc_visit_thread_stacks_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:1405,1
    - Dst: gc_abort_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:1406,1
    - Dst: gc_propagate_alive
      Src: /src/cpython/Python/gc_free_threading.c:1413,1
    - Dst: gc_abort_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:1414,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1418,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/gc_free_threading.c:1420,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts:
    - condition: (mark_args.spans.size == 0)
      pos:
        line_end: 1417
        line_start: 1417
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (mark_args.stack.head == NULL)
      pos:
        line_end: 1421
        line_start: 1421
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1425
      start: 1365
    functionDepth: 7
    functionLinenumber: 1365
    functionLinenumberEnd: 1425
    functionName: gc_mark_alive_from_roots
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - assert
    - gc_visit_heaps
    - PyMem_Free
    - gc_propagate_alive
    - gc_abort_mark_alive
    - gc_visit_thread_stacks_mark_alive
    - MARK_ENQUEUE
    linkageType: ''
    returnType: int
    signature: "int gc_mark_alive_from_roots(PyInterpreterState *interp,\n                         struct
      collection_state *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1390
    functionName: MARK_ENQUEUE
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_ENQUEUE(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1436,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1441,1
    - Dst: gc_visit_thread_stacks
      Src: /src/cpython/Python/gc_free_threading.c:1445,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1449,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1451,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1457,1
    - Dst: move_legacy_finalizer_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1429
    functionDepth: 6
    functionLinenumber: 1429
    functionLinenumberEnd: 1468
    functionName: deduce_unreachable_heap
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_heaps
    - gc_visit_thread_stacks
    - move_legacy_finalizer_reachable
    linkageType: ''
    returnType: int
    signature: "int deduce_unreachable_heap(PyInterpreterState *interp,\n                        struct
      collection_state *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1476,1
    - Dst: mark_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1477,1
    - Dst: WORKSTACK_FOR_EACH_ITER
      Src: /src/cpython/Python/gc_free_threading.c:1485,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1486,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1487,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1470
    functionDepth: 2
    functionLinenumber: 1470
    functionLinenumberEnd: 1493
    functionName: move_legacy_finalizer_reachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - WORKSTACK_FOR_EACH
    - worklist_remove
    - WORKSTACK_FOR_EACH_ITER
    - gc_is_unreachable
    - mark_reachable
    - worklist_push
    linkageType: ''
    returnType: int
    signature: int move_legacy_finalizer_reachable(struct collection_state *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1537,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc_free_threading.c:1538,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1538,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc_free_threading.c:1544,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1561,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc_free_threading.c:1562,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1563,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1571,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:1577,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1580,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1533
    functionDepth: 4
    functionLinenumber: 1533
    functionLinenumberEnd: 1583
    functionName: find_weakref_callbacks
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyWeakref_ClearRef
    - merge_refcount
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - WORKSTACK_FOR_EACH
    - gc_is_unreachable
    - worklist_push
    - _PyObject_ASSERT
    - Py_TYPE
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: void
    signature: void find_weakref_callbacks(struct collection_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1591,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc_free_threading.c:1592,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc_free_threading.c:1594,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc_free_threading.c:1597,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1597,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc_free_threading.c:1603,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1611,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc_free_threading.c:1612,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1587
    functionDepth: 3
    functionLinenumber: 1587
    functionLinenumberEnd: 1616
    functionName: clear_weakrefs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyWeakref_ClearRef
    - _PyObject_ASSERT
    - WORKSTACK_FOR_EACH
    - PyWeakref_Check
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - Py_TYPE
    - _PyType_SUPPORTS_WEAKREFS
    linkageType: ''
    returnType: void
    signature: void clear_weakrefs(struct collection_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1623,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1624,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc_free_threading.c:1624,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1628,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/gc_free_threading.c:1631,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1618
    functionDepth: 2
    functionLinenumber: 1618
    functionLinenumberEnd: 1642
    functionName: call_weakref_callbacks
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - worklist_pop
    - PyWeakref_Check
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    - _PyObject_ASSERT
    linkageType: ''
    returnType: void
    signature: void call_weakref_callbacks(struct collection_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc_free_threading.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1650
    functionName: get_gc_state
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 14
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: GCState
    signature: 'GCState *

      get_gc_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1653
    functionDepth: 0
    functionLinenumber: 1653
    functionLinenumberEnd: 1658
    functionName: _PyGC_InitState
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyGC_InitState(GCState *gcstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/gc_free_threading.c:1666,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc_free_threading.c:1668,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc_free_threading.c:1671,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc_free_threading.c:1673,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/gc_free_threading.c:1676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1661
    functionDepth: 4
    functionLinenumber: 1661
    functionLinenumberEnd: 1677
    functionName: _PyGC_Init
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyGC_Init(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/gc_free_threading.c:1682,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1684
    functionName: debug_cycle
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - Py_TYPE
    - PySys_FormatStderr
    linkageType: ''
    returnType: void
    signature: void debug_cycle(const char *msg, PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1696,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Python/gc_free_threading.c:1697,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1698,1
    - Dst: _PyGC_SET_FINALIZED
      Src: /src/cpython/Python/gc_free_threading.c:1700,1
    - Dst: finalize
      Src: /src/cpython/Python/gc_free_threading.c:1701,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1702,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1702,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:1702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (!_PyErr_Occurred(_PyThreadState_GET()))
      pos:
        line_end: 1701
        line_start: 1701
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1706
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1706
    functionName: finalize_garbage
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - WORKSTACK_FOR_EACH
    - _PyThreadState_GET
    - _PyGC_FINALIZED
    - finalize
    - _PyGC_SET_FINALIZED
    - Py_TYPE
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void finalize_garbage(struct collection_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:1712,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1715,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1715,1
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1719,1
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1722,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1723,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1723,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1726,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1730,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1737,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc_free_threading.c:1738,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc_free_threading.c:1739,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1743,1
    - Dst: clear
      Src: /src/cpython/Python/gc_free_threading.c:1745,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1746,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1747,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1753,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1714
        line_start: 1714
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1736
        line_start: 1736
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1755
      start: 1709
    functionDepth: 2
    functionLinenumber: 1709
    functionLinenumberEnd: 1755
    functionName: delete_garbage
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - gc_clear_unreachable
    - Py_DECREF
    - PyList_Append
    - _PyErr_Clear
    - worklist_pop
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - gc_is_unreachable
    - _PyObject_ASSERT
    - Py_TYPE
    - _PyErr_Occurred
    - assert
    - clear
    linkageType: ''
    returnType: void
    signature: void delete_garbage(struct collection_state *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1761,1
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1764,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc_free_threading.c:1768,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc_free_threading.c:1771,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc_free_threading.c:1772,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/gc_free_threading.c:1773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1760
        line_start: 1760
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1778
      start: 1757
    functionDepth: 2
    functionLinenumber: 1757
    functionLinenumberEnd: 1778
    functionName: handle_legacy_finalizers
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - has_legacy_finalizer
    - PyList_Append
    - worklist_pop
    - debug_cycle
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: void
    signature: void handle_legacy_finalizers(struct collection_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1781
    functionDepth: 0
    functionLinenumber: 1781
    functionLinenumberEnd: 1785
    functionName: show_stats_each_generations
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void show_stats_each_generations(GCState *gcstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1791,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - op
    - data
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1788
    functionDepth: 2
    functionLinenumber: 1788
    functionLinenumberEnd: 1795
    functionName: visit_decref_unreachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - gc_is_unreachable
    linkageType: ''
    returnType: int
    signature: int visit_decref_unreachable(PyObject *op, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1803,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/gc_free_threading.c:1803,1
    - Dst: PyStackRef_IsDeferred
      Src: /src/cpython/Python/gc_free_threading.c:1804,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/gc_free_threading.c:1807,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc_free_threading.c:1807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ref
    - visit
    - arg
    argTypes:
    - _PyStackRef*
    - visitproc
    - void*
    assertStmts:
    - condition: (!PyStackRef_IsTaggedInt(*ref))
      pos:
        line_end: 1802
        line_start: 1802
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1810
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1810
    functionName: _PyGC_VisitStackRef
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsDeferred
    - Py_VISIT
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsTaggedInt
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyGC_VisitStackRef(_PyStackRef *ref, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Python/gc_free_threading.c:1815,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Python/gc_free_threading.c:1818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - frame
    - visit
    - arg
    argTypes:
    - _PyInterpreterFrame*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1821
    functionName: _PyGC_VisitFrameStack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyFrame_GetLocalsArray
    - _Py_VISIT_STACKREF
    linkageType: ''
    returnType: int
    signature: int _PyGC_VisitFrameStack(_PyInterpreterFrame *frame, visitproc visit,
      void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WORKSTACK_FOR_EACH_ITER
      Src: /src/cpython/Python/gc_free_threading.c:1832,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1833,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1833,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1834,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:1834,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1836,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1839,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1840,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1841,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1849,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1850,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Python/gc_free_threading.c:1851,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1860,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1861,1
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1866,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1870,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1872,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1876,1
    - Dst: mark_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1877,1
    - Dst: WORKSTACK_FOR_EACH_ITER
      Src: /src/cpython/Python/gc_free_threading.c:1885,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1886,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1887,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:1887,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1888,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:1889,1
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1895,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1896,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1896,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1897,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1897,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1898,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1899,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:1899,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (gc_is_unreachable(op))
      pos:
        line_end: 1832
        line_start: 1832
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (_Py_REF_IS_MERGED(op->ob_ref_shared))
      pos:
        line_end: 1833
        line_start: 1833
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1904
      start: 1824
    functionDepth: 4
    functionLinenumber: 1824
    functionLinenumberEnd: 1904
    functionName: handle_resurrected_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _Py_REF_IS_MERGED
    - gc_clear_unreachable
    - traverse
    - merge_refcount
    - WORKSTACK_FOR_EACH
    - WORKSTACK_FOR_EACH_ITER
    - worklist_remove
    - _Py_SetImmortal
    - gc_is_unreachable
    - worklist_push
    - mark_reachable
    - _PyObject_ASSERT
    - Py_TYPE
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: int
    signature: int handle_resurrected_objects(struct collection_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1915,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1915,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1924,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:1924,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:1926,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/gc_free_threading.c:1927,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1932,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/gc_free_threading.c:1938,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:1940,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1941,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:1947,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/gc_free_threading.c:1948,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc_free_threading.c:1949,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/gc_free_threading.c:1950,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1952,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1960,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:1961,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1962,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1962,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - tstate
    - phase
    - generation
    - collected
    - uncollectable
    argTypes:
    - PyThreadState*
    - char*
    - int
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1961
        line_start: 1961
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1914
        line_start: 1914
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (PyList_CheckExact(gcstate->callbacks))
      pos:
        line_end: 1923
        line_start: 1923
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1963
      start: 1910
    functionDepth: 2
    functionLinenumber: 1910
    functionLinenumberEnd: 1963
    functionName: invoke_gc_callback
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - PyList_CheckExact
    - Py_XDECREF
    - Py_INCREF
    - Py_BuildValue
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - PyObject_Vectorcall
    - PyUnicode_FromString
    - PyErr_FormatUnraisable
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: "void invoke_gc_callback(PyThreadState *tstate, const char *phase,\n
      \                  int generation, Py_ssize_t collected,\n                   Py_ssize_t
      uncollectable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1969,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1970,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - worklist
    argTypes:
    - struct worklist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 1973
    functionName: cleanup_worklist
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_clear_unreachable
    - Py_DECREF
    - worklist_pop
    linkageType: ''
    returnType: void
    signature: void cleanup_worklist(struct worklist *worklist)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/cpython/Python/gc_free_threading.c:1984,1
    - Dst: GetProcessMemoryInfo
      Src: /src/cpython/Python/gc_free_threading.c:1991,1
    - Dst: fopen
      Src: /src/cpython/Python/gc_free_threading.c:2000,1
    - Dst: fgets
      Src: /src/cpython/Python/gc_free_threading.c:2009,1
    - Dst: strncmp
      Src: /src/cpython/Python/gc_free_threading.c:2010,1
    - Dst: sscanf
      Src: /src/cpython/Python/gc_free_threading.c:2011,1
    - Dst: strncmp
      Src: /src/cpython/Python/gc_free_threading.c:2013,1
    - Dst: sscanf
      Src: /src/cpython/Python/gc_free_threading.c:2014,1
    - Dst: fclose
      Src: /src/cpython/Python/gc_free_threading.c:2020,1
    - Dst: task_info
      Src: /src/cpython/Python/gc_free_threading.c:2034,1
    - Dst: mach_task_self
      Src: /src/cpython/Python/gc_free_threading.c:2034,1
    - Dst: sysconf
      Src: /src/cpython/Python/gc_free_threading.c:2043,1
    - Dst: kvm_openfiles
      Src: /src/cpython/Python/gc_free_threading.c:2051,1
    - Dst: getpid
      Src: /src/cpython/Python/gc_free_threading.c:2058,1
    - Dst: kvm_getprocs
      Src: /src/cpython/Python/gc_free_threading.c:2060,1
    - Dst: kvm_close
      Src: /src/cpython/Python/gc_free_threading.c:2062,1
    - Dst: kvm_close
      Src: /src/cpython/Python/gc_free_threading.c:2077,1
    - Dst: sysconf
      Src: /src/cpython/Python/gc_free_threading.c:2082,1
    - Dst: getpid
      Src: /src/cpython/Python/gc_free_threading.c:2088,1
    - Dst: sysctl
      Src: /src/cpython/Python/gc_free_threading.c:2098,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 2114
    functionName: get_process_mem_usage
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - sysctl
    - sscanf
    - strncmp
    - kvm_getprocs
    - fopen
    - fgets
    - GetCurrentProcess
    - GetProcessMemoryInfo
    - kvm_close
    - mach_task_self
    - task_info
    - kvm_openfiles
    - sysconf
    - getpid
    - fclose
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_process_mem_usage(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_process_mem_usage
      Src: /src/cpython/Python/gc_free_threading.c:2119,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2125,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2135,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/gc_free_threading.c:2136,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/gc_free_threading.c:2145,1
    - Dst: _Py_atomic_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2146,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2147,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/gc_free_threading.c:2149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2116
    functionDepth: 8
    functionLinenumber: 2116
    functionLinenumberEnd: 2152
    functionName: gc_should_collect_mem_usage
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - Py_MAX
    - _Py_atomic_exchange_int
    - get_process_mem_usage
    - PyMutex_Lock
    - PyMutex_Unlock
    - _Py_atomic_store_ssize_relaxed
    linkageType: ''
    returnType: bool
    signature: bool gc_should_collect_mem_usage(GCState *gcstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2157,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2159,1
    - Dst: gc_should_collect_mem_usage
      Src: /src/cpython/Python/gc_free_threading.c:2173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2154
    functionDepth: 9
    functionLinenumber: 2154
    functionLinenumberEnd: 2174
    functionName: gc_should_collect
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_should_collect_mem_usage
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: bool
    signature: bool gc_should_collect(GCState *gcstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int
      Src: /src/cpython/Python/gc_free_threading.c:2187,1
    - Dst: gc_should_collect
      Src: /src/cpython/Python/gc_free_threading.c:2190,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2191,1
    - Dst: _Py_ScheduleGC
      Src: /src/cpython/Python/gc_free_threading.c:2193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2176
    functionDepth: 10
    functionLinenumber: 2176
    functionLinenumberEnd: 2196
    functionName: record_allocation
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_ScheduleGC
    - _Py_atomic_add_int
    - gc_should_collect
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: void record_allocation(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int
      Src: /src/cpython/Python/gc_free_threading.c:2206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2198
    functionDepth: 0
    functionLinenumber: 2198
    functionLinenumberEnd: 2209
    functionName: record_deallocation
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int
    linkageType: ''
    returnType: void
    signature: void record_deallocation(PyThreadState *tstate)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2214,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2231,1
    - Dst: _PyObject_MergePerThreadRefcounts
      Src: /src/cpython/Python/gc_free_threading.c:2238,1
    - Dst: merge_queued_objects
      Src: /src/cpython/Python/gc_free_threading.c:2241,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:2243,1
    - Dst: process_delayed_frees
      Src: /src/cpython/Python/gc_free_threading.c:2245,1
    - Dst: gc_mark_alive_from_roots
      Src: /src/cpython/Python/gc_free_threading.c:2257,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2259,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2260,1
    - Dst: deduce_unreachable_heap
      Src: /src/cpython/Python/gc_free_threading.c:2267,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2269,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2270,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2276,1
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:2282,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc_free_threading.c:2283,1
    - Dst: find_weakref_callbacks
      Src: /src/cpython/Python/gc_free_threading.c:2291,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2292,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2295,1
    - Dst: call_weakref_callbacks
      Src: /src/cpython/Python/gc_free_threading.c:2299,1
    - Dst: finalize_garbage
      Src: /src/cpython/Python/gc_free_threading.c:2300,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2302,1
    - Dst: handle_resurrected_objects
      Src: /src/cpython/Python/gc_free_threading.c:2304,1
    - Dst: _PyGC_ClearAllFreeLists
      Src: /src/cpython/Python/gc_free_threading.c:2306,1
    - Dst: clear_weakrefs
      Src: /src/cpython/Python/gc_free_threading.c:2308,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2310,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2313,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2314,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2315,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2316,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2317,1
    - Dst: delete_garbage
      Src: /src/cpython/Python/gc_free_threading.c:2324,1
    - Dst: get_process_mem_usage
      Src: /src/cpython/Python/gc_free_threading.c:2328,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2329,1
    - Dst: handle_legacy_finalizers
      Src: /src/cpython/Python/gc_free_threading.c:2332,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - interp
    - state
    - generation
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2211
    functionDepth: 10
    functionLinenumber: 2211
    functionLinenumberEnd: 2333
    functionName: gc_collect_internal
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - deduce_unreachable_heap
    - gc_visit_heaps
    - get_process_mem_usage
    - merge_queued_objects
    - WORKSTACK_FOR_EACH
    - process_delayed_frees
    - cleanup_worklist
    - gc_mark_alive_from_roots
    - finalize_garbage
    - _Py_FOR_EACH_TSTATE_END
    - clear_weakrefs
    - _Py_atomic_store_ssize_relaxed
    - call_weakref_callbacks
    - find_weakref_callbacks
    - handle_legacy_finalizers
    - PyErr_NoMemory
    - _PyObject_MergePerThreadRefcounts
    - delete_garbage
    - debug_cycle
    - _PyGC_ClearAllFreeLists
    - _PyEval_StopTheWorld
    - handle_resurrected_objects
    linkageType: ''
    returnType: void
    signature: void gc_collect_internal(PyInterpreterState *interp, struct collection_state
      *state, int generation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_MergePerThreadRefcounts
      Src: /src/cpython/Python/gc_free_threading.c:2238,1
    - Dst: merge_queued_objects
      Src: /src/cpython/Python/gc_free_threading.c:2241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2242
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - merge_queued_objects
    - _PyObject_MergePerThreadRefcounts
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2347,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2348,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:2348,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2351,1
    - Dst: gc_should_collect
      Src: /src/cpython/Python/gc_free_threading.c:2356,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/gc_free_threading.c:2358,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2362,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc_free_threading.c:2369,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc_free_threading.c:2372,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc_free_threading.c:2376,1
    - Dst: show_stats_each_generations
      Src: /src/cpython/Python/gc_free_threading.c:2377,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/gc_free_threading.c:2379,1
    - Dst: PyDTrace_GC_START_ENABLED
      Src: /src/cpython/Python/gc_free_threading.c:2382,1
    - Dst: PyDTrace_GC_START
      Src: /src/cpython/Python/gc_free_threading.c:2383,1
    - Dst: gc_collect_internal
      Src: /src/cpython/Python/gc_free_threading.c:2394,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/gc_free_threading.c:2401,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Python/gc_free_threading.c:2402,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc_free_threading.c:2403,1
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/gc_free_threading.c:2410,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:2412,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc_free_threading.c:2414,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2417,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc_free_threading.c:2427,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc_free_threading.c:2430,1
    - Dst: PyDTrace_GC_DONE_ENABLED
      Src: /src/cpython/Python/gc_free_threading.c:2436,1
    - Dst: PyDTrace_GC_DONE
      Src: /src/cpython/Python/gc_free_threading.c:2437,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc_free_threading.c:2441,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2444,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:2444,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/gc_free_threading.c:2445,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - tstate
    - generation
    - reason
    argTypes:
    - PyThreadState*
    - int
    - _PyGC_Reason
    assertStmts:
    - condition: (generation >= 0 && generation < NUM_GENERATIONS)
      pos:
        line_end: 2361
        line_start: 2361
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2443
        line_start: 2443
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2347
        line_start: 2347
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 2346
        line_start: 2346
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 2447
      start: 2337
    functionDepth: 11
    functionLinenumber: 2337
    functionLinenumberEnd: 2447
    functionName: gc_collect_main
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - invoke_gc_callback
    - show_stats_each_generations
    - _PyErr_Clear
    - PyErr_FormatUnraisable
    - PyDTrace_GC_DONE
    - gc_should_collect
    - PyDTrace_GC_DONE_ENABLED
    - _Py_atomic_store_int
    - PyTime_PerfCounterRaw
    - _Py_atomic_compare_exchange_int
    - GC_STAT_ADD
    - PyDTrace_GC_START_ENABLED
    - PySys_WriteStderr
    - PyDTrace_GC_START
    - PyTime_AsSecondsDouble
    - gc_collect_internal
    - _PyObject_ClearFreeLists
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_collect_main(PyThreadState *tstate, int generation, _PyGC_Reason
      reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/gc_free_threading.c:2452,1
    - Dst: _PyObjectStack_Size
      Src: /src/cpython/Python/gc_free_threading.c:2452,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:2455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:2456,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:2463,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2464,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2464,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/gc_free_threading.c:2465,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2467,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - stack
    argTypes:
    - _PyObjectStack*
    assertStmts:
    - condition: (idx < PyList_GET_SIZE(list))
      pos:
        line_end: 2463
        line_start: 2463
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (idx == PyList_GET_SIZE(list))
      pos:
        line_end: 2466
        line_start: 2466
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 2469
      start: 2449
    functionDepth: 4
    functionLinenumber: 2449
    functionLinenumberEnd: 2469
    functionName: list_from_object_stack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyObjectStack_Pop
    - Py_DECREF
    - PyList_GET_SIZE
    - PyList_SET_ITEM
    - _PyObjectStack_Size
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_from_object_stack(_PyObjectStack *stack)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2482,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/gc_free_threading.c:2483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2477
    functionDepth: 1
    functionLinenumber: 2477
    functionLinenumberEnd: 2488
    functionName: referrersvisit
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int referrersvisit(PyObject* obj, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:2494,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2509,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:2510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/gc_free_threading.c:2510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2490
    functionDepth: 3
    functionLinenumber: 2490
    functionLinenumberEnd: 2516
    functionName: visit_get_referrers
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyObjectStack_Push
    - Py_TYPE
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool visit_get_referrers(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                    void *block, size_t block_size, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2525,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2526,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2527,1
    - Dst: list_from_object_stack
      Src: /src/cpython/Python/gc_free_threading.c:2529,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2531,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - objs
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2518
    functionDepth: 6
    functionLinenumber: 2518
    functionLinenumberEnd: 2535
    functionName: _PyGC_GetReferrers
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_visit_heaps
    - list_from_object_stack
    - _PyEval_StopTheWorld
    - Py_CLEAR
    - PyErr_NoMemory
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:2546,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:2557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/gc_free_threading.c:2557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2542
    functionDepth: 3
    functionLinenumber: 2542
    functionLinenumberEnd: 2561
    functionName: visit_get_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyObjectStack_Push
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool visit_get_objects(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                  void *block, size_t block_size, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2570,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2571,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2572,1
    - Dst: list_from_object_stack
      Src: /src/cpython/Python/gc_free_threading.c:2574,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2576,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - generation
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2563
    functionDepth: 6
    functionLinenumber: 2563
    functionLinenumberEnd: 2580
    functionName: _PyGC_GetObjects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_visit_heaps
    - list_from_object_stack
    - _PyEval_StopTheWorld
    - Py_CLEAR
    - PyErr_NoMemory
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGC_GetObjects(PyInterpreterState *interp, int generation)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:2586,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:2587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2582
    functionDepth: 3
    functionLinenumber: 2582
    functionLinenumberEnd: 2591
    functionName: visit_freeze
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_unreachable
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool visit_freeze(const mi_heap_t *heap, const mi_heap_area_t *area,\n
      \            void *block, size_t block_size, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2597,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2598,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2600,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2593
    functionDepth: 6
    functionLinenumber: 2593
    functionLinenumberEnd: 2602
    functionName: _PyGC_Freeze
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - get_gc_state
    - gc_visit_heaps
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: void
    signature: void _PyGC_Freeze(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:2608,1
    - Dst: gc_clear_bit
      Src: /src/cpython/Python/gc_free_threading.c:2610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2604
    functionDepth: 3
    functionLinenumber: 2604
    functionLinenumberEnd: 2613
    functionName: visit_unfreeze
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_clear_bit
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool visit_unfreeze(const mi_heap_t *heap, const mi_heap_area_t *area,\n
      \              void *block, size_t block_size, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2619,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2620,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2622,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2615
    functionDepth: 6
    functionLinenumber: 2615
    functionLinenumberEnd: 2624
    functionName: _PyGC_Unfreeze
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - get_gc_state
    - gc_visit_heaps
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: void
    signature: void _PyGC_Unfreeze(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:2635,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:2636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2631
    functionDepth: 3
    functionLinenumber: 2631
    functionLinenumberEnd: 2641
    functionName: visit_count_frozen
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_frozen
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool visit_count_frozen(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                   void *block, size_t block_size, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2647,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2648,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2643
    functionDepth: 6
    functionLinenumber: 2643
    functionLinenumberEnd: 2651
    functionName: _PyGC_GetFreezeCount
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyEval_StartTheWorld
    - gc_visit_heaps
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyGC_GetFreezeCount(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2657,1
    - Dst: _Py_atomic_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2659
    functionName: PyGC_Enable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 3
    functionsReached:
    - get_gc_state
    - _Py_atomic_exchange_int
    linkageType: ''
    returnType: int
    signature: int PyGC_Enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2664,1
    - Dst: _Py_atomic_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2666
    functionName: PyGC_Disable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 3
    functionsReached:
    - get_gc_state
    - _Py_atomic_exchange_int
    linkageType: ''
    returnType: int
    signature: int PyGC_Disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2671,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2668
    functionDepth: 0
    functionLinenumber: 2668
    functionLinenumberEnd: 2673
    functionName: PyGC_IsEnabled
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - get_gc_state
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: int
    signature: int PyGC_IsEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2679,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2682,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2687,1
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc_free_threading.c:2688,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2676
    functionDepth: 12
    functionLinenumber: 2676
    functionLinenumberEnd: 2692
    functionName: PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 5
    functionsReached:
    - _PyErr_SetRaisedException
    - _Py_atomic_load_int_relaxed
    - gc_collect_main
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyGC_Collect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc_free_threading.c:2697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - generation
    - reason
    argTypes:
    - PyThreadState*
    - int
    - _PyGC_Reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2694
    functionDepth: 12
    functionLinenumber: 2694
    functionLinenumberEnd: 2698
    functionName: _PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 4
    functionsReached:
    - gc_collect_main
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyGC_Collect(PyThreadState *tstate, int generation, _PyGC_Reason
      reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc_free_threading.c:2709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2700
    functionDepth: 12
    functionLinenumber: 2700
    functionLinenumberEnd: 2710
    functionName: _PyGC_CollectNoFail
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_collect_main
    linkageType: ''
    returnType: void
    signature: void _PyGC_CollectNoFail(PyThreadState *tstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2717,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc_free_threading.c:2729,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2731,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2733,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/gc_free_threading.c:2737,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/gc_free_threading.c:2738,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2739,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc_free_threading.c:2743,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/gc_free_threading.c:2745,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:2748,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:2749,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2712
    functionDepth: 5
    functionLinenumber: 2712
    functionLinenumberEnd: 2752
    functionName: _PyGC_DumpShutdownStats
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_WarnExplicitFormat
    - PyObject_Repr
    - PyList_GET_SIZE
    - PyUnicode_EncodeFSDefault
    - PyErr_FormatUnraisable
    - PySys_WriteStderr
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void _PyGC_DumpShutdownStats(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2759,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2755
    functionDepth: 1
    functionLinenumber: 2755
    functionLinenumberEnd: 2765
    functionName: _PyGC_Fini
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyGC_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc_free_threading.c:2773,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Python/gc_free_threading.c:2774,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc_free_threading.c:2775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - parent_raw
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2770
    functionDepth: 2
    functionLinenumber: 2770
    functionLinenumberEnd: 2779
    functionName: visit_validate
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsFreed
    - _PyObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    linkageType: ''
    returnType: int
    signature: int visit_validate(PyObject *op, void *parent_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc_free_threading.c:2789,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2790,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc_free_threading.c:2791,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/gc_free_threading.c:2795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2800,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:2801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2786
    functionDepth: 1
    functionLinenumber: 2786
    functionLinenumberEnd: 2803
    functionName: PyObject_GC_Track
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 69
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - traverse
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_GC_TRACK
    - _PyObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Track(void *op_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc_free_threading.c:2808,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2811,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc_free_threading.c:2812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2805
    functionDepth: 1
    functionLinenumber: 2805
    functionLinenumberEnd: 2814
    functionName: PyObject_GC_UnTrack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 159
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyObject_CAST
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_UnTrack(void *op_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc_free_threading.c:2819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2816
    functionDepth: 1
    functionLinenumber: 2816
    functionLinenumberEnd: 2820
    functionName: PyObject_IS_GC
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 13
    functionsReached:
    - _PyObject_IS_GC
    linkageType: ''
    returnType: int
    signature: int PyObject_IS_GC(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_eval_breaker_bit_is_set
      Src: /src/cpython/Python/gc_free_threading.c:2825,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/gc_free_threading.c:2827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2822
    functionDepth: 1
    functionLinenumber: 2822
    functionLinenumberEnd: 2829
    functionName: _Py_ScheduleGC
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _Py_set_eval_breaker_bit
    - _Py_eval_breaker_bit_is_set
    linkageType: ''
    returnType: void
    signature: void _Py_ScheduleGC(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: record_allocation
      Src: /src/cpython/Python/gc_free_threading.c:2834,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2831
    functionDepth: 11
    functionLinenumber: 2831
    functionLinenumberEnd: 2835
    functionName: _PyObject_GC_Link
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - record_allocation
    linkageType: ''
    returnType: void
    signature: void _PyObject_GC_Link(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGC_IsEnabled
      Src: /src/cpython/Python/gc_free_threading.c:2840,1
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc_free_threading.c:2843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2837
    functionDepth: 12
    functionLinenumber: 2837
    functionLinenumberEnd: 2844
    functionName: _Py_RunGC
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - gc_collect_main
    - PyGC_IsEnabled
    linkageType: ''
    returnType: void
    signature: void _Py_RunGC(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2849,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2851,1
    - Dst: _PyObject_MallocWithType
      Src: /src/cpython/Python/gc_free_threading.c:2854,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2856,1
    - Dst: record_allocation
      Src: /src/cpython/Python/gc_free_threading.c:2863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tp
    - basicsize
    - presize
    argTypes:
    - PyTypeObject*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2846
    functionDepth: 11
    functionLinenumber: 2846
    functionLinenumberEnd: 2865
    functionName: gc_alloc
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_NoMemory
    - _PyObject_MallocWithType
    - record_allocation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_alloc(PyTypeObject *tp, size_t basicsize, size_t presize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc_free_threading.c:2870,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2871,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/gc_free_threading.c:2872,1
    - Dst: _PyInlineValuesSize
      Src: /src/cpython/Python/gc_free_threading.c:2873,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc_free_threading.c:2875,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc_free_threading.c:2879,1
    - Dst: _PyObject_InitInlineValues
      Src: /src/cpython/Python/gc_free_threading.c:2881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2867
    functionDepth: 2
    functionLinenumber: 2867
    functionLinenumberEnd: 2884
    functionName: _PyObject_GC_New
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_SIZE
    - _PyObject_InitInlineValues
    - _PyInlineValuesSize
    - _PyType_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GC_New(PyTypeObject *tp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/gc_free_threading.c:2892,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc_free_threading.c:2895,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2896,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc_free_threading.c:2897,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Python/gc_free_threading.c:2901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2886
    functionDepth: 1
    functionLinenumber: 2886
    functionLinenumberEnd: 2903
    functionName: _PyObject_GC_NewVar
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_VAR_SIZE
    - _PyObject_InitVar
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_GC_NewVar(PyTypeObject *tp, Py_ssize_t nitems)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc_free_threading.c:2908,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2909,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc_free_threading.c:2910,1
    - Dst: memset
      Src: /src/cpython/Python/gc_free_threading.c:2914,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc_free_threading.c:2915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - extra_size
    argTypes:
    - PyTypeObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2905
    functionDepth: 1
    functionLinenumber: 2905
    functionLinenumberEnd: 2917
    functionName: PyUnstable_Object_GC_NewWithExtraData
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyObject_Init
    - memset
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *tp, size_t extra_size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2922,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2922,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc_free_threading.c:2923,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:2924,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2924,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2926,1
    - Dst: _PyObject_ReallocWithType
      Src: /src/cpython/Python/gc_free_threading.c:2929,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2929,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2931,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - op
    - nitems
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2936
    functionName: _PyObject_GC_Resize
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - Py_SET_SIZE
    - _PyType_PreHeaderSize
    - _PyObject_VAR_SIZE
    - _PyObject_ReallocWithType
    - _PyObject_ASSERT
    - Py_TYPE
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc_free_threading.c:2941,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2942,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc_free_threading.c:2943,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2945,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc_free_threading.c:2946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2950,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2952,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2954,1
    - Dst: record_deallocation
      Src: /src/cpython/Python/gc_free_threading.c:2958,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2958,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/gc_free_threading.c:2959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2938
    functionDepth: 2
    functionLinenumber: 2938
    functionLinenumberEnd: 2960
    functionName: PyObject_GC_Del
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 57
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - PyErr_WarnExplicitFormat
    - PyObject_Free
    - PyErr_GetRaisedException
    - _PyType_PreHeaderSize
    - _PyObject_GC_UNTRACK
    - PyErr_FormatUnraisable
    - _PyThreadState_GET
    - record_deallocation
    - Py_TYPE
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Del(void *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 2966
    functionName: PyObject_GC_IsTracked
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 5
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsTracked(PyObject* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Python/gc_free_threading.c:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2968
    functionDepth: 1
    functionLinenumber: 2968
    functionLinenumberEnd: 2972
    functionName: PyObject_GC_IsFinalized
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyGC_FINALIZED
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsFinalized(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block
      Src: /src/cpython/Python/gc_free_threading.c:2984,1
    - Dst: struct custom_visitor_args*::callback
      Src: /src/cpython/Python/gc_free_threading.c:2990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - heap
    - area
    - block
    - block_size
    - args
    argTypes:
    - mi_heap_t*
    - mi_heap_area_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2980
    functionDepth: 3
    functionLinenumber: 2980
    functionLinenumberEnd: 2995
    functionName: custom_visitor_wrapper
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - struct custom_visitor_args*::callback
    - op_from_block
    linkageType: ''
    returnType: bool
    signature: "bool custom_visitor_wrapper(const mi_heap_t *heap, const mi_heap_area_t
      *area,\n                       void *block, size_t block_size, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:3005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - interp
    - callback
    - arg
    argTypes:
    - PyInterpreterState*
    - gcvisitobjects_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2997
    functionDepth: 6
    functionLinenumber: 2997
    functionLinenumberEnd: 3006
    functionName: _PyGC_VisitObjectsWorldStopped
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_visit_heaps
    linkageType: ''
    returnType: void
    signature: "void _PyGC_VisitObjectsWorldStopped(PyInterpreterState *interp,\n
      \                              gcvisitobjects_t callback, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc_free_threading.c:3011,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:3012,1
    - Dst: _PyGC_VisitObjectsWorldStopped
      Src: /src/cpython/Python/gc_free_threading.c:3013,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:3014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - callback
    - arg
    argTypes:
    - gcvisitobjects_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3015
      start: 3008
    functionDepth: 7
    functionLinenumber: 3008
    functionLinenumberEnd: 3015
    functionName: PyUnstable_GC_VisitObjects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _PyEval_StartTheWorld
    - _PyInterpreterState_GET
    - _PyGC_VisitObjectsWorldStopped
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: void
    signature: void PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/gc_free_threading.c:3029,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:3031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 3024
    functionDepth: 3
    functionLinenumber: 3024
    functionLinenumberEnd: 3032
    functionName: _PyGC_ClearAllFreeLists
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _Py_FOR_EACH_TSTATE_END
    - _PyObject_ClearFreeLists
    linkageType: ''
    returnType: void
    signature: void _PyGC_ClearAllFreeLists(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/gc_free_threading.c:3029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 3027
    functionDepth: 3
    functionLinenumber: 3027
    functionLinenumberEnd: 3030
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_ClearFreeLists
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: check_interp
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_interp(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/_warnings.c:42,1
    - Dst: check_interp
      Src: /src/cpython/Python/_warnings.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: get_current_interp
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 9
    functionsReached:
    - _PyInterpreterState_GET
    - check_interp
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      get_current_interp(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/_warnings.c:49,1
    - Dst: check_interp
      Src: /src/cpython/Python/_warnings.c:51,1
    - Dst: check_interp
      Src: /src/cpython/Python/_warnings.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: get_current_tstate
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - check_interp
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      get_current_tstate(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: warnings_get_state
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WarningsState
    signature: 'WarningsState *

      warnings_get_state(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:68,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:69,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:70,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: warnings_clear_state
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void warnings_clear_state(WarningsState *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/_warnings.c:82,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:87,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/_warnings.c:91,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/_warnings.c:92,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - category
    - action_str
    - modname
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 10
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: create_filter
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - PyUnicode_InternFromString
    - Py_DECREF
    - Py_NewRef
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_filter(PyObject *category, PyObject *action_str, const char *modname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/_warnings.c:103,1
    - Dst: PyList_New
      Src: /src/cpython/Python/_warnings.c:106,1
    - Dst: ADD
      Src: /src/cpython/Python/_warnings.c:115,1
    - Dst: ADD
      Src: /src/cpython/Python/_warnings.c:116,1
    - Dst: ADD
      Src: /src/cpython/Python/_warnings.c:117,1
    - Dst: ADD
      Src: /src/cpython/Python/_warnings.c:118,1
    - Dst: ADD
      Src: /src/cpython/Python/_warnings.c:119,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 130
    functionName: init_filters
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - ADD
    - PyList_GET_ITEM
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      init_filters(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - ACTION
    - ','
    - MODNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: ADD
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD(TYPE, ACTION, MODNAME)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_filters
      Src: /src/cpython/Python/_warnings.c:139,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/_warnings.c:146,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:153,1
    - Dst: PyContextVar_New
      Src: /src/cpython/Python/_warnings.c:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 133
    functionDepth: 10
    functionLinenumber: 133
    functionLinenumberEnd: 168
    functionName: _PyWarnings_InitState
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyContextVar_New
    - PyUnicode_FromString
    - PyDict_New
    - init_filters
    linkageType: ''
    returnType: int
    signature: int _PyWarnings_InitState(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/_warnings.c:184,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/_warnings.c:185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:186,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/_warnings.c:193,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:193,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/_warnings.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - interp
    - obj
    - arg
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: check_matched
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - PyObject_IsTrue
    - Py_DECREF
    - PyErr_Occurred
    - PyUnicode_CheckExact
    - _Py_ID
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: int
    signature: int check_matched(PyInterpreterState *interp, PyObject *obj, PyObject
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - interp
    - ','
    - ATTR
    - ','
    - try_import
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: GET_WARNINGS_ATTR
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WARNINGS_ATTR(interp, ATTR, try_import)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Python/_warnings.c:215,1
    - Dst: PyImport_Import
      Src: /src/cpython/Python/_warnings.c:216,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:216,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/_warnings.c:220,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/_warnings.c:221,1
    - Dst: _PyImport_GetModules
      Src: /src/cpython/Python/_warnings.c:231,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/_warnings.c:234,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:234,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/_warnings.c:239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - interp
    - attr
    - try_import
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 209
    functionDepth: 12
    functionLinenumber: 209
    functionLinenumberEnd: 242
    functionName: get_warnings_attr
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyImport_GetModules
    - PyImport_Import
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - _Py_IsInterpreterFinalizing
    - PyErr_ExceptionMatches
    - PyImport_GetModule
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnings_attr(PyInterpreterState *interp, PyObject *attr, int try_import)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:247,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:248,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Python/_warnings.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: warnings_lock
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_Lock
    - warnings_get_state
    - assert
    linkageType: ''
    returnType: void
    signature: void warnings_lock(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:255,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:256,1
    - Dst: _PyRecursiveMutex_TryUnlock
      Src: /src/cpython/Python/_warnings.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: warnings_unlock
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_get_state
    - assert
    - _PyRecursiveMutex_TryUnlock
    linkageType: ''
    returnType: int
    signature: int warnings_unlock(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Python/_warnings.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: warnings_lock_held
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyMutex_IsLocked
    linkageType: ''
    returnType: bool
    signature: bool warnings_lock_held(WarningsState *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:269,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:270,1
    - Dst: PyContextVar_CheckExact
      Src: /src/cpython/Python/_warnings.c:270,1
    - Dst: PyContextVar_Get
      Src: /src/cpython/Python/_warnings.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyContextVar_CheckExact(st->context))
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 10
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: get_warnings_context
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_get_state
    - PyContextVar_Get
    - assert
    - PyContextVar_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnings_context(PyInterpreterState *interp)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_warnings_context
      Src: /src/cpython/Python/_warnings.c:284,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/_warnings.c:291,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:292,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/_warnings.c:296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 281
    functionDepth: 11
    functionLinenumber: 281
    functionLinenumberEnd: 303
    functionName: get_warnings_context_filters
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyErr_SetString
    - PyList_Check
    - PyObject_GetAttr
    - get_warnings_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnings_context_filters(PyInterpreterState *interp)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:309,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:310,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:312,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:316,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/_warnings.c:320,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 326
    functionName: get_warnings_filters
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - GET_WARNINGS_ATTR
    - PyErr_SetString
    - PyList_Check
    - Py_SETREF
    - warnings_get_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnings_filters(PyInterpreterState *interp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_current_interp
      Src: /src/cpython/Python/_warnings.c:337,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: warnings_acquire_lock_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - get_current_interp
    - warnings_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_acquire_lock_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_current_interp
      Src: /src/cpython/Python/_warnings.c:354,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:358,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: warnings_release_lock_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - warnings_unlock
    - get_current_interp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_release_lock_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:368,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:369,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:371,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:371,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:373,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:375,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:377,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/_warnings.c:380,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:381,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:385,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Python/_warnings.c
    - condition: (warnings_lock_held(st))
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Python/_warnings.c
    - condition: (st->once_registry)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 390
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 390
    functionName: get_once_registry
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - GET_WARNINGS_ATTR
    - warnings_lock_held
    - Py_SETREF
    - PyErr_Format
    - warnings_get_state
    - PyDict_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_once_registry(PyInterpreterState *interp)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:396,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:397,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:399,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:399,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:401,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:403,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:406,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:409,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:410,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:414,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/cpython/Python/_warnings.c
    - condition: (warnings_lock_held(st))
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/cpython/Python/_warnings.c
    - condition: (st->default_action)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 419
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 419
    functionName: get_default_action
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - GET_WARNINGS_ATTR
    - warnings_lock_held
    - Py_SETREF
    - PyErr_Format
    - PyUnicode_Check
    - warnings_get_state
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_default_action(PyInterpreterState *interp)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/_warnings.c:431,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:432,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:437,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/_warnings.c:438,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:438,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:439,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/_warnings.c:446,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:447,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:448,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:449,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:450,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:451,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:453,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:454,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:457,1
    - Dst: check_matched
      Src: /src/cpython/Python/_warnings.c:462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:464,1
    - Dst: check_matched
      Src: /src/cpython/Python/_warnings.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:471,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/_warnings.c:476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:478,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/_warnings.c:483,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:497,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/_warnings.c:499,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 9
    argNames:
    - interp
    - category
    - text
    - lineno
    - module
    - list_name
    - filters
    - item
    - matched_action
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - char*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 501
    functionName: filter_search
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_INCREF
    - PyList_GET_ITEM
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_IsSubclass
    - Py_END_CRITICAL_SECTION
    - PyTuple_Check
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - check_matched
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: bool
    signature: "bool filter_search(PyInterpreterState *interp, PyObject *category,\n
      \             PyObject *text, Py_ssize_t lineno,\n              PyObject *module,
      char *list_name, PyObject *filters,\n              PyObject **item, PyObject
      **matched_action)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:510,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:511,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:512,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:512,1
    - Dst: get_warnings_context_filters
      Src: /src/cpython/Python/_warnings.c:516,1
    - Dst: filter_search
      Src: /src/cpython/Python/_warnings.c:525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:530,1
    - Dst: get_warnings_filters
      Src: /src/cpython/Python/_warnings.c:540,1
    - Dst: filter_search
      Src: /src/cpython/Python/_warnings.c:544,1
    - Dst: get_default_action
      Src: /src/cpython/Python/_warnings.c:553,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:555,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 6
    argNames:
    - interp
    - category
    - text
    - lineno
    - module
    - item
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (warnings_lock_held(st))
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/cpython/Python/_warnings.c
    - condition: (st != NULL)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 560
      start: 504
    functionDepth: 12
    functionLinenumber: 504
    functionLinenumberEnd: 560
    functionName: get_filter
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - filter_search
    - warnings_lock_held
    - get_default_action
    - Py_NewRef
    - get_warnings_context_filters
    - warnings_get_state
    - get_warnings_filters
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_filter(PyInterpreterState *interp, PyObject *category,\n
      \          PyObject *text, Py_ssize_t lineno,\n           PyObject *module,
      PyObject **item)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:572,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:573,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:574,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:574,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:577,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:577,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/_warnings.c:582,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/_warnings.c:583,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:585,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/_warnings.c:587,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/_warnings.c:588,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:591,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:595,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:598,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/_warnings.c:602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:603,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:611,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - interp
    - registry
    - key
    - should_set
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (warnings_lock_held(st))
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/cpython/Python/_warnings.c
    - condition: (st != NULL)
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 613
      start: 563
    functionDepth: 10
    functionLinenumber: 563
    functionLinenumberEnd: 613
    functionName: already_warned
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_IsTrue
    - PyDict_Clear
    - PyDict_SetItem
    - Py_DECREF
    - PyDict_GetItemRef
    - PyLong_AsLong
    - _Py_ID
    - warnings_lock_held
    - PyLong_CheckExact
    - PyLong_FromLong
    - warnings_get_state
    - assert
    linkageType: ''
    returnType: int
    signature: "int already_warned(PyInterpreterState *interp, PyObject *registry,
      PyObject *key,\n               int should_set)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/_warnings.c:624,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:629,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/_warnings.c:631,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/_warnings.c:632,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/_warnings.c:636,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/_warnings.c:637,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/_warnings.c:638,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/_warnings.c:640,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 616
    functionDepth: 8
    functionLinenumber: 616
    functionLinenumberEnd: 646
    functionName: normalize_module
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_NewRef
    - PyUnicode_GetLength
    - PyUnicode_DATA
    - PyUnicode_Substring
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      normalize_module(PyObject *filename)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/_warnings.c:656,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/_warnings.c:656,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/_warnings.c:658,1
    - Dst: already_warned
      Src: /src/cpython/Python/_warnings.c:660,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - interp
    - registry
    - text
    - category
    - add_zero
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 648
    functionDepth: 11
    functionLinenumber: 648
    functionLinenumberEnd: 663
    functionName: update_registry
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyLong_GetZero
    - PyTuple_Pack
    - Py_XDECREF
    - already_warned
    linkageType: ''
    returnType: int
    signature: "int update_registry(PyInterpreterState *interp, PyObject *registry,
      PyObject *text,\n                PyObject *category, int add_zero)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/_warnings.c:673,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/_warnings.c:675,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:675,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/_warnings.c:680,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:680,1
    - Dst: fprintf
      Src: /src/cpython/Python/_warnings.c:681,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:686,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:688,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:690,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:692,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:694,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:696,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:698,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/_warnings.c:708,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/_warnings.c:709,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/_warnings.c:710,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/_warnings.c:712,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/_warnings.c:717,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:722,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:723,1
    - Dst: _Py_DisplaySourceLine
      Src: /src/cpython/Python/_warnings.c:726,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:730,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:731,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/_warnings.c:732,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 6
    argNames:
    - tstate
    - filename
    - lineno
    - text
    - category
    - sourceline
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 665
    functionDepth: 10
    functionLinenumber: 665
    functionLinenumberEnd: 733
    functionName: show_warning
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _Py_DisplaySourceLine
    - Py_XDECREF
    - Py_DECREF
    - PyFile_WriteString
    - PyErr_Clear
    - _Py_ID
    - PyOS_snprintf
    - PyUnicode_GET_LENGTH
    - PyUnicode_READ
    - PyUnicode_Substring
    - PyObject_GetAttr
    - PyFile_WriteObject
    - fprintf
    - PyUnicode_DATA
    - PySys_GetOptionalAttr
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: "void show_warning(PyThreadState *tstate, PyObject *filename, int lineno,\n
      \            PyObject *text, PyObject *category, PyObject *sourceline)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:748,1
    - Dst: show_warning
      Src: /src/cpython/Python/_warnings.c:750,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/_warnings.c:754,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:755,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:760,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:762,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:763,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Python/_warnings.c:769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:772,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:778,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:783,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:787,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 9
    argNames:
    - tstate
    - category
    - text
    - message
    - filename
    - lineno
    - lineno_obj
    - sourceline
    - source
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 735
    functionDepth: 11
    functionLinenumber: 735
    functionLinenumberEnd: 789
    functionName: call_show_warning
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - GET_WARNINGS_ATTR
    - PyErr_SetString
    - PyCallable_Check
    - PyObject_CallFunctionObjArgs
    - show_warning
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: "int call_show_warning(PyThreadState *tstate, PyObject *category,\n
      \                 PyObject *text, PyObject *message,\n                  PyObject
      *filename, int lineno, PyObject *lineno_obj,\n                  PyObject *sourceline,
      PyObject *source)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/_warnings.c:810,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:811,1
    - Dst: normalize_module
      Src: /src/cpython/Python/_warnings.c:817,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/_warnings.c:822,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/_warnings.c:825,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/_warnings.c:826,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/_warnings.c:827,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:830,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:834,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/_warnings.c:839,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/_warnings.c:848,1
    - Dst: already_warned
      Src: /src/cpython/Python/_warnings.c:853,1
    - Dst: get_filter
      Src: /src/cpython/Python/_warnings.c:861,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:865,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/_warnings.c:866,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:870,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:877,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:877,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:879,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:884,1
    - Dst: get_once_registry
      Src: /src/cpython/Python/_warnings.c:886,1
    - Dst: update_registry
      Src: /src/cpython/Python/_warnings.c:891,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:893,1
    - Dst: update_registry
      Src: /src/cpython/Python/_warnings.c:896,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:898,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:899,1
    - Dst: call_show_warning
      Src: /src/cpython/Python/_warnings.c:909,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:917,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:920,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:921,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:922,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:924,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:925,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 107
    argCount: 9
    argNames:
    - tstate
    - category
    - message
    - filename
    - lineno
    - module
    - registry
    - sourceline
    - source
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 791
    functionDepth: 13
    functionLinenumber: 791
    functionLinenumberEnd: 927
    functionName: warn_explicit
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - already_warned
    - PyObject_CallOneArg
    - PyLong_FromLong
    - update_registry
    - Py_INCREF
    - get_filter
    - PyObject_TypeCheck
    - PyErr_SetObject
    - call_show_warning
    - _PyUnicode_EqualToASCIIString
    - PyErr_Format
    - PyTuple_Pack
    - PyDict_Check
    - PyObject_Str
    - Py_DECREF
    - Py_NewRef
    - get_once_registry
    - Py_TYPE
    - normalize_module
    - PyDict_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwarn_explicit(PyThreadState *tstate, PyObject *category,
      PyObject *message,\n              PyObject *filename, int lineno,\n              PyObject
      *module, PyObject *registry, PyObject *sourceline,\n              PyObject *source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetCode
      Src: /src/cpython/Python/_warnings.c:932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 936
    functionName: get_frame_filename
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetCode
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_frame_filename(PyFrameObject *frame)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:941,1
    - Dst: PyUnicode_Contains
      Src: /src/cpython/Python/_warnings.c:945,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:945,1
    - Dst: PyUnicode_Contains
      Src: /src/cpython/Python/_warnings.c:950,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - filename
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 960
    functionName: is_internal_filename
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _Py_ID
    - PyUnicode_Contains
    linkageType: ''
    returnType: bool
    signature: bool is_internal_filename(PyObject *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:966,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:970,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:973,1
    - Dst: PyUnicode_Tailmatch
      Src: /src/cpython/Python/_warnings.c:974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - filename
    - skip_file_prefixes
    argTypes:
    - PyObject*
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 962
    functionDepth: 3
    functionLinenumber: 962
    functionLinenumberEnd: 985
    functionName: is_filename_to_skip
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyUnicode_Tailmatch
    linkageType: ''
    returnType: bool
    signature: bool is_filename_to_skip(PyObject *filename, PyTupleObject *skip_file_prefixes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_frame_filename
      Src: /src/cpython/Python/_warnings.c:994,1
    - Dst: is_internal_filename
      Src: /src/cpython/Python/_warnings.c:999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1000
    functionName: is_internal_frame
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - is_internal_filename
    - get_frame_filename
    linkageType: ''
    returnType: bool
    signature: bool is_internal_frame(PyFrameObject *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetBack
      Src: /src/cpython/Python/_warnings.c:1007,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:1008,1
    - Dst: get_frame_filename
      Src: /src/cpython/Python/_warnings.c:1009,1
    - Dst: is_internal_filename
      Src: /src/cpython/Python/_warnings.c:1010,1
    - Dst: is_filename_to_skip
      Src: /src/cpython/Python/_warnings.c:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - frame
    - skip_file_prefixes
    argTypes:
    - PyFrameObject*
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1002
    functionDepth: 4
    functionLinenumber: 1002
    functionLinenumberEnd: 1014
    functionName: next_external_frame
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - is_internal_filename
    - PyFrame_GetBack
    - get_frame_filename
    - Py_SETREF
    - is_filename_to_skip
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      next_external_frame(PyFrameObject *frame, PyTupleObject *skip_file_prefixes)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_current_tstate
      Src: /src/cpython/Python/_warnings.c:1028,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:1035,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:1038,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:1039,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1040,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:1042,1
    - Dst: PyThreadState_GetFrame
      Src: /src/cpython/Python/_warnings.c:1048,1
    - Dst: is_internal_frame
      Src: /src/cpython/Python/_warnings.c:1051,1
    - Dst: PyFrame_GetBack
      Src: /src/cpython/Python/_warnings.c:1053,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:1054,1
    - Dst: next_external_frame
      Src: /src/cpython/Python/_warnings.c:1059,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1065,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:1070,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/_warnings.c:1070,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/cpython/Python/_warnings.c:1071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1072,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1078,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1079,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/_warnings.c:1079,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:1080,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1080,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/_warnings.c:1086,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:1090,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1090,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:1096,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1096,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/_warnings.c:1101,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:1101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1104,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1106,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1114,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1116,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 6
    argNames:
    - stack_level
    - skip_file_prefixes
    - filename
    - lineno
    - module
    - registry
    argTypes:
    - Py_ssize_t
    - PyTupleObject*
    - PyObject**
    - int*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyDict_Check(globals))
      pos:
        line_end: 1078
        line_start: 1078
        source_file: /src/cpython/Python/_warnings.c
    - condition: (globals != NULL)
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 1118
      start: 1019
    functionDepth: 10
    functionLinenumber: 1019
    functionLinenumberEnd: 1118
    functionName: setup_context
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_SETREF
    - Py_IsNone
    - next_external_frame
    - PyDict_GetItemRef
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_Check
    - Py_DECREF
    - PyThreadState_GetFrame
    - PyFrame_GetBack
    - get_current_tstate
    - _Py_ID
    - Py_NewRef
    - Py_TYPE
    - _PyFrame_GetCode
    - PyDict_SetItem
    - PyDict_New
    - PyFrame_GetLineNumber
    - is_internal_frame
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: int
    signature: "int setup_context(Py_ssize_t stack_level,\n              PyTupleObject
      *skip_file_prefixes,\n              PyObject **filename, int *lineno,\n              PyObject
      **module, PyObject **registry)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/_warnings.c:1123,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:1125,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/_warnings.c:1132,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1133,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/_warnings.c:1138,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - message
    - category
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1146
    functionName: get_category
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyObject_TypeCheck
    - PyType_IsSubtype
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_category(PyObject *message, PyObject *category)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_current_tstate
      Src: /src/cpython/Python/_warnings.c:1155,1
    - Dst: setup_context
      Src: /src/cpython/Python/_warnings.c:1160,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1164,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1165,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - message
    - category
    - stack_level
    - source
    - skip_file_prefixes
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1148
    functionDepth: 14
    functionLinenumber: 1148
    functionLinenumberEnd: 1172
    functionName: do_warn
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - setup_context
    - Py_DECREF
    - warn_explicit
    - get_current_tstate
    - warnings_unlock
    - warnings_lock
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndo_warn(PyObject *message, PyObject *category, Py_ssize_t
      stack_level,\n        PyObject *source, PyTupleObject *skip_file_prefixes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_category
      Src: /src/cpython/Python/_warnings.c:1200,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:1204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1209,1
    - Dst: do_warn
      Src: /src/cpython/Python/_warnings.c:1213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - module
    - message
    - category
    - stacklevel
    - source
    - skip_file_prefixes
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1194
    functionDepth: 15
    functionLinenumber: 1194
    functionLinenumberEnd: 1214
    functionName: warnings_warn_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - 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,\n
      \                  PyTupleObject *skip_file_prefixes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_BlessMyLoader
      Src: /src/cpython/Python/_warnings.c:1227,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:1232,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1235,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/_warnings.c:1240,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1243,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:1247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1254,1
    - Dst: PyUnicode_Splitlines
      Src: /src/cpython/Python/_warnings.c:1259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1260,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/_warnings.c:1266,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/_warnings.c:1267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - interp
    - module_globals
    - lineno
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1216
    functionDepth: 8
    functionLinenumber: 1216
    functionLinenumberEnd: 1270
    functionName: get_source_line
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - _PyImport_BlessMyLoader
    - PyObject_CallOneArg
    - PyUnicode_Splitlines
    - Py_XINCREF
    - PyDict_GetItemRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_source_line(PyInterpreterState *interp, PyObject *module_globals, int lineno)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_current_tstate
      Src: /src/cpython/Python/_warnings.c:1297,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/_warnings.c:1303,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1304,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:1306,1
    - Dst: get_source_line
      Src: /src/cpython/Python/_warnings.c:1310,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:1311,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1316,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1317,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 9
    argNames:
    - module
    - message
    - category
    - filename
    - lineno
    - mod
    - registry
    - module_globals
    - sourceobj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1287
    functionDepth: 14
    functionLinenumber: 1287
    functionLinenumberEnd: 1322
    functionName: warnings_warn_explicit_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - warn_explicit
    - PyErr_Occurred
    - get_current_tstate
    - warnings_lock
    - warnings_unlock
    - PyErr_Format
    - get_source_line
    - PyDict_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwarnings_warn_explicit_impl(PyObject *module, PyObject
      *message,\n                            PyObject *category, PyObject *filename,\n
      \                           int lineno, PyObject *mod, PyObject *registry,\n
      \                           PyObject *module_globals, PyObject *sourceobj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_current_interp
      Src: /src/cpython/Python/_warnings.c:1333,1
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:1338,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1339,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:1342,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:1343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 1350
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1350
    functionName: warnings_filters_mutated_lock_held_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - get_current_interp
    - warnings_lock_held
    - warnings_get_state
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_filters_mutated_lock_held_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_warn
      Src: /src/cpython/Python/_warnings.c:1363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1366,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: 1369
      start: 1354
    functionDepth: 15
    functionLinenumber: 1354
    functionLinenumberEnd: 1369
    functionName: warn_unicode
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - do_warn
    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/cpython/Python/_warnings.c:1379,1
    - Dst: warn_unicode
      Src: /src/cpython/Python/_warnings.c:1383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1384,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: 1386
      start: 1371
    functionDepth: 16
    functionLinenumber: 1371
    functionLinenumberEnd: 1386
    functionName: _PyErr_WarnFormatV
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warn_unicode
    - PyUnicode_FromFormatV
    - Py_DECREF
    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/cpython/Python/_warnings.c:1395,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/cpython/Python/_warnings.c:1396,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - category
    - stack_level
    - format
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1388
    functionDepth: 17
    functionLinenumber: 1388
    functionLinenumberEnd: 1399
    functionName: PyErr_WarnFormat
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 18
    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/cpython/Python/_warnings.c:1408,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/cpython/Python/_warnings.c:1409,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - source
    - category
    - stack_level
    - format
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1401
    functionDepth: 17
    functionLinenumber: 1401
    functionLinenumberEnd: 1412
    functionName: _PyErr_WarnFormat
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - va_start
    - _PyErr_WarnFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyErr_WarnFormat(PyObject *source, PyObject *category, Py_ssize_t
      stack_level,\n                  const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/_warnings.c:1421,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/cpython/Python/_warnings.c:1422,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - stack_level
    - format
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1414
    functionDepth: 17
    functionLinenumber: 1414
    functionLinenumberEnd: 1426
    functionName: PyErr_ResourceWarning
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 3
    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/cpython/Python/_warnings.c:1433,1
    - Dst: warn_unicode
      Src: /src/cpython/Python/_warnings.c:1436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1437,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: 1439
      start: 1429
    functionDepth: 16
    functionLinenumber: 1429
    functionLinenumberEnd: 1439
    functionName: PyErr_WarnEx
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 85
    functionsReached:
    - warn_unicode
    - Py_DECREF
    - PyUnicode_FromString
    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/cpython/Python/_warnings.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - category
    - text
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1446
    functionDepth: 17
    functionLinenumber: 1446
    functionLinenumberEnd: 1450
    functionName: PyErr_Warn
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 1
    functionsReached:
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int PyErr_Warn(PyObject *category, const char *text)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_current_tstate
      Src: /src/cpython/Python/_warnings.c:1461,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1466,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1467,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - category
    - message
    - filename
    - lineno
    - module
    - registry
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1453
    functionDepth: 14
    functionLinenumber: 1453
    functionLinenumberEnd: 1474
    functionName: PyErr_WarnExplicitObject
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - warn_explicit
    - get_current_tstate
    - warnings_unlock
    - warnings_lock
    linkageType: ''
    returnType: int
    signature: "int PyErr_WarnExplicitObject(PyObject *category, PyObject *message,\n
      \                        PyObject *filename, int lineno,\n                         PyObject
      *module, PyObject *registry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_context
      Src: /src/cpython/Python/_warnings.c:1485,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Python/_warnings.c:1490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - category
    - message
    - filename
    - lineno
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1477
    functionDepth: 15
    functionLinenumber: 1477
    functionLinenumberEnd: 1496
    functionName: _PyErr_WarnExplicitObjectWithContext
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - setup_context
    - PyErr_WarnExplicitObject
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int _PyErr_WarnExplicitObjectWithContext(PyObject *category, PyObject
      *message,\n                                     PyObject *filename, int lineno)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1503,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/_warnings.c:1507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1509,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1517,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Python/_warnings.c:1522,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - category
    - text
    - filename_str
    - lineno
    - module_str
    - registry
    argTypes:
    - PyObject*
    - char*
    - char*
    - int
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1498
    functionDepth: 15
    functionLinenumber: 1498
    functionLinenumberEnd: 1528
    functionName: PyErr_WarnExplicit
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - PyErr_WarnExplicitObject
    - PyUnicode_FromString
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/_warnings.c:1538,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1545,1
    - Dst: va_start
      Src: /src/cpython/Python/_warnings.c:1550,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/_warnings.c:1551,1
    - Dst: get_current_tstate
      Src: /src/cpython/Python/_warnings.c:1554,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1556,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1557,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1562,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1567,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1569,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 6
    argNames:
    - category
    - filename_str
    - lineno
    - module_str
    - registry
    - format
    argTypes:
    - PyObject*
    - char*
    - int
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1530
    functionDepth: 14
    functionLinenumber: 1530
    functionLinenumberEnd: 1572
    functionName: PyErr_WarnExplicitFormat
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 4
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - warn_explicit
    - get_current_tstate
    - warnings_unlock
    - va_start
    - warnings_lock
    - PyUnicode_FromFormatV
    - PyUnicode_FromString
    - 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/_warnings.c:1577,1
    - Dst: _PyErr_WarnFormat
      Src: /src/cpython/Python/_warnings.c:1578,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/_warnings.c:1582,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/_warnings.c:1585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - agen
    - method
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1574
    functionDepth: 18
    functionLinenumber: 1574
    functionLinenumberEnd: 1586
    functionName: _PyErr_WarnUnawaitedAgenMethod
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 2
    functionsReached:
    - PyErr_FormatUnraisable
    - _PyErr_WarnFormat
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyErr_WarnUnawaitedAgenMethod(PyAsyncGenObject *agen, PyObject
      *method)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/_warnings.c:1612,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1613,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:1614,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:1616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1617,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/_warnings.c:1618,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1621,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:1624,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/_warnings.c:1625,1
    - Dst: _PyErr_WarnFormat
      Src: /src/cpython/Python/_warnings.c:1630,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/_warnings.c:1634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 1612
        line_start: 1612
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 1638
      start: 1589
    functionDepth: 18
    functionLinenumber: 1589
    functionLinenumberEnd: 1638
    functionName: _PyErr_WarnUnawaitedCoroutine
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_Occurred
    - GET_WARNINGS_ATTR
    - _PyInterpreterState_GET
    - PyErr_FormatUnraisable
    - PyErr_ExceptionMatches
    - PyObject_CallOneArg
    - _PyErr_WarnFormat
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyErr_WarnUnawaitedCoroutine(PyObject *coro)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_current_interp
      Src: /src/cpython/Python/_warnings.c:1655,1
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:1659,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1663,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1666,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1669,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1652
    functionDepth: 3
    functionLinenumber: 1652
    functionLinenumberEnd: 1676
    functionName: warnings_module_exec
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_get_state
    - get_current_interp
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int warnings_module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/_warnings.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1700
    functionName: _PyWarnings_Init
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC _PyWarnings_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnings_clear_state
      Src: /src/cpython/Python/_warnings.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1703
    functionDepth: 2
    functionLinenumber: 1703
    functionLinenumberEnd: 1707
    functionName: _PyWarnings_Fini
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 1
    functionsReached:
    - warnings_clear_state
    linkageType: ''
    returnType: void
    signature: void _PyWarnings_Fini(PyInterpreterState *interp)
  - 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: _PyExecutorObject_CAST
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyExecutorObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - code
    - instr
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: has_space_for_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_space_for_executor(PyCodeObject *code, _Py_CODEUNIT *instr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:57,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:59,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/optimizer.c:63,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - code
    - instr
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (size < MAX_EXECUTORS_SIZE)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/cpython/Python/optimizer.c
    - condition: (size < code->co_executors->capacity)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/cpython/Python/optimizer.c
    - condition: (size <= capacity)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 76
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: get_index_for_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - assert
    linkageType: ''
    returnType: int32_t
    signature: int32_t get_index_for_executor(PyCodeObject *code, _Py_CODEUNIT *instr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Python/optimizer.c:81,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:83,1
    - Dst: _Py_ExecutorDetach
      Src: /src/cpython/Python/optimizer.c:84,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:87,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:88,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:94,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - code
    - instr
    - index
    - executor
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - int
    - _PyExecutorObject*
    assertStmts:
    - condition: (index == instr->op.arg)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/cpython/Python/optimizer.c
    - condition: (code->co_executors->capacity > index)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/cpython/Python/optimizer.c
    - condition: (code->co_executors->size == index)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/cpython/Python/optimizer.c
    - condition: (index < MAX_EXECUTORS_SIZE)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: insert_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyCode_CODE
    - assert
    - _Py_ExecutorDetach
    linkageType: ''
    returnType: void
    signature: void insert_executor(PyCodeObject *code, _Py_CODEUNIT *instr, int index,
      _PyExecutorObject *executor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:119,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:119,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/optimizer.c:126,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:127,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/optimizer.c:127,1
    - Dst: has_space_for_executor
      Src: /src/cpython/Python/optimizer.c:128,1
    - Dst: uop_optimize
      Src: /src/cpython/Python/optimizer.c:131,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/optimizer.c:131,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:135,1
    - Dst: get_index_for_executor
      Src: /src/cpython/Python/optimizer.c:137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:145,1
    - Dst: insert_executor
      Src: /src/cpython/Python/optimizer.c:148,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - frame
    - start
    - executor_ptr
    - chain_depth
    argTypes:
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - _PyExecutorObject**
    - int
    assertStmts:
    - condition: (_PyInterpreterState_GET()->jit)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Python/optimizer.c
    - condition: (PyCode_Check(code))
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/cpython/Python/optimizer.c
    - condition: (*executor_ptr != NULL)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/cpython/Python/optimizer.c
    - condition: ((*executor_ptr)->vm_data.valid)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 156
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 156
    functionName: _PyOptimizer_Optimize
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - assert
    - _PyFrame_Stackbase
    - Py_DECREF
    - has_space_for_executor
    - insert_executor
    - _PyInterpreterState_GET
    - get_index_for_executor
    - uop_optimize
    - _PyFrame_GetCode
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _PyOptimizer_Optimize(\n    _PyInterpreterFrame *frame,
      _Py_CODEUNIT *start,\n    _PyExecutorObject **executor_ptr, int chain_depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Python/optimizer.c:161,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:163,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:164,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/optimizer.c:166,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/optimizer.c:169,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/optimizer.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - code
    - offset
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: get_executor_lock_held
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_SIZE
    - PyErr_SetString
    - _PyCode_CODE
    - _PyInstruction_GetLength
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      get_executor_lock_held(PyCodeObject *code, int offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/optimizer.c:179,1
    - Dst: get_executor_lock_held
      Src: /src/cpython/Python/optimizer.c:180,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/optimizer.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - code
    - offset
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: _Py_GetExecutor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - get_executor_lock_held
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      _Py_GetExecutor(PyCodeObject *code, int offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/optimizer.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: is_valid
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 17
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_valid(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/optimizer.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: get_opcode
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_opcode(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/optimizer.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: get_oparg
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_oparg(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyJIT_Free
      Src: /src/cpython/Python/optimizer.c:213,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/optimizer.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: _PyExecutor_Free
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_Del
    - _PyJIT_Free
    linkageType: ''
    returnType: void
    signature: void _PyExecutor_Free(_PyExecutorObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/optimizer.c:222,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/cpython/Python/optimizer.c:223,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/optimizer.c:224,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/optimizer.c:232,1
    - Dst: PyThreadState_Next
      Src: /src/cpython/Python/optimizer.c:233,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/optimizer.c:234,1
    - Dst: _PyExecutor_Free
      Src: /src/cpython/Python/optimizer.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 251
    functionName: _Py_ClearExecutorDeletionList
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - HEAD_LOCK
    - HEAD_UNLOCK
    - PyInterpreterState_ThreadHead
    - PyThreadState_Next
    - _PyExecutor_Free
    linkageType: ''
    returnType: void
    signature: void _Py_ClearExecutorDeletionList(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/optimizer.c:256,1
    - Dst: _Py_ClearExecutorDeletionList
      Src: /src/cpython/Python/optimizer.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: add_to_pending_deletion_list
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - _Py_ClearExecutorDeletionList
    linkageType: ''
    returnType: void
    signature: void add_to_pending_deletion_list(_PyExecutorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:269,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/optimizer.c:270,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:271,1
    - Dst: unlink_executor
      Src: /src/cpython/Python/optimizer.c:272,1
    - Dst: add_to_pending_deletion_list
      Src: /src/cpython/Python/optimizer.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->vm_data.code == NULL)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: uop_dealloc
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - add_to_pending_deletion_list
    - _PyObject_GC_UNTRACK
    - _PyExecutorObject_CAST
    - unlink_executor
    - assert
    linkageType: ''
    returnType: void
    signature: void uop_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: _PyUOpName
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyUOpName(int index)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUOpName
      Src: /src/cpython/Python/optimizer.c:291,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:293,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:296,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:300,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:307,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:314,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:317,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - uop
    argTypes:
    - _PyUOpInstruction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 321
    functionName: _PyUOpPrint
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - _PyUOpName
    - printf
    linkageType: ''
    returnType: void
    signature: void _PyUOpPrint(const _PyUOpInstruction *uop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: uop_len
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _PyExecutorObject_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t uop_len(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:334,1
    - Dst: uop_len
      Src: /src/cpython/Python/optimizer.c:335,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/optimizer.c:337,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/optimizer.c:340,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Python/optimizer.c:344,1
    - Dst: strlen
      Src: /src/cpython/Python/optimizer.c:344,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/optimizer.c:348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:350,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/optimizer.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:356,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/optimizer.c:359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:363,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Python/optimizer.c:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 368
    functionName: uop_item
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - _PyTuple_FromArraySteal
    - _PyUOpName
    - uop_len
    - PyErr_SetNone
    - PyLong_FromUnsignedLongLong
    - PyLong_FromUnsignedLong
    - _PyExecutorObject_CAST
    - _PyUnicode_FromASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      uop_item(PyObject *op, Py_ssize_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:378,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/optimizer.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 383
    functionName: executor_traverse
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _PyExecutorObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int executor_traverse(PyObject *o, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/optimizer.c:389,1
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:392,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/optimizer.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 398
    functionName: get_jit_code
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _PyExecutorObject_CAST
    - PyErr_SetString
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_jit_code(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: executor_is_gc
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: int executor_is_gc(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - level
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: DPRINTF
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(level, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - trace
    - trace_length
    - opcode
    - oparg
    - operand
    - target
    argTypes:
    - _PyUOpInstruction*
    - int
    - uint16_t
    - uint16_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 489
    functionName: add_to_trace
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int add_to_trace(\n    _PyUOpInstruction *trace,\n    int trace_length,\n
      \   uint16_t opcode,\n    uint16_t oparg,\n    uint64_t operand,\n    uint32_t
      target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - OPCODE
    - ','
    - OPARG
    - ','
    - OPERAND
    - ','
    - TARGET
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 500
    functionName: ADD_TO_TRACE
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TO_TRACE(OPCODE, OPARG, OPERAND, TARGET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - OPCODE
    - ','
    - OPARG
    - ','
    - OPERAND
    - ','
    - TARGET
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: ADD_TO_TRACE
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TO_TRACE(OPCODE, OPARG, OPERAND, TARGET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - INSTR
    - ','
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: INSTR_IP
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_IP(INSTR, CODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - opname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 517
    functionName: RESERVE_RAW
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESERVE_RAW(n, opname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - needed
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: RESERVE
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESERVE(needed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 533
    functionName: TRACE_STACK_PUSH
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_STACK_PUSH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 542
    functionName: TRACE_STACK_POP
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_STACK_POP()
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/optimizer.c:556,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Python/optimizer.c:557,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:558,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer.c:558,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer.c:560,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer.c:575,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:582,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:584,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:585,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:587,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:588,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:588,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:589,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:593,1
    - Dst: RESERVE
      Src: /src/cpython/Python/optimizer.c:602,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:603,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:607,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:631,1
    - Dst: RESERVE_RAW
      Src: /src/cpython/Python/optimizer.c:632,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:633,1
    - Dst: OPCODE_HAS_NO_SAVE_IP
      Src: /src/cpython/Python/optimizer.c:634,1
    - Dst: RESERVE_RAW
      Src: /src/cpython/Python/optimizer.c:635,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:636,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:642,1
    - Dst: OPCODE_HAS_EXIT
      Src: /src/cpython/Python/optimizer.c:643,1
    - Dst: OPCODE_HAS_DEOPT
      Src: /src/cpython/Python/optimizer.c:643,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:646,1
    - Dst: OPCODE_HAS_EXIT
      Src: /src/cpython/Python/optimizer.c:646,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:647,1
    - Dst: OPCODE_HAS_DEOPT
      Src: /src/cpython/Python/optimizer.c:647,1
    - Dst: OPCODE_HAS_EXIT
      Src: /src/cpython/Python/optimizer.c:650,1
    - Dst: RESERVE_RAW
      Src: /src/cpython/Python/optimizer.c:652,1
    - Dst: OPCODE_HAS_ERROR
      Src: /src/cpython/Python/optimizer.c:655,1
    - Dst: RESERVE_RAW
      Src: /src/cpython/Python/optimizer.c:657,1
    - Dst: RESERVE
      Src: /src/cpython/Python/optimizer.c:666,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/optimizer.c:668,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:679,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/optimizer.c:681,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:683,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:684,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:690,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:691,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:693,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:693,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:696,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:696,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:702,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:708,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:709,1
    - Dst: RESERVE
      Src: /src/cpython/Python/optimizer.c:718,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:727,1
    - Dst: RESERVE
      Src: /src/cpython/Python/optimizer.c:736,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:743,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:744,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:757,1
    - Dst: read_u16
      Src: /src/cpython/Python/optimizer.c:760,1
    - Dst: read_u32
      Src: /src/cpython/Python/optimizer.c:763,1
    - Dst: read_u64
      Src: /src/cpython/Python/optimizer.c:766,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:776,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:780,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:788,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:788,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:789,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:789,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:794,1
    - Dst: read_u16
      Src: /src/cpython/Python/optimizer.c:795,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:799,1
    - Dst: read_u32
      Src: /src/cpython/Python/optimizer.c:800,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:804,1
    - Dst: read_u64
      Src: /src/cpython/Python/optimizer.c:805,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:809,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:814,1
    - Dst: TRACE_STACK_POP
      Src: /src/cpython/Python/optimizer.c:818,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:831,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:832,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:834,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:835,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:837,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:842,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:848,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:849,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:852,1
    - Dst: read_u32
      Src: /src/cpython/Python/optimizer.c:857,1
    - Dst: _PyFunction_LookupByVersion
      Src: /src/cpython/Python/optimizer.c:860,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:861,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:866,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:867,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:868,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:870,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:871,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:872,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:879,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:880,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:881,1
    - Dst: TRACE_STACK_PUSH
      Src: /src/cpython/Python/optimizer.c:886,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer.c:887,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:903,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:906,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:907,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:909,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:910,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:912,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:915,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:916,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:921,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:923,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:930,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:934,1
    - Dst: OPT_UNSUPPORTED_OPCODE
      Src: /src/cpython/Python/optimizer.c:935,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:946,1
    - Dst: TRACE_STACK_POP
      Src: /src/cpython/Python/optimizer.c:956,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:958,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:961,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:962,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:964,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:965,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:967,1
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:970,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:973,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:975,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:977,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:978,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:980,1
    - Dst: OPT_HIST
      Src: /src/cpython/Python/optimizer.c:982,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 277
    argCount: 6
    argNames:
    - frame
    - instr
    - trace
    - buffer_size
    - dependencies
    - progress_needed
    argTypes:
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - _PyUOpInstruction*
    - int
    - _PyBloomFilter*
    - bool
    assertStmts:
    - condition: (opcode != JUMP_BACKWARD_NO_INTERRUPT && opcode != JUMP_BACKWARD)
      pos:
        line_end: 756
        line_start: 756
        source_file: /src/cpython/Python/optimizer.c
    - condition: (trace[trace_length-1].opcode == uop)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/cpython/Python/optimizer.c
    - condition: (i + 1 == nuops)
      pos:
        line_end: 920
        line_start: 920
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop == _SAVE_RETURN_OFFSET)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/cpython/Python/optimizer.c
    - condition: (!OPCODE_HAS_DEOPT(opcode))
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/cpython/Python/optimizer.c
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 922
        line_start: 922
        source_file: /src/cpython/Python/optimizer.c
    - condition: (instr->op.code == POP_TOP)
      pos:
        line_end: 945
        line_start: 945
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_Py_GetBaseCodeUnit(code, jump_target+1).op.code == POP_ITER)
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_Py_GetBaseCodeUnit(code, jump_target).op.code == END_FOR)
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/cpython/Python/optimizer.c
    - condition: (trace[trace_length-1].opcode == uop)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/cpython/Python/optimizer.c
    - condition: (first)
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/cpython/Python/optimizer.c
    - condition: (i + 1 == nuops)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/cpython/Python/optimizer.c
    - condition: (code == initial_code)
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop != 0)
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_PyOpcode_Deopt[opcode] == CALL || _PyOpcode_Deopt[opcode] == CALL_KW)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/cpython/Python/optimizer.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/cpython/Python/optimizer.c
    - condition: (opcode != ENTER_EXECUTOR && opcode != EXTENDED_ARG)
      pos:
        line_end: 630
        line_start: 630
        source_file: /src/cpython/Python/optimizer.c
    - condition: (trace[trace_length-1].opcode == uop)
      pos:
        line_end: 803
        line_start: 803
        source_file: /src/cpython/Python/optimizer.c
    - condition: (!OPCODE_HAS_EXIT(opcode))
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 984
      start: 547
    functionDepth: 6
    functionLinenumber: 547
    functionLinenumberEnd: 984
    functionName: translate_bytecode_to_trace
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - _Py_popcount32
    - DPRINTF
    - is_terminator
    - TRACE_STACK_PUSH
    - OPCODE_HAS_EXIT
    - OPT_STAT_INC
    - INSTR_IP
    - Py_FatalError
    - ADD_TO_TRACE
    - _PyFunction_LookupByVersion
    - OPCODE_HAS_ERROR
    - read_u32
    - fprintf
    - TRACE_STACK_POP
    - RESERVE_RAW
    - _Py_GetBaseCodeUnit
    - _Py_BloomFilter_Add
    - OPCODE_HAS_NO_SAVE_IP
    - read_u64
    - _PyUOpName
    - _PyFrame_GetFunction
    - OPT_HIST
    - RESERVE
    - OPCODE_HAS_DEOPT
    - _PyFrame_GetCode
    - read_u16
    - Py_GETENV
    - PyUnicode_AsUTF8
    - _PyCode_CODE
    - OPT_UNSUPPORTED_OPCODE
    - assert
    linkageType: ''
    returnType: int
    signature: "int translate_bytecode_to_trace(\n    _PyInterpreterFrame *frame,\n
      \   _Py_CODEUNIT *instr,\n    _PyUOpInstruction *trace,\n    int buffer_size,\n
      \   _PyBloomFilter *dependencies, bool progress_needed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - array
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 993
    functionName: UNSET_BIT
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSET_BIT(array, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - array
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 994
    functionName: SET_BIT
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BIT(array, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - array
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 995
    functionName: BIT_IS_SET
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT_IS_SET(array, bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1009
    functionName: count_exits
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_exits(_PyUOpInstruction *buffer, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - inst
    - opcode
    - target
    argTypes:
    - _PyUOpInstruction*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1021
    functionName: make_exit
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_exit(_PyUOpInstruction *inst, int opcode, int target)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: uop_get_target
      Src: /src/cpython/Python/optimizer.c:1050,1
    - Dst: make_exit
      Src: /src/cpython/Python/optimizer.c:1069,1
    - Dst: _PyUop_num_popped
      Src: /src/cpython/Python/optimizer.c:1080,1
    - Dst: make_exit
      Src: /src/cpython/Python/optimizer.c:1085,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1096,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts:
    - condition: (buffer[0].opcode == _START_EXECUTOR)
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1102
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1102
    functionName: prepare_for_execution
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - assert
    - uop_get_target
    - _PyUop_num_popped
    - make_exit
    linkageType: ''
    returnType: int
    signature: int prepare_for_execution(_PyUOpInstruction *buffer, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Python/optimizer.c:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - exit_count
    - length
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1118
    functionName: allocate_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_NewVar
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      allocate_executor(int exit_count, int length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PRED
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1127
    functionName: CHECK
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 79
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(PRED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1132
    functionName: target_unused
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int target_unused(int opcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1139,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1143,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1147,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1148,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1151,1
    - Dst: target_unused
      Src: /src/cpython/Python/optimizer.c:1151,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1154,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1158,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1159,1
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:1161,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1167,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1171,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1177
    functionName: sanity_check
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - CHECK
    - is_terminator
    - target_unused
    linkageType: ''
    returnType: void
    signature: void sanity_check(_PyExecutorObject *executor)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: count_exits
      Src: /src/cpython/Python/optimizer.c:1190,1
    - Dst: allocate_executor
      Src: /src/cpython/Python/optimizer.c:1191,1
    - Dst: _PyExecutor_GetColdExecutor
      Src: /src/cpython/Python/optimizer.c:1197,1
    - Dst: initial_temperature_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1200,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1205,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1211,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1219,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1220,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1221,1
    - Dst: _Py_ExecutorInit
      Src: /src/cpython/Python/optimizer.c:1222,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer.c:1224,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:1230,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:1232,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/optimizer.c:1233,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:1234,1
    - Dst: sanity_check
      Src: /src/cpython/Python/optimizer.c:1237,1
    - Dst: _PyJIT_Compile
      Src: /src/cpython/Python/optimizer.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1246,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/optimizer.c:1250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - buffer
    - length
    - dependencies
    argTypes:
    - _PyUOpInstruction*
    - int
    - _PyBloomFilter*
    assertStmts:
    - condition: (dest == executor->trace)
      pos:
        line_end: 1219
        line_start: 1219
        source_file: /src/cpython/Python/optimizer.c
    - condition: (buffer[0].opcode == _START_EXECUTOR)
      pos:
        line_end: 1204
        line_start: 1204
        source_file: /src/cpython/Python/optimizer.c
    - condition: (next_exit == -1)
      pos:
        line_end: 1218
        line_start: 1218
        source_file: /src/cpython/Python/optimizer.c
    - condition: (dest->opcode == _START_EXECUTOR)
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/cpython/Python/optimizer.c
    - condition: (opcode != _POP_JUMP_IF_FALSE && opcode != _POP_JUMP_IF_TRUE)
      pos:
        line_end: 1210
        line_start: 1210
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1252
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1252
    functionName: make_executor_from_uops
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - initial_temperature_backoff_counter
    - _PyUOpPrint
    - Py_DECREF
    - sanity_check
    - _PyObject_GC_TRACK
    - printf
    - _PyJIT_Compile
    - Py_GETENV
    - _Py_ExecutorInit
    - allocate_executor
    - _PyExecutor_GetColdExecutor
    - count_exits
    - assert
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      make_executor_from_uops(_PyUOpInstruction *buffer, int length, const _PyBloomFilter
      *dependencies)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:1265,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:1269,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer.c:1270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1271
    functionName: effective_trace_length
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - is_terminator
    - Py_UNREACHABLE
    - Py_FatalError
    linkageType: ''
    returnType: int
    signature: int effective_trace_length(_PyUOpInstruction *buffer, int length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_BloomFilter_Init
      Src: /src/cpython/Python/optimizer.c:1283,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1285,1
    - Dst: translate_bytecode_to_trace
      Src: /src/cpython/Python/optimizer.c:1286,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1291,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1292,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer.c:1293,1
    - Dst: _Py_uop_analyze_and_optimize
      Src: /src/cpython/Python/optimizer.c:1295,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1302,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1303,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1310,1
    - Dst: strncmp
      Src: /src/cpython/Python/optimizer.c:1310,1
    - Dst: strlen
      Src: /src/cpython/Python/optimizer.c:1310,1
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:1312,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1315,1
    - Dst: OPT_HIST
      Src: /src/cpython/Python/optimizer.c:1317,1
    - Dst: effective_trace_length
      Src: /src/cpython/Python/optimizer.c:1317,1
    - Dst: prepare_for_execution
      Src: /src/cpython/Python/optimizer.c:1318,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1319,1
    - Dst: make_executor_from_uops
      Src: /src/cpython/Python/optimizer.c:1320,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1324,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - frame
    - instr
    - exec_ptr
    - curr_stackentries
    - progress_needed
    argTypes:
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - _PyExecutorObject**
    - int
    - bool
    assertStmts:
    - condition: (_PyOpcode_uop_name[buffer[pc].opcode])
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length <= UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1318
        line_start: 1318
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length < UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1290
        line_start: 1290
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length < UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1301
        line_start: 1301
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length >= 1)
      pos:
        line_end: 1302
        line_start: 1302
        source_file: /src/cpython/Python/optimizer.c
    - condition: (strncmp(_PyOpcode_uop_name[buffer[pc].opcode], _PyOpcode_uop_name[opcode],
        strlen(_PyOpcode_uop_name[opcode])) == 0)
      pos:
        line_end: 1309
        line_start: 1309
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length <= UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1323
        line_start: 1323
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1327
      start: 1274
    functionDepth: 7
    functionLinenumber: 1274
    functionLinenumberEnd: 1327
    functionName: uop_optimize
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    - _Py_BloomFilter_Init
    - effective_trace_length
    - Py_GETENV
    - make_executor_from_uops
    - is_terminator
    - _Py_uop_analyze_and_optimize
    - OPT_HIST
    - translate_bytecode_to_trace
    - prepare_for_execution
    - assert
    - OPT_STAT_INC
    linkageType: ''
    returnType: int
    signature: "int uop_optimize(\n    _PyInterpreterFrame *frame,\n    _Py_CODEUNIT
      *instr,\n    _PyExecutorObject **exec_ptr,\n    int curr_stackentries,\n    bool
      progress_needed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts:
    - condition: (ptr != NULL)
      pos:
        line_end: 1371
        line_start: 1371
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1381
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1381
    functionName: address_to_hash
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t address_to_hash(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bloom
    argTypes:
    - _PyBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1389
    functionName: _Py_BloomFilter_Init
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_BloomFilter_Init(_PyBloomFilter *bloom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_to_hash
      Src: /src/cpython/Python/optimizer.c:1399,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bloom
    - ptr
    argTypes:
    - _PyBloomFilter*
    - void*
    assertStmts:
    - condition: (K <= 8)
      pos:
        line_end: 1399
        line_start: 1399
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1406
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1406
    functionName: _Py_BloomFilter_Add
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 3
    functionsReached:
    - assert
    - address_to_hash
    linkageType: ''
    returnType: void
    signature: void _Py_BloomFilter_Add(_PyBloomFilter *bloom, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bloom
    - hashes
    argTypes:
    - _PyBloomFilter*
    - _PyBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1417
    functionName: bloom_filter_may_contain
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bloom_filter_may_contain(_PyBloomFilter *bloom, _PyBloomFilter
      *hashes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:1422,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1431,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts:
    - condition: (interp->executor_list_head->vm_data.links.previous == NULL)
      pos:
        line_end: 1438
        line_start: 1438
        source_file: /src/cpython/Python/optimizer.c
    - condition: (head->vm_data.links.previous == NULL)
      pos:
        line_end: 1430
        line_start: 1430
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1440
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1440
    functionName: link_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void link_executor(_PyExecutorObject *executor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1449,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/optimizer.c:1460,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts:
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 1448
        line_start: 1448
        source_file: /src/cpython/Python/optimizer.c
    - condition: (interp->executor_list_head == executor)
      pos:
        line_end: 1460
        line_start: 1460
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1465
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1465
    functionName: unlink_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - PyInterpreterState_Get
    - assert
    linkageType: ''
    returnType: void
    signature: void unlink_executor(_PyExecutorObject *executor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: link_executor
      Src: /src/cpython/Python/optimizer.c:1475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - executor
    - dependency_set
    argTypes:
    - _PyExecutorObject*
    - _PyBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1468
    functionDepth: 2
    functionLinenumber: 1468
    functionLinenumberEnd: 1476
    functionName: _Py_ExecutorInit
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - link_executor
    linkageType: ''
    returnType: void
    signature: void _Py_ExecutorInit(_PyExecutorObject *executor, const _PyBloomFilter
      *dependency_set)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:1481,1
    - Dst: allocate_executor
      Src: /src/cpython/Python/optimizer.c:1485,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:1487,1
    - Dst: _PyJIT_Compile
      Src: /src/cpython/Python/optimizer.c:1496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1497,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:1498,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Python/optimizer.c:1501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1504
    functionName: _PyExecutor_GetColdExecutor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_FatalError
    - _PyInterpreterState_GET
    - _PyJIT_Compile
    - _Py_SetImmortal
    - allocate_executor
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      _PyExecutor_GetColdExecutor(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutor_GetColdExecutor
      Src: /src/cpython/Python/optimizer.c:1513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - exit
    argTypes:
    - _PyExitData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1506
    functionDepth: 4
    functionLinenumber: 1506
    functionLinenumberEnd: 1515
    functionName: _PyExecutor_ClearExit
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _PyExecutor_GetColdExecutor
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _PyExecutor_ClearExit(_PyExitData *exit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:1526,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1527,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts:
    - condition: (instruction->op.code == ENTER_EXECUTOR)
      pos:
        line_end: 1526
        line_start: 1526
        source_file: /src/cpython/Python/optimizer.c
    - condition: (code->co_executors->executors[index] == executor)
      pos:
        line_end: 1528
        line_start: 1528
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1535
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1535
    functionName: _Py_ExecutorDetach
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - _PyCode_CODE
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _Py_ExecutorDetach(_PyExecutorObject *executor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:1540,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1544,1
    - Dst: unlink_executor
      Src: /src/cpython/Python/optimizer.c:1545,1
    - Dst: _PyExecutor_GetColdExecutor
      Src: /src/cpython/Python/optimizer.c:1552,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/optimizer.c:1553,1
    - Dst: initial_unreachable_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1558,1
    - Dst: _Py_ExecutorDetach
      Src: /src/cpython/Python/optimizer.c:1560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (executor->vm_data.valid == 1)
      pos:
        line_end: 1543
        line_start: 1543
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1563
      start: 1537
    functionDepth: 4
    functionLinenumber: 1537
    functionLinenumberEnd: 1563
    functionName: executor_clear
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - initial_unreachable_backoff_counter
    - _Py_ExecutorDetach
    - _PyExecutor_GetColdExecutor
    - _PyExecutorObject_CAST
    - unlink_executor
    - assert
    linkageType: ''
    returnType: int
    signature: int executor_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1568,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer.c:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - executor
    - obj
    argTypes:
    - _PyExecutorObject*
    - void*
    assertStmts:
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 1567
        line_start: 1567
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1570
      start: 1565
    functionDepth: 2
    functionLinenumber: 1565
    functionLinenumberEnd: 1570
    functionName: _Py_Executor_DependsOn
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - assert
    - _Py_BloomFilter_Add
    linkageType: ''
    returnType: void
    signature: void _Py_Executor_DependsOn(_PyExecutorObject *executor, void *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_BloomFilter_Init
      Src: /src/cpython/Python/optimizer.c:1579,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer.c:1580,1
    - Dst: PyList_New
      Src: /src/cpython/Python/optimizer.c:1583,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1590,1
    - Dst: bloom_filter_may_contain
      Src: /src/cpython/Python/optimizer.c:1592,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/optimizer.c:1593,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/optimizer.c:1599,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/optimizer.c:1600,1
    - Dst: executor_clear
      Src: /src/cpython/Python/optimizer.c:1601,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1606,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer.c:1609,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer.c:1610,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/optimizer.c:1612,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - interp
    - obj
    - is_invalidation
    argTypes:
    - PyInterpreterState*
    - void*
    - int
    assertStmts:
    - condition: (exec->vm_data.valid)
      pos:
        line_end: 1589
        line_start: 1589
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1613
      start: 1575
    functionDepth: 5
    functionLinenumber: 1575
    functionLinenumberEnd: 1613
    functionName: _Py_Executors_InvalidateDependency
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 5
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyList_GET_ITEM
    - Py_DECREF
    - _Py_BloomFilter_Add
    - PyList_Append
    - _Py_BloomFilter_Init
    - PyList_GET_SIZE
    - executor_clear
    - _Py_Executors_InvalidateAll
    - bloom_filter_may_contain
    - PyErr_Clear
    - assert
    - OPT_STAT_INC
    linkageType: ''
    returnType: void
    signature: void _Py_Executors_InvalidateDependency(PyInterpreterState *interp,
      void *obj, int is_invalidation)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1621,1
    - Dst: _PyCode_Clear_Executors
      Src: /src/cpython/Python/optimizer.c:1624,1
    - Dst: executor_clear
      Src: /src/cpython/Python/optimizer.c:1627,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - interp
    - is_invalidation
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts:
    - condition: (executor->vm_data.valid == 1 && executor->vm_data.linked == 1)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1633
      start: 1616
    functionDepth: 5
    functionLinenumber: 1616
    functionLinenumberEnd: 1633
    functionName: _Py_Executors_InvalidateAll
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 3
    functionsReached:
    - executor_clear
    - _PyCode_Clear_Executors
    - assert
    - OPT_STAT_INC
    linkageType: ''
    returnType: void
    signature: void _Py_Executors_InvalidateAll(PyInterpreterState *interp, int is_invalidation)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/optimizer.c:1640,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1648,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/optimizer.c:1651,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/optimizer.c:1660,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/optimizer.c:1661,1
    - Dst: executor_clear
      Src: /src/cpython/Python/optimizer.c:1662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1664,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer.c:1667,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer.c:1668,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/optimizer.c:1670,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (exec->vm_data.valid)
      pos:
        line_end: 1647
        line_start: 1647
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1671
      start: 1635
    functionDepth: 5
    functionLinenumber: 1635
    functionLinenumberEnd: 1671
    functionName: _Py_Executors_InvalidateCold
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_Append
    - PyList_GET_SIZE
    - executor_clear
    - _Py_Executors_InvalidateAll
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_Executors_InvalidateCold(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/optimizer.c:1677,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer.c:1679,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Python/optimizer.c:1682,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Python/optimizer.c:1683,1
    - Dst: fwrite
      Src: /src/cpython/Python/optimizer.c:1684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - PyObject*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1673
    functionDepth: 5
    functionLinenumber: 1673
    functionLinenumberEnd: 1686
    functionName: write_str
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyBytes_AsString
    - PyUnicode_AsEncodedString
    - fwrite
    - PyBytes_Size
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void write_str(PyObject *str, FILE *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Python/optimizer.c:1691,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:1693,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Python/optimizer.c:1698,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:1701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - code
    - executor
    argTypes:
    - PyCodeObject*
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1704
    functionName: find_line_number
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _Py_GetBaseCodeUnit
    - _PyCode_CODE
    - PyCode_Addr2Line
    linkageType: ''
    returnType: int
    signature: int find_line_number(PyCodeObject *code, _PyExecutorObject *executor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1717,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1718,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1721,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1722,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1724,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1727,1
    - Dst: write_str
      Src: /src/cpython/Python/optimizer.c:1728,1
    - Dst: find_line_number
      Src: /src/cpython/Python/optimizer.c:1729,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1730,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1742,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1744,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1750,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1751,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1762,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1764,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1768,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - executor
    - out
    argTypes:
    - _PyExecutorObject*
    - FILE*
    assertStmts:
    - condition: (exit_inst->opcode == _EXIT_TRACE)
      pos:
        line_end: 1763
        line_start: 1763
        source_file: /src/cpython/Python/optimizer.c
    - condition: (inst->format == UOP_FORMAT_JUMP)
      pos:
        line_end: 1761
        line_start: 1761
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1774
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1774
    functionName: executor_to_gv
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - fprintf
    - write_str
    - assert
    - find_line_number
    linkageType: ''
    returnType: void
    signature: void executor_to_gv(_PyExecutorObject *executor, FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1780,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1781,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/optimizer.c:1782,1
    - Dst: executor_to_gv
      Src: /src/cpython/Python/optimizer.c:1784,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1777
    functionDepth: 4
    functionLinenumber: 1777
    functionLinenumberEnd: 1789
    functionName: _PyDumpExecutors
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - fprintf
    - executor_to_gv
    - PyInterpreterState_Get
    linkageType: ''
    returnType: int
    signature: int _PyDumpExecutors(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/optimizer.c:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1793
    functionDepth: 1
    functionLinenumber: 1793
    functionLinenumberEnd: 1798
    functionName: _PyDumpExecutors
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyDumpExecutors(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer.c:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1805
    functionName: _PyExecutor_Free
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void _PyExecutor_Free(struct _PyExecutorObject *self)
  - 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/cpython/Python/getcompiler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetCompiler(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:28,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:39,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:42,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:44,1
    - Dst: _Py_Specialize_BinaryOp
      Src: /src/cpython/Python/generated_cases.c.h:45,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:46,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:47,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:49,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:50,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:52,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:53,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:58,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:59,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:60,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:61,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:63,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:65,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:67,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:68,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:72,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:76,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:77,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:79,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:79,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyEval_BinaryOps[oparg])
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (NB_ADD <= oparg)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg <= NB_OPARG_LAST)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 82
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 82
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - ADAPTIVE_COUNTER_TRIGGERS
    - ADVANCE_ADAPTIVE_COUNTER
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - _Py_Specialize_BinaryOp
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:93,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:102,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:103,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:104,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:105,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:106,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:112,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:113,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:114,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:115,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:116,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:123,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:124,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:125,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:125,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:126,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:126,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:127,1
    - Dst: _PyFloat_FromDouble_ConsumeInputs
      Src: /src/cpython/Python/generated_cases.c.h:131,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:132,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:133,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:138,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:138,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 140
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 140
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFloat_FromDouble_ConsumeInputs
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - STAT_INC
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_ADD_FLOAT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:151,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:160,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:161,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:162,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:163,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:164,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:170,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:171,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:172,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:173,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:174,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:181,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:182,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:183,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:183,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:184,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:184,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:185,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/generated_cases.c.h:185,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:186,1
    - Dst: _PyCompactLong_Add
      Src: /src/cpython/Python/generated_cases.c.h:187,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:188,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:189,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:190,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:191,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:193,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:194,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:198,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:198,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 200
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 200
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - STAT_INC
    - _PyLong_BothAreCompact
    - PyStackRef_IsNull
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyLong_CheckExact
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - _PyCompactLong_Add
    - PyStackRef_CLOSE_SPECIALIZED
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_ADD_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:211,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:221,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:222,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:223,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:224,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:225,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:231,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:232,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:233,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:234,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:235,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:243,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:244,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:245,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:245,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:246,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:246,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:247,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/generated_cases.c.h:248,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:249,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:250,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:252,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:254,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:258,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:258,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(right_o))
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 260
      start: 202
    functionDepth: 7
    functionLinenumber: 202
    functionLinenumberEnd: 260
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - PyUnicode_Concat
    - PyUnicode_CheckExact
    - STAT_INC
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_ADD_UNICODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:271,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:281,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:282,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:283,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:285,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:286,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:287,1
    - Dst: _PyBinaryOpSpecializationDescr*::guard
      Src: /src/cpython/Python/generated_cases.c.h:288,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:289,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:291,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:292,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:293,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:299,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:300,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:301,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:302,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:304,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:305,1
    - Dst: _PyBinaryOpSpecializationDescr*::action
      Src: /src/cpython/Python/generated_cases.c.h:306,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:310,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:314,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:315,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:317,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:317,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:318,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:322,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:322,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (d && d->guard)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 324
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 324
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyBinaryOpSpecializationDescr*::action
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - STAT_INC
    - _PyBinaryOpSpecializationDescr*::guard
    - PyStackRef_FromPyObjectSteal
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_EXTEND)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:335,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:344,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:345,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:346,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:347,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:348,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:354,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:355,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:356,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:357,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:358,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:366,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:367,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:367,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:368,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:368,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:368,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:371,1
    - Dst: CURRENT_OPERAND0
      Src: /src/cpython/Python/generated_cases.c.h:374,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:376,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:377,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:377,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:378,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:379,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:380,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:381,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:383,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:384,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/generated_cases.c.h:384,1
    - Dst: PyStackRef_IsHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:384,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:385,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:386,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:387,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:389,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:389,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:390,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Python/generated_cases.c.h:391,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:392,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:393,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:395,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:396,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:397,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:398,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:402,1
    - Dst: SKIP_OVER
      Src: /src/cpython/Python/generated_cases.c.h:403,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_REFCNT(left_o) >= 2 || !PyStackRef_IsHeapSafe(left))
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(right)))
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 407
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 407
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - SKIP_OVER
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - _PyFrame_SetStackPointer
    - PyUnicode_Append
    - PyUnicode_CheckExact
    - PyStackRef_IsHeapSafe
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - CURRENT_OPERAND0
    - PyStackRef_IsNull
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_INPLACE_ADD_UNICODE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:418,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:427,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:428,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:429,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:430,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:431,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:437,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:438,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:439,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:440,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:441,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:448,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:449,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:450,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:450,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:451,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:451,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:452,1
    - Dst: _PyFloat_FromDouble_ConsumeInputs
      Src: /src/cpython/Python/generated_cases.c.h:456,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:457,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:458,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:463,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:463,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 449
        line_start: 449
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 465
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 465
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFloat_FromDouble_ConsumeInputs
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - STAT_INC
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_MULTIPLY_FLOAT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:476,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:485,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:486,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:487,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:488,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:489,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:495,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:496,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:497,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:498,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:499,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:506,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:507,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:508,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:508,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:509,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:509,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:510,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/generated_cases.c.h:510,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:511,1
    - Dst: _PyCompactLong_Multiply
      Src: /src/cpython/Python/generated_cases.c.h:512,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:513,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:514,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:515,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:516,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:518,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:519,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:523,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:523,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 525
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 525
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - STAT_INC
    - _PyLong_BothAreCompact
    - _PyCompactLong_Multiply
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyLong_CheckExact
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - PyStackRef_CLOSE_SPECIALIZED
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_MULTIPLY_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:536,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:545,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:546,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:547,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:548,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:549,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:557,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:558,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:559,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:559,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:560,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:562,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/generated_cases.c.h:563,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:564,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:566,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Python/generated_cases.c.h:567,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:568,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:570,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:574,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:578,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:579,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:581,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:581,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:583,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:585,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:589,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:589,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 547
        line_start: 547
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 591
      start: 527
    functionDepth: 8
    functionLinenumber: 527
    functionLinenumberEnd: 591
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - _PyFrame_SetStackPointer
    - STAT_INC
    - PyStackRef_FromPyObjectSteal
    - _PyErr_SetKeyError
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyDict_GetItemRef
    - WITHIN_STACK_BOUNDS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_DICT)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:602,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:612,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:613,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:614,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:620,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:620,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:621,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:622,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:623,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:624,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:627,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:629,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:630,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:631,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:633,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:633,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:634,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:636,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:637,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:638,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:640,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:641,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:642,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:643,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:644,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:645,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:647,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:648,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:653,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:657,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:661,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:662,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:664,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:664,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:665,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:666,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:667,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:670,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:671,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:672,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 643
        line_start: 643
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 629
        line_start: 629
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFunction_Check(getitem_o))
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 675
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 675
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_Wrap
    - PyType_HasFeature
    - PyStackRef_FromPyObjectNew
    - PyStackRef_Unwrap
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _PyThreadState_HasStackSpace
    - STAT_INC
    - _PyFrame_PushUnchecked
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - PyFunction_GET_CODE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_GETITEM)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:686,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:696,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:697,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:698,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:699,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:700,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:706,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:707,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:708,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:709,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:710,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:718,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:719,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:720,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:720,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:721,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:721,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/generated_cases.c.h:722,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:723,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:724,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:725,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:729,1
    - Dst: _PyList_GetItemRef
      Src: /src/cpython/Python/generated_cases.c.h:730,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:731,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:733,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:734,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:735,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:737,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:738,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:740,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:741,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:742,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:743,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:745,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:746,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:747,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:748,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:750,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:751,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:755,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:759,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:760,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:762,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:762,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:764,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 733
        line_start: 733
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 741
        line_start: 741
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 698
        line_start: 698
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (res_o != NULL)
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 761
        line_start: 761
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 765
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 765
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - PyStackRef_FromPyObjectNew
    - PyLong_CheckExact
    - JUMP_TO_PREDICTED
    - DISPATCH
    - PyList_GET_SIZE
    - STAT_INC
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - PyList_GET_ITEM
    - _PyList_GetItemRef
    - _PyLong_IsNonNegativeCompact
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_LIST_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:776,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:786,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/generated_cases.c.h:787,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:788,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:789,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:790,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:796,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:797,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:798,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:799,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:800,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:808,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:809,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:810,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/generated_cases.c.h:810,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:811,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:811,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:812,1
    - Dst: _PyList_SliceSubscript
      Src: /src/cpython/Python/generated_cases.c.h:813,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:814,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:815,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:816,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:820,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:824,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:825,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:827,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:827,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:829,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:831,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:835,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:835,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PySlice_Check(sub))
      pos:
        line_end: 809
        line_start: 809
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 826
        line_start: 826
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 837
      start: 767
    functionDepth: 9
    functionLinenumber: 767
    functionLinenumberEnd: 837
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyList_CheckExact
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - UPDATE_MISS_STATS
    - STAT_INC
    - PyStackRef_FromPyObjectSteal
    - _PyList_SliceSubscript
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - PySlice_Check
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_LIST_SLICE)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:848,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:858,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:859,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:860,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:861,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:862,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:868,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:869,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:870,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:871,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:872,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:880,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:881,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:882,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:882,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:883,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:883,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/generated_cases.c.h:884,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:885,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:886,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:887,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/generated_cases.c.h:890,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:891,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:892,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:893,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/generated_cases.c.h:895,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/generated_cases.c.h:896,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/generated_cases.c.h:896,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:897,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:898,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:899,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:901,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/generated_cases.c.h:902,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:903,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:905,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:905,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:906,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:907,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:908,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:909,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:913,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:913,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 885
        line_start: 885
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 915
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 915
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - PyLong_CheckExact
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - PyStackRef_AsPyObjectBorrow
    - PyUnicode_READ_CHAR
    - PyStackRef_FromPyObjectBorrow
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyUnicode_CheckExact
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - PyUnicode_GET_LENGTH
    - _Py_SINGLETON
    - _PyLong_IsNonNegativeCompact
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_STR_INT)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:936,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:937,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:938,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:939,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:940,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:946,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:947,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:948,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:949,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:950,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:958,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:959,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:960,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:960,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:961,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:961,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/generated_cases.c.h:962,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:963,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:964,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:965,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:968,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:969,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:970,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:971,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:973,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:974,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:975,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:976,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:977,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:979,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:979,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:980,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:984,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:985,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 959
        line_start: 959
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (res_o != NULL)
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 978
        line_start: 978
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 960
        line_start: 960
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 963
        line_start: 963
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 988
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 988
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - PyStackRef_FromPyObjectNew
    - PyLong_CheckExact
    - PyStackRef_CLOSE_SPECIALIZED
    - DISPATCH
    - JUMP_TO_PREDICTED
    - PyTuple_CheckExact
    - PyTuple_GET_SIZE
    - STAT_INC
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - _PyLong_IsNonNegativeCompact
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_TUPLE_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:999,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1008,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1009,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1010,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1011,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1012,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1018,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1019,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1020,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1021,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1022,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1029,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1030,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1031,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1031,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1032,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1032,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1033,1
    - Dst: _PyFloat_FromDouble_ConsumeInputs
      Src: /src/cpython/Python/generated_cases.c.h:1037,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1038,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1039,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1044,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1044,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 1031
        line_start: 1031
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1043
        line_start: 1043
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 1030
        line_start: 1030
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1046
      start: 990
    functionDepth: 4
    functionLinenumber: 990
    functionLinenumberEnd: 1046
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFloat_FromDouble_ConsumeInputs
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - STAT_INC
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBTRACT_FLOAT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1057,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1066,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:1067,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1068,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1069,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1070,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1076,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:1077,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1078,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1079,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1080,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1087,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1088,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1089,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1089,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1090,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1090,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1091,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/generated_cases.c.h:1091,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1092,1
    - Dst: _PyCompactLong_Subtract
      Src: /src/cpython/Python/generated_cases.c.h:1093,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1094,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1095,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1096,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1097,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1099,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1100,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1104,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1104,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 1090
        line_start: 1090
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1103
        line_start: 1103
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1068
        line_start: 1068
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 1088
        line_start: 1088
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1078
        line_start: 1078
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 1089
        line_start: 1089
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1106
      start: 1048
    functionDepth: 4
    functionLinenumber: 1048
    functionLinenumberEnd: 1106
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - STAT_INC
    - _PyLong_BothAreCompact
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyLong_CheckExact
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - PyStackRef_CLOSE_SPECIALIZED
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    - _PyCompactLong_Subtract
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBTRACT_INT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1115,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:1123,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1131,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Python/generated_cases.c.h:1132,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1132,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1133,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1134,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1141,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1141,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1142,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/generated_cases.c.h:1143,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:1144,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1145,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1149,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1149,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1150,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1151,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1152,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1154,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1156,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1160,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1160,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1148
        line_start: 1148
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1159
        line_start: 1159
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1162
      start: 1108
    functionDepth: 3
    functionLinenumber: 1108
    functionLinenumberEnd: 1162
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_DECREF
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - JUMP_TO_LABEL
    - _PyBuildSlice_ConsumeRefs
    - PyObject_GetItem
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_SLICE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1171,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1179,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1180,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1184,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/generated_cases.c.h:1187,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1189,1
    - Dst: _PyInterpolation_Build
      Src: /src/cpython/Python/generated_cases.c.h:1190,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1191,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1194,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1194,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1195,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1196,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1197,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1203,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1203,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1204,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1205,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1206,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1208,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1208,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1209,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1210,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1211,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1213,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1215,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1218,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1218,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1207
        line_start: 1207
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1193
        line_start: 1193
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1217
        line_start: 1217
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1220
      start: 1164
    functionDepth: 2
    functionLinenumber: 1164
    functionLinenumberEnd: 1220
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _Py_STR
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - _PyInterpolation_Build
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_INTERPOLATION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1229,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1233,1
    - Dst: _PyList_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/generated_cases.c.h:1234,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1235,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1237,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1239,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1242,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1242,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1241
        line_start: 1241
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1244
      start: 1222
    functionDepth: 5
    functionLinenumber: 1222
    functionLinenumberEnd: 1244
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - assert
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectStealMortal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyList_FromStackRefStealOnSuccess
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_LIST)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1253,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:1257,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:1258,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1259,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1264,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1266,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1268,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1268,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1269,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1271,1
    - Dst: _PyDict_FromItems
      Src: /src/cpython/Python/generated_cases.c.h:1272,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1276,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:1277,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1278,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1283,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1285,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1287,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1287,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1289,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1291,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1294,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1294,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1286
        line_start: 1286
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1296
      start: 1246
    functionDepth: 12
    functionLinenumber: 1246
    functionLinenumberEnd: 1296
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectStealMortal
    - _PyDict_FromItems
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_MAP)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1305,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1309,1
    - Dst: PySet_New
      Src: /src/cpython/Python/generated_cases.c.h:1310,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1311,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1313,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1318,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1320,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1322,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1322,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1323,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1330,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:1331,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1331,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1332,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1335,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1336,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1337,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1342,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1342,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:1344,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1345,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1346,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1348,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1351,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1351,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1321
        line_start: 1321
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1350
        line_start: 1350
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1341
        line_start: 1341
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1353
      start: 1298
    functionDepth: 11
    functionLinenumber: 1298
    functionLinenumberEnd: 1353
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - Py_DECREF
    - PyStackRef_FromPyObjectStealMortal
    - INSTRUCTION_STATS
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - PySet_New
    - assert
    - _PySet_AddTakeRef
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_SET)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1362,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1366,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1367,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1368,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/generated_cases.c.h:1369,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1370,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1375,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1377,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1379,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1379,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1381,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1383,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1386,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1386,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1378
        line_start: 1378
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1385
        line_start: 1385
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1388
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1388
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectStealMortal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - PySlice_New
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_SLICE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1397,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:1401,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:1402,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1403,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1408,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1410,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1412,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1412,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1413,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/cpython/Python/generated_cases.c.h:1415,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/generated_cases.c.h:1415,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:1416,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1417,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1422,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1424,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1426,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1426,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1428,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1430,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1433,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1433,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1425
        line_start: 1425
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1411
        line_start: 1411
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1435
      start: 1390
    functionDepth: 7
    functionLinenumber: 1390
    functionLinenumberEnd: 1435
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyUnicode_JoinArray
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _Py_STR
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_STRING)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1444,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1450,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1451,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1452,1
    - Dst: _PyTemplate_Build
      Src: /src/cpython/Python/generated_cases.c.h:1453,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1454,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1456,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1456,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1457,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1458,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1459,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1461,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1461,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1462,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1463,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1464,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1466,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1471,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1471,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1460
        line_start: 1460
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1473
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1473
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - _PyTemplate_Build
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_TEMPLATE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1482,1
    - Dst: _PyTuple_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/generated_cases.c.h:1486,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1488,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1490,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1493,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1493,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1492
        line_start: 1492
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1495
      start: 1475
    functionDepth: 3
    functionLinenumber: 1475
    functionLinenumberEnd: 1495
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - PyStackRef_FromPyObjectStealMortal
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - _PyTuple_FromStackRefStealOnSuccess
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_TUPLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1504,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1505,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:1506,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "Executing a cache.")
      pos:
        line_end: 1504
        line_start: 1504
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1508
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1508
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void TARGET(CACHE)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1517,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:1530,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:1533,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1535,1
    - Dst: _Py_Specialize_Call
      Src: /src/cpython/Python/generated_cases.c.h:1536,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1536,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1537,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:1538,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:1540,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:1541,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:1547,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1547,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1548,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1550,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1553,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1556,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1557,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1558,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1564,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1567,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:1571,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:1575,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:1576,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:1576,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1579,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:1580,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1584,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1586,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1586,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1588,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:1591,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:1593,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:1594,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1595,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1602,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1607,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1611,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1612,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1614,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1614,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1615,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1619,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:1620,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1624,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:1625,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1628,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1630,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:1631,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1634,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1637,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:1638,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1641,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1643,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:1644,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1645,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1649,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:1649,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1650,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1655,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1660,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1664,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1665,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1667,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1667,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1669,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1671,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1677,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1677,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1678,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:1679,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1680,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1682,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1685,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 127
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1585
        line_start: 1585
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1666
        line_start: 1666
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1676
        line_start: 1676
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 1648
        line_start: 1648
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1613
        line_start: 1613
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1686
      start: 1510
    functionDepth: 16
    functionLinenumber: 1510
    functionLinenumberEnd: 1686
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - ADAPTIVE_COUNTER_TRIGGERS
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - DISPATCH
    - Py_CLEAR
    - DISPATCH_INLINED
    - _Py_Specialize_Call
    - _Py_call_instrumentation_2args
    - ADVANCE_ADAPTIVE_COUNTER
    - check_periodics
    - PyStackRef_TYPE
    - PyStackRef_FromPyObjectSteal
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - PyObject_Vectorcall
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - read_u16
    - PyFunction_GET_CODE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1697,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1710,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1711,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1712,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:1719,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1720,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1721,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1722,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1723,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1724,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:1726,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1727,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1728,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1729,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:1732,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1733,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1734,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1735,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1737,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1738,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1739,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:1741,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:1743,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1744,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1745,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1746,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1748,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1749,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Python/generated_cases.c.h:1750,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1751,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1753,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1755,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1757,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1760,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1761,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1762,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1769,1
    - Dst: _PyFrame_PushTrampolineUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:1770,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1772,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1773,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:1773,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1774,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:1774,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:1775,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1776,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:1777,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1779,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1781,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1781,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1783,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:1784,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1785,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1786,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:1790,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1795,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:1796,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1797,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1798,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1799,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:1802,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:1803,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:1804,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1806,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1733
        line_start: 1733
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tp->tp_new == PyBaseObject_Type.tp_new)
      pos:
        line_end: 1736
        line_start: 1736
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tp->tp_alloc == PyType_GenericAlloc)
      pos:
        line_end: 1738
        line_start: 1738
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyFrame_GetBytecode(shim)[1].op.code == RETURN_VALUE)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1710
        line_start: 1710
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1727
        line_start: 1727
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tp->tp_flags & Py_TPFLAGS_HEAPTYPE)
      pos:
        line_end: 1737
        line_start: 1737
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1744
        line_start: 1744
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyFrame_GetBytecode(shim)[0].op.code == EXIT_INIT_CHECK)
      pos:
        line_end: 1772
        line_start: 1772
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 1797
        line_start: 1797
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 1794
        line_start: 1794
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1780
        line_start: 1780
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1807
      start: 1688
    functionDepth: 16
    functionLinenumber: 1688
    functionLinenumberEnd: 1807
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_Wrap
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - JUMP_TO_PREDICTED
    - PyStackRef_Unwrap
    - DISPATCH
    - _PyThreadState_HasStackSpace
    - STAT_INC
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyType_GenericAlloc
    - PyType_Check
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyStackRef_DUP
    - LLTRACE_RESUME_FRAME
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - JUMP_TO_LABEL
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - _PyFrame_PushTrampolineUnchecked
    - _PyFrame_GetBytecode
    - _PyEval_FrameClearAndPop
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_ALLOC_AND_ENTER_INIT)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1818,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1829,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1830,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1831,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1838,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1839,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1840,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1841,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:1843,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1843,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1844,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1845,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1846,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1852,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1852,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1853,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1854,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1855,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1857,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1860,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1861,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1862,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:1867,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1868,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:1869,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1870,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1871,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1872,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1876,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1877,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1878,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1883,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1884,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:1884,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1887,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1888,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1889,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1890,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1895,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:1898,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1899,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1900,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1901,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1907,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1908,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1909,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1915,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1916,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:1917,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:1923,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1936,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:1937,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1939,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1939,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1940,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1941,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1942,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:1945,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:1946,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:1947,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1949,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 1851
        line_start: 1851
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 1940
        line_start: 1940
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 1935
        line_start: 1935
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 1938
        line_start: 1938
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1888
        line_start: 1888
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1829
        line_start: 1829
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1870
        line_start: 1870
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1876
        line_start: 1876
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 1883
        line_start: 1883
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1844
        line_start: 1844
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1899
        line_start: 1899
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1907
        line_start: 1907
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1950
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1950
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_Wrap
    - PyStackRef_FromPyObjectNew
    - PyStackRef_Unwrap
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _PyThreadState_HasStackSpace
    - STAT_INC
    - _PyFrame_PushUnchecked
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BOUND_METHOD_EXACT_ARGS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1961,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1972,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1973,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1974,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:1981,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1982,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:1983,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1984,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1985,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1986,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:1989,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1990,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1991,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1992,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1995,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1996,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1997,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1999,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2000,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2001,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2002,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2008,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2009,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2009,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2010,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2010,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2011,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2013,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2014,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:2014,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2017,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2018,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2019,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2025,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2026,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2027,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2033,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2035,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2039,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2039,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:2040,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:2041,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:2041,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2042,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:2043,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2047,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2049,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2049,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2051,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:2053,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2066,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:2067,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2068,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2069,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2070,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:2073,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:2074,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:2075,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2077,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 2013
        line_start: 2013
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 2038
        line_start: 2038
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1972
        line_start: 1972
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1984
        line_start: 1984
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 2008
        line_start: 2008
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2068
        line_start: 2068
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1990
        line_start: 1990
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2000
        line_start: 2000
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 2009
        line_start: 2009
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1995
        line_start: 1995
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 2065
        line_start: 2065
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2025
        line_start: 2025
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2078
      start: 1952
    functionDepth: 16
    functionLinenumber: 1952
    functionLinenumberEnd: 2078
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_Wrap
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - JUMP_TO_PREDICTED
    - PyStackRef_Unwrap
    - DISPATCH
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - JUMP_TO_LABEL
    - PyStackRef_FunctionCheck
    - PyFunction_GET_CODE
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BOUND_METHOD_GENERAL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2089,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2102,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:2103,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2104,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2105,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2106,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2111,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2116,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2117,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2118,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2120,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:2121,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:2122,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2123,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2128,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2133,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2137,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2138,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2140,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2140,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2141,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2143,1
    - Dst: PyTypeObject*::tp_vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:2144,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2145,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:2146,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2147,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2152,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2157,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2161,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2162,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2164,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2164,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2166,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2168,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2174,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2174,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2175,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2176,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2177,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2179,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2139
        line_start: 2139
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2104
        line_start: 2104
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2116
        line_start: 2116
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2163
        line_start: 2163
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2173
        line_start: 2173
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2183
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2183
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - PyTypeObject*::tp_vectorcall
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyType_Check
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_CLASS)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2194,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2207,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2210,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2214,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2215,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2216,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2217,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/generated_cases.c.h:2219,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2220,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2221,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2222,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2224,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:2225,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:2226,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:2227,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2228,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2233,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2238,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2242,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2243,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2245,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2245,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2246,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2248,1
    - Dst: _PyCFunctionFast_CAST
      Src: /src/cpython/Python/generated_cases.c.h:2249,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Python/generated_cases.c.h:2250,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2253,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:2254,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2255,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:2255,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2256,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2261,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2266,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2270,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2271,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2273,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2273,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2275,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2277,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2283,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2283,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2284,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2285,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2286,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2288,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2291,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2215
        line_start: 2215
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2272
        line_start: 2272
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2282
        line_start: 2282
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2220
        line_start: 2220
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 2254
        line_start: 2254
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2244
        line_start: 2244
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2292
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2292
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - PyCFunction_CheckExact
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - _PyCFunctionFast_CAST
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyCFunction_GET_FUNCTION
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyCFunction_GET_SELF
    - PyStackRef_IsNull
    - PyCFunction_GET_FLAGS
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_FAST)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2303,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2316,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2319,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2323,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2324,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2325,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2326,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/generated_cases.c.h:2328,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2329,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2330,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2331,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2333,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2334,1
    - Dst: _PyCFunctionFastWithKeywords_CAST
      Src: /src/cpython/Python/generated_cases.c.h:2336,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:2336,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2337,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:2338,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:2339,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2340,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2345,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2350,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2354,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2355,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2357,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2357,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2358,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2360,1
    - Dst: cfunc
      Src: /src/cpython/Python/generated_cases.c.h:2361,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Python/generated_cases.c.h:2361,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2362,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:2363,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2364,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:2364,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2365,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2370,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2375,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2379,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2380,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2382,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2382,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2384,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2386,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2392,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2392,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2393,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2394,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2395,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2397,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2324
        line_start: 2324
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2329
        line_start: 2329
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2356
        line_start: 2356
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 2363
        line_start: 2363
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2381
        line_start: 2381
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2391
        line_start: 2391
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2401
      start: 2294
    functionDepth: 1
    functionLinenumber: 2294
    functionLinenumberEnd: 2401
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyCFunctionFastWithKeywords_CAST
    - cfunc
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - PyCFunction_CheckExact
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyCFunction_GET_FUNCTION
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyCFunction_GET_SELF
    - PyStackRef_IsNull
    - PyCFunction_GET_FLAGS
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_FAST_WITH_KEYWORDS)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2412,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2425,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2427,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2432,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2433,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2434,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2436,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2437,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2438,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2439,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/generated_cases.c.h:2441,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2442,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2443,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2444,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/generated_cases.c.h:2446,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2447,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2448,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2449,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2451,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:2452,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2454,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/generated_cases.c.h:2455,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Python/generated_cases.c.h:2455,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2455,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2456,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/generated_cases.c.h:2457,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2458,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:2458,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2459,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2460,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2461,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2463,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2463,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2464,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2465,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2466,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2468,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2470,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2476,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2476,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2477,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2478,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2479,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2481,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2484,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2462
        line_start: 2462
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2432
        line_start: 2432
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2442
        line_start: 2442
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2475
        line_start: 2475
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2437
        line_start: 2437
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2447
        line_start: 2447
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 2457
        line_start: 2457
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2485
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2485
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _Py_ReachedRecursionLimit
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _Py_LeaveRecursiveCallTstate
    - STAT_INC
    - PyCFunction_CheckExact
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyCFunction_GET_FUNCTION
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - _PyCFunction_TrampolineCall
    - JUMP_TO_LABEL
    - PyCFunction_GET_SELF
    - PyStackRef_IsNull
    - PyCFunction_GET_FLAGS
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_O)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2496,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2509,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2510,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2511,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Python/generated_cases.c.h:2512,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2512,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2513,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2515,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2517,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:2518,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2519,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2521,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2524,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2526,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2527,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2528,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2538,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:2539,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2541,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:2541,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2543,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2544,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2545,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2545,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2546,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2546,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:2547,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:2548,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2550,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:2551,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2554,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2556,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2558,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:2559,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2560,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:2561,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/generated_cases.c.h:2561,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2563,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:2564,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2567,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2570,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:2571,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2574,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2576,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:2577,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2578,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2584,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2587,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2588,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2588,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2589,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2589,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2590,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2590,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:2591,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:2592,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:2593,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:2593,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2595,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2595,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2596,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Python/generated_cases.c.h:2597,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2600,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2602,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2602,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2604,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2606,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:2608,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2610,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2611,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2611,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2612,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2613,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2613,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2615,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:2616,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2617,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2620,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2620,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2621,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2622,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2623,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2625,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2625,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2626,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2627,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2628,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2630,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2630,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2631,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2632,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2633,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2635,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2637,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2643,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2643,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2644,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2645,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2646,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2648,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2651,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2612
        line_start: 2612
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2624
        line_start: 2624
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2642
        line_start: 2642
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2594
        line_start: 2594
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2629
        line_start: 2629
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2544
        line_start: 2544
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2587
        line_start: 2587
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2619
        line_start: 2619
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2545
        line_start: 2545
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 1 == 1)
      pos:
        line_end: 2605
        line_start: 2605
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2589
        line_start: 2589
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2601
        line_start: 2601
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2610
        line_start: 2610
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2540
        line_start: 2540
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2652
      start: 2487
    functionDepth: 17
    functionLinenumber: 2487
    functionLinenumberEnd: 2652
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyMethod_Check
    - PyFunction_Check
    - _Py_Check_ArgsIterable
    - DISPATCH
    - Py_CLEAR
    - PyTuple_CheckExact
    - PyTuple_GET_SIZE
    - DISPATCH_INLINED
    - PyDict_CheckExact
    - _Py_call_instrumentation_2args
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_FromPyObjectSteal
    - check_periodics
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - PyObject_Call
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - PyFunction_GET_GLOBALS
    - _PyEvalFramePushAndInit_Ex
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PySequence_Tuple
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - PyFunction_GET_CODE
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_FUNCTION_EX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2661,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2665,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2666,1
    - Dst: func
      Src: /src/cpython/Python/generated_cases.c.h:2667,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2667,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2668,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2670,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2670,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2671,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2672,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2673,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2675,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2677,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2680,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2680,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= MAX_INTRINSIC_1)
      pos:
        line_end: 2664
        line_start: 2664
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2669
        line_start: 2669
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2679
        line_start: 2679
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2682
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2682
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - func
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_INTRINSIC_1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2691,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2697,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2698,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2699,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2700,1
    - Dst: func
      Src: /src/cpython/Python/generated_cases.c.h:2701,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2705,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2709,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2710,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2712,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2712,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2714,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2716,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2719,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2719,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= MAX_INTRINSIC_2)
      pos:
        line_end: 2696
        line_start: 2696
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2711
        line_start: 2711
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2718
        line_start: 2718
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2721
      start: 2684
    functionDepth: 1
    functionLinenumber: 2684
    functionLinenumberEnd: 2721
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - func
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_INTRINSIC_2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2732,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2744,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2745,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2746,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2747,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2753,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2756,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2757,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2758,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2765,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2766,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2767,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2768,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/generated_cases.c.h:2769,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2770,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2772,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2776,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2776,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2777,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2778,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2779,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2781,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2781,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2782,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2783,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2784,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2786,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2786,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2787,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2788,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2789,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2791,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2791,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:2791,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2795,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2795,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2756
        line_start: 2756
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2780
        line_start: 2780
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((!PyStackRef_IsNull(res)) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 2790
        line_start: 2790
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2745
        line_start: 2745
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2794
        line_start: 2794
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2775
        line_start: 2775
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2785
        line_start: 2785
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2797
      start: 2723
    functionDepth: 7
    functionLinenumber: 2723
    functionLinenumberEnd: 2797
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyObject_IsInstance
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - STAT_INC
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_ISINSTANCE)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2806,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:2820,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:2823,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2825,1
    - Dst: _Py_Specialize_CallKw
      Src: /src/cpython/Python/generated_cases.c.h:2826,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2826,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2827,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:2828,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:2830,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:2831,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2837,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2837,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2838,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2840,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2843,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2846,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2847,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2848,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2855,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2856,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2859,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:2863,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2864,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:2868,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:2869,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:2869,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2872,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:2873,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2877,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2879,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2879,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2880,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2881,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2882,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2884,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2886,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:2888,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:2890,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:2891,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2892,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2898,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2902,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2907,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2911,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2912,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2914,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2914,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2915,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2919,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:2920,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2924,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:2925,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2928,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2930,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:2931,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2934,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2937,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:2938,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2941,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2943,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:2944,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2945,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2949,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2953,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2957,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2962,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2966,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2967,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2969,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2969,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2971,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2973,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2977,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2977,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2978,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2913
        line_start: 2913
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2976
        line_start: 2976
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2968
        line_start: 2968
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 2878
        line_start: 2878
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 4 == 1 + INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 2885
        line_start: 2885
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2979
      start: 2799
    functionDepth: 16
    functionLinenumber: 2799
    functionLinenumberEnd: 2979
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - ADAPTIVE_COUNTER_TRIGGERS
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - DISPATCH
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - DISPATCH_INLINED
    - _Py_call_instrumentation_2args
    - ADVANCE_ADAPTIVE_COUNTER
    - PyStackRef_TYPE
    - PyStackRef_FromPyObjectSteal
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - PyObject_Vectorcall
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - _Py_Specialize_CallKw
    - read_u16
    - PyFunction_GET_CODE
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2990,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3002,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3003,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3004,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:3011,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3012,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3013,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3014,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3015,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3016,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:3019,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3020,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3021,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3022,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3025,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3026,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3027,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3029,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3030,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3031,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3032,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3038,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3038,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3040,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3041,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3041,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:3042,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:3043,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3044,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:3044,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3047,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3048,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3049,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3056,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3059,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3063,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:3064,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3065,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3065,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:3066,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:3067,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:3067,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3068,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:3069,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3073,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3075,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3075,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3076,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3077,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3078,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3080,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3080,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3082,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:3084,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3097,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:3098,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3099,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3100,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3101,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:3104,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:3105,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:3106,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3030
        line_start: 3030
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 3043
        line_start: 3043
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3079
        line_start: 3079
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 3096
        line_start: 3096
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3025
        line_start: 3025
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 3037
        line_start: 3037
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 3040
        line_start: 3040
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 3064
        line_start: 3064
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3020
        line_start: 3020
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3002
        line_start: 3002
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3014
        line_start: 3014
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 3099
        line_start: 3099
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3074
        line_start: 3074
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3109
      start: 2981
    functionDepth: 16
    functionLinenumber: 2981
    functionLinenumberEnd: 3109
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_Wrap
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - JUMP_TO_PREDICTED
    - PyStackRef_Unwrap
    - DISPATCH
    - PyTuple_GET_SIZE
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - JUMP_TO_LABEL
    - PyStackRef_FunctionCheck
    - PyFunction_GET_CODE
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_BOUND_METHOD)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3120,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3133,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:3134,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3135,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3136,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3137,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3139,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3140,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3141,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3142,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3151,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3153,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3156,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:3160,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:3161,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3162,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3166,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3170,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3175,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3179,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3180,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3182,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3182,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3183,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3185,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:3186,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3187,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:3188,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3192,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3194,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3194,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3195,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3196,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3197,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:3198,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3199,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3199,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3200,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3205,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3210,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3214,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3215,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3217,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3217,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3219,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3221,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3227,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3227,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3228,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3229,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3230,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3232,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3135
        line_start: 3135
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3226
        line_start: 3226
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3198
        line_start: 3198
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3140
        line_start: 3140
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 3150
        line_start: 3150
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3181
        line_start: 3181
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3193
        line_start: 3193
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3216
        line_start: 3216
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3236
      start: 3111
    functionDepth: 2
    functionLinenumber: 3111
    functionLinenumberEnd: 3236
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - JUMP_TO_PREDICTED
    - DISPATCH
    - PyTuple_GET_SIZE
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyObject_Vectorcall
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_NON_PY)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3247,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3258,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3259,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3260,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:3266,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3267,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:3268,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3269,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3270,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3271,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3275,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3276,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3277,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3283,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3284,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3285,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3293,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3296,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3300,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:3301,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3302,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3302,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:3303,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:3304,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:3304,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3305,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:3306,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3310,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3312,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3312,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3313,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3314,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3315,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3317,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3317,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3319,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:3321,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3334,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:3335,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3336,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3337,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3338,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:3341,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:3342,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:3343,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3283
        line_start: 3283
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 3301
        line_start: 3301
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3269
        line_start: 3269
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3275
        line_start: 3275
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3311
        line_start: 3311
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3258
        line_start: 3258
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3316
        line_start: 3316
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 3333
        line_start: 3333
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 3336
        line_start: 3336
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3346
      start: 3238
    functionDepth: 16
    functionLinenumber: 3238
    functionLinenumberEnd: 3346
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_Wrap
    - _PyEvalFramePushAndInit
    - JUMP_TO_PREDICTED
    - PyStackRef_Unwrap
    - DISPATCH
    - PyTuple_GET_SIZE
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - JUMP_TO_LABEL
    - PyFunction_GET_CODE
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_PY)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3357,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3368,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3369,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3370,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3371,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3377,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3380,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3381,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3382,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3389,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3390,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3391,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/generated_cases.c.h:3392,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3393,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3395,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/generated_cases.c.h:3397,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3398,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3398,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3400,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3403,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3403,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3404,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3405,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3406,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3408,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3408,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3409,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3410,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3411,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3412,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3416,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3416,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3415
        line_start: 3415
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3369
        line_start: 3369
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3380
        line_start: 3380
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3397
        line_start: 3397
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3402
        line_start: 3402
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3407
        line_start: 3407
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3418
      start: 3348
    functionDepth: 3
    functionLinenumber: 3348
    functionLinenumberEnd: 3418
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyLong_FromSsize_t
    - STAT_INC
    - PyStackRef_FromPyObjectSteal
    - PyObject_Length
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_LEN)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3429,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3440,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3443,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3444,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3445,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3451,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3453,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3454,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3455,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3460,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:3461,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3462,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3463,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3464,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3471,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3472,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:3473,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3474,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3475,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3476,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:3478,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3479,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3480,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3481,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3483,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:3484,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3484,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:3485,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3487,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3487,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3488,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3489,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3490,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3492,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3492,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3493,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3494,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3495,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3497,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3501,1
    - Dst: SKIP_OVER
      Src: /src/cpython/Python/generated_cases.c.h:3502,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3491
        line_start: 3491
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (next_instr->op.code == POP_TOP)
      pos:
        line_end: 3500
        line_start: 3500
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3486
        line_start: 3486
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3453
        line_start: 3453
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 3470
        line_start: 3470
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3443
        line_start: 3443
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3462
        line_start: 3462
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3474
        line_start: 3474
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3479
        line_start: 3479
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3506
      start: 3420
    functionDepth: 1
    functionLinenumber: 3420
    functionLinenumberEnd: 3506
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyList_CheckExact
    - LOCK_OBJECT
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - SKIP_OVER
    - STAT_INC
    - PyStackRef_AsPyObjectSteal
    - _PyList_AppendTakeRef
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - UNLOCK_OBJECT
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_LIST_APPEND)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3517,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3530,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3533,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3538,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3539,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3540,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3543,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3544,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3545,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3546,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3550,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3551,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3552,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3554,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3555,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3556,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3557,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3558,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3559,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3561,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:3563,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:3564,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3565,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3570,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3575,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3579,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3580,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3582,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3582,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3583,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3585,1
    - Dst: _PyCFunctionFast_CAST
      Src: /src/cpython/Python/generated_cases.c.h:3586,1
    - Dst: cfunc
      Src: /src/cpython/Python/generated_cases.c.h:3587,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3588,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:3589,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3590,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3590,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3591,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3596,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3601,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3605,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3606,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3608,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3608,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3610,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3612,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3618,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3618,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3619,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3620,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3621,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3623,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3626,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3544
        line_start: 3544
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3538
        line_start: 3538
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3557
        line_start: 3557
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (self != NULL)
      pos:
        line_end: 3554
        line_start: 3554
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3550
        line_start: 3550
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3581
        line_start: 3581
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3617
        line_start: 3617
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3589
        line_start: 3589
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3607
        line_start: 3607
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3627
      start: 3508
    functionDepth: 1
    functionLinenumber: 3508
    functionLinenumberEnd: 3627
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - cfunc
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - Py_IS_TYPE
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - _PyCFunctionFast_CAST
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_FAST)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3638,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3651,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3654,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3659,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3660,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3661,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3664,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3665,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3666,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3667,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3671,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3672,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3673,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3676,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3677,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3678,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3679,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3680,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3681,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3683,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:3685,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:3686,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3687,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3692,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3697,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3701,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3702,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3704,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3704,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3705,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3707,1
    - Dst: _PyCFunctionFastWithKeywords_CAST
      Src: /src/cpython/Python/generated_cases.c.h:3709,1
    - Dst: cfunc
      Src: /src/cpython/Python/generated_cases.c.h:3710,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3711,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:3712,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3713,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3713,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3714,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3719,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3724,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3728,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3729,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3731,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3731,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3733,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3735,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3741,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3741,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3742,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3743,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3744,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3746,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3749,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3703
        line_start: 3703
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3659
        line_start: 3659
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3665
        line_start: 3665
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3671
        line_start: 3671
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3712
        line_start: 3712
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3730
        line_start: 3730
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3740
        line_start: 3740
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (self != NULL)
      pos:
        line_end: 3676
        line_start: 3676
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3679
        line_start: 3679
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3750
      start: 3629
    functionDepth: 1
    functionLinenumber: 3629
    functionLinenumberEnd: 3750
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyCFunctionFastWithKeywords_CAST
    - cfunc
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - Py_IS_TYPE
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3761,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3774,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3775,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3777,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3782,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3783,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3784,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3787,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3788,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3789,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3790,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3794,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3795,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3796,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3797,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3798,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3801,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3802,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3803,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/generated_cases.c.h:3805,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3806,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3807,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3808,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3810,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3812,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/generated_cases.c.h:3813,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3814,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/generated_cases.c.h:3815,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3816,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3816,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3817,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3818,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3819,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3821,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3821,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3822,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3823,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3824,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3826,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3828,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3834,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3834,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3835,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3836,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3837,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3839,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3842,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 3773
        line_start: 3773
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3796
        line_start: 3796
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3815
        line_start: 3815
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3788
        line_start: 3788
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3801
        line_start: 3801
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3820
        line_start: 3820
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3833
        line_start: 3833
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3782
        line_start: 3782
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3806
        line_start: 3806
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3843
      start: 3752
    functionDepth: 1
    functionLinenumber: 3752
    functionLinenumberEnd: 3843
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _Py_ReachedRecursionLimit
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _Py_LeaveRecursiveCallTstate
    - STAT_INC
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - Py_IS_TYPE
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - _PyCFunction_TrampolineCall
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_NOARGS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3854,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3867,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3870,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3876,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3877,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3878,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3880,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3881,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3882,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3883,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3887,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3888,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3889,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/generated_cases.c.h:3891,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3892,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3893,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3894,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3898,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3898,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3900,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3901,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3902,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3904,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3906,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/generated_cases.c.h:3907,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3908,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3909,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3910,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/generated_cases.c.h:3911,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3912,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3912,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3913,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3918,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3923,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3927,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3928,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3930,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3930,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3932,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3934,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3940,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3940,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3941,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3942,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3943,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3945,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3948,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3892
        line_start: 3892
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3900
        line_start: 3900
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3911
        line_start: 3911
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3929
        line_start: 3929
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3881
        line_start: 3881
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3876
        line_start: 3876
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3887
        line_start: 3887
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 3939
        line_start: 3939
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3949
      start: 3845
    functionDepth: 1
    functionLinenumber: 3845
    functionLinenumberEnd: 3949
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _Py_ReachedRecursionLimit
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _Py_LeaveRecursiveCallTstate
    - STAT_INC
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - Py_IS_TYPE
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - _PyCFunction_TrampolineCall
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_O)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3960,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3972,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:3973,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3974,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3975,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3976,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3978,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3979,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3980,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3981,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3989,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3991,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3994,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:3998,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:3999,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4000,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4005,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4010,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4014,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4015,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4017,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4017,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4018,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4020,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:4021,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4025,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:4026,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4027,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:4027,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4028,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4033,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4038,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4042,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4043,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4045,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4045,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4047,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4049,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4055,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4055,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4056,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4057,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4058,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4060,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4063,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3974
        line_start: 3974
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 3988
        line_start: 3988
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 4026
        line_start: 4026
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4044
        line_start: 4044
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4054
        line_start: 4054
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3979
        line_start: 3979
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4016
        line_start: 4016
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4064
      start: 3951
    functionDepth: 2
    functionLinenumber: 3951
    functionLinenumberEnd: 4064
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - JUMP_TO_PREDICTED
    - DISPATCH
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyObject_Vectorcall
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_NON_PY_GENERAL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4075,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4085,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4086,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4087,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:4093,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4094,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:4095,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4096,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4097,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4098,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4102,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4103,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4104,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4110,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4111,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:4111,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4114,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4115,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4116,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4117,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4122,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:4125,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4126,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4127,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4128,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4134,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4135,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4136,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4142,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4143,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:4144,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:4150,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4163,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:4164,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4166,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4166,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4167,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4168,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4169,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:4172,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:4173,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:4174,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4126
        line_start: 4126
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4165
        line_start: 4165
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 4110
        line_start: 4110
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4102
        line_start: 4102
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4115
        line_start: 4115
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 4167
        line_start: 4167
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 4162
        line_start: 4162
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4085
        line_start: 4085
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4096
        line_start: 4096
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4134
        line_start: 4134
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4177
      start: 4066
    functionDepth: 1
    functionLinenumber: 4066
    functionLinenumberEnd: 4177
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_Wrap
    - PyStackRef_Unwrap
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _PyThreadState_HasStackSpace
    - STAT_INC
    - _PyFrame_PushUnchecked
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_PY_EXACT_ARGS)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4188,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4198,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4199,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4200,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:4206,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4207,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:4208,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4209,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4210,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4211,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4215,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4216,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4217,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4223,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4224,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4225,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4232,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4234,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4238,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:4239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:4240,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:4240,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4241,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:4242,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4246,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4248,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4248,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4250,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:4252,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4265,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:4266,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4267,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4268,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4269,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:4272,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:4273,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:4274,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4276,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4198
        line_start: 4198
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4209
        line_start: 4209
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 4264
        line_start: 4264
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4223
        line_start: 4223
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 4237
        line_start: 4237
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4215
        line_start: 4215
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4247
        line_start: 4247
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 4267
        line_start: 4267
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4277
      start: 4179
    functionDepth: 16
    functionLinenumber: 4179
    functionLinenumberEnd: 4277
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_Wrap
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - JUMP_TO_PREDICTED
    - DISPATCH
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - LOAD_SP
    - LOAD_IP
    - JUMP_TO_LABEL
    - PyFunction_GET_CODE
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_PY_GENERAL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4288,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4299,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4300,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4301,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4302,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4308,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4310,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4311,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4312,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4318,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4319,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4320,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4321,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/generated_cases.c.h:4322,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4323,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4327,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4327,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4328,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4329,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4330,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4332,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4334,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4340,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4340,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4341,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4342,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4343,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4345,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4300
        line_start: 4300
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4326
        line_start: 4326
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4310
        line_start: 4310
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4318
        line_start: 4318
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4339
        line_start: 4339
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4349
      start: 4279
    functionDepth: 4
    functionLinenumber: 4279
    functionLinenumberEnd: 4349
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyObject_Str
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - STAT_INC
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_STR_1)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4360,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4371,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4372,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4373,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4374,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4380,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4382,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4383,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4384,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4390,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4391,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4392,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4393,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:4394,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4395,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4399,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4399,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4400,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4401,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4402,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4404,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4406,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4412,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4412,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4413,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4414,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4415,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4417,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg == 1)
      pos:
        line_end: 4390
        line_start: 4390
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4411
        line_start: 4411
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4382
        line_start: 4382
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4372
        line_start: 4372
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4398
        line_start: 4398
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4421
      start: 4351
    functionDepth: 2
    functionLinenumber: 4351
    functionLinenumberEnd: 4421
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PySequence_Tuple
    - STAT_INC
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_TUPLE_1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4432,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4443,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4444,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4445,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4446,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4452,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4454,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4455,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4456,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4462,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4463,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4466,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:4467,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4467,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4470,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4470,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4471,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4472,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4473,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4454
        line_start: 4454
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4444
        line_start: 4444
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4469
        line_start: 4469
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4462
        line_start: 4462
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4476
      start: 4423
    functionDepth: 1
    functionLinenumber: 4423
    functionLinenumberEnd: 4476
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_TYPE_1)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4485,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4492,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4493,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4494,1
    - Dst: _PyEval_CheckExceptStarTypeValid
      Src: /src/cpython/Python/generated_cases.c.h:4495,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4496,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4498,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4502,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4506,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4507,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4509,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4509,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4510,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4514,1
    - Dst: _PyEval_ExceptionGroupMatch
      Src: /src/cpython/Python/generated_cases.c.h:4515,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4520,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4524,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4525,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4527,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4527,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4529,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4531,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4533,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:4535,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4536,1
    - Dst: PyErr_SetHandledException
      Src: /src/cpython/Python/generated_cases.c.h:4537,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4538,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4540,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4541,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4545,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4545,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4544
        line_start: 4544
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((match_o == NULL) == (rest_o == NULL))
      pos:
        line_end: 4530
        line_start: 4530
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4508
        line_start: 4508
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4526
        line_start: 4526
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4547
      start: 4478
    functionDepth: 8
    functionLinenumber: 4478
    functionLinenumberEnd: 4547
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyEval_CheckExceptStarTypeValid
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyEval_ExceptionGroupMatch
    - PyErr_SetHandledException
    - PyStackRef_FromPyObjectSteal
    - Py_IsNone
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CHECK_EG_MATCH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4556,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4562,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4563,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4564,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:4564,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4565,1
    - Dst: _PyEval_CheckExceptTypeValid
      Src: /src/cpython/Python/generated_cases.c.h:4566,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4567,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4569,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4571,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:4572,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4573,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4575,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4575,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4576,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4577,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4578,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4582,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4582,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyExceptionInstance_Check(left_o))
      pos:
        line_end: 4563
        line_start: 4563
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4581
        line_start: 4581
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4574
        line_start: 4574
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4584
      start: 4549
    functionDepth: 2
    functionLinenumber: 4549
    functionLinenumberEnd: 4584
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyErr_GivenExceptionMatches
    - _PyEval_CheckExceptTypeValid
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CHECK_EXC_MATCH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4595,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4604,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4606,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4608,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:4608,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4609,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:4610,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4611,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:4613,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4614,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4618,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4622,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4626,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4627,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4629,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4629,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4633,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:4634,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:4634,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:4635,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4636,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4641,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4641,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (throwflag)
      pos:
        line_end: 4605
        line_start: 4605
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (exc_value && PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 4607
        line_start: 4607
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4628
        line_start: 4628
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4640
        line_start: 4640
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4643
      start: 4586
    functionDepth: 9
    functionLinenumber: 4586
    functionLinenumberEnd: 4643
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - monitor_reraise
    - _PyFrame_SetStackPointer
    - _PyErr_SetRaisedException
    - JUMP_TO_LABEL
    - PyErr_GivenExceptionMatches
    - PyStackRef_FromPyObjectNew
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CLEANUP_THROW)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4652,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:4663,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:4666,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4668,1
    - Dst: _Py_Specialize_CompareOp
      Src: /src/cpython/Python/generated_cases.c.h:4669,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4670,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:4671,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:4673,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:4674,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4679,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4680,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4681,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4682,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Python/generated_cases.c.h:4683,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4687,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4691,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4692,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4694,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4694,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4696,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4699,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:4700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:4701,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4702,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4704,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4709,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4714,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4714,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4715,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((oparg >> 5) <= Py_GE)
      pos:
        line_end: 4680
        line_start: 4680
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4693
        line_start: 4693
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4713
        line_start: 4713
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4716
      start: 4645
    functionDepth: 3
    functionLinenumber: 4645
    functionLinenumberEnd: 4716
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - ADAPTIVE_COUNTER_TRIGGERS
    - DISPATCH
    - ADVANCE_ADAPTIVE_COUNTER
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - _Py_Specialize_CompareOp
    - OPCODE_DEFERRED_INC
    - PyStackRef_CLOSE
    - Py_DECREF
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - PyObject_IsTrue
    - JUMP_TO_LABEL
    - read_u16
    - PyObject_RichCompare
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4727,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4736,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:4737,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4738,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4739,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4740,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4746,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:4747,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4748,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4749,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4750,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4757,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4758,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4759,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/generated_cases.c.h:4760,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/generated_cases.c.h:4761,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/generated_cases.c.h:4762,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:4763,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:4764,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4769,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4769,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 4738
        line_start: 4738
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 4748
        line_start: 4748
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4768
        line_start: 4768
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4771
      start: 4718
    functionDepth: 1
    functionLinenumber: 4718
    functionLinenumberEnd: 4771
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFloat_CheckExact
    - STAT_INC
    - COMPARISON_BIT
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyFloat_AS_DOUBLE
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_CLOSE_SPECIALIZED
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_FLOAT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4782,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4791,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:4792,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4793,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4794,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4795,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4801,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:4802,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4803,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4804,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4805,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4812,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4813,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4814,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/generated_cases.c.h:4814,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4815,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/generated_cases.c.h:4815,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4816,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4817,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/generated_cases.c.h:4817,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/generated_cases.c.h:4818,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/generated_cases.c.h:4819,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/generated_cases.c.h:4820,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/generated_cases.c.h:4821,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:4822,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:4823,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4828,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4828,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 4803
        line_start: 4803
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: "(_PyLong_DigitCount((PyLongObject *)left_o) <= 1 &&\n                   _PyLong_DigitCount((PyLongObject
        *)right_o) <= 1)"
      pos:
        line_end: 4817
        line_start: 4816
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_IsCompact((PyLongObject *)right_o))
      pos:
        line_end: 4814
        line_start: 4814
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 4793
        line_start: 4793
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_IsCompact((PyLongObject *)left_o))
      pos:
        line_end: 4813
        line_start: 4813
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4827
        line_start: 4827
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4830
      start: 4773
    functionDepth: 1
    functionLinenumber: 4773
    functionLinenumberEnd: 4830
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - _PyLong_CompactValue
    - _PyLong_IsCompact
    - STAT_INC
    - COMPARISON_BIT
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyLong_DigitCount
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyStackRef_CLOSE_SPECIALIZED
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_INT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4841,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4851,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:4852,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4853,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4854,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4855,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4861,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:4862,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4863,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4864,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4865,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4873,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4874,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4875,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/generated_cases.c.h:4876,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4877,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:4878,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:4879,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4880,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4881,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4882,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4887,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4887,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 4853
        line_start: 4853
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg >> 5) == Py_EQ || (oparg >> 5) == Py_NE)
      pos:
        line_end: 4876
        line_start: 4876
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 4863
        line_start: 4863
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS)
      pos:
        line_end: 4881
        line_start: 4881
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS)
      pos:
        line_end: 4880
        line_start: 4880
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (eq == 0 || eq == 1)
      pos:
        line_end: 4879
        line_start: 4879
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4886
        line_start: 4886
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4889
      start: 4832
    functionDepth: 2
    functionLinenumber: 4832
    functionLinenumberEnd: 4889
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyUnicode_CheckExact
    - STAT_INC
    - _PyUnicode_Equal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_STR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4898,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:4908,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:4911,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4913,1
    - Dst: _Py_Specialize_ContainsOp
      Src: /src/cpython/Python/generated_cases.c.h:4914,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4915,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:4916,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:4918,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:4919,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4925,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4926,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4927,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/generated_cases.c.h:4928,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4932,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4936,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4937,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4939,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4939,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4941,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4947,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4947,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4938
        line_start: 4938
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4946
        line_start: 4946
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4949
      start: 4891
    functionDepth: 6
    functionLinenumber: 4891
    functionLinenumberEnd: 4949
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PySequence_Contains
    - ADAPTIVE_COUNTER_TRIGGERS
    - _Py_Specialize_ContainsOp
    - ADVANCE_ADAPTIVE_COUNTER
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4960,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4969,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:4970,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4971,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4972,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4973,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4981,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4982,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4983,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:4983,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4984,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4985,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/generated_cases.c.h:4986,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4990,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4994,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4995,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4997,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4997,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4999,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5005,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5005,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CONTAINS_OP))
      pos:
        line_end: 4971
        line_start: 4971
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5004
        line_start: 5004
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyDict_CheckExact(right_o))
      pos:
        line_end: 4982
        line_start: 4982
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 4996
        line_start: 4996
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5007
      start: 4951
    functionDepth: 3
    functionLinenumber: 4951
    functionLinenumberEnd: 5007
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - _PyFrame_SetStackPointer
    - STAT_INC
    - PyDict_Contains
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP_DICT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5018,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5027,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5028,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5029,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5030,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5031,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5039,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5040,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5041,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5041,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5042,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5043,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Python/generated_cases.c.h:5044,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5048,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5052,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5053,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5055,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5055,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5057,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5063,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5063,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CONTAINS_OP))
      pos:
        line_end: 5029
        line_start: 5029
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5054
        line_start: 5054
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyAnySet_CheckExact(right_o))
      pos:
        line_end: 5040
        line_start: 5040
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5062
        line_start: 5062
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5065
      start: 5009
    functionDepth: 9
    functionLinenumber: 5009
    functionLinenumberEnd: 5065
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - STAT_INC
    - PyAnySet_CheckExact
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - _PySet_Contains
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP_SET)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5074,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5079,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5081,1
    - Dst: conv_fn
      Src: /src/cpython/Python/generated_cases.c.h:5082,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5082,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5083,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5085,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5085,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5086,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5087,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5088,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5090,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:5092,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5095,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5095,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= FVC_STR && oparg <= FVC_ASCII)
      pos:
        line_end: 5078
        line_start: 5078
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5084
        line_start: 5084
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5094
        line_start: 5094
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5097
      start: 5067
    functionDepth: 1
    functionLinenumber: 5067
    functionLinenumberEnd: 5097
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - conv_fn
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CONVERT_VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5106,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:5110,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5113,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5113,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5112
        line_start: 5112
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5115
      start: 5099
    functionDepth: 1
    functionLinenumber: 5099
    functionLinenumberEnd: 5115
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_DUP
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(COPY)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5124,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5125,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5126,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:5126,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5127,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5129,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:5132,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:5133,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 5125
        line_start: 5125
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == co->co_nfreevars)
      pos:
        line_end: 5128
        line_start: 5128
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5136
      start: 5117
    functionDepth: 1
    functionLinenumber: 5117
    functionLinenumberEnd: 5136
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FunctionCheck
    - _PyFrame_GetCode
    - PyStackRef_FromPyObjectNew
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(COPY_FREE_VARS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5145,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:5148,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5149,1
    - Dst: PyObject_DelAttr
      Src: /src/cpython/Python/generated_cases.c.h:5150,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5150,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5151,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5153,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5153,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5154,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5155,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5156,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5158,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5152
        line_start: 5152
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5161
      start: 5138
    functionDepth: 1
    functionLinenumber: 5138
    functionLinenumberEnd: 5161
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - GETITEM
    - PyObject_DelAttr
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5170,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5171,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5171,1
    - Dst: PyCell_SwapTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:5172,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5174,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/generated_cases.c.h:5175,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5175,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5176,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5177,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:5180,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5181,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 5163
    functionDepth: 8
    functionLinenumber: 5163
    functionLinenumberEnd: 5183
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - Py_DECREF
    - _PyFrame_SetStackPointer
    - _PyEval_FormatExcUnbound
    - PyCell_SwapTakeRef
    - GETLOCAL
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_DEREF)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5192,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5193,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:5194,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5195,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:5196,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/generated_cases.c.h:5198,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5198,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5200,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5201,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5203,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5204,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5205,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5206,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5207,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5209
      start: 5185
    functionDepth: 7
    functionLinenumber: 5185
    functionLinenumberEnd: 5209
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_XCLOSE
    - _PyEval_FormatExcCheckArg
    - GETLOCAL
    - PyTuple_GetItem
    - _PyFrame_GetStackPointer
    - DISPATCH
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_FAST)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5218,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:5219,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5220,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/generated_cases.c.h:5221,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:5221,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5222,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5224,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5227,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:5228,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5230,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5231,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5234
      start: 5211
    functionDepth: 8
    functionLinenumber: 5211
    functionLinenumberEnd: 5234
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - GETITEM
    - _PyEval_FormatExcCheckArg
    - GLOBALS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - PyDict_Pop
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_GLOBAL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5243,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:5244,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:5245,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5248,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5249,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5251,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5252,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5254,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/generated_cases.c.h:5255,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5256,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5258,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:5259,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5262,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5263,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5266
      start: 5236
    functionDepth: 7
    functionLinenumber: 5236
    functionLinenumberEnd: 5266
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOCALS
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyObject_DelItem
    - _PyErr_Format
    - GETITEM
    - _PyEval_FormatExcCheckArg
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5275,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5280,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/generated_cases.c.h:5281,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5281,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5282,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5286,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5290,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5291,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5293,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5293,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5295,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5292
        line_start: 5292
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5298
      start: 5268
    functionDepth: 3
    functionLinenumber: 5268
    functionLinenumberEnd: 5298
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - PyObject_DelItem
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_SUBSCR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5307,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5314,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5315,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5316,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5317,1
    - Dst: _PyDict_MergeEx
      Src: /src/cpython/Python/generated_cases.c.h:5318,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5319,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5321,1
    - Dst: _PyEval_FormatKwargsError
      Src: /src/cpython/Python/generated_cases.c.h:5322,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5323,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5325,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5325,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5326,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5327,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5328,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5329,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5332,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5332,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5333,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5334,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5335,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5331
        line_start: 5331
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5324
        line_start: 5324
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5337
      start: 5300
    functionDepth: 6
    functionLinenumber: 5300
    functionLinenumberEnd: 5337
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyDict_MergeEx
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyEval_FormatKwargsError
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(DICT_MERGE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5346,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5351,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5352,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5353,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/generated_cases.c.h:5354,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5355,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5357,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:5358,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5359,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5361,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5362,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5364,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5365,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5368,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5368,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5369,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5370,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5371,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5372,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5375,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5375,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5376,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5377,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5378,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5374
        line_start: 5374
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5367
        line_start: 5367
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5380
      start: 5339
    functionDepth: 2
    functionLinenumber: 5339
    functionLinenumberEnd: 5380
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyErr_ExceptionMatches
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - PyDict_Update
    - INSTRUCTION_STATS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(DICT_UPDATE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5391,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:5396,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5398,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5399,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:5399,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5400,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:5401,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5402,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5404,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5408,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5412,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5413,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5415,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5415,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/generated_cases.c.h:5418,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5419,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:5420,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:5421,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5422,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5414
        line_start: 5414
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 5398
        line_start: 5398
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5425
      start: 5382
    functionDepth: 9
    functionLinenumber: 5382
    functionLinenumberEnd: 5425
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_INCREF
    - PyStackRef_CLOSE
    - monitor_reraise
    - _PyFrame_SetStackPointer
    - _PyErr_SetRaisedException
    - JUMP_TO_LABEL
    - PyErr_GivenExceptionMatches
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMPBY
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - DISPATCH
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(END_ASYNC_FOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5433,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5437,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5437,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5438,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5439,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5440,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5436
        line_start: 5436
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5442
      start: 5427
    functionDepth: 1
    functionLinenumber: 5427
    functionLinenumberEnd: 5442
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(END_FOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5451,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5460,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5460,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5461,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5462,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5463,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5459
        line_start: 5459
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5465
      start: 5444
    functionDepth: 1
    functionLinenumber: 5444
    functionLinenumberEnd: 5465
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(END_SEND)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5476,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5479,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5481,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:5481,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5482,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5483,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5484,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:5485,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:5490,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:5492,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5494,1
    - Dst: TIER1_TO_TIER2
      Src: /src/cpython/Python/generated_cases.c.h:5496,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:5498,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (executor->vm_data.code == code)
      pos:
        line_end: 5481
        line_start: 5481
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (executor->vm_data.index == INSTR_OFFSET() - 1)
      pos:
        line_end: 5480
        line_start: 5480
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 5482
        line_start: 5482
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 5483
        line_start: 5483
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (executor != tstate->interp->cold_executor)
      pos:
        line_end: 5493
        line_start: 5493
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5501
      start: 5467
    functionDepth: 1
    functionLinenumber: 5467
    functionLinenumberEnd: 5501
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - TIER1_TO_TIER2
    - Py_FatalError
    - _PyFrame_GetCode
    - INSTR_OFFSET
    - DISPATCH_GOTO
    - PAUSE_ADAPTIVE_COUNTER
    - DISPATCH
    - _Py_atomic_load_uintptr_relaxed
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(ENTER_EXECUTOR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5510,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:5513,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5514,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5515,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5517,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5517,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5518,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5519,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5522,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5522,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5521
        line_start: 5521
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5524
      start: 5503
    functionDepth: 1
    functionLinenumber: 5503
    functionLinenumberEnd: 5524
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyStackRef_IsNone
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - PyErr_Format
    - INSTRUCTION_STATS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(EXIT_INIT_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5533,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5535,1
    - Dst: PRE_DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:5538,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:5539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg)
      pos:
        line_end: 5534
        line_start: 5534
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5540
      start: 5526
    functionDepth: 1
    functionLinenumber: 5526
    functionLinenumberEnd: 5540
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - PRE_DISPATCH_GOTO
    - assert
    - DISPATCH_GOTO
    linkageType: ''
    returnType: void
    signature: void TARGET(EXTENDED_ARG)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5549,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5553,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5554,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5555,1
    - Dst: PyObject_Format
      Src: /src/cpython/Python/generated_cases.c.h:5556,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5557,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5559,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5559,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5560,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5561,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5562,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5564,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:5566,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5574,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5574,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5558
        line_start: 5558
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5573
        line_start: 5573
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5576
      start: 5542
    functionDepth: 5
    functionLinenumber: 5542
    functionLinenumberEnd: 5576
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyObject_Format
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyUnicode_CheckExact
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(FORMAT_SIMPLE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5585,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5591,1
    - Dst: PyObject_Format
      Src: /src/cpython/Python/generated_cases.c.h:5592,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5592,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5592,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5596,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5600,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5601,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5603,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5603,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5605,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:5607,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5610,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5610,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5602
        line_start: 5602
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5609
        line_start: 5609
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5612
      start: 5578
    functionDepth: 5
    functionLinenumber: 5578
    functionLinenumberEnd: 5612
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyObject_Format
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(FORMAT_WITH_SPEC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5621,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:5632,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:5635,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5637,1
    - Dst: _Py_Specialize_ForIter
      Src: /src/cpython/Python/generated_cases.c.h:5638,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5639,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:5640,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:5642,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:5643,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5648,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/generated_cases.c.h:5649,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5650,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/generated_cases.c.h:5651,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/generated_cases.c.h:5652,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5653,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:5655,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5657,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5664,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5664,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5663
        line_start: 5663
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5666
      start: 5614
    functionDepth: 10
    functionLinenumber: 5614
    functionLinenumberEnd: 5666
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - ADAPTIVE_COUNTER_TRIGGERS
    - ADVANCE_ADAPTIVE_COUNTER
    - _PyForIter_VirtualIteratorNext
    - PyStackRef_IsError
    - _Py_Specialize_ForIter
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - JUMPBY
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - PyStackRef_IsValid
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5677,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5686,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5687,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5688,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5694,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5695,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5696,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5697,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5698,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/generated_cases.c.h:5701,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5702,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5703,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5704,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5708,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5709,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5710,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5712,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:5714,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:5720,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5725,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:5726,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5727,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5728,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5729,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:5732,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:5733,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:5734,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5702
        line_start: 5702
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 5724
        line_start: 5724
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5708
        line_start: 5708
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 5727
        line_start: 5727
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5696
        line_start: 5696
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5686
        line_start: 5686
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5737
      start: 5668
    functionDepth: 1
    functionLinenumber: 5668
    functionLinenumberEnd: 5737
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_Unwrap
    - LOAD_SP
    - LOAD_IP
    - _PyFrame_SetStackPointer
    - DISPATCH
    - _PyFrame_StackPush
    - STAT_INC
    - _PyObject_IsUniquelyReferenced
    - PyStackRef_Wrap
    - LLTRACE_RESUME_FRAME
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_GEN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5748,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5758,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5759,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5760,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5761,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5762,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5764,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/generated_cases.c.h:5764,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/generated_cases.c.h:5766,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/generated_cases.c.h:5766,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5767,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5768,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5769,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5778,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5779,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5779,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5780,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:5781,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:5781,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:5782,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:5783,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5785,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5791,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5792,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5792,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5794,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/generated_cases.c.h:5794,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/generated_cases.c.h:5795,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5796,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5797,1
    - Dst: _PyList_GetItemRefNoLock
      Src: /src/cpython/Python/generated_cases.c.h:5798,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:5798,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5799,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5801,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5802,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5803,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:5806,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:5807,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5809,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:5812,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:5812,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:5812,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/generated_cases.c.h:5814,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5819,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5819,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5820,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5760
        line_start: 5760
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 5763
        line_start: 5763
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5767
        line_start: 5767
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5801
        line_start: 5801
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5818
        line_start: 5818
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(list_o) == &PyList_Type)
      pos:
        line_end: 5778
        line_start: 5778
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(list_o))
      pos:
        line_end: 5791
        line_start: 5791
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: "(_Py_IsOwnedByCurrentThread(list_o) ||\n                  _PyObject_GC_IS_SHARED(list_o))"
      pos:
        line_end: 5794
        line_start: 5793
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5821
      start: 5739
    functionDepth: 3
    functionLinenumber: 5739
    functionLinenumberEnd: 5821
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyList_GetItemRefNoLock
    - PyStackRef_FromPyObjectNew
    - DISPATCH
    - JUMP_TO_PREDICTED
    - PyStackRef_IsTaggedInt
    - PyList_GET_SIZE
    - STAT_INC
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_UntagInt
    - PyList_CheckExact
    - _Py_IsOwnedByCurrentThread
    - _PyFrame_SetStackPointer
    - _PyObject_GC_IS_SHARED
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - JUMPBY
    - PyStackRef_IncrementTaggedIntNoOverflow
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - PyList_GET_ITEM
    - PyStackRef_TagInt
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_LIST)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5832,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5840,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5841,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5842,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5843,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5844,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/generated_cases.c.h:5847,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5848,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5849,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5850,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5856,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5857,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5857,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5859,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/generated_cases.c.h:5859,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5861,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:5863,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5864,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5869,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5870,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5870,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5872,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/generated_cases.c.h:5872,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5874,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/generated_cases.c.h:5878,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5880,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:5882,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5886,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5886,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5887,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5848
        line_start: 5848
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 5869
        line_start: 5869
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 5871
        line_start: 5871
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5885
        line_start: 5885
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 5856
        line_start: 5856
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 5858
        line_start: 5858
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5842
        line_start: 5842
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (r->len > 0)
      pos:
        line_end: 5873
        line_start: 5873
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5888
      start: 5823
    functionDepth: 1
    functionLinenumber: 5823
    functionLinenumberEnd: 5888
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - DISPATCH
    - PyLong_FromLong
    - STAT_INC
    - _PyObject_IsUniquelyReferenced
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMPBY
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_RANGE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5899,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5909,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5910,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5911,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5912,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5913,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5915,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/generated_cases.c.h:5915,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5919,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5921,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5921,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5922,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:5923,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:5923,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:5924,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:5925,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5927,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5932,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5933,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5933,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:5934,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5935,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:5935,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:5936,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:5936,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/generated_cases.c.h:5937,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5942,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5942,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 5911
        line_start: 5911
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 5914
        line_start: 5914
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5941
        line_start: 5941
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 5932
        line_start: 5932
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((size_t)i < (size_t)PyTuple_GET_SIZE(tuple_o))
      pos:
        line_end: 5934
        line_start: 5934
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 5920
        line_start: 5920
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5944
      start: 5890
    functionDepth: 1
    functionLinenumber: 5890
    functionLinenumberEnd: 5944
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_UntagInt
    - PyTuple_GET_SIZE
    - PyStackRef_IncrementTaggedIntNoOverflow
    - DISPATCH
    - STAT_INC
    - PyStackRef_TagInt
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMPBY
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - PyTuple_GET_ITEM
    - INSTRUCTION_STATS
    - Py_TYPE
    - PyStackRef_IsTaggedInt
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_TUPLE)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5953,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5958,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5960,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5965,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5966,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5970,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5972,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5972,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5973,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5974,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5975,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5976,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5978,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5980,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5982,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5982,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5983,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5984,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5985,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5987,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5989,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5990,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5991,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5995,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:5996,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5997,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5998,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6000,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6003,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6003,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6004,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5971
        line_start: 5971
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6002
        line_start: 6002
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5981
        line_start: 5981
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6005
      start: 5946
    functionDepth: 1
    functionLinenumber: 5946
    functionLinenumberEnd: 6005
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - Py_DECREF
    - _PyErr_Format
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_AITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6014,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6018,1
    - Dst: _PyEval_GetANext
      Src: /src/cpython/Python/generated_cases.c.h:6019,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6019,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6020,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6022,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6024,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6027,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6027,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6026
        line_start: 6026
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6029
      start: 6007
    functionDepth: 5
    functionLinenumber: 6007
    functionLinenumberEnd: 6029
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyEval_GetANext
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ANEXT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6038,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6042,1
    - Dst: _PyEval_GetAwaitable
      Src: /src/cpython/Python/generated_cases.c.h:6043,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6043,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6044,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6046,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6046,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6047,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6048,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6049,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6051,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6053,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6056,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6056,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6045
        line_start: 6045
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6055
        line_start: 6055
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6058
      start: 6031
    functionDepth: 5
    functionLinenumber: 6031
    functionLinenumberEnd: 6058
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectSteal
    - _PyEval_GetAwaitable
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_AWAITABLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6067,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6073,1
    - Dst: _Py_GatherStats_GetIter
      Src: /src/cpython/Python/generated_cases.c.h:6074,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6075,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6078,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:6081,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6084,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/generated_cases.c.h:6085,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6085,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6086,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6088,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6088,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6089,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6090,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6091,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6093,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6095,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6102,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6102,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6101
        line_start: 6101
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6087
        line_start: 6087
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6104
      start: 6060
    functionDepth: 3
    functionLinenumber: 6060
    functionLinenumberEnd: 6104
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _Py_GatherStats_GetIter
    - _PyFrame_SetStackPointer
    - JUMP_TO_LABEL
    - PyObject_GetIter
    - PyStackRef_TagInt
    - PyStackRef_TYPE
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ITER)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6113,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6117,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/generated_cases.c.h:6118,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6118,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6119,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6121,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/generated_cases.c.h:6123,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6125,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6127,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6130,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6130,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6129
        line_start: 6129
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6132
      start: 6106
    functionDepth: 3
    functionLinenumber: 6106
    functionLinenumberEnd: 6132
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyLong_FromSsize_t
    - PyStackRef_FromPyObjectSteal
    - PyObject_Length
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_LEN)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6141,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6145,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6146,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:6147,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6148,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/generated_cases.c.h:6149,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6152,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6153,1
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6157,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6161,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/generated_cases.c.h:6162,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6163,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6165,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6167,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6168,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6172,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6173,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6134
    functionDepth: 3
    functionLinenumber: 6134
    functionLinenumberEnd: 6177
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyObject_GetIter
    - PyCoro_CheckExact
    - PyStackRef_FromPyObjectSteal
    - PyGen_CheckExact
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - _PyErr_SetString
    - INSTRUCTION_STATS
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_YIELD_FROM_ITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6186,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:6190,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6191,1
    - Dst: _PyEval_ImportFrom
      Src: /src/cpython/Python/generated_cases.c.h:6192,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6192,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6193,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6195,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6197,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6200,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6200,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6199
        line_start: 6199
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6202
      start: 6179
    functionDepth: 11
    functionLinenumber: 6179
    functionLinenumberEnd: 6202
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyEval_ImportFrom
    - GETITEM
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(IMPORT_FROM)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6211,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:6217,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6218,1
    - Dst: _PyEval_ImportName
      Src: /src/cpython/Python/generated_cases.c.h:6219,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6220,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6221,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6225,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6229,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6230,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6232,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6232,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6234,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6236,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6239,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6239,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6231
        line_start: 6231
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6238
        line_start: 6238
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6241
      start: 6204
    functionDepth: 10
    functionLinenumber: 6204
    functionLinenumberEnd: 6241
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyEval_ImportName
    - _PyFrame_SetStackPointer
    - GETITEM
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(IMPORT_NAME)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6252,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6265,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6265,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6266,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6268,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6271,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6274,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6275,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6276,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6284,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6285,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6288,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6291,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6298,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6299,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6303,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6305,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6313,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6316,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6320,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:6324,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:6325,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:6325,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6326,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:6327,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6331,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6333,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6333,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6335,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:6338,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:6340,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:6341,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6342,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6347,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6352,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6356,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6357,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6359,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6359,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6360,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6362,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:6363,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6367,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:6368,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6371,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6373,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:6374,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6377,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6380,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6381,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6384,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6386,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:6387,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6388,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6392,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:6392,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6393,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6398,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6403,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6407,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6408,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6410,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6410,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6412,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6414,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6420,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6420,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6421,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:6422,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6423,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6425,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6428,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 6391
        line_start: 6391
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6332
        line_start: 6332
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6358
        line_start: 6358
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6409
        line_start: 6409
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6419
        line_start: 6419
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6429
      start: 6243
    functionDepth: 16
    functionLinenumber: 6243
    functionLinenumberEnd: 6429
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - DISPATCH
    - Py_CLEAR
    - DISPATCH_INLINED
    - _Py_call_instrumentation_2args
    - check_periodics
    - PyStackRef_TYPE
    - PyStackRef_FromPyObjectSteal
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyObject_Vectorcall
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - PyFunction_GET_CODE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6440,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6453,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6454,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6455,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Python/generated_cases.c.h:6456,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6456,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6457,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6459,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6461,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:6462,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6463,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6465,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6468,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6470,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6471,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6472,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6482,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:6483,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6485,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:6485,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6487,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6488,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6489,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6489,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6490,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6490,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:6491,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:6492,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6494,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6495,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6498,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6500,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6502,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:6503,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6504,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:6505,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/generated_cases.c.h:6505,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6507,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:6508,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6511,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6514,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6515,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6518,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6520,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:6521,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6522,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6528,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6531,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6532,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6532,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6533,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6533,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6534,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6534,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:6535,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:6536,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:6537,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:6537,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6539,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6539,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6540,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Python/generated_cases.c.h:6541,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6544,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6546,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6546,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6548,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6550,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:6552,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6554,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6555,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6555,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6556,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6557,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6557,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6559,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:6560,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6561,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6564,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6564,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6565,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6566,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6567,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6569,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6569,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6570,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6571,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6572,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6574,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6574,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6575,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6576,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6577,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6579,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6581,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6587,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6587,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6588,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:6589,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6590,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6592,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6595,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 6531
        line_start: 6531
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6573
        line_start: 6573
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 6484
        line_start: 6484
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 6489
        line_start: 6489
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6545
        line_start: 6545
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6538
        line_start: 6538
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 6554
        line_start: 6554
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 6488
        line_start: 6488
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6563
        line_start: 6563
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 1 == 1)
      pos:
        line_end: 6549
        line_start: 6549
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 6533
        line_start: 6533
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6568
        line_start: 6568
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 6556
        line_start: 6556
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6586
        line_start: 6586
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6596
      start: 6431
    functionDepth: 17
    functionLinenumber: 6431
    functionLinenumberEnd: 6596
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyMethod_Check
    - PyFunction_Check
    - _Py_Check_ArgsIterable
    - DISPATCH
    - Py_CLEAR
    - PyTuple_CheckExact
    - PyTuple_GET_SIZE
    - DISPATCH_INLINED
    - PyDict_CheckExact
    - _Py_call_instrumentation_2args
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_FromPyObjectSteal
    - check_periodics
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - PyObject_Call
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - PyFunction_GET_GLOBALS
    - _PyEvalFramePushAndInit_Ex
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PySequence_Tuple
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - PyFunction_GET_CODE
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL_FUNCTION_EX)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6607,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6620,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6620,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6621,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6623,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6626,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6629,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6630,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6631,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6637,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6640,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6643,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6648,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6651,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6652,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6655,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6657,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6664,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6665,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6668,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:6672,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6673,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:6677,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:6678,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:6678,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6679,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:6680,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6684,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6686,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6686,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6687,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6688,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6689,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6691,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6693,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:6695,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/generated_cases.c.h:6697,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/generated_cases.c.h:6698,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6699,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6703,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6707,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6712,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6716,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6717,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6719,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6719,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6720,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6722,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:6723,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6727,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/generated_cases.c.h:6728,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6731,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6733,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:6734,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6737,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6740,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6741,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6744,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6746,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:6747,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6748,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6752,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6756,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6760,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6765,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6769,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6770,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6772,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6772,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6774,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6776,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6780,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6780,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6781,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6685
        line_start: 6685
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 4 == 1 + INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 6692
        line_start: 6692
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6718
        line_start: 6718
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6779
        line_start: 6779
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6771
        line_start: 6771
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6782
      start: 6598
    functionDepth: 16
    functionLinenumber: 6598
    functionLinenumberEnd: 6782
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - DISPATCH
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - DISPATCH_INLINED
    - _Py_call_instrumentation_2args
    - PyStackRef_TYPE
    - PyStackRef_FromPyObjectSteal
    - PyFunction_GET_GLOBALS
    - PyStackRef_AsPyObjectBorrow
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyObject_Vectorcall
    - Py_NewRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - PyFunction_GET_CODE
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL_KW)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6793,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6798,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:6799,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6805,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6807,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6808,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:6808,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6809,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:6810,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6811,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6813,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6817,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6821,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6822,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6824,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6824,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/generated_cases.c.h:6827,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6828,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:6829,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:6830,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6831,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6823
        line_start: 6823
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((next_instr-oparg)->op.code == END_SEND || (next_instr-oparg)->op.code
        >= MIN_INSTRUMENTED_OPCODE)
      pos:
        line_end: 6797
        line_start: 6797
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 6807
        line_start: 6807
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6835
      start: 6784
    functionDepth: 9
    functionLinenumber: 6784
    functionLinenumberEnd: 6835
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_INCREF
    - PyStackRef_CLOSE
    - monitor_reraise
    - _PyFrame_SetStackPointer
    - _PyErr_SetRaisedException
    - JUMP_TO_LABEL
    - PyErr_GivenExceptionMatches
    - INSTRUMENTED_JUMP
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMPBY
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - DISPATCH
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_ASYNC_FOR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6845,1
    - Dst: PyStackRef_GenCheck
      Src: /src/cpython/Python/generated_cases.c.h:6850,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6851,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/generated_cases.c.h:6852,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6852,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6853,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6855,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6859,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6859,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6860,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6861,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6862,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6858
        line_start: 6858
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6864
      start: 6837
    functionDepth: 9
    functionLinenumber: 6837
    functionLinenumberEnd: 6864
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_GenCheck
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - monitor_stop_iteration
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_FOR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6875,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6881,1
    - Dst: PyGen_Check
      Src: /src/cpython/Python/generated_cases.c.h:6882,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6882,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6883,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/generated_cases.c.h:6884,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6884,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6885,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6887,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6893,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6893,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6894,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6895,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6896,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6892
        line_start: 6892
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6898
      start: 6866
    functionDepth: 9
    functionLinenumber: 6866
    functionLinenumberEnd: 6898
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyCoro_CheckExact
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - PyGen_Check
    - monitor_stop_iteration
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_SEND)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6909,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6916,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/generated_cases.c.h:6917,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6918,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/generated_cases.c.h:6919,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/generated_cases.c.h:6920,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6921,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6923,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6925,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:6928,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6932,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6932,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6931
        line_start: 6931
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6934
      start: 6900
    functionDepth: 10
    functionLinenumber: 6900
    functionLinenumberEnd: 6934
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyForIter_VirtualIteratorNext
    - PyStackRef_IsError
    - INSTRUMENTED_JUMP
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - JUMPBY
    - DISPATCH
    - PyStackRef_IsValid
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_FOR_ITER)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6945,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6947,1
    - Dst: _Py_call_instrumentation_instruction
      Src: /src/cpython/Python/generated_cases.c.h:6948,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6950,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6952,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:6956,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6958,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:6960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (next_opcode > 0 && next_opcode < 256)
      pos:
        line_end: 6957
        line_start: 6957
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6961
      start: 6936
    functionDepth: 5
    functionLinenumber: 6936
    functionLinenumberEnd: 6961
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_GOTO
    - PAUSE_ADAPTIVE_COUNTER
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - assert
    - _Py_call_instrumentation_instruction
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_INSTRUCTION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6972,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6976,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:6977,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6978,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6980,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:6985,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6988
      start: 6963
    functionDepth: 1
    functionLinenumber: 6963
    functionLinenumberEnd: 6988
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - check_periodics
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_JUMP_BACKWARD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6999,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7000,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7002
      start: 6990
    functionDepth: 1
    functionLinenumber: 6990
    functionLinenumberEnd: 7002
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUMENTED_JUMP
    - INSTRUCTION_STATS
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_JUMP_FORWARD)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7014,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7018,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:7019,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7023,1
    - Dst: _Py_call_instrumentation_line
      Src: /src/cpython/Python/generated_cases.c.h:7024,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7026,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7029,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7033,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:7038,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:7041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7042
      start: 7004
    functionDepth: 5
    functionLinenumber: 7004
    functionLinenumberEnd: 7042
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyFrame_GetBytecode
    - DISPATCH_GOTO
    - PAUSE_ADAPTIVE_COUNTER
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetCode
    - _Py_call_instrumentation_line
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_LINE)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7053,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7066,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7067,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7068,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7071,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:7072,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7075,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7077,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7081,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7085,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7089,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7090,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7092,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7092,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7093,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7097,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:7098,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7099,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7103,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:7104,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7107,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7110,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:7111,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7114,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7116,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:7117,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7118,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7122,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7126,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7130,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7134,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7135,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7137,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7137,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7139,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:7141,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7142,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/generated_cases.c.h:7143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:7144,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7145,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7147,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7149,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7160,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7160,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7091
        line_start: 7091
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7159
        line_start: 7159
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7136
        line_start: 7136
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7162
      start: 7044
    functionDepth: 8
    functionLinenumber: 7044
    functionLinenumberEnd: 7162
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _Py_call_instrumentation_2args
    - Py_DECREF
    - GETITEM
    - DISPATCH
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_LOAD_SUPER_ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7174,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7176,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7178
      start: 7164
    functionDepth: 1
    functionLinenumber: 7164
    functionLinenumberEnd: 7178
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUMENTED_JUMP
    - INSTRUCTION_STATS
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_NOT_TAKEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7190,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7196,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7198,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7198,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7199,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7200,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7201,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7197
        line_start: 7197
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7203
      start: 7180
    functionDepth: 1
    functionLinenumber: 7180
    functionLinenumberEnd: 7203
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - INSTRUMENTED_JUMP
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_ITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7214,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7218,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:7218,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:7219,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7220,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7222,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7225,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7225,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 7217
        line_start: 7217
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7224
        line_start: 7224
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7227
      start: 7205
    functionDepth: 1
    functionLinenumber: 7205
    functionLinenumberEnd: 7227
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_BoolCheck
    - PyStackRef_IsFalse
    - RECORD_BRANCH_TAKEN
    - INSTRUMENTED_JUMP
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_FALSE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7238,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:7242,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7243,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7245,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7249,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7249,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7250,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7251,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7252,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7256,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7256,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7248
        line_start: 7248
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7255
        line_start: 7255
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7258
      start: 7229
    functionDepth: 1
    functionLinenumber: 7229
    functionLinenumberEnd: 7258
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyStackRef_IsNone
    - RECORD_BRANCH_TAKEN
    - INSTRUMENTED_JUMP
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7269,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:7273,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7274,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7277,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7277,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7278,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7279,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7280,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7281,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7276
        line_start: 7276
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7287
      start: 7260
    functionDepth: 1
    functionLinenumber: 7260
    functionLinenumberEnd: 7287
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyStackRef_IsNone
    - RECORD_BRANCH_TAKEN
    - INSTRUMENTED_JUMP
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_NOT_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7298,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7302,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:7302,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:7303,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7304,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7306,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7309,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7309,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 7301
        line_start: 7301
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7308
        line_start: 7308
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7311
      start: 7289
    functionDepth: 1
    functionLinenumber: 7289
    functionLinenumberEnd: 7311
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_BoolCheck
    - RECORD_BRANCH_TAKEN
    - INSTRUMENTED_JUMP
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_IsTrue
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_TRUE)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7322,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7328,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Python/generated_cases.c.h:7330,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7330,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7331,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7333,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:7335,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7339,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:7352,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:7353,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7353,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7355,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Python/generated_cases.c.h:7356,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7356,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7357,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7359,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7362,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7369,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:7370,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7371,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7373,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7379,1
    - Dst: _Py_call_instrumentation
      Src: /src/cpython/Python/generated_cases.c.h:7380,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7382,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7384,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7391
      start: 7313
    functionDepth: 7
    functionLinenumber: 7313
    functionLinenumberEnd: 7391
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _Py_call_instrumentation
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyFrame_GetBytecode
    - INSTRUCTION_STATS
    - _Py_Instrument
    - check_periodics
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _PyFrame_GetStackPointer
    - DISPATCH
    - _Py_atomic_load_uintptr_relaxed
    - _PyEval_GetExecutableCode
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_RESUME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7402,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7409,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/generated_cases.c.h:7410,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7412,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7413,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7415,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7421,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:7422,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7424,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7424,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7425,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7426,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:7426,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:7427,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:7430,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7431,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:7432,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:7434,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7438,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7438,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 7425
        line_start: 7425
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7437
        line_start: 7437
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7420
        line_start: 7420
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7423
        line_start: 7423
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7440
      start: 7393
    functionDepth: 7
    functionLinenumber: 7393
    functionLinenumberEnd: 7440
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOAD_IP
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _Py_call_instrumentation_arg
    - LLTRACE_RESUME_FRAME
    - PyStackRef_MakeHeapSafe
    - _PyEval_FrameClearAndPop
    - _Py_LeaveRecursiveCallPy
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - STACK_LEVEL
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_RETURN_VALUE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7451,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7458,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/generated_cases.c.h:7459,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7461,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7462,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7464,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7468,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7474,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/generated_cases.c.h:7476,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7477,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7478,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7482,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7482,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7483,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:7486,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7490,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7492,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7499,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:7500,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:7501,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:7502,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7506,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7506,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 7477
        line_start: 7477
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 7489
        line_start: 7489
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: "(frame->instr_ptr->op.code == INSTRUMENTED_LINE ||\n                  frame->instr_ptr->op.code
        == INSTRUMENTED_INSTRUCTION ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == SEND ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code] ==
        FOR_ITER ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == INTERPRETER_EXIT ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == ENTER_EXECUTOR)"
      pos:
        line_end: 7496
        line_start: 7491
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7505
        line_start: 7505
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7481
        line_start: 7481
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7473
        line_start: 7473
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 7476
        line_start: 7476
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7508
      start: 7442
    functionDepth: 7
    functionLinenumber: 7442
    functionLinenumberEnd: 7508
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOAD_IP
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _Py_call_instrumentation_arg
    - LLTRACE_RESUME_FRAME
    - PyStackRef_MakeHeapSafe
    - _Py_LeaveRecursiveCallPy
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_YIELD_VALUE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7517,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7520,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7521,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/generated_cases.c.h:7521,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7523,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:7523,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7524,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7526,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7530,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7531,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7532,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7534,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7534,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7535,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7536,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7537,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:7541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner == FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7519
        line_start: 7519
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 7522
        line_start: 7522
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 7520
        line_start: 7520
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame == &entry.frame)
      pos:
        line_end: 7525
        line_start: 7525
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 7529
        line_start: 7529
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7533
        line_start: 7533
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7543
      start: 7510
    functionDepth: 1
    functionLinenumber: 7510
    functionLinenumberEnd: 7543
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_IsIncomplete
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(INTERPRETER_EXIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7552,1
    - Dst: Py_Is
      Src: /src/cpython/Python/generated_cases.c.h:7558,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7558,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7558,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7559,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7563,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7567,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7568,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7570,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7570,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7574,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7574,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7569
        line_start: 7569
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7573
        line_start: 7573
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7576
      start: 7545
    functionDepth: 1
    functionLinenumber: 7545
    functionLinenumberEnd: 7576
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_Is
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(IS_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7585,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:7596,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7602,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:7603,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7604,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7606,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7611,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:7611,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:7612,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 7610
        line_start: 7610
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7615
      start: 7578
    functionDepth: 1
    functionLinenumber: 7578
    functionLinenumberEnd: 7615
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - INSTR_OFFSET
    - check_periodics
    - _PyFrame_GetStackPointer
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7626,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7631,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:7632,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7633,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7635,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7640,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:7640,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:7641,1
    - Dst: backoff_counter_triggers
      Src: /src/cpython/Python/generated_cases.c.h:7647,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7654,1
    - Dst: _PyOptimizer_Optimize
      Src: /src/cpython/Python/generated_cases.c.h:7655,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7656,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Python/generated_cases.c.h:7658,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7660,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7664,1
    - Dst: initial_jump_backoff_counter
      Src: /src/cpython/Python/generated_cases.c.h:7665,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7666,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7667,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7668,1
    - Dst: TIER1_TO_TIER2
      Src: /src/cpython/Python/generated_cases.c.h:7670,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:7674,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 7639
        line_start: 7639
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (executor != tstate->interp->cold_executor)
      pos:
        line_end: 7667
        line_start: 7667
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 7666
        line_start: 7666
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7679
      start: 7617
    functionDepth: 3
    functionLinenumber: 7617
    functionLinenumberEnd: 7679
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - TIER1_TO_TIER2
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - ADVANCE_ADAPTIVE_COUNTER
    - INSTR_OFFSET
    - check_periodics
    - restart_backoff_counter
    - initial_jump_backoff_counter
    - _PyFrame_GetStackPointer
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - backoff_counter_triggers
    - assert
    - _PyOptimizer_Optimize
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD_JIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7688,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7689,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:7689,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:7690,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 7688
        line_start: 7688
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7692
      start: 7681
    functionDepth: 1
    functionLinenumber: 7681
    functionLinenumberEnd: 7692
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTR_OFFSET
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD_NO_INTERRUPT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7701,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7706,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:7707,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7708,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7710,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7715,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:7715,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:7716,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 7714
        line_start: 7714
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7719
      start: 7694
    functionDepth: 1
    functionLinenumber: 7694
    functionLinenumberEnd: 7719
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - INSTR_OFFSET
    - check_periodics
    - _PyFrame_GetStackPointer
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD_NO_JIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7728,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:7729,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7731
      start: 7721
    functionDepth: 1
    functionLinenumber: 7721
    functionLinenumberEnd: 7731
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - JUMPBY
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_FORWARD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7740,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:7745,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7745,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7746,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7748,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7751,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7751,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7750
        line_start: 7750
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7753
      start: 7733
    functionDepth: 1
    functionLinenumber: 7733
    functionLinenumberEnd: 7753
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - assert
    - JUMP_TO_LABEL
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyList_AppendTakeRef
    linkageType: ''
    returnType: void
    signature: void TARGET(LIST_APPEND)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7762,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7767,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7768,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7769,1
    - Dst: _PyList_Extend
      Src: /src/cpython/Python/generated_cases.c.h:7770,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7771,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7773,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:7774,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7775,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:7777,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/generated_cases.c.h:7777,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7779,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/generated_cases.c.h:7780,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:7781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:7783,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7784,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7787,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7787,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7788,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7789,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7790,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7791,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7793,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:7793,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7795,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7795,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7796,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7797,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7798,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7786
        line_start: 7786
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_IsNone(none_val))
      pos:
        line_end: 7792
        line_start: 7792
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7794
        line_start: 7794
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7800
      start: 7755
    functionDepth: 2
    functionLinenumber: 7755
    functionLinenumberEnd: 7800
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyErr_ExceptionMatches
    - PyStackRef_CLOSE
    - PySequence_Check
    - _PyFrame_SetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_Format
    - DISPATCH
    - _PyErr_Clear
    - _PyList_Extend
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - Py_IsNone
    - INSTRUCTION_STATS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LIST_EXTEND)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7809,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:7819,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:7822,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:7823,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7825,1
    - Dst: _Py_Specialize_LoadAttr
      Src: /src/cpython/Python/generated_cases.c.h:7826,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7827,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:7828,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:7830,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:7831,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:7839,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7842,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Python/generated_cases.c.h:7843,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7843,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7844,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7846,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7846,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7851,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7851,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7852,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7853,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7854,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7855,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7856,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7863,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/generated_cases.c.h:7864,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7864,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7865,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7867,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7867,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7868,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7869,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7870,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7872,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7874,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7879,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7879,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7880,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7866
        line_start: 7866
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!PyStackRef_IsNull(*attr))
      pos:
        line_end: 7845
        line_start: 7845
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7850
        line_start: 7850
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7878
        line_start: 7878
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7881
      start: 7802
    functionDepth: 4
    functionLinenumber: 7802
    functionLinenumberEnd: 7881
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - ADAPTIVE_COUNTER_TRIGGERS
    - DISPATCH
    - GETITEM
    - ADVANCE_ADAPTIVE_COUNTER
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - _Py_Specialize_LoadAttr
    - _PyObject_GetMethodStackRef
    - JUMP_TO_LABEL
    - read_u16
    - PyObject_GetAttr
    - PyStackRef_IsNull
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7892,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:7901,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7902,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:7903,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7904,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7905,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:7906,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7908,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:7909,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7910,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7911,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:7912,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:7918,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:7919,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7920,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:7921,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7922,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7926,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7927,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7937,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7937,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 7904
        line_start: 7904
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 7907
        line_start: 7907
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 7919
        line_start: 7919
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 7936
        line_start: 7936
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 7910
        line_start: 7910
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7939
      start: 7883
    functionDepth: 1
    functionLinenumber: 7883
    functionLinenumberEnd: 7939
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyType_Check
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - UPDATE_MISS_STATS
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - DISPATCH
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_CLASS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7950,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:7959,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7960,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:7961,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7962,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7963,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:7964,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7966,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:7967,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7968,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7969,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:7970,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:7975,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:7976,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7976,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7977,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:7978,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7979,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7980,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:7981,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:7986,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:7987,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7988,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:7989,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7990,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7994,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7995,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8005,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8005,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 7962
        line_start: 7962
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 7987
        line_start: 7987
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8004
        line_start: 8004
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 7976
        line_start: 7976
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 7968
        line_start: 7968
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 7979
        line_start: 7979
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 7965
        line_start: 7965
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8007
      start: 7941
    functionDepth: 1
    functionLinenumber: 7941
    functionLinenumberEnd: 8007
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyType_Check
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH
    - UPDATE_MISS_STATS
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_CLASS_WITH_METACLASS_CHECK)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8018,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8023,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8024,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8025,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8026,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8027,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8029,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8030,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8031,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8033,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8034,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8035,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8036,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8037,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8038,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8040,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8040,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8042,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8044,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8045,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8046,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8049,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:8050,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8051,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8052,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8053,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8055,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:8056,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:8057,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8058,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8061,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8061,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8062,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:8064,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8036
        line_start: 8036
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 8048
        line_start: 8048
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_IS_TYPE(getattribute, &PyFunction_Type))
      pos:
        line_end: 8039
        line_start: 8039
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8026
        line_start: 8026
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8029
        line_start: 8029
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8033
        line_start: 8033
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8044
        line_start: 8044
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8051
        line_start: 8051
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (func_version != 0)
      pos:
        line_end: 8041
        line_start: 8041
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8060
        line_start: 8060
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8065
      start: 8009
    functionDepth: 1
    functionLinenumber: 8009
    functionLinenumberEnd: 8065
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyThreadState_HasStackSpace
    - DISPATCH_INLINED
    - GETITEM
    - UPDATE_MISS_STATS
    - STAT_INC
    - _PyFrame_PushUnchecked
    - PyStackRef_FromPyObjectNew
    - Py_IS_TYPE
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8076,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8085,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8086,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8086,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8087,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8088,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8089,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8090,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8091,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8096,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8097,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8097,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8098,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8098,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:8099,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:8099,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8100,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8101,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8102,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8107,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8108,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:8110,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8112,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8113,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8114,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8117,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8120,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8121,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8122,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8126,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8128,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8130,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8131,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8132,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8143,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8143,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8100
        line_start: 8100
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 8096
        line_start: 8096
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8112
        line_start: 8112
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8086
        line_start: 8086
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8089
        line_start: 8089
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8097
        line_start: 8097
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8120
        line_start: 8120
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8142
        line_start: 8142
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8145
      start: 8067
    functionDepth: 1
    functionLinenumber: 8067
    functionLinenumberEnd: 8145
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyObject_InlineValues
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - DISPATCH
    - FT_ATOMIC_LOAD_UINT8
    - STAT_INC
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - _Py_TryIncrefCompareStackRef
    - read_u16
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_INSTANCE_VALUE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8156,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8165,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8166,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8166,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8167,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8168,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8169,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8170,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8171,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8176,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8177,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:8178,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8180,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8181,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8182,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8188,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8189,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8190,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8191,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8192,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:8192,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8192,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8193,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8199,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8199,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (descr != NULL)
      pos:
        line_end: 8190
        line_start: 8190
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8188
        line_start: 8188
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8191
        line_start: 8191
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8166
        line_start: 8166
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8169
        line_start: 8169
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8180
        line_start: 8180
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8198
        line_start: 8198
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8201
      start: 8147
    functionDepth: 1
    functionLinenumber: 8147
    functionLinenumberEnd: 8201
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyType_HasFeature
    - DISPATCH
    - read_u16
    - UPDATE_MISS_STATS
    - STAT_INC
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyStackRef_FromPyObjectNew
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_METHOD_LAZY_DICT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8212,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8221,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8222,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8222,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8223,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8224,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8225,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8226,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8227,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8233,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8234,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8235,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8235,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8235,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8236,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8237,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8238,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:8238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8238,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8239,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8245,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8245,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8222
        line_start: 8222
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8225
        line_start: 8225
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8237
        line_start: 8237
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8236
        line_start: 8236
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8233
        line_start: 8233
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 8234
        line_start: 8234
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8244
        line_start: 8244
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8247
      start: 8203
    functionDepth: 1
    functionLinenumber: 8203
    functionLinenumberEnd: 8247
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyType_HasFeature
    - DISPATCH
    - UPDATE_MISS_STATS
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_METHOD_NO_DICT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8258,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8267,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8268,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8268,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8269,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8270,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8271,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8272,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8273,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8278,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8279,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8279,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:8280,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:8281,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8282,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8283,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8284,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8289,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8290,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8290,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8293,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8294,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8295,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8296,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8301,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8302,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8303,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8304,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8305,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:8305,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8305,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8306,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8312,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8312,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (descr != NULL)
      pos:
        line_end: 8303
        line_start: 8303
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8268
        line_start: 8268
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8271
        line_start: 8271
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8278
        line_start: 8278
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8301
        line_start: 8301
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8304
        line_start: 8304
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8282
        line_start: 8282
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8294
        line_start: 8294
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8311
        line_start: 8311
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8314
      start: 8249
    functionDepth: 1
    functionLinenumber: 8249
    functionLinenumberEnd: 8314
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyObject_InlineValues
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - _PyType_HasFeature
    - FT_ATOMIC_LOAD_UINT8
    - DISPATCH
    - UPDATE_MISS_STATS
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_METHOD_WITH_VALUES)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8325,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8334,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8335,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8336,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8337,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8338,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8339,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8340,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8343,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:8344,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8345,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8346,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8347,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8348,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8350,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8351,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8351,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:8352,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8353,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8355,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8356,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8357,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8360,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8363,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8364,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8365,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8369,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8371,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8373,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8374,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8375,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8386,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8386,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 8342
        line_start: 8342
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8346
        line_start: 8346
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8363
        line_start: 8363
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8338
        line_start: 8338
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (index < FT_ATOMIC_LOAD_SSIZE_RELAXED(keys->dk_nentries))
      pos:
        line_end: 8350
        line_start: 8350
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 8349
        line_start: 8349
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8355
        line_start: 8355
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8385
        line_start: 8385
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8388
      start: 8316
    functionDepth: 1
    functionLinenumber: 8316
    functionLinenumberEnd: 8388
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - DISPATCH
    - DK_UNICODE_ENTRIES
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - STAT_INC
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - _Py_TryIncrefCompareStackRef
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - read_u16
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_MODULE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8399,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8407,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8408,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8408,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8409,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8410,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8411,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8412,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8413,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8419,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8420,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8421,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8421,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8421,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8422,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8423,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8425,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8425,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8426,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8427,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8428,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8429,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8433,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8433,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (descr != NULL)
      pos:
        line_end: 8422
        line_start: 8422
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8424
        line_start: 8424
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8432
        line_start: 8432
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8408
        line_start: 8408
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8411
        line_start: 8411
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 8420
        line_start: 8420
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8419
        line_start: 8419
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8435
      start: 8390
    functionDepth: 1
    functionLinenumber: 8390
    functionLinenumberEnd: 8435
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH
    - UPDATE_MISS_STATS
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - read_obj
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_NONDESCRIPTOR_NO_DICT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8446,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8454,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8455,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8455,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8456,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8457,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8458,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8459,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8460,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8465,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8466,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8466,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:8467,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:8468,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8469,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8470,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8471,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8476,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8477,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8477,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8480,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8481,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8482,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8483,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8488,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8489,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8490,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8491,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8493,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8493,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8494,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8495,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8496,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8497,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8501,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8501,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8465
        line_start: 8465
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8481
        line_start: 8481
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8469
        line_start: 8469
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8492
        line_start: 8492
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8455
        line_start: 8455
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8458
        line_start: 8458
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8490
        line_start: 8490
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8488
        line_start: 8488
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8500
        line_start: 8500
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8503
      start: 8437
    functionDepth: 1
    functionLinenumber: 8437
    functionLinenumberEnd: 8503
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyObject_InlineValues
    - PyStackRef_FromPyObjectNew
    - DISPATCH
    - JUMP_TO_PREDICTED
    - FT_ATOMIC_LOAD_UINT8
    - STAT_INC
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - read_obj
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8514,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8522,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8523,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8524,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8530,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8531,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8531,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8532,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8533,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8534,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8535,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8536,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8542,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8543,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8544,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8544,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8548,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8549,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8550,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8553,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8554,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8555,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8558,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8559,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8560,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:8562,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8563,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8564,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8565,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8567,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:8568,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8568,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:8570,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8583,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:8584,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8586,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8586,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8587,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8588,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8589,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:8592,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:8593,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:8594,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8596,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8548
        line_start: 8548
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8558
        line_start: 8558
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 8587
        line_start: 8587
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 8582
        line_start: 8582
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8585
        line_start: 8585
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8531
        line_start: 8531
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8534
        line_start: 8534
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_IS_TYPE(fget, &PyFunction_Type))
      pos:
        line_end: 8543
        line_start: 8543
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8563
        line_start: 8563
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8522
        line_start: 8522
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8542
        line_start: 8542
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8553
        line_start: 8553
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8597
      start: 8505
    functionDepth: 1
    functionLinenumber: 8505
    functionLinenumberEnd: 8597
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_Wrap
    - PyStackRef_FromPyObjectNew
    - PyStackRef_Unwrap
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _PyThreadState_HasStackSpace
    - STAT_INC
    - _PyFrame_PushUnchecked
    - Py_IS_TYPE
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - read_obj
    - WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - LOAD_SP
    - LOAD_IP
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_PROPERTY)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8608,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8617,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8618,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8618,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8619,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8620,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8621,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8622,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8623,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8628,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8629,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/generated_cases.c.h:8631,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8633,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8634,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8635,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8638,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8640,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8641,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8642,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8645,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8647,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8648,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8652,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8653,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8664,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8664,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8633
        line_start: 8633
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8663
        line_start: 8663
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8618
        line_start: 8618
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8621
        line_start: 8621
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8640
        line_start: 8640
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8666
      start: 8599
    functionDepth: 1
    functionLinenumber: 8599
    functionLinenumberEnd: 8666
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH
    - read_u16
    - UPDATE_MISS_STATS
    - FT_ATOMIC_LOAD_PTR
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    - _Py_TryIncrefCompareStackRef
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_SLOT)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8677,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8686,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8687,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8687,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8688,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8689,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8690,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8691,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8692,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8697,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8698,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8699,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8699,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:8700,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8702,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8703,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8704,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/generated_cases.c.h:8706,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8707,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:8707,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/generated_cases.c.h:8709,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/generated_cases.c.h:8709,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8710,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8711,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8712,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8716,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8718,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8719,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8720,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:8723,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8726,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8727,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8728,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:8731,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8732,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8734,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8735,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8736,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/generated_cases.c.h:8739,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8742,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8743,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8744,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8747,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8749,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8752,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8753,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8754,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8758,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8761,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8762,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8763,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8774,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8774,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8775,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 8698
        line_start: 8698
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8734
        line_start: 8734
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8752
        line_start: 8752
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8710
        line_start: 8710
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8726
        line_start: 8726
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8742
        line_start: 8742
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8687
        line_start: 8687
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8690
        line_start: 8690
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8702
        line_start: 8702
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8773
        line_start: 8773
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8718
        line_start: 8718
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 8706
        line_start: 8706
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8776
      start: 8668
    functionDepth: 1
    functionLinenumber: 8668
    functionLinenumberEnd: 8776
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - DISPATCH
    - DK_UNICODE_ENTRIES
    - PyDict_CheckExact
    - GETITEM
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - STAT_INC
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - _Py_IsOwnedByCurrentThread
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - FT_ATOMIC_LOAD_PTR
    - _PyObject_GC_IS_SHARED
    - _PyObject_GetManagedDict
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - _Py_TryIncrefCompareStackRef
    - read_u16
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_WITH_HINT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8785,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8788,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/generated_cases.c.h:8789,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:8789,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:8789,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8790,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8792,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8795,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/generated_cases.c.h:8796,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8798,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8799,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:8801,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8804,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8804,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8803
        line_start: 8803
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8806
      start: 8778
    functionDepth: 9
    functionLinenumber: 8778
    functionLinenumberEnd: 8806
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - BUILTINS
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _Py_ID
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - _PyErr_SetString
    - INSTRUCTION_STATS
    - PyMapping_GetOptionalItem
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_BUILD_CLASS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8815,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8817,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8818,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8821,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8821,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < NUM_COMMON_CONSTANTS)
      pos:
        line_end: 8816
        line_start: 8816
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8820
        line_start: 8820
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8823
      start: 8808
    functionDepth: 1
    functionLinenumber: 8808
    functionLinenumberEnd: 8823
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_COMMON_CONSTANT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8832,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:8834,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8835,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8838,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8838,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8837
        line_start: 8837
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8840
      start: 8825
    functionDepth: 1
    functionLinenumber: 8825
    functionLinenumberEnd: 8840
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - GETITEM
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_FromPyObjectBorrow
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_CONST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8849,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8851,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8851,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8852,1
    - Dst: _PyCell_GetStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8853,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8854,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:8855,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8858,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8858,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8859,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/generated_cases.c.h:8860,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:8860,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8861,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8862,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8866,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8866,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8857
        line_start: 8857
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8865
        line_start: 8865
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8868
      start: 8842
    functionDepth: 8
    functionLinenumber: 8842
    functionLinenumberEnd: 8868
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyCell_GetStackRef
    - _PyEval_FormatExcUnbound
    - _PyFrame_GetCode
    - GETLOCAL
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_DEREF)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8877,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8879,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:8879,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8879,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:8880,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8880,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8883,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8883,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 8878
        line_start: 8878
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8882
        line_start: 8882
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8885
      start: 8870
    functionDepth: 1
    functionLinenumber: 8870
    functionLinenumberEnd: 8885
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_DUP
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8894,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8896,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8897,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8900,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8900,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8899
        line_start: 8899
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8902
      start: 8887
    functionDepth: 1
    functionLinenumber: 8887
    functionLinenumberEnd: 8902
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_AND_CLEAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8911,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8913,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:8913,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8913,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/generated_cases.c.h:8914,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8914,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8917,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8917,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 8912
        line_start: 8912
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8916
        line_start: 8916
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8919
      start: 8904
    functionDepth: 1
    functionLinenumber: 8904
    functionLinenumberEnd: 8919
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_Borrow
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_BORROW)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8928,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/generated_cases.c.h:8933,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8933,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/generated_cases.c.h:8934,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8934,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8938,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8938,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8937
        line_start: 8937
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8940
      start: 8921
    functionDepth: 1
    functionLinenumber: 8921
    functionLinenumberEnd: 8940
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_Borrow
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_BORROW_LOAD_FAST_BORROW)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8949,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8951,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:8952,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8953,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:8954,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/generated_cases.c.h:8956,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:8956,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8958,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8959,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:8961,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8964,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8964,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8963
        line_start: 8963
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8966
      start: 8942
    functionDepth: 7
    functionLinenumber: 8942
    functionLinenumberEnd: 8966
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - assert
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_DUP
    - _PyEval_FormatExcCheckArg
    - GETLOCAL
    - PyTuple_GetItem
    - _PyFrame_GetStackPointer
    - WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8975,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:8980,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8980,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:8981,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:8981,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8985,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8985,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 8984
        line_start: 8984
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8987
      start: 8968
    functionDepth: 1
    functionLinenumber: 8968
    functionLinenumberEnd: 8987
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_DUP
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_LOAD_FAST)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8996,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9002,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9003,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9004,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9004,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:9005,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9005,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9006,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/generated_cases.c.h:9007,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9008,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9010,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9013,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9013,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Python/generated_cases.c.h:9014,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9016,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/generated_cases.c.h:9017,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9017,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9018,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9019,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9023,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9023,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9024,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9025,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9026,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9027,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9030,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9030,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus)
      pos:
        line_end: 9003
        line_start: 9003
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (class_dict)
      pos:
        line_end: 9002
        line_start: 9002
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9022
        line_start: 9022
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9029
        line_start: 9029
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9032
      start: 8989
    functionDepth: 9
    functionLinenumber: 8989
    functionLinenumberEnd: 9032
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - assert
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH
    - _PyEval_FormatExcUnbound
    - PyCell_GetRef
    - PyStackRef_FromPyObjectSteal
    - GETLOCAL
    - PyTuple_GET_ITEM
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - WITHIN_STACK_BOUNDS
    - INSTRUCTION_STATS
    - PyMapping_GetOptionalItem
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FROM_DICT_OR_DEREF)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9041,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9045,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9047,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/generated_cases.c.h:9048,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9048,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9049,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9051,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9051,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9052,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9053,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9054,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9056,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9059,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9059,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9060,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9060,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9062,1
    - Dst: _PyDict_LoadGlobal
      Src: /src/cpython/Python/generated_cases.c.h:9063,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9063,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9064,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9066,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:9068,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9069,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:9070,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9072,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9074,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9078,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/generated_cases.c.h:9079,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9079,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9080,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9082,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9085,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/generated_cases.c.h:9086,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9086,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9087,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9089,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9092,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:9093,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9096,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9097,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9102,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9105,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9105,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9104
        line_start: 9104
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9050
        line_start: 9050
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9107
      start: 9034
    functionDepth: 9
    functionLinenumber: 9034
    functionLinenumberEnd: 9107
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - BUILTINS
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyDict_CheckExact
    - GETITEM
    - _PyEval_FormatExcCheckArg
    - _PyDict_LoadGlobal
    - GLOBALS
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - PyMapping_GetOptionalItem
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FROM_DICT_OR_GLOBALS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9116,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9124,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:9127,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9128,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9130,1
    - Dst: _Py_Specialize_LoadGlobal
      Src: /src/cpython/Python/generated_cases.c.h:9131,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9131,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9131,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9132,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:9133,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:9135,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:9136,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9145,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9146,1
    - Dst: _PyEval_LoadGlobalStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9147,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9147,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9147,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9148,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:9149,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9150,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9161,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9161,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9160
        line_start: 9160
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9163
      start: 9109
    functionDepth: 10
    functionLinenumber: 9109
    functionLinenumberEnd: 9163
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - BUILTINS
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - GETITEM
    - ADAPTIVE_COUNTER_TRIGGERS
    - ADVANCE_ADAPTIVE_COUNTER
    - _Py_Specialize_LoadGlobal
    - GLOBALS
    - _PyEval_LoadGlobalStackRef
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9174,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9181,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9182,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9183,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9184,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9185,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9186,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:9188,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9189,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9190,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9191,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9192,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9194,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/generated_cases.c.h:9194,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9198,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9199,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9200,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9201,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9202,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9203,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9204,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:9206,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9207,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9208,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9209,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9210,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9212,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/generated_cases.c.h:9212,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:9213,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9214,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9216,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9217,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9218,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9221,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9223,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9224,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9225,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9228,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9230,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9241,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9241,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9202
        line_start: 9202
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9190
        line_start: 9190
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (DK_IS_UNICODE(keys))
      pos:
        line_end: 9193
        line_start: 9193
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9216
        line_start: 9216
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9223
        line_start: 9223
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9240
        line_start: 9240
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9184
        line_start: 9184
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9208
        line_start: 9208
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (DK_IS_UNICODE(keys))
      pos:
        line_end: 9211
        line_start: 9211
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9243
      start: 9165
    functionDepth: 1
    functionLinenumber: 9165
    functionLinenumberEnd: 9243
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - BUILTINS
    - DK_UNICODE_ENTRIES
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - read_u16
    - STAT_INC
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - GLOBALS
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - DK_IS_UNICODE
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    - _Py_TryIncrefCompareStackRef
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL_BUILTIN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9254,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9264,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9265,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9266,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9267,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9268,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9269,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9270,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:9272,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9273,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9274,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9275,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9276,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9278,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/generated_cases.c.h:9278,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:9279,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9280,1
    - Dst: DK_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:9280,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9281,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9283,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9284,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9285,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9288,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9290,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9291,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9292,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9295,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9297,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9308,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9308,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (DK_IS_UNICODE(keys))
      pos:
        line_end: 9277
        line_start: 9277
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (index < DK_SIZE(keys))
      pos:
        line_end: 9279
        line_start: 9279
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9307
        line_start: 9307
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9274
        line_start: 9274
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9268
        line_start: 9268
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9283
        line_start: 9283
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9290
        line_start: 9290
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9310
      start: 9245
    functionDepth: 1
    functionLinenumber: 9245
    functionLinenumberEnd: 9310
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DK_UNICODE_ENTRIES
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - DK_SIZE
    - read_u16
    - STAT_INC
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - GLOBALS
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - DK_IS_UNICODE
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    - _Py_TryIncrefCompareStackRef
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL_MODULE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9319,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:9321,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9323,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/generated_cases.c.h:9324,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9326,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9327,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9329,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9332,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9332,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9331
        line_start: 9331
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9334
      start: 9312
    functionDepth: 1
    functionLinenumber: 9312
    functionLinenumberEnd: 9334
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOCALS
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - _PyErr_SetString
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_LOCALS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9343,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9345,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9346,1
    - Dst: _PyEval_LoadName
      Src: /src/cpython/Python/generated_cases.c.h:9347,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9348,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9350,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9352,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9355,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9355,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9354
        line_start: 9354
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9357
      start: 9336
    functionDepth: 10
    functionLinenumber: 9336
    functionLinenumberEnd: 9357
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - GETITEM
    - _PyEval_LoadName
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9366,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9368,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9370,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9373,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9373,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9372
        line_start: 9372
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg < _PY_NSMALLPOSINTS)
      pos:
        line_end: 9367
        line_start: 9367
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9375
      start: 9359
    functionDepth: 1
    functionLinenumber: 9359
    functionLinenumberEnd: 9375
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_FromPyObjectBorrow
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SMALL_INT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9384,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9399,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9399,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9400,1
    - Dst: _PyObject_LookupSpecialMethod
      Src: /src/cpython/Python/generated_cases.c.h:9401,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9402,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9405,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9406,1
    - Dst: _PyEval_SpecialMethodCanSuggest
      Src: /src/cpython/Python/generated_cases.c.h:9407,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9410,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9411,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:9411,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9412,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9413,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:9414,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9415,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9417,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9398
        line_start: 9398
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 9410
        line_start: 9410
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (errfmt != NULL)
      pos:
        line_end: 9411
        line_start: 9411
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9421
      start: 9377
    functionDepth: 5
    functionLinenumber: 9377
    functionLinenumberEnd: 9421
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyObject_LookupSpecialMethod
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_SpecialMethodCanSuggest
    - INSTRUCTION_STATS
    - DISPATCH
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SPECIAL)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9430,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9444,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:9448,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9450,1
    - Dst: _Py_Specialize_LoadSuperAttr
      Src: /src/cpython/Python/generated_cases.c.h:9451,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9452,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:9453,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:9455,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:9456,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9462,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9463,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9464,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9467,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:9468,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9471,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9473,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9477,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9481,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9485,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9486,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9488,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9488,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9489,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9493,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:9494,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9495,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9499,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:9500,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9503,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9506,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:9507,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9510,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9512,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:9513,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9514,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9518,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9522,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9526,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9530,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9531,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9533,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9533,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9535,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9537,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9538,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/generated_cases.c.h:9539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:9540,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9541,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9543,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9545,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9556,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9556,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9557,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9487
        line_start: 9487
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9555
        line_start: 9555
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9532
        line_start: 9532
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9558
      start: 9423
    functionDepth: 8
    functionLinenumber: 9423
    functionLinenumberEnd: 9558
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - ADAPTIVE_COUNTER_TRIGGERS
    - DISPATCH
    - Py_CLEAR
    - _Py_call_instrumentation_2args
    - GETITEM
    - ADVANCE_ADAPTIVE_COUNTER
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - _Py_Specialize_LoadSuperAttr
    - PyStackRef_CLOSE
    - Py_DECREF
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - PyObject_Vectorcall
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation_exc2
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - read_u16
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SUPER_ATTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9569,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9579,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9580,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9581,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9582,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9584,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9585,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9586,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:9588,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9589,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9590,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9591,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9593,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9594,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9595,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/generated_cases.c.h:9596,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9600,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9604,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9608,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9609,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9611,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9611,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9613,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9615,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9618,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9618,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!(oparg & 1))
      pos:
        line_end: 9581
        line_start: 9581
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 9584
        line_start: 9584
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 9589
        line_start: 9589
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9610
        line_start: 9610
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9617
        line_start: 9617
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9620
      start: 9560
    functionDepth: 11
    functionLinenumber: 9560
    functionLinenumberEnd: 9620
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyType_Check
    - _PySuper_Lookup
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - GETITEM
    - STAT_INC
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SUPER_ATTR_ATTR)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9631,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9642,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9643,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9644,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9645,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9647,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9648,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9649,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:9651,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9652,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9653,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9654,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9656,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9657,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9660,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/generated_cases.c.h:9661,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9662,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9663,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9665,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9671,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9671,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9672,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9673,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9674,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9679,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9679,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9680,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9684,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9688,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9689,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9691,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9691,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9692,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9696,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9696,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9697,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9678
        line_start: 9678
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9690
        line_start: 9690
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 9644
        line_start: 9644
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 9647
        line_start: 9647
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 9652
        line_start: 9652
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9670
        line_start: 9670
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9695
        line_start: 9695
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9698
      start: 9622
    functionDepth: 11
    functionLinenumber: 9622
    functionLinenumberEnd: 9698
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyType_Check
    - _PySuper_Lookup
    - JUMP_TO_LABEL
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH
    - GETITEM
    - STAT_INC
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SUPER_ATTR_METHOD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9707,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9708,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9708,1
    - Dst: PyCell_New
      Src: /src/cpython/Python/generated_cases.c.h:9709,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9711,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9713,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9714,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9714,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9715,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9716,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9717,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9719
      start: 9700
    functionDepth: 2
    functionLinenumber: 9700
    functionLinenumberEnd: 9719
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_XCLOSE
    - PyStackRef_FromPyObjectSteal
    - GETLOCAL
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - PyCell_New
    - INSTRUCTION_STATS
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(MAKE_CELL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9728,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9732,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9733,1
    - Dst: PyFunction_New
      Src: /src/cpython/Python/generated_cases.c.h:9735,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9735,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9736,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9738,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9738,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9739,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9740,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9741,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9743,1
    - Dst: _PyFunction_SetVersion
      Src: /src/cpython/Python/generated_cases.c.h:9745,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9747,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9750,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9750,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9737
        line_start: 9737
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9749
        line_start: 9749
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9752
      start: 9721
    functionDepth: 10
    functionLinenumber: 9721
    functionLinenumberEnd: 9752
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - PyFunction_New
    - _PyFrame_SetStackPointer
    - _PyFunction_SetVersion
    - GLOBALS
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(MAKE_FUNCTION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9761,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9768,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9769,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9769,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9770,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/generated_cases.c.h:9771,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9773,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9774,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9776,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9778,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9781,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9781,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 9768
        line_start: 9768
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9780
        line_start: 9780
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9783
      start: 9754
    functionDepth: 8
    functionLinenumber: 9754
    functionLinenumberEnd: 9783
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyDict_CheckExact
    - _PyDict_SetItem_Take2
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(MAP_ADD)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9792,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9800,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9800,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9800,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9801,1
    - Dst: _PyEval_MatchClass
      Src: /src/cpython/Python/generated_cases.c.h:9802,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9803,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9804,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9805,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9809,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9813,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9817,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9818,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9820,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9820,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9822,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9822,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9823,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:9826,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9827,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9833,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9833,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(PyStackRef_AsPyObjectBorrow(names)))
      pos:
        line_end: 9799
        line_start: 9799
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9832
        line_start: 9832
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9819
        line_start: 9819
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(attrs_o))
      pos:
        line_end: 9821
        line_start: 9821
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9835
      start: 9785
    functionDepth: 12
    functionLinenumber: 9785
    functionLinenumberEnd: 9835
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - assert
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectSteal
    - _PyEval_MatchClass
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_Occurred
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_CLASS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9844,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9850,1
    - Dst: _PyEval_MatchKeys
      Src: /src/cpython/Python/generated_cases.c.h:9851,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9852,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9852,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9853,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9855,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9857,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9860,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9860,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9859
        line_start: 9859
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9862
      start: 9837
    functionDepth: 12
    functionLinenumber: 9837
    functionLinenumberEnd: 9862
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyEval_MatchKeys
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_KEYS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9871,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9875,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9879,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9879,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9878
        line_start: 9878
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9881
      start: 9864
    functionDepth: 1
    functionLinenumber: 9864
    functionLinenumberEnd: 9881
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_TYPE
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_MAPPING)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9890,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9894,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9898,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9898,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9897
        line_start: 9897
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9900
      start: 9883
    functionDepth: 1
    functionLinenumber: 9883
    functionLinenumberEnd: 9900
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_TYPE
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_SEQUENCE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9909,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9911
      start: 9902
    functionDepth: 1
    functionLinenumber: 9902
    functionLinenumberEnd: 9911
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9920,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9922
      start: 9913
    functionDepth: 1
    functionLinenumber: 9913
    functionLinenumberEnd: 9922
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(NOT_TAKEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9931,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9935,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/generated_cases.c.h:9936,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:9937,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9938,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9939,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9941,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9941,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9940
        line_start: 9940
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9943
      start: 9924
    functionDepth: 1
    functionLinenumber: 9924
    functionLinenumberEnd: 9943
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_IsNone
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - Py_XSETREF
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_EXCEPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9952,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9959,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9959,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9960,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9961,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9962,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9958
        line_start: 9958
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9964
      start: 9945
    functionDepth: 1
    functionLinenumber: 9945
    functionLinenumberEnd: 9964
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_ITER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9975,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9979,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:9979,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:9980,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:9981,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:9982,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9984,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9984,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 9978
        line_start: 9978
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 9983
        line_start: 9983
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9986
      start: 9966
    functionDepth: 1
    functionLinenumber: 9966
    functionLinenumberEnd: 9986
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_BoolCheck
    - PyStackRef_IsFalse
    - RECORD_BRANCH_TAKEN
    - WITHIN_STACK_BOUNDS
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_FALSE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9997,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:10005,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10010,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10014,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10015,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10021,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:10021,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:10022,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:10023,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10024,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10027,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10027,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10020
        line_start: 10020
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10026
        line_start: 10026
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10029
      start: 9988
    functionDepth: 1
    functionLinenumber: 9988
    functionLinenumberEnd: 10029
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - PyStackRef_BoolCheck
    - _PyFrame_SetStackPointer
    - PyStackRef_IsNone
    - RECORD_BRANCH_TAKEN
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_IsTrue
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10040,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:10048,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10053,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10057,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10058,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10064,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:10064,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:10065,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:10066,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10067,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10070,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10070,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10063
        line_start: 10063
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10069
        line_start: 10069
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10072
      start: 10031
    functionDepth: 1
    functionLinenumber: 10031
    functionLinenumberEnd: 10072
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - PyStackRef_BoolCheck
    - _PyFrame_SetStackPointer
    - PyStackRef_IsFalse
    - PyStackRef_IsNone
    - RECORD_BRANCH_TAKEN
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_NOT_NONE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10083,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10087,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:10087,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:10088,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:10089,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10090,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10092,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10092,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10086
        line_start: 10086
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10091
        line_start: 10091
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10094
      start: 10074
    functionDepth: 1
    functionLinenumber: 10074
    functionLinenumberEnd: 10094
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_BoolCheck
    - RECORD_BRANCH_TAKEN
    - WITHIN_STACK_BOUNDS
    - JUMPBY
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_IsTrue
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_TRUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10103,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10107,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10107,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10108,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10109,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10110,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10106
        line_start: 10106
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10112
      start: 10096
    functionDepth: 1
    functionLinenumber: 10096
    functionLinenumberEnd: 10112
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_XCLOSE
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_TOP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10121,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10128,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10133,1
    - Dst: PyStackRef_ExceptionInstanceCheck
      Src: /src/cpython/Python/generated_cases.c.h:10133,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:10134,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10139,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10139,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_ExceptionInstanceCheck(exc))
      pos:
        line_end: 10132
        line_start: 10132
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10138
        line_start: 10138
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10141
      start: 10114
    functionDepth: 1
    functionLinenumber: 10114
    functionLinenumberEnd: 10141
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_ExceptionInstanceCheck
    - WITHIN_STACK_BOUNDS
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_AsPyObjectNew
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(PUSH_EXC_INFO)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10150,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10155,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10155,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10154
        line_start: 10154
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10157
      start: 10143
    functionDepth: 1
    functionLinenumber: 10143
    functionLinenumberEnd: 10157
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - WITHIN_STACK_BOUNDS
    - assert
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(PUSH_NULL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10168,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10171,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10172,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10173,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10175,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10175,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10176,1
    - Dst: do_raise
      Src: /src/cpython/Python/generated_cases.c.h:10177,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10178,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10180,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10181,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:10182,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10183,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < 3)
      pos:
        line_end: 10170
        line_start: 10170
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10174
        line_start: 10174
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 0)
      pos:
        line_end: 10179
        line_start: 10179
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10186
      start: 10159
    functionDepth: 9
    functionLinenumber: 10159
    functionLinenumberEnd: 10186
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - monitor_reraise
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - do_raise
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(RAISE_VARARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10197,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10202,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10203,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:10205,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:10205,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10207,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:10207,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10209,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10209,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10210,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:10211,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:10212,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= 0 && oparg <= 2)
      pos:
        line_end: 10202
        line_start: 10202
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 10206
        line_start: 10206
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10208
        line_start: 10208
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10214
      start: 10188
    functionDepth: 9
    functionLinenumber: 10188
    functionLinenumberEnd: 10214
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - monitor_reraise
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyErr_SetRaisedException
    - _PyFrame_GetBytecode
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - INSTRUCTION_STATS
    - PyStackRef_UntagInt
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(RERAISE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10223,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10224,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:10225,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "Executing RESERVED instruction.")
      pos:
        line_end: 10223
        line_start: 10223
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10227
      start: 10216
    functionDepth: 1
    functionLinenumber: 10216
    functionLinenumberEnd: 10227
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void TARGET(RESERVED)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10236,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10245,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Python/generated_cases.c.h:10247,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10247,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10248,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10250,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:10252,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10256,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:10269,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:10270,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10270,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10272,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Python/generated_cases.c.h:10273,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10273,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10274,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10276,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10279,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:10287,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10294,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:10295,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10296,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10298,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10303
      start: 10229
    functionDepth: 7
    functionLinenumber: 10229
    functionLinenumberEnd: 10303
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyFrame_GetBytecode
    - INSTRUCTION_STATS
    - _Py_Instrument
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - check_periodics
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _PyFrame_GetStackPointer
    - DISPATCH
    - _Py_atomic_load_uintptr_relaxed
    - _PyEval_GetExecutableCode
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10314,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10318,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10319,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10320,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:10324,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:10325,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10325,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10326,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10328,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10329,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10330,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10335,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10336,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10337,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10318
        line_start: 10318
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 10325
        line_start: 10325
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10328
        line_start: 10328
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10335
        line_start: 10335
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10341
      start: 10305
    functionDepth: 1
    functionLinenumber: 10305
    functionLinenumberEnd: 10341
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_GetCode
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - _Py_atomic_load_uintptr_relaxed
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME_CHECK)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10350,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10352,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:10352,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10353,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10354,1
    - Dst: _Py_MakeCoro
      Src: /src/cpython/Python/generated_cases.c.h:10355,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10356,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10358,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10360,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:10360,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10361,1
    - Dst: _PyFrame_Copy
      Src: /src/cpython/Python/generated_cases.c.h:10364,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10365,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:10368,1
    - Dst: _PyThreadState_PopFrame
      Src: /src/cpython/Python/generated_cases.c.h:10370,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:10372,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10373,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:10374,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:10375,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10378,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10378,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 10351
        line_start: 10351
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 10359
        line_start: 10359
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10377
        line_start: 10377
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->frame_obj == NULL)
      pos:
        line_end: 10364
        line_start: 10364
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10380
      start: 10343
    functionDepth: 3
    functionLinenumber: 10343
    functionLinenumberEnd: 10380
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOAD_IP
    - JUMP_TO_LABEL
    - _Py_MakeCoro
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectStealMortal
    - PyStackRef_FunctionCheck
    - LLTRACE_RESUME_FRAME
    - _PyFrame_Copy
    - _Py_LeaveRecursiveCallPy
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - STACK_LEVEL
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    - _PyThreadState_PopFrame
    linkageType: ''
    returnType: void
    signature: void TARGET(RETURN_GENERATOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10389,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10393,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:10394,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10396,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10396,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10397,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10398,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:10398,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:10399,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:10402,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10403,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:10404,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:10406,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10409,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10409,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 10392
        line_start: 10392
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10395
        line_start: 10395
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 10397
        line_start: 10397
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10408
        line_start: 10408
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10411
      start: 10382
    functionDepth: 3
    functionLinenumber: 10382
    functionLinenumberEnd: 10411
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOAD_IP
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - PyStackRef_MakeHeapSafe
    - _PyEval_FrameClearAndPop
    - _Py_LeaveRecursiveCallPy
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - STACK_LEVEL
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(RETURN_VALUE)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10420,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:10430,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:10433,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10435,1
    - Dst: _Py_Specialize_Send
      Src: /src/cpython/Python/generated_cases.c.h:10436,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10437,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:10438,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:10440,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:10441,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10447,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10449,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10451,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10451,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:10456,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:10456,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10458,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10458,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10462,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10464,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:10466,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:10468,1
    - Dst: PyIter_Check
      Src: /src/cpython/Python/generated_cases.c.h:10468,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10469,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10470,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10471,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10474,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/generated_cases.c.h:10475,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:10476,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10477,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10478,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10481,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:10482,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10483,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10485,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/generated_cases.c.h:10486,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10487,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10489,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/cpython/Python/generated_cases.c.h:10490,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10491,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10493,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10494,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10498,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10498,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10499,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10500,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10501,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10502,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10506,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10506,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10507,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10508,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10509,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10510,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10514,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10514,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10515,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( 2 + oparg <= UINT16_MAX)
      pos:
        line_end: 10461
        line_start: 10461
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (retval_o != NULL)
      pos:
        line_end: 10492
        line_start: 10492
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 10448
        line_start: 10448
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10497
        line_start: 10497
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10457
        line_start: 10457
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10505
        line_start: 10505
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10513
        line_start: 10513
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (gen_frame->previous == NULL)
      pos:
        line_end: 10463
        line_start: 10463
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10516
      start: 10413
    functionDepth: 9
    functionLinenumber: 10413
    functionLinenumberEnd: 10516
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyErr_ExceptionMatches
    - _PyGen_FetchStopIterationValue
    - ADAPTIVE_COUNTER_TRIGGERS
    - PyStackRef_IsNone
    - PyIter_Check
    - DISPATCH
    - DISPATCH_INLINED
    - ADVANCE_ADAPTIVE_COUNTER
    - PyStackRef_MakeHeapSafe
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - _Py_ID
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - _PyEval_MonitorRaise
    - JUMPBY
    - INSTRUCTION_STATS
    - Py_TYPE
    - JUMP_TO_LABEL
    - _PyFrame_StackPush
    - read_u16
    - _Py_Specialize_Send
    - PyObject_CallMethodOneArg
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10527,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10537,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10538,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10539,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10546,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10547,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10547,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10548,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10549,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10550,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10553,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10554,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10555,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:10557,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:10559,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:10559,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10563,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:10566,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10571,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:10572,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10574,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10574,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10575,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10576,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:10577,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:10580,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:10581,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:10582,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10584,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 10553
        line_start: 10553
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10573
        line_start: 10573
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 10537
        line_start: 10537
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 10548
        line_start: 10548
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->interp->eval_frame == NULL)
      pos:
        line_end: 10570
        line_start: 10570
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 10575
        line_start: 10575
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 2 + oparg <= UINT16_MAX)
      pos:
        line_end: 10562
        line_start: 10562
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10585
      start: 10518
    functionDepth: 1
    functionLinenumber: 10518
    functionLinenumberEnd: 10585
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_Unwrap
    - LOAD_SP
    - LOAD_IP
    - _PyFrame_SetStackPointer
    - DISPATCH
    - _PyFrame_StackPush
    - STAT_INC
    - PyStackRef_MakeHeapSafe
    - PyStackRef_Wrap
    - LLTRACE_RESUME_FRAME
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - CALL_STAT_INC
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND_GEN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10594,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:10596,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10597,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:10598,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10600,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10601,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10603,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/generated_cases.c.h:10604,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:10604,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:10604,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10605,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10607,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10610,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/generated_cases.c.h:10611,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10612,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10614,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10616,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:10617,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:10617,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:10617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:10619,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10620,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10622,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:10627,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10628,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10631
      start: 10587
    functionDepth: 10
    functionLinenumber: 10587
    functionLinenumberEnd: 10631
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOCALS
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - Py_DECREF
    - _PyErr_Format
    - _Py_ID
    - PyObject_SetItem
    - _PyFrame_GetStackPointer
    - PyDict_New
    - DISPATCH
    - INSTRUCTION_STATS
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: void
    signature: void TARGET(SETUP_ANNOTATIONS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10640,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10645,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:10646,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10646,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10647,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10648,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10650,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10653,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10653,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10652
        line_start: 10652
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10655
      start: 10633
    functionDepth: 6
    functionLinenumber: 10633
    functionLinenumberEnd: 10655
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - _PySet_AddTakeRef
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_ADD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10664,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10670,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10671,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10673,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:10673,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10675,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10677,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10681,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10681,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 10672
        line_start: 10672
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (offset != 0)
      pos:
        line_end: 10674
        line_start: 10674
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (*ptr == NULL)
      pos:
        line_end: 10676
        line_start: 10676
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10680
        line_start: 10680
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10683
      start: 10657
    functionDepth: 1
    functionLinenumber: 10657
    functionLinenumberEnd: 10683
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_FUNCTION_ATTRIBUTE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10692,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10697,1
    - Dst: _PySet_Update
      Src: /src/cpython/Python/generated_cases.c.h:10698,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10698,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10699,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10700,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10702,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10702,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10703,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10704,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10705,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10707,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10701
        line_start: 10701
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10710
      start: 10685
    functionDepth: 10
    functionLinenumber: 10685
    functionLinenumberEnd: 10710
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PySet_Update
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_UPDATE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10719,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:10728,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:10731,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:10732,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10734,1
    - Dst: _Py_Specialize_StoreAttr
      Src: /src/cpython/Python/generated_cases.c.h:10735,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10736,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:10737,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:10739,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:10740,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:10747,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10748,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/generated_cases.c.h:10749,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10749,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10750,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10754,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10758,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10759,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10761,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10761,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10763,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10760
        line_start: 10760
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10767
      start: 10712
    functionDepth: 2
    functionLinenumber: 10712
    functionLinenumberEnd: 10767
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _Py_Specialize_StoreAttr
    - DISPATCH_SAME_OPARG
    - read_u16
    - GETITEM
    - ADAPTIVE_COUNTER_TRIGGERS
    - ADVANCE_ADAPTIVE_COUNTER
    - PyObject_SetAttr
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10778,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:10786,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10787,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10788,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10789,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10790,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10791,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10792,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10794,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:10795,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10796,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10798,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10799,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10800,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10806,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10807,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10807,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10808,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10808,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:10809,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:10810,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:10810,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10811,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10813,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10814,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10815,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:10822,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10823,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:10824,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10825,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:10825,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:10828,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10828,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:10830,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Python/generated_cases.c.h:10832,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10834,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10836,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10836,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10837,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10838,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:10839,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10840,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10842,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 10787
        line_start: 10787
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10798
        line_start: 10798
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10813
        line_start: 10813
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 10806
        line_start: 10806
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10835
        line_start: 10835
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10790
        line_start: 10790
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 10807
        line_start: 10807
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyObject_GetManagedDict(owner_o) == NULL)
      pos:
        line_end: 10824
        line_start: 10824
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10843
      start: 10769
    functionDepth: 1
    functionLinenumber: 10769
    functionLinenumberEnd: 10843
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_XDECREF
    - _PyObject_InlineValues
    - UNLOCK_OBJECT
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _PyDictValues_AddToInsertionOrder
    - FT_ATOMIC_LOAD_UINT8
    - STAT_INC
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - LOCK_OBJECT
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - _PyObject_GetManagedDict
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_u16
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR_INSTANCE_VALUE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10854,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:10862,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10863,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10863,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10864,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:10865,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10866,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10867,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10868,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:10874,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10875,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10876,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10877,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10878,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10879,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:10882,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:10884,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10884,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10885,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10887,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10887,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10888,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10889,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:10890,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10891,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 10863
        line_start: 10863
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10866
        line_start: 10866
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10886
        line_start: 10886
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10877
        line_start: 10877
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10894
      start: 10845
    functionDepth: 1
    functionLinenumber: 10845
    functionLinenumberEnd: 10894
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_XDECREF
    - UNLOCK_OBJECT
    - JUMP_TO_PREDICTED
    - DISPATCH
    - STAT_INC
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - LOCK_OBJECT
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_u16
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR_SLOT)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10905,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:10913,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10914,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10914,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10915,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:10916,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10917,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10918,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10919,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:10925,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10926,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10927,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10927,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:10928,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10930,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10931,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10932,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10934,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10935,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10936,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10937,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10939,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:10939,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:10940,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/generated_cases.c.h:10942,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10943,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10945,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10946,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10947,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:10950,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10952,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10954,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10955,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10956,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10961,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10963,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10964,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10965,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10968,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Python/generated_cases.c.h:10969,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10969,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10970,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:10971,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10971,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:10972,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:10973,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10975,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10975,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10976,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10977,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:10978,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10979,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10981,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 10938
        line_start: 10938
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 10914
        line_start: 10914
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10917
        line_start: 10917
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10930
        line_start: 10930
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10935
        line_start: 10935
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10945
        line_start: 10945
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10954
        line_start: 10954
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 10963
        line_start: 10963
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10974
        line_start: 10974
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 10926
        line_start: 10926
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10982
      start: 10896
    functionDepth: 1
    functionLinenumber: 10896
    functionLinenumberEnd: 10982
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_XDECREF
    - UNLOCK_OBJECT
    - JUMP_TO_PREDICTED
    - DISPATCH
    - DK_UNICODE_ENTRIES
    - PyDict_CheckExact
    - GETITEM
    - STAT_INC
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - read_u32
    - LOCK_OBJECT
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - _PyObject_GetManagedDict
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_STORE_PTR_RELEASE
    - read_u16
    - DK_IS_UNICODE
    - _PyDict_NotifyEvent
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR_WITH_HINT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10991,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10994,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:10994,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10995,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:10996,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10996,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10997,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10999,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10999,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 10998
        line_start: 10998
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11001
      start: 10984
    functionDepth: 1
    functionLinenumber: 10984
    functionLinenumberEnd: 11001
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - PyCell_SetTakeRef
    - GETLOCAL
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - WITHIN_STACK_BOUNDS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_DEREF)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11010,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11013,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11014,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11016,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11016,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11017,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11018,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11019,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11015
        line_start: 11015
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11021
      start: 11003
    functionDepth: 1
    functionLinenumber: 11003
    functionLinenumberEnd: 11021
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_XCLOSE
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11030,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11036,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11037,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:11038,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11038,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11040,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11041,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11042,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11044
      start: 11023
    functionDepth: 1
    functionLinenumber: 11023
    functionLinenumberEnd: 11044
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_DUP
    - PyStackRef_XCLOSE
    - GETLOCAL
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_FAST_LOAD_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11053,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11060,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11061,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11063,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11063,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11064,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11065,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11066,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11067,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11068,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11070,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11070,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11071,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11072,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11073,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11062
        line_start: 11062
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11069
        line_start: 11069
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11075
      start: 11046
    functionDepth: 1
    functionLinenumber: 11046
    functionLinenumberEnd: 11075
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_XCLOSE
    - GETLOCAL
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_FAST_STORE_FAST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11084,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:11087,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11088,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11089,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:11089,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11089,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11090,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11092,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11092,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11093,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11094,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11095,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11097,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11091
        line_start: 11091
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11100
      start: 11077
    functionDepth: 9
    functionLinenumber: 11077
    functionLinenumberEnd: 11100
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyDict_SetItem
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - JUMP_TO_LABEL
    - GETITEM
    - GLOBALS
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_GLOBAL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11109,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:11112,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:11113,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11116,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:11117,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11119,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11121,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11121,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11122,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11123,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11124,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11125,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11127,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11128,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11129,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11129,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11130,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11133,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11134,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11134,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11135,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11138,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11138,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11139,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11140,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11141,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11143,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11137
        line_start: 11137
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11120
        line_start: 11120
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11146
      start: 11102
    functionDepth: 9
    functionLinenumber: 11102
    functionLinenumberEnd: 11146
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOCALS
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_Format
    - GETITEM
    - PyDict_CheckExact
    - PyDict_SetItem
    - PyObject_SetItem
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_NAME)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11155,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:11163,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11172,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Python/generated_cases.c.h:11173,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11173,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11174,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11175,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11182,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11182,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11183,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11184,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11184,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11184,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:11185,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11186,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11189,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11193,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11197,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11198,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11200,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11200,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11202,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11181
        line_start: 11181
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11199
        line_start: 11199
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11206
      start: 11148
    functionDepth: 3
    functionLinenumber: 11148
    functionLinenumberEnd: 11206
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_DECREF
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - JUMP_TO_LABEL
    - _PyBuildSlice_ConsumeRefs
    - PyObject_SetItem
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SLICE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11215,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11226,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:11229,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11231,1
    - Dst: _Py_Specialize_StoreSubscr
      Src: /src/cpython/Python/generated_cases.c.h:11232,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11233,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:11234,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:11236,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:11237,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11243,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11244,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11244,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11244,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11244,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11248,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11252,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11256,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11257,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11259,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11259,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11261,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11258
        line_start: 11258
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11265
      start: 11208
    functionDepth: 3
    functionLinenumber: 11208
    functionLinenumberEnd: 11265
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyObject_SetItem
    - ADAPTIVE_COUNTER_TRIGGERS
    - ADVANCE_ADAPTIVE_COUNTER
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - _Py_Specialize_StoreSubscr
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11276,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11285,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11286,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11287,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11288,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11289,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11298,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11299,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11299,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11300,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11301,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/generated_cases.c.h:11302,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11303,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11304,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11305,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11307,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11307,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11308,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11309,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11310,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11312,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 11298
        line_start: 11298
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 11287
        line_start: 11287
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11306
        line_start: 11306
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11316
      start: 11267
    functionDepth: 8
    functionLinenumber: 11267
    functionLinenumberEnd: 11316
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - _PyFrame_SetStackPointer
    - _PyDict_SetItem_Take2
    - STAT_INC
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR_DICT)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11327,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11336,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:11337,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11338,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11339,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11340,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11346,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11347,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11348,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11349,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11350,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11359,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11360,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11361,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11361,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11362,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11362,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/generated_cases.c.h:11363,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11364,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11365,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11366,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11369,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11370,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11371,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11372,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:11374,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11375,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11377,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11378,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11379,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11382,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:11383,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:11384,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/generated_cases.c.h:11384,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11385,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11386,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11387,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:11388,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11390,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11390,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11391,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:11393,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11394,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 11348
        line_start: 11348
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 11361
        line_start: 11361
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 11338
        line_start: 11338
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 11377
        line_start: 11377
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (old_value != NULL)
      pos:
        line_end: 11385
        line_start: 11385
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11389
        line_start: 11389
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 11360
        line_start: 11360
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 11364
        line_start: 11364
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 11370
        line_start: 11370
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11397
      start: 11318
    functionDepth: 1
    functionLinenumber: 11318
    functionLinenumberEnd: 11397
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - PyLong_CheckExact
    - UNLOCK_OBJECT
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE_SPECIALIZED
    - DISPATCH
    - PyList_GET_SIZE
    - STAT_INC
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - LOCK_OBJECT
    - _PyList_ITEMS
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - Py_DECREF
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - PyList_GET_ITEM
    - _PyLong_IsNonNegativeCompact
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR_LIST_INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11406,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11417
      start: 11399
    functionDepth: 1
    functionLinenumber: 11399
    functionLinenumberEnd: 11417
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - INSTRUCTION_STATS
    - DISPATCH
    linkageType: ''
    returnType: void
    signature: void TARGET(SWAP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11426,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11435,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:11438,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11440,1
    - Dst: _Py_Specialize_ToBool
      Src: /src/cpython/Python/generated_cases.c.h:11441,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11442,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:11443,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:11445,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:11446,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11452,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:11453,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11453,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11454,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11456,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11456,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11457,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11458,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11459,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11461,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11467,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11467,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11455
        line_start: 11455
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11466
        line_start: 11466
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11469
      start: 11419
    functionDepth: 2
    functionLinenumber: 11419
    functionLinenumberEnd: 11469
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyObject_IsTrue
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - ADAPTIVE_COUNTER_TRIGGERS
    - ADVANCE_ADAPTIVE_COUNTER
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_Specialize_ToBool
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11480,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:11489,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11490,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11490,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11491,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:11492,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11493,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11494,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11495,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11502,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11502,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11503,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11504,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11505,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11510,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11510,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 11490
        line_start: 11490
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 11493
        line_start: 11493
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11501
        line_start: 11501
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11509
        line_start: 11509
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11512
      start: 11471
    functionDepth: 1
    functionLinenumber: 11471
    functionLinenumberEnd: 11512
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - DISPATCH
    - UPDATE_MISS_STATS
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - read_u32
    - INSTRUCTION_STATS
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_ALWAYS_TRUE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11523,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:11529,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11530,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11531,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11532,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11534,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 11530
        line_start: 11530
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11536
      start: 11514
    functionDepth: 1
    functionLinenumber: 11514
    functionLinenumberEnd: 11536
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_BoolCheck
    - STAT_INC
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_BOOL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11547,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11554,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11555,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11556,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11557,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11558,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11560,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/generated_cases.c.h:11561,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11562,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/generated_cases.c.h:11562,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11567,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11567,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11568,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11569,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11570,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 11556
        line_start: 11556
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_Py_IsImmortal(value_o))
      pos:
        line_end: 11561
        line_start: 11561
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11566
        line_start: 11566
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11576
      start: 11538
    functionDepth: 1
    functionLinenumber: 11538
    functionLinenumberEnd: 11576
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - STAT_INC
    - _Py_IsImmortal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyLong_CheckExact
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - _PyLong_IsZero
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_INT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11587,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11595,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11596,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11597,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11598,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11599,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11607,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11608,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11608,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11609,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:11610,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11611,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11615,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11616,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 11597
        line_start: 11597
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(value_o))
      pos:
        line_end: 11607
        line_start: 11607
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11619
      start: 11578
    functionDepth: 1
    functionLinenumber: 11578
    functionLinenumberEnd: 11619
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyList_CheckExact
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyList_GET_SIZE
    - STAT_INC
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_LIST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11630,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:11637,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11638,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11639,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11640,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11642,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 11638
        line_start: 11638
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11646
      start: 11621
    functionDepth: 1
    functionLinenumber: 11621
    functionLinenumberEnd: 11646
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - PyStackRef_IsNone
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_NONE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11657,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11664,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11665,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11666,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11667,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11668,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11675,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11676,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/generated_cases.c.h:11677,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11678,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/generated_cases.c.h:11678,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11682,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:11682,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11684,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11684,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11685,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11686,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11687,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_Py_IsImmortal(value_o))
      pos:
        line_end: 11677
        line_start: 11677
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11683
        line_start: 11683
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 11666
        line_start: 11666
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_SIZE(value_o))
      pos:
        line_end: 11681
        line_start: 11681
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11694
      start: 11648
    functionDepth: 1
    functionLinenumber: 11648
    functionLinenumberEnd: 11694
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - Py_SIZE
    - PyUnicode_CheckExact
    - STAT_INC
    - _Py_STR
    - _Py_IsImmortal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_STR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11703,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11707,1
    - Dst: PyNumber_Invert
      Src: /src/cpython/Python/generated_cases.c.h:11708,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11708,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11709,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11711,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11711,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11712,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11713,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11714,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11716,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11718,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11721,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11721,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11710
        line_start: 11710
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11720
        line_start: 11720
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11723
      start: 11696
    functionDepth: 1
    functionLinenumber: 11696
    functionLinenumberEnd: 11723
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectSteal
    - PyNumber_Invert
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_INVERT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11732,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11736,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Python/generated_cases.c.h:11737,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11737,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11738,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11740,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11740,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11741,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11742,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11743,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11745,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11747,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11750,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11750,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11739
        line_start: 11739
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11749
        line_start: 11749
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11752
      start: 11725
    functionDepth: 1
    functionLinenumber: 11725
    functionLinenumberEnd: 11752
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - DISPATCH
    - INSTRUCTION_STATS
    - PyNumber_Negative
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_NEGATIVE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11761,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11765,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:11765,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:11766,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(value))
      pos:
        line_end: 11764
        line_start: 11764
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11770
      start: 11754
    functionDepth: 1
    functionLinenumber: 11754
    functionLinenumberEnd: 11770
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_BoolCheck
    - PyStackRef_IsFalse
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_NOT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11779,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11784,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11786,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11786,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11787,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/generated_cases.c.h:11788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:11789,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11790,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11792,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11795,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11795,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11785
        line_start: 11785
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11794
        line_start: 11794
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11797
      start: 11772
    functionDepth: 4
    functionLinenumber: 11772
    functionLinenumberEnd: 11797
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_DECREF
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - _PyEval_UnpackIterableStackRef
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_EX)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11806,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11815,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:11818,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11820,1
    - Dst: _Py_Specialize_UnpackSequence
      Src: /src/cpython/Python/generated_cases.c.h:11821,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11822,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:11823,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:11825,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:11826,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11834,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11836,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11836,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11837,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/generated_cases.c.h:11838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:11839,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11840,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11842,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11846,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11846,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11835
        line_start: 11835
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11845
        line_start: 11845
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11848
      start: 11799
    functionDepth: 4
    functionLinenumber: 11799
    functionLinenumberEnd: 11848
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_DECREF
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - ADAPTIVE_COUNTER_TRIGGERS
    - _Py_Specialize_UnpackSequence
    - ADVANCE_ADAPTIVE_COUNTER
    - _PyEval_UnpackIterableStackRef
    - PyStackRef_AsPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11859,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11867,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11868,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11869,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11870,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11871,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11879,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11880,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11880,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11881,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11882,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11883,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11884,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:11886,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11887,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11889,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11890,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11891,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11894,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/generated_cases.c.h:11895,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:11897,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11899,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11901,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11901,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11902,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11903,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11904,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11906,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyList_CheckExact(seq_o))
      pos:
        line_end: 11879
        line_start: 11879
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11900
        line_start: 11900
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 11882
        line_start: 11882
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 11869
        line_start: 11869
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 11889
        line_start: 11889
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11907
      start: 11850
    functionDepth: 1
    functionLinenumber: 11850
    functionLinenumberEnd: 11907
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyList_CheckExact
    - LOCK_OBJECT
    - _PyList_ITEMS
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - PyList_GET_SIZE
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - UNLOCK_OBJECT
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_LIST)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11918,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11926,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11927,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11928,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11929,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11930,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11938,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11939,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11939,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:11940,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11941,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11942,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11943,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11945,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/generated_cases.c.h:11946,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:11948,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11951,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11951,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11952,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11953,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11954,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 11928
        line_start: 11928
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 11938
        line_start: 11938
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 11950
        line_start: 11950
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 11941
        line_start: 11941
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11957
      start: 11909
    functionDepth: 1
    functionLinenumber: 11909
    functionLinenumberEnd: 11957
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyTuple_CheckExact
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_TUPLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11968,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11977,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11978,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11979,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11980,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11981,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11988,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11989,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11990,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11990,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:11991,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11992,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11993,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11994,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11996,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:11997,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:11997,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:11998,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:11998,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12002,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12002,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12003,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12004,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12005,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 11979
        line_start: 11979
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 2)
      pos:
        line_end: 11987
        line_start: 11987
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 11989
        line_start: 11989
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 12001
        line_start: 12001
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 11992
        line_start: 11992
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12008
      start: 11959
    functionDepth: 1
    functionLinenumber: 11959
    functionLinenumberEnd: 12008
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyTuple_CheckExact
    - PyTuple_GET_SIZE
    - PyStackRef_CLOSE
    - _PyFrame_SetStackPointer
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_ITEM
    - JUMP_TO_PREDICTED
    - UPDATE_MISS_STATS
    - _PyFrame_GetStackPointer
    - INSTRUCTION_STATS
    - DISPATCH
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_TWO_TUPLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12017,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12028,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12029,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12030,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:12030,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/generated_cases.c.h:12031,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/generated_cases.c.h:12032,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12036,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/generated_cases.c.h:12036,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12038,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:12039,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12040,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:12041,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:12043,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12044,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12046,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12048,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12051,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12051,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (val_o && PyExceptionInstance_Check(val_o))
      pos:
        line_end: 12029
        line_start: 12029
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(lasti))
      pos:
        line_end: 12035
        line_start: 12035
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 12050
        line_start: 12050
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12053
      start: 12010
    functionDepth: 3
    functionLinenumber: 12010
    functionLinenumberEnd: 12053
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - Py_XDECREF
    - JUMP_TO_LABEL
    - PyException_GetTraceback
    - _PyFrame_SetStackPointer
    - PyObject_Vectorcall
    - PyStackRef_IsTaggedInt
    - PyStackRef_FromPyObjectSteal
    - WITHIN_STACK_BOUNDS
    - PyStackRef_AsPyObjectBorrow
    - PyExceptionInstance_Class
    - _PyFrame_GetStackPointer
    - PyStackRef_IsNull
    - INSTRUCTION_STATS
    - DISPATCH
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(WITH_EXCEPT_START)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12062,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12066,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/generated_cases.c.h:12068,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12069,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12070,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12074,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12074,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12075,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:12078,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12082,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12084,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12091,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:12092,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:12093,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:12094,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12097,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12097,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12098,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 12068
        line_start: 12068
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 12069
        line_start: 12069
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 12065
        line_start: 12065
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 12073
        line_start: 12073
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 12081
        line_start: 12081
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 12096
        line_start: 12096
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: "(frame->instr_ptr->op.code == INSTRUMENTED_LINE ||\n                  frame->instr_ptr->op.code
        == INSTRUMENTED_INSTRUCTION ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == SEND ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code] ==
        FOR_ITER ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == INTERPRETER_EXIT ||\n                  _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == ENTER_EXECUTOR)"
      pos:
        line_end: 12088
        line_start: 12083
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12099
      start: 12055
    functionDepth: 1
    functionLinenumber: 12055
    functionLinenumberEnd: 12099
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - LOAD_IP
    - _PyFrame_SetStackPointer
    - LLTRACE_RESUME_FRAME
    - PyStackRef_MakeHeapSafe
    - _Py_LeaveRecursiveCallPy
    - WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - _PyGen_GetGeneratorFromFrame
    linkageType: ''
    returnType: void
    signature: void TARGET(YIELD_VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12130,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12130,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 12129
        line_start: 12129
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12132
      start: 12127
    functionDepth: 0
    functionLinenumber: 12127
    functionLinenumberEnd: 12132
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 166
    functionsReached:
    - JUMP_TO_LABEL
    - WITHIN_STACK_BOUNDS
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(pop_2_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12137,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12137,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 12136
        line_start: 12136
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12139
      start: 12134
    functionDepth: 0
    functionLinenumber: 12134
    functionLinenumberEnd: 12139
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 167
    functionsReached:
    - JUMP_TO_LABEL
    - WITHIN_STACK_BOUNDS
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(pop_1_error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:12144,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12145,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/generated_cases.c.h:12146,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12148,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12151,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:12151,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12154,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/generated_cases.c.h:12155,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12156,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/generated_cases.c.h:12157,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12158,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12160,1
    - Dst: PyTraceBack_Here
      Src: /src/cpython/Python/generated_cases.c.h:12161,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12162,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12165,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/generated_cases.c.h:12166,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 12150
        line_start: 12150
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 12153
        line_start: 12153
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12168
      start: 12141
    functionDepth: 9
    functionLinenumber: 12141
    functionLinenumberEnd: 12168
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 168
    functionsReached:
    - _PyFrame_IsIncomplete
    - JUMP_TO_LABEL
    - _PyFrame_SetStackPointer
    - PyTraceBack_Here
    - _PyEval_MonitorRaise
    - _PyFrame_GetStackPointer
    - _PyFrame_GetFrameObject
    - _PyErr_SetString
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:12172,1
    - Dst: get_exception_handler
      Src: /src/cpython/Python/generated_cases.c.h:12174,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:12174,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12176,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:12176,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/generated_cases.c.h:12177,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/generated_cases.c.h:12179,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12180,1
    - Dst: monitor_unwind
      Src: /src/cpython/Python/generated_cases.c.h:12182,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12183,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12185,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:12185,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/generated_cases.c.h:12186,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12187,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/generated_cases.c.h:12189,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12190,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/generated_cases.c.h:12193,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:12194,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:12195,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:12197,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:12198,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12198,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:12199,1
    - Dst: monitor_handled
      Src: /src/cpython/Python/generated_cases.c.h:12200,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12202,1
    - Dst: lltrace_resume_frame
      Src: /src/cpython/Python/generated_cases.c.h:12206,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12209,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->stackpointer >= new_top)
      pos:
        line_end: 12186
        line_start: 12186
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 12175
        line_start: 12175
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (STACK_LEVEL() >= level)
      pos:
        line_end: 12184
        line_start: 12184
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12214
      start: 12170
    functionDepth: 9
    functionLinenumber: 12170
    functionLinenumberEnd: 12214
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 169
    functionsReached:
    - _PyFrame_Stackbase
    - lltrace_resume_frame
    - DISPATCH
    - INSTR_OFFSET
    - PyStackRef_FromPyObjectSteal
    - STACK_LEVEL
    - assert
    - get_exception_handler
    - _PyFrame_StackPop
    - monitor_unwind
    - _PyFrame_GetStackPointer
    - _PyFrame_GetCode
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - _PyFrame_StackPush
    - _PyFrame_GetBytecode
    - _PyInterpreterFrame_LASTI
    - PyStackRef_TagInt
    - monitor_handled
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void LABEL(exception_unwind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12218,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:12218,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:12219,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12220,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:12223,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12228,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12232,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:12233,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12234,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12235,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12241,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 12217
        line_start: 12217
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 12219
        line_start: 12219
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame == &entry.frame)
      pos:
        line_end: 12227
        line_start: 12227
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 12231
        line_start: 12231
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12243
      start: 12216
    functionDepth: 3
    functionLinenumber: 12216
    functionLinenumberEnd: 12243
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 170
    functionsReached:
    - PyStackRef_CLOSE
    - JUMP_TO_LABEL
    - _PyEval_FrameClearAndPop
    - _Py_LeaveRecursiveCallPy
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetStackPointer
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(exit_unwind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursivePy
      Src: /src/cpython/Python/generated_cases.c.h:12247,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12249,1
    - Dst: maybe_lltrace_resume_frame
      Src: /src/cpython/Python/generated_cases.c.h:12253,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:12253,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12255,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12258,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:12258,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12260,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 12257
        line_start: 12257
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12265
      start: 12245
    functionDepth: 5
    functionLinenumber: 12245
    functionLinenumberEnd: 12265
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 171
    functionsReached:
    - JUMP_TO_LABEL
    - maybe_lltrace_resume_frame
    - GLOBALS
    - _Py_EnterRecursivePy
    - _PyFrame_GetStackPointer
    - DISPATCH
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(start_frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/preconfig.c:31,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/preconfig.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: _Py_ClearFileSystemEncoding
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:50,1
    - Dst: _PyMem_RawStrdup
      Src: /src/cpython/Python/preconfig.c:55,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/preconfig.c:57,1
    - Dst: _Py_ClearFileSystemEncoding
      Src: /src/cpython/Python/preconfig.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 72
    functionName: _Py_SetFileSystemEncoding
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:84,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/preconfig.c:86,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/preconfig.c:91,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/preconfig.c:93,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/cpython/Python/preconfig.c:94,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/preconfig.c:100,1
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/preconfig.c:106,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/preconfig.c:107,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - args
    - list
    argTypes:
    - _PyArgv*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 111
    functionName: _PyArgv_AsWstrList
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - DECODE_LOCALE_ERR
    - _PyStatus_OK
    - Py_DecodeLocale
    - _PyWideStringList_Copy
    - PyMem_RawMalloc
    - _PyWideStringList_Clear
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyArgv_AsWstrList(const _PyArgv *args, PyWideStringList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/preconfig.c:119,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/preconfig.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: _PyPreCmdline_Clear
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmdline
    - args
    argTypes:
    - _PyPreCmdline*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: _PyPreCmdline_SetArgv
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:139,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:140,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cmdline
    - config
    argTypes:
    - _PyPreCmdline*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: precmdline_get_preconfig
    functionSourceFile: /src/cpython/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: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: COPY_ATTR
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:153,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:154,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cmdline
    - config
    argTypes:
    - _PyPreCmdline*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: precmdline_set_preconfig
    functionSourceFile: /src/cpython/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: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: COPY_ATTR
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Extend
      Src: /src/cpython/Python/preconfig.c:167,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:168,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:172,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:173,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:174,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:175,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cmdline
    - config
    argTypes:
    - _PyPreCmdline*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 179
    functionName: _PyPreCmdline_SetConfig
    functionSourceFile: /src/cpython/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: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: COPY_ATTR
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyOS_ResetGetOpt
      Src: /src/cpython/Python/preconfig.c:188,1
    - Dst: _PyOS_GetOpt
      Src: /src/cpython/Python/preconfig.c:194,1
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/preconfig.c:211,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:213,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 227
    functionName: precmdline_parse_cmdline
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyOS_ResetGetOpt
    - _PyStatus_EXCEPTION
    - _PyOS_GetOpt
    - PyWideStringList_Append
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus precmdline_parse_cmdline(_PyPreCmdline *cmdline)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: precmdline_get_preconfig
      Src: /src/cpython/Python/preconfig.c:233,1
    - Dst: precmdline_parse_cmdline
      Src: /src/cpython/Python/preconfig.c:236,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:237,1
    - Dst: _Py_get_xoption
      Src: /src/cpython/Python/preconfig.c:255,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Python/preconfig.c:256,1
    - Dst: _Py_get_xoption
      Src: /src/cpython/Python/preconfig.c:265,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Python/preconfig.c:266,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:271,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:272,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:273,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:274,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:276,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - cmdline
    - preconfig
    argTypes:
    - _PyPreCmdline*
    - PyPreConfig*
    assertStmts:
    - condition: (cmdline->use_environment >= 0)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Python/preconfig.c
    - condition: (cmdline->isolated >= 0)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Python/preconfig.c
    - condition: (cmdline->dev_mode >= 0)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/cpython/Python/preconfig.c
    - condition: (cmdline->warn_default_encoding >= 0)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/cpython/Python/preconfig.c
    constantsTouched: []
    func_position:
      end: 277
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 277
    functionName: _PyPreCmdline_Read
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - precmdline_parse_cmdline
    - _PyStatus_OK
    - _Py_GetEnv
    - _PyStatus_EXCEPTION
    - precmdline_get_preconfig
    - assert
    - _Py_get_xoption
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreCmdline_Read(_PyPreCmdline *cmdline, const PyPreConfig
      *preconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/preconfig.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 308
    functionName: _PyPreConfig_InitCompatConfig
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 329
    functionName: PyPreConfig_InitPythonConfig
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 346
    functionName: PyPreConfig_InitIsolatedConfig
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:353,1
    - Dst: preconfig_copy
      Src: /src/cpython/Python/preconfig.c:354,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - config
    - config2
    argTypes:
    - PyPreConfig*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: _PyPreConfig_InitFromPreConfig
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - preconfig_copy
    - PyPreConfig_InitPythonConfig
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus _PyPreConfig_InitFromPreConfig(PyPreConfig *config,\n                               const
      PyPreConfig *config2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/cpython/Python/preconfig.c:365,1
    - Dst: PyPreConfig_InitIsolatedConfig
      Src: /src/cpython/Python/preconfig.c:368,1
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/cpython/Python/preconfig.c:372,1
    - Dst: _PyPreConfig_GetConfig
      Src: /src/cpython/Python/preconfig.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - preconfig
    - config
    argTypes:
    - PyPreConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 376
    functionName: _PyPreConfig_InitFromConfig
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - PyPreConfig_InitIsolatedConfig
    - _PyPreConfig_GetConfig
    - PyPreConfig_InitPythonConfig
    - _PyPreConfig_InitCompatConfig
    linkageType: ''
    returnType: void
    signature: void _PyPreConfig_InitFromConfig(PyPreConfig *preconfig, const PyConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:384,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:385,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:386,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:387,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:388,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:389,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:390,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:391,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:392,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:393,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - config
    - config2
    argTypes:
    - PyPreConfig*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 399
    functionName: preconfig_copy
    functionSourceFile: /src/cpython/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: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: COPY_ATTR
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/preconfig.c:407,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:425,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:426,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:427,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:428,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:429,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:430,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:431,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:432,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:434,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:436,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/preconfig.c:437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/preconfig.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 402
    functionDepth: 10
    functionLinenumber: 402
    functionLinenumberEnd: 445
    functionName: _PyPreConfig_AsDict
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - SET_ITEM_INT
    - PyDict_New
    - 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: 424
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 424
    functionName: SET_ITEM_INT
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_INT(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:456,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:457,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:458,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Python/preconfig.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - preconfig
    - config
    argTypes:
    - PyPreConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 462
    functionName: _PyPreConfig_GetConfig
    functionSourceFile: /src/cpython/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: 455
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: COPY_ATTR
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/preconfig.c:485,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/preconfig.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 496
    functionName: preconfig_get_global_vars
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - COPY_FLAG
    - COPY_NOT_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: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: COPY_FLAG
    functionSourceFile: /src/cpython/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: 481
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 481
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/preconfig.c:514,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/preconfig.c:516,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/preconfig.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 523
    functionName: preconfig_set_global_vars
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - COPY_FLAG
    - COPY_NOT_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: 506
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: COPY_FLAG
    functionSourceFile: /src/cpython/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: 510
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VAR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:529,1
    - Dst: getenv
      Src: /src/cpython/Python/preconfig.c:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - use_environment
    - name
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: (use_environment >= 0)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/cpython/Python/preconfig.c
    constantsTouched: []
    func_position:
      end: 542
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 542
    functionName: _Py_GetEnv
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 4
    functionsReached:
    - getenv
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_GetEnv(int use_environment, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/cpython/Python/preconfig.c:550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - str
    - result
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 560
    functionName: _Py_str_to_int
    functionSourceFile: /src/cpython/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/cpython/Python/preconfig.c:566,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/preconfig.c:571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - use_environment
    - flag
    - name
    argTypes:
    - int
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 578
    functionName: _Py_get_env_flag
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _Py_str_to_int
    - _Py_GetEnv
    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/cpython/Python/preconfig.c:587,1
    - Dst: wcslen
      Src: /src/cpython/Python/preconfig.c:592,1
    - Dst: wcsncmp
      Src: /src/cpython/Python/preconfig.c:594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - xoptions
    - name
    argTypes:
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 599
    functionName: _Py_get_xoption
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 1
    functionsReached:
    - wcsncmp
    - wcslen
    - wcschr
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_get_xoption(const PyWideStringList *xoptions, const wchar_t *name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:612,1
    - Dst: _Py_get_xoption
      Src: /src/cpython/Python/preconfig.c:616,1
    - Dst: wcschr
      Src: /src/cpython/Python/preconfig.c:618,1
    - Dst: wcscmp
      Src: /src/cpython/Python/preconfig.c:621,1
    - Dst: wcscmp
      Src: /src/cpython/Python/preconfig.c:624,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/preconfig.c:628,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:634,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Python/preconfig.c:637,1
    - Dst: strcmp
      Src: /src/cpython/Python/preconfig.c:639,1
    - Dst: strcmp
      Src: /src/cpython/Python/preconfig.c:642,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/preconfig.c:646,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:649,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:653,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - config
    - cmdline
    argTypes:
    - PyPreConfig*
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 654
    functionName: preconfig_init_utf8_mode
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _Py_GetEnv
    - wcscmp
    - _PyStatus_ERR
    - strcmp
    - wcschr
    - _Py_get_xoption
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus preconfig_init_utf8_mode(PyPreConfig *config, const _PyPreCmdline
      *cmdline)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/cpython/Python/preconfig.c:666,1
    - Dst: strcmp
      Src: /src/cpython/Python/preconfig.c:668,1
    - Dst: strcmp
      Src: /src/cpython/Python/preconfig.c:673,1
    - Dst: _Py_LegacyLocaleDetected
      Src: /src/cpython/Python/preconfig.c:690,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 701
    functionName: preconfig_init_coerce_c_locale
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _Py_GetEnv
    - _Py_LegacyLocaleDetected
    linkageType: ''
    returnType: void
    signature: void preconfig_init_coerce_c_locale(PyPreConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/cpython/Python/preconfig.c:712,1
    - Dst: _PyMem_GetAllocatorName
      Src: /src/cpython/Python/preconfig.c:715,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/preconfig.c:716,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:725,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 726
    functionName: preconfig_init_allocator
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyMem_GetAllocatorName
    - _Py_GetEnv
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus preconfig_init_allocator(PyPreConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreCmdline_Read
      Src: /src/cpython/Python/preconfig.c:734,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:735,1
    - Dst: precmdline_set_preconfig
      Src: /src/cpython/Python/preconfig.c:739,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/preconfig.c:743,1
    - Dst: preconfig_init_coerce_c_locale
      Src: /src/cpython/Python/preconfig.c:748,1
    - Dst: preconfig_init_utf8_mode
      Src: /src/cpython/Python/preconfig.c:750,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:751,1
    - Dst: preconfig_init_allocator
      Src: /src/cpython/Python/preconfig.c:756,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:757,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:761,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:762,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:764,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:766,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:767,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:768,1
    - Dst: assert
      Src: /src/cpython/Python/preconfig.c:769,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:771,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: 760
        line_start: 760
        source_file: /src/cpython/Python/preconfig.c
    - condition: (config->isolated >= 0)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/cpython/Python/preconfig.c
    - condition: (config->utf8_mode >= 0)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/cpython/Python/preconfig.c
    - condition: (config->use_environment >= 0)
      pos:
        line_end: 767
        line_start: 767
        source_file: /src/cpython/Python/preconfig.c
    - condition: (config->legacy_windows_fs_encoding >= 0)
      pos:
        line_end: 763
        line_start: 763
        source_file: /src/cpython/Python/preconfig.c
    - condition: (config->dev_mode >= 0)
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/cpython/Python/preconfig.c
    - condition: (config->coerce_c_locale_warn >= 0)
      pos:
        line_end: 761
        line_start: 761
        source_file: /src/cpython/Python/preconfig.c
    constantsTouched: []
    func_position:
      end: 772
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 772
    functionName: preconfig_read
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - preconfig_init_allocator
    - _PyStatus_EXCEPTION
    - precmdline_set_preconfig
    - _PyPreCmdline_Read
    - _Py_get_env_flag
    - preconfig_init_utf8_mode
    - preconfig_init_coerce_c_locale
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus preconfig_read(PyPreConfig *config, _PyPreCmdline *cmdline)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Python/preconfig.c:786,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:787,1
    - Dst: preconfig_get_global_vars
      Src: /src/cpython/Python/preconfig.c:791,1
    - Dst: setlocale
      Src: /src/cpython/Python/preconfig.c:794,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/preconfig.c:796,1
    - Dst: _PyMem_RawStrdup
      Src: /src/cpython/Python/preconfig.c:798,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/preconfig.c:800,1
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/cpython/Python/preconfig.c:806,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:807,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/cpython/Python/preconfig.c:813,1
    - Dst: preconfig_copy
      Src: /src/cpython/Python/preconfig.c:817,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/preconfig.c:829,1
    - Dst: preconfig_copy
      Src: /src/cpython/Python/preconfig.c:837,1
    - Dst: _PyPreCmdline_SetArgv
      Src: /src/cpython/Python/preconfig.c:842,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:843,1
    - Dst: preconfig_read
      Src: /src/cpython/Python/preconfig.c:848,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:849,1
    - Dst: _Py_CoerceLegacyLocale
      Src: /src/cpython/Python/preconfig.c:866,1
    - Dst: preconfig_copy
      Src: /src/cpython/Python/preconfig.c:890,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:897,1
    - Dst: setlocale
      Src: /src/cpython/Python/preconfig.c:901,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/preconfig.c:902,1
    - Dst: preconfig_copy
      Src: /src/cpython/Python/preconfig.c:903,1
    - Dst: _PyPreCmdline_Clear
      Src: /src/cpython/Python/preconfig.c:904,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 2
    argNames:
    - config
    - args
    argTypes:
    - PyPreConfig*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 781
    functionDepth: 8
    functionLinenumber: 781
    functionLinenumberEnd: 906
    functionName: _PyPreConfig_Read
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - setlocale
    - preconfig_get_global_vars
    - _PyStatus_NO_MEMORY
    - preconfig_read
    - _PyStatus_OK
    - PyMem_RawFree
    - _PyStatus_EXCEPTION
    - _PyPreCmdline_Clear
    - preconfig_copy
    - _Py_SetLocaleFromEnv
    - _Py_CoerceLegacyLocale
    - _PyMem_RawStrdup
    - _PyPreCmdline_SetArgv
    - _PyStatus_ERR
    - _PyPreConfig_InitFromPreConfig
    - _PyRuntime_Initialize
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreConfig_Read(PyPreConfig *config, const _PyArgv *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/cpython/Python/preconfig.c:926,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/preconfig.c:927,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:934,1
    - Dst: _PyMem_SetupAllocators
      Src: /src/cpython/Python/preconfig.c:939,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/preconfig.c:940,1
    - Dst: preconfig_set_global_vars
      Src: /src/cpython/Python/preconfig.c:944,1
    - Dst: _Py_CoerceLegacyLocale
      Src: /src/cpython/Python/preconfig.c:948,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/cpython/Python/preconfig.c:955,1
    - Dst: preconfig_copy
      Src: /src/cpython/Python/preconfig.c:959,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/preconfig.c:961,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - src_config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 921
    functionDepth: 4
    functionLinenumber: 921
    functionLinenumberEnd: 962
    functionName: _PyPreConfig_Write
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - _PyMem_SetupAllocators
    - preconfig_copy
    - _Py_SetLocaleFromEnv
    - _Py_CoerceLegacyLocale
    - preconfig_set_global_vars
    - _PyStatus_ERR
    - _PyPreConfig_InitFromPreConfig
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreConfig_Write(const PyPreConfig *src_config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Python/modsupport.c:20,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Python/modsupport.c:21,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:22,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/modsupport.c:27,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/modsupport.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - result
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 34
    functionName: _Py_convert_optional_to_ssize_t
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 19
    functionsReached:
    - _PyIndex_Check
    - PyErr_Occurred
    - PyNumber_AsSsize_t
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_convert_optional_to_ssize_t(PyObject *obj, void *result)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:48,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - format
    - endchar
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 79
    functionName: countformat
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t countformat(const char *format, char endchar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p_format
    - endchar
    argTypes:
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: check_end
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_end(const char **p_format, char endchar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/modsupport.c:113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:113,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/modsupport.c:114,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/modsupport.c:116,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:117,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/modsupport.c:118,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/modsupport.c:121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:124,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/modsupport.c:128,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/cpython/Python/modsupport.c
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: do_ignore
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - do_mkvalue
    - check_end
    - assert
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void do_ignore(const char **p_format, va_list *p_va, char endchar,
      Py_ssize_t n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:142,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:144,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/modsupport.c:149,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:150,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:156,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:159,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:162,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/modsupport.c:163,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:165,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/modsupport.c:166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:171,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 134
    functionDepth: 10
    functionLinenumber: 134
    functionLinenumberEnd: 178
    functionName: do_mkdict
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyDict_SetItem
    - do_ignore
    - PyErr_SetString
    - do_mkvalue
    - check_end
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mkdict(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/modsupport.c:189,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:191,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:195,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:198,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/modsupport.c:201,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 208
    functionName: do_mklist
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - do_ignore
    - PyList_SET_ITEM
    - do_mkvalue
    - check_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mklist(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:222,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:224,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - stack
    - p_format
    - p_va
    - endchar
    - n
    argTypes:
    - PyObject**
    - char**
    - va_list*
    - char
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 240
    functionName: do_mkstack
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - check_end
    - Py_DECREF
    - do_ignore
    - do_mkvalue
    linkageType: ''
    returnType: int
    signature: "int do_mkstack(PyObject **stack, const char **p_format, va_list *p_va,\n
      \          char endchar, Py_ssize_t n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/modsupport.c:251,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:252,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:256,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:259,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/modsupport.c:262,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 269
    functionName: do_mktuple
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - do_ignore
    - PyTuple_SET_ITEM
    - do_mkvalue
    - check_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mktuple(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n)'
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: do_mktuple
      Src: /src/cpython/Python/modsupport.c:277,1
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:278,1
    - Dst: do_mklist
      Src: /src/cpython/Python/modsupport.c:281,1
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:282,1
    - Dst: do_mkdict
      Src: /src/cpython/Python/modsupport.c:285,1
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:286,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/modsupport.c:292,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:292,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/modsupport.c:295,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:295,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:300,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/modsupport.c:301,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/modsupport.c:306,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:306,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/modsupport.c:311,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:311,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:316,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/modsupport.c:317,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/modsupport.c:321,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:321,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/modsupport.c:324,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:325,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:330,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:334,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/modsupport.c:339,1
    - Dst: wcslen
      Src: /src/cpython/Python/modsupport.c:343,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/modsupport.c:344,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/modsupport.c:350,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:351,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Python/modsupport.c:354,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:355,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:360,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/modsupport.c:361,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:365,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/modsupport.c:366,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:370,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/modsupport.c:371,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:379,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:383,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/modsupport.c:388,1
    - Dst: strlen
      Src: /src/cpython/Python/modsupport.c:392,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:394,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/modsupport.c:400,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:408,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:412,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/modsupport.c:417,1
    - Dst: strlen
      Src: /src/cpython/Python/modsupport.c:421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:423,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/modsupport.c:429,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:439,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:440,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:446,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/modsupport.c:449,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:451,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:472,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 131
    argCount: 2
    argNames:
    - p_format
    - p_va
    argTypes:
    - char**
    - va_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 271
    functionDepth: 11
    functionLinenumber: 271
    functionLinenumberEnd: 478
    functionName: do_mkvalue
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 5
    functionsReached:
    - strlen
    - PyErr_SetString
    - PyLong_FromLong
    - PyBool_FromLong
    - PyComplex_FromCComplex
    - PyFloat_FromDouble
    - Py_INCREF
    - PyUnicode_FromStringAndSize
    - do_mkdict
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    - PyLong_FromLongLong
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - wcslen
    - PyUnicode_FromWideChar
    - PyUnicode_FromOrdinal
    - do_mklist
    - PyLong_FromSsize_t
    - do_mktuple
    - va_arg
    - PyLong_FromUnsignedLongLong
    - countformat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mkvalue(const char **p_format, va_list *p_va)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/modsupport.c:486,1
    - Dst: va_build_value
      Src: /src/cpython/Python/modsupport.c:487,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 490
    functionName: Py_BuildValue
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 245
    functionsReached:
    - va_build_value
    - va_start
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_BuildValue(const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/modsupport.c:497,1
    - Dst: va_build_value
      Src: /src/cpython/Python/modsupport.c:498,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: _Py_BuildValue_SizeT
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - va_build_value
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void _Py_BuildValue_SizeT(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_build_value
      Src: /src/cpython/Python/modsupport.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: Py_VaBuildValue
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 1
    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/cpython/Python/modsupport.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: _Py_VaBuildValue_SizeT
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - va_build_value
    linkageType: ''
    returnType: void
    signature: void _Py_VaBuildValue_SizeT(const char *format, va_list va)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:519,1
    - Dst: va_copy
      Src: /src/cpython/Python/modsupport.c:528,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:530,1
    - Dst: do_mktuple
      Src: /src/cpython/Python/modsupport.c:532,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 515
    functionDepth: 12
    functionLinenumber: 515
    functionLinenumberEnd: 536
    functionName: va_build_value
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 4
    functionsReached:
    - va_copy
    - do_mktuple
    - do_mkvalue
    - countformat
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      va_build_value(const char *format, va_list va)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:548,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/modsupport.c:563,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/modsupport.c:565,1
    - Dst: va_copy
      Src: /src/cpython/Python/modsupport.c:570,1
    - Dst: do_mkstack
      Src: /src/cpython/Python/modsupport.c:572,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:573,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/modsupport.c:577,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 538
    functionDepth: 5
    functionLinenumber: 538
    functionLinenumberEnd: 584
    functionName: _Py_VaBuildStack
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 1
    functionsReached:
    - do_mkstack
    - va_copy
    - PyMem_Free
    - va_end
    - countformat
    - PyErr_NoMemory
    - PyMem_Malloc
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Python/modsupport.c:590,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:591,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:597,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:598,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/modsupport.c:605,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/modsupport.c:608,1
    - Dst: PyModule_GetName
      Src: /src/cpython/Python/modsupport.c:609,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/modsupport.c:612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - mod
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 587
    functionDepth: 10
    functionLinenumber: 587
    functionLinenumberEnd: 613
    functionName: PyModule_AddObjectRef
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 47
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyModule_GetName
    - PyModule_GetDict
    - PyDict_SetItemString
    - PyErr_Format
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int PyModule_AddObjectRef(PyObject *mod, const char *name, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/modsupport.c:618,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/modsupport.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 11
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: PyModule_Add
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 39
    functionsReached:
    - Py_XDECREF
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int PyModule_Add(PyObject *mod, const char *name, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/modsupport.c:626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mod
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 623
    functionDepth: 11
    functionLinenumber: 623
    functionLinenumberEnd: 631
    functionName: PyModule_AddObject
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int PyModule_AddObject(PyObject *mod, const char *name, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Python/modsupport.c:636,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/modsupport.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 12
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: PyModule_AddIntConstant
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 26
    functionsReached:
    - PyModule_Add
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int PyModule_AddIntConstant(PyObject *m, const char *name, long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Python/modsupport.c:642,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/modsupport.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 12
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: PyModule_AddStringConstant
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 19
    functionsReached:
    - PyModule_Add
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyModule_AddStringConstant(PyObject *m, const char *name, const
      char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_IsReady
      Src: /src/cpython/Python/modsupport.c:648,1
    - Dst: PyType_Ready
      Src: /src/cpython/Python/modsupport.c:648,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/modsupport.c:652,1
    - Dst: assert
      Src: /src/cpython/Python/modsupport.c:653,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/modsupport.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/cpython/Python/modsupport.c
    constantsTouched: []
    func_position:
      end: 656
      start: 645
    functionDepth: 18
    functionLinenumber: 645
    functionLinenumberEnd: 656
    functionName: PyModule_AddType
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 59
    functionsReached:
    - PyType_Ready
    - PyModule_AddObjectRef
    - _PyType_Name
    - _PyType_IsReady
    - assert
    linkageType: ''
    returnType: int
    signature: int PyModule_AddType(PyObject *module, PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PACK_FULL_VERSION
      Src: /src/cpython/Python/modsupport.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - y
    - z
    - level
    - serial
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: Py_PACK_FULL_VERSION
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 2
    functionsReached:
    - _Py_PACK_FULL_VERSION
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Py_PACK_FULL_VERSION(int x, int y, int z, int level, int serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PACK_VERSION
      Src: /src/cpython/Python/modsupport.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: Py_PACK_VERSION
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 2
    functionsReached:
    - _Py_PACK_VERSION
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Py_PACK_VERSION(int x, int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: inst
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inst(name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: macro
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: macro(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: super
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: super(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: family
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: family(name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: pseudo
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pseudo(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: label(name)
  - BBCount: 113
    BranchProfiles: []
    Callsites:
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:149,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:153,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:155,1
    - Dst: check_periodics
      Src: /src/cpython/Python/bytecodes.c:156,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:157,1
    - Dst: check_periodics
      Src: /src/cpython/Python/bytecodes.c:161,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:162,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:165,1
    - Dst: check_periodics
      Src: /src/cpython/Python/bytecodes.c:167,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:168,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:172,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/bytecodes.c:175,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/bytecodes.c:190,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:191,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:191,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Python/bytecodes.c:193,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:193,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:195,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:198,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:203,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Python/bytecodes.c:208,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:208,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:209,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:210,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:216,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:221,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:227,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:229,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/bytecodes.c:232,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:233,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:233,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:234,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:235,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:237,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:242,1
    - Dst: _Py_call_instrumentation
      Src: /src/cpython/Python/bytecodes.c:243,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:245,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:252,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:258,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:262,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:263,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:264,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:265,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/bytecodes.c:267,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:267,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:269,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:271,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:274,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:275,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:275,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:275,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:276,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:276,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:279,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:280,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:280,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:280,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/bytecodes.c:281,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:281,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:284,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:285,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:286,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:289,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:292,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:292,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:293,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:293,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:296,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/bytecodes.c:299,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:299,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/bytecodes.c:300,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:300,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:303,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:304,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:305,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:308,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:308,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:309,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:311,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:314,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:314,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:315,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:316,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:317,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:318,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:321,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:325,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:328,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:329,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:330,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:331,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:331,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:332,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:335,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:338,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:339,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:340,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:341,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:342,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:343,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:344,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:345,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:349,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:352,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:353,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:353,1
    - Dst: PyStackRef_RefcountOnObject
      Src: /src/cpython/Python/bytecodes.c:353,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/bytecodes.c:354,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:354,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:355,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:358,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:359,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:359,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:359,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:360,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:363,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:364,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:364,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:364,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:365,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:368,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:369,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:369,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:369,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:370,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:374,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:375,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:388,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:392,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:394,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:395,1
    - Dst: PyStackRef_GenCheck
      Src: /src/cpython/Python/bytecodes.c:401,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/bytecodes.c:402,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:402,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:404,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:407,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:412,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:413,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:414,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:419,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:420,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:424,1
    - Dst: PyGen_Check
      Src: /src/cpython/Python/bytecodes.c:425,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/bytecodes.c:425,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/bytecodes.c:426,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:426,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:428,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:432,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:433,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:436,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Python/bytecodes.c:437,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:437,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:438,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:439,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:440,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:444,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:444,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/bytecodes.c:445,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:447,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:450,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:461,1
    - Dst: _Py_Specialize_ToBool
      Src: /src/cpython/Python/bytecodes.c:463,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:464,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:466,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:467,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:471,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bytecodes.c:472,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:472,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:473,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:474,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:478,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:480,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:481,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:481,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:482,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:485,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:486,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:487,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:487,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:488,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/bytecodes.c:489,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:490,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/bytecodes.c:490,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:491,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:495,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:500,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:501,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:502,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:502,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:505,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:506,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:507,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:507,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:510,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:511,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:512,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/bytecodes.c:512,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:515,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:517,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:518,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:519,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:519,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:520,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:521,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:522,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:525,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:527,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:527,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:528,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:529,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:533,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:534,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:535,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:535,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:538,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:539,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:540,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:540,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:543,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:544,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:545,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/bytecodes.c:546,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:547,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/bytecodes.c:547,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:548,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:552,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/bytecodes.c:552,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:553,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:558,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:561,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:562,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:566,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:571,1
    - Dst: PyNumber_Invert
      Src: /src/cpython/Python/bytecodes.c:572,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:572,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:573,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:574,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:575,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:578,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:596,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:597,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:598,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/bytecodes.c:598,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:601,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:602,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:603,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/bytecodes.c:603,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:606,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:607,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:608,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:608,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:609,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:609,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:612,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:613,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:614,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:614,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:615,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:615,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:619,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:620,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:621,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:621,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:622,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:622,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:623,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/bytecodes.c:623,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:625,1
    - Dst: _PyCompactLong_Multiply
      Src: /src/cpython/Python/bytecodes.c:626,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:627,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:627,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:628,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:629,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:630,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:634,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:635,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:636,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:636,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:637,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:637,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:638,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/bytecodes.c:638,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:640,1
    - Dst: _PyCompactLong_Add
      Src: /src/cpython/Python/bytecodes.c:641,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:642,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:642,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:643,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:644,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:645,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:649,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:650,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:651,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:651,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:652,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:652,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:653,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/bytecodes.c:653,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:655,1
    - Dst: _PyCompactLong_Subtract
      Src: /src/cpython/Python/bytecodes.c:656,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:657,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:657,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:658,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:659,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:660,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:663,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:666,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:669,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:672,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:673,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:674,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:674,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:677,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:678,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:679,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:679,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:683,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:684,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:685,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:685,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:686,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:686,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:688,1
    - Dst: _PyFloat_FromDouble_ConsumeInputs
      Src: /src/cpython/Python/bytecodes.c:692,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:693,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:694,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:694,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:698,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:699,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:700,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:700,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:701,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:701,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:703,1
    - Dst: _PyFloat_FromDouble_ConsumeInputs
      Src: /src/cpython/Python/bytecodes.c:707,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:708,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:709,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:709,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:713,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:714,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:715,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:715,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:716,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:716,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:718,1
    - Dst: _PyFloat_FromDouble_ConsumeInputs
      Src: /src/cpython/Python/bytecodes.c:722,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:723,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:724,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:724,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:729,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:730,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:731,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:731,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:732,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:732,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:734,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:738,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bytecodes.c:738,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:739,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:740,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:740,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:744,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:745,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:746,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:746,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:747,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:747,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:749,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:753,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bytecodes.c:753,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:754,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:755,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:755,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:759,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:760,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:761,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:761,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:762,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:762,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:764,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:768,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bytecodes.c:768,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:769,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:770,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:770,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:773,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:775,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:777,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:781,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:782,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:783,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:783,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:784,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:784,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:786,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/bytecodes.c:787,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:788,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:789,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:790,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:791,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:792,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:795,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:804,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:805,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:806,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:806,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:807,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:807,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:807,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:811,1
    - Dst: CURRENT_OPERAND0
      Src: /src/cpython/Python/bytecodes.c:814,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:816,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:817,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:817,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:818,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:818,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:819,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:831,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/bytecodes.c:831,1
    - Dst: PyStackRef_IsHeapSafe
      Src: /src/cpython/Python/bytecodes.c:831,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:832,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:833,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:834,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:835,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Python/bytecodes.c:836,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:838,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:839,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:839,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:843,1
    - Dst: SKIP_OVER
      Src: /src/cpython/Python/bytecodes.c:844,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:848,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:849,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:850,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:852,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:853,1
    - Dst: _PyBinaryOpSpecializationDescr*::guard
      Src: /src/cpython/Python/bytecodes.c:854,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:855,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:858,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:859,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:860,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:861,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:864,1
    - Dst: _PyBinaryOpSpecializationDescr*::action
      Src: /src/cpython/Python/bytecodes.c:866,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:867,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:868,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:871,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:874,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:880,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:884,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Python/bytecodes.c:885,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:885,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:886,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/bytecodes.c:894,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:895,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:897,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:898,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:899,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:902,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:907,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:911,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Python/bytecodes.c:912,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:912,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:913,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:919,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:919,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:920,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:922,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:923,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:926,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:928,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:931,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:932,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:933,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:935,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:935,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:936,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:936,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:939,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/bytecodes.c:939,1
    - Dst: _PyList_GetItemRef
      Src: /src/cpython/Python/bytecodes.c:942,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:943,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:944,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:945,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:947,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:947,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:948,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:949,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:950,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:951,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:953,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:954,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:957,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:960,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:961,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:962,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:964,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/bytecodes.c:964,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:965,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:965,1
    - Dst: _PyList_SliceSubscript
      Src: /src/cpython/Python/bytecodes.c:967,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:968,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:969,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:970,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:971,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:974,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:977,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:978,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:979,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:981,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:981,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:982,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:982,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:983,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/bytecodes.c:983,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:985,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/bytecodes.c:985,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/bytecodes.c:987,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:988,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/bytecodes.c:988,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/bytecodes.c:988,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:989,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/bytecodes.c:990,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:991,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:992,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:993,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:994,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:997,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:998,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:999,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:999,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1002,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1003,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1004,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1004,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1007,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1010,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1011,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1012,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1014,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1014,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1015,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1015,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1018,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/bytecodes.c:1018,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1020,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1020,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1021,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1022,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1023,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:1024,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1025,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1026,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1029,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1030,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1031,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1031,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1034,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1035,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1036,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1036,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1039,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1042,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1043,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1044,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1046,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1046,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1047,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/bytecodes.c:1049,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Python/bytecodes.c:1051,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1053,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1054,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1055,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1058,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1059,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1059,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1060,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/bytecodes.c:1060,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:1062,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1063,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1064,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:1064,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:1065,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1066,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:1067,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1068,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1069,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:1069,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1070,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1071,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1074,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/bytecodes.c:1075,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1078,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:1080,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1083,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1090,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Python/bytecodes.c:1091,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1091,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1092,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1093,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1096,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/bytecodes.c:1097,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1097,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1098,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1099,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:1102,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:1109,1
    - Dst: _Py_Specialize_StoreSubscr
      Src: /src/cpython/Python/bytecodes.c:1111,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:1112,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1114,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:1115,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1119,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:1121,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1121,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1121,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1121,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1122,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1123,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1126,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1128,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1131,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1132,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1133,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1135,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1135,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1136,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1136,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1139,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/bytecodes.c:1139,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1141,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1141,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1143,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1144,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1145,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1147,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1149,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:1150,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/bytecodes.c:1150,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1151,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1152,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1153,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:1154,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1155,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1157,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1160,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1163,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1164,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1166,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1166,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1167,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/bytecodes.c:1168,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1169,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1170,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1171,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1172,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1175,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/bytecodes.c:1177,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1177,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1178,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1179,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1180,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1183,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1184,1
    - Dst: func
      Src: /src/cpython/Python/bytecodes.c:1185,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1185,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1186,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1187,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1188,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1191,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1192,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1193,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1194,1
    - Dst: func
      Src: /src/cpython/Python/bytecodes.c:1196,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1197,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1198,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1199,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1203,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1204,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1205,1
    - Dst: do_raise
      Src: /src/cpython/Python/bytecodes.c:1206,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1208,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1209,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1212,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1216,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1217,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/bytecodes.c:1217,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1220,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:1220,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1221,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1223,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1227,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:1228,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1229,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1230,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:1233,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1240,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1241,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/bytecodes.c:1242,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1243,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/bytecodes.c:1244,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1245,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/bytecodes.c:1245,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/bytecodes.c:1246,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/bytecodes.c:1250,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:1251,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/bytecodes.c:1252,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:1254,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/bytecodes.c:1258,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1260,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1261,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1264,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1268,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1270,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1272,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:1279,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1283,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1284,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1288,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1289,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1291,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1292,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:1294,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1298,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1299,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1301,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1304,1
    - Dst: _PyEval_GetANext
      Src: /src/cpython/Python/bytecodes.c:1305,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1305,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1307,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1309,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1312,1
    - Dst: _PyEval_GetAwaitable
      Src: /src/cpython/Python/bytecodes.c:1313,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1313,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1314,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1315,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1316,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:1319,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:1325,1
    - Dst: _Py_Specialize_Send
      Src: /src/cpython/Python/bytecodes.c:1327,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:1328,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1330,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:1331,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1335,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1336,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1338,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1340,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1340,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:1345,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/bytecodes.c:1345,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1346,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:1347,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1351,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1353,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/bytecodes.c:1355,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:1357,1
    - Dst: PyIter_Check
      Src: /src/cpython/Python/bytecodes.c:1357,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1358,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/bytecodes.c:1361,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:1362,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1363,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:1366,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/bytecodes.c:1368,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/cpython/Python/bytecodes.c:1370,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1372,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:1373,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1376,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1377,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1380,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1381,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1384,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1386,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1387,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1388,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1388,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1388,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1389,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1390,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:1392,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/bytecodes.c:1392,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1393,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1397,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:1400,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1403,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1409,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1413,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/bytecodes.c:1415,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1416,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1417,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1420,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/bytecodes.c:1421,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/bytecodes.c:1424,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1429,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1431,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:1438,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/bytecodes.c:1439,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/bytecodes.c:1440,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:1441,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/bytecodes.c:1445,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1447,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1449,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:1453,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1457,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1461,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/bytecodes.c:1463,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:1464,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1465,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1469,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1471,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:1473,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:1473,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1475,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:1475,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/bytecodes.c:1476,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1477,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:1482,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1484,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1486,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:1486,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:1487,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1489,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bytecodes.c:1492,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/bytecodes.c:1493,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1494,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1500,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:1501,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1504,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1508,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1511,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1513,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1515,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:1515,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:1517,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1519,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1520,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/bytecodes.c:1524,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:1524,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1525,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1530,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1532,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1533,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1536,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/bytecodes.c:1538,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1538,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:1538,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1539,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/bytecodes.c:1541,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1543,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1545,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1548,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1549,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:1550,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:1553,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1555,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1556,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1558,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/bytecodes.c:1559,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1559,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:1562,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1562,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1564,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1565,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1568,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1569,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:1570,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:1573,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1575,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/bytecodes.c:1577,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:1580,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1583,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:1587,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:1595,1
    - Dst: _Py_Specialize_UnpackSequence
      Src: /src/cpython/Python/bytecodes.c:1597,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:1598,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1600,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:1601,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1607,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1608,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/bytecodes.c:1609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1610,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1611,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1614,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1616,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1619,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1620,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1621,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1622,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1622,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1623,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1623,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1624,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1625,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1625,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1626,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1626,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1627,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1630,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1633,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1634,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1635,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1635,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1636,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1636,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1637,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/bytecodes.c:1638,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1640,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1642,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1645,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1648,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1649,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1650,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1650,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1651,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1651,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1652,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1653,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1654,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1656,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/bytecodes.c:1657,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1659,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1661,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1662,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1665,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1666,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/bytecodes.c:1667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1668,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1669,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:1672,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:1680,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1681,1
    - Dst: _Py_Specialize_StoreAttr
      Src: /src/cpython/Python/bytecodes.c:1683,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:1684,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1686,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:1687,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1691,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1692,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/bytecodes.c:1693,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1693,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1694,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1695,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1696,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1699,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1701,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1702,1
    - Dst: PyObject_DelAttr
      Src: /src/cpython/Python/bytecodes.c:1703,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1703,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1704,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1705,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1708,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1709,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/bytecodes.c:1710,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1710,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1710,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1711,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1712,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1715,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1716,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/bytecodes.c:1717,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1717,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1720,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:1723,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1725,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1729,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:1730,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/bytecodes.c:1732,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1734,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1736,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1739,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1740,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/bytecodes.c:1742,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1742,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1743,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1744,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1746,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1746,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1747,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1747,1
    - Dst: _PyDict_LoadGlobal
      Src: /src/cpython/Python/bytecodes.c:1749,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1749,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1750,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:1753,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:1756,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1759,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/bytecodes.c:1765,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1765,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1766,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/bytecodes.c:1769,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1769,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1770,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:1772,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1775,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1780,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1783,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1784,1
    - Dst: _PyEval_LoadName
      Src: /src/cpython/Python/bytecodes.c:1785,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1786,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1787,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:1790,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:1797,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1798,1
    - Dst: _Py_Specialize_LoadGlobal
      Src: /src/cpython/Python/bytecodes.c:1800,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1800,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1800,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:1801,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1803,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:1804,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1809,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1810,1
    - Dst: _PyEval_LoadGlobalStackRef
      Src: /src/cpython/Python/bytecodes.c:1811,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1811,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1811,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1812,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:1812,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1815,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1821,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1829,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1830,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1831,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1831,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:1832,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1833,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:1833,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1834,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/bytecodes.c:1834,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1837,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:1839,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1840,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1840,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:1841,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1842,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:1842,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1843,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/bytecodes.c:1843,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:1844,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1845,1
    - Dst: DK_SIZE
      Src: /src/cpython/Python/bytecodes.c:1845,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:1846,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1847,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:1849,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1850,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1852,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1854,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1857,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1859,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1860,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1860,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:1861,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1862,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:1862,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1863,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/bytecodes.c:1863,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:1864,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:1865,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1866,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:1868,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1869,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1871,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1873,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1876,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1882,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1888,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1889,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:1890,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:1891,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/bytecodes.c:1893,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1893,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1895,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1897,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1898,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:1899,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1902,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1905,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1905,1
    - Dst: PyCell_New
      Src: /src/cpython/Python/bytecodes.c:1906,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1908,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1910,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1911,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1911,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:1912,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1915,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1916,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1916,1
    - Dst: PyCell_SwapTakeRef
      Src: /src/cpython/Python/bytecodes.c:1919,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/bytecodes.c:1921,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1921,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1924,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1927,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1930,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1932,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1933,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1933,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1934,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1934,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/bytecodes.c:1935,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1937,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1940,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1940,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Python/bytecodes.c:1941,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/bytecodes.c:1943,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1943,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1944,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1947,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1948,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1951,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1952,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1952,1
    - Dst: _PyCell_GetStackRef
      Src: /src/cpython/Python/bytecodes.c:1953,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:1954,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/bytecodes.c:1955,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1955,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1956,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1960,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1961,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:1961,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Python/bytecodes.c:1962,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1962,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1965,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1967,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1968,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/bytecodes.c:1968,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1969,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1971,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1974,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1975,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1979,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/bytecodes.c:1980,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/bytecodes.c:1981,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1982,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1983,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/cpython/Python/bytecodes.c:1985,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/bytecodes.c:1985,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/bytecodes.c:1986,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1987,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1988,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1989,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1992,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1993,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1994,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1998,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/bytecodes.c:2001,1
    - Dst: _PyInterpolation_Build
      Src: /src/cpython/Python/bytecodes.c:2003,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2005,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2008,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2010,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2011,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2012,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2013,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2016,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2017,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2018,1
    - Dst: _PyTemplate_Build
      Src: /src/cpython/Python/bytecodes.c:2019,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2020,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2021,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2022,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2026,1
    - Dst: _PyTuple_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/bytecodes.c:2027,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2029,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:2031,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2032,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2035,1
    - Dst: _PyList_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/bytecodes.c:2036,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2038,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:2040,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2041,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2044,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2045,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2046,1
    - Dst: _PyList_Extend
      Src: /src/cpython/Python/bytecodes.c:2048,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:2050,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2052,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/bytecodes.c:2052,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/bytecodes.c:2054,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:2055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2057,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2059,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2060,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2062,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/bytecodes.c:2062,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2063,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2066,1
    - Dst: _PySet_Update
      Src: /src/cpython/Python/bytecodes.c:2067,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2067,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2068,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2069,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2070,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2073,1
    - Dst: PySet_New
      Src: /src/cpython/Python/bytecodes.c:2074,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2076,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2077,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/bytecodes.c:2085,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2085,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2088,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2093,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2094,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:2097,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2098,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2101,1
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/bytecodes.c:2102,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/bytecodes.c:2103,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2104,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2105,1
    - Dst: _PyDict_FromItems
      Src: /src/cpython/Python/bytecodes.c:2107,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/bytecodes.c:2111,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2112,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2113,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2114,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2117,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2119,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:2120,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2122,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/bytecodes.c:2125,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2125,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:2125,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2126,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/bytecodes.c:2128,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2129,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:2130,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2130,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:2130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2132,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2136,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:2140,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2144,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2145,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2146,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/bytecodes.c:2148,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:2150,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:2152,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2154,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2156,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2157,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2159,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2162,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2163,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2164,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2165,1
    - Dst: _PyDict_MergeEx
      Src: /src/cpython/Python/bytecodes.c:2167,1
    - Dst: _PyEval_FormatKwargsError
      Src: /src/cpython/Python/bytecodes.c:2169,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2170,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2171,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2173,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2176,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2177,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2178,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2178,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/bytecodes.c:2181,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2183,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2184,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2186,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2189,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2194,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2202,1
    - Dst: _Py_Specialize_LoadSuperAttr
      Src: /src/cpython/Python/bytecodes.c:2204,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2205,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2207,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2208,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2213,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2214,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2215,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:2219,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2223,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2224,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/bytecodes.c:2230,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/bytecodes.c:2234,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:2239,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bytecodes.c:2243,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2247,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2248,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2249,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bytecodes.c:2250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2251,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2252,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2253,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2256,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2261,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2262,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2263,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2264,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2266,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2267,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2268,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:2268,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2269,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2270,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/bytecodes.c:2271,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2272,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2273,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2274,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2277,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2278,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2279,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2280,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2282,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2283,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2284,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:2284,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2285,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2286,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/bytecodes.c:2289,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2290,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2292,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2296,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2298,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2301,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2303,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2306,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2324,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2325,1
    - Dst: _Py_Specialize_LoadAttr
      Src: /src/cpython/Python/bytecodes.c:2327,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2328,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2330,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2331,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2335,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2336,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Python/bytecodes.c:2340,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2340,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2346,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:2346,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2348,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2357,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2358,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:2358,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bytecodes.c:2364,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2364,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2365,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2366,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2367,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2371,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2376,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2377,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2377,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2378,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2379,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2379,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2382,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2383,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2384,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2385,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2385,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2386,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2387,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2388,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2389,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2393,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2394,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2395,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2395,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2396,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2396,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2397,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/bytecodes.c:2397,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/bytecodes.c:2397,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2400,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2401,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:2403,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2404,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2406,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2408,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2411,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2413,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2414,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2417,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2425,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2426,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2427,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2427,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2429,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:2430,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2431,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2431,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2432,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2433,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2433,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:2434,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2435,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2436,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2438,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2440,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2443,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2445,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2446,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2449,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2455,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2456,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2457,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2457,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:2458,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2459,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/bytecodes.c:2460,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2461,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2461,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2463,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/bytecodes.c:2463,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/bytecodes.c:2463,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2466,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2467,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2470,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2472,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:2474,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2475,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2476,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/bytecodes.c:2478,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2480,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2482,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2484,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2486,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2489,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2491,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2494,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2501,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2502,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/bytecodes.c:2505,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2506,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2508,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2509,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2511,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2513,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2514,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2517,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2524,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2525,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2527,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:2527,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2528,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2529,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2529,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2532,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2533,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2534,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2535,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2536,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2539,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2546,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2553,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2554,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2555,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:2555,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2558,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2559,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2560,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2561,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:2561,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2562,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/bytecodes.c:2563,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2563,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2565,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:2566,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2569,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2578,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2579,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2581,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2583,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2584,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2585,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2585,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2586,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:2586,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2588,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2589,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2591,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2592,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:2592,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2593,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2595,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/bytecodes.c:2596,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2597,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2599,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:2601,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2602,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/bytecodes.c:2604,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2607,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2608,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2610,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2610,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2611,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2611,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:2612,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/bytecodes.c:2613,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/bytecodes.c:2613,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2614,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2615,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2619,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2620,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2622,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2623,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:2623,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:2626,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2626,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/bytecodes.c:2628,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Python/bytecodes.c:2630,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2632,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2633,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:2634,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2637,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2643,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2644,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2645,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2645,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:2646,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2647,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2648,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2648,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2649,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2649,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2650,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/bytecodes.c:2652,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2653,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2654,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:2656,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2658,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2659,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2663,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2664,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Python/bytecodes.c:2666,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2666,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:2667,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2667,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2668,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2672,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2673,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:2674,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2677,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2682,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2683,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2685,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2685,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2687,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:2689,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2689,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2690,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2691,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:2692,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2695,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2700,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2708,1
    - Dst: _Py_Specialize_CompareOp
      Src: /src/cpython/Python/bytecodes.c:2710,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2711,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2713,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2714,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2718,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2719,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2720,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2722,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Python/bytecodes.c:2723,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2724,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2725,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bytecodes.c:2727,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2728,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2729,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2733,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2737,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2739,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2742,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2745,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2748,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2749,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2750,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2752,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bytecodes.c:2753,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bytecodes.c:2754,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/bytecodes.c:2756,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:2757,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2758,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:2759,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2760,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2766,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2767,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2768,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2770,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:2770,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2771,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:2771,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2772,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2773,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/bytecodes.c:2773,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/bytecodes.c:2774,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bytecodes.c:2775,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bytecodes.c:2776,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/bytecodes.c:2778,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:2779,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2780,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:2781,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2782,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2788,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2789,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2790,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2792,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/bytecodes.c:2793,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2794,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:2795,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2796,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:2797,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2798,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2799,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2800,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2801,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2806,1
    - Dst: Py_Is
      Src: /src/cpython/Python/bytecodes.c:2807,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2807,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2807,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2808,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2812,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2817,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2818,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2819,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/bytecodes.c:2821,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2822,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2823,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2829,1
    - Dst: _Py_Specialize_ContainsOp
      Src: /src/cpython/Python/bytecodes.c:2831,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2832,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2834,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2835,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2839,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2841,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2842,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2843,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2843,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2846,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2848,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2849,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2850,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2852,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2852,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2853,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Python/bytecodes.c:2855,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2856,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2857,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2861,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2863,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2864,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2865,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2867,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2867,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2868,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/bytecodes.c:2869,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2870,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2871,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2875,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2876,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2877,1
    - Dst: _PyEval_CheckExceptStarTypeValid
      Src: /src/cpython/Python/bytecodes.c:2878,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2880,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2881,1
    - Dst: _PyEval_ExceptionGroupMatch
      Src: /src/cpython/Python/bytecodes.c:2886,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2888,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2889,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2891,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2892,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/bytecodes.c:2894,1
    - Dst: PyErr_SetHandledException
      Src: /src/cpython/Python/bytecodes.c:2895,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2897,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2898,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2901,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2902,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2903,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2905,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:2905,1
    - Dst: _PyEval_CheckExceptTypeValid
      Src: /src/cpython/Python/bytecodes.c:2906,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2908,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:2911,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2912,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2916,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2917,1
    - Dst: _PyEval_ImportName
      Src: /src/cpython/Python/bytecodes.c:2918,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2919,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2920,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2921,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2922,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2923,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2926,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2927,1
    - Dst: _PyEval_ImportFrom
      Src: /src/cpython/Python/bytecodes.c:2928,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2928,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2929,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2930,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:2934,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2937,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2948,1
    - Dst: backoff_counter_triggers
      Src: /src/cpython/Python/bytecodes.c:2956,1
    - Dst: _PyOptimizer_Optimize
      Src: /src/cpython/Python/bytecodes.c:2964,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Python/bytecodes.c:2966,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2967,1
    - Dst: initial_jump_backoff_counter
      Src: /src/cpython/Python/bytecodes.c:2970,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2971,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2972,1
    - Dst: TIER1_TO_TIER2
      Src: /src/cpython/Python/bytecodes.c:2974,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2978,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2983,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2989,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2994,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:3000,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:3005,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:3010,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:3020,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/bytecodes.c:3022,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/bytecodes.c:3029,1
    - Dst: this_instr
      Src: /src/cpython/Python/bytecodes.c:3032,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3034,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3055,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:3055,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/bytecodes.c:3056,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3057,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/bytecodes.c:3058,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3059,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3065,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:3069,1
    CyclomaticComplexity: 157
    EdgeCount: 157
    ICount: 1606
    argCount: 8
    argNames:
    - tstate
    - frame
    - opcode
    - oparg
    - next_instr
    - stack_pointer
    - throwflag
    - args
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - unsigned char
    - unsigned int
    - _Py_CODEUNIT*
    - PyObject**
    - int
    - PyObject*[]
    assertStmts:
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1240
        line_start: 1240
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg & 1)
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (class_dict)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 761
        line_start: 761
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (descr != NULL)
      pos:
        line_end: 2533
        line_start: 2533
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (old_value != NULL)
      pos:
        line_end: 1151
        line_start: 1151
        source_file: /src/cpython/Python/bytecodes.c
    - condition: "(_PyLong_DigitCount((PyLongObject *)left_o) <= 1 &&\n                   _PyLong_DigitCount((PyLongObject
        *)right_o) <= 1)"
      pos:
        line_end: 2773
        line_start: 2772
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (res_o != NULL)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 2609
        line_start: 2609
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg < NUM_COMMON_CONSTANTS)
      pos:
        line_end: 1531
        line_start: 1531
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame == &entry.frame)
      pos:
        line_end: 1222
        line_start: 1222
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 981
        line_start: 981
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (throwflag)
      pos:
        line_end: 1512
        line_start: 1512
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((next_instr-oparg)->op.code == END_SEND || (next_instr-oparg)->op.code
        >= MIN_INSTRUMENTED_OPCODE)
      pos:
        line_end: 1499
        line_start: 1499
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((match_o == NULL) == (rest_o == NULL))
      pos:
        line_end: 2890
        line_start: 2890
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (index < FT_ATOMIC_LOAD_SSIZE_RELAXED(keys->dk_nentries))
      pos:
        line_end: 2432
        line_start: 2432
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 2456
        line_start: 2456
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(right_o))
      pos:
        line_end: 783
        line_start: 783
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 0)
      pos:
        line_end: 1207
        line_start: 1207
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact(right_o))
      pos:
        line_end: 2866
        line_start: 2866
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INSTRUCTION_SIZE + oparg <= UINT16_MAX)
      pos:
        line_end: 1350
        line_start: 1350
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_SIZE(value_o))
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_Py_IsImmortal(value_o))
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg >= 0 && oparg <= 2)
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg >> 5) <= Py_GE)
      pos:
        line_end: 2721
        line_start: 2721
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 1485
        line_start: 1485
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS)
      pos:
        line_end: 2800
        line_start: 2800
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (func_version != 0)
      pos:
        line_end: 2587
        line_start: 2587
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(value_o) == &PyLong_Type)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 1416
        line_start: 1416
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFunction_Check(getitem_o))
      pos:
        line_end: 1063
        line_start: 1063
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyAnySet_CheckExact(right_o))
      pos:
        line_end: 2851
        line_start: 2851
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 730
        line_start: 730
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (d && d->guard)
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(right)))
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 1165
        line_start: 1165
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 2377
        line_start: 2377
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!PyStackRef_IsNull(*attr))
      pos:
        line_end: 2345
        line_start: 2345
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 1967
        line_start: 1967
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 1226
        line_start: 1226
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (eq == 0 || eq == 1)
      pos:
        line_end: 2798
        line_start: 2798
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(value_o))
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(left_o) == &PyLong_Type)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS)
      pos:
        line_end: 2799
        line_start: 2799
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_REFCNT(left_o) >= 2 || !PyStackRef_IsHeapSafe(left))
      pos:
        line_end: 830
        line_start: 830
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 2590
        line_start: 2590
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 805
        line_start: 805
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus)
      pos:
        line_end: 1932
        line_start: 1932
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (DK_IS_UNICODE(keys))
      pos:
        line_end: 1833
        line_start: 1833
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 2580
        line_start: 2580
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 2644
        line_start: 2644
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyExceptionInstance_Check(left_o))
      pos:
        line_end: 2904
        line_start: 2904
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (gen_frame->previous == NULL)
      pos:
        line_end: 1352
        line_start: 1352
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_IsCompact((PyLongObject *)left_o))
      pos:
        line_end: 2769
        line_start: 2769
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg < 3)
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 2610
        line_start: 2610
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!(oparg & 1))
      pos:
        line_end: 2265
        line_start: 2265
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyObject_GetManagedDict(owner_o) == NULL)
      pos:
        line_end: 2622
        line_start: 2622
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg <= MAX_INTRINSIC_2)
      pos:
        line_end: 1191
        line_start: 1191
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (exc_value && PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 1514
        line_start: 1514
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 2460
        line_start: 2460
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 1634
        line_start: 1634
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg <= MAX_INTRINSIC_1)
      pos:
        line_end: 1183
        line_start: 1183
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 2553
        line_start: 2553
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1412
        line_start: 1412
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_BoolCheck(value))
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_IsNone(none_val))
      pos:
        line_end: 2061
        line_start: 2061
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (DK_IS_UNICODE(keys))
      pos:
        line_end: 1842
        line_start: 1842
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 2394
        line_start: 2394
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 2648
        line_start: 2648
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_IS_TYPE(fget, &PyFunction_Type))
      pos:
        line_end: 2554
        line_start: 2554
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 745
        line_start: 745
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (DK_IS_UNICODE(keys))
      pos:
        line_end: 1862
        line_start: 1862
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (executor != tstate->interp->cold_executor)
      pos:
        line_end: 2971
        line_start: 2971
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PySlice_Check(sub))
      pos:
        line_end: 963
        line_start: 963
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(seq_o))
      pos:
        line_end: 1649
        line_start: 1649
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 2383
        line_start: 2383
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_IS_TYPE(getattribute, &PyFunction_Type))
      pos:
        line_end: 2585
        line_start: 2585
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 3054
        line_start: 3054
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (res_o != NULL)
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 1067
        line_start: 1067
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 1474
        line_start: 1474
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 635
        line_start: 635
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 1244
        line_start: 1244
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (dict != NULL)
      pos:
        line_end: 2428
        line_start: 2428
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner == FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/cpython/Python/bytecodes.c
    - condition: "(frame->instr_ptr->op.code == INSTRUMENTED_LINE ||\n                   frame->instr_ptr->op.code
        == INSTRUMENTED_INSTRUCTION ||\n                   _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == SEND ||\n                   _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == FOR_ITER ||\n                   _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == INTERPRETER_EXIT ||\n                   _PyOpcode_Deopt[frame->instr_ptr->op.code]
        == ENTER_EXECUTOR)"
      pos:
        line_end: 1435
        line_start: 1430
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (index < DK_SIZE(keys))
      pos:
        line_end: 1844
        line_start: 1844
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 2)
      pos:
        line_end: 1619
        line_start: 1619
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 2395
        line_start: 2395
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 2970
        line_start: 2970
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (retval_o != NULL)
      pos:
        line_end: 1371
        line_start: 1371
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_IsCompact((PyLongObject *)right_o))
      pos:
        line_end: 2770
        line_start: 2770
        source_file: /src/cpython/Python/bytecodes.c
    - condition: "(PyStackRef_IsNull(value) || (!PyStackRef_RefcountOnObject(value))
        ||\n                _Py_IsImmortal((PyStackRef_AsPyObjectBorrow(value))))"
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 1216
        line_start: 1216
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1134
        line_start: 1134
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg >> 5) == Py_EQ || (oparg >> 5) == Py_NE)
      pos:
        line_end: 2793
        line_start: 2793
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 1415
        line_start: 1415
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg < _PY_NSMALLPOSINTS)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 1135
        line_start: 1135
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 2431
        line_start: 2431
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == co->co_nfreevars)
      pos:
        line_end: 1970
        line_start: 1970
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 700
        line_start: 700
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 2583
        line_start: 2583
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_Py_IsImmortal(value_o))
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INSTRUCTION_SIZE + oparg <= UINT16_MAX)
      pos:
        line_end: 1396
        line_start: 1396
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 2527
        line_start: 2527
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1219
        line_start: 1219
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 964
        line_start: 964
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 3071
      start: 82
    functionDepth: 12
    functionLinenumber: 82
    functionLinenumberEnd: 3071
    functionName: dummy_func
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 0
    functionsReached:
    - _PyLong_CheckExactAndCompact
    - _PyObject_InlineValues
    - SKIP_OVER
    - COMPARISON_BIT
    - _PyList_Extend
    - Py_IsNone
    - _PyLong_IsZero
    - PyExceptionInstance_Check
    - Py_INCREF
    - DK_UNICODE_ENTRIES
    - _PyDict_MergeEx
    - _Py_call_instrumentation_2args
    - DK_SIZE
    - PySequence_Contains
    - PyStackRef_IsFalse
    - ADVANCE_ADAPTIVE_COUNTER
    - _PyEval_CheckExceptTypeValid
    - PyErr_SetHandledException
    - DEOPT_IF
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - DEAD
    - PyTuple_GET_ITEM
    - _Py_Specialize_CompareOp
    - _PyEval_GetExecutableCode
    - _Py_Specialize_StoreSubscr
    - PyMapping_GetOptionalItem
    - PySet_New
    - PyStackRef_IsTrue
    - PyList_CheckExact
    - _Py_Specialize_LoadSuperAttr
    - PyStackRef_CLOSE
    - Py_DECREF
    - _PyList_ITEMS
    - PyUnicode_CheckExact
    - PyObject_SetItem
    - LLTRACE_RESUME_FRAME
    - _PyCompactLong_Multiply
    - _Py_ID
    - _PyEval_FormatExcUnbound
    - _PyDict_FromItems
    - PyObject_SetAttr
    - FT_ATOMIC_LOAD_PTR
    - PyCell_SetTakeRef
    - GETLOCAL
    - _Py_Specialize_ContainsOp
    - JUMPBY
    - _Py_TryIncrefCompareStackRef
    - PyDict_SetItem
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - _PyErr_SetRaisedException
    - PyStackRef_FromPyObjectStealMortal
    - _PyEval_ImportFrom
    - _PySet_Update
    - PyObject_GetAttr
    - do_raise
    - _PyUnicode_Equal
    - Py_XSETREF
    - Py_ARRAY_LENGTH
    - PyStackRef_IsNull
    - _PySet_Contains
    - Py_REFCNT
    - _PyErr_ExceptionMatches
    - _PyBinaryOpSpecializationDescr*::action
    - _PyGen_FetchStopIterationValue
    - _PyEval_GetANext
    - PyDict_Contains
    - PyType_HasFeature
    - GLOBALS
    - _PyEval_LoadGlobalStackRef
    - PyLong_CheckExact
    - PyNumber_Negative
    - PyFloat_FromDouble
    - PyTuple_CheckExact
    - _PyThreadState_HasStackSpace
    - DISPATCH_INLINED
    - _Py_Specialize_StoreAttr
    - _PyEval_LoadName
    - STAT_INC
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyStackRef_FromPyObjectSteal
    - Py_IS_TYPE
    - restart_backoff_counter
    - PyStackRef_AsPyObjectBorrow
    - DECREF_INPUTS
    - PyStackRef_UntagInt
    - SYNC_SP
    - INPUTS_DEAD
    - PyDict_Pop
    - LOCK_OBJECT
    - _PyLong_CompactValue
    - PyObject_DelItem
    - PyStackRef_DUP
    - PyObject_DelAttr
    - initial_jump_backoff_counter
    - _Py_call_instrumentation_exc2
    - PyFloat_AS_DOUBLE
    - _PyLong_DigitCount
    - _PyInterpolation_Build
    - _PyErr_SetString
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_TYPE
    - _PyFrame_GetCode
    - _Py_Specialize_LoadAttr
    - _PyObject_GetMethodStackRef
    - TIER1_TO_TIER2
    - _PyFrame_IsIncomplete
    - PyStackRef_XCLOSE
    - PyFloat_CheckExact
    - _Py_call_instrumentation_arg
    - _Py_STR
    - _PyEval_FrameClearAndPop
    - _Py_Specialize_Send
    - PyStackRef_FunctionCheck
    - PyObject_RichCompare
    - _Py_SINGLETON
    - STACKREFS_TO_PYOBJECTS
    - PyAnySet_CheckExact
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - PyDict_New
    - PyTuple_GetItem
    - PyObject_CallMethodOneArg
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - _PyOptimizer_Optimize
    - PyFunction_Check
    - PyStackRef_GenCheck
    - func
    - EXIT_IF
    - _PyLong_IsCompact
    - PyUnicode_Concat
    - ADAPTIVE_COUNTER_TRIGGERS
    - RELOAD_STACK
    - PyStackRef_IsNone
    - PyStackRef_FromPyObjectNew
    - UNLOCK_OBJECT
    - DISPATCH
    - PyIter_Check
    - PyDict_GetItemRef
    - PyDict_Update
    - Py_CLEAR
    - _PyEval_ExceptionGroupMatch
    - _PyGen_GetGeneratorFromFrame
    - _PyDictValues_AddToInsertionOrder
    - _PyUnicode_JoinArray
    - Py_Is
    - PyStackRef_BoolCheck
    - _PyTuple_ITEMS
    - this_instr
    - FT_ATOMIC_LOAD_UINT8
    - GETITEM
    - PyList_GET_SIZE
    - PyStackRef_MakeHeapSafe
    - PyObject_GetItem
    - _Py_Specialize_UnpackSequence
    - check_periodics
    - PyStackRef_AsPyObjectSteal
    - ERROR_NO_POP
    - _PyList_SliceSubscript
    - _PyEval_GetAwaitable
    - INSTR_OFFSET
    - _PyCompactLong_Add
    - PyUnicode_READ_CHAR
    - OPCODE_DEFERRED_INC
    - PyCell_New
    - PyStackRef_FromPyObjectBorrow
    - PyType_Check
    - Py_SIZE
    - _PyBuildSlice_ConsumeRefs
    - PyErr_GivenExceptionMatches
    - op
    - _PyCell_GetStackRef
    - ERROR_IF
    - _PyBinaryOpSpecializationDescr*::guard
    - Py_NewRef
    - _PyObject_GetManagedDict
    - _PyErr_SetKeyError
    - _PyEval_MonitorRaise
    - _PyTemplate_Build
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - PyList_GET_ITEM
    - _PyEval_ImportName
    - _PyList_GetItemRef
    - CURRENT_OPERAND0
    - PyCoro_CheckExact
    - _PyLong_BothAreCompact
    - PyCell_GetRef
    - CONVERSION_FAILED
    - RECORD_BRANCH_TAKEN
    - PyNumber_Invert
    - _PyLong_IsNonNegativeCompact
    - DK_IS_UNICODE
    - _PyErr_Occurred
    - assert
    - _PySet_AddTakeRef
    - SAVE_STACK
    - Py_XDECREF
    - BUILTINS
    - _PyDict_NotifyEvent
    - LOCALS
    - PySequence_Check
    - _PyEval_CheckExceptStarTypeValid
    - _PyErr_Format
    - _PyErr_Clear
    - PyStackRef_Wrap
    - _Py_Specialize_LoadGlobal
    - _PyDict_LoadGlobal
    - INSTRUMENTED_JUMP
    - PyStackRef_RefcountOnObject
    - PAUSE_ADAPTIVE_COUNTER
    - PyStackRef_CLOSE_SPECIALIZED
    - replicate
    - _Py_IsImmortal
    - _PyList_AppendTakeRef
    - PyStackRef_Borrow
    - PyTuple_GET_SIZE
    - family
    - PyDict_CheckExact
    - _PyDict_SetItem_Take2
    - _PyFrame_PushUnchecked
    - _PyEval_FormatExcCheckArg
    - macro
    - _Py_Instrument
    - _Py_LeaveRecursiveCallPy
    - _Py_Specialize_ToBool
    - PyGen_Check
    - inst
    - _PyEval_FormatKwargsError
    - _PyFloat_FromDouble_ConsumeInputs
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - _PyList_FromStackRefStealOnSuccess
    - _PySuper_Lookup
    - _Py_IsOwnedByCurrentThread
    - DISPATCH_SAME_OPARG
    - PyUnicode_Append
    - PyStackRef_IsHeapSafe
    - PyObject_Vectorcall
    - _PyObject_GC_IS_SHARED
    - _PyEval_UnpackIterableStackRef
    - PyCell_SwapTakeRef
    - _PyTuple_FromStackRefStealOnSuccess
    - monitor_stop_iteration
    - PyUnicode_GET_LENGTH
    - backoff_counter_triggers
    - _Py_call_instrumentation
    - PyObject_IsTrue
    - LOAD_IP
    - monitor_reraise
    - _PyFrame_GetBytecode
    - _PyFrame_StackPush
    - PyFunction_GET_CODE
    - pseudo
    - PySlice_Check
    - _Py_atomic_load_uintptr_relaxed
    - STACK_LEVEL
    - _PyCompactLong_Subtract
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndummy_func(\n    PyThreadState *tstate,\n    _PyInterpreterFrame
      *frame,\n    unsigned char opcode,\n    unsigned int oparg,\n    _Py_CODEUNIT
      *next_instr,\n    PyObject **stack_pointer,\n    int throwflag,\n    PyObject
      *args[]\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5442,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/bytecodes.c:5442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5441
        line_start: 5441
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 5444
      start: 5440
    functionDepth: 0
    functionLinenumber: 5440
    functionLinenumberEnd: 5444
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - WITHIN_STACK_BOUNDS
    - assert
    linkageType: ''
    returnType: void
    signature: void label(pop_2_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5448,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/bytecodes.c:5448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 5447
        line_start: 5447
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 5450
      start: 5446
    functionDepth: 0
    functionLinenumber: 5446
    functionLinenumberEnd: 5450
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - WITHIN_STACK_BOUNDS
    - assert
    linkageType: ''
    returnType: void
    signature: void label(pop_1_error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5455,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/bytecodes.c:5456,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5460,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5460,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5464,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/bytecodes.c:5465,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/bytecodes.c:5466,1
    - Dst: PyTraceBack_Here
      Src: /src/cpython/Python/bytecodes.c:5468,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/bytecodes.c:5471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 5463
        line_start: 5463
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 5459
        line_start: 5459
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 5473
      start: 5452
    functionDepth: 9
    functionLinenumber: 5452
    functionLinenumberEnd: 5473
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - _PyFrame_IsIncomplete
    - PyTraceBack_Here
    - _PyEval_MonitorRaise
    - _PyFrame_GetFrameObject
    - _PyErr_SetString
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void label(error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/bytecodes.c:5477,1
    - Dst: get_exception_handler
      Src: /src/cpython/Python/bytecodes.c:5479,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:5479,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5482,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5482,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/bytecodes.c:5484,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/bytecodes.c:5486,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:5487,1
    - Dst: monitor_unwind
      Src: /src/cpython/Python/bytecodes.c:5489,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5492,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/bytecodes.c:5492,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/bytecodes.c:5493,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5494,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/bytecodes.c:5496,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:5497,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/bytecodes.c:5500,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:5501,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:5502,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/bytecodes.c:5509,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:5510,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5510,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:5511,1
    - Dst: monitor_handled
      Src: /src/cpython/Python/bytecodes.c:5513,1
    - Dst: lltrace_resume_frame
      Src: /src/cpython/Python/bytecodes.c:5520,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:5523,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:5527,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (STACK_LEVEL() >= level)
      pos:
        line_end: 5491
        line_start: 5491
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 5481
        line_start: 5481
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->stackpointer >= new_top)
      pos:
        line_end: 5493
        line_start: 5493
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 5528
      start: 5475
    functionDepth: 9
    functionLinenumber: 5475
    functionLinenumberEnd: 5528
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - _PyFrame_Stackbase
    - lltrace_resume_frame
    - RELOAD_STACK
    - DISPATCH
    - INSTR_OFFSET
    - PyStackRef_FromPyObjectSteal
    - STACK_LEVEL
    - assert
    - get_exception_handler
    - _PyFrame_StackPop
    - monitor_unwind
    - _PyFrame_GetCode
    - PyStackRef_XCLOSE
    - _PyFrame_StackPush
    - _PyFrame_GetBytecode
    - _PyInterpreterFrame_LASTI
    - PyStackRef_TagInt
    - monitor_handled
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: spilled
    signature: spilled label(exception_unwind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5531,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5531,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/bytecodes.c:5532,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5533,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/bytecodes.c:5537,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5543,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5547,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5548,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5549,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5550,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:5556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 5530
        line_start: 5530
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 5532
        line_start: 5532
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame == &entry.frame)
      pos:
        line_end: 5542
        line_start: 5542
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 5546
        line_start: 5546
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 5558
      start: 5530
    functionDepth: 3
    functionLinenumber: 5530
    functionLinenumberEnd: 5558
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - PyStackRef_CLOSE
    - _PyEval_FrameClearAndPop
    - RELOAD_STACK
    - _Py_LeaveRecursiveCallPy
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsNull
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: spilled
    signature: spilled label(exit_unwind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursivePy
      Src: /src/cpython/Python/bytecodes.c:5561,1
    - Dst: maybe_lltrace_resume_frame
      Src: /src/cpython/Python/bytecodes.c:5567,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:5567,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/bytecodes.c:5569,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5575,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5575,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:5577,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:5581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 5574
        line_start: 5574
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 5582
      start: 5560
    functionDepth: 5
    functionLinenumber: 5560
    functionLinenumberEnd: 5582
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - JUMP_TO_LABEL
    - maybe_lltrace_resume_frame
    - RELOAD_STACK
    - GLOBALS
    - _Py_EnterRecursivePy
    - DISPATCH
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: spilled
    signature: spilled label(start_frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_condattr_init
      Src: /src/cpython/Python/thread_pthread.h:129,1
    - Dst: pthread_condattr_setclock
      Src: /src/cpython/Python/thread_pthread.h:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: init_condattr
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_condattr_setclock
    - pthread_condattr_init
    linkageType: ''
    returnType: void
    signature: void init_condattr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_init
      Src: /src/cpython/Python/thread_pthread.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: _PyThread_cond_init
    functionSourceFile: /src/cpython/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: _PyTime_FromMicrosecondsClamp
      Src: /src/cpython/Python/thread_pthread.h:148,1
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/thread_pthread.h:153,1
    - Dst: PyTime_TimeRaw
      Src: /src/cpython/Python/thread_pthread.h:159,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/thread_pthread.h:161,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/thread_pthread.h:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - us
    - abs
    argTypes:
    - long long
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 163
    functionName: _PyThread_cond_after
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - _PyTime_FromMicrosecondsClamp
    - PyTime_TimeRaw
    - PyTime_MonotonicRaw
    - _PyTime_Add
    - _PyTime_AsTimespec_clamp
    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: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: CHECK_STATUS
    functionSourceFile: /src/cpython/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: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: CHECK_STATUS_PTHREAD
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_STATUS_PTHREAD(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_init
      Src: /src/cpython/Python/thread_pthread.h:205,1
    - Dst: init_condattr
      Src: /src/cpython/Python/thread_pthread.h:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: PyThread__init_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - init_condattr
    - pthread_init
    linkageType: ''
    returnType: void
    signature: void PyThread__init_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/thread_pthread.h:232,1
    - Dst: func
      Src: /src/cpython/Python/thread_pthread.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: pythread_wrapper
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - func
    linkageType: ''
    returnType: void
    signature: 'void *

      pythread_wrapper(void *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/thread_pthread.h:251,1
    - Dst: pthread_attr_init
      Src: /src/cpython/Python/thread_pthread.h:254,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/thread_pthread.h:258,1
    - Dst: pthread_attr_setstacksize
      Src: /src/cpython/Python/thread_pthread.h:262,1
    - Dst: pthread_attr_destroy
      Src: /src/cpython/Python/thread_pthread.h:263,1
    - Dst: pthread_attr_setscope
      Src: /src/cpython/Python/thread_pthread.h:269,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/thread_pthread.h:272,1
    - Dst: pthread_create
      Src: /src/cpython/Python/thread_pthread.h:281,1
    - Dst: defined
      Src: /src/cpython/Python/thread_pthread.h:282,1
    - Dst: pthread_attr_destroy
      Src: /src/cpython/Python/thread_pthread.h:290,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/thread_pthread.h:294,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - arg
    - out_id
    argTypes:
    - void*
    - pthread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 299
    functionName: do_start_joinable_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_attr_init
    - pthread_attr_setscope
    - PyMem_RawFree
    - PyThread_init_thread
    - pthread_create
    - _PyThreadState_GET
    - defined
    - PyMem_RawMalloc
    - pthread_attr_setstacksize
    - pthread_attr_destroy
    linkageType: ''
    returnType: int
    signature: int do_start_joinable_thread(void (*func)(void *), void *arg, pthread_t*
      out_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - pthread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: _pthread_t_to_ident
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyThread_ident_t
    signature: PyThread_ident_t _pthread_t_to_ident(pthread_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_start_joinable_thread
      Src: /src/cpython/Python/thread_pthread.h:323,1
    - Dst: _pthread_t_to_ident
      Src: /src/cpython/Python/thread_pthread.h:326,1
    - Dst: assert
      Src: /src/cpython/Python/thread_pthread.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - arg
    - ident
    - handle
    argTypes:
    - void*
    - PyThread_ident_t*
    - PyThread_handle_t*
    assertStmts:
    - condition: (th == (pthread_t) *handle)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/cpython/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: PyThread_start_joinable_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - do_start_joinable_thread
    - assert
    - _pthread_t_to_ident
    linkageType: ''
    returnType: int
    signature: "int PyThread_start_joinable_thread(void (*func)(void *), void *arg,\n
      \                              PyThread_ident_t* ident, PyThread_handle_t* handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_start_joinable_thread
      Src: /src/cpython/Python/thread_pthread.h:336,1
    - Dst: pthread_detach
      Src: /src/cpython/Python/thread_pthread.h:339,1
    - Dst: _pthread_t_to_ident
      Src: /src/cpython/Python/thread_pthread.h:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: PyThread_start_new_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 13
    functionsReached:
    - do_start_joinable_thread
    - pthread_detach
    - _pthread_t_to_ident
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_start_new_thread(void (*func)(void *), void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/cpython/Python/thread_pthread.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - th
    argTypes:
    - PyThread_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: PyThread_join_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int PyThread_join_thread(PyThread_handle_t th)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_detach
      Src: /src/cpython/Python/thread_pthread.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - th
    argTypes:
    - PyThread_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: PyThread_detach_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - pthread_detach
    linkageType: ''
    returnType: int
    signature: int PyThread_detach_thread(PyThread_handle_t th)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/thread_pthread.h:363,1
    - Dst: pthread_self
      Src: /src/cpython/Python/thread_pthread.h:364,1
    - Dst: _pthread_t_to_ident
      Src: /src/cpython/Python/thread_pthread.h:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 366
    functionName: PyThread_get_thread_ident_ex
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 11
    functionsReached:
    - _pthread_t_to_ident
    - PyThread_init_thread
    - pthread_self
    linkageType: ''
    returnType: PyThread_ident_t
    signature: PyThread_ident_t PyThread_get_thread_ident_ex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/thread_pthread.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: PyThread_get_thread_ident
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 9
    functionsReached:
    - PyThread_get_thread_ident_ex
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_ident(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/thread_pthread.h:379,1
    - Dst: pthread_threadid_np
      Src: /src/cpython/Python/thread_pthread.h:382,1
    - Dst: syscall
      Src: /src/cpython/Python/thread_pthread.h:385,1
    - Dst: pthread_getthreadid_np
      Src: /src/cpython/Python/thread_pthread.h:388,1
    - Dst: syscall
      Src: /src/cpython/Python/thread_pthread.h:391,1
    - Dst: getthrid
      Src: /src/cpython/Python/thread_pthread.h:394,1
    - Dst: thread_self
      Src: /src/cpython/Python/thread_pthread.h:397,1
    - Dst: _lwp_self
      Src: /src/cpython/Python/thread_pthread.h:400,1
    - Dst: lwp_gettid
      Src: /src/cpython/Python/thread_pthread.h:403,1
    - Dst: getpid
      Src: /src/cpython/Python/thread_pthread.h:405,1
    - Dst: thr_self
      Src: /src/cpython/Python/thread_pthread.h:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 408
    functionName: PyThread_get_thread_native_id
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 3
    functionsReached:
    - getthrid
    - pthread_getthreadid_np
    - syscall
    - thread_self
    - getpid
    - PyThread_init_thread
    - thr_self
    - lwp_gettid
    - _lwp_self
    - pthread_threadid_np
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_native_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/cpython/Python/thread_pthread.h:415,1
    - Dst: abort
      Src: /src/cpython/Python/thread_pthread.h:421,1
    - Dst: pthread_exit
      Src: /src/cpython/Python/thread_pthread.h:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: _Py_NO_RETURN::PyThread_exit_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - exit
    - abort
    - pthread_exit
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      PyThread_exit_thread(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/cpython/Python/thread_pthread.h:432,1
    - Dst: pause
      Src: /src/cpython/Python/thread_pthread.h:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 437
    functionName: _Py_NO_RETURN::PyThread_hang_thread
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - sleep
    - pause
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      PyThread_hang_thread(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/thread_pthread.h:455,1
    - Dst: pthread_attr_init
      Src: /src/cpython/Python/thread_pthread.h:468,1
    - Dst: pthread_attr_setstacksize
      Src: /src/cpython/Python/thread_pthread.h:469,1
    - Dst: pthread_attr_destroy
      Src: /src/cpython/Python/thread_pthread.h:470,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/thread_pthread.h:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 481
    functionName: _pythread_pthread_set_stacksize
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_attr_init
    - pthread_attr_setstacksize
    - _PyInterpreterState_GET
    - pthread_attr_destroy
    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: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: THREAD_SET_STACKSIZE
    functionSourceFile: /src/cpython/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/cpython/Python/thread_pthread.h:506,1
    - Dst: pthread_key_delete
      Src: /src/cpython/Python/thread_pthread.h:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 519
    functionName: PyThread_create_key
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_key_create
    - pthread_key_delete
    linkageType: ''
    returnType: int
    signature: int PyThread_create_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_delete
      Src: /src/cpython/Python/thread_pthread.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: PyThread_delete_key
    functionSourceFile: /src/cpython/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/cpython/Python/thread_pthread.h:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: PyThread_delete_key_value
    functionSourceFile: /src/cpython/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/cpython/Python/thread_pthread.h:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 546
    functionName: PyThread_set_key_value
    functionSourceFile: /src/cpython/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/cpython/Python/thread_pthread.h:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 556
    functionName: PyThread_get_key_value
    functionSourceFile: /src/cpython/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: 562
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 562
    functionName: PyThread_ReInitTLS
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyThread_ReInitTLS(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread_pthread.h:573,1
    - Dst: pthread_key_create
      Src: /src/cpython/Python/thread_pthread.h:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/cpython/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 585
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 585
    functionName: PyThread_tss_create
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - pthread_key_create
    - assert
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_create(Py_tss_t *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread_pthread.h:590,1
    - Dst: pthread_key_delete
      Src: /src/cpython/Python/thread_pthread.h:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/cpython/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 599
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 599
    functionName: PyThread_tss_delete
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - pthread_key_delete
    - assert
    linkageType: ''
    returnType: void
    signature: void PyThread_tss_delete(Py_tss_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread_pthread.h:604,1
    - Dst: pthread_setspecific
      Src: /src/cpython/Python/thread_pthread.h:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - Py_tss_t*
    - void*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/cpython/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 607
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 607
    functionName: PyThread_tss_set
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    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/cpython/Python/thread_pthread.h:612,1
    - Dst: pthread_getspecific
      Src: /src/cpython/Python/thread_pthread.h:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/cpython/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 614
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 614
    functionName: PyThread_tss_get
    functionSourceFile: /src/cpython/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - pthread_getspecific
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      PyThread_tss_get(Py_tss_t *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: TO_PTR
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_PTR(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: FROM_PTR
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_PTR(key)
  - 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/cpython/Python/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/cpython/Python/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: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: TRACEBACK_SIZE
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACEBACK_SIZE(NFRAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/tracemalloc.c:81,1
    - Dst: va_start
      Src: /src/cpython/Python/tracemalloc.c:82,1
    - Dst: vfprintf
      Src: /src/cpython/Python/tracemalloc.c:83,1
    - Dst: va_end
      Src: /src/cpython/Python/tracemalloc.c:84,1
    - Dst: fprintf
      Src: /src/cpython/Python/tracemalloc.c:85,1
    - Dst: fflush
      Src: /src/cpython/Python/tracemalloc.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: tracemalloc_error
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_start
    - fflush
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void tracemalloc_error(const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:99,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Python/tracemalloc.c:99,1
    - Dst: PyThread_tss_get
      Src: /src/cpython/Python/tracemalloc.c:101,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyThread_tss_is_created(&tracemalloc_reentrant_key))
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (ptr == REENTRANT)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: get_reentrant
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_is_created
    - assert
    - PyThread_tss_get
    linkageType: ''
    returnType: int
    signature: int get_reentrant(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:114,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:115,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Python/tracemalloc.c:115,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:118,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:118,1
    - Dst: PyThread_tss_set
      Src: /src/cpython/Python/tracemalloc.c:119,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:122,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:122,1
    - Dst: PyThread_tss_set
      Src: /src/cpython/Python/tracemalloc.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - reentrant
    argTypes:
    - int
    assertStmts:
    - condition: (reentrant == 0 || reentrant == 1)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (PyThread_tss_is_created(&tracemalloc_reentrant_key))
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (!get_reentrant())
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (get_reentrant())
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: set_reentrant
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_set
    - get_reentrant
    - PyThread_tss_is_created
    - assert
    linkageType: ''
    returnType: void
    signature: void set_reentrant(int reentrant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Python/tracemalloc.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: hashtable_hash_pyobject
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_hash_pyobject(const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/tracemalloc.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: hashtable_compare_unicode
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    linkageType: ''
    returnType: int
    signature: int hashtable_compare_unicode(const void *key1, const void *key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FROM_PTR
      Src: /src/cpython/Python/tracemalloc.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: hashtable_hash_uint
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - FROM_PTR
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_hash_uint(const void *key_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/tracemalloc.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hash_func
    - compare_func
    - key_destroy_func
    - value_destroy_func
    argTypes:
    - _Py_hashtable_hash_func
    - _Py_hashtable_compare_func
    - _Py_hashtable_destroy_func
    - _Py_hashtable_destroy_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: hashtable_new
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - _Py_hashtable_new_full
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: "_Py_hashtable_t *\nhashtable_new(_Py_hashtable_hash_func hash_func,\n
      \             _Py_hashtable_compare_func compare_func,\n              _Py_hashtable_destroy_func
      key_destroy_func,\n              _Py_hashtable_destroy_func value_destroy_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw::malloc
      Src: /src/cpython/Python/tracemalloc.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: raw_malloc
    functionSourceFile: /src/cpython/Python/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/cpython/Python/tracemalloc.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: raw_free
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw::free
    linkageType: ''
    returnType: void
    signature: void raw_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: hashtable_hash_traceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_hash_traceback(const void *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:213,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/tracemalloc.c:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (PyUnicode_Compare(frame1->filename, frame2->filename) != 0)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 218
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 218
    functionName: hashtable_compare_traceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - assert
    linkageType: ''
    returnType: int
    signature: int hashtable_compare_traceback(const void *key1, const void *key2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:224,1
    - Dst: PyStackRef_CodeCheck
      Src: /src/cpython/Python/tracemalloc.c:224,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/tracemalloc.c:225,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Python/tracemalloc.c:227,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/tracemalloc.c:233,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:236,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/tracemalloc.c:241,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:243,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/tracemalloc.c:250,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:257,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:259,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - pyframe
    - frame
    argTypes:
    - _PyInterpreterFrame*
    - frame_t*
    assertStmts:
    - condition: (PyStackRef_CodeCheck(pyframe->f_executable))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 269
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 269
    functionName: tracemalloc_get_frame
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyUnstable_InterpreterFrame_GetLine
    - assert
    - Py_DECREF
    - _Py_STR
    - tracemalloc_error
    - _Py_hashtable_get_entry
    - Py_NewRef
    - _Py_hashtable_set
    - PyUnicode_Check
    - _PyFrame_GetCode
    - PyStackRef_CodeCheck
    linkageType: ''
    returnType: void
    signature: void tracemalloc_get_frame(_PyInterpreterFrame *pyframe, frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Python/tracemalloc.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - traceback
    argTypes:
    - traceback_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: traceback_hash
    functionSourceFile: /src/cpython/Python/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: _PyThreadState_GET
      Src: /src/cpython/Python/tracemalloc.c:301,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:302,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/tracemalloc.c:304,1
    - Dst: tracemalloc_get_frame
      Src: /src/cpython/Python/tracemalloc.c:307,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:308,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/tracemalloc.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - traceback
    argTypes:
    - traceback_t*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (traceback->frames[traceback->nframe].filename != NULL)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 316
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 316
    functionName: traceback_get_frames
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetFirstComplete
    - _PyThreadState_GetFrame
    - _PyThreadState_GET
    - tracemalloc_get_frame
    - assert
    linkageType: ''
    returnType: void
    signature: void traceback_get_frames(traceback_t *traceback)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/tracemalloc.c:325,1
    - Dst: traceback_get_frames
      Src: /src/cpython/Python/tracemalloc.c:331,1
    - Dst: traceback_hash
      Src: /src/cpython/Python/tracemalloc.c:334,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/tracemalloc.c:337,1
    - Dst: TRACEBACK_SIZE
      Src: /src/cpython/Python/tracemalloc.c:345,1
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:347,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:350,1
    - Dst: memcpy
      Src: /src/cpython/Python/tracemalloc.c:354,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:356,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:357,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 366
    functionName: traceback_new
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw_free
    - memcpy
    - traceback_hash
    - _Py_hashtable_get_entry
    - tracemalloc_error
    - _Py_hashtable_set
    - raw_malloc
    - TRACEBACK_SIZE
    - _Py_AssertHoldsTstate
    - traceback_get_frames
    linkageType: ''
    returnType: traceback_t
    signature: 'traceback_t *

      traceback_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: tracemalloc_create_traces_table
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - hashtable_new
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      tracemalloc_create_traces_table(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: tracemalloc_destroy_domain
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: void
    signature: void tracemalloc_destroy_domain(void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 393
    functionName: tracemalloc_create_domains_table
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - hashtable_new
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      tracemalloc_create_domains_table(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:403,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: tracemalloc_get_traces_table
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - TO_PTR
    - _Py_hashtable_get
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      tracemalloc_get_traces_table(unsigned int domain)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:411,1
    - Dst: tracemalloc_get_traces_table
      Src: /src/cpython/Python/tracemalloc.c:413,1
    - Dst: _Py_hashtable_steal
      Src: /src/cpython/Python/tracemalloc.c:418,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:418,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:422,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts:
    - condition: (tracemalloc_config.tracing)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (tracemalloc_traced_memory >= trace->size)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 425
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 425
    functionName: tracemalloc_remove_trace_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_get_traces_table
    - TO_PTR
    - raw_free
    - _Py_hashtable_steal
    - assert
    linkageType: ''
    returnType: void
    signature: void tracemalloc_remove_trace_unlocked(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: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: REMOVE_TRACE
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REMOVE_TRACE(ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:435,1
    - Dst: traceback_new
      Src: /src/cpython/Python/tracemalloc.c:437,1
    - Dst: tracemalloc_get_traces_table
      Src: /src/cpython/Python/tracemalloc.c:442,1
    - Dst: tracemalloc_create_traces_table
      Src: /src/cpython/Python/tracemalloc.c:444,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:449,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:449,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:450,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:455,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:455,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:458,1
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:465,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:472,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:472,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:474,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - domain
    - ptr
    - size
    argTypes:
    - unsigned int
    - uintptr_t
    - size_t
    assertStmts:
    - condition: (tracemalloc_config.tracing)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (tracemalloc_traced_memory >= trace->size)
      pos:
        line_end: 457
        line_start: 457
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (tracemalloc_traced_memory <= SIZE_MAX - size)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 485
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 485
    functionName: tracemalloc_add_trace_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_get_traces_table
    - TO_PTR
    - raw_free
    - traceback_new
    - _Py_hashtable_destroy
    - tracemalloc_create_traces_table
    - _Py_hashtable_set
    - raw_malloc
    - _Py_hashtable_get
    - assert
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_add_trace_unlocked(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: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: ADD_TRACE
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TRACE(ptr, size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:495,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:497,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:508,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/cpython/Python/tracemalloc.c:514,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/cpython/Python/tracemalloc.c:517,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Python/tracemalloc.c:529,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:531,1
    - Dst: ADD_TRACE
      Src: /src/cpython/Python/tracemalloc.c:534,1
    - Dst: PyMemAllocatorEx*::free
      Src: /src/cpython/Python/tracemalloc.c:536,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:542,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Python/tracemalloc.c:544,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:549,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - need_gil
    - use_calloc
    - ctx
    - nelem
    - elsize
    argTypes:
    - int
    - int
    - void*
    - size_t
    - size_t
    assertStmts:
    - condition: (elsize == 0 || nelem <= SIZE_MAX / elsize)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 552
      start: 491
    functionDepth: 10
    functionLinenumber: 491
    functionLinenumberEnd: 552
    functionName: tracemalloc_alloc
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - TABLES_LOCK
    - TABLES_UNLOCK
    - PyMemAllocatorEx*::calloc
    - PyGILState_Release
    - set_reentrant
    - PyMemAllocatorEx*::free
    - ADD_TRACE
    - PyMemAllocatorEx*::malloc
    - get_reentrant
    - assert
    linkageType: ''
    returnType: void
    signature: "void *\ntracemalloc_alloc(int need_gil, int use_calloc,\n                  void
      *ctx, size_t nelem, size_t elsize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:558,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:564,1
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/cpython/Python/tracemalloc.c:568,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Python/tracemalloc.c:579,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:581,1
    - Dst: REMOVE_TRACE
      Src: /src/cpython/Python/tracemalloc.c:594,1
    - Dst: ADD_TRACE
      Src: /src/cpython/Python/tracemalloc.c:597,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/tracemalloc.c:607,1
    - Dst: ADD_TRACE
      Src: /src/cpython/Python/tracemalloc.c:613,1
    - Dst: PyMemAllocatorEx*::free
      Src: /src/cpython/Python/tracemalloc.c:615,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:621,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Python/tracemalloc.c:623,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:628,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - need_gil
    - ctx
    - ptr
    - new_size
    argTypes:
    - int
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 555
    functionDepth: 10
    functionLinenumber: 555
    functionLinenumberEnd: 631
    functionName: tracemalloc_realloc
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - REMOVE_TRACE
    - PyGILState_Ensure
    - TABLES_LOCK
    - TABLES_UNLOCK
    - Py_FatalError
    - PyGILState_Release
    - set_reentrant
    - PyMemAllocatorEx*::realloc
    - PyMemAllocatorEx*::free
    - ADD_TRACE
    - get_reentrant
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_realloc(int need_gil, void *ctx, void *ptr, size_t new_size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMemAllocatorEx*::free
      Src: /src/cpython/Python/tracemalloc.c:642,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:644,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:648,1
    - Dst: REMOVE_TRACE
      Src: /src/cpython/Python/tracemalloc.c:651,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 656
    functionName: tracemalloc_free
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - REMOVE_TRACE
    - TABLES_LOCK
    - TABLES_UNLOCK
    - PyMemAllocatorEx*::free
    - get_reentrant
    linkageType: ''
    returnType: void
    signature: void tracemalloc_free(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_alloc
      Src: /src/cpython/Python/tracemalloc.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 11
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: tracemalloc_malloc_gil
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_malloc_gil(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_alloc
      Src: /src/cpython/Python/tracemalloc.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 11
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: tracemalloc_calloc_gil
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_calloc_gil(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_realloc
      Src: /src/cpython/Python/tracemalloc.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 673
    functionDepth: 11
    functionLinenumber: 673
    functionLinenumberEnd: 677
    functionName: tracemalloc_realloc_gil
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_realloc_gil(void *ctx, void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_alloc
      Src: /src/cpython/Python/tracemalloc.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 11
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: tracemalloc_raw_malloc
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_raw_malloc(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_alloc
      Src: /src/cpython/Python/tracemalloc.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 687
    functionDepth: 11
    functionLinenumber: 687
    functionLinenumberEnd: 691
    functionName: tracemalloc_raw_calloc
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_raw_calloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_realloc
      Src: /src/cpython/Python/tracemalloc.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 11
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: tracemalloc_raw_realloc
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_raw_realloc(void *ctx, void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 706
    functionName: tracemalloc_clear_filename
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void tracemalloc_clear_filename(void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/tracemalloc.c:713,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:715,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:717,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:718,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:719,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:720,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 726
    functionName: tracemalloc_clear_traces_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_AssertHoldsTstate
    - set_reentrant
    - _Py_hashtable_clear
    linkageType: ''
    returnType: void
    signature: void tracemalloc_clear_traces_unlocked(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:732,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:734,1
    - Dst: PyThread_tss_create
      Src: /src/cpython/Python/tracemalloc.c:736,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/tracemalloc.c:737,1
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:740,1
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:744,1
    - Dst: tracemalloc_create_traces_table
      Src: /src/cpython/Python/tracemalloc.c:748,1
    - Dst: tracemalloc_create_domains_table
      Src: /src/cpython/Python/tracemalloc.c:749,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/tracemalloc.c:754,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/tracemalloc.c:760,1
    - Dst: traceback_hash
      Src: /src/cpython/Python/tracemalloc.c:762,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/tracemalloc.c:765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tracemalloc_config.initialized == TRACEMALLOC_NOT_INITIALIZED)
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 766
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 766
    functionName: _PyTraceMalloc_Init
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - tracemalloc_create_domains_table
    - _PyStatus_OK
    - PyThread_tss_create
    - _Py_STR
    - traceback_hash
    - tracemalloc_create_traces_table
    - hashtable_new
    - PyMem_GetAllocator
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyTraceMalloc_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_Stop
      Src: /src/cpython/Python/tracemalloc.c:776,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:779,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:780,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:781,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:782,1
    - Dst: PyThread_tss_delete
      Src: /src/cpython/Python/tracemalloc.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 785
    functionName: tracemalloc_deinit
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_delete
    - _Py_hashtable_destroy
    - _PyTraceMalloc_Stop
    linkageType: ''
    returnType: void
    signature: void tracemalloc_deinit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/tracemalloc.c:792,1
    - Dst: _PyTraceMalloc_IsTracing
      Src: /src/cpython/Python/tracemalloc.c:798,1
    - Dst: TRACEBACK_SIZE
      Src: /src/cpython/Python/tracemalloc.c:806,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:807,1
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:808,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/tracemalloc.c:810,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:821,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:822,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:830,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:831,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:834,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:835,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Python/tracemalloc.c:837,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:842,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 1
    argNames:
    - max_nframe
    argTypes:
    - int
    assertStmts:
    - condition: (tracemalloc_traceback == NULL)
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 847
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 847
    functionName: _PyTraceMalloc_Start
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - TABLES_LOCK
    - TABLES_UNLOCK
    - PyMem_GetAllocator
    - PyRefTracer_SetTracer
    - _PyTraceMalloc_IsTracing
    - PyErr_Format
    - raw_malloc
    - TRACEBACK_SIZE
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyTraceMalloc_Start(int max_nframe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:853,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:863,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:864,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:865,1
    - Dst: tracemalloc_clear_traces_unlocked
      Src: /src/cpython/Python/tracemalloc.c:867,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:870,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Python/tracemalloc.c:873,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 850
    functionDepth: 4
    functionLinenumber: 850
    functionLinenumberEnd: 877
    functionName: _PyTraceMalloc_Stop
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - raw_free
    - TABLES_LOCK
    - tracemalloc_clear_traces_unlocked
    - PyMem_SetAllocator
    - TABLES_UNLOCK
    - PyRefTracer_SetTracer
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_Stop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:884,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:884,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/tracemalloc.c:886,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:891,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:891,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/tracemalloc.c:893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:895,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - frame
    argTypes:
    - frame_t*
    assertStmts:
    - condition: (get_reentrant())
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 901
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 901
    functionName: frame_to_pyobject
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyLong_FromUnsignedLong
    - get_reentrant
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_to_pyobject(frame_t *frame)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:909,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:911,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/tracemalloc.c:915,1
    - Dst: frame_to_pyobject
      Src: /src/cpython/Python/tracemalloc.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:923,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:926,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:931,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/tracemalloc.c:932,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/tracemalloc.c:936,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - traceback
    - intern_table
    argTypes:
    - traceback_t*
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 904
    functionDepth: 4
    functionLinenumber: 904
    functionLinenumberEnd: 939
    functionName: traceback_to_pyobject
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - frame_to_pyobject
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyErr_NoMemory
    - _Py_hashtable_set
    - _Py_hashtable_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      traceback_to_pyobject(traceback_t *traceback, _Py_hashtable_t *intern_table)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:946,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:946,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/tracemalloc.c:948,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Python/tracemalloc.c:953,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:955,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:958,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Python/tracemalloc.c:960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:962,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:965,1
    - Dst: traceback_to_pyobject
      Src: /src/cpython/Python/tracemalloc.c:967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:969,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:972,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/tracemalloc.c:974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:976,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - domain
    - trace
    - intern_tracebacks
    argTypes:
    - unsigned int
    - trace_t*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (get_reentrant())
      pos:
        line_end: 945
        line_start: 945
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 982
      start: 942
    functionDepth: 5
    functionLinenumber: 942
    functionLinenumberEnd: 982
    functionName: trace_to_pyobject
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyLong_FromSize_t
    - PyLong_FromUnsignedLong
    - traceback_to_pyobject
    - get_reentrant
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntrace_to_pyobject(unsigned int domain, const trace_t *trace,\n
      \                 _Py_hashtable_t *intern_tracebacks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:1002,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:1007,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:1008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - traces
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1012
    functionName: tracemalloc_copy_trace
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw_malloc
    - raw_free
    - _Py_hashtable_set
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_copy_trace(_Py_hashtable_t *traces,\n                       const
      void *key, const void *value,\n                       void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_create_traces_table
      Src: /src/cpython/Python/tracemalloc.c:1018,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1023,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - traces
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1031
    functionName: tracemalloc_copy_traces
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_create_traces_table
    - _Py_hashtable_foreach
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      tracemalloc_copy_traces(_Py_hashtable_t *traces)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FROM_PTR
      Src: /src/cpython/Python/tracemalloc.c:1040,1
    - Dst: tracemalloc_copy_traces
      Src: /src/cpython/Python/tracemalloc.c:1043,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:1047,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:1047,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - domains
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1034
    functionDepth: 4
    functionLinenumber: 1034
    functionLinenumberEnd: 1052
    functionName: tracemalloc_copy_domain
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - TO_PTR
    - _Py_hashtable_destroy
    - _Py_hashtable_set
    - FROM_PTR
    - tracemalloc_copy_traces
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_copy_domain(_Py_hashtable_t *domains,\n                        const
      void *key, const void *value,\n                        void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_create_domains_table
      Src: /src/cpython/Python/tracemalloc.c:1058,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1063,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - domains
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1055
    functionDepth: 3
    functionLinenumber: 1055
    functionLinenumberEnd: 1071
    functionName: tracemalloc_copy_domains
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_create_domains_table
    - _Py_hashtable_foreach
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      tracemalloc_copy_domains(_Py_hashtable_t *domains)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_to_pyobject
      Src: /src/cpython/Python/tracemalloc.c:1082,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/tracemalloc.c:1088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:1089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - traces
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1074
    functionDepth: 6
    functionLinenumber: 1074
    functionLinenumberEnd: 1094
    functionName: tracemalloc_get_traces_fill
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - trace_to_pyobject
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_get_traces_fill(_Py_hashtable_t *traces,\n                            const
      void *key, const void *value,\n                            void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FROM_PTR
      Src: /src/cpython/Python/tracemalloc.c:1103,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - domains
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1097
    functionDepth: 2
    functionLinenumber: 1097
    functionLinenumberEnd: 1110
    functionName: tracemalloc_get_traces_domain
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - FROM_PTR
    - _Py_hashtable_foreach
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_get_traces_domain(_Py_hashtable_t *domains,\n                              const
      void *key, const void *value,\n                              void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1118
    functionName: tracemalloc_pyobject_decref
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void tracemalloc_pyobject_decref(void *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_get_traces_table
      Src: /src/cpython/Python/tracemalloc.c:1128,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:1133,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:1133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1121
    functionDepth: 2
    functionLinenumber: 1121
    functionLinenumberEnd: 1138
    functionName: tracemalloc_get_traceback_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_get_traces_table
    - TO_PTR
    - _Py_hashtable_get
    linkageType: ''
    returnType: traceback_t
    signature: 'traceback_t *

      tracemalloc_get_traceback_unlocked(unsigned int domain, uintptr_t ptr)'
  - 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: 1142
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1142
    functionName: PUTS
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1146,1
    - Dst: _Py_DumpASCII
      Src: /src/cpython/Python/tracemalloc.c:1147,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1148,1
    - Dst: _Py_DumpDecimal
      Src: /src/cpython/Python/tracemalloc.c:1149,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - frame
    argTypes:
    - int
    - frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1143
    functionDepth: 4
    functionLinenumber: 1143
    functionLinenumberEnd: 1151
    functionName: _PyMem_DumpFrame
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PUTS
    - _Py_DumpASCII
    - _Py_DumpDecimal
    linkageType: ''
    returnType: void
    signature: void _PyMem_DumpFrame(int fd, frame_t * frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1158,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1160,1
    - Dst: tracemalloc_get_traceback_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1166,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1172,1
    - Dst: _PyMem_DumpFrame
      Src: /src/cpython/Python/tracemalloc.c:1174,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1176,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - ptr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1155
    functionDepth: 5
    functionLinenumber: 1155
    functionLinenumberEnd: 1180
    functionName: _PyMem_DumpTraceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - TABLES_LOCK
    - TABLES_UNLOCK
    - tracemalloc_get_traceback_unlocked
    - _PyMem_DumpFrame
    - PUTS
    linkageType: ''
    returnType: void
    signature: void _PyMem_DumpTraceback(int fd, const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_size
      Src: /src/cpython/Python/tracemalloc.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - domains
    - key
    - value
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1194
    functionName: tracemalloc_get_tracemalloc_memory_cb
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_size
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_get_tracemalloc_memory_cb(_Py_hashtable_t *domains,\n
      \                                     const void *key, const void *value,\n
      \                                     void *user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Python/tracemalloc.c:1200,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1201,1
    - Dst: tracemalloc_add_trace_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1205,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1212,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Python/tracemalloc.c:1213,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: 1215
      start: 1196
    functionDepth: 10
    functionLinenumber: 1196
    functionLinenumberEnd: 1215
    functionName: PyTraceMalloc_Track
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - PyGILState_Ensure
    - TABLES_LOCK
    - TABLES_UNLOCK
    - PyGILState_Release
    - tracemalloc_add_trace_unlocked
    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/cpython/Python/tracemalloc.c:1221,1
    - Dst: tracemalloc_remove_trace_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1225,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1218
    functionDepth: 3
    functionLinenumber: 1218
    functionLinenumberEnd: 1235
    functionName: PyTraceMalloc_Untrack
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - TABLES_LOCK
    - tracemalloc_remove_trace_unlocked
    - TABLES_UNLOCK
    linkageType: ''
    returnType: int
    signature: int PyTraceMalloc_Untrack(unsigned int domain, uintptr_t ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/tracemalloc.c:1241,1
    - Dst: tracemalloc_deinit
      Src: /src/cpython/Python/tracemalloc.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1243
    functionName: _PyTraceMalloc_Fini
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_deinit
    - _Py_AssertHoldsTstate
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_Fini(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1258,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/tracemalloc.c:1262,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/tracemalloc.c:1269,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/tracemalloc.c:1270,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:1273,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:1273,1
    - Dst: traceback_new
      Src: /src/cpython/Python/tracemalloc.c:1276,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - op
    - event
    - Py_UNUSED(ignore)
    argTypes:
    - PyObject*
    - PyRefTracerEvent
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1251
    functionDepth: 5
    functionLinenumber: 1251
    functionLinenumberEnd: 1286
    functionName: _PyTraceMalloc_TraceRef
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - TO_PTR
    - TABLES_LOCK
    - traceback_new
    - TABLES_UNLOCK
    - _Py_hashtable_get
    - _PyType_PreHeaderSize
    - get_reentrant
    - Py_TYPE
    - _Py_AssertHoldsTstate
    linkageType: ''
    returnType: int
    signature: "int _PyTraceMalloc_TraceRef(PyObject *op, PyRefTracerEvent event,\n
      \                       void* Py_UNUSED(ignore))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1292,1
    - Dst: tracemalloc_get_traceback_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1294,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1297,1
    - Dst: traceback_to_pyobject
      Src: /src/cpython/Python/tracemalloc.c:1298,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1299,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:1302,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1289
    functionDepth: 5
    functionLinenumber: 1289
    functionLinenumberEnd: 1307
    functionName: _PyTraceMalloc_GetTraceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_LOCK
    - TABLES_UNLOCK
    - tracemalloc_get_traceback_unlocked
    - set_reentrant
    - Py_NewRef
    - traceback_to_pyobject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceMalloc_GetTraceback(unsigned int domain, uintptr_t ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1312,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1316
    functionName: _PyTraceMalloc_IsTracing
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - TABLES_LOCK
    - TABLES_UNLOCK
    linkageType: ''
    returnType: int
    signature: int _PyTraceMalloc_IsTracing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1321,1
    - Dst: tracemalloc_clear_traces_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1323,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1318
    functionDepth: 4
    functionLinenumber: 1318
    functionLinenumberEnd: 1326
    functionName: _PyTraceMalloc_ClearTraces
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_LOCK
    - tracemalloc_clear_traces_unlocked
    - TABLES_UNLOCK
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_ClearTraces(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1331,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1332,1
    - Dst: PyList_New
      Src: /src/cpython/Python/tracemalloc.c:1339,1
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:1350,1
    - Dst: tracemalloc_copy_traces
      Src: /src/cpython/Python/tracemalloc.c:1360,1
    - Dst: tracemalloc_copy_domains
      Src: /src/cpython/Python/tracemalloc.c:1365,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1371,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1375,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/tracemalloc.c:1381,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/tracemalloc.c:1387,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/tracemalloc.c:1388,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1392,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1393,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1396,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1399,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1402,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1328
    functionDepth: 4
    functionLinenumber: 1328
    functionLinenumberEnd: 1406
    functionName: _PyTraceMalloc_GetTraces
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - TABLES_LOCK
    - TABLES_UNLOCK
    - set_reentrant
    - _Py_hashtable_destroy
    - _Py_hashtable_foreach
    - tracemalloc_copy_domains
    - hashtable_new
    - Py_CLEAR
    - PyErr_NoMemory
    - tracemalloc_copy_traces
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceMalloc_GetTraces(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/tracemalloc.c:1412,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/tracemalloc.c:1413,1
    - Dst: _PyTraceMalloc_GetTraceback
      Src: /src/cpython/Python/tracemalloc.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1408
    functionDepth: 6
    functionLinenumber: 1408
    functionLinenumberEnd: 1416
    functionName: _PyTraceMalloc_GetObjectTraceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - _PyTraceMalloc_GetTraceback
    - Py_TYPE
    - _PyType_PreHeaderSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceMalloc_GetObjectTraceback(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1421
    functionName: _PyTraceMalloc_GetTracebackLimit
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyTraceMalloc_GetTracebackLimit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1426,1
    - Dst: _Py_hashtable_size
      Src: /src/cpython/Python/tracemalloc.c:1429,1
    - Dst: _Py_hashtable_size
      Src: /src/cpython/Python/tracemalloc.c:1430,1
    - Dst: _Py_hashtable_size
      Src: /src/cpython/Python/tracemalloc.c:1432,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1433,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1441
    functionName: _PyTraceMalloc_GetMemory
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_LOCK
    - _Py_hashtable_foreach
    - TABLES_UNLOCK
    - _Py_hashtable_size
    linkageType: ''
    returnType: size_t
    signature: size_t _PyTraceMalloc_GetMemory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1447,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1457,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/tracemalloc.c:1459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1460
    functionName: _PyTraceMalloc_GetTracedMemory
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_LOCK
    - Py_BuildValue
    - TABLES_UNLOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceMalloc_GetTracedMemory(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1465,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1470
    functionName: _PyTraceMalloc_ResetPeak
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_LOCK
    - TABLES_UNLOCK
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_ResetPeak(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: BUCKET_INIT
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: BUCKET_INIT_2
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_2(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: BUCKET_INIT_4
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_4(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: BUCKET_INIT_8
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_8(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: BUCKET_INIT_16
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_16(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: BUCKET_INIT_32
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_32(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: BUCKET_INIT_64
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_64(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: BUCKET_INIT_128
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_128(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: BUCKET_INIT_256
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_INIT_256(b, i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CreateSemaphore
      Src: /src/cpython/Python/parking_lot.c:57,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:64,1
    - Dst: sem_init
      Src: /src/cpython/Python/parking_lot.c:67,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:68,1
    - Dst: pthread_mutex_init
      Src: /src/cpython/Python/parking_lot.c:71,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:72,1
    - Dst: pthread_cond_init
      Src: /src/cpython/Python/parking_lot.c:74,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sema
    argTypes:
    - _PySemaphore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: _PySemaphore_Init
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - CreateSemaphore
    - Py_FatalError
    - pthread_mutex_init
    - sem_init
    - pthread_cond_init
    linkageType: ''
    returnType: void
    signature: void _PySemaphore_Init(_PySemaphore *sema)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/cpython/Python/parking_lot.c:85,1
    - Dst: sem_destroy
      Src: /src/cpython/Python/parking_lot.c:87,1
    - Dst: pthread_mutex_destroy
      Src: /src/cpython/Python/parking_lot.c:89,1
    - Dst: pthread_cond_destroy
      Src: /src/cpython/Python/parking_lot.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sema
    argTypes:
    - _PySemaphore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: _PySemaphore_Destroy
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - sem_destroy
    - pthread_mutex_destroy
    - CloseHandle
    - pthread_cond_destroy
    linkageType: ''
    returnType: void
    signature: void _PySemaphore_Destroy(_PySemaphore *sema)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Python/parking_lot.c:105,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/parking_lot.c:118,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Python/parking_lot.c:124,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Python/parking_lot.c:130,1
    - Dst: assert
      Src: /src/cpython/Python/parking_lot.c:135,1
    - Dst: ResetEvent
      Src: /src/cpython/Python/parking_lot.c:136,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/parking_lot.c:143,1
    - Dst: GetLastError
      Src: /src/cpython/Python/parking_lot.c:145,1
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/parking_lot.c:155,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/parking_lot.c:156,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:157,1
    - Dst: sem_clockwait
      Src: /src/cpython/Python/parking_lot.c:159,1
    - Dst: PyTime_TimeRaw
      Src: /src/cpython/Python/parking_lot.c:163,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/parking_lot.c:164,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:166,1
    - Dst: sem_timedwait
      Src: /src/cpython/Python/parking_lot.c:168,1
    - Dst: sem_wait
      Src: /src/cpython/Python/parking_lot.c:172,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/parking_lot.c:183,1
    - Dst: pthread_mutex_lock
      Src: /src/cpython/Python/parking_lot.c:192,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:198,1
    - Dst: pthread_cond_timedwait_relative_np
      Src: /src/cpython/Python/parking_lot.c:199,1
    - Dst: PyTime_TimeRaw
      Src: /src/cpython/Python/parking_lot.c:202,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/parking_lot.c:203,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:204,1
    - Dst: pthread_cond_timedwait
      Src: /src/cpython/Python/parking_lot.c:206,1
    - Dst: pthread_cond_wait
      Src: /src/cpython/Python/parking_lot.c:210,1
    - Dst: pthread_mutex_unlock
      Src: /src/cpython/Python/parking_lot.c:223,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 2
    argNames:
    - sema
    - timeout
    argTypes:
    - _PySemaphore*
    - PyTime_t
    assertStmts:
    - condition: (sigint_event != NULL)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/cpython/Python/parking_lot.c
    constantsTouched: []
    func_position:
      end: 226
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 226
    functionName: _PySemaphore_PlatformWait
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached:
    - PyTime_TimeRaw
    - PyTime_MonotonicRaw
    - _Py_IsMainThread
    - GetLastError
    - sem_timedwait
    - _Py_FatalErrorFormat
    - sem_wait
    - pthread_cond_timedwait_relative_np
    - ResetEvent
    - pthread_cond_wait
    - _PyTime_Add
    - _PyTime_AsMilliseconds
    - assert
    - sem_clockwait
    - WaitForMultipleObjects
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - _PyOS_SigintEvent
    - pthread_cond_timedwait
    - _PyTime_AsTimespec_clamp
    linkageType: ''
    returnType: int
    signature: int _PySemaphore_PlatformWait(_PySemaphore *sema, PyTime_t timeout)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/parking_lot.c:233,1
    - Dst: _PyThreadState_IsAttached
      Src: /src/cpython/Python/parking_lot.c:234,1
    - Dst: PyEval_ReleaseThread
      Src: /src/cpython/Python/parking_lot.c:236,1
    - Dst: _PySemaphore_PlatformWait
      Src: /src/cpython/Python/parking_lot.c:242,1
    - Dst: PyEval_AcquireThread
      Src: /src/cpython/Python/parking_lot.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sema
    - timeout
    - detach
    argTypes:
    - _PySemaphore*
    - PyTime_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 228
    functionDepth: 5
    functionLinenumber: 228
    functionLinenumberEnd: 247
    functionName: _PySemaphore_Wait
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_IsAttached
    - PyEval_ReleaseThread
    - _PyThreadState_GET
    - _PySemaphore_PlatformWait
    - PyEval_AcquireThread
    linkageType: ''
    returnType: int
    signature: int _PySemaphore_Wait(_PySemaphore *sema, PyTime_t timeout, int detach)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSemaphore
      Src: /src/cpython/Python/parking_lot.c:253,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:254,1
    - Dst: sem_post
      Src: /src/cpython/Python/parking_lot.c:257,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:259,1
    - Dst: pthread_mutex_lock
      Src: /src/cpython/Python/parking_lot.c:262,1
    - Dst: pthread_cond_signal
      Src: /src/cpython/Python/parking_lot.c:264,1
    - Dst: pthread_mutex_unlock
      Src: /src/cpython/Python/parking_lot.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - sema
    argTypes:
    - _PySemaphore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: _PySemaphore_Wakeup
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - sem_post
    - Py_FatalError
    - pthread_cond_signal
    - pthread_mutex_lock
    - ReleaseSemaphore
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void _PySemaphore_Wakeup(_PySemaphore *sema)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_insert_tail
      Src: /src/cpython/Python/parking_lot.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bucket
    - address
    - wait
    argTypes:
    - Bucket*
    - void*
    - struct wait_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: enqueue
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - llist_insert_tail
    linkageType: ''
    returnType: void
    signature: void enqueue(Bucket *bucket, const void *address, struct wait_entry
      *wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Python/parking_lot.c:283,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bucket
    - address
    argTypes:
    - Bucket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 292
    functionName: dequeue
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached:
    - llist_remove
    - llist_data
    linkageType: ''
    returnType: struct wait_entry
    signature: 'struct wait_entry *

      dequeue(Bucket *bucket, const void *address)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Python/parking_lot.c:283,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 290
    functionName: llist_for_each
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - llist_remove
    - llist_data
    linkageType: ''
    returnType: void
    signature: void llist_for_each(node, root)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Python/parking_lot.c:301,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:303,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Python/parking_lot.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - bucket
    - address
    - dst
    argTypes:
    - Bucket*
    - void*
    - struct llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: dequeue_all
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached:
    - llist_remove
    - llist_data
    - llist_insert_tail
    linkageType: ''
    returnType: void
    signature: void dequeue_all(Bucket *bucket, const void *address, struct llist_node
      *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Python/parking_lot.c:301,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:303,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Python/parking_lot.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: llist_for_each_safe
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 3
    functionsReached:
    - llist_remove
    - llist_data
    - llist_insert_tail
    linkageType: ''
    returnType: void
    signature: void llist_for_each_safe(node, root)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/parking_lot.c:316,1
    - Dst: _Py_atomic_load_uint16
      Src: /src/cpython/Python/parking_lot.c:317,1
    - Dst: _Py_atomic_load_uint32
      Src: /src/cpython/Python/parking_lot.c:318,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/parking_lot.c:319,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/parking_lot.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - addr
    - expected
    - addr_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 322
    functionName: atomic_memcmp
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint8
    - _Py_atomic_load_uint16
    - _Py_atomic_load_uint32
    - _Py_atomic_load_uint64
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int atomic_memcmp(const void *addr, const void *expected, size_t addr_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyRawMutex_Lock
      Src: /src/cpython/Python/parking_lot.c:336,1
    - Dst: atomic_memcmp
      Src: /src/cpython/Python/parking_lot.c:337,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:338,1
    - Dst: _PySemaphore_Init
      Src: /src/cpython/Python/parking_lot.c:341,1
    - Dst: enqueue
      Src: /src/cpython/Python/parking_lot.c:342,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:343,1
    - Dst: _PySemaphore_Wait
      Src: /src/cpython/Python/parking_lot.c:345,1
    - Dst: _PyRawMutex_Lock
      Src: /src/cpython/Python/parking_lot.c:351,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:353,1
    - Dst: _PySemaphore_Wait
      Src: /src/cpython/Python/parking_lot.c:357,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:362,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:365,1
    - Dst: _PySemaphore_Destroy
      Src: /src/cpython/Python/parking_lot.c:368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 6
    argNames:
    - addr
    - expected
    - size
    - timeout_ns
    - park_arg
    - detach
    argTypes:
    - void*
    - void*
    - size_t
    - PyTime_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 324
    functionDepth: 6
    functionLinenumber: 324
    functionLinenumberEnd: 371
    functionName: _PyParkingLot_Park
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 6
    functionsReached:
    - _PyRawMutex_Unlock
    - llist_remove
    - atomic_memcmp
    - _PyRawMutex_Lock
    - _PySemaphore_Destroy
    - enqueue
    - _PySemaphore_Wait
    - _PySemaphore_Init
    linkageType: ''
    returnType: int
    signature: "int _PyParkingLot_Park(const void *addr, const void *expected, size_t
      size,\n                   PyTime_t timeout_ns, void *park_arg, int detach)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRawMutex_Lock
      Src: /src/cpython/Python/parking_lot.c:379,1
    - Dst: dequeue
      Src: /src/cpython/Python/parking_lot.c:380,1
    - Dst: fn
      Src: /src/cpython/Python/parking_lot.c:383,1
    - Dst: fn
      Src: /src/cpython/Python/parking_lot.c:386,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:388,1
    - Dst: _PySemaphore_Wakeup
      Src: /src/cpython/Python/parking_lot.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - addr
    - fn
    - arg
    argTypes:
    - void*
    - _Py_unpark_fn_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 394
    functionName: _PyParkingLot_Unpark
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 2
    functionsReached:
    - fn
    - _PyRawMutex_Unlock
    - _PySemaphore_Wakeup
    - _PyRawMutex_Lock
    - dequeue
    linkageType: ''
    returnType: void
    signature: void _PyParkingLot_Unpark(const void *addr, _Py_unpark_fn_t *fn, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLIST_INIT
      Src: /src/cpython/Python/parking_lot.c:399,1
    - Dst: _PyRawMutex_Lock
      Src: /src/cpython/Python/parking_lot.c:402,1
    - Dst: dequeue_all
      Src: /src/cpython/Python/parking_lot.c:403,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:404,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Python/parking_lot.c:407,1
    - Dst: llist_data
      Src: /src/cpython/Python/parking_lot.c:408,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:409,1
    - Dst: _PySemaphore_Wakeup
      Src: /src/cpython/Python/parking_lot.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 412
    functionName: _PyParkingLot_UnparkAll
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 8
    functionsReached:
    - dequeue_all
    - _PyRawMutex_Unlock
    - llist_remove
    - llist_data
    - llist_for_each_safe
    - _PySemaphore_Wakeup
    - _PyRawMutex_Lock
    - LLIST_INIT
    linkageType: ''
    returnType: void
    signature: void _PyParkingLot_UnparkAll(const void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/parking_lot.c:419,1
    - Dst: llist_init
      Src: /src/cpython/Python/parking_lot.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: _PyParkingLot_AfterFork
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - llist_init
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyParkingLot_AfterFork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: ENTER_RECURSIVE
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_RECURSIVE()
  - 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: LEAVE_RECURSIVE
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_RECURSIVE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: VALIDATE_POSITIONS
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALIDATE_POSITIONS(node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:54,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:54,1
    - Dst: assert
      Src: /src/cpython/Python/ast.c:55,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ast.c:55,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/ast.c:63,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/cpython/Python/ast.c
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 69
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 69
    functionName: validate_name
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyUnicode_EqualToASCIIString
    - PyErr_Format
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_name(PyObject *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:74,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:74,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:75,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:76,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:79,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:80,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:81,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:82,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - gens
    argTypes:
    - asdl_comprehension_seq*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: validate_comprehension
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - asdl_seq_GET
    - PyErr_Occurred
    - PyErr_SetString
    - asdl_seq_LEN
    - validate_exprs
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_comprehension(asdl_comprehension_seq *gens)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:92,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:92,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:93,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:94,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - keywords
    argTypes:
    - asdl_keyword_seq*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: validate_keywords
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 2
    functionsReached:
    - validate_expr
    - asdl_seq_GET
    - PyErr_Occurred
    - asdl_seq_LEN
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_keywords(asdl_keyword_seq *keywords)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:102,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:103,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:104,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:105,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - args
    argTypes:
    - asdl_arg_seq*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: validate_args
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - asdl_seq_GET
    - PyErr_Occurred
    - VALIDATE_POSITIONS
    - asdl_seq_LEN
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_args(asdl_arg_seq *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/ast.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: expr_context_name
    functionSourceFile: /src/cpython/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: assert
      Src: /src/cpython/Python/ast.c:130,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:130,1
    - Dst: validate_args
      Src: /src/cpython/Python/ast.c:131,1
    - Dst: validate_args
      Src: /src/cpython/Python/ast.c:131,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:135,1
    - Dst: validate_args
      Src: /src/cpython/Python/ast.c:138,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:141,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:144,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:144,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:144,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:145,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:148,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:148,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:149,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:153,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:153,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - args
    argTypes:
    - arguments_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: validate_arguments
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - PyErr_Occurred
    - PyErr_SetString
    - asdl_seq_LEN
    - validate_args
    - validate_exprs
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_arguments(arguments_ty args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:159,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:159,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ast.c:163,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/ast.c:164,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/ast.c:165,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/ast.c:166,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ast.c:167,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/ast.c:168,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ast.c:171,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/ast.c:171,1
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast.c:172,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/ast.c:174,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/ast.c:179,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast.c:182,1
    - Dst: validate_constant
      Src: /src/cpython/Python/ast.c:188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast.c:190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast.c:193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast.c:196,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast.c:197,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:201,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:202,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/ast.c:204,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ast.c:204,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 207
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 207
    functionName: validate_constant
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 1
    functionsReached:
    - PyFrozenSet_CheckExact
    - PyObject_GetIter
    - validate_constant
    - PyIter_Next
    - PyLong_CheckExact
    - LEAVE_RECURSIVE
    - PyTuple_CheckExact
    - PyErr_Occurred
    - PyComplex_CheckExact
    - PyErr_Format
    - PyBytes_CheckExact
    - Py_DECREF
    - PyUnicode_CheckExact
    - PyBool_Check
    - Py_TYPE
    - ENTER_RECURSIVE
    - PyFloat_CheckExact
    - _PyType_Name
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_constant(PyObject *value)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:212,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:213,1
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast.c:215,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:231,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:244,1
    - Dst: expr_context_name
      Src: /src/cpython/Python/ast.c:245,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:253,1
    - Dst: expr_context_name
      Src: /src/cpython/Python/ast.c:254,1
    - Dst: expr_context_name
      Src: /src/cpython/Python/ast.c:254,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:261,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:262,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:265,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:268,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:269,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:272,1
    - Dst: validate_arguments
      Src: /src/cpython/Python/ast.c:275,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:276,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:279,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:280,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:281,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:284,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:285,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:291,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:292,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:295,1
    - Dst: COMP
      Src: /src/cpython/Python/ast.c:302,1
    - Dst: COMP
      Src: /src/cpython/Python/ast.c:303,1
    - Dst: COMP
      Src: /src/cpython/Python/ast.c:304,1
    - Dst: validate_comprehension
      Src: /src/cpython/Python/ast.c:307,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:308,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:309,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:312,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:315,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:318,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:321,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:322,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:325,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:326,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:327,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:331,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:332,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:335,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:336,1
    - Dst: validate_keywords
      Src: /src/cpython/Python/ast.c:337,1
    - Dst: validate_constant
      Src: /src/cpython/Python/ast.c:340,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:346,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:349,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:352,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:355,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:361,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:364,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:370,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:373,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:374,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:377,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:380,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:381,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:382,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:385,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:388,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:392,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:396,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:405,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast.c:408,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 162
    argCount: 2
    argNames:
    - exp
    - ctx
    argTypes:
    - expr_ty
    - expr_context_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 410
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 410
    functionName: validate_expr
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 5
    functionsReached:
    - validate_expr
    - validate_arguments
    - LEAVE_RECURSIVE
    - validate_keywords
    - PyErr_Occurred
    - validate_constant
    - PyErr_SetString
    - VALIDATE_POSITIONS
    - expr_context_name
    - asdl_seq_LEN
    - validate_comprehension
    - COMP
    - validate_exprs
    - PyErr_Format
    - validate_name
    - ENTER_RECURSIVE
    - assert
    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: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: COMP
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMP(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:419,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/ast.c:421,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ast.c:422,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/ast.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 3
    argNames:
    - exp
    - allow_real
    - allow_imaginary
    argTypes:
    - expr_ty
    - bool
    - bool
    assertStmts:
    - condition: (exp->kind == Constant_kind)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 424
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 424
    functionName: ensure_literal_number
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - PyLong_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: int ensure_literal_number(expr_ty exp, bool allow_real, bool allow_imaginary)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:429,1
    - Dst: ensure_literal_number
      Src: /src/cpython/Python/ast.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - exp
    - allow_real
    - allow_imaginary
    argTypes:
    - expr_ty
    - bool
    - bool
    assertStmts:
    - condition: (exp->kind == UnaryOp_kind)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 441
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 441
    functionName: ensure_literal_negative
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - ensure_literal_number
    - assert
    linkageType: ''
    returnType: int
    signature: int ensure_literal_negative(expr_ty exp, bool allow_real, bool allow_imaginary)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:446,1
    - Dst: ensure_literal_number
      Src: /src/cpython/Python/ast.c:457,1
    - Dst: ensure_literal_negative
      Src: /src/cpython/Python/ast.c:462,1
    - Dst: ensure_literal_number
      Src: /src/cpython/Python/ast.c:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - exp
    argTypes:
    - expr_ty
    assertStmts:
    - condition: (exp->kind == BinOp_kind)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 481
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 481
    functionName: ensure_literal_complex
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - ensure_literal_number
    - ensure_literal_negative
    - assert
    linkageType: ''
    returnType: int
    signature: int ensure_literal_complex(expr_ty exp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:486,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:486,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:487,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:497,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ast.c:501,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/ast.c:501,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/ast.c:502,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/ast.c:502,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ast.c:503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:506,1
    - Dst: ensure_literal_negative
      Src: /src/cpython/Python/ast.c:515,1
    - Dst: ensure_literal_complex
      Src: /src/cpython/Python/ast.c:522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:533,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - exp
    argTypes:
    - expr_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 536
      start: 483
    functionDepth: 5
    functionLinenumber: 483
    functionLinenumberEnd: 536
    functionName: validate_pattern_match_value
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - PyErr_Occurred
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - PyUnicode_CheckExact
    - PyErr_SetString
    - ensure_literal_negative
    - PyLong_CheckExact
    - ensure_literal_complex
    - PyBytes_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_pattern_match_value(expr_ty exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:541,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:541,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/ast.c:542,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:543,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 547
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 547
    functionName: validate_capture
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_Format
    - _PyUnicode_EqualToASCIIString
    - validate_name
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_capture(PyObject *name)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:552,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:553,1
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast.c:555,1
    - Dst: validate_pattern_match_value
      Src: /src/cpython/Python/ast.c:558,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/ast.c:561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:563,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:568,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:571,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:571,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:572,1
    - Dst: validate_capture
      Src: /src/cpython/Python/ast.c:578,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:584,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:585,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/ast.c:588,1
    - Dst: validate_pattern_match_value
      Src: /src/cpython/Python/ast.c:596,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:604,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:607,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:607,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:608,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:613,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:628,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:638,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:639,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:640,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:649,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:654,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:658,1
    - Dst: validate_capture
      Src: /src/cpython/Python/ast.c:662,1
    - Dst: validate_capture
      Src: /src/cpython/Python/ast.c:665,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:673,1
    - Dst: validate_pattern
      Src: /src/cpython/Python/ast.c:678,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:682,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:683,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:688,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:694,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast.c:697,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 122
    argCount: 2
    argNames:
    - p
    - star_ok
    argTypes:
    - pattern_ty
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 699
      start: 549
    functionDepth: 6
    functionLinenumber: 549
    functionLinenumberEnd: 699
    functionName: validate_pattern
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 1
    functionsReached:
    - validate_expr
    - validate_patterns
    - LEAVE_RECURSIVE
    - asdl_seq_GET
    - PyErr_Occurred
    - PyErr_SetString
    - VALIDATE_POSITIONS
    - validate_capture
    - asdl_seq_LEN
    - PyBool_Check
    - validate_pattern_match_value
    - validate_pattern
    - validate_name
    - ENTER_RECURSIVE
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_pattern(pattern_ty p, int star_ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:704,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - seq
    - what
    - owner
    argTypes:
    - asdl_seq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 708
    functionName: _validate_nonempty_seq
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - seq
    - ','
    - what
    - ','
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 710
    functionName: validate_nonempty_seq
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_nonempty_seq(seq, what, owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:714,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:714,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:715,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - targets
    - ctx
    argTypes:
    - asdl_expr_seq*
    - expr_context_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 717
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 717
    functionName: validate_assignlist
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - validate_exprs
    - assert
    - validate_nonempty_seq
    linkageType: ''
    returnType: int
    signature: int validate_assignlist(asdl_expr_seq *targets, expr_context_ty ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:722,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:723,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - body
    - owner
    argTypes:
    - asdl_stmt_seq*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 724
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 724
    functionName: validate_body
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - validate_stmts
    - assert
    - validate_nonempty_seq
    linkageType: ''
    returnType: int
    signature: int validate_body(asdl_stmt_seq *body, const char *owner)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:729,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:729,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:730,1
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast.c:732,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:735,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:736,1
    - Dst: validate_arguments
      Src: /src/cpython/Python/ast.c:737,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:738,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:740,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:743,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:744,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:745,1
    - Dst: validate_keywords
      Src: /src/cpython/Python/ast.c:746,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:747,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:750,1
    - Dst: validate_assignlist
      Src: /src/cpython/Python/ast.c:753,1
    - Dst: validate_assignlist
      Src: /src/cpython/Python/ast.c:756,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:757,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:760,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:761,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:766,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:770,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:772,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:777,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:781,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:782,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:783,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:786,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:787,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:788,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:789,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:792,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:793,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:794,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:795,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:798,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:799,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:800,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:803,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:804,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:805,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:808,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:810,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:811,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:812,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:813,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:816,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:819,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:821,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:822,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:823,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:824,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:827,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:830,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:831,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:834,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:835,1
    - Dst: validate_pattern
      Src: /src/cpython/Python/ast.c:836,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:837,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:838,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:846,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:851,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:857,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:859,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:860,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:861,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:864,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:865,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:866,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:869,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:870,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:871,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:873,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:874,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:877,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:878,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:879,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:880,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:883,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:885,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:886,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:887,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:890,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:891,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:892,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:895,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:896,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:898,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:899,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:902,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:903,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:904,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:905,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:908,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:909,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:912,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:916,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:919,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:922,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:925,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:928,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:931,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:932,1
    - Dst: validate_arguments
      Src: /src/cpython/Python/ast.c:933,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:934,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:936,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:946,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast.c:949,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 161
    argCount: 1
    argNames:
    - stmt
    argTypes:
    - stmt_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 951
      start: 726
    functionDepth: 7
    functionLinenumber: 726
    functionLinenumberEnd: 951
    functionName: validate_stmt
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_stmts
    - validate_expr
    - validate_arguments
    - LEAVE_RECURSIVE
    - validate_keywords
    - PyErr_Occurred
    - asdl_seq_GET
    - PyErr_SetString
    - VALIDATE_POSITIONS
    - asdl_seq_LEN
    - validate_type_params
    - validate_exprs
    - validate_assignlist
    - validate_body
    - validate_pattern
    - ENTER_RECURSIVE
    - assert
    - validate_nonempty_seq
    linkageType: ''
    returnType: int
    signature: int validate_stmt(stmt_ty stmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:956,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:956,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:957,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:958,1
    - Dst: validate_stmt
      Src: /src/cpython/Python/ast.c:960,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_stmt_seq*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 970
      start: 953
    functionDepth: 8
    functionLinenumber: 953
    functionLinenumberEnd: 970
    functionName: validate_stmts
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 2
    functionsReached:
    - assert
    - asdl_seq_GET
    - PyErr_Occurred
    - PyErr_SetString
    - asdl_seq_LEN
    - validate_stmt
    linkageType: ''
    returnType: int
    signature: int validate_stmts(asdl_stmt_seq *seq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:975,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:976,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:977,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:979,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:983,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - exprs
    - ctx
    - null_ok
    argTypes:
    - asdl_expr_seq*
    - expr_context_ty
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 990
      start: 972
    functionDepth: 5
    functionLinenumber: 972
    functionLinenumberEnd: 990
    functionName: validate_exprs
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 5
    functionsReached:
    - validate_expr
    - asdl_seq_GET
    - PyErr_Occurred
    - PyErr_SetString
    - asdl_seq_LEN
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_exprs(asdl_expr_seq *exprs, expr_context_ty ctx, int null_ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:995,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:996,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:997,1
    - Dst: validate_pattern
      Src: /src/cpython/Python/ast.c:998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - patterns
    - star_ok
    argTypes:
    - asdl_pattern_seq*
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1003
      start: 992
    functionDepth: 7
    functionLinenumber: 992
    functionLinenumberEnd: 1003
    functionName: validate_patterns
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 1
    functionsReached:
    - assert
    - asdl_seq_GET
    - PyErr_Occurred
    - asdl_seq_LEN
    - validate_pattern
    linkageType: ''
    returnType: int
    signature: int validate_patterns(asdl_pattern_seq *patterns, int star_ok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:1008,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:1012,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1014,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1016,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:1019,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1021,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:1024,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1026,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - tp
    argTypes:
    - type_param_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1005
    functionDepth: 5
    functionLinenumber: 1005
    functionLinenumberEnd: 1030
    functionName: validate_typeparam
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - VALIDATE_POSITIONS
    - validate_name
    linkageType: ''
    returnType: int
    signature: int validate_typeparam(type_param_ty tp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:1036,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:1037,1
    - Dst: validate_typeparam
      Src: /src/cpython/Python/ast.c:1039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tps
    argTypes:
    - asdl_type_param_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1032
    functionDepth: 6
    functionLinenumber: 1032
    functionLinenumberEnd: 1044
    functionName: validate_type_params
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 1
    functionsReached:
    - validate_typeparam
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int validate_type_params(asdl_type_param_seq *tps)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:1049,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:1049,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:1054,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:1057,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1060,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:1063,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1064,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:1070,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - mod
    argTypes:
    - mod_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1074
      start: 1046
    functionDepth: 9
    functionLinenumber: 1046
    functionLinenumberEnd: 1074
    functionName: _PyAST_Validate
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 2
    functionsReached:
    - validate_expr
    - assert
    - PyErr_Occurred
    - PyErr_SetString
    - validate_exprs
    - validate_stmts
    linkageType: ''
    returnType: int
    signature: int _PyAST_Validate(mod_ty mod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:1079,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:1082,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ast.c:1087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - body
    argTypes:
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1091
    functionName: _PyAST_GetDocString
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 4
    functionsReached:
    - PyUnicode_CheckExact
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAST_GetDocString(asdl_stmt_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/cpython/Python/getplatform.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetPlatform(void)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:32,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/bltinmodule.c:32,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bltinmodule.c:36,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/bltinmodule.c:40,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:46,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:46,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/bltinmodule.c:51,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/bltinmodule.c:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:58,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/bltinmodule.c:62,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:63,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:65,1
    - Dst: PyList_New
      Src: /src/cpython/Python/bltinmodule.c:71,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:72,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:77,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:77,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:80,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/bltinmodule.c:81,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:82,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:85,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/bltinmodule.c:90,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:91,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:95,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 3
    argNames:
    - bases
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 97
      start: 27
    functionDepth: 12
    functionLinenumber: 27
    functionLinenumberEnd: 97
    functionName: update_bases
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyTuple_Check
    - PyList_Append
    - _Py_ID
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyList_SET_ITEM
    - PyList_SetSlice
    - PyList_AsTuple
    - Py_NewRef
    - PyObject_CallOneArg
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:110,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bltinmodule.c:115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:116,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:121,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:122,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Python/bltinmodule.c:126,1
    - Dst: update_bases
      Src: /src/cpython/Python/bltinmodule.c:130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:132,1
    - Dst: _PyStack_AsDict
      Src: /src/cpython/Python/bltinmodule.c:141,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/bltinmodule.c:146,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:146,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bltinmodule.c:151,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:156,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:161,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:162,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:164,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/cpython/Python/bltinmodule.c:171,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:177,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:177,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:182,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:182,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/bltinmodule.c:186,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Python/bltinmodule.c:190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:191,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:196,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:197,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:200,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:203,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/bltinmodule.c:204,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Python/bltinmodule.c:205,1
    - Dst: PyMapping_SetItemString
      Src: /src/cpython/Python/bltinmodule.c:208,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Python/bltinmodule.c:213,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bltinmodule.c:214,1
    - Dst: PyCell_Check
      Src: /src/cpython/Python/bltinmodule.c:214,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Python/bltinmodule.c:215,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:221,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:225,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:227,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:232,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:237,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:238,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:239,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:244,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 114
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 100
    functionDepth: 17
    functionLinenumber: 100
    functionLinenumberEnd: 246
    functionName: builtin___build_class__
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyMapping_SetItemString
    - Py_XDECREF
    - PyFunction_Check
    - _PyTuple_FromArray
    - PyErr_SetString
    - Py_SETREF
    - _PyThreadState_GET
    - PyMapping_Check
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyCell_Check
    - update_bases
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_Pop
    - PyType_Check
    - Py_DECREF
    - _Py_ID
    - Py_NewRef
    - _PyStack_AsDict
    - EVAL_CALL_STAT_INC
    - _PyEval_Vector
    - Py_TYPE
    - PyObject_GetOptionalAttr
    - PyObject_VectorcallDict
    - PyCell_GetRef
    - PyDict_New
    - _PyType_CalculateMetaclass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin___build_class__(PyObject *self, PyObject *const
      *args, Py_ssize_t nargs,\n                        PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/bltinmodule.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - name
    - globals
    - locals
    - fromlist
    - level
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 12
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: builtin___import___impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleLevelObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin___import___impl(PyObject *module, PyObject *name,
      PyObject *globals,\n                        PyObject *locals, PyObject *fromlist,
      int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Python/bltinmodule.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: builtin_abs
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Absolute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_abs(PyObject *module, PyObject *number)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:325,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:328,1
    - Dst: iternext
      Src: /src/cpython/Python/bltinmodule.c:331,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:345,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:346,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:347,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 353
    functionName: builtin_all
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyErr_ExceptionMatches
    - iternext
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_all(PyObject *module, PyObject *iterable)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:374,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:377,1
    - Dst: iternext
      Src: /src/cpython/Python/bltinmodule.c:380,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:394,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:395,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:396,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 402
    functionName: builtin_any
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyErr_ExceptionMatches
    - iternext
    - PyErr_Clear
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_any(PyObject *module, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ASCII
      Src: /src/cpython/Python/bltinmodule.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: builtin_ascii
    functionSourceFile: /src/cpython/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/cpython/Python/bltinmodule.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - integer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: builtin_bin
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_bin(PyObject *module, PyObject *integer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/bltinmodule.c:462,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/bltinmodule.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: builtin_callable
    functionSourceFile: /src/cpython/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_GetAttrString
      Src: /src/cpython/Python/bltinmodule.c:468,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:474,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/bltinmodule.c:478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - keywords
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 481
    functionName: builtin_breakpoint
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PySys_GetAttrString
    - PySys_Audit
    - PyObject_Vectorcall
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_breakpoint(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *keywords)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: _filterobject_CAST
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _filterobject_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Python/bltinmodule.c:508,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Python/bltinmodule.c:511,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:515,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:522,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:526,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 530
    functionName: filter_new
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyObject_GetIter
    - PyArg_UnpackTuple
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_CAST
      Src: /src/cpython/Python/bltinmodule.c:536,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Python/bltinmodule.c:537,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/bltinmodule.c:541,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/bltinmodule.c:542,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:546,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:554,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 562
    functionName: filter_vectorcall
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetIter
    - _PyType_CAST
    - Py_NewRef
    - _PyArg_CheckPositional
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfilter_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _filterobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:567,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bltinmodule.c:568,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:569,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:570,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 572
    functionName: filter_dealloc
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - PyObject_GC_UnTrack
    - _filterobject_CAST
    linkageType: ''
    returnType: void
    signature: void filter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _filterobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:577,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:578,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 581
    functionName: filter_traverse
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _filterobject_CAST
    linkageType: ''
    returnType: int
    signature: int filter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _filterobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:586,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:593,1
    - Dst: iternext
      Src: /src/cpython/Python/bltinmodule.c:595,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:600,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/bltinmodule.c:603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:605,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 617
    functionName: filter_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - _filterobject_CAST
    - PyObject_CallOneArg
    - iternext
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filter_next(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _filterobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:622,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/bltinmodule.c:623,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 624
    functionName: filter_reduce
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - _filterobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filter_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Format
      Src: /src/cpython/Python/bltinmodule.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - value
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 703
    functionDepth: 5
    functionLinenumber: 703
    functionLinenumberEnd: 708
    functionName: builtin_format_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/bltinmodule.c:724,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:725,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/bltinmodule.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - i
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 719
    functionDepth: 6
    functionLinenumber: 719
    functionLinenumberEnd: 741
    functionName: builtin_chr
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_FromOrdinal
    - PyLong_AsLongAndOverflow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_chr(PyObject *module, PyObject *i)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:792,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:799,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/cpython/Python/bltinmodule.c:805,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:808,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:810,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:812,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:814,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:816,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:828,1
    - Dst: PyAST_Check
      Src: /src/cpython/Python/bltinmodule.c:832,1
    - Dst: _PyArena_New
      Src: /src/cpython/Python/bltinmodule.c:836,1
    - Dst: PyAST_obj2mod
      Src: /src/cpython/Python/bltinmodule.c:842,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Python/bltinmodule.c:843,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:844,1
    - Dst: _PyCompile_AstPreprocess
      Src: /src/cpython/Python/bltinmodule.c:848,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:850,1
    - Dst: PyAST_mod2obj
      Src: /src/cpython/Python/bltinmodule.c:853,1
    - Dst: PyAST_obj2mod
      Src: /src/cpython/Python/bltinmodule.c:856,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Python/bltinmodule.c:857,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:858,1
    - Dst: _PyAST_Compile
      Src: /src/cpython/Python/bltinmodule.c:861,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:864,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/bltinmodule.c:868,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:876,1
    - Dst: Py_CompileStringObject
      Src: /src/cpython/Python/bltinmodule.c:880,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:892,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    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: 894
      start: 770
    functionDepth: 16
    functionLinenumber: 770
    functionLinenumberEnd: 894
    functionName: builtin_compile_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _PyArena_New
    - PyErr_SetString
    - _PyAST_Compile
    - PyEval_MergeCompilerFlags
    - _PyArena_Free
    - _PyThreadState_GET
    - strcmp
    - _PyAST_Validate
    - _Py_SourceAsString
    - PyAST_Check
    - PyAST_obj2mod
    - PyAST_mod2obj
    - Py_CompileStringObject
    - _PyCompile_AstPreprocess
    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/cpython/Python/bltinmodule.c:902,1
    - Dst: PyObject_Dir
      Src: /src/cpython/Python/bltinmodule.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 905
    functionName: builtin_dir
    functionSourceFile: /src/cpython/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/cpython/Python/bltinmodule.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 936
    functionName: builtin_divmod_impl
    functionSourceFile: /src/cpython/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: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:961,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:965,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:966,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/bltinmodule.c:969,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:970,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:970,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:978,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:980,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/bltinmodule.c:982,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:983,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:984,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:987,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:989,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:990,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:996,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1000,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:1003,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1005,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1006,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1011,1
    - Dst: _PyEval_EnsureBuiltins
      Src: /src/cpython/Python/bltinmodule.c:1014,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/bltinmodule.c:1018,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:1019,1
    - Dst: PyCode_GetNumFree
      Src: /src/cpython/Python/bltinmodule.c:1023,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1024,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Python/bltinmodule.c:1028,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/bltinmodule.c:1033,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/cpython/Python/bltinmodule.c:1040,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1044,1
    - Dst: PyRun_StringFlags
      Src: /src/cpython/Python/bltinmodule.c:1047,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1051,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1055,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1056,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 4
    argNames:
    - module
    - source
    - globals
    - locals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (globals != NULL)
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/cpython/Python/bltinmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1058
      start: 956
    functionDepth: 12
    functionLinenumber: 956
    functionLinenumberEnd: 1058
    functionName: builtin_eval_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - _PyThreadState_GET
    - PyRun_StringFlags
    - PyCode_GetNumFree
    - PyMapping_Check
    - _PyEval_EnsureBuiltins
    - Py_INCREF
    - PyErr_Occurred
    - PyEval_MergeCompilerFlags
    - _PyEval_GetGlobalsFromRunningMain
    - PySys_Audit
    - PyDict_Check
    - Py_DECREF
    - PyEval_GetGlobals
    - Py_NewRef
    - _PyEval_GetFrameLocals
    - PyCode_Check
    - _PyEval_GetFrame
    - PyEval_EvalCode
    - _Py_SourceAsString
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_eval_impl(PyObject *module, PyObject *source,
      PyObject *globals,\n                  PyObject *locals)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1086,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1091,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:1093,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/bltinmodule.c:1095,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1096,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1097,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:1100,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1103,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1108,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1112,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:1115,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1117,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1118,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1123,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/bltinmodule.c:1126,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1127,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1128,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:1131,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1132,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1134,1
    - Dst: _PyEval_EnsureBuiltins
      Src: /src/cpython/Python/bltinmodule.c:1138,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/bltinmodule.c:1146,1
    - Dst: PyCode_GetNumFree
      Src: /src/cpython/Python/bltinmodule.c:1147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1150,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:1157,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1158,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1161,1
    - Dst: PyCell_Check
      Src: /src/cpython/Python/bltinmodule.c:1162,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1169,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:1176,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Python/bltinmodule.c:1181,1
    - Dst: PyEval_EvalCodeEx
      Src: /src/cpython/Python/bltinmodule.c:1183,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1193,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/bltinmodule.c:1201,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/cpython/Python/bltinmodule.c:1206,1
    - Dst: PyRun_StringFlags
      Src: /src/cpython/Python/bltinmodule.c:1207,1
    - Dst: PyRun_String
      Src: /src/cpython/Python/bltinmodule.c:1210,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1217,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1221,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1222,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 109
    argCount: 5
    argNames:
    - module
    - source
    - globals
    - locals
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (globals != NULL)
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/cpython/Python/bltinmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1116
        line_start: 1116
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1224
      start: 1081
    functionDepth: 18
    functionLinenumber: 1081
    functionLinenumberEnd: 1224
    functionName: builtin_exec_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetString
    - _PyThreadState_GET
    - PyEval_EvalCodeEx
    - PyRun_StringFlags
    - PyCode_GetNumFree
    - PyMapping_Check
    - PyRun_String
    - PyTuple_CheckExact
    - _PyEval_EnsureBuiltins
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyCell_Check
    - PyEval_MergeCompilerFlags
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyEval_GetGlobalsFromRunningMain
    - PyDict_Check
    - PySys_Audit
    - Py_DECREF
    - PyEval_GetGlobals
    - Py_NewRef
    - Py_TYPE
    - _PyEval_GetFrameLocals
    - PyCode_Check
    - _PyEval_GetFrame
    - PyEval_EvalCode
    - _Py_SourceAsString
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_exec_impl(PyObject *module, PyObject *source,
      PyObject *globals,\n                  PyObject *locals, PyObject *closure)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/bltinmodule.c:1233,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:1239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1241,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:1245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1228
    functionDepth: 3
    functionLinenumber: 1228
    functionLinenumberEnd: 1248
    functionName: builtin_getattr
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyObject_GetAttr
    - _PyArg_CheckPositional
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_getattr(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:1272,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/bltinmodule.c:1273,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1274,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1275,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1277,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:1278,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1280,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (globals != NULL)
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1286
      start: 1267
    functionDepth: 3
    functionLinenumber: 1267
    functionLinenumberEnd: 1286
    functionName: builtin_globals_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyEval_GetGlobals
    - _PyEval_GetFrame
    - Py_NewRef
    - _PyThreadState_GET
    - _PyEval_GetGlobalsFromRunningMain
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_globals_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:1307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1315
    functionName: builtin_hasattr_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/bltinmodule.c:1339,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:1341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyModuleDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1347
    functionName: builtin_id_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyLong_FromVoidPtr
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_id_impl(PyModuleDef *self, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1360
    functionName: _mapobject_CAST
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mapobject_CAST(op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:1370,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Python/bltinmodule.c:1375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1377,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Python/bltinmodule.c:1383,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1385,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:1390,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:1396,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1398,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1401,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:1405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1407,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1411,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1361
    functionDepth: 3
    functionLinenumber: 1361
    functionLinenumberEnd: 1416
    functionName: map_new
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 8
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyObject_GetIter
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_CAST
      Src: /src/cpython/Python/bltinmodule.c:1422,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/bltinmodule.c:1424,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1425,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1427,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/cpython/Python/bltinmodule.c:1428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1432,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:1437,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:1443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1445,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1448,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:1451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1453,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1418
    functionDepth: 4
    functionLinenumber: 1418
    functionLinenumberEnd: 1461
    functionName: map_vectorcall
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_MakeTpCall
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetIter
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - _PyType_CAST
    - _PyThreadState_GET
    - Py_NewRef
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmap_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1466,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bltinmodule.c:1467,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1468,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1469,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1471
    functionName: map_dealloc
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _mapobject_CAST
    - Py_TYPE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void map_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1476,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:1477,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1480
    functionName: map_traverse
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _mapobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int map_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1485,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1490,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1492,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/bltinmodule.c:1493,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/bltinmodule.c:1497,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/bltinmodule.c:1499,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1506,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1507,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Python/bltinmodule.c:1518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1522,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/bltinmodule.c:1525,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1529,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:1530,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:1534,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1540,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1545,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1548,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1550,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1554,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:1555,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:1559,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1482
    functionDepth: 7
    functionLinenumber: 1482
    functionLinenumberEnd: 1565
    functionName: map_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - _mapobject_CAST
    - _PyThreadState_GET
    - _PyErr_NoMemory
    - PyErr_ExceptionMatches
    - _PyObject_VectorcallTstate
    - PyTuple_GET_ITEM
    - PyErr_Format
    - Py_ARRAY_LENGTH
    - PyErr_Clear
    - Py_TYPE
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1570,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1571,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:1572,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1576,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1576,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1578,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1579,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1579,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/bltinmodule.c:1583,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1583,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/bltinmodule.c:1585,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1567
    functionDepth: 3
    functionLinenumber: 1567
    functionLinenumberEnd: 1586
    functionName: map_reduce
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_GET_SIZE
    - Py_BuildValue
    - PyTuple_SET_ITEM
    - _mapobject_CAST
    - Py_NewRef
    - PyTuple_GET_ITEM
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:1593,1
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1600
    functionName: map_setstate
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _mapobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_setstate(PyObject *self, PyObject *state)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/bltinmodule.c:1671,1
    - Dst: PyIter_Check
      Src: /src/cpython/Python/bltinmodule.c:1675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1676,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1678,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1682,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1687,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:1688,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:1690,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1692,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1693,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/bltinmodule.c:1696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1699
    functionName: builtin_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_NewRef
    - PyErr_ExceptionMatches
    - PyErr_SetNone
    - _PyArg_CheckPositional
    - PyErr_Format
    - PyIter_Check
    - PyErr_Clear
    - Py_TYPE
    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/cpython/Python/bltinmodule.c:1726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1729
    functionName: builtin_setattr_impl
    functionSourceFile: /src/cpython/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_DelAttr
      Src: /src/cpython/Python/bltinmodule.c:1748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1752
    functionName: builtin_delattr_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_DelAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Python/bltinmodule.c:1773,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:1776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1767
    functionDepth: 3
    functionLinenumber: 1767
    functionLinenumberEnd: 1777
    functionName: builtin_hash
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyObject_Hash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hash(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Python/bltinmodule.c:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - integer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1792
    functionDepth: 3
    functionLinenumber: 1792
    functionLinenumberEnd: 1797
    functionName: builtin_hex
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hex(PyObject *module, PyObject *integer)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/bltinmodule.c:1806,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:1810,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/bltinmodule.c:1811,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1812,1
    - Dst: PyCallIter_New
      Src: /src/cpython/Python/bltinmodule.c:1817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1801
    functionDepth: 3
    functionLinenumber: 1801
    functionLinenumberEnd: 1818
    functionName: builtin_iter
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - PyErr_SetString
    - PyCallable_Check
    - _PyArg_CheckPositional
    - PyCallIter_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_iter(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAIter
      Src: /src/cpython/Python/bltinmodule.c:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - async_iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1838
    functionDepth: 3
    functionLinenumber: 1838
    functionLinenumberEnd: 1843
    functionName: builtin_aiter
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_aiter(PyObject *module, PyObject *async_iterable)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1868,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1870,1
    - Dst: PyAnextAwaitable_New
      Src: /src/cpython/Python/bltinmodule.c:1884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - aiterator
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1888
    functionName: builtin_anext_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_TYPE
    - PyAnextAwaitable_New
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_anext_impl(PyObject *module, PyObject *aiterator,\n
      \                  PyObject *default_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Size
      Src: /src/cpython/Python/bltinmodule.c:1906,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1908,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1908,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:1911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1907
        line_start: 1907
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1912
      start: 1900
    functionDepth: 2
    functionLinenumber: 1900
    functionLinenumberEnd: 1912
    functionName: builtin_len
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - PyObject_Size
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_len(PyObject *module, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:1930,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:1931,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1932,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1932,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1935,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:1936,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1938,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (locals != NULL || PyErr_Occurred())
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1944
      start: 1925
    functionDepth: 12
    functionLinenumber: 1925
    functionLinenumberEnd: 1944
    functionName: builtin_locals_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    - PyErr_Occurred
    - _PyThreadState_GET
    - Py_NewRef
    - _PyEval_GetFrameLocals
    - _PyEval_GetGlobalsFromRunningMain
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_locals_impl(PyObject *module)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1959,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Python/bltinmodule.c:1963,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1970,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:1977,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1995,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:1998,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2000,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/bltinmodule.c:2009,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:2015,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/bltinmodule.c:2025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2035,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2036,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2041,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:2043,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2050,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2057,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2059,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2060,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2061,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 4
    argNames:
    - args
    - nargs
    - kwnames
    - op
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts:
    - condition: (maxitem == NULL)
      pos:
        line_end: 2040
        line_start: 2040
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2063
      start: 1947
    functionDepth: 4
    functionLinenumber: 1947
    functionLinenumberEnd: 2063
    functionName: min_max
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - _PyArg_ParseStackAndKeywords
    - Py_DECREF
    - PyErr_Occurred
    - PyObject_GetIter
    - PyIter_Next
    - Py_NewRef
    - PyObject_CallOneArg
    - PyObject_RichCompareBool
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      min_max(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_max
      Src: /src/cpython/Python/bltinmodule.c:2069,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: 2070
      start: 2066
    functionDepth: 5
    functionLinenumber: 2066
    functionLinenumberEnd: 2070
    functionName: builtin_min
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - min_max
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_min(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_max
      Src: /src/cpython/Python/bltinmodule.c:2086,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: 2087
      start: 2083
    functionDepth: 5
    functionLinenumber: 2083
    functionLinenumberEnd: 2087
    functionName: builtin_max
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - min_max
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_max(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Python/bltinmodule.c:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - integer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2111
    functionDepth: 3
    functionLinenumber: 2111
    functionLinenumberEnd: 2116
    functionName: builtin_oct
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_oct(PyObject *module, PyObject *integer)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/bltinmodule.c:2141,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:2142,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/bltinmodule.c:2144,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2145,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2148,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/bltinmodule.c:2149,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/bltinmodule.c:2151,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2152,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/bltinmodule.c:2155,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:2157,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/bltinmodule.c:2159,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2160,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2164,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2166,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - module
    - c
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2175
    functionName: builtin_ord
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_Check
    - PyByteArray_Check
    - Py_TYPE
    - PyBytes_GET_SIZE
    - PyUnicode_READ_CHAR
    - PyLong_FromLong
    - PyUnicode_Check
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_ord(PyObject *module, PyObject *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Power
      Src: /src/cpython/Python/bltinmodule.c:2196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2191
    functionDepth: 3
    functionLinenumber: 2191
    functionLinenumberEnd: 2197
    functionName: builtin_pow_impl
    functionSourceFile: /src/cpython/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: 16
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2225,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2232,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:2237,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2243,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2244,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2247,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2253,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2254,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2257,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/bltinmodule.c:2264,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2270,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2276,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/bltinmodule.c:2282,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2288,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2298,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 7
    argNames:
    - module
    - objects
    - objects_length
    - sep
    - end
    - file
    - flush
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2216
    functionDepth: 6
    functionLinenumber: 2216
    functionLinenumberEnd: 2301
    functionName: builtin_print_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyFile_Flush
    - Py_INCREF
    - Py_DECREF
    - PyFile_WriteString
    - _Py_ID
    - PySys_GetAttr
    - PyFile_WriteObject
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_print_impl(PyObject *module, PyObject * const
      *objects,\n                   Py_ssize_t objects_length, PyObject *sep, PyObject
      *end,\n                   PyObject *file, int flush)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2331,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2336,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2339,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2344,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2347,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2347,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2352,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:2356,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2361,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2362,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/bltinmodule.c:2368,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2368,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2370,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/bltinmodule.c:2374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2375,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2376,1
    - Dst: fileno
      Src: /src/cpython/Python/bltinmodule.c:2379,1
    - Dst: isatty
      Src: /src/cpython/Python/bltinmodule.c:2379,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/bltinmodule.c:2382,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2382,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2384,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/bltinmodule.c:2388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2389,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2390,1
    - Dst: fileno
      Src: /src/cpython/Python/bltinmodule.c:2392,1
    - Dst: isatty
      Src: /src/cpython/Python/bltinmodule.c:2392,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2408,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2408,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2413,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2413,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2418,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2419,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2424,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2428,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2432,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2433,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2439,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2439,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2444,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2444,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2449,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2450,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2455,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2459,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/bltinmodule.c:2463,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/bltinmodule.c:2466,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bltinmodule.c:2468,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bltinmodule.c:2469,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bltinmodule.c:2470,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2473,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/bltinmodule.c:2473,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/bltinmodule.c:2474,1
    - Dst: strlen
      Src: /src/cpython/Python/bltinmodule.c:2475,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:2475,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2476,1
    - Dst: PyOS_Readline
      Src: /src/cpython/Python/bltinmodule.c:2485,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/bltinmodule.c:2487,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2488,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/bltinmodule.c:2489,1
    - Dst: strlen
      Src: /src/cpython/Python/bltinmodule.c:2493,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/bltinmodule.c:2495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2500,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Python/bltinmodule.c:2508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2513,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2514,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/bltinmodule.c:2515,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:2518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2525,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2529,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2530,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2531,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2532,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2533,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2537,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2542,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2545,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2546,1
    - Dst: PyFile_GetLine
      Src: /src/cpython/Python/bltinmodule.c:2548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2551,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2555,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2556,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2557,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 214
    argCount: 2
    argNames:
    - module
    - prompt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(po))
      pos:
        line_end: 2472
        line_start: 2472
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2559
      start: 2319
    functionDepth: 6
    functionLinenumber: 2319
    functionLinenumberEnd: 2559
    functionName: builtin_input_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - strlen
    - PyErr_SetString
    - PyBytes_Check
    - PySys_GetAttr
    - PyErr_CheckSignals
    - PyBytes_GET_SIZE
    - _PyFile_Flush
    - Py_CLEAR
    - PyMem_Free
    - PyLong_AsLong
    - PyErr_Occurred
    - isatty
    - PyErr_SetNone
    - PyUnicode_Check
    - PySys_Audit
    - PyErr_Clear
    - PyFile_GetLine
    - PyObject_Str
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyFile_WriteObject
    - PyBytes_AS_STRING
    - PyOS_Readline
    - PyObject_GetAttr
    - PyUnicode_AsEncodedString
    - PyUnicode_AsUTF8
    - PyUnicode_Decode
    - fileno
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_input_impl(PyObject *module, PyObject *prompt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/bltinmodule.c:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2573
    functionDepth: 3
    functionLinenumber: 2573
    functionLinenumberEnd: 2578
    functionName: builtin_repr
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_repr(PyObject *module, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Python/bltinmodule.c:2599,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2599,1
    - Dst: _PyObject_MaybeCallSpecialOneArg
      Src: /src/cpython/Python/bltinmodule.c:2602,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2602,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2605,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2606,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - number
    - ndigits
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2593
    functionDepth: 5
    functionLinenumber: 2593
    functionLinenumberEnd: 2611
    functionName: builtin_round_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _Py_ID
    - _PyObject_MaybeCallSpecialNoArgs
    - _PyObject_MaybeCallSpecialOneArg
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackStack
      Src: /src/cpython/Python/bltinmodule.c:2650,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/bltinmodule.c:2653,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2657,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2659,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2663,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/bltinmodule.c:2664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2670,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: 2662
        line_start: 2662
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2672
      start: 2643
    functionDepth: 3
    functionLinenumber: 2643
    functionLinenumberEnd: 2672
    functionName: builtin_sorted
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyArg_UnpackStack
    - _Py_ID
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - PySequence_List
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_sorted(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Python/bltinmodule.c:2682,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:2685,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:2686,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:2689,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:2690,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2692,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:2693,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2694,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2694,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:2698,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:2703,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2703,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2704,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2693
        line_start: 2693
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2709
      start: 2676
    functionDepth: 12
    functionLinenumber: 2676
    functionLinenumberEnd: 2709
    functionName: builtin_vars
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - assert
    - _PyEval_GetFrame
    - PyObject_GetOptionalAttr
    - _Py_ID
    - PyArg_UnpackTuple
    - PyErr_SetString
    - _PyThreadState_GET
    - _PyEval_GetGlobalsFromRunningMain
    - _PyErr_Occurred
    - _PyEval_GetFrameLocals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_vars(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2730
    functionDepth: 0
    functionLinenumber: 2730
    functionLinenumberEnd: 2734
    functionName: cs_from_double
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CompensatedSum
    signature: CompensatedSum cs_from_double(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/cpython/Python/bltinmodule.c:2740,1
    - Dst: fabs
      Src: /src/cpython/Python/bltinmodule.c:2740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - total
    - x
    argTypes:
    - CompensatedSum
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2736
    functionDepth: 0
    functionLinenumber: 2736
    functionLinenumberEnd: 2747
    functionName: cs_add
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: CompensatedSum
    signature: CompensatedSum cs_add(CompensatedSum total, double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Python/bltinmodule.c:2755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - total
    argTypes:
    - CompensatedSum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2749
    functionDepth: 0
    functionLinenumber: 2749
    functionLinenumberEnd: 2759
    functionName: cs_to_double
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - isfinite
    linkageType: ''
    returnType: double
    signature: double cs_to_double(CompensatedSum total)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:2782,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2789,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2797,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/bltinmodule.c:2800,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2803,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/bltinmodule.c:2806,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2809,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:2812,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2820,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/bltinmodule.c:2822,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:2825,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:2828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2830,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2831,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:2833,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2835,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/bltinmodule.c:2835,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bltinmodule.c:2839,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bltinmodule.c:2840,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/bltinmodule.c:2843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2850,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:2855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2858,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:2861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2866,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2872,1
    - Dst: cs_from_double
      Src: /src/cpython/Python/bltinmodule.c:2873,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bltinmodule.c:2873,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:2874,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:2876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2878,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2879,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bltinmodule.c:2881,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2881,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2883,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2884,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bltinmodule.c:2884,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Python/bltinmodule.c:2885,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/bltinmodule.c:2888,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Python/bltinmodule.c:2889,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2890,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2897,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bltinmodule.c:2901,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2901,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2904,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:2907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2912,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2918,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Python/bltinmodule.c:2919,1
    - Dst: cs_from_double
      Src: /src/cpython/Python/bltinmodule.c:2920,1
    - Dst: cs_from_double
      Src: /src/cpython/Python/bltinmodule.c:2921,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:2922,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:2924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2926,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2927,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Python/bltinmodule.c:2930,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2930,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2931,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2933,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Python/bltinmodule.c:2934,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2935,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2937,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/bltinmodule.c:2940,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Python/bltinmodule.c:2941,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2942,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2949,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Python/bltinmodule.c:2953,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bltinmodule.c:2954,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2955,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Python/bltinmodule.c:2956,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Python/bltinmodule.c:2959,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2959,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2963,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:2966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2971,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:2979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2982,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:2983,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:3000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3007,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 178
    argCount: 3
    argNames:
    - module
    - iterable
    - start
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 2775
    functionDepth: 5
    functionLinenumber: 2775
    functionLinenumberEnd: 3009
    functionName: builtin_sum_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - PyErr_SetString
    - _PyLong_IsCompact
    - PyComplex_FromDoubles
    - PyIter_Next
    - PyBytes_Check
    - Py_SETREF
    - PyLong_CheckExact
    - PyLong_FromLong
    - PyFloat_FromDouble
    - Py_INCREF
    - cs_to_double
    - PyErr_Occurred
    - PyComplex_CheckExact
    - cs_from_double
    - PyNumber_Add
    - PyUnicode_Check
    - cs_add
    - _PyLong_CompactValue
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyLong_Check
    - PyComplex_AsCComplex
    - PyBool_Check
    - PyFloat_AS_DOUBLE
    - _Py_DECREF_SPECIALIZED
    - PyFloat_Check
    - PyFloat_CheckExact
    - PyLong_FromSsize_t
    - PyByteArray_Check
    - PyLong_AsDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/bltinmodule.c:3033,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/bltinmodule.c:3036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - obj
    - class_or_tuple
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3026
    functionDepth: 7
    functionLinenumber: 3026
    functionLinenumberEnd: 3037
    functionName: builtin_isinstance_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - PyBool_FromLong
    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/cpython/Python/bltinmodule.c:3061,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/bltinmodule.c:3064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - cls
    - class_or_tuple
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3054
    functionDepth: 7
    functionLinenumber: 3054
    functionLinenumberEnd: 3065
    functionName: builtin_issubclass_impl
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3075
    functionDepth: 0
    functionLinenumber: 3075
    functionLinenumberEnd: 3076
    functionName: _zipobject_CAST
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _zipobject_CAST(op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:3088,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Python/bltinmodule.c:3093,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3095,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:3102,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/bltinmodule.c:3102,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:3103,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:3106,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3110,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:3111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3113,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3116,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:3120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3122,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3126,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:3126,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:3130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 3101
        line_start: 3101
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 3142
      start: 3077
    functionDepth: 3
    functionLinenumber: 3077
    functionLinenumberEnd: 3142
    functionName: zip_new
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyObject_GetIter
    - PyTuple_SET_ITEM
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3147,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bltinmodule.c:3148,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:3149,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:3150,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3144
    functionDepth: 1
    functionLinenumber: 3144
    functionLinenumberEnd: 3152
    functionName: zip_dealloc
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - PyObject_GC_UnTrack
    - _zipobject_CAST
    linkageType: ''
    returnType: void
    signature: void zip_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3157,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:3158,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:3159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3154
    functionDepth: 1
    functionLinenumber: 3154
    functionLinenumberEnd: 3161
    functionName: zip_traverse
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _zipobject_CAST
    linkageType: ''
    returnType: int
    signature: int zip_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3166,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/bltinmodule.c:3178,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:3179,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3181,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3184,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3190,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3192,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Python/bltinmodule.c:3196,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:3198,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3202,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3205,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3211,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:3216,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:3217,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:3221,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:3227,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3232,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3235,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:3237,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:3241,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:3242,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:3246,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3163
    functionDepth: 3
    functionLinenumber: 3163
    functionLinenumberEnd: 3252
    functionName: zip_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_New
    - Py_DECREF
    - _PyTuple_Recycle
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyErr_ExceptionMatches
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyObject_IsUniquelyReferenced
    - PyErr_Clear
    - Py_TYPE
    - _zipobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_next(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3257,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/bltinmodule.c:3260,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3260,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/bltinmodule.c:3262,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3254
    functionDepth: 3
    functionLinenumber: 3254
    functionLinenumberEnd: 3263
    functionName: zip_reduce
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - Py_TYPE
    - _zipobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:3268,1
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3265
    functionDepth: 2
    functionLinenumber: 3265
    functionLinenumberEnd: 3275
    functionName: zip_setstate
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _zipobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_setstate(PyObject *self, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/bltinmodule.c:3422,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Python/bltinmodule.c:3424,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Python/bltinmodule.c:3428,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/bltinmodule.c:3430,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3449,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3450,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3451,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3452,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3453,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3454,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3455,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3456,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3457,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3458,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3459,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3460,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3461,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3462,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3463,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3464,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3465,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3466,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3467,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3468,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3469,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3470,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3471,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3472,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3473,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3474,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3475,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3476,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3477,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3478,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3479,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/bltinmodule.c:3480,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/bltinmodule.c:3481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3490
      start: 3417
    functionDepth: 14
    functionLinenumber: 3417
    functionLinenumberEnd: 3490
    functionName: _PyBuiltin_Init
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnstable_Module_SetGIL
    - _PyInterpreterState_GetConfig
    - _PyModule_CreateInitialized
    - PyModule_GetDict
    - PyDict_SetItemString
    - SETBUILTIN
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBuiltin_Init(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBJECT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3439
    functionDepth: 0
    functionLinenumber: 3439
    functionLinenumberEnd: 3440
    functionName: ADD_TO_ALL
    functionSourceFile: /src/cpython/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: 3442
      start: 3441
    functionDepth: 0
    functionLinenumber: 3441
    functionLinenumberEnd: 3442
    functionName: ADD_TO_ALL
    functionSourceFile: /src/cpython/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: 3448
      start: 3444
    functionDepth: 0
    functionLinenumber: 3444
    functionLinenumberEnd: 3448
    functionName: SETBUILTIN
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBUILTIN(NAME, OBJECT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/formatter_unicode.c:20,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/formatter_unicode.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - presentation_type
    - type_name
    argTypes:
    - Py_UCS4
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 31
    functionName: unknown_presentation_type
    functionSourceFile: /src/cpython/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/cpython/Python/formatter_unicode.c:36,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/formatter_unicode.c:38,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/formatter_unicode.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - specifier
    - presentation_type
    argTypes:
    - char
    - Py_UCS4
    assertStmts:
    - condition: (specifier == ',' || specifier == '_')
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: invalid_thousands_separator_type
    functionSourceFile: /src/cpython/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/cpython/Python/formatter_unicode.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: invalid_comma_and_underscore
    functionSourceFile: /src/cpython/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/cpython/Python/formatter_unicode.c:66,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/formatter_unicode.c:67,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Python/formatter_unicode.c:71,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/formatter_unicode.c:71,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/formatter_unicode.c:81,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: 91
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 91
    functionName: get_integer
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - Py_UNICODE_TODECIMAL
    - PyUnicode_READ
    - PyErr_Format
    - PyUnicode_DATA
    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: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: is_alignment_token
    functionSourceFile: /src/cpython/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: 119
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: is_sign_element
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void is_sign_element(Py_UCS4 c)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/formatter_unicode.c:159,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/formatter_unicode.c:160,1
    - Dst: is_alignment_token
      Src: /src/cpython/Python/formatter_unicode.c:182,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:182,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:183,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:184,1
    - Dst: is_alignment_token
      Src: /src/cpython/Python/formatter_unicode.c:189,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:189,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:190,1
    - Dst: is_sign_element
      Src: /src/cpython/Python/formatter_unicode.c:196,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:196,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:197,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:203,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:210,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:216,1
    - Dst: get_integer
      Src: /src/cpython/Python/formatter_unicode.c:224,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:237,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:242,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Python/formatter_unicode.c:244,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:250,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Python/formatter_unicode.c:252,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:258,1
    - Dst: get_integer
      Src: /src/cpython/Python/formatter_unicode.c:261,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:266,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:274,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Python/formatter_unicode.c:276,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:286,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Python/formatter_unicode.c:288,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/formatter_unicode.c:296,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Python/formatter_unicode.c:310,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/formatter_unicode.c:314,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/formatter_unicode.c:316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/formatter_unicode.c:317,1
    - Dst: READ_spec
      Src: /src/cpython/Python/formatter_unicode.c:323,1
    - Dst: invalid_thousands_separator_type
      Src: /src/cpython/Python/formatter_unicode.c:356,1
    - Dst: invalid_thousands_separator_type
      Src: /src/cpython/Python/formatter_unicode.c:364,1
    - Dst: assert
      Src: /src/cpython/Python/formatter_unicode.c:369,1
    - Dst: assert
      Src: /src/cpython/Python/formatter_unicode.c:370,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 145
    argCount: 7
    argNames:
    - obj
    - format_spec
    - start
    - end
    - format
    - default_type
    - default_align
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - InternalFormatSpec*
    - char
    - char
    assertStmts:
    - condition: (format->align <= 127)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Python/formatter_unicode.c
    - condition: (format->sign <= 127)
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/cpython/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 372
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 372
    functionName: parse_internal_render_format_spec
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - invalid_thousands_separator_type
    - Py_DECREF
    - PyUnicode_FromKindAndData
    - READ_spec
    - is_sign_element
    - invalid_comma_and_underscore
    - is_alignment_token
    - PyErr_Format
    - PyUnicode_DATA
    - Py_TYPE
    - assert
    - get_integer
    linkageType: ''
    returnType: int
    signature: "int parse_internal_render_format_spec(PyObject *obj,\n                                  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: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: READ_spec
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_spec(index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/formatter_unicode.c:401,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: 405
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 405
    functionName: calc_padding
    functionSourceFile: /src/cpython/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/cpython/Python/formatter_unicode.c:420,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Python/formatter_unicode.c:426,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: 432
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 432
    functionName: fill_padding
    functionSourceFile: /src/cpython/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/cpython/Python/formatter_unicode.c:493,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/formatter_unicode.c:494,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/formatter_unicode.c:496,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/formatter_unicode.c:496,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/formatter_unicode.c:502,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Python/formatter_unicode.c:510,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/formatter_unicode.c:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - s
    - pos
    - end
    - n_remainder
    - n_frac
    - has_decimal
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 516
    functionName: parse_number
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - 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, Py_ssize_t *n_frac, int *has_decimal)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/formatter_unicode.c:536,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Python/formatter_unicode.c:587,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:595,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Python/formatter_unicode.c:617,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:625,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/formatter_unicode.c:653,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:658,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:661,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Python/formatter_unicode.c:661,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 11
    argNames:
    - spec
    - n_prefix
    - sign_char
    - n_start
    - n_end
    - n_remainder
    - n_frac
    - has_decimal
    - locale
    - format
    - maxchar
    argTypes:
    - NumberFieldWidths*
    - Py_ssize_t
    - Py_UCS4
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - int
    - LocaleInfo*
    - InternalFormatSpec*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 666
    functionName: calc_number_widths
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - _PyUnicode_InsertThousandsGrouping
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_GET_LENGTH
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t calc_number_widths(NumberFieldWidths *spec, Py_ssize_t
      n_prefix,\n                   Py_UCS4 sign_char, Py_ssize_t n_start,\n                   Py_ssize_t
      n_end, Py_ssize_t n_remainder, Py_ssize_t n_frac,\n                   int has_decimal,
      const LocaleInfo *locale,\n                   const InternalFormatSpec *format,
      Py_UCS4 *maxchar)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Python/formatter_unicode.c:685,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Python/formatter_unicode.c:690,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Python/formatter_unicode.c:694,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/formatter_unicode.c:700,1
    - Dst: Py_TOUPPER
      Src: /src/cpython/Python/formatter_unicode.c:701,1
    - Dst: assert
      Src: /src/cpython/Python/formatter_unicode.c:702,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Python/formatter_unicode.c:703,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Python/formatter_unicode.c:709,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Python/formatter_unicode.c:717,1
    - Dst: assert
      Src: /src/cpython/Python/formatter_unicode.c:724,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/formatter_unicode.c:730,1
    - Dst: Py_TOUPPER
      Src: /src/cpython/Python/formatter_unicode.c:731,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:733,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Python/formatter_unicode.c:736,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Python/formatter_unicode.c:742,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Python/formatter_unicode.c:750,1
    - Dst: assert
      Src: /src/cpython/Python/formatter_unicode.c:757,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Python/formatter_unicode.c:763,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Python/formatter_unicode.c:771,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 9
    argNames:
    - writer
    - spec
    - digits
    - d_start
    - prefix
    - p_start
    - fill_char
    - locale
    - toupper
    argTypes:
    - _PyUnicodeWriter*
    - NumberFieldWidths*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    - LocaleInfo*
    - int
    assertStmts:
    - condition: (c <= 127)
      pos:
        line_end: 701
        line_start: 701
        source_file: /src/cpython/Python/formatter_unicode.c
    - condition: (r == spec->n_grouped_digits)
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/cpython/Python/formatter_unicode.c
    - condition: (r == spec->n_grouped_frac_digits)
      pos:
        line_end: 756
        line_start: 756
        source_file: /src/cpython/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 777
      start: 671
    functionDepth: 4
    functionLinenumber: 671
    functionLinenumberEnd: 777
    functionName: fill_number
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - _PyUnicode_InsertThousandsGrouping
    - PyErr_SetString
    - PyUnicode_READ
    - PyUnicode_WRITE
    - Py_TOUPPER
    - _PyUnicode_FastFill
    - assert
    linkageType: ''
    returnType: int
    signature: "int fill_number(_PyUnicodeWriter *writer, const NumberFieldWidths
      *spec,\n            PyObject *digits, Py_ssize_t d_start,\n            PyObject
      *prefix, Py_ssize_t p_start,\n            Py_UCS4 fill_char,\n            LocaleInfo
      *locale, int toupper)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/cpython/Python/formatter_unicode.c:791,1
    - Dst: _Py_GetLocaleconvNumeric
      Src: /src/cpython/Python/formatter_unicode.c:792,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Python/formatter_unicode.c:801,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/formatter_unicode.c:803,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/formatter_unicode.c:812,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/formatter_unicode.c:813,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/formatter_unicode.c:825,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/formatter_unicode.c:826,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/formatter_unicode.c:833,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/formatter_unicode.c:843,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - type
    - frac_type
    - locale_info
    argTypes:
    - enum LocaleType
    - enum LocaleType
    - LocaleInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 785
    functionDepth: 6
    functionLinenumber: 785
    functionLinenumberEnd: 846
    functionName: get_locale_info
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - _Py_GetLocaleconvNumeric
    - PyUnicode_FromOrdinal
    - Py_GetConstant
    - localeconv
    - _PyMem_Strdup
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: "int get_locale_info(enum LocaleType type, enum LocaleType frac_type,\n
      \               LocaleInfo *locale_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:851,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:852,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:853,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/formatter_unicode.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - locale_info
    argTypes:
    - LocaleInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 848
    functionDepth: 2
    functionLinenumber: 848
    functionLinenumberEnd: 855
    functionName: free_locale_info
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_locale_info(LocaleInfo *locale_info)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/formatter_unicode.c:872,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:877,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:881,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:889,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:897,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:905,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/formatter_unicode.c:914,1
    - Dst: calc_padding
      Src: /src/cpython/Python/formatter_unicode.c:923,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:927,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Python/formatter_unicode.c:928,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Python/formatter_unicode.c:929,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:930,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Python/formatter_unicode.c:934,1
    - Dst: fill_padding
      Src: /src/cpython/Python/formatter_unicode.c:938,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Python/formatter_unicode.c:944,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 861
    functionDepth: 8
    functionLinenumber: 861
    functionLinenumberEnd: 952
    functionName: format_string_internal
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - _PyUnicode_FastCopyCharacters
    - fill_padding
    - PyErr_SetString
    - calc_padding
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_FindMaxChar
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Prepare
    linkageType: ''
    returnType: int
    signature: "int format_string_internal(PyObject *value, const InternalFormatSpec
      *format,\n                       _PyUnicodeWriter *writer)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:984,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:990,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:1000,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:1007,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/formatter_unicode.c:1015,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/formatter_unicode.c:1016,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:1019,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/formatter_unicode.c:1023,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:1026,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/formatter_unicode.c:1068,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Python/formatter_unicode.c:1071,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Python/formatter_unicode.c:1080,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/formatter_unicode.c:1085,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/formatter_unicode.c:1091,1
    - Dst: get_locale_info
      Src: /src/cpython/Python/formatter_unicode.c:1103,1
    - Dst: calc_number_widths
      Src: /src/cpython/Python/formatter_unicode.c:1109,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Python/formatter_unicode.c:1117,1
    - Dst: fill_number
      Src: /src/cpython/Python/formatter_unicode.c:1121,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:1127,1
    - Dst: free_locale_info
      Src: /src/cpython/Python/formatter_unicode.c:1128,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 94
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 959
    functionDepth: 11
    functionLinenumber: 959
    functionLinenumberEnd: 1130
    functionName: format_long_internal
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - Py_XDECREF
    - free_locale_info
    - Py_MAX
    - get_locale_info
    - calc_number_widths
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyLong_FormatWriter
    - PyErr_SetString
    - PyLong_CheckExact
    - _PyLong_Format
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_Prepare
    - fill_number
    linkageType: ''
    returnType: int
    signature: "int format_long_internal(PyObject *value, const InternalFormatSpec
      *format,\n                     _PyUnicodeWriter *writer)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:1166,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/formatter_unicode.c:1190,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/formatter_unicode.c:1191,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Python/formatter_unicode.c:1208,1
    - Dst: strlen
      Src: /src/cpython/Python/formatter_unicode.c:1212,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Python/formatter_unicode.c:1229,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/formatter_unicode.c:1230,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Python/formatter_unicode.c:1236,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/formatter_unicode.c:1237,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/formatter_unicode.c:1244,1
    - Dst: parse_number
      Src: /src/cpython/Python/formatter_unicode.c:1252,1
    - Dst: get_locale_info
      Src: /src/cpython/Python/formatter_unicode.c:1256,1
    - Dst: calc_number_widths
      Src: /src/cpython/Python/formatter_unicode.c:1263,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Python/formatter_unicode.c:1271,1
    - Dst: fill_number
      Src: /src/cpython/Python/formatter_unicode.c:1275,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:1281,1
    - Dst: free_locale_info
      Src: /src/cpython/Python/formatter_unicode.c:1282,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1137
    functionDepth: 7
    functionLinenumber: 1137
    functionLinenumberEnd: 1284
    functionName: format_float_internal
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - free_locale_info
    - Py_XDECREF
    - PyFloat_AsDouble
    - get_locale_info
    - calc_number_widths
    - strlen
    - PyErr_Occurred
    - _PyUnicodeWriter_WriteASCIIString
    - PyErr_SetString
    - _PyUnicodeWriter_Prepare
    - parse_number
    - PyUnicode_READ_CHAR
    - _PyUnicode_FromASCII
    - PyMem_Free
    - PyOS_double_to_string
    - fill_number
    linkageType: ''
    returnType: int
    signature: "int format_float_internal(PyObject *value,\n                      const
      InternalFormatSpec *format,\n                      _PyUnicodeWriter *writer)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:1339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:1346,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/formatter_unicode.c:1354,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/cpython/Python/formatter_unicode.c:1360,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/formatter_unicode.c:1361,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/cpython/Python/formatter_unicode.c:1363,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/formatter_unicode.c:1364,1
    - Dst: copysign
      Src: /src/cpython/Python/formatter_unicode.c:1376,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Python/formatter_unicode.c:1395,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Python/formatter_unicode.c:1399,1
    - Dst: strlen
      Src: /src/cpython/Python/formatter_unicode.c:1404,1
    - Dst: strlen
      Src: /src/cpython/Python/formatter_unicode.c:1405,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Python/formatter_unicode.c:1409,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Python/formatter_unicode.c:1414,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/formatter_unicode.c:1421,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/formatter_unicode.c:1426,1
    - Dst: parse_number
      Src: /src/cpython/Python/formatter_unicode.c:1434,1
    - Dst: parse_number
      Src: /src/cpython/Python/formatter_unicode.c:1436,1
    - Dst: get_locale_info
      Src: /src/cpython/Python/formatter_unicode.c:1440,1
    - Dst: calc_number_widths
      Src: /src/cpython/Python/formatter_unicode.c:1453,1
    - Dst: calc_number_widths
      Src: /src/cpython/Python/formatter_unicode.c:1466,1
    - Dst: calc_padding
      Src: /src/cpython/Python/formatter_unicode.c:1478,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/formatter_unicode.c:1482,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Python/formatter_unicode.c:1484,1
    - Dst: fill_padding
      Src: /src/cpython/Python/formatter_unicode.c:1490,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Python/formatter_unicode.c:1497,1
    - Dst: fill_number
      Src: /src/cpython/Python/formatter_unicode.c:1502,1
    - Dst: fill_number
      Src: /src/cpython/Python/formatter_unicode.c:1510,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Python/formatter_unicode.c:1517,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Python/formatter_unicode.c:1521,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/formatter_unicode.c:1528,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/formatter_unicode.c:1529,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:1530,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:1531,1
    - Dst: free_locale_info
      Src: /src/cpython/Python/formatter_unicode.c:1532,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 135
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1290
    functionDepth: 7
    functionLinenumber: 1290
    functionLinenumberEnd: 1534
    functionName: format_complex_internal
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_MAX
    - strlen
    - PyErr_SetString
    - PyComplex_ImagAsDouble
    - _PyUnicode_FromASCII
    - PyMem_Free
    - PyOS_double_to_string
    - PyErr_Occurred
    - parse_number
    - PyUnicode_READ_CHAR
    - _PyUnicodeWriter_Prepare
    - free_locale_info
    - get_locale_info
    - calc_number_widths
    - fill_padding
    - calc_padding
    - copysign
    - PyUnicode_WRITE
    - PyComplex_RealAsDouble
    - fill_number
    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/cpython/Python/formatter_unicode.c:1545,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/formatter_unicode.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/formatter_unicode.c:1549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - writer
    argTypes:
    - PyObject*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1539
    functionDepth: 8
    functionLinenumber: 1539
    functionLinenumberEnd: 1551
    functionName: format_obj
    functionSourceFile: /src/cpython/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/cpython/Python/formatter_unicode.c:1561,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/formatter_unicode.c:1561,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/formatter_unicode.c:1566,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/formatter_unicode.c:1567,1
    - Dst: format_obj
      Src: /src/cpython/Python/formatter_unicode.c:1569,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Python/formatter_unicode.c:1573,1
    - Dst: format_string_internal
      Src: /src/cpython/Python/formatter_unicode.c:1581,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Python/formatter_unicode.c:1584,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/formatter_unicode.c:1584,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: 1560
        line_start: 1560
        source_file: /src/cpython/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 1587
      start: 1553
    functionDepth: 9
    functionLinenumber: 1553
    functionLinenumberEnd: 1587
    functionName: _PyUnicode_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CheckExact
    - format_obj
    - format_string_internal
    - parse_internal_render_format_spec
    - Py_TYPE
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_Check
    - unknown_presentation_type
    - assert
    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/cpython/Python/formatter_unicode.c:1602,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Python/formatter_unicode.c:1603,1
    - Dst: format_obj
      Src: /src/cpython/Python/formatter_unicode.c:1605,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Python/formatter_unicode.c:1609,1
    - Dst: format_long_internal
      Src: /src/cpython/Python/formatter_unicode.c:1623,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Python/formatter_unicode.c:1634,1
    - Dst: format_float_internal
      Src: /src/cpython/Python/formatter_unicode.c:1637,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Python/formatter_unicode.c:1642,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/formatter_unicode.c:1642,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/formatter_unicode.c:1647,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 5
    argNames:
    - writer
    - obj
    - format_spec
    - start
    - end
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1589
    functionDepth: 12
    functionLinenumber: 1589
    functionLinenumberEnd: 1649
    functionName: _PyLong_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyNumber_Float
    - _PyLong_FormatWriter
    - format_long_internal
    - format_obj
    - format_float_internal
    - parse_internal_render_format_spec
    - PyLong_CheckExact
    - unknown_presentation_type
    - Py_TYPE
    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/cpython/Python/formatter_unicode.c:1662,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Python/formatter_unicode.c:1665,1
    - Dst: format_float_internal
      Src: /src/cpython/Python/formatter_unicode.c:1681,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Python/formatter_unicode.c:1685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/formatter_unicode.c:1685,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: 1688
      start: 1651
    functionDepth: 8
    functionLinenumber: 1651
    functionLinenumberEnd: 1688
    functionName: _PyFloat_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - format_float_internal
    - format_obj
    - parse_internal_render_format_spec
    - unknown_presentation_type
    - Py_TYPE
    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/cpython/Python/formatter_unicode.c:1701,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Python/formatter_unicode.c:1704,1
    - Dst: format_complex_internal
      Src: /src/cpython/Python/formatter_unicode.c:1719,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Python/formatter_unicode.c:1723,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/formatter_unicode.c:1723,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: 1726
      start: 1690
    functionDepth: 8
    functionLinenumber: 1690
    functionLinenumberEnd: 1726
    functionName: _PyComplex_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - format_obj
    - parse_internal_render_format_spec
    - unknown_presentation_type
    - format_complex_internal
    - Py_TYPE
    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: PyDict_GetItemStringRef
      Src: /src/cpython/Python/config_common.h:6,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dict
    - name
    - p_item
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 2
    functionDepth: 9
    functionLinenumber: 2
    functionLinenumberEnd: 15
    functionName: _config_dict_get
    functionSourceFile: /src/cpython/Python/config_common.h
    functionUses: 0
    functionsReached:
    - PyDict_GetItemStringRef
    linkageType: ''
    returnType: int
    signature: int _config_dict_get(PyObject *dict, const char *name, PyObject **p_item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _config_dict_get
      Src: /src/cpython/Python/config_common.h:22,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/config_common.h:23,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/config_common.h:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dict
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 10
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: config_dict_get
    functionSourceFile: /src/cpython/Python/config_common.h
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _config_dict_get
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      config_dict_get(PyObject *dict, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/config_common.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: config_dict_invalid_type
    functionSourceFile: /src/cpython/Python/config_common.h
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void config_dict_invalid_type(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/interpconfig.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 27
    functionName: gil_flag_to_str
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: char
    signature: 'char *

      gil_flag_to_str(int flag)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/interpconfig.c:36,1
    - Dst: strcmp
      Src: /src/cpython/Python/interpconfig.c:39,1
    - Dst: strcmp
      Src: /src/cpython/Python/interpconfig.c:42,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/interpconfig.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - str
    - p_flag
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 52
    functionName: gil_flag_from_str
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int gil_flag_from_str(const char *str, int *p_flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/interpconfig.c:57,1
    - Dst: ADD_BOOL
      Src: /src/cpython/Python/interpconfig.c:84,1
    - Dst: ADD_BOOL
      Src: /src/cpython/Python/interpconfig.c:85,1
    - Dst: ADD_BOOL
      Src: /src/cpython/Python/interpconfig.c:86,1
    - Dst: ADD_BOOL
      Src: /src/cpython/Python/interpconfig.c:87,1
    - Dst: ADD_BOOL
      Src: /src/cpython/Python/interpconfig.c:88,1
    - Dst: ADD_BOOL
      Src: /src/cpython/Python/interpconfig.c:89,1
    - Dst: ADD_STR
      Src: /src/cpython/Python/interpconfig.c:91,1
    - Dst: gil_flag_to_str
      Src: /src/cpython/Python/interpconfig.c:91,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/interpconfig.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyInterpreterConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 54
    functionDepth: 10
    functionLinenumber: 54
    functionLinenumberEnd: 102
    functionName: _PyInterpreterConfig_AsDict
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 2
    functionsReached:
    - gil_flag_to_str
    - ADD_BOOL
    - Py_DECREF
    - PyDict_New
    - ADD_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInterpreterConfig_AsDict(PyInterpreterConfig *config)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - OBJ
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: ADD
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD(NAME, OBJ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: ADD_BOOL
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_BOOL(FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FIELD
    - ','
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: ADD_STR
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_STR(FIELD, STR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _config_dict_get
      Src: /src/cpython/Python/interpconfig.c:108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/interpconfig.c:114,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/interpconfig.c:115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/interpconfig.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - dict
    - name
    - p_flag
    argTypes:
    - PyObject*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 10
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: _config_dict_get_bool
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 0
    functionsReached:
    - config_dict_invalid_type
    - _config_dict_get
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _config_dict_get_bool(PyObject *dict, const char *name, int *p_flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _config_dict_get
      Src: /src/cpython/Python/interpconfig.c:128,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/interpconfig.c:131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/interpconfig.c:132,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/interpconfig.c:133,1
    - Dst: strncpy
      Src: /src/cpython/Python/interpconfig.c:136,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/interpconfig.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/interpconfig.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - dict
    - name
    - buf
    - bufsize
    argTypes:
    - PyObject*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 10
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: _config_dict_copy_str
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strncpy
    - _config_dict_get
    - PyUnicode_AsUTF8
    - PyUnicode_Check
    - config_dict_invalid_type
    linkageType: ''
    returnType: int
    signature: "int _config_dict_copy_str(PyObject *dict, const char *name,\n                      char
      *buf, size_t bufsize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/interpconfig.c:146,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/interpconfig.c:150,1
    - Dst: COPY_BOOL
      Src: /src/cpython/Python/interpconfig.c:179,1
    - Dst: COPY_BOOL
      Src: /src/cpython/Python/interpconfig.c:180,1
    - Dst: COPY_BOOL
      Src: /src/cpython/Python/interpconfig.c:181,1
    - Dst: COPY_BOOL
      Src: /src/cpython/Python/interpconfig.c:182,1
    - Dst: COPY_BOOL
      Src: /src/cpython/Python/interpconfig.c:183,1
    - Dst: COPY_BOOL
      Src: /src/cpython/Python/interpconfig.c:184,1
    - Dst: _config_dict_copy_str
      Src: /src/cpython/Python/interpconfig.c:188,1
    - Dst: CHECK
      Src: /src/cpython/Python/interpconfig.c:189,1
    - Dst: gil_flag_from_str
      Src: /src/cpython/Python/interpconfig.c:193,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Python/interpconfig.c:197,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/interpconfig.c:203,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/interpconfig.c:205,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/interpconfig.c:210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/interpconfig.c:215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/interpconfig.c:219,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - origdict
    - config
    - missing_allowed
    argTypes:
    - PyObject*
    - PyInterpreterConfig*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 221
    functionName: interp_config_from_dict
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 0
    functionsReached:
    - COPY_BOOL
    - CHECK
    - gil_flag_from_str
    - PyDict_GET_SIZE
    - Py_DECREF
    - _config_dict_copy_str
    - PyDict_PopString
    - PyDict_New
    - PyErr_Format
    - PyDict_Update
    linkageType: ''
    returnType: int
    signature: "int interp_config_from_dict(PyObject *origdict, PyInterpreterConfig
      *config,\n                        bool missing_allowed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: CHECK
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: COPY_BOOL
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_BOOL(FIELD)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/interpconfig.c:226,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/interpconfig.c:227,1
    - Dst: interp_config_from_dict
      Src: /src/cpython/Python/interpconfig.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - config
    - dict
    argTypes:
    - PyInterpreterConfig*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 12
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: _PyInterpreterConfig_InitFromDict
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 2
    functionsReached:
    - PyDict_Check
    - PyErr_SetString
    - interp_config_from_dict
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterConfig_InitFromDict(PyInterpreterConfig *config,
      PyObject *dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/interpconfig.c:239,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/interpconfig.c:240,1
    - Dst: interp_config_from_dict
      Src: /src/cpython/Python/interpconfig.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - config
    - dict
    argTypes:
    - PyInterpreterConfig*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 12
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: _PyInterpreterConfig_UpdateFromDict
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 1
    functionsReached:
    - PyDict_Check
    - PyErr_SetString
    - interp_config_from_dict
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterConfig_UpdateFromDict(PyInterpreterConfig *config,
      PyObject *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLAG
      Src: /src/cpython/Python/interpconfig.c:255,1
    - Dst: FLAG
      Src: /src/cpython/Python/interpconfig.c:257,1
    - Dst: FLAG
      Src: /src/cpython/Python/interpconfig.c:258,1
    - Dst: FLAG
      Src: /src/cpython/Python/interpconfig.c:259,1
    - Dst: FLAG
      Src: /src/cpython/Python/interpconfig.c:260,1
    - Dst: FLAG
      Src: /src/cpython/Python/interpconfig.c:261,1
    - Dst: FLAG
      Src: /src/cpython/Python/interpconfig.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - config
    - interp
    argTypes:
    - PyInterpreterConfig*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 269
    functionName: _PyInterpreterConfig_InitFromState
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 1
    functionsReached:
    - FLAG
    linkageType: ''
    returnType: int
    signature: "int _PyInterpreterConfig_InitFromState(PyInterpreterConfig *config,\n
      \                                  PyInterpreterState *interp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: _PyPathConfig_GetGlobalModuleSearchPath
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _PyPathConfig_GetGlobalModuleSearchPath(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:63,1
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:64,1
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:65,1
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:66,1
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:67,1
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:68,1
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:69,1
    - Dst: CLEAR
      Src: /src/cpython/Python/pathconfig.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: _PyPathConfig_ClearGlobal
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 2
    functionsReached:
    - CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyPathConfig_ClearGlobal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: CLEAR
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 515
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pathconfig.c:79,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:105,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:106,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:107,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:108,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:109,1
    - Dst: COPY2
      Src: /src/cpython/Python/pathconfig.c:110,1
    - Dst: COPY_INT
      Src: /src/cpython/Python/pathconfig.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 119
    functionName: _PyPathConfig_ReadGlobal
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - COPY
    - _PyStatus_OK
    - COPY2
    - COPY_INT
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPathConfig_ReadGlobal(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: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: COPY
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - SRCATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: COPY2
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY2(ATTR, SRCATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: COPY_INT
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_INT(ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:149,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:150,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:151,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:152,1
    - Dst: COPY
      Src: /src/cpython/Python/pathconfig.c:153,1
    - Dst: COPY2
      Src: /src/cpython/Python/pathconfig.c:154,1
    - Dst: COPY_INT
      Src: /src/cpython/Python/pathconfig.c:155,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:160,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:162,1
    - Dst: wcslen
      Src: /src/cpython/Python/pathconfig.c:168,1
    - Dst: _PyMem_DefaultRawMalloc
      Src: /src/cpython/Python/pathconfig.c:171,1
    - Dst: wcscpy
      Src: /src/cpython/Python/pathconfig.c:177,1
    - Dst: wcschr
      Src: /src/cpython/Python/pathconfig.c:178,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pathconfig.c:189,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/pathconfig.c:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 193
    functionName: _PyPathConfig_UpdateGlobal
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _PyMem_DefaultRawMalloc
    - COPY2
    - COPY
    - wcslen
    - _PyMem_DefaultRawFree
    - wcschr
    - wcscpy
    - COPY_INT
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPathConfig_UpdateGlobal(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: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: COPY
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - SRCATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: COPY2
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY2(ATTR, SRCATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: COPY_INT
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_INT(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::_Py_FatalErrorFunc
      Src: /src/cpython/Python/pathconfig.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: _Py_NO_RETURN::path_out_of_memory
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - _Py_NO_RETURN::_Py_FatalErrorFunc
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      path_out_of_memory(const char *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPathConfig_ClearGlobal
      Src: /src/cpython/Python/pathconfig.c:207,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:211,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:212,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:213,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:214,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:215,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/pathconfig.c:217,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/pathconfig.c:218,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/pathconfig.c:221,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/pathconfig.c:224,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/pathconfig.c:226,1
    - Dst: path_out_of_memory
      Src: /src/cpython/Python/pathconfig.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 236
    functionName: Py_SetPath
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawWcsdup
    - path_out_of_memory
    - _PyMem_DefaultRawFree
    - _PyPathConfig_ClearGlobal
    linkageType: ''
    returnType: void
    signature: void Py_SetPath(const wchar_t *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:244,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/pathconfig.c:248,1
    - Dst: path_out_of_memory
      Src: /src/cpython/Python/pathconfig.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - home
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: Py_SetPythonHome
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawWcsdup
    - path_out_of_memory
    - _PyMem_DefaultRawFree
    linkageType: ''
    returnType: void
    signature: void Py_SetPythonHome(const wchar_t *home)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/pathconfig.c:262,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/pathconfig.c:266,1
    - Dst: path_out_of_memory
      Src: /src/cpython/Python/pathconfig.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: Py_SetProgramName
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - _PyMem_DefaultRawWcsdup
    - path_out_of_memory
    - _PyMem_DefaultRawFree
    linkageType: ''
    returnType: void
    signature: void Py_SetProgramName(const wchar_t *program_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: Py_GetPath
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetPath(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: _Py_GetStdlibDir
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_GetStdlibDir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Py_GetPrefix
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetPrefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Py_GetExecPrefix
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetExecPrefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: Py_GetProgramFullPath
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetProgramFullPath(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: Py_GetPythonHome
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetPythonHome(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: Py_GetProgramName
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetProgramName(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pathconfig.c:354,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/pathconfig.c:354,1
    - Dst: wcscmp
      Src: /src/cpython/Python/pathconfig.c:362,1
    - Dst: wcscmp
      Src: /src/cpython/Python/pathconfig.c:363,1
    - Dst: _Py_wgetcwd
      Src: /src/cpython/Python/pathconfig.c:376,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/pathconfig.c:376,1
    - Dst: wcslen
      Src: /src/cpython/Python/pathconfig.c:383,1
    - Dst: _Py_wreadlink
      Src: /src/cpython/Python/pathconfig.c:392,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/pathconfig.c:392,1
    - Dst: wcschr
      Src: /src/cpython/Python/pathconfig.c:400,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/pathconfig.c:405,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/pathconfig.c:412,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/pathconfig.c:413,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/pathconfig.c:414,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Python/pathconfig.c:431,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/pathconfig.c:432,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/pathconfig.c:438,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/pathconfig.c:440,1
    - Dst: _Py_wrealpath
      Src: /src/cpython/Python/pathconfig.c:453,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/pathconfig.c:453,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/pathconfig.c:457,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/pathconfig.c:470,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 2
    argNames:
    - argv
    - path0_p
    argTypes:
    - PyWideStringList*
    - PyObject**
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(argv))
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Python/pathconfig.c
    constantsTouched: []
    func_position:
      end: 477
      start: 351
    functionDepth: 7
    functionLinenumber: 351
    functionLinenumberEnd: 477
    functionName: _PyPathConfig_ComputeSysPath0
    functionSourceFile: /src/cpython/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - _Py_wrealpath
    - wcsrchr
    - wcscmp
    - _Py_wgetcwd
    - wcsncpy
    - GetFullPathNameW
    - _Py_wreadlink
    - wcslen
    - PyUnicode_FromWideChar
    - wcschr
    - Py_ARRAY_LENGTH
    - _PyWideStringList_CheckConsistency
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyPathConfig_ComputeSysPath0(const PyWideStringList *argv, PyObject
      **path0_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/opcode_targets.h:498,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/opcode_targets.h:500,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Python/opcode_targets.h:501,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/opcode_targets.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: _TAIL_CALL_UNKNOWN_OPCODE
    functionSourceFile: /src/cpython/Python/opcode_targets.h
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyUnstable_InterpreterFrame_GetLine
    - JUMP_TO_LABEL
    - _PyFrame_GetCode
    linkageType: ''
    returnType: Py_PRESERVE_NONE_CC
    signature: Py_PRESERVE_NONE_CC *_TAIL_CALL_UNKNOWN_OPCODE(TAIL_CALL_PARAMS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_POP_MEM
      Src: /src/cpython/Python/object_stack.c:14,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/object_stack.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 27
    functionName: _PyObjectStackChunk_New
    functionSourceFile: /src/cpython/Python/object_stack.c
    functionUses: 0
    functionsReached:
    - _Py_FREELIST_POP_MEM
    - PyMem_RawMalloc
    linkageType: ''
    returnType: _PyObjectStackChunk
    signature: '_PyObjectStackChunk *

      _PyObjectStackChunk_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/object_stack.c:32,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Python/object_stack.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - _PyObjectStackChunk*
    assertStmts:
    - condition: (buf->n == 0)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/cpython/Python/object_stack.c
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: _PyObjectStackChunk_Free
    functionSourceFile: /src/cpython/Python/object_stack.c
    functionUses: 0
    functionsReached:
    - _Py_FREELIST_FREE
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyObjectStackChunk_Free(_PyObjectStackChunk *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObjectStackChunk_Free
      Src: /src/cpython/Python/object_stack.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _PyObjectStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: _PyObjectStack_Clear
    functionSourceFile: /src/cpython/Python/object_stack.c
    functionUses: 3
    functionsReached:
    - _PyObjectStackChunk_Free
    linkageType: ''
    returnType: void
    signature: void _PyObjectStack_Clear(_PyObjectStack *queue)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - _PyObjectStack*
    - _PyObjectStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: _PyObjectStack_Merge
    functionSourceFile: /src/cpython/Python/object_stack.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyObjectStack_Merge(_PyObjectStack *dst, _PyObjectStack *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cpython/Python/stackrefs.c:27,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/stackrefs.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - filename
    - linenumber
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: make_table_entry
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - malloc
    linkageType: ''
    returnType: TableEntry
    signature: 'TableEntry *

      make_table_entry(PyObject *obj, const char *filename, int linenumber)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:43,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:43,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:47,1
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:48,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:50,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:52,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _PyStackRef
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Python/stackrefs.c
    - condition: (interp != NULL)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: _Py_stackref_get_object
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - PyStackRef_IsError
    - _Py_FatalErrorFormat
    - _Py_hashtable_get
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_stackref_get_object(_PyStackRef ref)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_stackref_get_object
      Src: /src/cpython/Python/stackrefs.c:62,1
    - Dst: _Py_stackref_get_object
      Src: /src/cpython/Python/stackrefs.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _PyStackRef
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: PyStackRef_Is
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 1
    functionsReached:
    - _Py_stackref_get_object
    linkageType: ''
    returnType: int
    signature: int PyStackRef_Is(_PyStackRef a, _PyStackRef b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:68,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:68,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:69,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:71,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:77,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:80,1
    - Dst: _Py_hashtable_steal
      Src: /src/cpython/Python/stackrefs.c:84,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:87,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:89,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:94,1
    - Dst: free
      Src: /src/cpython/Python/stackrefs.c:97,1
    - Dst: make_table_entry
      Src: /src/cpython/Python/stackrefs.c:99,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:101,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/stackrefs.c:103,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - ref
    - filename
    - linenumber
    argTypes:
    - _PyStackRef
    - char*
    - int
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 109
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 109
    functionName: _Py_stackref_close
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - Py_FatalError
    - PyStackRef_IsError
    - _Py_FatalErrorFormat
    - make_table_entry
    - _Py_hashtable_set
    - free
    - _Py_hashtable_steal
    - _Py_hashtable_get
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_stackref_close(_PyStackRef ref, const char *filename, int linenumber)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:115,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:117,1
    - Dst: make_table_entry
      Src: /src/cpython/Python/stackrefs.c:120,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:122,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/stackrefs.c:124,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - filename
    - linenumber
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: _Py_stackref_create
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - make_table_entry
    - _Py_hashtable_set
    - Py_FatalError
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _Py_stackref_create(PyObject *obj, const char *filename,
      int linenumber)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:133,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:133,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:137,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:138,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:141,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:143,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ref
    - filename
    - linenumber
    argTypes:
    - _PyStackRef
    - char*
    - int
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: _Py_stackref_record_borrow
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - PyStackRef_IsError
    - _Py_FatalErrorFormat
    - _Py_hashtable_get
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_stackref_record_borrow(_PyStackRef ref, const char *filename,
      int linenumber)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:158,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:158,1
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:159,1
    - Dst: make_table_entry
      Src: /src/cpython/Python/stackrefs.c:160,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:162,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/stackrefs.c:164,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - interp
    - obj
    - ref
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - _PyStackRef
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Python/stackrefs.c
    - condition: (ref.index < INITIAL_STACKREF_INDEX)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: _Py_stackref_associate
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - PyStackRef_IsError
    - make_table_entry
    - _Py_hashtable_set
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_stackref_associate(PyInterpreterState *interp, PyObject *obj,
      _PyStackRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsStaticImmortal
      Src: /src/cpython/Python/stackrefs.c:174,1
    - Dst: printf
      Src: /src/cpython/Python/stackrefs.c:176,1
    - Dst: printf
      Src: /src/cpython/Python/stackrefs.c:179,1
    - Dst: printf
      Src: /src/cpython/Python/stackrefs.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ht
    - key
    - value
    - leak
    argTypes:
    - _Py_hashtable_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 184
    functionName: report_leak
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - _Py_IsStaticImmortal
    - printf
    linkageType: ''
    returnType: int
    signature: int report_leak(_Py_hashtable_t *ht, const void *key, const void *value,
      void *leak)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/stackrefs.c:190,1
    - Dst: fflush
      Src: /src/cpython/Python/stackrefs.c:192,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: _Py_stackref_report_leaks
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 1
    functionsReached:
    - _Py_hashtable_foreach
    - fflush
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _Py_stackref_report_leaks(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_stackref_close
      Src: /src/cpython/Python/stackrefs.c:200,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Python/stackrefs.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ref
    - destruct
    - filename
    - linenumber
    argTypes:
    - _PyStackRef
    - destructor
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: _PyStackRef_CLOSE_SPECIALIZED
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - _Py_DECREF_SPECIALIZED
    - _Py_stackref_close
    linkageType: ''
    returnType: void
    signature: void _PyStackRef_CLOSE_SPECIALIZED(_PyStackRef ref, destructor destruct,
      const char *filename, int linenumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: PyStackRef_TagInt
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef PyStackRef_TagInt(intptr_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:212,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/stackrefs.c:212,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Python/stackrefs.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - _PyStackRef
    assertStmts:
    - condition: (PyStackRef_IsTaggedInt(i))
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: PyStackRef_UntagInt
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 6
    functionsReached:
    - Py_ARITHMETIC_RIGHT_SHIFT
    - PyStackRef_IsTaggedInt
    - assert
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t PyStackRef_UntagInt(_PyStackRef i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/stackrefs.c:220,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/stackrefs.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: PyStackRef_IsNullOrInt
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 4
    functionsReached:
    - PyStackRef_IsNull
    - PyStackRef_IsTaggedInt
    linkageType: ''
    returnType: bool
    signature: bool PyStackRef_IsNullOrInt(_PyStackRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _PyStackRef
    assertStmts:
    - condition: (ref.index <= INT_MAX - 2)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: PyStackRef_IncrementTaggedIntNoOverflow
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef PyStackRef_IncrementTaggedIntNoOverflow(_PyStackRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:76,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:77,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: PyArg_Parse
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 60
    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/cpython/Python/getargs.c:88,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:89,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: _PyArg_Parse_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargs1
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void _PyArg_Parse_SizeT(PyObject *args, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:101,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:102,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: PyArg_ParseTuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 536
    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/cpython/Python/getargs.c:113,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:114,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: _PyArg_ParseTuple_SizeT
    functionSourceFile: /src/cpython/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/cpython/Python/getargs.c:126,1
    - Dst: vgetargs1_impl
      Src: /src/cpython/Python/getargs.c:127,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - nargs
    - format
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: _PyArg_ParseStack
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 31
    functionsReached:
    - va_end
    - va_start
    - vgetargs1_impl
    linkageType: ''
    returnType: int
    signature: int _PyArg_ParseStack(PyObject *const *args, Py_ssize_t nargs, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/cpython/Python/getargs.c:138,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:140,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - format
    - va
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: PyArg_VaParse
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_copy
    - vgetargs1
    - va_end
    linkageType: ''
    returnType: int
    signature: int PyArg_VaParse(PyObject *args, const char *format, va_list va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/cpython/Python/getargs.c:151,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:153,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - format
    - va
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: _PyArg_VaParse_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_copy
    - vgetargs1
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyArg_VaParse_SizeT(PyObject *args, const char *format, va_list
      va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Python/getargs.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: cleanup_ptr
    functionSourceFile: /src/cpython/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/cpython/Python/getargs.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: cleanup_buffer
    functionSourceFile: /src/cpython/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: 192
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: addcleanup
    functionSourceFile: /src/cpython/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/cpython/Python/getargs.c:204,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/getargs.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - retval
    - freelist
    argTypes:
    - int
    - freelist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 211
    functionName: cleanreturn
    functionSourceFile: /src/cpython/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/cpython/Python/getargs.c:233,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/getargs.c:249,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/getargs.c:254,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Python/getargs.c:275,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/getargs.c:284,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:292,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:294,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:304,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:308,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:312,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:316,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:318,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:321,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:322,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:323,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:326,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:328,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:334,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:344,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:345,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:351,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:355,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:356,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Python/getargs.c:360,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:363,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:365,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:368,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: 232
        line_start: 232
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 369
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 369
    functionName: vgetargs1_impl
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - cleanreturn
    - seterror
    - Py_FatalError
    - Py_ISALPHA
    - PyErr_SetString
    - PyErr_Format
    - convertitem
    - PyMem_NEW
    - PyErr_NoMemory
    - assert
    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/cpython/Python/getargs.c:378,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:381,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/getargs.c:386,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:387,1
    - Dst: vgetargs1_impl
      Src: /src/cpython/Python/getargs.c:394,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: 377
        line_start: 377
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 395
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 395
    functionName: vgetargs1
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 6
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyErr_SetString
    - vgetargs1_impl
    - 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/cpython/Python/getargs.c:406,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:410,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:411,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:414,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:417,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:419,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:421,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:426,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:427,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:429,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:433,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:436,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: 438
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 438
    functionName: seterror
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 60
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyOS_snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void seterror(Py_ssize_t iarg, const char *msg, int *levels, const
      char *fname,\n         const char *message)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:469,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Python/getargs.c:487,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/getargs.c:521,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:522,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:522,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:522,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:525,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:528,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/getargs.c:533,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/getargs.c:539,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:542,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/getargs.c:547,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:553,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:560,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:568,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:582,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 92
    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: 585
      start: 459
    functionDepth: 18
    functionLinenumber: 459
    functionLinenumberEnd: 585
    functionName: converttuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnFormat
    - PyTuple_GET_SIZE
    - PySequence_Check
    - Py_DECREF
    - PyTuple_Check
    - Py_ISALPHA
    - PySequence_Tuple
    - PyOS_snprintf
    - PyBytes_Check
    - PyByteArray_Check
    - PySequence_Size
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    - convertitem
    - Py_TYPE
    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,\n
      \            freelist_t *freelist)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: converttuple
      Src: /src/cpython/Python/getargs.c:599,1
    - Dst: convertsimple
      Src: /src/cpython/Python/getargs.c:605,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: 613
      start: 590
    functionDepth: 19
    functionLinenumber: 590
    functionLinenumberEnd: 613
    functionName: convertitem
    functionSourceFile: /src/cpython/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/cpython/Python/getargs.c:625,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fname
    - displayname
    - expected
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 629
    functionName: _PyArg_BadArgument
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 293
    functionsReached:
    - Py_TYPE
    - 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/cpython/Python/getargs.c:634,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:635,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:637,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:641,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:643,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: 633
        line_start: 633
        source_file: /src/cpython/Python/getargs.c
    - condition: (arg != NULL)
      pos:
        line_end: 634
        line_start: 634
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 646
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 646
    functionName: converterr
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyOS_snprintf
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      converterr(const char *expected, PyObject *arg, char *msgbuf, size_t bufsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:652,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - expected
    - what
    - size
    - msgbuf
    - bufsize
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - char*
    - size_t
    assertStmts:
    - condition: (expected != NULL)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 657
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 657
    functionName: convertcharerr
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyOS_snprintf
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\nconvertcharerr(const char *expected, const char *what, Py_ssize_t
      size,\n               char *msgbuf, size_t bufsize)"
  - BBCount: 119
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:683,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:684,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:685,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:688,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:693,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:704,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:705,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:713,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:723,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:724,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:725,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:728,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:733,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:744,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:745,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:753,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:763,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:764,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:765,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:768,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:773,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:784,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:785,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:793,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:805,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/getargs.c:807,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/getargs.c:809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:810,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:812,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:818,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:819,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:820,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:828,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Python/getargs.c:829,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:830,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:832,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:840,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:850,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/getargs.c:851,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:852,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:860,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Python/getargs.c:861,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:862,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:864,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:872,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:882,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/getargs.c:883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:884,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:892,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/getargs.c:893,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:894,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:902,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Python/getargs.c:904,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:905,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:913,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:914,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:915,1
    - Dst: convertcharerr
      Src: /src/cpython/Python/getargs.c:916,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:917,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/getargs.c:920,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:922,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/getargs.c:923,1
    - Dst: convertcharerr
      Src: /src/cpython/Python/getargs.c:924,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/getargs.c:925,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/getargs.c:928,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:931,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:936,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:940,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:941,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/getargs.c:943,1
    - Dst: convertcharerr
      Src: /src/cpython/Python/getargs.c:944,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/getargs.c:945,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/getargs.c:949,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/getargs.c:950,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/getargs.c:951,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:956,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/getargs.c:957,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:971,1
    - Dst: getbuffer
      Src: /src/cpython/Python/getargs.c:975,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:976,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:978,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:979,1
    - Dst: convertbuffer
      Src: /src/cpython/Python/getargs.c:985,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:987,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:989,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:993,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:994,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1006,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Python/getargs.c:1009,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1010,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/getargs.c:1012,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1014,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Python/getargs.c:1016,1
    - Dst: getbuffer
      Src: /src/cpython/Python/getargs.c:1020,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1021,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1023,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1024,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1031,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1032,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1038,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/getargs.c:1040,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1042,1
    - Dst: convertbuffer
      Src: /src/cpython/Python/getargs.c:1050,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1052,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1058,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1064,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/getargs.c:1065,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1067,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:1069,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1070,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1076,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1091,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Python/getargs.c:1093,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1104,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1107,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1110,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1115,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:1115,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:1116,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1117,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1118,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/getargs.c:1119,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1122,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/getargs.c:1123,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1126,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/getargs.c:1128,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1132,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1134,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1134,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1135,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/getargs.c:1136,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1141,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1173,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1174,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:1179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1181,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:1182,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1186,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1193,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1194,1
    - Dst: memcpy
      Src: /src/cpython/Python/getargs.c:1201,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:1219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1220,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1221,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:1225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1227,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:1228,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1232,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1233,1
    - Dst: memcpy
      Src: /src/cpython/Python/getargs.c:1236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1238,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1243,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1244,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1247,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1252,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:1253,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1256,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1261,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1262,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1266,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1274,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1275,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/getargs.c:1277,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:1277,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1280,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1285,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1286,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1290,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1293,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1294,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1298,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1306,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1309,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/getargs.c:1317,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/getargs.c:1318,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1319,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1322,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Python/getargs.c:1322,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1323,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1324,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1332,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 400
    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: (PyBuffer_IsContiguous((Py_buffer *)p, 'C'))
      pos:
        line_end: 1321
        line_start: 1321
        source_file: /src/cpython/Python/getargs.c
    - condition: (PyBytes_Check(s))
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1340
      start: 670
    functionDepth: 17
    functionLinenumber: 670
    functionLinenumberEnd: 1340
    functionName: convertsimple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - convertcharerr
    - strlen
    - _PyNumber_Index
    - PyErr_SetString
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - addcleanup
    - getbuffer
    - PyUnicode_KIND
    - PyFloat_AsDouble
    - PyBuffer_IsContiguous
    - PyLong_AsLong
    - PyErr_Occurred
    - PyUnicode_READ
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - PyMem_NEW
    - converterr
    - Py_DECREF
    - PyType_IsSubtype
    - PyUnicode_AsUTF8AndSize
    - PyByteArray_AS_STRING
    - PyUnicode_GetDefaultEncoding
    - PyComplex_AsCComplex
    - Py_NewRef
    - PyObject_GetBuffer
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - PyByteArray_GET_SIZE
    - memcpy
    - PyBytes_AS_STRING
    - PyErr_WarnEx
    - PyLong_AsSsize_t
    - PyUnicode_GET_LENGTH
    - PyErr_NoMemory
    - Py_TYPE
    - PyObject_IsTrue
    - PyLong_AsLongLong
    - PyUnicode_AsEncodedString
    - va_arg
    - convertbuffer
    - PyByteArray_Check
    - PyUnicode_DATA
    - PyBuffer_FillInfo
    - assert
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:1345,1
    - Dst: getbuffer
      Src: /src/cpython/Python/getargs.c:1356,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/getargs.c:1360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - arg
    - p
    - errmsg
    argTypes:
    - PyObject*
    - void**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1362
    functionName: convertbuffer
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - Py_TYPE
    - PyBuffer_Release
    - getbuffer
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t convertbuffer(PyObject *arg, const void **p, const char
      **errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/getargs.c:1368,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1372,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Python/getargs.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg
    - view
    - errmsg
    argTypes:
    - PyObject*
    - Py_buffer*
    - char**
    assertStmts:
    - condition: (PyBuffer_IsContiguous(view, 'C'))
      pos:
        line_end: 1371
        line_start: 1371
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1374
      start: 1364
    functionDepth: 2
    functionLinenumber: 1364
    functionLinenumberEnd: 1374
    functionName: getbuffer
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyObject_GetBuffer
    - PyBuffer_IsContiguous
    - assert
    linkageType: ''
    returnType: int
    signature: int getbuffer(PyObject *arg, Py_buffer *view, const char **errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:1389,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1390,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1394,1
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:1398,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1399,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - args
    - keywords
    - format
    - kwlist
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1402
    functionName: PyArg_ParseTupleAndKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 86
    functionsReached:
    - vgetargskeywords
    - PyTuple_Check
    - PyErr_BadInternalCall
    - va_start
    - PyDict_Check
    - va_end
    linkageType: ''
    returnType: int
    signature: "int PyArg_ParseTupleAndKeywords(PyObject *args,\n                            PyObject
      *keywords,\n                            const char *format,\n                            const
      char * const *kwlist, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:1413,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1414,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1418,1
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:1422,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1423,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - args
    - keywords
    - format
    - kwlist
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1404
    functionDepth: 1
    functionLinenumber: 1404
    functionLinenumberEnd: 1427
    functionName: _PyArg_ParseTupleAndKeywords_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargskeywords
    - PyTuple_Check
    - PyErr_BadInternalCall
    - va_start
    - PyDict_Check
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_ParseTupleAndKeywords_SizeT(PyObject *args,\n                                  PyObject
      *keywords,\n                                  const char *format,\n                                  const
      char * const *kwlist, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:1439,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1440,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1444,1
    - Dst: va_copy
      Src: /src/cpython/Python/getargs.c:1448,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1450,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1451,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: 1453
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1453
    functionName: PyArg_VaParseTupleAndKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargskeywords
    - PyTuple_Check
    - PyErr_BadInternalCall
    - va_copy
    - PyDict_Check
    - va_end
    linkageType: ''
    returnType: int
    signature: "int PyArg_VaParseTupleAndKeywords(PyObject *args,\n                              PyObject
      *keywords,\n                              const char *format,\n                              const
      char * const *kwlist, va_list va)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:1464,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1465,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1469,1
    - Dst: va_copy
      Src: /src/cpython/Python/getargs.c:1473,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1475,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1477,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: 1479
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1479
    functionName: _PyArg_VaParseTupleAndKeywords_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargskeywords
    - PyTuple_Check
    - PyErr_BadInternalCall
    - va_copy
    - PyDict_Check
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *args,\n                                    PyObject
      *keywords,\n                                    const char *format,\n                                    const
      char * const *kwlist, va_list va)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:1488,1
    - Dst: vgetargskeywordsfast
      Src: /src/cpython/Python/getargs.c:1489,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - keywords
    - parser
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1492
    functionName: _PyArg_ParseTupleAndKeywordsFast
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - va_start
    - vgetargskeywordsfast
    - va_end
    linkageType: ''
    returnType: void
    signature: "void _PyArg_ParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,\n
      \                           struct _PyArg_Parser *parser, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:1501,1
    - Dst: vgetargskeywordsfast
      Src: /src/cpython/Python/getargs.c:1502,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - keywords
    - parser
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1505
    functionName: _PyArg_ParseTupleAndKeywordsFast_SizeT
    functionSourceFile: /src/cpython/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/cpython/Python/getargs.c:1514,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/cpython/Python/getargs.c:1515,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1516,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: 1518
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1518
    functionName: _PyArg_ParseStackAndKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 21
    functionsReached:
    - va_end
    - va_start
    - vgetargskeywordsfast_impl
    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/cpython/Python/getargs.c:1527,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/cpython/Python/getargs.c:1528,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1529,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: 1531
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1531
    functionName: _PyArg_ParseStackAndKeywords_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vgetargskeywordsfast_impl
    linkageType: ''
    returnType: int
    signature: "int _PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames,\n                        struct _PyArg_Parser *parser,
      ...)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Python/getargs.c:1542,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1546,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:1548,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1551,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1552,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/getargs.c:1557,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/getargs.c:1560,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Python/getargs.c:1564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1565,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1575,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1578,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1591,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - kwargs
    - kwnames
    - kwtuple
    - fname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1534
    functionDepth: 6
    functionLinenumber: 1534
    functionLinenumberEnd: 1595
    functionName: error_unexpected_keyword_arg
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_SetString
    - PySequence_Contains
    - PyDict_Next
    - PySequence_List
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - _Py_CalculateSuggestions
    linkageType: ''
    returnType: void
    signature: void error_unexpected_keyword_arg(PyObject *kwargs, PyObject *kwnames,
      PyObject *kwtuple, const char *fname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1600,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1601,1
    - Dst: _PyDict_HasOnlyStringKeys
      Src: /src/cpython/Python/getargs.c:1604,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - kwargs
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1610
    functionName: PyArg_ValidateKeywordArguments
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyErr_SetString
    - _PyDict_HasOnlyStringKeys
    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: 1616
      start: 1615
    functionDepth: 0
    functionLinenumber: 1615
    functionLinenumberEnd: 1616
    functionName: IS_END_OF_FORMAT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_END_OF_FORMAT(c)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1636,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:1636,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1637,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1637,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1638,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1639,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1640,1
    - Dst: strchr
      Src: /src/cpython/Python/getargs.c:1643,1
    - Dst: strchr
      Src: /src/cpython/Python/getargs.c:1649,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1660,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1662,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:1667,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:1669,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1675,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1676,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1680,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1688,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1695,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1697,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1704,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1711,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1713,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1720,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1722,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1732,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1738,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1748,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:1751,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1752,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1755,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:1760,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:1760,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/getargs.c:1763,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1764,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:1775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1777,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:1779,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1780,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1787,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1788,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1796,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1801,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1809,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:1815,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1817,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1819,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1824,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:1829,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:1830,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:1831,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1833,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:1836,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1837,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1840,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/getargs.c:1849,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1853,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1855,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1861,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/getargs.c:1866,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1868,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1869,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1871,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Python/getargs.c:1874,1
    - Dst: new_kwtuple
      Src: /src/cpython/Python/getargs.c:1880,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1882,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/getargs.c:1884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1885,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1887,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Python/getargs.c:1889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1890,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1900,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1903,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1909,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1914,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1918,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1921,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 176
    argCount: 6
    argNames:
    - args
    - kwargs
    - format
    - kwlist
    - p_va
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    - va_list*
    - int
    assertStmts:
    - condition: (p_va != NULL)
      pos:
        line_end: 1639
        line_start: 1639
        source_file: /src/cpython/Python/getargs.c
    - condition: (min == INT_MAX)
      pos:
        line_end: 1786
        line_start: 1786
        source_file: /src/cpython/Python/getargs.c
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 1635
        line_start: 1635
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 1636
        line_start: 1636
        source_file: /src/cpython/Python/getargs.c
    - condition: (max == INT_MAX)
      pos:
        line_end: 1787
        line_start: 1787
        source_file: /src/cpython/Python/getargs.c
    - condition: (format != NULL)
      pos:
        line_end: 1637
        line_start: 1637
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwlist != NULL)
      pos:
        line_end: 1638
        line_start: 1638
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1922
      start: 1617
    functionDepth: 20
    functionLinenumber: 1617
    functionLinenumberEnd: 1922
    functionName: vgetargskeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 4
    functionsReached:
    - PyErr_SetString
    - IS_END_OF_FORMAT
    - PyDict_GetItemStringRef
    - skipitem
    - strchr
    - PyTuple_GET_SIZE
    - PyUnicode_EqualToUTF8
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_Check
    - PyMem_NEW
    - seterror
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - Py_NewRef
    - PySequence_List
    - convertitem
    - PyErr_NoMemory
    - _Py_CalculateSuggestions
    - cleanreturn
    - Py_MIN
    - new_kwtuple
    - PyDict_Next
    - assert
    linkageType: ''
    returnType: int
    signature: "int vgetargskeywords(PyObject *args, PyObject *kwargs, const char
      *format,\n                 const char * const *kwlist, va_list *p_va, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - keywords
    - ptotal
    - pposonly
    argTypes:
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1944
    functionName: scan_keywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int scan_keywords(const char * const *keywords, int *ptotal, int *pposonly)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/cpython/Python/getargs.c:1953,1
    - Dst: strchr
      Src: /src/cpython/Python/getargs.c:1959,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1970,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1975,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1984,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1989,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:1996,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1997,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:2003,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2005,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2010,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2011,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2013,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2014,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 7
    argNames:
    - format
    - total
    - npos
    - pfname
    - pcustommsg
    - pmin
    - pmax
    argTypes:
    - char*
    - int
    - int
    - char**
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 2025
    functionName: parse_format
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - PyErr_SetString
    - IS_END_OF_FORMAT
    - skipitem
    - PyErr_Format
    - strchr
    linkageType: ''
    returnType: int
    signature: "int parse_format(const char *format, int total, int npos,\n             const
      char **pfname, const char **pcustommsg,\n             int *pmin, int *pmax)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/getargs.c:2031,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/getargs.c:2037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2039,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/getargs.c:2042,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/getargs.c:2043,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/getargs.c:2044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - keywords
    - total
    - pos
    argTypes:
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2027
    functionDepth: 9
    functionLinenumber: 2027
    functionLinenumberEnd: 2047
    functionName: new_kwtuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - _PyUnicode_InternImmortal
    - PyTuple_SET_ITEM
    - _PyInterpreterState_GET
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_kwtuple(const char * const *keywords, int total, int pos)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2054,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2055,1
    - Dst: scan_keywords
      Src: /src/cpython/Python/getargs.c:2062,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2069,1
    - Dst: parse_format
      Src: /src/cpython/Python/getargs.c:2070,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2076,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/getargs.c:2087,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/getargs.c:2087,1
    - Dst: PyThreadState_New
      Src: /src/cpython/Python/getargs.c:2088,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/getargs.c:2088,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/getargs.c:2092,1
    - Dst: new_kwtuple
      Src: /src/cpython/Python/getargs.c:2094,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/getargs.c:2096,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/getargs.c:2097,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/getargs.c:2098,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2117,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Python/getargs.c:2118,1
    - Dst: _Py_atomic_compare_exchange_ptr
      Src: /src/cpython/Python/getargs.c:2121,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (keywords != NULL)
      pos:
        line_end: 2053
        line_start: 2053
        source_file: /src/cpython/Python/getargs.c
    - condition: (parser->fname == NULL)
      pos:
        line_end: 2068
        line_start: 2068
        source_file: /src/cpython/Python/getargs.c
    - condition: "(parser->pos == 0 &&\n           (parser->format == NULL || parser->fname
        == NULL) &&\n           parser->custom_msg == NULL &&\n           parser->min
        == 0 &&\n           parser->max == 0)"
      pos:
        line_end: 2058
        line_start: 2054
        source_file: /src/cpython/Python/getargs.c
    - condition: (parser->fname != NULL)
      pos:
        line_end: 2075
        line_start: 2075
        source_file: /src/cpython/Python/getargs.c
    - condition: (parser->next == NULL)
      pos:
        line_end: 2116
        line_start: 2116
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2124
      start: 2049
    functionDepth: 10
    functionLinenumber: 2049
    functionLinenumberEnd: 2124
    functionName: _parser_init
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - _Py_IsMainInterpreter
    - PyThreadState_Delete
    - new_kwtuple
    - PyThreadState_Clear
    - _Py_atomic_compare_exchange_ptr
    - parse_format
    - PyThreadState_New
    - PyThreadState_Swap
    - _PyInterpreterState_Main
    - scan_keywords
    - assert
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: int
    signature: int _parser_init(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/getargs.c:2129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2126
    functionDepth: 1
    functionLinenumber: 2126
    functionLinenumberEnd: 2130
    functionName: parser_init
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - _PyOnceFlag_CallOnce
    linkageType: ''
    returnType: int
    signature: int parser_init(struct _PyArg_Parser *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/getargs.c:2136,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct _PyArg_Parser*
    assertStmts:
    - condition: (parser->fname != NULL)
      pos:
        line_end: 2142
        line_start: 2142
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2151
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2151
    functionName: parser_clear
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: void
    signature: void parser_clear(struct _PyArg_Parser *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2158,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2160,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:2165,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2170,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2171,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:2171,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/getargs.c:2172,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:2173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - kwnames
    - kwstack
    - key
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(kwname))
      pos:
        line_end: 2170
        line_start: 2170
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2177
      start: 2153
    functionDepth: 2
    functionLinenumber: 2153
    functionLinenumberEnd: 2177
    functionName: find_keyword
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_NewRef
    - _PyUnicode_Equal
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      find_keyword(PyObject *kwnames, PyObject *const *kwstack, PyObject *key)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2202,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:2202,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2203,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2204,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2207,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:2211,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2212,1
    - Dst: parser_init
      Src: /src/cpython/Python/getargs.c:2216,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2222,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:2225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:2227,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2234,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2237,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2246,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2254,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2258,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2264,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2273,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2277,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2286,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2286,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:2290,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2293,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2295,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2296,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2300,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:2311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2313,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:2315,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2316,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2324,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2325,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2336,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2337,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2343,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2350,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:2355,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2356,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2359,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2359,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2365,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2367,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2368,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2375,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2377,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2383,1
    - Dst: error_unexpected_keyword_arg
      Src: /src/cpython/Python/getargs.c:2387,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2388,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2391,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 123
    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: 2201
        line_start: 2201
        source_file: /src/cpython/Python/getargs.c
    - condition: (!IS_END_OF_FORMAT(*format))
      pos:
        line_end: 2285
        line_start: 2285
        source_file: /src/cpython/Python/getargs.c
    - condition: (format != NULL || len == 0)
      pos:
        line_end: 2276
        line_start: 2276
        source_file: /src/cpython/Python/getargs.c
    - condition: (msg == NULL)
      pos:
        line_end: 2355
        line_start: 2355
        source_file: /src/cpython/Python/getargs.c
    - condition: (IS_END_OF_FORMAT(*format) || (*format == '|') || (*format == '$'))
      pos:
        line_end: 2358
        line_start: 2358
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwargs == NULL || kwnames == NULL)
      pos:
        line_end: 2202
        line_start: 2202
        source_file: /src/cpython/Python/getargs.c
    - condition: (p_va != NULL)
      pos:
        line_end: 2203
        line_start: 2203
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2392
      start: 2179
    functionDepth: 20
    functionLinenumber: 2179
    functionLinenumberEnd: 2392
    functionName: vgetargskeywordsfast_impl
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - IS_END_OF_FORMAT
    - skipitem
    - PyDict_GetItemRef
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - parser_init
    - PyErr_Format
    - error_unexpected_keyword_arg
    - PyDict_Check
    - PyMem_NEW
    - seterror
    - assert
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - Py_NewRef
    - convertitem
    - PyErr_NoMemory
    - cleanreturn
    - Py_MIN
    - PyErr_BadInternalCall
    - find_keyword
    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/cpython/Python/getargs.c:2402,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:2403,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2405,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/getargs.c:2409,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2410,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/cpython/Python/getargs.c:2411,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: 2413
      start: 2394
    functionDepth: 21
    functionLinenumber: 2394
    functionLinenumberEnd: 2413
    functionName: vgetargskeywordsfast
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyErr_BadInternalCall
    - PyDict_Check
    - vgetargskeywordsfast_impl
    linkageType: ''
    returnType: int
    signature: "int vgetargskeywordsfast(PyObject *args, PyObject *keywords,\n                     struct
      _PyArg_Parser *parser, va_list *p_va, int flags)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2432,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:2432,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2433,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2436,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:2440,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2441,1
    - Dst: parser_init
      Src: /src/cpython/Python/getargs.c:2449,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2455,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2456,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2459,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2462,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2475,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2487,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2493,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2505,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2518,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/getargs.c:2526,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2529,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2531,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2549,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2554,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2555,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2568,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2570,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2578,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2580,1
    - Dst: error_unexpected_keyword_arg
      Src: /src/cpython/Python/getargs.c:2590,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (kwargs == NULL || kwnames == NULL)
      pos:
        line_end: 2432
        line_start: 2432
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2431
        line_start: 2431
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2595
      start: 2418
    functionDepth: 8
    functionLinenumber: 2418
    functionLinenumberEnd: 2595
    functionName: _PyArg_UnpackKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 605
    functionsReached:
    - Py_MIN
    - Py_MAX
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyErr_BadInternalCall
    - find_keyword
    - PyTuple_GET_ITEM
    - parser_init
    - PyErr_Format
    - error_unexpected_keyword_arg
    - PyDict_GetItemRef
    - PyDict_Check
    - assert
    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,
      int varpos,\n                      PyObject **buf)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2632,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2642,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2657,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2666,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2682,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2683,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2689,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2690,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2696,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2708,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:2711,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 3
    argNames:
    - p_format
    - p_va
    - flags
    argTypes:
    - char**
    - va_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2597
    functionDepth: 1
    functionLinenumber: 2597
    functionLinenumberEnd: 2730
    functionName: skipitem
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 4
    functionsReached:
    - skipitem
    - 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/cpython/Python/getargs.c:2739,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2740,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2744,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2749,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2763,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2768,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: 2738
        line_start: 2738
        source_file: /src/cpython/Python/getargs.c
    - condition: (min <= max)
      pos:
        line_end: 2739
        line_start: 2739
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2777
      start: 2735
    functionDepth: 1
    functionLinenumber: 2735
    functionLinenumberEnd: 2777
    functionName: _PyArg_CheckPositional
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 564
    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/cpython/Python/getargs.c:2786,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2791,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: 2795
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2795
    functionName: unpack_stack
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_arg
    - _PyArg_CheckPositional
    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/cpython/Python/getargs.c:2805,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:2806,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/getargs.c:2810,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2811,1
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:2813,1
    - Dst: unpack_stack
      Src: /src/cpython/Python/getargs.c:2814,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:2815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - args
    - name
    - min
    - max
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2797
    functionDepth: 1
    functionLinenumber: 2797
    functionLinenumberEnd: 2817
    functionName: PyArg_UnpackTuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 42
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyErr_SetString
    - unpack_stack
    - va_start
    - va_end
    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/cpython/Python/getargs.c:2826,1
    - Dst: unpack_stack
      Src: /src/cpython/Python/getargs.c:2827,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:2828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    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: 2830
      start: 2819
    functionDepth: 1
    functionLinenumber: 2819
    functionLinenumberEnd: 2830
    functionName: _PyArg_UnpackStack
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - unpack_stack
    - va_start
    - va_end
    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/cpython/Python/getargs.c:2848,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2849,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2852,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - funcname
    - kwargs
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2842
    functionDepth: 1
    functionLinenumber: 2842
    functionLinenumberEnd: 2859
    functionName: _PyArg_NoKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 61
    functionsReached:
    - PyErr_BadInternalCall
    - PyDict_GET_SIZE
    - PyDict_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PyArg_NoKeywords(const char *funcname, PyObject *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/getargs.c:2866,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2867,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2870,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - funcname
    - args
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2861
    functionDepth: 1
    functionLinenumber: 2861
    functionLinenumberEnd: 2876
    functionName: _PyArg_NoPositional
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 10
    functionsReached:
    - PyErr_BadInternalCall
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PyArg_NoPositional(const char *funcname, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2885,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/getargs.c:2885,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2887,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - funcname
    - kwnames
    argTypes:
    - char*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(kwnames))
      pos:
        line_end: 2884
        line_start: 2884
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2893
      start: 2878
    functionDepth: 1
    functionLinenumber: 2878
    functionLinenumberEnd: 2893
    functionName: _PyArg_NoKwnames
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 16
    functionsReached:
    - PyTuple_CheckExact
    - PyTuple_GET_SIZE
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PyArg_NoKwnames(const char *funcname, PyObject *kwnames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_clear
      Src: /src/cpython/Python/getargs.c:2902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2906
    functionName: _PyArg_Fini
    functionSourceFile: /src/cpython/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: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: Bug
    functionSourceFile: /src/cpython/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: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: word0
    functionSourceFile: /src/cpython/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: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: word1
    functionSourceFile: /src/cpython/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: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: word0
    functionSourceFile: /src/cpython/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: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: word1
    functionSourceFile: /src/cpython/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: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: dval
    functionSourceFile: /src/cpython/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: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: Storeinc
    functionSourceFile: /src/cpython/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: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: Storeinc
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Storeinc(a,b,c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dtoa.c:347,1
    - Dst: MALLOC
      Src: /src/cpython/Python/dtoa.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 371
    functionName: Balloc
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - MALLOC
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      Balloc(int k)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/cpython/Python/dtoa.c:380,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dtoa.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 387
    functionName: Bfree
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - FREE
    linkageType: ''
    returnType: void
    signature: void Bfree(Bigint *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/cpython/Python/dtoa.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: Balloc
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - MALLOC
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      Balloc(int k)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/cpython/Python/dtoa.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 431
    functionName: Bfree
    functionSourceFile: /src/cpython/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: 437
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 437
    functionName: Bcopy
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Bcopy(x,y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:462,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:464,1
    - Dst: Bcopy
      Src: /src/cpython/Python/dtoa.c:467,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - b
    - m
    - a
    argTypes:
    - Bigint*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 475
    functionName: multadd
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Bfree
    - Bcopy
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      multadd(Bigint *b, int m, int a)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:492,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:503,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - s
    - nd0
    - nd
    - y9
    argTypes:
    - char*
    - int
    - int
    - ULong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 514
    functionName: s2b
    functionSourceFile: /src/cpython/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: 545
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 545
    functionName: hi0bits
    functionSourceFile: /src/cpython/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: 591
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 591
    functionName: lo0bits
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lo0bits(ULong *y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 606
    functionName: i2b
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      i2b(int i)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:621,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:640,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 667
    functionName: mult
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      mult(Bigint *a, Bigint *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:687,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:690,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dtoa.c:697,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:700,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:704,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:705,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts:
    - condition: (0 <= k && k < 1024)
      pos:
        line_end: 686
        line_start: 686
        source_file: /src/cpython/Python/dtoa.c
    - condition: (p5s != interp->dtoa.p5s + Bigint_Pow5size)
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/cpython/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 714
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 714
    functionName: pow5mult
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - multadd
    - _PyInterpreterState_GET
    - Bfree
    - mult
    - assert
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      pow5mult(Bigint *b, int k)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:729,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:736,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:738,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:744,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:745,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:748,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:754,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:755,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:758,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:762,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 764
    functionName: pow5mult
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - mult
    - multadd
    - i2b
    - Bfree
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      pow5mult(Bigint *b, int k)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:787,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:789,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:812,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 814
    functionName: lshift
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 5
    functionsReached:
    - Bfree
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      lshift(Bigint *b, int k)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/cpython/Python/dtoa.c:829,1
    - Dst: Bug
      Src: /src/cpython/Python/dtoa.c:831,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 846
    functionName: cmp
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 179
    functionsReached:
    - Bug
    linkageType: ''
    returnType: int
    signature: int cmp(Bigint *a, Bigint *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:860,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:862,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:877,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 852
    functionDepth: 2
    functionLinenumber: 852
    functionLinenumberEnd: 904
    functionName: diff
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 1
    functionsReached:
    - Balloc
    - cmp
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      diff(Bigint *a, Bigint *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:915,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:916,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:917,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 919
    functionName: ulp
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - dval
    - word1
    - word0
    linkageType: ''
    returnType: double
    signature: double ulp(U *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/cpython/Python/dtoa.c:934,1
    - Dst: hi0bits
      Src: /src/cpython/Python/dtoa.c:936,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:939,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:941,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:946,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:948,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:951,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:952,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - Bigint*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 956
    functionName: b2d
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - dval
    - word1
    - word0
    - Bug
    - hi0bits
    linkageType: ''
    returnType: double
    signature: double b2d(Bigint *a, int *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:984,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:990,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:991,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:992,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1005,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1008,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1015,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: 1004
        line_start: 1004
        source_file: /src/cpython/Python/dtoa.c
    - condition: (b->x[0] == 0)
      pos:
        line_end: 1007
        line_start: 1007
        source_file: /src/cpython/Python/dtoa.c
    - condition: (b->x[0] << (32 - scale) == 0)
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/cpython/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 1026
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 1026
    functionName: sd2b
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - word1
    - Balloc
    - word0
    - assert
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      sd2b(U *d, int scale, int *e)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:1045,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1050,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1051,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1052,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1054,1
    - Dst: lo0bits
      Src: /src/cpython/Python/dtoa.c:1055,1
    - Dst: lo0bits
      Src: /src/cpython/Python/dtoa.c:1065,1
    - Dst: hi0bits
      Src: /src/cpython/Python/dtoa.c:1077,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - d
    - e
    - bits
    argTypes:
    - U*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1080
    functionName: d2b
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - word1
    - word0
    - hi0bits
    - lo0bits
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      d2b(U *d, int *e, int *bits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1091,1
    - Dst: b2d
      Src: /src/cpython/Python/dtoa.c:1091,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1092,1
    - Dst: b2d
      Src: /src/cpython/Python/dtoa.c:1092,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1095,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1098,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1100,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1085
    functionDepth: 2
    functionLinenumber: 1085
    functionLinenumberEnd: 1101
    functionName: ratio
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - dval
    - word0
    - b2d
    linkageType: ''
    returnType: double
    signature: double ratio(Bigint *a, Bigint *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi0bits
      Src: /src/cpython/Python/dtoa.c:1129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - p2
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1133
    functionName: dshift
    functionSourceFile: /src/cpython/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/cpython/Python/dtoa.c:1149,1
    - Dst: Bug
      Src: /src/cpython/Python/dtoa.c:1160,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1180,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - b
    - S
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1203
    functionName: quorem
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Bug
    - cmp
    linkageType: ''
    returnType: int
    signature: int quorem(Bigint *b, Bigint *S)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1216,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1218,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1219,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1223,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1223,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1223,1
    - Dst: ulp
      Src: /src/cpython/Python/dtoa.c:1224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - x
    - bc
    argTypes:
    - U*
    - BCinfo*
    assertStmts:
    - condition: (word0(x) || word1(x))
      pos:
        line_end: 1222
        line_start: 1222
        source_file: /src/cpython/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 1226
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1226
    functionName: sulp
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - word1
    - ulp
    - word0
    - assert
    linkageType: ''
    returnType: double
    signature: double sulp(U *x, BCinfo *bc)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sd2b
      Src: /src/cpython/Python/dtoa.c:1283,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1293,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:1300,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1302,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1309,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1311,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1316,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1318,1
    - Dst: dshift
      Src: /src/cpython/Python/dtoa.c:1330,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1332,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1334,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1339,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1341,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1349,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:1355,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1357,1
    - Dst: quorem
      Src: /src/cpython/Python/dtoa.c:1360,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1377,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1378,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1380,1
    - Dst: sulp
      Src: /src/cpython/Python/dtoa.c:1380,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 3
    argNames:
    - rv
    - s0
    - bc
    argTypes:
    - U*
    - char*
    - BCinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1382
    functionName: bigcomp
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - dval
    - multadd
    - i2b
    - lshift
    - sd2b
    - pow5mult
    - quorem
    - cmp
    - dshift
    - sulp
    - Bfree
    linkageType: ''
    returnType: int
    signature: int bigcomp(U *rv, const char *s0, BCinfo *bc)
  - BBCount: 113
    BranchProfiles: []
    Callsites:
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1400,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1586,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1588,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1588,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1597,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1606,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1607,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1612,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1624,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1631,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1633,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1634,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1635,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1641,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1642,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1645,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1661,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1669,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1670,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1674,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1676,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1678,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1681,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1683,1
    - Dst: s2b
      Src: /src/cpython/Python/dtoa.c:1725,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:1757,1
    - Dst: Bcopy
      Src: /src/cpython/Python/dtoa.c:1761,1
    - Dst: sd2b
      Src: /src/cpython/Python/dtoa.c:1762,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:1771,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1821,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:1825,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1826,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1833,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1839,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1845,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1851,1
    - Dst: diff
      Src: /src/cpython/Python/dtoa.c:1861,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1867,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1883,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1883,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1886,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1890,1
    - Dst: sulp
      Src: /src/cpython/Python/dtoa.c:1890,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1905,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1905,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1906,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1914,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1918,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1925,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1926,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1928,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1932,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1932,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1935,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1940,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1940,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1944,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1956,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1957,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1958,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1964,1
    - Dst: sulp
      Src: /src/cpython/Python/dtoa.c:1964,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1966,1
    - Dst: sulp
      Src: /src/cpython/Python/dtoa.c:1966,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1967,1
    - Dst: ratio
      Src: /src/cpython/Python/dtoa.c:1976,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1979,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1979,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1980,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1980,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2005,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2010,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2010,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2011,1
    - Dst: ulp
      Src: /src/cpython/Python/dtoa.c:2012,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2013,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2014,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2016,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2016,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2019,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2020,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2024,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2034,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2035,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2036,1
    - Dst: ulp
      Src: /src/cpython/Python/dtoa.c:2038,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2039,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2041,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2049,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2049,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2058,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2059,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2060,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2061,1
    - Dst: bigcomp
      Src: /src/cpython/Python/dtoa.c:2064,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2070,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2071,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2072,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2072,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2076,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2076,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2095,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2096,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2097,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2097,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2101,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2102,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2103,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2104,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2105,1
    CyclomaticComplexity: 204
    EdgeCount: 204
    ICount: 505
    argCount: 2
    argNames:
    - s00
    - se
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 1385
    functionDepth: 5
    functionLinenumber: 1385
    functionLinenumberEnd: 2108
    functionName: _Py_dg_strtod
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - dval
    - word1
    - word0
    - bigcomp
    - ratio
    - i2b
    - Bcopy
    - lshift
    - sd2b
    - pow5mult
    - s2b
    - cmp
    - sulp
    - ulp
    - Bfree
    - mult
    - Balloc
    - diff
    linkageType: ''
    returnType: double
    signature: double _Py_dg_strtod(const char *s00, char **se)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:2120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2110
    functionDepth: 2
    functionLinenumber: 2110
    functionLinenumberEnd: 2125
    functionName: rv_alloc
    functionSourceFile: /src/cpython/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/cpython/Python/dtoa.c:2132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - rve
    - n
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2127
    functionDepth: 3
    functionLinenumber: 2127
    functionLinenumberEnd: 2140
    functionName: nrv_alloc
    functionSourceFile: /src/cpython/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/cpython/Python/dtoa.c:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2148
    functionDepth: 2
    functionLinenumber: 2148
    functionLinenumberEnd: 2154
    functionName: _Py_dg_freedtoa
    functionSourceFile: /src/cpython/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/cpython/Python/dtoa.c:2249,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2252,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2258,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2262,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2262,1
    - Dst: nrv_alloc
      Src: /src/cpython/Python/dtoa.c:2263,1
    - Dst: nrv_alloc
      Src: /src/cpython/Python/dtoa.c:2264,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2266,1
    - Dst: nrv_alloc
      Src: /src/cpython/Python/dtoa.c:2268,1
    - Dst: d2b
      Src: /src/cpython/Python/dtoa.c:2273,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2276,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2277,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2277,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2278,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2279,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2310,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2310,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2311,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2312,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2313,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2317,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2324,1
    - Dst: rv_alloc
      Src: /src/cpython/Python/dtoa.c:2383,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2394,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2394,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2404,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2412,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2415,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2419,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2422,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2427,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2430,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2430,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2431,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2434,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2435,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2435,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2437,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2437,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2445,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2445,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2447,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2448,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2450,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2450,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2452,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2452,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2456,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2457,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2462,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2463,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2464,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2465,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2469,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2469,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2471,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2471,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2482,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2482,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2494,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2498,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2499,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2500,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2502,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2506,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2506,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2507,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2507,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:2539,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2552,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:2555,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2556,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2562,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2568,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:2573,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2577,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2587,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2587,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2588,1
    - Dst: dshift
      Src: /src/cpython/Python/dtoa.c:2605,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2610,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2615,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2620,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2622,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2626,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2641,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2644,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2654,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:2665,1
    - Dst: Bcopy
      Src: /src/cpython/Python/dtoa.c:2668,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2669,1
    - Dst: quorem
      Src: /src/cpython/Python/dtoa.c:2675,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2679,1
    - Dst: diff
      Src: /src/cpython/Python/dtoa.c:2680,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2683,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2684,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2685,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2695,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2701,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2704,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2725,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2729,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2734,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2737,1
    - Dst: quorem
      Src: /src/cpython/Python/dtoa.c:2745,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2751,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2758,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2761,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2777,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2780,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2781,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2784,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2792,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2794,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2796,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2798,1
    - Dst: _Py_dg_freedtoa
      Src: /src/cpython/Python/dtoa.c:2800,1
    CyclomaticComplexity: 212
    EdgeCount: 212
    ICount: 515
    argCount: 6
    argNames:
    - dd
    - mode
    - ndigits
    - decpt
    - sign
    - rve
    argTypes:
    - double
    - int
    - int
    - int*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2194
    functionDepth: 4
    functionLinenumber: 2194
    functionLinenumberEnd: 2802
    functionName: _Py_dg_dtoa
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - i2b
    - d2b
    - lshift
    - mult
    - Balloc
    - diff
    - dval
    - word1
    - word0
    - rv_alloc
    - Bcopy
    - Bfree
    - multadd
    - dshift
    - _Py_dg_freedtoa
    - nrv_alloc
    - pow5mult
    - quorem
    - cmp
    linkageType: ''
    returnType: char
    signature: "char *\n_Py_dg_dtoa(double dd, int mode, int ndigits,\n            int
      *decpt, int *sign, char **rve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:2813,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/dtoa.c:2815,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:2821,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/dtoa.c:2823,1
    - Dst: PyStatus_Ok
      Src: /src/cpython/Python/dtoa.c:2829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2806
    functionDepth: 3
    functionLinenumber: 2806
    functionLinenumberEnd: 2830
    functionName: _PyDtoa_Init
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - mult
    - PyStatus_NoMemory
    - PyStatus_Ok
    - i2b
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyDtoa_Init(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2832
    functionDepth: 2
    functionLinenumber: 2832
    functionLinenumberEnd: 2843
    functionName: _PyDtoa_Fini
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Bfree
    linkageType: ''
    returnType: void
    signature: void _PyDtoa_Fini(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_InitProcHandle
      Src: /src/cpython/Python/remote_debugging.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - pid
    argTypes:
    - proc_handle_t*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: init_proc_handle
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_InitProcHandle
    linkageType: ''
    returnType: int
    signature: int init_proc_handle(proc_handle_t *handle, pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_CleanupProcHandle
      Src: /src/cpython/Python/remote_debugging.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: cleanup_proc_handle
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_CleanupProcHandle
    linkageType: ''
    returnType: void
    signature: void cleanup_proc_handle(proc_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Python/remote_debugging.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - remote_address
    - len
    - dst
    argTypes:
    - proc_handle_t*
    - uint64_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: read_memory
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: int read_memory(proc_handle_t *handle, uint64_t remote_address, size_t
      len, void* dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_proc_mem_fd
      Src: /src/cpython/Python/remote_debugging.c:34,1
    - Dst: pwritev
      Src: /src/cpython/Python/remote_debugging.c:48,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/remote_debugging.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - handle
    - remote_address
    - len
    - src
    argTypes:
    - proc_handle_t*
    - uintptr_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 57
    functionName: write_memory_fallback
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - open_proc_mem_fd
    - pwritev
    linkageType: ''
    returnType: int
    signature: int write_memory_fallback(proc_handle_t *handle, uintptr_t remote_address,
      size_t len, const void* src)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WriteProcessMemory
      Src: /src/cpython/Python/remote_debugging.c:67,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/remote_debugging.c:68,1
    - Dst: write_memory_fallback
      Src: /src/cpython/Python/remote_debugging.c:76,1
    - Dst: process_vm_writev
      Src: /src/cpython/Python/remote_debugging.c:89,1
    - Dst: write_memory_fallback
      Src: /src/cpython/Python/remote_debugging.c:92,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/remote_debugging.c:94,1
    - Dst: mach_vm_write
      Src: /src/cpython/Python/remote_debugging.c:102,1
    - Dst: pid_to_task
      Src: /src/cpython/Python/remote_debugging.c:103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:111,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:114,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debugging.c:117,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/remote_debugging.c:123,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - handle
    - remote_address
    - len
    - src
    argTypes:
    - proc_handle_t*
    - uintptr_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 125
    functionName: write_memory
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - process_vm_writev
    - pid_to_task
    - mach_vm_write
    - PyErr_SetString
    - PyErr_SetFromWindowsErr
    - write_memory_fallback
    - PyErr_SetFromErrno
    - PyErr_Format
    - WriteProcessMemory
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int write_memory(proc_handle_t *handle, uintptr_t remote_address, size_t
      len, const void* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: is_prerelease_version
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_prerelease_version(uint64_t version)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Python/remote_debugging.c:136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:138,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Python/remote_debugging.c:146,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:147,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Python/remote_debugging.c:154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:155,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debugging.c:166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - debug_offsets
    argTypes:
    - _Py_DebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 191
    functionName: ensure_debug_offset_compatibility
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - is_prerelease_version
    - PyErr_Format
    - PyErr_SetString
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ensure_debug_offset_compatibility(const _Py_DebugOffsets* debug_offsets)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ReadDebugOffsets
      Src: /src/cpython/Python/remote_debugging.c:199,1
    - Dst: ensure_debug_offset_compatibility
      Src: /src/cpython/Python/remote_debugging.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - runtime_start_address
    - debug_offsets
    argTypes:
    - proc_handle_t*
    - uintptr_t*
    - _Py_DebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: read_offsets
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - ensure_debug_offset_compatibility
    - _Py_RemoteDebug_ReadDebugOffsets
    linkageType: ''
    returnType: int
    signature: "int read_offsets(\n    proc_handle_t *handle,\n    uintptr_t *runtime_start_address,\n
      \   _Py_DebugOffsets* debug_offsets\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: read_offsets
      Src: /src/cpython/Python/remote_debugging.c:214,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:221,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:231,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:236,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:246,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:256,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:265,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:278,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:289,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:295,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:305,1
    - Dst: strlen
      Src: /src/cpython/Python/remote_debugging.c:313,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:314,1
    - Dst: write_memory
      Src: /src/cpython/Python/remote_debugging.c:322,1
    - Dst: strlen
      Src: /src/cpython/Python/remote_debugging.c:325,1
    - Dst: write_memory
      Src: /src/cpython/Python/remote_debugging.c:336,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:347,1
    - Dst: write_memory
      Src: /src/cpython/Python/remote_debugging.c:358,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 3
    argNames:
    - handle
    - tid
    - debugger_script_path
    argTypes:
    - proc_handle_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 369
    functionName: send_exec_to_proc_handle
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - write_memory
    - strlen
    - PyErr_SetString
    - read_memory
    - read_offsets
    linkageType: ''
    returnType: int
    signature: int send_exec_to_proc_handle(proc_handle_t *handle, int tid, const
      char *debugger_script_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:377,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:380,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/remote_debugging.c:384,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/remote_debugging.c:385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:387,1
    - Dst: init_proc_handle
      Src: /src/cpython/Python/remote_debugging.c:392,1
    - Dst: send_exec_to_proc_handle
      Src: /src/cpython/Python/remote_debugging.c:396,1
    - Dst: cleanup_proc_handle
      Src: /src/cpython/Python/remote_debugging.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pid
    - tid
    - debugger_script_path
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 400
    functionName: _PySysRemoteDebug_SendExec
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - send_exec_to_proc_handle
    - PyErr_SetString
    - init_proc_handle
    - _PyThreadState_GET
    - _PyInterpreterState_GetConfig
    - cleanup_proc_handle
    linkageType: ''
    returnType: int
    signature: int _PySysRemoteDebug_SendExec(int pid, int tid, const char *debugger_script_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xidregistry_init
      Src: /src/cpython/Python/crossinterp_data_lookup.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyXIData_lookup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: xid_lookup_init
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _xidregistry_init
    linkageType: ''
    returnType: void
    signature: void xid_lookup_init(_PyXIData_lookup_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xidregistry_fini
      Src: /src/cpython/Python/crossinterp_data_lookup.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyXIData_lookup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: xid_lookup_fini
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _xidregistry_fini
    linkageType: ''
    returnType: void
    signature: void xid_lookup_fini(_PyXIData_lookup_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_GET_GLOBAL_STATE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:36,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:38,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp_data_lookup.h:38,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:41,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:43,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp_data_lookup.h:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tstate
    - res
    argTypes:
    - PyThreadState*
    - dlcontext_t*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    - condition: (PyErr_Occurred())
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: get_lookup_context
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyXI_GET_GLOBAL_STATE
    - _PyXI_GET_STATE
    - assert
    linkageType: ''
    returnType: int
    signature: int get_lookup_context(PyThreadState *tstate, dlcontext_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lookup_getdata_from_registry
      Src: /src/cpython/Python/crossinterp_data_lookup.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - obj
    argTypes:
    - dlcontext_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: lookup_getdata
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _lookup_getdata_from_registry
    linkageType: ''
    returnType: _PyXIData_getdata_t
    signature: _PyXIData_getdata_t lookup_getdata(dlcontext_t *ctx, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_notshareableerror_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:68,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (exctype != NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: _PyXIData_GetNotShareableErrorType
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 2
    functionsReached:
    - assert
    - get_notshareableerror_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXIData_GetNotShareableErrorType(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_notshareableerror
      Src: /src/cpython/Python/crossinterp_data_lookup.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - msg
    argTypes:
    - PyThreadState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: _PyXIData_SetNotShareableError
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - set_notshareableerror
    linkageType: ''
    returnType: void
    signature: void _PyXIData_SetNotShareableError(PyThreadState *tstate, const char
      *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/crossinterp_data_lookup.h:86,1
    - Dst: format_notshareableerror_v
      Src: /src/cpython/Python/crossinterp_data_lookup.h:87,1
    - Dst: va_end
      Src: /src/cpython/Python/crossinterp_data_lookup.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tstate
    - format
    argTypes:
    - PyThreadState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: _PyXIData_FormatNotShareableError
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - format_notshareableerror_v
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void _PyXIData_FormatNotShareableError(PyThreadState *tstate,\n                                  const
      char *format, ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_notshareableerror_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:94,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:95,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/crossinterp_data_lookup.h:96,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp_data_lookup.h:99,1
    - Dst: _PyXI_InitFailure
      Src: /src/cpython/Python/crossinterp_data_lookup.h:102,1
    - Dst: PyException_GetCause
      Src: /src/cpython/Python/crossinterp_data_lookup.h:106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:108,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:112,1
    - Dst: PyException_GetContext
      Src: /src/cpython/Python/crossinterp_data_lookup.h:112,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp_data_lookup.h:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - tstate
    - failure
    argTypes:
    - PyThreadState*
    - _PyXI_failure*
    assertStmts:
    - condition: (exctype != NULL)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    - condition: (PyException_GetContext(exc) == NULL)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: _PyXI_UnwrapNotShareableError
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - PyException_GetContext
    - get_notshareableerror_type
    - _PyXI_InitFailure
    - PyException_GetCause
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyXI_UnwrapNotShareableError(PyThreadState * tstate, _PyXI_failure
      *failure)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_lookup_context
      Src: /src/cpython/Python/crossinterp_data_lookup.h:123,1
    - Dst: lookup_getdata
      Src: /src/cpython/Python/crossinterp_data_lookup.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tstate
    - obj
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: _PyXIData_Lookup
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - lookup_getdata
    - get_lookup_context
    linkageType: ''
    returnType: _PyXIData_getdata_t
    signature: _PyXIData_getdata_t _PyXIData_Lookup(PyThreadState *tstate, PyObject
      *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:153,1
    - Dst: _register_builtins_for_crossinterpreter_data
      Src: /src/cpython/Python/crossinterp_data_lookup.h:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - registry
    argTypes:
    - dlregistry_t*
    assertStmts:
    - condition: (registry->head == NULL)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: _xidregistry_init
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - assert
    - _register_builtins_for_crossinterpreter_data
    linkageType: ''
    returnType: void
    signature: void _xidregistry_init(dlregistry_t *registry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xidregistry_clear
      Src: /src/cpython/Python/crossinterp_data_lookup.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - registry
    argTypes:
    - dlregistry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 169
    functionName: _xidregistry_fini
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - _xidregistry_clear
    linkageType: ''
    returnType: void
    signature: void _xidregistry_fini(dlregistry_t *registry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - registry
    argTypes:
    - dlregistry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 8
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: _xidregistry_lock
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    linkageType: ''
    returnType: void
    signature: void _xidregistry_lock(dlregistry_t *registry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - registry
    argTypes:
    - dlregistry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: _xidregistry_unlock
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void _xidregistry_unlock(dlregistry_t *registry)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cls
    argTypes:
    - dlcontext_t*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: _get_xidregistry_for_type
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dlregistry_t
    signature: 'dlregistry_t *

      _get_xidregistry_for_type(dlcontext_t *ctx, PyTypeObject *cls)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:212,1
    - Dst: _xidregistry_remove_entry
      Src: /src/cpython/Python/crossinterp_data_lookup.h:215,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:218,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:218,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:219,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - xidregistry
    - cls
    argTypes:
    - dlregistry_t*
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(registered))
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    - condition: (cur->cls == (PyTypeObject *)registered)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    - condition: (cur->cls->tp_flags & Py_TPFLAGS_HEAPTYPE)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 229
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 229
    functionName: _xidregistry_find_type
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_DECREF
    - _xidregistry_remove_entry
    - _PyWeakref_GET_REF
    - assert
    linkageType: ''
    returnType: dlregitem_t
    signature: 'dlregitem_t *

      _xidregistry_find_type(dlregistry_t *xidregistry, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:234,1
    - Dst: _get_xidregistry_for_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:236,1
    - Dst: _xidregistry_lock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:237,1
    - Dst: _xidregistry_find_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:239,1
    - Dst: _xidregistry_unlock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - obj
    argTypes:
    - dlcontext_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 9
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: _lookup_getdata_from_registry
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - _get_xidregistry_for_type
    - _xidregistry_lock
    - _xidregistry_find_type
    - Py_TYPE
    - _xidregistry_unlock
    linkageType: ''
    returnType: _PyXIData_getdata_t
    signature: _PyXIData_getdata_t _lookup_getdata_from_registry(dlcontext_t *ctx,
      PyObject *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/crossinterp_data_lookup.h:255,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:259,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Python/crossinterp_data_lookup.h:268,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - xidregistry
    - cls
    - getdata
    argTypes:
    - dlregistry_t*
    - PyTypeObject*
    - _PyXIData_getdata_t
    assertStmts:
    - condition: ((getdata.basic == NULL) != (getdata.fallback == NULL))
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 280
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 280
    functionName: _xidregistry_add_type
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyWeakref_NewRef
    - PyMem_RawMalloc
    - assert
    linkageType: ''
    returnType: int
    signature: "int _xidregistry_add_type(dlregistry_t *xidregistry,\n                      PyTypeObject
      *cls, _PyXIData_getdata_t getdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:287,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:291,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:297,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - xidregistry
    - entry
    argTypes:
    - dlregistry_t*
    - dlregitem_t*
    assertStmts:
    - condition: (entry->prev->next == entry)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    - condition: (xidregistry->head == entry)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 300
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 300
    functionName: _xidregistry_remove_entry
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: dlregitem_t
    signature: 'dlregitem_t *

      _xidregistry_remove_entry(dlregistry_t *xidregistry, dlregitem_t *entry)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:309,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - xidregistry
    argTypes:
    - dlregistry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: _xidregistry_clear
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _xidregistry_clear(dlregistry_t *xidregistry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:319,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp_data_lookup.h:320,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp_data_lookup.h:324,1
    - Dst: get_lookup_context
      Src: /src/cpython/Python/crossinterp_data_lookup.h:330,1
    - Dst: _get_xidregistry_for_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:333,1
    - Dst: _xidregistry_lock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:334,1
    - Dst: _xidregistry_find_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:336,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:338,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:339,1
    - Dst: _xidregistry_add_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:344,1
    - Dst: _xidregistry_unlock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - tstate
    - cls
    - getdata
    argTypes:
    - PyThreadState*
    - PyTypeObject*
    - _PyXIData_getdata_t
    assertStmts:
    - condition: (matched->getdata.basic == getdata.basic)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    - condition: (matched->getdata.fallback == getdata.fallback)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 349
      start: 315
    functionDepth: 9
    functionLinenumber: 315
    functionLinenumberEnd: 349
    functionName: _PyXIData_RegisterClass
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - PyType_Check
    - get_lookup_context
    - _get_xidregistry_for_type
    - _xidregistry_lock
    - _xidregistry_add_type
    - _xidregistry_find_type
    - PyErr_Format
    - assert
    - _xidregistry_unlock
    linkageType: ''
    returnType: int
    signature: "int _PyXIData_RegisterClass(PyThreadState *tstate,\n                        PyTypeObject
      *cls, _PyXIData_getdata_t getdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_lookup_context
      Src: /src/cpython/Python/crossinterp_data_lookup.h:356,1
    - Dst: _get_xidregistry_for_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:359,1
    - Dst: _xidregistry_lock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:360,1
    - Dst: _xidregistry_find_type
      Src: /src/cpython/Python/crossinterp_data_lookup.h:362,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:364,1
    - Dst: _xidregistry_remove_entry
      Src: /src/cpython/Python/crossinterp_data_lookup.h:367,1
    - Dst: _xidregistry_unlock
      Src: /src/cpython/Python/crossinterp_data_lookup.h:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - tstate
    - cls
    argTypes:
    - PyThreadState*
    - PyTypeObject*
    assertStmts:
    - condition: (matched->refcount > 0)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 374
      start: 351
    functionDepth: 9
    functionLinenumber: 351
    functionLinenumberEnd: 374
    functionName: _PyXIData_UnregisterClass
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - get_lookup_context
    - _get_xidregistry_for_type
    - _xidregistry_lock
    - _xidregistry_remove_entry
    - _xidregistry_find_type
    - assert
    - _xidregistry_unlock
    linkageType: ''
    returnType: int
    signature: int _PyXIData_UnregisterClass(PyThreadState *tstate, PyTypeObject *cls)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:386,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp_data_lookup.h:387,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Python/crossinterp_data_lookup.h:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - _PyBytes_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: _PyBytes_GetData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyBytes_AsStringAndSize
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PyBytes_GetData(PyObject *obj, _PyBytes_data_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/crossinterp_data_lookup.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyBytes_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: _PyBytes_FromData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromData(_PyBytes_data_t *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:412,1
    - Dst: _PyXIData_OBJ
      Src: /src/cpython/Python/crossinterp_data_lookup.h:412,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:413,1
    - Dst: _PyXIData_OBJ
      Src: /src/cpython/Python/crossinterp_data_lookup.h:413,1
    - Dst: _PyBytes_FromData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: "(_PyXIData_OBJ(xidata) != NULL\n            && PyBytes_Check(_PyXIData_OBJ(xidata)))"
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 5
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: _PyBytes_FromXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - _PyBytes_FromData
    - assert
    - _PyXIData_OBJ
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromXIData(_PyXIData_t *xidata)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:422,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:423,1
    - Dst: _PyXIData_InitWithSize
      Src: /src/cpython/Python/crossinterp_data_lookup.h:424,1
    - Dst: _PyBytes_GetData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:430,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Python/crossinterp_data_lookup.h:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - tstate
    - obj
    - size
    - newfunc
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - size_t
    - xid_newobjfunc
    - _PyXIData_t*
    assertStmts:
    - condition: (size >= sizeof(_PyBytes_data_t))
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    - condition: (newfunc != NULL)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 435
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 435
    functionName: _bytes_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _PyXIData_Clear
    - _PyBytes_GetData
    - _PyXIData_InitWithSize
    - assert
    linkageType: ''
    returnType: int
    signature: "int _bytes_shared(PyThreadState *tstate,\n              PyObject *obj,
      size_t size, xid_newobjfunc newfunc,\n              _PyXIData_t *xidata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:440,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp_data_lookup.h:441,1
    - Dst: _bytes_shared
      Src: /src/cpython/Python/crossinterp_data_lookup.h:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: _PyBytes_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - _bytes_shared
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PyBytes_GetXIData(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:453,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp_data_lookup.h:454,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp_data_lookup.h:458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp_data_lookup.h:464,1
    - Dst: _bytes_shared
      Src: /src/cpython/Python/crossinterp_data_lookup.h:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - tstate
    - obj
    - size
    - newfunc
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - size_t
    - xid_newobjfunc
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 473
    functionName: _PyBytes_GetXIDataWrapped
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyErr_SetString
    - _bytes_shared
    - PyErr_Format
    linkageType: ''
    returnType: _PyBytes_data_t
    signature: "_PyBytes_data_t *\n_PyBytes_GetXIDataWrapped(PyThreadState *tstate,\n
      \                         PyObject *obj, size_t size, xid_newobjfunc newfunc,\n
      \                         _PyXIData_t *xidata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 7
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: _new_str_object
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_str_object(_PyXIData_t *xidata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_InitWithSize
      Src: /src/cpython/Python/crossinterp_data_lookup.h:493,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/crossinterp_data_lookup.h:501,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/crossinterp_data_lookup.h:502,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/crossinterp_data_lookup.h:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 505
    functionName: _str_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - _PyXIData_InitWithSize
    linkageType: ''
    returnType: int
    signature: int _str_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t *xidata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/crossinterp_data_lookup.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: _new_long_object
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_long_object(_PyXIData_t *xidata)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/crossinterp_data_lookup.h:522,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp_data_lookup.h:523,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/crossinterp_data_lookup.h:524,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp_data_lookup.h:525,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Python/crossinterp_data_lookup.h:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 532
    functionName: _long_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - _PyXIData_Init
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _long_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/crossinterp_data_lookup.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 541
    functionName: _new_float_object
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_float_object(_PyXIData_t *xidata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_InitWithSize
      Src: /src/cpython/Python/crossinterp_data_lookup.h:546,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/crossinterp_data_lookup.h:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 556
    functionName: _float_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - _PyXIData_InitWithSize
    linkageType: ''
    returnType: int
    signature: int _float_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp_data_lookup.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 565
    functionName: _new_none_object
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_none_object(_PyXIData_t *xidata)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_Init
      Src: /src/cpython/Python/crossinterp_data_lookup.h:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 573
    functionName: _none_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _PyXIData_Init
    linkageType: ''
    returnType: int
    signature: int _none_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 584
    functionName: _new_bool_object
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_bool_object(_PyXIData_t *xidata)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_Init
      Src: /src/cpython/Python/crossinterp_data_lookup.h:589,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Python/crossinterp_data_lookup.h:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 594
    functionName: _bool_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _PyXIData_Init
    - Py_IsTrue
    linkageType: ''
    returnType: int
    signature: int _bool_shared(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/crossinterp_data_lookup.h:607,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Python/crossinterp_data_lookup.h:613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:615,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/crossinterp_data_lookup.h:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 621
    functionName: _new_tuple_object
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - PyTuple_New
    - Py_DECREF
    - _PyXIData_NewObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_tuple_object(_PyXIData_t *xidata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/crossinterp_data_lookup.h:628,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/crossinterp_data_lookup.h:628,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:632,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp_data_lookup.h:632,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Python/crossinterp_data_lookup.h:633,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:634,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/crossinterp_data_lookup.h:638,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (_PyXIData_INTERPID(shared->items[i]) == interpid)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 640
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 640
    functionName: _tuple_shared_free
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyInterpreterState_GetID
    - PyMem_RawFree
    - _PyXIData_Release
    - _PyInterpreterState_GET
    - PyMem_Free
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: void
    signature: void _tuple_shared_free(void* data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:646,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/crossinterp_data_lookup.h:650,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp_data_lookup.h:652,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/crossinterp_data_lookup.h:657,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp_data_lookup.h:659,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Python/crossinterp_data_lookup.h:664,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/crossinterp_data_lookup.h:668,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Python/crossinterp_data_lookup.h:671,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:672,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/crossinterp_data_lookup.h:673,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:676,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Python/crossinterp_data_lookup.h:681,1
    - Dst: _PyXIData_SET_FREE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:682,1
    - Dst: _tuple_shared_free
      Src: /src/cpython/Python/crossinterp_data_lookup.h:686,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - tstate
    - obj
    - fallback
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - xidata_fallback_t
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 688
    functionName: _tuple_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _PyXIData_New
    - PyMem_Calloc
    - PyTuple_GET_SIZE
    - _PyObject_GetXIData
    - PyMem_RawFree
    - _Py_EnterRecursiveCallTstate
    - _Py_LeaveRecursiveCallTstate
    - _PyXIData_Init
    - _PyXIData_SET_FREE
    - _tuple_shared_free
    - PyMem_RawMalloc
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: "int _tuple_shared(PyThreadState *tstate, PyObject *obj, xidata_fallback_t
      fallback,\n              _PyXIData_t *xidata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMarshal_ReadObjectFromXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 696
    functionName: _PyCode_FromXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - _PyMarshal_ReadObjectFromXIData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_FromXIData(_PyXIData_t *xidata)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:701,1
    - Dst: _PyXIData_FormatNotShareableError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:702,1
    - Dst: _PyMarshal_GetXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:705,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:708,1
    - Dst: _PyXIData_CHECK_NEW_OBJECT
      Src: /src/cpython/Python/crossinterp_data_lookup.h:708,1
    - Dst: _PyXIData_SET_NEW_OBJECT
      Src: /src/cpython/Python/crossinterp_data_lookup.h:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts:
    - condition: (_PyXIData_CHECK_NEW_OBJECT(xidata, _PyMarshal_ReadObjectFromXIData))
      pos:
        line_end: 707
        line_start: 707
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 711
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 711
    functionName: _PyCode_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - _PyMarshal_GetXIData
    - PyCode_Check
    - _PyXIData_CHECK_NEW_OBJECT
    - _PyXIData_SET_NEW_OBJECT
    - _PyXIData_FormatNotShareableError
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCode_GetXIData(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyMarshal_ReadObjectFromXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:720,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:727,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:727,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp_data_lookup.h:728,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/crossinterp_data_lookup.h:729,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp_data_lookup.h:731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:732,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/crossinterp_data_lookup.h:735,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:737,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:742,1
    - Dst: _PyEval_EnsureBuiltins
      Src: /src/cpython/Python/crossinterp_data_lookup.h:744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:746,1
    - Dst: PyFunction_New
      Src: /src/cpython/Python/crossinterp_data_lookup.h:749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (PyCode_Check(code))
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 753
      start: 715
    functionDepth: 11
    functionLinenumber: 715
    functionLinenumberEnd: 753
    functionName: _PyFunction_FromXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyCode_Check
    - Py_DECREF
    - PyFunction_New
    - _PyThreadState_GET
    - _PyEval_GetGlobalsFromRunningMain
    - PyDict_New
    - _PyMarshal_ReadObjectFromXIData
    - _PyErr_Occurred
    - assert
    - _PyEval_EnsureBuiltins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyFunction_FromXIData(_PyXIData_t *xidata)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:759,1
    - Dst: format_notshareableerror
      Src: /src/cpython/Python/crossinterp_data_lookup.h:761,1
    - Dst: _PyFunction_VerifyStateless
      Src: /src/cpython/Python/crossinterp_data_lookup.h:764,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp_data_lookup.h:765,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:766,1
    - Dst: set_notshareableerror
      Src: /src/cpython/Python/crossinterp_data_lookup.h:768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:769,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:772,1
    - Dst: _PyMarshal_GetXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:776,1
    - Dst: _PyXIData_SET_NEW_OBJECT
      Src: /src/cpython/Python/crossinterp_data_lookup.h:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - tstate
    - func
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 783
      start: 755
    functionDepth: 14
    functionLinenumber: 755
    functionLinenumberEnd: 783
    functionName: _PyFunction_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 2
    functionsReached:
    - _PyMarshal_GetXIData
    - format_notshareableerror
    - PyFunction_Check
    - Py_DECREF
    - _PyErr_GetRaisedException
    - set_notshareableerror
    - PyFunction_GET_CODE
    - _PyFunction_VerifyStateless
    - _PyXIData_SET_NEW_OBJECT
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyFunction_GetXIData(PyThreadState *tstate, PyObject *func,\n
      \                     _PyXIData_t *xidata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:798,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:798,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:799,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:803,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:804,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:808,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:809,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:813,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:814,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:818,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:819,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:823,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:824,1
    - Dst: REGISTER_FALLBACK
      Src: /src/cpython/Python/crossinterp_data_lookup.h:828,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:829,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - xidregistry
    argTypes:
    - dlregistry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 835
    functionName: _register_builtins_for_crossinterpreter_data
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - REGISTER_FALLBACK
    - Py_TYPE
    - Py_FatalError
    - REGISTER
    linkageType: ''
    returnType: void
    signature: void _register_builtins_for_crossinterpreter_data(dlregistry_t *xidregistry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - GETDATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 794
    functionName: REGISTER
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER(TYPE, GETDATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - GETDATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: REGISTER_FALLBACK
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_FALLBACK(TYPE, GETDATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: ENTER_RECURSIVE
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_RECURSIVE()
  - 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: LEAVE_RECURSIVE
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_RECURSIVE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: get_cf_finally_top
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ControlFlowInFinallyContext
    signature: 'ControlFlowInFinallyContext *

      get_cf_finally_top(_PyASTPreprocessState *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CArray_EnsureCapacity
      Src: /src/cpython/Python/ast_preprocess.c:44,1
    - Dst: get_cf_finally_top
      Src: /src/cpython/Python/ast_preprocess.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - state
    - node
    - finally
    - funcdef
    - loop
    argTypes:
    - _PyASTPreprocessState*
    - stmt_ty
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: push_cf_context
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - _Py_CArray_EnsureCapacity
    - get_cf_finally_top
    linkageType: ''
    returnType: int
    signature: int push_cf_context(_PyASTPreprocessState *state, stmt_ty node, bool
      finally, bool funcdef, bool loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast_preprocess.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyASTPreprocessState*
    assertStmts:
    - condition: (state->cf_finally_used > 0)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: pop_cf_context
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void pop_cf_context(_PyASTPreprocessState *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ast_preprocess.c:67,1
    - Dst: _PyErr_EmitSyntaxWarning
      Src: /src/cpython/Python/ast_preprocess.c:71,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - kw
    - n
    - state
    argTypes:
    - char*
    - stmt_ty
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 10
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: control_flow_in_finally_warning
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyErr_EmitSyntaxWarning
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int control_flow_in_finally_warning(const char *kw, stmt_ty n, _PyASTPreprocessState
      *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_cf_finally_top
      Src: /src/cpython/Python/ast_preprocess.c:82,1
    - Dst: control_flow_in_finally_warning
      Src: /src/cpython/Python/ast_preprocess.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - state
    - node_
    argTypes:
    - _PyASTPreprocessState*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 11
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: before_return
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - control_flow_in_finally_warning
    - get_cf_finally_top
    linkageType: ''
    returnType: int
    signature: int before_return(_PyASTPreprocessState *state, stmt_ty node_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_cf_finally_top
      Src: /src/cpython/Python/ast_preprocess.c:96,1
    - Dst: control_flow_in_finally_warning
      Src: /src/cpython/Python/ast_preprocess.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - state
    - node_
    - kw
    argTypes:
    - _PyASTPreprocessState*
    - stmt_ty
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 11
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: before_loop_exit
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - control_flow_in_finally_warning
    - get_cf_finally_top
    linkageType: ''
    returnType: int
    signature: int before_loop_exit(_PyASTPreprocessState *state, stmt_ty node_, const
      char *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - S
    - ','
    - N
    - ','
    - FINALLY
    - ','
    - FUNCDEF
    - ','
    - LOOP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: PUSH_CONTEXT
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_CONTEXT(S, N, FINALLY, FUNCDEF, LOOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: POP_CONTEXT
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POP_CONTEXT(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - S
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: BEFORE_FINALLY
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEFORE_FINALLY(S, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: AFTER_FINALLY
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AFTER_FINALLY(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - S
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: BEFORE_FUNC_BODY
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEFORE_FUNC_BODY(S, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: AFTER_FUNC_BODY
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AFTER_FUNC_BODY(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - S
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: BEFORE_LOOP_BODY
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEFORE_LOOP_BODY(S, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: AFTER_LOOP_BODY
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AFTER_LOOP_BODY(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - S
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: BEFORE_RETURN
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEFORE_RETURN(S, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - S
    - ','
    - N
    - ','
    - KW
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: BEFORE_LOOP_EXIT
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEFORE_LOOP_EXIT(S, N, KW)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/ast_preprocess.c:136,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ast_preprocess.c:139,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/ast_preprocess.c:142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - node
    - val
    - arena
    argTypes:
    - expr_ty
    - PyObject*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: make_const
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 5
    functionsReached:
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - _PyArena_AddPyObject
    - Py_DECREF
    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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: COPY_NODE
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NODE(TO, FROM)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:157,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - elts
    argTypes:
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: has_starred
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int has_starred(asdl_expr_seq *elts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/ast_preprocess.c:170,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/ast_preprocess.c:171,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/ast_preprocess.c:172,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/ast_preprocess.c:177,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/ast_preprocess.c:180,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/ast_preprocess.c:192,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/ast_preprocess.c:195,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/ast_preprocess.c:196,1
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Python/ast_preprocess.c:196,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ast_preprocess.c:196,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_preprocess.c:197,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/ast_preprocess.c:203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:204,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Python/ast_preprocess.c:207,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - fmt
    - ppos
    - arena
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 167
    functionDepth: 8
    functionLinenumber: 167
    functionLinenumberEnd: 208
    functionName: parse_literal
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_Replace
    - _Py_LATIN1_CHR
    - _Py_DECLARE_STR
    - Py_DECREF
    - _Py_STR
    - PyUnicode_READ
    - Py_SETREF
    - _PyArena_AddPyObject
    - PyUnicode_DATA
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - _PyAST_Constant
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty parse_literal(PyObject *fmt, Py_ssize_t *ppos, PyArena *arena)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/ast_preprocess.c:216,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 6
    argNames:
    - fmt
    - ppos
    - spec
    - flags
    - width
    - prec
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 270
    functionName: simple_format_arg_parse
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int simple_format_arg_parse(PyObject *fmt, Py_ssize_t *ppos,\n                        int
      *spec, int *flags, int *width, int *prec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: simple_format_arg_parse
      Src: /src/cpython/Python/ast_preprocess.c:276,1
    - Dst: snprintf
      Src: /src/cpython/Python/ast_preprocess.c:286,1
    - Dst: snprintf
      Src: /src/cpython/Python/ast_preprocess.c:289,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ast_preprocess.c:293,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/ast_preprocess.c:297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:298,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Python/ast_preprocess.c:301,1
    - Dst: _PyAST_FormattedValue
      Src: /src/cpython/Python/ast_preprocess.c:306,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - fmt
    - ppos
    - arg
    - arena
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 313
    functionName: parse_format
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 1
    functionsReached:
    - _PyAST_FormattedValue
    - Py_DECREF
    - snprintf
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - simple_format_arg_parse
    - PyUnicode_FromString
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty parse_format(PyObject *fmt, Py_ssize_t *ppos, expr_ty arg,
      PyArena *arena)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/ast_preprocess.c:320,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:320,1
    - Dst: parse_literal
      Src: /src/cpython/Python/ast_preprocess.c:327,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:329,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast_preprocess.c:331,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/ast_preprocess.c:335,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:338,1
    - Dst: assert
      Src: /src/cpython/Python/ast_preprocess.c:342,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/ast_preprocess.c:342,1
    - Dst: parse_format
      Src: /src/cpython/Python/ast_preprocess.c:344,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:344,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast_preprocess.c:347,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:349,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:351,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Python/ast_preprocess.c:355,1
    - Dst: COPY_NODE
      Src: /src/cpython/Python/ast_preprocess.c:362,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - node
    - fmt
    - elts
    - arena
    argTypes:
    - expr_ty
    - PyObject*
    - asdl_expr_seq*
    - PyArena*
    assertStmts:
    - condition: (PyUnicode_READ_CHAR(fmt, pos) == '%')
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 365
      start: 315
    functionDepth: 9
    functionLinenumber: 315
    functionLinenumberEnd: 365
    functionName: optimize_format
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - parse_literal
    - asdl_seq_SET
    - asdl_seq_GET
    - PyErr_Occurred
    - _PyAST_JoinedStr
    - asdl_seq_LEN
    - parse_format
    - _Py_asdl_expr_seq_new
    - PyUnicode_READ_CHAR
    - COPY_NODE
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int optimize_format(expr_ty node, PyObject *fmt, asdl_expr_seq *elts,
      PyArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ast_preprocess.c:383,1
    - Dst: has_starred
      Src: /src/cpython/Python/ast_preprocess.c:384,1
    - Dst: optimize_format
      Src: /src/cpython/Python/ast_preprocess.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - node
    - arena
    - state
    argTypes:
    - expr_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 367
    functionDepth: 10
    functionLinenumber: 367
    functionLinenumberEnd: 390
    functionName: fold_binop
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - optimize_format
    - has_starred
    linkageType: ''
    returnType: int
    signature: int fold_binop(expr_ty node, PyArena *arena, _PyASTPreprocessState
      *state)
  - 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: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: CALL
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 1
    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: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: CALL_OPT
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_OPT(FUNC, TYPE, ARG)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:427,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:430,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:431,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - stmts
    - idx
    argTypes:
    - asdl_stmt_seq*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 436
    functionName: stmt_seq_remove_item
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - asdl_seq_SET
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int stmt_seq_remove_item(asdl_stmt_seq *stmts, Py_ssize_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast_preprocess.c:441,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/ast_preprocess.c:441,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:444,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:445,1
    - Dst: _PyAST_Pass
      Src: /src/cpython/Python/ast_preprocess.c:446,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:456,1
    - Dst: stmt_seq_remove_item
      Src: /src/cpython/Python/ast_preprocess.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - stmts
    - idx
    - ctx_
    argTypes:
    - asdl_stmt_seq*
    - Py_ssize_t
    - PyArena*
    assertStmts:
    - condition: (_PyAST_GetDocString(stmts) != NULL)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 461
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 461
    functionName: remove_docstring
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - asdl_seq_SET
    - asdl_seq_GET
    - stmt_seq_remove_item
    - asdl_seq_LEN
    - _PyAST_Pass
    - _PyAST_GetDocString
    - assert
    linkageType: ''
    returnType: int
    signature: int remove_docstring(asdl_stmt_seq *stmts, Py_ssize_t idx, PyArena
      *ctx_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/ast_preprocess.c:466,1
    - Dst: remove_docstring
      Src: /src/cpython/Python/ast_preprocess.c:469,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:474,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/ast_preprocess.c:475,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:476,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/ast_preprocess.c:477,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:481,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Python/ast_preprocess.c:482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - stmts
    - ctx_
    - state
    argTypes:
    - asdl_stmt_seq*
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 491
    functionName: astfold_body
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - asdl_seq_SET
    - asdl_seq_GET
    - _PyAST_JoinedStr
    - CALL_SEQ
    - remove_docstring
    - _PyAST_GetDocString
    - _Py_asdl_expr_seq_new
    linkageType: ''
    returnType: int
    signature: int astfold_body(asdl_stmt_seq *stmts, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:498,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:501,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - mod_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 513
    functionName: astfold_mod
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:518,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:521,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:524,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:525,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:526,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:529,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:532,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:533,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:536,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:537,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:538,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:541,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:542,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:545,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:548,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:549,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:552,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:553,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:556,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:557,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:558,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:561,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:562,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:565,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:568,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:571,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:574,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:575,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:578,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:579,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:580,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:583,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:584,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:587,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:588,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:591,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:594,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:597,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:600,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:601,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:604,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:607,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:608,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:609,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:612,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:615,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/ast_preprocess.c:622,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:623,1
    - Dst: make_const
      Src: /src/cpython/Python/ast_preprocess.c:624,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/ast_preprocess.c:624,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:628,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:636,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 117
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - expr_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 638
    functionName: astfold_expr
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - LEAVE_RECURSIVE
    - PyBool_FromLong
    - CALL_SEQ
    - CALL
    - make_const
    - _PyUnicode_EqualToASCIIString
    - ENTER_RECURSIVE
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - keyword_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: astfold_keyword
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL
    linkageType: ''
    returnType: int
    signature: int astfold_keyword(keyword_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:650,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:651,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - comprehension_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 654
    functionName: astfold_comprehension
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_comprehension(comprehension_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:659,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:660,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:661,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:662,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:663,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:664,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - arguments_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 667
    functionName: astfold_arguments
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_OPT
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - arg_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 676
    functionName: astfold_arg
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:681,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:684,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:685,1
    - Dst: BEFORE_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:686,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:687,1
    - Dst: AFTER_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:688,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:689,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:691,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:696,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:697,1
    - Dst: BEFORE_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:698,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:699,1
    - Dst: AFTER_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:700,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:701,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:703,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:708,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:709,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:710,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:711,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:712,1
    - Dst: BEFORE_RETURN
      Src: /src/cpython/Python/ast_preprocess.c:715,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:716,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:719,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:722,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:723,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:726,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:727,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:730,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:732,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:734,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:737,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:738,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:739,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:742,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:743,1
    - Dst: BEFORE_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:744,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:745,1
    - Dst: AFTER_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:746,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:747,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:751,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:752,1
    - Dst: BEFORE_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:753,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:754,1
    - Dst: AFTER_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:755,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:756,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:760,1
    - Dst: BEFORE_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:761,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:762,1
    - Dst: AFTER_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:763,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:764,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:768,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:769,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:770,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:773,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:774,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:777,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:778,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:781,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:782,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:785,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:786,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:787,1
    - Dst: BEFORE_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:788,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:789,1
    - Dst: AFTER_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:790,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:794,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:795,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:796,1
    - Dst: BEFORE_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:797,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:798,1
    - Dst: AFTER_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:799,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:803,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:804,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:807,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:810,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:811,1
    - Dst: BEFORE_LOOP_EXIT
      Src: /src/cpython/Python/ast_preprocess.c:814,1
    - Dst: BEFORE_LOOP_EXIT
      Src: /src/cpython/Python/ast_preprocess.c:817,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:829,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 148
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - stmt_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 831
    functionName: astfold_stmt
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - AFTER_LOOP_BODY
    - BEFORE_FINALLY
    - BEFORE_FUNC_BODY
    - AFTER_FINALLY
    - LEAVE_RECURSIVE
    - CALL_SEQ
    - BEFORE_RETURN
    - BEFORE_LOOP_BODY
    - CALL
    - AFTER_FUNC_BODY
    - BEFORE_LOOP_EXIT
    - ENTER_RECURSIVE
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:838,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - excepthandler_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 845
    functionName: astfold_excepthandler
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_OPT
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:850,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - withitem_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 853
    functionName: astfold_withitem
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_OPT
    - CALL
    linkageType: ''
    returnType: int
    signature: int astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Negative
      Src: /src/cpython/Python/ast_preprocess.c:869,1
    - Dst: make_const
      Src: /src/cpython/Python/ast_preprocess.c:870,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:880,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/ast_preprocess.c:884,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Python/ast_preprocess.c:884,1
    - Dst: make_const
      Src: /src/cpython/Python/ast_preprocess.c:885,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - node
    - ctx_
    - state
    argTypes:
    - expr_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 894
    functionName: fold_const_match_patterns
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyNumber_Subtract
    - CALL
    - make_const
    - PyNumber_Add
    - PyNumber_Negative
    linkageType: ''
    returnType: int
    signature: int fold_const_match_patterns(expr_ty node, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:902,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:905,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:910,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:913,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:914,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:917,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:918,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:919,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:925,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:929,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:934,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - pattern_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 936
    functionName: astfold_pattern
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - LEAVE_RECURSIVE
    - ENTER_RECURSIVE
    - CALL
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_pattern(pattern_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:941,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:942,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - match_case_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 945
    functionName: astfold_match_case
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_OPT
    - CALL
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_match_case(match_case_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:952,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:953,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:956,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - type_param_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 963
    functionName: astfold_type_param
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_type_param(type_param_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/ast_preprocess.c:974,1
    - Dst: _Py_CArray_Init
      Src: /src/cpython/Python/ast_preprocess.c:979,1
    - Dst: astfold_mod
      Src: /src/cpython/Python/ast_preprocess.c:983,1
    - Dst: assert
      Src: /src/cpython/Python/ast_preprocess.c:984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast_preprocess.c:984,1
    - Dst: _Py_CArray_Fini
      Src: /src/cpython/Python/ast_preprocess.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - mod
    - arena
    - filename
    - optimize
    - ff_features
    - syntax_check_only
    argTypes:
    - mod_ty
    - PyArena*
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (ret || PyErr_Occurred())
      pos:
        line_end: 983
        line_start: 983
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 988
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 988
    functionName: _PyAST_Preprocess
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - _Py_CArray_Fini
    - memset
    - _Py_CArray_Init
    - astfold_mod
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyAST_Preprocess(mod_ty mod, PyArena *arena, PyObject *filename,
      int optimize,\n                  int ff_features, int syntax_check_only)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread__init_thread
      Src: /src/cpython/Python/thread.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: PyThread_init_thread
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 5
    functionsReached:
    - PyThread__init_thread
    linkageType: ''
    returnType: void
    signature: void PyThread_init_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/thread.c:83,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/thread.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: PyThread_allocate_lock
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 23
    functionsReached:
    - PyThread_init_thread
    - PyMem_RawMalloc
    linkageType: ''
    returnType: PyThread_type_lock
    signature: PyThread_type_lock PyThread_allocate_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/thread.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: PyThread_free_lock
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 25
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void PyThread_free_lock(PyThread_type_lock lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromMicrosecondsClamp
      Src: /src/cpython/Python/thread.c:114,1
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Python/thread.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - lock
    - microseconds
    - intr_flag
    argTypes:
    - PyThread_type_lock
    - PY_TIMEOUT_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 7
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: PyThread_acquire_lock_timed
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 2
    functionsReached:
    - _PyTime_FromMicrosecondsClamp
    - _PyMutex_LockTimed
    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: PyMutex_Unlock
      Src: /src/cpython/Python/thread.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: PyThread_release_lock
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 62
    functionsReached:
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void PyThread_release_lock(PyThread_type_lock lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/thread.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PyThread_type_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: _PyThread_at_fork_reinit
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 0
    functionsReached:
    - _PyMutex_at_fork_reinit
    linkageType: ''
    returnType: int
    signature: int _PyThread_at_fork_reinit(PyThread_type_lock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock_timed
      Src: /src/cpython/Python/thread.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lock
    - waitflag
    argTypes:
    - PyThread_type_lock
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 8
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: PyThread_acquire_lock
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 48
    functionsReached:
    - PyThread_acquire_lock_timed
    linkageType: ''
    returnType: int
    signature: int PyThread_acquire_lock(PyThread_type_lock lock, int waitflag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/thread.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: PyThread_get_stacksize
    functionSourceFile: /src/cpython/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/cpython/Python/thread.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: PyThread_set_stacksize
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 1
    functionsReached:
    - THREAD_SET_STACKSIZE
    linkageType: ''
    returnType: int
    signature: int PyThread_set_stacksize(size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread.c:174,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Python/thread.c:174,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/thread.c:180,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Python/thread.c:186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/thread.c:190,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Python/thread.c:195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/thread.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - arg
    - blocking
    - timeout_p
    argTypes:
    - PyObject*
    - int
    - PY_TIMEOUT_T*
    assertStmts:
    - condition: (_PyTime_FromSeconds(-1) == PyThread_UNSET_TIMEOUT)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/cpython/Python/thread.c
    constantsTouched: []
    func_position:
      end: 203
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 203
    functionName: PyThread_ParseTimeoutArg
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyTime_AsMicroseconds
    - _PyTime_FromSeconds
    - _PyTime_FromSecondsObject
    - assert
    linkageType: ''
    returnType: int
    signature: int PyThread_ParseTimeoutArg(PyObject *arg, int blocking, PY_TIMEOUT_T
      *timeout_p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/thread.c:209,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Python/thread.c:212,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Python/thread.c:218,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/cpython/Python/thread.c:221,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/cpython/Python/thread.c:224,1
    - Dst: _PyEval_MakePendingCalls
      Src: /src/cpython/Python/thread.c:232,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Python/thread.c:239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - lock
    - timeout
    argTypes:
    - PyThread_type_lock
    - PY_TIMEOUT_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 205
    functionDepth: 8
    functionLinenumber: 205
    functionLinenumberEnd: 251
    functionName: PyThread_acquire_lock_timed_with_retries
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 1
    functionsReached:
    - _PyDeadline_Init
    - _PyTime_AsMicroseconds
    - _PyDeadline_Get
    - _PyThreadState_GET
    - PyThread_acquire_lock_timed
    - _PyEval_MakePendingCalls
    linkageType: ''
    returnType: PyLockStatus
    signature: "PyLockStatus PyThread_acquire_lock_timed_with_retries(PyThread_type_lock
      lock,\n                                         PY_TIMEOUT_T timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/thread.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: PyThread_tss_alloc
    functionSourceFile: /src/cpython/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/cpython/Python/thread.c:274,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/thread.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: PyThread_tss_free
    functionSourceFile: /src/cpython/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/cpython/Python/thread.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/cpython/Python/thread.c
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: PyThread_tss_is_created
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_is_created(Py_tss_t *key)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/thread.c:319,1
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Python/thread.c:320,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/thread.c:324,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/thread.c:328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/thread.c:330,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/thread.c:333,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/thread.c:336,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/thread.c:338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/thread.c:340,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/thread.c:344,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/thread.c:346,1
    - Dst: confstr
      Src: /src/cpython/Python/thread.c:351,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Python/thread.c:353,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/thread.c:355,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/thread.c:360,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/thread.c:362,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 364
    functionName: PyThread_GetInfo
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - _PyInterpreterState_GET
    - Py_NewRef
    - PyStructSequence_SET_ITEM
    - PyUnicode_DecodeFSDefaultAndSize
    - confstr
    - _PyStructSequence_InitBuiltin
    - PyUnicode_FromString
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThread_GetInfo(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/thread.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: _PyThread_FiniType
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 0
    functionsReached:
    - _PyStructSequence_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PyThread_FiniType(PyInterpreterState *interp)
  - 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: _PyLegacyEventHandler_CAST
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyLegacyEventHandler_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:33,1
    - Dst: PyEval_GetFrame
      Src: /src/cpython/Python/legacy_tracing.c:37,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/legacy_tracing.c:39,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/legacy_tracing.c:43,1
    - Dst: PyThreadState*::c_profilefunc
      Src: /src/cpython/Python/legacy_tracing.c:44,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - _PyLegacyEventHandler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: call_profile_func
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyEval_GetFrame
    - PyErr_SetString
    - _PyThreadState_GET
    - PyThreadState*::c_profilefunc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_profile_func(_PyLegacyEventHandler *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:57,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:58,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:59,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:59,1
    - Dst: call_profile_func
      Src: /src/cpython/Python/legacy_tracing.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 2)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: sys_profile_start
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_profile_start(\n    PyObject *callable, PyObject *const
      *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:68,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:69,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:70,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:70,1
    - Dst: call_profile_func
      Src: /src/cpython/Python/legacy_tracing.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: sys_profile_throw
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_profile_throw(\n    PyObject *callable, PyObject *const
      *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:79,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:80,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:81,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:81,1
    - Dst: call_profile_func
      Src: /src/cpython/Python/legacy_tracing.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: sys_profile_return
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_profile_return(\n    PyObject *callable, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:90,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:91,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:92,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:92,1
    - Dst: call_profile_func
      Src: /src/cpython/Python/legacy_tracing.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: sys_profile_unwind
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_profile_unwind(\n    PyObject *callable, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:101,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:102,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:103,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:103,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Python/legacy_tracing.c:105,1
    - Dst: call_profile_func
      Src: /src/cpython/Python/legacy_tracing.c:106,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/legacy_tracing.c:108,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/legacy_tracing.c:117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/legacy_tracing.c:118,1
    - Dst: call_profile_func
      Src: /src/cpython/Python/legacy_tracing.c:122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - op
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) == 4)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sys_profile_call_or_return
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - _PyLegacyEventHandler_CAST
    - Py_DECREF
    - call_profile_func
    - PyVectorcall_NARGS
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_profile_call_or_return(\n    PyObject *op, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyMonitoring_GetLocalEvents
      Src: /src/cpython/Python/legacy_tracing.c:133,1
    - Dst: _PyMonitoring_SetLocalEvents
      Src: /src/cpython/Python/legacy_tracing.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - code
    - enable
    argTypes:
    - PyCodeObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 6
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: set_opcode_trace_world_stopped
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyMonitoring_GetLocalEvents
    - _PyMonitoring_SetLocalEvents
    linkageType: ''
    returnType: int
    signature: int set_opcode_trace_world_stopped(PyCodeObject *code, bool enable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:154,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/legacy_tracing.c:156,1
    - Dst: _PyMonitoring_GetLocalEvents
      Src: /src/cpython/Python/legacy_tracing.c:161,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/legacy_tracing.c:170,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:171,1
    - Dst: set_opcode_trace_world_stopped
      Src: /src/cpython/Python/legacy_tracing.c:172,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - frame
    - enable
    argTypes:
    - PyFrameObject*
    - bool
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 7
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: _PyEval_SetOpcodeTrace
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 2
    functionsReached:
    - assert
    - _PyInterpreterState_GET
    - _PyMonitoring_GetLocalEvents
    - set_opcode_trace_world_stopped
    - _PyEval_StopTheWorld
    - _PyFrame_GetCode
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetOpcodeTrace(PyFrameObject *frame, bool enable)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:180,1
    - Dst: PyEval_GetFrame
      Src: /src/cpython/Python/legacy_tracing.c:184,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/legacy_tracing.c:186,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Python/legacy_tracing.c:191,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/legacy_tracing.c:196,1
    - Dst: PyThreadState*::c_tracefunc
      Src: /src/cpython/Python/legacy_tracing.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - _PyLegacyEventHandler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: call_trace_func
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyEval_SetOpcodeTrace
    - Py_DECREF
    - PyEval_GetFrame
    - PyErr_SetString
    - _PyThreadState_GET
    - PyThreadState*::c_tracefunc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_trace_func(_PyLegacyEventHandler *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:211,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:212,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:213,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:213,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:215,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/legacy_tracing.c:215,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/legacy_tracing.c:216,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/legacy_tracing.c:217,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/legacy_tracing.c:219,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/legacy_tracing.c:221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:222,1
    - Dst: call_trace_func
      Src: /src/cpython/Python/legacy_tracing.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 229
      start: 206
    functionDepth: 9
    functionLinenumber: 206
    functionLinenumberEnd: 229
    functionName: sys_trace_exception_func
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyLegacyEventHandler_CAST
    - Py_DECREF
    - PyException_GetTraceback
    - Py_NewRef
    - PyVectorcall_NARGS
    - PyTuple_Pack
    - call_trace_func
    - Py_TYPE
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_exception_func(\n    PyObject *callable, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:236,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:237,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:238,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:238,1
    - Dst: call_trace_func
      Src: /src/cpython/Python/legacy_tracing.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) == 2)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 9
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: sys_trace_start
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - call_trace_func
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_start(\n    PyObject *callable, PyObject *const
      *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:247,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:248,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:249,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:249,1
    - Dst: call_trace_func
      Src: /src/cpython/Python/legacy_tracing.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 9
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: sys_trace_throw
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - call_trace_func
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_throw(\n    PyObject *callable, PyObject *const
      *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:258,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:259,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:260,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:260,1
    - Dst: call_trace_func
      Src: /src/cpython/Python/legacy_tracing.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 9
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: sys_trace_unwind
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - call_trace_func
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_unwind(\n    PyObject *callable, PyObject *const
      *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:269,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:270,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/legacy_tracing.c:270,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:271,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:272,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:272,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:273,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/legacy_tracing.c:273,1
    - Dst: call_trace_func
      Src: /src/cpython/Python/legacy_tracing.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyCode_Check(args[0]))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 9
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: sys_trace_return
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyLegacyEventHandler_CAST
    - PyCode_Check
    - PyErr_Occurred
    - PyVectorcall_NARGS
    - call_trace_func
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_return(\n    PyObject *callable, PyObject *const
      *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:284,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:285,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:286,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:286,1
    - Dst: call_trace_func
      Src: /src/cpython/Python/legacy_tracing.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 9
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: sys_trace_yield
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    - call_trace_func
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_yield(\n    PyObject *callable, PyObject *const
      *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:295,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:296,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:297,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:297,1
    - Dst: PyEval_GetFrame
      Src: /src/cpython/Python/legacy_tracing.c:298,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/legacy_tracing.c:300,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:304,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Python/legacy_tracing.c:306,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/legacy_tracing.c:311,1
    - Dst: PyThreadState*::c_tracefunc
      Src: /src/cpython/Python/legacy_tracing.c:312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL)
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 2)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 319
      start: 290
    functionDepth: 8
    functionLinenumber: 290
    functionLinenumberEnd: 319
    functionName: sys_trace_instruction_func
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyLegacyEventHandler_CAST
    - _PyEval_SetOpcodeTrace
    - Py_DECREF
    - PyErr_SetString
    - PyEval_GetFrame
    - _PyThreadState_GET
    - PyThreadState*::c_tracefunc
    - PyVectorcall_NARGS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_instruction_func(\n    PyObject *callable, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Python/legacy_tracing.c:332,1
    - Dst: PyThreadState*::c_tracefunc
      Src: /src/cpython/Python/legacy_tracing.c:334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - tstate
    - self
    - frame
    - line
    argTypes:
    - PyThreadState*
    - _PyLegacyEventHandler*
    - PyFrameObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 341
    functionName: trace_line
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyThreadState*::c_tracefunc
    - Py_INCREF
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntrace_line(\n    PyThreadState *tstate, _PyLegacyEventHandler
      *self,\n    PyFrameObject *frame, int line\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:348,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:349,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:350,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:354,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:354,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/legacy_tracing.c:355,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:356,1
    - Dst: PyEval_GetFrame
      Src: /src/cpython/Python/legacy_tracing.c:357,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/legacy_tracing.c:359,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:363,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/legacy_tracing.c:363,1
    - Dst: trace_line
      Src: /src/cpython/Python/legacy_tracing.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 2)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (line >= 0)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (args[0] == (PyObject *)_PyFrame_GetCode(frame->f_frame))
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 365
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 365
    functionName: sys_trace_line_func
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyLegacyEventHandler_CAST
    - PyLong_AsInt
    - PyEval_GetFrame
    - PyErr_SetString
    - _PyFrame_GetCode
    - _PyThreadState_GET
    - trace_line
    - PyVectorcall_NARGS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_line_func(\n    PyObject *callable, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyEventHandler_CAST
      Src: /src/cpython/Python/legacy_tracing.c:375,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:376,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:377,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:381,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/legacy_tracing.c:381,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/legacy_tracing.c:382,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:383,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/legacy_tracing.c:384,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:385,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:391,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/legacy_tracing.c:391,1
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Python/legacy_tracing.c:394,1
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Python/legacy_tracing.c:395,1
    - Dst: PyEval_GetFrame
      Src: /src/cpython/Python/legacy_tracing.c:400,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/legacy_tracing.c:402,1
    - Dst: trace_line
      Src: /src/cpython/Python/legacy_tracing.c:409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (from >= 0)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (to >= 0)
      pos:
        line_end: 384
        line_start: 384
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyCode_Check(code))
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 410
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 410
    functionName: sys_trace_jump_func
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyLegacyEventHandler_CAST
    - PyCode_Check
    - PyLong_AsInt
    - _Py_Instrumentation_GetLine
    - PyEval_GetFrame
    - PyErr_SetString
    - _PyThreadState_GET
    - trace_line
    - PyVectorcall_NARGS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_trace_jump_func(\n    PyObject *callable, PyObject
      *const *args,\n    size_t nargsf, PyObject *kwnames\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/cpython/Python/legacy_tracing.c:426,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:432,1
    - Dst: _PyMonitoring_RegisterCallback
      Src: /src/cpython/Python/legacy_tracing.c:432,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:434,1
    - Dst: _PyMonitoring_RegisterCallback
      Src: /src/cpython/Python/legacy_tracing.c:434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/legacy_tracing.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - tool
    - vectorcall
    - legacy_event
    - event1
    - event2
    argTypes:
    - int
    - vectorcallfunc
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: set_callbacks
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _PyMonitoring_RegisterCallback
    - PyObject_NEW
    linkageType: ''
    returnType: int
    signature: int set_callbacks(int tool, vectorcallfunc vectorcall, int legacy_event,
      int event1, int event2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:448,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/legacy_tracing.c:448,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:449,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/legacy_tracing.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!_PyMem_IsPtrFreed(tstate))
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (!_PyMem_IsPtrFreed(tstate->interp))
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: is_tstate_valid
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyMem_IsPtrFreed
    - assert
    linkageType: ''
    returnType: int
    signature: int is_tstate_valid(PyThreadState *tstate)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:458,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:464,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:469,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:475,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:480,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:485,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:490,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - Py_UNUSED(arg)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 496
    functionName: setup_profile_callbacks
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - set_callbacks
    linkageType: ''
    returnType: int
    signature: int setup_profile_callbacks(void *Py_UNUSED(arg))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/legacy_tracing.c:504,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - func
    - arg
    argTypes:
    - PyThreadState*
    - Py_tracefunc
    - PyObject*
    assertStmts:
    - condition: (tstate->interp->sys_profiling_threads >= 0)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: swap_profile_func_arg
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      swap_profile_func_arg(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMonitoring_SetEvents
      Src: /src/cpython/Python/legacy_tracing.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 8
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: set_monitoring_profile_events
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyMonitoring_SetEvents
    linkageType: ''
    returnType: int
    signature: int set_monitoring_profile_events(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:527,1
    - Dst: is_tstate_valid
      Src: /src/cpython/Python/legacy_tracing.c:527,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/legacy_tracing.c:529,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:533,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/legacy_tracing.c:534,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/legacy_tracing.c:539,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:544,1
    - Dst: swap_profile_func_arg
      Src: /src/cpython/Python/legacy_tracing.c:545,1
    - Dst: set_monitoring_profile_events
      Src: /src/cpython/Python/legacy_tracing.c:546,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:547,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - tstate
    - func
    - arg
    argTypes:
    - PyThreadState*
    - Py_tracefunc
    - PyObject*
    assertStmts:
    - condition: (is_tstate_valid(tstate))
      pos:
        line_end: 526
        line_start: 526
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 550
      start: 524
    functionDepth: 9
    functionLinenumber: 524
    functionLinenumberEnd: 550
    functionName: _PyEval_SetProfile
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - _PyOnceFlag_CallOnce
    - swap_profile_func_arg
    - is_tstate_valid
    - _PyThreadState_GET
    - set_monitoring_profile_events
    - _PyEval_StopTheWorld
    - _PySys_Audit
    - _Py_AssertHoldsTstate
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:555,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:556,1
    - Dst: is_tstate_valid
      Src: /src/cpython/Python/legacy_tracing.c:556,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:557,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/legacy_tracing.c:559,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/legacy_tracing.c:563,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:569,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/legacy_tracing.c:570,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/legacy_tracing.c:575,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/legacy_tracing.c:577,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:578,1
    - Dst: swap_profile_func_arg
      Src: /src/cpython/Python/legacy_tracing.c:582,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/legacy_tracing.c:583,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/legacy_tracing.c:585,1
    - Dst: set_monitoring_profile_events
      Src: /src/cpython/Python/legacy_tracing.c:586,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:587,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - interp
    - func
    - arg
    argTypes:
    - PyInterpreterState*
    - Py_tracefunc
    - PyObject*
    assertStmts:
    - condition: (current_tstate->interp == interp)
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (is_tstate_valid(current_tstate))
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 590
      start: 552
    functionDepth: 9
    functionLinenumber: 552
    functionLinenumberEnd: 590
    functionName: _PyEval_SetProfileAllThreads
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyOnceFlag_CallOnce
    - PyTuple_New
    - swap_profile_func_arg
    - is_tstate_valid
    - PyTuple_SET_ITEM
    - HEAD_LOCK
    - _PyThreadState_GET
    - set_monitoring_profile_events
    - HEAD_UNLOCK
    - _PyEval_StopTheWorld
    - _PySys_Audit
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetProfileAllThreads(PyInterpreterState *interp, Py_tracefunc
      func, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 574
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap_profile_func_arg
      Src: /src/cpython/Python/legacy_tracing.c:582,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/legacy_tracing.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - swap_profile_func_arg
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, tstate)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:596,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:602,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:607,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:612,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:617,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:623,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:628,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:633,1
    - Dst: set_callbacks
      Src: /src/cpython/Python/legacy_tracing.c:638,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - Py_UNUSED(arg)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 592
    functionDepth: 4
    functionLinenumber: 592
    functionLinenumberEnd: 644
    functionName: setup_trace_callbacks
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - set_callbacks
    linkageType: ''
    returnType: int
    signature: int setup_trace_callbacks(void *Py_UNUSED(arg))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/legacy_tracing.c:652,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - func
    - arg
    argTypes:
    - PyThreadState*
    - Py_tracefunc
    - PyObject*
    assertStmts:
    - condition: (tstate->interp->sys_tracing_threads >= 0)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 656
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 656
    functionName: swap_trace_func_arg
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      swap_trace_func_arg(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMonitoring_SetEvents
      Src: /src/cpython/Python/legacy_tracing.c:671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 658
    functionDepth: 8
    functionLinenumber: 658
    functionLinenumberEnd: 672
    functionName: set_monitoring_trace_events
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - _PyMonitoring_SetEvents
    linkageType: ''
    returnType: int
    signature: int set_monitoring_trace_events(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_opcode_trace_world_stopped
      Src: /src/cpython/Python/legacy_tracing.c:686,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/legacy_tracing.c:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 675
    functionDepth: 7
    functionLinenumber: 675
    functionLinenumberEnd: 687
    functionName: maybe_set_opcode_trace
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - set_opcode_trace_world_stopped
    - _PyFrame_GetCode
    linkageType: ''
    returnType: int
    signature: int maybe_set_opcode_trace(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:692,1
    - Dst: is_tstate_valid
      Src: /src/cpython/Python/legacy_tracing.c:692,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/legacy_tracing.c:694,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:698,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/legacy_tracing.c:699,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/legacy_tracing.c:704,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:710,1
    - Dst: swap_trace_func_arg
      Src: /src/cpython/Python/legacy_tracing.c:711,1
    - Dst: set_monitoring_trace_events
      Src: /src/cpython/Python/legacy_tracing.c:712,1
    - Dst: maybe_set_opcode_trace
      Src: /src/cpython/Python/legacy_tracing.c:717,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:720,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - tstate
    - func
    - arg
    argTypes:
    - PyThreadState*
    - Py_tracefunc
    - PyObject*
    assertStmts:
    - condition: (is_tstate_valid(tstate))
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 723
      start: 689
    functionDepth: 9
    functionLinenumber: 689
    functionLinenumberEnd: 723
    functionName: _PyEval_SetTrace
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyOnceFlag_CallOnce
    - is_tstate_valid
    - set_monitoring_trace_events
    - swap_trace_func_arg
    - _PyThreadState_GET
    - _PyEval_StopTheWorld
    - _PySys_Audit
    - maybe_set_opcode_trace
    - _Py_AssertHoldsTstate
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/legacy_tracing.c:728,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:729,1
    - Dst: is_tstate_valid
      Src: /src/cpython/Python/legacy_tracing.c:729,1
    - Dst: assert
      Src: /src/cpython/Python/legacy_tracing.c:730,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/legacy_tracing.c:732,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/legacy_tracing.c:736,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:742,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/legacy_tracing.c:743,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/legacy_tracing.c:748,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/legacy_tracing.c:750,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:751,1
    - Dst: swap_trace_func_arg
      Src: /src/cpython/Python/legacy_tracing.c:755,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/legacy_tracing.c:756,1
    - Dst: maybe_set_opcode_trace
      Src: /src/cpython/Python/legacy_tracing.c:760,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/legacy_tracing.c:762,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:764,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/legacy_tracing.c:769,1
    - Dst: set_monitoring_trace_events
      Src: /src/cpython/Python/legacy_tracing.c:770,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:771,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - interp
    - func
    - arg
    argTypes:
    - PyInterpreterState*
    - Py_tracefunc
    - PyObject*
    assertStmts:
    - condition: (current_tstate->interp == interp)
      pos:
        line_end: 729
        line_start: 729
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (is_tstate_valid(current_tstate))
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/cpython/Python/legacy_tracing.c
    constantsTouched: []
    func_position:
      end: 774
      start: 725
    functionDepth: 9
    functionLinenumber: 725
    functionLinenumberEnd: 774
    functionName: _PyEval_SetTraceAllThreads
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyOnceFlag_CallOnce
    - PyTuple_New
    - is_tstate_valid
    - set_monitoring_trace_events
    - PyTuple_SET_ITEM
    - HEAD_LOCK
    - swap_trace_func_arg
    - _PyThreadState_GET
    - HEAD_UNLOCK
    - _PyEval_StopTheWorld
    - _PySys_Audit
    - maybe_set_opcode_trace
    - assert
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetTraceAllThreads(PyInterpreterState *interp, Py_tracefunc
      func, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 747
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap_trace_func_arg
      Src: /src/cpython/Python/legacy_tracing.c:755,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/legacy_tracing.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 757
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - swap_trace_func_arg
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: maybe_set_opcode_trace
      Src: /src/cpython/Python/legacy_tracing.c:760,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/legacy_tracing.c:762,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/legacy_tracing.c:763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/legacy_tracing.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 759
    functionDepth: 8
    functionLinenumber: 759
    functionLinenumberEnd: 767
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/legacy_tracing.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - maybe_set_opcode_trace
    - HEAD_UNLOCK
    - _PyEval_StartTheWorld
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, tstate)
  - 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: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: w_byte
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: w_byte(c, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:128,1
    - Dst: fwrite
      Src: /src/cpython/Python/marshal.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - WFILE*
    assertStmts:
    - condition: (p->fp != NULL)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: w_flush
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - fwrite
    - assert
    linkageType: ''
    returnType: void
    signature: void w_flush(WFILE *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: w_flush
      Src: /src/cpython/Python/marshal.c:140,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:143,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:145,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/marshal.c:150,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/marshal.c:156,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:161,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: 142
        line_start: 142
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 166
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 166
    functionName: w_reserve
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_flush
    - Py_MAX
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - 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/cpython/Python/marshal.c:177,1
    - Dst: w_flush
      Src: /src/cpython/Python/marshal.c:181,1
    - Dst: fwrite
      Src: /src/cpython/Python/marshal.c:182,1
    - Dst: w_reserve
      Src: /src/cpython/Python/marshal.c:186,1
    - Dst: memcpy
      Src: /src/cpython/Python/marshal.c:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - void*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 7
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: w_string
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 5
    functionsReached:
    - memcpy
    - w_flush
    - w_reserve
    - fwrite
    linkageType: ''
    returnType: void
    signature: void w_string(const void *s, Py_ssize_t n, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:196,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - p
    argTypes:
    - int
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: w_short
    functionSourceFile: /src/cpython/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/cpython/Python/marshal.c:203,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:204,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:205,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - p
    argTypes:
    - long
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: w_long
    functionSourceFile: /src/cpython/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: 220
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: W_SIZE
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W_SIZE(n, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: W_SIZE
      Src: /src/cpython/Python/marshal.c:227,1
    - Dst: w_string
      Src: /src/cpython/Python/marshal.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - void*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 8
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: w_pstring
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_string
    - W_SIZE
    linkageType: ''
    returnType: void
    signature: void w_pstring(const void *s, Py_ssize_t n, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: w_string
      Src: /src/cpython/Python/marshal.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - void*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 8
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: w_short_pstring
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_string
    linkageType: ''
    returnType: void
    signature: void w_short_pstring(const void *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: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: W_TYPE
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W_TYPE(t, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: _r_digits
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _r_digits(bitsize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:297,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/marshal.c:298,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:299,1
    - Dst: PyLong_Export
      Src: /src/cpython/Python/marshal.c:305,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/marshal.c:312,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:321,1
    - Dst: w_short
      Src: /src/cpython/Python/marshal.c:325,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Python/marshal.c:331,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:335,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:336,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:339,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:340,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:341,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:342,1
    - Dst: _r_digits32
      Src: /src/cpython/Python/marshal.c:345,1
    - Dst: _r_digits16
      Src: /src/cpython/Python/marshal.c:349,1
    - Dst: PyLong_FreeExport
      Src: /src/cpython/Python/marshal.c:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - ob
    - flag
    - p
    argTypes:
    - PyLongObject*
    - char
    - WFILE*
    assertStmts:
    - condition: (layout->bits_per_digit % PyLong_MARSHAL_SHIFT == 0)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit >= PyLong_MARSHAL_SHIFT)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Python/marshal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit <= 32)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 353
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 353
    functionName: w_PyLong
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_short
    - w_long
    - _r_digits16
    - _r_digits32
    - PyLong_FreeExport
    - Py_ABS
    - PyLong_GetNativeLayout
    - PyLong_Export
    - _PyLong_IsZero
    - W_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void w_PyLong(const PyLongObject *ob, char flag, WFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Python/marshal.c:359,1
    - Dst: w_string
      Src: /src/cpython/Python/marshal.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - double
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 355
    functionDepth: 8
    functionLinenumber: 355
    functionLinenumberEnd: 364
    functionName: w_float_bin
    functionSourceFile: /src/cpython/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/cpython/Python/marshal.c:369,1
    - Dst: w_short_pstring
      Src: /src/cpython/Python/marshal.c:374,1
    - Dst: strlen
      Src: /src/cpython/Python/marshal.c:374,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - double
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 9
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: w_float_str
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_short_pstring
    - PyMem_Free
    - PyOS_double_to_string
    - strlen
    linkageType: ''
    returnType: void
    signature: void w_float_str(double v, WFILE *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/marshal.c:391,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/marshal.c:392,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:392,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/marshal.c:396,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:401,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:402,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:403,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:409,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/marshal.c:413,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:415,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - v
    - flag
    - p
    argTypes:
    - PyObject*
    - char*
    - WFILE*
    assertStmts:
    - condition: (0 <= w && w <= 0x7fffffff)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 424
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 424
    functionName: w_ref
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - w_byte
    - w_long
    - PyUnicode_CheckExact
    - PyErr_SetString
    - _Py_hashtable_get_entry
    - PyUnicode_CHECK_INTERNED
    - Py_NewRef
    - _Py_hashtable_set
    - Py_REFCNT
    - assert
    linkageType: ''
    returnType: int
    signature: int w_ref(PyObject *v, char *flag, WFILE *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:440,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:443,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:446,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:449,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:452,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:455,1
    - Dst: w_ref
      Src: /src/cpython/Python/marshal.c:457,1
    - Dst: w_complex_object
      Src: /src/cpython/Python/marshal.c:458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 461
    functionName: w_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 7
    functionsReached:
    - w_ref
    - w_complex_object
    - w_byte
    linkageType: ''
    returnType: void
    signature: void w_object(PyObject *v, WFILE *p)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/marshal.c:468,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/marshal.c:470,1
    - Dst: w_PyLong
      Src: /src/cpython/Python/marshal.c:472,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Python/marshal.c:476,1
    - Dst: w_PyLong
      Src: /src/cpython/Python/marshal.c:479,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:484,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:485,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/marshal.c:489,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:491,1
    - Dst: w_float_bin
      Src: /src/cpython/Python/marshal.c:492,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/marshal.c:492,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:495,1
    - Dst: w_float_str
      Src: /src/cpython/Python/marshal.c:496,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/marshal.c:496,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/marshal.c:499,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:501,1
    - Dst: w_float_bin
      Src: /src/cpython/Python/marshal.c:502,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/cpython/Python/marshal.c:502,1
    - Dst: w_float_bin
      Src: /src/cpython/Python/marshal.c:503,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/cpython/Python/marshal.c:503,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:506,1
    - Dst: w_float_str
      Src: /src/cpython/Python/marshal.c:507,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/cpython/Python/marshal.c:507,1
    - Dst: w_float_str
      Src: /src/cpython/Python/marshal.c:508,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/cpython/Python/marshal.c:508,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/marshal.c:511,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:512,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:513,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:513,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:513,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/marshal.c:515,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Python/marshal.c:516,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/marshal.c:517,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:519,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:520,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:522,1
    - Dst: w_short_pstring
      Src: /src/cpython/Python/marshal.c:523,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/marshal.c:523,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/marshal.c:524,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:527,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:528,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:530,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:531,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/marshal.c:531,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/marshal.c:532,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/marshal.c:537,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:543,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:544,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:546,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:547,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:547,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:548,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/marshal.c:551,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/marshal.c:552,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:554,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:555,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:558,1
    - Dst: W_SIZE
      Src: /src/cpython/Python/marshal.c:559,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:562,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/marshal.c:562,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/marshal.c:565,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:566,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/marshal.c:567,1
    - Dst: W_SIZE
      Src: /src/cpython/Python/marshal.c:568,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:570,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/marshal.c:570,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/marshal.c:573,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:576,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/marshal.c:579,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:580,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:581,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:583,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/marshal.c:585,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/marshal.c:590,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:591,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:593,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/marshal.c:594,1
    - Dst: W_SIZE
      Src: /src/cpython/Python/marshal.c:595,1
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:600,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/marshal.c:606,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Python/marshal.c:607,1
    - Dst: _PyMarshal_WriteObjectToString
      Src: /src/cpython/Python/marshal.c:608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:612,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/marshal.c:615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:617,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/marshal.c:622,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/marshal.c:624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:626,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:629,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/marshal.c:630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:632,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/marshal.c:636,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/marshal.c:637,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:640,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/marshal.c:642,1
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Python/marshal.c:648,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:653,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:654,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:655,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:656,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:657,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:658,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:659,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:660,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:661,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:662,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:663,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:664,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:665,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:666,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:667,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:668,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:670,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Python/marshal.c:672,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/marshal.c:675,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:676,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:681,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:682,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/marshal.c:683,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/marshal.c:685,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:687,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:692,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:693,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:694,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:695,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:698,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 189
    argCount: 3
    argNames:
    - v
    - flag
    - p
    argTypes:
    - PyObject*
    - char
    - WFILE*
    assertStmts:
    - condition: (i == n)
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 701
      start: 463
    functionDepth: 10
    functionLinenumber: 463
    functionLinenumberEnd: 701
    functionName: w_complex_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - _PyMarshal_WriteObjectToString
    - Py_END_CRITICAL_SECTION
    - PyFrozenSet_CheckExact
    - w_long
    - PyComplex_ImagAsDouble
    - PyUnicode_IS_ASCII
    - PyLong_CheckExact
    - PyBytes_GET_SIZE
    - W_TYPE
    - w_byte
    - PyTuple_CheckExact
    - w_pstring
    - Py_BEGIN_CRITICAL_SECTION
    - PyTuple_GET_SIZE
    - _PyCode_GetCode
    - PyDict_CheckExact
    - PyComplex_CheckExact
    - PyList_GET_SIZE
    - _PySet_NextEntryRef
    - PyTuple_GET_ITEM
    - PyTuple_Pack
    - PyBytes_CheckExact
    - PyList_CheckExact
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyUnicode_CheckExact
    - Py_ARITHMETIC_RIGHT_SHIFT
    - PyUnicode_CHECK_INTERNED
    - w_PyLong
    - PyObject_GetBuffer
    - PyFloat_AS_DOUBLE
    - w_float_bin
    - PyBytes_AS_STRING
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - W_SIZE
    - PyCode_Check
    - PyList_GET_ITEM
    - w_object
    - PyList_Sort
    - PyFloat_CheckExact
    - w_short_pstring
    - PySet_GET_SIZE
    - PyObject_CheckBuffer
    - PyList_SET_ITEM
    - PyDict_Next
    - PyUnicode_AsEncodedString
    - PyAnySet_CheckExact
    - PyBuffer_Release
    - PySlice_Check
    - PyComplex_RealAsDouble
    - w_float_str
    - assert
    linkageType: ''
    returnType: void
    signature: void w_complex_object(PyObject *v, char flag, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 708
    functionName: w_decref_entry
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void w_decref_entry(void *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/marshal.c:714,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - wf
    - version
    argTypes:
    - WFILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 723
    functionName: w_init_refs
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_new_full
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int w_init_refs(WFILE *wf, int version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/marshal.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wf
    argTypes:
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 731
    functionName: w_clear_refs
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: void
    signature: void w_clear_refs(WFILE *wf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/marshal.c:743,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:749,1
    - Dst: w_flush
      Src: /src/cpython/Python/marshal.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - fp
    - version
    argTypes:
    - long
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 751
    functionName: PyMarshal_WriteLongToFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - w_long
    - w_flush
    - memset
    linkageType: ''
    returnType: void
    signature: void PyMarshal_WriteLongToFile(long x, FILE *fp, int version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Python/marshal.c:758,1
    - Dst: memset
      Src: /src/cpython/Python/marshal.c:761,1
    - Dst: w_init_refs
      Src: /src/cpython/Python/marshal.c:768,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:771,1
    - Dst: w_clear_refs
      Src: /src/cpython/Python/marshal.c:772,1
    - Dst: w_flush
      Src: /src/cpython/Python/marshal.c:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - x
    - fp
    - version
    argTypes:
    - PyObject*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 774
    functionName: PyMarshal_WriteObjectToFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - w_init_refs
    - w_clear_refs
    - w_flush
    - w_object
    - memset
    - PySys_Audit
    linkageType: ''
    returnType: void
    signature: void PyMarshal_WriteObjectToFile(PyObject *x, FILE *fp, int version)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:798,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/marshal.c:806,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:808,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/marshal.c:814,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:816,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:824,1
    - Dst: fread
      Src: /src/cpython/Python/marshal.c:825,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Python/marshal.c:831,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Python/marshal.c:833,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/marshal.c:837,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/marshal.c:837,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Python/marshal.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:840,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:844,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/marshal.c:846,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:851,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - n
    - p
    argTypes:
    - Py_ssize_t
    - RFILE*
    assertStmts:
    - condition: (p->fp != NULL)
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 857
      start: 788
    functionDepth: 5
    functionLinenumber: 788
    functionLinenumberEnd: 857
    functionName: r_string
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 5
    functionsReached:
    - PyMem_Realloc
    - fread
    - _PyObject_CallMethod
    - Py_DECREF
    - PyErr_Occurred
    - PyErr_SetString
    - _Py_ID
    - PyNumber_AsSsize_t
    - PyMemoryView_FromBuffer
    - PyErr_Format
    - PyBuffer_FillInfo
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      r_string(Py_ssize_t n, RFILE *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:868,1
    - Dst: getc
      Src: /src/cpython/Python/marshal.c:869,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:875,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:881,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts:
    - condition: (p->fp)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 884
      start: 859
    functionDepth: 6
    functionLinenumber: 859
    functionLinenumberEnd: 884
    functionName: r_byte
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_string
    - getc
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int r_byte(RFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 886
    functionDepth: 6
    functionLinenumber: 886
    functionLinenumberEnd: 900
    functionName: r_short
    functionSourceFile: /src/cpython/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/cpython/Python/marshal.c:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 902
    functionDepth: 6
    functionLinenumber: 902
    functionLinenumberEnd: 920
    functionName: r_long
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_string
    linkageType: ''
    returnType: long
    signature: long r_long(RFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:926,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Python/marshal.c:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 923
    functionDepth: 6
    functionLinenumber: 923
    functionLinenumberEnd: 933
    functionName: r_long64
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_string
    - _PyLong_FromByteArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_long64(RFILE *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 962
    functionName: _w_digits
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _w_digits(bitsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:990,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:991,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:995,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Python/marshal.c:1000,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1004,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1005,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1008,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1009,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1010,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1011,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/marshal.c:1013,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1015,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/marshal.c:1017,1
    - Dst: PyLongWriter_Create
      Src: /src/cpython/Python/marshal.c:1019,1
    - Dst: _w_digits32
      Src: /src/cpython/Python/marshal.c:1028,1
    - Dst: _w_digits16
      Src: /src/cpython/Python/marshal.c:1031,1
    - Dst: PyLongWriter_Discard
      Src: /src/cpython/Python/marshal.c:1034,1
    - Dst: PyLongWriter_Finish
      Src: /src/cpython/Python/marshal.c:1037,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts:
    - condition: (layout->bits_per_digit % PyLong_MARSHAL_SHIFT == 0)
      pos:
        line_end: 1003
        line_start: 1003
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit >= PyLong_MARSHAL_SHIFT)
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit <= 32)
      pos:
        line_end: 1007
        line_start: 1007
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 1008
        line_start: 1008
        source_file: /src/cpython/Python/marshal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 1009
        line_start: 1009
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/cpython/Python/marshal.c
    - condition: (size >= 1)
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 1038
      start: 987
    functionDepth: 7
    functionLinenumber: 987
    functionLinenumberEnd: 1038
    functionName: r_PyLong
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _w_digits32
    - PyLongWriter_Discard
    - PyErr_Occurred
    - PyErr_SetString
    - Py_ABS
    - _w_digits16
    - PyLong_GetNativeLayout
    - r_long
    - PyLongWriter_Create
    - PyLongWriter_Finish
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_PyLong(RFILE *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1043,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Python/marshal.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1040
    functionDepth: 6
    functionLinenumber: 1040
    functionLinenumberEnd: 1047
    functionName: r_float_bin
    functionSourceFile: /src/cpython/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/cpython/Python/marshal.c:1057,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1061,1
    - Dst: memcpy
      Src: /src/cpython/Python/marshal.c:1065,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Python/marshal.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1051
    functionDepth: 7
    functionLinenumber: 1051
    functionLinenumberEnd: 1068
    functionName: r_float_str
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - r_byte
    - PyOS_string_to_double
    - 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/cpython/Python/marshal.c:1075,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1077,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/marshal.c:1080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - flag
    - p
    argTypes:
    - int
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1085
    functionName: r_ref_reserve
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - PyList_GET_SIZE
    - 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/cpython/Python/marshal.c:1099,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/marshal.c:1100,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - o
    - idx
    - flag
    - p
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1104
    functionName: r_ref_insert
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_SET_ITEM
    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/cpython/Python/marshal.c:1113,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/marshal.c:1116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1117,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: 1112
        line_start: 1112
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 1121
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1121
    functionName: r_ref
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_DECREF
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_ref(PyObject *o, int flag, RFILE *p)'
  - BBCount: 112
    BranchProfiles: []
    Callsites:
    - Dst: r_byte
      Src: /src/cpython/Python/marshal.c:1131,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/marshal.c:1136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1137,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1147,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:1169,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1186,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/marshal.c:1189,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1190,1
    - Dst: r_long64
      Src: /src/cpython/Python/marshal.c:1194,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1195,1
    - Dst: r_PyLong
      Src: /src/cpython/Python/marshal.c:1199,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1200,1
    - Dst: r_float_str
      Src: /src/cpython/Python/marshal.c:1205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1206,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/marshal.c:1208,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1209,1
    - Dst: r_float_bin
      Src: /src/cpython/Python/marshal.c:1215,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1216,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/marshal.c:1218,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1219,1
    - Dst: r_float_str
      Src: /src/cpython/Python/marshal.c:1226,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1227,1
    - Dst: r_float_str
      Src: /src/cpython/Python/marshal.c:1229,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1230,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Python/marshal.c:1232,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1233,1
    - Dst: r_float_bin
      Src: /src/cpython/Python/marshal.c:1240,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1241,1
    - Dst: r_float_bin
      Src: /src/cpython/Python/marshal.c:1243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1244,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Python/marshal.c:1246,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1247,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1254,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1256,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1257,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/marshal.c:1262,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1267,1
    - Dst: memcpy
      Src: /src/cpython/Python/marshal.c:1270,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:1270,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1272,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1280,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1282,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1283,1
    - Dst: r_byte
      Src: /src/cpython/Python/marshal.c:1294,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1301,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Python/marshal.c:1304,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/marshal.c:1310,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/marshal.c:1311,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1314,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1325,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1328,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1334,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Python/marshal.c:1337,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/marshal.c:1340,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/marshal.c:1347,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/marshal.c:1348,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1351,1
    - Dst: r_byte
      Src: /src/cpython/Python/marshal.c:1356,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1362,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1364,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1365,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/marshal.c:1371,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1372,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1377,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1379,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1380,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1382,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/marshal.c:1385,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1391,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1393,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1394,1
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:1399,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1400,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1404,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1407,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1409,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/marshal.c:1412,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/marshal.c:1418,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1419,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1424,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1429,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/marshal.c:1432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1438,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1440,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1441,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1448,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1450,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1451,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/marshal.c:1459,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1462,1
    - Dst: PySet_New
      Src: /src/cpython/Python/marshal.c:1466,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Python/marshal.c:1466,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1468,1
    - Dst: r_ref_reserve
      Src: /src/cpython/Python/marshal.c:1473,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/marshal.c:1475,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1481,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1483,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1484,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1486,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/marshal.c:1489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1495,1
    - Dst: r_ref_insert
      Src: /src/cpython/Python/marshal.c:1498,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1523,1
    - Dst: r_ref_reserve
      Src: /src/cpython/Python/marshal.c:1527,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1534,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1535,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1537,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1538,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1541,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1542,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1545,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1547,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1548,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1550,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1553,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1556,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1559,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1562,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1565,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1568,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1571,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1574,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1575,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1577,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1580,1
    - Dst: _PyCode_Validate
      Src: /src/cpython/Python/marshal.c:1609,1
    - Dst: _PyCode_New
      Src: /src/cpython/Python/marshal.c:1613,1
    - Dst: r_ref_insert
      Src: /src/cpython/Python/marshal.c:1618,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1621,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1622,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1625,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1626,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1627,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1628,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1629,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1630,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1631,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1632,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1633,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1634,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1640,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/marshal.c:1641,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1642,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1643,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/marshal.c:1648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1650,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:1653,1
    - Dst: r_ref_reserve
      Src: /src/cpython/Python/marshal.c:1658,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1664,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1668,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1672,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/marshal.c:1676,1
    - Dst: r_ref_insert
      Src: /src/cpython/Python/marshal.c:1677,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1679,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1680,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1681,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1688,1
    CyclomaticComplexity: 193
    EdgeCount: 193
    ICount: 450
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1123
    functionDepth: 14
    functionLinenumber: 1123
    functionLinenumberEnd: 1694
    functionName: r_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 6
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - r_PyLong
    - _PyUnicode_InternImmortal
    - r_ref_reserve
    - r_byte
    - PyErr_SetString
    - Py_SETREF
    - PyLong_FromLong
    - PyUnicode_FromKindAndData
    - PyComplex_FromCComplex
    - PyFloat_FromDouble
    - Py_CLEAR
    - PyTuple_New
    - PyErr_Occurred
    - Py_GetConstant
    - PyList_GET_SIZE
    - PyUnicode_DecodeUTF8
    - r_float_str
    - PySet_New
    - PySet_Add
    - Py_DECREF
    - _PyCode_New
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyErr_ExceptionMatches
    - r_long64
    - memcpy
    - PySlice_New
    - PyBytes_AS_STRING
    - r_string
    - _PyObject_CallNoArgs
    - _PyCode_Validate
    - PyDict_SetItem
    - PyList_GET_ITEM
    - PyTuple_SET_ITEM
    - PyFrozenSet_New
    - _PyInterpreterState_GET
    - PyList_SET_ITEM
    - r_object
    - R_REF
    - r_float_bin
    - r_ref_insert
    - PyDict_New
    - r_long
    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: 1158
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1158
    functionName: R_REF
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R_REF(O)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1700,1
    - Dst: fprintf
      Src: /src/cpython/Python/marshal.c:1701,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/marshal.c:1705,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/marshal.c:1709,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1713,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1714,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1715,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1696
    functionDepth: 15
    functionLinenumber: 1696
    functionLinenumberEnd: 1717
    functionName: read_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - r_object
    - fprintf
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_object(RFILE *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1724,1
    - Dst: r_short
      Src: /src/cpython/Python/marshal.c:1729,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts:
    - condition: (fp)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 1733
      start: 1719
    functionDepth: 7
    functionLinenumber: 1719
    functionLinenumberEnd: 1733
    functionName: PyMarshal_ReadShortFromFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - r_short
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int PyMarshal_ReadShortFromFile(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1744,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1735
    functionDepth: 7
    functionLinenumber: 1735
    functionLinenumberEnd: 1748
    functionName: PyMarshal_ReadLongFromFile
    functionSourceFile: /src/cpython/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/cpython/Python/marshal.c:1755,1
    - Dst: fileno
      Src: /src/cpython/Python/marshal.c:1755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1751
    functionDepth: 4
    functionLinenumber: 1751
    functionLinenumberEnd: 1763
    functionName: getfilesize
    functionSourceFile: /src/cpython/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/cpython/Python/marshal.c:1777,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/marshal.c:1779,1
    - Dst: fread
      Src: /src/cpython/Python/marshal.c:1781,1
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/cpython/Python/marshal.c:1782,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1783,1
    - Dst: PyMarshal_ReadObjectFromFile
      Src: /src/cpython/Python/marshal.c:1791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1771
    functionDepth: 5
    functionLinenumber: 1771
    functionLinenumberEnd: 1794
    functionName: PyMarshal_ReadLastObjectFromFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - fread
    - PyMarshal_ReadObjectFromFile
    - PyMarshal_ReadObjectFromString
    - getfilesize
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadLastObjectFromFile(FILE *fp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:1807,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:1810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1811,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1796
    functionDepth: 16
    functionLinenumber: 1796
    functionLinenumberEnd: 1815
    functionName: PyMarshal_ReadObjectFromFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - read_object
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadObjectFromFile(FILE *fp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:1829,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:1832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1833,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1817
    functionDepth: 16
    functionLinenumber: 1817
    functionLinenumberEnd: 1837
    functionName: PyMarshal_ReadObjectFromString
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 3
    functionsReached:
    - PyList_New
    - read_object
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadObjectFromString(const char *str, Py_ssize_t len)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Python/marshal.c:1844,1
    - Dst: memset
      Src: /src/cpython/Python/marshal.c:1847,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/marshal.c:1848,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:1851,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:1852,1
    - Dst: w_init_refs
      Src: /src/cpython/Python/marshal.c:1856,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1857,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:1860,1
    - Dst: w_clear_refs
      Src: /src/cpython/Python/marshal.c:1861,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:1863,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/marshal.c:1864,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1868,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:1871,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1874,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1883,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - x
    - version
    - allow_code
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1839
    functionDepth: 6
    functionLinenumber: 1839
    functionLinenumberEnd: 1890
    functionName: _PyMarshal_WriteObjectToString
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - w_init_refs
    - Py_XDECREF
    - w_clear_refs
    - Py_DECREF
    - w_object
    - PyErr_SetString
    - _PyBytes_Resize
    - memset
    - PyBytes_FromStringAndSize
    - PyBytes_GET_SIZE
    - PySys_Audit
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMarshal_WriteObjectToString(PyObject *x, int version, int allow_code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMarshal_WriteObjectToString
      Src: /src/cpython/Python/marshal.c:1895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1892
    functionDepth: 7
    functionLinenumber: 1892
    functionLinenumberEnd: 1896
    functionName: PyMarshal_WriteObjectToString
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 2
    functionsReached:
    - _PyMarshal_WriteObjectToString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_WriteObjectToString(PyObject *x, int version)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMarshal_WriteObjectToString
      Src: /src/cpython/Python/marshal.c:1929,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/marshal.c:1932,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/marshal.c:1932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - module
    - value
    - file
    - version
    - allow_code
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1920
    functionDepth: 7
    functionLinenumber: 1920
    functionLinenumberEnd: 1935
    functionName: marshal_dump_impl
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - _PyMarshal_WriteObjectToString
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmarshal_dump_impl(PyObject *module, PyObject *value, PyObject
      *file,\n                  int version, int allow_code)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/marshal.c:1971,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/marshal.c:1971,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/marshal.c:1974,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/marshal.c:1975,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/marshal.c:1977,1
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:1987,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:1988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1989,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - module
    - file
    - allow_code
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1957
    functionDepth: 16
    functionLinenumber: 1957
    functionLinenumberEnd: 1997
    functionName: marshal_load_impl
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - _PyObject_CallMethod
    - _Py_ID
    - PyBytes_Check
    - read_object
    - PyErr_Format
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_load_impl(PyObject *module, PyObject *file, int allow_code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMarshal_WriteObjectToString
      Src: /src/cpython/Python/marshal.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - value
    - version
    - allow_code
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2019
    functionDepth: 7
    functionLinenumber: 2019
    functionLinenumberEnd: 2025
    functionName: marshal_dumps_impl
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _PyMarshal_WriteObjectToString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmarshal_dumps_impl(PyObject *module, PyObject *value,
      int version,\n                   int allow_code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:2056,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:2058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:2059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - module
    - bytes
    - allow_code
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2042
    functionDepth: 16
    functionLinenumber: 2042
    functionLinenumberEnd: 2061
    functionName: marshal_loads_impl
    functionSourceFile: /src/cpython/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, int allow_code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Python/marshal.c:2105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2102
    functionDepth: 13
    functionLinenumber: 2102
    functionLinenumberEnd: 2109
    functionName: marshal_module_exec
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int marshal_module_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/marshal.c:2129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2126
    functionDepth: 2
    functionLinenumber: 2126
    functionLinenumberEnd: 2130
    functionName: PyMarshal_Init
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyMarshal_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp_exceptions.h:8,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_exceptions.h:9,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_exceptions.h:10,1
    - Dst: PyException_GetCause
      Src: /src/cpython/Python/crossinterp_exceptions.h:10,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/crossinterp_exceptions.h:11,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp_exceptions.h:11,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp_exceptions.h:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tstate
    - cause
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/cpython/Python/crossinterp_exceptions.h
    - condition: (PyException_GetCause(exc) == NULL)
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/cpython/Python/crossinterp_exceptions.h
    constantsTouched: []
    func_position:
      end: 13
      start: 2
    functionDepth: 3
    functionLinenumber: 2
    functionLinenumberEnd: 13
    functionName: _ensure_current_cause
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 0
    functionsReached:
    - PyException_SetCause
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - Py_NewRef
    - PyException_GetCause
    - assert
    linkageType: ''
    returnType: void
    signature: void _ensure_current_cause(PyThreadState *tstate, PyObject *cause)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NewException
      Src: /src/cpython/Python/crossinterp_exceptions.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - exceptions_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: _init_notshareableerror
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    linkageType: ''
    returnType: int
    signature: int _init_notshareableerror(exceptions_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp_exceptions.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - exceptions_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: _fini_notshareableerror
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _fini_notshareableerror(exceptions_t *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp_exceptions.h:67,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp_exceptions.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: get_notshareableerror_type
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 2
    functionsReached:
    - _PyXI_GET_STATE
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_notshareableerror_type(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp_exceptions.h:79,1
    - Dst: get_notshareableerror_type
      Src: /src/cpython/Python/crossinterp_exceptions.h:80,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/crossinterp_exceptions.h:82,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_exceptions.h:84,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp_exceptions.h:85,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/crossinterp_exceptions.h:91,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Python/crossinterp_exceptions.h:93,1
    - Dst: _ensure_current_cause
      Src: /src/cpython/Python/crossinterp_exceptions.h:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - tstate
    - cause
    - force
    - msgobj
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (cause == NULL)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/cpython/Python/crossinterp_exceptions.h
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: _ensure_notshareableerror
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1Tstate
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - get_notshareableerror_type
    - _PyErr_SetObject
    - _ensure_current_cause
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: "void _ensure_notshareableerror(PyThreadState *tstate,\n                          PyObject
      *cause, int force, PyObject *msgobj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp_exceptions.h:100,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_exceptions.h:102,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp_exceptions.h:102,1
    - Dst: _ensure_notshareableerror
      Src: /src/cpython/Python/crossinterp_exceptions.h:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_exceptions.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - tstate
    - cause
    - force
    - msg
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - char*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/crossinterp_exceptions.h
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: set_notshareableerror
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 2
    functionsReached:
    - _PyErr_Occurred
    - Py_DECREF
    - PyUnicode_FromString
    - _ensure_notshareableerror
    - assert
    linkageType: ''
    returnType: void
    signature: void set_notshareableerror(PyThreadState *tstate, PyObject *cause,
      int force, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/crossinterp_exceptions.h:114,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_exceptions.h:116,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp_exceptions.h:116,1
    - Dst: _ensure_notshareableerror
      Src: /src/cpython/Python/crossinterp_exceptions.h:119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_exceptions.h:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tstate
    - cause
    - force
    - format
    - vargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - char*
    - va_list
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/cpython/Python/crossinterp_exceptions.h
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 9
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: format_notshareableerror_v
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 1
    functionsReached:
    - _PyErr_Occurred
    - Py_DECREF
    - PyUnicode_FromFormatV
    - _ensure_notshareableerror
    - assert
    linkageType: ''
    returnType: void
    signature: "void format_notshareableerror_v(PyThreadState *tstate, PyObject *cause,
      int force,\n                           const char *format, va_list vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/crossinterp_exceptions.h:129,1
    - Dst: format_notshareableerror_v
      Src: /src/cpython/Python/crossinterp_exceptions.h:130,1
    - Dst: va_end
      Src: /src/cpython/Python/crossinterp_exceptions.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - tstate
    - cause
    - force
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 10
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: format_notshareableerror
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 1
    functionsReached:
    - format_notshareableerror_v
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void format_notshareableerror(PyThreadState *tstate, PyObject *cause,
      int force,\n                         const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_exceptions.h:140,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp_exceptions.h:140,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Python/crossinterp_exceptions.h:147,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Python/crossinterp_exceptions.h:155,1
    - Dst: fini_static_exctypes
      Src: /src/cpython/Python/crossinterp_exceptions.h:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - state
    - interp
    argTypes:
    - exceptions_t*
    - PyInterpreterState*
    assertStmts:
    - condition: (state == &_PyXI_GET_STATE(interp)->exceptions)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/cpython/Python/crossinterp_exceptions.h
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 19
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: init_static_exctypes
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 0
    functionsReached:
    - _PyStaticType_InitBuiltin
    - _PyXI_GET_STATE
    - assert
    - fini_static_exctypes
    linkageType: ''
    returnType: int
    signature: int init_static_exctypes(exceptions_t *state, PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_exceptions.h:171,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp_exceptions.h:171,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Python/crossinterp_exceptions.h:174,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Python/crossinterp_exceptions.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - interp
    argTypes:
    - exceptions_t*
    - PyInterpreterState*
    assertStmts:
    - condition: (state == &_PyXI_GET_STATE(interp)->exceptions)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/cpython/Python/crossinterp_exceptions.h
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 9
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: fini_static_exctypes
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 1
    functionsReached:
    - _PyStaticType_FiniBuiltin
    - _PyXI_GET_STATE
    - assert
    linkageType: ''
    returnType: void
    signature: void fini_static_exctypes(exceptions_t *state, PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _init_notshareableerror
      Src: /src/cpython/Python/crossinterp_exceptions.h:185,1
    - Dst: fini_heap_exctypes
      Src: /src/cpython/Python/crossinterp_exceptions.h:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - exceptions_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: init_heap_exctypes
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 0
    functionsReached:
    - fini_heap_exctypes
    - _init_notshareableerror
    linkageType: ''
    returnType: int
    signature: int init_heap_exctypes(exceptions_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fini_notshareableerror
      Src: /src/cpython/Python/crossinterp_exceptions.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - exceptions_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: fini_heap_exctypes
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 1
    functionsReached:
    - _fini_notshareableerror
    linkageType: ''
    returnType: void
    signature: void fini_heap_exctypes(exceptions_t *state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/future.c:13,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/future.c:16,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/future.c:17,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/future.c:18,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:21,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:23,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:25,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:27,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:29,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:31,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:33,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:35,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:37,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:39,1
    - Dst: strcmp
      Src: /src/cpython/Python/future.c:41,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/future.c:42,1
    - Dst: PyErr_RangedSyntaxLocationObject
      Src: /src/cpython/Python/future.c:44,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/future.c:51,1
    - Dst: PyErr_RangedSyntaxLocationObject
      Src: /src/cpython/Python/future.c:53,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 3
    argNames:
    - ff
    - s
    - filename
    argTypes:
    - _PyFutureFeatures*
    - stmt_ty
    - PyObject*
    assertStmts:
    - condition: (s->kind == ImportFrom_kind)
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/cpython/Python/future.c
    constantsTouched: []
    func_position:
      end: 62
      start: 8
    functionDepth: 6
    functionLinenumber: 8
    functionLinenumberEnd: 62
    functionName: future_check_features
    functionSourceFile: /src/cpython/Python/future.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - PyErr_SetString
    - asdl_seq_LEN
    - PyErr_RangedSyntaxLocationObject
    - strcmp
    - PyUnicode_AsUTF8
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int future_check_features(_PyFutureFeatures *ff, stmt_ty s, PyObject
      *filename)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/future.c:71,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/future.c:77,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/future.c:82,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/future.c:91,1
    - Dst: future_check_features
      Src: /src/cpython/Python/future.c:92,1
    - Dst: SRC_LOCATION_FROM_AST
      Src: /src/cpython/Python/future.c:95,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - ff
    - mod
    - filename
    argTypes:
    - _PyFutureFeatures*
    - mod_ty
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 64
    functionDepth: 7
    functionLinenumber: 64
    functionLinenumberEnd: 106
    functionName: future_parse
    functionSourceFile: /src/cpython/Python/future.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - asdl_seq_LEN
    - _PyAST_GetDocString
    - SRC_LOCATION_FROM_AST
    - _PyUnicode_EqualToASCIIString
    - future_check_features
    linkageType: ''
    returnType: int
    signature: int future_parse(_PyFutureFeatures *ff, mod_ty mod, PyObject *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_parse
      Src: /src/cpython/Python/future.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mod
    - filename
    - ff
    argTypes:
    - mod_ty
    - PyObject*
    - _PyFutureFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: _PyFuture_FromAST
    functionSourceFile: /src/cpython/Python/future.c
    functionUses: 3
    functionsReached:
    - future_parse
    linkageType: ''
    returnType: int
    signature: int _PyFuture_FromAST(mod_ty mod, PyObject *filename, _PyFutureFeatures
      *ff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/Python-ast.c:23,1
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:25,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/Python-ast.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!state->finalized)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: get_ast_state
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyOnceFlag_CallOnce
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: struct ast_state
    signature: 'struct ast_state *

      get_ast_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:36,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:37,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:38,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:39,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:40,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:41,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:42,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:43,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:44,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:45,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:46,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:47,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:48,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:49,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:50,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:51,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:52,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:53,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:54,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:55,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:56,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:57,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:58,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:59,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:60,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:61,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:62,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:63,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:64,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:65,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:66,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:67,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:68,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:69,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:70,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:71,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:72,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:73,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:74,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:75,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:76,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:77,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:78,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:79,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:80,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:81,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:82,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:83,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:84,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:85,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:86,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:87,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:88,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:89,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:90,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:91,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:92,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:93,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:94,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:95,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:96,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:97,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:98,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:99,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:100,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:101,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:102,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:103,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:104,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:105,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:106,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:107,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:108,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:109,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:110,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:111,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:112,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:113,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:114,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:115,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:116,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:117,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:118,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:119,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:120,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:121,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:122,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:123,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:124,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:125,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:126,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:127,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:128,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:129,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:130,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:131,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:132,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:133,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:134,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:135,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:136,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:137,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:138,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:139,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:140,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:141,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:142,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:143,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:144,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:145,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:146,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:147,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:148,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:149,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:150,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:151,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:152,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:153,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:154,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:155,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:156,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:157,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:158,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:159,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:160,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:161,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:162,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:163,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:164,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:165,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:166,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:167,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:168,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:169,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:170,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:171,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:172,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:173,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:174,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:175,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:177,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:178,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:179,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:180,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:181,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:182,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:183,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:184,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:185,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:186,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:187,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:188,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:189,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:190,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:191,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:192,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:193,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:194,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:195,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:196,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:197,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:198,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:199,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:200,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:201,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:202,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:203,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:204,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:205,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:206,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:207,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:208,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:209,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:210,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:211,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:212,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:213,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:214,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:215,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:216,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:217,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:218,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:219,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:220,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:221,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:222,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:223,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:224,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:225,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:226,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:227,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:228,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:229,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:230,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:231,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:232,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:233,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:234,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:235,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:236,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:238,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:239,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:240,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:241,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:242,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:243,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:244,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:245,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:246,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:247,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:248,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:249,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:250,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:251,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:252,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:253,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:254,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:255,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:256,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:257,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:258,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:259,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:260,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:261,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:262,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:263,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:264,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:265,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:266,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:267,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:268,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:269,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:270,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:271,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:272,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:273,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:274,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:275,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:276,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:277,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:278,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:279,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:280,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 249
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 285
    functionName: _PyAST_Fini
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyAST_Fini(PyInterpreterState *interp)
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:289,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:290,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:291,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:292,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:293,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:294,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:295,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:296,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:297,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:298,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:299,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:300,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:301,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:302,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:303,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:304,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:305,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:306,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:307,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:308,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:309,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:310,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:311,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:312,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:313,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:314,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:315,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:316,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:317,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:318,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:319,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:320,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:321,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:322,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:323,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:324,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:325,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:326,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:327,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:328,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:329,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:330,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:331,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:332,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:333,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:334,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:335,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:336,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:337,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:338,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:339,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:340,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:341,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:342,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:343,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:344,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:345,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:346,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:347,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:348,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:349,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:350,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:351,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:352,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:353,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:354,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:355,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:356,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:357,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:358,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:359,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:360,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:361,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:362,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:363,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:364,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:365,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:366,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:367,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:368,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:369,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:370,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:371,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:372,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:373,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:374,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:375,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:376,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 178
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ast_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 378
    functionName: init_identifiers
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int init_identifiers(struct ast_state *state)
  - BBCount: 651
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:820,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:827,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:833,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:842,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:847,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:849,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:856,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:865,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:866,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:873,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:879,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:886,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:895,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:896,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:900,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:901,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:904,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:911,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:920,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:921,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:925,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:928,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:935,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:941,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:946,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:953,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:962,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:963,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:967,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:969,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:971,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:977,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:979,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:981,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:990,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:994,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:996,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1005,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1012,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1021,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1028,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1037,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1044,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1053,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1060,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1067,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1076,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1077,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1081,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1086,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1092,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1093,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1097,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1106,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1113,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1122,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1129,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1138,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1145,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1154,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1161,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1170,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1177,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1184,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1194,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1195,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1199,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1203,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1212,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1218,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1227,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1234,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1243,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1249,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1258,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1265,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1274,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1281,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1288,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1297,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1298,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1305,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1311,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1318,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1327,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1328,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1335,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1341,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1348,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1357,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1358,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1365,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1371,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1377,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1381,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1390,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1397,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1404,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1413,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1414,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1418,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1422,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1431,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1438,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1444,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1448,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1455,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1464,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1465,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1469,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1473,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1479,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1483,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1489,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1493,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1500,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1509,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1510,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1514,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1518,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1524,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1529,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1538,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1544,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1550,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1554,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1561,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1570,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1571,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1575,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1579,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1585,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1589,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1595,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1598,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1601,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1604,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1613,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1619,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1628,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1634,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1641,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1650,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1651,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1655,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1659,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1665,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1669,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1678,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1684,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1693,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1699,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1705,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1708,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1715,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1722,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1731,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1732,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1736,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1740,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1749,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1755,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1764,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1770,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1777,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1786,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1787,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1791,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1793,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1795,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1804,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1810,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1819,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1825,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1832,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1841,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1842,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1849,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1855,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1864,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1870,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1879,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1886,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1893,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1899,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1902,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1903,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1910,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1916,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1925,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1931,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1940,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1945,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1947,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1954,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1963,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1964,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1968,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1969,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1970,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1972,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1981,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1987,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1994,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2003,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2004,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2011,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2017,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2026,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2032,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2039,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2048,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2049,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2056,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2059,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2062,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2071,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2077,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2086,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2092,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2101,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2107,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2114,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2123,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2124,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2131,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2137,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2146,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2152,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2161,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2167,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2176,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2183,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2190,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2199,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2200,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2204,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2208,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2217,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2223,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2230,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2239,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2240,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2247,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2253,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2260,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2269,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2270,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2277,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2284,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2293,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2299,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2308,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2314,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2321,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2330,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2331,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2338,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2344,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2351,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2360,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2361,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2368,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2374,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2381,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2390,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2391,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2395,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2399,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2406,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2415,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2416,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2421,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2430,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2431,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2436,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2445,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2446,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2451,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2460,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2461,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2465,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2469,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2478,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2484,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2491,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2500,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2501,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2505,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2509,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2515,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2519,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2526,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2535,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2536,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2540,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2544,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2550,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2554,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2560,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2564,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2571,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2580,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2581,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2585,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2589,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2595,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2599,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2606,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2615,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2616,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2620,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2624,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2630,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2634,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2641,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2650,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2651,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2655,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2659,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2665,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2669,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2675,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2676,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2679,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2686,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2695,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2696,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2703,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2707,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2709,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2718,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2724,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2731,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2740,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2741,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2748,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2754,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2761,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2770,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2771,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2775,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2779,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2788,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2793,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2795,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2802,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2811,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2812,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2816,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2820,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2829,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2836,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2843,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2852,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2853,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2857,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2861,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2867,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2871,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2880,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2887,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2894,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2903,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2904,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2908,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2910,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2912,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2921,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2928,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2935,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2944,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2945,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2949,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2953,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2960,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2969,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2970,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2977,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2983,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2990,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2999,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3000,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3004,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3008,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3015,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3021,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3024,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3025,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3029,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3033,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3042,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3048,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3057,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3064,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3071,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3080,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3081,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3085,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3087,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3089,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3098,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3104,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3113,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3119,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3126,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3135,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3136,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3140,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3145,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3151,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3156,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3165,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3172,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3179,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3189,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3190,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3194,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3199,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3205,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3210,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3216,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3221,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3230,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3237,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3244,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3253,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3254,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3261,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3267,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3274,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3283,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3284,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3291,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3298,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3305,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3314,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3315,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3319,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3323,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3332,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3338,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3345,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3354,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3355,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3359,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3363,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3369,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3373,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3379,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3383,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3390,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3399,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3400,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3404,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3408,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3414,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3418,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3424,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3428,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3435,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3444,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3445,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3449,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3453,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3459,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3463,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3470,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3479,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3480,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3484,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3488,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3494,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3498,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3505,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3514,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3515,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3522,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3528,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3534,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3538,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3545,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3554,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3555,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3562,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3568,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3574,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3578,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3585,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3594,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3595,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3602,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3608,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3617,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3623,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3632,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3638,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3645,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3654,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3655,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3660,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3669,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3670,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3675,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3684,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3685,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3690,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3699,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3700,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3705,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3714,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3715,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3720,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3729,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3730,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3735,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3741,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3744,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3745,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3750,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3759,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3760,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3765,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3774,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3775,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3780,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3789,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3790,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3795,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3804,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3805,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3810,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3819,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3820,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3825,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3834,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3835,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3840,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3849,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3850,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3855,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3864,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3865,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3870,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3879,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3880,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3885,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3894,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3895,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3900,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3909,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3910,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3915,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3924,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3925,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3930,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3939,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3940,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3945,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3954,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3955,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3960,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3969,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3970,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3975,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3984,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3985,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3990,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3999,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4000,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4005,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4014,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4015,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4020,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4029,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4030,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4035,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4044,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4045,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4050,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4059,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4060,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4065,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4074,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4075,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4080,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4089,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4090,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4095,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4104,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4105,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4110,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4119,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4120,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4125,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4134,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4135,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4139,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4144,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4150,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4155,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4164,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4171,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4177,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4182,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4189,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4198,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4199,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4206,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4213,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4222,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4229,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4238,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4245,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4252,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4261,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4262,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4269,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4276,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4285,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4291,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4300,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4306,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4315,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4322,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4331,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4338,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4347,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4353,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4362,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4369,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4376,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4385,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4386,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4390,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4394,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4403,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4409,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4418,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4424,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4431,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4440,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4441,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4448,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4454,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4460,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4464,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4471,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4480,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4481,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4485,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4489,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4498,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4504,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4511,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4520,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4521,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4525,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4530,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4539,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4546,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4553,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4562,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4563,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4567,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4572,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4581,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4587,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4596,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4602,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4609,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4618,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4619,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4623,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4627,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4634,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4643,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4644,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4648,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4653,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4660,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4670,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4671,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4678,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4685,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4692,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4695,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4701,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4702,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4709,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4716,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4725,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4732,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4741,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4748,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4755,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4764,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4765,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4769,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4773,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4782,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4789,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4798,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4805,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4814,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4821,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4828,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4837,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4838,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4842,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4845,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4851,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4858,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4867,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4868,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4875,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4878,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4881,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4890,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4896,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4903,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4912,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4913,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4920,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4926,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4933,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4942,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4943,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4947,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4952,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4958,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4962,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4969,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4978,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4979,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4983,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4987,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4996,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5002,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:5008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5011,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5018,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5025,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5034,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:5035,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:5039,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5043,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:5049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5052,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5059,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5066,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5075,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:5076,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:5080,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5081,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5085,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:5091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5094,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5101,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5108,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5117,1
    CyclomaticComplexity: 650
    EdgeCount: 650
    ICount: 3614
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ast_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5120
      start: 816
    functionDepth: 10
    functionLinenumber: 816
    functionLinenumberEnd: 5120
    functionName: add_ast_annotations
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_GenericAlias
    - Py_DECREF
    - PyObject_SetAttrString
    - PyDict_SetItemString
    - PyDict_New
    - _Py_union_type_or
    linkageType: ''
    returnType: int
    signature: int add_ast_annotations(struct ast_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5134,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/Python-ast.c:5135,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:5136,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Python/Python-ast.c:5137,1
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:5138,1
    - Dst: free_func
      Src: /src/cpython/Python/Python-ast.c:5139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (free_func != NULL)
      pos:
        line_end: 5137
        line_start: 5137
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 5141
      start: 5129
    functionDepth: 2
    functionLinenumber: 5129
    functionLinenumberEnd: 5141
    functionName: ast_dealloc
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - PyType_GetSlot
    - free_func
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void ast_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Python/Python-ast.c:5147,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5147,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/Python-ast.c:5148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5150
      start: 5143
    functionDepth: 1
    functionLinenumber: 5143
    functionLinenumberEnd: 5150
    functionName: ast_traverse
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ast_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:5156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5158
      start: 5152
    functionDepth: 1
    functionLinenumber: 5152
    functionLinenumberEnd: 5158
    functionName: ast_clear
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ast_clear(PyObject *op)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5163,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/Python-ast.c:5172,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5172,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5177,1
    - Dst: PySet_New
      Src: /src/cpython/Python/Python-ast.c:5181,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:5187,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5188,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:5190,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5190,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:5195,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5197,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5202,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:5202,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/Python-ast.c:5203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5208,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/Python-ast.c:5215,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/Python-ast.c:5216,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/Python-ast.c:5222,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5228,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5230,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/Python-ast.c:5238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5238,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/Python-ast.c:5244,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/Python-ast.c:5250,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5255,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5262,1
    - Dst: PySet_Size
      Src: /src/cpython/Python/Python-ast.c:5268,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5271,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5271,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/Python-ast.c:5271,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/Python-ast.c:5282,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:5287,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/Python-ast.c:5288,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-ast.c:5290,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/Python-ast.c:5294,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5298,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Python/Python-ast.c:5304,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/Python-ast.c:5308,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:5310,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5315,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5322,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/Python-ast.c:5329,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5340,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5343,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5344,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5345,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5348,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5349,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 164
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5352
      start: 5160
    functionDepth: 18
    functionLinenumber: 5160
    functionLinenumberEnd: 5352
    functionName: ast_type_init
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyErr_WarnFormat
    - PyDict_GetItemWithError
    - Py_XDECREF
    - PySequence_GetItem
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PySequence_Contains
    - PySet_Discard
    - PySequence_Size
    - Py_IS_TYPE
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PySet_New
    - Py_DECREF
    - _Py_ID
    - PyObject_SetAttr
    - PySequence_List
    - PySet_Size
    - get_ast_state
    - Py_TYPE
    - PyList_GET_ITEM
    - PyObject_GetOptionalAttr
    - PyDict_Next
    - PyObject_GetAttr
    - _PyType_Name
    - _PyUnion_Check
    linkageType: ''
    returnType: int
    signature: int ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5358,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5364,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5379,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5379,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5385,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:5388,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5393,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/Python-ast.c:5398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5399,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/Python-ast.c:5406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5407,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/Python-ast.c:5412,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-ast.c:5416,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5416,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-ast.c:5419,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5419,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-ast.c:5423,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5423,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5426,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5427,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5429
      start: 5355
    functionDepth: 8
    functionLinenumber: 5355
    functionLinenumberEnd: 5429
    functionName: ast_type_reduce
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PySequence_GetItem
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - PyList_Append
    - PyList_AsTuple
    - PySequence_Size
    - PyDict_GetItemRef
    - get_ast_state
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_type_reduce(PyObject *self, PyObject *unused)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Python/Python-ast.c:5465,1
    - Dst: _PySet_Update
      Src: /src/cpython/Python/Python-ast.c:5470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5471,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/Python-ast.c:5485,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/Python-ast.c:5486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5488,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5492,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5495,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/Python-ast.c:5504,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/Python-ast.c:5509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5510,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/Python-ast.c:5521,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/Python-ast.c:5522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5528,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5534,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5534,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/Python-ast.c:5535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5538,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/Python-ast.c:5544,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Python/Python-ast.c:5545,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/Python-ast.c:5547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5554,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:5559,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:5561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5563,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Python/Python-ast.c:5569,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/Python-ast.c:5570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5573,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:5577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5579,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/Python-ast.c:5580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5581,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/Python-ast.c:5584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5586,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Python/Python-ast.c:5589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5591,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5595,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5602,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 5
    argNames:
    - self
    - dict
    - fields
    - attributes
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5605
      start: 5454
    functionDepth: 11
    functionLinenumber: 5454
    functionLinenumberEnd: 5605
    functionName: ast_type_replace_check
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyObject_Repr
    - PyUnicode_Join
    - _PyUnion_Check
    - PySet_Discard
    - _PySet_NextEntry
    - PyErr_Format
    - PySet_New
    - Py_DECREF
    - _Py_ID
    - Py_TYPE
    - PyList_Sort
    - PyObject_GetOptionalAttr
    - _PySet_Update
    - PySet_GET_SIZE
    - PyList_SET_ITEM
    - PyDict_Next
    - PyObject_CallMethodOneArg
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: "int ast_type_replace_check(PyObject *self,\n                       PyObject
      *dict,\n                       PyObject *fields,\n                       PyObject
      *attributes,\n                       PyObject *kwargs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:5630,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5634,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5639,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/Python-ast.c:5644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5649,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/Python-ast.c:5655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - payload
    - keys
    - dict
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 5629
        line_start: 5629
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 5663
      start: 5625
    functionDepth: 9
    functionLinenumber: 5625
    functionLinenumberEnd: 5663
    functionName: ast_type_replace_update_payload
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_DECREF
    - PyDict_SetItem
    - PySequence_Size
    - PyDict_GetItemRef
    - assert
    linkageType: ''
    returnType: int
    signature: "int ast_type_replace_update_payload(PyObject *payload,\n                                PyObject
      *keys,\n                                PyObject *dict)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Python/Python-ast.c:5669,1
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5673,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5686,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5687,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5690,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5693,1
    - Dst: ast_type_replace_check
      Src: /src/cpython/Python/Python-ast.c:5696,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/Python-ast.c:5699,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:5703,1
    - Dst: ast_type_replace_update_payload
      Src: /src/cpython/Python/Python-ast.c:5709,1
    - Dst: ast_type_replace_update_payload
      Src: /src/cpython/Python/Python-ast.c:5713,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/Python-ast.c:5717,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/Python-ast.c:5720,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5723,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5725,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5726,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5728
      start: 5666
    functionDepth: 12
    functionLinenumber: 5666
    functionLinenumberEnd: 5728
    functionName: ast_type_replace
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - ast_type_replace_update_payload
    - PyObject_GetOptionalAttr
    - PyObject_Call
    - PyDict_New
    - _PyArg_NoPositional
    - PyDict_Update
    - get_ast_state
    - Py_TYPE
    - ast_type_replace_check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_type_replace(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:5760,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:5760,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/Python-ast.c:5760,1
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5762,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5767,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/Python-ast.c:5772,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/Python-ast.c:5776,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5781,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5786,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:5792,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5793,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/Python-ast.c:5797,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/Python-ast.c:5799,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/Python-ast.c:5805,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5805,1
    - Dst: ast_repr_max_depth
      Src: /src/cpython/Python/Python-ast.c:5807,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/Python-ast.c:5811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5815,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Python/Python-ast.c:5817,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/Python-ast.c:5823,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5829,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5833,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5834,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/Python-ast.c:5835,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5838,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5839,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/Python-ast.c:5840,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 2
    argNames:
    - list
    - depth
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyList_Check(list) || PyTuple_Check(list))
      pos:
        line_end: 5759
        line_start: 5759
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 5842
      start: 5757
    functionDepth: 9
    functionLinenumber: 5757
    functionLinenumberEnd: 5842
    functionName: ast_repr_list
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Repr
    - PyList_Check
    - PySequence_GetItem
    - PySequence_Size
    - PyUnicodeWriter_WriteASCII
    - Py_DECREF
    - PyUnicodeWriter_Discard
    - PyType_IsSubtype
    - PyTuple_Check
    - PyUnicodeWriter_WriteChar
    - PyUnicodeWriter_WriteStr
    - get_ast_state
    - Py_TYPE
    - Py_MIN
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - ast_repr_max_depth
    - PyUnicodeWriter_WriteRepr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_repr_list(PyObject *list, int depth)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5847,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/Python-ast.c:5853,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5853,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Python/Python-ast.c:5856,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/Python-ast.c:5861,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5861,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5865,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5865,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5866,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5870,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5873,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5878,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5879,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/Python-ast.c:5880,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5880,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5883,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/Python-ast.c:5884,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Python/Python-ast.c:5889,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5892,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5897,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/Python-ast.c:5902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5904,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:5909,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/Python-ast.c:5909,1
    - Dst: ast_repr_list
      Src: /src/cpython/Python/Python-ast.c:5910,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/Python-ast.c:5912,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5912,1
    - Dst: ast_repr_max_depth
      Src: /src/cpython/Python/Python-ast.c:5913,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/Python-ast.c:5916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5922,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/Python-ast.c:5927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5929,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/Python-ast.c:5933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5934,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5939,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5942,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/Python-ast.c:5945,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5946,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5950,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5953,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5957,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/Python-ast.c:5958,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5962,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/Python-ast.c:5963,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 103
    argCount: 2
    argNames:
    - self
    - depth
    argTypes:
    - AST_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5965
      start: 5844
    functionDepth: 10
    functionLinenumber: 5844
    functionLinenumberEnd: 5965
    functionName: ast_repr_max_depth
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyObject_Repr
    - PyList_Check
    - PyUnicodeWriter_WriteUTF8
    - PySequence_GetItem
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - PySequence_Size
    - PyUnicodeWriter_WriteASCII
    - Py_DECREF
    - PyUnicodeWriter_Discard
    - PyType_IsSubtype
    - PyTuple_Check
    - PyUnicodeWriter_WriteChar
    - PyUnicodeWriter_WriteStr
    - get_ast_state
    - Py_TYPE
    - ast_repr_list
    - Py_ReprEnter
    - PyObject_GetOptionalAttr
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_Create
    - PyObject_GetAttr
    - ast_repr_max_depth
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_repr_max_depth(AST_object *self, int depth)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ast_repr_max_depth
      Src: /src/cpython/Python/Python-ast.c:5970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5967
    functionDepth: 11
    functionLinenumber: 5967
    functionLinenumberEnd: 5971
    functionName: ast_repr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast_repr_max_depth
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/Python-ast.c:6004,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:6007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6009,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:6012,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/Python-ast.c:6014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - state
    - type
    - base
    - fields
    - num_fields
    - doc
    argTypes:
    - struct ast_state*
    - char*
    - PyObject*
    - char**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6023
      start: 5998
    functionDepth: 10
    functionLinenumber: 5998
    functionLinenumberEnd: 6023
    functionName: make_type
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyObject_CallFunction
    - PyUnicode_InternFromString
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_type(struct ast_state *state, const char *type, PyObject*
      base,\n          const char* const* fields, int num_fields, const char *doc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/Python-ast.c:6029,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:6033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6035,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:6038,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - state
    - type
    - attrs
    - num_fields
    argTypes:
    - struct ast_state*
    - PyObject*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6025
    functionDepth: 10
    functionLinenumber: 6025
    functionLinenumberEnd: 6043
    functionName: add_attributes
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyUnicode_InternFromString
    - PyTuple_SET_ITEM
    - PyObject_SetAttr
    linkageType: ''
    returnType: int
    signature: int add_attributes(struct ast_state *state, PyObject *type, const char
      * const *attrs, int num_fields)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/Python-ast.c:6050,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:6051,1
    - Dst: func
      Src: /src/cpython/Python/Python-ast.c:6056,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Python/Python-ast.c:6056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6058,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:6061,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - seq
    - (*func)(struct ast_state *state, void*)
    argTypes:
    - struct ast_state*
    - asdl_seq*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6064
      start: 6047
    functionDepth: 4
    functionLinenumber: 6047
    functionLinenumberEnd: 6064
    functionName: ast2obj_list
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - func
    - PyList_SET_ITEM
    - asdl_seq_LEN
    - asdl_seq_GET_UNTYPED
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * ast2obj_list(struct ast_state *state, asdl_seq *seq,\n
      \                             PyObject* (*func)(struct ast_state *state, void*))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:6072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(state)
    - o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6073
      start: 6066
    functionDepth: 0
    functionLinenumber: 6066
    functionLinenumberEnd: 6073
    functionName: ast2obj_object
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_object(struct ast_state *Py_UNUSED(state), void
      *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/Python-ast.c:6080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(state)
    - b
    argTypes:
    - struct ast_state*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6081
      start: 6078
    functionDepth: 0
    functionLinenumber: 6078
    functionLinenumberEnd: 6081
    functionName: ast2obj_int
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_int(struct ast_state *Py_UNUSED(state), long b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/Python-ast.c:6090,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:6094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - Py_UNUSED(state)
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6100
      start: 6085
    functionDepth: 3
    functionLinenumber: 6085
    functionLinenumberEnd: 6100
    functionName: obj2ast_object
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyArena_AddPyObject
    linkageType: ''
    returnType: int
    signature: int obj2ast_object(struct ast_state *Py_UNUSED(state), PyObject* obj,
      PyObject** out, PyArena* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/Python-ast.c:6104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:6108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - Py_UNUSED(state)
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6110
      start: 6102
    functionDepth: 3
    functionLinenumber: 6102
    functionLinenumberEnd: 6110
    functionName: obj2ast_constant
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyArena_AddPyObject
    linkageType: ''
    returnType: int
    signature: int obj2ast_constant(struct ast_state *Py_UNUSED(state), PyObject*
      obj, PyObject** out, PyArena* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/Python-ast.c:6114,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:6115,1
    - Dst: obj2ast_object
      Src: /src/cpython/Python/Python-ast.c:6118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6119
      start: 6112
    functionDepth: 4
    functionLinenumber: 6112
    functionLinenumberEnd: 6119
    functionName: obj2ast_identifier
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - obj2ast_object
    - PyUnicode_CheckExact
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int obj2ast_identifier(struct ast_state *state, PyObject* obj, PyObject**
      out, PyArena* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/Python-ast.c:6123,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/Python-ast.c:6123,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:6124,1
    - Dst: obj2ast_object
      Src: /src/cpython/Python/Python-ast.c:6127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6128
      start: 6121
    functionDepth: 4
    functionLinenumber: 6121
    functionLinenumberEnd: 6128
    functionName: obj2ast_string
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - obj2ast_object
    - PyUnicode_CheckExact
    - PyBytes_CheckExact
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int obj2ast_string(struct ast_state *state, PyObject* obj, PyObject**
      out, PyArena* arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/Python-ast.c:6133,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:6134,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/Python-ast.c:6138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-ast.c:6139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - Py_UNUSED(state)
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - int*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6130
    functionDepth: 4
    functionLinenumber: 6130
    functionLinenumberEnd: 6143
    functionName: obj2ast_int
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_Check
    - PyLong_AsInt
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int obj2ast_int(struct ast_state* Py_UNUSED(state), PyObject* obj,
      int* out, PyArena* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Python/Python-ast.c:6148,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:6150,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:6151,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:6152,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:6153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ast_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6158
      start: 6145
    functionDepth: 3
    functionLinenumber: 6145
    functionLinenumberEnd: 6158
    functionName: add_ast_fields
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_New
    - Py_DECREF
    - PyObject_SetAttrString
    linkageType: ''
    returnType: int
    signature: int add_ast_fields(struct ast_state *state)
  - BBCount: 234
    BranchProfiles: []
    Callsites:
    - Dst: init_identifiers
      Src: /src/cpython/Python/Python-ast.c:6166,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Python/Python-ast.c:6169,1
    - Dst: add_ast_fields
      Src: /src/cpython/Python/Python-ast.c:6173,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6176,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6182,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6183,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6187,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6191,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6195,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6200,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6230,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6232,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6234,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6237,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6241,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6244,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6247,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6252,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6255,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6258,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6262,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6266,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6268,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6272,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6276,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6279,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6283,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6287,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6291,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6293,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6296,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6298,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6302,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6305,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6309,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6312,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6316,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6318,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6322,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6325,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6329,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6333,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6335,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6337,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6340,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6344,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6348,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6350,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6354,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6358,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6360,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6362,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6366,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6370,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6374,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6377,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6380,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6384,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6415,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6417,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6419,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6422,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6426,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6430,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6434,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6438,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6442,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6446,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6450,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6453,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6457,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6461,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6465,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6470,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6474,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6478,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6480,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6484,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6488,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6492,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6497,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6500,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6505,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6508,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6512,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6516,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6520,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6522,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6526,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6530,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6534,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6538,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6542,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6546,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6550,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6552,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6554,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6556,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6560,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6561,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6565,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6568,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6572,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6575,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6578,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6581,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6584,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6585,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6588,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6591,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6594,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6597,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6601,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6602,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6605,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6608,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6611,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6614,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6617,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6620,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6624,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6628,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6631,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6634,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6637,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6640,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6643,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6646,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6650,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6654,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6658,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6662,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6665,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6668,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6672,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6676,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6680,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6684,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6688,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6692,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6695,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6696,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6700,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6704,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6707,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6710,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6713,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6716,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6719,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6722,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6725,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6726,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6729,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6732,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6735,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6738,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6741,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6744,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6747,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6750,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6753,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6756,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6759,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6762,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6765,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6768,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6771,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6774,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6777,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6780,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6783,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6786,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6791,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6793,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6797,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6799,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6802,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6805,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6810,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6812,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6814,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6818,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6819,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6821,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6823,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6826,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6828,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6830,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6832,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6834,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6836,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6840,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6842,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6844,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6846,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6849,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6853,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6855,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6857,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6859,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6862,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6866,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6867,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6870,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6874,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6875,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6877,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6887,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6889,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6894,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6899,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6904,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6909,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6911,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6916,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6920,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6922,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6926,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6928,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6930,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6934,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6938,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6939,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6944,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6950,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6952,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6956,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6958,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6961,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6966,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6969,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6974,1
    - Dst: add_ast_annotations
      Src: /src/cpython/Python/Python-ast.c:6978,1
    CyclomaticComplexity: 233
    EdgeCount: 233
    ICount: 630
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6982
      start: 6162
    functionDepth: 11
    functionLinenumber: 6162
    functionLinenumberEnd: 6982
    functionName: init_types
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - add_ast_fields
    - PyType_GenericNew
    - init_identifiers
    - add_ast_annotations
    - add_attributes
    - PyType_FromSpec
    - PyObject_SetAttr
    - make_type
    linkageType: ''
    returnType: int
    signature: int init_types(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - body
    - type_ignores
    - arena
    argTypes:
    - asdl_stmt_seq*
    - asdl_type_ignore_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7035
      start: 7023
    functionDepth: 5
    functionLinenumber: 7023
    functionLinenumberEnd: 7035
    functionName: _PyAST_Module
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty _PyAST_Module(asdl_stmt_seq * body, asdl_type_ignore_seq *
      type_ignores,\n              PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - body
    - arena
    argTypes:
    - asdl_stmt_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7047
      start: 7037
    functionDepth: 5
    functionLinenumber: 7037
    functionLinenumberEnd: 7047
    functionName: _PyAST_Interactive
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty _PyAST_Interactive(asdl_stmt_seq * body, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7054,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - body
    - arena
    argTypes:
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7064
      start: 7049
    functionDepth: 5
    functionLinenumber: 7049
    functionLinenumberEnd: 7064
    functionName: _PyAST_Expression
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty _PyAST_Expression(expr_ty body, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7071,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - argtypes
    - returns
    - arena
    argTypes:
    - asdl_expr_seq*
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7082
      start: 7066
    functionDepth: 5
    functionLinenumber: 7066
    functionLinenumberEnd: 7082
    functionName: _PyAST_FunctionType
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty _PyAST_FunctionType(asdl_expr_seq * argtypes, expr_ty returns,
      PyArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7093,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7098,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 12
    argNames:
    - name
    - args
    - body
    - decorator_list
    - returns
    - type_comment
    - type_params
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - arguments_ty
    - asdl_stmt_seq*
    - asdl_expr_seq*
    - expr_ty
    - string
    - asdl_type_param_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7118
      start: 7084
    functionDepth: 5
    functionLinenumber: 7084
    functionLinenumberEnd: 7118
    functionName: _PyAST_FunctionDef
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_FunctionDef(identifier name, arguments_ty args, asdl_stmt_seq
      * body,\n                   asdl_expr_seq * decorator_list, expr_ty returns,
      string\n                   type_comment, asdl_type_param_seq * type_params,
      int lineno,\n                   int col_offset, int end_lineno, int end_col_offset,
      PyArena\n                   *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7129,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7134,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 12
    argNames:
    - name
    - args
    - body
    - decorator_list
    - returns
    - type_comment
    - type_params
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - arguments_ty
    - asdl_stmt_seq*
    - asdl_expr_seq*
    - expr_ty
    - string
    - asdl_type_param_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7154
      start: 7120
    functionDepth: 5
    functionLinenumber: 7120
    functionLinenumberEnd: 7154
    functionName: _PyAST_AsyncFunctionDef
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_AsyncFunctionDef(identifier name, arguments_ty args,
      asdl_stmt_seq *\n                        body, asdl_expr_seq * decorator_list,
      expr_ty returns,\n                        string type_comment, asdl_type_param_seq
      * type_params,\n                        int lineno, int col_offset, int end_lineno,
      int\n                        end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7164,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 11
    argNames:
    - name
    - bases
    - keywords
    - body
    - decorator_list
    - type_params
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - asdl_expr_seq*
    - asdl_keyword_seq*
    - asdl_stmt_seq*
    - asdl_expr_seq*
    - asdl_type_param_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7183
      start: 7156
    functionDepth: 5
    functionLinenumber: 7156
    functionLinenumberEnd: 7183
    functionName: _PyAST_ClassDef
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_ClassDef(identifier name, asdl_expr_seq * bases, asdl_keyword_seq
      *\n                keywords, asdl_stmt_seq * body, asdl_expr_seq * decorator_list,\n
      \               asdl_type_param_seq * type_params, int lineno, int col_offset,\n
      \               int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7190,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: 7200
      start: 7185
    functionDepth: 5
    functionLinenumber: 7185
    functionLinenumberEnd: 7200
    functionName: _PyAST_Return
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_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/cpython/Python/Python-ast.c:7207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - targets
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7217
      start: 7202
    functionDepth: 5
    functionLinenumber: 7202
    functionLinenumberEnd: 7217
    functionName: _PyAST_Delete
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Delete(asdl_expr_seq * targets, int lineno, int col_offset,
      int\n              end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7226,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7230,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_expr_seq*
    - expr_ty
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7242
      start: 7219
    functionDepth: 5
    functionLinenumber: 7219
    functionLinenumberEnd: 7242
    functionName: _PyAST_Assign
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Assign(asdl_expr_seq * targets, expr_ty value, string
      type_comment, int\n              lineno, int col_offset, int end_lineno, int
      end_col_offset,\n              PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7256,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 8
    argNames:
    - name
    - type_params
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_type_param_seq*
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7272
      start: 7244
    functionDepth: 5
    functionLinenumber: 7244
    functionLinenumberEnd: 7272
    functionName: _PyAST_TypeAlias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_TypeAlias(expr_ty name, asdl_type_param_seq * type_params,
      expr_ty\n                 value, int lineno, int col_offset, int end_lineno,
      int\n                 end_col_offset, PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7280,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7290,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7294,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: 7306
      start: 7274
    functionDepth: 5
    functionLinenumber: 7274
    functionLinenumberEnd: 7306
    functionName: _PyAST_AugAssign
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_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/cpython/Python/Python-ast.c:7315,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7320,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7324,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: 7337
      start: 7308
    functionDepth: 5
    functionLinenumber: 7308
    functionLinenumberEnd: 7337
    functionName: _PyAST_AnnAssign
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_AnnAssign(expr_ty target, expr_ty annotation, expr_ty
      value, int simple,\n                 int lineno, int col_offset, int end_lineno,
      int\n                 end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7346,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7351,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7355,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_stmt_seq*
    - asdl_stmt_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7369
      start: 7339
    functionDepth: 5
    functionLinenumber: 7339
    functionLinenumberEnd: 7369
    functionName: _PyAST_For
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_For(expr_ty target, expr_ty iter, asdl_stmt_seq * body,
      asdl_stmt_seq *\n           orelse, string type_comment, int lineno, int col_offset,
      int\n           end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7378,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7383,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7387,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_stmt_seq*
    - asdl_stmt_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7401
      start: 7371
    functionDepth: 5
    functionLinenumber: 7371
    functionLinenumberEnd: 7401
    functionName: _PyAST_AsyncFor
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_AsyncFor(expr_ty target, expr_ty iter, asdl_stmt_seq
      * body,\n                asdl_stmt_seq * orelse, 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/cpython/Python/Python-ast.c:7410,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7414,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_stmt_seq*
    - asdl_stmt_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7426
      start: 7403
    functionDepth: 5
    functionLinenumber: 7403
    functionLinenumberEnd: 7426
    functionName: _PyAST_While
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_While(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq
      * orelse, 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/cpython/Python/Python-ast.c:7435,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7439,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_stmt_seq*
    - asdl_stmt_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7451
      start: 7428
    functionDepth: 5
    functionLinenumber: 7428
    functionLinenumberEnd: 7451
    functionName: _PyAST_If
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_If(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq
      * orelse, int\n          lineno, int col_offset, int end_lineno, int end_col_offset,
      PyArena\n          *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7459,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_withitem_seq*
    - asdl_stmt_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7471
      start: 7453
    functionDepth: 5
    functionLinenumber: 7453
    functionLinenumberEnd: 7471
    functionName: _PyAST_With
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_With(asdl_withitem_seq * items, asdl_stmt_seq * body,
      string\n            type_comment, int lineno, int col_offset, int end_lineno,
      int\n            end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7479,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_withitem_seq*
    - asdl_stmt_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7491
      start: 7473
    functionDepth: 5
    functionLinenumber: 7473
    functionLinenumberEnd: 7491
    functionName: _PyAST_AsyncWith
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_AsyncWith(asdl_withitem_seq * items, asdl_stmt_seq
      * body, string\n                 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/cpython/Python/Python-ast.c:7499,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - subject
    - cases
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_match_case_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7514
      start: 7493
    functionDepth: 5
    functionLinenumber: 7493
    functionLinenumberEnd: 7514
    functionName: _PyAST_Match
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Match(expr_ty subject, asdl_match_case_seq * cases,
      int lineno, int\n             col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7521,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: 7532
      start: 7516
    functionDepth: 5
    functionLinenumber: 7516
    functionLinenumberEnd: 7532
    functionName: _PyAST_Raise
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
      int\n             end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7540,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_stmt_seq*
    - asdl_excepthandler_seq*
    - asdl_stmt_seq*
    - asdl_stmt_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7553
      start: 7534
    functionDepth: 5
    functionLinenumber: 7534
    functionLinenumberEnd: 7553
    functionName: _PyAST_Try
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Try(asdl_stmt_seq * body, asdl_excepthandler_seq *
      handlers,\n           asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int
      lineno, int\n           col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7562,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_stmt_seq*
    - asdl_excepthandler_seq*
    - asdl_stmt_seq*
    - asdl_stmt_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7575
      start: 7555
    functionDepth: 5
    functionLinenumber: 7555
    functionLinenumberEnd: 7575
    functionName: _PyAST_TryStar
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_TryStar(asdl_stmt_seq * body, asdl_excepthandler_seq
      * handlers,\n               asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody,
      int lineno,\n               int col_offset, int end_lineno, int end_col_offset,
      PyArena\n               *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7583,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7587,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: 7598
      start: 7577
    functionDepth: 5
    functionLinenumber: 7577
    functionLinenumberEnd: 7598
    functionName: _PyAST_Assert
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
      int\n              end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - names
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_alias_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7615
      start: 7600
    functionDepth: 5
    functionLinenumber: 7600
    functionLinenumberEnd: 7615
    functionName: _PyAST_Import
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Import(asdl_alias_seq * names, int lineno, int col_offset,
      int\n              end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7623,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_alias_seq*
    - int
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7635
      start: 7617
    functionDepth: 5
    functionLinenumber: 7617
    functionLinenumberEnd: 7635
    functionName: _PyAST_ImportFrom
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_ImportFrom(identifier module, asdl_alias_seq * names,
      int level, int\n                  lineno, int col_offset, int end_lineno, int
      end_col_offset,\n                  PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - names
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_identifier_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7652
      start: 7637
    functionDepth: 5
    functionLinenumber: 7637
    functionLinenumberEnd: 7652
    functionName: _PyAST_Global
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Global(asdl_identifier_seq * names, int lineno, int
      col_offset, int\n              end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - names
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_identifier_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7669
      start: 7654
    functionDepth: 5
    functionLinenumber: 7654
    functionLinenumberEnd: 7669
    functionName: _PyAST_Nonlocal
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Nonlocal(asdl_identifier_seq * names, int lineno, int
      col_offset, int\n                end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7677,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7681,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: 7691
      start: 7671
    functionDepth: 5
    functionLinenumber: 7671
    functionLinenumberEnd: 7691
    functionName: _PyAST_Expr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_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/cpython/Python/Python-ast.c:7698,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: 7707
      start: 7693
    functionDepth: 5
    functionLinenumber: 7693
    functionLinenumberEnd: 7707
    functionName: _PyAST_Pass
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Pass(int lineno, int col_offset, int end_lineno, int
      end_col_offset,\n            PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7714,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: 7723
      start: 7709
    functionDepth: 5
    functionLinenumber: 7709
    functionLinenumberEnd: 7723
    functionName: _PyAST_Break
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_Break(int lineno, int col_offset, int end_lineno, int
      end_col_offset,\n             PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7730,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: 7739
      start: 7725
    functionDepth: 5
    functionLinenumber: 7725
    functionLinenumberEnd: 7739
    functionName: _PyAST_Continue
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_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/cpython/Python/Python-ast.c:7747,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7751,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_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7762
      start: 7741
    functionDepth: 5
    functionLinenumber: 7741
    functionLinenumberEnd: 7762
    functionName: _PyAST_BoolOp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_BoolOp(boolop_ty op, asdl_expr_seq * values, int lineno,
      int col_offset,\n              int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7770,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7775,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7779,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: 7790
      start: 7764
    functionDepth: 5
    functionLinenumber: 7764
    functionLinenumberEnd: 7790
    functionName: _PyAST_NamedExpr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:7798,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7803,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7808,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7812,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: 7824
      start: 7792
    functionDepth: 5
    functionLinenumber: 7792
    functionLinenumberEnd: 7824
    functionName: _PyAST_BinOp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 8
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_BinOp(expr_ty left, operator_ty op, expr_ty right,
      int lineno, int\n             col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7832,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7837,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7841,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: 7852
      start: 7826
    functionDepth: 5
    functionLinenumber: 7826
    functionLinenumberEnd: 7852
    functionName: _PyAST_UnaryOp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:7860,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7865,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7869,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: 7880
      start: 7854
    functionDepth: 5
    functionLinenumber: 7854
    functionLinenumberEnd: 7880
    functionName: _PyAST_Lambda
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:7888,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7893,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7898,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7902,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: 7914
      start: 7882
    functionDepth: 5
    functionLinenumber: 7882
    functionLinenumberEnd: 7914
    functionName: _PyAST_IfExp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_IfExp(expr_ty test, expr_ty body, expr_ty 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/cpython/Python/Python-ast.c:7921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - keys
    - values
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7932
      start: 7916
    functionDepth: 5
    functionLinenumber: 7916
    functionLinenumberEnd: 7932
    functionName: _PyAST_Dict
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Dict(asdl_expr_seq * keys, asdl_expr_seq * values,
      int lineno, int\n            col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - elts
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7949
      start: 7934
    functionDepth: 5
    functionLinenumber: 7934
    functionLinenumberEnd: 7949
    functionName: _PyAST_Set
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Set(asdl_expr_seq * elts, int lineno, int col_offset,
      int end_lineno,\n           int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7958,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7962,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_comprehension_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7973
      start: 7951
    functionDepth: 5
    functionLinenumber: 7951
    functionLinenumberEnd: 7973
    functionName: _PyAST_ListComp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_ListComp(expr_ty elt, asdl_comprehension_seq * generators,
      int lineno,\n                int col_offset, int end_lineno, int end_col_offset,
      PyArena\n                *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7982,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7986,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_comprehension_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7997
      start: 7975
    functionDepth: 5
    functionLinenumber: 7975
    functionLinenumberEnd: 7997
    functionName: _PyAST_SetComp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_SetComp(expr_ty elt, asdl_comprehension_seq * generators,
      int lineno,\n               int col_offset, int end_lineno, int end_col_offset,
      PyArena\n               *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8006,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8011,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8015,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_comprehension_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8027
      start: 7999
    functionDepth: 5
    functionLinenumber: 7999
    functionLinenumberEnd: 8027
    functionName: _PyAST_DictComp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_DictComp(expr_ty key, expr_ty value, asdl_comprehension_seq
      *\n                generators, int lineno, int col_offset, int end_lineno, int\n
      \               end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8036,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8040,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_comprehension_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8051
      start: 8029
    functionDepth: 5
    functionLinenumber: 8029
    functionLinenumberEnd: 8051
    functionName: _PyAST_GeneratorExp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_GeneratorExp(expr_ty elt, asdl_comprehension_seq *
      generators, 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/cpython/Python/Python-ast.c:8059,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8063,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: 8073
      start: 8053
    functionDepth: 5
    functionLinenumber: 8053
    functionLinenumberEnd: 8073
    functionName: _PyAST_Await
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:8080,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: 8090
      start: 8075
    functionDepth: 5
    functionLinenumber: 8075
    functionLinenumberEnd: 8090
    functionName: _PyAST_Yield
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:8098,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8102,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: 8112
      start: 8092
    functionDepth: 5
    functionLinenumber: 8092
    functionLinenumberEnd: 8112
    functionName: _PyAST_YieldFrom
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:8121,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8125,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_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8137
      start: 8114
    functionDepth: 5
    functionLinenumber: 8114
    functionLinenumberEnd: 8137
    functionName: _PyAST_Compare
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Compare(expr_ty left, asdl_int_seq * ops, asdl_expr_seq
      * comparators,\n               int lineno, int col_offset, int end_lineno, int
      end_col_offset,\n               PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8146,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8150,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_expr_seq*
    - asdl_keyword_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8162
      start: 8139
    functionDepth: 5
    functionLinenumber: 8139
    functionLinenumberEnd: 8162
    functionName: _PyAST_Call
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Call(expr_ty func, asdl_expr_seq * args, asdl_keyword_seq
      * keywords,\n            int lineno, int col_offset, int end_lineno, int end_col_offset,\n
      \           PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8171,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8175,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: 8187
      start: 8164
    functionDepth: 5
    functionLinenumber: 8164
    functionLinenumberEnd: 8187
    functionName: _PyAST_FormattedValue
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_FormattedValue(expr_ty value, int conversion, expr_ty
      format_spec, int\n                      lineno, int col_offset, int end_lineno,
      int\n                      end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8196,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8201,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 9
    argNames:
    - value
    - str
    - conversion
    - format_spec
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - constant
    - int
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8218
      start: 8189
    functionDepth: 5
    functionLinenumber: 8189
    functionLinenumberEnd: 8218
    functionName: _PyAST_Interpolation
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Interpolation(expr_ty value, constant str, int conversion,
      expr_ty\n                     format_spec, int lineno, int col_offset, int end_lineno,\n
      \                    int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - values
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8235
      start: 8220
    functionDepth: 5
    functionLinenumber: 8220
    functionLinenumberEnd: 8235
    functionName: _PyAST_JoinedStr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 7
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_JoinedStr(asdl_expr_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/cpython/Python/Python-ast.c:8242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - values
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8252
      start: 8237
    functionDepth: 5
    functionLinenumber: 8237
    functionLinenumberEnd: 8252
    functionName: _PyAST_TemplateStr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_TemplateStr(asdl_expr_seq * values, int lineno, int
      col_offset, int\n                   end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8260,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8264,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: 8275
      start: 8254
    functionDepth: 5
    functionLinenumber: 8254
    functionLinenumberEnd: 8275
    functionName: _PyAST_Constant
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 14
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:8284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8289,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8294,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8298,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: 8310
      start: 8277
    functionDepth: 5
    functionLinenumber: 8277
    functionLinenumberEnd: 8310
    functionName: _PyAST_Attribute
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 7
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Attribute(expr_ty value, identifier attr, expr_context_ty
      ctx, int\n                 lineno, int col_offset, int end_lineno, int end_col_offset,\n
      \                PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8319,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8324,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8329,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8333,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
    - expr_ty
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8345
      start: 8312
    functionDepth: 5
    functionLinenumber: 8312
    functionLinenumberEnd: 8345
    functionName: _PyAST_Subscript
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 6
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Subscript(expr_ty value, expr_ty slice, expr_context_ty
      ctx, int lineno,\n                 int col_offset, int end_lineno, int end_col_offset,
      PyArena\n                 *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8358,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8362,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: 8373
      start: 8347
    functionDepth: 5
    functionLinenumber: 8347
    functionLinenumberEnd: 8373
    functionName: _PyAST_Starred
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 5
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Starred(expr_ty value, expr_context_ty ctx, int lineno,
      int col_offset,\n               int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8381,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8386,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8390,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: 8401
      start: 8375
    functionDepth: 5
    functionLinenumber: 8375
    functionLinenumberEnd: 8401
    functionName: _PyAST_Name
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_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/cpython/Python/Python-ast.c:8409,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - elts
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8424
      start: 8403
    functionDepth: 5
    functionLinenumber: 8403
    functionLinenumberEnd: 8424
    functionName: _PyAST_List
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_List(asdl_expr_seq * elts, expr_context_ty ctx, int
      lineno, int\n            col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8432,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - elts
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8447
      start: 8426
    functionDepth: 5
    functionLinenumber: 8426
    functionLinenumberEnd: 8447
    functionName: _PyAST_Tuple
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 9
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Tuple(asdl_expr_seq * elts, expr_context_ty ctx, int
      lineno, int\n             col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - lower
    - upper
    - step
    - 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: 8466
      start: 8449
    functionDepth: 5
    functionLinenumber: 8449
    functionLinenumberEnd: 8466
    functionName: _PyAST_Slice
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty _PyAST_Slice(expr_ty lower, expr_ty upper, expr_ty step, int
      lineno, int\n             col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8474,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8479,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - target
    - iter
    - ifs
    - is_async
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - asdl_expr_seq*
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8491
      start: 8468
    functionDepth: 5
    functionLinenumber: 8468
    functionLinenumberEnd: 8491
    functionName: _PyAST_comprehension
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: comprehension_ty
    signature: "comprehension_ty _PyAST_comprehension(expr_ty target, expr_ty iter,
      asdl_expr_seq * ifs, int\n                     is_async, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8499,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_stmt_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8511
      start: 8493
    functionDepth: 5
    functionLinenumber: 8493
    functionLinenumberEnd: 8511
    functionName: _PyAST_ExceptHandler
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: excepthandler_ty
    signature: "excepthandler_ty _PyAST_ExceptHandler(expr_ty type, identifier name,
      asdl_stmt_seq * body, int\n                     lineno, int col_offset, int
      end_lineno, int\n                     end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 8
    argNames:
    - posonlyargs
    - args
    - vararg
    - kwonlyargs
    - kw_defaults
    - kwarg
    - defaults
    - arena
    argTypes:
    - asdl_arg_seq*
    - asdl_arg_seq*
    - arg_ty
    - asdl_arg_seq*
    - asdl_expr_seq*
    - arg_ty
    - asdl_expr_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8531
      start: 8513
    functionDepth: 5
    functionLinenumber: 8513
    functionLinenumberEnd: 8531
    functionName: _PyAST_arguments
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: arguments_ty
    signature: "arguments_ty _PyAST_arguments(asdl_arg_seq * posonlyargs, asdl_arg_seq
      * args, arg_ty\n                 vararg, asdl_arg_seq * kwonlyargs, asdl_expr_seq
      *\n                 kw_defaults, arg_ty kwarg, asdl_expr_seq * defaults, PyArena\n
      \                *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8539,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8543,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: 8554
      start: 8533
    functionDepth: 5
    functionLinenumber: 8533
    functionLinenumberEnd: 8554
    functionName: _PyAST_arg
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: arg_ty
    signature: "arg_ty _PyAST_arg(identifier arg, expr_ty annotation, string type_comment,
      int lineno,\n           int col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8562,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - arg
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8576
      start: 8556
    functionDepth: 5
    functionLinenumber: 8556
    functionLinenumberEnd: 8576
    functionName: _PyAST_keyword
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: keyword_ty
    signature: "keyword_ty _PyAST_keyword(identifier arg, expr_ty value, int lineno,
      int col_offset, int\n               end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8584,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - name
    - asname
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - identifier
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8598
      start: 8578
    functionDepth: 5
    functionLinenumber: 8578
    functionLinenumberEnd: 8598
    functionName: _PyAST_alias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: alias_ty
    signature: "alias_ty _PyAST_alias(identifier name, identifier asname, int lineno,
      int col_offset,\n             int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8605,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8609,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: 8615
      start: 8600
    functionDepth: 5
    functionLinenumber: 8600
    functionLinenumberEnd: 8615
    functionName: _PyAST_withitem
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: withitem_ty
    signature: withitem_ty _PyAST_withitem(expr_ty context_expr, expr_ty optional_vars,
      PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8623,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pattern
    - guard
    - body
    - arena
    argTypes:
    - pattern_ty
    - expr_ty
    - asdl_stmt_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8634
      start: 8617
    functionDepth: 5
    functionLinenumber: 8617
    functionLinenumberEnd: 8634
    functionName: _PyAST_match_case
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: match_case_ty
    signature: "match_case_ty _PyAST_match_case(pattern_ty pattern, expr_ty guard,
      asdl_stmt_seq * body,\n                  PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8642,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8646,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: 8656
      start: 8636
    functionDepth: 5
    functionLinenumber: 8636
    functionLinenumberEnd: 8656
    functionName: _PyAST_MatchValue
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchValue(expr_ty value, int lineno, int col_offset,
      int end_lineno,\n                  int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8664,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - constant
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8678
      start: 8658
    functionDepth: 5
    functionLinenumber: 8658
    functionLinenumberEnd: 8678
    functionName: _PyAST_MatchSingleton
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchSingleton(constant value, int lineno, int col_offset,
      int\n                      end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - patterns
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_pattern_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8695
      start: 8680
    functionDepth: 5
    functionLinenumber: 8680
    functionLinenumberEnd: 8695
    functionName: _PyAST_MatchSequence
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchSequence(asdl_pattern_seq * patterns, int lineno,
      int col_offset,\n                     int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - keys
    - patterns
    - rest
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_expr_seq*
    - asdl_pattern_seq*
    - identifier
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8715
      start: 8697
    functionDepth: 5
    functionLinenumber: 8697
    functionLinenumberEnd: 8715
    functionName: _PyAST_MatchMapping
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchMapping(asdl_expr_seq * keys, asdl_pattern_seq
      * patterns,\n                    identifier rest, int lineno, int col_offset,
      int\n                    end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8725,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 9
    argNames:
    - cls
    - patterns
    - kwd_attrs
    - kwd_patterns
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_pattern_seq*
    - asdl_identifier_seq*
    - asdl_pattern_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8742
      start: 8717
    functionDepth: 5
    functionLinenumber: 8717
    functionLinenumberEnd: 8742
    functionName: _PyAST_MatchClass
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchClass(expr_ty cls, asdl_pattern_seq * patterns,
      asdl_identifier_seq\n                  * kwd_attrs, asdl_pattern_seq * kwd_patterns,
      int lineno, int\n                  col_offset, int end_lineno, int end_col_offset,
      PyArena\n                  *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - name
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8759
      start: 8744
    functionDepth: 5
    functionLinenumber: 8744
    functionLinenumberEnd: 8759
    functionName: _PyAST_MatchStar
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchStar(identifier name, int lineno, int col_offset,
      int end_lineno,\n                 int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - pattern
    - name
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - pattern_ty
    - identifier
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8777
      start: 8761
    functionDepth: 5
    functionLinenumber: 8761
    functionLinenumberEnd: 8777
    functionName: _PyAST_MatchAs
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchAs(pattern_ty pattern, identifier name, int
      lineno, int col_offset,\n               int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - patterns
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_pattern_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8794
      start: 8779
    functionDepth: 5
    functionLinenumber: 8779
    functionLinenumberEnd: 8794
    functionName: _PyAST_MatchOr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: pattern_ty
    signature: "pattern_ty _PyAST_MatchOr(asdl_pattern_seq * patterns, int lineno,
      int col_offset, int\n               end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8801,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - lineno
    - tag
    - arena
    argTypes:
    - int
    - string
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8812
      start: 8796
    functionDepth: 5
    functionLinenumber: 8796
    functionLinenumberEnd: 8812
    functionName: _PyAST_TypeIgnore
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: type_ignore_ty
    signature: type_ignore_ty _PyAST_TypeIgnore(int lineno, string tag, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8821,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - name
    - bound
    - default_value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - expr_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8837
      start: 8814
    functionDepth: 5
    functionLinenumber: 8814
    functionLinenumberEnd: 8837
    functionName: _PyAST_TypeVar
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: type_param_ty
    signature: "type_param_ty _PyAST_TypeVar(identifier name, expr_ty bound, expr_ty
      default_value, 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/cpython/Python/Python-ast.c:8845,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - name
    - default_value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8860
      start: 8839
    functionDepth: 5
    functionLinenumber: 8839
    functionLinenumberEnd: 8860
    functionName: _PyAST_ParamSpec
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: type_param_ty
    signature: "type_param_ty _PyAST_ParamSpec(identifier name, expr_ty default_value,
      int lineno, int\n                 col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8869,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - name
    - default_value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8884
      start: 8862
    functionDepth: 5
    functionLinenumber: 8862
    functionLinenumberEnd: 8884
    functionName: _PyAST_TypeVarTuple
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyArena_Malloc
    linkageType: ''
    returnType: type_param_ty
    signature: "type_param_ty _PyAST_TypeVarTuple(identifier name, expr_ty default_value,
      int lineno, int\n                    col_offset, int end_lineno, int end_col_offset,
      PyArena\n                    *arena)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:8896,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8902,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8904,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8908,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8909,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8914,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8918,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8920,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8925,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8929,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:8931,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8935,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8939,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8941,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8946,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:8947,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8951,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:8954,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:8957,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:8958,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:8959,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 93
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8961
      start: 8887
    functionDepth: 5
    functionLinenumber: 8887
    functionLinenumberEnd: 8961
    functionName: ast2obj_mod
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast2obj_list
    - Py_XDECREF
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_mod(struct ast_state *state, void* _o)'
  - BBCount: 223
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:8972,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8978,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:8980,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8984,1
    - Dst: ast2obj_arguments
      Src: /src/cpython/Python/Python-ast.c:8985,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8989,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8990,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8995,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8996,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9001,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9002,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9006,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9007,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9011,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9012,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9017,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9021,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9023,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9027,1
    - Dst: ast2obj_arguments
      Src: /src/cpython/Python/Python-ast.c:9028,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9032,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9033,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9038,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9039,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9045,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9046,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9050,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9051,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9055,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9056,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9062,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9066,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9068,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9072,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9073,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9078,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9079,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9084,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9085,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9090,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9091,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9096,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9097,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9102,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9106,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9108,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9112,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9116,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9118,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9123,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9127,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9129,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9134,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9135,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9139,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9140,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9144,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9148,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9150,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9154,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9155,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9160,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9161,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9165,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9169,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9171,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9175,1
    - Dst: ast2obj_operator
      Src: /src/cpython/Python/Python-ast.c:9176,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9180,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9181,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9185,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9189,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9191,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9195,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9196,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9200,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9201,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9205,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9206,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9210,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9214,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9216,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9220,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9221,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9225,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9226,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9230,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9231,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9235,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9236,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9240,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9244,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9246,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9250,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9251,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9255,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9256,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9261,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9262,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9267,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9268,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9270,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9272,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9276,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9278,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9282,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9283,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9287,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9288,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9292,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9296,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9298,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9302,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9303,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9307,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9308,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9312,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9316,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9318,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9323,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9324,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9328,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9329,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9333,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9337,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9339,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9344,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9345,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9350,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9351,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9355,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9359,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9361,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9365,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9366,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9371,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9375,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9377,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9381,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9382,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9386,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9390,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9392,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9396,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9397,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9402,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9403,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9407,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9408,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9413,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9417,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9419,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9423,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9424,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9429,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9430,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9435,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9436,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9441,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9445,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9447,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9451,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9452,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9456,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9460,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9462,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9467,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9471,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9473,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9477,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9478,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9483,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9484,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9488,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9492,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9494,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9499,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9503,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9505,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9510,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9514,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9516,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9520,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9524,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9529,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9534,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9538,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9542,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9543,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9545,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9547,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9548,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9552,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9553,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9557,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:9558,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:9561,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:9562,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:9563,1
    CyclomaticComplexity: 415
    EdgeCount: 415
    ICount: 869
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9565
      start: 8963
    functionDepth: 5
    functionLinenumber: 8963
    functionLinenumberEnd: 9565
    functionName: ast2obj_stmt
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast2obj_list
    - Py_XDECREF
    - ast2obj_int
    - ast2obj_string
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - ast2obj_identifier
    - PyObject_SetAttr
    - ast2obj_arguments
    - ast2obj_operator
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_stmt(struct ast_state *state, void* _o)'
  - BBCount: 196
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:9576,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9582,1
    - Dst: ast2obj_boolop
      Src: /src/cpython/Python/Python-ast.c:9584,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9588,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9589,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9594,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9598,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9600,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9604,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9605,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9609,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9613,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9615,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9619,1
    - Dst: ast2obj_operator
      Src: /src/cpython/Python/Python-ast.c:9620,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9624,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9625,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9629,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9633,1
    - Dst: ast2obj_unaryop
      Src: /src/cpython/Python/Python-ast.c:9635,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9639,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9640,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9644,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9648,1
    - Dst: ast2obj_arguments
      Src: /src/cpython/Python/Python-ast.c:9650,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9654,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9655,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9659,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9663,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9665,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9669,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9670,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9674,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9675,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9679,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9683,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9685,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9689,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9690,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9694,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9698,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9700,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9704,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9708,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9710,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9714,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9715,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9720,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9724,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9726,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9730,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9731,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9736,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9740,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9742,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9746,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9747,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9751,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9752,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9757,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9761,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9763,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9767,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9768,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9773,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9777,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9779,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9783,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9787,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9789,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9793,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9797,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9799,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9803,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9807,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9809,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9813,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/Python-ast.c:9815,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:9816,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:9819,1
    - Dst: ast2obj_cmpop
      Src: /src/cpython/Python/Python-ast.c:9819,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/Python-ast.c:9819,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9824,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9825,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9830,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9834,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9836,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9840,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9841,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9845,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9846,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9851,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9855,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9857,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9861,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9862,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9866,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9867,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9871,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9875,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9877,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9881,1
    - Dst: ast2obj_constant
      Src: /src/cpython/Python/Python-ast.c:9882,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9886,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9887,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9891,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9892,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9896,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9900,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9902,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9907,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9911,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9913,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9918,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9922,1
    - Dst: ast2obj_constant
      Src: /src/cpython/Python/Python-ast.c:9924,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9928,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9929,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9933,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9937,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9939,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9943,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9944,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9946,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9948,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9949,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9953,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9957,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9959,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9963,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9964,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9968,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9969,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9973,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9977,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9979,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9983,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9984,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9986,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9988,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9992,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9994,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9998,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9999,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10003,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10007,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10009,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10013,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:10014,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10018,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10022,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10024,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10028,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:10029,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10033,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10037,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10039,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10043,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10044,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10048,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10049,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10053,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10056,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10060,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10061,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10065,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10066,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10070,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10071,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10075,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10076,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10079,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10080,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10081,1
    CyclomaticComplexity: 361
    EdgeCount: 361
    ICount: 762
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10083
      start: 9567
    functionDepth: 5
    functionLinenumber: 9567
    functionLinenumberEnd: 10083
    functionName: ast2obj_expr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - ast2obj_boolop
    - ast2obj_unaryop
    - PyList_New
    - Py_XDECREF
    - ast2obj_cmpop
    - ast2obj_operator
    - Py_LeaveRecursiveCall
    - ast2obj_list
    - ast2obj_int
    - ast2obj_string
    - asdl_seq_GET
    - ast2obj_constant
    - ast2obj_identifier
    - Py_DECREF
    - ast2obj_expr
    - PyObject_SetAttr
    - ast2obj_arguments
    - Py_EnterRecursiveCall
    - PyType_GenericNew
    - PyList_SET_ITEM
    - asdl_seq_LEN
    - ast2obj_expr_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_expr(struct ast_state *state, void* _o)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10089,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10091,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10093,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10096
      start: 10085
    functionDepth: 1
    functionLinenumber: 10085
    functionLinenumberEnd: 10096
    functionName: ast2obj_expr_context
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_expr_context(struct ast_state *state, expr_context_ty
      o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10101,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10103,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - boolop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10106
      start: 10097
    functionDepth: 1
    functionLinenumber: 10097
    functionLinenumberEnd: 10106
    functionName: ast2obj_boolop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_boolop(struct ast_state *state, boolop_ty o)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10111,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10113,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10115,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10117,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10119,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10121,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10123,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10125,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10127,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10129,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10131,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10133,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10135,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - operator_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10138
      start: 10107
    functionDepth: 1
    functionLinenumber: 10107
    functionLinenumberEnd: 10138
    functionName: ast2obj_operator
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - Py_NewRef
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_operator(struct ast_state *state, operator_ty o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10143,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10145,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10147,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10149,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - unaryop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10152
      start: 10139
    functionDepth: 1
    functionLinenumber: 10139
    functionLinenumberEnd: 10152
    functionName: ast2obj_unaryop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_unaryop(struct ast_state *state, unaryop_ty o)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10157,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10159,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10163,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10165,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10167,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10169,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10171,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10173,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10175,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - cmpop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10178
      start: 10153
    functionDepth: 1
    functionLinenumber: 10153
    functionLinenumberEnd: 10178
    functionName: ast2obj_cmpop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_cmpop(struct ast_state *state, cmpop_ty o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10188,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10192,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10194,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10198,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10199,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10203,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10204,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10208,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10209,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10213,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10214,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10217,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10218,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10219,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10221
      start: 10179
    functionDepth: 6
    functionLinenumber: 10179
    functionLinenumberEnd: 10221
    functionName: ast2obj_comprehension
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast2obj_list
    - Py_XDECREF
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_comprehension(struct ast_state *state, void* _o)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10232,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10238,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10240,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10244,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10245,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10249,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10250,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10255,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10258,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10262,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10263,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10267,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10268,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10270,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10272,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10273,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10277,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10278,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10281,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10282,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10283,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 80
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10285
      start: 10223
    functionDepth: 6
    functionLinenumber: 10223
    functionLinenumberEnd: 10285
    functionName: ast2obj_excepthandler
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast2obj_list
    - Py_XDECREF
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - ast2obj_identifier
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_excepthandler(struct ast_state *state, void* _o)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10296,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10300,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10302,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10306,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10307,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10311,1
    - Dst: ast2obj_arg
      Src: /src/cpython/Python/Python-ast.c:10312,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10316,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10317,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10321,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10322,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10326,1
    - Dst: ast2obj_arg
      Src: /src/cpython/Python/Python-ast.c:10327,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10331,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10332,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10336,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10337,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10340,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10341,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10342,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 75
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10344
      start: 10287
    functionDepth: 5
    functionLinenumber: 10287
    functionLinenumberEnd: 10344
    functionName: ast2obj_arguments
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - ast2obj_list
    - Py_XDECREF
    - Py_DECREF
    - PyType_GenericNew
    - PyObject_SetAttr
    - ast2obj_arg
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_arguments(struct ast_state *state, void* _o)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10355,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10359,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10361,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10365,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10366,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10370,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:10371,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10375,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10376,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10380,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10381,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10385,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10386,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10390,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10391,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10395,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10396,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10399,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10400,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10401,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 75
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10403
      start: 10346
    functionDepth: 6
    functionLinenumber: 10346
    functionLinenumberEnd: 10403
    functionName: ast2obj_arg
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - ast2obj_int
    - ast2obj_string
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - ast2obj_identifier
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_arg(struct ast_state *state, void* _o)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10414,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10418,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10420,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10424,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10425,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10429,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10430,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10434,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10435,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10439,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10440,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10444,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10445,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10449,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10450,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10453,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10454,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10455,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10457
      start: 10405
    functionDepth: 6
    functionLinenumber: 10405
    functionLinenumberEnd: 10457
    functionName: ast2obj_keyword
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - ast2obj_identifier
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_keyword(struct ast_state *state, void* _o)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10468,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10472,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10474,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10478,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10479,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10483,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10484,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10488,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10489,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10493,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10494,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10498,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10499,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10503,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10504,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10507,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10508,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10509,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10511
      start: 10459
    functionDepth: 2
    functionLinenumber: 10459
    functionLinenumberEnd: 10511
    functionName: ast2obj_alias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_identifier
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_alias(struct ast_state *state, void* _o)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10522,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10526,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10528,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10532,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10533,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10537,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10538,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10541,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10542,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10543,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10545
      start: 10513
    functionDepth: 6
    functionLinenumber: 10513
    functionLinenumberEnd: 10545
    functionName: ast2obj_withitem
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_withitem(struct ast_state *state, void* _o)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10556,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10560,1
    - Dst: ast2obj_pattern
      Src: /src/cpython/Python/Python-ast.c:10562,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10566,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10567,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10571,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10572,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10576,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10577,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10580,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10581,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10582,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10584
      start: 10547
    functionDepth: 6
    functionLinenumber: 10547
    functionLinenumberEnd: 10584
    functionName: ast2obj_match_case
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast2obj_list
    - Py_XDECREF
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - ast2obj_pattern
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_match_case(struct ast_state *state, void* _o)'
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10595,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10601,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10603,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10607,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10611,1
    - Dst: ast2obj_constant
      Src: /src/cpython/Python/Python-ast.c:10613,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10617,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10621,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10623,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10628,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10632,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10634,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10639,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10640,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10645,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10646,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10650,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10654,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10656,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10660,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10661,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10666,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10667,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10672,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10673,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10676,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10678,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10682,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10684,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10686,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10688,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10692,1
    - Dst: ast2obj_pattern
      Src: /src/cpython/Python/Python-ast.c:10694,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10698,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10699,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10703,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10707,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10709,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10714,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10717,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10721,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10722,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10726,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10727,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10731,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10732,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10736,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10737,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10740,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10741,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10742,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 217
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10744
      start: 10586
    functionDepth: 6
    functionLinenumber: 10586
    functionLinenumberEnd: 10744
    functionName: ast2obj_pattern
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - ast2obj_list
    - Py_XDECREF
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - ast2obj_pattern
    - ast2obj_identifier
    - PyObject_SetAttr
    - ast2obj_constant
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_pattern(struct ast_state *state, void* _o)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10755,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10761,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10763,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10767,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:10768,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10772,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10775,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10778,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10779,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10780,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10782
      start: 10746
    functionDepth: 2
    functionLinenumber: 10746
    functionLinenumberEnd: 10782
    functionName: ast2obj_type_ignore
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - ast2obj_int
    - ast2obj_string
    - Py_DECREF
    - PyType_GenericNew
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_type_ignore(struct ast_state *state, void* _o)'
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10793,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10799,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10801,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10805,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10806,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10810,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10811,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10815,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10819,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10821,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10825,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10826,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10830,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10834,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10836,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10840,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10841,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10845,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10848,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10852,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10853,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10857,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10858,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10862,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10863,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10867,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10868,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10872,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10873,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 126
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10875
      start: 10784
    functionDepth: 6
    functionLinenumber: 10784
    functionLinenumberEnd: 10875
    functionName: ast2obj_type_param
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - ast2obj_identifier
    - PyObject_SetAttr
    - Py_EnterRecursiveCall
    - Py_LeaveRecursiveCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_type_param(struct ast_state *state, void* _o)'
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:10891,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:10899,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:10903,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:10912,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:10913,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:10913,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:10913,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10916,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:10917,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10921,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:10921,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10922,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:10925,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10927,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:10930,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:10933,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:10935,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:10937,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:10941,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:10950,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:10951,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:10951,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:10951,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10954,1
    - Dst: _Py_asdl_type_ignore_seq_new
      Src: /src/cpython/Python/Python-ast.c:10955,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10959,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:10959,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10960,1
    - Dst: obj2ast_type_ignore
      Src: /src/cpython/Python/Python-ast.c:10963,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10965,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10967,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:10968,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:10971,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:10973,1
    - Dst: _PyAST_Module
      Src: /src/cpython/Python/Python-ast.c:10975,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:10980,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:10987,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:10991,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11000,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11001,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11001,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11001,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11004,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:11005,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11009,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11009,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11010,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:11013,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11015,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11017,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11018,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11021,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11023,1
    - Dst: _PyAST_Interactive
      Src: /src/cpython/Python/Python-ast.c:11025,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11030,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11037,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11041,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11046,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11049,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11050,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11052,1
    - Dst: _PyAST_Expression
      Src: /src/cpython/Python/Python-ast.c:11054,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11059,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11067,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11071,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11080,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11081,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11081,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11081,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11084,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11085,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11089,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11089,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11090,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11093,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11095,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11097,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11098,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11101,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11103,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11109,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11114,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11117,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11118,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11120,1
    - Dst: _PyAST_FunctionType
      Src: /src/cpython/Python/Python-ast.c:11122,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11127,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:11129,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 250
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - mod_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11131
      start: 10878
    functionDepth: 7
    functionLinenumber: 10878
    functionLinenumberEnd: 11131
    functionName: obj2ast_mod
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - _Py_asdl_stmt_seq_new
    - obj2ast_stmt
    - PyList_Check
    - Py_CLEAR
    - _Py_asdl_type_ignore_seq_new
    - PyList_GET_SIZE
    - _PyAST_Interactive
    - _PyAST_Module
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - obj2ast_type_ignore
    - _PyAST_Expression
    - PyObject_IsInstance
    - Py_DECREF
    - Py_NewRef
    - obj2ast_expr
    - _PyAST_FunctionType
    - Py_TYPE
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _Py_EnterRecursiveCall
    - _PyType_Name
    - _Py_asdl_expr_seq_new
    linkageType: ''
    returnType: int
    signature: int obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out,
      PyArena* arena)
  - BBCount: 570
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11154,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11159,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11162,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11163,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11165,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11167,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11171,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11176,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11179,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11180,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11182,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11184,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11188,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11193,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11196,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11197,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11199,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11201,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11205,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11210,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11213,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11214,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11216,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11219,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11232,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11236,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11241,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:11244,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11245,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11247,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11253,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11258,1
    - Dst: obj2ast_arguments
      Src: /src/cpython/Python/Python-ast.c:11261,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11262,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11264,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11266,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11270,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11279,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11280,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11280,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11280,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11283,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:11284,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11288,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11288,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11289,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:11292,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11294,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11297,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11300,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11302,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11304,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11308,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11317,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11318,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11318,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11318,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11321,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11322,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11326,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11326,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11327,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11330,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11332,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11334,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11335,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11338,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11340,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11342,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11346,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11351,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11354,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11355,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11357,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11359,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11363,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11368,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:11371,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11372,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11374,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11376,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11380,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11389,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11390,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11390,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11390,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11393,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:11394,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11398,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11398,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11399,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:11402,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11404,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11407,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11410,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11412,1
    - Dst: _PyAST_FunctionDef
      Src: /src/cpython/Python/Python-ast.c:11414,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11422,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11435,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11439,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11444,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:11447,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11448,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11450,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11456,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11461,1
    - Dst: obj2ast_arguments
      Src: /src/cpython/Python/Python-ast.c:11464,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11465,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11467,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11469,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11473,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11482,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11483,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11483,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11483,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11486,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:11487,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11491,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11491,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11492,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:11495,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11497,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11499,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11500,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11503,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11505,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11507,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11511,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11520,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11521,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11521,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11521,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11524,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11525,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11529,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11529,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11530,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11533,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11534,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11535,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11537,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11538,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11541,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11543,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11545,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11549,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11554,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11557,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11558,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11560,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11562,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11566,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11571,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:11574,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11575,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11577,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11579,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11583,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11592,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11593,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11593,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11593,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11596,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:11597,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11601,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11601,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11602,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:11605,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11607,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11610,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11613,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11615,1
    - Dst: _PyAST_AsyncFunctionDef
      Src: /src/cpython/Python/Python-ast.c:11617,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11625,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11637,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11641,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11646,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:11649,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11650,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11652,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11654,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11658,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11667,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11668,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11668,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11668,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11671,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11672,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11676,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11676,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11677,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11680,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11682,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11684,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11685,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11688,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11690,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11692,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11696,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11705,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11706,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11706,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11706,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11709,1
    - Dst: _Py_asdl_keyword_seq_new
      Src: /src/cpython/Python/Python-ast.c:11710,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11714,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11714,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11715,1
    - Dst: obj2ast_keyword
      Src: /src/cpython/Python/Python-ast.c:11718,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11720,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11722,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11723,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11726,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11728,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11730,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11734,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11743,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11744,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11744,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11744,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11747,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:11748,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11752,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11752,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11753,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:11756,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11758,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11760,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11761,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11764,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11766,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11768,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11772,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11781,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11782,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11782,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11782,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11785,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11786,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11790,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11790,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11791,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11794,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11796,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11798,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11799,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11802,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11804,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11806,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11810,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11819,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11820,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11820,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11820,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11823,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:11824,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11828,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11828,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11829,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:11832,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11834,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11836,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11837,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11840,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11842,1
    - Dst: _PyAST_ClassDef
      Src: /src/cpython/Python/Python-ast.c:11844,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11851,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11858,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11862,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11867,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11870,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11871,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11873,1
    - Dst: _PyAST_Return
      Src: /src/cpython/Python/Python-ast.c:11875,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11881,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11888,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11892,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11901,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11902,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11902,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11902,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11905,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11906,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11910,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11910,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11911,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11914,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11915,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11916,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11918,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11919,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11922,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11924,1
    - Dst: _PyAST_Delete
      Src: /src/cpython/Python/Python-ast.c:11926,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11932,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11941,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11945,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11954,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11955,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11955,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11955,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11958,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11959,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11963,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11963,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11964,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11967,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11969,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11971,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11972,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11975,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11977,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11979,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11983,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11988,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11991,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11992,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11994,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11996,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12000,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12005,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12008,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12009,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12011,1
    - Dst: _PyAST_Assign
      Src: /src/cpython/Python/Python-ast.c:12013,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12019,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12028,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12032,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12037,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12040,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12041,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12043,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12045,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12049,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12058,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12059,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12059,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12059,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12062,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:12063,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12067,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12067,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12068,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:12071,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12073,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12075,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12076,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12079,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12081,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12087,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12092,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12095,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12096,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12098,1
    - Dst: _PyAST_TypeAlias
      Src: /src/cpython/Python/Python-ast.c:12100,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12106,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12119,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12124,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12127,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12128,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12130,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12136,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12141,1
    - Dst: obj2ast_operator
      Src: /src/cpython/Python/Python-ast.c:12144,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12145,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12147,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12149,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12153,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12158,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12161,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12162,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12164,1
    - Dst: _PyAST_AugAssign
      Src: /src/cpython/Python/Python-ast.c:12166,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12172,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12182,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12186,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12191,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12194,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12195,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12197,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12203,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12208,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12211,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12212,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12214,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12216,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12220,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12225,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12228,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12229,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12231,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12233,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12237,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12242,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:12245,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12246,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12248,1
    - Dst: _PyAST_AnnAssign
      Src: /src/cpython/Python/Python-ast.c:12250,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12256,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12267,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12271,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12276,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12279,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12280,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12282,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12288,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12293,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12296,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12297,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12299,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12301,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12305,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12314,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12315,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12315,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12315,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12318,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12319,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12323,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12323,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12324,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12327,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12329,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12332,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12335,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12337,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12339,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12343,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12352,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12353,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12353,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12353,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12356,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12357,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12361,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12361,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12362,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12365,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12367,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12369,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12370,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12373,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12375,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12377,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12381,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12386,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12389,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12390,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12392,1
    - Dst: _PyAST_For
      Src: /src/cpython/Python/Python-ast.c:12394,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12400,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12411,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12415,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12420,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12423,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12424,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12426,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12432,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12437,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12440,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12441,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12443,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12445,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12449,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12458,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12459,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12459,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12459,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12462,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12463,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12467,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12467,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12468,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12471,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12473,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12475,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12476,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12479,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12481,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12483,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12487,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12496,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12497,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12497,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12497,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12500,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12501,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12505,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12505,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12506,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12509,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12511,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12513,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12514,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12517,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12519,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12521,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12525,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12530,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12533,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12534,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12536,1
    - Dst: _PyAST_AsyncFor
      Src: /src/cpython/Python/Python-ast.c:12538,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12545,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12554,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12558,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12563,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12566,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12567,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12569,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12571,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12575,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12584,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12585,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12585,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12585,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12588,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12589,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12593,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12593,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12594,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12597,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12599,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12602,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12605,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12607,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12609,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12613,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12622,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12623,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12623,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12623,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12626,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12627,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12631,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12631,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12632,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12635,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12637,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12639,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12640,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12643,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12645,1
    - Dst: _PyAST_While
      Src: /src/cpython/Python/Python-ast.c:12647,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12653,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12662,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12666,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12671,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12674,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12675,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12677,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12679,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12683,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12692,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12693,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12693,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12693,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12696,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12697,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12701,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12701,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12702,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12705,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12707,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12709,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12710,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12713,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12715,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12717,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12721,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12730,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12731,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12731,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12731,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12734,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12735,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12739,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12739,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12740,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12743,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12745,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12747,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12748,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12751,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12753,1
    - Dst: _PyAST_If
      Src: /src/cpython/Python/Python-ast.c:12755,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12761,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12770,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12774,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12783,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12784,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12784,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12784,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12787,1
    - Dst: _Py_asdl_withitem_seq_new
      Src: /src/cpython/Python/Python-ast.c:12788,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12792,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12792,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12793,1
    - Dst: obj2ast_withitem
      Src: /src/cpython/Python/Python-ast.c:12796,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12798,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12800,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12801,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12804,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12806,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12808,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12812,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12821,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12822,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12822,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12822,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12825,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12826,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12830,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12830,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12831,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12834,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12836,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12838,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12839,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12842,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12844,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12846,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12850,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12855,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12858,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12859,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12861,1
    - Dst: _PyAST_With
      Src: /src/cpython/Python/Python-ast.c:12863,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12869,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12878,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12882,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12891,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12892,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12892,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12892,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12895,1
    - Dst: _Py_asdl_withitem_seq_new
      Src: /src/cpython/Python/Python-ast.c:12896,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12900,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12900,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12901,1
    - Dst: obj2ast_withitem
      Src: /src/cpython/Python/Python-ast.c:12904,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12906,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12908,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12909,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12912,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12914,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12916,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12920,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12929,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12930,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12930,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12930,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12933,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12934,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12938,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12938,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12939,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12942,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12944,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12946,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12947,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12950,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12952,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12954,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12958,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12963,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12966,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12967,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12969,1
    - Dst: _PyAST_AsyncWith
      Src: /src/cpython/Python/Python-ast.c:12971,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12977,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12985,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12989,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12994,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12997,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12998,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13000,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13002,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13006,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13015,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13016,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13016,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13016,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13019,1
    - Dst: _Py_asdl_match_case_seq_new
      Src: /src/cpython/Python/Python-ast.c:13020,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13024,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13024,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13025,1
    - Dst: obj2ast_match_case
      Src: /src/cpython/Python/Python-ast.c:13028,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13030,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13032,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13033,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13036,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13038,1
    - Dst: _PyAST_Match
      Src: /src/cpython/Python/Python-ast.c:13040,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13046,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13054,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13058,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13063,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13066,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13067,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13069,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13071,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13075,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13080,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13083,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13084,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13086,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Python/Python-ast.c:13088,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13094,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13104,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13108,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13117,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13118,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13118,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13118,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13121,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13122,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13126,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13126,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13127,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13130,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13132,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13134,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13135,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13138,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13140,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13142,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13146,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13155,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13156,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13156,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13156,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13159,1
    - Dst: _Py_asdl_excepthandler_seq_new
      Src: /src/cpython/Python/Python-ast.c:13160,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13164,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13164,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13165,1
    - Dst: obj2ast_excepthandler
      Src: /src/cpython/Python/Python-ast.c:13168,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13170,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13172,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13173,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13178,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13180,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13184,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13193,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13194,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13194,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13194,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13197,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13198,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13202,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13202,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13203,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13206,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13208,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13210,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13211,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13214,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13216,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13218,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13222,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13231,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13232,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13232,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13232,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13235,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13236,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13240,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13240,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13241,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13244,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13246,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13248,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13249,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13252,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13254,1
    - Dst: _PyAST_Try
      Src: /src/cpython/Python/Python-ast.c:13256,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13262,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13272,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13276,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13285,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13286,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13286,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13286,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13289,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13290,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13294,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13294,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13295,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13298,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13300,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13302,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13303,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13306,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13308,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13310,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13314,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13323,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13324,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13324,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13324,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13327,1
    - Dst: _Py_asdl_excepthandler_seq_new
      Src: /src/cpython/Python/Python-ast.c:13328,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13332,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13332,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13333,1
    - Dst: obj2ast_excepthandler
      Src: /src/cpython/Python/Python-ast.c:13336,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13338,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13340,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13341,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13344,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13346,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13348,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13352,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13361,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13362,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13362,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13362,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13365,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13366,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13370,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13370,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13371,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13374,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13376,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13378,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13379,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13382,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13384,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13386,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13390,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13399,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13400,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13400,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13400,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13403,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13404,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13408,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13408,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13409,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13412,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13414,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13416,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13417,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13422,1
    - Dst: _PyAST_TryStar
      Src: /src/cpython/Python/Python-ast.c:13424,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13430,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13438,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13442,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13447,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13450,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13451,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13453,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13455,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13459,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13464,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13467,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13468,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13470,1
    - Dst: _PyAST_Assert
      Src: /src/cpython/Python/Python-ast.c:13472,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13478,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13485,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13489,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13498,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13499,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13499,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13499,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13502,1
    - Dst: _Py_asdl_alias_seq_new
      Src: /src/cpython/Python/Python-ast.c:13503,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13507,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13507,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13508,1
    - Dst: obj2ast_alias
      Src: /src/cpython/Python/Python-ast.c:13511,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13513,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13515,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13516,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13519,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13521,1
    - Dst: _PyAST_Import
      Src: /src/cpython/Python/Python-ast.c:13523,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13529,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13538,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13542,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13547,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:13550,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13551,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13553,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13555,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13559,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13568,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13569,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13569,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13569,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13572,1
    - Dst: _Py_asdl_alias_seq_new
      Src: /src/cpython/Python/Python-ast.c:13573,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13577,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13577,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13578,1
    - Dst: obj2ast_alias
      Src: /src/cpython/Python/Python-ast.c:13581,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13583,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13585,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13586,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13589,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13591,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13593,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13597,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13602,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13605,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13606,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13608,1
    - Dst: _PyAST_ImportFrom
      Src: /src/cpython/Python/Python-ast.c:13610,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13616,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13623,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13627,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13636,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13637,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13637,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13637,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13640,1
    - Dst: _Py_asdl_identifier_seq_new
      Src: /src/cpython/Python/Python-ast.c:13641,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13645,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13645,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13646,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:13649,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13651,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13653,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13654,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13657,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13659,1
    - Dst: _PyAST_Global
      Src: /src/cpython/Python/Python-ast.c:13661,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13667,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13674,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13678,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13687,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13688,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13688,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13688,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13691,1
    - Dst: _Py_asdl_identifier_seq_new
      Src: /src/cpython/Python/Python-ast.c:13692,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13696,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13696,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13697,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:13700,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13702,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13704,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13705,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13708,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13710,1
    - Dst: _PyAST_Nonlocal
      Src: /src/cpython/Python/Python-ast.c:13712,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13718,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13725,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13729,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13734,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13737,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13738,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13740,1
    - Dst: _PyAST_Expr
      Src: /src/cpython/Python/Python-ast.c:13742,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13748,1
    - Dst: _PyAST_Pass
      Src: /src/cpython/Python/Python-ast.c:13754,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13760,1
    - Dst: _PyAST_Break
      Src: /src/cpython/Python/Python-ast.c:13766,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13772,1
    - Dst: _PyAST_Continue
      Src: /src/cpython/Python/Python-ast.c:13778,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13784,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:13786,1
    CyclomaticComplexity: 935
    EdgeCount: 935
    ICount: 2641
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - stmt_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13788
      start: 11133
    functionDepth: 7
    functionLinenumber: 11133
    functionLinenumberEnd: 13788
    functionName: obj2ast_stmt
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - _Py_asdl_excepthandler_seq_new
    - _PyAST_AsyncWith
    - PyErr_SetString
    - _Py_asdl_stmt_seq_new
    - obj2ast_stmt
    - PyList_Check
    - _PyAST_Continue
    - _PyAST_Import
    - Py_CLEAR
    - obj2ast_type_param
    - obj2ast_operator
    - obj2ast_withitem
    - _Py_asdl_withitem_seq_new
    - _PyAST_Assert
    - _PyAST_ClassDef
    - PyList_GET_SIZE
    - _PyAST_Try
    - _PyAST_Global
    - _PyAST_Match
    - _PyAST_Expr
    - _PyAST_While
    - _Py_asdl_match_case_seq_new
    - obj2ast_match_case
    - _PyAST_AsyncFor
    - obj2ast_identifier
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - _PyAST_Assign
    - obj2ast_excepthandler
    - _PyAST_TryStar
    - PyObject_IsInstance
    - _PyAST_Break
    - Py_DECREF
    - obj2ast_int
    - _PyAST_FunctionDef
    - _PyAST_Delete
    - _PyAST_Nonlocal
    - _Py_asdl_type_param_seq_new
    - _PyAST_ImportFrom
    - _PyAST_AugAssign
    - _PyAST_Raise
    - _PyAST_If
    - Py_NewRef
    - obj2ast_expr
    - obj2ast_arguments
    - obj2ast_keyword
    - _PyAST_With
    - _PyAST_AsyncFunctionDef
    - Py_TYPE
    - _Py_asdl_alias_seq_new
    - obj2ast_alias
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _PyAST_For
    - _PyAST_Return
    - _Py_EnterRecursiveCall
    - _PyAST_Pass
    - _PyAST_TypeAlias
    - _PyType_Name
    - _Py_asdl_expr_seq_new
    - _Py_asdl_identifier_seq_new
    - _PyAST_AnnAssign
    - obj2ast_string
    - _Py_asdl_keyword_seq_new
    linkageType: ''
    returnType: int
    signature: "int obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty*
      out, PyArena*\n             arena)"
  - BBCount: 421
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13807,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13811,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13816,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13819,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13820,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13822,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13824,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13828,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13833,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13836,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13839,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13841,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13845,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13850,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13853,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13854,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13856,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13858,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13862,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13867,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13870,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13871,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13873,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13876,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13888,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13893,1
    - Dst: obj2ast_boolop
      Src: /src/cpython/Python/Python-ast.c:13896,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13897,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13899,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13901,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13905,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13914,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13915,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13915,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13915,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13918,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:13919,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13923,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13923,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13924,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13927,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13929,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13931,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13932,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13935,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13937,1
    - Dst: _PyAST_BoolOp
      Src: /src/cpython/Python/Python-ast.c:13939,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13945,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13953,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13957,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13962,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13965,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13966,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13968,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13970,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13974,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13979,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13982,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13983,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13985,1
    - Dst: _PyAST_NamedExpr
      Src: /src/cpython/Python/Python-ast.c:13987,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13993,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14002,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14006,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14011,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14014,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14015,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14017,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14019,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14023,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14028,1
    - Dst: obj2ast_operator
      Src: /src/cpython/Python/Python-ast.c:14031,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14032,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14034,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14036,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14040,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14045,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14048,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14049,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14051,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Python/Python-ast.c:14053,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14059,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14067,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14071,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14076,1
    - Dst: obj2ast_unaryop
      Src: /src/cpython/Python/Python-ast.c:14079,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14080,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14082,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14088,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14093,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14096,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14097,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14099,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Python/Python-ast.c:14101,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14107,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14119,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14124,1
    - Dst: obj2ast_arguments
      Src: /src/cpython/Python/Python-ast.c:14127,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14128,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14130,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14136,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14141,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14144,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14145,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14147,1
    - Dst: _PyAST_Lambda
      Src: /src/cpython/Python/Python-ast.c:14149,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14155,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14168,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14173,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14176,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14177,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14179,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14185,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14190,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14193,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14194,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14196,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14202,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14207,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14210,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14211,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14213,1
    - Dst: _PyAST_IfExp
      Src: /src/cpython/Python/Python-ast.c:14215,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14221,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14229,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14233,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14242,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14243,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14243,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14243,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14246,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14251,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14251,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14252,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14255,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14257,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14259,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14260,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14263,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14265,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14267,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14271,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14280,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14281,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14281,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14281,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14284,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14285,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14289,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14289,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14290,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14293,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14295,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14297,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14298,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14301,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14303,1
    - Dst: _PyAST_Dict
      Src: /src/cpython/Python/Python-ast.c:14305,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14311,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14318,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14322,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14331,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14332,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14332,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14332,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14335,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14336,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14340,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14340,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14341,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14344,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14346,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14349,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14352,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14354,1
    - Dst: _PyAST_Set
      Src: /src/cpython/Python/Python-ast.c:14356,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14362,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14374,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14379,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14382,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14383,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14385,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14387,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14391,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14400,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14401,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14401,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14401,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14404,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14405,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14409,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14409,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14410,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14413,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14415,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14417,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14418,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14421,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14423,1
    - Dst: _PyAST_ListComp
      Src: /src/cpython/Python/Python-ast.c:14425,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14431,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14439,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14443,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14448,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14451,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14452,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14454,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14456,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14460,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14469,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14470,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14470,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14470,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14473,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14474,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14478,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14478,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14479,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14482,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14484,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14486,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14487,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14490,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14492,1
    - Dst: _PyAST_SetComp
      Src: /src/cpython/Python/Python-ast.c:14494,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14500,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14513,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14518,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14521,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14522,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14524,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14526,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14530,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14535,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14538,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14539,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14541,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14543,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14547,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14556,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14557,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14557,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14557,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14560,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14561,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14565,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14565,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14566,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14569,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14571,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14574,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14577,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14579,1
    - Dst: _PyAST_DictComp
      Src: /src/cpython/Python/Python-ast.c:14581,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14587,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14595,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14599,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14604,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14607,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14610,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14612,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14616,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14625,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14626,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14626,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14626,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14629,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14630,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14634,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14634,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14635,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14638,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14640,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14642,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14643,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14646,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14648,1
    - Dst: _PyAST_GeneratorExp
      Src: /src/cpython/Python/Python-ast.c:14650,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14656,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14667,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14672,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14675,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14678,1
    - Dst: _PyAST_Await
      Src: /src/cpython/Python/Python-ast.c:14680,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14686,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14693,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14697,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14702,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14705,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14706,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14708,1
    - Dst: _PyAST_Yield
      Src: /src/cpython/Python/Python-ast.c:14710,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14716,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14723,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14727,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14732,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14735,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14736,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14738,1
    - Dst: _PyAST_YieldFrom
      Src: /src/cpython/Python/Python-ast.c:14740,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14746,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14755,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14759,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14764,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14767,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14768,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14770,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14772,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14776,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14785,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14786,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14786,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14786,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14789,1
    - Dst: _Py_asdl_int_seq_new
      Src: /src/cpython/Python/Python-ast.c:14790,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14794,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14794,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14795,1
    - Dst: obj2ast_cmpop
      Src: /src/cpython/Python/Python-ast.c:14798,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14800,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14802,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14803,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14806,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14808,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14810,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14814,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14823,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14824,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14824,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14824,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14827,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14828,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14832,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14832,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14833,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14836,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14838,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14840,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14841,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14844,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14846,1
    - Dst: _PyAST_Compare
      Src: /src/cpython/Python/Python-ast.c:14848,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14854,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14863,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14867,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14872,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14875,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14876,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14878,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14880,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14884,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14893,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14894,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14894,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14894,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14897,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14898,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14902,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14902,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14903,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14906,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14908,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14910,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14911,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14914,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14916,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14918,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14922,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14931,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14932,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14932,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14932,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14935,1
    - Dst: _Py_asdl_keyword_seq_new
      Src: /src/cpython/Python/Python-ast.c:14936,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14940,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14940,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14941,1
    - Dst: obj2ast_keyword
      Src: /src/cpython/Python/Python-ast.c:14944,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14945,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14946,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14948,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14949,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14952,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14954,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Python/Python-ast.c:14956,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14962,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14971,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14975,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14980,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14983,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14984,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14986,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14988,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14992,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14997,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:15000,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15001,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15003,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15005,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15009,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15014,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15017,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15018,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15020,1
    - Dst: _PyAST_FormattedValue
      Src: /src/cpython/Python/Python-ast.c:15022,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15029,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15043,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15048,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15051,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15052,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15054,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15056,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15060,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15065,1
    - Dst: obj2ast_constant
      Src: /src/cpython/Python/Python-ast.c:15068,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15069,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15071,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15077,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15082,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:15085,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15086,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15088,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15090,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15094,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15099,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15102,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15103,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15105,1
    - Dst: _PyAST_Interpolation
      Src: /src/cpython/Python/Python-ast.c:15107,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15114,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15121,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15125,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15134,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15135,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15135,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15135,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15138,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15139,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15143,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15143,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15144,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15147,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15149,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15152,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15155,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15157,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Python/Python-ast.c:15159,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15165,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15172,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15176,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15185,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15186,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15186,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15186,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15189,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15190,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15194,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15194,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15195,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15198,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15200,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15202,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15203,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15206,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15208,1
    - Dst: _PyAST_TemplateStr
      Src: /src/cpython/Python/Python-ast.c:15210,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15216,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15224,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15228,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15233,1
    - Dst: obj2ast_constant
      Src: /src/cpython/Python/Python-ast.c:15236,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15239,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15241,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15245,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15250,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:15253,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15254,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15256,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Python/Python-ast.c:15258,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15264,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15273,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15277,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15282,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15285,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15286,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15288,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15290,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15294,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15299,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:15302,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15303,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15305,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15307,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15311,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15316,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15319,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15320,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15322,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Python/Python-ast.c:15324,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15330,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15343,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15348,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15351,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15352,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15354,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15356,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15360,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15365,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15368,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15369,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15371,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15373,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15377,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15382,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15385,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15386,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15388,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Python/Python-ast.c:15390,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15396,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15404,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15408,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15413,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15416,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15417,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15419,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15425,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15430,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15433,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15434,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15436,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Python/Python-ast.c:15438,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15444,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15456,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15461,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:15464,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15465,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15467,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15469,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15473,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15478,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15481,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15482,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15484,1
    - Dst: _PyAST_Name
      Src: /src/cpython/Python/Python-ast.c:15486,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15492,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15500,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15504,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15513,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15514,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15514,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15514,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15517,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15518,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15522,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15522,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15523,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15526,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15528,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15530,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15531,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15534,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15536,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15538,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15542,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15547,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15550,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15551,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15553,1
    - Dst: _PyAST_List
      Src: /src/cpython/Python/Python-ast.c:15555,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15561,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15569,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15573,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15582,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15583,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15583,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15583,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15586,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15587,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15591,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15591,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15592,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15595,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15597,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15600,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15603,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15605,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15607,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15611,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15616,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15619,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15620,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15622,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Python/Python-ast.c:15624,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15630,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15639,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15643,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15648,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15651,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15652,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15654,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15656,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15660,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15665,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15668,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15669,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15671,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15673,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15677,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15682,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15685,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15686,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15688,1
    - Dst: _PyAST_Slice
      Src: /src/cpython/Python/Python-ast.c:15690,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15696,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:15698,1
    CyclomaticComplexity: 656
    EdgeCount: 656
    ICount: 1900
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - expr_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15700
      start: 13790
    functionDepth: 7
    functionLinenumber: 13790
    functionLinenumberEnd: 15700
    functionName: obj2ast_expr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - _PyAST_Await
    - PyErr_SetString
    - obj2ast_cmpop
    - PyList_Check
    - _PyAST_Lambda
    - _PyAST_IfExp
    - _PyAST_SetComp
    - _PyAST_Call
    - _PyAST_TemplateStr
    - _PyAST_Set
    - obj2ast_expr_context
    - Py_CLEAR
    - obj2ast_operator
    - _PyAST_Slice
    - _PyAST_FormattedValue
    - obj2ast_unaryop
    - _PyAST_Yield
    - obj2ast_constant
    - PyList_GET_SIZE
    - _PyAST_UnaryOp
    - _PyAST_Name
    - _PyAST_BinOp
    - obj2ast_identifier
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - _PyAST_YieldFrom
    - _PyAST_BoolOp
    - _Py_asdl_keyword_seq_new
    - PyObject_IsInstance
    - obj2ast_boolop
    - _PyAST_Tuple
    - Py_DECREF
    - obj2ast_int
    - _PyAST_GeneratorExp
    - Py_NewRef
    - obj2ast_expr
    - _PyAST_NamedExpr
    - obj2ast_arguments
    - _PyAST_Subscript
    - obj2ast_keyword
    - _PyAST_Attribute
    - _PyAST_List
    - _Py_asdl_comprehension_seq_new
    - Py_TYPE
    - _PyAST_Dict
    - _PyAST_Interpolation
    - _PyAST_Constant
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _Py_asdl_int_seq_new
    - _PyAST_JoinedStr
    - _PyAST_Compare
    - _PyAST_DictComp
    - _Py_EnterRecursiveCall
    - _PyAST_Starred
    - _PyAST_ListComp
    - _PyType_Name
    - _Py_asdl_expr_seq_new
    - obj2ast_string
    - obj2ast_comprehension
    linkageType: ''
    returnType: int
    signature: "int obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty*
      out, PyArena*\n             arena)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15708,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15716,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15724,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15733,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - expr_context_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15735
      start: 15702
    functionDepth: 7
    functionLinenumber: 15702
    functionLinenumberEnd: 15735
    functionName: obj2ast_expr_context
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int obj2ast_expr_context(struct ast_state *state, PyObject* obj, expr_context_ty*\n
      \                    out, PyArena* arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15743,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15751,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - boolop_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15762
      start: 15737
    functionDepth: 7
    functionLinenumber: 15737
    functionLinenumberEnd: 15762
    functionName: obj2ast_boolop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int obj2ast_boolop(struct ast_state *state, PyObject* obj, boolop_ty*
      out, PyArena*\n               arena)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15770,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15778,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15786,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15794,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15802,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15810,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15818,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15826,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15834,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15842,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15850,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15858,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15866,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15875,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 107
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - operator_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15877
      start: 15764
    functionDepth: 7
    functionLinenumber: 15764
    functionLinenumberEnd: 15877
    functionName: obj2ast_operator
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty*
      out,\n                 PyArena* arena)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15885,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15893,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15901,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15909,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15918,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - unaryop_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15920
      start: 15879
    functionDepth: 7
    functionLinenumber: 15879
    functionLinenumberEnd: 15920
    functionName: obj2ast_unaryop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int obj2ast_unaryop(struct ast_state *state, PyObject* obj, unaryop_ty*
      out,\n                PyArena* arena)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15928,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15936,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15944,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15952,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15960,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15968,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15976,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15984,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15992,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:16000,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16009,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 83
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - cmpop_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16011
      start: 15922
    functionDepth: 7
    functionLinenumber: 15922
    functionLinenumberEnd: 16011
    functionName: obj2ast_cmpop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty*
      out, PyArena*\n              arena)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16023,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16027,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16032,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16035,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16036,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16038,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16040,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16044,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16049,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16052,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16053,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16055,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16057,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16061,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16071,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16071,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16071,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16074,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:16075,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16079,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16079,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16080,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16083,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16085,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16087,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16088,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16091,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16093,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16095,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16099,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16104,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16107,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16108,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16110,1
    - Dst: _PyAST_comprehension
      Src: /src/cpython/Python/Python-ast.c:16112,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16116,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 103
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - comprehension_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16118
      start: 16013
    functionDepth: 8
    functionLinenumber: 16013
    functionLinenumberEnd: 16118
    functionName: obj2ast_comprehension
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - PyList_Check
    - Py_CLEAR
    - PyList_GET_SIZE
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - _PyAST_comprehension
    - Py_DECREF
    - obj2ast_int
    - Py_NewRef
    - obj2ast_expr
    - Py_TYPE
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _Py_EnterRecursiveCall
    - _PyType_Name
    - _Py_asdl_expr_seq_new
    linkageType: ''
    returnType: int
    signature: "int obj2ast_comprehension(struct ast_state *state, PyObject* obj,
      comprehension_ty*\n                      out, PyArena* arena)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16137,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16141,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16146,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16149,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16150,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16152,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16158,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16163,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16166,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16167,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16169,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16171,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16175,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16180,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16183,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16184,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16186,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16188,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16192,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16197,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16200,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16201,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16203,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:16206,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16215,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16219,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16224,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16227,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16228,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16230,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16232,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16236,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16241,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16244,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16245,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16247,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16249,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16253,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16262,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16263,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16263,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16266,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:16267,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16271,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16271,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16272,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:16275,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16277,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16279,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16280,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16283,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16285,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Python/Python-ast.c:16287,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16293,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16295,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 169
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - excepthandler_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16297
      start: 16120
    functionDepth: 8
    functionLinenumber: 16120
    functionLinenumberEnd: 16297
    functionName: obj2ast_excepthandler
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - _Py_asdl_stmt_seq_new
    - obj2ast_stmt
    - PyList_Check
    - Py_CLEAR
    - PyList_GET_SIZE
    - obj2ast_identifier
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - PyObject_IsInstance
    - Py_DECREF
    - obj2ast_int
    - _PyAST_ExceptHandler
    - Py_NewRef
    - obj2ast_expr
    - Py_TYPE
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _Py_EnterRecursiveCall
    - _PyType_Name
    linkageType: ''
    returnType: int
    signature: "int obj2ast_excepthandler(struct ast_state *state, PyObject* obj,
      excepthandler_ty*\n                      out, PyArena* arena)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16312,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16316,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16325,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16326,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16326,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16326,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16329,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Python/Python-ast.c:16330,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16334,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16334,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16335,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16338,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16340,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16342,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16343,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16346,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16348,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16350,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16354,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16363,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16364,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16364,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16364,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16367,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Python/Python-ast.c:16368,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16372,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16372,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16373,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16376,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16378,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16381,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16384,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16386,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16388,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16392,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16397,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16400,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16401,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16403,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16405,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16409,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16418,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16419,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16419,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16419,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16422,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Python/Python-ast.c:16423,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16427,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16427,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16428,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16431,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16433,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16435,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16436,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16439,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16441,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16443,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16447,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16456,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16457,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16457,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16457,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16460,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:16461,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16465,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16465,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16466,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16469,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16471,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16473,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16474,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16477,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16479,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16481,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16485,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16490,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16493,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16494,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16496,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16498,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16502,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16511,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16512,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16512,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16512,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16515,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:16516,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16520,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16520,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16521,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16524,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16526,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16528,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16529,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16532,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16534,1
    - Dst: _PyAST_arguments
      Src: /src/cpython/Python/Python-ast.c:16536,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16541,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 241
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - arguments_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16543
      start: 16299
    functionDepth: 8
    functionLinenumber: 16299
    functionLinenumberEnd: 16543
    functionName: obj2ast_arguments
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - PyList_Check
    - Py_CLEAR
    - _PyAST_arguments
    - PyList_GET_SIZE
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - obj2ast_arg
    - Py_DECREF
    - Py_NewRef
    - obj2ast_expr
    - Py_TYPE
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _Py_EnterRecursiveCall
    - _Py_asdl_arg_seq_new
    - _PyType_Name
    - _Py_asdl_expr_seq_new
    linkageType: ''
    returnType: int
    signature: "int obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty*
      out,\n                  PyArena* arena)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16557,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16561,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16566,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16569,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16570,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16572,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16574,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16578,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16583,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16586,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16587,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16589,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16591,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16595,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16600,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:16603,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16604,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16606,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16608,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16612,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16617,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16620,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16621,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16623,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16625,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16629,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16634,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16637,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16638,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16640,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16642,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16646,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16651,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16654,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16655,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16657,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16659,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16663,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16668,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16671,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16672,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16674,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Python/Python-ast.c:16676,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16681,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 136
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - arg_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16683
      start: 16545
    functionDepth: 8
    functionLinenumber: 16545
    functionLinenumberEnd: 16683
    functionName: obj2ast_arg
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - obj2ast_int
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - _Py_EnterRecursiveCall
    - obj2ast_expr
    - _PyAST_arg
    - obj2ast_identifier
    - _Py_LeaveRecursiveCall
    - obj2ast_string
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out,
      PyArena* arena)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16697,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16701,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16706,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16709,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16710,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16712,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16714,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16718,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16723,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16726,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16727,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16729,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16731,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16735,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16740,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16743,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16744,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16746,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16748,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16752,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16757,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16760,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16761,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16763,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16765,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16769,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16774,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16777,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16778,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16780,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16782,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16786,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16791,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16794,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16795,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16797,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Python/Python-ast.c:16799,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16804,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 118
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - keyword_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16806
      start: 16685
    functionDepth: 8
    functionLinenumber: 16685
    functionLinenumberEnd: 16806
    functionName: obj2ast_keyword
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - obj2ast_int
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - _Py_EnterRecursiveCall
    - obj2ast_expr
    - _PyAST_keyword
    - obj2ast_identifier
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty*
      out,\n                PyArena* arena)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16820,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16824,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16829,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16832,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16833,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16835,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16841,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16846,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16849,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16850,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16852,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16854,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16858,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16863,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16866,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16867,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16869,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16871,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16875,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16880,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16883,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16884,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16886,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16888,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16892,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16897,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16900,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16901,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16903,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16905,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16909,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16914,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16917,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16918,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16920,1
    - Dst: _PyAST_alias
      Src: /src/cpython/Python/Python-ast.c:16922,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16927,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 118
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - alias_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16929
      start: 16808
    functionDepth: 6
    functionLinenumber: 16808
    functionLinenumberEnd: 16929
    functionName: obj2ast_alias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyAST_alias
    - obj2ast_int
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - _Py_EnterRecursiveCall
    - obj2ast_identifier
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty*
      out, PyArena*\n              arena)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16939,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16943,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16948,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16951,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16952,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16954,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16956,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16960,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16965,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16968,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16969,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16971,1
    - Dst: _PyAST_withitem
      Src: /src/cpython/Python/Python-ast.c:16973,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16977,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - withitem_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16979
      start: 16931
    functionDepth: 8
    functionLinenumber: 16931
    functionLinenumberEnd: 16979
    functionName: obj2ast_withitem
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - _PyAST_withitem
    - _Py_EnterRecursiveCall
    - obj2ast_expr
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int obj2ast_withitem(struct ast_state *state, PyObject* obj, withitem_ty*
      out,\n                 PyArena* arena)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16990,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16994,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16999,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17002,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17003,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17005,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17007,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17011,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17016,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17019,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17020,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17022,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17024,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17028,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17037,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17038,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17038,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17038,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17041,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:17042,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17046,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17046,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17047,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:17050,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17052,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17054,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17055,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17058,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17060,1
    - Dst: _PyAST_match_case
      Src: /src/cpython/Python/Python-ast.c:17062,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17066,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - match_case_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17068
      start: 16981
    functionDepth: 8
    functionLinenumber: 16981
    functionLinenumberEnd: 17068
    functionName: obj2ast_match_case
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - _Py_asdl_stmt_seq_new
    - obj2ast_stmt
    - PyList_Check
    - _PyAST_match_case
    - Py_CLEAR
    - obj2ast_pattern
    - PyList_GET_SIZE
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - Py_DECREF
    - Py_NewRef
    - obj2ast_expr
    - Py_TYPE
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _Py_EnterRecursiveCall
    - _PyType_Name
    linkageType: ''
    returnType: int
    signature: "int obj2ast_match_case(struct ast_state *state, PyObject* obj, match_case_ty*
      out,\n                   PyArena* arena)"
  - BBCount: 126
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17087,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17091,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17096,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17099,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17100,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17102,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17104,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17108,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17113,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17116,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17117,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17119,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17121,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17125,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17130,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17133,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17134,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17136,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17142,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17147,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17150,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17151,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17153,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17156,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17163,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17167,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17172,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17175,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17178,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Python/Python-ast.c:17180,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17186,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17193,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17197,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17202,1
    - Dst: obj2ast_constant
      Src: /src/cpython/Python/Python-ast.c:17205,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17206,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17208,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Python/Python-ast.c:17210,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17216,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17223,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17227,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17236,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17237,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17237,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17237,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17240,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17241,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17245,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17245,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17246,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17249,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17251,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17253,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17254,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17257,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17259,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Python/Python-ast.c:17261,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17267,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17276,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17280,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17289,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17290,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17290,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17293,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:17294,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17298,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17298,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17299,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17302,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17304,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17306,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17307,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17310,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17312,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17314,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17318,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17327,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17328,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17328,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17328,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17331,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17332,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17336,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17336,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17337,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17340,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17342,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17344,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17345,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17348,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17350,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17352,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17356,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17361,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17364,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17365,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17367,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Python/Python-ast.c:17369,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17375,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17389,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17394,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17397,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17398,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17400,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17402,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17406,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17415,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17416,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17416,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17416,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17419,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17420,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17424,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17424,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17425,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17428,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17430,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17432,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17433,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17436,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17438,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17440,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17444,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17453,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17454,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17454,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17454,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17457,1
    - Dst: _Py_asdl_identifier_seq_new
      Src: /src/cpython/Python/Python-ast.c:17458,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17462,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17462,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17463,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17466,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17468,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17470,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17471,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17474,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17476,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17478,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17482,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17491,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17492,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17492,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17492,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17495,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17496,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17500,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17500,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17501,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17504,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17506,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17508,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17509,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17512,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17514,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Python/Python-ast.c:17516,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17523,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17530,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17534,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17539,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17542,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17543,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17545,1
    - Dst: _PyAST_MatchStar
      Src: /src/cpython/Python/Python-ast.c:17547,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17553,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17565,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17570,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17573,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17574,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17576,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17578,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17582,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17587,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17590,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17591,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17593,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Python/Python-ast.c:17595,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17601,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17608,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17612,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17621,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17622,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17622,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17622,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17625,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17626,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17630,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17630,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17631,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17634,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17636,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17638,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17639,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17642,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17644,1
    - Dst: _PyAST_MatchOr
      Src: /src/cpython/Python/Python-ast.c:17646,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17652,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17654,1
    CyclomaticComplexity: 201
    EdgeCount: 201
    ICount: 577
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - pattern_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17656
      start: 17070
    functionDepth: 8
    functionLinenumber: 17070
    functionLinenumberEnd: 17656
    functionName: obj2ast_pattern
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - PyErr_SetString
    - _PyAST_MatchSequence
    - PyList_Check
    - _PyAST_MatchOr
    - _PyAST_MatchValue
    - Py_CLEAR
    - obj2ast_pattern
    - obj2ast_constant
    - PyList_GET_SIZE
    - _PyAST_MatchMapping
    - _Py_asdl_pattern_seq_new
    - _PyAST_MatchSingleton
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - obj2ast_identifier
    - _PyAST_MatchClass
    - _PyAST_MatchStar
    - PyObject_IsInstance
    - Py_DECREF
    - obj2ast_int
    - Py_NewRef
    - obj2ast_expr
    - Py_TYPE
    - PyList_GET_ITEM
    - asdl_seq_SET
    - PyObject_GetOptionalAttr
    - _PyAST_MatchAs
    - _Py_EnterRecursiveCall
    - _PyType_Name
    - _Py_asdl_expr_seq_new
    - _Py_asdl_identifier_seq_new
    linkageType: ''
    returnType: int
    signature: "int obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty*
      out,\n                PyArena* arena)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17672,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17680,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17684,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17689,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17692,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17693,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17695,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17697,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17701,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17706,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:17709,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17710,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17712,1
    - Dst: _PyAST_TypeIgnore
      Src: /src/cpython/Python/Python-ast.c:17714,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17719,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17721,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - type_ignore_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17723
      start: 17658
    functionDepth: 7
    functionLinenumber: 17658
    functionLinenumberEnd: 17723
    functionName: obj2ast_type_ignore
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - Py_XDECREF
    - obj2ast_int
    - PyObject_GetOptionalAttr
    - _PyAST_TypeIgnore
    - PyErr_SetString
    - _Py_EnterRecursiveCall
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - obj2ast_string
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int obj2ast_type_ignore(struct ast_state *state, PyObject* obj, type_ignore_ty*\n
      \                   out, PyArena* arena)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17742,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17746,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17751,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17754,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17755,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17757,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17763,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17768,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17771,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17772,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17774,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17776,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17780,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17785,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17788,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17789,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17791,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17793,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17797,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17802,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17805,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17806,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17808,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17811,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17820,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17824,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17829,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17832,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17833,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17835,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17841,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17846,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17849,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17850,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17852,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17854,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17858,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17863,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17866,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17867,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17869,1
    - Dst: _PyAST_TypeVar
      Src: /src/cpython/Python/Python-ast.c:17871,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17877,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17885,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17889,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17894,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17897,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17898,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17900,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17902,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17906,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17911,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17914,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17915,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17917,1
    - Dst: _PyAST_ParamSpec
      Src: /src/cpython/Python/Python-ast.c:17919,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17925,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17933,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17937,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17942,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17945,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17946,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17948,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17950,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17954,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17959,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17962,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17963,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17965,1
    - Dst: _PyAST_TypeVarTuple
      Src: /src/cpython/Python/Python-ast.c:17967,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17973,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17975,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 244
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - type_param_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17977
      start: 17725
    functionDepth: 8
    functionLinenumber: 17725
    functionLinenumberEnd: 17977
    functionName: obj2ast_type_param
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - Py_XDECREF
    - obj2ast_int
    - PyObject_GetOptionalAttr
    - PyErr_SetString
    - _Py_EnterRecursiveCall
    - obj2ast_expr
    - _PyAST_TypeVarTuple
    - _PyAST_TypeVar
    - _PyAST_ParamSpec
    - obj2ast_identifier
    - PyErr_Format
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty*
      out,\n                   PyArena* arena)"
  - BBCount: 132
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:17983,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:17987,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:17990,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:17993,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:17996,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:17999,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18002,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18005,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18008,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18011,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18014,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18018,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18021,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18024,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18028,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18031,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18034,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18037,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18040,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18043,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18046,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18049,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18052,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18055,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18058,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18061,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18064,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18067,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18070,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18073,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18076,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18079,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18082,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18085,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18088,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18091,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18094,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18097,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18100,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18103,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18106,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18109,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18112,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18115,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18118,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18121,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18124,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18127,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18130,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18133,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18136,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18139,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18142,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18146,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18149,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18152,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18155,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18158,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18161,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18165,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18169,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18172,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18175,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18178,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18181,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18184,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18187,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18190,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18193,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18196,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18199,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18203,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18206,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18209,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18212,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18215,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18218,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18221,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18224,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18227,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18230,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18233,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18236,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18239,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18242,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18245,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18248,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18251,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18254,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18257,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18260,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18263,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18266,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18269,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18272,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18275,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18278,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18281,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18284,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18287,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18290,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18293,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18296,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18299,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18302,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18305,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18308,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18311,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18315,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18319,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18323,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18326,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18329,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18332,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18335,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18338,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18341,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18344,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18347,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18351,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18355,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18359,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18362,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18365,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18368,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18371,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18374,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18377,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18380,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18383,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18386,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 395
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18391
      start: 17980
    functionDepth: 11
    functionLinenumber: 17980
    functionLinenumberEnd: 18391
    functionName: astmodule_exec
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - get_ast_state
    - PyModule_AddObjectRef
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int astmodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/Python-ast.c:18411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18412
      start: 18408
    functionDepth: 2
    functionLinenumber: 18408
    functionLinenumberEnd: 18412
    functionName: PyInit__ast
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ast(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:18417,1
    - Dst: ast2obj_mod
      Src: /src/cpython/Python/Python-ast.c:18421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18424
      start: 18415
    functionDepth: 6
    functionLinenumber: 18415
    functionLinenumberEnd: 18424
    functionName: PyAST_mod2obj
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - get_ast_state
    - ast2obj_mod
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyAST_mod2obj(mod_ty t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:18431,1
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:18441,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:18442,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:18447,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:18448,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:18448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ast
    - mode
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (0 <= mode && mode <= 2)
      pos:
        line_end: 18440
        line_start: 18440
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 18452
      start: 18427
    functionDepth: 7
    functionLinenumber: 18427
    functionLinenumberEnd: 18452
    functionName: PyAst_CheckMode
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - _PyType_Name
    - PyErr_Format
    - get_ast_state
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PyAst_CheckMode(PyObject *ast, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Python/Python-ast.c:18456,1
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:18460,1
    - Dst: PyAst_CheckMode
      Src: /src/cpython/Python/Python-ast.c:18465,1
    - Dst: obj2ast_mod
      Src: /src/cpython/Python/Python-ast.c:18470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ast
    - arena
    - mode
    argTypes:
    - PyObject*
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18474
      start: 18454
    functionDepth: 8
    functionLinenumber: 18454
    functionLinenumberEnd: 18474
    functionName: PyAST_obj2mod
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - get_ast_state
    - PySys_Audit
    - obj2ast_mod
    - PyAst_CheckMode
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:18478,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:18482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18483
      start: 18476
    functionDepth: 7
    functionLinenumber: 18476
    functionLinenumberEnd: 18483
    functionName: PyAST_Check
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyObject_IsInstance
    - get_ast_state
    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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: dlerror
    functionSourceFile: /src/cpython/Python/dynload_shlib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dlerror()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/cpython/Python/dynload_shlib.c:65,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_shlib.c:67,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_shlib.c:71,1
    - Dst: _Py_fstat
      Src: /src/cpython/Python/dynload_shlib.c:76,1
    - Dst: fileno
      Src: /src/cpython/Python/dynload_shlib.c:76,1
    - Dst: _PyImport_GetDLOpenFlags
      Src: /src/cpython/Python/dynload_shlib.c:80,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dynload_shlib.c:80,1
    - Dst: dlopen
      Src: /src/cpython/Python/dynload_shlib.c:82,1
    - Dst: dlerror
      Src: /src/cpython/Python/dynload_shlib.c:88,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Python/dynload_shlib.c:91,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/dynload_shlib.c:94,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:96,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/dynload_shlib.c:99,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:102,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/dynload_shlib.c:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:108,1
    - Dst: dlsym
      Src: /src/cpython/Python/dynload_shlib.c:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 113
    functionName: _PyImport_FindSharedFuncptr
    functionSourceFile: /src/cpython/Python/dynload_shlib.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - dlerror
    - _Py_fstat
    - PyOS_snprintf
    - _PyInterpreterState_GET
    - PyUnicode_FromString
    - PyErr_SetImportError
    - _PyImport_GetDLOpenFlags
    - dlopen
    - PyUnicode_DecodeLocale
    - dlsym
    - fileno
    - strchr
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,\n                            const
      char *shortname,\n                            const char *pathname, FILE *fp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:65,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:67,1
    - Dst: _Py_FdIsInteractive
      Src: /src/cpython/Python/pythonrun.c:74,1
    - Dst: _PyRun_InteractiveLoopObject
      Src: /src/cpython/Python/pythonrun.c:75,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:77,1
    - Dst: _PyRun_SimpleFileObject
      Src: /src/cpython/Python/pythonrun.c:81,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: _PyRun_AnyFileObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - _PyRun_SimpleFileObject
    - Py_DECREF
    - PyErr_Print
    - _PyRun_InteractiveLoopObject
    - PyUnicode_FromString
    - _Py_FdIsInteractive
    - fclose
    linkageType: ''
    returnType: int
    signature: "int _PyRun_AnyFileObject(FILE *fp, PyObject *filename, int closeit,\n
      \                    PyCompilerFlags *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/pythonrun.c:96,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:98,1
    - Dst: _PyRun_AnyFileObject
      Src: /src/cpython/Python/pythonrun.c:102,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: PyRun_AnyFileExFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - PyErr_Print
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - _PyRun_AnyFileObject
    linkageType: ''
    returnType: int
    signature: "int PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit,\n
      \                    PyCompilerFlags *flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:117,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:117,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:118,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:122,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:124,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:126,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:126,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:127,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:130,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:131,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:131,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:132,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:136,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:138,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:140,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:140,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:141,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:144,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/pythonrun.c:147,1
    - Dst: PyRun_InteractiveOneObjectEx
      Src: /src/cpython/Python/pythonrun.c:153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:154,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pythonrun.c:158,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:160,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:167,1
    - Dst: flush_io
      Src: /src/cpython/Python/pythonrun.c:168,1
    - Dst: _PyDebug_PrintTotalRefs
      Src: /src/cpython/Python/pythonrun.c:174,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 3
    argNames:
    - fp
    - filename
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 179
    functionName: _PyRun_InteractiveLoopObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PySys_GetOptionalAttr
    - _Py_GetConfig
    - flush_io
    - PyErr_Print
    - PyErr_Occurred
    - _Py_ID
    - _PyDebug_PrintTotalRefs
    - PyErr_ExceptionMatches
    - PyRun_InteractiveOneObjectEx
    - PyErr_Clear
    - PyUnicode_FromString
    - _PySys_SetAttr
    linkageType: ''
    returnType: int
    signature: int _PyRun_InteractiveLoopObject(FILE *fp, PyObject *filename, PyCompilerFlags
      *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/pythonrun.c:185,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:187,1
    - Dst: _PyRun_InteractiveLoopObject
      Src: /src/cpython/Python/pythonrun.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - filename
    - flags
    argTypes:
    - FILE*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 195
    functionName: PyRun_InteractiveLoopFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - PyUnicode_DecodeFSDefault
    - _PyRun_InteractiveLoopObject
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags
      *flags)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:209,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:209,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:210,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:213,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:213,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:214,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:216,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/pythonrun.c:217,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:219,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:223,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:229,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:229,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:230,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/pythonrun.c:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:234,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:236,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:238,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/pythonrun.c:239,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:241,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:250,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:250,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:251,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/pythonrun.c:254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:255,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:257,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:259,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/pythonrun.c:260,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:262,1
    - Dst: _PyParser_InteractiveASTFromFile
      Src: /src/cpython/Python/pythonrun.c:269,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:272,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:273,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:274,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:278,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 6
    argNames:
    - fp
    - filename
    - flags
    - arena
    - pmod
    - interactive_src
    argTypes:
    - FILE*
    - PyObject*
    - PyCompilerFlags*
    - PyArena*
    - mod_ty*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 284
    functionName: pyrun_one_parse_ast
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - PySys_GetOptionalAttr
    - PyObject_GetOptionalAttr
    - _Py_ID
    - _PyParser_InteractiveASTFromFile
    - PyUnicode_AsUTF8
    - PyUnicode_Check
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int pyrun_one_parse_ast(FILE *fp, PyObject *filename,\n                    PyCompilerFlags
      *flags, PyArena *arena,\n                    mod_ty *pmod, PyObject** interactive_src)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_New
      Src: /src/cpython/Python/pythonrun.c:293,1
    - Dst: pyrun_one_parse_ast
      Src: /src/cpython/Python/pythonrun.c:300,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:302,1
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Python/pythonrun.c:306,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:308,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/pythonrun.c:311,1
    - Dst: run_mod
      Src: /src/cpython/Python/pythonrun.c:313,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/pythonrun.c:314,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:316,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:318,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:319,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/pythonrun.c:320,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pythonrun.c:320,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:324,1
    - Dst: PyUnicode_Splitlines
      Src: /src/cpython/Python/pythonrun.c:325,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pythonrun.c:329,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:331,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/pythonrun.c:334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:335,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/pythonrun.c:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:337,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/pythonrun.c:340,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/pythonrun.c:341,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:345,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/pythonrun.c:346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:350,1
    - Dst: flush_io
      Src: /src/cpython/Python/pythonrun.c:352,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - fp
    - filename
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - PyCompilerFlags*
    assertStmts:
    - condition: (interactive_src != NULL)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 354
      start: 289
    functionDepth: 14
    functionLinenumber: 289
    functionLinenumberEnd: 354
    functionName: PyRun_InteractiveOneObjectEx
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyLong_AsInt
    - _PyThreadState_GET
    - Py_INCREF
    - run_mod
    - PyList_GET_SIZE
    - _PyArena_Free
    - PyModule_GetDict
    - pyrun_one_parse_ast
    - flush_io
    - Py_DECREF
    - PyType_IsSubtype
    - _Py_ID
    - PyImport_AddModuleRef
    - PyObject_SetAttr
    - PyUnicode_Splitlines
    - Py_TYPE
    - PyList_GET_ITEM
    - _PyErr_GetRaisedException
    - _PyArena_New
    - _PyErr_SetRaisedException
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: int
    signature: "int PyRun_InteractiveOneObjectEx(FILE *fp, PyObject *filename,\n                             PyCompilerFlags
      *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_InteractiveOneObjectEx
      Src: /src/cpython/Python/pythonrun.c:361,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:363,1
    - Dst: flush_io
      Src: /src/cpython/Python/pythonrun.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - filename
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 356
    functionDepth: 15
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: PyRun_InteractiveOneObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - flush_io
    - PyRun_InteractiveOneObjectEx
    linkageType: ''
    returnType: int
    signature: int PyRun_InteractiveOneObject(FILE *fp, PyObject *filename, PyCompilerFlags
      *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/pythonrun.c:375,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:377,1
    - Dst: PyRun_InteractiveOneObject
      Src: /src/cpython/Python/pythonrun.c:380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - filename_str
    - flags
    argTypes:
    - FILE*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 369
    functionDepth: 16
    functionLinenumber: 369
    functionLinenumberEnd: 383
    functionName: PyRun_InteractiveOneFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - PyUnicode_DecodeFSDefault
    - PyRun_InteractiveOneObject
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyRun_InteractiveOneFlags(FILE *fp, const char *filename_str, PyCompilerFlags
      *flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:392,1
    - Dst: PyUnicode_Tailmatch
      Src: /src/cpython/Python/pythonrun.c:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:397,1
    - Dst: PyImport_GetMagicNumber
      Src: /src/cpython/Python/pythonrun.c:411,1
    - Dst: ftell
      Src: /src/cpython/Python/pythonrun.c:425,1
    - Dst: fread
      Src: /src/cpython/Python/pythonrun.c:426,1
    - Dst: rewind
      Src: /src/cpython/Python/pythonrun.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - fp
    - filename
    - closeit
    argTypes:
    - FILE*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 432
    functionName: maybe_pyc_file
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Tailmatch
    - rewind
    - PyImport_GetMagicNumber
    - Py_DECREF
    - fread
    - ftell
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int maybe_pyc_file(FILE *fp, PyObject *filename, int closeit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/pythonrun.c:438,1
    - Dst: _PyImport_GetImportlibExternalLoader
      Src: /src/cpython/Python/pythonrun.c:439,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/pythonrun.c:445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:447,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pythonrun.c:452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - d
    - filename
    - loader_name
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 435
    functionDepth: 10
    functionLinenumber: 435
    functionLinenumberEnd: 458
    functionName: set_main_loader
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - Py_DECREF
    - _PyInterpreterState_GET
    - _PyImport_GetImportlibExternalLoader
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int set_main_loader(PyObject *d, PyObject *filename, const char *loader_name)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Python/pythonrun.c:467,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/pythonrun.c:470,1
    - Dst: PyDict_ContainsString
      Src: /src/cpython/Python/pythonrun.c:473,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pythonrun.c:478,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pythonrun.c:481,1
    - Dst: maybe_pyc_file
      Src: /src/cpython/Python/pythonrun.c:487,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:497,1
    - Dst: Py_fopen
      Src: /src/cpython/Python/pythonrun.c:500,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:502,1
    - Dst: set_main_loader
      Src: /src/cpython/Python/pythonrun.c:506,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:507,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:509,1
    - Dst: run_pyc_file
      Src: /src/cpython/Python/pythonrun.c:512,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:515,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Python/pythonrun.c:515,1
    - Dst: set_main_loader
      Src: /src/cpython/Python/pythonrun.c:516,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:517,1
    - Dst: pyrun_file
      Src: /src/cpython/Python/pythonrun.c:521,1
    - Dst: flush_io
      Src: /src/cpython/Python/pythonrun.c:524,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:526,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:530,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Python/pythonrun.c:535,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:536,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Python/pythonrun.c:538,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:539,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:542,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 461
    functionDepth: 14
    functionLinenumber: 461
    functionLinenumberEnd: 544
    functionName: _PyRun_SimpleFileObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - Py_XDECREF
    - Py_CLEAR
    - PyDict_ContainsString
    - PyUnicode_EqualToUTF8
    - PyDict_PopString
    - PyModule_GetDict
    - PyUnicode_Check
    - fprintf
    - flush_io
    - Py_DECREF
    - set_main_loader
    - PyImport_AddModuleRef
    - PyDict_SetItemString
    - pyrun_file
    - run_pyc_file
    - PyErr_Print
    - maybe_pyc_file
    - Py_fopen
    - fclose
    linkageType: ''
    returnType: int
    signature: "int _PyRun_SimpleFileObject(FILE *fp, PyObject *filename, int closeit,\n
      \                       PyCompilerFlags *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/pythonrun.c:551,1
    - Dst: _PyRun_SimpleFileObject
      Src: /src/cpython/Python/pythonrun.c:555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 547
    functionDepth: 15
    functionLinenumber: 547
    functionLinenumberEnd: 558
    functionName: PyRun_SimpleFileExFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - _PyRun_SimpleFileObject
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit,\n
      \                       PyCompilerFlags *flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Python/pythonrun.c:563,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/pythonrun.c:567,1
    - Dst: PyRun_StringFlags
      Src: /src/cpython/Python/pythonrun.c:571,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:573,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:575,1
    - Dst: _PyRun_StringFlagsWithName
      Src: /src/cpython/Python/pythonrun.c:578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:579,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:581,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - command
    - name
    - flags
    argTypes:
    - char*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 561
    functionDepth: 14
    functionLinenumber: 561
    functionLinenumberEnd: 589
    functionName: _PyRun_SimpleStringFlagsWithName
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_Print
    - PyImport_AddModuleRef
    - PyRun_StringFlags
    - PyModule_GetDict
    - _PyRun_StringFlagsWithName
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _PyRun_SimpleStringFlagsWithName(const char *command, const char*
      name, PyCompilerFlags *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRun_SimpleStringFlagsWithName
      Src: /src/cpython/Python/pythonrun.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - command
    - flags
    argTypes:
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 15
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: PyRun_SimpleStringFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - _PyRun_SimpleStringFlagsWithName
    linkageType: ''
    returnType: int
    signature: int PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/pythonrun.c:600,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/pythonrun.c:603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:604,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - code
    - exitcode_p
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 619
    functionName: parse_exit_code
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_Clear
    - PyLong_Check
    - PyLong_AsLongLong
    linkageType: ''
    returnType: int
    signature: int parse_exit_code(PyObject *code, int *exitcode_p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pythonrun.c:624,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pythonrun.c:625,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/pythonrun.c:629,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pythonrun.c:636,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:640,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:642,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:643,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:643,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pythonrun.c:645,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:645,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:648,1
    - Dst: parse_exit_code
      Src: /src/cpython/Python/pythonrun.c:650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:651,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:652,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/pythonrun.c:657,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:661,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:661,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:662,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:665,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:666,1
    - Dst: PyObject_Print
      Src: /src/cpython/Python/pythonrun.c:670,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:671,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:673,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:675,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:677,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - exitcode_p
    argTypes:
    - int*
    assertStmts:
    - condition: (exc != NULL && PyExceptionInstance_Check(exc))
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 680
      start: 621
    functionDepth: 5
    functionLinenumber: 621
    functionLinenumberEnd: 680
    functionName: _Py_HandleSystemExitAndKeyboardInterrupt
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyObject_Print
    - parse_exit_code
    - _Py_GetConfig
    - Py_SETREF
    - fflush
    - Py_CLEAR
    - PyExceptionInstance_Check
    - _Py_atomic_store_int
    - PySys_GetOptionalAttr
    - PyErr_Clear
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - PyErr_ExceptionMatches
    - PySys_WriteStderr
    - PyFile_WriteObject
    - PyObject_GetAttr
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_HandleSystemExitAndKeyboardInterrupt(int *exitcode_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HandleSystemExitAndKeyboardInterrupt
      Src: /src/cpython/Python/pythonrun.c:687,1
    - Dst: Py_Exit
      Src: /src/cpython/Python/pythonrun.c:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 690
    functionName: handle_system_exit
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_Exit
    - _Py_HandleSystemExitAndKeyboardInterrupt
    linkageType: ''
    returnType: void
    signature: void handle_system_exit(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: handle_system_exit
      Src: /src/cpython/Python/pythonrun.c:697,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:699,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:703,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:703,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pythonrun.c:704,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pythonrun.c:704,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/pythonrun.c:705,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pythonrun.c:707,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:711,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:711,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:712,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:715,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:715,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:716,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:718,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:718,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:719,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:721,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:721,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:722,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:725,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:725,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:726,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pythonrun.c:728,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pythonrun.c:730,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:731,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pythonrun.c:734,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/pythonrun.c:738,1
    - Dst: handle_system_exit
      Src: /src/cpython/Python/pythonrun.c:740,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:742,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:743,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:743,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:744,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:745,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Python/pythonrun.c:746,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:747,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Python/pythonrun.c:748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:752,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:756,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Python/pythonrun.c:757,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:761,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:762,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:764,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - tstate
    - set_sys_last_vars
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (exc2 && PyExceptionInstance_Check(exc2))
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/cpython/Python/pythonrun.c
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 702
        line_start: 702
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 765
      start: 693
    functionDepth: 7
    functionLinenumber: 693
    functionLinenumberEnd: 765
    functionName: _PyErr_PrintEx
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyException_GetTraceback
    - _PyErr_Clear
    - PyErr_FormatUnraisable
    - fflush
    - _PySys_Audit
    - PyExceptionInstance_Check
    - PyErr_Clear
    - PySys_GetOptionalAttr
    - assert
    - Py_DECREF
    - _Py_ID
    - PyObject_Vectorcall
    - Py_NewRef
    - PyErr_ExceptionMatches
    - PySys_WriteStderr
    - handle_system_exit
    - Py_TYPE
    - _PySys_SetAttr
    - PyErr_DisplayException
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_PrintEx
      Src: /src/cpython/Python/pythonrun.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 8
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: _PyErr_Print
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - _PyErr_PrintEx
    linkageType: ''
    returnType: void
    signature: void _PyErr_Print(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:776,1
    - Dst: _PyErr_PrintEx
      Src: /src/cpython/Python/pythonrun.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set_sys_last_vars
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 773
    functionDepth: 8
    functionLinenumber: 773
    functionLinenumberEnd: 778
    functionName: PyErr_PrintEx
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 6
    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/cpython/Python/pythonrun.c:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 780
    functionDepth: 9
    functionLinenumber: 780
    functionLinenumberEnd: 784
    functionName: PyErr_Print
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 24
    functionsReached:
    - PyErr_PrintEx
    linkageType: ''
    returnType: void
    signature: void PyErr_Print(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:799,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:802,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pythonrun.c:802,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 792
    functionDepth: 6
    functionLinenumber: 792
    functionLinenumberEnd: 809
    functionName: print_exception_invalid_type
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyFile_WriteString
    linkageType: ''
    returnType: int
    signature: "int print_exception_invalid_type(struct exception_print_context *ctx,\n
      \                            PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/pythonrun.c:817,1
    - Dst: _PyTraceBack_Print
      Src: /src/cpython/Python/pythonrun.c:820,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 811
    functionDepth: 13
    functionLinenumber: 811
    functionLinenumberEnd: 824
    functionName: print_exception_traceback
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTraceBack_Print
    - PyException_GetTraceback
    linkageType: ''
    returnType: int
    signature: int print_exception_traceback(struct exception_print_context *ctx,
      PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:833,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:833,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:840,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pythonrun.c:844,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:849,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/pythonrun.c:850,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pythonrun.c:851,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/pythonrun.c:851,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/pythonrun.c:857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:859,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:863,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:866,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:868,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:868,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:872,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - value_p
    argTypes:
    - struct exception_print_context*
    - PyObject**
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 874
      start: 826
    functionDepth: 10
    functionLinenumber: 826
    functionLinenumberEnd: 874
    functionName: print_exception_file_and_line
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_DECLARE_STR
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - _Py_ID
    - _Py_STR
    - PyObject_GetAttr
    - Py_NewRef
    - PyFile_WriteObject
    - PyErr_Clear
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: "int print_exception_file_and_line(struct exception_print_context *ctx,\n
      \                             PyObject **value_p)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/pythonrun.c:883,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:889,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/pythonrun.c:889,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pythonrun.c:891,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:891,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:892,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:893,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:894,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:895,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/pythonrun.c:900,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:900,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/pythonrun.c:901,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:901,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:904,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:913,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Python/pythonrun.c:917,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:918,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:919,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:920,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:921,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:927,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/pythonrun.c:933,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/pythonrun.c:937,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:939,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:940,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:948,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/pythonrun.c:948,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:950,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:955,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionClass_Check(type))
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 962
      start: 877
    functionDepth: 6
    functionLinenumber: 877
    functionLinenumberEnd: 962
    functionName: print_exception_message
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - PyFile_WriteString
    - PyUnicode_GetLength
    - _Py_ID
    - PyErr_GivenExceptionMatches
    - PyObject_GetAttr
    - _PyUnicode_Equal
    - PyFile_WriteObject
    - Py_IsNone
    - PyUnicode_Check
    - PyExceptionClass_Check
    - PyErr_Clear
    - PyType_GetQualName
    - assert
    linkageType: ''
    returnType: int
    signature: "int print_exception_message(struct exception_print_context *ctx, PyObject
      *type,\n                        PyObject *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:969,1
    - Dst: print_exception_invalid_type
      Src: /src/cpython/Python/pythonrun.c:970,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/pythonrun.c:973,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:974,1
    - Dst: print_exception_traceback
      Src: /src/cpython/Python/pythonrun.c:976,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pythonrun.c:981,1
    - Dst: print_exception_file_and_line
      Src: /src/cpython/Python/pythonrun.c:983,1
    - Dst: print_exception_message
      Src: /src/cpython/Python/pythonrun.c:986,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:992,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:993,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:996,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 998
      start: 964
    functionDepth: 14
    functionLinenumber: 964
    functionLinenumberEnd: 998
    functionName: print_exception
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - print_exception_traceback
    - Py_INCREF
    - Py_DECREF
    - PyFile_WriteString
    - PyErr_Occurred
    - print_exception_message
    - print_exception_invalid_type
    - print_exception_file_and_line
    - fflush
    - Py_TYPE
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int print_exception(struct exception_print_context *ctx, PyObject *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1016,1
    - Dst: print_exception_recursive
      Src: /src/cpython/Python/pythonrun.c:1019,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1020,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:1025,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:1028,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:1031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - value
    - message
    - tag
    argTypes:
    - struct exception_print_context*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1011
    functionDepth: 6
    functionLinenumber: 1011
    functionLinenumberEnd: 1035
    functionName: print_chained
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - print_exception_recursive
    - _Py_EnterRecursiveCall
    - _Py_LeaveRecursiveCall
    - PyFile_WriteString
    linkageType: ''
    returnType: int
    signature: "int print_chained(struct exception_print_context* ctx, PyObject *value,\n
      \             const char * message, const char *tag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/pythonrun.c:1047,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1049,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/pythonrun.c:1053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1054,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1043
    functionDepth: 8
    functionLinenumber: 1043
    functionLinenumberEnd: 1065
    functionName: print_exception_seen_lookup
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PySet_Contains
    - PyErr_Clear
    - PyLong_FromVoidPtr
    - Py_DECREF
    linkageType: ''
    returnType: bool
    signature: "bool print_exception_seen_lookup(struct exception_print_context *ctx,\n
      \                           PyObject *value)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/pythonrun.c:1071,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/pythonrun.c:1072,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1073,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1077,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:1079,1
    - Dst: PyException_GetCause
      Src: /src/cpython/Python/pythonrun.c:1083,1
    - Dst: print_exception_seen_lookup
      Src: /src/cpython/Python/pythonrun.c:1086,1
    - Dst: print_chained
      Src: /src/cpython/Python/pythonrun.c:1087,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1089,1
    - Dst: PyException_GetContext
      Src: /src/cpython/Python/pythonrun.c:1095,1
    - Dst: print_exception_seen_lookup
      Src: /src/cpython/Python/pythonrun.c:1098,1
    - Dst: print_chained
      Src: /src/cpython/Python/pythonrun.c:1099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1067
    functionDepth: 9
    functionLinenumber: 1067
    functionLinenumberEnd: 1105
    functionName: print_exception_cause_and_context
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - Py_DECREF
    - PySet_Add
    - PyException_GetContext
    - PyException_GetCause
    - print_exception_seen_lookup
    - print_chained
    - PyErr_Clear
    - PyExceptionInstance_Check
    linkageType: ''
    returnType: int
    signature: "int print_exception_cause_and_context(struct exception_print_context
      *ctx,\n                                  PyObject *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1110,1
    - Dst: print_exception_cause_and_context
      Src: /src/cpython/Python/pythonrun.c:1115,1
    - Dst: print_exception
      Src: /src/cpython/Python/pythonrun.c:1119,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1122,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1124,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1121
        line_start: 1121
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 1129
      start: 1107
    functionDepth: 15
    functionLinenumber: 1107
    functionLinenumberEnd: 1129
    functionName: print_exception_recursive
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - print_exception_cause_and_context
    - PyErr_Occurred
    - print_exception
    - _Py_EnterRecursiveCall
    - _Py_LeaveRecursiveCall
    - assert
    linkageType: ''
    returnType: int
    signature: int print_exception_recursive(struct exception_print_context *ctx,
      PyObject *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:1134,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:1135,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:1136,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/pythonrun.c:1137,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/pythonrun.c:1140,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/pythonrun.c:1142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1145,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/pythonrun.c:1150,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/pythonrun.c:1153,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/pythonrun.c:1157,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1166,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pythonrun.c:1167,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1171,1
    - Dst: PySet_New
      Src: /src/cpython/Python/pythonrun.c:1178,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1180,1
    - Dst: print_exception_recursive
      Src: /src/cpython/Python/pythonrun.c:1182,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1183,1
    - Dst: _PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1184,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:1185,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1187,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/pythonrun.c:1190,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1192,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - file
    - unused
    - value
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/cpython/Python/pythonrun.c
    - condition: (file != NULL && file != Py_None)
      pos:
        line_end: 1134
        line_start: 1134
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 1194
      start: 1131
    functionDepth: 16
    functionLinenumber: 1131
    functionLinenumberEnd: 1194
    functionName: _PyErr_Display
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - _PyFile_Flush
    - Py_XDECREF
    - assert
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyException_GetTraceback
    - PyErr_Occurred
    - print_exception_recursive
    - PyCallable_Check
    - PyErr_FormatUnraisable
    - _PyObject_Dump
    - PyObject_CallOneArg
    - fprintf
    - PySet_New
    - PyTraceBack_Check
    - PyErr_Clear
    - PyExceptionInstance_Check
    - PyException_SetTraceback
    linkageType: ''
    returnType: void
    signature: void _PyErr_Display(PyObject *file, PyObject *unused, PyObject *value,
      PyObject *tb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:1200,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:1200,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:1201,1
    - Dst: _PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1202,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:1203,1
    - Dst: _PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1205,1
    - Dst: _PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1209,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:1210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1214,1
    - Dst: _PyErr_Display
      Src: /src/cpython/Python/pythonrun.c:1217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - unused
    - value
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1196
    functionDepth: 17
    functionLinenumber: 1196
    functionLinenumberEnd: 1219
    functionName: PyErr_Display
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - _PyErr_Display
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    - _PyObject_Dump
    - fprintf
    - PySys_GetOptionalAttr
    linkageType: ''
    returnType: void
    signature: void PyErr_Display(PyObject *unused, PyObject *value, PyObject *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Display
      Src: /src/cpython/Python/pythonrun.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1221
    functionDepth: 17
    functionLinenumber: 1221
    functionLinenumberEnd: 1224
    functionName: _PyErr_DisplayException
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - _PyErr_Display
    linkageType: ''
    returnType: void
    signature: void _PyErr_DisplayException(PyObject *file, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Display
      Src: /src/cpython/Python/pythonrun.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1226
    functionDepth: 18
    functionLinenumber: 1226
    functionLinenumberEnd: 1229
    functionName: PyErr_DisplayException
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - PyErr_Display
    linkageType: ''
    returnType: void
    signature: void PyErr_DisplayException(PyObject *exc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_New
      Src: /src/cpython/Python/pythonrun.c:1240,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/pythonrun.c:1245,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:1248,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1250,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/pythonrun.c:1253,1
    - Dst: _PyParser_ASTFromString
      Src: /src/cpython/Python/pythonrun.c:1256,1
    - Dst: run_mod
      Src: /src/cpython/Python/pythonrun.c:1259,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1261,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - str
    - name
    - start
    - globals
    - locals
    - flags
    - generate_new_source
    argTypes:
    - char*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1231
    functionDepth: 9
    functionLinenumber: 1231
    functionLinenumberEnd: 1264
    functionName: _PyRun_StringFlagsWithName
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - run_mod
    - _Py_DECLARE_STR
    - _PyArena_New
    - _Py_STR
    - _PyArena_Free
    - _PyParser_ASTFromString
    - PyErr_Clear
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyRun_StringFlagsWithName(const char *str, PyObject*
      name, int start,\n                           PyObject *globals, PyObject *locals,
      PyCompilerFlags *flags,\n                           int generate_new_source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRun_StringFlagsWithName
      Src: /src/cpython/Python/pythonrun.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - str
    - start
    - globals
    - locals
    - flags
    argTypes:
    - char*
    - int
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1267
    functionDepth: 10
    functionLinenumber: 1267
    functionLinenumberEnd: 1272
    functionName: PyRun_StringFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - _PyRun_StringFlagsWithName
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyRun_StringFlags(const char *str, int start, PyObject
      *globals,\n                     PyObject *locals, PyCompilerFlags *flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_New
      Src: /src/cpython/Python/pythonrun.c:1278,1
    - Dst: _PyParser_ASTFromFile
      Src: /src/cpython/Python/pythonrun.c:1284,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:1288,1
    - Dst: run_mod
      Src: /src/cpython/Python/pythonrun.c:1293,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - fp
    - filename
    - start
    - globals
    - locals
    - closeit
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1274
    functionDepth: 9
    functionLinenumber: 1274
    functionLinenumberEnd: 1301
    functionName: pyrun_file
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - run_mod
    - _PyArena_New
    - _PyArena_Free
    - _PyParser_ASTFromFile
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyrun_file(FILE *fp, PyObject *filename, int start, PyObject
      *globals,\n           PyObject *locals, int closeit, PyCompilerFlags *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/pythonrun.c:1308,1
    - Dst: pyrun_file
      Src: /src/cpython/Python/pythonrun.c:1313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - fp
    - filename
    - start
    - globals
    - locals
    - closeit
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyObject*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1304
    functionDepth: 10
    functionLinenumber: 1304
    functionLinenumberEnd: 1318
    functionName: PyRun_FileExFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - pyrun_file
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyRun_FileExFlags(FILE *fp, const char *filename, int
      start, PyObject *globals,\n                  PyObject *locals, int closeit,
      PyCompilerFlags *flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:1324,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1325,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/pythonrun.c:1328,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1333
    functionName: flush_io_stream
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PySys_GetOptionalAttr
    - Py_DECREF
    - _PyFile_Flush
    linkageType: ''
    returnType: void
    signature: void flush_io_stream(PyThreadState *tstate, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:1338,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:1339,1
    - Dst: flush_io_stream
      Src: /src/cpython/Python/pythonrun.c:1340,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:1340,1
    - Dst: flush_io_stream
      Src: /src/cpython/Python/pythonrun.c:1341,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:1341,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/pythonrun.c:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1335
    functionDepth: 3
    functionLinenumber: 1335
    functionLinenumberEnd: 1343
    functionName: flush_io
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - _PyErr_SetRaisedException
    - _Py_ID
    - flush_io_stream
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void flush_io(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/pythonrun.c:1349,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1350,1
    - Dst: PyDict_ContainsString
      Src: /src/cpython/Python/pythonrun.c:1353,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pythonrun.c:1358,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Python/pythonrun.c:1365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - tstate
    - co
    - globals
    - locals
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1345
    functionDepth: 10
    functionLinenumber: 1345
    functionLinenumberEnd: 1366
    functionName: run_eval_code_obj
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyDict_ContainsString
    - PyErr_SetString
    - PyEval_EvalCode
    - PyDict_SetItemString
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      run_eval_code_obj(PyThreadState *tstate, PyCodeObject *co, PyObject *globals,
      PyObject *locals)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/pythonrun.c:1372,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Python/pythonrun.c:1375,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Python/pythonrun.c:1376,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/pythonrun.c:1377,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/pythonrun.c:1381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1382,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/pythonrun.c:1384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - filename
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1368
    functionDepth: 10
    functionLinenumber: 1368
    functionLinenumberEnd: 1389
    functionName: get_interactive_filename
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyUnicode_ReadChar
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_interactive_filename(PyObject *filename, Py_ssize_t count)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:1396,1
    - Dst: get_interactive_filename
      Src: /src/cpython/Python/pythonrun.c:1401,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/pythonrun.c:1404,1
    - Dst: _PyAST_Compile
      Src: /src/cpython/Python/pythonrun.c:1411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1414,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/pythonrun.c:1420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1425,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/pythonrun.c:1429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1432,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1433,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/pythonrun.c:1437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1444,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1446,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1449,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pythonrun.c:1454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1455,1
    - Dst: run_eval_code_obj
      Src: /src/cpython/Python/pythonrun.c:1459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1460,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 8
    argNames:
    - mod
    - filename
    - globals
    - locals
    - flags
    - arena
    - interactive_src
    - generate_new_source
    argTypes:
    - mod_ty
    - PyObject*
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    - PyArena*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1391
    functionDepth: 16
    functionLinenumber: 1391
    functionLinenumberEnd: 1462
    functionName: run_mod
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - Py_INCREF
    - Py_XDECREF
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyObject_CallFunction
    - PyErr_SetString
    - _PyAST_Compile
    - PyCallable_Check
    - _PyThreadState_GET
    - run_eval_code_obj
    - get_interactive_filename
    - _PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nrun_mod(mod_ty mod, PyObject *filename, PyObject *globals,
      PyObject *locals,\n            PyCompilerFlags *flags, PyArena *arena, PyObject*
      interactive_src,\n            int generate_new_source)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:1468,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1474,1
    - Dst: PyImport_GetMagicNumber
      Src: /src/cpython/Python/pythonrun.c:1475,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1477,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1482,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1483,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1484,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1485,1
    - Dst: PyMarshal_ReadLastObjectFromFile
      Src: /src/cpython/Python/pythonrun.c:1488,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/pythonrun.c:1489,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1490,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1491,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:1495,1
    - Dst: run_eval_code_obj
      Src: /src/cpython/Python/pythonrun.c:1497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1500,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:1503,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - fp
    - globals
    - locals
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1464
    functionDepth: 11
    functionLinenumber: 1464
    functionLinenumberEnd: 1505
    functionName: run_pyc_file
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyCode_Check
    - PyImport_GetMagicNumber
    - Py_DECREF
    - PyMarshal_ReadLastObjectFromFile
    - PyErr_Occurred
    - PyErr_SetString
    - PyMarshal_ReadLongFromFile
    - _PyThreadState_GET
    - run_eval_code_obj
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nrun_pyc_file(FILE *fp, PyObject *globals, PyObject *locals,\n
      \            PyCompilerFlags *flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_New
      Src: /src/cpython/Python/pythonrun.c:1513,1
    - Dst: _PyParser_ASTFromString
      Src: /src/cpython/Python/pythonrun.c:1517,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1519,1
    - Dst: _PyCompile_AstPreprocess
      Src: /src/cpython/Python/pythonrun.c:1524,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1525,1
    - Dst: PyAST_mod2obj
      Src: /src/cpython/Python/pythonrun.c:1528,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1529,1
    - Dst: _PyAST_Compile
      Src: /src/cpython/Python/pythonrun.c:1532,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - str
    - filename
    - start
    - flags
    - optimize
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1507
    functionDepth: 16
    functionLinenumber: 1507
    functionLinenumberEnd: 1535
    functionName: Py_CompileStringObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - _PyArena_New
    - _PyAST_Compile
    - _PyArena_Free
    - _PyParser_ASTFromString
    - PyAST_mod2obj
    - _PyCompile_AstPreprocess
    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/cpython/Python/pythonrun.c:1542,1
    - Dst: Py_CompileStringObject
      Src: /src/cpython/Python/pythonrun.c:1545,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1546,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: 1548
      start: 1537
    functionDepth: 17
    functionLinenumber: 1537
    functionLinenumberEnd: 1548
    functionName: Py_CompileStringExFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - Py_CompileStringObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPy_CompileStringExFlags(const char *str, const char *filename_str,
      int start,\n                        PyCompilerFlags *flags, int optimize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:1553,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/pythonrun.c:1556,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/pythonrun.c:1559,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Python/pythonrun.c:1562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1568
    functionName: _PyObject_SupportedAsScript
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyBytes_Check
    - PyByteArray_Check
    - PyObject_CheckBuffer
    linkageType: ''
    returnType: int
    signature: int _PyObject_SupportedAsScript(PyObject *cmd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:1578,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/pythonrun.c:1580,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/pythonrun.c:1584,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pythonrun.c:1585,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/pythonrun.c:1586,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/pythonrun.c:1588,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/pythonrun.c:1589,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/pythonrun.c:1590,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/pythonrun.c:1592,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/pythonrun.c:1594,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/pythonrun.c:1596,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pythonrun.c:1600,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/pythonrun.c:1601,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pythonrun.c:1604,1
    - Dst: strlen
      Src: /src/cpython/Python/pythonrun.c:1610,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1611,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:1613,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: 1617
      start: 1570
    functionDepth: 5
    functionLinenumber: 1570
    functionLinenumberEnd: 1617
    functionName: _Py_SourceAsString
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - Py_CLEAR
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyByteArray_AS_STRING
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyByteArray_Check
    - PyObject_GetBuffer
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyByteArray_GET_SIZE
    - PyUnicode_Check
    - PyErr_Format
    - PyBytes_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: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:1629,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/pythonrun.c:1630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1631
    functionName: PyOS_CheckStack
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_ReachedRecursionLimit
    linkageType: ''
    returnType: int
    signature: int PyOS_CheckStack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_AnyFileExFlags
      Src: /src/cpython/Python/pythonrun.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1642
    functionName: PyRun_AnyFile
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - name
    - closeit
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1646
    functionDepth: 4
    functionLinenumber: 1646
    functionLinenumberEnd: 1649
    functionName: PyRun_AnyFileEx
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - name
    - flags
    argTypes:
    - FILE*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1653
    functionDepth: 4
    functionLinenumber: 1653
    functionLinenumberEnd: 1656
    functionName: PyRun_AnyFileFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    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/cpython/Python/pythonrun.c:1662,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: 1663
      start: 1660
    functionDepth: 11
    functionLinenumber: 1660
    functionLinenumberEnd: 1663
    functionName: PyRun_File
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1669,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: 1670
      start: 1667
    functionDepth: 11
    functionLinenumber: 1667
    functionLinenumberEnd: 1670
    functionName: PyRun_FileEx
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1677,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: 1678
      start: 1674
    functionDepth: 11
    functionLinenumber: 1674
    functionLinenumberEnd: 1678
    functionName: PyRun_FileFlags
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1682
    functionDepth: 16
    functionLinenumber: 1682
    functionLinenumberEnd: 1685
    functionName: PyRun_SimpleFile
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - p
    - c
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1689
    functionDepth: 16
    functionLinenumber: 1689
    functionLinenumberEnd: 1692
    functionName: PyRun_SimpleFileEx
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - str
    - s
    - g
    - l
    argTypes:
    - char*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1697
    functionDepth: 11
    functionLinenumber: 1697
    functionLinenumberEnd: 1700
    functionName: PyRun_String
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 3
    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/cpython/Python/pythonrun.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1704
    functionDepth: 16
    functionLinenumber: 1704
    functionLinenumberEnd: 1707
    functionName: PyRun_SimpleString
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - p
    - s
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1711
    functionDepth: 18
    functionLinenumber: 1711
    functionLinenumberEnd: 1714
    functionName: Py_CompileString
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    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/cpython/Python/pythonrun.c:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - str
    - p
    - s
    - flags
    argTypes:
    - char*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1718
    functionDepth: 18
    functionLinenumber: 1718
    functionLinenumberEnd: 1722
    functionName: Py_CompileStringFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    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/cpython/Python/pythonrun.c:1728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1726
    functionDepth: 17
    functionLinenumber: 1726
    functionLinenumberEnd: 1729
    functionName: PyRun_InteractiveOne
    functionSourceFile: /src/cpython/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/cpython/Python/pythonrun.c:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1733
    functionDepth: 6
    functionLinenumber: 1733
    functionLinenumberEnd: 1736
    functionName: PyRun_InteractiveLoop
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_InteractiveLoopFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_InteractiveLoop(FILE *f, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - res
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: ADD_STAT_TO_DICT
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_STAT_TO_DICT(res, field)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/specialize.c:58,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/specialize.c:62,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/specialize.c:63,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/specialize.c:64,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/specialize.c:65,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/specialize.c:66,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/specialize.c:67,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/specialize.c:68,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:70,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/specialize.c:74,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:77,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/specialize.c:80,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/specialize.c:82,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:83,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:84,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - stats
    argTypes:
    - SpecializationStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 55
    functionDepth: 10
    functionLinenumber: 55
    functionLinenumberEnd: 89
    functionName: stats_to_dict
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - ADD_STAT_TO_DICT
    - PyLong_FromUnsignedLongLong
    - PyDict_SetItemString
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stats_to_dict(SpecializationStats *stats)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_to_dict
      Src: /src/cpython/Python/specialize.c:99,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/specialize.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - res
    - opcode
    - name
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 11
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: add_stat_dict
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - stats_to_dict
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int add_stat_dict(\n    PyObject *res,\n    int opcode,\n    const
      char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/specialize.c:110,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:115,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:116,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:117,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:118,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:119,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:120,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:121,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:122,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:123,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:124,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:125,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:126,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:127,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:128,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/specialize.c:129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 12
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: _Py_GetSpecializationStats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - add_stat_dict
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetSpecializationStats(void)'
  - 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: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: PRINT_STAT
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_STAT(i, field)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:148,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:149,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:150,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:162,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/specialize.c:165,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/specialize.c:166,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/specialize.c:167,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/specialize.c:168,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/specialize.c:169,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/specialize.c:170,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/specialize.c:171,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:175,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - OpcodeStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 186
    functionName: print_spec_stats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PRINT_STAT
    linkageType: ''
    returnType: void
    signature: void print_spec_stats(FILE *out, OpcodeStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:193,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:194,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:195,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:196,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - CallStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: print_call_stats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_call_stats(FILE *out, CallStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:205,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:206,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:207,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:208,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:209,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:210,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:211,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:212,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:213,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:214,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:215,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:216,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:217,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:218,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:219,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:220,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:221,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:222,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:223,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:224,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:225,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:226,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:227,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:228,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - ObjectStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: print_object_stats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_object_stats(FILE *out, ObjectStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:236,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:237,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:238,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:239,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - GCStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: print_gc_stats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_gc_stats(FILE *out, GCStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - name
    - hist
    argTypes:
    - FILE*
    - char*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: print_histogram
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_histogram(FILE *out, const char *name, uint64_t hist[_Py_UOP_HIST_SIZE])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:256,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:257,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:258,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:259,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:260,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:261,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:262,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:263,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:264,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:265,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:266,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:267,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:268,1
    - Dst: print_histogram
      Src: /src/cpython/Python/specialize.c:270,1
    - Dst: print_histogram
      Src: /src/cpython/Python/specialize.c:271,1
    - Dst: print_histogram
      Src: /src/cpython/Python/specialize.c:272,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:274,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:275,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:276,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:278,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:279,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:282,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/specialize.c:282,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:285,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/specialize.c:285,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:290,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:302,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:309,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/specialize.c:312,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:317,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:318,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:319,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:320,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:321,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:322,1
    - Dst: print_histogram
      Src: /src/cpython/Python/specialize.c:324,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - OptimizationStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 325
    functionName: print_optimization_stats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _PyUOpName
    - print_histogram
    linkageType: ''
    returnType: void
    signature: void print_optimization_stats(FILE *out, OptimizationStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:331,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:332,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:333,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:334,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:335,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:336,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - RareEventStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: print_rare_event_stats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_rare_event_stats(FILE *out, RareEventStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_spec_stats
      Src: /src/cpython/Python/specialize.c:343,1
    - Dst: print_call_stats
      Src: /src/cpython/Python/specialize.c:344,1
    - Dst: print_object_stats
      Src: /src/cpython/Python/specialize.c:345,1
    - Dst: print_gc_stats
      Src: /src/cpython/Python/specialize.c:346,1
    - Dst: print_optimization_stats
      Src: /src/cpython/Python/specialize.c:348,1
    - Dst: print_rare_event_stats
      Src: /src/cpython/Python/specialize.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - PyStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 351
    functionName: print_stats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - print_spec_stats
    - print_rare_event_stats
    - print_call_stats
    - print_optimization_stats
    - print_object_stats
    - print_gc_stats
    linkageType: ''
    returnType: void
    signature: void print_stats(FILE *out, PyStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: _Py_StatsOn
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_StatsOn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: _Py_StatsOff
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_StatsOff(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/specialize.c:368,1
    - Dst: memset
      Src: /src/cpython/Python/specialize.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: _Py_StatsClear
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _Py_StatsClear(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: mem_is_zero
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mem_is_zero(unsigned char *ptr, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/specialize.c:391,1
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/specialize.c:392,1
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/specialize.c:393,1
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/specialize.c:394,1
    - Dst: _PyOS_URandomNonblock
      Src: /src/cpython/Python/specialize.c:417,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:424,1
    - Dst: strlen
      Src: /src/cpython/Python/specialize.c:424,1
    - Dst: strlen
      Src: /src/cpython/Python/specialize.c:424,1
    - Dst: sprintf
      Src: /src/cpython/Python/specialize.c:425,1
    - Dst: fopen
      Src: /src/cpython/Python/specialize.c:426,1
    - Dst: fprintf
      Src: /src/cpython/Python/specialize.c:432,1
    - Dst: print_stats
      Src: /src/cpython/Python/specialize.c:434,1
    - Dst: fclose
      Src: /src/cpython/Python/specialize.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - to_file
    argTypes:
    - int
    assertStmts:
    - condition: (strlen(dirname) + 40 + strlen(".txt") < 64)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 439
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 439
    functionName: _Py_PrintSpecializationStats
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - _PyOS_URandomNonblock
    - strlen
    - sprintf
    - fopen
    - MEM_IS_ZERO
    - print_stats
    - fprintf
    - assert
    - fclose
    linkageType: ''
    returnType: int
    signature: int _Py_PrintSpecializationStats(int to_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - DATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: MEM_IS_ZERO
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM_IS_ZERO(DATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opcode
    - ','
    - kind
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: SPECIALIZATION_FAIL
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPECIALIZATION_FAIL(opcode, kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opcode
    - ','
    - kind
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: SPECIALIZATION_FAIL
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPECIALIZATION_FAIL(opcode, kind)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: initial_jump_backoff_counter
      Src: /src/cpython/Python/specialize.c:464,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/specialize.c:465,1
    - Dst: initial_unreachable_backoff_counter
      Src: /src/cpython/Python/specialize.c:468,1
    - Dst: initial_unreachable_backoff_counter
      Src: /src/cpython/Python/specialize.c:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - instructions
    - size
    - enable_counters
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 501
    functionName: _PyCode_Quicken
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - initial_jump_backoff_counter
    - initial_unreachable_backoff_counter
    - adaptive_counter_warmup
    linkageType: ''
    returnType: void
    signature: void _PyCode_Quicken(_Py_CODEUNIT *instructions, Py_ssize_t size, int
      enable_counters)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/specialize.c:704,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/specialize.c:709,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - instr
    - opcode
    argTypes:
    - _Py_CODEUNIT*
    - uint8_t
    assertStmts:
    - condition: (old_op >= MIN_INSTRUMENTED_OPCODE)
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 719
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 719
    functionName: set_opcode
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uint8
    - _Py_atomic_load_uint8_relaxed
    - assert
    linkageType: ''
    returnType: int
    signature: int set_opcode(_Py_CODEUNIT *instr, uint8_t opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/specialize.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - counter
    - value
    argTypes:
    - _Py_BackoffCounter*
    - _Py_BackoffCounter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: set_counter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT16_RELAXED
    linkageType: ''
    returnType: void
    signature: void set_counter(_Py_BackoffCounter *counter, _Py_BackoffCounter value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_UINT16_RELAXED
      Src: /src/cpython/Python/specialize.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counter
    argTypes:
    - _Py_BackoffCounter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 735
    functionName: load_counter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_UINT16_RELAXED
    linkageType: ''
    returnType: _Py_BackoffCounter
    signature: _Py_BackoffCounter load_counter(_Py_BackoffCounter *counter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:740,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/specialize.c:740,1
    - Dst: set_opcode
      Src: /src/cpython/Python/specialize.c:741,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/specialize.c:742,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:743,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/specialize.c:747,1
    - Dst: set_counter
      Src: /src/cpython/Python/specialize.c:748,1
    - Dst: adaptive_counter_cooldown
      Src: /src/cpython/Python/specialize.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - instr
    - specialized_opcode
    argTypes:
    - _Py_CODEUNIT*
    - uint8_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 749
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 749
    functionName: specialize
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - set_counter
    - adaptive_counter_cooldown
    - PyErr_Occurred
    - STAT_INC
    - SPECIALIZATION_FAIL
    - set_opcode
    - assert
    linkageType: ''
    returnType: void
    signature: void specialize(_Py_CODEUNIT *instr, uint8_t specialized_opcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:754,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/specialize.c:754,1
    - Dst: FT_ATOMIC_LOAD_UINT8_RELAXED
      Src: /src/cpython/Python/specialize.c:755,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/specialize.c:757,1
    - Dst: set_opcode
      Src: /src/cpython/Python/specialize.c:758,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:759,1
    - Dst: load_counter
      Src: /src/cpython/Python/specialize.c:763,1
    - Dst: set_counter
      Src: /src/cpython/Python/specialize.c:764,1
    - Dst: adaptive_counter_backoff
      Src: /src/cpython/Python/specialize.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - instr
    argTypes:
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 765
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 765
    functionName: unspecialize
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - set_counter
    - adaptive_counter_backoff
    - PyErr_Occurred
    - STAT_INC
    - load_counter
    - SPECIALIZATION_FAIL
    - set_opcode
    - FT_ATOMIC_LOAD_UINT8_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void unspecialize(_Py_CODEUNIT *instr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:776,1
    - Dst: _PyDict_LookupIndex
      Src: /src/cpython/Python/specialize.c:779,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:779,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:780,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:782,1
    - Dst: _PyDict_LookupIndex
      Src: /src/cpython/Python/specialize.c:785,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:786,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:788,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:794,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:795,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:797,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:800,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - dict
    - instr
    - name
    argTypes:
    - PyDictObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (index != DKIX_ERROR)
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/cpython/Python/specialize.c
    - condition: (index != DKIX_ERROR)
      pos:
        line_end: 785
        line_start: 785
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 804
      start: 771
    functionDepth: 6
    functionLinenumber: 771
    functionLinenumberEnd: 804
    functionName: specialize_module_load_attr_lock_held
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetKeysVersionForCurrentState
    - write_u32
    - specialize
    - _Py_ID
    - _PyInterpreterState_GET
    - SPECIALIZATION_FAIL
    - _PyDict_LookupIndex
    - assert
    linkageType: ''
    returnType: int
    signature: int specialize_module_load_attr_lock_held(PyDictObject *dict, _Py_CODEUNIT
      *instr, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:811,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:811,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:814,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:818,1
    - Dst: specialize_module_load_attr_lock_held
      Src: /src/cpython/Python/specialize.c:819,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - owner
    - instr
    - name
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: ((Py_TYPE(owner)->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 822
      start: 806
    functionDepth: 7
    functionLinenumber: 806
    functionLinenumberEnd: 822
    functionName: specialize_module_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - SPECIALIZATION_FAIL
    - specialize_module_load_attr_lock_held
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: "int specialize_module_load_attr(\n    PyObject *owner, _Py_CODEUNIT
      *instr, PyObject *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:828,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:829,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:831,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:832,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:834,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:837,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:838,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:842,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - global_super_st
    - cls_st
    - instr
    - load_method
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (_PyOpcode_Caches[LOAD_SUPER_ATTR] == INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 830
        line_start: 830
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 846
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 846
    functionName: _Py_Specialize_LoadSuperAttr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - PyType_Check
    - unspecialize
    - specialize
    - SPECIALIZATION_FAIL
    - PyStackRef_AsPyObjectBorrow
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_LoadSuperAttr(_PyStackRef global_super_st,
      _PyStackRef cls_st, _Py_CODEUNIT *instr, int load_method)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:872,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:897,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:900,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - descriptor
    - has_getattr
    argTypes:
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 906
    functionName: classify_descriptor
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - Py_TYPE
    linkageType: ''
    returnType: DescriptorClassification
    signature: DescriptorClassification classify_descriptor(PyObject *descriptor,
      bool has_getattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/specialize.c:911,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/specialize.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - descriptor
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 913
    functionName: descriptor_is_class
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    - _PyType_Lookup
    linkageType: ''
    returnType: bool
    signature: bool descriptor_is_class(PyObject *descriptor, PyObject *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:929,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:930,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:932,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/specialize.c:935,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:935,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:946,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:958,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/specialize.c:962,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:966,1
    - Dst: descriptor_is_class
      Src: /src/cpython/Python/specialize.c:969,1
    - Dst: classify_descriptor
      Src: /src/cpython/Python/specialize.c:972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - type
    - name
    - descr
    - tp_version
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 915
    functionDepth: 4
    functionLinenumber: 915
    functionLinenumberEnd: 973
    functionName: analyze_descriptor_load
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - descriptor_is_class
    - _PyType_Lookup
    - Py_XDECREF
    - classify_descriptor
    - Py_DECREF
    - _Py_ID
    - _PyInterpreterState_GET
    - _PyType_LookupRefAndVersion
    - Py_IS_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    linkageType: ''
    returnType: DescriptorClassification
    signature: DescriptorClassification analyze_descriptor_load(PyTypeObject *type,
      PyObject *name, PyObject **descr, unsigned int *tp_version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:982,1
    - Dst: descriptor_is_class
      Src: /src/cpython/Python/specialize.c:984,1
    - Dst: classify_descriptor
      Src: /src/cpython/Python/specialize.c:987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - type
    - name
    - descr
    - tp_version
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 975
    functionDepth: 4
    functionLinenumber: 975
    functionLinenumberEnd: 988
    functionName: analyze_descriptor_store
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyType_LookupRefAndVersion
    - classify_descriptor
    - descriptor_is_class
    linkageType: ''
    returnType: DescriptorClassification
    signature: DescriptorClassification analyze_descriptor_store(PyTypeObject *type,
      PyObject *name, PyObject **descr, unsigned int *tp_version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:998,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:998,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Python/specialize.c:999,1
    - Dst: _PyDictKeys_StringLookupSplit
      Src: /src/cpython/Python/specialize.c:1000,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1001,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1003,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1006,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1007,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/specialize.c:1007,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/specialize.c:1008,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1011,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1015,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 7
    argNames:
    - owner
    - instr
    - type
    - name
    - tp_version
    - base_op
    - values_op
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyTypeObject*
    - PyObject*
    - unsigned int
    - int
    - int
    assertStmts:
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/cpython/Python/specialize.c
    - condition: (index != DKIX_ERROR)
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/cpython/Python/specialize.c
    - condition: (index >= 0)
      pos:
        line_end: 1005
        line_start: 1005
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyObject_InlineValues(owner)->valid)
      pos:
        line_end: 1006
        line_start: 1006
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1018
      start: 990
    functionDepth: 3
    functionLinenumber: 990
    functionLinenumberEnd: 1018
    functionName: specialize_dict_access_inline
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - write_u32
    - _PyObject_InlineValues
    - specialize
    - PyUnicode_CheckExact
    - _PyDictKeys_StringLookupSplit
    - SPECIALIZATION_FAIL
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: "int specialize_dict_access_inline(\n    PyObject *owner, _Py_CODEUNIT
      *instr, PyTypeObject *type,\n    PyObject *name, unsigned int tp_version,\n
      \   int base_op, int values_op)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Python/specialize.c:1028,1
    - Dst: _PyDict_EnsureSharedOnRead
      Src: /src/cpython/Python/specialize.c:1030,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Python/specialize.c:1034,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1035,1
    - Dst: _PyDict_LookupIndex
      Src: /src/cpython/Python/specialize.c:1038,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1040,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1047,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - dict
    - instr
    - type
    - name
    - tp_version
    - base_op
    - hint_op
    argTypes:
    - PyDictObject*
    - _Py_CODEUNIT*
    - PyTypeObject*
    - PyObject*
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1020
    functionDepth: 6
    functionLinenumber: 1020
    functionLinenumberEnd: 1050
    functionName: specialize_dict_access_hint
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - write_u32
    - _PyDict_EnsureSharedOnRead
    - specialize
    - SPECIALIZATION_FAIL
    - _PyDict_LookupIndex
    - _PyDict_HasSplitTable
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: "int specialize_dict_access_hint(\n    PyDictObject *dict, _Py_CODEUNIT
      *instr, PyTypeObject *type,\n    PyObject *name, unsigned int tp_version,\n
      \   int base_op, int hint_op)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1059,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1064,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/specialize.c:1068,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/specialize.c:1068,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:1069,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:1072,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:1073,1
    - Dst: specialize_dict_access_inline
      Src: /src/cpython/Python/specialize.c:1076,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1081,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:1084,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:1088,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:1089,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1090,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:1094,1
    - Dst: specialize_dict_access_hint
      Src: /src/cpython/Python/specialize.c:1096,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:1098,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 9
    argNames:
    - owner
    - instr
    - type
    - kind
    - name
    - tp_version
    - base_op
    - values_op
    - hint_op
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyTypeObject*
    - DescriptorClassification
    - PyObject*
    - unsigned int
    - int
    - int
    - int
    assertStmts:
    - condition: "(kind == NON_OVERRIDING || kind == NON_DESCRIPTOR || kind == ABSENT
        ||\n        kind == BUILTIN_CLASSMETHOD || kind == PYTHON_CLASSMETHOD ||\n
        \       kind == METHOD)"
      pos:
        line_end: 1060
        line_start: 1058
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1101
      start: 1053
    functionDepth: 7
    functionLinenumber: 1053
    functionLinenumberEnd: 1101
    functionName: specialize_dict_access
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyObject_InlineValues
    - PyDict_CheckExact
    - specialize_dict_access_hint
    - FT_ATOMIC_LOAD_UINT8
    - specialize_dict_access_inline
    - _PyObject_GetManagedDict
    - SPECIALIZATION_FAIL
    - assert
    linkageType: ''
    returnType: int
    signature: "int specialize_dict_access(\n    PyObject *owner, _Py_CODEUNIT *instr,
      PyTypeObject *type,\n    DescriptorClassification kind, PyObject *name, unsigned
      int tp_version,\n    int base_op, int values_op, int hint_op)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1119,1
    - Dst: _PyDictKeys_StringLookupAndVersion
      Src: /src/cpython/Python/specialize.c:1126,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:1129,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:1130,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:1134,1
    - Dst: _PyDict_LookupIndex
      Src: /src/cpython/Python/specialize.c:1139,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:1141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - obj
    - name
    - shared_keys_version
    argTypes:
    - PyObject*
    - PyObject*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1116
    functionDepth: 6
    functionLinenumber: 1116
    functionLinenumberEnd: 1143
    functionName: instance_has_key
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyDict_CheckExact
    - _PyDictKeys_StringLookupAndVersion
    - _PyObject_GetManagedDict
    - _PyDict_LookupIndex
    - Py_TYPE
    linkageType: ''
    returnType: bool
    signature: bool instance_has_key(PyObject *obj, PyObject *name, uint32_t *shared_keys_version)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1151,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1153,1
    - Dst: FT_ATOMIC_LOAD_UINT8_RELAXED
      Src: /src/cpython/Python/specialize.c:1156,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1159,1
    - Dst: specialize_attr_loadclassattr
      Src: /src/cpython/Python/specialize.c:1167,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1176,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1182,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1185,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1188,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1189,1
    - Dst: function_check_args
      Src: /src/cpython/Python/specialize.c:1192,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1196,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1200,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1201,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/specialize.c:1205,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1206,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1210,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1211,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:1213,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1214,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:1222,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1223,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1227,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1231,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1234,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1235,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1237,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1238,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1244,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1246,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1247,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1251,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1254,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1257,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1261,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1261,1
    - Dst: function_check_args
      Src: /src/cpython/Python/specialize.c:1263,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1267,1
    - Dst: function_get_version
      Src: /src/cpython/Python/specialize.c:1270,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1275,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1276,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/specialize.c:1280,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1281,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1285,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:1287,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1288,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1289,1
    - Dst: specialize_attr_loadclassattr
      Src: /src/cpython/Python/specialize.c:1304,1
    - Dst: set_counter
      Src: /src/cpython/Python/specialize.c:1315,1
    - Dst: adaptive_counter_cooldown
      Src: /src/cpython/Python/specialize.c:1315,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/specialize.c:1318,1
    - Dst: specialize_dict_access
      Src: /src/cpython/Python/specialize.c:1320,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 151
    argCount: 8
    argNames:
    - owner
    - instr
    - name
    - shadow
    - shared_keys_version
    - kind
    - descr
    - tp_version
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    - bool
    - uint32_t
    - DescriptorClassification
    - PyObject*
    - unsigned int
    assertStmts:
    - condition: (tp_version != 0)
      pos:
        line_end: 1209
        line_start: 1209
        source_file: /src/cpython/Python/specialize.c
    - condition: (offset == (uint16_t)offset)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/cpython/Python/specialize.c
    - condition: (dmem->type == Py_T_OBJECT_EX || dmem->type == _Py_T_OBJECT)
      pos:
        line_end: 1233
        line_start: 1233
        source_file: /src/cpython/Python/specialize.c
    - condition: (Py_IS_TYPE(descr, &PyFunction_Type))
      pos:
        line_end: 1260
        line_start: 1260
        source_file: /src/cpython/Python/specialize.c
    - condition: (Py_TYPE(descr) == &PyProperty_Type)
      pos:
        line_end: 1181
        line_start: 1181
        source_file: /src/cpython/Python/specialize.c
    - condition: (offset > 0)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1326
      start: 1145
    functionDepth: 8
    functionLinenumber: 1145
    functionLinenumberEnd: 1326
    functionName: do_specialize_instance_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - write_ptr
    - set_counter
    - write_u32
    - PyObject_TypeCheck
    - Py_UNREACHABLE
    - adaptive_counter_cooldown
    - specialize_attr_loadclassattr
    - specialize
    - function_get_version
    - _PyInterpreterState_GET
    - function_check_args
    - Py_IS_TYPE
    - specialize_dict_access
    - SPECIALIZATION_FAIL
    - _PyObject_HasDeferredRefcount
    - FT_ATOMIC_LOAD_UINT8_RELAXED
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: "int do_specialize_instance_load_attr(PyObject* owner, _Py_CODEUNIT*
      instr, PyObject* name,\n                                 bool shadow, uint32_t
      shared_keys_version,\n                                 DescriptorClassification
      kind, PyObject *descr, unsigned int tp_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: instance_has_key
      Src: /src/cpython/Python/specialize.c:1333,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1336,1
    - Dst: analyze_descriptor_load
      Src: /src/cpython/Python/specialize.c:1337,1
    - Dst: do_specialize_instance_load_attr
      Src: /src/cpython/Python/specialize.c:1338,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - owner
    - instr
    - name
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1328
    functionDepth: 9
    functionLinenumber: 1328
    functionLinenumberEnd: 1341
    functionName: specialize_instance_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - analyze_descriptor_load
    - instance_has_key
    - do_specialize_instance_load_attr
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int specialize_instance_load_attr(PyObject* owner, _Py_CODEUNIT* instr,
      PyObject* name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1346,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1348,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1350,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Python/specialize.c:1352,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1356,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1359,1
    - Dst: specialize_module_load_attr
      Src: /src/cpython/Python/specialize.c:1360,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:1362,1
    - Dst: specialize_class_load_attr
      Src: /src/cpython/Python/specialize.c:1363,1
    - Dst: specialize_instance_load_attr
      Src: /src/cpython/Python/specialize.c:1366,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - owner_st
    - instr
    - name
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 1347
        line_start: 1347
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[LOAD_ATTR] == INLINE_CACHE_ENTRIES_LOAD_ATTR)
      pos:
        line_end: 1348
        line_start: 1348
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1372
      start: 1343
    functionDepth: 10
    functionLinenumber: 1343
    functionLinenumberEnd: 1372
    functionName: _Py_Specialize_LoadAttr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - PyType_Check
    - unspecialize
    - specialize_instance_load_attr
    - specialize_class_load_attr
    - SPECIALIZATION_FAIL
    - Py_TYPE
    - PyStackRef_AsPyObjectBorrow
    - specialize_module_load_attr
    - _PyType_IsReady
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_LoadAttr(_PyStackRef owner_st, _Py_CODEUNIT
      *instr, PyObject *name)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1377,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1379,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1380,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1383,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Python/specialize.c:1384,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1388,1
    - Dst: PyModule_CheckExact
      Src: /src/cpython/Python/specialize.c:1391,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1392,1
    - Dst: analyze_descriptor_store
      Src: /src/cpython/Python/specialize.c:1396,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1400,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1403,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1406,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1409,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:1416,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1417,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1421,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1425,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1428,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1429,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1431,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1432,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1437,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1440,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1444,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1447,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1450,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1453,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1456,1
    - Dst: specialize_dict_access
      Src: /src/cpython/Python/specialize.c:1459,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1466,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1467,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1470,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 100
    argCount: 3
    argNames:
    - owner_st
    - instr
    - name
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (descr != NULL || kind == ABSENT || kind == GETSET_OVERRIDDEN)
      pos:
        line_end: 1399
        line_start: 1399
        source_file: /src/cpython/Python/specialize.c
    - condition: (dmem->type == Py_T_OBJECT_EX || dmem->type == _Py_T_OBJECT)
      pos:
        line_end: 1427
        line_start: 1427
        source_file: /src/cpython/Python/specialize.c
    - condition: (offset > 0)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 1378
        line_start: 1378
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[STORE_ATTR] == INLINE_CACHE_ENTRIES_STORE_ATTR)
      pos:
        line_end: 1379
        line_start: 1379
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1472
      start: 1374
    functionDepth: 8
    functionLinenumber: 1374
    functionLinenumberEnd: 1472
    functionName: _Py_Specialize_StoreAttr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - unspecialize
    - Py_XDECREF
    - PyModule_CheckExact
    - write_u32
    - PyObject_TypeCheck
    - specialize
    - SPECIALIZATION_FAIL
    - Py_TYPE
    - PyStackRef_AsPyObjectBorrow
    - specialize_dict_access
    - _PyType_IsReady
    - assert
    - analyze_descriptor_store
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_StoreAttr(_PyStackRef owner_st, _Py_CODEUNIT
      *instr, PyObject *name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/specialize.c:1507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - kind
    argTypes:
    - DescriptorClassification
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1508
    functionName: load_attr_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int load_attr_fail_kind(DescriptorClassification kind)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1515,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:1515,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1518,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1519,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:1523,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1523,1
    - Dst: classify_descriptor
      Src: /src/cpython/Python/specialize.c:1524,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1525,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1535,1
    - Dst: analyze_descriptor_load
      Src: /src/cpython/Python/specialize.c:1541,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1543,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1544,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1548,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1551,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1552,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/specialize.c:1560,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1561,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1562,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1566,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:1567,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1569,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1570,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1573,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1575,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1579,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1580,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1584,1
    - Dst: load_attr_fail_kind
      Src: /src/cpython/Python/specialize.c:1584,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1585,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 3
    argNames:
    - owner
    - instr
    - name
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(owner))
      pos:
        line_end: 1514
        line_start: 1514
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1588
      start: 1511
    functionDepth: 5
    functionLinenumber: 1511
    functionLinenumberEnd: 1588
    functionName: specialize_class_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - classify_descriptor
    - Py_XDECREF
    - write_u32
    - write_ptr
    - analyze_descriptor_load
    - load_attr_fail_kind
    - specialize
    - _PyType_LookupRefAndVersion
    - SPECIALIZATION_FAIL
    - _PyObject_HasDeferredRefcount
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: "int specialize_class_load_attr(PyObject *owner, _Py_CODEUNIT *instr,\n
      \                            PyObject *name)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1601,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1603,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1604,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/specialize.c:1607,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1608,1
    - Dst: PyType_GetFlags
      Src: /src/cpython/Python/specialize.c:1613,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1616,1
    - Dst: _PyDictKeys_StringLookup
      Src: /src/cpython/Python/specialize.c:1616,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1620,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1623,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1624,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1634,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1639,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/specialize.c:1643,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1645,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1652,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1654,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1657,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1675,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:1676,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 8
    argNames:
    - owner
    - instr
    - name
    - descr
    - tp_version
    - kind
    - is_method
    - shared_keys_version
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    - PyObject*
    - unsigned int
    - DescriptorClassification
    - bool
    - uint32_t
    assertStmts:
    - condition: "(_PyDictKeys_StringLookup(\n                   ((PyHeapTypeObject
        *)owner_cls)->ht_cached_keys, name) < 0)"
      pos:
        line_end: 1616
        line_start: 1615
        source_file: /src/cpython/Python/specialize.c
    - condition: ((is_method && kind == METHOD) || (!is_method && kind == NON_DESCRIPTOR))
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/cpython/Python/specialize.c
    - condition: (descr != NULL)
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/cpython/Python/specialize.c
    - condition: (((uint16_t)dictoffset) == dictoffset)
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1678
      start: 1593
    functionDepth: 4
    functionLinenumber: 1593
    functionLinenumberEnd: 1678
    functionName: specialize_attr_loadclassattr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - _PyDictKeys_StringLookup
    - write_ptr
    - write_u32
    - PyType_GetFlags
    - specialize
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - SPECIALIZATION_FAIL
    - _PyObject_HasDeferredRefcount
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: "int specialize_attr_loadclassattr(PyObject *owner, _Py_CODEUNIT *instr,\n
      \                             PyObject *name, PyObject *descr,\n                              unsigned
      int tp_version,\n                              DescriptorClassification kind,
      bool is_method,\n                              uint32_t shared_keys_version)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1686,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1687,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1690,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:1690,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:1691,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1692,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/specialize.c:1696,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1697,1
    - Dst: _PyDictKeys_StringLookup
      Src: /src/cpython/Python/specialize.c:1700,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1702,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1705,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1708,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1711,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1714,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1718,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1723,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:1726,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1727,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Python/specialize.c:1731,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1732,1
    - Dst: _PyDictKeys_StringLookup
      Src: /src/cpython/Python/specialize.c:1735,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1737,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1741,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1744,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1747,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1751,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1754,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1757,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1761,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1767,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1770,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 4
    argNames:
    - globals
    - builtins
    - instr
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (_PyOpcode_Caches[LOAD_GLOBAL] == INLINE_CACHE_ENTRIES_LOAD_GLOBAL)
      pos:
        line_end: 1686
        line_start: 1686
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 1685
        line_start: 1685
        source_file: /src/cpython/Python/specialize.c
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 1689
        line_start: 1689
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1771
      start: 1681
    functionDepth: 4
    functionLinenumber: 1681
    functionLinenumberEnd: 1771
    functionName: specialize_load_global_lock_held
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - unspecialize
    - _PyDictKeys_StringLookup
    - _PyDict_GetKeysVersionForCurrentState
    - PyDict_CheckExact
    - specialize
    - PyUnicode_CheckExact
    - _PyInterpreterState_GET
    - SPECIALIZATION_FAIL
    - DK_IS_UNICODE
    - assert
    linkageType: ''
    returnType: void
    signature: "void specialize_load_global_lock_held(\n    PyObject *globals, PyObject
      *builtins,\n    _Py_CODEUNIT *instr, PyObject *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Python/specialize.c:1778,1
    - Dst: specialize_load_global_lock_held
      Src: /src/cpython/Python/specialize.c:1779,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Python/specialize.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - globals
    - builtins
    - instr
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1773
    functionDepth: 5
    functionLinenumber: 1773
    functionLinenumberEnd: 1781
    functionName: _Py_Specialize_LoadGlobal
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - specialize_load_global_lock_held
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _Py_Specialize_LoadGlobal(\n    PyObject *globals, PyObject
      *builtins,\n    _Py_CODEUNIT *instr, PyObject *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1793
    functionName: function_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int function_kind(PyCodeObject *code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1799,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1799,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1802,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1804,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - o
    - expected_argcount
    - opcode
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (Py_IS_TYPE(o, &PyFunction_Type))
      pos:
        line_end: 1798
        line_start: 1798
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1812
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1812
    functionName: function_check_args
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - Py_IS_TYPE
    - SPECIALIZATION_FAIL
    - assert
    - function_kind
    linkageType: ''
    returnType: bool
    signature: bool function_check_args(PyObject *o, int expected_argcount, int opcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1818,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1818,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1820,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Python/specialize.c:1821,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - o
    - opcode
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (Py_IS_TYPE(o, &PyFunction_Type))
      pos:
        line_end: 1817
        line_start: 1817
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1826
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1826
    functionName: function_get_version
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - _PyFunction_IsVersionValid
    - _PyFunction_GetVersionForCurrentState
    - Py_IS_TYPE
    - SPECIALIZATION_FAIL
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t function_get_version(PyObject *o, int opcode)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1832,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Python/specialize.c:1838,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1839,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:1839,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:1842,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1843,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1846,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Python/specialize.c:1853,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1854,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1857,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1865,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1868,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/specialize.c:1877,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:1877,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1878,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1881,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - container
    - sub
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1829
    functionDepth: 3
    functionLinenumber: 1829
    functionLinenumberEnd: 1890
    functionName: store_subscr_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyType_Lookup
    - PyByteArray_CheckExact
    - PyObject_CheckBuffer
    - _Py_ID
    - strcmp
    - _PyLong_IsNonNegativeCompact
    - PyLong_CheckExact
    - PySlice_Check
    - Py_TYPE
    - function_kind
    linkageType: ''
    returnType: int
    signature: int store_subscr_fail_kind(PyObject *container, PyObject *sub)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1896,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1897,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1899,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1900,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1902,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:1903,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/specialize.c:1904,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1906,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1910,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1911,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1915,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1916,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1917,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1921,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1922,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1927,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1930,1
    - Dst: store_subscr_fail_kind
      Src: /src/cpython/Python/specialize.c:1930,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - container_st
    - sub_st
    - instr
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 1898
        line_start: 1898
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1932
      start: 1893
    functionDepth: 4
    functionLinenumber: 1893
    functionLinenumberEnd: 1932
    functionName: _Py_Specialize_StoreSubscr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - unspecialize
    - store_subscr_fail_kind
    - specialize
    - PyList_GET_SIZE
    - SPECIALIZATION_FAIL
    - _PyLong_IsNonNegativeCompact
    - PyStackRef_AsPyObjectBorrow
    - PyLong_CheckExact
    - PySlice_Check
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_StoreSubscr(_PyStackRef container_st, _PyStackRef
      sub_st, _Py_CODEUNIT *instr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1938,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1940,1
    - Dst: PyType_GetFlags
      Src: /src/cpython/Python/specialize.c:1943,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1946,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:1949,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:1949,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:1950,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1951,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1952,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1955,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/specialize.c:1955,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:1958,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - tp
    - tp_version
    argTypes:
    - PyTypeObject*
    - unsigned int*
    assertStmts:
    - condition: (tp->tp_new == PyBaseObject_Type.tp_new)
      pos:
        line_end: 1937
        line_start: 1937
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1962
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 1962
    functionName: get_init_for_simple_managed_python_class
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyFunction_Check
    - Py_DECREF
    - PyType_GetFlags
    - _Py_ID
    - PyFunction_GET_CODE
    - function_kind
    - _PyType_LookupRefAndVersion
    - SPECIALIZATION_FAIL
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_init_for_simple_managed_python_class(PyTypeObject *tp, unsigned int *tp_version)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1967,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:1967,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Python/specialize.c:1968,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1973,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1977,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1981,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1986,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1991,1
    - Dst: get_init_for_simple_managed_python_class
      Src: /src/cpython/Python/specialize.c:1996,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1998,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1999,1
    - Dst: _PyType_CacheInitForSpecialization
      Src: /src/cpython/Python/specialize.c:2002,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:2005,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2007,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:2010,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2013,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - callable
    - instr
    - nargs
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (PyType_Check(callable))
      pos:
        line_end: 1966
        line_start: 1966
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2015
      start: 1964
    functionDepth: 3
    functionLinenumber: 1964
    functionLinenumberEnd: 2015
    functionName: specialize_class_call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_XDECREF
    - write_u32
    - Py_DECREF
    - specialize
    - get_init_for_simple_managed_python_class
    - _PyType_CAST
    - SPECIALIZATION_FAIL
    - _PyType_CacheInitForSpecialization
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int specialize_class_call(PyObject *callable, _Py_CODEUNIT *instr,
      int nargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2026,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2029,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2034,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2037,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2043,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2046,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2050,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2054,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - descr
    - instr
    - nargs
    argTypes:
    - PyMethodDescrObject*
    - _Py_CODEUNIT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2017
    functionDepth: 3
    functionLinenumber: 2017
    functionLinenumberEnd: 2060
    functionName: specialize_method_descriptor
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - specialize
    - SPECIALIZATION_FAIL
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: "int specialize_method_descriptor(PyMethodDescrObject *descr, _Py_CODEUNIT
      *instr,\n                             int nargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:2068,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2070,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2071,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2076,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:2082,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Python/specialize.c:2083,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2084,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:2087,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2096,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - func
    - instr
    - nargs
    - bound_method
    argTypes:
    - PyFunctionObject*
    - _Py_CODEUNIT*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2062
    functionDepth: 3
    functionLinenumber: 2062
    functionLinenumberEnd: 2098
    functionName: specialize_py_call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - write_u32
    - specialize
    - _PyFunction_IsVersionValid
    - _PyInterpreterState_GET
    - _PyFunction_GetVersionForCurrentState
    - SPECIALIZATION_FAIL
    - function_kind
    linkageType: ''
    returnType: int
    signature: "int specialize_py_call(PyFunctionObject *func, _Py_CODEUNIT *instr,
      int nargs,\n                   bool bound_method)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:2107,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2109,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2110,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2114,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:2117,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Python/specialize.c:2118,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2119,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:2122,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - func
    - instr
    - nargs
    - bound_method
    argTypes:
    - PyFunctionObject*
    - _Py_CODEUNIT*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2101
    functionDepth: 3
    functionLinenumber: 2101
    functionLinenumberEnd: 2125
    functionName: specialize_py_call_kw
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - write_u32
    - specialize
    - _PyFunction_IsVersionValid
    - _PyInterpreterState_GET
    - _PyFunction_GetVersionForCurrentState
    - SPECIALIZATION_FAIL
    - function_kind
    linkageType: ''
    returnType: int
    signature: "int specialize_py_call_kw(PyFunctionObject *func, _Py_CODEUNIT *instr,
      int nargs,\n                   bool bound_method)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/specialize.c:2130,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2131,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/specialize.c:2134,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2139,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2143,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2145,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2148,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2154,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2156,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2160,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2164,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - callable
    - instr
    - nargs
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2127
    functionDepth: 3
    functionLinenumber: 2127
    functionLinenumberEnd: 2171
    functionName: specialize_c_call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - specialize
    - _PyInterpreterState_GET
    - PyCFunction_GET_FUNCTION
    - SPECIALIZATION_FAIL
    - PyCFunction_GET_FLAGS
    linkageType: ''
    returnType: int
    signature: int specialize_c_call(PyObject *callable, _Py_CODEUNIT *instr, int
      nargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2176,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2178,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2179,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2180,1
    - Dst: _Py_OPCODE
      Src: /src/cpython/Python/specialize.c:2180,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/specialize.c:2182,1
    - Dst: specialize_c_call
      Src: /src/cpython/Python/specialize.c:2183,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:2185,1
    - Dst: specialize_py_call
      Src: /src/cpython/Python/specialize.c:2186,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:2188,1
    - Dst: specialize_class_call
      Src: /src/cpython/Python/specialize.c:2189,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2191,1
    - Dst: specialize_method_descriptor
      Src: /src/cpython/Python/specialize.c:2192,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/specialize.c:2194,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:2196,1
    - Dst: specialize_py_call
      Src: /src/cpython/Python/specialize.c:2197,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2200,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2205,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - callable_st
    - instr
    - nargs
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/cpython/Python/specialize.c
    - condition: (_Py_OPCODE(*instr) != INSTRUMENTED_CALL)
      pos:
        line_end: 2179
        line_start: 2179
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[CALL] == INLINE_CACHE_ENTRIES_CALL)
      pos:
        line_end: 2178
        line_start: 2178
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2211
      start: 2173
    functionDepth: 4
    functionLinenumber: 2173
    functionLinenumberEnd: 2211
    functionName: _Py_Specialize_Call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - unspecialize
    - PyMethod_Check
    - PyFunction_Check
    - specialize_class_call
    - specialize
    - PyCFunction_CheckExact
    - specialize_py_call
    - Py_IS_TYPE
    - SPECIALIZATION_FAIL
    - PyStackRef_AsPyObjectBorrow
    - specialize_method_descriptor
    - _Py_OPCODE
    - specialize_c_call
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_Call(_PyStackRef callable_st, _Py_CODEUNIT
      *instr, int nargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2216,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2218,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2219,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2220,1
    - Dst: _Py_OPCODE
      Src: /src/cpython/Python/specialize.c:2220,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:2222,1
    - Dst: specialize_py_call_kw
      Src: /src/cpython/Python/specialize.c:2223,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/specialize.c:2225,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:2227,1
    - Dst: specialize_py_call_kw
      Src: /src/cpython/Python/specialize.c:2228,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2231,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2236,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - callable_st
    - instr
    - nargs
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (_PyOpcode_Caches[CALL_KW] == INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 2218
        line_start: 2218
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 2217
        line_start: 2217
        source_file: /src/cpython/Python/specialize.c
    - condition: (_Py_OPCODE(*instr) != INSTRUMENTED_CALL_KW)
      pos:
        line_end: 2219
        line_start: 2219
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2242
      start: 2213
    functionDepth: 4
    functionLinenumber: 2213
    functionLinenumberEnd: 2242
    functionName: _Py_Specialize_CallKw
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - unspecialize
    - PyMethod_Check
    - PyFunction_Check
    - specialize
    - specialize_py_call_kw
    - SPECIALIZATION_FAIL
    - PyStackRef_AsPyObjectBorrow
    - _Py_OPCODE
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_CallKw(_PyStackRef callable_st, _Py_CODEUNIT
      *instr, int nargs)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2251,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2251,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2257,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2257,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2260,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2275,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2275,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2281,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2281,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2284,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2299,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2299,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2305,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2305,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/specialize.c:2308,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:2314,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2314,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2317,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:2322,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2323,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:2323,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2326,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:2330,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2331,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:2331,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2334,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:2338,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2339,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:2339,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2342,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2347,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:2348,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:2348,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2351,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:2356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2362,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2368,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:2372,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:2374,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:2378,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:2382,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2386,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2390,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2394,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2398,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/specialize.c:2398,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2402,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2406,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2410,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2414,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2418,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2422,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/specialize.c:2427,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 160
    argCount: 3
    argNames:
    - oparg
    - lhs
    - rhs
    argTypes:
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2245
    functionDepth: 2
    functionLinenumber: 2245
    functionLinenumberEnd: 2428
    functionName: binary_op_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_CheckExact
    - function_kind
    - PyTuple_CheckExact
    - PyObject_TypeCheck
    - Py_IS_TYPE
    - strcmp
    - PyList_CheckExact
    - Py_DECREF
    - PyUnicode_CheckExact
    - _Py_ID
    - Py_TYPE
    - PyFloat_CheckExact
    - _PyInterpreterState_GET
    - _PyType_LookupRefAndVersion
    - _PyLong_IsNonNegativeCompact
    - _PyType_Name
    - PySlice_Check
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int binary_op_fail_kind(int oparg, PyObject *lhs, PyObject *rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2438,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/specialize.c:2439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2435
    functionDepth: 1
    functionLinenumber: 2435
    functionLinenumberEnd: 2440
    functionName: is_compactlong
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - PyLong_CheckExact
    linkageType: ''
    returnType: int
    signature: int is_compactlong(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_compactlong
      Src: /src/cpython/Python/specialize.c:2445,1
    - Dst: is_compactlong
      Src: /src/cpython/Python/specialize.c:2445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2442
    functionDepth: 2
    functionLinenumber: 2442
    functionLinenumberEnd: 2446
    functionName: compactlongs_guard
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - is_compactlong
    linkageType: ''
    returnType: int
    signature: int compactlongs_guard(PyObject *lhs, PyObject *rhs)
  - 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: 2456
      start: 2448
    functionDepth: 0
    functionLinenumber: 2448
    functionLinenumberEnd: 2456
    functionName: BITWISE_LONGS_ACTION
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITWISE_LONGS_ACTION(NAME, OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Python/specialize.c:2783,1
    - Dst: PyIter_Check
      Src: /src/cpython/Python/specialize.c:2786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2780
    functionDepth: 2
    functionLinenumber: 2780
    functionLinenumberEnd: 2790
    functionName: unpack_sequence_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PyIter_Check
    linkageType: ''
    returnType: int
    signature: int unpack_sequence_fail_kind(PyObject *seq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2796,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2798,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2799,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:2801,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/specialize.c:2802,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2803,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2804,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/specialize.c:2807,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2808,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2811,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:2814,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/specialize.c:2815,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2816,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2817,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2820,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2823,1
    - Dst: unpack_sequence_fail_kind
      Src: /src/cpython/Python/specialize.c:2823,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - seq_st
    - instr
    - oparg
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 2797
        line_start: 2797
        source_file: /src/cpython/Python/specialize.c
    - condition: "(_PyOpcode_Caches[UNPACK_SEQUENCE] ==\n           INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE)"
      pos:
        line_end: 2799
        line_start: 2798
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2825
      start: 2793
    functionDepth: 3
    functionLinenumber: 2793
    functionLinenumberEnd: 2825
    functionName: _Py_Specialize_UnpackSequence
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - unspecialize
    - PyList_CheckExact
    - assert
    - PyTuple_GET_SIZE
    - specialize
    - PyList_GET_SIZE
    - SPECIALIZATION_FAIL
    - PyStackRef_AsPyObjectBorrow
    - unpack_sequence_fail_kind
    - PyTuple_CheckExact
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_UnpackSequence(_PyStackRef seq_st, _Py_CODEUNIT
      *instr, int oparg)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Python/specialize.c:2831,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/specialize.c:2834,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Python/specialize.c:2837,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Python/specialize.c:2840,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2843,1
    - Dst: strncmp
      Src: /src/cpython/Python/specialize.c:2890,1
    - Dst: strncmp
      Src: /src/cpython/Python/specialize.c:2893,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 1
    argNames:
    - iter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2828
    functionDepth: 1
    functionLinenumber: 2828
    functionLinenumberEnd: 2897
    functionName: _PySpecialization_ClassifyIterator
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyAsyncGen_CheckExact
    - strncmp
    - PyAsyncGenASend_CheckExact
    - PyCoro_CheckExact
    - PyGen_CheckExact
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PySpecialization_ClassifyIterator(PyObject *iter)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2903,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2904,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2905,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2906,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/specialize.c:2908,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/specialize.c:2915,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2920,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2926,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2930,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2933,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/specialize.c:2941,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/specialize.c:2941,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2945,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2949,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2954,1
    - Dst: _PySpecialization_ClassifyIterator
      Src: /src/cpython/Python/specialize.c:2955,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2956,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - iter
    - null_or_index
    - instr
    - oparg
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 2902
        line_start: 2902
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[FOR_ITER] == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 2903
        line_start: 2903
        source_file: /src/cpython/Python/specialize.c
    - condition: "(instr[oparg + INLINE_CACHE_ENTRIES_FOR_ITER + 1].op.code == END_FOR
        \ ||\n                instr[oparg + INLINE_CACHE_ENTRIES_FOR_ITER + 1].op.code
        == INSTRUMENTED_END_FOR\n            )"
      pos:
        line_end: 2927
        line_start: 2925
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2957
      start: 2900
    functionDepth: 3
    functionLinenumber: 2900
    functionLinenumberEnd: 2957
    functionName: _Py_Specialize_ForIter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - unspecialize
    - _Py_IsOwnedByCurrentThread
    - specialize
    - _PyObject_GC_IS_SHARED
    - _PyInterpreterState_GET
    - _PySpecialization_ClassifyIterator
    - SPECIALIZATION_FAIL
    - PyStackRef_AsPyObjectBorrow
    - _PyObject_IsUniquelyReferenced
    - PyStackRef_IsNull
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_ForIter(_PyStackRef iter, _PyStackRef null_or_index,
      _Py_CODEUNIT *instr, int oparg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2962,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2964,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2965,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2966,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2969,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2970,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2973,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2976,1
    - Dst: _PySpecialization_ClassifyIterator
      Src: /src/cpython/Python/specialize.c:2977,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - receiver_st
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 2963
        line_start: 2963
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[SEND] == INLINE_CACHE_ENTRIES_SEND)
      pos:
        line_end: 2964
        line_start: 2964
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2980
      start: 2959
    functionDepth: 3
    functionLinenumber: 2959
    functionLinenumberEnd: 2980
    functionName: _Py_Specialize_Send
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - unspecialize
    - specialize
    - _PyInterpreterState_GET
    - _PySpecialization_ClassifyIterator
    - SPECIALIZATION_FAIL
    - PyStackRef_AsPyObjectBorrow
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_Send(_PyStackRef receiver_st, _Py_CODEUNIT
      *instr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Python/specialize.c:2986,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/specialize.c:2989,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:2992,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/specialize.c:2995,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Python/specialize.c:2998,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/specialize.c:3001,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:3004,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2983
    functionDepth: 1
    functionLinenumber: 2983
    functionLinenumberEnd: 3008
    functionName: to_bool_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyByteArray_CheckExact
    - PyDict_CheckExact
    - PyFloat_CheckExact
    - PyAnySet_CheckExact
    - PyMemoryView_Check
    - PyBytes_CheckExact
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int to_bool_fail_kind(PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ty
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 3011
    functionDepth: 0
    functionLinenumber: 3011
    functionLinenumberEnd: 3027
    functionName: check_type_always_true
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_type_always_true(PyTypeObject *ty)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:3032,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:3033,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:3035,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/specialize.c:3037,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:3041,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:3045,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/specialize.c:3049,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:3053,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/specialize.c:3057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:3057,1
    - Dst: _PyType_Validate
      Src: /src/cpython/Python/specialize.c:3059,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:3059,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:3061,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:3065,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:3069,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:3070,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:3071,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:3076,1
    - Dst: to_bool_fail_kind
      Src: /src/cpython/Python/specialize.c:3076,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:3078,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:3081,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 2
    argNames:
    - value_o
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 3031
        line_start: 3031
        source_file: /src/cpython/Python/specialize.c
    - condition: (version)
      pos:
        line_end: 3069
        line_start: 3069
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[TO_BOOL] == INLINE_CACHE_ENTRIES_TO_BOOL)
      pos:
        line_end: 3032
        line_start: 3032
        source_file: /src/cpython/Python/specialize.c
    - condition: (err == 0)
      pos:
        line_end: 3068
        line_start: 3068
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 3082
      start: 3029
    functionDepth: 4
    functionLinenumber: 3029
    functionLinenumberEnd: 3082
    functionName: _Py_Specialize_ToBool
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - PyList_CheckExact
    - unspecialize
    - write_u32
    - specialize
    - PyUnicode_CheckExact
    - PyType_HasFeature
    - Py_IsNone
    - SPECIALIZATION_FAIL
    - PyBool_Check
    - PyStackRef_AsPyObjectBorrow
    - PyLong_CheckExact
    - to_bool_fail_kind
    - _PyType_Validate
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_ToBool(_PyStackRef value_o, _Py_CODEUNIT
      *instr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:3087,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:3090,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:3093,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:3096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3085
    functionDepth: 1
    functionLinenumber: 3085
    functionLinenumberEnd: 3100
    functionName: containsop_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyUnicode_CheckExact
    - PyType_Check
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int containsop_fail_kind(PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:3106,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:3108,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:3109,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:3110,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:3111,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Python/specialize.c:3114,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/specialize.c:3114,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:3115,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:3119,1
    - Dst: containsop_fail_kind
      Src: /src/cpython/Python/specialize.c:3119,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:3120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - value_st
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION_FT)
      pos:
        line_end: 3107
        line_start: 3107
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[CONTAINS_OP] == INLINE_CACHE_ENTRIES_COMPARE_OP)
      pos:
        line_end: 3108
        line_start: 3108
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 3122
      start: 3103
    functionDepth: 3
    functionLinenumber: 3103
    functionLinenumberEnd: 3122
    functionName: _Py_Specialize_ContainsOp
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - unspecialize
    - PyDict_CheckExact
    - PyFrozenSet_CheckExact
    - specialize
    - PySet_CheckExact
    - SPECIALIZATION_FAIL
    - PyStackRef_AsPyObjectBorrow
    - containsop_fail_kind
    - assert
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_ContainsOp(_PyStackRef value_st, _Py_CODEUNIT
      *instr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/specialize.c:3128,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:3166,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3167
      start: 3125
    functionDepth: 1
    functionLinenumber: 3125
    functionLinenumberEnd: 3167
    functionName: _Py_GatherStats_GetIter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - PyStackRef_TYPE
    - SPECIALIZATION_FAIL
    linkageType: ''
    returnType: void
    signature: void _Py_GatherStats_GetIter(_PyStackRef iterable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: _PyErr_SetRaisedException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 22
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetRaisedException(PyThreadState *tstate, PyObject *exc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/errors.c:37,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/errors.c:39,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/errors.c:40,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/errors.c:43,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:46,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/errors.c:47,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:50,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/errors.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - exception_type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: _PyErr_CreateException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_CLEAR
    - PyTuple_Check
    - PyObject_Call
    - PyObject_CallOneArg
    - PyErr_Format
    - Py_TYPE
    - PyExceptionInstance_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_CreateException(PyObject *exception_type, PyObject *value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:62,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:63,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:64,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:67,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:67,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:68,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/errors.c:71,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:72,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:73,1
    - Dst: _PyErr_CreateException
      Src: /src/cpython/Python/errors.c:77,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:78,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:80,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:81,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:86,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:86,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/errors.c:88,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:89,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:90,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:91,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:94,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:96,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - tstate
    - type
    - value
    - traceback
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionClass_Check(type))
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/cpython/Python/errors.c
    - condition: (PyExceptionInstance_Check(value))
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/cpython/Python/errors.c
    - condition: (tb != Py_None)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/cpython/Python/errors.c
    - condition: (value == NULL)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/cpython/Python/errors.c
    - condition: (traceback == NULL)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 98
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 98
    functionName: _PyErr_Restore
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_CreateException
    - PyException_GetTraceback
    - Py_DECREF
    - _PyErr_SetRaisedException
    - PyException_SetTraceback
    - PyExceptionClass_Check
    - Py_TYPE
    - PyExceptionInstance_Check
    - assert
    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/cpython/Python/errors.c:103,1
    - Dst: _PyErr_Restore
      Src: /src/cpython/Python/errors.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - value
    - traceback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 7
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: PyErr_Restore
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 5
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_Restore
    linkageType: ''
    returnType: void
    signature: void PyErr_Restore(PyObject *type, PyObject *value, PyObject *traceback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:110,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: PyErr_SetRaisedException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 86
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void PyErr_SetRaisedException(PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:118,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:124,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/errors.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (exc_info)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/cpython/Python/errors.c
    - condition: (!Py_IsNone(exc_info->exc_value))
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: _PyErr_GetTopmostException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 3
    functionsReached:
    - Py_IsNone
    - assert
    linkageType: ''
    returnType: _PyErr_StackItem
    signature: '_PyErr_StackItem *

      _PyErr_GetTopmostException(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/errors.c:131,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:133,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:134,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:139,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:140,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - tstate
    - exception
    - value
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 10
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: get_normalization_failure_note
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyErr_Clear
    - PyObject_Repr
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_normalization_failure_note(PyThreadState *tstate, PyObject *exception, PyObject
      *value)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:157,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/errors.c:158,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:166,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/errors.c:167,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:167,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/errors.c:172,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:178,1
    - Dst: _PyErr_CreateException
      Src: /src/cpython/Python/errors.c:180,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:182,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:183,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:183,1
    - Dst: get_normalization_failure_note
      Src: /src/cpython/Python/errors.c:185,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:186,1
    - Dst: _PyException_AddNote
      Src: /src/cpython/Python/errors.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:190,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:192,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/errors.c:195,1
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/errors.c:198,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/errors.c:201,1
    - Dst: PyException_GetContext
      Src: /src/cpython/Python/errors.c:212,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:213,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:215,1
    - Dst: PyException_GetContext
      Src: /src/cpython/Python/errors.c:225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:226,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:233,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:236,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:237,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/errors.c:238,1
    - Dst: _PyErr_Restore
      Src: /src/cpython/Python/errors.c:239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:239,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:239,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - tstate
    - exception
    - value
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Python/errors.c
    - condition: (value != NULL)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 240
      start: 150
    functionDepth: 11
    functionLinenumber: 150
    functionLinenumberEnd: 240
    functionName: _PyErr_SetObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - PyObject_IsSubclass
    - PyException_GetTraceback
    - _PyErr_Format
    - _PyErr_Clear
    - _PyErr_GetTopmostException
    - PyExceptionClass_Check
    - PyExceptionInstance_Check
    - Py_INCREF
    - _PyErr_CreateException
    - get_normalization_failure_note
    - PyException_SetContext
    - _PyException_AddNote
    - Py_DECREF
    - PyException_GetContext
    - Py_NewRef
    - Py_TYPE
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - _PyErr_Restore
    - Py_XSETREF
    - Py_XINCREF
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:245,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exception
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 12
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: PyErr_SetObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 72
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetObject
    linkageType: ''
    returnType: void
    signature: void PyErr_SetObject(PyObject *exception, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:255,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/errors.c:256,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:262,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 252
    functionDepth: 12
    functionLinenumber: 252
    functionLinenumberEnd: 264
    functionName: _PyErr_SetKeyError
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 11
    functionsReached:
    - Py_DECREF
    - _PyErr_SetObject
    - _PyThreadState_GET
    - PyObject_CallOneArg
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetKeyError(PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exception
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 12
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: _PyErr_SetNone
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - _PyErr_SetObject
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetNone(PyThreadState *tstate, PyObject *exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:276,1
    - Dst: _PyErr_SetNone
      Src: /src/cpython/Python/errors.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exception
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 13
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: PyErr_SetNone
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 25
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetNone
    linkageType: ''
    returnType: void
    signature: void PyErr_SetNone(PyObject *exception)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:285,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - exception
    - string
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 12
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: _PyErr_SetString
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 42
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - _PyErr_SetObject
    linkageType: ''
    returnType: void
    signature: "void _PyErr_SetString(PyThreadState *tstate, PyObject *exception,\n
      \                const char *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:295,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exception
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 13
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: PyErr_SetString
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1823
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void PyErr_SetString(PyObject *exception, const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Python/errors.c:302,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/errors.c:304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - exception
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 13
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: _PyErr_SetLocaleString
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 6
    functionsReached:
    - PyErr_SetObject
    - Py_DECREF
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetLocaleString(PyObject *exception, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/errors.c:355,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: _PyErr_ExceptionMatches
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 16
    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/cpython/Python/errors.c:362,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/errors.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: PyErr_ExceptionMatches
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 195
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int PyErr_ExceptionMatches(PyObject *exc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:398,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:404,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:408,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/errors.c:409,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/errors.c:410,1
    - Dst: _PyErr_CreateException
      Src: /src/cpython/Python/errors.c:422,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/errors.c:426,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/errors.c:432,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:442,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:445,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:454,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:460,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/errors.c:467,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/errors.c:468,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/errors.c:472,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 4
    argNames:
    - tstate
    - exc
    - val
    - tb
    argTypes:
    - PyThreadState*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (*exc != NULL)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 477
      start: 377
    functionDepth: 13
    functionLinenumber: 377
    functionLinenumberEnd: 477
    functionName: _PyErr_NormalizeException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyObject_IsSubclass
    - _PyErr_CreateException
    - Py_DECREF
    - Py_FatalError
    - PyErr_GivenExceptionMatches
    - Py_NewRef
    - Py_SETREF
    - _PyErr_Fetch
    - _PyErr_SetString
    - PyExceptionClass_Check
    - PyExceptionInstance_Class
    - PyExceptionInstance_Check
    - assert
    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/cpython/Python/errors.c:483,1
    - Dst: _PyErr_NormalizeException
      Src: /src/cpython/Python/errors.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exc
    - val
    - tb
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 14
    functionLinenumber: 480
    functionLinenumberEnd: 485
    functionName: PyErr_NormalizeException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 3
    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: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 493
    functionName: _PyErr_GetRaisedException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_GetRaisedException(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:498,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: PyErr_GetRaisedException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 115
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_GetRaisedException(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:506,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:513,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:513,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/errors.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - tstate
    - p_type
    - p_value
    - p_traceback
    argTypes:
    - PyThreadState*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: _PyErr_Fetch
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - Py_NewRef
    - Py_TYPE
    - PyException_GetTraceback
    - _PyErr_GetRaisedException
    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/cpython/Python/errors.c:522,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:523,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: 524
      start: 519
    functionDepth: 4
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: PyErr_Fetch
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 6
    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/cpython/Python/errors.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 7
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: _PyErr_Clear
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 24
    functionsReached:
    - _PyErr_Restore
    linkageType: ''
    returnType: void
    signature: void _PyErr_Clear(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:537,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 8
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: PyErr_Clear
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 271
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void PyErr_Clear(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:548,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:548,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/errors.c:549,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:550,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - exc_value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 547
        line_start: 547
        source_file: /src/cpython/Python/errors.c
    - condition: (type != NULL)
      pos:
        line_end: 549
        line_start: 549
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 553
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 553
    functionName: get_exc_type
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyExceptionInstance_Class
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_exc_type(PyObject *exc_value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:562,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:562,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/errors.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - exc_value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 566
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 566
    functionName: get_exc_traceback
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyException_GetTraceback
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_exc_traceback(PyObject *exc_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/errors.c:572,1
    - Dst: get_exc_type
      Src: /src/cpython/Python/errors.c:574,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/errors.c:575,1
    - Dst: get_exc_traceback
      Src: /src/cpython/Python/errors.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - tstate
    - p_type
    - p_value
    - p_traceback
    argTypes:
    - PyThreadState*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: _PyErr_GetExcInfo
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_GetTopmostException
    - get_exc_traceback
    - get_exc_type
    - Py_XNewRef
    linkageType: ''
    returnType: void
    signature: "void _PyErr_GetExcInfo(PyThreadState *tstate,\n                  PyObject
      **p_type, PyObject **p_value, PyObject **p_traceback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/errors.c:582,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 588
    functionName: _PyErr_GetHandledException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_GetTopmostException
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_GetHandledException(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:593,1
    - Dst: _PyErr_GetHandledException
      Src: /src/cpython/Python/errors.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: PyErr_GetHandledException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_GetHandledException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_GetHandledException(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/errors.c:600,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/errors.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: _PyErr_SetHandledException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetHandledException(PyThreadState *tstate, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:606,1
    - Dst: _PyErr_SetHandledException
      Src: /src/cpython/Python/errors.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: PyErr_SetHandledException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 4
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetHandledException
    linkageType: ''
    returnType: void
    signature: void PyErr_SetHandledException(PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:613,1
    - Dst: _PyErr_GetExcInfo
      Src: /src/cpython/Python/errors.c:614,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: 615
      start: 610
    functionDepth: 5
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: PyErr_GetExcInfo
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_GetExcInfo
    linkageType: ''
    returnType: void
    signature: void PyErr_GetExcInfo(PyObject **p_type, PyObject **p_value, PyObject
      **p_traceback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetHandledException
      Src: /src/cpython/Python/errors.c:620,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:621,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - type
    - value
    - traceback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: PyErr_SetExcInfo
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - PyErr_SetHandledException
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyErr_SetExcInfo(PyObject *type, PyObject *value, PyObject *traceback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:633,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:635,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/errors.c:637,1
    - Dst: get_exc_type
      Src: /src/cpython/Python/errors.c:642,1
    - Dst: get_exc_traceback
      Src: /src/cpython/Python/errors.c:643,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/errors.c:645,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/errors.c:646,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:646,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/errors.c:647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - err_info
    argTypes:
    - _PyErr_StackItem*
    assertStmts:
    - condition: "(exc_value == NULL ||\n           exc_value == Py_None ||\n           PyExceptionInstance_Check(exc_value))"
      pos:
        line_end: 634
        line_start: 632
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 650
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 650
    functionName: _PyErr_StackItemToExcInfoTuple
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - get_exc_type
    - PyTuple_SET_ITEM
    - Py_NewRef
    - get_exc_traceback
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_StackItemToExcInfoTuple(_PyErr_StackItem *err_info)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:664,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:666,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/errors.c:667,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:674,1
    - Dst: _PyErr_NormalizeException
      Src: /src/cpython/Python/errors.c:675,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/errors.c:677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:680,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:681,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:682,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:683,1
    - Dst: _PyErr_Restore
      Src: /src/cpython/Python/errors.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - typ
    - val
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 658
    functionDepth: 14
    functionLinenumber: 658
    functionLinenumberEnd: 688
    functionName: _PyErr_ChainExceptions
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyErr_NormalizeException
    - _PyErr_GetRaisedException
    - _PyErr_Format
    - _PyErr_SetRaisedException
    - _PyErr_Restore
    - _PyThreadState_GET
    - PyException_SetContext
    - PyExceptionClass_Check
    - _PyErr_Occurred
    - PyException_SetTraceback
    linkageType: ''
    returnType: void
    signature: void _PyErr_ChainExceptions(PyObject *typ, PyObject *val, PyObject
      *tb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:701,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:702,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:703,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:704,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 709
    functionName: _PyErr_ChainExceptions1Tstate
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 3
    functionsReached:
    - PyException_SetContext
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyErr_ChainExceptions1Tstate(PyThreadState *tstate, PyObject
      *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:714,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Python/errors.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 4
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: _PyErr_ChainExceptions1
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 31
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_ChainExceptions1Tstate
    linkageType: ''
    returnType: void
    signature: void _PyErr_ChainExceptions1(PyObject *exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:727,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:728,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:728,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:735,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:738,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 740
      start: 724
    functionDepth: 12
    functionLinenumber: 724
    functionLinenumberEnd: 740
    functionName: _PyErr_ChainStackItem
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - assert
    - Py_DECREF
    - _PyErr_SetObject
    - _PyThreadState_GET
    - Py_TYPE
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyErr_ChainStackItem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:746,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:746,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:747,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:748,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:748,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:749,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:750,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/errors.c:751,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:751,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:753,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - tstate
    - exception
    - format
    - vargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - va_list
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 745
        line_start: 745
        source_file: /src/cpython/Python/errors.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 756
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 756
    functionName: _PyErr_FormatVFromCause
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - assert
    - PyException_SetCause
    - Py_DECREF
    - _PyErr_SetRaisedException
    - _PyErr_FormatV
    - Py_NewRef
    - PyException_SetContext
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyErr_FormatVFromCause(PyThreadState *tstate, PyObject
      *exception,\n                        const char *format, va_list vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:763,1
    - Dst: _PyErr_FormatVFromCause
      Src: /src/cpython/Python/errors.c:764,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - exception
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 767
    functionName: _PyErr_FormatFromCauseTstate
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - _PyErr_FormatVFromCause
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyErr_FormatFromCauseTstate(PyThreadState *tstate, PyObject
      *exception,\n                             const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:772,1
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:774,1
    - Dst: _PyErr_FormatVFromCause
      Src: /src/cpython/Python/errors.c:775,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - exception
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 778
    functionName: _PyErr_FormatFromCause
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 6
    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/cpython/Python/errors.c:785,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 782
    functionDepth: 13
    functionLinenumber: 782
    functionLinenumberEnd: 789
    functionName: PyErr_BadArgument
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 36
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyErr_BadArgument(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:794,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/errors.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 7
    functionLinenumber: 791
    functionLinenumberEnd: 796
    functionName: PyErr_NoMemory
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 525
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_NoMemory(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Python/errors.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - filenameObject
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: PyErr_SetFromErrnoWithFilenameObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 11
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrnoWithFilenameObject(PyObject *exc, PyObject *filenameObject)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:807,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/errors.c:816,1
    - Dst: strerror
      Src: /src/cpython/Python/errors.c:822,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Python/errors.c:823,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:827,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:831,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:840,1
    - Dst: FormatMessageW
      Src: /src/cpython/Python/errors.c:843,1
    - Dst: MAKELANGID
      Src: /src/cpython/Python/errors.c:849,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:859,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/errors.c:864,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:873,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:880,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:882,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:884,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:887,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/errors.c:890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:891,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:893,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:894,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:898,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - exc
    - filenameObject
    - filenameObject2
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (filenameObject2 == NULL)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 901
      start: 804
    functionDepth: 12
    functionLinenumber: 804
    functionLinenumberEnd: 901
    functionName: PyErr_SetFromErrnoWithFilenameObjects
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 4
    functionsReached:
    - LocalFree
    - Py_BuildValue
    - Py_DECREF
    - PyUnicode_FromFormat
    - FormatMessageW
    - _PyErr_SetObject
    - _PyThreadState_GET
    - PyErr_CheckSignals
    - PyObject_Call
    - strerror
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeLocale
    - MAKELANGID
    - Py_TYPE
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrnoWithFilenameObjects(PyObject *exc, PyObject *filenameObject,
      PyObject *filenameObject2)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:909,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Python/errors.c:915,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - exc
    - filename
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 903
    functionDepth: 13
    functionLinenumber: 903
    functionLinenumberEnd: 918
    functionName: PyErr_SetFromErrnoWithFilename
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 6
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    - PyUnicode_DecodeFSDefault
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Python/errors.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 13
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: PyErr_SetFromErrno
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 142
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrno(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/cpython/Python/errors.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exc
    - ierr
    - filenameObject
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 935
    functionName: PyErr_SetExcFromWindowsErrWithFilenameObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 5
    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/cpython/Python/errors.c:943,1
    - Dst: GetLastError
      Src: /src/cpython/Python/errors.c:951,1
    - Dst: FormatMessageW
      Src: /src/cpython/Python/errors.c:954,1
    - Dst: MAKELANGID
      Src: /src/cpython/Python/errors.c:961,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:968,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/errors.c:974,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:979,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:984,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:992,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/errors.c:995,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:996,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:998,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:999,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:1002,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: 983
        line_start: 983
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1004
      start: 937
    functionDepth: 12
    functionLinenumber: 937
    functionLinenumberEnd: 1004
    functionName: PyErr_SetExcFromWindowsErrWithFilenameObjects
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - LocalFree
    - Py_BuildValue
    - Py_DECREF
    - PyUnicode_FromFormat
    - FormatMessageW
    - GetLastError
    - _PyErr_SetObject
    - _PyThreadState_GET
    - PyObject_Call
    - PyUnicode_FromWideChar
    - MAKELANGID
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetExcFromWindowsErrWithFilenameObjects(\n    PyObject
      *exc,\n    int ierr,\n    PyObject *filenameObject,\n    PyObject *filenameObject2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Python/errors.c:1014,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:1016,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/cpython/Python/errors.c:1021,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - exc
    - ierr
    - filename
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1006
    functionDepth: 13
    functionLinenumber: 1006
    functionLinenumberEnd: 1027
    functionName: PyErr_SetExcFromWindowsErrWithFilename
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    - GetLastError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetExcFromWindowsErrWithFilename(\n    PyObject *exc,\n
      \   int ierr,\n    const char *filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilename
      Src: /src/cpython/Python/errors.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - ierr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1029
    functionDepth: 14
    functionLinenumber: 1029
    functionLinenumberEnd: 1032
    functionName: PyErr_SetExcFromWindowsErr
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 18
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilename
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyErr_SetExcFromWindowsErr(PyObject *exc, int ierr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilename
      Src: /src/cpython/Python/errors.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ierr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1034
    functionDepth: 14
    functionLinenumber: 1034
    functionLinenumberEnd: 1038
    functionName: PyErr_SetFromWindowsErr
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 104
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilename
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyErr_SetFromWindowsErr(int ierr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Python/errors.c:1047,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:1049,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/cpython/Python/errors.c:1054,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ierr
    - filename
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1040
    functionDepth: 13
    functionLinenumber: 1040
    functionLinenumberEnd: 1059
    functionName: PyErr_SetFromWindowsErrWithFilename
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    - GetLastError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetFromWindowsErrWithFilename(\n    int ierr,\n    const
      char *filename)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/errors.c:1071,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1076,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1082,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/errors.c:1097,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1101,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1104,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1107,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Python/errors.c:1110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1113,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 6
    argNames:
    - tstate
    - exctype
    - msg
    - name
    - path
    - from_name
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1063
    functionDepth: 13
    functionLinenumber: 1063
    functionLinenumberEnd: 1115
    functionName: new_importerror
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyObject_IsSubclass
    - Py_DECREF
    - PyObject_VectorcallDict
    - PyDict_SetItemString
    - PyDict_New
    - _PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_importerror(\n    PyThreadState *tstate, PyObject
      *exctype, PyObject *msg,\n    PyObject *name, PyObject *path, PyObject* from_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1122,1
    - Dst: new_importerror
      Src: /src/cpython/Python/errors.c:1123,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1126,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:1126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - exception
    - msg
    - name
    - path
    - from_name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1117
    functionDepth: 14
    functionLinenumber: 1117
    functionLinenumberEnd: 1130
    functionName: _PyErr_SetImportErrorSubclassWithNameFrom
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - new_importerror
    - Py_DECREF
    - _PyErr_SetObject
    - _PyThreadState_GET
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyErr_SetImportErrorSubclassWithNameFrom(\n    PyObject
      *exception, PyObject *msg,\n    PyObject *name, PyObject *path, PyObject* from_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetImportErrorSubclassWithNameFrom
      Src: /src/cpython/Python/errors.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - exception
    - msg
    - name
    - path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1133
    functionDepth: 15
    functionLinenumber: 1133
    functionLinenumberEnd: 1138
    functionName: PyErr_SetImportErrorSubclass
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetImportErrorSubclassWithNameFrom
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyErr_SetImportErrorSubclass(PyObject *exception, PyObject
      *msg,\n    PyObject *name, PyObject *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetImportErrorSubclassWithNameFrom
      Src: /src/cpython/Python/errors.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - msg
    - name
    - path
    - from_name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1140
    functionDepth: 15
    functionLinenumber: 1140
    functionLinenumberEnd: 1144
    functionName: _PyErr_SetImportErrorWithNameFrom
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - _PyErr_SetImportErrorSubclassWithNameFrom
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_SetImportErrorWithNameFrom(PyObject *msg, PyObject *name, PyObject *path,
      PyObject* from_name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetImportErrorSubclass
      Src: /src/cpython/Python/errors.c:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msg
    - name
    - path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1146
    functionDepth: 16
    functionLinenumber: 1146
    functionLinenumberEnd: 1150
    functionName: PyErr_SetImportError
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 6
    functionsReached:
    - PyErr_SetImportErrorSubclass
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1155,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1157,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:1160,1
    - Dst: new_importerror
      Src: /src/cpython/Python/errors.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1166,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1152
    functionDepth: 14
    functionLinenumber: 1152
    functionLinenumberEnd: 1173
    functionName: _PyErr_SetModuleNotFoundError
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - new_importerror
    - Py_DECREF
    - PyUnicode_FromFormat
    - _PyErr_SetObject
    - _PyThreadState_GET
    - _PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyErr_SetModuleNotFoundError(PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1178,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/errors.c:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1182
    functionName: _PyErr_BadInternalCall
    functionSourceFile: /src/cpython/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/cpython/Python/errors.c:1190,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1191,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "bad argument to internal function")
      pos:
        line_end: 1189
        line_start: 1189
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1194
      start: 1187
    functionDepth: 13
    functionLinenumber: 1187
    functionLinenumberEnd: 1194
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 161
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    - assert
    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: 1196
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1196
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 161
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_BadInternalCall()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1206,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/errors.c:1208,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - tstate
    - exception
    - format
    - vargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1198
    functionDepth: 12
    functionLinenumber: 1198
    functionLinenumberEnd: 1214
    functionName: _PyErr_FormatV
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - _PyErr_Clear
    - _PyErr_SetObject
    - Py_DECREF
    - 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/cpython/Python/errors.c:1220,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exception
    - format
    - vargs
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1217
    functionDepth: 13
    functionLinenumber: 1217
    functionLinenumberEnd: 1222
    functionName: PyErr_FormatV
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 4
    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/cpython/Python/errors.c:1230,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:1231,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - exception
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1225
    functionDepth: 13
    functionLinenumber: 1225
    functionLinenumberEnd: 1234
    functionName: _PyErr_Format
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 50
    functionsReached:
    - va_start
    - _PyErr_FormatV
    - va_end
    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/cpython/Python/errors.c:1240,1
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:1242,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:1243,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - exception
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1237
    functionDepth: 13
    functionLinenumber: 1237
    functionLinenumberEnd: 1246
    functionName: PyErr_Format
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 936
    functionsReached:
    - _PyThreadState_GET
    - va_start
    - _PyErr_FormatV
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_Format(PyObject *exception, const char *format, ...)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:1253,1
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:1258,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/errors.c:1259,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1260,1
    - Dst: _PyException_AddNote
      Src: /src/cpython/Python/errors.c:1264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1265,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:1269,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/errors.c:1272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1250
    functionDepth: 9
    functionLinenumber: 1250
    functionLinenumberEnd: 1273
    functionName: _PyErr_FormatNote
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 14
    functionsReached:
    - _PyErr_ChainExceptions1
    - _PyException_AddNote
    - Py_DECREF
    - PyErr_GetRaisedException
    - va_start
    - PyErr_SetRaisedException
    - PyUnicode_FromFormatV
    - va_end
    linkageType: ''
    returnType: void
    signature: void _PyErr_FormatNote(const char *format, ...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1279,1
    - Dst: strrchr
      Src: /src/cpython/Python/errors.c:1285,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1287,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/errors.c:1295,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/errors.c:1300,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1300,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/errors.c:1305,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/errors.c:1309,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1309,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/errors.c:1312,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:1313,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/errors.c:1315,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/errors.c:1320,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1323,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1324,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1325,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - name
    - base
    - dict
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1276
    functionDepth: 13
    functionLinenumber: 1276
    functionLinenumberEnd: 1327
    functionName: PyErr_NewException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 26
    functionsReached:
    - Py_XDECREF
    - PyUnicode_FromStringAndSize
    - PyDict_SetItem
    - PyObject_CallFunction
    - PyTuple_Check
    - _Py_ID
    - PyDict_Contains
    - _PyThreadState_GET
    - Py_NewRef
    - PyDict_New
    - _PyErr_SetString
    - PyTuple_Pack
    - strrchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_NewException(const char *name, PyObject *base, PyObject *dict)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/errors.c:1341,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:1348,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1352,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Python/errors.c:1357,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - name
    - doc
    - base
    - dict
    argTypes:
    - char*
    - char*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1331
    functionDepth: 14
    functionLinenumber: 1331
    functionLinenumberEnd: 1361
    functionName: PyErr_NewExceptionWithDoc
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 5
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyErr_NewException
    - PyDict_SetItemString
    - PyDict_New
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyErr_NewExceptionWithDoc(const char *name, const char
      *doc,\n                          PyObject *base, PyObject *dict)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Python/errors.c:1391,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/errors.c:1394,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/errors.c:1396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1397
    functionName: _PyErr_InitTypes
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStructSequence_InitBuiltin
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyErr_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/errors.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1400
    functionDepth: 3
    functionLinenumber: 1400
    functionLinenumberEnd: 1404
    functionName: _PyErr_FiniTypes
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyStructSequence_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PyErr_FiniTypes(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/errors.c:1412,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1427,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1428,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1429,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1430,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1431,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:1434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1435,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: 1439
      start: 1407
    functionDepth: 2
    functionLinenumber: 1407
    functionLinenumberEnd: 1439
    functionName: make_unraisable_hook_args
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_New
    - ADD_ITEM
    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: 1425
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1425
    functionName: ADD_ITEM
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ITEM(exc_type)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1454,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1455,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/errors.c:1455,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1459,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1462,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1467,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1472,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1473,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1474,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1478,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1483,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1486,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/errors.c:1493,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/errors.c:1495,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/errors.c:1497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1499,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1500,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1507,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1510,1
    - Dst: PyTraceBack_Print
      Src: /src/cpython/Python/errors.c:1513,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1515,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1523,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:1523,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/errors.c:1525,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1525,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/errors.c:1526,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1527,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1528,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1529,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/errors.c:1534,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1534,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/errors.c:1535,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1535,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1540,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1546,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Python/errors.c:1550,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/errors.c:1551,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1552,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1553,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1554,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1563,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1567,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1570,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1571,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1572,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1578,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/errors.c:1583,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 104
    argCount: 7
    argNames:
    - tstate
    - exc_type
    - exc_value
    - exc_tb
    - err_msg
    - obj
    - file
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (file != NULL)
      pos:
        line_end: 1453
        line_start: 1453
        source_file: /src/cpython/Python/errors.c
    - condition: (PyExceptionClass_Check(exc_type))
      pos:
        line_end: 1522
        line_start: 1522
        source_file: /src/cpython/Python/errors.c
    - condition: (!Py_IsNone(file))
      pos:
        line_end: 1454
        line_start: 1454
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1588
      start: 1449
    functionDepth: 14
    functionLinenumber: 1449
    functionLinenumberEnd: 1588
    functionName: write_unraisable_exc_file
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTraceBack_Print
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyFile_WriteString
    - _PyErr_Clear
    - PyObject_Vectorcall
    - _Py_ID
    - PyCallable_Check
    - PyObject_GetAttr
    - Py_IsNone
    - PyFile_WriteObject
    - _PyUnicode_Equal
    - _PyFile_Flush
    - PyUnicode_Check
    - PyExceptionClass_Check
    - PyType_GetQualName
    - assert
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/errors.c:1597,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1597,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1601,1
    - Dst: write_unraisable_exc_file
      Src: /src/cpython/Python/errors.c:1605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    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: 1610
      start: 1591
    functionDepth: 15
    functionLinenumber: 1591
    functionLinenumberEnd: 1610
    functionName: write_unraisable_exc
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    - write_unraisable_exc_file
    - PySys_GetOptionalAttr
    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/cpython/Python/errors.c:1616,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/errors.c:1618,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1619,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1626,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1627,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1628,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1629,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1630,1
    - Dst: write_unraisable_exc
      Src: /src/cpython/Python/errors.c:1632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1613
    functionDepth: 16
    functionLinenumber: 1613
    functionLinenumberEnd: 1636
    functionName: _PyErr_WriteUnraisableDefaultHook
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_IS_TYPE
    - write_unraisable_exc
    - _PyErr_SetString
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_WriteUnraisableDefaultHook(PyObject *args)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1655,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/errors.c:1656,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:1660,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1662,1
    - Dst: PyThreadState_GetFrame
      Src: /src/cpython/Python/errors.c:1670,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/cpython/Python/errors.c:1672,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1676,1
    - Dst: _PyErr_NormalizeException
      Src: /src/cpython/Python/errors.c:1680,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/errors.c:1682,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/errors.c:1683,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1684,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/errors.c:1689,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:1691,1
    - Dst: make_unraisable_hook_args
      Src: /src/cpython/Python/errors.c:1695,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/errors.c:1704,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1705,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1711,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/errors.c:1715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1725,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/errors.c:1729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1733,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/errors.c:1743,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:1743,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1745,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1746,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1747,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:1748,1
    - Dst: write_unraisable_exc
      Src: /src/cpython/Python/errors.c:1752,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1756,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1757,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1758,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1759,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1760,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 3
    argNames:
    - format
    - va
    - obj
    argTypes:
    - char*
    - va_list
    - PyObject*
    assertStmts:
    - condition: (exc_type != NULL)
      pos:
        line_end: 1661
        line_start: 1661
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1761
      start: 1651
    functionDepth: 16
    functionLinenumber: 1651
    functionLinenumberEnd: 1761
    functionName: format_unraisable_v
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_Clear
    - _PyThreadState_GET
    - PyObject_CallOneArg
    - _PySys_Audit
    - PyUnicode_FromFormatV
    - write_unraisable_exc
    - make_unraisable_hook_args
    - PySys_GetOptionalAttr
    - PyErr_Clear
    - assert
    - Py_DECREF
    - PyThreadState_GetFrame
    - _Py_ID
    - _PyTraceBack_FromFrame
    - PyTraceBack_Check
    - _Py_EnsureTstateNotNULL
    - _PyErr_NormalizeException
    - _PyErr_Fetch
    - Py_XSETREF
    - PyUnicode_FromString
    - PyException_SetTraceback
    linkageType: ''
    returnType: void
    signature: void format_unraisable_v(const char *format, va_list va, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:1768,1
    - Dst: format_unraisable_v
      Src: /src/cpython/Python/errors.c:1769,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1763
    functionDepth: 17
    functionLinenumber: 1763
    functionLinenumberEnd: 1771
    functionName: PyErr_FormatUnraisable
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 87
    functionsReached:
    - format_unraisable_v
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void PyErr_FormatUnraisable(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:1778,1
    - Dst: format_unraisable_v
      Src: /src/cpython/Python/errors.c:1779,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1773
    functionDepth: 17
    functionLinenumber: 1773
    functionLinenumberEnd: 1781
    functionName: format_unraisable
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - format_unraisable_v
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void format_unraisable(PyObject *obj, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_unraisable
      Src: /src/cpython/Python/errors.c:1786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1783
    functionDepth: 18
    functionLinenumber: 1783
    functionLinenumberEnd: 1787
    functionName: PyErr_WriteUnraisable
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - format_unraisable
    linkageType: ''
    returnType: void
    signature: void PyErr_WriteUnraisable(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SyntaxLocationEx
      Src: /src/cpython/Python/errors.c:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1790
    functionDepth: 1
    functionLinenumber: 1790
    functionLinenumberEnd: 1794
    functionName: PyErr_SyntaxLocation
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyErr_SyntaxLocationEx
    linkageType: ''
    returnType: void
    signature: void PyErr_SyntaxLocation(const char *filename, int lineno)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1805,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:1808,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1811,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1813,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1816,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1816,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1819,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1823,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1825,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1828,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1828,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1829,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1831,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1835,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1837,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1840,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1840,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1841,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1843,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1847,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1849,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1852,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1852,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1853,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1855,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1859,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1859,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1860,1
    - Dst: PyErr_ProgramTextObject
      Src: /src/cpython/Python/errors.c:1863,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1865,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1865,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1868,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1871,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:1874,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/errors.c:1875,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1875,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1877,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/errors.c:1880,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1882,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1882,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1885,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1888,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/errors.c:1892,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1892,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1894,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1897,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1897,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1898,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:1902,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 5
    argNames:
    - filename
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1801
    functionDepth: 8
    functionLinenumber: 1801
    functionLinenumberEnd: 1903
    functionName: PyErr_SyntaxLocationObjectEx
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Str
    - Py_DECREF
    - PyObject_HasAttrWithError
    - _PyErr_SetRaisedException
    - _PyErr_Clear
    - _Py_ID
    - _PyThreadState_GET
    - PyObject_SetAttr
    - PyErr_ProgramTextObject
    - PyLong_FromLong
    - Py_TYPE
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: "void PyErr_SyntaxLocationObjectEx(PyObject *filename, int lineno,
      int col_offset,\n                             int end_lineno, int end_col_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SyntaxLocationObjectEx
      Src: /src/cpython/Python/errors.c:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - lineno
    - col_offset
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1905
    functionDepth: 9
    functionLinenumber: 1905
    functionLinenumberEnd: 1908
    functionName: PyErr_SyntaxLocationObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyErr_SyntaxLocationObjectEx
    linkageType: ''
    returnType: void
    signature: void PyErr_SyntaxLocationObject(PyObject *filename, int lineno, int
      col_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SyntaxLocationObjectEx
      Src: /src/cpython/Python/errors.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - filename
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1910
    functionDepth: 9
    functionLinenumber: 1910
    functionLinenumberEnd: 1914
    functionName: PyErr_RangedSyntaxLocationObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - PyErr_SyntaxLocationObjectEx
    linkageType: ''
    returnType: void
    signature: "void PyErr_RangedSyntaxLocationObject(PyObject *filename, int lineno,
      int col_offset,\n                                 int end_lineno, int end_col_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1919,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:1922,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1924,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/cpython/Python/errors.c:1930,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - filename
    - lineno
    - col_offset
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1916
    functionDepth: 10
    functionLinenumber: 1916
    functionLinenumberEnd: 1932
    functionName: PyErr_SyntaxLocationEx
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    - _PyErr_Clear
    - _PyThreadState_GET
    - PyErr_SyntaxLocationObject
    linkageType: ''
    returnType: void
    signature: void PyErr_SyntaxLocationEx(const char *filename, int lineno, int col_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ProgramTextObject
      Src: /src/cpython/Python/errors.c:1941,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:1943,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:1945,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1953,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - msg
    - filename
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1937
    functionDepth: 13
    functionLinenumber: 1937
    functionLinenumberEnd: 1955
    functionName: _PyErr_RaiseSyntaxError
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - Py_DECREF
    - PyErr_SetObject
    - Py_NewRef
    - PyErr_ProgramTextObject
    linkageType: ''
    returnType: void
    signature: "void _PyErr_RaiseSyntaxError(PyObject *msg, PyObject *filename, int
      lineno, int col_offset,\n                        int end_lineno, int end_col_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_WarnExplicitObjectWithContext
      Src: /src/cpython/Python/errors.c:1965,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/errors.c:1968,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:1971,1
    - Dst: _PyErr_RaiseSyntaxError
      Src: /src/cpython/Python/errors.c:1972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - msg
    - filename
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1961
    functionDepth: 16
    functionLinenumber: 1961
    functionLinenumberEnd: 1978
    functionName: _PyErr_EmitSyntaxWarning
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - _PyErr_RaiseSyntaxError
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - _PyErr_WarnExplicitObjectWithContext
    linkageType: ''
    returnType: int
    signature: "int _PyErr_EmitSyntaxWarning(PyObject *msg, PyObject *filename, int
      lineno, int col_offset,\n                         int end_lineno, int end_col_offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_UniversalNewlineFgetsWithSize
      Src: /src/cpython/Python/errors.c:1994,1
    - Dst: memcmp
      Src: /src/cpython/Python/errors.c:2016,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Python/errors.c:2020,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2022,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - fp
    - lineno
    - encoding
    argTypes:
    - FILE*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 1986
    functionDepth: 9
    functionLinenumber: 1986
    functionLinenumberEnd: 2025
    functionName: err_programtext
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyUnicode_Decode
    - _Py_UniversalNewlineFgetsWithSize
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_programtext(FILE *fp, int lineno, const char* encoding)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:2034,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2036,1
    - Dst: PyErr_ProgramTextObject
      Src: /src/cpython/Python/errors.c:2039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:2040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2027
    functionDepth: 9
    functionLinenumber: 2027
    functionLinenumberEnd: 2042
    functionName: PyErr_ProgramText
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyErr_ProgramTextObject
    - PyUnicode_DecodeFSDefault
    - PyErr_Clear
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_ProgramText(const char *filename, int lineno)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_fopen
      Src: /src/cpython/Python/errors.c:2055,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2057,1
    - Dst: fileno
      Src: /src/cpython/Python/errors.c:2061,1
    - Dst: _PyTokenizer_FindEncodingFilename
      Src: /src/cpython/Python/errors.c:2062,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2065,1
    - Dst: lseek
      Src: /src/cpython/Python/errors.c:2069,1
    - Dst: fclose
      Src: /src/cpython/Python/errors.c:2070,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/errors.c:2071,1
    - Dst: err_programtext
      Src: /src/cpython/Python/errors.c:2075,1
    - Dst: fclose
      Src: /src/cpython/Python/errors.c:2076,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/errors.c:2077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - filename
    - lineno
    - encoding
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2047
    functionDepth: 10
    functionLinenumber: 2047
    functionLinenumberEnd: 2079
    functionName: _PyErr_ProgramDecodedTextObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - lseek
    - _PyTokenizer_FindEncodingFilename
    - err_programtext
    - Py_fopen
    - PyMem_Free
    - PyErr_Clear
    - fileno
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_ProgramDecodedTextObject(PyObject *filename, int lineno, const char*
      encoding)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_ProgramDecodedTextObject
      Src: /src/cpython/Python/errors.c:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2081
    functionDepth: 11
    functionLinenumber: 2081
    functionLinenumberEnd: 2085
    functionName: PyErr_ProgramTextObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 3
    functionsReached:
    - _PyErr_ProgramDecodedTextObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_ProgramTextObject(PyObject *filename, int lineno)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:25,1
    - Dst: _Py_GetMainModule
      Src: /src/cpython/Python/crossinterp.c:26,1
    - Dst: _Py_CheckMainModule
      Src: /src/cpython/Python/crossinterp.c:27,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:28,1
    - Dst: _PyModule_GetFilenameUTF8
      Src: /src/cpython/Python/crossinterp.c:31,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 10
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: _Py_GetMainfile
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _Py_CheckMainModule
    - _PyModule_GetFilenameUTF8
    - _PyThreadState_GET
    - _Py_GetMainModule
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetMainfile(char *buffer, size_t maxlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/crossinterp.c:40,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/crossinterp.c:44,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:46,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/crossinterp.c:49,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:50,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - filename
    - modname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 14
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: runpy_run_path
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      runpy_run_path(const char *filename, const char *modname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:59,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:60,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:61,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/crossinterp.c:62,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - exctype
    - msg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 14
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: set_exc_with_cause
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyErr_SetRaisedException
    - PyErr_SetString
    - PyErr_GetRaisedException
    - PyException_SetCause
    linkageType: ''
    returnType: void
    signature: void set_exc_with_cause(PyObject *exctype, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:87,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:88,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct sync_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: sync_module_clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void sync_module_clear(struct sync_module *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:95,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:95,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:97,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:98,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:98,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/crossinterp.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tstate
    - data
    argTypes:
    - PyThreadState*
    - struct sync_module*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: sync_module_capture_exc
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyErr_SetRaisedException
    - Py_NewRef
    - PyException_SetContext
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void sync_module_capture_exc(PyThreadState *tstate, struct sync_module
      *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:114,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:115,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:119,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:122,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:125,1
    - Dst: _Py_GetMainModule
      Src: /src/cpython/Python/crossinterp.c:130,1
    - Dst: _Py_CheckMainModule
      Src: /src/cpython/Python/crossinterp.c:131,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:133,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:133,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:134,1
    - Dst: PyInterpreterState_GetDict
      Src: /src/cpython/Python/crossinterp.c:141,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:142,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:146,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/crossinterp.c:149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:152,1
    - Dst: PyModule_NewObject
      Src: /src/cpython/Python/crossinterp.c:157,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/crossinterp.c:157,1
    - Dst: _PyModule_GetDict
      Src: /src/cpython/Python/crossinterp.c:161,1
    - Dst: runpy_run_path
      Src: /src/cpython/Python/crossinterp.c:166,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/crossinterp.c:170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:171,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/crossinterp.c:177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:182,1
    - Dst: sync_module_capture_exc
      Src: /src/cpython/Python/crossinterp.c:190,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:192,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - tstate
    - main
    argTypes:
    - PyThreadState*
    - struct sync_module*
    assertStmts:
    - condition: (main->cached.module != NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main->cached.module == NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interpns != NULL)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main->cached.loaded == NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main->cached.module == NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 195
      start: 106
    functionDepth: 15
    functionLinenumber: 106
    functionLinenumberEnd: 195
    functionName: ensure_isolated_main
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyDict_SetItem
    - _Py_CheckMainModule
    - sync_module_capture_exc
    - _Py_ID
    - PyUnicode_FromString
    - runpy_run_path
    - PyModule_NewObject
    - _Py_GetMainModule
    - PyDict_Update
    - PyDict_GetItemRef
    - _PyErr_SetString
    - _PyModule_GetDict
    - _PyErr_Occurred
    - assert
    - PyInterpreterState_GetDict
    linkageType: ''
    returnType: int
    signature: int ensure_isolated_main(PyThreadState *tstate, struct sync_module
      *main)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/crossinterp.c:201,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/crossinterp.c:201,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - expected
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 11
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: main_mod_matches
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyImport_GetModule
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int main_mod_matches(PyObject *expected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:210,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:213,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:214,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:217,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:219,1
    - Dst: main_mod_matches
      Src: /src/cpython/Python/crossinterp.c:219,1
    - Dst: _PyImport_SetModule
      Src: /src/cpython/Python/crossinterp.c:220,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/crossinterp.c:220,1
    - Dst: sync_module_capture_exc
      Src: /src/cpython/Python/crossinterp.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - tstate
    - main
    argTypes:
    - PyThreadState*
    - struct sync_module*
    assertStmts:
    - condition: ((main->cached.loaded == NULL) == (main->cached.loaded == NULL))
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main->cached.loaded != NULL)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main_mod_matches(main->cached.module))
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main->cached.loaded == NULL)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 12
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: apply_isolated_main
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - main_mod_matches
    - sync_module_capture_exc
    - _PyErr_SetRaisedException
    - _Py_ID
    - _PyImport_SetModule
    - assert
    linkageType: ''
    returnType: int
    signature: int apply_isolated_main(PyThreadState *tstate, struct sync_module *main)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:230,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:231,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:232,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:233,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:234,1
    - Dst: main_mod_matches
      Src: /src/cpython/Python/crossinterp.c:234,1
    - Dst: _PyImport_SetModule
      Src: /src/cpython/Python/crossinterp.c:235,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/crossinterp.c:235,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:236,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:238,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - main
    argTypes:
    - PyThreadState*
    - struct sync_module*
    assertStmts:
    - condition: (main->cached.failed == NULL)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main->cached.loaded != NULL)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main_mod_matches(main->cached.loaded))
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (main->cached.module != NULL)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (res == 0)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 18
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: restore_main
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - assert
    - main_mod_matches
    - _PyErr_SetRaisedException
    - _Py_ID
    - PyErr_FormatUnraisable
    - _PyImport_SetModule
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void restore_main(PyThreadState *tstate, struct sync_module *main)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/crossinterp.c:264,1
    - Dst: func
      Src: /src/cpython/Python/crossinterp.c:265,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Python/crossinterp.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - interp
    - func
    - arg
    argTypes:
    - PyInterpreterState*
    - _Py_simple_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: _Py_CallInInterpreter
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyInterpreterState_Get
    - _PyEval_AddPendingCall
    - func
    linkageType: ''
    returnType: int
    signature: "int _Py_CallInInterpreter(PyInterpreterState *interp,\n                      _Py_simple_func
      func, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/crossinterp.c:276,1
    - Dst: func
      Src: /src/cpython/Python/crossinterp.c:277,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:278,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Python/crossinterp.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - interp
    - func
    - arg
    argTypes:
    - PyInterpreterState*
    - _Py_simple_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 284
    functionName: _Py_CallInInterpreterAndRawFree
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyInterpreterState_Get
    - _PyEval_AddPendingCall
    - PyMem_RawFree
    - func
    linkageType: ''
    returnType: int
    signature: "int _Py_CallInInterpreterAndRawFree(PyInterpreterState *interp,\n
      \                               _Py_simple_func func, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/crossinterp.c:309,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 8
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: _PyXIData_New
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 4
    functionsReached:
    - PyMem_RawCalloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: _PyXIData_t
    signature: '_PyXIData_t *

      _PyXIData_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/crossinterp.c:319,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Python/crossinterp.c:320,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xid
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: _PyXIData_Free
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - PyInterpreterState_Get
    - _PyXIData_Clear
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyXIData_Free(_PyXIData_t *xid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:332,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:333,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (xidata->data == NULL)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (xidata->obj == NULL)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 336
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 336
    functionName: _xidata_init
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: void
    signature: void _xidata_init(_PyXIData_t *xidata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_t*::free
      Src: /src/cpython/Python/crossinterp.c:347,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: _xidata_clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyXIData_t*::free
    linkageType: ''
    returnType: void
    signature: void _xidata_clear(_PyXIData_t *xidata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:360,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:361,1
    - Dst: _xidata_init
      Src: /src/cpython/Python/crossinterp.c:362,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:365,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:367,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:372,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/crossinterp.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - xidata
    - interp
    - shared
    - obj
    - new_object
    argTypes:
    - _PyXIData_t*
    - PyInterpreterState*
    - void*
    - PyObject*
    - xid_newobjfunc
    assertStmts:
    - condition: (xidata != NULL)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interp != NULL)
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (new_object != NULL)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 376
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 376
    functionName: _PyXIData_Init
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 6
    functionsReached:
    - PyInterpreterState_GetID
    - Py_NewRef
    - _xidata_init
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: void
    signature: "void _PyXIData_Init(_PyXIData_t *xidata,\n               PyInterpreterState
      *interp,\n               void *shared, PyObject *obj,\n               xid_newobjfunc
      new_object)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:384,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:387,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Python/crossinterp.c:388,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/crossinterp.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - xidata
    - interp
    - size
    - obj
    - new_object
    argTypes:
    - _PyXIData_t*
    - PyInterpreterState*
    - size_t
    - PyObject*
    - xid_newobjfunc
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interp != NULL)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: _PyXIData_InitWithSize
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 4
    functionsReached:
    - PyMem_RawCalloc
    - _PyXIData_Init
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyXIData_InitWithSize(_PyXIData_t *xidata,\n                       PyInterpreterState
      *interp,\n                       const size_t size, PyObject *obj,\n                       xid_newobjfunc
      new_object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:400,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:402,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:403,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:404,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/crossinterp.c:404,1
    - Dst: _xidata_clear
      Src: /src/cpython/Python/crossinterp.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - xidata
    argTypes:
    - PyInterpreterState*
    - _PyXIData_t*
    assertStmts:
    - condition: (xidata != NULL)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/cpython/Python/crossinterp.c
    - condition: "(interp == NULL\n           || _PyXIData_INTERPID(xidata) == -1\n
        \          || _PyXIData_INTERPID(xidata) == PyInterpreterState_GetID(interp))"
      pos:
        line_end: 403
        line_start: 401
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: _PyXIData_Clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - PyInterpreterState_GetID
    - _xidata_clear
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyXIData_Clear(PyInterpreterState *interp, _PyXIData_t *xidata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:416,1
    - Dst: set_notshareableerror
      Src: /src/cpython/Python/crossinterp.c:417,1
    - Dst: set_notshareableerror
      Src: /src/cpython/Python/crossinterp.c:421,1
    - Dst: format_notshareableerror
      Src: /src/cpython/Python/crossinterp.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - tstate
    - obj
    - msg
    - cause
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (obj == NULL)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 427
      start: 411
    functionDepth: 11
    functionLinenumber: 411
    functionLinenumberEnd: 427
    functionName: _set_xid_lookup_failure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - set_notshareableerror
    - format_notshareableerror
    - assert
    linkageType: ''
    returnType: void
    signature: "void _set_xid_lookup_failure(PyThreadState *tstate, PyObject *obj,
      const char *msg,\n                        PyObject *cause)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_lookup_context
      Src: /src/cpython/Python/crossinterp.c:434,1
    - Dst: lookup_getdata
      Src: /src/cpython/Python/crossinterp.c:437,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:439,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - tstate
    - obj
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 430
    functionDepth: 12
    functionLinenumber: 430
    functionLinenumberEnd: 445
    functionName: _PyObject_CheckXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - lookup_getdata
    - _set_xid_lookup_failure
    - get_lookup_context
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _PyObject_CheckXIData(PyThreadState *tstate, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:454,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:455,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - xidata
    argTypes:
    - PyThreadState*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 447
    functionDepth: 14
    functionLinenumber: 447
    functionLinenumberEnd: 467
    functionName: _check_xidata
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyXIData_INTERPID
    linkageType: ''
    returnType: int
    signature: int _check_xidata(PyThreadState *tstate, _PyXIData_t *xidata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:475,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:476,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:478,1
    - Dst: get_lookup_context
      Src: /src/cpython/Python/crossinterp.c:484,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/crossinterp.c:487,1
    - Dst: lookup_getdata
      Src: /src/cpython/Python/crossinterp.c:488,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:495,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:496,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:497,1
    - Dst: _PyXIData_getdata_t::basic
      Src: /src/cpython/Python/crossinterp.c:502,1
    - Dst: _PyXIData_getdata_t::fallback
      Src: /src/cpython/Python/crossinterp.c:503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:504,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:506,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:507,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:508,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:509,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:514,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/crossinterp.c:514,1
    - Dst: _check_xidata
      Src: /src/cpython/Python/crossinterp.c:515,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Python/crossinterp.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - tstate
    - obj
    - fallback
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - xidata_fallback_t
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 506
        line_start: 506
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (xidata->data == NULL)
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (xidata->obj == NULL)
      pos:
        line_end: 475
        line_start: 475
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 521
      start: 469
    functionDepth: 15
    functionLinenumber: 469
    functionLinenumberEnd: 521
    functionName: _get_xidata
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _check_xidata
    - Py_INCREF
    - Py_XDECREF
    - PyInterpreterState_GetID
    - get_lookup_context
    - Py_DECREF
    - _PyErr_GetRaisedException
    - PyErr_Occurred
    - _PyXIData_Release
    - _PyXIData_getdata_t::basic
    - _PyXIData_INTERPID
    - _PyXIData_getdata_t::fallback
    - _PyErr_SetString
    - _set_xid_lookup_failure
    - lookup_getdata
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: "int _get_xidata(PyThreadState *tstate,\n            PyObject *obj,
      xidata_fallback_t fallback, _PyXIData_t *xidata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_xidata
      Src: /src/cpython/Python/crossinterp.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 16
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: _PyObject_GetXIDataNoFallback
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - _get_xidata
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GetXIDataNoFallback(PyThreadState *tstate,\n                              PyObject
      *obj, _PyXIData_t *xidata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _get_xidata
      Src: /src/cpython/Python/crossinterp.c:537,1
    - Dst: _get_xidata
      Src: /src/cpython/Python/crossinterp.c:539,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:542,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/crossinterp.c:543,1
    - Dst: _PyFunction_GetXIData
      Src: /src/cpython/Python/crossinterp.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:545,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:548,1
    - Dst: _PyPickle_GetXIData
      Src: /src/cpython/Python/crossinterp.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:552,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:556,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp.c:560,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - tstate
    - obj
    - fallback
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - xidata_fallback_t
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 530
    functionDepth: 16
    functionLinenumber: 530
    functionLinenumberEnd: 566
    functionName: _PyObject_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 5
    functionsReached:
    - PyFunction_Check
    - _PyFunction_GetXIData
    - Py_DECREF
    - _PyErr_SetRaisedException
    - Py_FatalError
    - _PyErr_Clear
    - _get_xidata
    - _PyPickle_GetXIData
    - _PyErr_SetString
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GetXIData(PyThreadState *tstate,\n                    PyObject
      *obj, xidata_fallback_t fallback,\n                    _PyXIData_t *xidata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/crossinterp.c:578,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/crossinterp.c:582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - obj
    argTypes:
    - struct _pickle_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 575
    functionDepth: 14
    functionLinenumber: 575
    functionLinenumberEnd: 585
    functionName: _PyPickle_Dumps
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleAttrString
    - PyObject_CallOneArg
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPickle_Dumps(struct _pickle_context *ctx, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sync_module_clear
      Src: /src/cpython/Python/crossinterp.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct _unpickle_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 599
    functionName: _unpickle_context_clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - sync_module_clear
    linkageType: ''
    returnType: void
    signature: void _unpickle_context_clear(struct _unpickle_context *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:604,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/crossinterp.c:605,1
    - Dst: PyException_GetArgs
      Src: /src/cpython/Python/crossinterp.c:610,1
    - Dst: PyObject_Size
      Src: /src/cpython/Python/crossinterp.c:611,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:612,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:612,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/crossinterp.c:616,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/crossinterp.c:617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:618,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:620,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/crossinterp.c:624,1
    - Dst: strncmp
      Src: /src/cpython/Python/crossinterp.c:627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 9
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: check_missing___main___attr
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_DECREF
    - strncmp
    - PyErr_Occurred
    - PyErr_GivenExceptionMatches
    - PyUnicode_AsUTF8
    - PyObject_Size
    - PyException_GetArgs
    - PyUnicode_Check
    - PyErr_Clear
    - assert
    linkageType: ''
    returnType: int
    signature: int check_missing___main___attr(PyObject *exc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/crossinterp.c:638,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/crossinterp.c:644,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:648,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:648,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:652,1
    - Dst: check_missing___main___attr
      Src: /src/cpython/Python/crossinterp.c:653,1
    - Dst: ensure_isolated_main
      Src: /src/cpython/Python/crossinterp.c:660,1
    - Dst: apply_isolated_main
      Src: /src/cpython/Python/crossinterp.c:663,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/crossinterp.c:668,1
    - Dst: restore_main
      Src: /src/cpython/Python/crossinterp.c:669,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:673,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:677,1
    - Dst: sync_module_capture_exc
      Src: /src/cpython/Python/crossinterp.c:678,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:684,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - ctx
    - pickled
    argTypes:
    - struct _unpickle_context*
    - PyObject*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 686
      start: 632
    functionDepth: 19
    functionLinenumber: 632
    functionLinenumberEnd: 686
    functionName: _PyPickle_Loads
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - assert
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - sync_module_capture_exc
    - _PyErr_SetRaisedException
    - apply_isolated_main
    - PyObject_CallOneArg
    - check_missing___main___attr
    - ensure_isolated_main
    - restore_main
    - Py_CLEAR
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPickle_Loads(struct _unpickle_context *ctx, PyObject *pickled)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetMainfile
      Src: /src/cpython/Python/crossinterp.c:704,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - ctx
    argTypes:
    - PyThreadState*
    - struct _pickle_xid_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 700
    functionDepth: 11
    functionLinenumber: 700
    functionLinenumberEnd: 715
    functionName: _set_pickle_xid_context
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - _Py_GetMainfile
    linkageType: ''
    returnType: int
    signature: int _set_pickle_xid_context(PyThreadState *tstate, struct _pickle_xid_context
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:726,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Python/crossinterp.c:731,1
    - Dst: _PyPickle_Loads
      Src: /src/cpython/Python/crossinterp.c:744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:745,1
    - Dst: _unpickle_context_clear
      Src: /src/cpython/Python/crossinterp.c:746,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:748,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:749,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 755
      start: 723
    functionDepth: 20
    functionLinenumber: 723
    functionLinenumberEnd: 755
    functionName: _PyPickle_LoadFromXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - _PyThreadState_GET
    - _PyPickle_Loads
    - PyMemoryView_FromMemory
    - _set_xid_lookup_failure
    - _unpickle_context_clear
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPickle_LoadFromXIData(_PyXIData_t *xidata)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPickle_Dumps
      Src: /src/cpython/Python/crossinterp.c:765,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:767,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:768,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:771,1
    - Dst: _PyBytes_GetXIDataWrapped
      Src: /src/cpython/Python/crossinterp.c:780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:782,1
    - Dst: _set_pickle_xid_context
      Src: /src/cpython/Python/crossinterp.c:789,1
    - Dst: _xidata_clear
      Src: /src/cpython/Python/crossinterp.c:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 767
        line_start: 767
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 795
      start: 758
    functionDepth: 15
    functionLinenumber: 758
    functionLinenumberEnd: 795
    functionName: _PyPickle_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - _set_pickle_xid_context
    - Py_DECREF
    - _PyErr_GetRaisedException
    - _xidata_clear
    - _PyPickle_Dumps
    - _PyBytes_GetXIDataWrapped
    - _set_xid_lookup_failure
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyPickle_GetXIData(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:803,1
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/cpython/Python/crossinterp.c:805,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:807,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:808,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 807
        line_start: 807
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 815
      start: 800
    functionDepth: 17
    functionLinenumber: 800
    functionLinenumberEnd: 815
    functionName: _PyMarshal_ReadObjectFromXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyErr_GetRaisedException
    - PyMarshal_ReadObjectFromString
    - _PyThreadState_GET
    - _set_xid_lookup_failure
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMarshal_ReadObjectFromXIData(_PyXIData_t *xidata)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMarshal_WriteObjectToString
      Src: /src/cpython/Python/crossinterp.c:820,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:822,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:823,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:826,1
    - Dst: _PyBytes_GetXIDataWrapped
      Src: /src/cpython/Python/crossinterp.c:830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 837
      start: 817
    functionDepth: 12
    functionLinenumber: 817
    functionLinenumberEnd: 837
    functionName: _PyMarshal_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - _PyErr_GetRaisedException
    - PyMarshal_WriteObjectToString
    - _PyBytes_GetXIDataWrapped
    - _set_xid_lookup_failure
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyMarshal_GetXIData(PyThreadState *tstate, PyObject *obj, _PyXIData_t
      *xidata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltins
      Src: /src/cpython/Python/crossinterp.c:848,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:849,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:852,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Python/crossinterp.c:852,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Python/crossinterp.c:854,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:863,1
    - Dst: _PyCode_ReturnsOnlyNone
      Src: /src/cpython/Python/crossinterp.c:868,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:869,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - tstate
    - co
    - checked
    - pure
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - int
    - int
    assertStmts:
    - condition: (_PyCode_VerifyStateless(tstate, co, NULL, NULL, builtins) == 0)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (builtins != NULL)
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 874
      start: 842
    functionDepth: 13
    functionLinenumber: 842
    functionLinenumberEnd: 874
    functionName: verify_script
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltins
    - _PyCode_VerifyStateless
    - _PyCode_ReturnsOnlyNone
    - _PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int verify_script(PyThreadState *tstate, PyCodeObject *co, int checked,
      int pure)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Python/crossinterp.c:883,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/crossinterp.c:885,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/crossinterp.c:887,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/crossinterp.c:888,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:889,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/crossinterp.c:890,1
    - Dst: _PyFunction_VerifyStateless
      Src: /src/cpython/Python/crossinterp.c:892,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/crossinterp.c:904,1
    - Dst: _PyObject_SupportedAsScript
      Src: /src/cpython/Python/crossinterp.c:906,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/crossinterp.c:908,1
    - Dst: Py_CompileStringExFlags
      Src: /src/cpython/Python/crossinterp.c:917,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:922,1
    - Dst: verify_script
      Src: /src/cpython/Python/crossinterp.c:935,1
    - Dst: _PyCode_GetXIData
      Src: /src/cpython/Python/crossinterp.c:940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:941,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:948,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:949,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:950,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:953,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 4
    argNames:
    - tstate
    - obj
    - pure
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (code != NULL)
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 955
      start: 876
    functionDepth: 18
    functionLinenumber: 876
    functionLinenumberEnd: 955
    functionName: get_script_xidata
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyCode_Check
    - PyFunction_Check
    - _PyObject_SupportedAsScript
    - Py_XDECREF
    - Py_DECREF
    - Py_CompileStringExFlags
    - _PyErr_Format
    - _PyErr_GetRaisedException
    - PyFunction_GET_CODE
    - _PyFunction_VerifyStateless
    - _PyCode_GetXIData
    - verify_script
    - _Py_SourceAsString
    - _set_xid_lookup_failure
    - assert
    linkageType: ''
    returnType: int
    signature: "int get_script_xidata(PyThreadState *tstate, PyObject *obj, int pure,\n
      \                 _PyXIData_t *xidata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_script_xidata
      Src: /src/cpython/Python/crossinterp.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 957
    functionDepth: 19
    functionLinenumber: 957
    functionLinenumberEnd: 962
    functionName: _PyCode_GetScriptXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 4
    functionsReached:
    - get_script_xidata
    linkageType: ''
    returnType: int
    signature: "int _PyCode_GetScriptXIData(PyThreadState *tstate,\n                        PyObject
      *obj, _PyXIData_t *xidata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_script_xidata
      Src: /src/cpython/Python/crossinterp.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 964
    functionDepth: 19
    functionLinenumber: 964
    functionLinenumberEnd: 969
    functionName: _PyCode_GetPureScriptXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - get_script_xidata
    linkageType: ''
    returnType: int
    signature: "int _PyCode_GetPureScriptXIData(PyThreadState *tstate,\n                            PyObject
      *obj, _PyXIData_t *xidata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_t*::new_object
      Src: /src/cpython/Python/crossinterp.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 978
    functionName: _PyXIData_NewObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 6
    functionsReached:
    - _PyXIData_t*::new_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXIData_NewObject(_PyXIData_t *xidata)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xidata_clear
      Src: /src/cpython/Python/crossinterp.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 985
    functionName: _call_clear_xidata
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _xidata_clear
    linkageType: ''
    returnType: int
    signature: int _call_clear_xidata(void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:993,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Python/crossinterp.c:1002,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:1003,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1008,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1008,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1010,1
    - Dst: _Py_CallInInterpreterAndRawFree
      Src: /src/cpython/Python/crossinterp.c:1017,1
    - Dst: _Py_CallInInterpreter
      Src: /src/cpython/Python/crossinterp.c:1020,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - xidata
    - rawfree
    argTypes:
    - _PyXIData_t*
    - int
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1007
        line_start: 1007
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1022
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1022
    functionName: _xidata_release
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpID
    - PyMem_RawFree
    - PyErr_Occurred
    - _Py_CallInInterpreterAndRawFree
    - _Py_CallInInterpreter
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: int
    signature: int _xidata_release(_PyXIData_t *xidata, int rawfree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xidata_release
      Src: /src/cpython/Python/crossinterp.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1024
    functionDepth: 5
    functionLinenumber: 1024
    functionLinenumberEnd: 1028
    functionName: _PyXIData_Release
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 9
    functionsReached:
    - _xidata_release
    linkageType: ''
    returnType: int
    signature: int _PyXIData_Release(_PyXIData_t *xidata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xidata_release
      Src: /src/cpython/Python/crossinterp.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1030
    functionDepth: 5
    functionLinenumber: 1030
    functionLinenumberEnd: 1034
    functionName: _PyXIData_ReleaseAndRawFree
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - _xidata_release
    linkageType: ''
    returnType: int
    signature: int _PyXIData_ReleaseAndRawFree(_PyXIData_t *xidata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/crossinterp.c:1045,1
    - Dst: strlen
      Src: /src/cpython/Python/crossinterp.c:1050,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1051,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/crossinterp.c:1055,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:1057,1
    - Dst: strcpy
      Src: /src/cpython/Python/crossinterp.c:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - strobj
    - p_size
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1041
    functionDepth: 14
    functionLinenumber: 1041
    functionLinenumberEnd: 1065
    functionName: _copy_string_obj_raw
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyMem_RawMalloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: char
    signature: 'char *

      _copy_string_obj_raw(PyObject *strobj, Py_ssize_t *p_size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/crossinterp.c:1076,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1083,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/crossinterp.c:1088,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/crossinterp.c:1093,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/crossinterp.c:1097,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/crossinterp.c:1100,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/crossinterp.c:1104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1107,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1116,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1117,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1118,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - exc
    - p_tbexc
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1068
    functionDepth: 14
    functionLinenumber: 1068
    functionLinenumberEnd: 1120
    functionName: _convert_exc_to_TracebackException
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyImport_ImportModuleAttrString
    - Py_DECREF
    - PyObject_GetAttrString
    - PyObject_Call
    - PyDict_SetItemString
    - PyDict_New
    - PyTuple_Pack
    linkageType: ''
    returnType: int
    signature: int _convert_exc_to_TracebackException(PyObject *exc, PyObject **p_tbexc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/crossinterp.c:1130,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1134,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Python/crossinterp.c:1135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1136,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1143,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - tbexc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_EMPTY_STR != NULL)
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (formatted[size-1] == '\n')
      pos:
        line_end: 1144
        line_start: 1144
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1148
      start: 1127
    functionDepth: 15
    functionLinenumber: 1127
    functionLinenumberEnd: 1148
    functionName: _format_TracebackException
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_Join
    - PyObject_CallMethod
    - _copy_string_obj_raw
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      _format_TracebackException(PyObject *tbexc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1154,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Python/crossinterp.c:1156,1
    - Dst: _PyXIData_ReleaseAndRawFree
      Src: /src/cpython/Python/crossinterp.c:1157,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Python/crossinterp.c:1160,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1162,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xidata
    - rawfree
    argTypes:
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1151
    functionDepth: 9
    functionLinenumber: 1151
    functionLinenumberEnd: 1166
    functionName: _release_xid_data
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 7
    functionsReached:
    - _PyXIData_ReleaseAndRawFree
    - PyErr_GetRaisedException
    - _PyXIData_Release
    - _PyXIData_Clear
    - PyErr_Clear
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: int
    signature: int _release_xid_data(_PyXIData_t *xidata, int rawfree)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/crossinterp.c:1182,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1184,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/crossinterp.c:1184,1
    - Dst: PyType_GetName
      Src: /src/cpython/Python/crossinterp.c:1193,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1198,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Python/crossinterp.c:1204,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1209,1
    - Dst: PyType_GetModuleName
      Src: /src/cpython/Python/crossinterp.c:1215,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - info
    - exc
    argTypes:
    - struct _excinfo_type*
    - PyObject*
    assertStmts:
    - condition: (_Py_IsImmortal((PyObject *)type))
      pos:
        line_end: 1183
        line_start: 1183
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1226
      start: 1173
    functionDepth: 15
    functionLinenumber: 1173
    functionLinenumberEnd: 1226
    functionName: _excinfo_init_type_from_exception
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyType_GetName
    - PyType_GetModuleName
    - _copy_string_obj_raw
    - Py_TYPE
    - PyType_GetQualName
    - _Py_IsImmortal
    linkageType: ''
    returnType: int
    signature: int _excinfo_init_type_from_exception(struct _excinfo_type *info, PyObject
      *exc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1234,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1239,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1245,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1250,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1256,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - info
    - exctype
    argTypes:
    - struct _excinfo_type*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1228
    functionDepth: 15
    functionLinenumber: 1228
    functionLinenumberEnd: 1267
    functionName: _excinfo_init_type_from_object
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - _copy_string_obj_raw
    linkageType: ''
    returnType: int
    signature: int _excinfo_init_type_from_object(struct _excinfo_type *info, PyObject
      *exctype)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1273,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1274,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/crossinterp.c:1274,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1277,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1280,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct _excinfo_type*
    assertStmts:
    - condition: (info->builtin->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)
      pos:
        line_end: 1272
        line_start: 1272
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_Py_IsImmortal((PyObject *)info->builtin))
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1286
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1286
    functionName: _excinfo_clear_type
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _Py_IsImmortal
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: void
    signature: void _excinfo_clear_type(struct _excinfo_type *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1293,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1294,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1295,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1307,1
    - Dst: strcmp
      Src: /src/cpython/Python/crossinterp.c:1308,1
    - Dst: strcmp
      Src: /src/cpython/Python/crossinterp.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - info
    - p_module
    - p_qualname
    argTypes:
    - struct _excinfo_type*
    - char**
    - char**
    assertStmts:
    - condition: (info->builtin == NULL)
      pos:
        line_end: 1292
        line_start: 1292
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (info->module == NULL)
      pos:
        line_end: 1294
        line_start: 1294
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (info->qualname == NULL)
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (module != NULL)
      pos:
        line_end: 1306
        line_start: 1306
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1316
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1316
    functionName: _excinfo_normalize_type
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - strcmp
    - assert
    linkageType: ''
    returnType: void
    signature: "void _excinfo_normalize_type(struct _excinfo_type *info,\n                        const
      char **p_module, const char **p_qualname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1322
    functionName: excinfo_is_set
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int excinfo_is_set(_PyXI_excinfo *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _excinfo_clear_type
      Src: /src/cpython/Python/crossinterp.c:1327,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1329,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1335
    functionName: _PyXI_excinfo_clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _excinfo_clear_type
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyXI_excinfo_clear(_PyXI_excinfo *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _excinfo_normalize_type
      Src: /src/cpython/Python/crossinterp.c:1341,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/crossinterp.c:1345,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/crossinterp.c:1349,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/crossinterp.c:1354,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1357,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1337
    functionDepth: 10
    functionLinenumber: 1337
    functionLinenumberEnd: 1367
    functionName: _PyXI_excinfo_format
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _excinfo_normalize_type
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_excinfo_format(_PyXI_excinfo *info)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1372,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/crossinterp.c:1374,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1375,1
    - Dst: _excinfo_init_type_from_exception
      Src: /src/cpython/Python/crossinterp.c:1380,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/crossinterp.c:1386,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1392,1
    - Dst: _convert_exc_to_TracebackException
      Src: /src/cpython/Python/crossinterp.c:1400,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:1402,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1404,1
    - Dst: _format_TracebackException
      Src: /src/cpython/Python/crossinterp.c:1407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1408,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:1411,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1413,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1420,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1421,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - info
    - exc
    argTypes:
    - _PyXI_excinfo*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 1371
        line_start: 1371
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (failure != NULL)
      pos:
        line_end: 1419
        line_start: 1419
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1423
      start: 1369
    functionDepth: 18
    functionLinenumber: 1369
    functionLinenumberEnd: 1423
    functionName: _PyXI_excinfo_InitFromException
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _convert_exc_to_TracebackException
    - PyObject_Str
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - _excinfo_init_type_from_exception
    - _copy_string_obj_raw
    - PyErr_FormatUnraisable
    - _format_TracebackException
    - PyErr_Clear
    - assert
    - _PyXI_excinfo_clear
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyXI_excinfo_InitFromException(_PyXI_excinfo *info, PyObject *exc)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1430,1
    - Dst: _excinfo_init_type_from_object
      Src: /src/cpython/Python/crossinterp.c:1435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1436,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1443,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1449,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1456,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1462,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1471,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1472,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - info
    - obj
    argTypes:
    - _PyXI_excinfo*
    - PyObject*
    assertStmts:
    - condition: (failure != NULL)
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1474
      start: 1425
    functionDepth: 16
    functionLinenumber: 1425
    functionLinenumberEnd: 1474
    functionName: _PyXI_excinfo_InitFromObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _excinfo_init_type_from_object
    - Py_DECREF
    - PyObject_GetAttrString
    - _copy_string_obj_raw
    - assert
    - _PyXI_excinfo_clear
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyXI_excinfo_InitFromObject(_PyXI_excinfo *info, PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1481,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1483,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/crossinterp.c:1486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1487,1
    - Dst: _PyXI_excinfo_format
      Src: /src/cpython/Python/crossinterp.c:1492,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/crossinterp.c:1493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1494,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1497,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1498,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:1500,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1505,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - info
    - exctype
    argTypes:
    - _PyXI_excinfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1476
    functionDepth: 18
    functionLinenumber: 1476
    functionLinenumberEnd: 1508
    functionName: _PyXI_excinfo_Apply
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_SetObject
    - PyObject_SetAttrString
    - PyErr_FormatUnraisable
    - _PyXI_excinfo_format
    - PyErr_Clear
    - PyUnicode_FromString
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyXI_excinfo_Apply(_PyXI_excinfo *info, PyObject *exctype)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/crossinterp.c:1513,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1520,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1525,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1533,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1538,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1546,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1551,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:1559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1565,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1510
    functionDepth: 12
    functionLinenumber: 1510
    functionLinenumberEnd: 1567
    functionName: _PyXI_excinfo_TypeAsObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_SetAttrString
    - Py_CLEAR
    - PyUnicode_FromString
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_excinfo_TypeAsObject(_PyXI_excinfo *info)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/crossinterp.c:1572,1
    - Dst: _PyXI_excinfo_TypeAsObject
      Src: /src/cpython/Python/crossinterp.c:1578,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1580,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:1583,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1586,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1592,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:1593,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1598,1
    - Dst: _PyXI_excinfo_format
      Src: /src/cpython/Python/crossinterp.c:1603,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1608,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1614,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1616,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1630,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1569
    functionDepth: 13
    functionLinenumber: 1569
    functionLinenumberEnd: 1632
    functionName: _PyXI_excinfo_AsObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyUnicode_FromString
    - PyObject_SetAttrString
    - Py_NewRef
    - _PyXI_excinfo_format
    - PyErr_Clear
    - _PyXI_excinfo_TypeAsObject
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_excinfo_AsObject(_PyXI_excinfo *info)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1638,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1638,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1640,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/crossinterp.c:1643,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/crossinterp.c:1648,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/crossinterp.c:1648,1
    - Dst: _PyXI_excinfo_InitFromException
      Src: /src/cpython/Python/crossinterp.c:1649,1
    - Dst: _PyXI_excinfo_InitFromObject
      Src: /src/cpython/Python/crossinterp.c:1652,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1655,1
    - Dst: set_exc_with_cause
      Src: /src/cpython/Python/crossinterp.c:1656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1637
        line_start: 1637
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1660
      start: 1635
    functionDepth: 19
    functionLinenumber: 1635
    functionLinenumberEnd: 1660
    functionName: _PyXI_NewExcInfo
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyMem_RawCalloc
    - PyMem_RawFree
    - PyErr_Occurred
    - set_exc_with_cause
    - PyErr_SetString
    - _PyXI_excinfo_InitFromException
    - _PyXI_excinfo_InitFromObject
    - PyExceptionClass_Check
    - PyExceptionInstance_Check
    - assert
    linkageType: ''
    returnType: _PyXI_excinfo
    signature: '_PyXI_excinfo *

      _PyXI_NewExcInfo(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1665,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1662
    functionDepth: 3
    functionLinenumber: 1662
    functionLinenumberEnd: 1667
    functionName: _PyXI_FreeExcInfo
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    - _PyXI_excinfo_clear
    linkageType: ''
    returnType: void
    signature: void _PyXI_FreeExcInfo(_PyXI_excinfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_excinfo_format
      Src: /src/cpython/Python/crossinterp.c:1672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1669
    functionDepth: 11
    functionLinenumber: 1669
    functionLinenumberEnd: 1673
    functionName: _PyXI_FormatExcInfo
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - _PyXI_excinfo_format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_FormatExcInfo(_PyXI_excinfo *info)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_excinfo_AsObject
      Src: /src/cpython/Python/crossinterp.c:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1675
    functionDepth: 14
    functionLinenumber: 1675
    functionLinenumberEnd: 1679
    functionName: _PyXI_ExcInfoAsObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - _PyXI_excinfo_AsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_ExcInfoAsObject(_PyXI_excinfo *info)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:1691,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1693,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1693,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1694,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1695,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/crossinterp.c:1699,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:1702,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1705,1
    - Dst: _PyErr_SetInterpreterAlreadyRunning
      Src: /src/cpython/Python/crossinterp.c:1706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1709,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1713,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1721,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:1725,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp.c:1729,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp.c:1731,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1734,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1734,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - _PyXI_errcode
    - PyInterpreterState*
    assertStmts:
    - condition: (code != _PyXI_ERR_NO_ERROR)
      pos:
        line_end: 1693
        line_start: 1693
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1692
        line_start: 1692
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (code != _PyXI_ERR_UNCAUGHT_EXCEPTION)
      pos:
        line_end: 1694
        line_start: 1694
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interp != NULL)
      pos:
        line_end: 1704
        line_start: 1704
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1733
        line_start: 1733
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1736
      start: 1688
    functionDepth: 14
    functionLinenumber: 1688
    functionLinenumberEnd: 1736
    functionName: _PyXI_ApplyErrorCode
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyErr_Occurred
    - PyErr_SetString
    - _PyErr_SetInterpreterAlreadyRunning
    - _PyThreadState_GET
    - PyErr_SetNone
    - PyErr_Format
    - _set_xid_lookup_failure
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyXI_ApplyErrorCode(_PyXI_errcode code, PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - failure
    argTypes:
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1757
    functionName: clear_xi_failure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void clear_xi_failure(_PyXI_failure *failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - _PyXI_failure*
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1764
    functionName: copy_xi_failure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_xi_failure(_PyXI_failure *dest, _PyXI_failure *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/crossinterp.c:1769,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:1771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1766
    functionDepth: 8
    functionLinenumber: 1766
    functionLinenumberEnd: 1776
    functionName: _PyXI_NewFailure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - PyMem_RawMalloc
    linkageType: ''
    returnType: _PyXI_failure
    signature: '_PyXI_failure *

      _PyXI_NewFailure(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_xi_failure
      Src: /src/cpython/Python/crossinterp.c:1781,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - failure
    argTypes:
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1778
    functionDepth: 2
    functionLinenumber: 1778
    functionLinenumberEnd: 1783
    functionName: _PyXI_FreeFailure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - clear_xi_failure
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyXI_FreeFailure(_PyXI_failure *failure)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - failure
    argTypes:
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1792
    functionName: _PyXI_GetFailureCode
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyXI_errcode
    signature: _PyXI_errcode _PyXI_GetFailureCode(_PyXI_failure *failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - failure
    - code
    - msg
    argTypes:
    - _PyXI_failure*
    - _PyXI_errcode
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1803
    functionName: _PyXI_InitFailureUTF8
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _PyXI_InitFailureUTF8(_PyXI_failure *failure,\n                      _PyXI_errcode
      code, const char *msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/cpython/Python/crossinterp.c:1808,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1815,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - failure
    - code
    - obj
    argTypes:
    - _PyXI_failure*
    - _PyXI_errcode
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1805
    functionDepth: 15
    functionLinenumber: 1805
    functionLinenumberEnd: 1825
    functionName: _PyXI_InitFailure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - PyErr_Occurred
    - PyObject_Str
    - Py_DECREF
    - _copy_string_obj_raw
    linkageType: ''
    returnType: int
    signature: int _PyXI_InitFailure(_PyXI_failure *failure, _PyXI_errcode code, PyObject
      *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_xi_failure
      Src: /src/cpython/Python/crossinterp.c:1846,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - _PyXI_error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1841
    functionDepth: 3
    functionLinenumber: 1841
    functionLinenumberEnd: 1849
    functionName: xi_error_clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - clear_xi_failure
    - _PyXI_excinfo_clear
    linkageType: ''
    returnType: void
    signature: void xi_error_clear(_PyXI_error *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1855,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1856,1
    - Dst: excinfo_is_set
      Src: /src/cpython/Python/crossinterp.c:1857,1
    - Dst: excinfo_is_set
      Src: /src/cpython/Python/crossinterp.c:1860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - error
    argTypes:
    - _PyXI_error*
    assertStmts:
    - condition: (error->override->code != _PyXI_ERR_NO_ERROR)
      pos:
        line_end: 1854
        line_start: 1854
        source_file: /src/cpython/Python/crossinterp.c
    - condition: "(error->override->code != _PyXI_ERR_UNCAUGHT_EXCEPTION\n               ||
        excinfo_is_set(&error->uncaught))"
      pos:
        line_end: 1856
        line_start: 1855
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1861
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1861
    functionName: xi_error_is_set
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - excinfo_is_set
    - assert
    linkageType: ''
    returnType: int
    signature: int xi_error_is_set(_PyXI_error *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - _PyXI_error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1871
    functionName: xi_error_has_override
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xi_error_has_override(_PyXI_error *err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1877,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1879,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1881,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:1894,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - tstate
    - override
    argTypes:
    - PyThreadState*
    - _PyXI_failure*
    assertStmts:
    - condition: (override == NULL || override->code != _PyXI_ERR_NO_ERROR)
      pos:
        line_end: 1876
        line_start: 1876
        source_file: /src/cpython/Python/crossinterp.c
    - condition: "(override == NULL\n               || override->code != _PyXI_ERR_UNCAUGHT_EXCEPTION)"
      pos:
        line_end: 1881
        line_start: 1880
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1899
      start: 1873
    functionDepth: 1
    functionLinenumber: 1873
    functionLinenumberEnd: 1899
    functionName: xi_error_resolve_current_exc
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyErr_GetRaisedException
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nxi_error_resolve_current_exc(PyThreadState *tstate,\n
      \                            _PyXI_failure *override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1905,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1906,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1907,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1909,1
    - Dst: copy_xi_failure
      Src: /src/cpython/Python/crossinterp.c:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - tstate
    - err
    - override
    argTypes:
    - PyThreadState*
    - _PyXI_error*
    - _PyXI_failure*
    assertStmts:
    - condition: (err->override == NULL)
      pos:
        line_end: 1904
        line_start: 1904
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (override != NULL)
      pos:
        line_end: 1905
        line_start: 1905
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (override->code != _PyXI_ERR_NO_ERROR)
      pos:
        line_end: 1906
        line_start: 1906
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (override->code != _PyXI_ERR_UNCAUGHT_EXCEPTION)
      pos:
        line_end: 1908
        line_start: 1908
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1914
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1914
    functionName: xi_error_set_override
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - copy_xi_failure
    - assert
    linkageType: ''
    returnType: void
    signature: "void xi_error_set_override(PyThreadState *tstate, _PyXI_error *err,\n
      \                     _PyXI_failure *override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xi_error_set_override
      Src: /src/cpython/Python/crossinterp.c:1922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - err
    - code
    argTypes:
    - PyThreadState*
    - _PyXI_error*
    - _PyXI_errcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1916
    functionDepth: 2
    functionLinenumber: 1916
    functionLinenumberEnd: 1923
    functionName: xi_error_set_override_code
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - xi_error_set_override
    linkageType: ''
    returnType: void
    signature: "void xi_error_set_override_code(PyThreadState *tstate, _PyXI_error
      *err,\n                           _PyXI_errcode code)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1928,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1928,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1929,1
    - Dst: xi_error_is_set
      Src: /src/cpython/Python/crossinterp.c:1929,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1930,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1931,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1932,1
    - Dst: _PyXI_excinfo_InitFromException
      Src: /src/cpython/Python/crossinterp.c:1934,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/crossinterp.c:1939,1
    - Dst: xi_error_set_override_code
      Src: /src/cpython/Python/crossinterp.c:1940,1
    - Dst: xi_error_set_override_code
      Src: /src/cpython/Python/crossinterp.c:1943,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - tstate
    - err
    - exc
    argTypes:
    - PyThreadState*
    - _PyXI_error*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1927
        line_start: 1927
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (err->override == NULL)
      pos:
        line_end: 1929
        line_start: 1929
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!xi_error_is_set(err))
      pos:
        line_end: 1928
        line_start: 1928
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (err->interp == NULL)
      pos:
        line_end: 1930
        line_start: 1930
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (exc != NULL)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1948
      start: 1925
    functionDepth: 19
    functionLinenumber: 1925
    functionLinenumberEnd: 1948
    functionName: xi_error_set_exc
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyErr_ExceptionMatches
    - _PyXI_excinfo_InitFromException
    - xi_error_is_set
    - PyErr_Clear
    - _PyErr_Occurred
    - assert
    - xi_error_set_override_code
    linkageType: ''
    returnType: char
    signature: 'char *

      xi_error_set_exc(PyThreadState *tstate, _PyXI_error *err, PyObject *exc)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Python/crossinterp.c:1953,1
    - Dst: xi_error_clear
      Src: /src/cpython/Python/crossinterp.c:1956,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1963,1
    - Dst: _PyXI_excinfo_AsObject
      Src: /src/cpython/Python/crossinterp.c:1968,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1972,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1972,1
    - Dst: excinfo_is_set
      Src: /src/cpython/Python/crossinterp.c:1974,1
    - Dst: _PyXI_excinfo_Apply
      Src: /src/cpython/Python/crossinterp.c:1978,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1979,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:1984,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1985,1
    - Dst: _PyXI_ApplyErrorCode
      Src: /src/cpython/Python/crossinterp.c:1989,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1990,1
    - Dst: excinfo_is_set
      Src: /src/cpython/Python/crossinterp.c:1991,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1994,1
    - Dst: _PyXI_excinfo_Apply
      Src: /src/cpython/Python/crossinterp.c:1995,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1996,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/crossinterp.c:1997,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1998,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2001,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2001,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - error
    - failure
    argTypes:
    - _PyXI_error*
    - char*
    assertStmts:
    - condition: (error->override == NULL || error->override->msg == NULL)
      pos:
        line_end: 1989
        line_start: 1989
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (code != _PyXI_ERR_NO_ERROR)
      pos:
        line_end: 1962
        line_start: 1962
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1971
        line_start: 1971
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2000
        line_start: 2000
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2003
      start: 1950
    functionDepth: 19
    functionLinenumber: 1950
    functionLinenumberEnd: 2003
    functionName: _PyXI_ApplyError
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_excinfo_AsObject
    - Py_XDECREF
    - assert
    - _PyXI_ApplyErrorCode
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - PyErr_Occurred
    - xi_error_clear
    - PyException_SetContext
    - excinfo_is_set
    - _PyXI_excinfo_Apply
    - _set_xid_lookup_failure
    - _PyErr_Occurred
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_ApplyError(_PyXI_error *error, const char *failure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - _PyXI_namespace_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2037
    functionName: _sharednsitem_is_initialized
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _sharednsitem_is_initialized(_PyXI_namespace_item *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:2043,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2045,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2045,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2049,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - item
    - key
    argTypes:
    - _PyXI_namespace_item*
    - PyObject*
    assertStmts:
    - condition: (_sharednsitem_is_initialized(item))
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_sharednsitem_is_initialized(item))
      pos:
        line_end: 2044
        line_start: 2044
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2051
      start: 2040
    functionDepth: 15
    functionLinenumber: 2040
    functionLinenumberEnd: 2051
    functionName: _sharednsitem_init
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_is_initialized
    - assert
    - _copy_string_obj_raw
    linkageType: ''
    returnType: int
    signature: int _sharednsitem_init(_PyXI_namespace_item *item, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:2060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - item
    - p_interpid
    argTypes:
    - _PyXI_namespace_item*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2063
    functionName: _sharednsitem_has_value
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXIData_INTERPID
    linkageType: ''
    returnType: int
    signature: int _sharednsitem_has_value(_PyXI_namespace_item *item, int64_t *p_interpid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2069,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2069,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2070,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Python/crossinterp.c:2071,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Python/crossinterp.c:2075,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Python/crossinterp.c:2076,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:2077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - item
    - value
    - fallback
    argTypes:
    - _PyXI_namespace_item*
    - PyObject*
    - xidata_fallback_t
    assertStmts:
    - condition: (_sharednsitem_is_initialized(item))
      pos:
        line_end: 2068
        line_start: 2068
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (item->xidata == NULL)
      pos:
        line_end: 2069
        line_start: 2069
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2084
      start: 2065
    functionDepth: 17
    functionLinenumber: 2065
    functionLinenumberEnd: 2084
    functionName: _sharednsitem_set_value
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXIData_New
    - _PyObject_GetXIData
    - PyMem_RawFree
    - _sharednsitem_is_initialized
    - PyThreadState_Get
    - assert
    linkageType: ''
    returnType: int
    signature: "int _sharednsitem_set_value(_PyXI_namespace_item *item, PyObject *value,\n
      \                       xidata_fallback_t fallback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _release_xid_data
      Src: /src/cpython/Python/crossinterp.c:2093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - _PyXI_namespace_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2095
    functionName: _sharednsitem_clear_value
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _release_xid_data
    linkageType: ''
    returnType: void
    signature: void _sharednsitem_clear_value(_PyXI_namespace_item *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:2101,1
    - Dst: _sharednsitem_clear_value
      Src: /src/cpython/Python/crossinterp.c:2104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - _PyXI_namespace_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2105
    functionName: _sharednsitem_clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_clear_value
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _sharednsitem_clear(_PyXI_namespace_item *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2111,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2112,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Python/crossinterp.c:2113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2115,1
    - Dst: _sharednsitem_set_value
      Src: /src/cpython/Python/crossinterp.c:2121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - item
    - ns
    - fallback
    argTypes:
    - struct _sharednsitem*
    - PyObject*
    - xidata_fallback_t
    assertStmts:
    - condition: (item->name != NULL)
      pos:
        line_end: 2110
        line_start: 2110
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (item->xidata == NULL)
      pos:
        line_end: 2111
        line_start: 2111
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2125
      start: 2107
    functionDepth: 18
    functionLinenumber: 2107
    functionLinenumberEnd: 2125
    functionName: _sharednsitem_copy_from_ns
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _sharednsitem_set_value
    - PyDict_GetItemString
    - assert
    linkageType: ''
    returnType: int
    signature: "int _sharednsitem_copy_from_ns(struct _sharednsitem *item, PyObject
      *ns,\n                           xidata_fallback_t fallback)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:2130,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Python/crossinterp.c:2136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2138,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:2143,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/crossinterp.c:2145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - item
    - ns
    - dflt
    argTypes:
    - _PyXI_namespace_item*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2127
    functionDepth: 9
    functionLinenumber: 2127
    functionLinenumberEnd: 2149
    functionName: _sharednsitem_apply
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItem
    - _PyXIData_NewObject
    - Py_NewRef
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int _sharednsitem_apply(_PyXI_namespace_item *item, PyObject *ns, PyObject
      *dflt)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ns
    argTypes:
    - _PyXI_namespace*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2179
    functionName: _sharedns_check_counts
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _sharedns_check_counts(_PyXI_namespace *ns)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _sharedns_check_counts
      Src: /src/cpython/Python/crossinterp.c:2184,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2192,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2196,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2202,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2206,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2216,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2219,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2225,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2228,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - ns
    argTypes:
    - _PyXI_namespace*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2181
    functionDepth: 2
    functionLinenumber: 2181
    functionLinenumberEnd: 2233
    functionName: _sharedns_check_consistency
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_is_initialized
    - _sharedns_check_counts
    - _sharednsitem_has_value
    linkageType: ''
    returnType: int
    signature: int _sharedns_check_consistency(_PyXI_namespace *ns)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2240,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/crossinterp.c:2241,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:2246,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:2255,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/crossinterp.c:2262,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:2264,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2268,1
    - Dst: _sharedns_check_consistency
      Src: /src/cpython/Python/crossinterp.c:2268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - maxitems
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (_sharedns_check_consistency(ns))
      pos:
        line_end: 2267
        line_start: 2267
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2270
      start: 2236
    functionDepth: 14
    functionLinenumber: 2236
    functionLinenumberEnd: 2270
    functionName: _sharedns_alloc
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - PyErr_Occurred
    - PyErr_BadInternalCall
    - PyErr_SetString
    - _sharedns_check_consistency
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: _PyXI_namespace
    signature: '_PyXI_namespace *

      _sharedns_alloc(Py_ssize_t maxitems)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2279,1
    - Dst: _sharedns_check_counts
      Src: /src/cpython/Python/crossinterp.c:2279,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/crossinterp.c:2285,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/crossinterp.c:2285,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2290,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2290,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2296,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2296,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2297,1
    - Dst: _sharednsitem_clear
      Src: /src/cpython/Python/crossinterp.c:2298,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2303,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2303,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2304,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2304,1
    - Dst: _sharednsitem_clear
      Src: /src/cpython/Python/crossinterp.c:2305,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2310,1
    - Dst: _sharednsitem_is_initialized
      Src: /src/cpython/Python/crossinterp.c:2310,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2311,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2311,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:2315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ns
    argTypes:
    - _PyXI_namespace*
    assertStmts:
    - condition: (_sharedns_check_counts(ns))
      pos:
        line_end: 2278
        line_start: 2278
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_sharednsitem_is_initialized(item))
      pos:
        line_end: 2309
        line_start: 2309
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_sharednsitem_has_value(item, &interpid_i))
      pos:
        line_end: 2295
        line_start: 2295
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_sharednsitem_is_initialized(item))
      pos:
        line_end: 2302
        line_start: 2302
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_sharednsitem_has_value(item, NULL))
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_sharednsitem_has_value(item, NULL))
      pos:
        line_end: 2310
        line_start: 2310
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interpid_i == interpid)
      pos:
        line_end: 2296
        line_start: 2296
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_sharednsitem_is_initialized(item))
      pos:
        line_end: 2289
        line_start: 2289
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2316
      start: 2272
    functionDepth: 2
    functionLinenumber: 2272
    functionLinenumberEnd: 2316
    functionName: _sharedns_free
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_GetID
    - PyInterpreterState_Get
    - _sharednsitem_has_value
    - PyMem_RawFree
    - _sharednsitem_is_initialized
    - _sharedns_check_counts
    - _sharednsitem_clear
    - assert
    linkageType: ''
    returnType: void
    signature: void _sharedns_free(_PyXI_namespace *ns)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2321,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/crossinterp.c:2322,1
    - Dst: PyDict_Size
      Src: /src/cpython/Python/crossinterp.c:2323,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/crossinterp.c:2324,1
    - Dst: _sharedns_alloc
      Src: /src/cpython/Python/crossinterp.c:2326,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/crossinterp.c:2333,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/crossinterp.c:2337,1
    - Dst: _sharednsitem_init
      Src: /src/cpython/Python/crossinterp.c:2338,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/crossinterp.c:2345,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/crossinterp.c:2347,1
    - Dst: _sharednsitem_init
      Src: /src/cpython/Python/crossinterp.c:2351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2352,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:2360,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2364,1
    - Dst: _sharedns_free
      Src: /src/cpython/Python/crossinterp.c:2368,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - names
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (names != NULL)
      pos:
        line_end: 2320
        line_start: 2320
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (ns->numnames == ns->maxitems)
      pos:
        line_end: 2363
        line_start: 2363
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2370
      start: 2318
    functionDepth: 16
    functionLinenumber: 2318
    functionLinenumberEnd: 2370
    functionName: _create_sharedns
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - assert
    - Py_DECREF
    - PySequence_Check
    - PyDict_CheckExact
    - PyErr_SetString
    - _sharedns_free
    - _sharedns_alloc
    - PyDict_Next
    - PySequence_Size
    - _sharednsitem_init
    - PyDict_Size
    linkageType: ''
    returnType: _PyXI_namespace
    signature: '_PyXI_namespace *

      _create_sharedns(PyObject *names)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2380,1
    - Dst: _sharedns_check_counts
      Src: /src/cpython/Python/crossinterp.c:2380,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2381,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2382,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Python/crossinterp.c:2383,1
    - Dst: _sharednsitem_copy_from_ns
      Src: /src/cpython/Python/crossinterp.c:2385,1
    - Dst: _propagate_not_shareable_error
      Src: /src/cpython/Python/crossinterp.c:2387,1
    - Dst: _sharednsitem_clear_value
      Src: /src/cpython/Python/crossinterp.c:2391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - ns
    - nsobj
    - fallback
    - p_err
    argTypes:
    - _PyXI_namespace*
    - PyObject*
    - xidata_fallback_t
    - _PyXI_failure*
    assertStmts:
    - condition: (_sharedns_check_counts(ns))
      pos:
        line_end: 2379
        line_start: 2379
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (ns->numvalues == 0)
      pos:
        line_end: 2381
        line_start: 2381
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (ns->numnames == ns->maxitems)
      pos:
        line_end: 2380
        line_start: 2380
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2399
      start: 2375
    functionDepth: 19
    functionLinenumber: 2375
    functionLinenumberEnd: 2399
    functionName: _fill_sharedns
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_clear_value
    - _sharednsitem_copy_from_ns
    - _propagate_not_shareable_error
    - _sharedns_check_counts
    - PyThreadState_Get
    - assert
    linkageType: ''
    returnType: int
    signature: "int _fill_sharedns(_PyXI_namespace *ns, PyObject *nsobj,\n               xidata_fallback_t
      fallback, _PyXI_failure *p_err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sharedns_free
      Src: /src/cpython/Python/crossinterp.c:2404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2401
    functionDepth: 3
    functionLinenumber: 2401
    functionLinenumberEnd: 2406
    functionName: _sharedns_free_pending
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _sharedns_free
    linkageType: ''
    returnType: int
    signature: int _sharedns_free_pending(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2411,1
    - Dst: _sharedns_check_counts
      Src: /src/cpython/Python/crossinterp.c:2411,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2412,1
    - Dst: _sharedns_free
      Src: /src/cpython/Python/crossinterp.c:2414,1
    - Dst: _sharednsitem_has_value
      Src: /src/cpython/Python/crossinterp.c:2419,1
    - Dst: _sharedns_free
      Src: /src/cpython/Python/crossinterp.c:2422,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Python/crossinterp.c:2425,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/crossinterp.c:2426,1
    - Dst: _sharedns_free
      Src: /src/cpython/Python/crossinterp.c:2427,1
    - Dst: _Py_CallInInterpreter
      Src: /src/cpython/Python/crossinterp.c:2435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ns
    argTypes:
    - _PyXI_namespace*
    assertStmts:
    - condition: (_sharedns_check_counts(ns))
      pos:
        line_end: 2410
        line_start: 2410
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (ns->numnames == ns->maxitems)
      pos:
        line_end: 2411
        line_start: 2411
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2436
      start: 2408
    functionDepth: 4
    functionLinenumber: 2408
    functionLinenumberEnd: 2436
    functionName: _destroy_sharedns
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - _PyInterpreterState_LookUpID
    - _sharednsitem_has_value
    - _sharedns_free
    - _Py_CallInInterpreter
    - _sharedns_check_counts
    - assert
    linkageType: ''
    returnType: void
    signature: void _destroy_sharedns(_PyXI_namespace *ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sharednsitem_apply
      Src: /src/cpython/Python/crossinterp.c:2442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ns
    - nsobj
    - dflt
    argTypes:
    - _PyXI_namespace*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2438
    functionDepth: 10
    functionLinenumber: 2438
    functionLinenumberEnd: 2447
    functionName: _apply_sharedns
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_apply
    linkageType: ''
    returnType: int
    signature: int _apply_sharedns(_PyXI_namespace *ns, PyObject *nsobj, PyObject
      *dflt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/crossinterp.c:2491,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:2493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2488
    functionDepth: 8
    functionLinenumber: 2488
    functionLinenumberEnd: 2497
    functionName: _PyXI_NewSession
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - PyMem_RawCalloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: _PyXI_session
    signature: '_PyXI_session *

      _PyXI_NewSession(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2502,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:2503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session
    argTypes:
    - _PyXI_session*
    assertStmts:
    - condition: (session->status == SESSION_UNUSED)
      pos:
        line_end: 2501
        line_start: 2501
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2504
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2504
    functionName: _PyXI_FreeSession
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyXI_FreeSession(_PyXI_session *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - session
    argTypes:
    - _PyXI_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2507
    functionDepth: 0
    functionLinenumber: 2507
    functionLinenumberEnd: 2511
    functionName: _session_is_active
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _session_is_active(_PyXI_session *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2520,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2521,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2522,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2523,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2525,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2526,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Python/crossinterp.c:2529,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/crossinterp.c:2533,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:2535,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - session
    - interp
    argTypes:
    - _PyXI_session*
    - PyInterpreterState*
    assertStmts:
    - condition: (session->status == SESSION_UNUSED)
      pos:
        line_end: 2519
        line_start: 2519
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!session->own_init_tstate)
      pos:
        line_end: 2520
        line_start: 2520
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (session->init_tstate == NULL)
      pos:
        line_end: 2521
        line_start: 2521
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (session->prev_tstate == NULL)
      pos:
        line_end: 2522
        line_start: 2522
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!session->running)
      pos:
        line_end: 2524
        line_start: 2524
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (session->main_ns == NULL)
      pos:
        line_end: 2525
        line_start: 2525
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (swapped == prev)
      pos:
        line_end: 2535
        line_start: 2535
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2547
      start: 2516
    functionDepth: 6
    functionLinenumber: 2516
    functionLinenumberEnd: 2547
    functionName: _enter_session
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Swap
    - _PyThreadState_NewBound
    - PyThreadState_Get
    - assert
    linkageType: ''
    returnType: void
    signature: void _enter_session(_PyXI_session *session, PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2553,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2554,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Python/crossinterp.c:2554,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2555,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2555,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:2558,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:2559,1
    - Dst: _PyInterpreterState_SetNotRunningMain
      Src: /src/cpython/Python/crossinterp.c:2563,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2564,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2564,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2569,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2571,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/crossinterp.c:2573,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:2574,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/crossinterp.c:2575,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - session
    argTypes:
    - _PyXI_session*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2552
        line_start: 2552
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (PyThreadState_Get() == tstate)
      pos:
        line_end: 2553
        line_start: 2553
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2554
        line_start: 2554
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2563
        line_start: 2563
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!session->own_init_tstate)
      pos:
        line_end: 2577
        line_start: 2577
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (session->own_init_tstate)
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (session->prev_tstate != NULL)
      pos:
        line_end: 2568
        line_start: 2568
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2582
      start: 2549
    functionDepth: 9
    functionLinenumber: 2549
    functionLinenumberEnd: 2582
    functionName: _exit_session
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - assert
    - PyThreadState_Delete
    - PyThreadState_Clear
    - _PyInterpreterState_SetNotRunningMain
    - PyThreadState_Swap
    - Py_CLEAR
    - _PyErr_Occurred
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: void _exit_session(_PyXI_session *session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2588,1
    - Dst: get_notshareableerror_type
      Src: /src/cpython/Python/crossinterp.c:2589,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:2591,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/crossinterp.c:2595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - override
    argTypes:
    - PyThreadState*
    - _PyXI_failure*
    assertStmts:
    - condition: (override != NULL)
      pos:
        line_end: 2587
        line_start: 2587
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2601
      start: 2584
    functionDepth: 18
    functionLinenumber: 2584
    functionLinenumberEnd: 2601
    functionName: _propagate_not_shareable_error
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyErr_FormatUnraisable
    - PyErr_ExceptionMatches
    - assert
    - get_notshareableerror_type
    linkageType: ''
    returnType: void
    signature: "void _propagate_not_shareable_error(PyThreadState *tstate,\n                               _PyXI_failure
      *override)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:2614,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2620,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/crossinterp.c:2620,1
    - Dst: PyDict_Size
      Src: /src/cpython/Python/crossinterp.c:2621,1
    - Dst: _create_sharedns
      Src: /src/cpython/Python/crossinterp.c:2629,1
    - Dst: _fill_sharedns
      Src: /src/cpython/Python/crossinterp.c:2639,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2640,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2640,1
    - Dst: _destroy_sharedns
      Src: /src/cpython/Python/crossinterp.c:2644,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2646,1
    - Dst: _enter_session
      Src: /src/cpython/Python/crossinterp.c:2655,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:2659,1
    - Dst: _PyInterpreterState_SetRunningMain
      Src: /src/cpython/Python/crossinterp.c:2663,1
    - Dst: _ensure_main_ns
      Src: /src/cpython/Python/crossinterp.c:2674,1
    - Dst: _apply_sharedns
      Src: /src/cpython/Python/crossinterp.c:2677,1
    - Dst: _destroy_sharedns
      Src: /src/cpython/Python/crossinterp.c:2681,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2685,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2685,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2690,1
    - Dst: capture_session_error
      Src: /src/cpython/Python/crossinterp.c:2692,1
    - Dst: _exit_session
      Src: /src/cpython/Python/crossinterp.c:2695,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:2697,1
    - Dst: _destroy_sharedns
      Src: /src/cpython/Python/crossinterp.c:2701,1
    - Dst: _PyXI_ApplyError
      Src: /src/cpython/Python/crossinterp.c:2705,1
    - Dst: xi_error_clear
      Src: /src/cpython/Python/crossinterp.c:2706,1
    - Dst: fprintf
      Src: /src/cpython/Python/crossinterp.c:2713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2715,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2718,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2718,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 4
    argNames:
    - session
    - interp
    - nsupdates
    - result
    argTypes:
    - _PyXI_session*
    - PyInterpreterState*
    - PyObject*
    - _PyXI_session_result*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2639
        line_start: 2639
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_err.msg == NULL)
      pos:
        line_end: 2645
        line_start: 2645
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2717
        line_start: 2717
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (PyDict_Check(nsupdates))
      pos:
        line_end: 2619
        line_start: 2619
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (override.code != _PyXI_ERR_NO_ERROR)
      pos:
        line_end: 2689
        line_start: 2689
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2684
        line_start: 2684
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2721
      start: 2608
    functionDepth: 20
    functionLinenumber: 2608
    functionLinenumberEnd: 2721
    functionName: _PyXI_Enter
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - assert
    - _fill_sharedns
    - capture_session_error
    - Py_DECREF
    - _destroy_sharedns
    - _enter_session
    - _apply_sharedns
    - _ensure_main_ns
    - xi_error_clear
    - _PyXI_ApplyError
    - _PyThreadState_GET
    - _exit_session
    - fprintf
    - PyDict_Check
    - _create_sharedns
    - _PyErr_Occurred
    - PyDict_Size
    - _PyInterpreterState_SetRunningMain
    linkageType: ''
    returnType: int
    signature: "int _PyXI_Enter(_PyXI_session *session,\n            PyInterpreterState
      *interp, PyObject *nsupdates,\n            _PyXI_session_result *result)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:2731,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2738,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2741,1
    - Dst: capture_session_error
      Src: /src/cpython/Python/crossinterp.c:2742,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2745,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2752,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2752,1
    - Dst: _pop_preserved
      Src: /src/cpython/Python/crossinterp.c:2754,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2757,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2758,1
    - Dst: xi_error_is_set
      Src: /src/cpython/Python/crossinterp.c:2759,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:2761,1
    - Dst: clear_xi_failure
      Src: /src/cpython/Python/crossinterp.c:2763,1
    - Dst: capture_session_error
      Src: /src/cpython/Python/crossinterp.c:2769,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2775,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2775,1
    - Dst: _exit_session
      Src: /src/cpython/Python/crossinterp.c:2776,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:2777,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2780,1
    - Dst: _finish_preserved
      Src: /src/cpython/Python/crossinterp.c:2781,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2782,1
    - Dst: xi_error_is_set
      Src: /src/cpython/Python/crossinterp.c:2783,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:2785,1
    - Dst: xi_error_set_override_code
      Src: /src/cpython/Python/crossinterp.c:2789,1
    - Dst: _propagate_not_shareable_error
      Src: /src/cpython/Python/crossinterp.c:2791,1
    - Dst: xi_error_is_set
      Src: /src/cpython/Python/crossinterp.c:2802,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2804,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2804,1
    - Dst: _PyXI_ApplyError
      Src: /src/cpython/Python/crossinterp.c:2805,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2807,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2807,1
    - Dst: xi_error_has_override
      Src: /src/cpython/Python/crossinterp.c:2808,1
    - Dst: _PyXI_ClearResult
      Src: /src/cpython/Python/crossinterp.c:2809,1
    - Dst: fprintf
      Src: /src/cpython/Python/crossinterp.c:2820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2822,1
    - Dst: xi_error_clear
      Src: /src/cpython/Python/crossinterp.c:2824,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 3
    argNames:
    - session
    - override
    - result
    argTypes:
    - _PyXI_session*
    - _PyXI_failure*
    - _PyXI_session_result*
    assertStmts:
    - condition: (override == NULL)
      pos:
        line_end: 2744
        line_start: 2744
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (preserved == NULL)
      pos:
        line_end: 2756
        line_start: 2756
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2774
        line_start: 2774
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (preservedobj == NULL)
      pos:
        line_end: 2781
        line_start: 2781
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2803
        line_start: 2803
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (override->msg == NULL)
      pos:
        line_end: 2737
        line_start: 2737
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2806
        line_start: 2806
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2751
        line_start: 2751
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (preservedobj == NULL)
      pos:
        line_end: 2757
        line_start: 2757
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (preserved == NULL || preservedobj == NULL)
      pos:
        line_end: 2779
        line_start: 2779
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2827
      start: 2727
    functionDepth: 20
    functionLinenumber: 2727
    functionLinenumberEnd: 2827
    functionName: _PyXI_Exit
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - clear_xi_failure
    - _finish_preserved
    - Py_DECREF
    - xi_error_has_override
    - _pop_preserved
    - _propagate_not_shareable_error
    - xi_error_clear
    - _PyXI_ApplyError
    - _PyXI_ClearResult
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - xi_error_is_set
    - _exit_session
    - fprintf
    - capture_session_error
    - _PyErr_Occurred
    - assert
    - xi_error_set_override_code
    linkageType: ''
    returnType: int
    signature: "int _PyXI_Exit(_PyXI_session *session, _PyXI_failure *override,\n
      \          _PyXI_session_result *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2836,1
    - Dst: _session_is_active
      Src: /src/cpython/Python/crossinterp.c:2836,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2837,1
    - Dst: xi_error_is_set
      Src: /src/cpython/Python/crossinterp.c:2837,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2843,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2847,1
    - Dst: xi_error_resolve_current_exc
      Src: /src/cpython/Python/crossinterp.c:2853,1
    - Dst: xi_error_set_exc
      Src: /src/cpython/Python/crossinterp.c:2856,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2857,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2858,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:2859,1
    - Dst: xi_error_set_override
      Src: /src/cpython/Python/crossinterp.c:2865,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2869,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:2869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - session
    - err
    - override
    argTypes:
    - _PyXI_session*
    - _PyXI_error*
    - _PyXI_failure*
    assertStmts:
    - condition: (_session_is_active(session))
      pos:
        line_end: 2835
        line_start: 2835
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!xi_error_is_set(err))
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (override->msg == NULL)
      pos:
        line_end: 2842
        line_start: 2842
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (override->code != _PyXI_ERR_NO_ERROR)
      pos:
        line_end: 2846
        line_start: 2846
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2868
        line_start: 2868
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2871
      start: 2832
    functionDepth: 20
    functionLinenumber: 2832
    functionLinenumberEnd: 2871
    functionName: capture_session_error
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - xi_error_set_exc
    - Py_DECREF
    - xi_error_resolve_current_exc
    - PyErr_FormatUnraisable
    - xi_error_set_override
    - xi_error_is_set
    - _session_is_active
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\ncapture_session_error(_PyXI_session *session, _PyXI_error
      *err,\n                      _PyXI_failure *override)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2876,1
    - Dst: _session_is_active
      Src: /src/cpython/Python/crossinterp.c:2876,1
    - Dst: _Py_GetMainModule
      Src: /src/cpython/Python/crossinterp.c:2882,1
    - Dst: _Py_CheckMainModule
      Src: /src/cpython/Python/crossinterp.c:2883,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:2884,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/crossinterp.c:2892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:2893,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:2902,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - session
    - failure
    argTypes:
    - _PyXI_session*
    - _PyXI_failure*
    assertStmts:
    - condition: (_session_is_active(session))
      pos:
        line_end: 2875
        line_start: 2875
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2904
      start: 2873
    functionDepth: 10
    functionLinenumber: 2873
    functionLinenumberEnd: 2904
    functionName: _ensure_main_ns
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _Py_CheckMainModule
    - Py_NewRef
    - _Py_GetMainModule
    - PyModule_GetDict
    - _session_is_active
    - assert
    linkageType: ''
    returnType: int
    signature: int _ensure_main_ns(_PyXI_session *session, _PyXI_failure *failure)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _session_is_active
      Src: /src/cpython/Python/crossinterp.c:2909,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:2910,1
    - Dst: _ensure_main_ns
      Src: /src/cpython/Python/crossinterp.c:2913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - session
    - failure
    argTypes:
    - _PyXI_session*
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2906
    functionDepth: 14
    functionLinenumber: 2906
    functionLinenumberEnd: 2917
    functionName: _PyXI_GetMainNamespace
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _ensure_main_ns
    - _session_is_active
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_GetMainNamespace(_PyXI_session *session, _PyXI_failure *failure)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2927,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:2927,1
    - Dst: PyDict_Size
      Src: /src/cpython/Python/crossinterp.c:2944,1
    - Dst: _create_sharedns
      Src: /src/cpython/Python/crossinterp.c:2953,1
    - Dst: _fill_sharedns
      Src: /src/cpython/Python/crossinterp.c:2958,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:2962,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:2969,1
    - Dst: _destroy_sharedns
      Src: /src/cpython/Python/crossinterp.c:2977,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 4
    argNames:
    - session
    - p_xidata
    - p_obj
    - p_failure
    argTypes:
    - _PyXI_session*
    - _PyXI_namespace**
    - PyObject**
    - _PyXI_failure*
    assertStmts:
    - condition: (_PyThreadState_GET() == session->init_tstate)
      pos:
        line_end: 2926
        line_start: 2926
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (failure.msg != NULL)
      pos:
        line_end: 2961
        line_start: 2961
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 2980
      start: 2920
    functionDepth: 20
    functionLinenumber: 2920
    functionLinenumberEnd: 2980
    functionName: _pop_preserved
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - assert
    - _fill_sharedns
    - Py_CLEAR
    - _destroy_sharedns
    - _PyThreadState_GET
    - _create_sharedns
    - PyDict_Size
    linkageType: ''
    returnType: int
    signature: "int _pop_preserved(_PyXI_session *session,\n               _PyXI_namespace
      **p_xidata, PyObject **p_obj,\n               _PyXI_failure *p_failure)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/crossinterp.c:2990,1
    - Dst: _apply_sharedns
      Src: /src/cpython/Python/crossinterp.c:2994,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:2995,1
    - Dst: _destroy_sharedns
      Src: /src/cpython/Python/crossinterp.c:3003,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - xidata
    - p_preserved
    argTypes:
    - _PyXI_namespace*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2982
    functionDepth: 11
    functionLinenumber: 2982
    functionLinenumberEnd: 3005
    functionName: _finish_preserved
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - _apply_sharedns
    - Py_CLEAR
    - PyDict_New
    - _destroy_sharedns
    linkageType: ''
    returnType: int
    signature: int _finish_preserved(_PyXI_namespace *xidata, PyObject **p_preserved)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _session_is_active
      Src: /src/cpython/Python/crossinterp.c:3012,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:3013,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/crossinterp.c:3017,1
    - Dst: set_exc_with_cause
      Src: /src/cpython/Python/crossinterp.c:3019,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/crossinterp.c:3025,1
    - Dst: set_exc_with_cause
      Src: /src/cpython/Python/crossinterp.c:3026,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - session
    - name
    - value
    - p_failure
    argTypes:
    - _PyXI_session*
    - char*
    - PyObject*
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3007
    functionDepth: 15
    functionLinenumber: 3007
    functionLinenumberEnd: 3037
    functionName: _PyXI_Preserve
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - set_exc_with_cause
    - PyErr_SetString
    - PyDict_SetItemString
    - PyDict_New
    - _session_is_active
    linkageType: ''
    returnType: int
    signature: "int _PyXI_Preserve(_PyXI_session *session, const char *name, PyObject
      *value,\n               _PyXI_failure *p_failure)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/crossinterp.c:3044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - result
    - name
    argTypes:
    - _PyXI_session_result*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3039
    functionDepth: 9
    functionLinenumber: 3039
    functionLinenumberEnd: 3047
    functionName: _PyXI_GetPreserved
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemStringRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_GetPreserved(_PyXI_session_result *result, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:3052,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:3053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - _PyXI_session_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3049
    functionDepth: 1
    functionLinenumber: 3049
    functionLinenumberEnd: 3054
    functionName: _PyXI_ClearResult
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyXI_ClearResult(_PyXI_session_result *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3064,1
    - Dst: xid_lookup_init
      Src: /src/cpython/Python/crossinterp.c:3065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyXI_global_state_t*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3063
        line_start: 3063
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 3067
      start: 3061
    functionDepth: 2
    functionLinenumber: 3061
    functionLinenumberEnd: 3067
    functionName: _Py_xi_global_state_init
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - xid_lookup_init
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_xi_global_state_init(_PyXI_global_state_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3072,1
    - Dst: xid_lookup_fini
      Src: /src/cpython/Python/crossinterp.c:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyXI_global_state_t*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3071
        line_start: 3071
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 3074
      start: 3069
    functionDepth: 2
    functionLinenumber: 3069
    functionLinenumberEnd: 3074
    functionName: _Py_xi_global_state_fini
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - xid_lookup_fini
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_xi_global_state_fini(_PyXI_global_state_t *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3079,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3080,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:3080,1
    - Dst: xid_lookup_init
      Src: /src/cpython/Python/crossinterp.c:3082,1
    - Dst: init_static_exctypes
      Src: /src/cpython/Python/crossinterp.c:3086,1
    - Dst: fini_heap_exctypes
      Src: /src/cpython/Python/crossinterp.c:3087,1
    - Dst: init_heap_exctypes
      Src: /src/cpython/Python/crossinterp.c:3091,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - state
    - interp
    argTypes:
    - _PyXI_state_t*
    - PyInterpreterState*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3078
        line_start: 3078
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interp == NULL || state == _PyXI_GET_STATE(interp))
      pos:
        line_end: 3079
        line_start: 3079
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 3096
      start: 3076
    functionDepth: 20
    functionLinenumber: 3076
    functionLinenumberEnd: 3096
    functionName: _Py_xi_state_init
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_STATE
    - assert
    - init_static_exctypes
    - xid_lookup_init
    - init_heap_exctypes
    - fini_heap_exctypes
    linkageType: ''
    returnType: int
    signature: int _Py_xi_state_init(_PyXI_state_t *state, PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3101,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3102,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:3102,1
    - Dst: fini_heap_exctypes
      Src: /src/cpython/Python/crossinterp.c:3104,1
    - Dst: fini_static_exctypes
      Src: /src/cpython/Python/crossinterp.c:3106,1
    - Dst: xid_lookup_fini
      Src: /src/cpython/Python/crossinterp.c:3109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - interp
    argTypes:
    - _PyXI_state_t*
    - PyInterpreterState*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3100
        line_start: 3100
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interp == NULL || state == _PyXI_GET_STATE(interp))
      pos:
        line_end: 3101
        line_start: 3101
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 3110
      start: 3098
    functionDepth: 10
    functionLinenumber: 3098
    functionLinenumberEnd: 3110
    functionName: _Py_xi_state_fini
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_STATE
    - assert
    - fini_static_exctypes
    - xid_lookup_fini
    - fini_heap_exctypes
    linkageType: ''
    returnType: void
    signature: void _Py_xi_state_fini(_PyXI_state_t *state, PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/crossinterp.c:3116,1
    - Dst: _PyXI_GET_GLOBAL_STATE
      Src: /src/cpython/Python/crossinterp.c:3117,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/crossinterp.c:3119,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/crossinterp.c:3120,1
    - Dst: _Py_xi_global_state_init
      Src: /src/cpython/Python/crossinterp.c:3123,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/crossinterp.c:3124,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/crossinterp.c:3125,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:3130,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/crossinterp.c:3132,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/crossinterp.c:3133,1
    - Dst: _Py_xi_state_init
      Src: /src/cpython/Python/crossinterp.c:3138,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/crossinterp.c:3139,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/crossinterp.c:3140,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/crossinterp.c:3144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3145
      start: 3113
    functionDepth: 21
    functionLinenumber: 3113
    functionLinenumberEnd: 3145
    functionName: _PyXI_Init
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_GLOBAL_STATE
    - _Py_IsMainInterpreter
    - _PyXI_GET_STATE
    - _PyStatus_OK
    - _Py_xi_state_init
    - _Py_xi_global_state_init
    - _PyStatus_ERR
    - PyErr_PrintEx
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyXI_Init(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:3153,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/crossinterp.c:3156,1
    - Dst: _Py_xi_state_fini
      Src: /src/cpython/Python/crossinterp.c:3162,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/crossinterp.c:3164,1
    - Dst: _PyXI_GET_GLOBAL_STATE
      Src: /src/cpython/Python/crossinterp.c:3165,1
    - Dst: _Py_xi_global_state_fini
      Src: /src/cpython/Python/crossinterp.c:3166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 3150
    functionDepth: 11
    functionLinenumber: 3150
    functionLinenumberEnd: 3168
    functionName: _PyXI_Fini
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_STATE
    - _Py_IsMainInterpreter
    - _PyXI_GET_GLOBAL_STATE
    - _Py_xi_global_state_fini
    - _Py_xi_state_fini
    - PyErr_PrintEx
    linkageType: ''
    returnType: void
    signature: void _PyXI_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_static_exctypes
      Src: /src/cpython/Python/crossinterp.c:3173,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:3173,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/crossinterp.c:3174,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/crossinterp.c:3175,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/crossinterp.c:3180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3170
    functionDepth: 20
    functionLinenumber: 3170
    functionLinenumberEnd: 3181
    functionName: _PyXI_InitTypes
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_STATE
    - _PyStatus_OK
    - init_static_exctypes
    - _PyStatus_ERR
    - PyErr_PrintEx
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyXI_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fini_static_exctypes
      Src: /src/cpython/Python/crossinterp.c:3188,1
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:3188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3189
      start: 3183
    functionDepth: 10
    functionLinenumber: 3183
    functionLinenumberEnd: 3189
    functionName: _PyXI_FiniTypes
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_STATE
    - fini_static_exctypes
    linkageType: ''
    returnType: void
    signature: void _PyXI_FiniTypes(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:3200,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3201,1
    - Dst: Py_NewInterpreterFromConfig
      Src: /src/cpython/Python/crossinterp.c:3204,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Python/crossinterp.c:3205,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:3209,1
    - Dst: _PyErr_SetFromPyStatus
      Src: /src/cpython/Python/crossinterp.c:3210,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:3211,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:3212,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/crossinterp.c:3214,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3217,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Python/crossinterp.c:3218,1
    - Dst: _PyInterpreterState_SetWhence
      Src: /src/cpython/Python/crossinterp.c:3224,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/crossinterp.c:3232,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:3233,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/crossinterp.c:3234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - config
    - maybe_whence
    - p_tstate
    - p_save_tstate
    argTypes:
    - PyInterpreterConfig*
    - long*
    - PyThreadState**
    - PyThreadState**
    assertStmts:
    - condition: (save_tstate != NULL)
      pos:
        line_end: 3200
        line_start: 3200
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (tstate != NULL)
      pos:
        line_end: 3216
        line_start: 3216
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 3241
      start: 3196
    functionDepth: 14
    functionLinenumber: 3196
    functionLinenumberEnd: 3241
    functionName: _PyXI_NewInterpreter
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - _PyErr_ChainExceptions1
    - Py_NewInterpreterFromConfig
    - PyErr_GetRaisedException
    - PyThreadState_GetInterpreter
    - PyErr_SetString
    - PyThreadState_Delete
    - PyThreadState_Clear
    - _PyInterpreterState_SetWhence
    - _PyErr_SetFromPyStatus
    - PyThreadState_Swap
    - PyStatus_Exception
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: "PyInterpreterState *\n_PyXI_NewInterpreter(PyInterpreterConfig *config,
      long *maybe_whence,\n                     PyThreadState **p_tstate, PyThreadState
      **p_save_tstate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetWhence
      Src: /src/cpython/Python/crossinterp.c:3248,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3250,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Python/crossinterp.c:3252,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3253,1
    - Dst: PyInterpreterState_Delete
      Src: /src/cpython/Python/crossinterp.c:3258,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3261,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/crossinterp.c:3264,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Python/crossinterp.c:3266,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/crossinterp.c:3270,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3271,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:3272,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3276,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Python/crossinterp.c:3276,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:3278,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Python/crossinterp.c:3278,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:3279,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Python/crossinterp.c:3283,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/crossinterp.c:3288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - interp
    - tstate
    - p_save_tstate
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    - PyThreadState**
    assertStmts:
    - condition: (whence != _PyInterpreterState_WHENCE_RUNTIME)
      pos:
        line_end: 3249
        line_start: 3249
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (whence == _PyInterpreterState_WHENCE_UNKNOWN)
      pos:
        line_end: 3252
        line_start: 3252
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (whence != _PyInterpreterState_WHENCE_UNKNOWN)
      pos:
        line_end: 3260
        line_start: 3260
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (tstate != NULL)
      pos:
        line_end: 3270
        line_start: 3270
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (PyThreadState_GetInterpreter(tstate) == interp)
      pos:
        line_end: 3275
        line_start: 3275
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (PyThreadState_GetInterpreter(cur_tstate) != interp)
      pos:
        line_end: 3277
        line_start: 3277
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 3289
      start: 3243
    functionDepth: 6
    functionLinenumber: 3243
    functionLinenumberEnd: 3289
    functionName: _PyXI_EndInterpreter
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 5
    functionsReached:
    - Py_EndInterpreter
    - _PyInterpreterState_IsReady
    - PyThreadState_GET
    - PyThreadState_GetInterpreter
    - _PyThreadState_NewBound
    - PyInterpreterState_Delete
    - _PyInterpreterState_GetWhence
    - PyThreadState_Swap
    - assert
    linkageType: ''
    returnType: void
    signature: "void _PyXI_EndInterpreter(PyInterpreterState *interp,\n                     PyThreadState
      *tstate, PyThreadState **p_save_tstate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/perf_jit_trampoline.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: GetElfMachineArchitecture
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t GetElfMachineArchitecture(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/cpython/Python/perf_jit_trampoline.c:288,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/perf_jit_trampoline.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: get_current_monotonic_ticks
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int64_t
    signature: int64_t get_current_monotonic_ticks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/cpython/Python/perf_jit_trampoline.c:311,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/perf_jit_trampoline.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: get_current_time_microseconds
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - gettimeofday
    linkageType: ''
    returnType: int64_t
    signature: int64_t get_current_time_microseconds(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 350
    functionName: round_up
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t round_up(int64_t value, int64_t multiple)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/cpython/Python/perf_jit_trampoline.c:372,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/perf_jit_trampoline.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: perf_map_jit_write_fully
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - fwrite
    - Py_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void perf_map_jit_write_fully(const void* buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetElfMachineArchitecture
      Src: /src/cpython/Python/perf_jit_trampoline.c:399,1
    - Dst: get_current_time_microseconds
      Src: /src/cpython/Python/perf_jit_trampoline.c:401,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - pid
    - out_file
    argTypes:
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 405
    functionName: perf_map_jit_write_header
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - get_current_time_microseconds
    - GetElfMachineArchitecture
    - perf_map_jit_write_fully
    linkageType: ''
    returnType: void
    signature: void perf_map_jit_write_header(int pid, FILE* out_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - ELFObjectContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 593
    functionName: elfctx_append_string
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t elfctx_append_string(ELFObjectContext* ctx, const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - v
    argTypes:
    - ELFObjectContext*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 615
    functionName: elfctx_append_sleb128
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void elfctx_append_sleb128(ELFObjectContext* ctx, int32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - v
    argTypes:
    - ELFObjectContext*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 636
    functionName: elfctx_append_uleb128
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void elfctx_append_uleb128(ELFObjectContext* ctx, uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 645
    functionName: DWRF_U8
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_U8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 646
    functionName: DWRF_I8
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_I8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 647
    functionName: DWRF_U16
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_U16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 648
    functionName: DWRF_U32
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_U32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 649
    functionName: DWRF_ADDR
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_ADDR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 650
    functionName: DWRF_UV
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_UV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 651
    functionName: DWRF_SV
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_SV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 652
    functionName: DWRF_STR
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_STR(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: DWRF_ALIGNNOP
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_ALIGNNOP(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - stmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 667
    functionName: DWRF_SECTION
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_SECTION(name, stmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_init_ehframe
      Src: /src/cpython/Python/perf_jit_trampoline.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 703
    functionName: calculate_eh_frame_size
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - elf_init_ehframe
    linkageType: ''
    returnType: size_t
    signature: size_t calculate_eh_frame_size(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DWRF_SECTION
      Src: /src/cpython/Python/perf_jit_trampoline.c:874,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/perf_jit_trampoline.c:875,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:876,1
    - Dst: DWRF_STR
      Src: /src/cpython/Python/perf_jit_trampoline.c:877,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:879,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:881,1
    - Dst: DWRF_SV
      Src: /src/cpython/Python/perf_jit_trampoline.c:883,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:884,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:885,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:886,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:891,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:892,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:893,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:894,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:895,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:898,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:899,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:900,1
    - Dst: DWRF_ALIGNNOP
      Src: /src/cpython/Python/perf_jit_trampoline.c:903,1
    - Dst: DWRF_SECTION
      Src: /src/cpython/Python/perf_jit_trampoline.c:917,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/perf_jit_trampoline.c:918,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/perf_jit_trampoline.c:920,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/perf_jit_trampoline.c:921,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:922,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:934,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:936,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:937,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:938,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:939,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:940,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:941,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:942,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:943,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:944,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:945,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:946,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:947,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:950,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:951,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:952,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:953,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:954,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:955,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:956,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:957,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:958,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:959,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/perf_jit_trampoline.c:960,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/perf_jit_trampoline.c:961,1
    - Dst: DWRF_ALIGNNOP
      Src: /src/cpython/Python/perf_jit_trampoline.c:966,1
    - Dst: round_up
      Src: /src/cpython/Python/perf_jit_trampoline.c:1015,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 55
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ELFObjectContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 1022
    functionName: elf_init_ehframe
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 1
    functionsReached:
    - DWRF_STR
    - DWRF_ALIGNNOP
    - DWRF_SECTION
    - DWRF_UV
    - DWRF_SV
    - DWRF_U32
    - DWRF_U8
    - round_up
    linkageType: ''
    returnType: void
    signature: void elf_init_ehframe(ELFObjectContext* ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/cpython/Python/perf_jit_trampoline.c:1044,1
    - Dst: snprintf
      Src: /src/cpython/Python/perf_jit_trampoline.c:1047,1
    - Dst: open
      Src: /src/cpython/Python/perf_jit_trampoline.c:1050,1
    - Dst: sysconf
      Src: /src/cpython/Python/perf_jit_trampoline.c:1056,1
    - Dst: close
      Src: /src/cpython/Python/perf_jit_trampoline.c:1058,1
    - Dst: mmap
      Src: /src/cpython/Python/perf_jit_trampoline.c:1075,1
    - Dst: close
      Src: /src/cpython/Python/perf_jit_trampoline.c:1085,1
    - Dst: fdopen
      Src: /src/cpython/Python/perf_jit_trampoline.c:1093,1
    - Dst: close
      Src: /src/cpython/Python/perf_jit_trampoline.c:1095,1
    - Dst: setvbuf
      Src: /src/cpython/Python/perf_jit_trampoline.c:1106,1
    - Dst: perf_map_jit_write_header
      Src: /src/cpython/Python/perf_jit_trampoline.c:1109,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Python/perf_jit_trampoline.c:1118,1
    - Dst: fclose
      Src: /src/cpython/Python/perf_jit_trampoline.c:1120,1
    - Dst: calculate_eh_frame_size
      Src: /src/cpython/Python/perf_jit_trampoline.c:1128,1
    - Dst: round_up
      Src: /src/cpython/Python/perf_jit_trampoline.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1134
    functionName: perf_map_jit_init
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - open
    - calculate_eh_frame_size
    - mmap
    - perf_map_jit_write_header
    - close
    - PyThread_allocate_lock
    - fdopen
    - snprintf
    - round_up
    - sysconf
    - fclose
    - getpid
    - setvbuf
    linkageType: ''
    returnType: void
    signature: void * perf_map_jit_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: perf_map_jit_init
      Src: /src/cpython/Python/perf_jit_trampoline.c:1168,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/perf_jit_trampoline.c:1183,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/perf_jit_trampoline.c:1188,1
    - Dst: snprintf
      Src: /src/cpython/Python/perf_jit_trampoline.c:1198,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/perf_jit_trampoline.c:1199,1
    - Dst: snprintf
      Src: /src/cpython/Python/perf_jit_trampoline.c:1203,1
    - Dst: strlen
      Src: /src/cpython/Python/perf_jit_trampoline.c:1205,1
    - Dst: elf_init_ehframe
      Src: /src/cpython/Python/perf_jit_trampoline.c:1223,1
    - Dst: get_current_monotonic_ticks
      Src: /src/cpython/Python/perf_jit_trampoline.c:1235,1
    - Dst: assert
      Src: /src/cpython/Python/perf_jit_trampoline.c:1239,1
    - Dst: round_up
      Src: /src/cpython/Python/perf_jit_trampoline.c:1242,1
    - Dst: round_up
      Src: /src/cpython/Python/perf_jit_trampoline.c:1246,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:1250,1
    - Dst: round_up
      Src: /src/cpython/Python/perf_jit_trampoline.c:1268,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:1274,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:1275,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:1279,1
    - Dst: get_current_monotonic_ticks
      Src: /src/cpython/Python/perf_jit_trampoline.c:1293,1
    - Dst: getpid
      Src: /src/cpython/Python/perf_jit_trampoline.c:1294,1
    - Dst: pthread_threadid_np
      Src: /src/cpython/Python/perf_jit_trampoline.c:1296,1
    - Dst: syscall
      Src: /src/cpython/Python/perf_jit_trampoline.c:1298,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:1309,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:1310,1
    - Dst: perf_map_jit_write_fully
      Src: /src/cpython/Python/perf_jit_trampoline.c:1311,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/perf_jit_trampoline.c:1314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 54
    argCount: 4
    argNames:
    - state
    - code_addr
    - code_size
    - co
    argTypes:
    - void*
    - void*
    - unsigned int
    - PyCodeObject*
    assertStmts:
    - condition: (ev2.unwind_data_size <= (uint64_t)trampoline_api.code_padding)
      pos:
        line_end: 1238
        line_start: 1238
        source_file: /src/cpython/Python/perf_jit_trampoline.c
    constantsTouched: []
    func_position:
      end: 1315
      start: 1163
    functionDepth: 6
    functionLinenumber: 1163
    functionLinenumberEnd: 1315
    functionName: perf_map_jit_write_entry
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - assert
    - elf_init_ehframe
    - PyMem_RawFree
    - strlen
    - perf_map_jit_write_fully
    - syscall
    - getpid
    - PyUnicode_AsUTF8
    - snprintf
    - PyMem_RawMalloc
    - round_up
    - get_current_monotonic_ticks
    - pthread_threadid_np
    - perf_map_jit_init
    linkageType: ''
    returnType: void
    signature: "void perf_map_jit_write_entry(void *state, const void *code_addr,\n
      \                                   unsigned int code_size, PyCodeObject *co)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Python/perf_jit_trampoline.c:1345,1
    - Dst: fclose
      Src: /src/cpython/Python/perf_jit_trampoline.c:1346,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Python/perf_jit_trampoline.c:1347,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Python/perf_jit_trampoline.c:1350,1
    - Dst: munmap
      Src: /src/cpython/Python/perf_jit_trampoline.c:1362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1336
    functionDepth: 9
    functionLinenumber: 1336
    functionLinenumberEnd: 1370
    functionName: perf_map_jit_fini
    functionSourceFile: /src/cpython/Python/perf_jit_trampoline.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - munmap
    - PyThread_acquire_lock
    - PyThread_free_lock
    - fclose
    linkageType: ''
    returnType: int
    signature: int perf_map_jit_fini(void* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/cpython/Python/emscripten_syscalls.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: EM_JS
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - getuid
    linkageType: ''
    returnType: void
    signature: "void EM_JS(int, __syscall_getuid32_js, (void), {\n    // If we're
      in node and we can, report the native uid\n    if (ENVIRONMENT_IS_NODE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __syscall_getuid32_js
      Src: /src/cpython/Python/emscripten_syscalls.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: __syscall_getuid32
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - __syscall_getuid32_js
    linkageType: ''
    returnType: int
    signature: int __syscall_getuid32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/cpython/Python/emscripten_syscalls.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: EM_JS
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - umask
    linkageType: ''
    returnType: void
    signature: "void EM_JS(int, __syscall_umask_js, (int mask), {\n    // If we're
      in node and we can, call native process.umask()\n    if (ENVIRONMENT_IS_NODE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __syscall_umask_js
      Src: /src/cpython/Python/emscripten_syscalls.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: __syscall_umask
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - __syscall_umask_js
    linkageType: ''
    returnType: int
    signature: int __syscall_umask(int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - ret
    - ','
    - func_name
    - ','
    - args
    - ','
    - body
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: EM_JS_MACROS
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EM_JS_MACROS(ret, func_name, args, body...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: function
      Src: /src/cpython/Python/emscripten_syscalls.c:61,1
    - Dst: getPath
      Src: /src/cpython/Python/emscripten_syscalls.c:62,1
    - Dst: join2
      Src: /src/cpython/Python/emscripten_syscalls.c:63,1
    - Dst: FS_getMode
      Src: /src/cpython/Python/emscripten_syscalls.c:64,1
    - Dst: makedev
      Src: /src/cpython/Python/emscripten_syscalls.c:66,1
    - Dst: input
      Src: /src/cpython/Python/emscripten_syscalls.c:70,1
    - Dst: FS::FS
      Src: /src/cpython/Python/emscripten_syscalls.c:72,1
    - Dst: ErrnoError
      Src: /src/cpython/Python/emscripten_syscalls.c:72,1
    - Dst: FS::FS
      Src: /src/cpython/Python/emscripten_syscalls.c:75,1
    - Dst: ErrnoError
      Src: /src/cpython/Python/emscripten_syscalls.c:75,1
    - Dst: Uint8Array::Uint8Array
      Src: /src/cpython/Python/emscripten_syscalls.c:81,1
    - Dst: open
      Src: /src/cpython/Python/emscripten_syscalls.c:82,1
    - Dst: readAsync
      Src: /src/cpython/Python/emscripten_syscalls.c:85,1
    - Dst: subarray
      Src: /src/cpython/Python/emscripten_syscalls.c:86,1
    - Dst: getDataBuf
      Src: /src/cpython/Python/emscripten_syscalls.c:88,1
    - Dst: min
      Src: /src/cpython/Python/emscripten_syscalls.c:90,1
    - Dst: subarray
      Src: /src/cpython/Python/emscripten_syscalls.c:91,1
    - Dst: subarray
      Src: /src/cpython/Python/emscripten_syscalls.c:92,1
    - Dst: var::_dataBuf::subarray
      Src: /src/cpython/Python/emscripten_syscalls.c:93,1
    - Dst: now
      Src: /src/cpython/Python/emscripten_syscalls.c:95,1
    - Dst: registerDevice
      Src: /src/cpython/Python/emscripten_syscalls.c:100,1
    - Dst: mkdev
      Src: /src/cpython/Python/emscripten_syscalls.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 102
    functionName: EM_JS_MACROS
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - open
    - ErrnoError
    - min
    - var::_dataBuf::subarray
    - function
    - FS::FS
    - readAsync
    - getPath
    - Uint8Array::Uint8Array
    - mkdev
    - FS_getMode
    - subarray
    - join2
    - input
    - getDataBuf
    - now
    - makedev
    - registerDevice
    linkageType: ''
    returnType: void
    signature: "void EM_JS_MACROS(void, _emscripten_promising_main_js, (void), {\n
      \   // Define FS.createAsyncInputDevice(), This is quite similar to\n    //
      FS.createDevice() defined here:\n    // https://github.com/emscripten-core/emscripten/blob/4.0.11/src/lib/libfs.js?plain=1#L1642\n
      \   // but instead of returning one byte at a time, the input() function should\n
      \   // return a Uint8Array. This makes the handler code simpler, the\n    //
      `createAsyncInputDevice` simpler, and everything faster.\n    FS.createAsyncInputDevice
      = function(parent, name, input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: input
      Src: /src/cpython/Python/emscripten_syscalls.c:70,1
    - Dst: FS::FS
      Src: /src/cpython/Python/emscripten_syscalls.c:72,1
    - Dst: ErrnoError
      Src: /src/cpython/Python/emscripten_syscalls.c:72,1
    - Dst: FS::FS
      Src: /src/cpython/Python/emscripten_syscalls.c:75,1
    - Dst: ErrnoError
      Src: /src/cpython/Python/emscripten_syscalls.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: getDataBuf
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 1
    functionsReached:
    - ErrnoError
    - FS::FS
    - input
    linkageType: ''
    returnType: async
    signature: async getDataBuf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _emscripten_promising_main_js
      Src: /src/cpython/Python/emscripten_syscalls.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: _emscripten_promising_main
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - _emscripten_promising_main_js
    linkageType: ''
    returnType: void
    signature: void _emscripten_promising_main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __maybe_fd_read_async
      Src: /src/cpython/Python/emscripten_syscalls.c:220,1
    - Dst: __builtin_wasm_ref_is_null_extern
      Src: /src/cpython/Python/emscripten_syscalls.c:221,1
    - Dst: __wasi_fd_read_orig
      Src: /src/cpython/Python/emscripten_syscalls.c:222,1
    - Dst: __block_for_int
      Src: /src/cpython/Python/emscripten_syscalls.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - iovs
    - iovs_len
    - nread
    argTypes:
    - __wasi_fd_t
    - __wasi_iovec_t*
    - size_t
    - __wasi_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: __wasi_fd_read
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - __wasi_fd_read_orig
    - __builtin_wasm_ref_is_null_extern
    - __maybe_fd_read_async
    - __block_for_int
    linkageType: ''
    returnType: __wasi_errno_t
    signature: "__wasi_errno_t __wasi_fd_read(__wasi_fd_t fd, const __wasi_iovec_t
      *iovs,\n                              size_t iovs_len, __wasi_size_t *nread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __maybe_poll_async
      Src: /src/cpython/Python/emscripten_syscalls.c:286,1
    - Dst: __builtin_wasm_ref_is_null_extern
      Src: /src/cpython/Python/emscripten_syscalls.c:287,1
    - Dst: syscall_poll_orig
      Src: /src/cpython/Python/emscripten_syscalls.c:288,1
    - Dst: __block_for_int
      Src: /src/cpython/Python/emscripten_syscalls.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fds
    - nfds
    - timeout
    argTypes:
    - intptr_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: __syscall_poll
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - __maybe_poll_async
    - __builtin_wasm_ref_is_null_extern
    - __block_for_int
    - syscall_poll_orig
    linkageType: ''
    returnType: int
    signature: int __syscall_poll(intptr_t fds, int nfds, int timeout)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/cpython/Python/emscripten_syscalls.c:306,1
    - Dst: fcntl
      Src: /src/cpython/Python/emscripten_syscalls.c:316,1
    - Dst: syscall_ioctl_orig
      Src: /src/cpython/Python/emscripten_syscalls.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - fd
    - request
    - varargs
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 323
    functionName: __syscall_ioctl
    functionSourceFile: /src/cpython/Python/emscripten_syscalls.c
    functionUses: 0
    functionsReached:
    - syscall_ioctl_orig
    - fcntl
    linkageType: ''
    returnType: int
    signature: int __syscall_ioctl(int fd, int request, void* varargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __clear_cache
      Src: /src/cpython/Python/perf_trampoline.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: invalidate_icache
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - __clear_cache
    linkageType: ''
    returnType: void
    signature: void invalidate_icache(char* begin, char*end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/perf_trampoline.c:213,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/perf_trampoline.c:217,1
    - Dst: snprintf
      Src: /src/cpython/Python/perf_trampoline.c:219,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/perf_trampoline.c:220,1
    - Dst: snprintf
      Src: /src/cpython/Python/perf_trampoline.c:224,1
    - Dst: PyUnstable_WritePerfMapEntry
      Src: /src/cpython/Python/perf_trampoline.c:225,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/perf_trampoline.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - state
    - code_addr
    - code_size
    - co
    argTypes:
    - void*
    - void*
    - unsigned int
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 227
    functionName: perf_map_write_entry
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyUnicode_AsUTF8
    - snprintf
    - PyMem_RawMalloc
    - PyUnstable_WritePerfMapEntry
    linkageType: ''
    returnType: void
    signature: "void perf_map_write_entry(void *state, const void *code_addr,\n                         unsigned
      int code_size, PyCodeObject *co)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_PerfMapState_Init
      Src: /src/cpython/Python/perf_trampoline.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: perf_map_init_state
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - PyUnstable_PerfMapState_Init
    linkageType: ''
    returnType: void
    signature: 'void *

      perf_map_init_state(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_PerfMapState_Fini
      Src: /src/cpython/Python/perf_trampoline.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: perf_map_free_state
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - PyUnstable_PerfMapState_Fini
    linkageType: ''
    returnType: int
    signature: int perf_map_free_state(void *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 272
    functionName: round_up
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t round_up(int64_t value, int64_t multiple)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/perf_trampoline.c:281,1
    - Dst: sysconf
      Src: /src/cpython/Python/perf_trampoline.c:281,1
    - Dst: mmap
      Src: /src/cpython/Python/perf_trampoline.c:283,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/perf_trampoline.c:288,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/perf_trampoline.c:289,1
    - Dst: round_up
      Src: /src/cpython/Python/perf_trampoline.c:297,1
    - Dst: assert
      Src: /src/cpython/Python/perf_trampoline.c:298,1
    - Dst: memcpy
      Src: /src/cpython/Python/perf_trampoline.c:309,1
    - Dst: mprotect
      Src: /src/cpython/Python/perf_trampoline.c:312,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/perf_trampoline.c:314,1
    - Dst: munmap
      Src: /src/cpython/Python/perf_trampoline.c:315,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/perf_trampoline.c:316,1
    - Dst: invalidate_icache
      Src: /src/cpython/Python/perf_trampoline.c:324,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/perf_trampoline.c:327,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/perf_trampoline.c:329,1
    - Dst: munmap
      Src: /src/cpython/Python/perf_trampoline.c:330,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/perf_trampoline.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mem_size % sysconf(_SC_PAGESIZE) == 0)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/cpython/Python/perf_trampoline.c
    - condition: (chunk_size % trampoline_api.code_alignment == 0)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/cpython/Python/perf_trampoline.c
    constantsTouched: []
    func_position:
      end: 343
      start: 276
    functionDepth: 18
    functionLinenumber: 276
    functionLinenumberEnd: 343
    functionName: new_code_arena
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    - mmap
    - PyErr_FormatUnraisable
    - invalidate_icache
    - munmap
    - PyErr_SetFromErrno
    - mprotect
    - round_up
    - memcpy
    - sysconf
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int new_code_arena(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/cpython/Python/perf_trampoline.c:352,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/perf_trampoline.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: free_code_arenas
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - munmap
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void free_code_arenas(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: round_up
      Src: /src/cpython/Python/perf_trampoline.c:363,1
    - Dst: assert
      Src: /src/cpython/Python/perf_trampoline.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - code_arena
    argTypes:
    - code_arena_t*
    assertStmts:
    - condition: (total_code_size % trampoline_api.code_alignment == 0)
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/cpython/Python/perf_trampoline.c
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: code_arena_new_code
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - assert
    - round_up
    linkageType: ''
    returnType: py_trampoline
    signature: py_trampoline code_arena_new_code(code_arena_t *code_arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: round_up
      Src: /src/cpython/Python/perf_trampoline.c:374,1
    - Dst: new_code_arena
      Src: /src/cpython/Python/perf_trampoline.c:377,1
    - Dst: assert
      Src: /src/cpython/Python/perf_trampoline.c:381,1
    - Dst: code_arena_new_code
      Src: /src/cpython/Python/perf_trampoline.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (perf_code_arena->size_left <= perf_code_arena->size)
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/cpython/Python/perf_trampoline.c
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 19
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: compile_trampoline
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - code_arena_new_code
    - new_code_arena
    - assert
    - round_up
    linkageType: ''
    returnType: py_trampoline
    signature: py_trampoline compile_trampoline(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/perf_trampoline.c:393,1
    - Dst: assert
      Src: /src/cpython/Python/perf_trampoline.c:395,1
    - Dst: _PyCode_GetExtra
      Src: /src/cpython/Python/perf_trampoline.c:396,1
    - Dst: compile_trampoline
      Src: /src/cpython/Python/perf_trampoline.c:400,1
    - Dst: write_state
      Src: /src/cpython/Python/perf_trampoline.c:404,1
    - Dst: _PyCode_SetExtra
      Src: /src/cpython/Python/perf_trampoline.c:406,1
    - Dst: assert
      Src: /src/cpython/Python/perf_trampoline.c:410,1
    - Dst: f
      Src: /src/cpython/Python/perf_trampoline.c:411,1
    - Dst: prev_eval_frame
      Src: /src/cpython/Python/perf_trampoline.c:415,1
    - Dst: _PyEval_EvalFrameDefault
      Src: /src/cpython/Python/perf_trampoline.c:417,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - ts
    - frame
    - throw
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - int
    assertStmts:
    - condition: (extra_code_index != -1)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/cpython/Python/perf_trampoline.c
    - condition: (f != NULL)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Python/perf_trampoline.c
    constantsTouched: []
    func_position:
      end: 418
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 418
    functionName: py_trampoline_evaluator
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - f
    - write_state
    - _PyCode_SetExtra
    - _PyFrame_GetCode
    - compile_trampoline
    - _PyEval_EvalFrameDefault
    - prev_eval_frame
    - _PyCode_GetExtra
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_trampoline_evaluator(PyThreadState *ts, _PyInterpreterFrame
      *frame,\n                        int throw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/perf_trampoline.c:425,1
    - Dst: _PyCode_GetExtra
      Src: /src/cpython/Python/perf_trampoline.c:426,1
    - Dst: compile_trampoline
      Src: /src/cpython/Python/perf_trampoline.c:428,1
    - Dst: write_state
      Src: /src/cpython/Python/perf_trampoline.c:432,1
    - Dst: _PyCode_SetExtra
      Src: /src/cpython/Python/perf_trampoline.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (extra_code_index != -1)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/cpython/Python/perf_trampoline.c
    constantsTouched: []
    func_position:
      end: 439
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 439
    functionName: PyUnstable_PerfTrampoline_CompileCode
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 1
    functionsReached:
    - write_state
    - _PyCode_SetExtra
    - compile_trampoline
    - _PyCode_GetExtra
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnstable_PerfTrampoline_CompileCode(PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/perf_trampoline.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: _PyIsPerfTrampolineActive
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int _PyIsPerfTrampolineActive(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - callbacks
    argTypes:
    - _PyPerf_Callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 463
    functionName: _PyPerfTrampoline_GetCallbacks
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *callbacks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyPerfTrampoline_Fini
      Src: /src/cpython/Python/perf_trampoline.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - callbacks
    argTypes:
    - _PyPerf_Callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 481
    functionName: _PyPerfTrampoline_SetCallbacks
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - _PyPerfTrampoline_Fini
    linkageType: ''
    returnType: int
    signature: int _PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *callbacks)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/perf_trampoline.c:487,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Python/perf_trampoline.c:489,1
    - Dst: _PyInterpreterState_GetEvalFrameFunc
      Src: /src/cpython/Python/perf_trampoline.c:493,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Python/perf_trampoline.c:494,1
    - Dst: _PyEval_RequestCodeExtraIndex
      Src: /src/cpython/Python/perf_trampoline.c:495,1
    - Dst: init_state
      Src: /src/cpython/Python/perf_trampoline.c:500,1
    - Dst: new_code_arena
      Src: /src/cpython/Python/perf_trampoline.c:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - activate
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 483
    functionDepth: 19
    functionLinenumber: 483
    functionLinenumberEnd: 509
    functionName: _PyPerfTrampoline_Init
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - init_state
    - _PyEval_RequestCodeExtraIndex
    - _PyThreadState_GET
    - new_code_arena
    - _PyInterpreterState_SetEvalFrameFunc
    - _PyInterpreterState_GetEvalFrameFunc
    linkageType: ''
    returnType: int
    signature: int _PyPerfTrampoline_Init(int activate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/perf_trampoline.c:518,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Python/perf_trampoline.c:520,1
    - Dst: free_state
      Src: /src/cpython/Python/perf_trampoline.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 530
    functionName: _PyPerfTrampoline_Fini
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _PyInterpreterState_SetEvalFrameFunc
    - free_state
    linkageType: ''
    returnType: int
    signature: int _PyPerfTrampoline_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_code_arenas
      Src: /src/cpython/Python/perf_trampoline.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: _PyPerfTrampoline_FreeArenas
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 0
    functionsReached:
    - free_code_arenas
    linkageType: ''
    returnType: void
    signature: void _PyPerfTrampoline_FreeArenas(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: PyUnstable_PerfTrampoline_SetPersistAfterFork
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnstable_PerfTrampoline_SetPersistAfterFork(int enable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStatus_Error
      Src: /src/cpython/Python/perf_trampoline.c:554,1
    - Dst: _PyPerfTrampoline_Fini
      Src: /src/cpython/Python/perf_trampoline.c:556,1
    - Dst: getppid
      Src: /src/cpython/Python/perf_trampoline.c:558,1
    - Dst: snprintf
      Src: /src/cpython/Python/perf_trampoline.c:559,1
    - Dst: PyUnstable_CopyPerfMapFile
      Src: /src/cpython/Python/perf_trampoline.c:560,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Python/perf_trampoline.c:561,1
    - Dst: _PyIsPerfTrampolineActive
      Src: /src/cpython/Python/perf_trampoline.c:565,1
    - Dst: _PyPerfTrampoline_Fini
      Src: /src/cpython/Python/perf_trampoline.c:566,1
    - Dst: _PyPerfTrampoline_Init
      Src: /src/cpython/Python/perf_trampoline.c:568,1
    - Dst: PyStatus_Ok
      Src: /src/cpython/Python/perf_trampoline.c:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 548
    functionDepth: 20
    functionLinenumber: 548
    functionLinenumberEnd: 573
    functionName: _PyPerfTrampoline_AfterFork_Child
    functionSourceFile: /src/cpython/Python/perf_trampoline.c
    functionUses: 1
    functionsReached:
    - getppid
    - _PyPerfTrampoline_Fini
    - PyStatus_Error
    - PyStatus_Ok
    - PyUnstable_CopyPerfMapFile
    - _PyPerfTrampoline_Init
    - _PyIsPerfTrampolineActive
    - snprintf
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPerfTrampoline_AfterFork_Child(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: LEAST_FIVE_BITS
    functionSourceFile: /src/cpython/Python/suggestions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAST_FIVE_BITS(n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LEAST_FIVE_BITS
      Src: /src/cpython/Python/suggestions.c:19,1
    - Dst: LEAST_FIVE_BITS
      Src: /src/cpython/Python/suggestions.c:19,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 36
    functionName: substitution_cost
    functionSourceFile: /src/cpython/Python/suggestions.c
    functionUses: 0
    functionsReached:
    - LEAST_FIVE_BITS
    linkageType: ''
    returnType: int
    signature: int substitution_cost(char a, char b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: substitution_cost
      Src: /src/cpython/Python/suggestions.c:105,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/suggestions.c:110,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/suggestions.c:111,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 6
    argNames:
    - a
    - a_size
    - b
    - b_size
    - max_cost
    - buffer
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 125
    functionName: levenshtein_distance
    functionSourceFile: /src/cpython/Python/suggestions.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - substitution_cost
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t levenshtein_distance(const char *a, size_t a_size,\n                     const
      char *b, size_t b_size,\n                     size_t max_cost, size_t *buffer)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/suggestions.c:131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/suggestions.c:131,1
    - Dst: assert
      Src: /src/cpython/Python/suggestions.c:132,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/suggestions.c:132,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/suggestions.c:134,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/suggestions.c:142,1
    - Dst: PyMem_New
      Src: /src/cpython/Python/suggestions.c:146,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/suggestions.c:148,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/suggestions.c:151,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/suggestions.c:152,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/suggestions.c:156,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/suggestions.c:158,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/suggestions.c:164,1
    - Dst: levenshtein_distance
      Src: /src/cpython/Python/suggestions.c:166,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/suggestions.c:176,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/suggestions.c:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - dir
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/cpython/Python/suggestions.c
    - condition: (PyList_CheckExact(dir))
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Python/suggestions.c
    constantsTouched: []
    func_position:
      end: 178
      start: 127
    functionDepth: 8
    functionLinenumber: 127
    functionLinenumberEnd: 178
    functionName: _Py_CalculateSuggestions
    functionSourceFile: /src/cpython/Python/suggestions.c
    functionUses: 4
    functionsReached:
    - PyList_CheckExact
    - Py_MIN
    - PyList_GET_ITEM
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - PyList_GET_SIZE
    - PyMem_Free
    - _PyUnicode_Equal
    - PyMem_New
    - Py_XNewRef
    - levenshtein_distance
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_CalculateSuggestions(PyObject *dir,\n                      PyObject
      *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/suggestions.c:183,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/suggestions.c:183,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/suggestions.c:183,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/suggestions.c:185,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/suggestions.c:189,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/suggestions.c:194,1
    - Dst: PyMem_New
      Src: /src/cpython/Python/suggestions.c:196,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/suggestions.c:198,1
    - Dst: levenshtein_distance
      Src: /src/cpython/Python/suggestions.c:201,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/suggestions.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - a
    - b
    - max_cost
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_Check(a) && PyUnicode_Check(b))
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Python/suggestions.c
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 8
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: _Py_UTF8_Edit_Cost
    functionSourceFile: /src/cpython/Python/suggestions.c
    functionUses: 1
    functionsReached:
    - Py_MAX
    - PyUnicode_AsUTF8AndSize
    - PyMem_Free
    - PyMem_New
    - levenshtein_distance
    - PyUnicode_Check
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_UTF8_Edit_Cost(PyObject *a, PyObject *b, Py_ssize_t
      max_cost)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - values
    - i
    - j
    argTypes:
    - int32_t*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: swap
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(int32_t *values, Py_ssize_t i, Py_ssize_t j)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/cpython/Python/index_pool.c:35,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - heap
    - i
    - j
    argTypes:
    - _PyIndexHeap*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: heap_try_swap
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: bool
    signature: bool heap_try_swap(_PyIndexHeap *heap, Py_ssize_t i, Py_ssize_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: parent
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t parent(Py_ssize_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: left_child
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t left_child(Py_ssize_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: right_child
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t right_child(Py_ssize_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/index_pool.c:60,1
    - Dst: parent
      Src: /src/cpython/Python/index_pool.c:65,1
    - Dst: heap_try_swap
      Src: /src/cpython/Python/index_pool.c:66,1
    - Dst: parent
      Src: /src/cpython/Python/index_pool.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - heap
    - val
    argTypes:
    - _PyIndexHeap*
    - int32_t
    assertStmts:
    - condition: (heap->size < heap->capacity)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/cpython/Python/index_pool.c
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: heap_add
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached:
    - heap_try_swap
    - parent
    - assert
    linkageType: ''
    returnType: void
    signature: void heap_add(_PyIndexHeap *heap, int32_t val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: left_child
      Src: /src/cpython/Python/index_pool.c:75,1
    - Dst: right_child
      Src: /src/cpython/Python/index_pool.c:76,1
    - Dst: left_child
      Src: /src/cpython/Python/index_pool.c:77,1
    - Dst: right_child
      Src: /src/cpython/Python/index_pool.c:78,1
    - Dst: left_child
      Src: /src/cpython/Python/index_pool.c:79,1
    - Dst: right_child
      Src: /src/cpython/Python/index_pool.c:79,1
    - Dst: left_child
      Src: /src/cpython/Python/index_pool.c:81,1
    - Dst: right_child
      Src: /src/cpython/Python/index_pool.c:83,1
    - Dst: right_child
      Src: /src/cpython/Python/index_pool.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - heap
    - i
    argTypes:
    - _PyIndexHeap*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: heap_min_child
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached:
    - left_child
    - right_child
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t heap_min_child(_PyIndexHeap *heap, Py_ssize_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/index_pool.c:92,1
    - Dst: heap_min_child
      Src: /src/cpython/Python/index_pool.c:99,1
    - Dst: heap_try_swap
      Src: /src/cpython/Python/index_pool.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - heap
    argTypes:
    - _PyIndexHeap*
    assertStmts:
    - condition: (heap->size > 0)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/cpython/Python/index_pool.c
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: heap_pop
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached:
    - heap_min_child
    - heap_try_swap
    - assert
    linkageType: ''
    returnType: int32_t
    signature: int32_t heap_pop(_PyIndexHeap *heap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/index_pool.c:113,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/index_pool.c:124,1
    - Dst: memcpy
      Src: /src/cpython/Python/index_pool.c:129,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/index_pool.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - heap
    - limit
    argTypes:
    - _PyIndexHeap*
    - Py_ssize_t
    assertStmts:
    - condition: (limit > 0)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/cpython/Python/index_pool.c
    constantsTouched: []
    func_position:
      end: 135
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 135
    functionName: heap_ensure_capacity
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyMem_RawCalloc
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: int
    signature: int heap_ensure_capacity(_PyIndexHeap *heap, Py_ssize_t limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/index_pool.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - heap
    argTypes:
    - _PyIndexHeap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: heap_fini
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void heap_fini(_PyIndexHeap *heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: LOCK_POOL
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_POOL(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: UNLOCK_POOL
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_POOL(pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_POOL
      Src: /src/cpython/Python/index_pool.c:154,1
    - Dst: heap_ensure_capacity
      Src: /src/cpython/Python/index_pool.c:165,1
    - Dst: UNLOCK_POOL
      Src: /src/cpython/Python/index_pool.c:166,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/index_pool.c:167,1
    - Dst: heap_pop
      Src: /src/cpython/Python/index_pool.c:173,1
    - Dst: UNLOCK_POOL
      Src: /src/cpython/Python/index_pool.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - pool
    argTypes:
    - _PyIndexPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 151
    functionDepth: 8
    functionLinenumber: 151
    functionLinenumberEnd: 180
    functionName: _PyIndexPool_AllocIndex
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 1
    functionsReached:
    - UNLOCK_POOL
    - heap_ensure_capacity
    - LOCK_POOL
    - heap_pop
    - PyErr_NoMemory
    linkageType: ''
    returnType: int32_t
    signature: int32_t _PyIndexPool_AllocIndex(_PyIndexPool *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_POOL
      Src: /src/cpython/Python/index_pool.c:185,1
    - Dst: heap_add
      Src: /src/cpython/Python/index_pool.c:187,1
    - Dst: UNLOCK_POOL
      Src: /src/cpython/Python/index_pool.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - index
    argTypes:
    - _PyIndexPool*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: _PyIndexPool_FreeIndex
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 1
    functionsReached:
    - LOCK_POOL
    - heap_add
    - UNLOCK_POOL
    linkageType: ''
    returnType: void
    signature: void _PyIndexPool_FreeIndex(_PyIndexPool *pool, int32_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heap_fini
      Src: /src/cpython/Python/index_pool.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - _PyIndexPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: _PyIndexPool_Fini
    functionSourceFile: /src/cpython/Python/index_pool.c
    functionUses: 1
    functionsReached:
    - heap_fini
    linkageType: ''
    returnType: void
    signature: void _PyIndexPool_Fini(_PyIndexPool *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Python/pyhash.c:93,1
    - Dst: isinf
      Src: /src/cpython/Python/pyhash.c:94,1
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Python/pyhash.c:97,1
    - Dst: frexp
      Src: /src/cpython/Python/pyhash.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - inst
    - v
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 130
    functionName: _Py_HashDouble
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 2
    functionsReached:
    - frexp
    - isinf
    - isfinite
    - PyObject_GenericHash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t _Py_HashDouble(PyObject *inst, double v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashPointerRaw
      Src: /src/cpython/Python/pyhash.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: Py_HashPointer
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 4
    functionsReached:
    - _Py_HashPointerRaw
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t Py_HashPointer(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_HashPointer
      Src: /src/cpython/Python/pyhash.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: PyObject_GenericHash
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 6
    functionsReached:
    - Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyObject_GenericHash(PyObject *obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/pyhash.c:181,1
    - Dst: hash
      Src: /src/cpython/Python/pyhash.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: Py_HashBuffer
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 11
    functionsReached:
    - Py_UNREACHABLE
    - hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t Py_HashBuffer(const void *ptr, Py_ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/pyhash.c:203,1
    - Dst: fprintf
      Src: /src/cpython/Python/pyhash.c:207,1
    - Dst: fprintf
      Src: /src/cpython/Python/pyhash.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: _PyHash_Fini
    functionSourceFile: /src/cpython/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: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: PyHash_GetFuncDef
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 1
    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: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: PY_UHASH_CPY
    functionSourceFile: /src/cpython/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: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: PY_UHASH_CPY
    functionSourceFile: /src/cpython/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: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: PY_UHASH_CPY
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_UHASH_CPY(dst, src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pyhash.c:255,1
    - Dst: PY_UHASH_CPY
      Src: /src/cpython/Python/pyhash.c:268,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: 254
        line_start: 254
        source_file: /src/cpython/Python/pyhash.c
    constantsTouched: []
    func_position:
      end: 281
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 281
    functionName: fnv
    functionSourceFile: /src/cpython/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: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: _le64toh
    functionSourceFile: /src/cpython/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/cpython/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: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: _le64toh
    functionSourceFile: /src/cpython/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: 346
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 346
    functionName: _le64toh
    functionSourceFile: /src/cpython/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: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: ROTATE
    functionSourceFile: /src/cpython/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: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: ROTATE
    functionSourceFile: /src/cpython/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: 360
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: HALF_ROUND
    functionSourceFile: /src/cpython/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: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: SINGLE_ROUND
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SINGLE_ROUND(v0,v1,v2,v3)
  - 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: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: DOUBLE_ROUND
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOUBLE_ROUND(v0,v1,v2,v3)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Python/pyhash.c:385,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:386,1
    - Dst: SINGLE_ROUND
      Src: /src/cpython/Python/pyhash.c:390,1
    - Dst: memcpy
      Src: /src/cpython/Python/pyhash.c:400,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:405,1
    - Dst: SINGLE_ROUND
      Src: /src/cpython/Python/pyhash.c:408,1
    - Dst: SINGLE_ROUND
      Src: /src/cpython/Python/pyhash.c:411,1
    - Dst: SINGLE_ROUND
      Src: /src/cpython/Python/pyhash.c:412,1
    - Dst: SINGLE_ROUND
      Src: /src/cpython/Python/pyhash.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 4
    argNames:
    - k0
    - k1
    - src
    - src_sz
    argTypes:
    - uint64_t
    - uint64_t
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 418
    functionName: siphash13
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SINGLE_ROUND
    - _le64toh
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t siphash13(uint64_t k0, uint64_t k1, const void *src, Py_ssize_t
      src_sz)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Python/pyhash.c:436,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:437,1
    - Dst: DOUBLE_ROUND
      Src: /src/cpython/Python/pyhash.c:441,1
    - Dst: memcpy
      Src: /src/cpython/Python/pyhash.c:451,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:456,1
    - Dst: DOUBLE_ROUND
      Src: /src/cpython/Python/pyhash.c:459,1
    - Dst: DOUBLE_ROUND
      Src: /src/cpython/Python/pyhash.c:462,1
    - Dst: DOUBLE_ROUND
      Src: /src/cpython/Python/pyhash.c:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 4
    argNames:
    - k0
    - k1
    - src
    - src_sz
    argTypes:
    - uint64_t
    - uint64_t
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 468
    functionName: siphash24
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 1
    functionsReached:
    - memcpy
    - _le64toh
    - DOUBLE_ROUND
    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: siphash13
      Src: /src/cpython/Python/pyhash.c:474,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: 475
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: _Py_KeyedHash
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 1
    functionsReached:
    - siphash13
    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: siphash13
      Src: /src/cpython/Python/pyhash.c:481,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:482,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - src_sz
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: pysiphash
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 0
    functionsReached:
    - siphash13
    - _le64toh
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t pysiphash(const void *src, Py_ssize_t src_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siphash24
      Src: /src/cpython/Python/pyhash.c:492,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:493,1
    - Dst: _le64toh
      Src: /src/cpython/Python/pyhash.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - src_sz
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: pysiphash
    functionSourceFile: /src/cpython/Python/pyhash.c
    functionUses: 0
    functionsReached:
    - _le64toh
    - siphash24
    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/cpython/Python/thread_nt.h:39,1
    - Dst: PyCOND_INIT
      Src: /src/cpython/Python/thread_nt.h:42,1
    - Dst: PyMUTEX_INIT
      Src: /src/cpython/Python/thread_nt.h:44,1
    - Dst: PyCOND_FINI
      Src: /src/cpython/Python/thread_nt.h:45,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/thread_nt.h:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: AllocNonRecursiveMutex
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyMUTEX_INIT
    - PyMem_RawMalloc
    - PyCOND_FINI
    - PyCOND_INIT
    linkageType: ''
    returnType: PNRMUTEX
    signature: PNRMUTEX AllocNonRecursiveMutex(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCOND_FINI
      Src: /src/cpython/Python/thread_nt.h:59,1
    - Dst: PyMUTEX_FINI
      Src: /src/cpython/Python/thread_nt.h:60,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/thread_nt.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: FreeNonRecursiveMutex
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyCOND_FINI
    - PyMUTEX_FINI
    linkageType: ''
    returnType: VOID
    signature: VOID FreeNonRecursiveMutex(PNRMUTEX mutex)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyMUTEX_LOCK
      Src: /src/cpython/Python/thread_nt.h:69,1
    - Dst: PyCOND_WAIT
      Src: /src/cpython/Python/thread_nt.h:73,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Python/thread_nt.h:81,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Python/thread_nt.h:83,1
    - Dst: PyCOND_TIMEDWAIT
      Src: /src/cpython/Python/thread_nt.h:85,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Python/thread_nt.h:90,1
    - Dst: PyMUTEX_UNLOCK
      Src: /src/cpython/Python/thread_nt.h:102,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - mutex
    - milliseconds
    argTypes:
    - PNRMUTEX
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 104
    functionName: EnterNonRecursiveMutex
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - _PyDeadline_Init
    - PyCOND_WAIT
    - _PyTime_AsMicroseconds
    - _PyDeadline_Get
    - PyMUTEX_LOCK
    - PyMUTEX_UNLOCK
    - PyCOND_TIMEDWAIT
    linkageType: ''
    returnType: DWORD
    signature: DWORD EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMUTEX_LOCK
      Src: /src/cpython/Python/thread_nt.h:110,1
    - Dst: PyCOND_SIGNAL
      Src: /src/cpython/Python/thread_nt.h:114,1
    - Dst: PyMUTEX_UNLOCK
      Src: /src/cpython/Python/thread_nt.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: LeaveNonRecursiveMutex
    functionSourceFile: /src/cpython/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/cpython/Python/thread_nt.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: AllocNonRecursiveMutex
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - CreateSemaphore
    linkageType: ''
    returnType: PNRMUTEX
    signature: PNRMUTEX AllocNonRecursiveMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/cpython/Python/thread_nt.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: FreeNonRecursiveMutex
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: VOID
    signature: VOID FreeNonRecursiveMutex(PNRMUTEX mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Python/thread_nt.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mutex
    - milliseconds
    argTypes:
    - PNRMUTEX
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: EnterNonRecursiveMutex
    functionSourceFile: /src/cpython/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/cpython/Python/thread_nt.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: LeaveNonRecursiveMutex
    functionSourceFile: /src/cpython/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: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: PyThread__init_thread
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyThread__init_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HeapFree
      Src: /src/cpython/Python/thread_nt.h:182,1
    - Dst: GetProcessHeap
      Src: /src/cpython/Python/thread_nt.h:182,1
    - Dst: func
      Src: /src/cpython/Python/thread_nt.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - call
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: bootstrap
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - GetProcessHeap
    - HeapFree
    - func
    linkageType: ''
    returnType: unsigned
    signature: unsigned bootstrap(void *call)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/thread_nt.h:195,1
    - Dst: HeapAlloc
      Src: /src/cpython/Python/thread_nt.h:197,1
    - Dst: GetProcessHeap
      Src: /src/cpython/Python/thread_nt.h:197,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/thread_nt.h:202,1
    - Dst: _beginthreadex
      Src: /src/cpython/Python/thread_nt.h:204,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Python/thread_nt.h:205,1
    - Dst: HeapFree
      Src: /src/cpython/Python/thread_nt.h:212,1
    - Dst: GetProcessHeap
      Src: /src/cpython/Python/thread_nt.h:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - arg
    - ident
    - handle
    argTypes:
    - void*
    - PyThread_ident_t*
    - PyThread_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: PyThread_start_joinable_thread
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 1
    functionsReached:
    - HeapFree
    - PyThread_init_thread
    - HeapAlloc
    - _PyThreadState_GET
    - _beginthreadex
    - Py_SAFE_DOWNCAST
    - GetProcessHeap
    linkageType: ''
    returnType: int
    signature: "int PyThread_start_joinable_thread(void (*func)(void *), void *arg,\n
      \                              PyThread_ident_t* ident, PyThread_handle_t* handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_start_joinable_thread
      Src: /src/cpython/Python/thread_nt.h:225,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/thread_nt.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: PyThread_start_new_thread
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 13
    functionsReached:
    - CloseHandle
    - PyThread_start_joinable_thread
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_start_new_thread(void (*func)(void *), void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/cpython/Python/thread_nt.h:236,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/thread_nt.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - PyThread_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: PyThread_join_thread
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 1
    functionsReached:
    - WaitForSingleObject
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int PyThread_join_thread(PyThread_handle_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/cpython/Python/thread_nt.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - PyThread_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: PyThread_detach_thread
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 1
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int PyThread_detach_thread(PyThread_handle_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/thread_nt.h:255,1
    - Dst: GetCurrentThreadId
      Src: /src/cpython/Python/thread_nt.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: PyThread_get_thread_ident_ex
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 12
    functionsReached:
    - PyThread_init_thread
    - GetCurrentThreadId
    linkageType: ''
    returnType: PyThread_ident_t
    signature: PyThread_ident_t PyThread_get_thread_ident_ex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/thread_nt.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: PyThread_get_thread_ident
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 9
    functionsReached:
    - PyThread_get_thread_ident_ex
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_ident(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/thread_nt.h:277,1
    - Dst: GetCurrentThreadId
      Src: /src/cpython/Python/thread_nt.h:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: PyThread_get_thread_native_id
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 3
    functionsReached:
    - PyThread_init_thread
    - GetCurrentThreadId
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_native_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/cpython/Python/thread_nt.h:290,1
    - Dst: _endthreadex
      Src: /src/cpython/Python/thread_nt.h:291,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/thread_nt.h:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: _Py_NO_RETURN::PyThread_exit_thread
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - exit
    - _endthreadex
    - Py_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      PyThread_exit_thread(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SleepEx
      Src: /src/cpython/Python/thread_nt.h:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: _Py_NO_RETURN::PyThread_hang_thread
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - SleepEx
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      PyThread_hang_thread(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/thread_nt.h:316,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/thread_nt.h:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: _pythread_nt_set_stacksize
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    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: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: THREAD_SET_STACKSIZE
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_SET_STACKSIZE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/cpython/Python/thread_nt.h:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: PyThread_create_key
    functionSourceFile: /src/cpython/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/cpython/Python/thread_nt.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: PyThread_delete_key
    functionSourceFile: /src/cpython/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/cpython/Python/thread_nt.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: PyThread_set_key_value
    functionSourceFile: /src/cpython/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: TlsGetValue
      Src: /src/cpython/Python/thread_nt.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: PyThread_get_key_value
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - TlsGetValue
    linkageType: ''
    returnType: void
    signature: 'void *

      PyThread_get_key_value(int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsSetValue
      Src: /src/cpython/Python/thread_nt.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 372
    functionName: PyThread_delete_key_value
    functionSourceFile: /src/cpython/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: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: PyThread_ReInitTLS
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyThread_ReInitTLS(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread_nt.h:392,1
    - Dst: TlsAlloc
      Src: /src/cpython/Python/thread_nt.h:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/cpython/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 406
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 406
    functionName: PyThread_tss_create
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 2
    functionsReached:
    - TlsAlloc
    - assert
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_create(Py_tss_t *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread_nt.h:411,1
    - Dst: TlsFree
      Src: /src/cpython/Python/thread_nt.h:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/cpython/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: PyThread_tss_delete
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 3
    functionsReached:
    - TlsFree
    - assert
    linkageType: ''
    returnType: void
    signature: void PyThread_tss_delete(Py_tss_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread_nt.h:425,1
    - Dst: TlsSetValue
      Src: /src/cpython/Python/thread_nt.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - Py_tss_t*
    - void*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/cpython/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: PyThread_tss_set
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 2
    functionsReached:
    - TlsSetValue
    - assert
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_set(Py_tss_t *key, void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/thread_nt.h:433,1
    - Dst: GetLastError
      Src: /src/cpython/Python/thread_nt.h:434,1
    - Dst: TlsGetValue
      Src: /src/cpython/Python/thread_nt.h:435,1
    - Dst: GetLastError
      Src: /src/cpython/Python/thread_nt.h:436,1
    - Dst: SetLastError
      Src: /src/cpython/Python/thread_nt.h:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/cpython/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: PyThread_tss_get
    functionSourceFile: /src/cpython/Python/thread_nt.h
    functionUses: 2
    functionsReached:
    - TlsGetValue
    - SetLastError
    - GetLastError
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      PyThread_tss_get(Py_tss_t *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getversion.c:22,1
    - Dst: Py_GetBuildInfo
      Src: /src/cpython/Python/getversion.c:23,1
    - Dst: Py_GetCompiler
      Src: /src/cpython/Python/getversion.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 24
    functionName: _Py_InitVersion
    functionSourceFile: /src/cpython/Python/getversion.c
    functionUses: 0
    functionsReached:
    - Py_GetCompiler
    - PyOS_snprintf
    - Py_GetBuildInfo
    linkageType: ''
    returnType: void
    signature: void _Py_InitVersion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_InitVersion
      Src: /src/cpython/Python/getversion.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: Py_GetVersion
    functionSourceFile: /src/cpython/Python/getversion.c
    functionUses: 2
    functionsReached:
    - _Py_InitVersion
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetVersion(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/initconfig.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: config_sys_flag_long
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      config_sys_flag_long(int value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_sys_flag_long
      Src: /src/cpython/Python/initconfig.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: config_sys_flag_not
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_sys_flag_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      config_sys_flag_not(int value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - MEMBER
    - ','
    - TYPE
    - ','
    - VISIBILITY
    - ','
    - sys
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: SPEC
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPEC(MEMBER, TYPE, VISIBILITY, sys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: SYS_ATTR
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYS_ATTR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - setter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: SYS_FLAG_SETTER
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYS_FLAG_SETTER(index, setter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: SYS_FLAG
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYS_FLAG(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - MEMBER
    - ','
    - TYPE
    - ','
    - VISIBILITY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: SPEC
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPEC(MEMBER, TYPE, VISIBILITY)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/initconfig.c:493,1
    - Dst: SET_ITEM_STR
      Src: /src/cpython/Python/initconfig.c:519,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:520,1
    - Dst: SET_ITEM_STR
      Src: /src/cpython/Python/initconfig.c:521,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:522,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:524,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:525,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:526,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:527,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:528,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:529,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:531,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:532,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:533,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:534,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:535,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:536,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:537,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:538,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:539,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:540,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:543,1
    - Dst: SET_ITEM_INT
      Src: /src/cpython/Python/initconfig.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 486
    functionDepth: 10
    functionLinenumber: 486
    functionLinenumberEnd: 558
    functionName: _Py_GetGlobalVariablesAsDict
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - SET_ITEM_STR
    - SET_ITEM_INT
    - PyDict_New
    - Py_DECREF
    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: 510
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: SET_ITEM
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 220
    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: 512
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: SET_ITEM_INT
    functionSourceFile: /src/cpython/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: 516
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: FROM_STRING
    functionSourceFile: /src/cpython/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: 518
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 518
    functionName: SET_ITEM_STR
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_STR(VAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/cpython/Python/initconfig.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 570
    functionName: Py_GETENV
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 8
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GETENV(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: _Py_COMP_DIAG_IGNORE_DEPR_DECLS
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _Py_COMP_DIAG_PUSH
    signature: "_Py_COMP_DIAG_PUSH _Py_COMP_DIAG_IGNORE_DEPR_DECLS\n    if (Py_IgnoreEnvironmentFlag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 575
    functionName: PyStatus_Ok
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 2
    functionsReached:
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyStatus_Ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - err_msg
    argTypes:
    - char*
    assertStmts:
    - condition: (err_msg != NULL)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: PyStatus_Error
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyStatus_Error(const char *err_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStatus_Error
      Src: /src/cpython/Python/initconfig.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 585
    functionName: PyStatus_NoMemory
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 3
    functionsReached:
    - PyStatus_Error
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyStatus_NoMemory(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 588
    functionName: PyStatus_Exit
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 592
    functionName: PyStatus_IsError
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: PyStatus_IsExit
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: PyStatus_Exception
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 6
    functionsReached:
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: int
    signature: int PyStatus_Exception(PyStatus status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_ERROR
      Src: /src/cpython/Python/initconfig.c:603,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:604,1
    - Dst: strlen
      Src: /src/cpython/Python/initconfig.c:610,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:611,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:616,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/initconfig.c:617,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:623,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:626,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 600
    functionDepth: 14
    functionLinenumber: 600
    functionLinenumberEnd: 628
    functionName: _PyErr_SetFromPyStatus
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 3
    functionsReached:
    - strlen
    - strcmp
    - PyErr_Format
    - PyErr_NoMemory
    - _PyStatus_IS_ERROR
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetFromPyStatus(PyStatus status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:637,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:639,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyWideStringList*
    assertStmts:
    - condition: (list->length >= 0)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/cpython/Python/initconfig.c
    - condition: (list->items[i] != NULL)
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/cpython/Python/initconfig.c
    - condition: (list->items != NULL)
      pos:
        line_end: 638
        line_start: 638
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 645
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 645
    functionName: _PyWideStringList_CheckConsistency
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyWideStringList_CheckConsistency(const PyWideStringList *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:653,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:653,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/initconfig.c:656,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:659,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/initconfig.c:663,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - list
    - use_default_allocator
    argTypes:
    - PyWideStringList*
    - bool
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(list))
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 670
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 670
    functionName: _PyWideStringList_ClearEx
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _PyWideStringList_CheckConsistency
    - _PyMem_DefaultRawFree
    - assert
    linkageType: ''
    returnType: void
    signature: "void _PyWideStringList_ClearEx(PyWideStringList *list,\n                          bool
      use_default_allocator)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_ClearEx
      Src: /src/cpython/Python/initconfig.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: _PyWideStringList_Clear
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 2
    functionsReached:
    - _PyWideStringList_ClearEx
    linkageType: ''
    returnType: void
    signature: void _PyWideStringList_Clear(PyWideStringList *list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:683,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:683,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:684,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:684,1
    - Dst: _PyWideStringList_ClearEx
      Src: /src/cpython/Python/initconfig.c:687,1
    - Dst: _PyMem_DefaultRawMalloc
      Src: /src/cpython/Python/initconfig.c:695,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/initconfig.c:698,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/initconfig.c:707,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:710,1
    - Dst: _PyWideStringList_ClearEx
      Src: /src/cpython/Python/initconfig.c:713,1
    - Dst: _PyWideStringList_ClearEx
      Src: /src/cpython/Python/initconfig.c:720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - list
    - list2
    - use_default_allocator
    argTypes:
    - PyWideStringList*
    - PyWideStringList*
    - bool
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(list))
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/cpython/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(list2))
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 723
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 723
    functionName: _PyWideStringList_CopyEx
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawMalloc
    - PyMem_RawMalloc
    - _PyWideStringList_ClearEx
    - _PyMem_DefaultRawWcsdup
    - _PyWideStringList_CheckConsistency
    - _PyMem_RawWcsdup
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyWideStringList_CopyEx(PyWideStringList *list,\n                         const
      PyWideStringList *list2,\n                         bool use_default_allocator)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_CopyEx
      Src: /src/cpython/Python/initconfig.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - list2
    argTypes:
    - PyWideStringList*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 4
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: _PyWideStringList_Copy
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyWideStringList_CopyEx
    linkageType: ''
    returnType: int
    signature: int _PyWideStringList_Copy(PyWideStringList *list, const PyWideStringList
      *list2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:738,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:741,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:747,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:749,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Python/initconfig.c:753,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:755,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:756,1
    - Dst: memmove
      Src: /src/cpython/Python/initconfig.c:760,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:768,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: 769
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 769
    functionName: PyWideStringList_Insert
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - PyMem_RawFree
    - memmove
    - PyMem_RawRealloc
    - _PyStatus_ERR
    - _PyMem_RawWcsdup
    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/cpython/Python/initconfig.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 776
    functionName: PyWideStringList_Append
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    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/cpython/Python/initconfig.c:783,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:784,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - list
    - list2
    argTypes:
    - PyWideStringList*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 789
    functionName: _PyWideStringList_Extend
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - PyWideStringList_Append
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyWideStringList_Extend(PyWideStringList *list, const PyWideStringList
      *list2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 801
    functionName: _PyWideStringList_Find
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:807,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:807,1
    - Dst: PyList_New
      Src: /src/cpython/Python/initconfig.c:809,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/initconfig.c:815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:817,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/initconfig.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyWideStringList*
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(list))
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 823
      start: 804
    functionDepth: 5
    functionLinenumber: 804
    functionLinenumberEnd: 823
    functionName: _PyWideStringList_AsList
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_SET_ITEM
    - PyUnicode_FromWideChar
    - _PyWideStringList_CheckConsistency
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyWideStringList_AsList(const PyWideStringList *list)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:829,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:829,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/initconfig.c:831,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/initconfig.c:837,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:839,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/initconfig.c:842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyWideStringList*
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(list))
      pos:
        line_end: 828
        line_start: 828
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 845
      start: 826
    functionDepth: 5
    functionLinenumber: 826
    functionLinenumberEnd: 845
    functionName: _PyWideStringList_AsTuple
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyUnicode_FromWideChar
    - _PyWideStringList_CheckConsistency
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyWideStringList_AsTuple(const PyWideStringList *list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_ClearEx
      Src: /src/cpython/Python/initconfig.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: _Py_ClearArgcArgv
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyWideStringList_ClearEx
    linkageType: ''
    returnType: void
    signature: void _Py_ClearArgcArgv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_CopyEx
      Src: /src/cpython/Python/initconfig.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - Py_ssize_t
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 857
    functionDepth: 4
    functionLinenumber: 857
    functionLinenumberEnd: 865
    functionName: _Py_SetArgcArgv
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyWideStringList_CopyEx
    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: 874
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 874
    functionName: Py_GetArgcArgv
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetArgcArgv(int *argc, wchar_t ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:887,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:888,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:889,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:890,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:891,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:892,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:893,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:894,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:895,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:896,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:897,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:898,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:899,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:900,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:901,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:902,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:903,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:904,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:905,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:906,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:907,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:908,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:909,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:910,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:911,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:912,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:913,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:914,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:914,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:915,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:915,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:917,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:918,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:918,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:919,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:919,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:920,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/cpython/Python/initconfig.c:920,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:921,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:922,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:923,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:924,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:925,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:927,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:930,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:931,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:932,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:933,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:934,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:935,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:936,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:938,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:941,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:942,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:944,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts:
    - condition: (config->install_signal_handlers >= 0)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->use_environment >= 0)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->hash_seed <= MAX_HASH_SEED)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->tracemalloc >= 0)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->code_debug_ranges >= 0)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->warn_default_encoding >= 0)
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->optimization_level >= 0)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->dump_refs >= 0)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->site_import >= 0)
      pos:
        line_end: 899
        line_start: 899
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->write_bytecode >= 0)
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->verbose >= 0)
      pos:
        line_end: 907
        line_start: 907
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->_is_python_build >= 0)
      pos:
        line_end: 933
        line_start: 933
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->parse_argv >= 0)
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->_pystats >= 0)
      pos:
        line_end: 946
        line_start: 946
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->isolated >= 0)
      pos:
        line_end: 886
        line_start: 886
        source_file: /src/cpython/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->module_search_paths))
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->module_search_paths_set >= 0)
      pos:
        line_end: 920
        line_start: 920
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->stdio_errors != NULL)
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->check_hash_pycs_mode != NULL)
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->pathconfig_warnings >= 0)
      pos:
        line_end: 932
        line_start: 932
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->safe_path >= 0)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->thread_inherit_context >= 0)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->cpu_count != 0)
      pos:
        line_end: 937
        line_start: 937
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->stdio_encoding != NULL)
      pos:
        line_end: 923
        line_start: 923
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->user_site_directory >= 0)
      pos:
        line_end: 909
        line_start: 909
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->use_system_logger >= 0)
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->filesystem_encoding != NULL)
      pos:
        line_end: 921
        line_start: 921
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->dev_mode >= 0)
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->use_hash_seed >= 0)
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->faulthandler >= 0)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->import_time >= 0)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->bytes_warning >= 0)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->inspect >= 0)
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->interactive >= 0)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->show_ref_count >= 0)
      pos:
        line_end: 896
        line_start: 896
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->malloc_stats >= 0)
      pos:
        line_end: 898
        line_start: 898
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->parser_debug >= 0)
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->int_max_str_digits >= 0)
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/cpython/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->warnoptions))
      pos:
        line_end: 918
        line_start: 918
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->buffered_stdio >= 0)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/cpython/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->orig_argv))
      pos:
        line_end: 913
        line_start: 913
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->argv.length >= 1)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/cpython/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->xoptions))
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/cpython/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->argv))
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->quiet >= 0)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->filesystem_errors != NULL)
      pos:
        line_end: 922
        line_start: 922
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->legacy_windows_stdio >= 0)
      pos:
        line_end: 926
        line_start: 926
        source_file: /src/cpython/Python/initconfig.c
    - condition: (!(config->run_command != NULL && config->run_module != NULL))
      pos:
        line_end: 929
        line_start: 929
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->_install_importlib >= 0)
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->context_aware_warnings >= 0)
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->configure_c_stdio >= 0)
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 950
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 950
    functionName: config_check_consistency
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyWideStringList_CheckConsistency
    - assert
    linkageType: ''
    returnType: int
    signature: int config_check_consistency(const PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:964,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:965,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:966,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:967,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:969,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:970,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:971,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:972,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:974,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:976,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:977,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:978,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:979,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:980,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:981,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:982,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:983,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:985,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:986,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:987,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:988,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:989,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:990,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:991,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:992,1
    - Dst: CLEAR
      Src: /src/cpython/Python/initconfig.c:994,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 955
    functionDepth: 4
    functionLinenumber: 955
    functionLinenumberEnd: 999
    functionName: PyConfig_Clear
    functionSourceFile: /src/cpython/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: 963
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 963
    functionName: CLEAR
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 550
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/initconfig.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1064
    functionName: _PyConfig_InitCompatConfig
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyConfig_InitCompatConfig(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/cpython/Python/initconfig.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1099
    functionName: config_init_defaults
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1110
    functionName: PyConfig_InitPythonConfig
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 4
    functionsReached:
    - config_init_defaults
    linkageType: ''
    returnType: void
    signature: void PyConfig_InitPythonConfig(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_init_defaults
      Src: /src/cpython/Python/initconfig.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1141
    functionName: PyConfig_InitIsolatedConfig
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - config_init_defaults
    linkageType: ''
    returnType: void
    signature: void PyConfig_InitIsolatedConfig(PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/cpython/Python/initconfig.c:1148,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1149,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:1155,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:1157,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:1163,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1165,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: 1166
      start: 1145
    functionDepth: 2
    functionLinenumber: 1145
    functionLinenumberEnd: 1166
    functionName: PyConfig_SetString
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - PyMem_RawFree
    - _Py_PreInitializeFromConfig
    - _PyStatus_EXCEPTION
    - _PyMem_RawWcsdup
    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/cpython/Python/initconfig.c:1173,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1174,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/initconfig.c:1181,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1184,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:1187,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:1194,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1196,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: 1197
      start: 1169
    functionDepth: 6
    functionLinenumber: 1169
    functionLinenumberEnd: 1197
    functionName: config_set_bytes_string
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - Py_DecodeLocale
    - PyMem_RawFree
    - _Py_PreInitializeFromConfig
    - _PyStatus_EXCEPTION
    - _PyStatus_ERR
    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: 1202
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1202
    functionName: CONFIG_SET_BYTES_STR
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - config_str
    - str
    argTypes:
    - PyConfig*
    - wchar_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1212
    functionName: PyConfig_SetBytesString
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 2
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - spec
    argTypes:
    - PyConfig*
    - PyConfigSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1219
    functionName: config_get_spec_member
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      config_get_spec_member(const PyConfig *config, const PyConfigSpec *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - preconfig
    - spec
    argTypes:
    - PyPreConfig*
    - PyConfigSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1226
    functionName: preconfig_get_spec_member
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      preconfig_get_spec_member(const PyPreConfig *preconfig, const PyConfigSpec *spec)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/initconfig.c:1232,1
    - Dst: config_get_spec_member
      Src: /src/cpython/Python/initconfig.c:1237,1
    - Dst: config_get_spec_member
      Src: /src/cpython/Python/initconfig.c:1238,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:1256,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1257,1
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/initconfig.c:1264,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:1266,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/initconfig.c:1271,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1274,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - config
    - config2
    argTypes:
    - PyConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1229
    functionDepth: 5
    functionLinenumber: 1229
    functionLinenumberEnd: 1275
    functionName: _PyConfig_Copy
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _PyWideStringList_Copy
    - _PyStatus_EXCEPTION
    - PyConfig_Clear
    - config_get_spec_member
    - PyConfig_SetString
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_Copy(PyConfig *config, const PyConfig *config2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/initconfig.c:1281,1
    - Dst: config_get
      Src: /src/cpython/Python/initconfig.c:1288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1290,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/initconfig.c:1294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1278
    functionDepth: 10
    functionLinenumber: 1278
    functionLinenumberEnd: 1302
    functionName: _PyConfig_AsDict
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - config_get
    - PyDict_SetItemString
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyConfig_AsDict(const PyConfig *config)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1305
    functionDepth: 14
    functionLinenumber: 1305
    functionLinenumberEnd: 1309
    functionName: config_dict_invalid_value
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void config_dict_invalid_value(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: config_dict_get
      Src: /src/cpython/Python/initconfig.c:1315,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/initconfig.c:1319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1320,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/initconfig.c:1321,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/initconfig.c:1322,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/initconfig.c:1323,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/initconfig.c:1325,1
    - Dst: config_dict_invalid_value
      Src: /src/cpython/Python/initconfig.c:1326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - dict
    - name
    - result
    argTypes:
    - PyObject*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1312
    functionDepth: 15
    functionLinenumber: 1312
    functionLinenumberEnd: 1332
    functionName: config_dict_get_int
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - config_dict_invalid_value
    - config_dict_get
    - config_dict_invalid_type
    linkageType: ''
    returnType: int
    signature: int config_dict_get_int(PyObject *dict, const char *name, int *result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: config_dict_get
      Src: /src/cpython/Python/initconfig.c:1338,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Python/initconfig.c:1342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1343,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/initconfig.c:1344,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/initconfig.c:1345,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/initconfig.c:1346,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/initconfig.c:1348,1
    - Dst: config_dict_invalid_value
      Src: /src/cpython/Python/initconfig.c:1349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - dict
    - name
    - result
    argTypes:
    - PyObject*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1335
    functionDepth: 15
    functionLinenumber: 1335
    functionLinenumberEnd: 1355
    functionName: config_dict_get_ulong
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    - PyErr_ExceptionMatches
    - config_dict_invalid_value
    - config_dict_get
    - config_dict_invalid_type
    linkageType: ''
    returnType: int
    signature: int config_dict_get_ulong(PyObject *dict, const char *name, unsigned
      long *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: config_dict_get
      Src: /src/cpython/Python/initconfig.c:1362,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:1369,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/initconfig.c:1371,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/initconfig.c:1372,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/initconfig.c:1376,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:1380,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/initconfig.c:1381,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1383,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/initconfig.c:1384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1391,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - dict
    - name
    - config
    - result
    argTypes:
    - PyObject*
    - char*
    - PyConfig*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1358
    functionDepth: 11
    functionLinenumber: 1358
    functionLinenumberEnd: 1393
    functionName: config_dict_get_wstr
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyStatus_EXCEPTION
    - PyErr_NoMemory
    - PyConfig_SetString
    - PyUnicode_Check
    - config_dict_get
    - config_dict_invalid_type
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: "int config_dict_get_wstr(PyObject *dict, const char *name, PyConfig
      *config,\n                     wchar_t **result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: config_dict_get
      Src: /src/cpython/Python/initconfig.c:1400,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/initconfig.c:1405,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/initconfig.c:1406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1407,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/initconfig.c:1408,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/initconfig.c:1413,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/initconfig.c:1413,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/initconfig.c:1415,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/initconfig.c:1415,1
    - Dst: config_dict_invalid_value
      Src: /src/cpython/Python/initconfig.c:1418,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/initconfig.c:1421,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/initconfig.c:1422,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/initconfig.c:1425,1
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/initconfig.c:1429,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/initconfig.c:1430,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1431,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/initconfig.c:1432,1
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/initconfig.c:1437,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/initconfig.c:1438,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:1441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1442,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:1446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1447,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - dict
    - name
    - config
    - result
    argTypes:
    - PyObject*
    - char*
    - PyConfig*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1396
    functionDepth: 15
    functionLinenumber: 1396
    functionLinenumberEnd: 1449
    functionName: config_dict_get_wstrlist
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyList_GET_ITEM
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyWideStringList_Copy
    - _PyStatus_EXCEPTION
    - PyList_GET_SIZE
    - PyErr_NoMemory
    - PyTuple_GET_ITEM
    - PyWideStringList_Append
    - PyUnicode_Check
    - config_dict_invalid_value
    - _PyWideStringList_Clear
    - config_dict_get
    - config_dict_invalid_type
    - PyMem_Free
    - PyTuple_CheckExact
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: "int config_dict_get_wstrlist(PyObject *dict, const char *name, PyConfig
      *config,\n                         PyWideStringList *result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: config_dict_get
      Src: /src/cpython/Python/initconfig.c:1456,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/initconfig.c:1461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1462,1
    - Dst: config_dict_invalid_type
      Src: /src/cpython/Python/initconfig.c:1463,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/initconfig.c:1470,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/initconfig.c:1474,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/initconfig.c:1480,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/initconfig.c:1483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1484,1
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/initconfig.c:1489,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/initconfig.c:1490,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1491,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/initconfig.c:1492,1
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/initconfig.c:1497,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/initconfig.c:1498,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:1501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1502,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:1506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:1507,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - dict
    - name
    - config
    - result
    argTypes:
    - PyObject*
    - char*
    - PyConfig*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1452
    functionDepth: 11
    functionLinenumber: 1452
    functionLinenumberEnd: 1509
    functionName: config_dict_get_xoptions
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyWideStringList_Copy
    - PyDict_CheckExact
    - _PyStatus_EXCEPTION
    - PyUnicode_FromFormat
    - PyDict_Next
    - Py_NewRef
    - PyErr_NoMemory
    - PyWideStringList_Append
    - _PyWideStringList_Clear
    - config_dict_get
    - config_dict_invalid_type
    - PyMem_Free
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: int
    signature: "int config_dict_get_xoptions(PyObject *dict, const char *name, PyConfig
      *config,\n                         PyWideStringList *result)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/initconfig.c:1515,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/initconfig.c:1516,1
    - Dst: config_dict_get_int
      Src: /src/cpython/Python/initconfig.c:1529,1
    - Dst: config_dict_invalid_value
      Src: /src/cpython/Python/initconfig.c:1536,1
    - Dst: config_dict_get_ulong
      Src: /src/cpython/Python/initconfig.c:1545,1
    - Dst: config_dict_get_wstr
      Src: /src/cpython/Python/initconfig.c:1554,1
    - Dst: config_dict_invalid_value
      Src: /src/cpython/Python/initconfig.c:1558,1
    - Dst: config_dict_get_wstr
      Src: /src/cpython/Python/initconfig.c:1566,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:1573,1
    - Dst: config_dict_get_xoptions
      Src: /src/cpython/Python/initconfig.c:1574,1
    - Dst: config_dict_get_wstrlist
      Src: /src/cpython/Python/initconfig.c:1580,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/initconfig.c:1588,1
    - Dst: config_dict_invalid_value
      Src: /src/cpython/Python/initconfig.c:1596,1
    - Dst: config_dict_invalid_value
      Src: /src/cpython/Python/initconfig.c:1601,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - config
    - dict
    argTypes:
    - PyConfig*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1512
    functionDepth: 16
    functionLinenumber: 1512
    functionLinenumberEnd: 1605
    functionName: _PyConfig_FromDict
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - config_dict_get_wstr
    - config_dict_get_wstrlist
    - PyErr_SetString
    - config_dict_get_int
    - strcmp
    - config_dict_invalid_value
    - PyDict_Check
    - config_dict_get_xoptions
    - Py_UNREACHABLE
    - config_dict_get_ulong
    linkageType: ''
    returnType: int
    signature: int _PyConfig_FromDict(PyConfig *config, PyObject *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/cpython/Python/initconfig.c:1611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1612
    functionName: config_get_env
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:1624,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:1625,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1629,1
    - Dst: _wgetenv
      Src: /src/cpython/Python/initconfig.c:1633,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1636,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:1639,1
    - Dst: getenv
      Src: /src/cpython/Python/initconfig.c:1641,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1644,1
    - Dst: config_set_bytes_string
      Src: /src/cpython/Python/initconfig.c:1647,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: 1623
        line_start: 1623
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config->use_environment >= 0)
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 1649
      start: 1618
    functionDepth: 7
    functionLinenumber: 1618
    functionLinenumberEnd: 1649
    functionName: config_get_env_dup
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - getenv
    - PyConfig_SetString
    - _wgetenv
    - assert
    - config_set_bytes_string
    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: 1654
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1654
    functionName: CONFIG_GET_ENV_DUP
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_GET_ENV_DUP(CONFIG, DEST, WNAME, NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1675,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1676,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1677,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1678,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1679,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1680,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1681,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1682,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1683,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1685,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1687,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1689,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1690,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1691,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1697
    functionName: config_get_global_vars
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - COPY_FLAG
    - COPY_NOT_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: 1670
      start: 1666
    functionDepth: 0
    functionLinenumber: 1666
    functionLinenumberEnd: 1670
    functionName: COPY_FLAG
    functionSourceFile: /src/cpython/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: 1674
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1674
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1715,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1716,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1717,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1718,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1719,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1720,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1721,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1722,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1723,1
    - Dst: COPY_FLAG
      Src: /src/cpython/Python/initconfig.c:1725,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1727,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1729,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1730,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1731,1
    - Dst: COPY_NOT_FLAG
      Src: /src/cpython/Python/initconfig.c:1732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1741
    functionName: config_set_global_vars
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - COPY_FLAG
    - COPY_NOT_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: 1710
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1710
    functionName: COPY_FLAG
    functionSourceFile: /src/cpython/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: 1714
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1714
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_xoption
      Src: /src/cpython/Python/initconfig.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyConfig*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 1
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    functionName: config_get_xoption
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:1753,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyConfig*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1759
    functionName: config_get_xoption_value
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_get_xoption
    - wcschr
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      config_get_xoption_value(const PyConfig *config, wchar_t *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1768,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:1771,1
    - Dst: strtoul
      Src: /src/cpython/Python/initconfig.c:1775,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1780,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1792,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1762
    functionDepth: 2
    functionLinenumber: 1762
    functionLinenumberEnd: 1793
    functionName: config_init_hash_seed
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - strtoul
    - strcmp
    - config_get_env
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_hash_seed(PyConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcstol
      Src: /src/cpython/Python/initconfig.c:1801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - wstr
    - result
    argTypes:
    - wchar_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1811
    functionName: config_wstr_to_int
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - wcstol
    linkageType: ''
    returnType: int
    signature: int config_wstr_to_int(const wchar_t *wstr, int *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1820,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1827,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1831,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - config
    - len
    - first_char
    argTypes:
    - PyConfig*
    - size_t
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1834
    functionName: config_read_gil
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read_gil(PyConfig *config, size_t len, wchar_t first_char)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1843,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1844,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1845,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1846,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1849,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1855,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1861,1
    - Dst: _Py_get_env_flag
      Src: /src/cpython/Python/initconfig.c:1867,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1871,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1874,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/cpython/Python/initconfig.c:1879,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1881,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/cpython/Python/initconfig.c:1887,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1889,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/cpython/Python/initconfig.c:1895,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1897,1
    - Dst: config_init_hash_seed
      Src: /src/cpython/Python/initconfig.c:1903,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1904,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1909,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1913,1
    - Dst: strlen
      Src: /src/cpython/Python/initconfig.c:1915,1
    - Dst: config_read_gil
      Src: /src/cpython/Python/initconfig.c:1916,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:1917,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1922,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1836
    functionDepth: 3
    functionLinenumber: 1836
    functionLinenumberEnd: 1923
    functionName: config_read_env_vars
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - strlen
    - _PyStatus_EXCEPTION
    - config_read_gil
    - CONFIG_GET_ENV_DUP
    - config_get_env
    - config_init_hash_seed
    - _Py_get_env_flag
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read_env_vars(PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1928,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:1931,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:1934,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:1940,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:1943,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:1945,1
    - Dst: config_wstr_to_int
      Src: /src/cpython/Python/initconfig.c:1948,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1957,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1960,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1925
    functionDepth: 2
    functionLinenumber: 1925
    functionLinenumberEnd: 1962
    functionName: config_init_cpu_count
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - wcscmp
    - _PyStatus_ERR
    - config_wstr_to_int
    - strcmp
    - config_get_env
    - wcschr
    - config_get_xoption
    - _Py_str_to_int
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_cpu_count(PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1967,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:1970,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1971,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:1977,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:1980,1
    - Dst: config_wstr_to_int
      Src: /src/cpython/Python/initconfig.c:1981,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1982,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:1987,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1964
    functionDepth: 2
    functionLinenumber: 1964
    functionLinenumberEnd: 1988
    functionName: config_init_thread_inherit_context
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_ERR
    - config_wstr_to_int
    - config_get_env
    - wcschr
    - config_get_xoption
    - _Py_str_to_int
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_thread_inherit_context(PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:1993,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:1996,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:1997,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2003,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:2006,1
    - Dst: config_wstr_to_int
      Src: /src/cpython/Python/initconfig.c:2007,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2008,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2013,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2014
    functionName: config_init_context_aware_warnings
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_ERR
    - config_wstr_to_int
    - config_get_env
    - wcschr
    - config_get_xoption
    - _Py_str_to_int
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_context_aware_warnings(PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2020,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:2023,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2024,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2030,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:2033,1
    - Dst: config_wstr_to_int
      Src: /src/cpython/Python/initconfig.c:2034,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2035,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2040,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2042,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2016
    functionDepth: 2
    functionLinenumber: 2016
    functionLinenumberEnd: 2044
    functionName: config_init_tlbc
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_ERR
    - config_wstr_to_int
    - config_get_env
    - wcschr
    - config_get_xoption
    - _Py_str_to_int
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_tlbc(PyConfig *config)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2050,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:2052,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2059,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2063,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:2065,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2072,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2077,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2046
    functionDepth: 2
    functionLinenumber: 2046
    functionLinenumberEnd: 2079
    functionName: config_init_perf_profiling
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_get_xoption
    - _PyStatus_OK
    - config_get_env
    - _Py_str_to_int
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_perf_profiling(PyConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Python/initconfig.c:2088,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2092,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2081
    functionDepth: 2
    functionLinenumber: 2081
    functionLinenumberEnd: 2101
    functionName: config_init_remote_debug
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_get_xoption
    - _PyStatus_OK
    - Py_GETENV
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_remote_debug(PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2109,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:2111,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2118,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2123,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:2125,1
    - Dst: config_wstr_to_int
      Src: /src/cpython/Python/initconfig.c:2127,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2134,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2103
    functionDepth: 2
    functionLinenumber: 2103
    functionLinenumberEnd: 2145
    functionName: config_init_tracemalloc
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_ERR
    - config_wstr_to_int
    - config_get_env
    - wcschr
    - config_get_xoption
    - _Py_str_to_int
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_tracemalloc(PyConfig *config)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2152,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:2155,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2161,1
    - Dst: STRINGIFY
      Src: /src/cpython/Python/initconfig.c:2163,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2169,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:2171,1
    - Dst: config_wstr_to_int
      Src: /src/cpython/Python/initconfig.c:2174,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2179,1
    - Dst: STRINGIFY
      Src: /src/cpython/Python/initconfig.c:2181,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2147
    functionDepth: 2
    functionLinenumber: 2147
    functionLinenumberEnd: 2192
    functionName: config_init_int_max_str_digits
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - wcschr
    - config_wstr_to_int
    - config_get_env
    - _PyStatus_ERR
    - config_get_xoption
    - _Py_str_to_int
    - STRINGIFY
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_int_max_str_digits(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2159
    functionDepth: 0
    functionLinenumber: 2159
    functionLinenumberEnd: 2160
    functionName: STRINGIFY
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2161
    functionName: _STRINGIFY
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STRINGIFY(VAL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:2197,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2199,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:2201,1
    - Dst: wcslen
      Src: /src/cpython/Python/initconfig.c:2202,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:2203,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:2205,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2213,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/cpython/Python/initconfig.c:2216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts:
    - condition: (config->pycache_prefix == NULL)
      pos:
        line_end: 2196
        line_start: 2196
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 2219
      start: 2194
    functionDepth: 2
    functionLinenumber: 2194
    functionLinenumberEnd: 2219
    functionName: config_init_pycache_prefix
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - CONFIG_GET_ENV_DUP
    - wcslen
    - wcschr
    - config_get_xoption
    - _PyMem_RawWcsdup
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_pycache_prefix(PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:2226,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2228,1
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:2230,1
    - Dst: wcslen
      Src: /src/cpython/Python/initconfig.c:2231,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:2232,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:2234,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2242,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/cpython/Python/initconfig.c:2245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts:
    - condition: (config->run_presite == NULL)
      pos:
        line_end: 2225
        line_start: 2225
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 2248
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2248
    functionName: config_init_run_presite
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - CONFIG_GET_ENV_DUP
    - wcslen
    - wcschr
    - config_get_xoption
    - _PyMem_RawWcsdup
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_run_presite(PyConfig *config)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2256,1
    - Dst: _Py_str_to_int
      Src: /src/cpython/Python/initconfig.c:2258,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2262,1
    - Dst: config_get_xoption_value
      Src: /src/cpython/Python/initconfig.c:2268,1
    - Dst: config_wstr_to_int
      Src: /src/cpython/Python/initconfig.c:2270,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:2274,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2251
    functionDepth: 3
    functionLinenumber: 2251
    functionLinenumberEnd: 2282
    functionName: config_init_import_time
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - config_get_xoption_value
    - config_wstr_to_int
    - config_get_env
    - _PyStatus_ERR
    - _Py_str_to_int
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_import_time(PyConfig *config)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2289,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2290,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2294,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2295,1
    - Dst: config_init_import_time
      Src: /src/cpython/Python/initconfig.c:2301,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2302,1
    - Dst: config_init_tracemalloc
      Src: /src/cpython/Python/initconfig.c:2308,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2309,1
    - Dst: config_init_perf_profiling
      Src: /src/cpython/Python/initconfig.c:2315,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2316,1
    - Dst: config_init_remote_debug
      Src: /src/cpython/Python/initconfig.c:2322,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2323,1
    - Dst: config_init_int_max_str_digits
      Src: /src/cpython/Python/initconfig.c:2329,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2330,1
    - Dst: config_init_cpu_count
      Src: /src/cpython/Python/initconfig.c:2336,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2337,1
    - Dst: config_init_pycache_prefix
      Src: /src/cpython/Python/initconfig.c:2343,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2344,1
    - Dst: config_init_run_presite
      Src: /src/cpython/Python/initconfig.c:2351,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2352,1
    - Dst: config_init_thread_inherit_context
      Src: /src/cpython/Python/initconfig.c:2358,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2359,1
    - Dst: config_init_context_aware_warnings
      Src: /src/cpython/Python/initconfig.c:2363,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2364,1
    - Dst: config_init_tlbc
      Src: /src/cpython/Python/initconfig.c:2368,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2369,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2373,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2284
    functionDepth: 4
    functionLinenumber: 2284
    functionLinenumberEnd: 2374
    functionName: config_read_complex_options
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_init_perf_profiling
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - config_init_remote_debug
    - config_init_cpu_count
    - config_init_tracemalloc
    - config_init_import_time
    - config_init_thread_inherit_context
    - config_init_context_aware_warnings
    - config_get_env
    - config_init_pycache_prefix
    - config_get_xoption
    - config_init_int_max_str_digits
    - config_init_run_presite
    - config_init_tlbc
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read_complex_options(PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/cpython/Python/initconfig.c:2386,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:2389,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:2389,1
    - Dst: _Py_IsLocaleCoercionTarget
      Src: /src/cpython/Python/initconfig.c:2395,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - preconfig
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2406
    functionName: config_get_stdio_errors
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - setlocale
    - strcmp
    - _Py_IsLocaleCoercionTarget
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      config_get_stdio_errors(const PyPreConfig *preconfig)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:2416,1
    - Dst: _Py_GetLocaleEncoding
      Src: /src/cpython/Python/initconfig.c:2419,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:2422,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2424,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:2425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - config
    - preconfig
    - locale_encoding
    argTypes:
    - PyConfig*
    - PyPreConfig*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2410
    functionDepth: 5
    functionLinenumber: 2410
    functionLinenumberEnd: 2427
    functionName: config_get_locale_encoding
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - PyMem_RawFree
    - _Py_GetLocaleEncoding
    - PyConfig_SetString
    - _PyMem_RawWcsdup
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_get_locale_encoding(PyConfig *config, const PyPreConfig
      *preconfig,\n                           wchar_t **locale_encoding)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2438,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2442,1
    - Dst: _PyMem_RawStrdup
      Src: /src/cpython/Python/initconfig.c:2444,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:2446,1
    - Dst: strchr
      Src: /src/cpython/Python/initconfig.c:2449,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/cpython/Python/initconfig.c:2461,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2464,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:2465,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/cpython/Python/initconfig.c:2480,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2483,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:2484,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:2489,1
    - Dst: config_get_locale_encoding
      Src: /src/cpython/Python/initconfig.c:2494,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2496,1
    - Dst: config_get_stdio_errors
      Src: /src/cpython/Python/initconfig.c:2501,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:2502,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2504,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2505,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2510,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 2
    argNames:
    - config
    - preconfig
    argTypes:
    - PyConfig*
    - PyPreConfig*
    assertStmts:
    - condition: (errors != NULL)
      pos:
        line_end: 2501
        line_start: 2501
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 2511
      start: 2430
    functionDepth: 6
    functionLinenumber: 2430
    functionLinenumberEnd: 2511
    functionName: config_init_stdio_encoding
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - assert
    - _PyStatus_OK
    - PyMem_RawFree
    - _PyStatus_EXCEPTION
    - CONFIG_SET_BYTES_STR
    - config_get_locale_encoding
    - config_get_env
    - _PyMem_RawStrdup
    - PyConfig_SetString
    - config_get_stdio_errors
    - strchr
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_init_stdio_encoding(PyConfig *config,\n                           const
      PyPreConfig *preconfig)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2520,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2531,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2534,1
    - Dst: _Py_GetForceASCII
      Src: /src/cpython/Python/initconfig.c:2537,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2538,1
    - Dst: config_get_locale_encoding
      Src: /src/cpython/Python/initconfig.c:2541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - config
    - preconfig
    - fs_encoding
    argTypes:
    - PyConfig*
    - PyPreConfig*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2515
    functionDepth: 6
    functionLinenumber: 2515
    functionLinenumberEnd: 2543
    functionName: config_get_fs_encoding
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_get_locale_encoding
    - PyConfig_SetString
    - _Py_GetForceASCII
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_get_fs_encoding(PyConfig *config, const PyPreConfig
      *preconfig,\n                       wchar_t **fs_encoding)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: config_get_fs_encoding
      Src: /src/cpython/Python/initconfig.c:2552,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2554,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2571,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2572,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - config
    - preconfig
    argTypes:
    - PyConfig*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2546
    functionDepth: 7
    functionLinenumber: 2546
    functionLinenumberEnd: 2577
    functionName: config_init_fs_encoding
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - config_get_fs_encoding
    - PyConfig_SetString
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_fs_encoding(PyConfig *config, const PyPreConfig
      *preconfig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_InitPathConfig
      Src: /src/cpython/Python/initconfig.c:2585,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2586,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2590,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:2593,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:2596,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Python/initconfig.c:2599,1
    - Dst: config_get_xoption_value
      Src: /src/cpython/Python/initconfig.c:2604,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:2607,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:2610,1
    - Dst: wcslen
      Src: /src/cpython/Python/initconfig.c:2613,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Python/initconfig.c:2618,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:2622,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2623,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - config
    - compute_path_config
    argTypes:
    - PyConfig*
    - int
    assertStmts:
    - condition: (config->use_frozen_modules >= 0)
      pos:
        line_end: 2621
        line_start: 2621
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 2624
      start: 2580
    functionDepth: 3
    functionLinenumber: 2580
    functionLinenumberEnd: 2624
    functionName: config_init_import
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - wcscmp
    - _PyConfig_InitPathConfig
    - PyStatus_Error
    - config_get_xoption_value
    - strcmp
    - config_get_env
    - wcslen
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_import(PyConfig *config, int compute_path_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_init_import
      Src: /src/cpython/Python/initconfig.c:2629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2626
    functionDepth: 4
    functionLinenumber: 2626
    functionLinenumberEnd: 2630
    functionName: _PyConfig_InitImportConfig
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_init_import
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_InitImportConfig(PyConfig *config)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: config_read_env_vars
      Src: /src/cpython/Python/initconfig.c:2640,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2641,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2647,1
    - Dst: config_get_xoption_value
      Src: /src/cpython/Python/initconfig.c:2651,1
    - Dst: wcslen
      Src: /src/cpython/Python/initconfig.c:2653,1
    - Dst: config_read_gil
      Src: /src/cpython/Python/initconfig.c:2654,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2655,1
    - Dst: config_get_xoption
      Src: /src/cpython/Python/initconfig.c:2661,1
    - Dst: config_get_env
      Src: /src/cpython/Python/initconfig.c:2664,1
    - Dst: config_read_complex_options
      Src: /src/cpython/Python/initconfig.c:2672,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2673,1
    - Dst: config_init_import
      Src: /src/cpython/Python/initconfig.c:2678,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2679,1
    - Dst: config_init_fs_encoding
      Src: /src/cpython/Python/initconfig.c:2708,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2709,1
    - Dst: config_init_stdio_encoding
      Src: /src/cpython/Python/initconfig.c:2714,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2715,1
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/initconfig.c:2721,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2722,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2728,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2730,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2744,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 2
    argNames:
    - config
    - compute_path_config
    argTypes:
    - PyConfig*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2633
    functionDepth: 8
    functionLinenumber: 2633
    functionLinenumberEnd: 2745
    functionName: config_read
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyStatus_OK
    - config_read_complex_options
    - _PyStatus_EXCEPTION
    - config_get_xoption
    - config_get_xoption_value
    - config_read_gil
    - config_init_fs_encoding
    - wcslen
    - config_get_env
    - config_init_import
    - PyConfig_SetString
    - config_read_env_vars
    - config_init_stdio_encoding
    - PyWideStringList_Append
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read(PyConfig *config, int compute_path_config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/cpython/Python/initconfig.c:2753,1
    - Dst: fileno
      Src: /src/cpython/Python/initconfig.c:2753,1
    - Dst: _setmode
      Src: /src/cpython/Python/initconfig.c:2754,1
    - Dst: fileno
      Src: /src/cpython/Python/initconfig.c:2754,1
    - Dst: _setmode
      Src: /src/cpython/Python/initconfig.c:2755,1
    - Dst: fileno
      Src: /src/cpython/Python/initconfig.c:2755,1
    - Dst: setvbuf
      Src: /src/cpython/Python/initconfig.c:2760,1
    - Dst: setvbuf
      Src: /src/cpython/Python/initconfig.c:2761,1
    - Dst: setvbuf
      Src: /src/cpython/Python/initconfig.c:2762,1
    - Dst: setbuf
      Src: /src/cpython/Python/initconfig.c:2764,1
    - Dst: setbuf
      Src: /src/cpython/Python/initconfig.c:2765,1
    - Dst: setbuf
      Src: /src/cpython/Python/initconfig.c:2766,1
    - Dst: setvbuf
      Src: /src/cpython/Python/initconfig.c:2773,1
    - Dst: setvbuf
      Src: /src/cpython/Python/initconfig.c:2776,1
    - Dst: setvbuf
      Src: /src/cpython/Python/initconfig.c:2777,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2748
    functionDepth: 0
    functionLinenumber: 2748
    functionLinenumberEnd: 2782
    functionName: config_init_stdio
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _setmode
    - setbuf
    - fileno
    - setvbuf
    linkageType: ''
    returnType: void
    signature: void config_init_stdio(const PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: config_set_global_vars
      Src: /src/cpython/Python/initconfig.c:2792,1
    - Dst: config_init_stdio
      Src: /src/cpython/Python/initconfig.c:2795,1
    - Dst: _Py_SetArgcArgv
      Src: /src/cpython/Python/initconfig.c:2804,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:2807,1
    - Dst: _Py_StatsOn
      Src: /src/cpython/Python/initconfig.c:2812,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:2816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - config
    - runtime
    argTypes:
    - PyConfig*
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2789
    functionDepth: 5
    functionLinenumber: 2789
    functionLinenumberEnd: 2817
    functionName: _PyConfig_Write
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _Py_SetArgcArgv
    - config_set_global_vars
    - _Py_StatsOn
    - config_init_stdio
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_Write(const PyConfig *config, _PyRuntimeState *runtime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/initconfig.c:2827,1
    - Dst: fprintf
      Src: /src/cpython/Python/initconfig.c:2829,1
    - Dst: fputs
      Src: /src/cpython/Python/initconfig.c:2831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - error
    - program
    argTypes:
    - int
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2822
    functionDepth: 0
    functionLinenumber: 2822
    functionLinenumberEnd: 2833
    functionName: config_usage
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fputs
    linkageType: ''
    returnType: void
    signature: void config_usage(int error, const wchar_t* program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Python/initconfig.c:2838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2835
    functionDepth: 0
    functionLinenumber: 2835
    functionLinenumberEnd: 2839
    functionName: config_envvars_usage
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void config_envvars_usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/cpython/Python/initconfig.c:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2841
    functionDepth: 0
    functionLinenumber: 2841
    functionLinenumberEnd: 2845
    functionName: config_xoptions_usage
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: void config_xoptions_usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_usage
      Src: /src/cpython/Python/initconfig.c:2850,1
    - Dst: putchar
      Src: /src/cpython/Python/initconfig.c:2851,1
    - Dst: config_envvars_usage
      Src: /src/cpython/Python/initconfig.c:2852,1
    - Dst: putchar
      Src: /src/cpython/Python/initconfig.c:2853,1
    - Dst: config_xoptions_usage
      Src: /src/cpython/Python/initconfig.c:2854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - program
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2847
    functionDepth: 1
    functionLinenumber: 2847
    functionLinenumberEnd: 2855
    functionName: config_complete_usage
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_xoptions_usage
    - config_usage
    - putchar
    - config_envvars_usage
    linkageType: ''
    returnType: void
    signature: void config_complete_usage(const wchar_t* program)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: _PyOS_ResetGetOpt
      Src: /src/cpython/Python/initconfig.c:2871,1
    - Dst: _PyOS_GetOpt
      Src: /src/cpython/Python/initconfig.c:2874,1
    - Dst: wcslen
      Src: /src/cpython/Python/initconfig.c:2884,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/initconfig.c:2885,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:2887,1
    - Dst: memcpy
      Src: /src/cpython/Python/initconfig.c:2889,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:2902,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:2904,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:2914,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:2915,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:2916,1
    - Dst: PyConfig_SetString
      Src: /src/cpython/Python/initconfig.c:2918,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:2920,1
    - Dst: fprintf
      Src: /src/cpython/Python/initconfig.c:2924,1
    - Dst: config_usage
      Src: /src/cpython/Python/initconfig.c:2926,1
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:2927,1
    - Dst: config_complete_usage
      Src: /src/cpython/Python/initconfig.c:2933,1
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:2934,1
    - Dst: config_envvars_usage
      Src: /src/cpython/Python/initconfig.c:2938,1
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:2939,1
    - Dst: config_xoptions_usage
      Src: /src/cpython/Python/initconfig.c:2943,1
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:2944,1
    - Dst: config_usage
      Src: /src/cpython/Python/initconfig.c:3003,1
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:3004,1
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/initconfig.c:3011,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3012,1
    - Dst: config_usage
      Src: /src/cpython/Python/initconfig.c:3029,1
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:3030,1
    - Dst: printf
      Src: /src/cpython/Python/initconfig.c:3035,1
    - Dst: Py_GetVersion
      Src: /src/cpython/Python/initconfig.c:3036,1
    - Dst: _PyStatus_EXIT
      Src: /src/cpython/Python/initconfig.c:3037,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:3042,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:3045,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3047,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3058,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 131
    argCount: 3
    argNames:
    - config
    - warnoptions
    - opt_index
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 2859
    functionDepth: 4
    functionLinenumber: 2859
    functionLinenumberEnd: 3059
    functionName: config_parse_cmdline
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_EXIT
    - config_usage
    - _PyStatus_EXCEPTION
    - config_complete_usage
    - PyConfig_SetString
    - _PyMem_RawWcsdup
    - config_xoptions_usage
    - wcscmp
    - _PyOS_GetOpt
    - fprintf
    - Py_GetVersion
    - _PyStatus_OK
    - _PyOS_ResetGetOpt
    - printf
    - wcslen
    - PyMem_RawMalloc
    - memcpy
    - PyWideStringList_Append
    - config_envvars_usage
    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/cpython/Python/initconfig.c:3075,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3077,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3083,1
    - Dst: WCSTOK
      Src: /src/cpython/Python/initconfig.c:3088,1
    - Dst: WCSTOK
      Src: /src/cpython/Python/initconfig.c:3090,1
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/initconfig.c:3092,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3093,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:3094,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:3098,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - config
    - warnoptions
    argTypes:
    - PyConfig*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3069
    functionDepth: 4
    functionLinenumber: 3069
    functionLinenumberEnd: 3100
    functionName: config_init_env_warnoptions
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - PyMem_RawFree
    - _PyStatus_EXCEPTION
    - CONFIG_GET_ENV_DUP
    - PyWideStringList_Append
    - WCSTOK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_env_warnoptions(PyConfig *config, PyWideStringList
      *warnoptions)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Find
      Src: /src/cpython/Python/initconfig.c:3111,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3113,1
    - Dst: _PyWideStringList_Find
      Src: /src/cpython/Python/initconfig.c:3115,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3117,1
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/initconfig.c:3119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - config
    - options
    - option
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3120
      start: 3103
    functionDepth: 4
    functionLinenumber: 3103
    functionLinenumberEnd: 3120
    functionName: warnoptions_append
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyWideStringList_Find
    - PyWideStringList_Append
    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/cpython/Python/initconfig.c:3131,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3132,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - config
    - options
    - options2
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3123
    functionDepth: 5
    functionLinenumber: 3123
    functionLinenumberEnd: 3137
    functionName: warnoptions_extend
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - warnoptions_append
    - _PyStatus_OK
    - _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/cpython/Python/initconfig.c:3167,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3168,1
    - Dst: warnoptions_extend
      Src: /src/cpython/Python/initconfig.c:3173,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3174,1
    - Dst: warnoptions_extend
      Src: /src/cpython/Python/initconfig.c:3178,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3179,1
    - Dst: warnoptions_append
      Src: /src/cpython/Python/initconfig.c:3195,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3196,1
    - Dst: warnoptions_extend
      Src: /src/cpython/Python/initconfig.c:3201,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3202,1
    - Dst: _PyWideStringList_Extend
      Src: /src/cpython/Python/initconfig.c:3207,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3208,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:3212,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3214,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:3217,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: 3219
      start: 3140
    functionDepth: 6
    functionLinenumber: 3140
    functionLinenumberEnd: 3219
    functionName: config_init_warnoptions
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - _PyWideStringList_Extend
    - warnoptions_extend
    - warnoptions_append
    - _PyWideStringList_Clear
    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/cpython/Python/initconfig.c:3231,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3232,1
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/initconfig.c:3240,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3241,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:3244,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/initconfig.c:3257,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:3259,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3260,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:3263,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:3267,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3269,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: 3243
        line_start: 3243
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 3270
      start: 3222
    functionDepth: 5
    functionLinenumber: 3222
    functionLinenumberEnd: 3270
    functionName: config_update_argv
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _PyWideStringList_Copy
    - PyMem_RawFree
    - _PyStatus_EXCEPTION
    - _PyWideStringList_Clear
    - _PyMem_RawWcsdup
    - assert
    - PyWideStringList_Append
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_update_argv(PyConfig *config, Py_ssize_t opt_index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/initconfig.c:3279,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3280,1
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/cpython/Python/initconfig.c:3286,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3287,1
    - Dst: _PyPreConfig_GetConfig
      Src: /src/cpython/Python/initconfig.c:3291,1
    - Dst: _PyPreCmdline_Read
      Src: /src/cpython/Python/initconfig.c:3293,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3294,1
    - Dst: _PyPreCmdline_SetConfig
      Src: /src/cpython/Python/initconfig.c:3298,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3299,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - config
    - precmdline
    argTypes:
    - PyConfig*
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3303
      start: 3273
    functionDepth: 5
    functionLinenumber: 3273
    functionLinenumberEnd: 3303
    functionName: core_read_precmdline
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _PyWideStringList_Copy
    - _PyPreCmdline_SetConfig
    - _PyStatus_EXCEPTION
    - _PyPreCmdline_Read
    - _PyPreConfig_GetConfig
    - _PyPreConfig_InitFromPreConfig
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus core_read_precmdline(PyConfig *config, _PyPreCmdline *precmdline)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3311,1
    - Dst: _Py_isabs
      Src: /src/cpython/Python/initconfig.c:3315,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3317,1
    - Dst: _Py_abspath
      Src: /src/cpython/Python/initconfig.c:3322,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3325,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3328,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:3331,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3307
    functionDepth: 3
    functionLinenumber: 3307
    functionLinenumberEnd: 3334
    functionName: config_run_filename_abspath
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _Py_isabs
    - PyMem_RawFree
    - _Py_abspath
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_run_filename_abspath(PyConfig *config)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: config_parse_cmdline
      Src: /src/cpython/Python/initconfig.c:3351,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3352,1
    - Dst: config_run_filename_abspath
      Src: /src/cpython/Python/initconfig.c:3356,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3357,1
    - Dst: config_update_argv
      Src: /src/cpython/Python/initconfig.c:3361,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3362,1
    - Dst: config_run_filename_abspath
      Src: /src/cpython/Python/initconfig.c:3367,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3368,1
    - Dst: config_init_env_warnoptions
      Src: /src/cpython/Python/initconfig.c:3374,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3375,1
    - Dst: _PySys_ReadPreinitWarnOptions
      Src: /src/cpython/Python/initconfig.c:3381,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3382,1
    - Dst: config_init_warnoptions
      Src: /src/cpython/Python/initconfig.c:3386,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3390,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3394,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:3397,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:3398,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:3399,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3401
      start: 3337
    functionDepth: 7
    functionLinenumber: 3337
    functionLinenumberEnd: 3401
    functionName: config_read_cmdline
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_init_env_warnoptions
    - config_run_filename_abspath
    - config_init_warnoptions
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - _PySys_ReadPreinitWarnOptions
    - config_update_argv
    - config_parse_cmdline
    - _PyWideStringList_Clear
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read_cmdline(PyConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/cpython/Python/initconfig.c:3407,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3408,1
    - Dst: _PyArgv_AsWstrList
      Src: /src/cpython/Python/initconfig.c:3412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - config
    - args
    argTypes:
    - PyConfig*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3404
    functionDepth: 7
    functionLinenumber: 3404
    functionLinenumberEnd: 3413
    functionName: _PyConfig_SetPyArgv
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyArgv_AsWstrList
    - _Py_PreInitializeFromConfig
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_SetPyArgv(PyConfig *config, const _PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_SetPyArgv
      Src: /src/cpython/Python/initconfig.c:3426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - argc
    - argv
    argTypes:
    - PyConfig*
    - Py_ssize_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3427
      start: 3418
    functionDepth: 8
    functionLinenumber: 3418
    functionLinenumberEnd: 3427
    functionName: PyConfig_SetBytesArgv
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 2
    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/cpython/Python/initconfig.c:3438,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: 3439
      start: 3430
    functionDepth: 8
    functionLinenumber: 3430
    functionLinenumberEnd: 3439
    functionName: PyConfig_SetArgv
    functionSourceFile: /src/cpython/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/cpython/Python/initconfig.c:3446,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3447,1
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/initconfig.c:3452,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3453,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3455,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: 3456
      start: 3442
    functionDepth: 5
    functionLinenumber: 3442
    functionLinenumberEnd: 3456
    functionName: PyConfig_SetWideStringList
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_OK
    - _PyWideStringList_Copy
    - _Py_PreInitializeFromConfig
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus PyConfig_SetWideStringList(PyConfig *config, PyWideStringList
      *list,\n                           Py_ssize_t length, wchar_t **items)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/cpython/Python/initconfig.c:3471,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3472,1
    - Dst: config_get_global_vars
      Src: /src/cpython/Python/initconfig.c:3476,1
    - Dst: wcscmp
      Src: /src/cpython/Python/initconfig.c:3480,1
    - Dst: _PyWideStringList_Copy
      Src: /src/cpython/Python/initconfig.c:3482,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3483,1
    - Dst: core_read_precmdline
      Src: /src/cpython/Python/initconfig.c:3488,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3489,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:3493,1
    - Dst: config_read_cmdline
      Src: /src/cpython/Python/initconfig.c:3500,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3501,1
    - Dst: _PySys_ReadPreinitXOptions
      Src: /src/cpython/Python/initconfig.c:3506,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3507,1
    - Dst: config_read
      Src: /src/cpython/Python/initconfig.c:3511,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:3512,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:3516,1
    - Dst: config_check_consistency
      Src: /src/cpython/Python/initconfig.c:3516,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3518,1
    - Dst: _PyPreCmdline_Clear
      Src: /src/cpython/Python/initconfig.c:3521,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - config
    - compute_path_config
    argTypes:
    - PyConfig*
    - int
    assertStmts:
    - condition: (config->isolated >= 0)
      pos:
        line_end: 3492
        line_start: 3492
        source_file: /src/cpython/Python/initconfig.c
    - condition: (config_check_consistency(config))
      pos:
        line_end: 3515
        line_start: 3515
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 3523
      start: 3466
    functionDepth: 9
    functionLinenumber: 3466
    functionLinenumberEnd: 3523
    functionName: _PyConfig_Read
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - assert
    - core_read_precmdline
    - _PyWideStringList_Copy
    - _PyStatus_OK
    - _Py_PreInitializeFromConfig
    - _PyStatus_EXCEPTION
    - wcscmp
    - config_read_cmdline
    - _PyPreCmdline_Clear
    - _PySys_ReadPreinitXOptions
    - config_read
    - config_check_consistency
    - config_get_global_vars
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_Read(PyConfig *config, int compute_path_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_Read
      Src: /src/cpython/Python/initconfig.c:3529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3526
    functionDepth: 10
    functionLinenumber: 3526
    functionLinenumberEnd: 3530
    functionName: PyConfig_Read
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyConfig_Read
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyConfig_Read(PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/initconfig.c:3539,1
    - Dst: _Py_GetGlobalVariablesAsDict
      Src: /src/cpython/Python/initconfig.c:3545,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/initconfig.c:3549,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/initconfig.c:3552,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/initconfig.c:3555,1
    - Dst: _PyPreConfig_AsDict
      Src: /src/cpython/Python/initconfig.c:3557,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/initconfig.c:3561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/initconfig.c:3564,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/initconfig.c:3567,1
    - Dst: _PyConfig_AsDict
      Src: /src/cpython/Python/initconfig.c:3568,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/initconfig.c:3572,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/initconfig.c:3575,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/initconfig.c:3580,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/initconfig.c:3581,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3583
      start: 3533
    functionDepth: 11
    functionLinenumber: 3533
    functionLinenumberEnd: 3583
    functionName: _Py_GetConfigsAsDict
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyPreConfig_AsDict
    - _PyInterpreterState_GET
    - _Py_GetGlobalVariablesAsDict
    - _PyInterpreterState_GetConfig
    - PyDict_SetItemString
    - PyDict_New
    - _PyConfig_AsDict
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetConfigsAsDict(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3590,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3594,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3598,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3600,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3603,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3607,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3611,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3613
      start: 3586
    functionDepth: 1
    functionLinenumber: 3586
    functionLinenumberEnd: 3613
    functionName: init_dump_ascii_wstr
    functionSourceFile: /src/cpython/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_GetRaisedException
      Src: /src/cpython/Python/initconfig.c:3622,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3624,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/initconfig.c:3633,1
    - Dst: DUMP_CONFIG
      Src: /src/cpython/Python/initconfig.c:3634,1
    - Dst: DUMP_CONFIG
      Src: /src/cpython/Python/initconfig.c:3635,1
    - Dst: DUMP_CONFIG
      Src: /src/cpython/Python/initconfig.c:3636,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3637,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3638,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3639,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3640,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3641,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3642,1
    - Dst: DUMP_CONFIG
      Src: /src/cpython/Python/initconfig.c:3643,1
    - Dst: DUMP_CONFIG
      Src: /src/cpython/Python/initconfig.c:3644,1
    - Dst: DUMP_SYS
      Src: /src/cpython/Python/initconfig.c:3664,1
    - Dst: DUMP_SYS
      Src: /src/cpython/Python/initconfig.c:3665,1
    - Dst: DUMP_SYS
      Src: /src/cpython/Python/initconfig.c:3666,1
    - Dst: DUMP_SYS
      Src: /src/cpython/Python/initconfig.c:3667,1
    - Dst: DUMP_SYS
      Src: /src/cpython/Python/initconfig.c:3668,1
    - Dst: DUMP_SYS
      Src: /src/cpython/Python/initconfig.c:3669,1
    - Dst: DUMP_SYS
      Src: /src/cpython/Python/initconfig.c:3670,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/initconfig.c:3674,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/initconfig.c:3675,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3676,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/initconfig.c:3677,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/initconfig.c:3679,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/initconfig.c:3680,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/initconfig.c:3682,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/initconfig.c:3684,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/initconfig.c:3686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3687
      start: 3619
    functionDepth: 1
    functionLinenumber: 3619
    functionLinenumberEnd: 3687
    functionName: _Py_DumpPathConfig
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PySys_GetOptionalAttrString
    - PyList_GET_ITEM
    - _PyErr_SetRaisedException
    - PyList_GET_SIZE
    - PyList_Check
    - _PyInterpreterState_GetConfig
    - PySys_WriteStderr
    - PySys_FormatStderr
    - DUMP_CONFIG
    - DUMP_SYS
    - _PyErr_GetRaisedException
    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: 3632
      start: 3626
    functionDepth: 0
    functionLinenumber: 3626
    functionLinenumberEnd: 3632
    functionName: DUMP_CONFIG
    functionSourceFile: /src/cpython/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: 3662
      start: 3647
    functionDepth: 0
    functionLinenumber: 3647
    functionLinenumberEnd: 3662
    functionName: DUMP_SYS
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_SYS(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/cpython/Python/initconfig.c:3704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3701
    functionDepth: 0
    functionLinenumber: 3701
    functionLinenumberEnd: 3705
    functionName: initconfig_alloc
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: PyInitConfig
    signature: 'PyInitConfig *

      initconfig_alloc(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_alloc
      Src: /src/cpython/Python/initconfig.c:3711,1
    - Dst: PyPreConfig_InitIsolatedConfig
      Src: /src/cpython/Python/initconfig.c:3715,1
    - Dst: PyConfig_InitIsolatedConfig
      Src: /src/cpython/Python/initconfig.c:3716,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/initconfig.c:3717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3708
    functionDepth: 3
    functionLinenumber: 3708
    functionLinenumberEnd: 3719
    functionName: PyInitConfig_Create
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - PyPreConfig_InitIsolatedConfig
    - PyConfig_InitIsolatedConfig
    - initconfig_alloc
    linkageType: ''
    returnType: PyInitConfig
    signature: 'PyInitConfig *

      PyInitConfig_Create(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Python/initconfig.c:3728,1
    - Dst: free
      Src: /src/cpython/Python/initconfig.c:3729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyInitConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3722
    functionDepth: 0
    functionLinenumber: 3722
    functionLinenumberEnd: 3730
    functionName: PyInitConfig_Free
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PyInitConfig_Free(PyInitConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/cpython/Python/initconfig.c:3736,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/initconfig.c:3738,1
    - Dst: free
      Src: /src/cpython/Python/initconfig.c:3743,1
    - Dst: strdup
      Src: /src/cpython/Python/initconfig.c:3745,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3750,1
    - Dst: _PyStatus_IS_ERROR
      Src: /src/cpython/Python/initconfig.c:3753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - config
    - perr_msg
    argTypes:
    - PyInitConfig*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3733
    functionDepth: 2
    functionLinenumber: 3733
    functionLinenumberEnd: 3761
    functionName: PyInitConfig_GetError
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_IS_EXIT
    - PyOS_snprintf
    - strdup
    - free
    - _PyStatus_IS_ERROR
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_GetError(PyInitConfig* config, const char **perr_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/cpython/Python/initconfig.c:3767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - config
    - exitcode
    argTypes:
    - PyInitConfig*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3764
    functionDepth: 1
    functionLinenumber: 3764
    functionLinenumberEnd: 3774
    functionName: PyInitConfig_GetExitCode
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_IS_EXIT
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_GetExitCode(PyInitConfig* config, int *exitcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/initconfig.c:3780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - err_msg
    argTypes:
    - PyInitConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3781
      start: 3777
    functionDepth: 1
    functionLinenumber: 3777
    functionLinenumberEnd: 3781
    functionName: initconfig_set_error
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_ERR
    linkageType: ''
    returnType: void
    signature: void initconfig_set_error(PyInitConfig *config, const char *err_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:3788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - spec
    - name
    argTypes:
    - PyConfigSpec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3793
      start: 3784
    functionDepth: 0
    functionLinenumber: 3784
    functionLinenumberEnd: 3793
    functionName: initconfig_find_spec
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: PyConfigSpec
    signature: 'PyConfigSpec *

      initconfig_find_spec(const PyConfigSpec *spec, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_find_spec
      Src: /src/cpython/Python/initconfig.c:3799,1
    - Dst: initconfig_find_spec
      Src: /src/cpython/Python/initconfig.c:3801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyInitConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3804
      start: 3796
    functionDepth: 1
    functionLinenumber: 3796
    functionLinenumberEnd: 3804
    functionName: PyInitConfig_HasOption
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - initconfig_find_spec
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_HasOption(PyInitConfig *config, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_find_spec
      Src: /src/cpython/Python/initconfig.c:3810,1
    - Dst: config_get_spec_member
      Src: /src/cpython/Python/initconfig.c:3812,1
    - Dst: initconfig_find_spec
      Src: /src/cpython/Python/initconfig.c:3816,1
    - Dst: preconfig_get_spec_member
      Src: /src/cpython/Python/initconfig.c:3818,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - config
    - name
    - raw_member
    argTypes:
    - PyInitConfig*
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3824
      start: 3807
    functionDepth: 2
    functionLinenumber: 3807
    functionLinenumberEnd: 3824
    functionName: initconfig_prepare
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - initconfig_set_error
    - preconfig_get_spec_member
    - initconfig_find_spec
    - config_get_spec_member
    linkageType: ''
    returnType: PyConfigSpec
    signature: 'PyConfigSpec *

      initconfig_prepare(PyInitConfig *config, const char *name, void **raw_member)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_prepare
      Src: /src/cpython/Python/initconfig.c:3831,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3851,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - config
    - name
    - value
    argTypes:
    - PyInitConfig*
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3827
    functionDepth: 3
    functionLinenumber: 3827
    functionLinenumberEnd: 3865
    functionName: PyInitConfig_GetInt
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - initconfig_set_error
    - initconfig_prepare
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_GetInt(PyInitConfig *config, const char *name, int64_t
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Python/initconfig.c:3872,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3874,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3878,1
    - Dst: strlen
      Src: /src/cpython/Python/initconfig.c:3883,1
    - Dst: malloc
      Src: /src/cpython/Python/initconfig.c:3884,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:3886,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3887,1
    - Dst: memcpy
      Src: /src/cpython/Python/initconfig.c:3891,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:3892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - config
    - wstr
    argTypes:
    - PyInitConfig*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3894
      start: 3868
    functionDepth: 3
    functionLinenumber: 3868
    functionLinenumberEnd: 3894
    functionName: wstr_to_utf8
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - PyMem_RawFree
    - strlen
    - malloc
    - _Py_EncodeUTF8Ex
    - memcpy
    - initconfig_set_error
    linkageType: ''
    returnType: char
    signature: 'char *

      wstr_to_utf8(PyInitConfig *config, wchar_t *wstr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_prepare
      Src: /src/cpython/Python/initconfig.c:3901,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3909,1
    - Dst: wstr_to_utf8
      Src: /src/cpython/Python/initconfig.c:3919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - config
    - name
    - value
    argTypes:
    - PyInitConfig*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3897
    functionDepth: 4
    functionLinenumber: 3897
    functionLinenumberEnd: 3924
    functionName: PyInitConfig_GetStr
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - initconfig_set_error
    - initconfig_prepare
    - wstr_to_utf8
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_GetStr(PyInitConfig *config, const char *name, char
      **value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_prepare
      Src: /src/cpython/Python/initconfig.c:3931,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3937,1
    - Dst: malloc
      Src: /src/cpython/Python/initconfig.c:3944,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:3946,1
    - Dst: wstr_to_utf8
      Src: /src/cpython/Python/initconfig.c:3951,1
    - Dst: PyInitConfig_FreeStrList
      Src: /src/cpython/Python/initconfig.c:3953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - config
    - name
    - length
    - items
    argTypes:
    - PyInitConfig*
    - char*
    - size_t*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3927
    functionDepth: 4
    functionLinenumber: 3927
    functionLinenumberEnd: 3958
    functionName: PyInitConfig_GetStrList
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - malloc
    - wstr_to_utf8
    - initconfig_prepare
    - initconfig_set_error
    - PyInitConfig_FreeStrList
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_GetStrList(PyInitConfig *config, const char *name,
      size_t *length, char ***items)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Python/initconfig.c:3965,1
    - Dst: free
      Src: /src/cpython/Python/initconfig.c:3967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - length
    - items
    argTypes:
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3961
    functionDepth: 0
    functionLinenumber: 3961
    functionLinenumberEnd: 3968
    functionName: PyInitConfig_FreeStrList
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PyInitConfig_FreeStrList(size_t length, char **items)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_prepare
      Src: /src/cpython/Python/initconfig.c:3975,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3984,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:3999,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:4013,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:4025,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4029,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - config
    - name
    - value
    argTypes:
    - PyInitConfig*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4034
      start: 3971
    functionDepth: 3
    functionLinenumber: 3971
    functionLinenumberEnd: 4034
    functionName: PyInitConfig_SetInt
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - initconfig_set_error
    - strcmp
    - initconfig_prepare
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_SetInt(PyInitConfig *config, const char *name, int64_t
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/cpython/Python/initconfig.c:4042,1
    - Dst: strlen
      Src: /src/cpython/Python/initconfig.c:4042,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:4044,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:4048,1
    - Dst: malloc
      Src: /src/cpython/Python/initconfig.c:4054,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:4056,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:4057,1
    - Dst: memcpy
      Src: /src/cpython/Python/initconfig.c:4061,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/initconfig.c:4062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - config
    - str
    argTypes:
    - PyInitConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4064
      start: 4037
    functionDepth: 2
    functionLinenumber: 4037
    functionLinenumberEnd: 4064
    functionName: utf8_to_wstr
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - PyMem_RawFree
    - strlen
    - malloc
    - memcpy
    - initconfig_set_error
    - _Py_DecodeUTF8Ex
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      utf8_to_wstr(PyInitConfig *config, const char *str)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_prepare
      Src: /src/cpython/Python/initconfig.c:4071,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:4078,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:4083,1
    - Dst: utf8_to_wstr
      Src: /src/cpython/Python/initconfig.c:4088,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - config
    - name
    - value
    argTypes:
    - PyInitConfig*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4067
    functionDepth: 3
    functionLinenumber: 4067
    functionLinenumberEnd: 4093
    functionName: PyInitConfig_SetStr
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - initconfig_set_error
    - initconfig_prepare
    - utf8_to_wstr
    linkageType: ''
    returnType: int
    signature: int PyInitConfig_SetStr(PyInitConfig *config, const char *name, const
      char* value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/initconfig.c:4102,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:4104,1
    - Dst: utf8_to_wstr
      Src: /src/cpython/Python/initconfig.c:4109,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:4111,1
    - Dst: _PyWideStringList_Clear
      Src: /src/cpython/Python/initconfig.c:4118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - config
    - list
    - length
    - items
    argTypes:
    - PyInitConfig*
    - PyWideStringList*
    - Py_ssize_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4096
    functionDepth: 4
    functionLinenumber: 4096
    functionLinenumberEnd: 4121
    functionName: _PyWideStringList_FromUTF8
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyWideStringList_Clear
    - PyMem_RawMalloc
    - utf8_to_wstr
    linkageType: ''
    returnType: int
    signature: "int _PyWideStringList_FromUTF8(PyInitConfig *config, PyWideStringList
      *list,\n                           Py_ssize_t length, char * const *items)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initconfig_prepare
      Src: /src/cpython/Python/initconfig.c:4129,1
    - Dst: initconfig_set_error
      Src: /src/cpython/Python/initconfig.c:4135,1
    - Dst: _PyWideStringList_FromUTF8
      Src: /src/cpython/Python/initconfig.c:4139,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - config
    - name
    - length
    - items
    argTypes:
    - PyInitConfig*
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4147
      start: 4124
    functionDepth: 5
    functionLinenumber: 4124
    functionLinenumberEnd: 4147
    functionName: PyInitConfig_SetStrList
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - strcmp
    - initconfig_set_error
    - _PyWideStringList_FromUTF8
    - initconfig_prepare
    linkageType: ''
    returnType: int
    signature: "int PyInitConfig_SetStrList(PyInitConfig *config, const char *name,\n
      \                       size_t length, char * const *items)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Python/initconfig.c:4155,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:4157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - config
    - name
    - (*initfunc)(void)
    argTypes:
    - PyInitConfig*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4150
    functionDepth: 1
    functionLinenumber: 4150
    functionLinenumberEnd: 4173
    functionName: PyInitConfig_AddModule
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - PyMem_RawRealloc
    linkageType: ''
    returnType: int
    signature: "int PyInitConfig_AddModule(PyInitConfig *config, const char *name,\n
      \                      PyObject* (*initfunc)(void))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ExtendInittab
      Src: /src/cpython/Python/initconfig.c:4180,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/initconfig.c:4181,1
    - Dst: _PyPreConfig_GetConfig
      Src: /src/cpython/Python/initconfig.c:4186,1
    - Dst: Py_PreInitializeFromArgs
      Src: /src/cpython/Python/initconfig.c:4188,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:4192,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Python/initconfig.c:4196,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/initconfig.c:4197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyInitConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4202
      start: 4176
    functionDepth: 3
    functionLinenumber: 4176
    functionLinenumberEnd: 4202
    functionName: Py_InitializeFromInitConfig
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_EXCEPTION
    - _PyPreConfig_GetConfig
    - Py_PreInitializeFromArgs
    - PyImport_ExtendInittab
    - Py_InitializeFromConfig
    linkageType: ''
    returnType: int
    signature: int Py_InitializeFromInitConfig(PyInitConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - spec
    - name
    argTypes:
    - PyConfigSpec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4219
      start: 4207
    functionDepth: 0
    functionLinenumber: 4207
    functionLinenumberEnd: 4219
    functionName: config_generic_find_spec
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: PyConfigSpec
    signature: 'PyConfigSpec *

      config_generic_find_spec(const PyConfigSpec *spec, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_generic_find_spec
      Src: /src/cpython/Python/initconfig.c:4225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4226
      start: 4222
    functionDepth: 1
    functionLinenumber: 4222
    functionLinenumberEnd: 4226
    functionName: config_find_spec
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 2
    functionsReached:
    - config_generic_find_spec
    linkageType: ''
    returnType: PyConfigSpec
    signature: 'PyConfigSpec *

      config_find_spec(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_generic_find_spec
      Src: /src/cpython/Python/initconfig.c:4232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4233
      start: 4229
    functionDepth: 1
    functionLinenumber: 4229
    functionLinenumberEnd: 4233
    functionName: preconfig_find_spec
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_generic_find_spec
    linkageType: ''
    returnType: PyConfigSpec
    signature: 'PyConfigSpec *

      preconfig_find_spec(const char *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/cpython/Python/initconfig.c:4241,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/initconfig.c:4243,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/initconfig.c:4247,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/initconfig.c:4250,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/initconfig.c:4254,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/initconfig.c:4259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4263,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/initconfig.c:4267,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/initconfig.c:4268,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - dict
    - str
    argTypes:
    - PyObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4270
      start: 4236
    functionDepth: 9
    functionLinenumber: 4236
    functionLinenumberEnd: 4270
    functionName: config_add_xoption
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyDict_SetItem
    - Py_NewRef
    - PyUnicode_FromWideChar
    - wcschr
    linkageType: ''
    returnType: int
    signature: int config_add_xoption(PyObject *dict, const wchar_t *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/initconfig.c:4276,1
    - Dst: config_add_xoption
      Src: /src/cpython/Python/initconfig.c:4285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4291
      start: 4273
    functionDepth: 10
    functionLinenumber: 4273
    functionLinenumberEnd: 4291
    functionName: _PyConfig_CreateXOptionsDict
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_add_xoption
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyConfig_CreateXOptionsDict(const PyConfig *config)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/initconfig.c:4297,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/initconfig.c:4302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - config
    - value
    argTypes:
    - PyConfig*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4294
    functionDepth: 2
    functionLinenumber: 4294
    functionLinenumberEnd: 4309
    functionName: config_get_sys_write_bytecode
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PySys_GetAttrString
    - PyObject_IsTrue
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int config_get_sys_write_bytecode(const PyConfig *config, int *value)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/initconfig.c:4318,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4321,1
    - Dst: config_get_sys_write_bytecode
      Src: /src/cpython/Python/initconfig.c:4323,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/initconfig.c:4326,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4329,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/initconfig.c:4330,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/initconfig.c:4331,1
    - Dst: config_get_spec_member
      Src: /src/cpython/Python/initconfig.c:4335,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/initconfig.c:4341,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/initconfig.c:4347,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/initconfig.c:4353,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/initconfig.c:4361,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/initconfig.c:4364,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4370,1
    - Dst: _PyConfig_CreateXOptionsDict
      Src: /src/cpython/Python/initconfig.c:4371,1
    - Dst: _PyWideStringList_AsTuple
      Src: /src/cpython/Python/initconfig.c:4375,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/initconfig.c:4380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 3
    argNames:
    - config
    - spec
    - use_sys
    argTypes:
    - PyConfig*
    - PyConfigSpec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4382
      start: 4312
    functionDepth: 11
    functionLinenumber: 4312
    functionLinenumberEnd: 4382
    functionName: config_get
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - config_get_sys_write_bytecode
    - _PyConfig_CreateXOptionsDict
    - PyBool_FromLong
    - _PyInterpreterState_GET
    - _PyWideStringList_AsTuple
    - config_get_spec_member
    - Py_NewRef
    - strcmp
    - PyLong_FromUnsignedLong
    - PyUnicode_FromWideChar
    - PyLong_FromLong
    - PySys_GetAttrString
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nconfig_get(const PyConfig *config, const PyConfigSpec
      *spec,\n           int use_sys)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:4389,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/initconfig.c:4396,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/initconfig.c:4399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - preconfig
    - spec
    argTypes:
    - PyPreConfig*
    - PyConfigSpec*
    assertStmts:
    - condition: "(spec->type == PyConfig_MEMBER_INT\n           || spec->type ==
        PyConfig_MEMBER_BOOL)"
      pos:
        line_end: 4389
        line_start: 4388
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 4401
      start: 4385
    functionDepth: 1
    functionLinenumber: 4385
    functionLinenumberEnd: 4401
    functionName: preconfig_get
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - assert
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      preconfig_get(const PyPreConfig *preconfig, const PyConfigSpec *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4408
      start: 4404
    functionDepth: 14
    functionLinenumber: 4404
    functionLinenumberEnd: 4408
    functionName: config_unknown_name_error
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void config_unknown_name_error(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_find_spec
      Src: /src/cpython/Python/initconfig.c:4414,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/initconfig.c:4416,1
    - Dst: config_get
      Src: /src/cpython/Python/initconfig.c:4417,1
    - Dst: preconfig_find_spec
      Src: /src/cpython/Python/initconfig.c:4420,1
    - Dst: preconfig_get
      Src: /src/cpython/Python/initconfig.c:4423,1
    - Dst: config_unknown_name_error
      Src: /src/cpython/Python/initconfig.c:4426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4411
    functionDepth: 15
    functionLinenumber: 4411
    functionLinenumberEnd: 4428
    functionName: PyConfig_Get
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _Py_GetConfig
    - config_get
    - config_unknown_name_error
    - preconfig_get
    - config_find_spec
    - preconfig_find_spec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyConfig_Get(const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:4434,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/initconfig.c:4434,1
    - Dst: PyConfig_Get
      Src: /src/cpython/Python/initconfig.c:4436,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/initconfig.c:4441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4442,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4443,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/initconfig.c:4447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4448,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/initconfig.c:4449,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - int*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4433
        line_start: 4433
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 4457
      start: 4431
    functionDepth: 16
    functionLinenumber: 4431
    functionLinenumberEnd: 4457
    functionName: PyConfig_GetInt
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_Check
    - PyConfig_Get
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int PyConfig_GetInt(const char *name, int *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/initconfig.c:4467,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/initconfig.c:4471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4472,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - names
    - spec
    argTypes:
    - PyObject*
    - PyConfigSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4460
    functionDepth: 2
    functionLinenumber: 4460
    functionLinenumberEnd: 4478
    functionName: config_names_add
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int config_names_add(PyObject *names, const PyConfigSpec *spec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/initconfig.c:4484,1
    - Dst: config_names_add
      Src: /src/cpython/Python/initconfig.c:4489,1
    - Dst: config_names_add
      Src: /src/cpython/Python/initconfig.c:4492,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Python/initconfig.c:4496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4497,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/initconfig.c:4501,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4503
      start: 4481
    functionDepth: 11
    functionLinenumber: 4481
    functionLinenumberEnd: 4503
    functionName: PyConfig_Names
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - PyFrozenSet_New
    - config_names_add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyConfig_Names(void)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/initconfig.c:4511,1
    - Dst: PyConfigSpec*::sys::flag_setter
      Src: /src/cpython/Python/initconfig.c:4523,1
    - Dst: config_sys_flag_long
      Src: /src/cpython/Python/initconfig.c:4526,1
    - Dst: _PySys_SetFlagObj
      Src: /src/cpython/Python/initconfig.c:4534,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:4539,1
    - Dst: config_get_spec_member
      Src: /src/cpython/Python/initconfig.c:4542,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4546,1
    - Dst: PySys_SetObject
      Src: /src/cpython/Python/initconfig.c:4547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/initconfig.c:4556,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - spec
    - int_value
    argTypes:
    - PyConfigSpec*
    - int
    assertStmts:
    - condition: "(spec->type == PyConfig_MEMBER_INT\n           || spec->type ==
        PyConfig_MEMBER_UINT\n           || spec->type == PyConfig_MEMBER_BOOL)"
      pos:
        line_end: 4540
        line_start: 4538
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 4558
      start: 4508
    functionDepth: 1
    functionLinenumber: 4508
    functionLinenumberEnd: 4558
    functionName: config_set_sys_flag
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PySys_SetFlagObj
    - _PyInterpreterState_GET
    - config_get_spec_member
    - strcmp
    - PySys_SetObject
    - PyConfigSpec*::sys::flag_setter
    - assert
    - config_sys_flag_long
    linkageType: ''
    returnType: int
    signature: int config_set_sys_flag(const PyConfigSpec *spec, int int_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/initconfig.c:4565,1
    - Dst: config_get_spec_member
      Src: /src/cpython/Python/initconfig.c:4567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - value
    argTypes:
    - PyConfigSpec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4570
      start: 4562
    functionDepth: 1
    functionLinenumber: 4562
    functionLinenumberEnd: 4570
    functionName: config_set_int_attr
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - config_get_spec_member
    linkageType: ''
    returnType: int
    signature: int config_set_int_attr(const PyConfigSpec *spec, int value)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Python/initconfig.c:4576,1
    - Dst: config_find_spec
      Src: /src/cpython/Python/initconfig.c:4580,1
    - Dst: preconfig_find_spec
      Src: /src/cpython/Python/initconfig.c:4582,1
    - Dst: config_unknown_name_error
      Src: /src/cpython/Python/initconfig.c:4584,1
    - Dst: assert
      Src: /src/cpython/Python/initconfig.c:4587,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4591,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/initconfig.c:4603,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4604,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/initconfig.c:4607,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/initconfig.c:4608,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4612,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/initconfig.c:4623,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4624,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/initconfig.c:4630,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4631,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4637,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/initconfig.c:4638,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4639,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/initconfig.c:4643,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/initconfig.c:4644,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/initconfig.c:4645,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4646,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/initconfig.c:4655,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4656,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/initconfig.c:4664,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/initconfig.c:4665,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4666,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/initconfig.c:4671,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/initconfig.c:4671,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4672,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/initconfig.c:4682,1
    - Dst: PySys_SetObject
      Src: /src/cpython/Python/initconfig.c:4688,1
    - Dst: config_set_sys_flag
      Src: /src/cpython/Python/initconfig.c:4692,1
    - Dst: strcmp
      Src: /src/cpython/Python/initconfig.c:4694,1
    - Dst: _PySys_SetIntMaxStrDigits
      Src: /src/cpython/Python/initconfig.c:4695,1
    - Dst: config_set_int_attr
      Src: /src/cpython/Python/initconfig.c:4698,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/initconfig.c:4703,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - PyObject*
    assertStmts:
    - condition: (spec->visibility != PyConfig_MEMBER_PUBLIC)
      pos:
        line_end: 4586
        line_start: 4586
        source_file: /src/cpython/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 4705
      start: 4573
    functionDepth: 15
    functionLinenumber: 4573
    functionLinenumberEnd: 4705
    functionName: PyConfig_Set
    functionSourceFile: /src/cpython/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - PyLong_AsInt
    - config_set_int_attr
    - config_unknown_name_error
    - PyList_Check
    - config_find_spec
    - config_set_sys_flag
    - PyErr_Occurred
    - PyList_GET_SIZE
    - strcmp
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_Check
    - PySys_Audit
    - assert
    - PyUnicode_CheckExact
    - PyLong_Check
    - PyBool_Check
    - PyList_GET_ITEM
    - PyDict_Next
    - preconfig_find_spec
    - PySys_SetObject
    - _PySys_SetIntMaxStrDigits
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int PyConfig_Set(const char *name, PyObject *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/cpython/Python/dup2.c:25,1
    - Dst: fcntl
      Src: /src/cpython/Python/dup2.c:27,1
    - Dst: close
      Src: /src/cpython/Python/dup2.c:28,1
    - Dst: fcntl
      Src: /src/cpython/Python/dup2.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - fd1
    - fd2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: dup2
    functionSourceFile: /src/cpython/Python/dup2.c
    functionUses: 4
    functionsReached:
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int dup2(int fd1, int fd2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/sysmodule.c:81,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:82,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:87,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:90,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/sysmodule.c:94,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 14
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: PySys_GetAttr
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 6
    functionsReached:
    - PyErr_SetString
    - _PyThreadState_GET
    - PyErr_Format
    - PyUnicode_Check
    - PyDict_GetItemRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySys_GetAttr(PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:106,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/sysmodule.c:110,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 14
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: PySys_GetAttrString
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 9
    functionsReached:
    - _PyThreadState_GET
    - PyDict_GetItemStringRef
    - PyErr_SetString
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySys_GetAttrString(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/sysmodule.c:119,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:120,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:126,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/sysmodule.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 116
    functionDepth: 14
    functionLinenumber: 116
    functionLinenumberEnd: 133
    functionName: PySys_GetOptionalAttr
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 12
    functionsReached:
    - PyUnicode_Check
    - _PyThreadState_GET
    - PyDict_GetItemRef
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PySys_GetOptionalAttr(PyObject *name, PyObject **value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:138,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/sysmodule.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 9
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: PySys_GetOptionalAttrString
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 11
    functionsReached:
    - _PyThreadState_GET
    - PyDict_GetItemStringRef
    linkageType: ''
    returnType: int
    signature: int PySys_GetOptionalAttrString(const char *name, PyObject **value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:150,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/sysmodule.c:155,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/sysmodule.c:157,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:160,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/sysmodule.c:161,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/sysmodule.c:163,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 147
    functionDepth: 18
    functionLinenumber: 147
    functionLinenumberEnd: 166
    functionName: PySys_GetObject
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    - PyDict_GetItemStringRef
    - PyErr_FormatUnraisable
    - _PyErr_Occurred
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySys_GetObject(const char *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:176,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/sysmodule.c:180,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/sysmodule.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - interp
    - key
    - v
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 168
    functionDepth: 14
    functionLinenumber: 168
    functionLinenumberEnd: 188
    functionName: sys_set_object
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyDict_SetItem
    - PyDict_Pop
    linkageType: ''
    returnType: int
    signature: int sys_set_object(PyInterpreterState *interp, PyObject *key, PyObject
      *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:193,1
    - Dst: sys_set_object
      Src: /src/cpython/Python/sysmodule.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 15
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: _PySys_SetAttr
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - sys_set_object
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int _PySys_SetAttr(PyObject *key, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/sysmodule.c:200,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:201,1
    - Dst: sys_set_object
      Src: /src/cpython/Python/sysmodule.c:202,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - interp
    - name
    - v
    argTypes:
    - PyInterpreterState*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 15
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: sys_set_object_str
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - sys_set_object
    - Py_XDECREF
    - PyUnicode_InternFromString
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int sys_set_object_str(PyInterpreterState *interp, const char *name,
      PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:210,1
    - Dst: sys_set_object_str
      Src: /src/cpython/Python/sysmodule.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - v
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 16
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: PySys_SetObject
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 3
    functionsReached:
    - sys_set_object_str
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PySys_SetObject(const char *name, PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/sysmodule.c:219,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - interp
    - name
    - verbose
    argTypes:
    - PyInterpreterState*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 10
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: _PySys_ClearAttrString
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - PySys_WriteStderr
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: "int _PySys_ClearAttrString(PyInterpreterState *interp,\n                       const
      char *name, int verbose)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:233,1
    - Dst: PyDTrace_AUDIT_ENABLED
      Src: /src/cpython/Python/sysmodule.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: should_audit
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyDTrace_AUDIT_ENABLED
    - assert
    linkageType: ''
    returnType: int
    signature: int should_audit(PyInterpreterState *interp)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:247,1
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:248,1
    - Dst: strchr
      Src: /src/cpython/Python/sysmodule.c:248,1
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:257,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:257,1
    - Dst: should_audit
      Src: /src/cpython/Python/sysmodule.c:261,1
    - Dst: PyDTrace_AUDIT_ENABLED
      Src: /src/cpython/Python/sysmodule.c:271,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/sysmodule.c:274,1
    - Dst: Py_VaBuildValue
      Src: /src/cpython/Python/sysmodule.c:278,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/sysmodule.c:279,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/sysmodule.c:280,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/sysmodule.c:281,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/sysmodule.c:285,1
    - Dst: _Py_AuditHookEntry*::hookCFunction
      Src: /src/cpython/Python/sysmodule.c:297,1
    - Dst: PyDTrace_AUDIT
      Src: /src/cpython/Python/sysmodule.c:304,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:309,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/sysmodule.c:314,1
    - Dst: PyThreadState_EnterTracing
      Src: /src/cpython/Python/sysmodule.c:320,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/sysmodule.c:321,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/sysmodule.c:323,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:323,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/sysmodule.c:325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:326,1
    - Dst: PyThreadState_LeaveTracing
      Src: /src/cpython/Python/sysmodule.c:332,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Python/sysmodule.c:335,1
    - Dst: PyThreadState_EnterTracing
      Src: /src/cpython/Python/sysmodule.c:337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:342,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/sysmodule.c:343,1
    - Dst: PyThreadState_LeaveTracing
      Src: /src/cpython/Python/sysmodule.c:345,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:346,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:354,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:355,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:356,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:357,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/sysmodule.c:360,1
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:363,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:363,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:364,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 84
    argCount: 4
    argNames:
    - ts
    - event
    - argFormat
    - vargs
    argTypes:
    - PyThreadState*
    - char*
    - char*
    - va_list
    assertStmts:
    - condition: (event != NULL)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Python/sysmodule.c
    - condition: (ts == _PyThreadState_GET())
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/cpython/Python/sysmodule.c
    - condition: (!argFormat || !strchr(argFormat, 'N'))
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/cpython/Python/sysmodule.c
    - condition: (_PyErr_Occurred(ts))
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 368
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 368
    functionName: sys_audit_tstate
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GetIter
    - PyIter_Next
    - _PyThreadState_GET
    - Py_SETREF
    - _Py_AuditHookEntry*::hookCFunction
    - Py_CLEAR
    - strchr
    - _PyErr_Occurred
    - PyThreadState_EnterTracing
    - PyTuple_New
    - PyTuple_Pack
    - assert
    - Py_DECREF
    - PyTuple_Check
    - _Py_ID
    - PyDTrace_AUDIT
    - _PyObject_VectorcallTstate
    - Py_VaBuildValue
    - PyObject_IsTrue
    - PyDTrace_AUDIT_ENABLED
    - PyObject_GetOptionalAttr
    - _PyErr_SetRaisedException
    - PyThreadState_LeaveTracing
    - should_audit
    - PyUnicode_FromString
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: int
    signature: "int sys_audit_tstate(PyThreadState *ts, const char *event,\n                 const
      char *argFormat, va_list vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/sysmodule.c:375,1
    - Dst: sys_audit_tstate
      Src: /src/cpython/Python/sysmodule.c:376,1
    - Dst: va_end
      Src: /src/cpython/Python/sysmodule.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tstate
    - event
    - argFormat
    argTypes:
    - PyThreadState*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 379
    functionName: _PySys_Audit
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 14
    functionsReached:
    - va_start
    - sys_audit_tstate
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PySys_Audit(PyThreadState *tstate, const char *event,\n             const
      char *argFormat, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:384,1
    - Dst: va_start
      Src: /src/cpython/Python/sysmodule.c:386,1
    - Dst: sys_audit_tstate
      Src: /src/cpython/Python/sysmodule.c:387,1
    - Dst: va_end
      Src: /src/cpython/Python/sysmodule.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - event
    - argFormat
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: PySys_Audit
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 176
    functionsReached:
    - _PyThreadState_GET
    - va_start
    - sys_audit_tstate
    - va_end
    linkageType: ''
    returnType: int
    signature: int PySys_Audit(const char *event, const char *argFormat, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:396,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/sysmodule.c:399,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:400,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/sysmodule.c:401,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - event
    - args
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 392
    functionDepth: 14
    functionLinenumber: 392
    functionLinenumberEnd: 405
    functionName: PySys_AuditTuple
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PySys_Audit
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PySys_AuditTuple(const char *event, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:415,1
    - Dst: _PyRuntimeState_GetFinalizing
      Src: /src/cpython/Python/sysmodule.c:422,1
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:423,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/sysmodule.c:428,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/sysmodule.c:430,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:435,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:436,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ts
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/cpython/Python/sysmodule.c
    - condition: (finalizing == ts)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 449
      start: 412
    functionDepth: 8
    functionLinenumber: 412
    functionLinenumberEnd: 449
    functionName: _PySys_ClearAuditHooks
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _PyErr_Clear
    - _PyInterpreterState_GetConfig
    - PySys_WriteStderr
    - _PySys_Audit
    - _PyRuntimeState_GetFinalizing
    - assert
    linkageType: ''
    returnType: void
    signature: void _PySys_ClearAuditHooks(PyThreadState *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - runtime
    - entry
    argTypes:
    - _PyRuntimeState*
    - _Py_AuditHookEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 465
    functionName: add_audit_hook_entry_unlocked
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_audit_hook_entry_unlocked(_PyRuntimeState *runtime,\n                              _Py_AuditHookEntry
      *entry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:475,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:484,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/sysmodule.c:485,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:487,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/sysmodule.c:494,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/sysmodule.c:498,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/sysmodule.c:506,1
    - Dst: add_audit_hook_entry_unlocked
      Src: /src/cpython/Python/sysmodule.c:507,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/sysmodule.c:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - hook
    - userData
    argTypes:
    - Py_AuditHookFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 511
    functionName: PySys_AddAuditHook
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_ExceptionMatches
    - add_audit_hook_entry_unlocked
    - _PyErr_Clear
    - _PyThreadState_GET
    - _PyErr_NoMemory
    - PyMutex_Lock
    - PyMem_RawMalloc
    - PyMutex_Unlock
    - _PySys_Audit
    linkageType: ''
    returnType: int
    signature: int PySys_AddAuditHook(Py_AuditHookFunction hook, void *userData)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:525,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:528,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/sysmodule.c:529,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:531,1
    - Dst: PyList_New
      Src: /src/cpython/Python/sysmodule.c:539,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/sysmodule.c:544,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/sysmodule.c:547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - module
    - hook
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 521
    functionDepth: 8
    functionLinenumber: 521
    functionLinenumberEnd: 552
    functionName: sys_addaudithook_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - _PyErr_ExceptionMatches
    - PyObject_GC_UnTrack
    - PyList_Append
    - _PyErr_Clear
    - _PyThreadState_GET
    - _PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_addaudithook_impl(PyObject *module, PyObject *hook)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:568,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/sysmodule.c:569,1
    - Dst: should_audit
      Src: /src/cpython/Python/sysmodule.c:571,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - event
    - args
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 564
    functionDepth: 5
    functionLinenumber: 564
    functionLinenumberEnd: 581
    functionName: sys_audit_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PySys_Audit
    - _Py_EnsureTstateNotNULL
    - should_audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_audit_impl(PyObject *module, const char *event, PyObject *args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:587,1
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:588,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:588,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/sysmodule.c:589,1
    - Dst: strlen
      Src: /src/cpython/Python/sysmodule.c:591,1
    - Dst: strcmp
      Src: /src/cpython/Python/sysmodule.c:594,1
    - Dst: _PyMem_RawStrdup
      Src: /src/cpython/Python/sysmodule.c:602,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/sysmodule.c:604,1
    - Dst: strrchr
      Src: /src/cpython/Python/sysmodule.c:607,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:613,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/sysmodule.c:618,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:625,1
    - Dst: PyImport_Import
      Src: /src/cpython/Python/sysmodule.c:629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:630,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/sysmodule.c:633,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:636,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/sysmodule.c:640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:641,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/sysmodule.c:644,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:647,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:650,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/sysmodule.c:651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:652,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:657,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/sysmodule.c:658,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:661,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(tstate))
      pos:
        line_end: 587
        line_start: 587
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 668
      start: 584
    functionDepth: 18
    functionLinenumber: 584
    functionLinenumberEnd: 668
    functionName: sys_breakpointhook
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnFormat
    - _PyErr_ExceptionMatches
    - strlen
    - _PyErr_Clear
    - _PyThreadState_GET
    - _PyMem_RawStrdup
    - _PyErr_Occurred
    - strrchr
    - PyUnicode_FromStringAndSize
    - _PyErr_NoMemory
    - strcmp
    - PyImport_Import
    - Py_DECREF
    - PyMem_RawFree
    - PyObject_Vectorcall
    - PyObject_GetAttrString
    - Py_GETENV
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *keywords)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/sysmodule.c:691,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:691,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/sysmodule.c:694,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/sysmodule.c:698,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/sysmodule.c:701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:704,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/sysmodule.c:708,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:709,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/sysmodule.c:713,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:718,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Python/sysmodule.c:721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:724,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/sysmodule.c:725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:729,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:737,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - outf
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 739
    functionName: sys_displayhook_unencodable
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_Repr
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - PyObject_GetAttr
    - PyUnicode_AsEncodedString
    - PyUnicode_AsUTF8
    - PyFile_WriteObject
    - PyObject_CallMethodOneArg
    - PyUnicode_FromEncodedObject
    linkageType: ''
    returnType: int
    signature: int sys_displayhook_unencodable(PyObject *outf, PyObject *o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:756,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/sysmodule.c:758,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:758,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:760,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:766,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/sysmodule.c:774,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/sysmodule.c:774,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/sysmodule.c:776,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:776,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:782,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/sysmodule.c:785,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/sysmodule.c:786,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:790,1
    - Dst: sys_displayhook_unencodable
      Src: /src/cpython/Python/sysmodule.c:791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:793,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:798,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/sysmodule.c:802,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/sysmodule.c:802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:806,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/sysmodule.c:807,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/sysmodule.c:807,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - module
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 750
    functionDepth: 15
    functionLinenumber: 750
    functionLinenumberEnd: 811
    functionName: sys_displayhook
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - _Py_LATIN1_CHR
    - _Py_ID
    - _PyErr_Clear
    - PyImport_GetModule
    - _PyThreadState_GET
    - PyObject_SetAttr
    - PySys_GetAttr
    - sys_displayhook_unencodable
    - PyFile_WriteObject
    - _PyErr_SetString
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_displayhook(PyObject *module, PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Display
      Src: /src/cpython/Python/sysmodule.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - module
    - exctype
    - value
    - traceback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 825
    functionDepth: 18
    functionLinenumber: 825
    functionLinenumberEnd: 832
    functionName: sys_excepthook_impl
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/sysmodule.c:849,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:849,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 854
    functionName: sys_exception_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_GetTopmostException
    - _PyThreadState_GET
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_exception_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/sysmodule.c:870,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:870,1
    - Dst: _PyErr_StackItemToExcInfoTuple
      Src: /src/cpython/Python/sysmodule.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 866
    functionDepth: 5
    functionLinenumber: 866
    functionLinenumberEnd: 872
    functionName: sys_exc_info_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_GetTopmostException
    - _PyThreadState_GET
    - _PyErr_StackItemToExcInfoTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_exc_info_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_WriteUnraisableDefaultHook
      Src: /src/cpython/Python/sysmodule.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - unraisable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 892
    functionDepth: 17
    functionLinenumber: 892
    functionLinenumberEnd: 897
    functionName: sys_unraisablehook
    functionSourceFile: /src/cpython/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/cpython/Python/sysmodule.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 914
    functionDepth: 13
    functionLinenumber: 914
    functionLinenumberEnd: 921
    functionName: sys_exit_impl
    functionSourceFile: /src/cpython/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: _Py_DECLARE_STR
      Src: /src/cpython/Python/sysmodule.c:927,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/sysmodule.c:928,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 930
    functionName: get_utf8_unicode
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _Py_STR
    - _Py_DECLARE_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_utf8_unicode(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_utf8_unicode
      Src: /src/cpython/Python/sysmodule.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 943
    functionName: sys_getdefaultencoding_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - get_utf8_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getdefaultencoding_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:955,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/sysmodule.c:956,1
    - Dst: wcscmp
      Src: /src/cpython/Python/sysmodule.c:958,1
    - Dst: get_utf8_unicode
      Src: /src/cpython/Python/sysmodule.c:959,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:962,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/sysmodule.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 951
    functionDepth: 9
    functionLinenumber: 951
    functionLinenumberEnd: 968
    functionName: sys_getfilesystemencoding_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_InternImmortal
    - wcscmp
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetConfig
    - get_utf8_unicode
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getfilesystemencoding_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:980,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/sysmodule.c:981,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:982,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/sysmodule.c:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 976
    functionDepth: 9
    functionLinenumber: 976
    functionLinenumberEnd: 988
    functionName: sys_getfilesystemencodeerrors_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - _PyUnicode_InternImmortal
    - PyUnicode_FromWideChar
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getfilesystemencodeerrors_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/sysmodule.c:1007,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:1008,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/sysmodule.c:1009,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Python/sysmodule.c:1010,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:1014,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/sysmodule.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - s
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1003
    functionDepth: 14
    functionLinenumber: 1003
    functionLinenumberEnd: 1018
    functionName: sys_intern_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyUnicode_InternMortal
    - PyUnicode_CheckExact
    - _PyInterpreterState_GET
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_intern_impl(PyObject *module, PyObject *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/sysmodule.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1035
    functionName: sys__is_interned_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CHECK_INTERNED
    linkageType: ''
    returnType: int
    signature: int sys__is_interned_impl(PyObject *module, PyObject *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Python/sysmodule.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1053
    functionName: sys__is_immortal_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyUnstable_IsImmortal
    linkageType: ''
    returnType: int
    signature: int sys__is_immortal_impl(PyObject *module, PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Python/sysmodule.c:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - tstate
    - callback
    - frame
    - what
    - arg
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1083
    functionName: call_trampoline
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_VectorcallTstate
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncall_trampoline(PyThreadState *tstate, PyObject* callback,\n
      \               PyFrameObject *frame, int what, PyObject *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1089,1
    - Dst: call_trampoline
      Src: /src/cpython/Python/sysmodule.c:1090,1
    - Dst: _PyEval_SetProfile
      Src: /src/cpython/Python/sysmodule.c:1092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - frame
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1085
    functionDepth: 10
    functionLinenumber: 1085
    functionLinenumberEnd: 1098
    functionName: profile_trampoline
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_SetProfile
    - Py_DECREF
    - call_trampoline
    linkageType: ''
    returnType: int
    signature: "int profile_trampoline(PyObject *self, PyFrameObject *frame,\n                   int
      what, PyObject *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1115,1
    - Dst: call_trampoline
      Src: /src/cpython/Python/sysmodule.c:1116,1
    - Dst: _PyEval_SetTrace
      Src: /src/cpython/Python/sysmodule.c:1118,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/sysmodule.c:1119,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/sysmodule.c:1124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:1127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - frame
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1100
    functionDepth: 10
    functionLinenumber: 1100
    functionLinenumberEnd: 1130
    functionName: trace_trampoline
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyEval_SetTrace
    - _PyThreadState_GET
    - Py_XSETREF
    - Py_CLEAR
    - call_trampoline
    linkageType: ''
    returnType: int
    signature: "int trace_trampoline(PyObject *self, PyFrameObject *frame,\n                 int
      what, PyObject *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1148,1
    - Dst: _PyEval_SetTrace
      Src: /src/cpython/Python/sysmodule.c:1150,1
    - Dst: _PyEval_SetTrace
      Src: /src/cpython/Python/sysmodule.c:1155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1144
    functionDepth: 10
    functionLinenumber: 1144
    functionLinenumberEnd: 1160
    functionName: sys_settrace
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_SetTrace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_settrace(PyObject *module, PyObject *function)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:1187,1
    - Dst: _PyEval_SetTraceAllThreads
      Src: /src/cpython/Python/sysmodule.c:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1175
    functionDepth: 10
    functionLinenumber: 1175
    functionLinenumberEnd: 1192
    functionName: sys__settraceallthreads
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_SetTraceAllThreads
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__settraceallthreads(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1206,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1212
    functionName: sys_gettrace_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_gettrace_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1230,1
    - Dst: _PyEval_SetProfile
      Src: /src/cpython/Python/sysmodule.c:1232,1
    - Dst: _PyEval_SetProfile
      Src: /src/cpython/Python/sysmodule.c:1237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1226
    functionDepth: 10
    functionLinenumber: 1226
    functionLinenumberEnd: 1242
    functionName: sys_setprofile
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_SetProfile
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setprofile(PyObject *module, PyObject *function)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:1269,1
    - Dst: _PyEval_SetProfileAllThreads
      Src: /src/cpython/Python/sysmodule.c:1270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1257
    functionDepth: 10
    functionLinenumber: 1257
    functionLinenumberEnd: 1274
    functionName: sys__setprofileallthreads
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_SetProfileAllThreads
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__setprofileallthreads(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1288,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:1293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1294
    functionName: sys_getprofile_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getprofile_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:1318,1
    - Dst: _PyEval_SetSwitchInterval
      Src: /src/cpython/Python/sysmodule.c:1322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - interval
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1313
    functionDepth: 14
    functionLinenumber: 1313
    functionLinenumberEnd: 1324
    functionName: sys_setswitchinterval_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyEval_SetSwitchInterval
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setswitchinterval_impl(PyObject *module, double interval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetSwitchInterval
      Src: /src/cpython/Python/sysmodule.c:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1338
    functionName: sys_getswitchinterval_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetSwitchInterval
    linkageType: ''
    returnType: double
    signature: double sys_getswitchinterval_impl(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1357,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:1360,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:1369,1
    - Dst: Py_SetRecursionLimit
      Src: /src/cpython/Python/sysmodule.c:1376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - new_limit
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1353
    functionDepth: 14
    functionLinenumber: 1353
    functionLinenumberEnd: 1378
    functionName: sys_setrecursionlimit_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    - Py_SetRecursionLimit
    - _PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setrecursionlimit_impl(PyObject *module, int new_limit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_SetCoroutineOriginTrackingDepth
      Src: /src/cpython/Python/sysmodule.c:1397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - depth
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1393
    functionDepth: 2
    functionLinenumber: 1393
    functionLinenumberEnd: 1401
    functionName: sys_set_coroutine_origin_tracking_depth_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_SetCoroutineOriginTrackingDepth
    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/cpython/Python/sysmodule.c:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1414
    functionName: sys_get_coroutine_origin_tracking_depth_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetCoroutineOriginTrackingDepth
    linkageType: ''
    returnType: int
    signature: int sys_get_coroutine_origin_tracking_depth_impl(PyObject *module)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Python/sysmodule.c:1444,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/sysmodule.c:1451,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:1452,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/sysmodule.c:1454,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/sysmodule.c:1460,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:1461,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/sysmodule.c:1463,1
    - Dst: _PyEval_GetAsyncGenFinalizer
      Src: /src/cpython/Python/sysmodule.c:1468,1
    - Dst: _PyEval_SetAsyncGenFinalizer
      Src: /src/cpython/Python/sysmodule.c:1471,1
    - Dst: _PyEval_SetAsyncGenFinalizer
      Src: /src/cpython/Python/sysmodule.c:1475,1
    - Dst: _PyEval_SetAsyncGenFirstiter
      Src: /src/cpython/Python/sysmodule.c:1480,1
    - Dst: _PyEval_SetAsyncGenFirstiter
      Src: /src/cpython/Python/sysmodule.c:1484,1
    - Dst: _PyEval_SetAsyncGenFinalizer
      Src: /src/cpython/Python/sysmodule.c:1491,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1437
    functionDepth: 14
    functionLinenumber: 1437
    functionLinenumberEnd: 1493
    functionName: sys_set_asyncgen_hooks
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_SetAsyncGenFirstiter
    - _PyEval_SetAsyncGenFinalizer
    - PyCallable_Check
    - PyArg_ParseTupleAndKeywords
    - _PyEval_GetAsyncGenFinalizer
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_set_asyncgen_hooks(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetAsyncGenFirstiter
      Src: /src/cpython/Python/sysmodule.c:1514,1
    - Dst: _PyEval_GetAsyncGenFinalizer
      Src: /src/cpython/Python/sysmodule.c:1515,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/sysmodule.c:1517,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:1530,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:1530,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:1531,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:1531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1509
    functionDepth: 2
    functionLinenumber: 1509
    functionLinenumberEnd: 1534
    functionName: sys_get_asyncgen_hooks_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyEval_GetAsyncGenFinalizer
    - PyStructSequence_SET_ITEM
    - _PyEval_GetAsyncGenFirstiter
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_get_asyncgen_hooks_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/sysmodule.c:1573,1
    - Dst: PyHash_GetFuncDef
      Src: /src/cpython/Python/sysmodule.c:1577,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1589,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1589,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1590,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/sysmodule.c:1590,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1591,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1591,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1592,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1592,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1593,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1593,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1594,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:1594,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1595,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1595,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1596,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1596,1
    - Dst: SET_HASH_INFO_ITEM
      Src: /src/cpython/Python/sysmodule.c:1597,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1567
    functionDepth: 2
    functionLinenumber: 1567
    functionLinenumberEnd: 1602
    functionName: get_hash_info
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - SET_HASH_INFO_ITEM
    - PyUnicode_FromString
    - PyLong_FromLong
    - PyStructSequence_New
    - PyHash_GetFuncDef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_hash_info(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1579
    functionDepth: 0
    functionLinenumber: 1579
    functionLinenumberEnd: 1588
    functionName: SET_HASH_INFO_ITEM
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_HASH_INFO_ITEM(CALL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1617,1
    - Dst: Py_GetRecursionLimit
      Src: /src/cpython/Python/sysmodule.c:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1618
    functionName: sys_getrecursionlimit_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetRecursionLimit
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getrecursionlimit_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:1651,1
    - Dst: GetModuleHandleW
      Src: /src/cpython/Python/sysmodule.c:1663,1
    - Dst: GetModuleFileNameW
      Src: /src/cpython/Python/sysmodule.c:1665,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/sysmodule.c:1666,1
    - Dst: GetFileVersionInfoSizeW
      Src: /src/cpython/Python/sysmodule.c:1669,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/sysmodule.c:1671,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/sysmodule.c:1674,1
    - Dst: GetFileVersionInfoW
      Src: /src/cpython/Python/sysmodule.c:1676,1
    - Dst: VerQueryValueW
      Src: /src/cpython/Python/sysmodule.c:1677,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/sysmodule.c:1678,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:1680,1
    - Dst: HIWORD
      Src: /src/cpython/Python/sysmodule.c:1685,1
    - Dst: LOWORD
      Src: /src/cpython/Python/sysmodule.c:1686,1
    - Dst: HIWORD
      Src: /src/cpython/Python/sysmodule.c:1687,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/sysmodule.c:1688,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/sysmodule.c:1689,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1647
    functionDepth: 15
    functionLinenumber: 1647
    functionLinenumberEnd: 1691
    functionName: _sys_getwindowsversion_from_kernel32
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - GetModuleFileNameW
    - GetFileVersionInfoW
    - VerQueryValueW
    - Py_BuildValue
    - PyMem_RawFree
    - PyErr_SetString
    - HIWORD
    - PyErr_SetFromWindowsErr
    - GetFileVersionInfoSizeW
    - PyMem_RawMalloc
    - GetModuleHandleW
    - LOWORD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sys_getwindowsversion_from_kernel32(void)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttrString
      Src: /src/cpython/Python/sysmodule.c:1723,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/sysmodule.c:1726,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:1729,1
    - Dst: GetVersionExW
      Src: /src/cpython/Python/sysmodule.c:1732,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/sysmodule.c:1733,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/sysmodule.c:1735,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1748,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1748,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1749,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1749,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1750,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1750,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1751,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1751,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1752,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:1752,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1753,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1753,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1754,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1754,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1755,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1755,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1756,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1756,1
    - Dst: _sys_getwindowsversion_from_kernel32
      Src: /src/cpython/Python/sysmodule.c:1762,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/sysmodule.c:1764,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:1768,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/sysmodule.c:1769,1
    - Dst: SET_VERSION_INFO
      Src: /src/cpython/Python/sysmodule.c:1776,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/sysmodule.c:1780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:1787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1715
    functionDepth: 16
    functionLinenumber: 1715
    functionLinenumberEnd: 1789
    functionName: sys_getwindowsversion_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - PyObject_TypeCheck
    - Py_DECREF
    - _sys_getwindowsversion_from_kernel32
    - PyErr_SetFromWindowsErr
    - PyObject_SetAttrString
    - PyErr_ExceptionMatches
    - PyUnicode_FromWideChar
    - PyLong_FromLong
    - GetVersionExW
    - PyErr_Clear
    - SET_VERSION_INFO
    - PyStructSequence_New
    - PyObject_GetOptionalAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getwindowsversion_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1747
    functionName: SET_VERSION_INFO
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_VERSION_INFO(CALL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/sysmodule.c:1809,1
    - Dst: _PyUnicode_EnableLegacyWindowsFSEncoding
      Src: /src/cpython/Python/sysmodule.c:1816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1805
    functionDepth: 17
    functionLinenumber: 1805
    functionLinenumberEnd: 1820
    functionName: sys__enablelegacywindowsfsencoding_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EnableLegacyWindowsFSEncoding
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__enablelegacywindowsfsencoding_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:1847,1
    - Dst: _PyImport_SetDLOpenFlags
      Src: /src/cpython/Python/sysmodule.c:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - new_val
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1843
    functionDepth: 2
    functionLinenumber: 1843
    functionLinenumberEnd: 1850
    functionName: sys_setdlopenflags_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyImport_SetDLOpenFlags
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setdlopenflags_impl(PyObject *module, int new_val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:1865,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1866,1
    - Dst: _PyImport_GetDLOpenFlags
      Src: /src/cpython/Python/sysmodule.c:1867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1861
    functionDepth: 2
    functionLinenumber: 1861
    functionLinenumberEnd: 1868
    functionName: sys_getdlopenflags_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyImport_GetDLOpenFlags
    - _PyInterpreterState_GET
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getdlopenflags_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mallopt
      Src: /src/cpython/Python/sysmodule.c:1888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1890
    functionName: sys_mdebug_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - mallopt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_mdebug_impl(PyObject *module, int flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:1904,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1906
    functionName: sys_get_int_max_str_digits_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_get_int_max_str_digits_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_SetIntMaxStrDigits
      Src: /src/cpython/Python/sysmodule.c:1921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - maxdigits
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1925
    functionName: sys_set_int_max_str_digits_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PySys_SetIntMaxStrDigits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_set_int_max_str_digits_impl(PyObject *module, int maxdigits)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1933,1
    - Dst: PyType_Ready
      Src: /src/cpython/Python/sysmodule.c:1936,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/sysmodule.c:1936,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Python/sysmodule.c:1940,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:1940,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:1942,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:1943,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/sysmodule.c:1945,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/sysmodule.c:1949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:1950,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/sysmodule.c:1956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:1957,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:1958,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:1962,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/sysmodule.c:1968,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/sysmodule.c:1969,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/sysmodule.c:1972,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/sysmodule.c:1972,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1927
    functionDepth: 18
    functionLinenumber: 1927
    functionLinenumberEnd: 1976
    functionName: _PySys_GetSizeOf
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - _PyObject_CallNoArgs
    - Py_DECREF
    - _PyErr_Format
    - _Py_ID
    - PyType_Ready
    - _PyObject_LookupSpecial
    - PyType_HasFeature
    - _PyThreadState_GET
    - Py_IS_TYPE
    - _PyType_PreHeaderSize
    - _PyErr_SetString
    - Py_TYPE
    - _PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: size_t
    signature: size_t _PySys_GetSizeOf(PyObject *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:1984,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Python/sysmodule.c:1986,1
    - Dst: _PySys_GetSizeOf
      Src: /src/cpython/Python/sysmodule.c:1991,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:1993,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/sysmodule.c:1995,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:1996,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:1997,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Python/sysmodule.c:2003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1978
    functionDepth: 19
    functionLinenumber: 1978
    functionLinenumberEnd: 2004
    functionName: sys_getsizeof
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_ExceptionMatches
    - _PyErr_Clear
    - PyArg_ParseTupleAndKeywords
    - _PyThreadState_GET
    - Py_NewRef
    - PyLong_FromSize_t
    - _PySys_GetSizeOf
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getsizeof(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/sysmodule.c:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2029
    functionName: sys_getrefcount_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sys_getrefcount_impl(PyObject *module, PyObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetGlobalRefTotal
      Src: /src/cpython/Python/sysmodule.c:2042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2036
    functionDepth: 4
    functionLinenumber: 2036
    functionLinenumberEnd: 2043
    functionName: sys_gettotalrefcount_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetGlobalRefTotal
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sys_gettotalrefcount_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetGlobalAllocatedBlocks
      Src: /src/cpython/Python/sysmodule.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2053
    functionDepth: 5
    functionLinenumber: 2053
    functionLinenumberEnd: 2060
    functionName: sys_getallocatedblocks_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetGlobalAllocatedBlocks
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sys_getallocatedblocks_impl(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_InternedSize_Immortal
      Src: /src/cpython/Python/sysmodule.c:2076,1
    - Dst: _PyUnicode_InternedSize
      Src: /src/cpython/Python/sysmodule.c:2079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - _only_immortal
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2071
    functionDepth: 5
    functionLinenumber: 2071
    functionLinenumberEnd: 2081
    functionName: sys_getunicodeinternedsize_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_InternedSize_Immortal
    - _PyUnicode_InternedSize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sys_getunicodeinternedsize_impl(PyObject *module, int _only_immortal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:2104,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/sysmodule.c:2109,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2117,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/sysmodule.c:2122,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/sysmodule.c:2122,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:2123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - module
    - depth
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2100
    functionDepth: 13
    functionLinenumber: 2100
    functionLinenumberEnd: 2128
    functionName: sys__getframe_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetFirstComplete
    - Py_DECREF
    - _PyThreadState_GET
    - Py_XNewRef
    - _PyFrame_GetFrameObject
    - _PySys_Audit
    - _PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__getframe_impl(PyObject *module, int depth)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThread_CurrentFrames
      Src: /src/cpython/Python/sysmodule.c:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2138
    functionDepth: 11
    functionLinenumber: 2138
    functionLinenumberEnd: 2143
    functionName: sys__current_frames_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThread_CurrentFrames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__current_frames_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThread_CurrentExceptions
      Src: /src/cpython/Python/sysmodule.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2154
    functionDepth: 11
    functionLinenumber: 2154
    functionLinenumberEnd: 2159
    functionName: sys__current_exceptions_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThread_CurrentExceptions
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__current_exceptions_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_CallTracing
      Src: /src/cpython/Python/sysmodule.c:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - func
    - funcargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2175
    functionDepth: 6
    functionLinenumber: 2175
    functionLinenumberEnd: 2180
    functionName: sys_call_tracing_impl
    functionSourceFile: /src/cpython/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: _PyObject_DebugMallocStats
      Src: /src/cpython/Python/sysmodule.c:2196,1
    - Dst: fputc
      Src: /src/cpython/Python/sysmodule.c:2197,1
    - Dst: _PyObject_DebugTypeStats
      Src: /src/cpython/Python/sysmodule.c:2200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2191
    functionDepth: 4
    functionLinenumber: 2191
    functionLinenumberEnd: 2203
    functionName: sys__debugmallocstats_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - fputc
    - _PyObject_DebugTypeStats
    - _PyObject_DebugMallocStats
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__debugmallocstats_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/sysmodule.c:2221,1
    - Dst: PyType_ClearCache
      Src: /src/cpython/Python/sysmodule.c:2229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2217
    functionDepth: 17
    functionLinenumber: 2217
    functionLinenumberEnd: 2231
    functionName: sys__clear_type_cache_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyType_ClearCache
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__clear_type_cache_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:2244,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/sysmodule.c:2245,1
    - Dst: _Py_ClearUnusedTLBC
      Src: /src/cpython/Python/sysmodule.c:2248,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:2248,1
    - Dst: PyType_ClearCache
      Src: /src/cpython/Python/sysmodule.c:2252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2239
    functionDepth: 4
    functionLinenumber: 2239
    functionLinenumberEnd: 2254
    functionName: sys__clear_internal_caches_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_ClearUnusedTLBC
    - PyType_ClearCache
    - _PyInterpreterState_GET
    - _Py_Executors_InvalidateAll
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__clear_internal_caches_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/sysmodule.c:2269,1
    - Dst: Py_IsFinalizing
      Src: /src/cpython/Python/sysmodule.c:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2270
    functionName: sys_is_finalizing_impl
    functionSourceFile: /src/cpython/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: _Py_StatsOn
      Src: /src/cpython/Python/sysmodule.c:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2280
    functionDepth: 1
    functionLinenumber: 2280
    functionLinenumberEnd: 2286
    functionName: sys__stats_on_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_StatsOn
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__stats_on_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_StatsOff
      Src: /src/cpython/Python/sysmodule.c:2298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2294
    functionDepth: 1
    functionLinenumber: 2294
    functionLinenumberEnd: 2300
    functionName: sys__stats_off_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_StatsOff
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__stats_off_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_StatsClear
      Src: /src/cpython/Python/sysmodule.c:2312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2308
    functionDepth: 1
    functionLinenumber: 2308
    functionLinenumberEnd: 2314
    functionName: sys__stats_clear_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_StatsClear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__stats_clear_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PrintSpecializationStats
      Src: /src/cpython/Python/sysmodule.c:2329,1
    - Dst: _Py_StatsClear
      Src: /src/cpython/Python/sysmodule.c:2330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2325
    functionDepth: 4
    functionLinenumber: 2325
    functionLinenumberEnd: 2332
    functionName: sys__stats_dump_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_PrintSpecializationStats
    - _Py_StatsClear
    linkageType: ''
    returnType: int
    signature: int sys__stats_dump_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2343
    functionDepth: 0
    functionLinenumber: 2343
    functionLinenumberEnd: 2348
    functionName: sys_getandroidapilevel_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getandroidapilevel_impl(PyObject *module)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:2366,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2367,1
    - Dst: strcmp
      Src: /src/cpython/Python/sysmodule.c:2372,1
    - Dst: _PyPerfTrampoline_GetCallbacks
      Src: /src/cpython/Python/sysmodule.c:2374,1
    - Dst: _PyPerfTrampoline_SetCallbacks
      Src: /src/cpython/Python/sysmodule.c:2376,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2377,1
    - Dst: strcmp
      Src: /src/cpython/Python/sysmodule.c:2381,1
    - Dst: _PyPerfTrampoline_GetCallbacks
      Src: /src/cpython/Python/sysmodule.c:2383,1
    - Dst: _PyPerfTrampoline_SetCallbacks
      Src: /src/cpython/Python/sysmodule.c:2385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2386,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:2393,1
    - Dst: _PyPerfTrampoline_Init
      Src: /src/cpython/Python/sysmodule.c:2396,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - module
    - backend
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2360
    functionDepth: 20
    functionLinenumber: 2360
    functionLinenumberEnd: 2404
    functionName: sys_activate_stack_trampoline_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyPerfTrampoline_GetCallbacks
    - PyErr_SetString
    - _PyInterpreterState_GET
    - _PyPerfTrampoline_Init
    - strcmp
    - PyErr_Format
    - _PyPerfTrampoline_SetCallbacks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_activate_stack_trampoline_impl(PyObject *module, const char *backend)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyPerfTrampoline_Init
      Src: /src/cpython/Python/sysmodule.c:2419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2415
    functionDepth: 20
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: sys_deactivate_stack_trampoline_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyPerfTrampoline_Init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_deactivate_stack_trampoline_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsPerfTrampolineActive
      Src: /src/cpython/Python/sysmodule.c:2436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2431
    functionDepth: 2
    functionLinenumber: 2431
    functionLinenumberEnd: 2441
    functionName: sys_is_stack_trampoline_active_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyIsPerfTrampolineActive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_is_stack_trampoline_active_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/sysmodule.c:2457,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/sysmodule.c:2458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2450
    functionDepth: 2
    functionLinenumber: 2450
    functionLinenumberEnd: 2460
    functionName: sys_is_remote_debug_enabled_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _Py_GetConfig
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_is_remote_debug_enabled_impl(PyObject *module)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Python/sysmodule.c:2495,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:2499,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/sysmodule.c:2503,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Python/sysmodule.c:2506,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/sysmodule.c:2510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2511,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Python/sysmodule.c:2515,1
    - Dst: GetLastError
      Src: /src/cpython/Python/sysmodule.c:2517,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/sysmodule.c:2518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2520,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2523,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/sysmodule.c:2526,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/sysmodule.c:2530,1
    - Dst: access
      Src: /src/cpython/Python/sysmodule.c:2532,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2535,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/sysmodule.c:2538,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/sysmodule.c:2541,1
    - Dst: _PySysRemoteDebug_SendExec
      Src: /src/cpython/Python/sysmodule.c:2546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2554,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - module
    - pid
    - script
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2488
    functionDepth: 15
    functionLinenumber: 2488
    functionLinenumberEnd: 2556
    functionName: sys_remote_exec_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FSDecoder
    - Py_DECREF
    - PyErr_SetString
    - GetLastError
    - PyErr_SetFromWindowsErr
    - _PySysRemoteDebug_SendExec
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    - access
    - PySys_Audit
    - PyBytes_AS_STRING
    - PyMem_Free
    - GetFileAttributesW
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_remote_exec_impl(PyObject *module, int pid, PyObject *script)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_fopen
      Src: /src/cpython/Python/sysmodule.c:2572,1
    - Dst: _PyDumpExecutors
      Src: /src/cpython/Python/sysmodule.c:2576,1
    - Dst: fclose
      Src: /src/cpython/Python/sysmodule.c:2577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - outpath
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2568
    functionDepth: 9
    functionLinenumber: 2568
    functionLinenumberEnd: 2582
    functionName: sys__dump_tracelets_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyDumpExecutors
    - Py_fopen
    - fclose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__dump_tracelets_impl(PyObject *module, PyObject *outpath)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Python/sysmodule.c:2603,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:2606,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/sysmodule.c:2607,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/sysmodule.c:2610,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/sysmodule.c:2613,1
    - Dst: PyFunction_GetModule
      Src: /src/cpython/Python/sysmodule.c:2614,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:2616,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:2619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - module
    - depth
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2599
    functionDepth: 9
    functionLinenumber: 2599
    functionLinenumberEnd: 2620
    functionName: sys__getframemodulename_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyFrame_IsIncomplete
    - PyFunction_GetModule
    - _PyThreadState_GET
    - Py_NewRef
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsNull
    - PySys_Audit
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__getframemodulename_impl(PyObject *module, int depth)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/sysmodule.c:2632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2634
    functionName: sys__get_cpu_count_config_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetConfig
    linkageType: ''
    returnType: int
    signature: int sys__get_cpu_count_config_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_AnyFileExFlags
      Src: /src/cpython/Python/sysmodule.c:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2642
    functionDepth: 4
    functionLinenumber: 2642
    functionLinenumberEnd: 2649
    functionName: sys__baserepl_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyRun_AnyFileExFlags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__baserepl_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_IsGILEnabled
      Src: /src/cpython/Python/sysmodule.c:2663,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:2663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2658
    functionDepth: 1
    functionLinenumber: 2658
    functionLinenumberEnd: 2667
    functionName: sys__is_gil_enabled_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyEval_IsGILEnabled
    linkageType: ''
    returnType: int
    signature: int sys__is_gil_enabled_impl(PyObject *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/cpython/Python/sysmodule.c:2677,1
    - Dst: snprintf
      Src: /src/cpython/Python/sysmodule.c:2683,1
    - Dst: open
      Src: /src/cpython/Python/sysmodule.c:2685,1
    - Dst: fdopen
      Src: /src/cpython/Python/sysmodule.c:2690,1
    - Dst: close
      Src: /src/cpython/Python/sysmodule.c:2692,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Python/sysmodule.c:2696,1
    - Dst: fclose
      Src: /src/cpython/Python/sysmodule.c:2698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2674
    functionDepth: 2
    functionLinenumber: 2674
    functionLinenumberEnd: 2703
    functionName: PyUnstable_PerfMapState_Init
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - open
    - close
    - PyThread_allocate_lock
    - fdopen
    - snprintf
    - getpid
    - fclose
    linkageType: ''
    returnType: void
    signature: void PyUnstable_PerfMapState_Init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_PerfMapState_Init
      Src: /src/cpython/Python/sysmodule.c:2712,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Python/sysmodule.c:2717,1
    - Dst: fprintf
      Src: /src/cpython/Python/sysmodule.c:2718,1
    - Dst: fflush
      Src: /src/cpython/Python/sysmodule.c:2719,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Python/sysmodule.c:2720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - code_addr
    - code_size
    - entry_name
    argTypes:
    - void*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2705
    functionDepth: 9
    functionLinenumber: 2705
    functionLinenumberEnd: 2723
    functionName: PyUnstable_WritePerfMapEntry
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - PyUnstable_PerfMapState_Init
    - PyThread_release_lock
    - fflush
    - PyThread_acquire_lock
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void PyUnstable_WritePerfMapEntry(\n    const void *code_addr,\n    unsigned
      int code_size,\n    const char *entry_name\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Python/sysmodule.c:2729,1
    - Dst: fclose
      Src: /src/cpython/Python/sysmodule.c:2730,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Python/sysmodule.c:2731,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Python/sysmodule.c:2734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2725
    functionDepth: 9
    functionLinenumber: 2725
    functionLinenumberEnd: 2738
    functionName: PyUnstable_PerfMapState_Fini
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - PyThread_free_lock
    - PyThread_release_lock
    - PyThread_acquire_lock
    - fclose
    linkageType: ''
    returnType: void
    signature: void PyUnstable_PerfMapState_Fini(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_PerfMapState_Init
      Src: /src/cpython/Python/sysmodule.c:2743,1
    - Dst: fopen
      Src: /src/cpython/Python/sysmodule.c:2748,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Python/sysmodule.c:2753,1
    - Dst: fread
      Src: /src/cpython/Python/sysmodule.c:2756,1
    - Dst: fwrite
      Src: /src/cpython/Python/sysmodule.c:2757,1
    - Dst: fflush
      Src: /src/cpython/Python/sysmodule.c:2758,1
    - Dst: feof
      Src: /src/cpython/Python/sysmodule.c:2763,1
    - Dst: fclose
      Src: /src/cpython/Python/sysmodule.c:2768,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Python/sysmodule.c:2769,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - parent_filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2740
    functionDepth: 9
    functionLinenumber: 2740
    functionLinenumberEnd: 2773
    functionName: PyUnstable_CopyPerfMapFile
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - fread
    - feof
    - PyUnstable_PerfMapState_Init
    - fopen
    - PyThread_release_lock
    - PyThread_acquire_lock
    - fflush
    - fwrite
    - fclose
    linkageType: ''
    returnType: void
    signature: void PyUnstable_CopyPerfMapFile(const char* parent_filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_GetBuiltinModuleNames
      Src: /src/cpython/Python/sysmodule.c:2857,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/sysmodule.c:2861,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/sysmodule.c:2864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2869,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2854
    functionDepth: 10
    functionLinenumber: 2854
    functionLinenumberEnd: 2871
    functionName: list_builtin_module_names
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_AsTuple
    - _PyImport_GetBuiltinModuleNames
    - Py_DECREF
    - PyList_Sort
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_builtin_module_names(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/sysmodule.c:2877,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/sysmodule.c:2878,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:2884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2886,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:2889,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/sysmodule.c:2892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:2894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2874
    functionDepth: 4
    functionLinenumber: 2874
    functionLinenumberEnd: 2896
    functionName: list_stdlib_module_names
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyObject_CallFunction
    - PyTuple_SET_ITEM
    - Py_ARRAY_LENGTH
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_stdlib_module_names(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Python/sysmodule.c:2928,1
    - Dst: _PyMem_DefaultRawCalloc
      Src: /src/cpython/Python/sysmodule.c:2933,1
    - Dst: _PyMem_DefaultRawWcsdup
      Src: /src/cpython/Python/sysmodule.c:2935,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/sysmodule.c:2937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2942
      start: 2924
    functionDepth: 3
    functionLinenumber: 2924
    functionLinenumberEnd: 2942
    functionName: _alloc_preinit_entry
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawFree
    - _PyMem_DefaultRawWcsdup
    - _PyRuntime_Initialize
    - _PyMem_DefaultRawCalloc
    linkageType: ''
    returnType: _Py_PreInitEntry
    signature: _Py_PreInitEntry _alloc_preinit_entry(const wchar_t *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _alloc_preinit_entry
      Src: /src/cpython/Python/sysmodule.c:2947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - optionlist
    - value
    argTypes:
    - _Py_PreInitEntry*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2964
      start: 2944
    functionDepth: 4
    functionLinenumber: 2944
    functionLinenumberEnd: 2964
    functionName: _append_preinit_entry
    functionSourceFile: /src/cpython/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_DefaultRawFree
      Src: /src/cpython/Python/sysmodule.c:2974,1
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/sysmodule.c:2975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - optionlist
    argTypes:
    - _Py_PreInitEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2966
    functionDepth: 2
    functionLinenumber: 2966
    functionLinenumberEnd: 2978
    functionName: _clear_preinit_entries
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawFree
    linkageType: ''
    returnType: void
    signature: void _clear_preinit_entries(_Py_PreInitEntry *optionlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/sysmodule.c:2988,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/sysmodule.c:2989,1
    - Dst: _clear_preinit_entries
      Src: /src/cpython/Python/sysmodule.c:2994,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/sysmodule.c:2995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - options
    argTypes:
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2996
      start: 2981
    functionDepth: 4
    functionLinenumber: 2981
    functionLinenumberEnd: 2996
    functionName: _PySys_ReadPreinitWarnOptions
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - _clear_preinit_entries
    - PyWideStringList_Append
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWideStringList_Append
      Src: /src/cpython/Python/sysmodule.c:3006,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/sysmodule.c:3007,1
    - Dst: _clear_preinit_entries
      Src: /src/cpython/Python/sysmodule.c:3012,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/sysmodule.c:3013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2999
    functionDepth: 4
    functionLinenumber: 2999
    functionLinenumberEnd: 3014
    functionName: _PySys_ReadPreinitXOptions
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - _clear_preinit_entries
    - PyWideStringList_Append
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_ReadPreinitXOptions(PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/sysmodule.c:3021,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:3021,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/sysmodule.c:3024,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3035,1
    - Dst: PyList_New
      Src: /src/cpython/Python/sysmodule.c:3036,1
    - Dst: sys_set_object
      Src: /src/cpython/Python/sysmodule.c:3040,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:3040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3017
    functionDepth: 15
    functionLinenumber: 3017
    functionLinenumberEnd: 3046
    functionName: get_warnoptions
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    - PyList_Check
    - sys_set_object
    - PySys_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnoptions(PyThreadState *tstate)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:3051,1
    - Dst: _clear_preinit_entries
      Src: /src/cpython/Python/sysmodule.c:3053,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/sysmodule.c:3058,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:3058,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:3059,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/sysmodule.c:3062,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/sysmodule.c:3063,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/sysmodule.c:3063,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3048
    functionDepth: 15
    functionLinenumber: 3048
    functionLinenumberEnd: 3066
    functionName: PySys_ResetWarnOptions
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySys_GetOptionalAttr
    - _Py_ID
    - _clear_preinit_entries
    - PyList_SetSlice
    - PyList_GET_SIZE
    - PyList_Check
    - _PyThreadState_GET
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void PySys_ResetWarnOptions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:3071,1
    - Dst: get_warnoptions
      Src: /src/cpython/Python/sysmodule.c:3072,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/sysmodule.c:3076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tstate
    - option
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 3070
        line_start: 3070
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 3082
      start: 3068
    functionDepth: 16
    functionLinenumber: 3068
    functionLinenumberEnd: 3082
    functionName: _PySys_AddWarnOptionWithError
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_DECREF
    - assert
    - get_warnoptions
    linkageType: ''
    returnType: int
    signature: int _PySys_AddWarnOptionWithError(PyThreadState *tstate, PyObject *option)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:3088,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/sysmodule.c:3089,1
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:3090,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:3090,1
    - Dst: _PySys_AddWarnOptionWithError
      Src: /src/cpython/Python/sysmodule.c:3091,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:3093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - option
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 3089
        line_start: 3089
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 3095
      start: 3086
    functionDepth: 17
    functionLinenumber: 3086
    functionLinenumberEnd: 3095
    functionName: PySys_AddWarnOptionUnicode
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PySys_AddWarnOptionWithError
    - _PyErr_Clear
    - _PyThreadState_GET
    - _Py_EnsureTstateNotNULL
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void PySys_AddWarnOptionUnicode(PyObject *option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:3101,1
    - Dst: _append_preinit_entry
      Src: /src/cpython/Python/sysmodule.c:3103,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:3107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3115
      start: 3099
    functionDepth: 5
    functionLinenumber: 3099
    functionLinenumberEnd: 3115
    functionName: PySys_AddWarnOption
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _append_preinit_entry
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: void
    signature: void PySys_AddWarnOption(const wchar_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/sysmodule.c:3122,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:3122,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:3123,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/sysmodule.c:3126,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/sysmodule.c:3127,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 3119
    functionDepth: 15
    functionLinenumber: 3119
    functionLinenumberEnd: 3130
    functionName: PySys_HasWarnOptions
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PySys_GetOptionalAttr
    - _Py_ID
    - PyList_GET_SIZE
    - PyList_Check
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void PySys_HasWarnOptions(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/sysmodule.c:3136,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:3136,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/sysmodule.c:3139,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3150,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/sysmodule.c:3151,1
    - Dst: sys_set_object
      Src: /src/cpython/Python/sysmodule.c:3155,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:3155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3132
    functionDepth: 15
    functionLinenumber: 3132
    functionLinenumberEnd: 3161
    functionName: get_xoptions
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    - sys_set_object
    - PyDict_New
    - PyDict_Check
    - PySys_GetOptionalAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_xoptions(PyThreadState *tstate)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:3168,1
    - Dst: get_xoptions
      Src: /src/cpython/Python/sysmodule.c:3169,1
    - Dst: wcschr
      Src: /src/cpython/Python/sysmodule.c:3174,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:3176,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:3180,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:3183,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:3187,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/sysmodule.c:3192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3197,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3201,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3202,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3163
    functionDepth: 16
    functionLinenumber: 3163
    functionLinenumberEnd: 3205
    functionName: _PySys_AddXOptionWithError
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_SetItem
    - Py_DECREF
    - _PyThreadState_GET
    - Py_NewRef
    - PyUnicode_FromWideChar
    - wcschr
    - get_xoptions
    linkageType: ''
    returnType: int
    signature: int _PySys_AddXOptionWithError(const wchar_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:3211,1
    - Dst: _append_preinit_entry
      Src: /src/cpython/Python/sysmodule.c:3213,1
    - Dst: _PySys_AddXOptionWithError
      Src: /src/cpython/Python/sysmodule.c:3216,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:3218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3209
    functionDepth: 17
    functionLinenumber: 3209
    functionLinenumberEnd: 3220
    functionName: PySys_AddXOption
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _append_preinit_entry
    - _PySys_AddXOptionWithError
    - _PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void PySys_AddXOption(const wchar_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:3225,1
    - Dst: get_xoptions
      Src: /src/cpython/Python/sysmodule.c:3226,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3222
    functionDepth: 16
    functionLinenumber: 3222
    functionLinenumberEnd: 3229
    functionName: PySys_GetXOptions
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - Py_XDECREF
    - get_xoptions
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySys_GetXOptions(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:3378,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/sysmodule.c:3378,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/sysmodule.c:3380,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:3381,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:3381,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:3382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - flags
    - pos
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (pos >= 0 && pos < (Py_ssize_t)(Py_ARRAY_LENGTH(flags_fields) - 1))
      pos:
        line_end: 3377
        line_start: 3377
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 3383
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3383
    functionName: sys_set_flag
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_NewRef
    - PyStructSequence_SET_ITEM
    - Py_ARRAY_LENGTH
    - PyStructSequence_GET_ITEM
    - assert
    linkageType: ''
    returnType: void
    signature: void sys_set_flag(PyObject *flags, Py_ssize_t pos, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/sysmodule.c:3389,1
    - Dst: sys_set_flag
      Src: /src/cpython/Python/sysmodule.c:3394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - value
    argTypes:
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3397
      start: 3386
    functionDepth: 15
    functionLinenumber: 3386
    functionLinenumberEnd: 3397
    functionName: _PySys_SetFlagObj
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - PySys_GetAttrString
    - sys_set_flag
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PySys_SetFlagObj(Py_ssize_t pos, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:3403,1
    - Dst: _PySys_SetFlagObj
      Src: /src/cpython/Python/sysmodule.c:3408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pos
    - value
    argTypes:
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3400
    functionDepth: 16
    functionLinenumber: 3400
    functionLinenumberEnd: 3411
    functionName: _PySys_SetFlagInt
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PySys_SetFlagObj
    - Py_DECREF
    - PyLong_FromLong
    linkageType: ''
    returnType: int
    signature: int _PySys_SetFlagInt(Py_ssize_t pos, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/sysmodule.c:3418,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3435,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3436,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3437,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3438,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3439,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3440,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3441,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3442,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3443,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3444,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3445,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3446,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3447,1
    - Dst: SetFlagObj
      Src: /src/cpython/Python/sysmodule.c:3448,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/sysmodule.c:3448,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3449,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3450,1
    - Dst: SetFlagObj
      Src: /src/cpython/Python/sysmodule.c:3451,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/sysmodule.c:3451,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3452,1
    - Dst: SetFlagObj
      Src: /src/cpython/Python/sysmodule.c:3455,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:3455,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3458,1
    - Dst: SetFlagObj
      Src: /src/cpython/Python/sysmodule.c:3461,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:3461,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3463,1
    - Dst: SetFlag
      Src: /src/cpython/Python/sysmodule.c:3464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - interp
    - flags
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3414
    functionDepth: 1
    functionLinenumber: 3414
    functionLinenumberEnd: 3468
    functionName: set_flags_from_config
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - SetFlag
    - SetFlagObj
    - _PyInterpreterState_GetConfig
    - Py_NewRef
    - PyLong_FromLong
    - PyBool_FromLong
    linkageType: ''
    returnType: int
    signature: int set_flags_from_config(PyInterpreterState *interp, PyObject *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3423
    functionDepth: 0
    functionLinenumber: 3423
    functionLinenumberEnd: 3433
    functionName: SetFlagObj
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetFlagObj(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3434
      start: 3433
    functionDepth: 0
    functionLinenumber: 3433
    functionLinenumberEnd: 3434
    functionName: SetFlag
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetFlag(expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/sysmodule.c:3474,1
    - Dst: set_flags_from_config
      Src: /src/cpython/Python/sysmodule.c:3479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3471
    functionDepth: 2
    functionLinenumber: 3471
    functionLinenumberEnd: 3484
    functionName: make_flags
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - set_flags_from_config
    - Py_DECREF
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_flags(PyInterpreterState *interp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/sysmodule.c:3517,1
    - Dst: SetIntItem
      Src: /src/cpython/Python/sysmodule.c:3541,1
    - Dst: SetIntItem
      Src: /src/cpython/Python/sysmodule.c:3542,1
    - Dst: SetIntItem
      Src: /src/cpython/Python/sysmodule.c:3543,1
    - Dst: SetStrItem
      Src: /src/cpython/Python/sysmodule.c:3544,1
    - Dst: SetIntItem
      Src: /src/cpython/Python/sysmodule.c:3545,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:3549,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/sysmodule.c:3550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3510
    functionDepth: 2
    functionLinenumber: 3510
    functionLinenumberEnd: 3554
    functionName: make_version_info
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - SetIntItem
    - SetStrItem
    - Py_CLEAR
    - _PyErr_Occurred
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_version_info(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3536
    functionDepth: 0
    functionLinenumber: 3536
    functionLinenumberEnd: 3538
    functionName: SetIntItem
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    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: 3540
      start: 3538
    functionDepth: 0
    functionLinenumber: 3538
    functionLinenumberEnd: 3540
    functionName: SetStrItem
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetStrItem(flag)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/sysmodule.c:3574,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:3580,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3584,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:3588,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3592,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3596,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:3600,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3604,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:3609,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3613,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3625,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/sysmodule.c:3632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3633,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/sysmodule.c:3637,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 1
    argNames:
    - version_info
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3639
      start: 3568
    functionDepth: 12
    functionLinenumber: 3568
    functionLinenumberEnd: 3639
    functionName: make_impl_info
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItemString
    - PyDict_New
    - PyLong_FromLong
    - Py_CLEAR
    - PyUnicode_FromString
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_impl_info(PyObject *version_info)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - var
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3669
      start: 3665
    functionDepth: 0
    functionLinenumber: 3665
    functionLinenumberEnd: 3669
    functionName: EM_JS
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EM_JS(char *, _Py_emscripten_runtime, (void), {\n    var info;\n
      \   if (typeof navigator == 'object')"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/cpython/Python/sysmodule.c:3670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3671
      start: 3669
    functionDepth: 0
    functionLinenumber: 3669
    functionLinenumberEnd: 3671
    functionName: if
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 10
    functionsReached:
    - concat
    linkageType: ''
    returnType: else
    signature: else if (typeof process == 'object')
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Python/sysmodule.c:3692,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/sysmodule.c:3697,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:3702,1
    - Dst: _Py_emscripten_runtime
      Src: /src/cpython/Python/sysmodule.c:3704,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Python/sysmodule.c:3706,1
    - Dst: strlen
      Src: /src/cpython/Python/sysmodule.c:3706,1
    - Dst: free
      Src: /src/cpython/Python/sysmodule.c:3707,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:3711,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:3713,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:3713,1
    - Dst: SetBoolItem
      Src: /src/cpython/Python/sysmodule.c:3720,1
    - Dst: SetBoolItem
      Src: /src/cpython/Python/sysmodule.c:3722,1
    - Dst: SetBoolItem
      Src: /src/cpython/Python/sysmodule.c:3726,1
    - Dst: SetBoolItem
      Src: /src/cpython/Python/sysmodule.c:3728,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:3733,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/sysmodule.c:3739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3741
      start: 3684
    functionDepth: 2
    functionLinenumber: 3684
    functionLinenumberEnd: 3741
    functionName: make_emscripten_info
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - strlen
    - PyErr_Occurred
    - PyUnicode_DecodeUTF8
    - Py_NewRef
    - PyStructSequence_SET_ITEM
    - _Py_emscripten_runtime
    - free
    - Py_CLEAR
    - PyStructSequence_New
    - SetBoolItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_emscripten_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: 3718
      start: 3716
    functionDepth: 0
    functionLinenumber: 3716
    functionLinenumberEnd: 3718
    functionName: SetBoolItem
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetBoolItem(flag)
  - 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: 3770
      start: 3758
    functionDepth: 0
    functionLinenumber: 3758
    functionLinenumberEnd: 3770
    functionName: SET_SYS
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYS(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: 3773
      start: 3771
    functionDepth: 0
    functionLinenumber: 3771
    functionLinenumberEnd: 3773
    functionName: SET_SYS_FROM_STRING
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYS_FROM_STRING(key, value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COPY_SYS_ATTR
      Src: /src/cpython/Python/sysmodule.c:3786,1
    - Dst: COPY_SYS_ATTR
      Src: /src/cpython/Python/sysmodule.c:3787,1
    - Dst: COPY_SYS_ATTR
      Src: /src/cpython/Python/sysmodule.c:3788,1
    - Dst: COPY_SYS_ATTR
      Src: /src/cpython/Python/sysmodule.c:3789,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3793,1
    - Dst: Py_GetVersion
      Src: /src/cpython/Python/sysmodule.c:3793,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3794,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:3794,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3795,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/sysmodule.c:3795,1
    - Dst: _Py_gitidentifier
      Src: /src/cpython/Python/sysmodule.c:3795,1
    - Dst: _Py_gitversion
      Src: /src/cpython/Python/sysmodule.c:3796,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3797,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3798,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:3798,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3799,1
    - Dst: Py_GetCopyright
      Src: /src/cpython/Python/sysmodule.c:3799,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3800,1
    - Dst: Py_GetPlatform
      Src: /src/cpython/Python/sysmodule.c:3800,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3801,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/sysmodule.c:3801,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3802,1
    - Dst: PyFloat_GetInfo
      Src: /src/cpython/Python/sysmodule.c:3802,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3803,1
    - Dst: PyLong_GetInfo
      Src: /src/cpython/Python/sysmodule.c:3803,1
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Python/sysmodule.c:3805,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3810,1
    - Dst: get_hash_info
      Src: /src/cpython/Python/sysmodule.c:3810,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3811,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/sysmodule.c:3811,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3812,1
    - Dst: list_builtin_module_names
      Src: /src/cpython/Python/sysmodule.c:3812,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3813,1
    - Dst: list_stdlib_module_names
      Src: /src/cpython/Python/sysmodule.c:3813,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3815,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3817,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3821,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/sysmodule.c:3821,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3822,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3825,1
    - Dst: ENSURE_INFO_TYPE
      Src: /src/cpython/Python/sysmodule.c:3837,1
    - Dst: make_version_info
      Src: /src/cpython/Python/sysmodule.c:3838,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3839,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3842,1
    - Dst: make_impl_info
      Src: /src/cpython/Python/sysmodule.c:3842,1
    - Dst: ENSURE_INFO_TYPE
      Src: /src/cpython/Python/sysmodule.c:3845,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3846,1
    - Dst: make_flags
      Src: /src/cpython/Python/sysmodule.c:3846,1
    - Dst: ENSURE_INFO_TYPE
      Src: /src/cpython/Python/sysmodule.c:3850,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3852,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3859,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/cpython/Python/sysmodule.c:3861,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3864,1
    - Dst: PyThread_GetInfo
      Src: /src/cpython/Python/sysmodule.c:3864,1
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Python/sysmodule.c:3867,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Python/sysmodule.c:3875,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3880,1
    - Dst: make_emscripten_info
      Src: /src/cpython/Python/sysmodule.c:3880,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3884,1
    - Dst: PyList_New
      Src: /src/cpython/Python/sysmodule.c:3884,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3885,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/sysmodule.c:3885,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3886,1
    - Dst: PyList_New
      Src: /src/cpython/Python/sysmodule.c:3886,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:3888,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/sysmodule.c:3891,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/sysmodule.c:3894,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/sysmodule.c:3897,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 65
    argCount: 2
    argNames:
    - tstate
    - sysdict
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3774
    functionDepth: 13
    functionLinenumber: 3774
    functionLinenumberEnd: 3898
    functionName: _PySys_InitCore
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetPlatform
    - PyList_New
    - make_emscripten_info
    - PyLong_FromLong
    - _PyStructSequence_InitBuiltin
    - make_impl_info
    - SET_SYS_FROM_STRING
    - Py_GetCopyright
    - PyLong_GetInfo
    - make_flags
    - _Py_gitidentifier
    - PyFloat_GetInfo
    - Py_GetVersion
    - Py_BuildValue
    - COPY_SYS_ATTR
    - _PyStatus_OK
    - ENSURE_INFO_TYPE
    - make_version_info
    - _PyStatus_ERR
    - _Py_gitversion
    - get_hash_info
    - PyLong_FromVoidPtr
    - PyLong_FromSsize_t
    - list_builtin_module_names
    - PyStructSequence_NewType
    - PyThread_GetInfo
    - PyDict_New
    - list_stdlib_module_names
    - SET_SYS
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tokey
    - ','
    - fromkey
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3783
    functionDepth: 0
    functionLinenumber: 3783
    functionLinenumberEnd: 3785
    functionName: COPY_SYS_ATTR
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_SYS_ATTR(tokey, fromkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - DESC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3835
      start: 3828
    functionDepth: 0
    functionLinenumber: 3828
    functionLinenumberEnd: 3835
    functionName: ENSURE_INFO_TYPE
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_INFO_TYPE(TYPE, DESC)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/sysmodule.c:3908,1
    - Dst: COPY_LIST
      Src: /src/cpython/Python/sysmodule.c:3923,1
    - Dst: COPY_WSTR
      Src: /src/cpython/Python/sysmodule.c:3926,1
    - Dst: COPY_WSTR
      Src: /src/cpython/Python/sysmodule.c:3927,1
    - Dst: COPY_WSTR
      Src: /src/cpython/Python/sysmodule.c:3928,1
    - Dst: COPY_WSTR
      Src: /src/cpython/Python/sysmodule.c:3929,1
    - Dst: COPY_WSTR
      Src: /src/cpython/Python/sysmodule.c:3930,1
    - Dst: COPY_WSTR
      Src: /src/cpython/Python/sysmodule.c:3931,1
    - Dst: COPY_WSTR
      Src: /src/cpython/Python/sysmodule.c:3932,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/cpython/Python/sysmodule.c:3935,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3937,1
    - Dst: COPY_LIST
      Src: /src/cpython/Python/sysmodule.c:3942,1
    - Dst: COPY_LIST
      Src: /src/cpython/Python/sysmodule.c:3943,1
    - Dst: COPY_LIST
      Src: /src/cpython/Python/sysmodule.c:3944,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3946,1
    - Dst: _PyConfig_CreateXOptionsDict
      Src: /src/cpython/Python/sysmodule.c:3946,1
    - Dst: _Py_GetStdlibDir
      Src: /src/cpython/Python/sysmodule.c:3948,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/cpython/Python/sysmodule.c:3950,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:3953,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/sysmodule.c:3963,1
    - Dst: set_flags_from_config
      Src: /src/cpython/Python/sysmodule.c:3967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:3971,1
    - Dst: SET_SYS
      Src: /src/cpython/Python/sysmodule.c:3973,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/sysmodule.c:3973,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:3975,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3903
    functionDepth: 15
    functionLinenumber: 3903
    functionLinenumberEnd: 3983
    functionName: _PySys_UpdateConfig
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyConfig_CreateXOptionsDict
    - SET_SYS_FROM_WSTR
    - PyBool_FromLong
    - COPY_LIST
    - _PyInterpreterState_GetConfig
    - set_flags_from_config
    - PyDict_SetItemString
    - COPY_WSTR
    - _Py_GetStdlibDir
    - PySys_GetAttrString
    - SET_SYS
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _PySys_UpdateConfig(PyThreadState *tstate)
  - 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: 3913
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3913
    functionName: COPY_LIST
    functionSourceFile: /src/cpython/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: 3916
      start: 3914
    functionDepth: 0
    functionLinenumber: 3914
    functionLinenumberEnd: 3916
    functionName: SET_SYS_FROM_WSTR
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYS_FROM_WSTR(KEY, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYS_ATTR
    - ','
    - WSTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3921
      start: 3917
    functionDepth: 0
    functionLinenumber: 3917
    functionLinenumberEnd: 3921
    functionName: COPY_WSTR
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_WSTR(SYS_ATTR, WSTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_NewStdPrinter
      Src: /src/cpython/Python/sysmodule.c:3996,1
    - Dst: fileno
      Src: /src/cpython/Python/sysmodule.c:3996,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/sysmodule.c:4000,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4000,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:4003,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4006,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/sysmodule.c:4007,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:4010,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/sysmodule.c:4011,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - sysdict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3993
    functionDepth: 10
    functionLinenumber: 3993
    functionLinenumberEnd: 4012
    functionName: _PySys_SetPreliminaryStderr
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyStatus_OK
    - PyDict_SetItem
    - Py_DECREF
    - _Py_ID
    - PyFile_NewStdPrinter
    - PyDict_SetItemString
    - _PyStatus_ERR
    - fileno
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_SetPreliminaryStderr(PyObject *sysdict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4029
    functionDepth: 0
    functionLinenumber: 4029
    functionLinenumberEnd: 4039
    functionName: _jit_is_available_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _jit_is_available_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:4052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4053
      start: 4047
    functionDepth: 1
    functionLinenumber: 4047
    functionLinenumberEnd: 4053
    functionName: _jit_is_enabled_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int _jit_is_enabled_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:4066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4067
      start: 4061
    functionDepth: 1
    functionLinenumber: 4061
    functionLinenumberEnd: 4067
    functionName: _jit_is_active_impl
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int _jit_is_active_impl(PyObject *module)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:4089,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:4089,1
    - Dst: _PyImport_InitModules
      Src: /src/cpython/Python/sysmodule.c:4093,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Python/sysmodule.c:4098,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/sysmodule.c:4100,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Python/sysmodule.c:4103,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/sysmodule.c:4106,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/sysmodule.c:4110,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Python/sysmodule.c:4112,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:4117,1
    - Dst: _PySys_SetPreliminaryStderr
      Src: /src/cpython/Python/sysmodule.c:4121,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/sysmodule.c:4122,1
    - Dst: _PySys_InitCore
      Src: /src/cpython/Python/sysmodule.c:4126,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/sysmodule.c:4127,1
    - Dst: _PyImport_FixupBuiltin
      Src: /src/cpython/Python/sysmodule.c:4131,1
    - Dst: _Py_CreateMonitoringObject
      Src: /src/cpython/Python/sysmodule.c:4135,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:4139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4140,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Python/sysmodule.c:4145,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/sysmodule.c:4149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4150,1
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:4155,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/sysmodule.c:4155,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/sysmodule.c:4158,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/sysmodule.c:4161,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 2
    argNames:
    - tstate
    - sysmod_p
    argTypes:
    - PyThreadState*
    - PyObject**
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 4154
        line_start: 4154
        source_file: /src/cpython/Python/sysmodule.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 4088
        line_start: 4088
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 4162
      start: 4086
    functionDepth: 16
    functionLinenumber: 4086
    functionLinenumberEnd: 4162
    functionName: _PySys_Create
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _Py_CreateMonitoringObject
    - _PyImport_InitModules
    - Py_DECREF
    - _PyStatus_EXCEPTION
    - _PyImport_FixupBuiltin
    - PyDict_Copy
    - PyUnstable_Module_SetGIL
    - _PySys_SetPreliminaryStderr
    - Py_NewRef
    - _PyModule_CreateInitialized
    - PyModule_GetDict
    - PyDict_SetItemString
    - _PyStatus_ERR
    - _PySys_InitCore
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_Create(PyThreadState *tstate, PyObject **sysmod_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/sysmodule.c:4168,1
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/sysmodule.c:4169,1
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/sysmodule.c:4171,1
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/sysmodule.c:4173,1
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/sysmodule.c:4174,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/sysmodule.c:4176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/sysmodule.c:4177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4165
    functionDepth: 3
    functionLinenumber: 4165
    functionLinenumberEnd: 4180
    functionName: _PySys_FiniTypes
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - Py_CLEAR
    - _PyStructSequence_FiniBuiltin
    linkageType: ''
    returnType: void
    signature: void _PySys_FiniTypes(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/cpython/Python/sysmodule.c:4192,1
    - Dst: PyList_New
      Src: /src/cpython/Python/sysmodule.c:4196,1
    - Dst: wcschr
      Src: /src/cpython/Python/sysmodule.c:4200,1
    - Dst: wcslen
      Src: /src/cpython/Python/sysmodule.c:4202,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:4203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4205,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:4208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - path
    - delim
    argTypes:
    - wchar_t*
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4214
      start: 4183
    functionDepth: 5
    functionLinenumber: 4183
    functionLinenumberEnd: 4214
    functionName: makepathobject
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_SET_ITEM
    - wcslen
    - PyUnicode_FromWideChar
    - wcschr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makepathobject(const wchar_t *path, wchar_t delim)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: makepathobject
      Src: /src/cpython/Python/sysmodule.c:4221,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/sysmodule.c:4222,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:4223,1
    - Dst: sys_set_object
      Src: /src/cpython/Python/sysmodule.c:4224,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4224,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/sysmodule.c:4225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4228
      start: 4218
    functionDepth: 15
    functionLinenumber: 4218
    functionLinenumberEnd: 4228
    functionName: PySys_SetPath
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - makepathobject
    - Py_DECREF
    - Py_FatalError
    - _Py_ID
    - _PyInterpreterState_GET
    - sys_set_object
    linkageType: ''
    returnType: void
    signature: void PySys_SetPath(const wchar_t *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/sysmodule.c:4233,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/sysmodule.c:4239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4241,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/sysmodule.c:4244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4230
    functionDepth: 5
    functionLinenumber: 4230
    functionLinenumberEnd: 4247
    functionName: make_sys_argv
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyUnicode_FromWideChar
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_sys_argv(int argc, wchar_t * const * argv)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:4253,1
    - Dst: make_sys_argv
      Src: /src/cpython/Python/sysmodule.c:4261,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/sysmodule.c:4263,1
    - Dst: sys_set_object_str
      Src: /src/cpython/Python/sysmodule.c:4265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4266,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/sysmodule.c:4267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4269,1
    - Dst: _PyPathConfig_ComputeSysPath0
      Src: /src/cpython/Python/sysmodule.c:4276,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/sysmodule.c:4278,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/sysmodule.c:4282,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4282,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/sysmodule.c:4283,1
    - Dst: PyList_Insert
      Src: /src/cpython/Python/sysmodule.c:4286,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/sysmodule.c:4287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4291,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - argc
    - argv
    - updatepath
    argTypes:
    - int
    - wchar_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4294
      start: 4249
    functionDepth: 16
    functionLinenumber: 4249
    functionLinenumberEnd: 4294
    functionName: PySys_SetArgvEx
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - make_sys_argv
    - Py_DECREF
    - Py_FatalError
    - _Py_ID
    - _PyThreadState_GET
    - sys_set_object_str
    - _PyPathConfig_ComputeSysPath0
    - PySys_GetOptionalAttr
    - PyList_Insert
    linkageType: ''
    returnType: void
    signature: void PySys_SetArgvEx(int argc, wchar_t **argv, int updatepath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4303
      start: 4296
    functionDepth: 0
    functionLinenumber: 4296
    functionLinenumberEnd: 4303
    functionName: PySys_SetArgv
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PySys_SetArgv(int argc, wchar_t **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/sysmodule.c:4313,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/sysmodule.c:4314,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - unicode
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (unicode != NULL)
      pos:
        line_end: 4312
        line_start: 4312
        source_file: /src/cpython/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 4320
      start: 4308
    functionDepth: 1
    functionLinenumber: 4308
    functionLinenumberEnd: 4320
    functionName: sys_pyfile_write_unicode
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - Py_DECREF
    - _Py_ID
    - assert
    linkageType: ''
    returnType: int
    signature: int sys_pyfile_write_unicode(PyObject *unicode, PyObject *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/sysmodule.c:4331,1
    - Dst: sys_pyfile_write_unicode
      Src: /src/cpython/Python/sysmodule.c:4335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - text
    - file
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4322
    functionDepth: 2
    functionLinenumber: 4322
    functionLinenumberEnd: 4338
    functionName: sys_pyfile_write
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - sys_pyfile_write_unicode
    linkageType: ''
    returnType: int
    signature: int sys_pyfile_write(const char *text, PyObject *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:4374,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/sysmodule.c:4376,1
    - Dst: PyOS_vsnprintf
      Src: /src/cpython/Python/sysmodule.c:4377,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/sysmodule.c:4378,1
    - Dst: sys_pyfile_write
      Src: /src/cpython/Python/sysmodule.c:4379,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:4380,1
    - Dst: fputs
      Src: /src/cpython/Python/sysmodule.c:4381,1
    - Dst: sys_pyfile_write
      Src: /src/cpython/Python/sysmodule.c:4385,1
    - Dst: fputs
      Src: /src/cpython/Python/sysmodule.c:4386,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:4388,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/sysmodule.c:4389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - key
    - fp
    - format
    - va
    argTypes:
    - PyObject*
    - FILE*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4368
    functionDepth: 15
    functionLinenumber: 4368
    functionLinenumberEnd: 4390
    functionName: sys_write
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyErr_SetRaisedException
    - _PyErr_Clear
    - _PyThreadState_GET
    - fputs
    - PySys_GetAttr
    - sys_pyfile_write
    - PyOS_vsnprintf
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void sys_write(PyObject *key, FILE *fp, const char *format, va_list
      va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/sysmodule.c:4397,1
    - Dst: sys_write
      Src: /src/cpython/Python/sysmodule.c:4398,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4398,1
    - Dst: va_end
      Src: /src/cpython/Python/sysmodule.c:4399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4392
    functionDepth: 16
    functionLinenumber: 4392
    functionLinenumberEnd: 4400
    functionName: PySys_WriteStdout
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - 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/cpython/Python/sysmodule.c:4407,1
    - Dst: sys_write
      Src: /src/cpython/Python/sysmodule.c:4408,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4408,1
    - Dst: va_end
      Src: /src/cpython/Python/sysmodule.c:4409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4410
      start: 4402
    functionDepth: 16
    functionLinenumber: 4402
    functionLinenumberEnd: 4410
    functionName: PySys_WriteStderr
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 18
    functionsReached:
    - _Py_ID
    - sys_write
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void PySys_WriteStderr(const char *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/sysmodule.c:4417,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/sysmodule.c:4419,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/sysmodule.c:4420,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/sysmodule.c:4422,1
    - Dst: sys_pyfile_write_unicode
      Src: /src/cpython/Python/sysmodule.c:4423,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/sysmodule.c:4424,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/sysmodule.c:4425,1
    - Dst: fputs
      Src: /src/cpython/Python/sysmodule.c:4427,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/sysmodule.c:4429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/sysmodule.c:4430,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/sysmodule.c:4432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - key
    - fp
    - format
    - va
    argTypes:
    - PyObject*
    - FILE*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4412
    functionDepth: 15
    functionLinenumber: 4412
    functionLinenumberEnd: 4433
    functionName: sys_format
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - _PyErr_Clear
    - _PyThreadState_GET
    - fputs
    - PySys_GetAttr
    - PyUnicode_AsUTF8
    - PyUnicode_FromFormatV
    - sys_pyfile_write_unicode
    linkageType: ''
    returnType: void
    signature: void sys_format(PyObject *key, FILE *fp, const char *format, va_list
      va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/sysmodule.c:4440,1
    - Dst: sys_format
      Src: /src/cpython/Python/sysmodule.c:4441,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4441,1
    - Dst: va_end
      Src: /src/cpython/Python/sysmodule.c:4442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4435
    functionDepth: 16
    functionLinenumber: 4435
    functionLinenumberEnd: 4443
    functionName: PySys_FormatStdout
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - sys_format
    - va_start
    - _Py_ID
    - va_end
    linkageType: ''
    returnType: void
    signature: void PySys_FormatStdout(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/sysmodule.c:4450,1
    - Dst: sys_format
      Src: /src/cpython/Python/sysmodule.c:4451,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/sysmodule.c:4451,1
    - Dst: va_end
      Src: /src/cpython/Python/sysmodule.c:4452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4445
    functionDepth: 16
    functionLinenumber: 4445
    functionLinenumberEnd: 4453
    functionName: PySys_FormatStderr
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 9
    functionsReached:
    - sys_format
    - va_start
    - _Py_ID
    - va_end
    linkageType: ''
    returnType: void
    signature: void PySys_FormatStderr(const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/sysmodule.c:4460,1
    - Dst: _PySys_SetFlagInt
      Src: /src/cpython/Python/sysmodule.c:4468,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/sysmodule.c:4474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - maxdigits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4456
    functionDepth: 17
    functionLinenumber: 4456
    functionLinenumberEnd: 4478
    functionName: _PySys_SetIntMaxStrDigits
    functionSourceFile: /src/cpython/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - _PySys_SetFlagInt
    - _PyInterpreterState_GET
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PySys_SetIntMaxStrDigits(int maxdigits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/cpython/Python/jit.c:42,1
    - Dst: sysconf
      Src: /src/cpython/Python/jit.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: get_page_size
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - sysconf
    - GetSystemInfo
    linkageType: ''
    returnType: size_t
    signature: size_t get_page_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Python/jit.c:53,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/jit.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 14
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: jit_error
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void jit_error(const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:63,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:64,1
    - Dst: get_page_size
      Src: /src/cpython/Python/jit.c:64,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Python/jit.c:67,1
    - Dst: mmap
      Src: /src/cpython/Python/jit.c:72,1
    - Dst: jit_error
      Src: /src/cpython/Python/jit.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts:
    - condition: (size)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Python/jit.c
    - condition: (size % get_page_size() == 0)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 15
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: jit_alloc
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - mmap
    - VirtualAlloc
    - jit_error
    - get_page_size
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      jit_alloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:85,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:86,1
    - Dst: get_page_size
      Src: /src/cpython/Python/jit.c:86,1
    - Dst: VirtualFree
      Src: /src/cpython/Python/jit.c:88,1
    - Dst: munmap
      Src: /src/cpython/Python/jit.c:90,1
    - Dst: jit_error
      Src: /src/cpython/Python/jit.c:93,1
    - Dst: OPT_STAT_ADD
      Src: /src/cpython/Python/jit.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - memory
    - size
    argTypes:
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (size)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/cpython/Python/jit.c
    - condition: (size % get_page_size() == 0)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 15
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: jit_free
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - jit_error
    - munmap
    - get_page_size
    - OPT_STAT_ADD
    - VirtualFree
    - assert
    linkageType: ''
    returnType: int
    signature: int jit_free(unsigned char *memory, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:106,1
    - Dst: get_page_size
      Src: /src/cpython/Python/jit.c:106,1
    - Dst: FlushInstructionCache
      Src: /src/cpython/Python/jit.c:110,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Python/jit.c:110,1
    - Dst: jit_error
      Src: /src/cpython/Python/jit.c:111,1
    - Dst: VirtualProtect
      Src: /src/cpython/Python/jit.c:115,1
    - Dst: __builtin___clear_cache
      Src: /src/cpython/Python/jit.c:117,1
    - Dst: mprotect
      Src: /src/cpython/Python/jit.c:118,1
    - Dst: jit_error
      Src: /src/cpython/Python/jit.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - memory
    - size
    argTypes:
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (size % get_page_size() == 0)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 125
      start: 100
    functionDepth: 15
    functionLinenumber: 100
    functionLinenumberEnd: 125
    functionName: mark_executable
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - FlushInstructionCache
    - VirtualProtect
    - __builtin___clear_cache
    - jit_error
    - GetCurrentProcess
    - mprotect
    - get_page_size
    - assert
    linkageType: ''
    returnType: int
    signature: int mark_executable(unsigned char *memory, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - value
    - value_start
    - width
    argTypes:
    - uint64_t
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (width <= 32)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: get_bits
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_bits(uint64_t value, uint8_t value_start, uint8_t width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:159,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:162,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:162,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:164,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:165,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:165,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - loc
    - loc_start
    - value
    - value_start
    - width
    argTypes:
    - uint32_t*
    - uint8_t
    - uint64_t
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (loc_start + width <= 32)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(*loc, loc_start, width) == get_bits(value, value_start,
        width))
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(*loc, loc_start, width) == 0)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: set_bits
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 1
    functionsReached:
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: "void set_bits(uint32_t *loc, uint8_t loc_start, uint64_t value, uint8_t
      value_start,\n         uint8_t width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: IS_AARCH64_ADD_OR_SUB
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_AARCH64_ADD_OR_SUB(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: IS_AARCH64_ADRP
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_AARCH64_ADRP(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: IS_AARCH64_BRANCH
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_AARCH64_BRANCH(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: IS_AARCH64_LDR_OR_STR
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_AARCH64_LDR_OR_STR(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: IS_AARCH64_MOV
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_AARCH64_MOV(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (value < (1ULL << 32))
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: patch_32
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void patch_32(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:218,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: ((int64_t)value >= -(1LL << 31))
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/cpython/Python/jit.c
    - condition: ((int64_t)value < (1LL << 31))
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: patch_32r
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void patch_32r(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: patch_64
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void patch_64(unsigned char *location, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:237,1
    - Dst: IS_AARCH64_LDR_OR_STR
      Src: /src/cpython/Python/jit.c:237,1
    - Dst: IS_AARCH64_ADD_OR_SUB
      Src: /src/cpython/Python/jit.c:237,1
    - Dst: IS_AARCH64_LDR_OR_STR
      Src: /src/cpython/Python/jit.c:240,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:241,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:244,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:244,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:244,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:246,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:247,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:247,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (IS_AARCH64_LDR_OR_STR(*loc32) || IS_AARCH64_ADD_OR_SUB(*loc32))
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(*loc32, 23, 1) == 0 || get_bits(*loc32, 26, 1) == 0)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(value, 0, shift) == 0)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 249
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 249
    functionName: patch_aarch64_12
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - IS_AARCH64_LDR_OR_STR
    - set_bits
    - IS_AARCH64_ADD_OR_SUB
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_12(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: patch_aarch64_12
      Src: /src/cpython/Python/jit.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: patch_aarch64_12x
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - patch_aarch64_12
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_12x(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:268,1
    - Dst: IS_AARCH64_MOV
      Src: /src/cpython/Python/jit.c:268,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:270,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:270,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (IS_AARCH64_MOV(*loc32))
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(*loc32, 21, 2) == 0)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: patch_aarch64_16a
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - set_bits
    - IS_AARCH64_MOV
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_16a(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:279,1
    - Dst: IS_AARCH64_MOV
      Src: /src/cpython/Python/jit.c:279,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:281,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:281,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (IS_AARCH64_MOV(*loc32))
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(*loc32, 21, 2) == 1)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: patch_aarch64_16b
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - set_bits
    - IS_AARCH64_MOV
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_16b(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:290,1
    - Dst: IS_AARCH64_MOV
      Src: /src/cpython/Python/jit.c:290,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:292,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:292,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (IS_AARCH64_MOV(*loc32))
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(*loc32, 21, 2) == 2)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: patch_aarch64_16c
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - set_bits
    - IS_AARCH64_MOV
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_16c(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:301,1
    - Dst: IS_AARCH64_MOV
      Src: /src/cpython/Python/jit.c:301,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:303,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:303,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (IS_AARCH64_MOV(*loc32))
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(*loc32, 21, 2) == 3)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: patch_aarch64_16d
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - set_bits
    - IS_AARCH64_MOV
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_16d(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:315,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:316,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:318,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: ((int64_t)value >= -(1 << 20))
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/cpython/Python/jit.c
    - condition: ((int64_t)value < (1 << 20))
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: patch_aarch64_21r
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - set_bits
    - assert
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_21r(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: patch_aarch64_21r
      Src: /src/cpython/Python/jit.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: patch_aarch64_21rx
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - patch_aarch64_21r
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_21rx(unsigned char *location, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:340,1
    - Dst: IS_AARCH64_BRANCH
      Src: /src/cpython/Python/jit.c:340,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:343,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:344,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:346,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:346,1
    - Dst: set_bits
      Src: /src/cpython/Python/jit.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (IS_AARCH64_BRANCH(*loc32))
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/cpython/Python/jit.c
    - condition: ((int64_t)value < (1 << 27))
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Python/jit.c
    - condition: ((int64_t)value >= -(1 << 27))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Python/jit.c
    - condition: (get_bits(value, 0, 2) == 0)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 348
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 348
    functionName: patch_aarch64_26r
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - set_bits
    - IS_AARCH64_BRANCH
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_26r(unsigned char *location, uint64_t value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit.c:356,1
    - Dst: IS_AARCH64_ADRP
      Src: /src/cpython/Python/jit.c:356,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:357,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:358,1
    - Dst: IS_AARCH64_LDR_OR_STR
      Src: /src/cpython/Python/jit.c:358,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:360,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:360,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:361,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:361,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:365,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:371,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:372,1
    - Dst: get_bits
      Src: /src/cpython/Python/jit.c:381,1
    - Dst: patch_aarch64_21rx
      Src: /src/cpython/Python/jit.c:386,1
    - Dst: patch_aarch64_12x
      Src: /src/cpython/Python/jit.c:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts:
    - condition: (IS_AARCH64_ADRP(*loc32))
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/cpython/Python/jit.c
    - condition: (IS_AARCH64_LDR_OR_STR(loc32[1]))
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/cpython/Python/jit.c
    - condition: (reg == get_bits(loc32[1], 0, 5))
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/cpython/Python/jit.c
    - condition: (reg == get_bits(loc32[1], 5, 5))
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 388
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 388
    functionName: patch_aarch64_33rx
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - IS_AARCH64_LDR_OR_STR
    - patch_aarch64_12x
    - IS_AARCH64_ADRP
    - patch_aarch64_21rx
    - assert
    - get_bits
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_33rx(unsigned char *location, uint64_t value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: patch_32r
      Src: /src/cpython/Python/jit.c:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - location
    - value
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 419
    functionName: patch_x86_64_32rx
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - patch_32r
    linkageType: ''
    returnType: void
    signature: void patch_x86_64_32rx(unsigned char *location, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: patch_aarch64_26r
      Src: /src/cpython/Python/jit.c:445,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:452,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/jit.c:456,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/jit.c:458,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:462,1
    - Dst: patch_aarch64_26r
      Src: /src/cpython/Python/jit.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - location
    - ordinal
    - state
    argTypes:
    - unsigned char*
    - int
    - jit_state*
    assertStmts:
    - condition: ((size_t)(index + 1) * TRAMPOLINE_SIZE <= state->trampolines.size)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/cpython/Python/jit.c
    - condition: (symbol_mask & trampoline_mask)
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 477
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 477
    functionName: patch_aarch64_trampoline
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - patch_aarch64_26r
    - _Py_popcount32
    - assert
    linkageType: ''
    returnType: void
    signature: void patch_aarch64_trampoline(unsigned char *location, int ordinal,
      jit_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - symbol_mask
    - symbol_mask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 486
    functionName: combine_symbol_mask
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void combine_symbol_mask(const symbol_mask src, symbol_mask dest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: combine_symbol_mask
      Src: /src/cpython/Python/jit.c:503,1
    - Dst: combine_symbol_mask
      Src: /src/cpython/Python/jit.c:508,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/jit.c:510,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/jit.c:511,1
    - Dst: get_page_size
      Src: /src/cpython/Python/jit.c:514,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:515,1
    - Dst: jit_alloc
      Src: /src/cpython/Python/jit.c:519,1
    - Dst: OPT_STAT_ADD
      Src: /src/cpython/Python/jit.c:524,1
    - Dst: OPT_STAT_ADD
      Src: /src/cpython/Python/jit.c:525,1
    - Dst: OPT_STAT_ADD
      Src: /src/cpython/Python/jit.c:526,1
    - Dst: OPT_STAT_ADD
      Src: /src/cpython/Python/jit.c:527,1
    - Dst: OPT_STAT_ADD
      Src: /src/cpython/Python/jit.c:528,1
    - Dst: OPT_HIST
      Src: /src/cpython/Python/jit.c:529,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:538,1
    - Dst: StencilGroup*::emit
      Src: /src/cpython/Python/jit.c:542,1
    - Dst: StencilGroup*::emit
      Src: /src/cpython/Python/jit.c:548,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:551,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:552,1
    - Dst: mark_executable
      Src: /src/cpython/Python/jit.c:553,1
    - Dst: jit_free
      Src: /src/cpython/Python/jit.c:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 3
    argNames:
    - executor
    - trace
    - length
    argTypes:
    - _PyExecutorObject*
    - _PyUOpInstruction[]
    - size_t
    assertStmts:
    - condition: ((page_size & (page_size - 1)) == 0)
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/cpython/Python/jit.c
    - condition: (trace[0].opcode == _START_EXECUTOR || trace[0].opcode == _COLD_EXIT)
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/cpython/Python/jit.c
    - condition: (data == memory + code_size + state.trampolines.size + code_padding
        + data_size)
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/cpython/Python/jit.c
    - condition: (code == memory + code_size)
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 560
      start: 489
    functionDepth: 16
    functionLinenumber: 489
    functionLinenumberEnd: 560
    functionName: _PyJIT_Compile
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 2
    functionsReached:
    - _Py_popcount32
    - combine_symbol_mask
    - mark_executable
    - jit_free
    - OPT_HIST
    - StencilGroup*::emit
    - get_page_size
    - Py_ARRAY_LENGTH
    - OPT_STAT_ADD
    - jit_alloc
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyJIT_Compile(_PyExecutorObject *executor, const _PyUOpInstruction
      trace[], size_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: combine_symbol_mask
      Src: /src/cpython/Python/jit.c:578,1
    - Dst: get_page_size
      Src: /src/cpython/Python/jit.c:580,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:581,1
    - Dst: jit_alloc
      Src: /src/cpython/Python/jit.c:585,1
    - Dst: StencilGroup*::emit
      Src: /src/cpython/Python/jit.c:596,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:599,1
    - Dst: assert
      Src: /src/cpython/Python/jit.c:600,1
    - Dst: mark_executable
      Src: /src/cpython/Python/jit.c:601,1
    - Dst: jit_free
      Src: /src/cpython/Python/jit.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((page_size & (page_size - 1)) == 0)
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/cpython/Python/jit.c
    - condition: (code == memory + code_size)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/cpython/Python/jit.c
    - condition: (data == memory + code_size + state.trampolines.size + code_padding
        + data_size)
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/cpython/Python/jit.c
    constantsTouched: []
    func_position:
      end: 606
      start: 567
    functionDepth: 16
    functionLinenumber: 567
    functionLinenumberEnd: 606
    functionName: compile_trampoline
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 2
    functionsReached:
    - combine_symbol_mask
    - mark_executable
    - jit_free
    - StencilGroup*::emit
    - get_page_size
    - jit_alloc
    - assert
    linkageType: ''
    returnType: _PyJitEntryFuncPtr
    signature: _PyJitEntryFuncPtr compile_trampoline(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/jit.c:614,1
    - Dst: compile_trampoline
      Src: /src/cpython/Python/jit.c:616,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/jit.c:618,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/jit.c:619,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/jit.c:623,1
    - Dst: _Py_jit_entry
      Src: /src/cpython/Python/jit.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - executor
    - frame
    - stack_pointer
    - tstate
    argTypes:
    - _PyExecutorObject*
    - _PyInterpreterFrame*
    - _PyStackRef*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 610
    functionDepth: 8
    functionLinenumber: 610
    functionLinenumberEnd: 625
    functionName: _Py_LazyJitTrampoline
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _Py_jit_entry
    - PyMutex_Lock
    - compile_trampoline
    - PyMutex_Unlock
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: "_Py_CODEUNIT *\n_Py_LazyJitTrampoline(\n    _PyExecutorObject *executor,
      _PyInterpreterFrame *frame, _PyStackRef *stack_pointer, PyThreadState *tstate\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jit_free
      Src: /src/cpython/Python/jit.c:635,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/jit.c:636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 627
    functionDepth: 18
    functionLinenumber: 627
    functionLinenumberEnd: 640
    functionName: _PyJIT_Free
    functionSourceFile: /src/cpython/Python/jit.c
    functionUses: 1
    functionsReached:
    - jit_free
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void _PyJIT_Free(_PyExecutorObject *executor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEM_GetCountArgsPtr
      Src: /src/cpython/Python/emscripten_trampoline.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: _Py_EmscriptenTrampoline_Init
    functionSourceFile: /src/cpython/Python/emscripten_trampoline.c
    functionUses: 1
    functionsReached:
    - _PyEM_GetCountArgsPtr
    linkageType: ''
    returnType: void
    signature: void _Py_EmscriptenTrampoline_Init(_PyRuntimeState *runtime)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyEM_TrampolineCall_JS
      Src: /src/cpython/Python/emscripten_trampoline.c:201,1
    - Dst: count_args
      Src: /src/cpython/Python/emscripten_trampoline.c:203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/emscripten_trampoline.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - func
    - self
    - args
    - kw
    argTypes:
    - PyCFunctionWithKeywords
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 193
    functionDepth: 14
    functionLinenumber: 193
    functionLinenumberEnd: 216
    functionName: _PyEM_TrampolineCall
    functionSourceFile: /src/cpython/Python/emscripten_trampoline.c
    functionUses: 0
    functionsReached:
    - _PyEM_TrampolineCall_JS
    - PyErr_SetString
    - count_args
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEM_TrampolineCall(PyCFunctionWithKeywords func,\n                     PyObject*
      self,\n                     PyObject* args,\n                     PyObject*
      kw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:65,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:66,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - PyTime_t
    - PyTime_t
    assertStmts:
    - condition: (x >= 1)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/cpython/Python/pytime.c
    - condition: (x >= 1)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/cpython/Python/pytime.c
    - condition: (y >= 1)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: _PyTime_GCD
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_GCD(PyTime_t x, PyTime_t y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GCD
      Src: /src/cpython/Python/pytime.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - frac
    - numer
    - denom
    argTypes:
    - _PyTimeFraction*
    - PyTime_t
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: _PyTimeFraction_Set
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - _PyTime_GCD
    linkageType: ''
    returnType: int
    signature: int _PyTimeFraction_Set(_PyTimeFraction *frac, PyTime_t numer, PyTime_t
      denom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frac
    argTypes:
    - _PyTimeFraction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: _PyTimeFraction_Resolution
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double _PyTimeFraction_Resolution(const _PyTimeFraction *frac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pytime.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 14
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: pytime_time_t_overflow
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void pytime_time_t_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pytime.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 14
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: pytime_overflow
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void pytime_overflow(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - PyTime_t*
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: pytime_add
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pytime_add(PyTime_t *t1, PyTime_t t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_add
      Src: /src/cpython/Python/pytime.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - PyTime_t
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: _PyTime_Add
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 3
    functionsReached:
    - pytime_add
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_Add(PyTime_t t1, PyTime_t t2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTime_t
    - PyTime_t
    assertStmts:
    - condition: (b > 0)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: pytime_mul_check_overflow
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int pytime_mul_check_overflow(PyTime_t a, PyTime_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:158,1
    - Dst: pytime_mul_check_overflow
      Src: /src/cpython/Python/pytime.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - t
    - k
    argTypes:
    - PyTime_t*
    - PyTime_t
    assertStmts:
    - condition: (k >= 0)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: pytime_mul
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_mul_check_overflow
    - assert
    linkageType: ''
    returnType: int
    signature: int pytime_mul(PyTime_t *t, PyTime_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_mul
      Src: /src/cpython/Python/pytime.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - k
    argTypes:
    - PyTime_t
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: _PyTime_Mul
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_mul
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_Mul(PyTime_t t, PyTime_t k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_Mul
      Src: /src/cpython/Python/pytime.c:187,1
    - Dst: _PyTime_Mul
      Src: /src/cpython/Python/pytime.c:198,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/pytime.c:200,1
    - Dst: _PyTime_Mul
      Src: /src/cpython/Python/pytime.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ticks
    - frac
    argTypes:
    - PyTime_t
    - _PyTimeFraction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 201
    functionName: _PyTimeFraction_Mul
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached:
    - _PyTime_Add
    - _PyTime_Mul
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTimeFraction_Mul(PyTime_t ticks, const _PyTimeFraction
      *frac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/pytime.c:208,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/pytime.c:210,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pytime.c:214,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pytime.c:215,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 204
    functionDepth: 15
    functionLinenumber: 204
    functionLinenumberEnd: 221
    functionName: _PyLong_AsTime_t
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached:
    - PyLong_AsLongLong
    - PyLong_AsLong
    - PyErr_Occurred
    - pytime_time_t_overflow
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: time_t
    signature: time_t _PyLong_AsTime_t(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/pytime.c:228,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/pytime.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: _PyLong_FromTime_t
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 8
    functionsReached:
    - PyLong_FromLongLong
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromTime_t(time_t t)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - t2
    argTypes:
    - PyTime_t
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: _PyTime_AsTime_t
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyTime_AsTime_t(PyTime_t t, time_t *t2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - t2
    argTypes:
    - PyTime_t
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: _PyTime_AsCLong
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyTime_AsCLong(PyTime_t t, long *t2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/cpython/Python/pytime.c:284,1
    - Dst: fabs
      Src: /src/cpython/Python/pytime.c:285,1
    - Dst: round
      Src: /src/cpython/Python/pytime.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: pytime_round_half_even
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - fabs
    - round
    linkageType: ''
    returnType: double
    signature: double pytime_round_half_even(double x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pytime_round_half_even
      Src: /src/cpython/Python/pytime.c:301,1
    - Dst: ceil
      Src: /src/cpython/Python/pytime.c:304,1
    - Dst: floor
      Src: /src/cpython/Python/pytime.c:307,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:310,1
    - Dst: ceil
      Src: /src/cpython/Python/pytime.c:311,1
    - Dst: floor
      Src: /src/cpython/Python/pytime.c:311,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: 309
        line_start: 309
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 314
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 314
    functionName: pytime_round
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - floor
    - pytime_round_half_even
    - ceil
    - assert
    linkageType: ''
    returnType: double
    signature: double pytime_round(double x, _PyTime_round_t round)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: modf
      Src: /src/cpython/Python/pytime.c:326,1
    - Dst: pytime_round
      Src: /src/cpython/Python/pytime.c:329,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:338,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:355,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    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: 337
        line_start: 337
        source_file: /src/cpython/Python/pytime.c
    - condition: (0 <= *numerator && *numerator < idenominator)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 362
      start: 317
    functionDepth: 15
    functionLinenumber: 317
    functionLinenumberEnd: 362
    functionName: pytime_double_to_denominator
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_time_t_overflow
    - pytime_round
    - assert
    - modf
    linkageType: ''
    returnType: int
    signature: "int pytime_double_to_denominator(double d, time_t *sec, long *numerator,\n
      \                            long idenominator, _PyTime_round_t round)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:369,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Python/pytime.c:371,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/pytime.c:372,1
    - Dst: isnan
      Src: /src/cpython/Python/pytime.c:373,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pytime.c:375,1
    - Dst: pytime_double_to_denominator
      Src: /src/cpython/Python/pytime.c:378,1
    - Dst: _PyLong_AsTime_t
      Src: /src/cpython/Python/pytime.c:382,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pytime.c:384,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pytime.c:385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pytime.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - obj
    - sec
    - numerator
    - denominator
    - round
    argTypes:
    - PyObject*
    - time_t*
    - long*
    - long
    - _PyTime_round_t
    assertStmts:
    - condition: (denominator >= 1)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 393
      start: 365
    functionDepth: 16
    functionLinenumber: 365
    functionLinenumberEnd: 393
    functionName: pytime_object_to_denominator
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyLong_AsTime_t
    - PyFloat_Check
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - isnan
    - PyErr_Format
    - pytime_double_to_denominator
    - assert
    linkageType: ''
    returnType: int
    signature: "int pytime_object_to_denominator(PyObject *obj, time_t *sec, long
      *numerator,\n                             long denominator, _PyTime_round_t
      round)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/cpython/Python/pytime.c:399,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/pytime.c:404,1
    - Dst: isnan
      Src: /src/cpython/Python/pytime.c:405,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pytime.c:406,1
    - Dst: pytime_round
      Src: /src/cpython/Python/pytime.c:410,1
    - Dst: modf
      Src: /src/cpython/Python/pytime.c:411,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:415,1
    - Dst: _PyLong_AsTime_t
      Src: /src/cpython/Python/pytime.c:422,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pytime.c:423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - obj
    - sec
    - round
    argTypes:
    - PyObject*
    - time_t*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 396
    functionDepth: 16
    functionLinenumber: 396
    functionLinenumberEnd: 428
    functionName: _PyTime_ObjectToTime_t
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 3
    functionsReached:
    - _PyLong_AsTime_t
    - PyFloat_Check
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    - pytime_time_t_overflow
    - isnan
    - modf
    - pytime_round
    linkageType: ''
    returnType: int
    signature: int _PyTime_ObjectToTime_t(PyObject *obj, time_t *sec, _PyTime_round_t
      round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_object_to_denominator
      Src: /src/cpython/Python/pytime.c:435,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: 436
      start: 431
    functionDepth: 17
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: _PyTime_ObjectToTimespec
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached:
    - pytime_object_to_denominator
    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_object_to_denominator
      Src: /src/cpython/Python/pytime.c:443,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: 444
      start: 439
    functionDepth: 17
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: _PyTime_ObjectToTimeval
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached:
    - pytime_object_to_denominator
    linkageType: ''
    returnType: int
    signature: "int _PyTime_ObjectToTimeval(PyObject *obj, time_t *sec, long *usec,\n
      \                       _PyTime_round_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    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: 457
        line_start: 456
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: _PyTime_FromSeconds
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_FromSeconds(int seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_Mul
      Src: /src/cpython/Python/pytime.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - us
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: _PyTime_FromMicrosecondsClamp
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached:
    - _PyTime_Mul
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_FromMicrosecondsClamp(PyTime_t us)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/pytime.c:475,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pytime.c:476,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pytime.c:477,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/pytime.c:483,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pytime.c:484,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pytime.c:485,1
    - Dst: pytime_overflow
      Src: /src/cpython/Python/pytime.c:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - tp
    - obj
    argTypes:
    - PyTime_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 472
    functionDepth: 15
    functionLinenumber: 472
    functionLinenumberEnd: 494
    functionName: _PyTime_FromLong
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 8
    functionsReached:
    - PyLong_AsLongLong
    - PyErr_Occurred
    - PyLong_Check
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_TYPE
    - pytime_overflow
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromLong(PyTime_t *tp, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pytime_mul
      Src: /src/cpython/Python/pytime.c:507,1
    - Dst: pytime_add
      Src: /src/cpython/Python/pytime.c:510,1
    - Dst: pytime_overflow
      Src: /src/cpython/Python/pytime.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - tp
    - ts
    - raise_exc
    argTypes:
    - PyTime_t*
    - struct timespec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 498
    functionDepth: 15
    functionLinenumber: 498
    functionLinenumberEnd: 519
    functionName: pytime_fromtimespec
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_overflow
    - pytime_mul
    - pytime_add
    linkageType: ''
    returnType: int
    signature: int pytime_fromtimespec(PyTime_t *tp, const struct timespec *ts, int
      raise_exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_fromtimespec
      Src: /src/cpython/Python/pytime.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - ts
    argTypes:
    - PyTime_t*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 16
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: _PyTime_FromTimespec
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 4
    functionsReached:
    - pytime_fromtimespec
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromTimespec(PyTime_t *tp, const struct timespec *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pytime_mul
      Src: /src/cpython/Python/pytime.c:537,1
    - Dst: pytime_add
      Src: /src/cpython/Python/pytime.c:540,1
    - Dst: pytime_overflow
      Src: /src/cpython/Python/pytime.c:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - tp
    - tv
    - raise_exc
    argTypes:
    - PyTime_t*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 530
    functionDepth: 15
    functionLinenumber: 530
    functionLinenumberEnd: 549
    functionName: pytime_fromtimeval
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_overflow
    - pytime_mul
    - pytime_add
    linkageType: ''
    returnType: int
    signature: int pytime_fromtimeval(PyTime_t *tp, struct timeval *tv, int raise_exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_fromtimeval
      Src: /src/cpython/Python/pytime.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - tv
    argTypes:
    - PyTime_t*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 16
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: _PyTime_FromTimeval
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    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/cpython/Python/pytime.c:570,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - tp
    - value
    - round
    - unit_to_ns
    argTypes:
    - PyTime_t*
    - double
    - _PyTime_round_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 560
    functionDepth: 15
    functionLinenumber: 560
    functionLinenumberEnd: 582
    functionName: pytime_from_double
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_time_t_overflow
    - pytime_round
    linkageType: ''
    returnType: int
    signature: "int pytime_from_double(PyTime_t *tp, double value, _PyTime_round_t
      round,\n                   long unit_to_ns)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/cpython/Python/pytime.c:589,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/pytime.c:591,1
    - Dst: isnan
      Src: /src/cpython/Python/pytime.c:592,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pytime.c:593,1
    - Dst: pytime_from_double
      Src: /src/cpython/Python/pytime.c:596,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/pytime.c:599,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pytime.c:600,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pytime.c:601,1
    - Dst: pytime_overflow
      Src: /src/cpython/Python/pytime.c:602,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pytime.c:604,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pytime.c:605,1
    - Dst: pytime_mul
      Src: /src/cpython/Python/pytime.c:615,1
    - Dst: pytime_overflow
      Src: /src/cpython/Python/pytime.c:616,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - tp
    - obj
    - round
    - unit_to_ns
    argTypes:
    - PyTime_t*
    - PyObject*
    - _PyTime_round_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 585
    functionDepth: 16
    functionLinenumber: 585
    functionLinenumberEnd: 622
    functionName: pytime_from_object
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - PyFloat_AsDouble
    - PyLong_AsLongLong
    - PyErr_Occurred
    - pytime_from_double
    - PyErr_SetString
    - pytime_mul
    - PyErr_ExceptionMatches
    - isnan
    - PyErr_Format
    - pytime_overflow
    linkageType: ''
    returnType: int
    signature: "int pytime_from_object(PyTime_t *tp, PyObject *obj, _PyTime_round_t
      round,\n                   long unit_to_ns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_from_object
      Src: /src/cpython/Python/pytime.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tp
    - obj
    - round
    argTypes:
    - PyTime_t*
    - PyObject*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 17
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: _PyTime_FromSecondsObject
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 15
    functionsReached:
    - pytime_from_object
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromSecondsObject(PyTime_t *tp, PyObject *obj, _PyTime_round_t
      round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_from_object
      Src: /src/cpython/Python/pytime.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tp
    - obj
    - round
    argTypes:
    - PyTime_t*
    - PyObject*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 17
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: _PyTime_FromMillisecondsObject
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached:
    - pytime_from_object
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromMillisecondsObject(PyTime_t *tp, PyObject *obj, _PyTime_round_t
      round)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ns
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 656
    functionName: PyTime_AsSecondsDouble
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PyTime_AsSecondsDouble(PyTime_t ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/pytime.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 665
    functionName: _PyTime_AsLong
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 10
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTime_AsLong(PyTime_t ns)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_from_double
      Src: /src/cpython/Python/pytime.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - seconds
    - round
    - result
    argTypes:
    - double
    - _PyTime_round_t
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 16
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: _PyTime_FromSecondsDouble
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - pytime_from_double
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromSecondsDouble(double seconds, _PyTime_round_t round,
      PyTime_t *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - t
    - k
    argTypes:
    - PyTime_t
    - PyTime_t
    assertStmts:
    - condition: (k > 1)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 696
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 696
    functionName: pytime_divide_round_up
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t pytime_divide_round_up(const PyTime_t t, const PyTime_t k)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:703,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/pytime.c:707,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/pytime.c:708,1
    - Dst: pytime_divide_round_up
      Src: /src/cpython/Python/pytime.c:720,1
    - Dst: pytime_divide_round_up
      Src: /src/cpython/Python/pytime.c:731,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:735,1
    - Dst: pytime_divide_round_up
      Src: /src/cpython/Python/pytime.c:736,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - t
    - k
    - round
    argTypes:
    - PyTime_t
    - PyTime_t
    - _PyTime_round_t
    assertStmts:
    - condition: (k > 1)
      pos:
        line_end: 702
        line_start: 702
        source_file: /src/cpython/Python/pytime.c
    - condition: (round == _PyTime_ROUND_UP)
      pos:
        line_end: 734
        line_start: 734
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 738
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 738
    functionName: pytime_divide
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - pytime_divide_round_up
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:749,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - t
    - k
    - pq
    - pr
    argTypes:
    - PyTime_t
    - PyTime_t
    - PyTime_t*
    - PyTime_t*
    assertStmts:
    - condition: (k > 1)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/cpython/Python/pytime.c
    - condition: (0 <= r && r < k)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 766
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 766
    functionName: pytime_divmod
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int pytime_divmod(const PyTime_t t, const PyTime_t k,\n              PyTime_t
      *pq, PyTime_t *pr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_divide
      Src: /src/cpython/Python/pytime.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ns
    - round
    argTypes:
    - PyTime_t
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: _PyTime_As100Nanoseconds
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - pytime_divide
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_As100Nanoseconds(PyTime_t ns, _PyTime_round_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_divide
      Src: /src/cpython/Python/pytime.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ns
    - round
    argTypes:
    - PyTime_t
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 782
    functionName: _PyTime_AsMicroseconds
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 7
    functionsReached:
    - pytime_divide
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_AsMicroseconds(PyTime_t ns, _PyTime_round_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_divide
      Src: /src/cpython/Python/pytime.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ns
    - round
    argTypes:
    - PyTime_t
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: _PyTime_AsMilliseconds
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 8
    functionsReached:
    - pytime_divide
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyTime_AsMilliseconds(PyTime_t ns, _PyTime_round_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_divide
      Src: /src/cpython/Python/pytime.c:796,1
    - Dst: pytime_divmod
      Src: /src/cpython/Python/pytime.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ns
    - ptv_sec
    - ptv_usec
    - round
    argTypes:
    - PyTime_t
    - PyTime_t*
    - int*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 803
    functionName: pytime_as_timeval
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_divide
    - pytime_divmod
    linkageType: ''
    returnType: int
    signature: "int pytime_as_timeval(PyTime_t ns, PyTime_t *ptv_sec, int *ptv_usec,\n
      \                 _PyTime_round_t round)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pytime_as_timeval
      Src: /src/cpython/Python/pytime.c:812,1
    - Dst: _PyTime_AsCLong
      Src: /src/cpython/Python/pytime.c:816,1
    - Dst: _PyTime_AsTime_t
      Src: /src/cpython/Python/pytime.c:818,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - t
    - tv
    - round
    - raise_exc
    argTypes:
    - PyTime_t
    - struct timeval*
    - _PyTime_round_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 806
    functionDepth: 15
    functionLinenumber: 806
    functionLinenumberEnd: 830
    functionName: pytime_as_timeval_struct
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsCLong
    - pytime_time_t_overflow
    - _PyTime_AsTime_t
    - pytime_as_timeval
    linkageType: ''
    returnType: int
    signature: "int pytime_as_timeval_struct(PyTime_t t, struct timeval *tv,\n                         _PyTime_round_t
      round, int raise_exc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_as_timeval_struct
      Src: /src/cpython/Python/pytime.c:836,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: 837
      start: 833
    functionDepth: 16
    functionLinenumber: 833
    functionLinenumberEnd: 837
    functionName: _PyTime_AsTimeval
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 5
    functionsReached:
    - pytime_as_timeval_struct
    linkageType: ''
    returnType: int
    signature: int _PyTime_AsTimeval(PyTime_t t, struct timeval *tv, _PyTime_round_t
      round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_as_timeval_struct
      Src: /src/cpython/Python/pytime.c:843,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: 844
      start: 840
    functionDepth: 16
    functionLinenumber: 840
    functionLinenumberEnd: 844
    functionName: _PyTime_AsTimeval_clamp
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 4
    functionsReached:
    - pytime_as_timeval_struct
    linkageType: ''
    returnType: void
    signature: void _PyTime_AsTimeval_clamp(PyTime_t t, struct timeval *tv, _PyTime_round_t
      round)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pytime_as_timeval
      Src: /src/cpython/Python/pytime.c:852,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:853,1
    - Dst: _PyTime_AsTime_t
      Src: /src/cpython/Python/pytime.c:857,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - t
    - p_secs
    - us
    - round
    argTypes:
    - PyTime_t
    - time_t*
    - int*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 847
    functionDepth: 15
    functionLinenumber: 847
    functionLinenumberEnd: 862
    functionName: _PyTime_AsTimevalTime_t
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - pytime_time_t_overflow
    - _PyTime_AsTime_t
    - pytime_as_timeval
    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: pytime_divmod
      Src: /src/cpython/Python/pytime.c:870,1
    - Dst: _PyTime_AsTime_t
      Src: /src/cpython/Python/pytime.c:872,1
    - Dst: pytime_time_t_overflow
      Src: /src/cpython/Python/pytime.c:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ns
    - ts
    - raise_exc
    argTypes:
    - PyTime_t
    - struct timespec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 866
    functionDepth: 15
    functionLinenumber: 866
    functionLinenumberEnd: 883
    functionName: pytime_as_timespec
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - pytime_time_t_overflow
    - _PyTime_AsTime_t
    - pytime_divmod
    linkageType: ''
    returnType: int
    signature: int pytime_as_timespec(PyTime_t ns, struct timespec *ts, int raise_exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_as_timespec
      Src: /src/cpython/Python/pytime.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - PyTime_t
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 16
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: _PyTime_AsTimespec_clamp
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 3
    functionsReached:
    - pytime_as_timespec
    linkageType: ''
    returnType: void
    signature: void _PyTime_AsTimespec_clamp(PyTime_t t, struct timespec *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_as_timespec
      Src: /src/cpython/Python/pytime.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - PyTime_t
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 16
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: _PyTime_AsTimespec
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 8
    functionsReached:
    - pytime_as_timespec
    linkageType: ''
    returnType: int
    signature: int _PyTime_AsTimespec(PyTime_t t, struct timespec *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py_get_system_clock
      Src: /src/cpython/Python/pytime.c:1011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1016
    functionName: PyTime_Time
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 5
    functionsReached:
    - py_get_system_clock
    linkageType: ''
    returnType: int
    signature: int PyTime_Time(PyTime_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py_get_system_clock
      Src: /src/cpython/Python/pytime.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1027
    functionName: PyTime_TimeRaw
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 3
    functionsReached:
    - py_get_system_clock
    linkageType: ''
    returnType: int
    signature: int PyTime_TimeRaw(PyTime_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py_get_system_clock
      Src: /src/cpython/Python/pytime.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1034
    functionName: _PyTime_TimeWithInfo
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - py_get_system_clock
    linkageType: ''
    returnType: int
    signature: int _PyTime_TimeWithInfo(PyTime_t *t, _Py_clock_info_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/cpython/Python/pytime.c:1043,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:1047,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Python/pytime.c:1049,1
    - Dst: _PyTimeFraction_Set
      Src: /src/cpython/Python/pytime.c:1056,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pytime.c:1057,1
    - Dst: PyStatus_Ok
      Src: /src/cpython/Python/pytime.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - _PyTimeFraction*
    assertStmts:
    - condition: (frequency >= 1)
      pos:
        line_end: 1046
        line_start: 1046
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 1060
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1060
    functionName: py_win_perf_counter_frequency
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - PyStatus_Ok
    - QueryPerformanceFrequency
    - _PyTimeFraction_Set
    - _PyStatus_ERR
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus py_win_perf_counter_frequency(_PyTimeFraction *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:1067,1
    - Dst: _PyTimeFraction_Resolution
      Src: /src/cpython/Python/pytime.c:1071,1
    - Dst: QueryPerformanceCounter
      Src: /src/cpython/Python/pytime.c:1077,1
    - Dst: _PyTimeFraction_Mul
      Src: /src/cpython/Python/pytime.c:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tp
    - info
    - raise_exc
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    - int
    assertStmts:
    - condition: (info == NULL || raise_exc)
      pos:
        line_end: 1066
        line_start: 1066
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 1089
      start: 1064
    functionDepth: 4
    functionLinenumber: 1064
    functionLinenumberEnd: 1089
    functionName: py_get_win_perf_counter
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTimeFraction_Mul
    - _PyTimeFraction_Resolution
    - QueryPerformanceCounter
    - assert
    linkageType: ''
    returnType: int
    signature: int py_get_win_perf_counter(PyTime_t *tp, _Py_clock_info_t *info, int
      raise_exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mach_timebase_info
      Src: /src/cpython/Python/pytime.c:1100,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Python/pytime.c:1106,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Python/pytime.c:1107,1
    - Dst: _PyTimeFraction_Set
      Src: /src/cpython/Python/pytime.c:1116,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pytime.c:1117,1
    - Dst: PyStatus_Ok
      Src: /src/cpython/Python/pytime.c:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - _PyTimeFraction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1120
    functionName: py_mach_timebase_info
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - mach_timebase_info
    - PyStatus_Ok
    - Py_BUILD_ASSERT
    - _PyTimeFraction_Set
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus py_mach_timebase_info(_PyTimeFraction *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py_win_perf_counter_frequency
      Src: /src/cpython/Python/pytime.c:1127,1
    - Dst: py_mach_timebase_info
      Src: /src/cpython/Python/pytime.c:1129,1
    - Dst: PyStatus_Ok
      Src: /src/cpython/Python/pytime.c:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _Py_time_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1123
    functionDepth: 3
    functionLinenumber: 1123
    functionLinenumberEnd: 1133
    functionName: _PyTime_Init
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - py_mach_timebase_info
    - py_win_perf_counter_frequency
    - PyStatus_Ok
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyTime_Init(struct _Py_time_runtime_state *state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:1139,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/pytime.c:1142,1
    - Dst: py_get_win_perf_counter
      Src: /src/cpython/Python/pytime.c:1146,1
    - Dst: _PyTimeFraction_Resolution
      Src: /src/cpython/Python/pytime.c:1152,1
    - Dst: mach_absolute_time
      Src: /src/cpython/Python/pytime.c:1157,1
    - Dst: assert
      Src: /src/cpython/Python/pytime.c:1159,1
    - Dst: _PyTimeFraction_Mul
      Src: /src/cpython/Python/pytime.c:1162,1
    - Dst: gethrtime
      Src: /src/cpython/Python/pytime.c:1166,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/pytime.c:1169,1
    - Dst: clock_gettime
      Src: /src/cpython/Python/pytime.c:1194,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/pytime.c:1196,1
    - Dst: pytime_fromtimespec
      Src: /src/cpython/Python/pytime.c:1202,1
    - Dst: clock_getres
      Src: /src/cpython/Python/pytime.c:1211,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/pytime.c:1212,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - tp
    - info
    - raise_exc
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    - int
    assertStmts:
    - condition: (info == NULL || raise_exc)
      pos:
        line_end: 1138
        line_start: 1138
        source_file: /src/cpython/Python/pytime.c
    - condition: (uticks <= (uint64_t)PyTime_MAX)
      pos:
        line_end: 1158
        line_start: 1158
        source_file: /src/cpython/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 1219
      start: 1136
    functionDepth: 16
    functionLinenumber: 1136
    functionLinenumberEnd: 1219
    functionName: py_get_monotonic_clock
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - mach_absolute_time
    - clock_getres
    - _PyTimeFraction_Resolution
    - _PyTimeFraction_Mul
    - py_get_win_perf_counter
    - PyErr_SetFromErrno
    - pytime_fromtimespec
    - _Py_AssertHoldsTstate
    - assert
    - gethrtime
    linkageType: ''
    returnType: int
    signature: int py_get_monotonic_clock(PyTime_t *tp, _Py_clock_info_t *info, int
      raise_exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py_get_monotonic_clock
      Src: /src/cpython/Python/pytime.c:1225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1222
    functionDepth: 17
    functionLinenumber: 1222
    functionLinenumberEnd: 1230
    functionName: PyTime_Monotonic
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 6
    functionsReached:
    - py_get_monotonic_clock
    linkageType: ''
    returnType: int
    signature: int PyTime_Monotonic(PyTime_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py_get_monotonic_clock
      Src: /src/cpython/Python/pytime.c:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1233
    functionDepth: 17
    functionLinenumber: 1233
    functionLinenumberEnd: 1241
    functionName: PyTime_MonotonicRaw
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 5
    functionsReached:
    - py_get_monotonic_clock
    linkageType: ''
    returnType: int
    signature: int PyTime_MonotonicRaw(PyTime_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py_get_monotonic_clock
      Src: /src/cpython/Python/pytime.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1244
    functionDepth: 17
    functionLinenumber: 1244
    functionLinenumberEnd: 1248
    functionName: _PyTime_MonotonicWithInfo
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - py_get_monotonic_clock
    linkageType: ''
    returnType: int
    signature: int _PyTime_MonotonicWithInfo(PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_MonotonicWithInfo
      Src: /src/cpython/Python/pytime.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1251
    functionDepth: 18
    functionLinenumber: 1251
    functionLinenumberEnd: 1255
    functionName: _PyTime_PerfCounterWithInfo
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 1
    functionsReached:
    - _PyTime_MonotonicWithInfo
    linkageType: ''
    returnType: int
    signature: int _PyTime_PerfCounterWithInfo(PyTime_t *t, _Py_clock_info_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Python/pytime.c:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1258
    functionDepth: 18
    functionLinenumber: 1258
    functionLinenumberEnd: 1262
    functionName: PyTime_PerfCounter
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 4
    functionsReached:
    - PyTime_Monotonic
    linkageType: ''
    returnType: int
    signature: int PyTime_PerfCounter(PyTime_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/pytime.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1265
    functionDepth: 18
    functionLinenumber: 1265
    functionLinenumberEnd: 1269
    functionName: PyTime_PerfCounterRaw
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 4
    functionsReached:
    - PyTime_MonotonicRaw
    linkageType: ''
    returnType: int
    signature: int PyTime_PerfCounterRaw(PyTime_t *result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: localtime_s
      Src: /src/cpython/Python/pytime.c:1278,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/pytime.c:1281,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pytime.c:1292,1
    - Dst: localtime_r
      Src: /src/cpython/Python/pytime.c:1299,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/pytime.c:1303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1272
    functionDepth: 14
    functionLinenumber: 1272
    functionLinenumberEnd: 1308
    functionName: _PyTime_localtime
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 8
    functionsReached:
    - PyErr_SetString
    - localtime_r
    - PyErr_SetFromErrno
    - localtime_s
    linkageType: ''
    returnType: int
    signature: int _PyTime_localtime(time_t t, struct tm *tm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/cpython/Python/pytime.c:1317,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/pytime.c:1320,1
    - Dst: gmtime_r
      Src: /src/cpython/Python/pytime.c:1325,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/pytime.c:1331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1311
    functionDepth: 14
    functionLinenumber: 1311
    functionLinenumberEnd: 1336
    functionName: _PyTime_gmtime
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 2
    functionsReached:
    - gmtime_r
    - gmtime_s
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int _PyTime_gmtime(time_t t, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/pytime.c:1344,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/pytime.c:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1339
    functionDepth: 18
    functionLinenumber: 1339
    functionLinenumberEnd: 1346
    functionName: _PyDeadline_Init
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 17
    functionsReached:
    - _PyTime_Add
    - PyTime_MonotonicRaw
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyDeadline_Init(PyTime_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/pytime.c:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - deadline
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1349
    functionDepth: 18
    functionLinenumber: 1349
    functionLinenumberEnd: 1356
    functionName: _PyDeadline_Get
    functionSourceFile: /src/cpython/Python/pytime.c
    functionUses: 18
    functionsReached:
    - PyTime_MonotonicRaw
    linkageType: ''
    returnType: PyTime_t
    signature: PyTime_t _PyDeadline_Get(PyTime_t deadline)
  - 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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: PUTS
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:130,1
    - Dst: _PyRuntimeState_Init
      Src: /src/cpython/Python/pylifecycle.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: _PyRuntime_Initialize
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - _PyRuntimeState_Init
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyRuntime_Initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_Fini
      Src: /src/cpython/Python/pylifecycle.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: _PyRuntime_Finalize
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _PyRuntimeState_Fini
    linkageType: ''
    returnType: void
    signature: void _PyRuntime_Finalize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: Py_IsFinalizing
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - _PyRuntimeState_GetFinalizing
    linkageType: ''
    returnType: int
    signature: int Py_IsFinalizing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: _Py_IsCoreInitialized
    functionSourceFile: /src/cpython/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: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Py_IsInitialized
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_IsInitialized(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/cpython/Python/pylifecycle.c:198,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:211,1
    - Dst: strcmp
      Src: /src/cpython/Python/pylifecycle.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - warn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: _Py_LegacyLocaleDetected
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - getenv
    - strcmp
    - setlocale
    linkageType: ''
    returnType: int
    signature: int _Py_LegacyLocaleDetected(int warn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_LegacyLocaleDetected
      Src: /src/cpython/Python/pylifecycle.c:230,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/pylifecycle.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 17
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: emit_stderr_warning_for_legacy_locale
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PySys_FormatStderr
    - _Py_LegacyLocaleDetected
    linkageType: ''
    returnType: void
    signature: void emit_stderr_warning_for_legacy_locale(_PyRuntimeState *runtime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/pylifecycle.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctype_loc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: _Py_IsLocaleCoercionTarget
    functionSourceFile: /src/cpython/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/cpython/Python/pylifecycle.c:272,1
    - Dst: setenv
      Src: /src/cpython/Python/pylifecycle.c:275,1
    - Dst: fprintf
      Src: /src/cpython/Python/pylifecycle.c:276,1
    - Dst: fprintf
      Src: /src/cpython/Python/pylifecycle.c:281,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/cpython/Python/pylifecycle.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - warn
    - target
    argTypes:
    - int
    - _LocaleCoercionTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: _coerce_default_locale_settings
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - fprintf
    - setenv
    - _Py_SetLocaleFromEnv
    linkageType: ''
    returnType: int
    signature: int _coerce_default_locale_settings(int warn, const _LocaleCoercionTarget
      *target)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_RawStrdup
      Src: /src/cpython/Python/pylifecycle.c:297,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:297,1
    - Dst: getenv
      Src: /src/cpython/Python/pylifecycle.c:302,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:307,1
    - Dst: nl_langinfo
      Src: /src/cpython/Python/pylifecycle.c:312,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/cpython/Python/pylifecycle.c:316,1
    - Dst: _coerce_default_locale_settings
      Src: /src/cpython/Python/pylifecycle.c:321,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:328,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pylifecycle.c:331,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - warn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 334
    functionName: _Py_CoerceLegacyLocale
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - _coerce_default_locale_settings
    - setlocale
    - PyMem_RawFree
    - _Py_SetLocaleFromEnv
    - getenv
    - _PyMem_RawStrdup
    - nl_langinfo
    linkageType: ''
    returnType: int
    signature: int _Py_CoerceLegacyLocale(int warn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/cpython/Python/pylifecycle.c:362,1
    - Dst: strcmp
      Src: /src/cpython/Python/pylifecycle.c:364,1
    - Dst: strcmp
      Src: /src/cpython/Python/pylifecycle.c:365,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:366,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:368,1
    - Dst: getenv
      Src: /src/cpython/Python/pylifecycle.c:379,1
    - Dst: strcmp
      Src: /src/cpython/Python/pylifecycle.c:380,1
    - Dst: setenv
      Src: /src/cpython/Python/pylifecycle.c:384,1
    - Dst: fprintf
      Src: /src/cpython/Python/pylifecycle.c:385,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:390,1
    - Dst: setlocale
      Src: /src/cpython/Python/pylifecycle.c:392,1
    - Dst: _Py_ResetForceASCII
      Src: /src/cpython/Python/pylifecycle.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - category
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 396
    functionName: _Py_SetLocaleFromEnv
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 5
    functionsReached:
    - setlocale
    - _Py_ResetForceASCII
    - setenv
    - getenv
    - strcmp
    - fprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_SetLocaleFromEnv(int category)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_Write
      Src: /src/cpython/Python/pylifecycle.c:405,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:406,1
    - Dst: _PyErr_SetFromPyStatus
      Src: /src/cpython/Python/pylifecycle.c:407,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pylifecycle.c:412,1
    - Dst: _PyPathConfig_UpdateGlobal
      Src: /src/cpython/Python/pylifecycle.c:413,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:414,1
    - Dst: _PyErr_SetFromPyStatus
      Src: /src/cpython/Python/pylifecycle.c:415,1
    - Dst: _PySys_UpdateConfig
      Src: /src/cpython/Python/pylifecycle.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - tstate
    - only_update_path_config
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 399
    functionDepth: 16
    functionLinenumber: 399
    functionLinenumberEnd: 427
    functionName: interpreter_update_config
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PySys_UpdateConfig
    - _Py_IsMainInterpreter
    - _PyPathConfig_UpdateGlobal
    - _PyStatus_EXCEPTION
    - _PyErr_SetFromPyStatus
    - _PyConfig_Write
    linkageType: ''
    returnType: int
    signature: int interpreter_update_config(PyThreadState *tstate, int only_update_path_config)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:448,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:450,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:456,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:458,1
    - Dst: _PyConfig_Write
      Src: /src/cpython/Python/pylifecycle.c:460,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:461,1
    - Dst: _PyConfig_Copy
      Src: /src/cpython/Python/pylifecycle.c:465,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:466,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:469,1
    - Dst: _PyPathConfig_UpdateGlobal
      Src: /src/cpython/Python/pylifecycle.c:472,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:473,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - runtime
    - tstate_p
    - config
    argTypes:
    - _PyRuntimeState*
    - PyThreadState**
    - PyConfig*
    assertStmts:
    - condition: (interp->_ready)
      pos:
        line_end: 457
        line_start: 457
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 478
      start: 442
    functionDepth: 6
    functionLinenumber: 442
    functionLinenumberEnd: 478
    functionName: pyinit_core_reconfigure
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyPathConfig_UpdateGlobal
    - _PyStatus_EXCEPTION
    - _PyThreadState_GET
    - _PyConfig_Copy
    - _PyInterpreterState_GetConfig
    - _PyStatus_ERR
    - _PyConfig_Write
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pyinit_core_reconfigure(_PyRuntimeState *runtime,\n                        PyThreadState
      **tstate_p,\n                        const PyConfig *config)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:486,1
    - Dst: _PyConfig_Write
      Src: /src/cpython/Python/pylifecycle.c:489,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:490,1
    - Dst: _PyRuntimeState_SetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:503,1
    - Dst: _Py_InitVersion
      Src: /src/cpython/Python/pylifecycle.c:505,1
    - Dst: _Py_HashRandomization_Init
      Src: /src/cpython/Python/pylifecycle.c:507,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:508,1
    - Dst: _PyImport_Init
      Src: /src/cpython/Python/pylifecycle.c:512,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:513,1
    - Dst: _PyInterpreterState_Enable
      Src: /src/cpython/Python/pylifecycle.c:517,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:518,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - runtime
    - config
    argTypes:
    - _PyRuntimeState*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 522
    functionName: pycore_init_runtime
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyRuntimeState_SetFinalizing
    - _PyInterpreterState_Enable
    - _Py_InitVersion
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - _PyStatus_ERR
    - _PyConfig_Write
    - _PyImport_Init
    - _Py_HashRandomization_Init
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pycore_init_runtime(_PyRuntimeState *runtime,\n                    const
      PyConfig *config)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:529,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:537,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pylifecycle.c:541,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:544,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:574,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:577,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - interp
    - config
    argTypes:
    - PyInterpreterState*
    - PyInterpreterConfig*
    assertStmts:
    - condition: (interp->feature_flags == 0)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 578
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 578
    functionName: init_interp_settings
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _Py_IsMainInterpreter
    - assert
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus init_interp_settings(PyInterpreterState *interp,\n                     const
      PyInterpreterConfig *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_FiniGIL
      Src: /src/cpython/Python/pylifecycle.c:587,1
    - Dst: _PyGILState_SetTstate
      Src: /src/cpython/Python/pylifecycle.c:590,1
    - Dst: _PyEval_InitGIL
      Src: /src/cpython/Python/pylifecycle.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tstate
    - gil
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 596
    functionName: init_interp_create_gil
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyEval_FiniGIL
    - _PyGILState_SetTstate
    - _PyEval_InitGIL
    linkageType: ''
    returnType: void
    signature: void init_interp_create_gil(PyThreadState *tstate, int gil)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/pylifecycle.c:601,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/pylifecycle.c:604,1
    - Dst: RARE_EVENT_INTERP_INC
      Src: /src/cpython/Python/pylifecycle.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - event
    - dict
    - key
    - new_value
    argTypes:
    - PyDict_WatchEvent
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 609
    functionName: builtins_dict_watcher
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - RARE_EVENT_INTERP_INC
    - _PyInterpreterState_GET
    - _Py_Executors_InvalidateAll
    linkageType: ''
    returnType: int
    signature: int builtins_dict_watcher(PyDict_WatchEvent event, PyObject *dict,
      PyObject *key, PyObject *new_value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_New
      Src: /src/cpython/Python/pylifecycle.c:618,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:619,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:622,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:623,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pylifecycle.c:623,1
    - Dst: _PyInterpreterState_SetWhence
      Src: /src/cpython/Python/pylifecycle.c:624,1
    - Dst: _PyConfig_Copy
      Src: /src/cpython/Python/pylifecycle.c:627,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:628,1
    - Dst: _PyGILState_Init
      Src: /src/cpython/Python/pylifecycle.c:633,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:634,1
    - Dst: init_interp_settings
      Src: /src/cpython/Python/pylifecycle.c:643,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:644,1
    - Dst: _PyObject_InitState
      Src: /src/cpython/Python/pylifecycle.c:650,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:651,1
    - Dst: _PyMem_init_obmalloc
      Src: /src/cpython/Python/pylifecycle.c:658,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/pylifecycle.c:659,1
    - Dst: _PyTraceMalloc_Init
      Src: /src/cpython/Python/pylifecycle.c:662,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:663,1
    - Dst: _PyThreadState_New
      Src: /src/cpython/Python/pylifecycle.c:667,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:670,1
    - Dst: _PyThreadState_Bind
      Src: /src/cpython/Python/pylifecycle.c:673,1
    - Dst: init_interp_create_gil
      Src: /src/cpython/Python/pylifecycle.c:675,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:678,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - runtime
    - src_config
    - tstate_p
    argTypes:
    - _PyRuntimeState*
    - PyConfig*
    - PyThreadState**
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (_Py_IsMainInterpreter(interp))
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 679
      start: 611
    functionDepth: 6
    functionLinenumber: 611
    functionLinenumberEnd: 679
    functionName: pycore_create_interpreter
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - init_interp_settings
    - _PyStatus_NO_MEMORY
    - _Py_IsMainInterpreter
    - init_interp_create_gil
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - _PyThreadState_New
    - _PyTraceMalloc_Init
    - _PyInterpreterState_SetWhence
    - _PyConfig_Copy
    - _PyInterpreterState_New
    - _PyMem_init_obmalloc
    - _PyObject_InitState
    - _PyStatus_ERR
    - _PyThreadState_Bind
    - _PyGILState_Init
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pycore_create_interpreter(_PyRuntimeState *runtime,\n                          const
      PyConfig *src_config,\n                          PyThreadState **tstate_p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_InitState
      Src: /src/cpython/Python/pylifecycle.c:687,1
    - Dst: _PyUnicode_InitGlobalObjects
      Src: /src/cpython/Python/pylifecycle.c:689,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:690,1
    - Dst: _PyUnicode_InitState
      Src: /src/cpython/Python/pylifecycle.c:694,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pylifecycle.c:696,1
    - Dst: _Py_GetConstant_Init
      Src: /src/cpython/Python/pylifecycle.c:697,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 682
    functionDepth: 12
    functionLinenumber: 682
    functionLinenumberEnd: 701
    functionName: pycore_init_global_objects
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_InitGlobalObjects
    - _Py_IsMainInterpreter
    - _PyStatus_OK
    - _PyUnicode_InitState
    - _PyStatus_EXCEPTION
    - _PyFloat_InitState
    - _Py_GetConstant_Init
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pycore_init_global_objects(PyInterpreterState *interp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyTypes_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:709,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:710,1
    - Dst: _PyLong_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:714,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:715,1
    - Dst: _PyUnicode_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:719,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:720,1
    - Dst: _PyFloat_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:724,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:725,1
    - Dst: _PyExc_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:729,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:730,1
    - Dst: _PyExc_InitGlobalObjects
      Src: /src/cpython/Python/pylifecycle.c:733,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:734,1
    - Dst: _PyExc_InitState
      Src: /src/cpython/Python/pylifecycle.c:738,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:739,1
    - Dst: _PyErr_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:743,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:744,1
    - Dst: _PyContext_Init
      Src: /src/cpython/Python/pylifecycle.c:748,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:749,1
    - Dst: _PyXI_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:753,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:754,1
    - Dst: _PyInterpolation_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:758,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:759,1
    - Dst: _PyDateTime_InitTypes
      Src: /src/cpython/Python/pylifecycle.c:763,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:764,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:768,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 704
    functionDepth: 21
    functionLinenumber: 704
    functionLinenumberEnd: 769
    functionName: pycore_init_types
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_InitTypes
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - _PyTypes_InitTypes
    - _PyContext_Init
    - _PyInterpolation_InitTypes
    - _PyExc_InitTypes
    - _PyExc_InitGlobalObjects
    - _PyFloat_InitTypes
    - _PyLong_InitTypes
    - _PyStatus_ERR
    - _PyExc_InitState
    - _PyXI_InitTypes
    - _PyDateTime_InitTypes
    - _PyErr_InitTypes
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pycore_init_types(PyInterpreterState *interp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyBuiltin_Init
      Src: /src/cpython/Python/pylifecycle.c:776,1
    - Dst: _PyImport_GetModules
      Src: /src/cpython/Python/pylifecycle.c:781,1
    - Dst: _PyImport_FixupBuiltin
      Src: /src/cpython/Python/pylifecycle.c:782,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/pylifecycle.c:786,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pylifecycle.c:790,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/pylifecycle.c:792,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:792,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/pylifecycle.c:798,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:798,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/pylifecycle.c:804,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:804,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/pylifecycle.c:809,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:809,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:821,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/pylifecycle.c:824,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:824,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/pylifecycle.c:830,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:830,1
    - Dst: _PyBuiltins_AddExceptions
      Src: /src/cpython/Python/pylifecycle.c:836,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:837,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Python/pylifecycle.c:840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:844,1
    - Dst: _PyImport_InitDefaultImportFunc
      Src: /src/cpython/Python/pylifecycle.c:846,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:850,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/pylifecycle.c:850,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:851,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:854,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:855,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (interp->common_consts[i] != NULL)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 856
      start: 771
    functionDepth: 16
    functionLinenumber: 771
    functionLinenumberEnd: 856
    functionName: pycore_init_builtins
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyImport_GetModules
    - _PyType_Lookup
    - PyDict_GetItemWithError
    - _PyStatus_OK
    - Py_DECREF
    - Py_XDECREF
    - _PyImport_FixupBuiltin
    - _Py_ID
    - _PyStatus_ERR
    - PyDict_Copy
    - Py_NewRef
    - PyModule_GetDict
    - _PyBuiltins_AddExceptions
    - _PyImport_InitDefaultImportFunc
    - _PyBuiltin_Init
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pycore_init_builtins(PyThreadState *tstate)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_InitializeRecursionLimits
      Src: /src/cpython/Python/pylifecycle.c:864,1
    - Dst: pycore_init_global_objects
      Src: /src/cpython/Python/pylifecycle.c:873,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:874,1
    - Dst: _PyCode_Init
      Src: /src/cpython/Python/pylifecycle.c:878,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:879,1
    - Dst: _PyDtoa_Init
      Src: /src/cpython/Python/pylifecycle.c:883,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:884,1
    - Dst: _PyGC_Init
      Src: /src/cpython/Python/pylifecycle.c:889,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:890,1
    - Dst: pycore_init_types
      Src: /src/cpython/Python/pylifecycle.c:894,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:895,1
    - Dst: _PyWarnings_InitState
      Src: /src/cpython/Python/pylifecycle.c:899,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:900,1
    - Dst: _PyAtExit_Init
      Src: /src/cpython/Python/pylifecycle.c:903,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:904,1
    - Dst: _PySys_Create
      Src: /src/cpython/Python/pylifecycle.c:908,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:909,1
    - Dst: pycore_init_builtins
      Src: /src/cpython/Python/pylifecycle.c:913,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:914,1
    - Dst: _PyXI_Init
      Src: /src/cpython/Python/pylifecycle.c:918,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:919,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:923,1
    - Dst: _PyImport_InitCore
      Src: /src/cpython/Python/pylifecycle.c:925,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:926,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:932,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 859
    functionDepth: 22
    functionLinenumber: 859
    functionLinenumberEnd: 934
    functionName: pycore_interp_init
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyStatus_EXCEPTION
    - _PyXI_Init
    - _PyStatus_ERR
    - pycore_init_global_objects
    - _PyGC_Init
    - _Py_InitializeRecursionLimits
    - _PyAtExit_Init
    - pycore_init_builtins
    - _PyInterpreterState_GetConfig
    - _PyImport_InitCore
    - pycore_init_types
    - _PyCode_Init
    - _PyDtoa_Init
    - _PySys_Create
    - _PyWarnings_InitState
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pycore_interp_init(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pycore_init_runtime
      Src: /src/cpython/Python/pylifecycle.c:942,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:943,1
    - Dst: pycore_create_interpreter
      Src: /src/cpython/Python/pylifecycle.c:948,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:949,1
    - Dst: pycore_interp_init
      Src: /src/cpython/Python/pylifecycle.c:954,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:955,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - runtime
    - tstate_p
    - config
    argTypes:
    - _PyRuntimeState*
    - PyThreadState**
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 937
    functionDepth: 23
    functionLinenumber: 937
    functionLinenumberEnd: 962
    functionName: pyinit_config
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - pycore_interp_init
    - _PyStatus_EXCEPTION
    - pycore_create_interpreter
    - pycore_init_runtime
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pyinit_config(_PyRuntimeState *runtime,\n              PyThreadState
      **tstate_p,\n              const PyConfig *config)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:971,1
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Python/pylifecycle.c:974,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:975,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:982,1
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/cpython/Python/pylifecycle.c:991,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:992,1
    - Dst: _PyPreConfig_Read
      Src: /src/cpython/Python/pylifecycle.c:996,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:997,1
    - Dst: _PyPreConfig_Write
      Src: /src/cpython/Python/pylifecycle.c:1001,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1002,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:1008,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - src_config
    - args
    argTypes:
    - PyPreConfig*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 965
    functionDepth: 9
    functionLinenumber: 965
    functionLinenumberEnd: 1009
    functionName: _Py_PreInitializeFromPyArgv
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _PyStatus_OK
    - _PyPreConfig_Write
    - _PyStatus_EXCEPTION
    - _PyPreConfig_Read
    - _PyStatus_ERR
    - _PyPreConfig_InitFromPreConfig
    - _PyRuntime_Initialize
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _Py_PreInitializeFromPyArgv(const PyPreConfig *src_config,
      const _PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/cpython/Python/pylifecycle.c:1016,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: 1017
      start: 1012
    functionDepth: 10
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: Py_PreInitializeFromBytesArgs
    functionSourceFile: /src/cpython/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/cpython/Python/pylifecycle.c:1024,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: 1025
      start: 1020
    functionDepth: 10
    functionLinenumber: 1020
    functionLinenumberEnd: 1025
    functionName: Py_PreInitializeFromArgs
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    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/cpython/Python/pylifecycle.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src_config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1028
    functionDepth: 10
    functionLinenumber: 1028
    functionLinenumberEnd: 1032
    functionName: Py_PreInitialize
    functionSourceFile: /src/cpython/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/cpython/Python/pylifecycle.c:1039,1
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Python/pylifecycle.c:1041,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1042,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:1049,1
    - Dst: _PyPreConfig_InitFromConfig
      Src: /src/cpython/Python/pylifecycle.c:1054,1
    - Dst: Py_PreInitialize
      Src: /src/cpython/Python/pylifecycle.c:1057,1
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/cpython/Python/pylifecycle.c:1064,1
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/cpython/Python/pylifecycle.c:1067,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - config
    - args
    argTypes:
    - PyConfig*
    - _PyArgv*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 1038
        line_start: 1038
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 1069
      start: 1035
    functionDepth: 11
    functionLinenumber: 1035
    functionLinenumberEnd: 1069
    functionName: _Py_PreInitializeFromConfig
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 5
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - _PyPreConfig_InitFromConfig
    - Py_PreInitialize
    - _Py_PreInitializeFromPyArgv
    - _PyRuntime_Initialize
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus _Py_PreInitializeFromConfig(const PyConfig *config,\n                            const
      _PyArgv *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/cpython/Python/pylifecycle.c:1096,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1097,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Python/pylifecycle.c:1102,1
    - Dst: _PyConfig_Copy
      Src: /src/cpython/Python/pylifecycle.c:1104,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1105,1
    - Dst: _PyConfig_Read
      Src: /src/cpython/Python/pylifecycle.c:1111,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1112,1
    - Dst: pyinit_config
      Src: /src/cpython/Python/pylifecycle.c:1117,1
    - Dst: pyinit_core_reconfigure
      Src: /src/cpython/Python/pylifecycle.c:1120,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1122,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/pylifecycle.c:1127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - runtime
    - src_config
    - tstate_p
    argTypes:
    - _PyRuntimeState*
    - PyConfig*
    - PyThreadState**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1089
    functionDepth: 24
    functionLinenumber: 1089
    functionLinenumberEnd: 1129
    functionName: pyinit_core
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_PreInitializeFromConfig
    - _PyConfig_Read
    - _PyStatus_EXCEPTION
    - PyConfig_Clear
    - pyinit_core_reconfigure
    - PyConfig_InitPythonConfig
    - _PyConfig_Copy
    - pyinit_config
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pyinit_core(_PyRuntimeState *runtime,\n            const
      PyConfig *src_config,\n            PyThreadState **tstate_p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interpreter_update_config
      Src: /src/cpython/Python/pylifecycle.c:1138,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1139,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1135
    functionDepth: 17
    functionLinenumber: 1135
    functionLinenumberEnd: 1142
    functionName: pyinit_main_reconfigure
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - interpreter_update_config
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pyinit_main_reconfigure(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:1150,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/pylifecycle.c:1156,1
    - Dst: wcslen
      Src: /src/cpython/Python/pylifecycle.c:1158,1
    - Dst: fprintf
      Src: /src/cpython/Python/pylifecycle.c:1161,1
    - Dst: PyImport_Import
      Src: /src/cpython/Python/pylifecycle.c:1164,1
    - Dst: fprintf
      Src: /src/cpython/Python/pylifecycle.c:1166,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/pylifecycle.c:1167,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:1169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1146
    functionDepth: 12
    functionLinenumber: 1146
    functionLinenumberEnd: 1172
    functionName: run_presite
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyImport_Import
    - Py_DECREF
    - _PyErr_Print
    - _PyInterpreterState_GetConfig
    - wcslen
    - PyUnicode_FromWideChar
    - fprintf
    linkageType: ''
    returnType: void
    signature: void run_presite(PyThreadState *tstate)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:1179,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/pylifecycle.c:1179,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pylifecycle.c:1182,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:1184,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:1195,1
    - Dst: _PyConfig_InitImportConfig
      Src: /src/cpython/Python/pylifecycle.c:1199,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1200,1
    - Dst: interpreter_update_config
      Src: /src/cpython/Python/pylifecycle.c:1204,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1205,1
    - Dst: _PyImport_InitExternal
      Src: /src/cpython/Python/pylifecycle.c:1208,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1209,1
    - Dst: _PyFaulthandler_Init
      Src: /src/cpython/Python/pylifecycle.c:1215,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1216,1
    - Dst: _PyUnicode_InitEncodings
      Src: /src/cpython/Python/pylifecycle.c:1221,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1222,1
    - Dst: _PySignal_Init
      Src: /src/cpython/Python/pylifecycle.c:1227,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1228,1
    - Dst: _PyTraceMalloc_Start
      Src: /src/cpython/Python/pylifecycle.c:1232,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1233,1
    - Dst: _PyPerfTrampoline_SetCallbacks
      Src: /src/cpython/Python/pylifecycle.c:1246,1
    - Dst: _PyPerfTrampoline_Init
      Src: /src/cpython/Python/pylifecycle.c:1247,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1248,1
    - Dst: init_sys_streams
      Src: /src/cpython/Python/pylifecycle.c:1254,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1255,1
    - Dst: init_set_builtins_open
      Src: /src/cpython/Python/pylifecycle.c:1259,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1260,1
    - Dst: init_android_streams
      Src: /src/cpython/Python/pylifecycle.c:1265,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1266,1
    - Dst: init_apple_streams
      Src: /src/cpython/Python/pylifecycle.c:1272,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1273,1
    - Dst: run_presite
      Src: /src/cpython/Python/pylifecycle.c:1280,1
    - Dst: add_main_module
      Src: /src/cpython/Python/pylifecycle.c:1283,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1284,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/pylifecycle.c:1291,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1292,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/pylifecycle.c:1294,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/pylifecycle.c:1295,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/pylifecycle.c:1297,1
    - Dst: fprintf
      Src: /src/cpython/Python/pylifecycle.c:1299,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/pylifecycle.c:1300,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:1302,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:1304,1
    - Dst: init_import_site
      Src: /src/cpython/Python/pylifecycle.c:1310,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1311,1
    - Dst: emit_stderr_warning_for_legacy_locale
      Src: /src/cpython/Python/pylifecycle.c:1318,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/pylifecycle.c:1330,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/pylifecycle.c:1340,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/pylifecycle.c:1356,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1362,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1363,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/pylifecycle.c:1365,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:1365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1367,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1368,1
    - Dst: PyList_Insert
      Src: /src/cpython/Python/pylifecycle.c:1370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1371,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1373,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/pylifecycle.c:1380,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1381,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:1384,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/pylifecycle.c:1384,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:1386,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 133
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1383
        line_start: 1383
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1178
        line_start: 1178
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 1387
      start: 1176
    functionDepth: 20
    functionLinenumber: 1176
    functionLinenumberEnd: 1387
    functionName: init_interp_main
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_GetItemWithError
    - _PyStatus_EXCEPTION
    - PyList_Check
    - PyImport_ImportModule
    - _PyPerfTrampoline_SetCallbacks
    - _PyUnicode_InitEncodings
    - _PyPerfTrampoline_Init
    - init_android_streams
    - _PyImport_InitExternal
    - add_main_module
    - PyDict_Watch
    - _PyConfig_InitImportConfig
    - fprintf
    - init_sys_streams
    - _PySignal_Init
    - init_import_site
    - _PyStatus_OK
    - Py_DECREF
    - _PyErr_Print
    - _Py_ID
    - emit_stderr_warning_for_legacy_locale
    - PyUnicode_FromWideChar
    - _PyStatus_ERR
    - PyList_Insert
    - PyErr_WarnEx
    - _PyTraceMalloc_Start
    - PySys_GetOptionalAttrString
    - _Py_IsMainInterpreter
    - interpreter_update_config
    - Py_GETENV
    - _PyInterpreterState_GetConfig
    - _PyFaulthandler_Init
    - run_presite
    - init_apple_streams
    - PyList_Size
    - init_set_builtins_open
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_interp_main(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1406,1
    - Dst: pyinit_main_reconfigure
      Src: /src/cpython/Python/pylifecycle.c:1410,1
    - Dst: init_interp_main
      Src: /src/cpython/Python/pylifecycle.c:1413,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1414,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:1417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1401
    functionDepth: 21
    functionLinenumber: 1401
    functionLinenumberEnd: 1418
    functionName: pyinit_main
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - pyinit_main_reconfigure
    - _PyStatus_ERR
    - init_interp_main
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pyinit_main(PyThreadState *tstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:1425,1
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Python/pylifecycle.c:1430,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1431,1
    - Dst: pyinit_core
      Src: /src/cpython/Python/pylifecycle.c:1437,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1438,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:1441,1
    - Dst: pyinit_main
      Src: /src/cpython/Python/pylifecycle.c:1444,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1445,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:1450,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1421
    functionDepth: 25
    functionLinenumber: 1421
    functionLinenumberEnd: 1451
    functionName: Py_InitializeFromConfig
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 5
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    - pyinit_main
    - _PyInterpreterState_GetConfig
    - pyinit_core
    - _PyStatus_ERR
    - _PyRuntime_Initialize
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus Py_InitializeFromConfig(const PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Python/pylifecycle.c:1459,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1460,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Python/pylifecycle.c:1461,1
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/cpython/Python/pylifecycle.c:1471,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Python/pylifecycle.c:1475,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/pylifecycle.c:1476,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:1477,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Python/pylifecycle.c:1478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - install_sigs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1454
    functionDepth: 26
    functionLinenumber: 1454
    functionLinenumberEnd: 1480
    functionName: Py_InitializeEx
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyConfig_InitCompatConfig
    - _PyStatus_EXCEPTION
    - Py_ExitStatusException
    - PyConfig_Clear
    - _PyRuntime_Initialize
    - Py_InitializeFromConfig
    linkageType: ''
    returnType: void
    signature: void Py_InitializeEx(int install_sigs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_InitializeEx
      Src: /src/cpython/Python/pylifecycle.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1482
    functionDepth: 27
    functionLinenumber: 1482
    functionLinenumberEnd: 1486
    functionName: Py_Initialize
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - Py_InitializeEx
    linkageType: ''
    returnType: void
    signature: void Py_Initialize(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pylifecycle.c:1513,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pylifecycle.c:1515,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1516,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/pylifecycle.c:1522,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1523,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pylifecycle.c:1531,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/pylifecycle.c:1534,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1535,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pylifecycle.c:1539,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pylifecycle.c:1541,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1545,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - tstate
    - verbose
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1489
    functionDepth: 18
    functionLinenumber: 1489
    functionLinenumberEnd: 1547
    functionName: finalize_modules_delete_special
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_FormatUnraisable
    - PyDict_GetItemStringRef
    - PySys_WriteStderr
    - Py_NewRef
    - PyDict_SetItemString
    - _PySys_ClearAttrString
    linkageType: ''
    returnType: void
    signature: void finalize_modules_delete_special(PyThreadState *tstate, int verbose)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/pylifecycle.c:1553,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1555,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/pylifecycle.c:1585,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/pylifecycle.c:1588,1
    - Dst: CLEAR_MODULE
      Src: /src/cpython/Python/pylifecycle.c:1589,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/pylifecycle.c:1593,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1595,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/pylifecycle.c:1599,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/pylifecycle.c:1600,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1602,1
    - Dst: CLEAR_MODULE
      Src: /src/cpython/Python/pylifecycle.c:1605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1607,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pylifecycle.c:1609,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1612,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - modules
    - verbose
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1550
    functionDepth: 18
    functionLinenumber: 1550
    functionLinenumberEnd: 1619
    functionName: finalize_remove_modules
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyDict_CheckExact
    - CLEAR_MODULE
    - PyErr_Occurred
    - PyObject_GetIter
    - PyObject_GetItem
    - PyDict_Next
    - PyIter_Next
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      finalize_remove_modules(PyObject *modules, int verbose)'
  - 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: 1573
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1573
    functionName: STORE_MODULE_WEAKREF
    functionSourceFile: /src/cpython/Python/pylifecycle.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: 1584
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1584
    functionName: CLEAR_MODULE
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_MODULE(name, mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/pylifecycle.c:1625,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/pylifecycle.c:1626,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/pylifecycle.c:1629,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:1629,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - modules
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1622
    functionDepth: 18
    functionLinenumber: 1622
    functionLinenumberEnd: 1633
    functionName: finalize_clear_modules_dict
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    - PyDict_CheckExact
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void finalize_clear_modules_dict(PyObject *modules)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/cpython/Python/pylifecycle.c:1640,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1642,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/pylifecycle.c:1644,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/pylifecycle.c:1645,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1646,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:1648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1636
    functionDepth: 18
    functionLinenumber: 1636
    functionLinenumberEnd: 1649
    functionName: finalize_restore_builtins
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyDict_Clear
    - PyDict_Copy
    - PyErr_FormatUnraisable
    - PyDict_Update
    linkageType: ''
    returnType: void
    signature: void finalize_restore_builtins(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/pylifecycle.c:1657,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/pylifecycle.c:1658,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/pylifecycle.c:1659,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Python/pylifecycle.c:1660,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/pylifecycle.c:1660,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:1664,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/pylifecycle.c:1664,1
    - Dst: _PyModule_GetDict
      Src: /src/cpython/Python/pylifecycle.c:1665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1667,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pylifecycle.c:1670,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/pylifecycle.c:1671,1
    - Dst: _PyModule_Clear
      Src: /src/cpython/Python/pylifecycle.c:1673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - interp
    - weaklist
    - verbose
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyModule_Check(mod))
      pos:
        line_end: 1663
        line_start: 1663
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 1676
      start: 1652
    functionDepth: 17
    functionLinenumber: 1652
    functionLinenumberEnd: 1676
    functionName: finalize_modules_clear_weaklist
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - _PyWeakref_GET_REF
    - PySys_FormatStderr
    - PyModule_Check
    - PyUnicode_Check
    - _PyModule_GetDict
    - _PyModule_Clear
    - assert
    linkageType: ''
    returnType: void
    signature: "void finalize_modules_clear_weaklist(PyInterpreterState *interp,\n
      \                               PyObject *weaklist, int verbose)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/pylifecycle.c:1684,1
    - Dst: _PyModule_ClearDict
      Src: /src/cpython/Python/pylifecycle.c:1686,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/pylifecycle.c:1690,1
    - Dst: _PyModule_ClearDict
      Src: /src/cpython/Python/pylifecycle.c:1692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - interp
    - verbose
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1679
    functionDepth: 17
    functionLinenumber: 1679
    functionLinenumberEnd: 1693
    functionName: finalize_clear_sys_builtins_dict
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyModule_ClearDict
    - PySys_FormatStderr
    linkageType: ''
    returnType: void
    signature: void finalize_clear_sys_builtins_dict(PyInterpreterState *interp, int
      verbose)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/pylifecycle.c:1706,1
    - Dst: PyDict_Unwatch
      Src: /src/cpython/Python/pylifecycle.c:1710,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:1712,1
    - Dst: _PyImport_GetModules
      Src: /src/cpython/Python/pylifecycle.c:1714,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:1719,1
    - Dst: finalize_modules_delete_special
      Src: /src/cpython/Python/pylifecycle.c:1728,1
    - Dst: finalize_remove_modules
      Src: /src/cpython/Python/pylifecycle.c:1737,1
    - Dst: finalize_clear_modules_dict
      Src: /src/cpython/Python/pylifecycle.c:1740,1
    - Dst: finalize_restore_builtins
      Src: /src/cpython/Python/pylifecycle.c:1744,1
    - Dst: _PyGC_CollectNoFail
      Src: /src/cpython/Python/pylifecycle.c:1747,1
    - Dst: _PyGC_DumpShutdownStats
      Src: /src/cpython/Python/pylifecycle.c:1751,1
    - Dst: finalize_modules_clear_weaklist
      Src: /src/cpython/Python/pylifecycle.c:1768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1769,1
    - Dst: finalize_clear_sys_builtins_dict
      Src: /src/cpython/Python/pylifecycle.c:1773,1
    - Dst: _PyImport_ClearModulesByIndex
      Src: /src/cpython/Python/pylifecycle.c:1779,1
    - Dst: _PyImport_ClearModules
      Src: /src/cpython/Python/pylifecycle.c:1784,1
    - Dst: _PyGC_CollectNoFail
      Src: /src/cpython/Python/pylifecycle.c:1787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1698
    functionDepth: 19
    functionLinenumber: 1698
    functionLinenumberEnd: 1788
    functionName: finalize_modules
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyImport_GetModules
    - _PyGC_DumpShutdownStats
    - Py_DECREF
    - finalize_clear_sys_builtins_dict
    - _PyImport_ClearModules
    - finalize_remove_modules
    - _Py_Executors_InvalidateAll
    - _PyInterpreterState_GetConfig
    - finalize_modules_delete_special
    - finalize_restore_builtins
    - _PyGC_CollectNoFail
    - finalize_clear_modules_dict
    - _PyImport_ClearModulesByIndex
    - PyDict_Unwatch
    - PyErr_Clear
    - finalize_modules_clear_weaklist
    linkageType: ''
    returnType: void
    signature: void finalize_modules(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/pylifecycle.c:1797,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:1799,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/pylifecycle.c:1802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:1803,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:1805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fobj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1793
    functionDepth: 9
    functionLinenumber: 1793
    functionLinenumberEnd: 1807
    functionName: file_is_closed
    functionSourceFile: /src/cpython/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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pylifecycle.c:1816,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:1816,1
    - Dst: file_is_closed
      Src: /src/cpython/Python/pylifecycle.c:1819,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/pylifecycle.c:1820,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:1825,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:1827,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pylifecycle.c:1829,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:1829,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:1830,1
    - Dst: file_is_closed
      Src: /src/cpython/Python/pylifecycle.c:1833,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/pylifecycle.c:1834,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:1835,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:1839,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1810
    functionDepth: 18
    functionLinenumber: 1810
    functionLinenumberEnd: 1842
    functionName: flush_std_files
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_Clear
    - _Py_ID
    - PyErr_FormatUnraisable
    - _PyFile_Flush
    - file_is_closed
    - PySys_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int flush_std_files(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTypes_FiniExtTypes
      Src: /src/cpython/Python/pylifecycle.c:1862,1
    - Dst: _PyUnicode_FiniTypes
      Src: /src/cpython/Python/pylifecycle.c:1863,1
    - Dst: _PySys_FiniTypes
      Src: /src/cpython/Python/pylifecycle.c:1864,1
    - Dst: _PyXI_FiniTypes
      Src: /src/cpython/Python/pylifecycle.c:1865,1
    - Dst: _PyExc_Fini
      Src: /src/cpython/Python/pylifecycle.c:1866,1
    - Dst: _PyFloat_FiniType
      Src: /src/cpython/Python/pylifecycle.c:1867,1
    - Dst: _PyLong_FiniTypes
      Src: /src/cpython/Python/pylifecycle.c:1868,1
    - Dst: _PyThread_FiniType
      Src: /src/cpython/Python/pylifecycle.c:1869,1
    - Dst: _PyErr_FiniTypes
      Src: /src/cpython/Python/pylifecycle.c:1872,1
    - Dst: _PyTypes_FiniTypes
      Src: /src/cpython/Python/pylifecycle.c:1873,1
    - Dst: _PyTypes_Fini
      Src: /src/cpython/Python/pylifecycle.c:1875,1
    - Dst: _PyObject_FinalizeUniqueIdPool
      Src: /src/cpython/Python/pylifecycle.c:1877,1
    - Dst: _PyCode_Fini
      Src: /src/cpython/Python/pylifecycle.c:1880,1
    - Dst: _PyUnicode_ClearInterned
      Src: /src/cpython/Python/pylifecycle.c:1884,1
    - Dst: _PyUnicode_Fini
      Src: /src/cpython/Python/pylifecycle.c:1886,1
    - Dst: _Py_freelists_GET
      Src: /src/cpython/Python/pylifecycle.c:1891,1
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/pylifecycle.c:1892,1
    - Dst: _PyStaticObjects_CheckRefcnt
      Src: /src/cpython/Python/pylifecycle.c:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1859
    functionDepth: 12
    functionLinenumber: 1859
    functionLinenumberEnd: 1898
    functionName: finalize_interp_types
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyFloat_FiniType
    - _PyUnicode_FiniTypes
    - _PyUnicode_Fini
    - _PyCode_Fini
    - _Py_freelists_GET
    - _PyThread_FiniType
    - _PySys_FiniTypes
    - _PyErr_FiniTypes
    - _PyTypes_FiniTypes
    - _PyStaticObjects_CheckRefcnt
    - _PyUnicode_ClearInterned
    - _PyObject_FinalizeUniqueIdPool
    - _PyObject_ClearFreeLists
    - _PyTypes_Fini
    - _PyXI_FiniTypes
    - _PyTypes_FiniExtTypes
    - _PyLong_FiniTypes
    - _PyExc_Fini
    linkageType: ''
    returnType: void
    signature: void finalize_interp_types(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pylifecycle.c:1904,1
    - Dst: _PyXI_Fini
      Src: /src/cpython/Python/pylifecycle.c:1906,1
    - Dst: _PyExc_ClearExceptionGroupType
      Src: /src/cpython/Python/pylifecycle.c:1907,1
    - Dst: _Py_clear_generic_types
      Src: /src/cpython/Python/pylifecycle.c:1908,1
    - Dst: _PyTypes_FiniCachedDescriptors
      Src: /src/cpython/Python/pylifecycle.c:1909,1
    - Dst: _PyInterpreterState_Clear
      Src: /src/cpython/Python/pylifecycle.c:1912,1
    - Dst: _PySys_ClearAuditHooks
      Src: /src/cpython/Python/pylifecycle.c:1918,1
    - Dst: _Py_HashRandomization_Fini
      Src: /src/cpython/Python/pylifecycle.c:1922,1
    - Dst: _PyArg_Fini
      Src: /src/cpython/Python/pylifecycle.c:1923,1
    - Dst: _Py_ClearFileSystemEncoding
      Src: /src/cpython/Python/pylifecycle.c:1924,1
    - Dst: _PyPerfTrampoline_Fini
      Src: /src/cpython/Python/pylifecycle.c:1925,1
    - Dst: _PyPerfTrampoline_FreeArenas
      Src: /src/cpython/Python/pylifecycle.c:1926,1
    - Dst: finalize_interp_types
      Src: /src/cpython/Python/pylifecycle.c:1929,1
    - Dst: _PyDtoa_Fini
      Src: /src/cpython/Python/pylifecycle.c:1932,1
    - Dst: _PyMem_FiniDelayed
      Src: /src/cpython/Python/pylifecycle.c:1935,1
    - Dst: _PyThreadState_ClearMimallocHeaps
      Src: /src/cpython/Python/pylifecycle.c:1939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1901
    functionDepth: 13
    functionLinenumber: 1901
    functionLinenumberEnd: 1940
    functionName: finalize_interp_clear
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Clear
    - _Py_IsMainInterpreter
    - _Py_HashRandomization_Fini
    - _PySys_ClearAuditHooks
    - _PyPerfTrampoline_FreeArenas
    - _PyPerfTrampoline_Fini
    - _Py_ClearFileSystemEncoding
    - _Py_clear_generic_types
    - _PyArg_Fini
    - _PyDtoa_Fini
    - _PyMem_FiniDelayed
    - _PyTypes_FiniCachedDescriptors
    - _PyExc_ClearExceptionGroupType
    - _PyThreadState_ClearMimallocHeaps
    - finalize_interp_types
    - _PyXI_Fini
    linkageType: ''
    returnType: void
    signature: void finalize_interp_clear(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGILState_Fini
      Src: /src/cpython/Python/pylifecycle.c:1947,1
    - Dst: PyInterpreterState_Delete
      Src: /src/cpython/Python/pylifecycle.c:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1943
    functionDepth: 5
    functionLinenumber: 1943
    functionLinenumberEnd: 1956
    functionName: finalize_interp_delete
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyGILState_Fini
    - PyInterpreterState_Delete
    linkageType: ''
    returnType: void
    signature: void finalize_interp_delete(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:1971,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:1972,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/pylifecycle.c:1973,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:1974,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:1976,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/pylifecycle.c:1977,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/pylifecycle.c:1984,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pylifecycle.c:1992,1
    - Dst: _PyThreadState_New
      Src: /src/cpython/Python/pylifecycle.c:1996,1
    - Dst: _PyThreadState_Bind
      Src: /src/cpython/Python/pylifecycle.c:1998,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/pylifecycle.c:1999,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:2007,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (main_tstate != NULL)
      pos:
        line_end: 1970
        line_start: 1970
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (main_tstate->thread_id == runtime->main_thread)
      pos:
        line_end: 1971
        line_start: 1971
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (main_tstate->interp == main_interp)
      pos:
        line_end: 1973
        line_start: 1973
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (main_tstate != NULL)
      pos:
        line_end: 2006
        line_start: 2006
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 2012
      start: 1967
    functionDepth: 6
    functionLinenumber: 1967
    functionLinenumberEnd: 2012
    functionName: resolve_final_tstate
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _Py_IsMainThread
    - _PyThreadState_New
    - _PyThreadState_GET
    - PyThreadState_Swap
    - _PyInterpreterState_Main
    - _PyThreadState_Bind
    - assert
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      resolve_final_tstate(_PyRuntimeState *runtime)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: resolve_final_tstate
      Src: /src/cpython/Python/pylifecycle.c:2025,1
    - Dst: wait_for_thread_shutdown
      Src: /src/cpython/Python/pylifecycle.c:2031,1
    - Dst: _Py_FinishPendingCalls
      Src: /src/cpython/Python/pylifecycle.c:2034,1
    - Dst: _PyAtExit_Call
      Src: /src/cpython/Python/pylifecycle.c:2046,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:2048,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:2048,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Python/pylifecycle.c:2064,1
    - Dst: _PyInterpreterState_SetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:2068,1
    - Dst: _PyRuntimeState_SetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:2069,1
    - Dst: _PyThreadState_RemoveExcept
      Src: /src/cpython/Python/pylifecycle.c:2080,1
    - Dst: _PyThreadState_SetShuttingDown
      Src: /src/cpython/Python/pylifecycle.c:2082,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Python/pylifecycle.c:2084,1
    - Dst: _PyThreadState_DeleteList
      Src: /src/cpython/Python/pylifecycle.c:2091,1
    - Dst: flush_std_files
      Src: /src/cpython/Python/pylifecycle.c:2110,1
    - Dst: _PySignal_Fini
      Src: /src/cpython/Python/pylifecycle.c:2115,1
    - Dst: PyGC_Collect
      Src: /src/cpython/Python/pylifecycle.c:2129,1
    - Dst: _PyImport_FiniExternal
      Src: /src/cpython/Python/pylifecycle.c:2132,1
    - Dst: finalize_modules
      Src: /src/cpython/Python/pylifecycle.c:2133,1
    - Dst: finalize_subinterpreters
      Src: /src/cpython/Python/pylifecycle.c:2136,1
    - Dst: _PyEval_Fini
      Src: /src/cpython/Python/pylifecycle.c:2139,1
    - Dst: flush_std_files
      Src: /src/cpython/Python/pylifecycle.c:2142,1
    - Dst: _PyGC_CollectIfEnabled
      Src: /src/cpython/Python/pylifecycle.c:2162,1
    - Dst: _PyTraceMalloc_Fini
      Src: /src/cpython/Python/pylifecycle.c:2167,1
    - Dst: _PyImport_FiniCore
      Src: /src/cpython/Python/pylifecycle.c:2171,1
    - Dst: _PyImport_Fini
      Src: /src/cpython/Python/pylifecycle.c:2172,1
    - Dst: _PyFaulthandler_Fini
      Src: /src/cpython/Python/pylifecycle.c:2175,1
    - Dst: _PyHash_Fini
      Src: /src/cpython/Python/pylifecycle.c:2178,1
    - Dst: _Py_wfopen
      Src: /src/cpython/Python/pylifecycle.c:2189,1
    - Dst: fprintf
      Src: /src/cpython/Python/pylifecycle.c:2191,1
    - Dst: _Py_PrintReferences
      Src: /src/cpython/Python/pylifecycle.c:2196,1
    - Dst: _Py_PrintReferences
      Src: /src/cpython/Python/pylifecycle.c:2200,1
    - Dst: finalize_interp_clear
      Src: /src/cpython/Python/pylifecycle.c:2218,1
    - Dst: _Py_PrintReferenceAddresses
      Src: /src/cpython/Python/pylifecycle.c:2226,1
    - Dst: _Py_PrintReferenceAddresses
      Src: /src/cpython/Python/pylifecycle.c:2229,1
    - Dst: fclose
      Src: /src/cpython/Python/pylifecycle.c:2230,1
    - Dst: _PyObject_DebugMallocStats
      Src: /src/cpython/Python/pylifecycle.c:2236,1
    - Dst: finalize_interp_delete
      Src: /src/cpython/Python/pylifecycle.c:2240,1
    - Dst: _PyDebug_PrintTotalRefs
      Src: /src/cpython/Python/pylifecycle.c:2244,1
    - Dst: _Py_FinalizeRefTotal
      Src: /src/cpython/Python/pylifecycle.c:2246,1
    - Dst: _Py_FinalizeAllocatedBlocks
      Src: /src/cpython/Python/pylifecycle.c:2248,1
    - Dst: call_ll_exitfuncs
      Src: /src/cpython/Python/pylifecycle.c:2250,1
    - Dst: _PyRuntime_Finalize
      Src: /src/cpython/Python/pylifecycle.c:2252,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 69
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (_PyThreadState_GET() == tstate)
      pos:
        line_end: 2047
        line_start: 2047
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 2254
      start: 2014
    functionDepth: 20
    functionLinenumber: 2014
    functionLinenumberEnd: 2254
    functionName: _Py_Finalize
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_FinalizeRefTotal
    - _Py_wfopen
    - _PyImport_FiniCore
    - _PyEval_StopTheWorldAll
    - _PyThreadState_GET
    - _Py_FinishPendingCalls
    - _PySignal_Fini
    - wait_for_thread_shutdown
    - _Py_PrintReferences
    - finalize_subinterpreters
    - _PyImport_Fini
    - _PyImport_FiniExternal
    - _PyHash_Fini
    - _PyFaulthandler_Fini
    - resolve_final_tstate
    - _PyEval_Fini
    - _PyRuntime_Finalize
    - _PyInterpreterState_SetFinalizing
    - fprintf
    - _PyThreadState_RemoveExcept
    - call_ll_exitfuncs
    - _PyObject_DebugMallocStats
    - _PyRuntimeState_SetFinalizing
    - _PyDebug_PrintTotalRefs
    - finalize_interp_clear
    - _PyThreadState_DeleteList
    - flush_std_files
    - _Py_PrintReferenceAddresses
    - _PyThreadState_SetShuttingDown
    - PyGC_Collect
    - _PyGC_CollectIfEnabled
    - _Py_FinalizeAllocatedBlocks
    - _PyAtExit_Call
    - finalize_modules
    - _PyTraceMalloc_Fini
    - _PyEval_StartTheWorldAll
    - finalize_interp_delete
    - assert
    - fclose
    linkageType: ''
    returnType: int
    signature: int _Py_Finalize(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Finalize
      Src: /src/cpython/Python/pylifecycle.c:2259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2256
    functionDepth: 21
    functionLinenumber: 2256
    functionLinenumberEnd: 2260
    functionName: Py_FinalizeEx
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - _Py_Finalize
    linkageType: ''
    returnType: int
    signature: int Py_FinalizeEx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Finalize
      Src: /src/cpython/Python/pylifecycle.c:2265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2262
    functionDepth: 21
    functionLinenumber: 2262
    functionLinenumberEnd: 2266
    functionName: Py_Finalize
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - _Py_Finalize
    linkageType: ''
    returnType: void
    signature: void Py_Finalize(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/cpython/Python/pylifecycle.c:2288,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:2289,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2295,1
    - Dst: PyInterpreterState_New
      Src: /src/cpython/Python/pylifecycle.c:2302,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2305,1
    - Dst: _PyInterpreterState_SetWhence
      Src: /src/cpython/Python/pylifecycle.c:2307,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:2311,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/pylifecycle.c:2319,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:2325,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/pylifecycle.c:2330,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:2331,1
    - Dst: _PyConfig_Copy
      Src: /src/cpython/Python/pylifecycle.c:2335,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:2336,1
    - Dst: init_interp_settings
      Src: /src/cpython/Python/pylifecycle.c:2341,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:2342,1
    - Dst: _PyObject_InitState
      Src: /src/cpython/Python/pylifecycle.c:2348,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:2349,1
    - Dst: _PyMem_init_obmalloc
      Src: /src/cpython/Python/pylifecycle.c:2356,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/pylifecycle.c:2357,1
    - Dst: _PyThreadState_New
      Src: /src/cpython/Python/pylifecycle.c:2361,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/pylifecycle.c:2363,1
    - Dst: _PyThreadState_Bind
      Src: /src/cpython/Python/pylifecycle.c:2367,1
    - Dst: init_interp_create_gil
      Src: /src/cpython/Python/pylifecycle.c:2368,1
    - Dst: pycore_interp_init
      Src: /src/cpython/Python/pylifecycle.c:2372,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:2373,1
    - Dst: init_interp_main
      Src: /src/cpython/Python/pylifecycle.c:2377,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:2378,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2383,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Python/pylifecycle.c:2388,1
    - Dst: PyInterpreterState_Delete
      Src: /src/cpython/Python/pylifecycle.c:2390,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pylifecycle.c:2393,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 3
    argNames:
    - tstate_p
    - config
    - whence
    argTypes:
    - PyThreadState**
    - PyInterpreterConfig*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2282
    functionDepth: 23
    functionLinenumber: 2282
    functionLinenumberEnd: 2396
    functionName: new_interpreter
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - Py_EndInterpreter
    - _PyStatus_NO_MEMORY
    - _PyStatus_EXCEPTION
    - _PyThreadState_New
    - _PyInterpreterState_SetWhence
    - _PyThreadState_GET
    - PyInterpreterState_Delete
    - _PyObject_InitState
    - _PyThreadState_Bind
    - init_interp_settings
    - _PyThreadState_Detach
    - _PyThreadState_Attach
    - _PyConfig_Copy
    - _PyRuntime_Initialize
    - init_interp_main
    - init_interp_create_gil
    - PyInterpreterState_New
    - _PyStatus_OK
    - _PyStatus_ERR
    - pycore_interp_init
    - _PyInterpreterState_GetConfig
    - _PyMem_init_obmalloc
    - _PyInterpreterState_Main
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus new_interpreter(PyThreadState **tstate_p,\n                const
      PyInterpreterConfig *config, long whence)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_interpreter
      Src: /src/cpython/Python/pylifecycle.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate_p
    - config
    argTypes:
    - PyThreadState**
    - PyInterpreterConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2398
    functionDepth: 24
    functionLinenumber: 2398
    functionLinenumberEnd: 2404
    functionName: Py_NewInterpreterFromConfig
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - new_interpreter
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus Py_NewInterpreterFromConfig(PyThreadState **tstate_p,\n                            const
      PyInterpreterConfig *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_interpreter
      Src: /src/cpython/Python/pylifecycle.c:2412,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pylifecycle.c:2413,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Python/pylifecycle.c:2414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2406
    functionDepth: 24
    functionLinenumber: 2406
    functionLinenumberEnd: 2417
    functionName: Py_NewInterpreter
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 4
    functionsReached:
    - Py_ExitStatusException
    - new_interpreter
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      Py_NewInterpreter(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:2436,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pylifecycle.c:2437,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pylifecycle.c:2440,1
    - Dst: wait_for_thread_shutdown
      Src: /src/cpython/Python/pylifecycle.c:2445,1
    - Dst: _Py_FinishPendingCalls
      Src: /src/cpython/Python/pylifecycle.c:2448,1
    - Dst: _PyAtExit_Call
      Src: /src/cpython/Python/pylifecycle.c:2450,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pylifecycle.c:2453,1
    - Dst: _PyInterpreterState_SetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:2458,1
    - Dst: _PyImport_FiniExternal
      Src: /src/cpython/Python/pylifecycle.c:2462,1
    - Dst: finalize_modules
      Src: /src/cpython/Python/pylifecycle.c:2463,1
    - Dst: _PyImport_FiniCore
      Src: /src/cpython/Python/pylifecycle.c:2464,1
    - Dst: finalize_interp_clear
      Src: /src/cpython/Python/pylifecycle.c:2466,1
    - Dst: finalize_interp_delete
      Src: /src/cpython/Python/pylifecycle.c:2467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2431
    functionDepth: 20
    functionLinenumber: 2431
    functionLinenumberEnd: 2468
    functionName: Py_EndInterpreter
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 8
    functionsReached:
    - Py_FatalError
    - _PyImport_FiniCore
    - _PyImport_FiniExternal
    - finalize_interp_clear
    - _PyThreadState_GET
    - _PyAtExit_Call
    - finalize_modules
    - _Py_FinishPendingCalls
    - _PyInterpreterState_SetFinalizing
    - wait_for_thread_shutdown
    - finalize_interp_delete
    linkageType: ''
    returnType: void
    signature: void Py_EndInterpreter(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:2475,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:2477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2480
    functionName: _Py_IsInterpreterFinalizing
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 5
    functionsReached:
    - _PyRuntimeState_GetFinalizing
    - _PyInterpreterState_GetFinalizing
    linkageType: ''
    returnType: int
    signature: int _Py_IsInterpreterFinalizing(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:2485,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/pylifecycle.c:2486,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:2487,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pylifecycle.c:2492,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pylifecycle.c:2497,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/pylifecycle.c:2505,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/pylifecycle.c:2513,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:2517,1
    - Dst: _PyInterpreterState_IsRunningMain
      Src: /src/cpython/Python/pylifecycle.c:2517,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:2528,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pylifecycle.c:2529,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pylifecycle.c:2530,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/pylifecycle.c:2531,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/pylifecycle.c:2532,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/pylifecycle.c:2534,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pylifecycle.c:2537,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Python/pylifecycle.c:2538,1
    - Dst: assert
      Src: /src/cpython/Python/pylifecycle.c:2539,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:2539,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pylifecycle.c:2542,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pylifecycle.c:2547,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pylifecycle.c:2551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (final_tstate->interp == main_interp)
      pos:
        line_end: 2486
        line_start: 2486
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (!_PyInterpreterState_IsRunningMain(interp))
      pos:
        line_end: 2516
        line_start: 2516
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (tstate != final_tstate)
      pos:
        line_end: 2527
        line_start: 2527
        source_file: /src/cpython/Python/pylifecycle.c
    - condition: (_PyThreadState_GET() == NULL)
      pos:
        line_end: 2538
        line_start: 2538
        source_file: /src/cpython/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 2552
      start: 2482
    functionDepth: 21
    functionLinenumber: 2482
    functionLinenumberEnd: 2552
    functionName: finalize_subinterpreters
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - Py_EndInterpreter
    - _PyThreadState_Detach
    - _PyInterpreterState_IsRunningMain
    - PyThreadState_Delete
    - _PyThreadState_NewBound
    - HEAD_LOCK
    - _PyThreadState_Attach
    - PyThreadState_Clear
    - _PyThreadState_GET
    - HEAD_UNLOCK
    - _PyInterpreterState_Main
    - PyErr_WarnEx
    - assert
    linkageType: ''
    returnType: void
    signature: void finalize_subinterpreters(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_AddModuleObject
      Src: /src/cpython/Python/pylifecycle.c:2561,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2561,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2563,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/pylifecycle.c:2565,1
    - Dst: PyDict_ContainsString
      Src: /src/cpython/Python/pylifecycle.c:2567,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2569,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/pylifecycle.c:2572,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2574,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pylifecycle.c:2576,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2579,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/pylifecycle.c:2588,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2589,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2592,1
    - Dst: _PyImport_GetImportlibLoader
      Src: /src/cpython/Python/pylifecycle.c:2594,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2597,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pylifecycle.c:2599,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2602,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2604,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2557
    functionDepth: 14
    functionLinenumber: 2557
    functionLinenumberEnd: 2605
    functionName: add_main_module
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyDict_ContainsString
    - _PyImport_GetImportlibLoader
    - Py_DECREF
    - _PyStatus_OK
    - _Py_ID
    - PyImport_AddModuleObject
    - PyImport_ImportModule
    - PyDict_GetItemStringRef
    - PyModule_GetDict
    - PyDict_SetItemString
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus add_main_module(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/pylifecycle.c:2613,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2617,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2609
    functionDepth: 3
    functionLinenumber: 2609
    functionLinenumberEnd: 2619
    functionName: init_import_site
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _PyStatus_ERR
    - _PyStatus_OK
    - Py_DECREF
    - PyImport_ImportModule
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_import_site(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsValidFD
      Src: /src/cpython/Python/pylifecycle.c:2634,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/pylifecycle.c:2651,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2651,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pylifecycle.c:2659,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2659,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pylifecycle.c:2664,1
    - Dst: PyImport_ImportModuleAttr
      Src: /src/cpython/Python/pylifecycle.c:2669,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2670,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2670,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/pylifecycle.c:2674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2675,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pylifecycle.c:2681,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/pylifecycle.c:2682,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2682,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/pylifecycle.c:2684,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2684,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/pylifecycle.c:2687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2688,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:2695,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2700,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2701,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/pylifecycle.c:2714,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2716,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/pylifecycle.c:2720,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2722,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2723,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/pylifecycle.c:2727,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2727,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2730,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2731,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2732,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pylifecycle.c:2740,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/pylifecycle.c:2741,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2741,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pylifecycle.c:2743,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2747,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2748,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2749,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2750,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pylifecycle.c:2752,1
    - Dst: _Py_IsValidFD
      Src: /src/cpython/Python/pylifecycle.c:2752,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:2756,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 91
    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: 2760
      start: 2622
    functionDepth: 13
    functionLinenumber: 2622
    functionLinenumberEnd: 2760
    functionName: create_stdio
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_IsTrue
    - PyObject_TypeCheck
    - _PyObject_CallMethod
    - Py_DECREF
    - _Py_ID
    - PyImport_ImportModuleAttr
    - _Py_IsValidFD
    - PyObject_CallMethodNoArgs
    - PyObject_GetAttr
    - Py_NewRef
    - PyObject_SetAttr
    - PyErr_ExceptionMatches
    - PyUnicode_FromWideChar
    - fileno
    - PyErr_Clear
    - Py_CLEAR
    - PyUnicode_FromString
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2768,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/pylifecycle.c:2770,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/pylifecycle.c:2774,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/pylifecycle.c:2779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2783,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2787,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2790,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2763
    functionDepth: 14
    functionLinenumber: 2763
    functionLinenumberEnd: 2792
    functionName: init_set_builtins_open
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyStatus_OK
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyObject_SetAttrString
    - PyImport_ImportModule
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_set_builtins_open(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2803,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:2804,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Python/pylifecycle.c:2813,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:2813,1
    - Dst: S_ISDIR
      Src: /src/cpython/Python/pylifecycle.c:2814,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2815,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/pylifecycle.c:2819,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:2824,1
    - Dst: create_stdio
      Src: /src/cpython/Python/pylifecycle.c:2829,1
    - Dst: PySys_SetObject
      Src: /src/cpython/Python/pylifecycle.c:2834,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pylifecycle.c:2835,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2836,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:2839,1
    - Dst: create_stdio
      Src: /src/cpython/Python/pylifecycle.c:2840,1
    - Dst: PySys_SetObject
      Src: /src/cpython/Python/pylifecycle.c:2845,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pylifecycle.c:2846,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2847,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:2851,1
    - Dst: create_stdio
      Src: /src/cpython/Python/pylifecycle.c:2852,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/pylifecycle.c:2860,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/pylifecycle.c:2862,1
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Python/pylifecycle.c:2864,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2867,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:2869,1
    - Dst: PySys_SetObject
      Src: /src/cpython/Python/pylifecycle.c:2871,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2872,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pylifecycle.c:2875,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:2875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:2879,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2885,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2888,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2796
    functionDepth: 17
    functionLinenumber: 2796
    functionLinenumberEnd: 2890
    functionName: init_sys_streams
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - _PyStatus_OK
    - Py_DECREF
    - PyObject_GetAttrString
    - _Py_ID
    - _PyErr_Clear
    - _PyCodec_Lookup
    - PyImport_ImportModule
    - _PyInterpreterState_GetConfig
    - _Py_fstat_noraise
    - create_stdio
    - PyUnicode_AsUTF8
    - PySys_SetObject
    - _PyStatus_ERR
    - fileno
    - S_ISDIR
    - _PySys_SetAttr
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_sys_streams(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Python/pylifecycle.c:2902,1
    - Dst: __android_log_write
      Src: /src/cpython/Python/pylifecycle.c:2908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2896
    functionDepth: 2
    functionLinenumber: 2896
    functionLinenumberEnd: 2910
    functionName: android_log_write_impl
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - __android_log_write
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      android_log_write_impl(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2921,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/pylifecycle.c:2926,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Python/pylifecycle.c:2931,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/pylifecycle.c:2937,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/pylifecycle.c:2947,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:2948,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2951,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2952,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:2953,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2918
    functionDepth: 9
    functionLinenumber: 2918
    functionLinenumberEnd: 2955
    functionName: init_android_streams
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - PyCFunction_New
    - Py_XDECREF
    - _PyStatus_OK
    - _PyErr_Print
    - PyObject_CallMethod
    - PyImport_ImportModule
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_android_streams(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Python/pylifecycle.c:2966,1
    - Dst: os_log_with_type
      Src: /src/cpython/Python/pylifecycle.c:2972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2961
    functionDepth: 2
    functionLinenumber: 2961
    functionLinenumberEnd: 2974
    functionName: apple_log_write_impl
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - os_log_with_type
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      apple_log_write_impl(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pylifecycle.c:2985,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/pylifecycle.c:2990,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Python/pylifecycle.c:2995,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/pylifecycle.c:3001,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/pylifecycle.c:3010,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pylifecycle.c:3011,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:3014,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:3015,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:3016,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 2982
    functionDepth: 9
    functionLinenumber: 2982
    functionLinenumberEnd: 3018
    functionName: init_apple_streams
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - PyCFunction_New
    - Py_XDECREF
    - _PyStatus_OK
    - _PyErr_Print
    - PyObject_CallMethod
    - PyImport_ImportModule
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_apple_streams(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3027,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/cpython/Python/pylifecycle.c:3031,1
    - Dst: _Py_DumpTraceback
      Src: /src/cpython/Python/pylifecycle.c:3033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - interp
    - tstate
    argTypes:
    - int
    - PyInterpreterState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 3023
    functionDepth: 7
    functionLinenumber: 3023
    functionLinenumberEnd: 3035
    functionName: _Py_FatalError_DumpTracebacks
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PUTS
    - _Py_DumpTraceback
    - _Py_DumpTracebackThreads
    linkageType: ''
    returnType: void
    signature: "void _Py_FatalError_DumpTracebacks(int fd, PyInterpreterState *interp,\n
      \                             PyThreadState *tstate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pylifecycle.c:3048,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pylifecycle.c:3055,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:3055,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:3056,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:3061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:3062,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Python/pylifecycle.c:3066,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/pylifecycle.c:3068,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pylifecycle.c:3070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:3071,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/pylifecycle.c:3074,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pylifecycle.c:3075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:3077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3045
    functionDepth: 19
    functionLinenumber: 3045
    functionLinenumberEnd: 3080
    functionName: _Py_FatalError_PrintExc
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_DisplayException
    - Py_DECREF
    - PyException_GetTraceback
    - _Py_ID
    - _PyErr_Clear
    - _PyFile_Flush
    - PySys_GetOptionalAttr
    - _PyErr_GetRaisedException
    linkageType: ''
    returnType: int
    signature: int _Py_FatalError_PrintExc(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/pylifecycle.c:3090,1
    - Dst: OutputDebugStringW
      Src: /src/cpython/Python/pylifecycle.c:3093,1
    - Dst: strlen
      Src: /src/cpython/Python/pylifecycle.c:3095,1
    - Dst: OutputDebugStringW
      Src: /src/cpython/Python/pylifecycle.c:3110,1
    - Dst: OutputDebugStringW
      Src: /src/cpython/Python/pylifecycle.c:3115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3116
      start: 3085
    functionDepth: 1
    functionLinenumber: 3085
    functionLinenumberEnd: 3116
    functionName: fatal_output_debug
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - OutputDebugStringW
    - strlen
    linkageType: ''
    returnType: void
    signature: void fatal_output_debug(const char *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3123,1
    - Dst: _PyRuntimeState_GetFinalizing
      Src: /src/cpython/Python/pylifecycle.c:3124,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3126,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/pylifecycle.c:3127,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3128,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3131,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3134,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3137,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3140,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3143,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - fd
    - runtime
    argTypes:
    - int
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3146
      start: 3120
    functionDepth: 3
    functionLinenumber: 3120
    functionLinenumberEnd: 3146
    functionName: fatal_error_dump_runtime
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PUTS
    - _PyRuntimeState_GetFinalizing
    - _Py_DumpHexadecimal
    linkageType: ''
    returnType: void
    signature: void fatal_error_dump_runtime(int fd, _PyRuntimeState *runtime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DebugBreak
      Src: /src/cpython/Python/pylifecycle.c:3154,1
    - Dst: abort
      Src: /src/cpython/Python/pylifecycle.c:3156,1
    - Dst: exit
      Src: /src/cpython/Python/pylifecycle.c:3159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3149
    functionDepth: 0
    functionLinenumber: 3149
    functionLinenumberEnd: 3161
    functionName: _Py_NO_RETURN::fatal_error_exit
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - DebugBreak
    - exit
    - abort
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      fatal_error_exit(int status)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Python/pylifecycle.c:3168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3175
      start: 3163
    functionDepth: 7
    functionLinenumber: 3163
    functionLinenumberEnd: 3175
    functionName: acquire_dict_lock_for_dump
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyMutex_LockTimed
    linkageType: ''
    returnType: int
    signature: int acquire_dict_lock_for_dump(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_uint8
      Src: /src/cpython/Python/pylifecycle.c:3184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3177
    functionDepth: 0
    functionLinenumber: 3177
    functionLinenumberEnd: 3186
    functionName: release_dict_lock_for_dump
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint8
    linkageType: ''
    returnType: void
    signature: void release_dict_lock_for_dump(PyObject *obj)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_GetModules
      Src: /src/cpython/Python/pylifecycle.c:3200,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/pylifecycle.c:3201,1
    - Dst: acquire_dict_lock_for_dump
      Src: /src/cpython/Python/pylifecycle.c:3214,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Python/pylifecycle.c:3218,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pylifecycle.c:3219,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/pylifecycle.c:3220,1
    - Dst: release_dict_lock_for_dump
      Src: /src/cpython/Python/pylifecycle.c:3225,1
    - Dst: PyFrozenSet_Check
      Src: /src/cpython/Python/pylifecycle.c:3229,1
    - Dst: acquire_dict_lock_for_dump
      Src: /src/cpython/Python/pylifecycle.c:3237,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Python/pylifecycle.c:3241,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pylifecycle.c:3242,1
    - Dst: _PyModule_IsExtension
      Src: /src/cpython/Python/pylifecycle.c:3245,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Python/pylifecycle.c:3257,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pylifecycle.c:3258,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/pylifecycle.c:3259,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3272,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3276,1
    - Dst: _Py_DumpASCII
      Src: /src/cpython/Python/pylifecycle.c:3279,1
    - Dst: release_dict_lock_for_dump
      Src: /src/cpython/Python/pylifecycle.c:3282,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3285,1
    - Dst: _Py_DumpDecimal
      Src: /src/cpython/Python/pylifecycle.c:3286,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3287,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3288,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 2
    argNames:
    - fd
    - interp
    argTypes:
    - int
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3194
    functionDepth: 8
    functionLinenumber: 3194
    functionLinenumberEnd: 3290
    functionName: _Py_DumpExtensionModules
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _PyImport_GetModules
    - PyUnicode_Compare
    - _Py_DumpASCII
    - PyFrozenSet_Check
    - _Py_DumpDecimal
    - acquire_dict_lock_for_dump
    - PyUnicode_CompareWithASCIIString
    - PUTS
    - _PyModule_IsExtension
    - _PySet_NextEntry
    - release_dict_lock_for_dump
    - PyUnicode_Check
    - PyDict_Check
    - _PyDict_Next
    linkageType: ''
    returnType: void
    signature: void _Py_DumpExtensionModules(int fd, PyInterpreterState *interp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::fatal_error_exit
      Src: /src/cpython/Python/pylifecycle.c:3302,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3307,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3309,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3310,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3313,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3316,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3318,1
    - Dst: fatal_error_dump_runtime
      Src: /src/cpython/Python/pylifecycle.c:3322,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:3332,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Python/pylifecycle.c:3334,1
    - Dst: _Py_FatalError_PrintExc
      Src: /src/cpython/Python/pylifecycle.c:3345,1
    - Dst: _Py_FatalError_DumpTracebacks
      Src: /src/cpython/Python/pylifecycle.c:3347,1
    - Dst: _Py_FatalError_DumpTracebacks
      Src: /src/cpython/Python/pylifecycle.c:3351,1
    - Dst: _Py_DumpExtensionModules
      Src: /src/cpython/Python/pylifecycle.c:3354,1
    - Dst: _PyFaulthandler_Fini
      Src: /src/cpython/Python/pylifecycle.c:3360,1
    - Dst: flush_std_files
      Src: /src/cpython/Python/pylifecycle.c:3365,1
    - Dst: fatal_output_debug
      Src: /src/cpython/Python/pylifecycle.c:3369,1
    - Dst: _Py_NO_RETURN::fatal_error_exit
      Src: /src/cpython/Python/pylifecycle.c:3372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - fd
    - header
    - prefix
    - msg
    - status
    argTypes:
    - int
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3293
    functionDepth: 20
    functionLinenumber: 3293
    functionLinenumberEnd: 3373
    functionName: _Py_NO_RETURN::fatal_error
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_FatalError_PrintExc
    - _Py_DumpExtensionModules
    - fatal_error_dump_runtime
    - fatal_output_debug
    - _PyThreadState_GET
    - _PyFaulthandler_Fini
    - flush_std_files
    - PyGILState_GetThisThreadState
    - PUTS
    - _Py_FatalError_DumpTracebacks
    - _Py_NO_RETURN::fatal_error_exit
    linkageType: ''
    returnType: void
    signature: "void _Py_NO_RETURN\nfatal_error(int fd, int header, const char *prefix,
      const char *msg,\n            int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::fatal_error
      Src: /src/cpython/Python/pylifecycle.c:3381,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:3381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3378
    functionDepth: 21
    functionLinenumber: 3378
    functionLinenumberEnd: 3382
    functionName: _Py_NO_RETURN::Py_FatalError
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - fileno
    - _Py_NO_RETURN::fatal_error
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      Py_FatalError(const char *msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::fatal_error
      Src: /src/cpython/Python/pylifecycle.c:3388,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:3388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - func
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3389
      start: 3385
    functionDepth: 21
    functionLinenumber: 3385
    functionLinenumberEnd: 3389
    functionName: _Py_NO_RETURN::_Py_FatalErrorFunc
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - fileno
    - _Py_NO_RETURN::fatal_error
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      _Py_FatalErrorFunc(const char *func, const char *msg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::fatal_error_exit
      Src: /src/cpython/Python/pylifecycle.c:3398,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:3403,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3404,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3406,1
    - Dst: PUTS
      Src: /src/cpython/Python/pylifecycle.c:3407,1
    - Dst: va_start
      Src: /src/cpython/Python/pylifecycle.c:3411,1
    - Dst: vfprintf
      Src: /src/cpython/Python/pylifecycle.c:3412,1
    - Dst: va_end
      Src: /src/cpython/Python/pylifecycle.c:3413,1
    - Dst: fputs
      Src: /src/cpython/Python/pylifecycle.c:3415,1
    - Dst: fflush
      Src: /src/cpython/Python/pylifecycle.c:3416,1
    - Dst: _Py_NO_RETURN::fatal_error
      Src: /src/cpython/Python/pylifecycle.c:3418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - func
    - format
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3392
    functionDepth: 21
    functionLinenumber: 3392
    functionLinenumberEnd: 3419
    functionName: _Py_NO_RETURN::_Py_FatalErrorFormat
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - _Py_NO_RETURN::fatal_error
    - fputs
    - va_start
    - fflush
    - PUTS
    - fileno
    - _Py_NO_RETURN::fatal_error_exit
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      _Py_FatalErrorFormat(const char *func, const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::_Py_FatalErrorFormat
      Src: /src/cpython/Python/pylifecycle.c:3425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - func
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3429
      start: 3422
    functionDepth: 22
    functionLinenumber: 3422
    functionLinenumberEnd: 3429
    functionName: _Py_NO_RETURN::_Py_FatalRefcountErrorFunc
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_NO_RETURN::_Py_FatalErrorFormat
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      _Py_FatalRefcountErrorFunc(const char *func, const char *msg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/cpython/Python/pylifecycle.c:3435,1
    - Dst: exit
      Src: /src/cpython/Python/pylifecycle.c:3436,1
    - Dst: _PyStatus_IS_ERROR
      Src: /src/cpython/Python/pylifecycle.c:3438,1
    - Dst: _Py_NO_RETURN::fatal_error
      Src: /src/cpython/Python/pylifecycle.c:3439,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:3439,1
    - Dst: _Py_NO_RETURN::Py_FatalError
      Src: /src/cpython/Python/pylifecycle.c:3442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3432
    functionDepth: 21
    functionLinenumber: 3432
    functionLinenumberEnd: 3444
    functionName: _Py_NO_RETURN::Py_ExitStatusException
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _PyStatus_IS_EXIT
    - _Py_NO_RETURN::fatal_error
    - _Py_NO_RETURN::Py_FatalError
    - exit
    - fileno
    - _PyStatus_IS_ERROR
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      Py_ExitStatusException(PyStatus status)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/pylifecycle.c:3455,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:3455,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/pylifecycle.c:3457,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:3458,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/pylifecycle.c:3463,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pylifecycle.c:3463,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pylifecycle.c:3465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:3468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pylifecycle.c:3470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3451
    functionDepth: 18
    functionLinenumber: 3451
    functionLinenumberEnd: 3471
    functionName: wait_for_thread_shutdown
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyObject_CallMethodNoArgs
    - PyErr_FormatUnraisable
    - PyImport_GetModule
    - _PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: void wait_for_thread_shutdown(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/pylifecycle.c:3476,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pylifecycle.c:3478,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pylifecycle.c:3482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3473
    functionDepth: 8
    functionLinenumber: 3473
    functionLinenumberEnd: 3484
    functionName: Py_AtExit
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: int
    signature: int Py_AtExit(void (*func)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/pylifecycle.c:3492,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pylifecycle.c:3499,1
    - Dst: exitfunc
      Src: /src/cpython/Python/pylifecycle.c:3500,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/pylifecycle.c:3501,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pylifecycle.c:3503,1
    - Dst: fflush
      Src: /src/cpython/Python/pylifecycle.c:3505,1
    - Dst: fflush
      Src: /src/cpython/Python/pylifecycle.c:3506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3486
    functionDepth: 8
    functionLinenumber: 3486
    functionLinenumberEnd: 3507
    functionName: call_ll_exitfuncs
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - PyMutex_Lock
    - exitfunc
    - fflush
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void call_ll_exitfuncs(_PyRuntimeState *runtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pylifecycle.c:3512,1
    - Dst: _PyThreadState_IsRunningMain
      Src: /src/cpython/Python/pylifecycle.c:3513,1
    - Dst: _PyInterpreterState_SetNotRunningMain
      Src: /src/cpython/Python/pylifecycle.c:3514,1
    - Dst: _Py_Finalize
      Src: /src/cpython/Python/pylifecycle.c:3516,1
    - Dst: exit
      Src: /src/cpython/Python/pylifecycle.c:3520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - sts
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3509
    functionDepth: 21
    functionLinenumber: 3509
    functionLinenumberEnd: 3521
    functionName: _Py_NO_RETURN::Py_Exit
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_IsRunningMain
    - _PyThreadState_GET
    - _Py_Finalize
    - _PyInterpreterState_SetNotRunningMain
    - exit
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      Py_Exit(int sts)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/cpython/Python/pylifecycle.c:3533,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:3533,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:3536,1
    - Dst: strcmp
      Src: /src/cpython/Python/pylifecycle.c:3540,1
    - Dst: strcmp
      Src: /src/cpython/Python/pylifecycle.c:3541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - fp
    - filename
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3542
      start: 3530
    functionDepth: 2
    functionLinenumber: 3530
    functionLinenumberEnd: 3542
    functionName: Py_FdIsInteractive
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - strcmp
    - isatty
    - fileno
    - _Py_GetConfig
    linkageType: ''
    returnType: int
    signature: int Py_FdIsInteractive(FILE *fp, const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/cpython/Python/pylifecycle.c:3548,1
    - Dst: fileno
      Src: /src/cpython/Python/pylifecycle.c:3548,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/pylifecycle.c:3551,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/pylifecycle.c:3555,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/pylifecycle.c:3556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - fp
    - filename
    argTypes:
    - FILE*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3557
      start: 3545
    functionDepth: 2
    functionLinenumber: 3545
    functionLinenumberEnd: 3557
    functionName: _Py_FdIsInteractive
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    - isatty
    - fileno
    - _Py_GetConfig
    linkageType: ''
    returnType: int
    signature: int _Py_FdIsInteractive(FILE *fp, PyObject *filename)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/cpython/Python/pylifecycle.c:3567,1
    - Dst: signal
      Src: /src/cpython/Python/pylifecycle.c:3589,1
    - Dst: signal
      Src: /src/cpython/Python/pylifecycle.c:3591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3562
    functionDepth: 0
    functionLinenumber: 3562
    functionLinenumberEnd: 3594
    functionName: PyOS_getsig
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - signal
    - sigaction
    linkageType: ''
    returnType: PyOS_sighandler_t
    signature: PyOS_sighandler_t PyOS_getsig(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/cpython/Python/pylifecycle.c:3611,1
    - Dst: sigaction
      Src: /src/cpython/Python/pylifecycle.c:3616,1
    - Dst: signal
      Src: /src/cpython/Python/pylifecycle.c:3621,1
    - Dst: siginterrupt
      Src: /src/cpython/Python/pylifecycle.c:3623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - sig
    - handler
    argTypes:
    - int
    - PyOS_sighandler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3627
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3627
    functionName: PyOS_setsig
    functionSourceFile: /src/cpython/Python/pylifecycle.c
    functionUses: 11
    functionsReached:
    - signal
    - sigaction
    - siginterrupt
    - sigemptyset
    linkageType: ''
    returnType: PyOS_sighandler_t
    signature: PyOS_sighandler_t PyOS_setsig(int sig, PyOS_sighandler_t handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/codecs.c:33,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:34,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Python/codecs.c:36,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/codecs.c:39,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:40,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Python/codecs.c:43,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/codecs.c:44,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Python/codecs.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - search_function
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (interp->codecs.initialized)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 14
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: PyCodec_Register
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 2
    functionsReached:
    - PyList_Append
    - PyErr_SetString
    - FT_MUTEX_LOCK
    - PyCallable_Check
    - _PyInterpreterState_GET
    - FT_MUTEX_UNLOCK
    - PyErr_BadArgument
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCodec_Register(PyObject *search_function)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/codecs.c:56,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:64,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/codecs.c:64,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codecs.c:65,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Python/codecs.c:66,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Python/codecs.c:67,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/codecs.c:72,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Python/codecs.c:74,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:75,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:77,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:78,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/codecs.c:78,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/codecs.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - search_function
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(codec_search_path))
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/cpython/Python/codecs.c
    - condition: (interp->codecs.search_cache != NULL)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/cpython/Python/codecs.c
    - condition: (PyDict_CheckExact(interp->codecs.search_cache))
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 84
      start: 53
    functionDepth: 12
    functionLinenumber: 53
    functionLinenumberEnd: 84
    functionName: PyCodec_Unregister
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 2
    functionsReached:
    - PyList_CheckExact
    - PyDict_Clear
    - Py_DECREF
    - PyDict_CheckExact
    - PyList_GET_SIZE
    - FT_MUTEX_LOCK
    - PyList_SetSlice
    - _PyInterpreterState_GET
    - FT_MUTEX_UNLOCK
    - PyList_GetItemRef
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCodec_Unregister(PyObject *search_function)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Python/codecs.c:94,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:99,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/codecs.c:103,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codecs.c:105,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Python/codecs.c:107,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:109,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codecs.c:110,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/codecs.c:114,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codecs.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 91
    functionDepth: 14
    functionLinenumber: 91
    functionLinenumberEnd: 117
    functionName: normalizestring
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyErr_SetString
    - PyUnicode_FromString
    - PyMem_Free
    - _Py_normalize_encoding
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: PyObject *normalizestring(const char *string)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Python/codecs.c:137,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/codecs.c:141,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:142,1
    - Dst: normalizestring
      Src: /src/cpython/Python/codecs.c:147,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Python/codecs.c:153,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/codecs.c:157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:161,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/codecs.c:166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:170,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Python/codecs.c:180,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/codecs.c:183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:184,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codecs.c:188,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/codecs.c:191,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/codecs.c:191,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:194,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codecs.c:201,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/codecs.c:206,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/codecs.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:217,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts:
    - condition: (interp->codecs.initialized)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 219
      start: 134
    functionDepth: 15
    functionLinenumber: 134
    functionLinenumberEnd: 219
    functionName: _PyCodec_Lookup
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - normalizestring
    - PyTuple_GET_SIZE
    - _PyUnicode_InternImmortal
    - PyTuple_Check
    - _PyUnicode_InternMortal
    - PyErr_SetString
    - PyDict_SetItem
    - _PyInterpreterState_GET
    - PyList_GetItemRef
    - PyObject_CallOneArg
    - PyErr_Format
    - PyList_Size
    - PyDict_GetItemRef
    - PyErr_BadArgument
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_PyCodec_Lookup(const char *encoding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Python/codecs.c:227,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/codecs.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 223
    functionDepth: 16
    functionLinenumber: 223
    functionLinenumberEnd: 236
    functionName: PyCodec_KnownEncoding
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    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/cpython/Python/codecs.c:244,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codecs.c:247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codecs.c:247,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/codecs.c:251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:253,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codecs.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - object
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 259
    functionName: args_tuple
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *args_tuple(PyObject *object,\n                     const
      char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Python/codecs.c:269,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/codecs.c:272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:273,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codecs.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - encoding
    - index
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 16
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: codec_getitem
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_DECREF
    - PyTuple_GET_ITEM
    - _PyCodec_Lookup
    linkageType: ''
    returnType: PyObject
    signature: PyObject *codec_getitem(const char *encoding, int index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/codecs.c:285,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/codecs.c:289,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/codecs.c:291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - codec_info
    - errors
    - attrname
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: codec_makeincrementalcodec
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArgs
    - PyObject_CallFunction
    - PyObject_GetAttrString
    - Py_DECREF
    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/cpython/Python/codecs.c:303,1
    - Dst: codec_makeincrementalcodec
      Src: /src/cpython/Python/codecs.c:306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - encoding
    - errors
    - attrname
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 16
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: codec_getincrementalcodec
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyCodec_Lookup
    - codec_makeincrementalcodec
    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/cpython/Python/codecs.c:321,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/codecs.c:325,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/codecs.c:327,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/codecs.c:329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - encoding
    - stream
    - errors
    - index
    argTypes:
    - char*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 313
    functionDepth: 16
    functionLinenumber: 313
    functionLinenumberEnd: 332
    functionName: codec_getstreamcodec
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - Py_DECREF
    - _PyCodec_Lookup
    - PyObject_CallOneArg
    - PyTuple_GET_ITEM
    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/cpython/Python/codecs.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - codec_info
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: _PyCodecInfo_GetIncrementalDecoder
    functionSourceFile: /src/cpython/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/cpython/Python/codecs.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - codec_info
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: _PyCodecInfo_GetIncrementalEncoder
    functionSourceFile: /src/cpython/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/cpython/Python/codecs.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 17
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: PyCodec_Encoder
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_getitem
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_Encoder(const char *encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getitem
      Src: /src/cpython/Python/codecs.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 17
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: PyCodec_Decoder
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_getitem
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_Decoder(const char *encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getincrementalcodec
      Src: /src/cpython/Python/codecs.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 17
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: PyCodec_IncrementalEncoder
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 2
    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/cpython/Python/codecs.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 17
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: PyCodec_IncrementalDecoder
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 2
    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/cpython/Python/codecs.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - encoding
    - stream
    - errors
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 17
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: PyCodec_StreamReader
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    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/cpython/Python/codecs.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - encoding
    - stream
    - errors
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 17
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: PyCodec_StreamWriter
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_getstreamcodec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_StreamWriter(const char *encoding,\n                               PyObject
      *stream,\n                               const char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: args_tuple
      Src: /src/cpython/Python/codecs.c:408,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/codecs.c:412,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Python/codecs.c:414,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/codecs.c:418,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/codecs.c:419,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:420,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codecs.c:424,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/codecs.c:424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:429,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codecs.c:433,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codecs.c:434,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codecs.c:435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - object
    - encoder
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 399
    functionDepth: 14
    functionLinenumber: 399
    functionLinenumberEnd: 437
    functionName: _PyCodec_EncodeInternal
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - args_tuple
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyErr_SetString
    - Py_NewRef
    - PyObject_Call
    - PyTuple_GET_ITEM
    - _PyErr_FormatNote
    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/cpython/Python/codecs.c:453,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/codecs.c:457,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Python/codecs.c:459,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/codecs.c:462,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/codecs.c:463,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:464,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codecs.c:468,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/codecs.c:468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:473,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codecs.c:477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codecs.c:478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codecs.c:479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - object
    - decoder
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 444
    functionDepth: 14
    functionLinenumber: 444
    functionLinenumberEnd: 481
    functionName: _PyCodec_DecodeInternal
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - args_tuple
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_Check
    - PyErr_SetString
    - Py_NewRef
    - PyObject_Call
    - PyTuple_GET_ITEM
    - _PyErr_FormatNote
    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/cpython/Python/codecs.c:490,1
    - Dst: _PyCodec_EncodeInternal
      Src: /src/cpython/Python/codecs.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 18
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: PyCodec_Encode
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 4
    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/cpython/Python/codecs.c:503,1
    - Dst: _PyCodec_DecodeInternal
      Src: /src/cpython/Python/codecs.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 497
    functionDepth: 18
    functionLinenumber: 497
    functionLinenumberEnd: 508
    functionName: PyCodec_Decode
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 4
    functionsReached:
    - PyCodec_Decoder
    - _PyCodec_DecodeInternal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_Decode(PyObject *object,\n                         const
      char *encoding,\n                         const char *errors)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Python/codecs.c:518,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/codecs.c:526,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/codecs.c:527,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codecs.c:527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:528,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/codecs.c:532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:535,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codecs.c:538,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codecs.c:544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - encoding
    - alternate_command
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 511
    functionDepth: 16
    functionLinenumber: 511
    functionLinenumberEnd: 556
    functionName: _PyCodec_LookupTextEncoding
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 2
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - PyObject_GetOptionalAttr
    - _Py_ID
    - _PyCodec_Lookup
    - PyErr_Format
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * _PyCodec_LookupTextEncoding(const char *encoding,\n                                       const
      char *alternate_command)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/cpython/Python/codecs.c:567,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codecs.c:571,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/codecs.c:571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - encoding
    - alternate_command
    - index
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 559
    functionDepth: 17
    functionLinenumber: 559
    functionLinenumberEnd: 574
    functionName: codec_getitem_checked
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - Py_DECREF
    - PyTuple_GET_ITEM
    - _PyCodec_LookupTextEncoding
    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/cpython/Python/codecs.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 18
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: _PyCodec_TextEncoder
    functionSourceFile: /src/cpython/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/cpython/Python/codecs.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 18
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: _PyCodec_TextDecoder
    functionSourceFile: /src/cpython/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/cpython/Python/codecs.c:592,1
    - Dst: _PyCodec_EncodeInternal
      Src: /src/cpython/Python/codecs.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 586
    functionDepth: 19
    functionLinenumber: 586
    functionLinenumberEnd: 597
    functionName: _PyCodec_EncodeText
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodec_TextEncoder
    - _PyCodec_EncodeInternal
    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/cpython/Python/codecs.c:605,1
    - Dst: _PyCodec_DecodeInternal
      Src: /src/cpython/Python/codecs.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 599
    functionDepth: 19
    functionLinenumber: 599
    functionLinenumberEnd: 610
    functionName: _PyCodec_DecodeText
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/codecs.c:620,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:621,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/codecs.c:622,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:623,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/codecs.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - char*
    - PyObject*
    assertStmts:
    - condition: (interp->codecs.initialized)
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 628
      start: 618
    functionDepth: 14
    functionLinenumber: 618
    functionLinenumberEnd: 628
    functionName: PyCodec_RegisterError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - PyCallable_Check
    - _PyInterpreterState_GET
    - PyDict_SetItemString
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCodec_RegisterError(const char *name, PyObject *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/codecs.c:632,1
    - Dst: strcmp
      Src: /src/cpython/Python/codecs.c:633,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codecs.c:634,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/codecs.c:639,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:640,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Python/codecs.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (interp->codecs.initialized)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 642
      start: 630
    functionDepth: 14
    functionLinenumber: 630
    functionLinenumberEnd: 642
    functionName: _PyCodec_UnregisterError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - PyDict_PopString
    - _PyInterpreterState_GET
    - strcmp
    - PyErr_Format
    - Py_ARRAY_LENGTH
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyCodec_UnregisterError(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/codecs.c:649,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:650,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/codecs.c:655,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codecs.c:659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (interp->codecs.initialized)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 663
      start: 647
    functionDepth: 14
    functionLinenumber: 647
    functionLinenumberEnd: 663
    functionName: PyCodec_LookupError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 9
    functionsReached:
    - PyDict_GetItemStringRef
    - _PyInterpreterState_GET
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_LookupError(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codecs.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 14
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: wrong_exception_type
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void wrong_exception_type(PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 676
    functionName: _PyIsUnicodeEncodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyIsUnicodeEncodeError(EXC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 678
    functionName: _PyIsUnicodeDecodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyIsUnicodeDecodeError(EXC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 680
    functionName: _PyIsUnicodeTranslateError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyIsUnicodeTranslateError(EXC)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 703
    functionName: codec_handler_unicode_hex_width
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t codec_handler_unicode_hex_width(Py_UCS4 ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - p
    - ch
    argTypes:
    - Py_UCS1**
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 733
    functionName: codec_handler_write_unicode_hex
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void codec_handler_write_unicode_hex(Py_UCS1 **p, Py_UCS4 ch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/codecs.c:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 752
    functionName: n_decimal_digits_for_codepoint
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int n_decimal_digits_for_codepoint(Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/codecs.c:762,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:766,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/codecs.c:766,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Python/codecs.c:767,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:771,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/codecs.c:771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (count == 0 || PyUnicode_KIND(res) == PyUnicode_2BYTE_KIND)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/cpython/Python/codecs.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 770
        line_start: 770
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 773
      start: 759
    functionDepth: 4
    functionLinenumber: 759
    functionLinenumberEnd: 773
    functionName: codec_handler_unicode_replacement_character
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_2BYTE_DATA
    - PyUnicode_New
    - _PyUnicode_CheckConsistency
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_handler_unicode_replacement_character(Py_ssize_t count)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/codecs.c:780,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/codecs.c:781,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/codecs.c:781,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/codecs.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 778
    functionDepth: 14
    functionLinenumber: 778
    functionLinenumberEnd: 787
    functionName: PyCodec_StrictErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 8
    functionsReached:
    - PyErr_SetString
    - PyErr_SetObject
    - PyExceptionInstance_Check
    - PyExceptionInstance_Class
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_StrictErrors(PyObject *exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:796,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:801,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/codecs.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - exc
    - as_bytes
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 792
    functionDepth: 4
    functionLinenumber: 792
    functionLinenumberEnd: 802
    functionName: _PyCodec_IgnoreError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - _PyUnicodeError_GetParams
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_IgnoreError(PyObject *exc, int as_bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:807,1
    - Dst: _PyIsUnicodeTranslateError
      Src: /src/cpython/Python/codecs.c:807,1
    - Dst: _PyCodec_IgnoreError
      Src: /src/cpython/Python/codecs.c:808,1
    - Dst: _PyIsUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:810,1
    - Dst: _PyCodec_IgnoreError
      Src: /src/cpython/Python/codecs.c:811,1
    - Dst: wrong_exception_type
      Src: /src/cpython/Python/codecs.c:814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 805
    functionDepth: 15
    functionLinenumber: 805
    functionLinenumberEnd: 817
    functionName: PyCodec_IgnoreErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodec_IgnoreError
    - _PyIsUnicodeTranslateError
    - wrong_exception_type
    - _PyIsUnicodeDecodeError
    - _PyIsUnicodeEncodeError
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_IgnoreErrors(PyObject *exc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:826,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/codecs.c:831,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:835,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/codecs.c:835,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/codecs.c:836,1
    - Dst: memset
      Src: /src/cpython/Python/codecs.c:837,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:838,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/codecs.c:838,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_KIND(res) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/cpython/Python/codecs.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 837
        line_start: 837
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 840
      start: 822
    functionDepth: 4
    functionLinenumber: 822
    functionLinenumberEnd: 840
    functionName: _PyCodec_ReplaceUnicodeEncodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - Py_BuildValue
    - _PyUnicode_CheckConsistency
    - _PyUnicodeError_GetParams
    - memset
    - PyUnicode_New
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_ReplaceUnicodeEncodeError(PyObject *exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeDecodeError_GetEnd
      Src: /src/cpython/Python/codecs.c:847,1
    - Dst: codec_handler_unicode_replacement_character
      Src: /src/cpython/Python/codecs.c:850,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 843
    functionDepth: 6
    functionLinenumber: 843
    functionLinenumberEnd: 855
    functionName: _PyCodec_ReplaceUnicodeDecodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_handler_unicode_replacement_character
    - PyUnicodeDecodeError_GetEnd
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_ReplaceUnicodeDecodeError(PyObject *exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:862,1
    - Dst: codec_handler_unicode_replacement_character
      Src: /src/cpython/Python/codecs.c:867,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 858
    functionDepth: 5
    functionLinenumber: 858
    functionLinenumberEnd: 872
    functionName: _PyCodec_ReplaceUnicodeTranslateError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_handler_unicode_replacement_character
    - _PyUnicodeError_GetParams
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_ReplaceUnicodeTranslateError(PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:877,1
    - Dst: _PyCodec_ReplaceUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:878,1
    - Dst: _PyIsUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:880,1
    - Dst: _PyCodec_ReplaceUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:881,1
    - Dst: _PyIsUnicodeTranslateError
      Src: /src/cpython/Python/codecs.c:883,1
    - Dst: _PyCodec_ReplaceUnicodeTranslateError
      Src: /src/cpython/Python/codecs.c:884,1
    - Dst: wrong_exception_type
      Src: /src/cpython/Python/codecs.c:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 875
    functionDepth: 15
    functionLinenumber: 875
    functionLinenumberEnd: 890
    functionName: PyCodec_ReplaceErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodec_ReplaceUnicodeEncodeError
    - _PyCodec_ReplaceUnicodeTranslateError
    - _PyIsUnicodeTranslateError
    - wrong_exception_type
    - _PyIsUnicodeDecodeError
    - _PyCodec_ReplaceUnicodeDecodeError
    - _PyIsUnicodeEncodeError
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_ReplaceErrors(PyObject *exc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:897,1
    - Dst: wrong_exception_type
      Src: /src/cpython/Python/codecs.c:898,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:904,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/codecs.c:918,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/codecs.c:919,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:924,1
    - Dst: n_decimal_digits_for_codepoint
      Src: /src/cpython/Python/codecs.c:925,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:926,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:927,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/codecs.c:932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:934,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/codecs.c:937,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:940,1
    - Dst: n_decimal_digits_for_codepoint
      Src: /src/cpython/Python/codecs.c:947,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:952,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:956,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/codecs.c:956,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:958,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/cpython/Python/codecs.c
    - condition: (k != 0)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/cpython/Python/codecs.c
    - condition: (k <= 7)
      pos:
        line_end: 926
        line_start: 926
        source_file: /src/cpython/Python/codecs.c
    - condition: (ch == 0)
      pos:
        line_end: 951
        line_start: 951
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 960
      start: 895
    functionDepth: 15
    functionLinenumber: 895
    functionLinenumberEnd: 960
    functionName: PyCodec_XMLCharRefReplaceErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - Py_MIN
    - n_decimal_digits_for_codepoint
    - Py_MAX
    - Py_DECREF
    - Py_BuildValue
    - _PyUnicode_CheckConsistency
    - _PyUnicodeError_GetParams
    - wrong_exception_type
    - PyUnicode_READ_CHAR
    - PyUnicode_New
    - _PyIsUnicodeEncodeError
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:970,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/codecs.c:985,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/codecs.c:986,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:991,1
    - Dst: codec_handler_unicode_hex_width
      Src: /src/cpython/Python/codecs.c:992,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/codecs.c:994,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:996,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/codecs.c:999,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:1001,1
    - Dst: codec_handler_write_unicode_hex
      Src: /src/cpython/Python/codecs.c:1002,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:1004,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/codecs.c:1004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1005,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:1006,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 1003
        line_start: 1003
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 1007
      start: 965
    functionDepth: 4
    functionLinenumber: 965
    functionLinenumberEnd: 1007
    functionName: _PyCodec_BackslashReplaceUnicodeEncodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - codec_handler_write_unicode_hex
    - Py_MAX
    - Py_DECREF
    - Py_BuildValue
    - _PyUnicode_CheckConsistency
    - codec_handler_unicode_hex_width
    - _PyUnicodeError_GetParams
    - PyUnicode_READ_CHAR
    - PyUnicode_New
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_BackslashReplaceUnicodeEncodeError(PyObject *exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:1015,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/codecs.c:1022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1024,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/codecs.c:1028,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/codecs.c:1029,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:1037,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/codecs.c:1037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1038,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:1039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 1036
        line_start: 1036
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 1040
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1040
    functionName: _PyCodec_BackslashReplaceUnicodeDecodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - _PyUnicode_CheckConsistency
    - _PyUnicodeError_GetParams
    - PyUnicode_New
    - PyBytes_AS_STRING
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_BackslashReplaceUnicodeDecodeError(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_BackslashReplaceUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1043
    functionDepth: 5
    functionLinenumber: 1043
    functionLinenumberEnd: 1048
    functionName: _PyCodec_BackslashReplaceUnicodeTranslateError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - _PyCodec_BackslashReplaceUnicodeEncodeError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_BackslashReplaceUnicodeTranslateError(PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1053,1
    - Dst: _PyCodec_BackslashReplaceUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1054,1
    - Dst: _PyIsUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:1056,1
    - Dst: _PyCodec_BackslashReplaceUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:1057,1
    - Dst: _PyIsUnicodeTranslateError
      Src: /src/cpython/Python/codecs.c:1059,1
    - Dst: _PyCodec_BackslashReplaceUnicodeTranslateError
      Src: /src/cpython/Python/codecs.c:1060,1
    - Dst: wrong_exception_type
      Src: /src/cpython/Python/codecs.c:1063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1051
    functionDepth: 15
    functionLinenumber: 1051
    functionLinenumberEnd: 1066
    functionName: PyCodec_BackslashReplaceErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodec_BackslashReplaceUnicodeEncodeError
    - _PyCodec_BackslashReplaceUnicodeDecodeError
    - _PyIsUnicodeTranslateError
    - wrong_exception_type
    - _PyIsUnicodeDecodeError
    - _PyIsUnicodeEncodeError
    - _PyCodec_BackslashReplaceUnicodeTranslateError
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1073,1
    - Dst: wrong_exception_type
      Src: /src/cpython/Python/codecs.c:1074,1
    - Dst: _PyUnicode_GetNameCAPI
      Src: /src/cpython/Python/codecs.c:1078,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:1085,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:1095,1
    - Dst: _PyUnicode_Name_CAPI*::getname
      Src: /src/cpython/Python/codecs.c:1096,1
    - Dst: strlen
      Src: /src/cpython/Python/codecs.c:1100,1
    - Dst: codec_handler_unicode_hex_width
      Src: /src/cpython/Python/codecs.c:1103,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/codecs.c:1111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1113,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/codecs.c:1117,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:1119,1
    - Dst: _PyUnicode_Name_CAPI*::getname
      Src: /src/cpython/Python/codecs.c:1120,1
    - Dst: strcpy
      Src: /src/cpython/Python/codecs.c:1124,1
    - Dst: strlen
      Src: /src/cpython/Python/codecs.c:1125,1
    - Dst: codec_handler_write_unicode_hex
      Src: /src/cpython/Python/codecs.c:1129,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:1133,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/codecs.c:1133,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:1134,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/codecs.c:1134,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:1135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/cpython/Python/codecs.c
    - condition: (outp == PyUnicode_1BYTE_DATA(res) + ressize)
      pos:
        line_end: 1132
        line_start: 1132
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 1138
      start: 1071
    functionDepth: 15
    functionLinenumber: 1071
    functionLinenumberEnd: 1138
    functionName: PyCodec_NameReplaceErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_handler_write_unicode_hex
    - Py_BuildValue
    - Py_DECREF
    - strcpy
    - strlen
    - codec_handler_unicode_hex_width
    - _PyUnicode_CheckConsistency
    - _PyUnicodeError_GetParams
    - wrong_exception_type
    - _PyUnicode_GetNameCAPI
    - PyUnicode_READ_CHAR
    - PyUnicode_New
    - _PyIsUnicodeEncodeError
    - _PyUnicode_Name_CAPI*::getname
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_NameReplaceErrors(PyObject *exc)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1151,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1152,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1153,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1173,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1174,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1176,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1192,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1193,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Python/codecs.c:1195,1
    - Dst: strcmp
      Src: /src/cpython/Python/codecs.c:1200,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 47
    argCount: 2
    argNames:
    - encoding
    - bytelength
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1205
    functionName: get_standard_encoding_impl
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    - strcmp
    linkageType: ''
    returnType: int
    signature: int get_standard_encoding_impl(const char *encoding, int *bytelength)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/codecs.c:1211,1
    - Dst: get_standard_encoding_impl
      Src: /src/cpython/Python/codecs.c:1215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - encoding
    - code
    - bytelength
    argTypes:
    - PyObject*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1208
    functionDepth: 6
    functionLinenumber: 1208
    functionLinenumberEnd: 1217
    functionName: get_standard_encoding
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - get_standard_encoding_impl
    linkageType: ''
    returnType: int
    signature: int get_standard_encoding(PyObject *encoding, int *code, int *bytelength)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeEncodeError_GetEncoding
      Src: /src/cpython/Python/codecs.c:1225,1
    - Dst: get_standard_encoding
      Src: /src/cpython/Python/codecs.c:1230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1231,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:1241,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/codecs.c:1250,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/codecs.c:1251,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/codecs.c:1254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1256,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Python/codecs.c:1260,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:1262,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Python/codecs.c:1263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1303,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:1304,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/codecs.c:1308,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/codecs.c:1308,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1222
    functionDepth: 13
    functionLinenumber: 1222
    functionLinenumberEnd: 1310
    functionName: _PyCodec_SurrogatePassUnicodeEncodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_GetEncoding
    - Py_MIN
    - Py_MAX
    - Py_DECREF
    - Py_BuildValue
    - _PyUnicodeError_GetParams
    - get_standard_encoding
    - PyBytes_FromStringAndSize
    - PyErr_SetObject
    - PyBytes_AsString
    - Py_UNICODE_IS_SURROGATE
    - PyUnicode_READ_CHAR
    - PyExceptionInstance_Class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_SurrogatePassUnicodeEncodeError(PyObject *exc)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeDecodeError_GetEncoding
      Src: /src/cpython/Python/codecs.c:1316,1
    - Dst: get_standard_encoding
      Src: /src/cpython/Python/codecs.c:1321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1322,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:1332,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/codecs.c:1342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1377,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Python/codecs.c:1378,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/codecs.c:1382,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:1386,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/codecs.c:1389,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/codecs.c:1389,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1313
    functionDepth: 13
    functionLinenumber: 1313
    functionLinenumberEnd: 1391
    functionName: _PyCodec_SurrogatePassUnicodeDecodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - PyUnicodeDecodeError_GetEncoding
    - Py_BuildValue
    - Py_DECREF
    - _PyUnicodeError_GetParams
    - get_standard_encoding
    - PyErr_SetObject
    - Py_UNICODE_IS_SURROGATE
    - PyExceptionInstance_Class
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_SurrogatePassUnicodeDecodeError(PyObject *exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1399,1
    - Dst: _PyCodec_SurrogatePassUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1400,1
    - Dst: _PyIsUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:1402,1
    - Dst: _PyCodec_SurrogatePassUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:1403,1
    - Dst: wrong_exception_type
      Src: /src/cpython/Python/codecs.c:1406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1396
    functionDepth: 15
    functionLinenumber: 1396
    functionLinenumberEnd: 1409
    functionName: PyCodec_SurrogatePassErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - wrong_exception_type
    - _PyCodec_SurrogatePassUnicodeDecodeError
    - _PyIsUnicodeDecodeError
    - _PyIsUnicodeEncodeError
    - _PyCodec_SurrogatePassUnicodeEncodeError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCodec_SurrogatePassErrors(PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:1419,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/codecs.c:1426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1428,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Python/codecs.c:1432,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codecs.c:1434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1438,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/codecs.c:1439,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/codecs.c:1439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1444,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:1446,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1414
    functionDepth: 13
    functionLinenumber: 1414
    functionLinenumberEnd: 1447
    functionName: _PyCodec_SurrogateEscapeUnicodeEncodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - _PyUnicodeError_GetParams
    - PyBytes_FromStringAndSize
    - PyErr_SetObject
    - PyBytes_AsString
    - PyUnicode_READ_CHAR
    - PyExceptionInstance_Class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_SurrogateEscapeUnicodeEncodeError(PyObject *exc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Python/codecs.c:1455,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/codecs.c:1464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1473,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/codecs.c:1477,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/codecs.c:1477,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Python/codecs.c:1481,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/codecs.c:1485,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1450
    functionDepth: 13
    functionLinenumber: 1450
    functionLinenumberEnd: 1486
    functionName: _PyCodec_SurrogateEscapeUnicodeDecodeError
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - _PyUnicodeError_GetParams
    - PyErr_SetObject
    - PyUnicode_FromKindAndData
    - PyExceptionInstance_Class
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCodec_SurrogateEscapeUnicodeDecodeError(PyObject *exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIsUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1492,1
    - Dst: _PyCodec_SurrogateEscapeUnicodeEncodeError
      Src: /src/cpython/Python/codecs.c:1493,1
    - Dst: _PyIsUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:1495,1
    - Dst: _PyCodec_SurrogateEscapeUnicodeDecodeError
      Src: /src/cpython/Python/codecs.c:1496,1
    - Dst: wrong_exception_type
      Src: /src/cpython/Python/codecs.c:1499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1489
    functionDepth: 15
    functionLinenumber: 1489
    functionLinenumberEnd: 1502
    functionName: PyCodec_SurrogateEscapeErrors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - _PyCodec_SurrogateEscapeUnicodeEncodeError
    - wrong_exception_type
    - _PyIsUnicodeDecodeError
    - _PyCodec_SurrogateEscapeUnicodeDecodeError
    - _PyIsUnicodeEncodeError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCodec_SurrogateEscapeErrors(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Python/codecs.c:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1507
    functionDepth: 15
    functionLinenumber: 1507
    functionLinenumberEnd: 1511
    functionName: strict_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_StrictErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      strict_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_IgnoreErrors
      Src: /src/cpython/Python/codecs.c:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1514
    functionDepth: 16
    functionLinenumber: 1514
    functionLinenumberEnd: 1518
    functionName: ignore_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_IgnoreErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ignore_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_ReplaceErrors
      Src: /src/cpython/Python/codecs.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1521
    functionDepth: 16
    functionLinenumber: 1521
    functionLinenumberEnd: 1525
    functionName: replace_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_ReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      replace_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_XMLCharRefReplaceErrors
      Src: /src/cpython/Python/codecs.c:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1528
    functionDepth: 16
    functionLinenumber: 1528
    functionLinenumberEnd: 1532
    functionName: xmlcharrefreplace_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_XMLCharRefReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlcharrefreplace_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_BackslashReplaceErrors
      Src: /src/cpython/Python/codecs.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1535
    functionDepth: 16
    functionLinenumber: 1535
    functionLinenumberEnd: 1539
    functionName: backslashreplace_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_BackslashReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      backslashreplace_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_NameReplaceErrors
      Src: /src/cpython/Python/codecs.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1542
    functionDepth: 16
    functionLinenumber: 1542
    functionLinenumberEnd: 1546
    functionName: namereplace_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_NameReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namereplace_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_SurrogatePassErrors
      Src: /src/cpython/Python/codecs.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1549
    functionDepth: 16
    functionLinenumber: 1549
    functionLinenumberEnd: 1553
    functionName: surrogatepass_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_SurrogatePassErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      surrogatepass_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_SurrogateEscapeErrors
      Src: /src/cpython/Python/codecs.c:1559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1556
    functionDepth: 16
    functionLinenumber: 1556
    functionLinenumberEnd: 1560
    functionName: surrogateescape_errors
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_SurrogateEscapeErrors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      surrogateescape_errors(PyObject *Py_UNUSED(self), PyObject *exc)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDoc_STR
      Src: /src/cpython/Python/codecs.c:1577,1
    - Dst: PyDoc_STR
      Src: /src/cpython/Python/codecs.c:1587,1
    - Dst: PyDoc_STR
      Src: /src/cpython/Python/codecs.c:1597,1
    - Dst: PyDoc_STR
      Src: /src/cpython/Python/codecs.c:1607,1
    - Dst: PyDoc_STR
      Src: /src/cpython/Python/codecs.c:1618,1
    - Dst: PyDoc_STR
      Src: /src/cpython/Python/codecs.c:1629,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:1652,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/codecs.c:1652,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/codecs.c:1652,1
    - Dst: assert
      Src: /src/cpython/Python/codecs.c:1654,1
    - Dst: PyList_New
      Src: /src/cpython/Python/codecs.c:1655,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/codecs.c:1657,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/codecs.c:1659,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/codecs.c:1661,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/codecs.c:1663,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/codecs.c:1665,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/codecs.c:1667,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Python/codecs.c:1668,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/codecs.c:1670,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/codecs.c:1673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1675,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Python/codecs.c:1677,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/codecs.c:1685,1
    - Dst: PyStatus_Error
      Src: /src/cpython/Python/codecs.c:1687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codecs.c:1689,1
    - Dst: PyStatus_Ok
      Src: /src/cpython/Python/codecs.c:1691,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp->codecs.initialized == 0)
      pos:
        line_end: 1653
        line_start: 1653
        source_file: /src/cpython/Python/codecs.c
    - condition: (Py_ARRAY_LENGTH(methods) == Py_ARRAY_LENGTH(codecs_builtin_error_handlers))
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/cpython/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 1692
      start: 1563
    functionDepth: 10
    functionLinenumber: 1563
    functionLinenumberEnd: 1692
    functionName: _PyCodec_InitRegistry
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyCFunction_NewEx
    - PyStatus_NoMemory
    - PyStatus_Error
    - PyStatus_Ok
    - PyImport_ImportModule
    - PyDict_SetItemString
    - PyDict_New
    - Py_ARRAY_LENGTH
    - PyDoc_STR
    - assert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyCodec_InitRegistry(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codecs.c:1697,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codecs.c:1698,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codecs.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1701
    functionName: _PyCodec_Fini
    functionSourceFile: /src/cpython/Python/codecs.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyCodec_Fini(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/cpython/Python/bootstrap_hash.c:59,1
    - Dst: BCryptGenRandom
      Src: /src/cpython/Python/bootstrap_hash.c:60,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/cpython/Python/bootstrap_hash.c:61,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/bootstrap_hash.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - buffer
    - size
    - raise
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 15
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: win32_urandom
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - BCRYPT_SUCCESS
    - BCryptGenRandom
    - PyErr_SetFromWindowsErr
    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/cpython/Python/bootstrap_hash.c:113,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/bootstrap_hash.c:115,1
    - Dst: getrandom
      Src: /src/cpython/Python/bootstrap_hash.c:122,1
    - Dst: getrandom
      Src: /src/cpython/Python/bootstrap_hash.c:126,1
    - Dst: syscall
      Src: /src/cpython/Python/bootstrap_hash.c:134,1
    - Dst: syscall
      Src: /src/cpython/Python/bootstrap_hash.c:138,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Python/bootstrap_hash.c:142,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/bootstrap_hash.c:167,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/bootstrap_hash.c:177,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: 186
      start: 91
    functionDepth: 14
    functionLinenumber: 91
    functionLinenumberEnd: 186
    functionName: py_getrandom
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - __msan_unpoison
    - getrandom
    - syscall
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    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/cpython/Python/bootstrap_hash.c:226,1
    - Dst: getentropy
      Src: /src/cpython/Python/bootstrap_hash.c:231,1
    - Dst: getentropy
      Src: /src/cpython/Python/bootstrap_hash.c:235,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/bootstrap_hash.c:249,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/bootstrap_hash.c:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - buffer
    - size
    - raise
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 212
    functionDepth: 14
    functionLinenumber: 212
    functionLinenumberEnd: 268
    functionName: py_getentropy
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    - PyErr_CheckSignals
    - getentropy
    - 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/cpython/Python/bootstrap_hash.c:313,1
    - Dst: _Py_open
      Src: /src/cpython/Python/bootstrap_hash.c:329,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bootstrap_hash.c:333,1
    - Dst: close
      Src: /src/cpython/Python/bootstrap_hash.c:342,1
    - Dst: _Py_fstat
      Src: /src/cpython/Python/bootstrap_hash.c:346,1
    - Dst: close
      Src: /src/cpython/Python/bootstrap_hash.c:347,1
    - Dst: _Py_read
      Src: /src/cpython/Python/bootstrap_hash.c:359,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bootstrap_hash.c:363,1
    - Dst: _Py_open_noraise
      Src: /src/cpython/Python/bootstrap_hash.c:374,1
    - Dst: read
      Src: /src/cpython/Python/bootstrap_hash.c:382,1
    - Dst: close
      Src: /src/cpython/Python/bootstrap_hash.c:387,1
    - Dst: close
      Src: /src/cpython/Python/bootstrap_hash.c:394,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 3
    argNames:
    - buffer
    - size
    - raise
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 301
    functionDepth: 14
    functionLinenumber: 301
    functionLinenumberEnd: 397
    functionName: dev_urandom
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - close
    - _Py_fstat
    - PyErr_SetString
    - read
    - _Py_fstat_noraise
    - _Py_open_noraise
    - _Py_read
    - PyErr_Format
    - _Py_open
    linkageType: ''
    returnType: int
    signature: int dev_urandom(char *buffer, Py_ssize_t size, int raise)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/cpython/Python/bootstrap_hash.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: dev_urandom_close
    functionSourceFile: /src/cpython/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/cpython/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lcg_urandom(unsigned int x0, unsigned char *buffer, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bootstrap_hash.c:486,1
    - Dst: win32_urandom
      Src: /src/cpython/Python/bootstrap_hash.c:497,1
    - Dst: py_getrandom
      Src: /src/cpython/Python/bootstrap_hash.c:503,1
    - Dst: py_getentropy
      Src: /src/cpython/Python/bootstrap_hash.c:505,1
    - Dst: dev_urandom
      Src: /src/cpython/Python/bootstrap_hash.c:518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - buffer
    - size
    - blocking
    - raise
    argTypes:
    - void*
    - Py_ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 477
    functionDepth: 16
    functionLinenumber: 477
    functionLinenumberEnd: 520
    functionName: pyurandom
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - py_getrandom
    - win32_urandom
    - dev_urandom
    - py_getentropy
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int pyurandom(void *buffer, Py_ssize_t size, int blocking, int raise)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyurandom
      Src: /src/cpython/Python/bootstrap_hash.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 17
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: _PyOS_URandom
    functionSourceFile: /src/cpython/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/cpython/Python/bootstrap_hash.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 17
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: _PyOS_URandomNonblock
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 2
    functionsReached:
    - pyurandom
    linkageType: ''
    returnType: int
    signature: int _PyOS_URandomNonblock(void *buffer, Py_ssize_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/bootstrap_hash.c:559,1
    - Dst: memset
      Src: /src/cpython/Python/bootstrap_hash.c:566,1
    - Dst: lcg_urandom
      Src: /src/cpython/Python/bootstrap_hash.c:570,1
    - Dst: pyurandom
      Src: /src/cpython/Python/bootstrap_hash.c:582,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/bootstrap_hash.c:584,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/bootstrap_hash.c:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 552
    functionDepth: 17
    functionLinenumber: 552
    functionLinenumberEnd: 589
    functionName: _Py_HashRandomization_Init
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - pyurandom
    - _PyStatus_OK
    - memset
    - lcg_urandom
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _Py_HashRandomization_Init(const PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_urandom_close
      Src: /src/cpython/Python/bootstrap_hash.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 598
    functionName: _Py_HashRandomization_Fini
    functionSourceFile: /src/cpython/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - dev_urandom_close
    linkageType: ''
    returnType: void
    signature: void _Py_HashRandomization_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Python/Python-tokenize.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: get_tokenize_state
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    linkageType: ''
    returnType: tokenize_state
    signature: 'tokenize_state *

      get_tokenize_state(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: _tokenize_get_state_by_type
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tokenize_get_state_by_type(type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/Python-tokenize.c:60,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/Python-tokenize.c:64,1
    - Dst: _PyTokenizer_FromReadline
      Src: /src/cpython/Python/Python-tokenize.c:68,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-tokenize.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - type
    - readline
    - extra_tokens
    - encoding
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: tokenizeriter_new_impl
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - _PyTokenizer_FromReadline
    - Py_DECREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntokenizeriter_new_impl(PyTypeObject *type, PyObject *readline,\n
      \                      int extra_tokens, const char *encoding)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Python/Python-tokenize.c:90,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-tokenize.c:91,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-tokenize.c:103,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/cpython/Python/Python-tokenize.c:104,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-tokenize.c:112,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/Python-tokenize.c:113,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/Python-tokenize.c:117,1
    - Dst: assert
      Src: /src/cpython/Python/Python-tokenize.c:142,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Python/Python-tokenize.c:144,1
    - Dst: _PyPegen_byte_offset_to_character_offset
      Src: /src/cpython/Python/Python-tokenize.c:150,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-tokenize.c:155,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/Python-tokenize.c:161,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/Python-tokenize.c:167,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/Python-tokenize.c:173,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-tokenize.c:176,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-tokenize.c:177,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-tokenize.c:178,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-tokenize.c:179,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 79
    argCount: 1
    argNames:
    - it
    argTypes:
    - tokenizeriterobject*
    assertStmts:
    - condition: (tok->buf[size-1] == '\n')
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Python/Python-tokenize.c
    constantsTouched: []
    func_position:
      end: 181
      start: 87
    functionDepth: 14
    functionLinenumber: 87
    functionLinenumberEnd: 181
    functionName: _tokenizer_error
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - Py_BuildValue
    - _PyPegen_byte_offset_to_character_offset
    - PyErr_Occurred
    - PyErr_SetString
    - PyErr_SetObject
    - PyUnicode_FromString
    - PyUnicode_DecodeUTF8
    - PyErr_SyntaxLocationObject
    - PyErr_SetNone
    - PyTuple_Pack
    - PyErr_NoMemory
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: int
    signature: int _tokenizer_error(tokenizeriterobject *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Python/Python-tokenize.c:187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-tokenize.c:192,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Python/Python-tokenize.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - it
    - line_start
    - size
    - line_changed
    argTypes:
    - tokenizeriterobject*
    - char*
    - Py_ssize_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: _get_current_line
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - Py_XDECREF
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_get_current_line(tokenizeriterobject *it, const char
      *line_start, Py_ssize_t size,\n                  int *line_changed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Python/Python-tokenize.c:209,1
    - Dst: _PyPegen_byte_offset_to_character_offset_line
      Src: /src/cpython/Python/Python-tokenize.c:214,1
    - Dst: _PyPegen_byte_offset_to_character_offset_line
      Src: /src/cpython/Python/Python-tokenize.c:228,1
    - Dst: _PyPegen_byte_offset_to_character_offset_raw
      Src: /src/cpython/Python/Python-tokenize.c:233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 9
    argNames:
    - it
    - token
    - line_start
    - line
    - line_changed
    - lineno
    - end_lineno
    - col_offset
    - end_col_offset
    argTypes:
    - tokenizeriterobject*
    - struct token
    - char*
    - PyObject*
    - int
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 204
    functionDepth: 7
    functionLinenumber: 204
    functionLinenumberEnd: 239
    functionName: _get_col_offsets
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - _PyPegen_byte_offset_to_character_offset_line
    - _PyPegen_byte_offset_to_character_offset_raw
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    linkageType: ''
    returnType: void
    signature: "void _get_col_offsets(tokenizeriterobject *it, struct token token,
      const char *line_start,\n                 PyObject *line, int line_changed,
      Py_ssize_t lineno, Py_ssize_t end_lineno,\n                 Py_ssize_t *col_offset,
      Py_ssize_t *end_col_offset)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/Python-tokenize.c:247,1
    - Dst: _PyToken_Init
      Src: /src/cpython/Python/Python-tokenize.c:250,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Python/Python-tokenize.c:252,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-tokenize.c:254,1
    - Dst: _tokenizer_error
      Src: /src/cpython/Python/Python-tokenize.c:255,1
    - Dst: assert
      Src: /src/cpython/Python/Python-tokenize.c:256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-tokenize.c:256,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-tokenize.c:261,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/Python-tokenize.c:267,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/Python-tokenize.c:270,1
    - Dst: ISSTRINGLIT
      Src: /src/cpython/Python/Python-tokenize.c:281,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/Python-tokenize.c:285,1
    - Dst: _get_current_line
      Src: /src/cpython/Python/Python-tokenize.c:292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-tokenize.c:295,1
    - Dst: ISSTRINGLIT
      Src: /src/cpython/Python/Python-tokenize.c:299,1
    - Dst: _get_col_offsets
      Src: /src/cpython/Python/Python-tokenize.c:303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-tokenize.c:317,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/Python-tokenize.c:320,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/Python-tokenize.c:322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-tokenize.c:329,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/Python-tokenize.c:330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-tokenize.c:335,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-tokenize.c:340,1
    - Dst: _PyToken_Free
      Src: /src/cpython/Python/Python-tokenize.c:342,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/Python-tokenize.c:347,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/cpython/Python/Python-tokenize.c
    constantsTouched: []
    func_position:
      end: 349
      start: 241
    functionDepth: 18
    functionLinenumber: 241
    functionLinenumberEnd: 349
    functionName: tokenizeriter_next
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_FromStringAndSize
    - Py_BuildValue
    - Py_DECREF
    - _PyToken_Free
    - Py_END_CRITICAL_SECTION
    - PyErr_Occurred
    - Py_GetConstant
    - PyErr_SetString
    - _get_current_line
    - _PyToken_Init
    - ISSTRINGLIT
    - _get_col_offsets
    - _PyTokenizer_Get
    - _tokenizer_error
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tokenizeriter_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-tokenize.c:355,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-tokenize.c:356,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Python/Python-tokenize.c:357,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Python/Python-tokenize.c:358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-tokenize.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 360
    functionName: tokenizeriter_dealloc
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyTypeObject*::tp_free
    - _PyTokenizer_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void tokenizeriter_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_tokenize_state
      Src: /src/cpython/Python/Python-tokenize.c:381,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Python/Python-tokenize.c:386,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Python/Python-tokenize.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 19
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: tokenizemodule_exec
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - get_tokenize_state
    - PyType_FromModuleAndSpec
    linkageType: ''
    returnType: int
    signature: int tokenizemodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tokenize_state
      Src: /src/cpython/Python/Python-tokenize.c:411,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/Python-tokenize.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: tokenizemodule_traverse
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - get_tokenize_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tokenizemodule_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tokenize_state
      Src: /src/cpython/Python/Python-tokenize.c:419,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-tokenize.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: tokenizemodule_clear
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - get_tokenize_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tokenizemodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tokenizemodule_clear
      Src: /src/cpython/Python/Python-tokenize.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: tokenizemodule_free
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - tokenizemodule_clear
    linkageType: ''
    returnType: void
    signature: void tokenizemodule_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/Python-tokenize.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: PyInit__tokenize
    functionSourceFile: /src/cpython/Python/Python-tokenize.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__tokenize(void)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/cpython/Python/mystrtoul.c:108,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:118,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:127,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:136,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Python/mystrtoul.c:147,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:164,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:178,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:192,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:218,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Python/mystrtoul.c:255,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 124
    argCount: 3
    argNames:
    - str
    - ptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 261
    functionName: PyOS_strtoul
    functionSourceFile: /src/cpython/Python/mystrtoul.c
    functionUses: 1
    functionsReached:
    - Py_CHARMASK
    - Py_ISSPACE
    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/cpython/Python/mystrtoul.c:275,1
    - Dst: PyOS_strtoul
      Src: /src/cpython/Python/mystrtoul.c:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - str
    - ptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 297
    functionName: PyOS_strtol
    functionSourceFile: /src/cpython/Python/mystrtoul.c
    functionUses: 1
    functionsReached:
    - PyOS_strtoul
    - Py_ISSPACE
    linkageType: ''
    returnType: long
    signature: long PyOS_strtol(const char *str, char **ptr, int base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - exception
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: _set_debug_exception_cause
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _set_debug_exception_cause(exception, format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/cpython/Python/remote_debug.h:106,1
    - Dst: getpagesize
      Src: /src/cpython/Python/remote_debug.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: get_page_size
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 5
    functionsReached:
    - getpagesize
    - GetSystemInfo
    linkageType: ''
    returnType: size_t
    signature: size_t get_page_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/remote_debug.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: _Py_RemoteDebug_FreePageCache
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_FreePageCache(proc_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: _Py_RemoteDebug_ClearCache
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: UNUSED
    signature: UNUSED _Py_RemoteDebug_ClearCache(proc_handle_t *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pid_to_task
      Src: /src/cpython/Python/remote_debug.h:165,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:167,1
    - Dst: OpenProcess
      Src: /src/cpython/Python/remote_debug.h:171,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/remote_debug.h:175,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:176,1
    - Dst: get_page_size
      Src: /src/cpython/Python/remote_debug.h:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - handle
    - pid
    argTypes:
    - proc_handle_t*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 15
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: _Py_RemoteDebug_InitProcHandle
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 2
    functionsReached:
    - pid_to_task
    - _set_debug_exception_cause
    - PyErr_SetFromWindowsErr
    - OpenProcess
    - get_page_size
    linkageType: ''
    returnType: int
    signature: int _Py_RemoteDebug_InitProcHandle(proc_handle_t *handle, pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:195,1
    - Dst: close
      Src: /src/cpython/Python/remote_debug.h:200,1
    - Dst: _Py_RemoteDebug_FreePageCache
      Src: /src/cpython/Python/remote_debug.h:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 206
    functionName: _Py_RemoteDebug_CleanupProcHandle
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 2
    functionsReached:
    - _Py_RemoteDebug_FreePageCache
    - CloseHandle
    - close
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_CleanupProcHandle(proc_handle_t *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/remote_debug.h:231,1
    - Dst: strcmp
      Src: /src/cpython/Python/remote_debug.h:234,1
    - Dst: mach_vm_region
      Src: /src/cpython/Python/remote_debug.h:237,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:247,1
    - Dst: strcmp
      Src: /src/cpython/Python/remote_debug.h:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - section
    - proc_ref
    - base
    - map
    argTypes:
    - char*
    - mach_port_t
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 210
    functionDepth: 14
    functionLinenumber: 210
    functionLinenumberEnd: 271
    functionName: return_section_address64
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - mach_vm_region
    - strcmp
    - PyErr_Format
    linkageType: ''
    returnType: uintptr_t
    signature: "uintptr_t return_section_address64(\n    const char* section,\n    mach_port_t
      proc_ref,\n    uintptr_t base,\n    void* map\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/remote_debug.h:294,1
    - Dst: strcmp
      Src: /src/cpython/Python/remote_debug.h:297,1
    - Dst: mach_vm_region
      Src: /src/cpython/Python/remote_debug.h:300,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:310,1
    - Dst: strcmp
      Src: /src/cpython/Python/remote_debug.h:323,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - section
    - proc_ref
    - base
    - map
    argTypes:
    - char*
    - mach_port_t
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 273
    functionDepth: 14
    functionLinenumber: 273
    functionLinenumberEnd: 334
    functionName: return_section_address32
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - mach_vm_region
    - strcmp
    - PyErr_Format
    linkageType: ''
    returnType: uintptr_t
    signature: "uintptr_t return_section_address32(\n    const char* section,\n    mach_port_t
      proc_ref,\n    uintptr_t base,\n    void* map\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/cpython/Python/remote_debug.h:350,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:351,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:354,1
    - Dst: sysctlbyname
      Src: /src/cpython/Python/remote_debug.h:357,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:358,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:361,1
    - Dst: __builtin_bswap32
      Src: /src/cpython/Python/remote_debug.h:372,1
    - Dst: __builtin_bswap32
      Src: /src/cpython/Python/remote_debug.h:376,1
    - Dst: __builtin_bswap32
      Src: /src/cpython/Python/remote_debug.h:380,1
    - Dst: return_section_address32
      Src: /src/cpython/Python/remote_debug.h:387,1
    - Dst: return_section_address64
      Src: /src/cpython/Python/remote_debug.h:391,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:394,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - section
    - proc_ref
    - base
    - map
    argTypes:
    - char*
    - mach_port_t
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 336
    functionDepth: 15
    functionLinenumber: 336
    functionLinenumberEnd: 407
    functionName: return_section_address_fat
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    - return_section_address32
    - strerror
    - sysctlbyname
    - PyErr_Format
    - return_section_address64
    linkageType: ''
    returnType: uintptr_t
    signature: "uintptr_t return_section_address_fat(\n    const char* section,\n
      \   mach_port_t proc_ref,\n    uintptr_t base,\n    void* map\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/cpython/Python/remote_debug.h:412,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:414,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:416,1
    - Dst: fstat
      Src: /src/cpython/Python/remote_debug.h:421,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:422,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:424,1
    - Dst: close
      Src: /src/cpython/Python/remote_debug.h:425,1
    - Dst: mmap
      Src: /src/cpython/Python/remote_debug.h:429,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:431,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:433,1
    - Dst: close
      Src: /src/cpython/Python/remote_debug.h:434,1
    - Dst: return_section_address32
      Src: /src/cpython/Python/remote_debug.h:444,1
    - Dst: return_section_address64
      Src: /src/cpython/Python/remote_debug.h:448,1
    - Dst: return_section_address_fat
      Src: /src/cpython/Python/remote_debug.h:452,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:455,1
    - Dst: munmap
      Src: /src/cpython/Python/remote_debug.h:461,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:462,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:464,1
    - Dst: close
      Src: /src/cpython/Python/remote_debug.h:467,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:468,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:470,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 5
    argNames:
    - secname
    - path
    - base
    - size
    - proc_ref
    argTypes:
    - char*
    - char*
    - uintptr_t
    - mach_vm_size_t
    - mach_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 409
    functionDepth: 16
    functionLinenumber: 409
    functionLinenumberEnd: 474
    functionName: search_section_in_file
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - open
    - fstat
    - mmap
    - close
    - return_section_address32
    - return_section_address_fat
    - munmap
    - strerror
    - PyErr_Format
    - return_section_address64
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t search_section_in_file(const char* secname, char* path, uintptr_t
      base, mach_vm_size_t size, mach_port_t proc_ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_for_pid
      Src: /src/cpython/Python/remote_debug.h:483,1
    - Dst: mach_task_self
      Src: /src/cpython/Python/remote_debug.h:483,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 477
    functionDepth: 14
    functionLinenumber: 477
    functionLinenumberEnd: 492
    functionName: pid_to_task
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 2
    functionsReached:
    - PyErr_Format
    - mach_task_self
    - task_for_pid
    linkageType: ''
    returnType: mach_port_t
    signature: mach_port_t pid_to_task(pid_t pid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pid_to_task
      Src: /src/cpython/Python/remote_debug.h:502,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/remote_debug.h:504,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:505,1
    - Dst: mach_vm_region
      Src: /src/cpython/Python/remote_debug.h:514,1
    - Dst: proc_regionfilename
      Src: /src/cpython/Python/remote_debug.h:530,1
    - Dst: strrchr
      Src: /src/cpython/Python/remote_debug.h:537,1
    - Dst: strncmp
      Src: /src/cpython/Python/remote_debug.h:544,1
    - Dst: strlen
      Src: /src/cpython/Python/remote_debug.h:544,1
    - Dst: search_section_in_file
      Src: /src/cpython/Python/remote_debug.h:545,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - handle
    - secname
    - substr
    argTypes:
    - proc_handle_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 494
    functionDepth: 17
    functionLinenumber: 494
    functionLinenumberEnd: 556
    functionName: search_map_for_section
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 1
    functionsReached:
    - proc_regionfilename
    - pid_to_task
    - strncmp
    - strlen
    - PyErr_Occurred
    - mach_vm_region
    - search_section_in_file
    - PyErr_Format
    - strrchr
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t search_map_for_section(proc_handle_t *handle, const char*
      secname, const char* substr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/cpython/Python/remote_debug.h:575,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:577,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:579,1
    - Dst: fstat
      Src: /src/cpython/Python/remote_debug.h:584,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:585,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:587,1
    - Dst: mmap
      Src: /src/cpython/Python/remote_debug.h:591,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:593,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:595,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:603,1
    - Dst: strcmp
      Src: /src/cpython/Python/remote_debug.h:619,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:640,1
    - Dst: munmap
      Src: /src/cpython/Python/remote_debug.h:652,1
    - Dst: close
      Src: /src/cpython/Python/remote_debug.h:654,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:655,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:657,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 4
    argNames:
    - handle
    - secname
    - start_address
    - elf_file
    argTypes:
    - proc_handle_t*
    - char*
    - uintptr_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 561
    functionDepth: 14
    functionLinenumber: 561
    functionLinenumberEnd: 661
    functionName: search_elf_file_for_section
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - open
    - fstat
    - mmap
    - close
    - strcmp
    - munmap
    - strerror
    - PyErr_Format
    linkageType: ''
    returnType: uintptr_t
    signature: "uintptr_t search_elf_file_for_section(\n        proc_handle_t *handle,\n
      \       const char* secname,\n        uintptr_t start_address,\n        const
      char *elf_file)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/cpython/Python/remote_debug.h:667,1
    - Dst: fopen
      Src: /src/cpython/Python/remote_debug.h:669,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:671,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:673,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/remote_debug.h:679,1
    - Dst: fclose
      Src: /src/cpython/Python/remote_debug.h:681,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:682,1
    - Dst: fgets
      Src: /src/cpython/Python/remote_debug.h:690,1
    - Dst: strlen
      Src: /src/cpython/Python/remote_debug.h:691,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/remote_debug.h:696,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/remote_debug.h:698,1
    - Dst: fclose
      Src: /src/cpython/Python/remote_debug.h:699,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:700,1
    - Dst: sscanf
      Src: /src/cpython/Python/remote_debug.h:716,1
    - Dst: strrchr
      Src: /src/cpython/Python/remote_debug.h:725,1
    - Dst: strstr
      Src: /src/cpython/Python/remote_debug.h:732,1
    - Dst: search_elf_file_for_section
      Src: /src/cpython/Python/remote_debug.h:733,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/remote_debug.h:740,1
    - Dst: fclose
      Src: /src/cpython/Python/remote_debug.h:741,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:742,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:744,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - handle
    - secname
    - substr
    argTypes:
    - proc_handle_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 663
    functionDepth: 15
    functionLinenumber: 663
    functionLinenumberEnd: 749
    functionName: search_linux_map_for_section
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 1
    functionsReached:
    - PyMem_Realloc
    - search_elf_file_for_section
    - sscanf
    - strlen
    - strstr
    - sprintf
    - _set_debug_exception_cause
    - fopen
    - fgets
    - strerror
    - PyErr_Format
    - fclose
    - strrchr
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t search_linux_map_for_section(proc_handle_t *handle, const
      char* secname, const char* substr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetExitCodeProcess
      Src: /src/cpython/Python/remote_debug.h:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hProcess
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 762
    functionName: is_process_alive
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - GetExitCodeProcess
    linkageType: ''
    returnType: int
    signature: int is_process_alive(HANDLE hProcess)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/cpython/Python/remote_debug.h:765,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/remote_debug.h:767,1
    - Dst: GetLastError
      Src: /src/cpython/Python/remote_debug.h:768,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:769,1
    - Dst: CreateFileMapping
      Src: /src/cpython/Python/remote_debug.h:775,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/remote_debug.h:777,1
    - Dst: GetLastError
      Src: /src/cpython/Python/remote_debug.h:778,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:779,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:782,1
    - Dst: MapViewOfFile
      Src: /src/cpython/Python/remote_debug.h:786,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/remote_debug.h:788,1
    - Dst: GetLastError
      Src: /src/cpython/Python/remote_debug.h:789,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:790,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:793,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:794,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:800,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Python/remote_debug.h:803,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:804,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:805,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:811,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Python/remote_debug.h:814,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:815,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:816,1
    - Dst: strncmp
      Src: /src/cpython/Python/remote_debug.h:825,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Python/remote_debug.h:831,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:832,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:833,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 3
    argNames:
    - mod_path
    - remote_base
    - secname
    argTypes:
    - wchar_t*
    - BYTE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 764
    functionDepth: 15
    functionLinenumber: 764
    functionLinenumberEnd: 836
    functionName: analyze_pe
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - MapViewOfFile
    - CreateFileW
    - strncmp
    - GetLastError
    - PyErr_SetFromWindowsErr
    - UnmapViewOfFile
    - CreateFileMapping
    - PyErr_Format
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void * analyze_pe(const wchar_t* mod_path, BYTE* remote_base, const
      char* secname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CreateToolhelp32Snapshot
      Src: /src/cpython/Python/remote_debug.h:843,1
    - Dst: GetLastError
      Src: /src/cpython/Python/remote_debug.h:844,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/remote_debug.h:847,1
    - Dst: GetLastError
      Src: /src/cpython/Python/remote_debug.h:848,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:849,1
    - Dst: Module32FirstW
      Src: /src/cpython/Python/remote_debug.h:860,1
    - Dst: Module32NextW
      Src: /src/cpython/Python/remote_debug.h:860,1
    - Dst: wcsstr
      Src: /src/cpython/Python/remote_debug.h:862,1
    - Dst: analyze_pe
      Src: /src/cpython/Python/remote_debug.h:863,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/remote_debug.h:870,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - secname
    - substr
    argTypes:
    - proc_handle_t*
    - char*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 839
    functionDepth: 16
    functionLinenumber: 839
    functionLinenumberEnd: 873
    functionName: search_windows_map_for_section
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 1
    functionsReached:
    - CreateToolhelp32Snapshot
    - analyze_pe
    - wcsstr
    - GetLastError
    - PyErr_SetFromWindowsErr
    - Module32NextW
    - PyErr_Format
    - Module32FirstW
    - CloseHandle
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t search_windows_map_for_section(proc_handle_t* handle, const
      char* secname, const wchar_t* substr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: search_windows_map_for_section
      Src: /src/cpython/Python/remote_debug.h:885,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/remote_debug.h:888,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:889,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/remote_debug.h:892,1
    - Dst: search_linux_map_for_section
      Src: /src/cpython/Python/remote_debug.h:896,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/remote_debug.h:899,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:900,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/remote_debug.h:903,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/remote_debug.h:909,1
    - Dst: search_map_for_section
      Src: /src/cpython/Python/remote_debug.h:910,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/remote_debug.h:916,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:917,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/remote_debug.h:921,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:924,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 878
    functionDepth: 18
    functionLinenumber: 878
    functionLinenumberEnd: 930
    functionName: _Py_RemoteDebug_GetPyRuntimeAddress
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 1
    functionsReached:
    - _PyErr_ChainExceptions1
    - PyErr_GetRaisedException
    - search_windows_map_for_section
    - _set_debug_exception_cause
    - search_linux_map_for_section
    - PyErr_Format
    - PyErr_Clear
    - search_map_for_section
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_RemoteDebug_GetPyRuntimeAddress(proc_handle_t* handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/cpython/Python/remote_debug.h:938,1
    - Dst: open
      Src: /src/cpython/Python/remote_debug.h:940,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/remote_debug.h:942,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:943,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 934
    functionDepth: 14
    functionLinenumber: 934
    functionLinenumberEnd: 948
    functionName: open_proc_mem_fd
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 1
    functionsReached:
    - open
    - sprintf
    - _set_debug_exception_cause
    - strerror
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int open_proc_mem_fd(proc_handle_t *handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_proc_mem_fd
      Src: /src/cpython/Python/remote_debug.h:956,1
    - Dst: preadv
      Src: /src/cpython/Python/remote_debug.h:970,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/remote_debug.h:972,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:973,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - handle
    - remote_address
    - len
    - dst
    argTypes:
    - proc_handle_t*
    - uintptr_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 952
    functionDepth: 15
    functionLinenumber: 952
    functionLinenumberEnd: 983
    functionName: read_remote_memory_fallback
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 0
    functionsReached:
    - preadv
    - _set_debug_exception_cause
    - strerror
    - PyErr_SetFromErrno
    - open_proc_mem_fd
    linkageType: ''
    returnType: int
    signature: int read_remote_memory_fallback(proc_handle_t *handle, uintptr_t remote_address,
      size_t len, void* dst)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ReadProcessMemory
      Src: /src/cpython/Python/remote_debug.h:995,1
    - Dst: is_process_alive
      Src: /src/cpython/Python/remote_debug.h:998,1
    - Dst: _set_errno
      Src: /src/cpython/Python/remote_debug.h:999,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/remote_debug.h:1000,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/remote_debug.h:1003,1
    - Dst: GetLastError
      Src: /src/cpython/Python/remote_debug.h:1004,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:1005,1
    - Dst: read_remote_memory_fallback
      Src: /src/cpython/Python/remote_debug.h:1016,1
    - Dst: process_vm_readv
      Src: /src/cpython/Python/remote_debug.h:1029,1
    - Dst: read_remote_memory_fallback
      Src: /src/cpython/Python/remote_debug.h:1032,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/remote_debug.h:1034,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:1038,1
    - Dst: strerror
      Src: /src/cpython/Python/remote_debug.h:1041,1
    - Dst: mach_vm_read_overwrite
      Src: /src/cpython/Python/remote_debug.h:1050,1
    - Dst: err_get_code
      Src: /src/cpython/Python/remote_debug.h:1058,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:1060,1
    - Dst: task_info
      Src: /src/cpython/Python/remote_debug.h:1070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:1074,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:1078,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:1087,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:1092,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/remote_debug.h:1101,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 4
    argNames:
    - handle
    - remote_address
    - len
    - dst
    argTypes:
    - proc_handle_t*
    - uintptr_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 988
    functionDepth: 16
    functionLinenumber: 988
    functionLinenumberEnd: 1103
    functionName: _Py_RemoteDebug_ReadRemoteMemory
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 1
    functionsReached:
    - mach_vm_read_overwrite
    - ReadProcessMemory
    - _set_errno
    - is_process_alive
    - _set_debug_exception_cause
    - GetLastError
    - PyErr_SetFromWindowsErr
    - read_remote_memory_fallback
    - process_vm_readv
    - strerror
    - PyErr_SetFromErrno
    - task_info
    - PyErr_Format
    - err_get_code
    - Py_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int _Py_RemoteDebug_ReadRemoteMemory(proc_handle_t *handle, uintptr_t
      remote_address, size_t len, void* dst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Python/remote_debug.h:1116,1
    - Dst: memcpy
      Src: /src/cpython/Python/remote_debug.h:1123,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/remote_debug.h:1133,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:1135,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Python/remote_debug.h:1143,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/remote_debug.h:1145,1
    - Dst: memcpy
      Src: /src/cpython/Python/remote_debug.h:1151,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Python/remote_debug.h:1158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - handle
    - addr
    - size
    - out
    argTypes:
    - proc_handle_t*
    - uintptr_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1105
    functionDepth: 17
    functionLinenumber: 1105
    functionLinenumberEnd: 1159
    functionName: _Py_RemoteDebug_PagedReadRemoteMemory
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 19
    functionsReached:
    - _Py_RemoteDebug_ReadRemoteMemory
    - _set_debug_exception_cause
    - PyMem_RawMalloc
    - memcpy
    - PyErr_Clear
    linkageType: ''
    returnType: UNUSED
    signature: "UNUSED _Py_RemoteDebug_PagedReadRemoteMemory(proc_handle_t *handle,\n
      \                                     uintptr_t addr,\n                                      size_t
      size,\n                                      void *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_GetPyRuntimeAddress
      Src: /src/cpython/Python/remote_debug.h:1167,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/remote_debug.h:1169,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debug.h:1170,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:1174,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Python/remote_debug.h:1178,1
    - Dst: _set_debug_exception_cause
      Src: /src/cpython/Python/remote_debug.h:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - runtime_start_address
    - debug_offsets
    argTypes:
    - proc_handle_t*
    - uintptr_t*
    - _Py_DebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1161
    functionDepth: 19
    functionLinenumber: 1161
    functionLinenumberEnd: 1183
    functionName: _Py_RemoteDebug_ReadDebugOffsets
    functionSourceFile: /src/cpython/Python/remote_debug.h
    functionUses: 2
    functionsReached:
    - _Py_RemoteDebug_GetPyRuntimeAddress
    - PyErr_Occurred
    - _Py_RemoteDebug_ReadRemoteMemory
    - _set_debug_exception_cause
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int _Py_RemoteDebug_ReadDebugOffsets(\n    proc_handle_t *handle,\n
      \   uintptr_t *runtime_start_address,\n    _Py_DebugOffsets* debug_offsets\n)"
  - 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: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: INSTRUCTION_STATS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 225
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTRUCTION_STATS(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: INSTRUCTION_STATS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 225
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTRUCTION_STATS(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 15
    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: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: DISPATCH_GOTO
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH_GOTO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: JUMP_TO_LABEL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 137
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_LABEL(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: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: JUMP_TO_PREDICTED
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_PREDICTED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: JUMP_TO_PREDICTED
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_PREDICTED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 173
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LABEL(name)
  - 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: TARGET
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 15
    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: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: DISPATCH_GOTO
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH_GOTO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: JUMP_TO_LABEL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 137
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_LABEL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: JUMP_TO_PREDICTED
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_PREDICTED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 173
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LABEL(name)
  - 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: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 15
    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: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: DISPATCH_GOTO
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH_GOTO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: JUMP_TO_LABEL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 137
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_LABEL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: JUMP_TO_PREDICTED
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_PREDICTED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 173
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LABEL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: PRE_DISPATCH_GOTO
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRE_DISPATCH_GOTO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: PRE_DISPATCH_GOTO
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRE_DISPATCH_GOTO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: LLTRACE_RESUME_FRAME
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LLTRACE_RESUME_FRAME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: LLTRACE_RESUME_FRAME
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LLTRACE_RESUME_FRAME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tstate
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: QSBR_QUIESCENT_STATE
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QSBR_QUIESCENT_STATE(tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: DISPATCH
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 224
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: DISPATCH_SAME_OPARG
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH_SAME_OPARG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NEW_FRAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: DISPATCH_INLINED
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH_INLINED(NEW_FRAME)
  - 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: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: GETITEM
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETITEM(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_macros.h:182,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/ceval_macros.h:182,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_macros.h:183,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_macros.h:184,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval_macros.h:184,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval_macros.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyTuple_Check(v))
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/cpython/Python/ceval_macros.h
    - condition: (i >= 0)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Python/ceval_macros.h
    - condition: (i < PyTuple_GET_SIZE(v))
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/cpython/Python/ceval_macros.h
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: GETITEM
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 22
    functionsReached:
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GETITEM(PyObject *v, Py_ssize_t i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: INSTR_OFFSET
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 8
    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: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: NEXTOPARG
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: JUMPBY
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMPBY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: SKIP_OVER
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_OVER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: STACK_LEVEL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 7
    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: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: STACK_SIZE
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_SIZE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: WITHIN_STACK_BOUNDS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 195
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITHIN_STACK_BOUNDS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: GETLOCAL
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETLOCAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INSTNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: UPDATE_MISS_STATS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_MISS_STATS(INSTNAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INSTNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: UPDATE_MISS_STATS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_MISS_STATS(INSTNAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: LOCK_OBJECT
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_OBJECT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: UNLOCK_OBJECT
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_OBJECT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: LOCK_OBJECT
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_OBJECT(op)
  - 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: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: UNLOCK_OBJECT
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_OBJECT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: GLOBALS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBALS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: BUILTINS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILTINS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: LOCALS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCALS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: CONSTS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONSTS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: NAMES
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMES()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: DTRACE_FUNCTION_ENTRY
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTRACE_FUNCTION_ENTRY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - COUNTER
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: ADAPTIVE_COUNTER_TRIGGERS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADAPTIVE_COUNTER_TRIGGERS(COUNTER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - COUNTER
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: ADVANCE_ADAPTIVE_COUNTER
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADVANCE_ADAPTIVE_COUNTER(COUNTER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - COUNTER
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: PAUSE_ADAPTIVE_COUNTER
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAUSE_ADAPTIVE_COUNTER(COUNTER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bitset
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: RECORD_BRANCH_TAKEN
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECORD_BRANCH_TAKEN(bitset, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - src
    - ','
    - dest
    - ','
    - event
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 324
    functionName: INSTRUMENTED_JUMP
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTRUMENTED_JUMP(src, dest, event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CheckRecursiveCallPy
      Src: /src/cpython/Python/ceval_macros.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: _Py_EnterRecursivePy
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 2
    functionsReached:
    - _Py_CheckRecursiveCallPy
    linkageType: ''
    returnType: int
    signature: int _Py_EnterRecursivePy(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: _Py_LeaveRecursiveCallPy
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_LeaveRecursiveCallPy(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OFFSET
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: LOAD_IP
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_IP(OFFSET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: LOAD_SP
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: SAVE_SP
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAVE_SP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXECUTOR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: TIER1_TO_TIER2
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIER1_TO_TIER2(EXECUTOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXECUTOR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: TIER2_TO_TIER2
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIER2_TO_TIER2(EXECUTOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TARGET
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 382
    functionName: GOTO_TIER_ONE
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOTO_TIER_ONE(TARGET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 384
    functionName: CURRENT_OPARG
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPARG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: CURRENT_OPERAND0
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: CURRENT_OPERAND1
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: CURRENT_TARGET
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_TARGET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: JUMP_TO_JUMP_TARGET
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_JUMP_TARGET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: JUMP_TO_ERROR
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ARGS
    - ','
    - ARG_COUNT
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: STACKREFS_TO_PYOBJECTS
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACKREFS_TO_PYOBJECTS(ARGS, ARG_COUNT, NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: STACKREFS_TO_PYOBJECTS_CLEANUP
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACKREFS_TO_PYOBJECTS_CLEANUP(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: CONVERSION_FAILED
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERSION_FAILED(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY
      Src: /src/cpython/Python/ceval_macros.h:409,1
    - Dst: QSBR_QUIESCENT_STATE
      Src: /src/cpython/Python/ceval_macros.h:410,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/ceval_macros.h:411,1
    - Dst: _Py_HandlePending
      Src: /src/cpython/Python/ceval_macros.h:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 407
    functionDepth: 14
    functionLinenumber: 407
    functionLinenumberEnd: 415
    functionName: check_periodics
    functionSourceFile: /src/cpython/Python/ceval_macros.h
    functionUses: 23
    functionsReached:
    - _Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY
    - _Py_atomic_load_uintptr_relaxed
    - QSBR_QUIESCENT_STATE
    - _Py_HandlePending
    linkageType: ''
    returnType: int
    signature: int check_periodics(PyThreadState *tstate)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:52,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:54,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:54,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:54,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:54,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:54,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:71,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:78,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:106,1
    - Dst: builtin___import___impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:110,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 39
    functionDepth: 13
    functionLinenumber: 39
    functionLinenumberEnd: 114
    functionName: builtin___import__
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - builtin___import___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin___import__(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:211,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:218,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:219,1
    - Dst: builtin_format_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 6
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: builtin_format
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - builtin_format_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_format(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:280,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:280,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:280,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:280,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:280,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:280,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:280,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:297,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:306,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:312,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:315,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:316,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:320,1
    - Dst: strlen
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:324,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:325,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:333,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:341,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:350,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:351,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:362,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:363,1
    - Dst: builtin_compile_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:367,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 80
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 265
    functionDepth: 17
    functionLinenumber: 265
    functionLinenumberEnd: 371
    functionName: builtin_compile
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_compile_impl
    - PyObject_IsTrue
    - PyUnicode_FSDecoder
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyLong_AsInt
    - _Py_ID
    - PyErr_SetString
    - PyErr_Occurred
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_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/cpython/Python/clinic/bltinmodule.c.h:392,1
    - Dst: builtin_divmod_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 401
    functionName: builtin_divmod
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_divmod_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_divmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:435,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:437,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:437,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:454,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:459,1
    - Dst: builtin_eval_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:476,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: 480
      start: 422
    functionDepth: 13
    functionLinenumber: 422
    functionLinenumberEnd: 480
    functionName: builtin_eval
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_eval_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:516,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:518,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:518,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:518,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:535,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:541,1
    - Dst: builtin_exec_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:568,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: 572
      start: 503
    functionDepth: 19
    functionLinenumber: 503
    functionLinenumberEnd: 572
    functionName: builtin_exec
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - builtin_exec_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: builtin_globals_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 593
    functionName: builtin_globals
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/bltinmodule.c.h:616,1
    - Dst: builtin_hasattr_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 625
    functionName: builtin_hasattr
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: builtin_id_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 650
    functionName: builtin_id
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_id_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_id(PyObject *self, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:675,1
    - Dst: builtin_setattr_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 685
    functionName: builtin_setattr
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_setattr_impl
    - _PyArg_CheckPositional
    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/cpython/Python/clinic/bltinmodule.c.h:708,1
    - Dst: builtin_delattr_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: builtin_delattr
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_delattr_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_delattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:775,1
    - Dst: builtin_anext_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:784,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 788
    functionName: builtin_anext
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_anext_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_anext(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: builtin_locals_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 13
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: builtin_locals
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:877,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:879,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:879,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:879,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:896,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:901,1
    - Dst: builtin_pow_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:913,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 864
    functionDepth: 4
    functionLinenumber: 864
    functionLinenumberEnd: 917
    functionName: builtin_pow
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - builtin_pow_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:955,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:957,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:957,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:957,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:957,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:975,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:983,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1009,1
    - Dst: builtin_print_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1016,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 942
    functionDepth: 7
    functionLinenumber: 942
    functionLinenumberEnd: 1020
    functionName: builtin_print
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    - builtin_print_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1046,1
    - Dst: builtin_input_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1054,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1040
    functionDepth: 7
    functionLinenumber: 1040
    functionLinenumberEnd: 1058
    functionName: builtin_input
    functionSourceFile: /src/cpython/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: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1099,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1101,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1101,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1118,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1122,1
    - Dst: builtin_round_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1086
    functionDepth: 6
    functionLinenumber: 1086
    functionLinenumberEnd: 1137
    functionName: builtin_round
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - builtin_round_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1168,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1170,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1187,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1191,1
    - Dst: builtin_sum_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1155
    functionDepth: 6
    functionLinenumber: 1155
    functionLinenumberEnd: 1206
    functionName: builtin_sum
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_sum_impl
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyVarObject_HEAD_INIT
    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/cpython/Python/clinic/bltinmodule.c.h:1232,1
    - Dst: builtin_isinstance_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1225
    functionDepth: 8
    functionLinenumber: 1225
    functionLinenumberEnd: 1241
    functionName: builtin_isinstance
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/bltinmodule.c.h:1267,1
    - Dst: builtin_issubclass_impl
      Src: /src/cpython/Python/clinic/bltinmodule.c.h:1272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1260
    functionDepth: 8
    functionLinenumber: 1260
    functionLinenumberEnd: 1276
    functionName: builtin_issubclass
    functionSourceFile: /src/cpython/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_issubclass_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/marshal.c.h:50,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/marshal.c.h:52,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/marshal.c.h:69,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/marshal.c.h:75,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/marshal.c.h:86,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/marshal.c.h:87,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/marshal.c.h:94,1
    - Dst: marshal_dump_impl
      Src: /src/cpython/Python/clinic/marshal.c.h:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 37
    functionDepth: 8
    functionLinenumber: 37
    functionLinenumberEnd: 103
    functionName: marshal_dump
    functionSourceFile: /src/cpython/Python/clinic/marshal.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - marshal_dump_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/marshal.c.h:142,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/marshal.c.h:144,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/marshal.c.h:161,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/marshal.c.h:165,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/marshal.c.h:174,1
    - Dst: marshal_load_impl
      Src: /src/cpython/Python/clinic/marshal.c.h:179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 129
    functionDepth: 17
    functionLinenumber: 129
    functionLinenumberEnd: 183
    functionName: marshal_load
    functionSourceFile: /src/cpython/Python/clinic/marshal.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - marshal_load_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/marshal.c.h:221,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/marshal.c.h:223,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/marshal.c.h:240,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/marshal.c.h:245,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/marshal.c.h:255,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/marshal.c.h:256,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/marshal.c.h:263,1
    - Dst: marshal_dumps_impl
      Src: /src/cpython/Python/clinic/marshal.c.h:268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 208
    functionDepth: 8
    functionLinenumber: 208
    functionLinenumberEnd: 272
    functionName: marshal_dumps
    functionSourceFile: /src/cpython/Python/clinic/marshal.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - marshal_dumps_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/marshal.c.h:305,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/marshal.c.h:307,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/marshal.c.h:324,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/marshal.c.h:328,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/clinic/marshal.c.h:333,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/marshal.c.h:339,1
    - Dst: marshal_loads_impl
      Src: /src/cpython/Python/clinic/marshal.c.h:344,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/clinic/marshal.c.h:349,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 292
    functionDepth: 17
    functionLinenumber: 292
    functionLinenumberEnd: 353
    functionName: marshal_loads
    functionSourceFile: /src/cpython/Python/clinic/marshal.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - marshal_loads_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/sysmodule.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:39,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/sysmodule.c.h:58,1
    - Dst: sys_addaudithook_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 24
    functionDepth: 9
    functionLinenumber: 24
    functionLinenumberEnd: 68
    functionName: sys_addaudithook
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - sys_addaudithook_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_addaudithook(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/sysmodule.c.h:89,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/sysmodule.c.h:92,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/sysmodule.c.h:93,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/clinic/sysmodule.c.h:97,1
    - Dst: strlen
      Src: /src/cpython/Python/clinic/sysmodule.c.h:101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/clinic/sysmodule.c.h:102,1
    - Dst: _PyTuple_FromArray
      Src: /src/cpython/Python/clinic/sysmodule.c.h:105,1
    - Dst: sys_audit_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:109,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/clinic/sysmodule.c.h:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 14
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: sys_audit
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyTuple_FromArray
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - sys_audit_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_audit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/sysmodule.c.h:148,1
    - Dst: sys_excepthook_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 19
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: sys_excepthook
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_excepthook_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_excepthook(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_exception_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: sys_exception
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_exception_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_exception(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_exc_info_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 6
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: sys_exc_info
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.c.h:243,1
    - Dst: sys_exit_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 237
    functionDepth: 14
    functionLinenumber: 237
    functionLinenumberEnd: 255
    functionName: sys_exit
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_exit_impl
    - _PyArg_CheckPositional
    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/cpython/Python/clinic/sysmodule.c.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: sys_getdefaultencoding
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.c.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: sys_getfilesystemencoding
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.c.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 10
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: sys_getfilesystemencodeerrors
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/sysmodule.c.h:333,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/sysmodule.c.h:334,1
    - Dst: sys_intern_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 15
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: sys_intern
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - sys_intern_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_intern(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/sysmodule.c.h:363,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/sysmodule.c.h:364,1
    - Dst: sys__is_interned_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:368,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:369,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: sys__is_interned
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - sys__is_interned_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__is_interned(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys__is_immortal_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:398,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:399,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: sys__is_immortal
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - sys__is_immortal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__is_immortal(PyObject *module, PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_gettrace_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: sys_gettrace
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.c.h:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: sys_getprofile
    functionSourceFile: /src/cpython/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_CheckExact
      Src: /src/cpython/Python/clinic/sysmodule.c.h:521,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/clinic/sysmodule.c.h:522,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/clinic/sysmodule.c.h:526,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:527,1
    - Dst: sys_setswitchinterval_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 515
    functionDepth: 15
    functionLinenumber: 515
    functionLinenumberEnd: 535
    functionName: sys_setswitchinterval
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - sys_setswitchinterval_impl
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setswitchinterval(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_getswitchinterval_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:555,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:556,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/clinic/sysmodule.c.h:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 563
    functionName: sys_getswitchinterval
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_FromDouble
    - sys_getswitchinterval_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getswitchinterval(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:587,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:588,1
    - Dst: sys_setrecursionlimit_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 581
    functionDepth: 15
    functionLinenumber: 581
    functionLinenumberEnd: 595
    functionName: sys_setrecursionlimit
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - sys_setrecursionlimit_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setrecursionlimit(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/sysmodule.c.h:627,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:629,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/sysmodule.c.h:648,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:653,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:654,1
    - Dst: sys_set_coroutine_origin_tracking_depth_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 661
    functionName: sys_set_coroutine_origin_tracking_depth
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - sys_set_coroutine_origin_tracking_depth_impl
    - PyVarObject_HEAD_INIT
    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/cpython/Python/clinic/sysmodule.c.h:681,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:682,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 689
    functionName: sys_get_coroutine_origin_tracking_depth
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - sys_get_coroutine_origin_tracking_depth_impl
    - PyLong_FromLong
    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/cpython/Python/clinic/sysmodule.c.h:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 709
    functionName: sys_get_asyncgen_hooks
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.c.h:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: sys_getrecursionlimit
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.c.h:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 757
    functionDepth: 17
    functionLinenumber: 757
    functionLinenumberEnd: 761
    functionName: sys_getwindowsversion
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.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: 18
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: sys__enablelegacywindowsfsencoding
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:821,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:822,1
    - Dst: sys_setdlopenflags_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 815
    functionDepth: 4
    functionLinenumber: 815
    functionLinenumberEnd: 829
    functionName: sys_setdlopenflags
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - sys_setdlopenflags_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setdlopenflags(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getdlopenflags_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: sys_getdlopenflags
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:876,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:877,1
    - Dst: sys_mdebug_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 870
    functionDepth: 4
    functionLinenumber: 870
    functionLinenumberEnd: 884
    functionName: sys_mdebug
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - sys_mdebug_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_mdebug(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_get_int_max_str_digits_impl
      Src: /src/cpython/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: 2
    functionLinenumber: 900
    functionLinenumberEnd: 904
    functionName: sys_get_int_max_str_digits
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_get_int_max_str_digits_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_get_int_max_str_digits(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/sysmodule.c.h:931,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:933,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/sysmodule.c.h:952,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:957,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:958,1
    - Dst: sys_set_int_max_str_digits_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:961,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 965
    functionName: sys_set_int_max_str_digits
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - sys_set_int_max_str_digits_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_set_int_max_str_digits(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_getrefcount_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:990,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/clinic/sysmodule.c.h:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 997
    functionName: sys_getrefcount
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getrefcount_impl
    - PyErr_Occurred
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getrefcount(PyObject *module, PyObject *object)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_gettotalrefcount_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1018,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1019,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1012
    functionDepth: 5
    functionLinenumber: 1012
    functionLinenumberEnd: 1026
    functionName: sys_gettotalrefcount
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - sys_gettotalrefcount_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_gettotalrefcount(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_getallocatedblocks_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1048,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1049,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1042
    functionDepth: 6
    functionLinenumber: 1042
    functionLinenumberEnd: 1056
    functionName: sys_getallocatedblocks
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - sys_getallocatedblocks_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getallocatedblocks(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1083,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1085,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1102,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1106,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1114,1
    - Dst: sys_getunicodeinternedsize_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1120,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1070
    functionDepth: 6
    functionLinenumber: 1070
    functionLinenumberEnd: 1127
    functionName: sys_getunicodeinternedsize
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    - sys_getunicodeinternedsize_impl
    - PyLong_FromSsize_t
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getunicodeinternedsize(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1155,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1162,1
    - Dst: sys__getframe_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1149
    functionDepth: 14
    functionLinenumber: 1149
    functionLinenumberEnd: 1170
    functionName: sys__getframe
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - sys__getframe_impl
    - PyLong_AsInt
    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/cpython/Python/clinic/sysmodule.c.h:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1186
    functionDepth: 12
    functionLinenumber: 1186
    functionLinenumberEnd: 1190
    functionName: sys__current_frames
    functionSourceFile: /src/cpython/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: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__current_exceptions_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1206
    functionDepth: 12
    functionLinenumber: 1206
    functionLinenumberEnd: 1210
    functionName: sys__current_exceptions
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__current_exceptions_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__current_exceptions(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1235,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1239,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1240,1
    - Dst: sys_call_tracing_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1228
    functionDepth: 7
    functionLinenumber: 1228
    functionLinenumberEnd: 1248
    functionName: sys_call_tracing
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - sys_call_tracing_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_call_tracing(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__debugmallocstats_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1265
    functionDepth: 5
    functionLinenumber: 1265
    functionLinenumberEnd: 1269
    functionName: sys__debugmallocstats
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/sysmodule.c.h:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1283
    functionDepth: 18
    functionLinenumber: 1283
    functionLinenumberEnd: 1287
    functionName: sys__clear_type_cache
    functionSourceFile: /src/cpython/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__clear_internal_caches_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 5
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    functionName: sys__clear_internal_caches
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__clear_internal_caches_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__clear_internal_caches(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_is_finalizing_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1323
    functionName: sys_is_finalizing
    functionSourceFile: /src/cpython/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__stats_on_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1339
    functionDepth: 2
    functionLinenumber: 1339
    functionLinenumberEnd: 1343
    functionName: sys__stats_on
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__stats_on_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__stats_on(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__stats_off_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1361
    functionDepth: 2
    functionLinenumber: 1361
    functionLinenumberEnd: 1365
    functionName: sys__stats_off
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__stats_off_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__stats_off(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__stats_clear_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1383
    functionDepth: 2
    functionLinenumber: 1383
    functionLinenumberEnd: 1387
    functionName: sys__stats_clear
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__stats_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__stats_clear(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys__stats_dump_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1413,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1414,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1407
    functionDepth: 5
    functionLinenumber: 1407
    functionLinenumberEnd: 1421
    functionName: sys__stats_dump
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - sys__stats_dump_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__stats_dump(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getandroidapilevel_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1443
    functionName: sys_getandroidapilevel
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1465,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1466,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1470,1
    - Dst: strlen
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1474,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1475,1
    - Dst: sys_activate_stack_trampoline_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1459
    functionDepth: 21
    functionLinenumber: 1459
    functionLinenumberEnd: 1482
    functionName: sys_activate_stack_trampoline
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyUnicode_Check
    - sys_activate_stack_trampoline_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_activate_stack_trampoline(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_deactivate_stack_trampoline_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1498
    functionDepth: 21
    functionLinenumber: 1498
    functionLinenumberEnd: 1502
    functionName: sys_deactivate_stack_trampoline
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_deactivate_stack_trampoline_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_deactivate_stack_trampoline(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_is_stack_trampoline_active_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1516
    functionDepth: 3
    functionLinenumber: 1516
    functionLinenumberEnd: 1520
    functionName: sys_is_stack_trampoline_active
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_is_stack_trampoline_active_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_is_stack_trampoline_active(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_is_remote_debug_enabled_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1534
    functionDepth: 3
    functionLinenumber: 1534
    functionLinenumberEnd: 1538
    functionName: sys_is_remote_debug_enabled
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_is_remote_debug_enabled_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_is_remote_debug_enabled(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1582,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1584,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1584,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1604,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1609,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1610,1
    - Dst: sys_remote_exec_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1614,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1569
    functionDepth: 16
    functionLinenumber: 1569
    functionLinenumberEnd: 1618
    functionName: sys_remote_exec
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_remote_exec_impl
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_remote_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1645,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1647,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1666,1
    - Dst: sys__dump_tracelets_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1632
    functionDepth: 10
    functionLinenumber: 1632
    functionLinenumberEnd: 1676
    functionName: sys__dump_tracelets
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - sys__dump_tracelets_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__dump_tracelets(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1709,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1711,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1728,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1731,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1739,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1740,1
    - Dst: sys__getframemodulename_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1744,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1696
    functionDepth: 10
    functionLinenumber: 1696
    functionLinenumberEnd: 1748
    functionName: sys__getframemodulename
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - sys__getframemodulename_impl
    - _Py_ID
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__getframemodulename(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys__get_cpu_count_config_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1768,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1769,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1762
    functionDepth: 3
    functionLinenumber: 1762
    functionLinenumberEnd: 1776
    functionName: sys__get_cpu_count_config
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - sys__get_cpu_count_config_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__get_cpu_count_config(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__baserepl_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1790
    functionDepth: 5
    functionLinenumber: 1790
    functionLinenumberEnd: 1794
    functionName: sys__baserepl
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__baserepl_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__baserepl(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys__is_gil_enabled_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1815,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1808
    functionDepth: 2
    functionLinenumber: 1808
    functionLinenumberEnd: 1822
    functionName: sys__is_gil_enabled
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - sys__is_gil_enabled_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__is_gil_enabled(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _jit_is_available_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1842,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1843,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1836
    functionDepth: 1
    functionLinenumber: 1836
    functionLinenumberEnd: 1850
    functionName: _jit_is_available
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - _jit_is_available_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _jit_is_available(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _jit_is_enabled_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1870,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1871,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1864
    functionDepth: 2
    functionLinenumber: 1864
    functionLinenumberEnd: 1878
    functionName: _jit_is_enabled
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _jit_is_enabled_impl
    - PyBool_FromLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _jit_is_enabled(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _jit_is_active_impl
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1898,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1899,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/clinic/sysmodule.c.h:1902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1906
    functionName: _jit_is_active
    functionSourceFile: /src/cpython/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - _jit_is_active_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _jit_is_active(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnings_acquire_lock_impl
      Src: /src/cpython/Python/clinic/_warnings.c.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: warnings_acquire_lock
    functionSourceFile: /src/cpython/Python/clinic/_warnings.c.h
    functionUses: 0
    functionsReached:
    - warnings_acquire_lock_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_acquire_lock(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnings_release_lock_impl
      Src: /src/cpython/Python/clinic/_warnings.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: 4
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: warnings_release_lock
    functionSourceFile: /src/cpython/Python/clinic/_warnings.c.h
    functionUses: 0
    functionsReached:
    - warnings_release_lock_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_release_lock(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/_warnings.c.h:87,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:89,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:89,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:89,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:89,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:89,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/_warnings.c.h:106,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/_warnings.c.h:113,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/clinic/_warnings.c.h:131,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/clinic/_warnings.c.h:133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/clinic/_warnings.c.h:134,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/_warnings.c.h:136,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/clinic/_warnings.c.h:155,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/_warnings.c.h:156,1
    - Dst: warnings_warn_impl
      Src: /src/cpython/Python/clinic/_warnings.c.h:161,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 74
    functionDepth: 16
    functionLinenumber: 74
    functionLinenumberEnd: 165
    functionName: warnings_warn
    functionSourceFile: /src/cpython/Python/clinic/_warnings.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyArg_UnpackKeywords
    - _PyNumber_Index
    - PyErr_Occurred
    - _Py_ID
    - PyTuple_Check
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - warnings_warn_impl
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/_warnings.c.h:197,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/_warnings.c.h:199,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/_warnings.c.h:216,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/_warnings.c.h:226,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/_warnings.c.h:233,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/_warnings.c.h:234,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/_warnings.c.h:238,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/_warnings.c.h:239,1
    - Dst: warnings_warn_explicit_impl
      Src: /src/cpython/Python/clinic/_warnings.c.h:265,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: 269
      start: 184
    functionDepth: 15
    functionLinenumber: 184
    functionLinenumberEnd: 269
    functionName: warnings_warn_explicit
    functionSourceFile: /src/cpython/Python/clinic/_warnings.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    - warnings_warn_explicit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_warn_explicit(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnings_filters_mutated_lock_held_impl
      Src: /src/cpython/Python/clinic/_warnings.c.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: warnings_filters_mutated_lock_held
    functionSourceFile: /src/cpython/Python/clinic/_warnings.c.h
    functionUses: 0
    functionsReached:
    - warnings_filters_mutated_lock_held_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_filters_mutated_lock_held(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_copy_context_impl
      Src: /src/cpython/Python/clinic/_contextvars.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/cpython/Python/clinic/_contextvars.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_copy_context_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_copy_context(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/traceback.c.h:35,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/traceback.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/traceback.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/traceback.c.h:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/traceback.c.h:37,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/traceback.c.h:55,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/traceback.c.h:61,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Python/clinic/traceback.c.h:61,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/clinic/traceback.c.h:67,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/traceback.c.h:68,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/traceback.c.h:72,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/traceback.c.h:73,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/traceback.c.h:76,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/traceback.c.h:77,1
    - Dst: tb_new_impl
      Src: /src/cpython/Python/clinic/traceback.c.h:80,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 84
    functionName: tb_new
    functionSourceFile: /src/cpython/Python/clinic/traceback.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - tb_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/clinic/traceback.c.h:104,1
    - Dst: traceback_tb_next_get_impl
      Src: /src/cpython/Python/clinic/traceback.c.h:105,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/clinic/traceback.c.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: traceback_tb_next_get
    functionSourceFile: /src/cpython/Python/clinic/traceback.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - traceback_tb_next_get_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      traceback_tb_next_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/clinic/traceback.c.h:129,1
    - Dst: traceback_tb_next_set_impl
      Src: /src/cpython/Python/clinic/traceback.c.h:130,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/clinic/traceback.c.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: traceback_tb_next_set
    functionSourceFile: /src/cpython/Python/clinic/traceback.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - traceback_tb_next_set_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int traceback_tb_next_set(PyObject *self, PyObject *value, void *Py_UNUSED(context))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _imp_lock_held_impl
      Src: /src/cpython/Python/clinic/import.c.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: _imp_lock_held
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/import.c.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: _imp_acquire_lock
    functionSourceFile: /src/cpython/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/cpython/Python/clinic/import.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: 3
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: _imp_release_lock
    functionSourceFile: /src/cpython/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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/import.c.h:97,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/clinic/import.c.h:100,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:101,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/import.c.h:105,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:106,1
    - Dst: _imp__fix_co_filename_impl
      Src: /src/cpython/Python/clinic/import.c.h:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 114
    functionName: _imp__fix_co_filename
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - _imp__fix_co_filename_impl
    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/cpython/Python/clinic/import.c.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: _imp_extension_suffixes
    functionSourceFile: /src/cpython/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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/import.c.h:161,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:162,1
    - Dst: _imp_init_frozen_impl
      Src: /src/cpython/Python/clinic/import.c.h:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 16
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: _imp_init_frozen
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _imp_init_frozen_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_init_frozen(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/import.c.h:205,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/import.c.h:207,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/import.c.h:224,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/import.c.h:228,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/import.c.h:233,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:234,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/import.c.h:241,1
    - Dst: _imp_find_frozen_impl
      Src: /src/cpython/Python/clinic/import.c.h:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 192
    functionDepth: 12
    functionLinenumber: 192
    functionLinenumberEnd: 250
    functionName: _imp_find_frozen
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - _Py_ID
    - _imp_find_frozen_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_find_frozen(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/import.c.h:272,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/import.c.h:275,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:276,1
    - Dst: _imp_get_frozen_object_impl
      Src: /src/cpython/Python/clinic/import.c.h:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 265
    functionDepth: 13
    functionLinenumber: 265
    functionLinenumberEnd: 289
    functionName: _imp_get_frozen_object
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _imp_get_frozen_object_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_get_frozen_object(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/import.c.h:309,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:310,1
    - Dst: _imp_is_frozen_package_impl
      Src: /src/cpython/Python/clinic/import.c.h:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 303
    functionDepth: 12
    functionLinenumber: 303
    functionLinenumberEnd: 318
    functionName: _imp_is_frozen_package
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _imp_is_frozen_package_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen_package(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/import.c.h:338,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:339,1
    - Dst: _imp_is_builtin_impl
      Src: /src/cpython/Python/clinic/import.c.h:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 347
    functionName: _imp_is_builtin
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _imp_is_builtin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_builtin(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/import.c.h:367,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/import.c.h:368,1
    - Dst: _imp_is_frozen_impl
      Src: /src/cpython/Python/clinic/import.c.h:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 361
    functionDepth: 8
    functionLinenumber: 361
    functionLinenumberEnd: 376
    functionName: _imp_is_frozen
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _imp_is_frozen_impl
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _imp__frozen_module_names_impl
      Src: /src/cpython/Python/clinic/import.c.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 8
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: _imp__frozen_module_names
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp__frozen_module_names_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp__frozen_module_names(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/import.c.h:417,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/import.c.h:418,1
    - Dst: _imp__override_frozen_modules_for_tests_impl
      Src: /src/cpython/Python/clinic/import.c.h:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: _imp__override_frozen_modules_for_tests
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _imp__override_frozen_modules_for_tests_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp__override_frozen_modules_for_tests(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/import.c.h:448,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/import.c.h:449,1
    - Dst: _imp__override_multi_interp_extensions_check_impl
      Src: /src/cpython/Python/clinic/import.c.h:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 442
    functionDepth: 4
    functionLinenumber: 442
    functionLinenumberEnd: 456
    functionName: _imp__override_multi_interp_extensions_check
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _imp__override_multi_interp_extensions_check_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp__override_multi_interp_extensions_check(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/import.c.h:479,1
    - Dst: _imp_create_dynamic_impl
      Src: /src/cpython/Python/clinic/import.c.h:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 472
    functionDepth: 17
    functionLinenumber: 472
    functionLinenumberEnd: 492
    functionName: _imp_create_dynamic
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp_create_dynamic_impl
    - _PyArg_CheckPositional
    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/cpython/Python/clinic/import.c.h:516,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/import.c.h:517,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/clinic/import.c.h:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 510
    functionDepth: 5
    functionLinenumber: 510
    functionLinenumberEnd: 524
    functionName: _imp_exec_dynamic
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _imp_exec_dynamic_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_exec_dynamic(PyObject *module, PyObject *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _imp_exec_builtin_impl
      Src: /src/cpython/Python/clinic/import.c.h:546,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/import.c.h:547,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/clinic/import.c.h:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 540
    functionDepth: 5
    functionLinenumber: 540
    functionLinenumberEnd: 554
    functionName: _imp_exec_builtin
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp_exec_builtin_impl
    - PyErr_Occurred
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_exec_builtin(PyObject *module, PyObject *mod)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/import.c.h:580,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/import.c.h:582,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/import.c.h:582,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/import.c.h:602,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/clinic/import.c.h:607,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/import.c.h:608,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/clinic/import.c.h:611,1
    - Dst: _imp_source_hash_impl
      Src: /src/cpython/Python/clinic/import.c.h:614,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/clinic/import.c.h:619,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 623
    functionName: _imp_source_hash
    functionSourceFile: /src/cpython/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsLong
    - PyErr_Occurred
    - _Py_ID
    - PyObject_GetBuffer
    - PyBuffer_Release
    - _imp_source_hash_impl
    - PyVarObject_HEAD_INIT
    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/cpython/Python/clinic/context.c.h:30,1
    - Dst: _contextvars_Context_get_impl
      Src: /src/cpython/Python/clinic/context.c.h:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 10
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: _contextvars_Context_get
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _contextvars_Context_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_get(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_items_impl
      Src: /src/cpython/Python/clinic/context.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: 4
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: _contextvars_Context_items
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_items_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_items(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_keys_impl
      Src: /src/cpython/Python/clinic/context.c.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: _contextvars_Context_keys
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_keys(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_values_impl
      Src: /src/cpython/Python/clinic/context.c.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: _contextvars_Context_values
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_values_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_values(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_copy_impl
      Src: /src/cpython/Python/clinic/context.c.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: _contextvars_Context_copy
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/context.c.h:143,1
    - Dst: _contextvars_ContextVar_get_impl
      Src: /src/cpython/Python/clinic/context.c.h:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 11
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: _contextvars_ContextVar_get
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _contextvars_ContextVar_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_get(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_ContextVar_set_impl
      Src: /src/cpython/Python/clinic/context.c.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 11
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: _contextvars_ContextVar_set
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_ContextVar_set_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_set(PyObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_ContextVar_reset_impl
      Src: /src/cpython/Python/clinic/context.c.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: _contextvars_ContextVar_reset
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_ContextVar_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_reset(PyObject *self, PyObject *token)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: token_enter_impl
      Src: /src/cpython/Python/clinic/context.c.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: token_enter
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - token_enter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_enter(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/context.c.h:248,1
    - Dst: token_exit_impl
      Src: /src/cpython/Python/clinic/context.c.h:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 258
    functionName: token_exit
    functionSourceFile: /src/cpython/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - token_exit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_exit(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/instrumentation.c.h:25,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:28,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:29,1
    - Dst: monitoring_use_tool_id_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: monitoring_use_tool_id
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - monitoring_use_tool_id_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_use_tool_id(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:56,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:57,1
    - Dst: monitoring_clear_tool_id_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 10
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: monitoring_clear_tool_id
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - monitoring_clear_tool_id_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_clear_tool_id(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:83,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:84,1
    - Dst: monitoring_free_tool_id_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 10
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: monitoring_free_tool_id
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - monitoring_free_tool_id_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_free_tool_id(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:111,1
    - Dst: monitoring_get_tool_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: monitoring_get_tool
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - monitoring_get_tool_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_get_tool(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/instrumentation.c.h:140,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:144,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:148,1
    - Dst: monitoring_register_callback_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 156
    functionName: monitoring_register_callback
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - monitoring_register_callback_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_register_callback(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:176,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:177,1
    - Dst: monitoring_get_events_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:180,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:181,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/clinic/instrumentation.c.h:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 188
    functionName: monitoring_get_events
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromLong
    - monitoring_get_events_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_get_events(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/instrumentation.c.h:208,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:211,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:212,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:215,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:216,1
    - Dst: monitoring_set_events_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 201
    functionDepth: 9
    functionLinenumber: 201
    functionLinenumberEnd: 223
    functionName: monitoring_set_events
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - monitoring_set_events_impl
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_set_events(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/instrumentation.c.h:245,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:248,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:249,1
    - Dst: monitoring_get_local_events_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:253,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:254,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/clinic/instrumentation.c.h:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 261
    functionName: monitoring_get_local_events
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - monitoring_get_local_events_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_get_local_events(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/clinic/instrumentation.c.h:283,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:286,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:287,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instrumentation.c.h:291,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instrumentation.c.h:292,1
    - Dst: monitoring_set_local_events_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 7
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: monitoring_set_local_events
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - monitoring_set_local_events_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_set_local_events(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monitoring_restart_events_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 8
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: monitoring_restart_events
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - monitoring_restart_events_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_restart_events(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monitoring__all_events_impl
      Src: /src/cpython/Python/clinic/instrumentation.c.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 11
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: monitoring__all_events
    functionSourceFile: /src/cpython/Python/clinic/instrumentation.c.h
    functionUses: 0
    functionsReached:
    - monitoring__all_events_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring__all_events(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:28,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:30,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:30,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:48,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:49,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:54,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:54,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:60,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:67,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:68,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:72,1
    - Dst: strlen
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:76,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:77,1
    - Dst: tokenizeriter_new_impl
      Src: /src/cpython/Python/clinic/Python-tokenize.c.h:81,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 15
    functionDepth: 14
    functionLinenumber: 15
    functionLinenumberEnd: 85
    functionName: tokenizeriter_new
    functionSourceFile: /src/cpython/Python/clinic/Python-tokenize.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyTuple_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    - PyErr_SetString
    - tokenizeriter_new_impl
    - _PyArg_BadArgument
    - PyVarObject_HEAD_INIT
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:27,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:31,1
    - Dst: inst_seq_new_impl
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:34,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: inst_seq_new
    functionSourceFile: /src/cpython/Python/clinic/instruction_sequence.c.h
    functionUses: 0
    functionsReached:
    - inst_seq_new_impl
    - _PyArg_NoKeywords
    - _PyArg_NoPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      inst_seq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:66,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:68,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:87,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:92,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:93,1
    - Dst: InstructionSequenceType_use_label_impl
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 100
    functionName: InstructionSequenceType_use_label
    functionSourceFile: /src/cpython/Python/clinic/instruction_sequence.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - InstructionSequenceType_use_label_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_use_label(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:130,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:132,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:132,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:132,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:132,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:132,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:132,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:156,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:162,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:165,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:166,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:169,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:170,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:174,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:177,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:178,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:181,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:182,1
    - Dst: InstructionSequenceType_addop_impl
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:185,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 117
    functionDepth: 6
    functionLinenumber: 117
    functionLinenumberEnd: 189
    functionName: InstructionSequenceType_addop
    functionSourceFile: /src/cpython/Python/clinic/instruction_sequence.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - PyErr_Occurred
    - _Py_ID
    - InstructionSequenceType_addop_impl
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_addop(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InstructionSequenceType_new_label_impl
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:210,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: InstructionSequenceType_new_label
    functionSourceFile: /src/cpython/Python/clinic/instruction_sequence.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - InstructionSequenceType_new_label_impl
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_new_label(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:245,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:247,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:266,1
    - Dst: InstructionSequenceType_add_nested_impl
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 276
    functionName: InstructionSequenceType_add_nested
    functionSourceFile: /src/cpython/Python/clinic/instruction_sequence.c.h
    functionUses: 0
    functionsReached:
    - _Py_ID
    - InstructionSequenceType_add_nested_impl
    - _PyArg_UnpackKeywords
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_add_nested(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InstructionSequenceType_get_nested_impl
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: InstructionSequenceType_get_nested
    functionSourceFile: /src/cpython/Python/clinic/instruction_sequence.c.h
    functionUses: 0
    functionsReached:
    - InstructionSequenceType_get_nested_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_get_nested(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InstructionSequenceType_get_instructions_impl
      Src: /src/cpython/Python/clinic/instruction_sequence.c.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: InstructionSequenceType_get_instructions
    functionSourceFile: /src/cpython/Python/clinic/instruction_sequence.c.h
    functionUses: 0
    functionsReached:
    - InstructionSequenceType_get_instructions_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      InstructionSequenceType_get_instructions(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: PySeqIter_Check
    functionSourceFile: /src/cpython/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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: PyCallIter_Check
    functionSourceFile: /src/cpython/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/cpython/Include/boolobject.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyBool_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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Py_IsTrue
    functionSourceFile: /src/cpython/Include/boolobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IsTrue(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Py_IsFalse
    functionSourceFile: /src/cpython/Include/boolobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IsFalse(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: PyUnicode_Check
    functionSourceFile: /src/cpython/Include/unicodeobject.h
    functionUses: 590
    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: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: PyUnicode_CheckExact
    functionSourceFile: /src/cpython/Include/unicodeobject.h
    functionUses: 98
    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: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PyRange_Check
    functionSourceFile: /src/cpython/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: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: _PyDateTime_HAS_TZINFO
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyDateTime_HAS_TZINFO(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: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: PyDateTime_GET_YEAR
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 4
    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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: PyDateTime_GET_MONTH
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 2
    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: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: PyDateTime_GET_DAY
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 2
    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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: PyDateTime_DATE_GET_HOUR
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 2
    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: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: PyDateTime_DATE_GET_MINUTE
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 2
    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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: PyDateTime_DATE_GET_SECOND
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 2
    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: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: PyDateTime_DATE_GET_MICROSECOND
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: PyDateTime_DATE_GET_FOLD
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: PyDateTime_DATE_GET_TZINFO
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DATE_GET_TZINFO(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: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: PyDateTime_TIME_GET_HOUR
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: PyDateTime_TIME_GET_MINUTE
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: PyDateTime_TIME_GET_SECOND
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: PyDateTime_TIME_GET_MICROSECOND
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: PyDateTime_TIME_GET_FOLD
    functionSourceFile: /src/cpython/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: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: PyDateTime_TIME_GET_TZINFO
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_TIME_GET_TZINFO(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: PyDateTime_DELTA_GET_DAYS
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: PyDateTime_DELTA_GET_SECONDS
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: PyDateTime_DELTA_GET_MICROSECONDS
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    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: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: PyDate_Check
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 3
    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: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: PyDate_CheckExact
    functionSourceFile: /src/cpython/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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: PyDateTime_Check
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 12
    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: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: PyDateTime_CheckExact
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 2
    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: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: PyTime_Check
    functionSourceFile: /src/cpython/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: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: PyTime_CheckExact
    functionSourceFile: /src/cpython/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: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: PyDelta_Check
    functionSourceFile: /src/cpython/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: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: PyDelta_CheckExact
    functionSourceFile: /src/cpython/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: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: PyTZInfo_Check
    functionSourceFile: /src/cpython/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: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: PyTZInfo_CheckExact
    functionSourceFile: /src/cpython/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: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: PyDate_FromDate
    functionSourceFile: /src/cpython/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: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: PyDateTime_FromDateAndTime
    functionSourceFile: /src/cpython/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: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: PyDateTime_FromDateAndTimeAndFold
    functionSourceFile: /src/cpython/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: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: PyTime_FromTime
    functionSourceFile: /src/cpython/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: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: PyTime_FromTimeAndFold
    functionSourceFile: /src/cpython/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: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: PyDelta_FromDSU
    functionSourceFile: /src/cpython/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: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: PyTimeZone_FromOffset
    functionSourceFile: /src/cpython/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: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: PyTimeZone_FromOffsetAndName
    functionSourceFile: /src/cpython/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: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: PyDateTime_FromTimestamp
    functionSourceFile: /src/cpython/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: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: PyDate_FromTimestamp
    functionSourceFile: /src/cpython/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_FromTimestamp(args)
  - 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: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: PyMem_New
    functionSourceFile: /src/cpython/Include/pymem.h
    functionUses: 46
    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: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: PyMem_Resize
    functionSourceFile: /src/cpython/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: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: PyMem_MALLOC
    functionSourceFile: /src/cpython/Include/pymem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_MALLOC(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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: PyMem_NEW
    functionSourceFile: /src/cpython/Include/pymem.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_NEW(type, 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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: PyMem_REALLOC
    functionSourceFile: /src/cpython/Include/pymem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_REALLOC(p, 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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: PyMem_RESIZE
    functionSourceFile: /src/cpython/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:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: PyMem_FREE
    functionSourceFile: /src/cpython/Include/pymem.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_FREE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: PyMem_Del
    functionSourceFile: /src/cpython/Include/pymem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_Del(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: PyMem_DEL
    functionSourceFile: /src/cpython/Include/pymem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_DEL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: S_ISREG
    functionSourceFile: /src/cpython/Include/fileutils.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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: S_ISDIR
    functionSourceFile: /src/cpython/Include/fileutils.h
    functionUses: 5
    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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: S_ISCHR
    functionSourceFile: /src/cpython/Include/fileutils.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISCHR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: S_ISLNK
    functionSourceFile: /src/cpython/Include/fileutils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(x)
  - 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: PyFloat_Check
    functionSourceFile: /src/cpython/Include/floatobject.h
    functionUses: 32
    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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: PyFloat_CheckExact
    functionSourceFile: /src/cpython/Include/floatobject.h
    functionUses: 64
    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: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Py_RETURN_INF
    functionSourceFile: /src/cpython/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:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: PyByteArray_Check
    functionSourceFile: /src/cpython/Include/bytearrayobject.h
    functionUses: 38
    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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: PyByteArray_CheckExact
    functionSourceFile: /src/cpython/Include/bytearrayobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyByteArray_CheckExact(self)
  - 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: PyCursesWindow_Check
    functionSourceFile: /src/cpython/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: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: import_curses
    functionSourceFile: /src/cpython/Include/py_curses.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: import_curses()
  - 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_CheckExact
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: PyCFunction_Check
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 14
    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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: _PyCFunction_CAST
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCFunction_CAST(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: _PyCFunctionFast_CAST
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCFunctionFast_CAST(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: _PyCFunctionWithKeywords_CAST
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCFunctionWithKeywords_CAST(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: _PyCFunctionFastWithKeywords_CAST
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCFunctionFastWithKeywords_CAST(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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: PyCFunction_New
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_New(ML, SELF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ML
    - ','
    - SELF
    - ','
    - MOD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: PyCFunction_NewEx
    functionSourceFile: /src/cpython/Include/methodobject.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_NewEx(ML, SELF, MOD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: _Py_INCREF_STAT_INC
    functionSourceFile: /src/cpython/Include/pystats.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INCREF_STAT_INC()
  - 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: _Py_DECREF_STAT_INC
    functionSourceFile: /src/cpython/Include/pystats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: _Py_INCREF_IMMORTAL_STAT_INC
    functionSourceFile: /src/cpython/Include/pystats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INCREF_IMMORTAL_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: _Py_DECREF_IMMORTAL_STAT_INC
    functionSourceFile: /src/cpython/Include/pystats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_IMMORTAL_STAT_INC()
  - 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: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: PyLong_Check
    functionSourceFile: /src/cpython/Include/longobject.h
    functionUses: 178
    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: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: PyLong_CheckExact
    functionSourceFile: /src/cpython/Include/longobject.h
    functionUses: 76
    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: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: PyLong_AS_LONG
    functionSourceFile: /src/cpython/Include/longobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_AS_LONG(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Include/longobject.h:116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Include/longobject.h:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 14
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: PyLong_AsPid
    functionSourceFile: /src/cpython/Include/longobject.h
    functionUses: 22
    functionsReached:
    - PyErr_SetString
    - PyLong_AsLongAndOverflow
    linkageType: ''
    returnType: int
    signature: int PyLong_AsPid(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: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: PyModule_Check
    functionSourceFile: /src/cpython/Include/moduleobject.h
    functionUses: 24
    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/cpython/Include/moduleobject.h
    functionUses: 2
    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: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: Py_IS_NAN
    functionSourceFile: /src/cpython/Include/pymath.h
    functionUses: 0
    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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Py_IS_INFINITY
    functionSourceFile: /src/cpython/Include/pymath.h
    functionUses: 0
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: Py_IS_FINITE
    functionSourceFile: /src/cpython/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_FINITE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: PyTraceBack_Check
    functionSourceFile: /src/cpython/Include/traceback.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTraceBack_Check(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/cpython/Include/tupleobject.h
    functionUses: 200
    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/cpython/Include/tupleobject.h
    functionUses: 84
    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: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: PyObject_HEAD_INIT
    functionSourceFile: /src/cpython/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: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: PyObject_HEAD_INIT
    functionSourceFile: /src/cpython/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: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: PyVarObject_HEAD_INIT
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 589
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyVarObject_HEAD_INIT(type, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: union
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: _Py_ANONYMOUS
    signature: _Py_ANONYMOUS union
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: _PyObject_CAST
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 15
    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: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: _PyVarObject_CAST
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyVarObject_CAST(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: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: Py_Is
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_Is(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __readgsqword
      Src: /src/cpython/Include/object.h:195,1
    - Dst: __readfsdword
      Src: /src/cpython/Include/object.h:197,1
    - Dst: __getReg
      Src: /src/cpython/Include/object.h:199,1
    - Dst: __readgsqword
      Src: /src/cpython/Include/object.h:201,1
    - Dst: __readfsdword
      Src: /src/cpython/Include/object.h:203,1
    - Dst: __getReg
      Src: /src/cpython/Include/object.h:205,1
    - Dst: _Py__has_builtin
      Src: /src/cpython/Include/object.h:219,1
    - Dst: __builtin_thread_pointer
      Src: /src/cpython/Include/object.h:220,1
    - Dst: _Py__has_builtin
      Src: /src/cpython/Include/object.h:228,1
    - Dst: __builtin_thread_pointer
      Src: /src/cpython/Include/object.h:229,1
    - Dst: __builtin_thread_pointer
      Src: /src/cpython/Include/object.h:239,1
    - Dst: _Py__has_builtin
      Src: /src/cpython/Include/object.h:241,1
    - Dst: __builtin_thread_pointer
      Src: /src/cpython/Include/object.h:242,1
    - Dst: _Py_GetThreadLocal_Addr
      Src: /src/cpython/Include/object.h:250,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 253
    functionName: _Py_ThreadId
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 6
    functionsReached:
    - __builtin_thread_pointer
    - __readfsdword
    - __getReg
    - _Py_GetThreadLocal_Addr
    - _Py__has_builtin
    - __readgsqword
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_ThreadId(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Include/object.h:259,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Include/object.h:259,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Include/object.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: _Py_IsOwnedByCurrentThread
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 12
    functionsReached:
    - _Py_atomic_load_uintptr_relaxed
    - _Py_ThreadId
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: Py_ALWAYS_INLINE _Py_IsOwnedByCurrentThread(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: _Py_TYPE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PyTypeObject
    signature: PyTypeObject * _Py_TYPE(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: Py_TYPE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 1316
    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: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: Py_TYPE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 1316
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TYPE(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/object.h:290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Include/object.h:290,1
    - Dst: assert
      Src: /src/cpython/Include/object.h:291,1
    - Dst: Py_TYPE
      Src: /src/cpython/Include/object.h:291,1
    - Dst: _PyVarObject_CAST
      Src: /src/cpython/Include/object.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_TYPE(ob) != &PyLong_Type)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Include/object.h
    - condition: (Py_TYPE(ob) != &PyBool_Type)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/cpython/Include/object.h
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: Py_SIZE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 246
    functionsReached:
    - Py_TYPE
    - _PyVarObject_CAST
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t Py_SIZE(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: Py_SIZE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 246
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SIZE(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Include/object.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: Py_IS_TYPE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 106
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Py_IS_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: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: Py_IS_TYPE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_TYPE(ob, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Py_SET_TYPE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 9
    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: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: Py_SET_TYPE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_TYPE(ob, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/object.h:316,1
    - Dst: Py_TYPE
      Src: /src/cpython/Include/object.h:316,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Include/object.h:316,1
    - Dst: assert
      Src: /src/cpython/Include/object.h:317,1
    - Dst: Py_TYPE
      Src: /src/cpython/Include/object.h:317,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Include/object.h:317,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Include/object.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ob
    - size
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts:
    - condition: (Py_TYPE(_PyObject_CAST(ob)) != &PyLong_Type)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/cpython/Include/object.h
    - condition: (Py_TYPE(_PyObject_CAST(ob)) != &PyBool_Type)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Include/object.h
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: Py_SET_SIZE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 52
    functionsReached:
    - _PyObject_CAST
    - Py_TYPE
    - assert
    - _Py_atomic_store_ssize_relaxed
    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: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: Py_SET_SIZE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_SIZE(ob, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Include/object.h:430,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Include/object.h:430,1
    - Dst: Py_TYPE
      Src: /src/cpython/Include/object.h:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: PyObject_TypeCheck
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 63
    functionsReached:
    - Py_IS_TYPE
    - Py_TYPE
    - PyType_IsSubtype
    linkageType: ''
    returnType: int
    signature: int PyObject_TypeCheck(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: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: PyObject_TypeCheck
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_TypeCheck(ob, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 674
    functionName: Py_IsNone
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IsNone(x)
  - 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: 733
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 733
    functionName: Py_RETURN_RICHCOMPARE
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_RETURN_RICHCOMPARE(val1, val2, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetFlags
      Src: /src/cpython/Include/object.h:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - type
    - feature
    argTypes:
    - PyTypeObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 805
    functionName: PyType_HasFeature
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 48
    functionsReached:
    - PyType_GetFlags
    linkageType: ''
    returnType: int
    signature: int PyType_HasFeature(PyTypeObject *type, unsigned long feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 808
    functionName: PyType_FastSubclass
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_FastSubclass(type, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FastSubclass
      Src: /src/cpython/Include/object.h:810,1
    - Dst: Py_TYPE
      Src: /src/cpython/Include/object.h:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 811
    functionName: PyType_Check
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 98
    functionsReached:
    - Py_TYPE
    - PyType_FastSubclass
    linkageType: ''
    returnType: int
    signature: int PyType_Check(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: 814
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 814
    functionName: PyType_Check
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 98
    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: 818
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 818
    functionName: _PyType_CAST
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyType_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Include/object.h:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 821
    functionName: PyType_CheckExact
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 2
    functionsReached:
    - Py_IS_TYPE
    linkageType: ''
    returnType: int
    signature: int PyType_CheckExact(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: 824
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 824
    functionName: PyType_CheckExact
    functionSourceFile: /src/cpython/Include/object.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_CheckExact(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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: PyImport_ImportModuleEx
    functionSourceFile: /src/cpython/Include/import.h
    functionUses: 1
    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: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: PyMemoryView_Check
    functionSourceFile: /src/cpython/Include/memoryobject.h
    functionUses: 7
    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: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: PyWeakref_CheckRef
    functionSourceFile: /src/cpython/Include/weakrefobject.h
    functionUses: 0
    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: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: PyWeakref_CheckRefExact
    functionSourceFile: /src/cpython/Include/weakrefobject.h
    functionUses: 3
    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: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: PyWeakref_CheckProxy
    functionSourceFile: /src/cpython/Include/weakrefobject.h
    functionUses: 3
    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: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: PyWeakref_Check
    functionSourceFile: /src/cpython/Include/weakrefobject.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWeakref_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - ','
    - LEVEL
    - ','
    - SERIAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: _Py_PACK_FULL_VERSION
    functionSourceFile: /src/cpython/Include/patchlevel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_PACK_FULL_VERSION(X, Y, Z, LEVEL, SERIAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PyFrozenSet_CheckExact
    functionSourceFile: /src/cpython/Include/setobject.h
    functionUses: 12
    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: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: PyFrozenSet_Check
    functionSourceFile: /src/cpython/Include/setobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrozenSet_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: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: PyAnySet_CheckExact
    functionSourceFile: /src/cpython/Include/setobject.h
    functionUses: 8
    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: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: PyAnySet_Check
    functionSourceFile: /src/cpython/Include/setobject.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAnySet_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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: PySet_CheckExact
    functionSourceFile: /src/cpython/Include/setobject.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySet_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: PySet_Check
    functionSourceFile: /src/cpython/Include/setobject.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySet_Check(ob)
  - 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/cpython/Include/pydtrace.h
    functionUses: 0
    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/cpython/Include/pydtrace.h
    functionUses: 0
    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/cpython/Include/pydtrace.h
    functionUses: 0
    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/cpython/Include/pydtrace.h
    functionUses: 2
    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/cpython/Include/pydtrace.h
    functionUses: 2
    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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Include/pydtrace.h
    functionUses: 2
    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/cpython/Include/pydtrace.h
    functionUses: 2
    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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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:
    - (
    - op
    - ','
    - typeobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: PyObject_INIT
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_INIT(op, typeobj)
  - 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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: PyObject_INIT_VAR
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_INIT_VAR(op, typeobj, size)
  - 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: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: PyObject_New
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_New(type, typeobj)
  - 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: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: PyObject_NEW
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 3
    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: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: PyObject_NewVar
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_NewVar(type, typeobj, n)
  - 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: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: PyObject_NEW_VAR
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 1
    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: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: PyType_IS_GC
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 13
    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: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: PyObject_GC_Resize
    functionSourceFile: /src/cpython/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: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: PyObject_GC_New
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 108
    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: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: PyObject_GC_NewVar
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 14
    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: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: Py_VISIT
    functionSourceFile: /src/cpython/Include/objimpl.h
    functionUses: 301
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_VISIT(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: PySlice_Check
    functionSourceFile: /src/cpython/Include/sliceobject.h
    functionUses: 39
    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: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: PySlice_GetIndicesEx
    functionSourceFile: /src/cpython/Include/sliceobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySlice_GetIndicesEx(slice, length, start, stop, step, slicelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: _Py_ALIGNED_DEF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGNED_DEF(N, T)
  - 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: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: Py_MIN
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 76
    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: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: Py_MAX
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 64
    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: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: Py_ABS
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 7
    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: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: _Py_XSTRINGIFY
    functionSourceFile: /src/cpython/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: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: Py_STRINGIFY
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 21
    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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: Py_MEMBER_SIZE
    functionSourceFile: /src/cpython/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: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: Py_CHARMASK
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 22
    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: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Py_BUILD_ASSERT_EXPR
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 2
    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: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Py_BUILD_ASSERT_EXPR
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 2
    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: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Py_BUILD_ASSERT
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BUILD_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: Py_BUILD_ASSERT
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 15
    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: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: Py_ARRAY_LENGTH
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 78
    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: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: Py_ARRAY_LENGTH
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 78
    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: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: PyDoc_VAR
    functionSourceFile: /src/cpython/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: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: PyDoc_STRVAR
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    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: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: PyDoc_STR
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 2
    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: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: PyDoc_STR
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 2
    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: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: _Py_SIZE_ROUND_DOWN
    functionSourceFile: /src/cpython/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: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: _Py_SIZE_ROUND_UP
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 3
    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: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: _Py_ALIGN_DOWN
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 3
    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: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: _Py_ALIGN_UP
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 4
    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: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: _Py_IS_ALIGNED
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 11
    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: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: Py_UNUSED
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 1
    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: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: Py_UNUSED
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 1
    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: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: Py_UNUSED
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 1
    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: 249
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: Py_UNREACHABLE
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: Py_UNREACHABLE
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: Py_UNREACHABLE
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: Py_UNREACHABLE
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: Py_UNREACHABLE
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Py_UNREACHABLE
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: _Py_CONTAINER_OF
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_CONTAINER_OF(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXPR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: _Py_RVALUE
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_RVALUE(EXPR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: _Py_IS_TYPE_SIGNED
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IS_TYPE_SIGNED(type)
  - 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: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: _Py_PACK_VERSION
    functionSourceFile: /src/cpython/Include/pymacro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_PACK_VERSION(X, Y)
  - 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: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: PyObject_DelAttrString
    functionSourceFile: /src/cpython/Include/abstract.h
    functionUses: 2
    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: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: PyObject_DelAttr
    functionSourceFile: /src/cpython/Include/abstract.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_DelAttr(O, A)
  - 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: 821
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 821
    functionName: PyMapping_DelItemString
    functionSourceFile: /src/cpython/Include/abstract.h
    functionUses: 1
    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: 831
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 831
    functionName: PyMapping_DelItem
    functionSourceFile: /src/cpython/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:
    - (
    - RTYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: PyAPI_FUNC
    functionSourceFile: /src/cpython/Include/exports.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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PyAPI_DATA
    functionSourceFile: /src/cpython/Include/exports.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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: PyAPI_FUNC
    functionSourceFile: /src/cpython/Include/exports.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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: PyAPI_DATA
    functionSourceFile: /src/cpython/Include/exports.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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: PyAPI_FUNC
    functionSourceFile: /src/cpython/Include/exports.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: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: PyAPI_DATA
    functionSourceFile: /src/cpython/Include/exports.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAPI_DATA(RTYPE)
  - 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: PyComplex_Check
    functionSourceFile: /src/cpython/Include/complexobject.h
    functionUses: 13
    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: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: PyComplex_CheckExact
    functionSourceFile: /src/cpython/Include/complexobject.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyComplex_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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: _Py__has_builtin
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py__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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: _Py__has_builtin
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py__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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: _Py__has_attribute
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py__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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: _Py__has_attribute
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py__has_attribute(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: _Py_STATIC_CAST
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_STATIC_CAST(type, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: _Py_STATIC_CAST
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_STATIC_CAST(type, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: _Py_CAST
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_CAST(type, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: _Py_FUNC_CAST
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_FUNC_CAST(T, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: Py_LOCAL
    functionSourceFile: /src/cpython/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: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: Py_LOCAL_INLINE
    functionSourceFile: /src/cpython/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: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: Py_LOCAL
    functionSourceFile: /src/cpython/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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: Py_LOCAL_INLINE
    functionSourceFile: /src/cpython/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: 7
    argNames:
    - (
    - TYPE
    - ','
    - I
    - ','
    - J
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Py_ARITHMETIC_RIGHT_SHIFT
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 5
    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: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: Py_ARITHMETIC_RIGHT_SHIFT
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 5
    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: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: Py_FORCE_EXPANSION
    functionSourceFile: /src/cpython/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: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: Py_SAFE_DOWNCAST
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 43
    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: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: Py_SAFE_DOWNCAST
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VERSION_UNUSED
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: Py_DEPRECATED
    functionSourceFile: /src/cpython/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: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: Py_DEPRECATED
    functionSourceFile: /src/cpython/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:
    - (
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: _Py_DEPRECATED_EXTERNALLY
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DEPRECATED_EXTERNALLY(version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: Py_GCC_ATTRIBUTE
    functionSourceFile: /src/cpython/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: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: Py_ALIGNED
    functionSourceFile: /src/cpython/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: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: Py_LL
    functionSourceFile: /src/cpython/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: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: Py_ULL
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ULL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: _Py_TYPEOF
    functionSourceFile: /src/cpython/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_TYPEOF(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - refcnt
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: _Py_REF_SHARED
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_REF_SHARED(refcnt, flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:106,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Include/refcount.h:110,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/refcount.h:111,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Include/refcount.h:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: _Py_REFCNT
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 1
    functionsReached:
    - Py_ARITHMETIC_RIGHT_SHIFT
    - _Py_atomic_load_ssize_relaxed
    - _Py_STATIC_CAST
    - _Py_atomic_load_uint32_relaxed
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_REFCNT(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: Py_REFCNT
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 79
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_REFCNT(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:124,1
    - Dst: _Py_CAST
      Src: /src/cpython/Include/refcount.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: _Py_IsImmortal
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 49
    functionsReached:
    - _Py_CAST
    - _Py_atomic_load_uint32_relaxed
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: Py_ALWAYS_INLINE _Py_IsImmortal(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: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: _Py_IsImmortal
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IsImmortal(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: _Py_IsStaticImmortal
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: Py_ALWAYS_INLINE _Py_IsStaticImmortal(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: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: _Py_IsStaticImmortal
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IsStaticImmortal(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/refcount.h:150,1
    - Dst: _Py_SetRefcnt
      Src: /src/cpython/Include/refcount.h:154,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Include/refcount.h:160,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Include/refcount.h:170,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/refcount.h:180,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Include/refcount.h:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ob
    - refcnt
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (refcnt >= 0)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Include/refcount.h
    constantsTouched: []
    func_position:
      end: 193
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 193
    functionName: Py_SET_REFCNT
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 9
    functionsReached:
    - _Py_IsOwnedByCurrentThread
    - assert
    - _Py_STATIC_CAST
    - _Py_SetRefcnt
    - _Py_REF_SHARED
    - _Py_IsImmortal
    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: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: Py_SET_REFCNT
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_REFCNT(ob, refcnt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IncRef
      Src: /src/cpython/Include/refcount.h:257,1
    - Dst: Py_IncRef
      Src: /src/cpython/Include/refcount.h:259,1
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:265,1
    - Dst: _Py_INCREF_IMMORTAL_STAT_INC
      Src: /src/cpython/Include/refcount.h:268,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Include/refcount.h:272,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:273,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Include/refcount.h:276,1
    - Dst: _Py_INCREF_IMMORTAL_STAT_INC
      Src: /src/cpython/Include/refcount.h:282,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Include/refcount.h:287,1
    - Dst: _Py_INCREF_IMMORTAL_STAT_INC
      Src: /src/cpython/Include/refcount.h:288,1
    - Dst: _Py_INCREF_STAT_INC
      Src: /src/cpython/Include/refcount.h:293,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Include/refcount.h:296,1
    - Dst: _Py_INCREF_IncRefTotal
      Src: /src/cpython/Include/refcount.h:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 301
    functionName: Py_INCREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 308
    functionsReached:
    - _Py_IncRef
    - _Py_IsOwnedByCurrentThread
    - _Py_INCREF_STAT_INC
    - _Py_atomic_store_uint32_relaxed
    - _Py_atomic_add_ssize
    - _Py_atomic_load_uint32_relaxed
    - _Py_INCREF_IncRefTotal
    - _Py_INCREF_IMMORTAL_STAT_INC
    - Py_IncRef
    - _Py_IsImmortal
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: Py_ALWAYS_INLINE 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: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: Py_INCREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 308
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_INCREF(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DecRef
      Src: /src/cpython/Include/refcount.h:326,1
    - Dst: Py_DecRef
      Src: /src/cpython/Include/refcount.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    functionsReached:
    - Py_DecRef
    - _Py_DecRef
    linkageType: ''
    returnType: void
    signature: void Py_DECREF(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: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DECREF(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:336,1
    - Dst: _Py_DECREF_IMMORTAL_STAT_INC
      Src: /src/cpython/Include/refcount.h:338,1
    - Dst: _Py_DECREF_STAT_INC
      Src: /src/cpython/Include/refcount.h:341,1
    - Dst: _Py_DECREF_DecRefTotal
      Src: /src/cpython/Include/refcount.h:342,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Include/refcount.h:343,1
    - Dst: _Py_NegativeRefcount
      Src: /src/cpython/Include/refcount.h:345,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:348,1
    - Dst: _Py_MergeZeroLocalRefcount
      Src: /src/cpython/Include/refcount.h:350,1
    - Dst: _Py_DecRefSharedDebug
      Src: /src/cpython/Include/refcount.h:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - filename
    - lineno
    - op
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 334
    functionDepth: 5
    functionLinenumber: 334
    functionLinenumberEnd: 356
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    functionsReached:
    - _Py_DECREF_DecRefTotal
    - _Py_IsOwnedByCurrentThread
    - _Py_DecRefSharedDebug
    - _Py_atomic_store_uint32_relaxed
    - _Py_MergeZeroLocalRefcount
    - _Py_DECREF_STAT_INC
    - _Py_atomic_load_uint32_relaxed
    - _Py_DECREF_IMMORTAL_STAT_INC
    - _Py_NegativeRefcount
    linkageType: ''
    returnType: void
    signature: void Py_DECREF(const char *filename, int lineno, 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: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DECREF(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:362,1
    - Dst: _Py_DECREF_IMMORTAL_STAT_INC
      Src: /src/cpython/Include/refcount.h:364,1
    - Dst: _Py_DECREF_STAT_INC
      Src: /src/cpython/Include/refcount.h:367,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Include/refcount.h:368,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Include/refcount.h:370,1
    - Dst: _Py_MergeZeroLocalRefcount
      Src: /src/cpython/Include/refcount.h:372,1
    - Dst: _Py_DecRefShared
      Src: /src/cpython/Include/refcount.h:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 360
    functionDepth: 6
    functionLinenumber: 360
    functionLinenumberEnd: 378
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    functionsReached:
    - _Py_IsOwnedByCurrentThread
    - _Py_atomic_store_uint32_relaxed
    - _Py_MergeZeroLocalRefcount
    - _Py_DecRefShared
    - _Py_DECREF_STAT_INC
    - _Py_atomic_load_uint32_relaxed
    - _Py_DECREF_IMMORTAL_STAT_INC
    linkageType: ''
    returnType: void
    signature: void Py_DECREF(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: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    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: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DECREF(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Include/refcount.h:412,1
    - Dst: _Py_DECREF_IMMORTAL_STAT_INC
      Src: /src/cpython/Include/refcount.h:413,1
    - Dst: _Py_DECREF_STAT_INC
      Src: /src/cpython/Include/refcount.h:416,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Include/refcount.h:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    functionsReached:
    - _Py_DECREF_STAT_INC
    - _Py_Dealloc
    - _Py_IsImmortal
    - _Py_DECREF_IMMORTAL_STAT_INC
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: Py_ALWAYS_INLINE Py_DECREF(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: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: Py_DECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 2720
    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: 483
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: Py_CLEAR
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 553
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_CLEAR(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: Py_CLEAR
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 553
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_CLEAR(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Include/refcount.h:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: Py_XINCREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 52
    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: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: Py_XINCREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XINCREF(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Include/refcount.h:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: Py_XDECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 899
    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: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: Py_XDECREF
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 899
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XDECREF(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Include/refcount.h:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: _Py_NewRef
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 1
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_NewRef(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/cpython/Include/refcount.h:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 5
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: _Py_XNewRef
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 4
    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: 542
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 542
    functionName: Py_NewRef
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 1087
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_NewRef(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: Py_XNewRef
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 163
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XNewRef(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 545
    functionName: Py_NewRef
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 1087
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_NewRef(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    functionName: Py_XNewRef
    functionSourceFile: /src/cpython/Include/refcount.h
    functionUses: 163
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XNewRef(obj)
  - 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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Include/dynamic_annotations.h
    functionUses: 0
    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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/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/cpython/Include/dynamic_annotations.h:474,1
    - Dst: _Py_ANNOTATE_IGNORE_READS_END
      Src: /src/cpython/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/cpython/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached:
    - _Py_ANNOTATE_IGNORE_READS_END
    - _Py_ANNOTATE_IGNORE_READS_BEGIN
    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/cpython/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/cpython/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:
    - (
    - m
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: PyModule_AddIntMacro
    functionSourceFile: /src/cpython/Include/modsupport.h
    functionUses: 13
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: PyModule_AddStringMacro
    functionSourceFile: /src/cpython/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: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: PyModule_Create
    functionSourceFile: /src/cpython/Include/modsupport.h
    functionUses: 17
    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: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: PyModule_Create
    functionSourceFile: /src/cpython/Include/modsupport.h
    functionUses: 17
    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: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: PyModule_FromDefAndSpec
    functionSourceFile: /src/cpython/Include/modsupport.h
    functionUses: 1
    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: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: PyModule_FromDefAndSpec
    functionSourceFile: /src/cpython/Include/modsupport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_FromDefAndSpec(module, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: PyThreadState_GET
    functionSourceFile: /src/cpython/Include/pystate.h
    functionUses: 362
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyThreadState_GET()
  - 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: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: PyList_Check
    functionSourceFile: /src/cpython/Include/listobject.h
    functionUses: 108
    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: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: PyList_CheckExact
    functionSourceFile: /src/cpython/Include/listobject.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyList_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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: PyBytes_Check
    functionSourceFile: /src/cpython/Include/bytesobject.h
    functionUses: 140
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: PyBytes_CheckExact
    functionSourceFile: /src/cpython/Include/bytesobject.h
    functionUses: 35
    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: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: PyDict_Check
    functionSourceFile: /src/cpython/Include/dictobject.h
    functionUses: 166
    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/cpython/Include/dictobject.h
    functionUses: 82
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: PyDictKeys_Check
    functionSourceFile: /src/cpython/Include/dictobject.h
    functionUses: 3
    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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: PyDictValues_Check
    functionSourceFile: /src/cpython/Include/dictobject.h
    functionUses: 1
    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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: PyDictItems_Check
    functionSourceFile: /src/cpython/Include/dictobject.h
    functionUses: 3
    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: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: PyDictViewSet_Check
    functionSourceFile: /src/cpython/Include/dictobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDictViewSet_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: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: PyExceptionClass_Check
    functionSourceFile: /src/cpython/Include/pyerrors.h
    functionUses: 16
    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: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: PyExceptionInstance_Check
    functionSourceFile: /src/cpython/Include/pyerrors.h
    functionUses: 45
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: PyExceptionInstance_Class
    functionSourceFile: /src/cpython/Include/pyerrors.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyExceptionInstance_Class(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: _PyBaseExceptionGroup_Check
    functionSourceFile: /src/cpython/Include/pyerrors.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyBaseExceptionGroup_Check(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/cpython/Include/pyerrors.h
    functionUses: 162
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_BadInternalCall()
  - 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: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: PyErr_Warn
    functionSourceFile: /src/cpython/Include/cpython/warnings.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_Warn(category, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Py_UNICODE_IS_SURROGATE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_UNICODE_IS_SURROGATE(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Py_UNICODE_IS_HIGH_SURROGATE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_UNICODE_IS_HIGH_SURROGATE(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Py_UNICODE_IS_LOW_SURROGATE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_UNICODE_IS_LOW_SURROGATE(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:28,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Include/cpython/unicodeobject.h:28,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:29,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Include/cpython/unicodeobject.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - high
    - low
    argTypes:
    - Py_UCS4
    - Py_UCS4
    assertStmts:
    - condition: (Py_UNICODE_IS_HIGH_SURROGATE(high))
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (Py_UNICODE_IS_LOW_SURROGATE(low))
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: Py_UNICODE_JOIN_SURROGATES
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 7
    functionsReached:
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_IS_LOW_SURROGATE
    - assert
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 Py_UNICODE_JOIN_SURROGATES(Py_UCS4 high, Py_UCS4 low)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts:
    - condition: (0x10000 <= ch && ch <= 0x10ffff)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: Py_UNICODE_HIGH_SURROGATE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 Py_UNICODE_HIGH_SURROGATE(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts:
    - condition: (0x10000 <= ch && ch <= 0x10ffff)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Py_UNICODE_LOW_SURROGATE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 Py_UNICODE_LOW_SURROGATE(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: _PyASCIIObject_CAST
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyASCIIObject_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: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: _PyCompactUnicodeObject_CAST
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCompactUnicodeObject_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: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: _PyUnicodeObject_CAST
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicodeObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Include/cpython/unicodeobject.h:209,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:209,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: PyUnicode_CHECK_INTERNED
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 14
    functionsReached:
    - _PyASCIIObject_CAST
    - _Py_atomic_load_uint8_relaxed
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PyUnicode_CHECK_INTERNED(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: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: PyUnicode_CHECK_INTERNED
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_CHECK_INTERNED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(op)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: PyUnicode_IS_READY
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: PyUnicode_IS_READY
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_IS_READY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: PyUnicode_IS_ASCII
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 55
    functionsReached:
    - _PyASCIIObject_CAST
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PyUnicode_IS_ASCII(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: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: PyUnicode_IS_ASCII
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_IS_ASCII(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: PyUnicode_IS_COMPACT
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 8
    functionsReached:
    - _PyASCIIObject_CAST
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PyUnicode_IS_COMPACT(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: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: PyUnicode_IS_COMPACT
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_IS_COMPACT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:239,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Include/cpython/unicodeobject.h:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: PyUnicode_IS_COMPACT_ASCII
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 9
    functionsReached:
    - _PyASCIIObject_CAST
    - PyUnicode_IS_COMPACT
    linkageType: ''
    returnType: int
    signature: int PyUnicode_IS_COMPACT_ASCII(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: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: PyUnicode_IS_COMPACT_ASCII
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 9
    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: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: PyUnicode_KIND
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 139
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_KIND(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Include/cpython/unicodeobject.h:262,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:263,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:263,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:265,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: _PyUnicode_COMPACT_DATA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 2
    functionsReached:
    - _PyASCIIObject_CAST
    - PyUnicode_IS_ASCII
    - _PyCompactUnicodeObject_CAST
    - _Py_STATIC_CAST
    linkageType: ''
    returnType: void
    signature: void * _PyUnicode_COMPACT_DATA(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:270,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Include/cpython/unicodeobject.h:270,1
    - Dst: _PyUnicodeObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:271,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyUnicode_IS_COMPACT(op))
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (data != NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: _PyUnicode_NONCOMPACT_DATA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached:
    - _PyUnicodeObject_CAST
    - PyUnicode_IS_COMPACT
    - assert
    linkageType: ''
    returnType: void
    signature: void * _PyUnicode_NONCOMPACT_DATA(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Include/cpython/unicodeobject.h:279,1
    - Dst: _PyUnicode_COMPACT_DATA
      Src: /src/cpython/Include/cpython/unicodeobject.h:280,1
    - Dst: _PyUnicode_NONCOMPACT_DATA
      Src: /src/cpython/Include/cpython/unicodeobject.h:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: _PyUnicode_DATA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached:
    - PyUnicode_IS_COMPACT
    - _PyUnicode_COMPACT_DATA
    - _PyUnicode_NONCOMPACT_DATA
    linkageType: ''
    returnType: void
    signature: void * _PyUnicode_DATA(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: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: PyUnicode_DATA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 132
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_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: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: PyUnicode_1BYTE_DATA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 44
    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: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: PyUnicode_2BYTE_DATA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 12
    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: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: PyUnicode_4BYTE_DATA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_4BYTE_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: PyUnicode_GET_LENGTH
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 286
    functionsReached:
    - _PyASCIIObject_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyUnicode_GET_LENGTH(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: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: PyUnicode_GET_LENGTH
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 286
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_GET_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:304,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Include/cpython/unicodeobject.h:304,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Include/cpython/unicodeobject.h:306,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:306,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(op))
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: PyUnstable_Unicode_GET_CACHED_HASH
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached:
    - PyUnicode_Check
    - _Py_atomic_load_ssize_relaxed
    - _PyASCIIObject_CAST
    - assert
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyUnstable_Unicode_GET_CACHED_HASH(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:320,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:322,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:323,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:326,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:327,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:330,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - data
    - index
    - value
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (index >= 0)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (value <= 0xffU)
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (value <= 0xffffU)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (value <= 0x10ffffU)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: PyUnicode_WRITE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 18
    functionsReached:
    - _Py_STATIC_CAST
    - assert
    linkageType: ''
    returnType: void
    signature: "void PyUnicode_WRITE(int kind, void *data,\n                                   Py_ssize_t
      index, Py_UCS4 value)"
  - 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: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: PyUnicode_WRITE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_WRITE(kind, data, index, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:344,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:346,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:349,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:351,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/unicodeobject.h:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - kind
    - data
    - index
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (index >= 0)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 353
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: PyUnicode_READ
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 92
    functionsReached:
    - _Py_STATIC_CAST
    - assert
    linkageType: ''
    returnType: Py_UCS4
    signature: "Py_UCS4 PyUnicode_READ(int kind,\n                                     const
      void *data, Py_ssize_t index)"
  - 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: 358
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: PyUnicode_READ
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 92
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_READ(kind, data, index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:367,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:369,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Include/cpython/unicodeobject.h:369,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Include/cpython/unicodeobject.h:371,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Include/cpython/unicodeobject.h:373,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Include/cpython/unicodeobject.h:376,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:378,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Include/cpython/unicodeobject.h:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - unicode
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (index >= 0)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (index <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 380
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 380
    functionName: PyUnicode_READ_CHAR
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 67
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_4BYTE_DATA
    - PyUnicode_2BYTE_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 PyUnicode_READ_CHAR(PyObject *unicode, Py_ssize_t 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: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: PyUnicode_READ_CHAR
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_READ_CHAR(unicode, index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Include/cpython/unicodeobject.h:391,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Include/cpython/unicodeobject.h:395,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/unicodeobject.h:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/cpython/Include/cpython/unicodeobject.h
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: PyUnicode_MAX_CHAR_VALUE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 30
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_IS_ASCII
    - assert
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 PyUnicode_MAX_CHAR_VALUE(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: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: PyUnicode_MAX_CHAR_VALUE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_MAX_CHAR_VALUE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(op)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: PyUnicode_READY
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicode_READY(PyObject* Py_UNUSED(op))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: PyUnicode_READY
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_READY(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: 569
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 569
    functionName: _PyUnicodeWriter_Prepare
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 27
    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: 586
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 586
    functionName: _PyUnicodeWriter_PrepareKind
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicodeWriter_PrepareKind(WRITER, KIND)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Include/cpython/unicodeobject.h:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 6
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: _PyUnicode_AsString
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyUnicode_AsString(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_IsWhitespace
      Src: /src/cpython/Include/cpython/unicodeobject.h:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 748
    functionName: Py_UNICODE_ISSPACE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 5
    functionsReached:
    - _PyUnicode_IsWhitespace
    linkageType: ''
    returnType: int
    signature: int Py_UNICODE_ISSPACE(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 751
    functionName: Py_UNICODE_ISLOWER
    functionSourceFile: /src/cpython/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: 752
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 752
    functionName: Py_UNICODE_ISUPPER
    functionSourceFile: /src/cpython/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: 753
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 753
    functionName: Py_UNICODE_ISTITLE
    functionSourceFile: /src/cpython/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: 754
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 754
    functionName: Py_UNICODE_ISLINEBREAK
    functionSourceFile: /src/cpython/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: 756
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 756
    functionName: Py_UNICODE_TOLOWER
    functionSourceFile: /src/cpython/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: 757
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 757
    functionName: Py_UNICODE_TOUPPER
    functionSourceFile: /src/cpython/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: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: Py_UNICODE_TOTITLE
    functionSourceFile: /src/cpython/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: 760
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 760
    functionName: Py_UNICODE_ISDECIMAL
    functionSourceFile: /src/cpython/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: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: Py_UNICODE_ISDIGIT
    functionSourceFile: /src/cpython/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: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: Py_UNICODE_ISNUMERIC
    functionSourceFile: /src/cpython/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: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: Py_UNICODE_ISPRINTABLE
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 5
    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: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: Py_UNICODE_TODECIMAL
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 5
    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: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: Py_UNICODE_TODIGIT
    functionSourceFile: /src/cpython/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: 767
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 767
    functionName: Py_UNICODE_TONUMERIC
    functionSourceFile: /src/cpython/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: 769
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 769
    functionName: Py_UNICODE_ISALPHA
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISALPHA(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_ISALPHA
      Src: /src/cpython/Include/cpython/unicodeobject.h:771,1
    - Dst: Py_UNICODE_ISDECIMAL
      Src: /src/cpython/Include/cpython/unicodeobject.h:772,1
    - Dst: Py_UNICODE_ISDIGIT
      Src: /src/cpython/Include/cpython/unicodeobject.h:773,1
    - Dst: Py_UNICODE_ISNUMERIC
      Src: /src/cpython/Include/cpython/unicodeobject.h:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: Py_UNICODE_ISALNUM
    functionSourceFile: /src/cpython/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached:
    - Py_UNICODE_ISDECIMAL
    - Py_UNICODE_ISALPHA
    - Py_UNICODE_ISDIGIT
    - Py_UNICODE_ISNUMERIC
    linkageType: ''
    returnType: int
    signature: int Py_UNICODE_ISALNUM(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: PyDescr_TYPE
    functionSourceFile: /src/cpython/Include/cpython/descrobject.h
    functionUses: 9
    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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: PyDescr_NAME
    functionSourceFile: /src/cpython/Include/cpython/descrobject.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDescr_NAME(x)
  - 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_ISLOWER
    functionSourceFile: /src/cpython/Include/cpython/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: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Py_ISUPPER
    functionSourceFile: /src/cpython/Include/cpython/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: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: Py_ISALPHA
    functionSourceFile: /src/cpython/Include/cpython/pyctype.h
    functionUses: 7
    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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: Py_ISDIGIT
    functionSourceFile: /src/cpython/Include/cpython/pyctype.h
    functionUses: 16
    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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Py_ISXDIGIT
    functionSourceFile: /src/cpython/Include/cpython/pyctype.h
    functionUses: 2
    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: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: Py_ISALNUM
    functionSourceFile: /src/cpython/Include/cpython/pyctype.h
    functionUses: 6
    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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Py_ISSPACE
    functionSourceFile: /src/cpython/Include/cpython/pyctype.h
    functionUses: 11
    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: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: Py_TOLOWER
    functionSourceFile: /src/cpython/Include/cpython/pyctype.h
    functionUses: 13
    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: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: Py_TOUPPER
    functionSourceFile: /src/cpython/Include/cpython/pyctype.h
    functionUses: 7
    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: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Py_BEGIN_CRITICAL_SECTION
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 627
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mutex
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Py_BEGIN_CRITICAL_SECTION_MUTEX
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION_MUTEX(mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Py_END_CRITICAL_SECTION
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 627
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_END_CRITICAL_SECTION()
  - 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: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Py_BEGIN_CRITICAL_SECTION2
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m1
    - ','
    - m2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Py_BEGIN_CRITICAL_SECTION2_MUTEX
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION2_MUTEX(m1, m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Py_END_CRITICAL_SECTION2
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_END_CRITICAL_SECTION2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: Py_BEGIN_CRITICAL_SECTION
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 627
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mutex
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: Py_BEGIN_CRITICAL_SECTION_MUTEX
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION_MUTEX(mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Py_END_CRITICAL_SECTION
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 627
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_END_CRITICAL_SECTION()
  - 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: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: Py_BEGIN_CRITICAL_SECTION2
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m1
    - ','
    - m2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: Py_BEGIN_CRITICAL_SECTION2_MUTEX
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BEGIN_CRITICAL_SECTION2_MUTEX(m1, m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: Py_END_CRITICAL_SECTION2
    functionSourceFile: /src/cpython/Include/cpython/critical_section.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_END_CRITICAL_SECTION2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_fopen
      Src: /src/cpython/Include/cpython/fileutils.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 9
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: _Py_fopen_obj
    functionSourceFile: /src/cpython/Include/cpython/fileutils.h
    functionUses: 0
    functionsReached:
    - Py_fopen
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      _Py_fopen_obj(PyObject *path, const char *mode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 12
    functionName: _PyFloat_CAST
    functionSourceFile: /src/cpython/Include/cpython/floatobject.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyFloat_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_CAST
      Src: /src/cpython/Include/cpython/floatobject.h:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: PyFloat_AS_DOUBLE
    functionSourceFile: /src/cpython/Include/cpython/floatobject.h
    functionUses: 55
    functionsReached:
    - _PyFloat_CAST
    linkageType: ''
    returnType: double
    signature: double PyFloat_AS_DOUBLE(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: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: PyFloat_AS_DOUBLE
    functionSourceFile: /src/cpython/Include/cpython/floatobject.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFloat_AS_DOUBLE(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: _PyByteArray_CAST
    functionSourceFile: /src/cpython/Include/cpython/bytearrayobject.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyByteArray_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Include/cpython/bytearrayobject.h:22,1
    - Dst: Py_SIZE
      Src: /src/cpython/Include/cpython/bytearrayobject.h:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: PyByteArray_AS_STRING
    functionSourceFile: /src/cpython/Include/cpython/bytearrayobject.h
    functionUses: 68
    functionsReached:
    - _PyByteArray_CAST
    - Py_SIZE
    linkageType: ''
    returnType: char
    signature: char * PyByteArray_AS_STRING(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: PyByteArray_AS_STRING
    functionSourceFile: /src/cpython/Include/cpython/bytearrayobject.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyByteArray_AS_STRING(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Include/cpython/bytearrayobject.h:31,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Include/cpython/bytearrayobject.h:33,1
    - Dst: _PyVarObject_CAST
      Src: /src/cpython/Include/cpython/bytearrayobject.h:33,1
    - Dst: Py_SIZE
      Src: /src/cpython/Include/cpython/bytearrayobject.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: PyByteArray_GET_SIZE
    functionSourceFile: /src/cpython/Include/cpython/bytearrayobject.h
    functionUses: 47
    functionsReached:
    - _PyByteArray_CAST
    - _Py_atomic_load_ssize_relaxed
    - Py_SIZE
    - _PyVarObject_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyByteArray_GET_SIZE(PyObject *op)
  - 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_GET_SIZE
    functionSourceFile: /src/cpython/Include/cpython/bytearrayobject.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyByteArray_GET_SIZE(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: PyFrame_Check
    functionSourceFile: /src/cpython/Include/cpython/pyframe.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrame_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: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: PyFrameLocalsProxy_Check
    functionSourceFile: /src/cpython/Include/cpython/pyframe.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrameLocalsProxy_Check(op)
  - 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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: Py_CompileString
    functionSourceFile: /src/cpython/Include/cpython/pythonrun.h
    functionUses: 1
    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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: Py_CompileStringFlags
    functionSourceFile: /src/cpython/Include/cpython/pythonrun.h
    functionUses: 0
    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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: PyRun_String
    functionSourceFile: /src/cpython/Include/cpython/pythonrun.h
    functionUses: 3
    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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: PyRun_AnyFile
    functionSourceFile: /src/cpython/Include/cpython/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: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: PyRun_AnyFileEx
    functionSourceFile: /src/cpython/Include/cpython/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: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: PyRun_AnyFileFlags
    functionSourceFile: /src/cpython/Include/cpython/pythonrun.h
    functionUses: 0
    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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: PyRun_SimpleString
    functionSourceFile: /src/cpython/Include/cpython/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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: PyRun_SimpleFile
    functionSourceFile: /src/cpython/Include/cpython/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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: PyRun_SimpleFileEx
    functionSourceFile: /src/cpython/Include/cpython/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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: PyRun_InteractiveOne
    functionSourceFile: /src/cpython/Include/cpython/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: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: PyRun_InteractiveLoop
    functionSourceFile: /src/cpython/Include/cpython/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: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: PyRun_File
    functionSourceFile: /src/cpython/Include/cpython/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: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: PyRun_FileEx
    functionSourceFile: /src/cpython/Include/cpython/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: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: PyRun_FileFlags
    functionSourceFile: /src/cpython/Include/cpython/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:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: _PyCFunctionObject_CAST
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCFunctionObject_CAST(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: _PyCMethodObject_CAST
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCMethodObject_CAST(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: PyCMethod_CheckExact
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCMethod_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: PyCMethod_Check
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCMethod_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Include/cpython/methodobject.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: PyCFunction_GET_FUNCTION
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 10
    functionsReached:
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyCFunction
    signature: PyCFunction PyCFunction_GET_FUNCTION(PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: PyCFunction_GET_FUNCTION
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_GET_FUNCTION(func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Include/cpython/methodobject.h:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - func_obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: PyCFunction_GET_SELF
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 13
    functionsReached:
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyCFunction_GET_SELF(PyObject *func_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: PyCFunction_GET_SELF
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_GET_SELF(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Include/cpython/methodobject.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: PyCFunction_GET_FLAGS
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 6
    functionsReached:
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCFunction_GET_FLAGS(PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: PyCFunction_GET_FLAGS
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_GET_FLAGS(func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunctionObject_CAST
      Src: /src/cpython/Include/cpython/methodobject.h:60,1
    - Dst: _PyCMethodObject_CAST
      Src: /src/cpython/Include/cpython/methodobject.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - func_obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: PyCFunction_GET_CLASS
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 4
    functionsReached:
    - _PyCMethodObject_CAST
    - _PyCFunctionObject_CAST
    linkageType: ''
    returnType: PyTypeObject
    signature: PyTypeObject * PyCFunction_GET_CLASS(PyObject *func_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: PyCFunction_GET_CLASS
    functionSourceFile: /src/cpython/Include/cpython/methodobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_GET_CLASS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: _Py_INCREF_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INCREF_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: _Py_DECREF_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_STAT_INC()
  - 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: _Py_INCREF_IMMORTAL_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INCREF_IMMORTAL_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: _Py_DECREF_IMMORTAL_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_IMMORTAL_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: _Py_INCREF_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INCREF_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: _Py_DECREF_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: _Py_INCREF_IMMORTAL_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INCREF_IMMORTAL_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: _Py_DECREF_IMMORTAL_STAT_INC
    functionSourceFile: /src/cpython/Include/cpython/pystats.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DECREF_IMMORTAL_STAT_INC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: _PyLong_CAST
    functionSourceFile: /src/cpython/Include/cpython/longobject.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyLong_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: _Py_atomic_ASSERT_ARG_TYPE
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_ASSERT_ARG_TYPE(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedExchangeAdd8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: _Py_atomic_add_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedExchangeAdd8
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_add_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:34,1
    - Dst: _InterlockedExchangeAdd16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: _Py_atomic_add_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedExchangeAdd16
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_add_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:41,1
    - Dst: _InterlockedExchangeAdd
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: _Py_atomic_add_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _InterlockedExchangeAdd
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_add_int32(int32_t *obj, int32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:49,1
    - Dst: _InterlockedExchangeAdd64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:50,1
    - Dst: _Py_atomic_load_int64_relaxed
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:52,1
    - Dst: _Py_atomic_compare_exchange_int64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: _Py_atomic_add_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _Py_atomic_compare_exchange_int64
    - _InterlockedExchangeAdd64
    - _Py_atomic_load_int64_relaxed
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_add_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: _Py_atomic_add_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_add_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: _Py_atomic_add_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - _Py_atomic_add_int16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_add_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: _Py_atomic_add_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_add_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: _Py_atomic_add_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 3
    functionsReached:
    - _Py_atomic_add_int32
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_add_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: _Py_atomic_add_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_add_uint(unsigned int *obj, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: _Py_atomic_add_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - _Py_atomic_add_int64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_add_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_int64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:106,1
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: _Py_atomic_add_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int32
    - _Py_atomic_add_int64
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_add_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_intptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: _Py_atomic_add_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - _Py_atomic_add_intptr
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_intptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: _Py_atomic_add_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 16
    functionsReached:
    - _Py_atomic_add_intptr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedCompareExchange8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - int8_t*
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: _Py_atomic_compare_exchange_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedCompareExchange8
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected,
      int8_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:148,1
    - Dst: _InterlockedCompareExchange16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - int16_t*
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: _Py_atomic_compare_exchange_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedCompareExchange16
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected,
      int16_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:163,1
    - Dst: _InterlockedCompareExchange
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - int32_t*
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: _Py_atomic_compare_exchange_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedCompareExchange
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected,
      int32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:178,1
    - Dst: _InterlockedCompareExchange64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - int64_t*
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: _Py_atomic_compare_exchange_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - _InterlockedCompareExchange64
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected,
      int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedCompareExchangePointer
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: _Py_atomic_compare_exchange_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _InterlockedCompareExchangePointer
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_ptr(void *obj, void *expected, void
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_int8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: _Py_atomic_compare_exchange_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 6
    functionsReached:
    - _Py_atomic_compare_exchange_int8
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected,
      uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_int16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: _Py_atomic_compare_exchange_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_int16
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected,
      uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: _Py_atomic_compare_exchange_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _Py_atomic_compare_exchange_int32
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected,
      uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: _Py_atomic_compare_exchange_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 6
    functionsReached:
    - _Py_atomic_compare_exchange_int32
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int(int *obj, int *expected, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - unsigned int*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: _Py_atomic_compare_exchange_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - _Py_atomic_compare_exchange_int32
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int
      *expected, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_int64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: _Py_atomic_compare_exchange_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - _Py_atomic_compare_exchange_int64
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected,
      uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - intptr_t*
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: _Py_atomic_compare_exchange_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_ptr
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected,
      intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: _Py_atomic_compare_exchange_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 7
    functionsReached:
    - _Py_atomic_compare_exchange_ptr
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected,
      uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - expected
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: _Py_atomic_compare_exchange_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - _Py_atomic_compare_exchange_ptr
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected,
      Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedExchange8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: _Py_atomic_exchange_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedExchange8
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_exchange_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:295,1
    - Dst: _InterlockedExchange16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: _Py_atomic_exchange_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedExchange16
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_exchange_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:302,1
    - Dst: _InterlockedExchange
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: _Py_atomic_exchange_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedExchange
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_exchange_int32(int32_t *obj, int32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:310,1
    - Dst: _InterlockedExchange64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:311,1
    - Dst: _Py_atomic_load_int64_relaxed
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:313,1
    - Dst: _Py_atomic_compare_exchange_int64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: _Py_atomic_exchange_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedExchange64
    - _Py_atomic_compare_exchange_int64
    - _Py_atomic_load_int64_relaxed
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_exchange_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedExchangePointer
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: _Py_atomic_exchange_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - _InterlockedExchangePointer
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_exchange_ptr(void *obj, void *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: _Py_atomic_exchange_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _Py_atomic_exchange_int8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: _Py_atomic_exchange_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: _Py_atomic_exchange_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: _Py_atomic_exchange_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 3
    functionsReached:
    - _Py_atomic_exchange_int32
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_exchange_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: _Py_atomic_exchange_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_exchange_uint(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: _Py_atomic_exchange_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: _Py_atomic_exchange_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_ptr
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: _Py_atomic_exchange_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - _Py_atomic_exchange_ptr
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: _Py_atomic_exchange_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_ptr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedAnd8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: _Py_atomic_and_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedAnd8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_and_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:410,1
    - Dst: _InterlockedAnd16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: _Py_atomic_and_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedAnd16
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_and_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:417,1
    - Dst: _InterlockedAnd
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: _Py_atomic_and_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedAnd
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_and_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:425,1
    - Dst: _InterlockedAnd64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:426,1
    - Dst: _Py_atomic_load_uint64_relaxed
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:428,1
    - Dst: _Py_atomic_compare_exchange_uint64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 436
    functionName: _Py_atomic_and_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedAnd64
    - _Py_atomic_load_uint64_relaxed
    - _Py_atomic_compare_exchange_uint64
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_and_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_and_uint64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:443,1
    - Dst: _Py_atomic_and_uint32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: _Py_atomic_and_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_and_uint32
    - _Py_atomic_and_uint64
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedOr8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: _Py_atomic_or_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - _InterlockedOr8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_or_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:465,1
    - Dst: _InterlockedOr16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: _Py_atomic_or_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedOr16
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_or_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:472,1
    - Dst: _InterlockedOr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: _Py_atomic_or_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _InterlockedOr
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_or_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:480,1
    - Dst: _InterlockedOr64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:481,1
    - Dst: _Py_atomic_load_uint64_relaxed
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:483,1
    - Dst: _Py_atomic_compare_exchange_uint64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 491
    functionName: _Py_atomic_or_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint64_relaxed
    - _Py_atomic_compare_exchange_uint64
    - _InterlockedOr64
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_or_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_or_uint64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:499,1
    - Dst: _Py_atomic_or_uint32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 506
    functionName: _Py_atomic_or_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_or_uint64
    - _Py_atomic_or_uint32
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 521
    functionName: _Py_atomic_load_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 7
    functionsReached:
    - __ldar8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_load_uint8(const uint8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 533
    functionName: _Py_atomic_load_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - __ldar16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_load_uint16(const uint16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 545
    functionName: _Py_atomic_load_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - __ldar32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 557
    functionName: _Py_atomic_load_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - __ldar64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: _Py_atomic_load_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint8
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_load_int8(const int8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: _Py_atomic_load_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint16
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_load_int16(const int16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: _Py_atomic_load_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint32
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_load_int32(const int32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: _Py_atomic_load_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - _Py_atomic_load_uint32
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: _Py_atomic_load_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_load_uint(const unsigned int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: _Py_atomic_load_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 3
    functionsReached:
    - _Py_atomic_load_uint64
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_load_int64(const int64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:601,1
    - Dst: _Py_atomic_load_uint32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 605
    functionName: _Py_atomic_load_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 11
    functionsReached:
    - _Py_atomic_load_uint64
    - _Py_atomic_load_uint32
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: _Py_atomic_load_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_intptr(const intptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: _Py_atomic_load_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: _Py_atomic_load_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - _Py_atomic_load_ptr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: _Py_atomic_load_int_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int_relaxed(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: _Py_atomic_load_char_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char _Py_atomic_load_char_relaxed(const char *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: _Py_atomic_load_uchar_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char _Py_atomic_load_uchar_relaxed(const unsigned char *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: _Py_atomic_load_short_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short _Py_atomic_load_short_relaxed(const short *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 659
    functionName: _Py_atomic_load_ushort_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short _Py_atomic_load_ushort_relaxed(const unsigned short
      *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: _Py_atomic_load_long_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long _Py_atomic_load_long_relaxed(const long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: _Py_atomic_load_float_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float _Py_atomic_load_float_relaxed(const float *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 677
    functionName: _Py_atomic_load_double_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double _Py_atomic_load_double_relaxed(const double *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 683
    functionName: _Py_atomic_load_int8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_load_int8_relaxed(const int8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: _Py_atomic_load_int16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_load_int16_relaxed(const int16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: _Py_atomic_load_int32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_load_int32_relaxed(const int32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 701
    functionName: _Py_atomic_load_int64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_load_int64_relaxed(const int64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: _Py_atomic_load_intptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_intptr_relaxed(const intptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: _Py_atomic_load_uint8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_load_uint8_relaxed(const uint8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: _Py_atomic_load_uint16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_load_uint16_relaxed(const uint16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: _Py_atomic_load_uint32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32_relaxed(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: _Py_atomic_load_uint64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64_relaxed(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: _Py_atomic_load_uintptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr_relaxed(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: _Py_atomic_load_uint_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_load_uint_relaxed(const unsigned int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 749
    functionName: _Py_atomic_load_ssize_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 755
    functionName: _Py_atomic_load_ptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr_relaxed(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 761
    functionName: _Py_atomic_load_ullong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long _Py_atomic_load_ullong_relaxed(const unsigned long
      long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 767
    functionName: _Py_atomic_load_llong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long long
    signature: long long _Py_atomic_load_llong_relaxed(const long long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 776
    functionName: _Py_atomic_store_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 14
    functionsReached:
    - _Py_atomic_exchange_int
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 782
    functionName: _Py_atomic_store_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int8
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 788
    functionName: _Py_atomic_store_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int16
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: _Py_atomic_store_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int32
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int32(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: _Py_atomic_store_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int64
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_intptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 806
    functionName: _Py_atomic_store_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_intptr
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uint8
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 812
    functionName: _Py_atomic_store_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _Py_atomic_exchange_uint8
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uint16
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: _Py_atomic_store_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_uint16
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uint32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 824
    functionName: _Py_atomic_store_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _Py_atomic_exchange_uint32
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uint64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 830
    functionName: _Py_atomic_store_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _Py_atomic_exchange_uint64
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uintptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: _Py_atomic_store_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_uintptr
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uint
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 842
    functionName: _Py_atomic_store_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_uint
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint(unsigned int *obj, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 848
    functionName: _Py_atomic_store_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached:
    - _Py_atomic_exchange_ptr
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_ssize
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: _Py_atomic_store_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 3
    functionsReached:
    - _Py_atomic_exchange_ssize
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 863
    functionName: _Py_atomic_store_int_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int_relaxed(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 869
    functionName: _Py_atomic_store_int8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 875
    functionName: _Py_atomic_store_int16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 881
    functionName: _Py_atomic_store_int32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 887
    functionName: _Py_atomic_store_int64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 893
    functionName: _Py_atomic_store_intptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 899
    functionName: _Py_atomic_store_uint8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 905
    functionName: _Py_atomic_store_uint16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 911
    functionName: _Py_atomic_store_uint32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 917
    functionName: _Py_atomic_store_uint64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 923
    functionName: _Py_atomic_store_uintptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: _Py_atomic_store_uint_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: _Py_atomic_store_ptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr_relaxed(void *obj, void* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 941
    functionName: _Py_atomic_store_ssize_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned long long*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 948
    functionName: _Py_atomic_store_ullong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _Py_atomic_store_ullong_relaxed(unsigned long long *obj,\n                                unsigned
      long long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: _Py_atomic_store_char_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_char_relaxed(char *obj, char value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 960
    functionName: _Py_atomic_store_uchar_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uchar_relaxed(unsigned char *obj, unsigned char
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - short*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 966
    functionName: _Py_atomic_store_short_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_short_relaxed(short *obj, short value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned short*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 972
    functionName: _Py_atomic_store_ushort_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ushort_relaxed(unsigned short *obj, unsigned
      short value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 978
    functionName: _Py_atomic_store_uint_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint_release(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - long*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 984
    functionName: _Py_atomic_store_long_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_long_relaxed(long *obj, long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - float*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 990
    functionName: _Py_atomic_store_float_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_float_relaxed(float *obj, float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - double*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: _Py_atomic_store_double_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_double_relaxed(double *obj, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - long long*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1002
    functionName: _Py_atomic_store_llong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_llong_relaxed(long long *obj, long long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1017
    functionName: _Py_atomic_load_ptr_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 5
    functionsReached:
    - __ldar64
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr_acquire(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1029
    functionName: _Py_atomic_load_uintptr_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - __ldar64
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr_acquire(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __stlr64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1041
    functionName: _Py_atomic_store_ptr_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 5
    functionsReached:
    - __stlr64
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr_release(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __stlr64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1054
    functionName: _Py_atomic_store_uintptr_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - __stlr64
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __stlr32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1067
    functionName: _Py_atomic_store_int_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 3
    functionsReached:
    - __stlr32
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int_release(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __stlr64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1079
    functionName: _Py_atomic_store_ssize_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - __stlr64
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1092
    functionName: _Py_atomic_load_int_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - __ldar32
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int_acquire(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __stlr32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1105
    functionName: _Py_atomic_store_uint32_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - __stlr32
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __stlr64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1118
    functionName: _Py_atomic_store_uint64_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - __stlr64
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_ASSERT_ARG_TYPE
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1126,1
    - Dst: __ldar64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1131
    functionName: _Py_atomic_load_uint64_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 0
    functionsReached:
    - __ldar64
    - _Py_atomic_ASSERT_ARG_TYPE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64_acquire(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar32
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1143
    functionName: _Py_atomic_load_uint32_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - __ldar32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32_acquire(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ldar64
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1155
    functionName: _Py_atomic_load_ssize_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 1
    functionsReached:
    - __ldar64
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize_acquire(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dmb
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1163,1
    - Dst: __faststorefence
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1165,1
    - Dst: _mm_mfence
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1171
    functionName: _Py_atomic_fence_seq_cst
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _mm_mfence
    - __faststorefence
    - __dmb
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_seq_cst(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dmb
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1177,1
    - Dst: _ReadBarrier
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1183
    functionName: _Py_atomic_fence_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - _ReadBarrier
    - __dmb
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_acquire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dmb
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1189,1
    - Dst: _ReadWriteBarrier
      Src: /src/cpython/Include/cpython/pyatomic_msc.h:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1195
    functionName: _Py_atomic_fence_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_msc.h
    functionUses: 2
    functionsReached:
    - __dmb
    - _ReadWriteBarrier
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_release(void)
  - 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: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: _PyTuple_CAST
    functionSourceFile: /src/cpython/Include/cpython/tupleobject.h
    functionUses: 90
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyTuple_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Include/cpython/tupleobject.h:24,1
    - Dst: Py_SIZE
      Src: /src/cpython/Include/cpython/tupleobject.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: PyTuple_GET_SIZE
    functionSourceFile: /src/cpython/Include/cpython/tupleobject.h
    functionUses: 831
    functionsReached:
    - Py_SIZE
    - _PyTuple_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyTuple_GET_SIZE(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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: PyTuple_GET_SIZE
    functionSourceFile: /src/cpython/Include/cpython/tupleobject.h
    functionUses: 831
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_GET_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: PyTuple_GET_ITEM
    functionSourceFile: /src/cpython/Include/cpython/tupleobject.h
    functionUses: 326
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_GET_ITEM(op, index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Include/cpython/tupleobject.h:34,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/tupleobject.h:35,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/tupleobject.h:36,1
    - Dst: Py_SIZE
      Src: /src/cpython/Include/cpython/tupleobject.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (index < Py_SIZE(tuple))
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Include/cpython/tupleobject.h
    - condition: (0 <= index)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/cpython/Include/cpython/tupleobject.h
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: PyTuple_SET_ITEM
    functionSourceFile: /src/cpython/Include/cpython/tupleobject.h
    functionUses: 154
    functionsReached:
    - Py_SIZE
    - _PyTuple_CAST
    - assert
    linkageType: ''
    returnType: void
    signature: void PyTuple_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - index
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: PyTuple_SET_ITEM
    functionSourceFile: /src/cpython/Include/cpython/tupleobject.h
    functionUses: 154
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_SET_ITEM(op, index, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: _Py_GetRefTotal
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_GetRefTotal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: _Py_static_string_init
    functionSourceFile: /src/cpython/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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: _Py_static_string
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 0
    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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: _Py_IDENTIFIER
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IDENTIFIER(varname)
  - 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: 349
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: Py_SETREF
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 179
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SETREF(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: 358
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 358
    functionName: Py_SETREF
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 179
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SETREF(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: 371
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: Py_XSETREF
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 136
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XSETREF(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: 380
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: Py_XSETREF
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 136
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XSETREF(dst, src)
  - 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: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: _PyObject_ASSERT_FROM
    functionSourceFile: /src/cpython/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: 408
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: _PyObject_ASSERT_FROM
    functionSourceFile: /src/cpython/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: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: _PyObject_ASSERT_WITH_MSG
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 9
    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: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: _PyObject_ASSERT
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 29
    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: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: _PyObject_ASSERT_FAILED_MSG
    functionSourceFile: /src/cpython/Include/cpython/object.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_ASSERT_FAILED_MSG(obj, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: _PyMemoryView_CAST
    functionSourceFile: /src/cpython/Include/cpython/memoryobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyMemoryView_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMemoryView_CAST
      Src: /src/cpython/Include/cpython/memoryobject.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: PyMemoryView_GET_BUFFER
    functionSourceFile: /src/cpython/Include/cpython/memoryobject.h
    functionUses: 2
    functionsReached:
    - _PyMemoryView_CAST
    linkageType: ''
    returnType: Py_buffer
    signature: Py_buffer * PyMemoryView_GET_BUFFER(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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: PyMemoryView_GET_BUFFER
    functionSourceFile: /src/cpython/Include/cpython/memoryobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMemoryView_GET_BUFFER(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMemoryView_CAST
      Src: /src/cpython/Include/cpython/memoryobject.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: PyMemoryView_GET_BASE
    functionSourceFile: /src/cpython/Include/cpython/memoryobject.h
    functionUses: 0
    functionsReached:
    - _PyMemoryView_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyMemoryView_GET_BASE(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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: PyMemoryView_GET_BASE
    functionSourceFile: /src/cpython/Include/cpython/memoryobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMemoryView_GET_BASE(op)
  - 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: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: _PyWeakref_CAST
    functionSourceFile: /src/cpython/Include/cpython/weakrefobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyWeakref_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_CAST
      Src: /src/cpython/Include/cpython/weakrefobject.h:53,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Include/cpython/weakrefobject.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref_obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: PyWeakref_GET_OBJECT
    functionSourceFile: /src/cpython/Include/cpython/weakrefobject.h
    functionUses: 1
    functionsReached:
    - _PyWeakref_CAST
    - Py_REFCNT
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyWeakref_GET_OBJECT(PyObject *ref_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: PyWeakref_GET_OBJECT
    functionSourceFile: /src/cpython/Include/cpython/weakrefobject.h
    functionUses: 1
    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: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: _PySet_CAST
    functionSourceFile: /src/cpython/Include/cpython/setobject.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PySet_CAST(so)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Include/cpython/setobject.h:66,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Include/cpython/setobject.h:66,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Include/cpython/setobject.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - so
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: PySet_GET_SIZE
    functionSourceFile: /src/cpython/Include/cpython/setobject.h
    functionUses: 19
    functionsReached:
    - _PySet_CAST
    - _Py_atomic_load_ssize_relaxed
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySet_GET_SIZE(PyObject *so)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - so
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: PySet_GET_SIZE
    functionSourceFile: /src/cpython/Include/cpython/setobject.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySet_GET_SIZE(so)
  - 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: PyCell_Check
    functionSourceFile: /src/cpython/Include/cpython/cellobject.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCell_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/cellobject.h:27,1
    - Dst: PyCell_Check
      Src: /src/cpython/Include/cpython/cellobject.h:27,1
    - Dst: _Py_CAST
      Src: /src/cpython/Include/cpython/cellobject.h:28,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Include/cpython/cellobject.h:29,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Include/cpython/cellobject.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyCell_Check(op))
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/cpython/Include/cpython/cellobject.h
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: PyCell_GET
    functionSourceFile: /src/cpython/Include/cpython/cellobject.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_CAST
    - Py_END_CRITICAL_SECTION
    - PyCell_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyCell_GET(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: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: PyCell_GET
    functionSourceFile: /src/cpython/Include/cpython/cellobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCell_GET(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/cellobject.h:38,1
    - Dst: PyCell_Check
      Src: /src/cpython/Include/cpython/cellobject.h:38,1
    - Dst: _Py_CAST
      Src: /src/cpython/Include/cpython/cellobject.h:39,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Include/cpython/cellobject.h:40,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Include/cpython/cellobject.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - op
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyCell_Check(op))
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/cpython/Include/cpython/cellobject.h
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: PyCell_SET
    functionSourceFile: /src/cpython/Include/cpython/cellobject.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_CAST
    - Py_END_CRITICAL_SECTION
    - PyCell_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void PyCell_SET(PyObject *op, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: PyCell_SET
    functionSourceFile: /src/cpython/Include/cpython/cellobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCell_SET(op, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/objimpl.h:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: _PyObject_SIZE
    functionSourceFile: /src/cpython/Include/cpython/objimpl.h
    functionUses: 23
    functionsReached:
    - _Py_STATIC_CAST
    linkageType: ''
    returnType: size_t
    signature: size_t _PyObject_SIZE(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/objimpl.h:24,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/objimpl.h:25,1
    - Dst: _Py_STATIC_CAST
      Src: /src/cpython/Include/cpython/objimpl.h:25,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Include/cpython/objimpl.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: _PyObject_VAR_SIZE
    functionSourceFile: /src/cpython/Include/cpython/objimpl.h
    functionUses: 9
    functionsReached:
    - _Py_STATIC_CAST
    - _Py_SIZE_ROUND_UP
    linkageType: ''
    returnType: size_t
    signature: size_t _PyObject_VAR_SIZE(PyTypeObject *type, Py_ssize_t nitems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: _Py_atomic_add_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_add_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: _Py_atomic_add_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_add_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: _Py_atomic_add_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_add_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: _Py_atomic_add_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 6
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_add_int32(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: _Py_atomic_add_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_add_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: _Py_atomic_add_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_add_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: _Py_atomic_add_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_add_uint(unsigned int *obj, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: _Py_atomic_add_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_add_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: _Py_atomic_add_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_add_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: _Py_atomic_add_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_add_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: _Py_atomic_add_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_add_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: _Py_atomic_add_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: _Py_atomic_add_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 16
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: _Py_atomic_compare_exchange_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 6
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int(int *obj, int *expected, int desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int8_t*
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: _Py_atomic_compare_exchange_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected,
      int8_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int16_t*
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: _Py_atomic_compare_exchange_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected,
      int16_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int32_t*
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: _Py_atomic_compare_exchange_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected,
      int32_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int64_t*
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: _Py_atomic_compare_exchange_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected,
      int64_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - intptr_t*
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: _Py_atomic_compare_exchange_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected,
      intptr_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - unsigned int*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: _Py_atomic_compare_exchange_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int
      *expected, unsigned int desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: _Py_atomic_compare_exchange_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 6
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected,
      uint8_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: _Py_atomic_compare_exchange_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected,
      uint16_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: _Py_atomic_compare_exchange_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected,
      uint32_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: _Py_atomic_compare_exchange_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected,
      uint64_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uintptr_t*
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: _Py_atomic_compare_exchange_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 7
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected,
      uintptr_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: _Py_atomic_compare_exchange_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected,
      Py_ssize_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: _Py_atomic_compare_exchange_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 5
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_ptr(void *obj, void *expected, void
      *desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: _Py_atomic_exchange_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_exchange_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: _Py_atomic_exchange_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_exchange_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: _Py_atomic_exchange_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_exchange_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: _Py_atomic_exchange_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_exchange_int32(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: _Py_atomic_exchange_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_exchange_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: _Py_atomic_exchange_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: _Py_atomic_exchange_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_exchange_uint(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: _Py_atomic_exchange_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: _Py_atomic_exchange_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: _Py_atomic_exchange_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: _Py_atomic_exchange_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: _Py_atomic_exchange_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: _Py_atomic_exchange_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: _Py_atomic_exchange_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 8
    functionsReached:
    - __atomic_exchange_n
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_exchange_ptr(void *obj, void *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: _Py_atomic_and_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_and
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_and_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: _Py_atomic_and_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_and
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_and_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: _Py_atomic_and_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_and
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_and_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: _Py_atomic_and_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_and
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_and_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: _Py_atomic_and_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_and
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: _Py_atomic_or_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_or
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_or_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: _Py_atomic_or_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_or
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_or_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: _Py_atomic_or_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_or
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_or_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: _Py_atomic_or_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_fetch_or
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_or_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: _Py_atomic_or_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_fetch_or
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: _Py_atomic_load_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: _Py_atomic_load_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_load_int8(const int8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: _Py_atomic_load_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_load_int16(const int16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: _Py_atomic_load_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_load_int32(const int32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: _Py_atomic_load_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_load_int64(const int64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: _Py_atomic_load_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_intptr(const intptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: _Py_atomic_load_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 8
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_load_uint8(const uint8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: _Py_atomic_load_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_load_uint16(const uint16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: _Py_atomic_load_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 5
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: _Py_atomic_load_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 6
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: _Py_atomic_load_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: _Py_atomic_load_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_load_uint(const unsigned int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: _Py_atomic_load_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: _Py_atomic_load_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 14
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: _Py_atomic_load_int_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 33
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int_relaxed(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: _Py_atomic_load_char_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: char
    signature: char _Py_atomic_load_char_relaxed(const char *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: _Py_atomic_load_uchar_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char _Py_atomic_load_uchar_relaxed(const unsigned char *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: _Py_atomic_load_short_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: short
    signature: short _Py_atomic_load_short_relaxed(const short *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: _Py_atomic_load_ushort_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short _Py_atomic_load_ushort_relaxed(const unsigned short
      *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: _Py_atomic_load_long_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: long
    signature: long _Py_atomic_load_long_relaxed(const long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: _Py_atomic_load_float_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load
    linkageType: ''
    returnType: float
    signature: float _Py_atomic_load_float_relaxed(const float *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: _Py_atomic_load_double_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load
    linkageType: ''
    returnType: double
    signature: double _Py_atomic_load_double_relaxed(const double *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: _Py_atomic_load_int8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_load_int8_relaxed(const int8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: _Py_atomic_load_int16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_load_int16_relaxed(const int16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: _Py_atomic_load_int32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_load_int32_relaxed(const int32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: _Py_atomic_load_int64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_load_int64_relaxed(const int64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: _Py_atomic_load_intptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_intptr_relaxed(const intptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: _Py_atomic_load_uint8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 5
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_load_uint8_relaxed(const uint8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: _Py_atomic_load_uint16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_load_uint16_relaxed(const uint16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: _Py_atomic_load_uint32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 10
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32_relaxed(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: _Py_atomic_load_uint64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64_relaxed(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: _Py_atomic_load_uintptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 15
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr_relaxed(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: _Py_atomic_load_uint_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_load_uint_relaxed(const unsigned int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: _Py_atomic_load_ssize_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 16
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: _Py_atomic_load_ptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 13
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr_relaxed(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: _Py_atomic_load_ullong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long _Py_atomic_load_ullong_relaxed(const unsigned long
      long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: _Py_atomic_load_llong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: long long
    signature: long long _Py_atomic_load_llong_relaxed(const long long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: _Py_atomic_store_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 14
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: _Py_atomic_store_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: _Py_atomic_store_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: _Py_atomic_store_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int32(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: _Py_atomic_store_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: _Py_atomic_store_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 426
    functionName: _Py_atomic_store_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: _Py_atomic_store_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: _Py_atomic_store_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: _Py_atomic_store_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: _Py_atomic_store_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: _Py_atomic_store_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint(unsigned int *obj, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: _Py_atomic_store_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: _Py_atomic_store_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: _Py_atomic_store_int_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 15
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int_relaxed(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 465
    functionName: _Py_atomic_store_int8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: _Py_atomic_store_int16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 473
    functionName: _Py_atomic_store_int32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: _Py_atomic_store_int64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: _Py_atomic_store_intptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: _Py_atomic_store_uint8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: _Py_atomic_store_uint16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: _Py_atomic_store_uint32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 5
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 497
    functionName: _Py_atomic_store_uint64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 501
    functionName: _Py_atomic_store_uintptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: _Py_atomic_store_uint_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: _Py_atomic_store_ptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 6
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr_relaxed(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: _Py_atomic_store_ssize_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 9
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned long long*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: _Py_atomic_store_ullong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 4
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: "void _Py_atomic_store_ullong_relaxed(unsigned long long *obj,\n                                unsigned
      long long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: _Py_atomic_store_char_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_char_relaxed(char *obj, char value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: _Py_atomic_store_uchar_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uchar_relaxed(unsigned char *obj, unsigned char
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - short*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 530
    functionName: _Py_atomic_store_short_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_short_relaxed(short *obj, short value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned short*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: _Py_atomic_store_ushort_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ushort_relaxed(unsigned short *obj, unsigned
      short value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - long*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: _Py_atomic_store_long_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_long_relaxed(long *obj, long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - float*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: _Py_atomic_store_float_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_float_relaxed(float *obj, float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - double*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 546
    functionName: _Py_atomic_store_double_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_double_relaxed(double *obj, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - long long*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 550
    functionName: _Py_atomic_store_llong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_llong_relaxed(long long *obj, long long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 557
    functionName: _Py_atomic_load_ptr_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 5
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr_acquire(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 561
    functionName: _Py_atomic_load_uintptr_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr_acquire(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: _Py_atomic_store_ptr_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 5
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr_release(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: _Py_atomic_store_uintptr_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 573
    functionName: _Py_atomic_store_int_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 3
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int_release(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 577
    functionName: _Py_atomic_store_ssize_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 581
    functionName: _Py_atomic_load_int_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int_acquire(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: _Py_atomic_store_uint32_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 589
    functionName: _Py_atomic_store_uint64_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: _Py_atomic_load_uint64_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64_acquire(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: _Py_atomic_load_uint32_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32_acquire(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 601
    functionName: _Py_atomic_load_ssize_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize_acquire(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: _Py_atomic_fence_seq_cst
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_seq_cst(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: _Py_atomic_fence_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_acquire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/cpython/Include/cpython/pyatomic_gcc.h:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: _Py_atomic_fence_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_gcc.h
    functionUses: 2
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_release(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: _Py_atomic_load_ulong
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_ulong(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: _Py_atomic_load_ulong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_ulong_relaxed(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: 601
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 601
    functionName: _Py_atomic_store_ulong
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_ulong(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: 603
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: _Py_atomic_store_ulong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_ulong_relaxed(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: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: _Py_atomic_load_ulong
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_ulong(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: _Py_atomic_load_ulong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_ulong_relaxed(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: 610
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 610
    functionName: _Py_atomic_store_ulong
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_ulong(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: 612
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: _Py_atomic_store_ulong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_ulong_relaxed(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: PY_MONITORING_IS_INSTRUMENTED_EVENT
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_MONITORING_IS_INSTRUMENTED_EVENT(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STATE
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: _PYMONITORING_IF_ACTIVE
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PYMONITORING_IF_ACTIVE(STATE, X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:128,1
    - Dst: _PyMonitoring_FirePyStartEvent
      Src: /src/cpython/Include/cpython/monitoring.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: PyMonitoring_FirePyStartEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FirePyStartEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FirePyStartEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:136,1
    - Dst: _PyMonitoring_FirePyResumeEvent
      Src: /src/cpython/Include/cpython/monitoring.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: PyMonitoring_FirePyResumeEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FirePyResumeEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FirePyResumeEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:145,1
    - Dst: _PyMonitoring_FirePyReturnEvent
      Src: /src/cpython/Include/cpython/monitoring.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - retval
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: PyMonitoring_FirePyReturnEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FirePyReturnEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FirePyReturnEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                               PyObject *retval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:154,1
    - Dst: _PyMonitoring_FirePyYieldEvent
      Src: /src/cpython/Include/cpython/monitoring.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - retval
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: PyMonitoring_FirePyYieldEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FirePyYieldEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FirePyYieldEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                              PyObject *retval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:163,1
    - Dst: _PyMonitoring_FireCallEvent
      Src: /src/cpython/Include/cpython/monitoring.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - state
    - codelike
    - offset
    - callable
    - arg0
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: PyMonitoring_FireCallEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireCallEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FireCallEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                           PyObject* callable, PyObject
      *arg0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:172,1
    - Dst: _PyMonitoring_FireLineEvent
      Src: /src/cpython/Include/cpython/monitoring.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - lineno
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: PyMonitoring_FireLineEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireLineEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FireLineEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                           int lineno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:181,1
    - Dst: _PyMonitoring_FireJumpEvent
      Src: /src/cpython/Include/cpython/monitoring.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - target_offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: PyMonitoring_FireJumpEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireJumpEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FireJumpEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                           PyObject *target_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:190,1
    - Dst: _PyMonitoring_FireBranchRightEvent
      Src: /src/cpython/Include/cpython/monitoring.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - target_offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: PyMonitoring_FireBranchRightEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireBranchRightEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FireBranchRightEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                             PyObject *target_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:199,1
    - Dst: _PyMonitoring_FireBranchLeftEvent
      Src: /src/cpython/Include/cpython/monitoring.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - target_offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: PyMonitoring_FireBranchLeftEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireBranchLeftEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FireBranchLeftEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                             PyObject *target_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:208,1
    - Dst: _PyMonitoring_FireCReturnEvent
      Src: /src/cpython/Include/cpython/monitoring.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - retval
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: PyMonitoring_FireCReturnEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireCReturnEvent
    linkageType: ''
    returnType: int
    signature: "int PyMonitoring_FireCReturnEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset,\n                              PyObject *retval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:216,1
    - Dst: _PyMonitoring_FirePyThrowEvent
      Src: /src/cpython/Include/cpython/monitoring.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: PyMonitoring_FirePyThrowEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FirePyThrowEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FirePyThrowEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:224,1
    - Dst: _PyMonitoring_FireRaiseEvent
      Src: /src/cpython/Include/cpython/monitoring.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: PyMonitoring_FireRaiseEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireRaiseEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FireRaiseEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:232,1
    - Dst: _PyMonitoring_FireReraiseEvent
      Src: /src/cpython/Include/cpython/monitoring.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: PyMonitoring_FireReraiseEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireReraiseEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FireReraiseEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:240,1
    - Dst: _PyMonitoring_FireExceptionHandledEvent
      Src: /src/cpython/Include/cpython/monitoring.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: PyMonitoring_FireExceptionHandledEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireExceptionHandledEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FireExceptionHandledEvent(PyMonitoringState *state,
      PyObject *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:248,1
    - Dst: _PyMonitoring_FireCRaiseEvent
      Src: /src/cpython/Include/cpython/monitoring.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 4
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: PyMonitoring_FireCRaiseEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireCRaiseEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FireCRaiseEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:256,1
    - Dst: _PyMonitoring_FirePyUnwindEvent
      Src: /src/cpython/Include/cpython/monitoring.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - codelike
    - offset
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: PyMonitoring_FirePyUnwindEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FirePyUnwindEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FirePyUnwindEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PYMONITORING_IF_ACTIVE
      Src: /src/cpython/Include/cpython/monitoring.h:264,1
    - Dst: _PyMonitoring_FireStopIterationEvent
      Src: /src/cpython/Include/cpython/monitoring.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - codelike
    - offset
    - value
    argTypes:
    - PyMonitoringState*
    - PyObject*
    - int32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: PyMonitoring_FireStopIterationEvent
    functionSourceFile: /src/cpython/Include/cpython/monitoring.h
    functionUses: 2
    functionsReached:
    - _PYMONITORING_IF_ACTIVE
    - _PyMonitoring_FireStopIterationEvent
    linkageType: ''
    returnType: int
    signature: int PyMonitoring_FireStopIterationEvent(PyMonitoringState *state, PyObject
      *codelike, int32_t offset, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: _PyVectorcall_NARGS
    functionSourceFile: /src/cpython/Include/cpython/abstract.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyVectorcall_NARGS(size_t 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: PyVectorcall_NARGS
    functionSourceFile: /src/cpython/Include/cpython/abstract.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyVectorcall_NARGS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Include/cpython/abstract.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: PyObject_CallMethodNoArgs
    functionSourceFile: /src/cpython/Include/cpython/abstract.h
    functionUses: 76
    functionsReached:
    - PyObject_VectorcallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallMethodNoArgs(PyObject *self, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/abstract.h:73,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Include/cpython/abstract.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - name
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/cpython/Include/cpython/abstract.h
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: PyObject_CallMethodOneArg
    functionSourceFile: /src/cpython/Include/cpython/abstract.h
    functionUses: 50
    functionsReached:
    - PyObject_VectorcallMethod
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallMethodOneArg(PyObject *self, PyObject *name, PyObject *arg)'
  - 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: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: PySequence_ITEM
    functionSourceFile: /src/cpython/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:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: PySequence_Fast_GET_SIZE
    functionSourceFile: /src/cpython/Include/cpython/abstract.h
    functionUses: 31
    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: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: PySequence_Fast_GET_ITEM
    functionSourceFile: /src/cpython/Include/cpython/abstract.h
    functionUses: 27
    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: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: PySequence_Fast_ITEMS
    functionSourceFile: /src/cpython/Include/cpython/abstract.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySequence_Fast_ITEMS(sf)
  - 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: PyGen_Check
    functionSourceFile: /src/cpython/Include/cpython/genobject.h
    functionUses: 4
    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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: PyGen_CheckExact
    functionSourceFile: /src/cpython/Include/cpython/genobject.h
    functionUses: 7
    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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: PyCoro_CheckExact
    functionSourceFile: /src/cpython/Include/cpython/genobject.h
    functionUses: 15
    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: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: PyAsyncGen_CheckExact
    functionSourceFile: /src/cpython/Include/cpython/genobject.h
    functionUses: 8
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: PyAsyncGenASend_CheckExact
    functionSourceFile: /src/cpython/Include/cpython/genobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAsyncGenASend_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/cpython/Include/cpython/classobject.h
    functionUses: 10
    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: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: _PyMethod_CAST
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyMethod_CAST(meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethod_CAST
      Src: /src/cpython/Include/cpython/classobject.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: PyMethod_GET_FUNCTION
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 3
    functionsReached:
    - _PyMethod_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyMethod_GET_FUNCTION(PyObject *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - meth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: PyMethod_GET_FUNCTION
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMethod_GET_FUNCTION(meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethod_CAST
      Src: /src/cpython/Include/cpython/classobject.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: PyMethod_GET_SELF
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 2
    functionsReached:
    - _PyMethod_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyMethod_GET_SELF(PyObject *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - meth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: PyMethod_GET_SELF
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 2
    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: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: PyInstanceMethod_Check
    functionSourceFile: /src/cpython/Include/cpython/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: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: _PyInstanceMethod_CAST
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyInstanceMethod_CAST(meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstanceMethod_CAST
      Src: /src/cpython/Include/cpython/classobject.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: PyInstanceMethod_GET_FUNCTION
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 7
    functionsReached:
    - _PyInstanceMethod_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyInstanceMethod_GET_FUNCTION(PyObject *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - meth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PyInstanceMethod_GET_FUNCTION
    functionSourceFile: /src/cpython/Include/cpython/classobject.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInstanceMethod_GET_FUNCTION(meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/longintrepr.h:123,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Include/cpython/longintrepr.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts:
    - condition: (PyType_HasFeature(op->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS))
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Include/cpython/longintrepr.h
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: _PyLong_IsCompact
    functionSourceFile: /src/cpython/Include/cpython/longintrepr.h
    functionUses: 28
    functionsReached:
    - PyType_HasFeature
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyLong_IsCompact(const PyLongObject* op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Include/cpython/longintrepr.h:133,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Include/cpython/longintrepr.h:133,1
    - Dst: assert
      Src: /src/cpython/Include/cpython/longintrepr.h:134,1
    - Dst: PyUnstable_Long_IsCompact
      Src: /src/cpython/Include/cpython/longintrepr.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts:
    - condition: (PyType_HasFeature(op->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS))
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Include/cpython/longintrepr.h
    - condition: (PyUnstable_Long_IsCompact(op))
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/cpython/Include/cpython/longintrepr.h
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: _PyLong_CompactValue
    functionSourceFile: /src/cpython/Include/cpython/longintrepr.h
    functionUses: 17
    functionsReached:
    - PyType_HasFeature
    - PyUnstable_Long_IsCompact
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyLong_CompactValue(const PyLongObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Include/cpython/pylock.h:51,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Include/cpython/pylock.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 8
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: _PyMutex_Lock
    functionSourceFile: /src/cpython/Include/cpython/pylock.h
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - _Py_atomic_compare_exchange_uint8
    linkageType: ''
    returnType: void
    signature: void _PyMutex_Lock(PyMutex *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Include/cpython/pylock.h:62,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Include/cpython/pylock.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: _PyMutex_Unlock
    functionSourceFile: /src/cpython/Include/cpython/pylock.h
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uint8
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void _PyMutex_Unlock(PyMutex *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Include/cpython/pylock.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: _PyMutex_IsLocked
    functionSourceFile: /src/cpython/Include/cpython/pylock.h
    functionUses: 1
    functionsReached:
    - _Py_atomic_load_uint8
    linkageType: ''
    returnType: int
    signature: int _PyMutex_IsLocked(PyMutex *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_HashPointer
      Src: /src/cpython/Include/cpython/pyhash.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: _Py_HashPointer
    functionSourceFile: /src/cpython/Include/cpython/pyhash.h
    functionUses: 0
    functionsReached:
    - Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t _Py_HashPointer(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: _Atomic
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Atomic(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: _Py_atomic_add_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_add_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: _Py_atomic_add_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_add_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: _Py_atomic_add_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_add_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: _Py_atomic_add_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 6
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_add_int32(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: _Py_atomic_add_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_add_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: _Py_atomic_add_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_add_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: _Py_atomic_add_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_add_uint(unsigned int *obj, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: _Py_atomic_add_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_add_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: _Py_atomic_add_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_add_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: _Py_atomic_add_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_add_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: _Py_atomic_add_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_add_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: _Py_atomic_add_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/cpython/Include/cpython/pyatomic_std.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: _Py_atomic_add_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 16
    functionsReached:
    - atomic_fetch_add
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: _Py_atomic_compare_exchange_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 6
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int(int *obj, int *expected, int desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int8_t*
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: _Py_atomic_compare_exchange_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected,
      int8_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int16_t*
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: _Py_atomic_compare_exchange_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected,
      int16_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int32_t*
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: _Py_atomic_compare_exchange_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected,
      int32_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - int64_t*
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: _Py_atomic_compare_exchange_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected,
      int64_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - intptr_t*
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: _Py_atomic_compare_exchange_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected,
      intptr_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - unsigned int*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: _Py_atomic_compare_exchange_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int
      *expected, unsigned int desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: _Py_atomic_compare_exchange_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 8
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected,
      uint8_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: _Py_atomic_compare_exchange_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected,
      uint16_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: _Py_atomic_compare_exchange_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected,
      uint32_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: _Py_atomic_compare_exchange_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected,
      uint64_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - uintptr_t*
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: _Py_atomic_compare_exchange_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 7
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected,
      uintptr_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: _Py_atomic_compare_exchange_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected,
      Py_ssize_t desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_compare_exchange_strong
      Src: /src/cpython/Include/cpython/pyatomic_std.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: _Py_atomic_compare_exchange_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 5
    functionsReached:
    - atomic_compare_exchange_strong
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_compare_exchange_ptr(void *obj, void *expected, void
      *desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: _Py_atomic_exchange_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_exchange_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: _Py_atomic_exchange_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_exchange_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: _Py_atomic_exchange_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_exchange_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: _Py_atomic_exchange_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_exchange_int32(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: _Py_atomic_exchange_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_exchange_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: _Py_atomic_exchange_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: _Py_atomic_exchange_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_exchange_uint(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: _Py_atomic_exchange_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: _Py_atomic_exchange_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: _Py_atomic_exchange_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: _Py_atomic_exchange_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: _Py_atomic_exchange_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: _Py_atomic_exchange_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange
      Src: /src/cpython/Include/cpython/pyatomic_std.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: _Py_atomic_exchange_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 8
    functionsReached:
    - atomic_exchange
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_exchange_ptr(void *obj, void *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_std.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: _Py_atomic_and_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_and
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_and_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_std.h:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: _Py_atomic_and_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_and
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_and_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_std.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: _Py_atomic_and_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_and
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_and_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_std.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: _Py_atomic_and_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_and
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_and_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_and
      Src: /src/cpython/Include/cpython/pyatomic_std.h:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: _Py_atomic_and_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_and
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_std.h:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: _Py_atomic_or_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_or
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_or_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_std.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: _Py_atomic_or_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_or
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_or_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_std.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: _Py_atomic_or_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_or
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_or_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_std.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: _Py_atomic_or_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_or
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_or_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_or
      Src: /src/cpython/Include/cpython/pyatomic_std.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: _Py_atomic_or_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_fetch_or
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: _Py_atomic_load_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: _Py_atomic_load_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_load_int8(const int8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: _Py_atomic_load_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_load_int16(const int16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 435
    functionName: _Py_atomic_load_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_load_int32(const int32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: _Py_atomic_load_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_load_int64(const int64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: _Py_atomic_load_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_intptr(const intptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 456
    functionName: _Py_atomic_load_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 9
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_load_uint8(const uint8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: _Py_atomic_load_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_load_uint16(const uint16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: _Py_atomic_load_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 5
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: _Py_atomic_load_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 6
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: _Py_atomic_load_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: _Py_atomic_load_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_load_uint(const unsigned int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 498
    functionName: _Py_atomic_load_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/cpython/Include/cpython/pyatomic_std.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: _Py_atomic_load_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 14
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 516
    functionName: _Py_atomic_load_int_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 33
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int_relaxed(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: _Py_atomic_load_char_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: char
    signature: char _Py_atomic_load_char_relaxed(const char *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: _Py_atomic_load_uchar_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char _Py_atomic_load_uchar_relaxed(const unsigned char *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: _Py_atomic_load_short_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: short
    signature: short _Py_atomic_load_short_relaxed(const short *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: _Py_atomic_load_ushort_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short _Py_atomic_load_ushort_relaxed(const unsigned short
      *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: _Py_atomic_load_long_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: long
    signature: long _Py_atomic_load_long_relaxed(const long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 564
    functionName: _Py_atomic_load_float_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: float
    signature: float _Py_atomic_load_float_relaxed(const float *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: _Py_atomic_load_double_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: double
    signature: double _Py_atomic_load_double_relaxed(const double *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: _Py_atomic_load_int8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: int8_t
    signature: int8_t _Py_atomic_load_int8_relaxed(const int8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: _Py_atomic_load_int16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: int16_t
    signature: int16_t _Py_atomic_load_int16_relaxed(const int16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 596
    functionName: _Py_atomic_load_int32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: int32_t
    signature: int32_t _Py_atomic_load_int32_relaxed(const int32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: _Py_atomic_load_int64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: int64_t
    signature: int64_t _Py_atomic_load_int64_relaxed(const int64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: _Py_atomic_load_intptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_intptr_relaxed(const intptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: _Py_atomic_load_uint8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 5
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _Py_atomic_load_uint8_relaxed(const uint8_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: _Py_atomic_load_uint16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t _Py_atomic_load_uint16_relaxed(const uint16_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 636
    functionName: _Py_atomic_load_uint32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 10
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32_relaxed(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: _Py_atomic_load_uint64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64_relaxed(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: _Py_atomic_load_uintptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 15
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr_relaxed(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: _Py_atomic_load_uint_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _Py_atomic_load_uint_relaxed(const unsigned int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 668
    functionName: _Py_atomic_load_ssize_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 16
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 676
    functionName: _Py_atomic_load_ptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 13
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr_relaxed(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 684
    functionName: _Py_atomic_load_ullong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long _Py_atomic_load_ullong_relaxed(const unsigned long
      long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: _Py_atomic_load_llong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: long long
    signature: long long _Py_atomic_load_llong_relaxed(const long long *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: _Py_atomic_store_int
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: _Py_atomic_store_int8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int8(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: _Py_atomic_store_int16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int16(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 723
    functionName: _Py_atomic_store_int32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int32(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 730
    functionName: _Py_atomic_store_int64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int64(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 737
    functionName: _Py_atomic_store_intptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_intptr(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 744
    functionName: _Py_atomic_store_uint8
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint8(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 751
    functionName: _Py_atomic_store_uint16
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint16(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: _Py_atomic_store_uint32
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 765
    functionName: _Py_atomic_store_uint64
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 772
    functionName: _Py_atomic_store_uintptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 779
    functionName: _Py_atomic_store_uint
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint(unsigned int *obj, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 786
    functionName: _Py_atomic_store_ptr
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: _Py_atomic_store_ssize
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 804
    functionName: _Py_atomic_store_int_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int_relaxed(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 812
    functionName: _Py_atomic_store_int8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int16_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 820
    functionName: _Py_atomic_store_int16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int32_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 828
    functionName: _Py_atomic_store_int32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int64_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 836
    functionName: _Py_atomic_store_int64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - intptr_t*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 844
    functionName: _Py_atomic_store_intptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: _Py_atomic_store_uint8_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint16_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 860
    functionName: _Py_atomic_store_uint16_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 868
    functionName: _Py_atomic_store_uint32_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 876
    functionName: _Py_atomic_store_uint64_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 884
    functionName: _Py_atomic_store_uintptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 892
    functionName: _Py_atomic_store_uint_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 900
    functionName: _Py_atomic_store_ptr_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr_relaxed(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 908
    functionName: _Py_atomic_store_ssize_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned long long*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 917
    functionName: _Py_atomic_store_ullong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _Py_atomic_store_ullong_relaxed(unsigned long long *obj,\n                                unsigned
      long long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 925
    functionName: _Py_atomic_store_char_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_char_relaxed(char *obj, char value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 933
    functionName: _Py_atomic_store_uchar_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uchar_relaxed(unsigned char *obj, unsigned char
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - short*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 941
    functionName: _Py_atomic_store_short_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_short_relaxed(short *obj, short value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned short*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 949
    functionName: _Py_atomic_store_ushort_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ushort_relaxed(unsigned short *obj, unsigned
      short value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 957
    functionName: _Py_atomic_store_uint_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint_release(unsigned int *obj, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - long*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 965
    functionName: _Py_atomic_store_long_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_long_relaxed(long *obj, long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - float*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 973
    functionName: _Py_atomic_store_float_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_float_relaxed(float *obj, float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - double*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 981
    functionName: _Py_atomic_store_double_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_double_relaxed(double *obj, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - long long*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 989
    functionName: _Py_atomic_store_llong_relaxed
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_llong_relaxed(long long *obj, long long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1000
    functionName: _Py_atomic_load_ptr_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 5
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: void
    signature: 'void *

      _Py_atomic_load_ptr_acquire(const void *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1008
    functionName: _Py_atomic_load_uintptr_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_atomic_load_uintptr_acquire(const uintptr_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1016
    functionName: _Py_atomic_store_ptr_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ptr_release(void *obj, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1024
    functionName: _Py_atomic_store_uintptr_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1032
    functionName: _Py_atomic_store_int_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_int_release(int *obj, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1040
    functionName: _Py_atomic_store_ssize_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1048
    functionName: _Py_atomic_load_int_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_int_acquire(const int *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1056
    functionName: _Py_atomic_store_uint32_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1064
    functionName: _Py_atomic_store_uint64_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1072
    functionName: _Py_atomic_load_uint64_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_atomic_load_uint64_acquire(const uint64_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1080
    functionName: _Py_atomic_load_uint32_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _Py_atomic_load_uint32_acquire(const uint32_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1088
    functionName: _Py_atomic_load_ssize_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 1
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_atomic_load_ssize_acquire(const Py_ssize_t *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_thread_fence
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1098
    functionName: _Py_atomic_fence_seq_cst
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_seq_cst(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_thread_fence
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1105
    functionName: _Py_atomic_fence_acquire
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_acquire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_thread_fence
      Src: /src/cpython/Include/cpython/pyatomic_std.h:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1112
    functionName: _Py_atomic_fence_release
    functionSourceFile: /src/cpython/Include/cpython/pyatomic_std.h
    functionUses: 2
    functionsReached:
    - atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_fence_release(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PREFIX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: _Py_COMMON_FIELDS
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_COMMON_FIELDS(PREFIX)
  - 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: PyFunction_Check
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 52
    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: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: _PyFunction_CAST
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyFunction_CAST(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Include/cpython/funcobject.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: PyFunction_GET_CODE
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 20
    functionsReached:
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyFunction_GET_CODE(PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: PyFunction_GET_CODE
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_CODE(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Include/cpython/funcobject.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: PyFunction_GET_GLOBALS
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 13
    functionsReached:
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyFunction_GET_GLOBALS(PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: PyFunction_GET_GLOBALS
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_GLOBALS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Include/cpython/funcobject.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: PyFunction_GET_MODULE
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 0
    functionsReached:
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyFunction_GET_MODULE(PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: PyFunction_GET_MODULE
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_MODULE(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Include/cpython/funcobject.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: PyFunction_GET_DEFAULTS
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 1
    functionsReached:
    - _PyFunction_CAST
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyFunction_GET_DEFAULTS(PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: PyFunction_GET_DEFAULTS
    functionSourceFile: /src/cpython/Include/cpython/funcobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_DEFAULTS(func)
  - BBCount: 1
   